Pytorch - torchvision
简介
torchvision是Pytorch的计算机视觉工具库,是Pytorch专门用于处理图像的库。
model
torchvision.models中包含了许多已经训练好的模型,可以通过models直接调用。
模型
- AlexNet
- VGG
- ResNet
- SqueezeNet
- DenseNet
- …
datasets
torchvision.datasets中,包含了许多已经被处理过的图片数据集,可以通过datasets直接调用。
数据集
- MNIST:手写数字数据集
- COCO:用于图像标注和目标检测
- LSUN Classification
- ImageFolder
- Imagenet-12
- CIFAR10 and CIFAR100
- STL10
- …
transforms
transforms模块提供了一般的图像预处理方法, 例如
- 数据中心化
- 数据标准化
- 缩放
- 裁剪
- 旋转
- 翻转
- 填充
- 噪声添加
- 灰度变换
- 线性变换
- 仿射变换
- 亮度
- 饱满度及对比度变换
- …
这些方法可以用于对图像的数据增强,又称为数据增广,数据扩增,是对训练集进行变换,使训练集更加丰富,从而使模型具有泛化能力。
具体方法与函数:
裁剪 | 作用 |
---|---|
CenterCrop | 从图像中心裁剪图像 |
RandomCrop | 从图片中随即裁剪出给定尺寸的图片(可填充) |
ResizedCrop | 随即大小,长宽比剪裁图片 |
FiveCrop | 在图片的四个角和中心各截取一幅尺寸为size的图片 |
TenCrop | 在FiveCrop的基础上进行水平和垂直翻转,默认为水平翻转 |
翻转 | 作用 |
---|---|
RandomHorziontalFlip | 依概率水平翻转图片 |
RandomVerticalFlip | 依概率垂直翻转图片 |
RandomRotation | 随机旋转图片 |
图像处理 | 作用 |
---|---|
Pad | 对图片边缘进行填充 |
Resize | 修改图像分辨率 |
ColorJitter | 调整亮度,对比度,饱和度和色相 |
Grayscale | 转换为灰度 |
RandomGrayscale | 依概率转换为灰度图片 |
RandomAffine | 对图像进行仿射变换(二维的线性变换),即旋转、平移、缩放、错切和翻转 |
RandomErasing | 对图像进行随机遮挡 |
Normalize | 逐channel的对图像进行标准化, output = (input - mean) / std |
Lanbda | 用户自定义Lambda方法 |
Totensor | 转化为张量 |
LinearTransformation | 对矩阵做线性变换,可以用于白化处理 |
ToPILImage | 将ndarray或者张良转化为PIL Image类型数据 |
transforms操作 | 作用 |
---|---|
RandomChoice | 从一系列transforms中选择一个 |
RandomApply | 依概率执行一组transforms操作 |
RandomOrder | 对一组transforms操作打乱顺序 |
代码实现
来源:oschina
链接:https://my.oschina.net/u/4313604/blog/4565648