數據格式轉化,PyTorch就是救星!
介紹
Pytorch是一個深度學習框架,廣泛用于圖像分類、分割、目標識別等各種任務。在這種情況下,我們必須處理各種類型的數據。很可能在大多數情況下,數據可能不是我們所需要的格式。PyTorch轉換就是救星。
torchvision.transforms模塊提供了可以使用的各種圖像轉換。我們使用變換對數據進行一些操作,使其適合于訓練torchvision模塊,PyTorch為常見的圖像變換提供變換有關的函數。這些變換可以使用Compose鏈接在一起。
讓我們在本文中看看其中的幾個!準備好了嗎?
1. ToTensor
這是一個非常常用的轉換。在PyTorch中,我們主要處理張量形式的數據。如果輸入數據是NumPy數組或PIL圖像的形式,我們可以使用ToTensor將其轉換為張量格式。
最后一個張量的形式是(C * H * W)。同時,還執行從0–255到0–1的范圍內的縮放操作。
讓我們用一個例子來更好地理解它。在這個博客中,我將使用Ragnar(我最喜歡的虛構角色)的圖像來執行轉換。

2. Normalize
此操作將獲取張量圖像,并使用平均值和標準差對其進行歸一化。它有3個參數:mean, std, inplace。我們需要為3個通道提供一系列平均值,作為參數“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()提供要裁剪的大小作為輸入。讓我們在圖像上實現這個并進行檢查。
transform = transforms.Compose([transforms.ToTensor(),transforms.CenterCrop((200,100))])
tensor_img = transform(image)
tensor_img.shape
Output: torch.Size([3, 200, 100])
如果只提供一個尺寸標注而不是兩個尺寸標注,會發生什么情況?
它將假設它是一個正方形,并且將生成一個(size, size))的裁剪。
如果給定的尺寸比原來的尺寸大呢?
沿著這些邊,圖像將填充0!
4. RandomHorizontalFlip
此變換將以給定的概率水平(隨機)翻轉圖像。你可以通過參數“p”來設置這個概率。p的默認值為0.5。
檢查我下面的例子來理解。
transform = transforms.Compose([transforms.RandomHorizontalFlip(p=0.9)])
tensor_img = transform(image)
tensor_img
查看原始圖像和翻轉的圖像!


請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
-
11月7日立即參評>> 【評選】維科杯·OFweek 2025(第十屆)物聯網行業年度評選
-
11月20日立即報名>> 【免費下載】RISC-V芯片發展現狀與測試挑戰-白皮書
-
即日-11.25立即下載>>> 費斯托白皮書《柔性:汽車生產未來的關鍵》
-
11月27日立即報名>> 【工程師系列】汽車電子技術在線大會
-
11月28日立即下載>> 【白皮書】精準洞察 無線掌控——283FC智能自檢萬用表
-
12月18日立即報名>> 【線下會議】OFweek 2025(第十屆)物聯網產業大會


分享













