比如,你遇到的一個任務,目前只有小幾百的數據,然而目前流行的最先進的神經網絡都是成千上萬的圖片數據,可以通過數據增強來實現。
常用的數據增強手段:
- Flip(翻轉)
- Rotation(旋轉)
- Scale(縮放)
- Random Move&Crop(移位&裁剪)
- Gaussian Noise(高斯噪聲)
前4個操作都是由torchvision包中的transforms完成的。
1 train_loader = torch.utils.data.DataLoader( 2 datasets.MNIST('datasets/data', train=True, download=True, 3 transform=transforms.Compose([ 4 transforms.RandomHorizontalFlip(), #水平翻轉 5 transforms.RandomVerticalFlip(), #豎直翻轉 6 transforms.RandomRotation(15), #旋轉,范圍-15°~15° 7 transforms.RandomRotation([90, 180, 270]), #從三個角度中挑一個旋轉 8 transforms.Resize([32, 32]), #縮放 9 transforms.RandomCrop([28, 28]), #隨機裁剪 10 transforms.ToTensor(), 11 # transforms.Normalize((0.1307,), (0.3081,)) 12 ])), 13 batch_size=batch_size, shuffle=True)