0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

混合精度训练的优势!将自动混合精度用于主流深度学习框架

NVIDIA英伟达企业解决方案 来源:lp 2019-04-03 11:31 次阅读

传统上,深度神经网络训练采用的是IEEE单精度格式,但借助混合精度,可采用半精度进行训练,同时保持单精度的网络精度。这种同时采用单精度和半精度表示的技术被称为混合精度技术。

混合精度训练的优势

通过使用Tensor核心,可加速数学密集型运算,如线性和卷积层。

与单精度相比,通过访问一半的字节来加速内存受限的运算。

降低训练模型的内存要求,支持更大规模的模型或更大规模的批量训练。

启用混合精度包括两个步骤:移植模型,以适时使用半精度数据类型;以及使用损耗定标,以保留小梯度值。

仅通过添加几行代码,TensorFlow、PyTorch和MXNet中的自动混合精确功能就能助力深度学习研究人员和工程师基于NVIDIA Volta和Turing GPU实现高达3倍的AI训练加速。

将自动混合精度用于主流深度学习框架

TensorFlow

NVIDIA NGC容器注册表中TensorFlow容器可提供自动混合精度功能。要在容器内启用此功能,只需设置一个环境变量:

export TF_ENABLE_AUTO_MIXED_PRECISION=1

或者,您也可以在TensorFlow Python脚本中设置环境变量:

os.environ['TF_ENABLE_AUTO_MIXED_PRECISION'] = '1'

自动混合精度使用单一环境变量,在TensorFlow内部应用这两个步骤,并在必要时进行更细粒度的控制。

PyTorch

GitHub的Apex存储库中提供了自动混合精度功能。可将以下两行代码添加至当前训练脚本中以启用该功能:

model, optimizer = amp.initialize(model, optimizer)

with amp.scale_loss(loss, optimizer) as scaled_loss:scaled_loss.backward()

MXNet

我们正在构建适用于MXNet的自动混合精度功能。您可通过GitHub了解我们的工作进展。可将以下代码行添加至当前训练脚本中以启用该功能:

amp.init()amp.init_trainer(trainer)with amp.scale_loss(loss, trainer) as scaled_loss:autograd.backward(scaled_loss)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4771

    浏览量

    100718
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4729

    浏览量

    128891
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121113

原文标题:Tensor核心系列课 | 探究适用于深度学习的自动混合精度

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    国际巨头重金投入,国产深度学习框架OneFlow有何优势

    的ResNet50-v1.5和BERT-base两个模型中,无论是Float32类型还是自动混合精度,在同样的算法和硬件条件下,吞吐率及加速比均优于其他深度
    的头像 发表于 12-17 09:31 4190次阅读

    混合系统的优势所在

    优势,因此混合系统能够大大提升测试系统的灵活性。当您的系统中只有一种总线或平台的时候,您能选择的仪器就会受到这种总线的限制,这可能会妨碍您使用其他更适合您系统需求的仪器。您一定希望根据性能,精度以及
    发表于 02-25 23:36

    Nanopi深度学习之路(1)深度学习框架分析

    就能实现!还请关注我后面的日记。实际上我也是刚刚有时间学习深度学习,我是个纯初学者,但面对深度学习里的各种复杂理论和公式推导,自己实现个小功
    发表于 06-04 22:32

    主流深度学习框架比较

    DL:主流深度学习框架多个方向PK比较
    发表于 12-26 11:10

    什么是深度学习?使用FPGA进行深度学习的好处?

    延迟,这对深度学习推理也很有效。上述图像识别的深度学习有望应用于自动驾驶等对
    发表于 02-17 16:56

    PyTorch 1.6即将原生支持自动混合精度训练

    即将在 PyTorch 1.6上发布的 torch.cuda.amp 混合精度训练模块实现了它的承诺,只需增加几行新代码就可以提高大型模型训练50-60% 的速度。
    的头像 发表于 07-14 16:06 3144次阅读
    PyTorch 1.6即将原生支持<b class='flag-5'>自动</b><b class='flag-5'>混合</b><b class='flag-5'>精度</b><b class='flag-5'>训练</b>

    浅谈字节跳动开源8比特混合精度Transformer引擎

    如何继续提升速度?降低计算精度是比较直接的方法。2017 年以来,fp16 混合精度技术 [2] 获得了广泛应用。在对模型效果无损的前提下,将模型训练和推理的速度提升了 50% 以上。
    发表于 11-01 10:19 566次阅读

    深度学习框架是什么?深度学习框架有哪些?

    深度学习框架是什么?深度学习框架有哪些?  深度
    的头像 发表于 08-17 16:03 2733次阅读

    深度学习框架区分训练还是推理吗

    深度学习框架区分训练还是推理吗 深度学习框架是一个非
    的头像 发表于 08-17 16:03 1371次阅读

    深度学习框架的作用是什么

    深度学习框架的作用是什么 深度学习是一种计算机技术,它利用人工神经网络来模拟人类的学习过程。由于
    的头像 发表于 08-17 16:10 1560次阅读

    深度学习框架tensorflow介绍

    深度学习框架tensorflow介绍 深度学习框架TensorFlow简介
    的头像 发表于 08-17 16:11 2502次阅读

    深度学习算法库框架学习

    深度学习算法库框架的相关知识点以及它们之间的比较。 1. Tensorflow Tensorflow是Google家的深度学习
    的头像 发表于 08-17 16:11 691次阅读

    深度学习框架连接技术

    深度学习框架连接技术 深度学习框架是一个能够帮助机器学习
    的头像 发表于 08-17 16:11 771次阅读

    深度学习框架深度学习算法教程

    基于神经网络的机器学习方法。 深度学习算法可以分为两大类:监督学习和无监督学习。监督学习的基本任
    的头像 发表于 08-17 16:11 1072次阅读

    视觉深度学习迁移学习训练框架Torchvision介绍

    Torchvision是基于Pytorch的视觉深度学习迁移学习训练框架,当前支持的图像分类、对象检测、实例分割、语义分割、姿态评估模型的迁
    的头像 发表于 09-22 09:49 899次阅读
    视觉<b class='flag-5'>深度</b><b class='flag-5'>学习</b>迁移<b class='flag-5'>学习</b><b class='flag-5'>训练</b><b class='flag-5'>框架</b>Torchvision介绍