在使用torch.multiprocess时,由于子进程中进行了文件读写操作,因此出现了RuntimeError: received 0 items of ancdata的错误。执行ulimit -n查看单个进程的文件描述符限制为1024,程序中设置了num_workers=4,因此每次在第4096个iter处报错。
首先尝试进行了如下设置:
torch.multiprocessing.set_sharing_strategy('file_system')
发现无法解决问题。然后尝试不使用torch.multiprocess,发现仍然会报错。
最终的结论是,问题不在于torch.multiprocess,只要将Dataloader的num_workers设为0即可。
网友评论