PyTorch DataLoader num_workers Test - 加快速度
可以利用PyTorch DataLoader类的多进程功能来加快神经网络训练过程。
加快训练进程
为了加快训练过程,我们将利用DataLoader
类的num_workers
可选属性。
num_workers
属性告诉DataLoader
实例要使用多少个子进程进行数据加载。默认情况下,num_workers
值被设置为0,0值代表告诉加载器在主进程内部加载数据。
问题描述:
RuntimeError: DataLoader worker (pid 2105929) is killed by signal: Killed.
这个报错和DataLoader有关,定位到训练脚本中的代码:
问题分析
- 通过设置num_workers,DataLoader实例可以使用多少个子进程进行数据加载,从而加快网络的训练过程。
- 默认情况下,num_workers值被设置为0,0值代表告诉加载器在主进程内部加载数据。
- 但是num_workers并不能无限制设置的很大,因为这和你的机器硬件性能也有关。
问题解决
- 最简单的办法,就是将num_workers设置的小一点;
- 如果还是有问题,可以直接将num_workers设置成默认值0;
- 当然,也可以通过增加机器内存来尝试解决。
参考资料:
PyTorch DataLoader Num_workers-深度学习限速提升(pytorch系列-29)
RuntimeError: DataLoader worker is killed by signal: Killed.报错解决