建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
093454tjmehwgqrskef4if.jpg 文字识别 百万调用 1元包年 2020年华为云AI实战营 华为云普惠AI

huqifeng0601

发帖: 21粉丝: 1

级别 : 新手上路

发消息 + 关注

发表于2018-7-4 10:39:44 14084 5
直达本楼层的链接
楼主
显示全部楼层
[技术交流] (Moxing篇一)自研深度学习MoXingAPI使模型训练再次升级

华为自研——深度学习服务利器MoXing
MoXing是华为深度学习服务提供的网络模型开发API。支持以原生TensorFlowKerasslimAPI,帮助构建图像分类、物体检测、生成对抗、自然语言处理,OCR等多种模型。相比使用TensorFlowMXNet原生API,使用MoXingAPI开发深度学习算法模型编程更加简单,而且能够自动获得高性能的分布式执行能力。
华为云深度学习——高性能
华为云深度学习的高效性是通过混合并行、梯度压缩、卷积加速、EASGD等技术加快模型训练速度;内置模型压缩能力,可极大降低模型大小成本。以下是基于华为云深度学习服务的实验数据。
2.JPG
4.JPG
                              
由上图对比可知,moxingGPU=1时,吞吐量和加速比优势不明显,在GPU=4时,吞吐量和加速比全面超越tensorflowGPU=8时,吞吐量相对于别的API有质的飞跃。搭配使用OBS和华为云深度学习服务,性能具有压倒性的优势。
1.JPG
3.JPG
1、以MoXing实现LARS训练ResNet-50为例
LARS允许以超大的batch_size训练神经网络,其优势在于能够在增大batch_size的情况下不影响收敛精度。增加batch_size就意味着能够使用更多的分布式节点对网络进行训练,从而降低训练总时长(普通的方法在使用大规模节点时,会遇到大batch_size导致无法收敛的问题,所以无法使用传统的方法进行训练)
LARS的核心代码如下:
定义一个基于LARSoptimizer
全部代码在(注意:基于TensorFlow-1.4):http://code.huawei.com/inforsight-dl/tf-models/blob/v1.x.x-tf-1.4/moxing/moxing/tensorflow/practice/image_classification/train_model_32k.py
运行参数:
https://github.com/huaweiyun7759/backup/tree/master/Using%20MoXing%20to%20train%20resnet-50%20with%20LARS
Large BatchTraining of Convolutional Networks
使用MoXing中的LARS Optimizer可以实现batch_size=32k分布式训练ResNet-50
损失值曲线:
9.jpg
正确率曲线:
10.jpg
  • 绿色线条为单机版ResNet-50收敛曲线,使用4GPU
  • 灰色线条为在绿色线条同等下,使用FP-16时的收敛曲线,精度几乎没有影响。
  • 橙色线条为使用MoXing分布式训练一个ResNet-50模型的收敛曲线
  • 红色线条为使用MoXingLARS特性实现的batch_size=32kResNet-50收敛曲线
2MoXing实现DGC训练ResNet-50
Deep GradientCompression: Reducing the Communication Bandwidth for Distributed Training
DGC能减少分布式训练的通信量,有效降低由于网络带宽造成的瓶颈,在不影响收敛精度的情况下增加分布式训练加速比。
对比传统resnet_v1_50的训练和应用DGC时的训练:传统收敛精度:top-1 = 74.4, top-5 = 91.7DGC收敛精度:top-1 = 74.5, top-5 = 91.8。在吞吐量对比上,参见下面的图标可知,在1Gbps的带宽下,原生TF的加速比是0.4147DGC的加速比是0.8670,加速比超过原生TF的一倍。
正确率曲线:
12.jpg
梯度稀疏度变化曲线:
13.jpg
由图可知,深度梯度压缩的梯度稀疏度在前5epoch时是由75%逐渐上升到99.9%,所以在前5epoch时,分布式加速比并一定比普通的分布式训练高,但是从第5epoch之后,加速比则有显著提升,同时模型精度也没有下降。
从第5epoch之后DGC在分布式运行中的加速比表现:
14.jpg
DGC的基本使用方法是,在代码中importmoxing.tensorflow as mox,然后运行脚本时加入dgc的相关参数:
dgc_sparsity_strategy: 稀疏度策略
dgc_momentum_type: momentum策略
dgc_momentum: momentum数值
dgc_momentum_factor_masking: 是否应用factor masking
dgc_total_samples: 训练集样本数量
代码(基于TensorFlow-1.4):
http://code.huawei.com/inforsight-dl/tf-models/blob/v1.x.x-tf-1.4/moxing/moxing/tensorflow/practice/image_classification/train_model.py
运行参数:
https://github.com/huaweiyun7759/backup/tree/master/Using%20MoXing%20to%20train%20resnet-50%20with%20DGC
MoXing程序基本结
Moxing框架简单易用,直接将代码放在华为云深度学习服务(DLS)上,就可以运行,单机分布式一套代码,数据读取都是优化过的,无需用户再改动。
代码有很多情况,均基于TensorFlow-1.4,运行参数请参考代码本身
mnist手写数字识别代码:http://code.huawei.com/inforsight-dl/tf-models/blob/v1.x.x-tf-1.4/moxing/moxing/tensorflow/practice/image_classification/train_tf_mnist.py
ImageNet-10k图像分类:http://code.huawei.com/inforsight-dl/tf-models/blob/v1.x.x-tf-1.4/moxing/moxing/tensorflow/practice/image_classification/train_model.py
预置模型库fine-tuninghttp://code.huawei.com/inforsight-dl/tf-models/blob/v1.x.x-tf-1.4/moxing/moxing/tensorflow/practice/image_classification/finetune_model.py
举报
分享

分享文章到朋友圈

分享文章到微博

建赟

发帖: 442粉丝: 27

级别 : 外部版主

发消息 + 关注

发表于2018-9-27 09:31:26
直达本楼层的链接
沙发
显示全部楼层

学习一下

点赞 评论 引用 举报

EI技术布道师-陈亮

发帖: 3粉丝: 4

级别 : 版主

发消息 + 关注

发表于2019-8-26 11:05:22
直达本楼层的链接
板凳
显示全部楼层

MoXing基于MindSpore的性能测试结果,请问什么时候可以给出?

点赞 评论 引用 举报

Joey啊

发帖: 84粉丝: 11

级别 : 版主

发消息 + 关注

发表于2019-8-29 17:53:41
直达本楼层的链接
地板
显示全部楼层

点赞 评论 引用 举报

Joey啊

发帖: 84粉丝: 11

级别 : 版主

发消息 + 关注

发表于2019-8-29 17:53:48
直达本楼层的链接
5#
显示全部楼层

点赞 评论 引用 举报

建行袁覃

发帖: 10粉丝: 2

级别 : 注册会员

发消息 + 关注

发表于2019-11-9 21:30:07
直达本楼层的链接
6#
显示全部楼层

干货,以学习。

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册