解决pytorch DataLoader num_workers出现的问题


Posted in Python onJanuary 14, 2020

最近在学pytorch,在使用数据分批训练时在导入数据是使用了 DataLoader 在参数 num_workers的设置上使程序出现运行没有任何响应的结果 ,看看代码

import torch  #导入模块
import torch.utils.data as Data

BATCH_SIZE=8 #每一批的数据量

x=torch.linspace(1,10,10) #定义X为 1 到 10 等距离大小的数
y=torch.linspace(10,1,10)

#转换成torch能识别的Dataset
torch_dataset = Data.TensorDataset( x,y) #将数据放入 torch_dataset

loader=Data.DataLoader(
    dataset=torch_dataset,   #将数据放入loader
    batch_size=BATCH_SIZE, #每个数据段大小为 BATCH_SIZE=5
    shuffle=True ,  #是否打乱数据的排布
    num_workers=2 #每次提取数据多进进程为2
    )
for epoch in range(3):
  
  for step,(batch_x,batch_y) in enumerate(loader):
    
    print('epoch',epoch,'|step:',step," | batch_x",batch_x.numpy(),

       '|batch_y:',batch_y.numpy())

(以上代码取莫烦python教学视频,教学视频中没有报错)

程序就停止成这样了

解决pytorch DataLoader num_workers出现的问题

上网查询没有得到有用的东西,因为程序没有报错,就是没有任何反应,(没有反应可能跟电脑或者编译器有关,我使用的是anconda spyder)于是决定自己找找

期初我采用在语句后面加 print('1')检测程序停在了什么地方,(其实这是一种笨方法,在这里可以采用断点调试)程序停在了 for step,(batch_x,batch_y) in enumerate(loader):

我以为是enumerate的问题,查资料发现这就是一个可返回列表元素和键值的函数,不存在问题

继续排查,把目光放在了loader,于是查询了DataLoader的参数

DataLoader的函数定义如下:

DataLoader(dataset, batch_size=1, shuffle=False, sampler=None,
num_workers=0, collate_fn=default_collate, pin_memory=False,
drop_last=False)

1. dataset:加载的数据集(Dataset对象)

2. batch_size:batch size

3. shuffle::是否将数据打乱

4. sampler: 样本抽样,后续会详细介绍

5. num_workers:使用多进程加载的进程数,0代表不使用多进程

6. collate_fn: 如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可

7. pin_memory:是否将数据保存在pin memory区,pin memory中的数据转到GPU会快一些

8. drop_last:dataset中的数据个数可能不是batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃

发现我所定义的几个参数只有num_workers嫌疑最大,于是将参数值改成了默认值 0,程序可以运行了,(一把老泪纵横)

看看进程是什么鬼 发现在这里好像没啥用(具体自己上网查查)

解决pytorch DataLoader num_workers出现的问题

以上这篇解决pytorch DataLoader num_workers出现的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用Scrapy爬取妹子图
May 28 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
使用Python读取二进制文件的实例讲解
Jul 09 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
Dec 15 Python
对python_discover方法遍历所有执行的用例详解
Feb 13 Python
Python3实现zip分卷压缩过程解析
Oct 09 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
python3中编码获取网页的实例方法
Nov 16 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
Jan 14 #Python
python重要函数eval多种用法解析
Jan 14 #Python
关于ResNeXt网络的pytorch实现
Jan 14 #Python
Python属性和内建属性实例解析
Jan 14 #Python
Python程序控制语句用法实例分析
Jan 14 #Python
dpn网络的pytorch实现方式
Jan 14 #Python
Django之form组件自动校验数据实现
Jan 14 #Python
You might like
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
php curl发送请求实例方法
2019/08/01 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
js获取内联样式的方法
2015/01/27 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
python机器学习理论与实战(二)决策树
2018/01/19 Python
python构建基础的爬虫教学
2018/12/23 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
python Jupyter运行时间实例过程解析
2019/12/13 Python
Python 使用office365邮箱的示例
2020/10/29 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
学生干部学习的自我评价
2014/02/18 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
节能环保标语
2014/06/12 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python
nginx 配置指令之location使用详解
2022/05/25 Servers