1, dataloader :
a. 数据加载的部分可以用accimage或者opencv, online aug 的时候尽量保证不要大图做图像 变换, 先做好resize, 这样cpu 的负载会降低,处理速度会加快。
b. 使用多gpu dist train 的时候,将num_work 写多一点,perfetch_factor 也设置大一点(pytorch 1.7 +), 在我们使用这种方式训练的时候通常会遇到 singnal kill 的问题,这种时候如果没钱加内存,可以用虚拟内存(swap)的方式,这种方式会产生一个交换文件,最好生成在ssd 上,如果是机械硬盘就还不如不搞。具体操作看 《如何在ubuntu-1804中增加swapfile》,文章里的swapfile 可以放在别的盘上,我放在我挂载的目录, 路径如 : /train/sawpfile, 添加后的效果如下图所示:
2, 硬件
1, gpu 就不详述了
2, 比较关键的 ssd 选择 : 在 选择ssd 时候应该优先考虑 nvme 协议的 m.2接口的ssd 硬盘, 本人公司采购的三星 m.2, 实际测的速度平均在1.8 Gb/s 的速度,仅将训练数据放进来就ok , 会大大加快训练速度, 如上述的swapfile 也可以放到这个硬盘里,毕竟服务器 内存条太贵了。 重中之重: 买前请确认自己的服务器主板是否有m.2 的接口!