1. 程式人生 > >「Deep Learning」理解PyTorch中的「torchvision.transforms」

「Deep Learning」理解PyTorch中的「torchvision.transforms」

QQ Group: 428014259
Sina Weibo:小鋒子Shawn
Tencent E-mail:[email protected]
http://blog.csdn.net/dgyuanshaofeng/article/details/84076608

閱讀的是PyTorch 0.4.1

0 torchvision.transforms

該類用於影象變換,以進行資料擴充,緩解深度模型過擬合問題。目前,其實有大量的專門的資料擴充Python軟體包,不過在不同框架中,會內建一些常見的操作。如果,處理的資料是醫學影象,比如CT和MR,實際上,資料歸一化到標準範圍,效果可能會更好。因為上述的粗暴影象變換,會增加深度模型對資料的理解/學習,對擬合過程進行了干擾,使得模型難以穩定訓練。

基本使用就是利用torchvision.transforms.Compose對幾種影象變換進行打包,組成複合變換,如下面:

 transforms.Compose([
 	 transforms.CenterCrop(10),
 	 transforms.ToTensor(),
])

將中心裁剪和變換為Tensor兩種操作進行了打包。Compose接收列表list,該列表由transforms的物件構成。

1 Transforms on PIL Image

在PIL Image上進行影象變換。

torchvision.transforms.CenterCrop,對影象進行中心裁剪。如果僅給int引數,那麼將裁剪正方形影象分塊;如果給出高和寬(h,w),那麼將裁剪矩形影象分塊。

torchvision.transforms.ColorJitter, 對影象進行亮度(brightness), 對比度(contrast), 飽和度(saturation)和色調(hue)隨機調節。

torchvision.transforms.FiveCrop,對影象進行四角好中心裁剪,獲得5張影象,通常用於分類的測試過程。

torchvision.transforms.Grayscale,將彩色影象轉換為灰度影象,可以指定輸出灰度影象的通道數。

torchvision.transforms.LinearTransformation,根據仿射矩陣進行變換,用於對資料進行白化(去相關)處理。

torchvision.transforms.Pad,對影象進行填充。

torchvision.transforms.RandomAffine,對影象進行隨機仿射變換。

torchvision.transforms.RandomApply,給定概率,對列表中的操作進行隨機使用。

torchvision.transforms.RandomChoice,對列表中的操作選擇一個,進行使用。

torchvision.transforms.RandomCrop,隨機裁剪影象分塊。

torchvision.transforms.RandomGrayscale,影象在給定概率下,變換為灰度影象。

torchvision.transforms.RandomHorizontalFlip,影象進行左右/水平隨機翻轉。

torchvision.transforms.RandomVerticalFlip,影象進行上下/豎直隨機翻轉。

torchvision.transforms.RandomOrder,對列表的操作進行隨機排序並使用。

torchvision.transforms.RandomResizedCrop,對影象進行不同大小和高寬比裁剪。

torchvision.transforms.RandomRotation,對影象進行隨機旋轉。

torchvision.transforms.Resize,對影象進行resize。

torchvision.transforms.TenCrop,對影象的四角和中心進行裁剪,進行左右翻轉之後,再進行四角和中心進行裁剪,共10張影象。

2 Transforms on torch.*Tensor

torchvision.transforms.Normalize,對張量影象進行均值和標準差歸一化,即標準正態分佈化。

3 Conversion Transforms

torchvision.transforms.ToPILImage,將張量或多維陣列,轉換為PIL Image。

torchvision.transforms.ToTensor,將多維陣列或PIL Image,轉換為張量。

4 Generic Transforms

自定義影象變換

5 Functional Transforms

函式式影象變換,跟上面的類似。
torchvision.transforms.functional.adjust_brightness
torchvision.transforms.functional.adjust_contrast
torchvision.transforms.functional.adjust_gamma
torchvision.transforms.functional.adjust_hue
torchvision.transforms.functional.adjust_saturation
torchvision.transforms.functional.affine
torchvision.transforms.functional.crop
torchvision.transforms.functional.five_crop
torchvision.transforms.functional.hflip
torchvision.transforms.functional.normalize
torchvision.transforms.functional.pad
torchvision.transforms.functional.resize
torchvision.transforms.functional.resized_crop
torchvision.transforms.functional.rotate
torchvision.transforms.functional.ten_crop
torchvision.transforms.functional.to_grayscale
torchvision.transforms.functional.to_pil_image
torchvision.transforms.functional.to_tensor
torchvision.transforms.functional.vflip