pytorch中的transforms模塊實(shí)例詳解
pytorch中的transforms模塊中包含了很多種對(duì)圖像數(shù)據(jù)進(jìn)行變換的函數(shù),這些都是在我們進(jìn)行圖像數(shù)據(jù)讀入步驟中必不可少的,下面我們講解幾種最常用的函數(shù),詳細(xì)的內(nèi)容還請(qǐng)參考pytorch官方文檔(放在文末)。
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變量中我們能夠看出進(jìn)行了多種變換,而Compose方法是將多種變換組合起來(lái)。data_transforms中一共包含了四個(gè)變換,前兩個(gè)是對(duì)PILImage進(jìn)行的,分別對(duì)其進(jìn)行隨機(jī)大?。J(rèn)原始圖像大小的0.08-1.0)和隨機(jī)寬高比(默認(rèn)原始圖像寬高比的3/4-4/3)的裁剪,之后resize到指定大小224;以及對(duì)原始圖像進(jìn)行隨機(jī)(默認(rèn)0.5概率)的水平翻轉(zhuǎn)。
第三個(gè)transforms.ToTensor()的變換操作是關(guān)鍵一步,它將PILImage轉(zhuǎn)變?yōu)閠orch.FloatTensor的數(shù)據(jù)形式,這種數(shù)據(jù)形式一定是C x H x W的圖像格式加上[0,1]的大小范圍。它將顏色通道這一維從第三維變換到了第一維。
最后的Normalize變換是對(duì)tensor這種數(shù)據(jù)格式進(jìn)行的,它的操作是用給定的均值和標(biāo)準(zhǔn)差分別對(duì)每個(gè)通道的數(shù)據(jù)進(jìn)行正則化。具體來(lái)說(shuō),給定均值(M1,...,Mn),給定標(biāo)準(zhǔn)差(S1,..,Sn),其中n是通道數(shù)(一般是3),對(duì)每個(gè)通道進(jìn)行如下操作:
output[channel] = (input[channel] - mean[channel]) / std[channel]
最后需要強(qiáng)調(diào)一點(diǎn)的是,這幾個(gè)變換的先后順序有一定的講究,因?yàn)椴煌姆椒ㄋ幚淼膶?duì)象不一樣,前兩種變換是對(duì)PILImage進(jìn)行的,而Normalize則是對(duì)tensor進(jìn)行的,所以處理PILImage的變換方法(大多數(shù)方法)都需要放在ToTensor方法之前,而處理tensor的方法(比如Normalize方法)就要放在ToTensor方法之后。
附上pytorch官方參考:https://pytorch.org/docs/stable/torchvision/transforms.html?highlight=torchvision%20transforms
以上這篇pytorch中的transforms模塊實(shí)例詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python模塊psycopg2連接postgresql的實(shí)現(xiàn)
本文主要介紹了Python模塊psycopg2連接postgresql的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Pandas 類型轉(zhuǎn)換astype()的實(shí)現(xiàn)
本文主要介紹了Pandas 類型轉(zhuǎn)換astype()的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Python?dataframe如何設(shè)置index
這篇文章主要介紹了Python?dataframe如何設(shè)置index,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05python中關(guān)于os.path.pardir的一些坑
這篇文章主要介紹了python中關(guān)于os.path.pardir的一些坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09解決jupyter 在瀏覽器中 代碼不執(zhí)行的問(wèn)題
這篇文章主要介紹了解決jupyter 在瀏覽器中 代碼不執(zhí)行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python3 assert斷言實(shí)現(xiàn)原理解析
這篇文章主要介紹了Python3 assert斷言實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03基于文件路徑中/?\?//?\\的用法以及絕對(duì)相對(duì)路徑的問(wèn)題
這篇文章主要介紹了基于文件路徑中/?\?//?\\的用法以及絕對(duì)相對(duì)路徑的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02python使用socket實(shí)現(xiàn)圖像傳輸功能
這篇文章主要為大家詳細(xì)介紹了python使用socket實(shí)現(xiàn)圖像傳輸功能,linux服務(wù)器與win10主機(jī)間的圖像傳輸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06Python實(shí)現(xiàn)通過(guò)繼承覆蓋方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)通過(guò)繼承覆蓋方法,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中采用子類覆蓋父類同名方法相關(guān)操作技巧,需要的朋友可以參考下2018-07-07Python使用CMD模塊更優(yōu)雅的運(yùn)行腳本
這篇文章主要介紹了Python使用CMD模塊更優(yōu)雅的運(yùn)行腳本的方法,實(shí)例分析了Python中cmd模塊的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05