pytorch中transform常用的幾個方法

2021-09-25 21:17:13 字數 4781 閱讀 4233

二、翻轉和旋轉——flip and rotation

三、影象變換

四、對transforms操作,使資料增強更靈活

裁剪——crop

中心裁剪:transforms.centercrop

隨機裁剪:transforms.randomcrop

隨機長寬比裁剪:transforms.randomresizedcrop

上下左右中心裁剪:transforms.fivecrop

上下左右中心裁剪後翻轉,transforms.tencrop

翻轉和旋轉——flip and rotation

依概率p水平翻**transforms.randomhorizontalflip(p=0.5)

依概率p垂直翻**transforms.randomverticalflip(p=0.5)

隨機旋**transforms.randomrotation

class torchvision.transforms.randomcrop(size, padding=none, pad_if_needed=false, fill=0, padding_mode=『constant』)

功能:依據給定的size隨機裁剪

引數:size- (sequence or int),若為sequence,則為(h,w),若為int,則(size,size)

padding-(sequence or int, optional),此引數是設定填充多少個pixel。

當為int時,影象上下左右均填充int個,例如padding=4,則上下左右均填充4個pixel,若為3232,則會變成4040。

當為sequence時,若有2個數,則第乙個數表示左右擴充多少,第二個數表示上下的。當有4個數時,則為左,上,右,下。

fill- (int or tuple) 填充的值是什麼(僅當填充模式為constant時有用)。int時,各通道均填充該值,當長度為3的tuple時,表示rgb通道需要填充的值。

padding_mode- 填充模式,這裡提供了4種填充模式,1.constant,常量。2.edge 按照邊緣的畫素值來填充。3.reflect,暫不了解。 4. symmetric,暫不了解。

class torchvision.transforms.centercrop(size)

功能:依據給定的size從中心裁剪

引數:size- (sequence or int),若為sequence,則為(h,w),若為int,則(size,size)

class torchvision.transforms.randomresizedcrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation=2)

功能:隨機大小,隨機長寬比裁剪原始,最後將resize到設定好的size

引數:size- 輸出的解析度

scale- 隨機crop的大小區間,如scale=(0.08, 1.0),表示隨機crop出來的會在的0.08倍至1倍之間。

ratio- 隨機長寬比設定

interpolation- 插值的方法,預設為雙線性插值(pil.image.bilinear)

class torchvision.transforms.fivecrop(size)

功能:對進行上下左右以及中心裁剪,獲得5張,返回乙個4d-tensor

引數:size- (sequence or int),若為sequence,則為(h,w),若為int,則(size,size)

class torchvision.transforms.tencrop(size, vertical_flip=false)

功能:對進行上下左右以及中心裁剪,然後全部翻轉(水平或者垂直),獲得10張,返回乙個4d-tensor。

引數:size- (sequence or int),若為sequence,則為(h,w),若為int,則(size,size)

vertical_flip (bool) - 是否垂直翻轉,預設為flase,即預設為水平翻轉

class torchvision.transforms.randomhorizontalflip(p=0.5)

功能:依據概率p對pil進行水平翻轉

引數:p- 概率,預設值為0.5

class torchvision.transforms.randomverticalflip(p=0.5)

功能:依據概率p對pil進行垂直翻轉

引數:p- 概率,預設值為0.5

class torchvision.transforms.randomrotation(degrees, resample=false, expand=false, center=none)

功能:依degrees隨機旋轉一定角度

引數:degress- (sequence or float or int) ,若為單個數,如 30,則表示在(-30,+30)之間隨機旋轉

若為sequence,如(30,60),則表示在30-60度之間隨機旋轉

resample- 重取樣方法選擇,可選 pil.image.nearest, pil.image.bilinear, pil.image.bicubic,預設為最近鄰

expand- ?

center- 可選為中心旋轉還是左上角旋轉

class torchvision.transforms.resize(size, interpolation=2)

功能:重置影象解析度

