
torch笔记十四 | ImageFolder & DataLoader
发布日期:2021-05-07 00:10:01
浏览次数:26
分类:精选文章
本文共 1083 字,大约阅读时间需要 3 分钟。
ImageFolder 是一个通用的数据加载器,用于加载图像数据集。在使用该数据加载器之前,需要确保同一类别的图片被组织到同一文件夹中。例如,在猫狗分类任务中,数据集的组织格式如下:
root/dog/xxx.pngroot/dog/xxy.pngroot/dog/xxz.pngroot/cat/123.pngroot/cat/nsdf3.pngroot/cat/asd932_.png
ImageFolder 参数
ImageFolder 的构造函数定义如下:
dataset = torchvision.datasets.ImageFolder( root, transform=None, target_transform=None, loader=default_loader, is_valid_file=None)
常用参数包括:
- root:指向包含类别文件夹的上一级目录。
- transform:用于对图片数据进行增强处理。
- target_transform:用于对图片标签进行预处理,若不传递参数,默认不对标签进行任何转换。
ImageFolder 返回的数据集结构如下:
- classes:保存类别名称列表,如 ['cat', 'dog']。
- class_to_idx:保存类别与索引的映射,如 {'cat': 0, 'dog': 1}。
- imgs:保存图片路径与索引的元组列表。
DataLoader
DataLoader 是一个用于数据加载的工具,用于将大规模数据集分成多个小批量,方便在训练过程中逐批加载数据。其主要用途是:
- 数据分批:将训练数据分成多个小组。
- 数据加载:在训练时,逐步加载数据。
- 数据增强:可通过对数据集应用变换来增加数据多样性。
DataLoader 的构造函数定义如下:
dataloaders = DataLoader( dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, pin_memory=False, drop_last=False)
常用参数包括:
- batch_size:指定每批数据的大小。
- shuffle:是否对数据进行随机打乱。
- num_workers:设置读取数据的线程数量,0 表示不使用多线程。
- pin_memory:将 tensors 直接加载到 GPU 内存中。
- drop_last:是否丢弃最后一个批次不足 batch_size 的数据。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月14日 17时54分41秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Arduino mega2560+MPU6050利用加速度值控制舵机
2019-03-04
紫书——蛇形填数
2019-03-04
A Guide to Node.js Logging
2019-03-04
webwxbatchgetcontact一个神奇的接口
2019-03-04
【考研英语-基础-简单句】简单句的核心变化_谓语情态
2019-03-04
实现一个简易Vue(三)Compiler
2019-03-04
仿小米商城(上)
2019-03-04
HTML 和 CSS 简单实现注册页面
2019-03-04
(SpringMVC)springMVC.xml 和 web.xml
2019-03-04
jQuery中的动画
2019-03-04
1.2.3 项目、项目集、项目组合以及运营管理之间的关系
2019-03-04
【△重点△】LeetCode - 4. 寻找两个正序数组的中位数——二分查找
2019-03-04
LeetCode - 5. 最长回文子串——字符串、动态规划
2019-03-04
全局锁和表锁 :给表加个字段怎么有这么多阻碍?
2019-03-04
二分查找与插入排序的结合使用
2019-03-04
892 三维形体的表面积(分析)
2019-03-04
279 完全平方数(bfs)
2019-03-04
875 爱吃香蕉的珂珂(二分查找)
2019-03-04
第十一届蓝桥杯python组第二场省赛-数字三角形
2019-03-04
BST中某一层的所有节点(宽度优先搜索)
2019-03-04