标签:训练 workers batch pytorch num 参数 服务器
问题:已经在服务器上训练了,但是训练的速度仍然很慢。
我在服务器上可以将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)。
标签:训练,workers,batch,pytorch,num,参数,服务器 来源: https://blog.csdn.net/weixin_45348389/article/details/122423684
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。