Torchvision

transforms.Compose

用于定义一个图像预处理流程,常见方法有

transforms.ToTensor(): 将PIL图像或NumPy ndarray转换为PyTorch的Tensor格式,并将其范围从[0, 255]缩放到[0.0, 1.0]。
transforms.Normalize(mean, std): 对图像进行标准化。这通常用于将模型在训练时使用的标准化应用到测试数据上。
transforms.RandomHorizontalFlip(): 随机水平翻转图像。
transforms.RandomVerticalFlip(): 随机垂直翻转图像。
transforms.RandomRotation(degrees): 随机旋转图像一定的角度。
transforms.RandomZoom(scale): 随机缩放图像。
transforms.RandomTranslate(x_percent, y_percent): 随机平移图像。
transforms.RandomCrop(size): 从图像中随机裁剪出一个固定大小的小块。
transforms.CenterCrop(size): 在图像的中心裁剪出一个固定大小的小块。
transforms.Resize(size): 调整图像的大小。
transforms.Pad(padding, fill=0): 对图像进行填充。
transforms.RandomOrder(transforms): 随机打乱一系列转换的顺序。
transforms.RandomChoice(transforms): 从给定的转换列表中随机选择一个进行应用。

使用方法

  1. 导入所需的库和模块:
import torchvision.transforms as transforms
  1. 创建一个转换流程(Compose),将所需的转换函数依次添加到流程中:
train_tfm = transforms.Compose([  
    transforms.Resize((128, 128)),  # 调整图像大小为128x128  
    transforms.RandomHorizontalFlip(),  # 随机水平翻转图像  
    transforms.ToTensor(),  # 将图像转换为Tensor格式  
    # 添加其他需要的转换函数  
])
  1. 使用创建的转换流程对图像进行预处理:
image = Image.open("path/to/image.jpg")  # 打开图像文件  
preprocessed_image = train_tfm(image)  # 对图像进行预处理