pytorch基础(六)--------transforms图像预处理

一、transforms运行机制

在我们配置conda环境时,安装了torch和torchvision。其中的torchvision就是计算机视觉工具。
在torchvision中有几个比较重要的方法:
torchvision.transforms:常用的图像预处理方法
torchvision.datasets:常用的数据集dataset实现(提供了常用的数据集),如MNIST,CIFAR-10,ImageNet等
torchvision.model:提供了常用的网络模型

在transforms中提供了大量的图像数据预处理的方法,如数据中心化、数据标准化、缩放、裁剪、旋转、翻转、填充、噪声增加、灰度变化、线性变换、仿射变换、亮度等
代码展示:

from torchvision import transforms
norm_mean = [0.485, 0.456, 0.406]
norm_std = [0.229, 0.224, 0.225]

# 三个最基本的转换
train_trans = transforms.Compose([
    transforms.Resize((32, 32)),	# 将图像形状调整为输入网络模型的大小
    transforms.RandomGrayscale(0.9), # 随机90%的图像 灰度化处理
    transforms.ToTensor(),  # 转换为张量并进行归一化操作
    transforms.Normalize(norm_mean, norm_std)	# 进行标准化
])

在Dataset处理图像数据中,transforms作用在__getitem__方法中。

二、数据标准化

对数据进行标准化的原因是标准化后会加快模型的收敛

transforms.Normalize(mean, std, inplace=False)
功能:逐通道(channel)的对图像进行标准化
output = (input - mean)/ std
参数:
mean:各通道的均值
std:各通道的标准差
inplace:是否原地操作(也就是否在原内存地址进行操作,是否开辟新的内存空间)

你可能感兴趣的:(计算机视觉,pytorch,深度学习)