我可以在训练期间通过应用随机变换(旋转/平移/重新缩放)来增强数据,但我不知道选择的值。
我需要知道应用了哪些值。我可以手动设置这些值,但这样我就失去了火炬视觉变换提供的很多好处。
有没有一种简单的方法可以让这些价值观以合理的方式实现并在培训期间应用?
这是一个例子。我希望能够打印出每个图像上应用的旋转角度、平移/重新缩放:
import numpy as np
import matplotlib.pyplot as plt
from torchvision import transforms
RandAffine = transforms.RandomAffine(degrees=0, translate=(0.1, 0.1), scale=(0.8, 1.2))
rotate = transforms.RandomRotation(degrees=45)
shift = RandAffine
composed = transforms.Compose([rotate,
shift])
# Apply each of the above transforms on sample.
fig = plt.figure()
sample = np.zeros((28,28))
sample[5:15,7:20] = 255
sample = transforms.ToPILImage()(sample.astype(np.uint8))
title = ['None', 'Rot','Aff','Comp']
for i, tsfrm in enumerate([None,rotate, shift, composed]):
if tsfrm:
t_sample = tsfrm(sample)
else:
t_sample = sample
ax = plt.subplot(1, 5, i + …Run Code Online (Sandbox Code Playgroud) python affinetransform pytorch torchvision data-augmentation