您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何在pytorch中使用transforms模塊,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
pytorch中的transforms模塊中包含了很多種對圖像數據進行變換的函數
data_transforms = transforms.Compose([ transforms.RandomResizedCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ])
從上面的data_transforms變量中我們能夠看出進行了多種變換,而Compose方法是將多種變換組合起來。data_transforms中一共包含了四個變換,前兩個是對PILImage進行的,分別對其進行隨機大小(默認原始圖像大小的0.08-1.0)和隨機寬高比(默認原始圖像寬高比的3/4-4/3)的裁剪,之后resize到指定大小224;以及對原始圖像進行隨機(默認0.5概率)的水平翻轉。
第三個transforms.ToTensor()的變換操作是關鍵一步,它將PILImage轉變為torch.FloatTensor的數據形式,這種數據形式一定是C x H x W的圖像格式加上[0,1]的大小范圍。它將顏色通道這一維從第三維變換到了第一維。
最后的Normalize變換是對tensor這種數據格式進行的,它的操作是用給定的均值和標準差分別對每個通道的數據進行正則化。具體來說,給定均值(M1,...,Mn),給定標準差(S1,..,Sn),其中n是通道數(一般是3),對每個通道進行如下操作:
output[channel] = (input[channel] - mean[channel]) / std[channel]
最后需要強調一點的是,這幾個變換的先后順序有一定的講究,因為不同的方法所處理的對象不一樣,前兩種變換是對PILImage進行的,而Normalize則是對tensor進行的,所以處理PILImage的變換方法(大多數方法)都需要放在ToTensor方法之前,而處理tensor的方法(比如Normalize方法)就要放在ToTensor方法之后。
看完上述內容,你們對如何在pytorch中使用transforms模塊有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。