torch笔记十四 | ImageFolder & DataLoader

ImageFolder

一、数据集整理

ImageFolder是一个通用的数据加载器,加载数据的之前,需要我们提前把同一类别的图片放到一个文件夹中。例如在猫狗分类中,以下面这种格式来组织数据集的训练、验证或者测试图片。

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

root/cat/123.png
root/cat/nsdf3.png
root/cat/asd932_.png

二、ImageFolder的参数

dataset=torchvision.datasets.ImageFolder(
                       root, transform=None, 
                       target_transform=None, 
                       loader=<function default_loader>, 
                       is_valid_file=None)

常用参数:

  • root :为类别文件夹的上一级目录
  • transform:是图片数据增强的方式
  • target_transform:对图片的label进行预处理的操作,如果不传该参数,即对 target 不做任何转换,返回的顺序索引 0,1, 2…

返回的dataset:

  • dataset 的结构: [(img_data,class_id),(img_data,class_id),…]
  • dataset.classes:保存类别名称的列表 [‘cat’, ‘dog’]
  • dataset.class_to_idx:类别对应的索引 {‘cat’: 0, ‘dog’: 1}
  • dataset.imgs:保存 (图片路径, 索引) 元组的列表

DataLoader

一、用途

Dataloader 就是一个数据加载器,可以在训练的时候,把训练数据分成多个小组,每次抛出一组数据,直至把所有的数据都抛出。

二、DataLoader的参数

dataloaders = Data.DataLoader(dataset,			# 需要导入的数据集
							  batch_size=1, 	# 一批多少个数据
							  shuffle=False, 	# 是否打乱顺序
							  sampler=None, 	# 取样器,从dataset中抽取数据的策略(使用时shuffle必须为False)
                              num_workers=0, 	# 使用多线程读取数据,0表示不使用多线程(Windows系统)
                              pin_memory=False,	# 将tensor放到cuda
                              drop_last=False)	# dataset中最后不足一个batch的数据是否丢掉
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值