深度学习工程实践Tips(长期更新)

 

1. 训练阶段加速

        * 使用混合精度加速训练

                   推荐使用NVIDIA的APEX进行训练加速,在2060S显卡上,大约可以获得一倍的综合速度提升(显存使用减少,可以适当增加batchsize, 提高速度)。精度下降几乎察觉不到。APEX保存和加载的模型参数仍然是float32类型的,所以不用担心预训练模型重用的问题。使用起来也十分简单:https://nvidia.github.io/apex/

更多细节可以参考:https://docs.nvidia.com/deeplearning/sdk/mixed-precision-training/index.html

                   直接使用FP16进行训练,会产生很多问题,需要针对性的手动优化。很麻烦,不建议这么做。

        * 平衡数据预处理的计算量

                     数据加载阶段的提速也很重要。如果发现自己的显存使用率较高,但GPU计算利用率一直不高(比如50%就算偏低了),然而此时CPU利用率标高,应该考虑是不是在数据加载阶段卡脖子了。数据加载阶段的图像处理计算量和数据量都应该适当控制。尽量不要让GPU计算闲置。也可将CPU做的图像处理搬到GPU上。

参考更多内容:https://www.zhihu.com/question/356829360

2. 推理阶段加速

          *  使用FP16进行计算

                      推理阶段使用FP16进行计算,能够明显减少带宽,并提高速度。在2060S显卡上,大约可以获得30%左右的速度提升。而推理精度损失几乎难以察觉。pytorch中对数据和模型进行half()即可实现。

            * 使用TensorRT加速

                      使用NVIDIA的TensorRT进行模型转换,可以获得1~3倍的速度提升(具体看显卡和模型)。详情参考https://developer.nvidia.com/tensorrt

更多细节可以参考:https://docs.nvidia.com/deeplearning/sdk/#inference

(nvidia文档很不错,建议多看看,了解细节。显卡虽贵,服务到位~)

3. 缺陷样本自动生成

              * 相同的应用场景,建立缺陷样本库,获取无缺陷样本后进行缺陷融合,自动产生训练样本                      

4. 硬件方案选择

            选择显卡也很重要:(TODO)

5. 数据增强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值