- 之前一直搞不清出PyTorch的transform的作用原理以及应该如何使用pytorch做数据增强,看了上面的引用中的回答总算明白了,在从dataloader中获取训练数据的时候(获取每个epoch的时候)他
会把下面Compose里面的transform都做一遍
,但是由于里面有的操作有random属性(下面例子中只有RandomHorizontlFlip有随机属性,有的epoch做有的epoch不做),所以每个epoch对图片的处理方式都不尽相同
,所以到达了数据增强的目的。
data_transform={'train':transforms.Compose([
transforms.RandomHorizontalFlip(),
transforms.Resize(image_size),
transforms.CenterCrop(image_size),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
]),
-
可以通过这种方式将一个不是随机的transform变成一个随机的transform
-
虽然名字没带随机,但是却是对图像亮度对比度进行了随机的变换。
- 对图像进行随机的crop以后再resize成固定大小
transforms.RandomResizedCrop(size=224, scale=(0.5, 1.0)),