訂閱
糾錯
加入自媒體

數據格式轉化,PyTorch就是救星!

介紹

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

torchvision.transforms模塊提供了可以使用的各種圖像轉換。我們使用變換對數據進行一些操作,使其適合于訓練torchvision模塊,PyTorch為常見的圖像變換提供變換有關的函數。這些變換可以使用Compose鏈接在一起。

讓我們在本文中看看其中的幾個!準備好了嗎?

1. ToTensor

這是一個非常常用的轉換。在PyTorch中,我們主要處理張量形式的數據。如果輸入數據是NumPy數組或PIL圖像的形式,我們可以使用ToTensor將其轉換為張量格式。

最后一個張量的形式是(C * H * W)。同時,還執(zhí)行從0–255到0–1的范圍內的縮放操作。

讓我們用一個例子來更好地理解它。在這個博客中,我將使用Ragnar(我最喜歡的虛構角色)的圖像來執(zhí)行轉換。

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])

如果只提供一個尺寸標注而不是兩個尺寸標注,會發(fā)生什么情況?

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

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

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

4. RandomHorizontalFlip

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

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

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

查看原始圖像和翻轉的圖像!

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

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

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

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

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關注公眾號
OFweek人工智能網
獲取更多精彩內容
文章糾錯
x
*文字標題:
*糾錯內容:
聯系郵箱:
*驗 證 碼:

粵公網安備 44030502002758號