没有合适的资源?快使用搜索试试~ 我知道了~
RuntimeError: DataLoader worker (pid(s) 9528, 8320) exited unexp...
55 下载量 158 浏览量
2021-01-06
21:01:17
上传
评论
收藏 42KB PDF 举报
温馨提示
原文地址 分类目录——Pytorch 关键词: Data.DataLoader、num_workers、batch Pytorch在开进行小批量数据下降时开多进程报错 报错内容 RuntimeError: DataLoader worker (pid(s) 9528, 8320) exited unexpectedly 去网上搜教程,说是在loader定义的时候多进程的参数指定的问题,我的loader定义如下 loader = Data.DataLoader( dataset=torch_dataset, # torch TensorDataset format ba
资源推荐
资源详情
资源评论
RuntimeError: DataLoader worker (pid(s) 9528, 8320)
exited unexpectedly
原文地址
分类目录——Pytorch
关键词:
Data.DataLoader、num_workers、batch
Pytorch在开进行小批量数据下降时开多进程报错
报错内容
RuntimeError: DataLoader worker (pid(s) 9528, 8320) exited unexpectedly
去网上搜教程,说是在loader定义的时候多进程的参数指定的问题,我的loader定义如下
loader = Data.DataLoader(
dataset=torch_dataset, # torch TensorDataset format
batch_size=BATCH_SIZE, # mini batch size
shuffle=True, # 要不要打乱数据 (打乱比较好)
num_workers=2, # 多线程来读数据
)
其中num_workers是用来指定开多进程的数量,默认值为0,表示不启用多线程。
网上给出的解决方案是
设置 num_workers=0; 或者
删掉这个属性的设置(也就是取默认值0)
但是这终归是个意淫的解决方式,当遇到大量数据处理时,势必要采用并行的处理方式才是科学高效的。
最终在 这里 找到了解决方案,就是把含有多线程操作的部分放在if __name__ == '__main__'的范围内,在我这里即
if __name__ == '__main__':
for epoch in range(3):
for step, (batch_x, batch_y) in enumerate(loader):
# 假设这里就是你训练的地方...
里面的loader就是上面定义的loader,指定了多进程的。另外只需要loader的执行部分放在main之内即可,定义部分可以在
main内,也可以在main之外
后来我也恍悟,Python中多进程(multiprocessing这个模块包)的内容必须放在if __name__ == '__main__'之内才可以。多线程
(threading这个模块包)是没有这项限定的。
作者:BBJG_001
资源评论
weixin_38674992
- 粉丝: 7
- 资源: 964
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 灵敏度分析:使用SALib库进行全局灵敏度分析以评估模型输入变量对输出的影响
- Linux 常用命令大全包括文件操作、系统管理、进程管理、网络管理等
- installrite静默安装包制作视频教程
- boltons-Python 实用工具
- Python 运行时信号事件分配系统
- 使用python实现蒙特卡洛模拟代码
- cvxpy库实现不确定参数的鲁棒优化问题
- 三电平半桥LLC谐振变换器电路仿真 采用频率控制方式 引入一定的移相角度(比较小) 驱动信号采用CMPA CMPB方式产生 增计
- delphi+数据控制组件+查询
- 单片机仿真∶电流电压检测系统 可完成(1)电网参数监测,包括电流、电压 (2)监测参数的显示; (3)报警数据数值设定(按键)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功