nvidia深度学习加速库apex简单介绍

2023-11-18

介绍地址:https://docs.nvidia.com/deeplearning/sdk/mixed-precision-training/index.html

本人英文水平有限,有误请指正。

使用理由

使用精度低于32位浮点的数值格式有许多好处。首先,它们需要更少的内存,从而能够训练和部署更大的神经网络。其次,它们需要较少的内存带宽,从而加快数据传输操作。第三,数学运算在降低精度方面运行得更快,特别是在具有TensorCore支持的GPU上。混合精度训练(Mixed Precision Training)实现了所有这些好处,同时确保与完全精度训练相比,不会丢失特定任务的准确性。它这样做的方法是识别需要完全精度的步骤,只对这些步骤使用32位浮点,而在其他地方使用16位浮点。

Mixed Precision Training

使用Mixed Precision Training需要两个步骤:
1、在适当的情况下移植模型以使用FP16数据类型。
2、增加损失缩放以保持较小的梯度值。
以低精度(如FP16)训练深度神经网络的能力在Pascal结构中引入,CUDA 8及更高版本应该都是支持的。

优点 使用Mixed Precision Training能减少内存需求,加快训练/ inference的速度。

使用Mixed Precision Training需要以下三个步骤:
1、在可能的情况下将模型转换为使用float16数据类型。
2、保持float32主权重,以累积每次迭代的更新权重。
3、使用损失缩放来保持较小的梯度值。
各种深度学习框架中如何使用请看:https://developer.nvidia.com/automatic-mixed-precision

在PyTorch中的使用:
首先需要安装其apex库(我还没装过),其github地址:https://github.com/NVIDIA/apex。
然后在训练的脚本(代码)中简单添加几句就可以了

from apex import amp

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

以上仅为学习(因为maskrcnn-benchmark框架更新后使用了APEX用以加速,所以去看了文档),后续实践之后可能会有更新。
maskrcnn-benchmark使用详情请看maskrcnn-benchmark

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nvidia深度学习加速库apex简单介绍 的相关文章

  • 定时器编码器AB相电机测速( 补充)

    TIM编码器AB相电机测速 定时器编码器AB相电机测速 1 四倍频 2 算法应用 3 stm32硬件连接 3 stm32环境配置端口配置 3 C语言实现编码器个数读取 3 C语言实现编码器个数转换为速度 定时器编码器AB相电机测速 1 四倍
  • vue3配置eslint 出现问题

    vue3配置eslint 出现问题 标题必须使用导入来加载 ES 模块 ESlint Error Must use import to load ES Module 加上这一行即可
  • Jmeter之ForEach控制器

    场景运用 ForEach控制器一般和用户自定义变量或者正则表达式提取器一起使用 其在用户自定义变量或者从正则表达式提取器的返回结果中读取一系列相关的变量 该控制器下的采样器或者控制器都会被执行一次或多次 每次读取不同的变量值 需求2 有一组

