创建数据预处理函数

from torchvision import transforms  
  
data_transforms = {  
    'train': transforms.Compose([  
        transforms.RandomResizedCrop(48),  # 在随机大小和比例下裁剪图像,然后缩放到48x48  
        transforms.RandomHorizontalFlip(),  # 以一定的概率水平翻转图像  
        transforms.ToTensor(),  # 将PIL Image或numpy.ndarray转换为torch.Tensor,并缩放到[0.0, 1.0]  
        transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])  # 标准化图像  
    ]),  
    'val': transforms.Compose([  
        transforms.Resize(64),  # 缩放图像到64x64  
        transforms.CenterCrop(48),  # 从中心裁剪出48x48的区域  
        transforms.ToTensor(),  # 将PIL Image或numpy.ndarray转换为torch.Tensor,并缩放到[0.0, 1.0]  
        transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])  # 标准化图像  
    ]),  
}

训练集 ('train') 变换

  1. transforms.RandomSizedCrop(48)
    • 随机大小裁剪。从输入图像中随机选择一个区域进行裁剪,裁剪出的图像大小是 48x48 像素。裁剪的区域大小会在原始图像大小的某个范围内随机选择,但具体范围可能因 RandomSizedCrop 的实现或参数设置而异(注意:RandomSizedCrop 不是一个标准的 PyTorch 变换,可能是 RandomResizedCrop 的误写或某个特定库的自定义变换)。
  2. transforms.RandomHorizontalFlip()
    • 随机水平翻转。以 0.5 的概率对图像进行水平翻转,这有助于模型学习对图像的水平方向不敏感的特征。
  3. transforms.ToTensor()
    • 将 PIL 图像或 NumPy ndarray 转换为 PyTorch 的 Tensor,并将像素值从 [0, 255] 缩放到 [0.0, 1.0]。
  4. transforms.Normalize([0.5,0.5,0.5], [0.5,0.5,0.5])
    • 标准化。使用给定的均值和标准差对图像进行标准化。这里,均值和标准差都是 [0.5, 0.5, 0.5],意味着每个颜色通道(红、绿、蓝)的像素值都会减去 0.5 并除以 0.5,从而使数据具有零均值和单位方差。

验证集 ('val') 变换

  1. transforms.Scale(64)
    • 缩放。将图像缩放到 64x64 像素。这通常用于确保所有图像具有相同的尺寸,以便能够批量处理。
  2. transforms.CenterCrop(48)
    • 中心裁剪。从缩放后的图像中心裁剪出一个 48x48 像素的区域。这有助于消除缩放时可能引入的边界效应。
  3. transforms.ToTensor() 和 transforms.Normalize([0.5,0.5,0.5], [0.5,0.5,0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值