引數:size- if size is an int, if height > width, then image will be rescaled to (size * height / width, size),所以建議size設定為h*w

interpolation- 插值方法選擇,預設為pil.image.bilinear

class torchvision.transforms.normalize(mean, std)

功能:對資料按通道進行標準化,即先減均值,再除以標準差,注意是 hwc

class torchvision.transforms.totensor

功能:將pil image或者 ndarray 轉換為tensor,並且歸一化至[0-1]

注意事項:歸一化至[0-1]是直接除以255,若自己的ndarray資料尺度有變化,則需要自行修改。

class torchvision.transforms.pad(padding, fill=0, padding_mode=『constant』)

功能:對影象進行填充

引數:padding-(sequence or int, optional),此引數是設定填充多少個pixel。

當為int時,影象上下左右均填充int個,例如padding=4,則上下左右均填充4個pixel,若為3232,則會變成4040。

當為sequence時,若有2個數,則第乙個數表示左右擴充多少,第二個數表示上下的。當有4個數時,則為左,上,右,下。

fill- (int or tuple) 填充的值是什麼(僅當填充模式為constant時有用)。int時,各通道均填充該值,當長度為3的tuple時,表示rgb通道需要填充的值。

padding_mode- 填充模式,這裡提供了4種填充模式,1.constant,常量。2.edge 按照邊緣的畫素值來填充。3.reflect,? 4. symmetric,?

class torchvision.transforms.colorjitter(brightness=0, contrast=0, saturation=0, hue=0)

功能:修改修改亮度、對比度和飽和度

class torchvision.transforms.grayscale(num_output_channels=1)

功能:將轉換為灰度圖

引數:num_output_channels- (int) ,當為1時,正常的灰度圖,當為3時, 3 channel with r == g == b

class torchvision.transforms.lineartransformation(transformation_matrix)

功能:對矩陣做線性變化,可用於白化處理! whitening: zero-center the data, compute the data covariance matrix

引數:transformation_matrix (tensor) – tensor [d x d], d = c x h x w

class torchvision.transforms.randomaffine(degrees, translate=none, scale=none, shear=none, resample=false, fillcolor=0)

功能:仿射變換

class torchvision.transforms.randomgrayscale(p=0.1)

功能:依概率p將轉換為灰度圖,若通道數為3,則3 channel with r == g == b

class torchvision.transforms.topilimage(mode=none)

功能:將tensor 或者 ndarray的資料轉換為 pil image 型別資料

引數:mode- 為none時,為1通道, mode=3通道預設轉換為rgb,4通道預設轉換為rgba

pytorch不僅可設定對的操作,還可以對這些操作進行隨機選擇、組合

功能:從給定的一系列transforms中選乙個進行操作,randomly picked from a list

功能:給乙個transform加上概率,以一定的概率執行該操作

功能:將transforms中的操作順序隨機打亂

過度Transition與transform 轉換

過度transition css的transition允許css的屬性值在一定的時間區間內平滑的過渡 語法格式 transition 屬性名 時間 速度曲線 何時開始 transition width 2s ease in 2s webkit transition width 2s ease in ...

簡單粗暴的解釋css3中的transform屬性

事先說明,本文範疇尚限制在2d的transform中。對於css3的transform屬性,真是愛不釋手,有了這個特性,各種特效輕鬆搞定。引用一句歌詞 旋轉,跳躍,我不停歇 transform就是這麼時尚,就是這麼任性。當然他任性的地方不只是在功能方面,還有在使用方面。我們看一下w3c官網中關於tr...

Unity程式設計標準導引 3 3 Transform

每個遊戲物件 gameobject 其存在於遊戲世界,都有乙個位置 朝向 大小等基本定位資訊 其存於hierarchy面板,也存在與其他gameobject的相對關係,如父子關係 兄弟關係。unity中使用transform來描述和操作這些屬性。transform的字面理解就是 變換 的意思,所有的...