Pytorch 图片处理与数据增广
本方法总结自《动手学深度学习》(Pytorch版)github项目
- Pytorch 数据增广主要依赖于 torchvision.transform 库
图片读取
from PIL import Image
img = Image.open('./a.jpg')
图片增广
- 单一增广
import torchvision
aug1 = torchvision.transforms.RandomHorizontalFlip(p=0.5) # 随机水平翻转, p 默认为 0.5
img = aug1(img) # 增广处理
aug2 = torchvision.transforms.RandomVerticalFlip() # 垂直翻转
aug3 = torchvision.transforms.RandomResizedCrop(size=200, scale=(0.1, 1), ratio=(0.2, 2))
# size 为裁剪加上再 resize 后的最终size, scale: 裁剪图像为原图像的 10% ~ 100% 不等,裁剪的宽高比为 0.2 ~ 2 不等
# 将图片转为 tensor 形式
aug4 = torchvision.transform.ToTensor()
- 同时进行多个处理
augs = torchvision.transforms.Compose([
aug1, aug2, aug3, aug4
])
img = augs(img)
在实现时一定要将图片转化为 tensor 再进行网络训练