学习笔记一——torchvision.datasets.ImageFolder

学习笔记torchvision.datasets.ImageFolder使用

  • ImageFolder简介
  • ImageFolder参数设置
  • ImageFolder程序案例
    • transforms.Compose()详解

学习链接: [link](链接: link.).

ImageFolder简介

ImageFolder是一个通用的数据加载器,训练集和测试接的格式为
下面是文件名

root/dog/xxx.png
root/dog/xxy.png
root/dog/xxz.png
root/cat/xxx.png
root/cat/xxy.png
root/cat/xxz.png

通常将其分为训练集和测试集(还有一部分会有测试集)
形式为./data/train./data/val(或者是valid)
测试集(./data/test

ImageFolder参数设置

dataset=torchvision.datasets.ImageFolder(
                       root, transform=None, 
                       target_transform=None, 
                       loader=<function default_loader>, 
                       is_valid_file=None)
  • root:图片存储的根目录,就是test和val的上一级目录。
  • transform:对图片进行预处理操作的函数。
  • target_transform:对图片类别进行预处理操作,若果不传递该参数返回的是索引0,1,2。(不是很理解也暂时没有用到)
  • loader:表示数据的加载方式,通常默认加载方式
  • is_valid_file:获取图像文件的论净并检查改文件是否为有效文件的函数(检查损坏文件)

ImageFolder程序案例

# ImageFolder程序案例
all_imgs = datasets.ImageFolder(os.path.join(data_dir, "train"), transforms.Compose([
        transforms.RandomResizedCrop(input_size),
        transforms.RandomHorizontalFlip(),
        transforms.ToTensor(),
    ]))

transforms.Compose()详解

  • 作用:transforms.Compose()类用来组合多个torchvision.transforms操作。
  • 参数:一个list数组,数组里是多个’Transform’对象,即[transforms, transforms…]。
  • 操作:如下所示,遍历list数组,对img依次执行每个transforms操作,并返回transforms后的img。
    程序中的几个函数的作用
    transforms.RandomResizedCrop–随机裁剪
    transforms.RandomHorizontalFlip–依据概率p对PIL图片进行水平翻转默认值为0.5。
    transforms.ToTensor–将PIL Image或者 ndarray 转换为tensor,并且归一化至[0-1] 注意事项:归一化至[0-1]是直接除以255,若自己的ndarray数据尺度有变化,则需要自行修改。
    其他的用法见链接: link.

你可能感兴趣的:(神经网络,pytorch)