PyTorch教程:数据集划分与Dataloader应用实例
63 浏览量
更新于2024-08-30
收藏 82KB PDF 举报
在PyTorch学习笔记的第五部分,我们关注的是数据加载器(Dataloader)和数据集(Dataset)在实际项目中的应用,以人民币识别为例。这部分主要介绍了如何对原始数据进行划分,以便于模型训练、验证和测试。首先,作者引入了`split_dataset`函数,用于将数据集按照预定义的比例(如80%用于训练,10%用于验证,10%用于测试)进行分割。
在代码中,定义了一个`makedir`函数来创建新的目录,如果目录不存在的话。`dataset_dir`和`split_dir`分别指向存放原始人民币图像数据和分割后的子目录。`train_dir`、`valid_dir`和`test_dir`分别对应训练集、验证集和测试集。通过`os.walk`遍历`dataset_dir`下的所有子目录,并获取每个子目录下的图像文件。这里使用`lambdax:x.endswith('.jpg')`过滤出只包含.jpg格式的图片。
接下来,通过`random.shuffle(imgs)`随机打乱图片的顺序,确保数据分布的随机性。然后根据训练集、验证集和测试集的比例计算出相应的分割点。根据图片索引`i`的值,将图片移动到对应的输出目录:若`i`小于训练点,则放入训练集;若在训练集和验证集之间,则放入验证集;否则放入测试集。
最后,`makedir(out_dir)`确保目标输出目录存在后,将图片从原位置移动到新的目录,并保存图片的完整路径`target_path`,同时将图片复制到指定的子目录下。
通过这个过程,我们可以看到如何利用PyTorch的`Dataset`接口自定义数据处理逻辑,以及`DataLoader`如何从这些预处理过的数据集中高效地加载小批量数据,以供深度学习模型进行训练和评估。这对于理解和实现一个完整的机器学习流程至关重要,特别是对于计算机视觉任务,如图像分类和识别。理解并灵活运用这些基础工具能极大地提升开发效率和模型性能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-06 上传
2022-07-20 上传
2021-04-29 上传
2022-12-02 上传
2021-02-16 上传
2022-04-24 上传
weixin_38736018
- 粉丝: 8
- 资源: 855
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器