报错
首先放上报错图:
根据报错内容,上网查阅资料, Pytorch dataloader 错误 “DataLoader worker (pid xxx) is killed by signal” 解决方法。
按照教程里,把num_workers 设置为0确实可以不报错问题,但是显卡的利用率会降低一半。
解决
回顾下之前,我的代码是可以正常跑的,没有运行错误。最近一段时间有两个操作:
- 加了1T的京东京造固态硬盘
- 加了32GB的联想台式机内存条。颗粒未知
便通过对比实验,一步步找出问题在哪。
- 加了1T的京东京造固态硬盘
(旧的三星固态和刚买的京东固态都有一个内容完全一样的分区。)
我把之前的三星固态分区挂载到home上,重新跑程序。刚开始还好,结果过了一段时间,还是报错。不是硬盘的问题。
- 把新买的内存条摘了,重新跑程序。
正常! 说明问题出来了新买的内存条上。 我之前的是英睿达2666 16+16+8+8,插上新买的联想32GB 3200内存条(颗粒未知),虽然能点亮,但跑程序的时候会报上图中的奇怪bug. 不过从报错信息来看,也确实跟内存有关。
总结
加内存条尽量买品牌一致颗粒一致的!这样才不容易出问题!