MXNet半精度训练
1.先决条件
Volta range of Nvidia GPUs (e.g. AWS P3 instance)
CUDA 9 or higher
cuDNN v7 or higher
2.使用Gluon API训练和前向推理
2.1训练
使用cast将网络设置为float16精度进行训练

net.cast('float16')data = data.astype('float16', copy=False)optimizer = mx.optimizer.create('sgd', multi_precision=True, lr=0.01)

2.fine tuning

import numpy as np
import mxnet as mx
from mxnet.gluon.model_zoo.vision import get_modelpretrained_net = get_model(name='resnet50_v2', ctx=mx.cpu(),pretrained=True, classes=1000)
pretrained_net.cast('float16')net = get_model(name='resnet50_v2', ctx=mx.cpu(),pretrained=False, classes=101)
net.collect_params().initialize(mx.init.Xavier(magnitude=2.24), ctx=mx.cpu())
net.features = pretrained_net.features
net.cast('float16')

2使用Symbolic API在float16中训练网络
涉及以下步骤。

在网络的开头添加一个图层,将数据转换为float16。这将确保在float16中计算所有以下层。
建议在softmax之前将层的输出转换为float32,以便softmax计算在float32中完成。这是因为softmax涉及大幅减少,并且有助于将其保留在float32中以获得更精确的答案。
建议使用优化器的多精度模式进行更精确的重量更新。
以下是创建优化器时如何启用此模式。
optimizer = mx.optimizer.create('sgd', multi_precision=True, lr=0.01)
1
示例

data = mx.sym.Variable(name="data")if dtype == 'float16':data = mx.sym.Cast(data=data, dtype=np.float16)# ... the rest of the network
net_out = net(data)if dtype == 'float16':net_out = mx.sym.Cast(data=net_out, dtype=np.float32)output = mx.sym.SoftmaxOutput(data=net_out, name='softmax')

http://mxnet.incubator.apache.org/versions/master/faq/float16.html?highlight=distributed training
加速安装
pip install mxnet-cu80 -i https://pypi.tuna.tsinghua.edu.cn/simple/

MXNet分布式训练
https://github.com/MaJun-cn/DistributedTraining_inMXNet
https://github.com/apache/incubator-mxnet/tree/master/example/distributed_training

conda清理没用的安装包

conda clean -p      //删除没有用的包
conda clean -t      //tar打包
conda clean -y -all //删除所有的安装包及cache
1
2
3
pytorch 分布式训练
————————————————
版权声明:本文为CSDN博主「SoftGit」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fengzhongluoleidehua/article/details/95056696

MXNet半精度(FP16)相关推荐

  1. 浮点运算/半精度,单精度,双精度/浮点和定点

    目录 1.实数数的表示 1.1定点数 1.2浮点数 2.精度说明 2.1半精度FP16 3.浮点运算加法和乘法 3.1加法 3.2乘法 1.实数数的表示 参考深入理解C语言-03-有符号数,定点数,浮 ...

  2. 半精度(FP16)调试血泪总结

    通常我们训练神经网络模型的时候默认使用的数据类型为单精度(FP32),在该阶段要花费很多的运行时间:而在部署时,为了减少计算量,可以考虑使用16位浮点数,也就是半精度(FP16). 作者丨Allent ...

  3. 单精度和半精度混合训练

    单精度和半精度混合训练 概述 混合精度训练方法,通过混合使用单精度和半精度数据格式,加速深度神经网络训练的过程,同时保持了单精度训练所能达到的网络精度.混合精度训练能够加速计算过程,同时减少内存使用和 ...

  4. 双精度浮点数转换_模型压缩一半,精度几乎无损,TensorFlow推出半精度浮点量化工具包,还有在线Demo...

    鱼羊 发自 凹非寺  量子位 报道 | 公众号 QbitAI 近日,TensorFlow模型优化工具包又添一员大将,训练后的半精度浮点量化(float16 quantization)工具. 有了它,就 ...

  5. 如何使用 PyTorch 进行半精度训练

    原文链接(可以直接运行代码). 实验: 混合精度训练对比 (GTX 3090 VS TESLA V100-SXM2) 经常有小伙伴问我 TESLA V100 显存 16GB 比 GTX 3090 的 ...

  6. 解决pytorch半精度amp训练nan问题

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 可可哒@知乎(已授权) 来源 | https://zhua ...

  7. pytorch 半精度,提升pytorch推理性能

    原生的torch是float32的,我们可以借鉴模型量化的思想将其变成float16,而且pytorch自身就定义了半精度的tensor 假设我训练的一个模型为model,我们在运算的时候直接将模型转 ...

  8. 深度学习的半精度浮点数的运用

    深度学习除了大量数据之外,还可能存在内存容量和总线带宽等瓶颈,其中内存容量,需要考虑将大量的权重和偏置等等参数数据放在内存里面:总线带宽的瓶颈,主要考虑流经CPU(或GPU)总线的数据超过某个限制.对 ...

  9. 单精度、双精度和半精度浮点格式之间的区别

    源自公众号strongerHuang 单精度.双精度和半精度浮点格式之间的区别 IEEE 浮点算术标准是用来衡量计算机上以二进制所表示数字精度的通用约定.在双精度格式中,每个数字占用64位,单精度格式 ...

最新文章

  1. 微信开放平台手机APP支付
  2. 使用密码记录工具keepass来保存密码
  3. Madagascar环境下编程
  4. 29.类加载机制、类加载过程、加载、验证、准备、解析、初始化、总结
  5. rs 实用工具 (rs.exe) (SSRS)SQL server report service
  6. wordpress插件feed count中文版
  7. mysql根据已有表创建新表_SQL根据现有表新建一张表
  8. js数组往队头添加数据、js数组从队头移出数据
  9. 物联网项目--基于RFID的智能咖啡馆(Visual Studio+物联网虚拟仿真实验平台)
  10. python基础装饰器(二十)
  11. FLEX4中的Panel如何实现带自定义图标和按钮
  12. 软件实习项目4——校园一卡通管理系统(代码实现)
  13. php 判断是否是拼音,php汉字转拼音的示例
  14. 什么是Excel宏?
  15. 【IT互联网系列】什么是网关?网关的作用是什么?看完不懂,你捶我
  16. android room 简书,android Room库使用问题
  17. html如何给图片加链接
  18. U盘html文件恢复不了,u盘文件突然不见了怎么恢复?恢复小技巧来了
  19. springboot基于微信小程序的宿舍管理系统
  20. 2014522420145238 《信息安全系统设计基础》 第三次实验

热门文章

  1. java设计模式---调停者模式
  2. Android--SensorEventListener和AudioManager实现根据条件转换手机震动和响铃
  3. openstack创建实例报错Exceeded maximum number of retries
  4. 深入浅出:Linux设备驱动之字符设备驱动
  5. 计算机组成原理考试知识点总结,最新2018计算机组成原理期末复习考试知识点复习考点归纳总结总结...
  6. golang exec cmd pipeline zombile 进程
  7. 网络工程制图论文计算机,学习系统与工程制图论文
  8. 纵横公路造价软件学习_20年最新公路造价实战培训课程
  9. 路由器无服务器无响应是怎么回事啊,wifi服务器无响应怎么解决(图文)
  10. mysql 基于c_linux-基于MYSQL的C程序实践