pytorch 服务器加速训练

问题:已经在服务器上训练了,但是训练的速度仍然很慢。

我在服务器上可以将batch变得很大,比如96/128,但是在训练的时候很慢,每秒只处理20张左右的图片(20 it/s),而这个在我自己的电脑上也可以达到(但是在我自己的电脑上,batch最多设置成8)。
pytorch中的batch更对应显卡的显存,一批次计算多少数据,尤其是在bn层,大的batch_size的bn层参数更贴近真实数据集的参数。
还有另外一个非常重要的参数容易被忽略,这个参数就是加载数据的DataLoader()函数中的num_workers,该参数根据函数说明,是读取数据所启动的子线程数,越大数据的读取速度越快,比如你设置为8,你在终端中使用top命令 (linun中)查看,便可以看到启动了多个python线程,这个时候,训练速度变成了近150 it/s了。

总结,要想训练的又快又好,就把batch_size和num_workers设置为大的值(num_workers默认为0)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值