首页 > 其他 > 详细

Pytorch自动混合精度(AMP)介绍

时间:2021-01-22 22:46:45      阅读:97      评论:0      收藏:0      [点我收藏+]

背景:

 pytorch从1.6版本开始,已经内置了torch.cuda.apex,采用自动混合精度训练就不需要加载第三方NVIDIA的apex库了。本文主要从三个方面来介绍AMP:

 1.什么是AMP?

    2.为什么要使用AMP?

 3.如何使用AMP?

 

正文:

 1.什么是AMP?

     默认情况下,大多数深度学习框架都采用32位浮点算法进行训练。2017年,NVIDIA研究了一种用于混合精度训练的方法,该方法在训练网络时将单精度(FP32)与半精度(FP16)结合在一起,并使用相同的超参数实现了与FP32相同的精度。在介绍AMP之前,先来理解下FP16与FP32,半精度是一种计算机使用的二进制浮点数据类型,使用2字节存储。

技术分享图片

其中,sign位表示正负,exponent位表示指数2^(n-15+1(n=0)),fraction位表示分数(m/1024)。

技术分享图片

为什么要使用FP16,理由有三个:1.减少显存占用;2.加快训练和推断的计算,能带来多一倍速的体验;3.张量核心的普及(NVIDIA Tensor Core),低精度计算是未来深度学习的一个重要趋势。

但凡事都有两面性,FP16也带来了些问题

Pytorch自动混合精度(AMP)介绍

原文:https://www.cnblogs.com/jimchen1218/p/14315008.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!