數(shù)據(jù)格式轉(zhuǎn)化,PyTorch就是救星!
介紹
Pytorch是一個深度學習框架,廣泛用于圖像分類、分割、目標識別等各種任務。在這種情況下,我們必須處理各種類型的數(shù)據(jù)。很可能在大多數(shù)情況下,數(shù)據(jù)可能不是我們所需要的格式。PyTorch轉(zhuǎn)換就是救星。
torchvision.transforms模塊提供了可以使用的各種圖像轉(zhuǎn)換。我們使用變換對數(shù)據(jù)進行一些操作,使其適合于訓練torchvision模塊,PyTorch為常見的圖像變換提供變換有關的函數(shù)。這些變換可以使用Compose鏈接在一起。
讓我們在本文中看看其中的幾個!準備好了嗎?
1. ToTensor
這是一個非常常用的轉(zhuǎn)換。在PyTorch中,我們主要處理張量形式的數(shù)據(jù)。如果輸入數(shù)據(jù)是NumPy數(shù)組或PIL圖像的形式,我們可以使用ToTensor將其轉(zhuǎn)換為張量格式。
最后一個張量的形式是(C * H * W)。同時,還執(zhí)行從0–255到0–1的范圍內(nèi)的縮放操作。
讓我們用一個例子來更好地理解它。在這個博客中,我將使用Ragnar(我最喜歡的虛構角色)的圖像來執(zhí)行轉(zhuǎn)換。
2. Normalize
此操作將獲取張量圖像,并使用平均值和標準差對其進行歸一化。它有3個參數(shù):mean, std, inplace。我們需要為3個通道提供一系列平均值,作為參數(shù)“mean”,“std”類似。如果將“inplace”設為True,則將計算得到的值覆蓋之前的值。
torchvision.transforms.Normalize([meanOfChannel1, meanOfChannel2, meanOfChannel3], [stdOfChannel1, stdOfChannel2, stdOfChannel3])
#Example:
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
3. CenterCrop
這將在中心裁剪給定的張量圖像。你可以以(高度、寬度)的形式向transforms.CenterCrop()提供要裁剪的大小作為輸入。讓我們在圖像上實現(xiàn)這個并進行檢查。
transform = transforms.Compose([transforms.ToTensor(),transforms.CenterCrop((200,100))])
tensor_img = transform(image)
tensor_img.shape
Output: torch.Size([3, 200, 100])
如果只提供一個尺寸標注而不是兩個尺寸標注,會發(fā)生什么情況?
它將假設它是一個正方形,并且將生成一個(size, size))的裁剪。
如果給定的尺寸比原來的尺寸大呢?
沿著這些邊,圖像將填充0!
4. RandomHorizontalFlip
此變換將以給定的概率水平(隨機)翻轉(zhuǎn)圖像。你可以通過參數(shù)“p”來設置這個概率。p的默認值為0.5。
檢查我下面的例子來理解。
transform = transforms.Compose([transforms.RandomHorizontalFlip(p=0.9)])
tensor_img = transform(image)
tensor_img
查看原始圖像和翻轉(zhuǎn)的圖像!

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關稅,能否乘機器人東風翻身?