RuntimeError: DataLoader worker (pid(s) 9528, 8320) exited unexpectedly问题解决记录

时间:2024-04-03 13:36:58

仅供学习记录,若有侵权可联系删除。
方法一: num_workers设置为0,默认值为0表示不启用多进程。该方法在处理大量数据的时候还是不行,肯定要多进程。参见方法二。
RuntimeError: DataLoader worker (pid(s) 9528, 8320) exited unexpectedly问题解决记录

方法二:将涉及多线程的代码放到if name == 'main’的范围内
if name == ‘main’:
for epoch in range(3):
for step, (batch_x, batch_y) in enumerate(loader):
# 假设这里就是你训练的地方…
里面的loader就是上面定义的test_loader,(指定了多进程的)。另外只需要loader的执行部分放在main之内即可,定义部分可以在main内,也可以在main之外.
Python中多进程(multiprocessing这个模块包)的内容必须放在if name == 'main’之内才可以。多线程(threading这个模块包)是没有这项限定的。