一、數據增強
1、增加一個已有數據集,使得有更多的多樣性,比如加入不同的背景噪音、改變圖片的顏色和形狀。
2、增強數據是在線生成的
3、增強類型:
(1)翻轉
(2)切割
(3)顏色
(4)銳化、加斑點
二、總結
1、數據增廣通過變形數據來獲取多樣性,從而使得模型泛化性更好
2、常見圖片增廣包括翻轉、切割、變色
3、就是把數據集換了而已
4、為了在預測過程中得到確切的結果,我們通常對訓練樣本只進行圖像增廣,而在預測過程中不使用帶隨機操作的圖像增廣。
5、深度學習框架提供了許多不同的圖像增廣方法,這些方法可以被同時應用。
三、代碼
1、增廣方法aug
def apply(img, aug, num_rows=2, num_cols=4, scale=1.5):Y = [aug(img) for _ in range(num_rows * num_cols)]d2l.show_images(Y, num_rows, num_cols, scale=scale)
2、翻轉
apply(img, torchvision.transforms.RandomHorizontalFlip()) apply(img, torchvision.transforms.RandomVerticalFlip())
3、裁剪
#面積為原始面積10%到100%的區域,寬高比從0.5~2之間隨機取值 shape_aug = torchvision.transforms.RandomResizedCrop((200, 200), scale=(0.1, 1), ratio=(0.5, 2)) apply(img, shape_aug)
4、亮度
apply(img, torchvision.transforms.ColorJitter(brightness=0.5, contrast=0, saturation=0, hue=0))
5、色調
apply(img, torchvision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0.5))
亮度(brightness
)、對比度(contrast
)、飽和度(saturation
)和色調(hue
)
6、混合
augs = torchvision.transforms.Compose([torchvision.transforms.RandomHorizontalFlip(), color_aug, shape_aug]) apply(img, augs)