訂閱
糾錯
加入自媒體

數(shù)據(jù)格式轉(zhuǎn)化,PyTorch就是救星!

介紹

Pytorch是一個深度學習框架,廣泛用于圖像分類、分割、目標識別等各種任務(wù)。在這種情況下,我們必須處理各種類型的數(shù)據(jù)。很可能在大多數(shù)情況下,數(shù)據(jù)可能不是我們所需要的格式。PyTorch轉(zhuǎn)換就是救星。

torchvision.transforms模塊提供了可以使用的各種圖像轉(zhuǎn)換。我們使用變換對數(shù)據(jù)進行一些操作,使其適合于訓(xùn)練torchvision模塊,PyTorch為常見的圖像變換提供變換有關(guān)的函數(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(我最喜歡的虛構(gòu)角色)的圖像來執(zhí)行轉(zhuǎn)換。

2.  Normalize

此操作將獲取張量圖像,并使用平均值和標準差對其進行歸一化。它有3個參數(shù):mean, std, inplace。我們需要為3個通道提供一系列平均值,作為參數(shù)“mean”,“std”類似。如果將“inplace”設(shè)為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ā)生什么情況?

它將假設(shè)它是一個正方形,并且將生成一個(size, size))的裁剪。

如果給定的尺寸比原來的尺寸大呢?

沿著這些邊,圖像將填充0!

4. RandomHorizontalFlip

此變換將以給定的概率水平(隨機)翻轉(zhuǎn)圖像。你可以通過參數(shù)“p”來設(shè)置這個概率。p的默認值為0.5。

檢查我下面的例子來理解。

transform = transforms.Compose([transforms.RandomHorizontalFlip(p=0.9)])
tensor_img = transform(image)
tensor_img

查看原始圖像和翻轉(zhuǎn)的圖像!

1  2  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號