随机推荐

  • 学习java随堂练习-20220609

    学习Java的第八天 第1题 第2题 第3题 第4题 第5题 今天是学习Java的第八天 5道练习题 第1题 题目 1 循环输入近6年某高校的录取分数 求出平均分和最低分 运行结果 代码如下 循环输入近6年某高校的录取分数 求出平均分和最低
  • PHP操作Excel

    头 header Content Type application vnd ms excel header Content Disposition attachment filename sample xls header Pragma n
  • 时序预测

    时序预测 MATLAB实现DNN全连接神经网络时间序列预测 目录 时序预测 MATLAB实现DNN全连接神经网络时间序列预测 基本介绍 模型研究 程序设计 学习总结 参考资料 基本介绍 DNN的结构不固定 一般神经网络包括输入层 隐藏层和输
  • 传指针和传引用的区别以及指针和引用的区别

    一 引用 引用的定义 引用是给另外一个变量其别名 所以引用不会分配内存空间 引用是引入了对象的一个同义词 例如 Point pt1 10 10 Point pt2 pt1 上述的代码 定义了pt2为pt1的引用 通过这样的定义 pt2和pt
  • 让生产活动更高效,物料管理场景的RPA应用

    作为制造业 供应链领域常见环节 物料管理 Material Management 通常是对企业生产经营活动所需各种物料的采购 验收 供应 保管 发放 使用等一系列计划与控制活动的总称 物料管理科学与否 将会影响到组织各职能部门间的协调 生产
  • 文件的上传与下载

    一 文件上传 文件上传程序步骤 1 如何在web页面中添加上传输入项
  • python数据驱动测试设计_Python+unittest+DDT实现的数据驱动测试

    前言 数据驱动测试 避免编写重复代码 数据与测试脚本分离 通过使用数据驱动测试 来验证多组数据测试场景 通常来说 多用于单元测试和接口测试 ddt介绍 Data Driven Tests DDT 即数据驱动测试 可以实现不同数据运行同一个测
  • Gcov 详解 + 内核函数覆盖率测试方法详述及产生错误解决办法

    1 gcov是什么 Gcov is GCC Coverage 是一个测试代码覆盖率的工具 是一个命令行方式的控制台程序 伴随GCC发布 配合GCC共同实现对C C 文件的语句覆盖和分支覆盖测试 与程序概要分析工具 profiling too
  • 小白也能学会的爬虫教学(超详细,每一步都配图,不怕你学不会,图文并茂,看完直呼‘爽’)

    详细且简单的爬虫简单教学 小白看了之后直呼 爬虫就这 安装pycharm 一 新建一个工程 二 安装scrapy 三 创建Scrapy工程 四 如何使用scrapy 1 新建一个begin py文件 2 编辑begin py中的内容 3 修
  • hbase MapReduce程序样例入门

    hbase MapReduce程序样例入门 1 先看一个标准的hbase作为数据读取源和输出源的样例 Configuration conf HBaseConfiguration create Job job new Job conf job
  • 定时器:Quartz框架

    文章目录 简介 简单Demo cron 规则 参考 简介 Quartz是 OpenSymphony 开源组织在 Job scheduling 领域的开源项目 是由 java 开发的一个开源的任务日程管理系统 Quartz 是一个功能丰富的开
  • 如何下载安装VS2017下载 vs2017社区版

    如何下载安装VS2017下载 vs2017社区版 https blog csdn net zyhse article details 105362609 1 下载vs2017的引导程序 官方并没有为vs2017提供离线安装包 所以我们选择在
  • 操作系统课程设计

    关于完整代码 更详细内容 实验一环境配置 请访问github仓库地址 GitHub zzering OS course design 操作系统课设 系统调用 磁盘调度算法 文件调用 进程管理 分页置换算法 进程通信 实验一 为Linux系统
  • python二元操作符是什么_python笔记—06 讲:Pyhon 之常用操作符

    本期内容详解 1 算术运算符 加 减 乘 除 幂运算 地板除 1 和 的区别 在 Python 中的除运算符与其它程序语言的不太一样 表示真正的除号 例如 1 3 0 3333333333333333 而 4 2 的值为 2 0 说明两个数
  • Flask处理前台POST过来的JSON

    POST JSON数据的JS代码 ajax url http 127 0 0 1 5000 calc type post dataType json headers Content Type application json charset
  • 数据结构——线性表(C++)

    线性表 一 线性表的定义 二 线性表的抽象数据类型 三 线性表的顺序存储 1 顺序存储定义 2 顺序存储的实现方式 四 线性表的链式存储 五 其他线性表 参考 一 线性表的定义 线性表 零个或多个数据元素的有限序列 线性表是最常用且是最简单
  • 开启防火墙脚本

    sc config MpsSvc start AUTO net start MpsSvc
  • VMware ESX与VMware ESXi区别

    VMware ESX 与 VMware ESXi 区别 现在来讲vSphere就是ESXI 只是两种叫法而已 我们来看看VMware服务器虚拟化产品的历程 Vmware 服务器虚拟化第一个产品叫ESX 该产品只有60天测试 没有官方认可的免
  • DAY18:Xss 靶场通关手册

    DAY18 Xss 靶场通关手册 常见的xss注入 lt img src x onerror alert 1 gt
  • nvidia深度学习加速库apex简单介绍

    介绍地址 https docs nvidia com deeplearning sdk mixed precision training index html 本人英文水平有限 有误请指正 使用理由 使用精度低于32位浮点的数值格式有许多好