Dataset中使用多进程的问题

2020-01-09  本文已影响0人  SSRSGJYD

为了加快读取数据的速度,可以使用torch.multiprocess创建多个进程。但是如果直接这样做,运行时就会产生以下错误:

AssertionError: daemonic processes are not allowed to have children

这是因为torch.utils.data.Dataloader中默认设置worker为守护进程,而Python不允许守护进程创建子进程。

解决方案:查到对应PyTorch版本的源码,复制其中的torch.utils.data.Dataloader代码,然后修改Dataloader类的__init__函数中创建子进程的部分,将w.daemon = True修改为w.daemon = False。之后使用这个自定义的Dataloader文件即可。

上一篇下一篇

猜你喜欢

热点阅读