【摘要】 本文为MoXing系列文章第一篇,主要介绍什么是MoXing,MoXing API的优势以及MoXing程序的基本结构。

MoXing的概念

MoXing是华为云深度学习服务提供的网络模型开发API。相对于TensorFlow和MXNet等原生API,MoXing API让模型的代码编写更加简单,允许用户只需要关心数据输入(input_fn)和模型构建(model_fn)的代码,即可实现任意模型在多GPU和分布式下的高性能运行。

MoXing-TensorFlow支持原生TensorFlow、Keras、slim等API,可以构建图像分类、物体检测、生成对抗、自然语言处理、OCR等多种模型。

为什么取名“MoXing”

首先,“MoXing”是“模型”一词的汉语拼音。因为深度学习时代,中国的科研和工程团队逐步成为行业的引领者,使用源于中文的名称,彰显了深度学习服务(DLS)研发团队的自信,DLS研发团队将努力把MoXing API打造为模型开发领域的业界标杆。

同时,“MoXing”也寓意“Model Crossing”。“Crossing”一方面具有“道路交汇口”的含义;Model Crossing代表MoXing API汇集了来自四面八方的经典模型,为用户打通连接模型领域最新成果的道路。Crossing另一方面也具有“跨越式航行”的含义;Model Crossing代表MoXing API旨在实现模型的跨越式发展,为用户提供了显著优于原生API的性能,并且具有更强的易用性。

当然,脑洞大开的用户也可以把MoXing理解成“魔性”,就算名称噱头再多,也盖不了它的优秀。走近深度学习,认识MoXing,充分发掘它的潜力,MoXing API的魔性会为您的模型开发如虎添翼!

MoXing API的优势

华为云深度学习服务融合了混合并行、梯度压缩、卷积加速、EASGD等技术,并且MoXing框架可将单机代码自动分布式化,进行大规模的分布式训练,极大的提高了模型训练速度和效率。

以下是基于华为云深度学习服务的实验数据。

通过对比可以看出,MoXing在GPU=1时,吞吐量和加速比优势并不明显;但在GPU=4时,吞吐量和加速比已全面超越tensorflow;在GPU=8时,吞吐量相对于其他API有质的飞跃。

下面通过2个例子来介绍MoXing的性能。

1、以MoXing实现LARS训练ResNet-50为例

LARS允许以超大的batch_size训练神经网络,其优势在于能够在增大batch_size的情况下不影响收敛精度,增加batch_size就意味着能够使用更多的分布式节点对网络进行训练,从而降低训练总时长(传统方法在使用大规模节点时,会遇到大batch_size导致无法收敛的问题,所以无法使用传统的方法进行训练)。

使用MoXing中的LARS Optimizer可以实现batch_size=32k分布式训练ResNet-50。

损失值曲线图

正确率曲线图

⊙  绿色线条为单机版ResNet-50收敛曲线,使用4个GPU。

⊙  灰色线条为在绿色线条同等下,使用FP-16时的收敛曲线,精度几乎没有影响。

⊙  橙色线条为使用MoXing分布式训练一个ResNet-50模型的收敛曲线。

⊙  红色线条为使用MoXing中LARS特性实现的batch_size=32k的ResNet-50收敛曲线。

LARS的核心代码,定义一个基于LARS的optimizer:

完整代码(基于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

2、MoXing实现DGC训练ResNet-50

DGC能减少分布式训练的通信量,有效降低由于网络带宽造成的瓶颈,在不影响收敛精度的情况下增加分布式训练加速比。

对比传统resnet_v1_50的训练和应用DGC时的训练:传统收敛精度:top-1 = 74.4, top-5 = 91.7,DGC收敛精度:top-1 = 74.5, top-5 = 91.8。在吞吐量对比上,参见下面的图标可知,在1Gbps的带宽下,原生TF的加速比是0.4147,DGC的加速比是0.8670,加速比超过原生TF的一倍。

正确率曲线图

梯度稀疏度变化曲线图

由图可知,深度梯度压缩的梯度稀疏度在前5个epoch时是由75%逐渐上升到99.9%,所以在前5个epoch时,分布式加速比并一定比普通的分布式训练高,但是从第5个epoch之后,加速比则有显著提升,同时模型精度也没有下降。从第5个epoch之后DGC在分布式运行中的加速比表现:

DGC的基本使用方法:在代码中import moxing.tensorflow as mox,然后运行脚本时加入dgc的相关参数:

dgc_sparsity_strategy: 稀疏度策略

dgc_momentum_type: momentum策略

dgc_momentum: momentum数值

dgc_momentum_factor_masking: 是否应用factor masking

dgc_total_samples: 训练集样本数量

运行参数:https://github.com/huaweiyun7759/backup/tree/master/Using%20MoXing%20to%20train%20resnet-50%20with%20DGC

代码(基于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

MoXing程序基本结构

Moxing框架简单易用,直接将代码放在华为云深度学习服务上就可以运行,单机分布式一套代码,数据读取都已优化,无需用户再改动。代码有很多情况,均基于TensorFlow-1.4,运行参数请参考代码本身。

MoXing系列文章下期预告:基于Tensorflow运行参数教程。

来源:华为云社区原创  作者:云上AI

走近深度学习,认识MoXing:初识华为云ModelArts的王牌利器 — MoXing相关推荐

  1. 斯坦福DAWNBench:华为云ModelArts深度学习训练全球最快

    斯坦福DAWNBench:华为云ModelArts深度学习训练全球最快 近日,斯坦福大学发布了DAWNBenchmark最新成绩,在图像识别(ResNet50-on-ImageNet,93%以上精度) ...

  2. 斯坦福DAWNBench最新训练排名!华为云ModelArts用时10分28秒获全球最快

    允中 发自 凹非寺  量子位 报道 | 公众号 QbitAI 还记得ModelArts吗? 这是今年华为最新发布的AI开发平台,可以提供包括数据标注准备.模型训练.模型调优.模型部署等AI应用开发服务 ...

  3. 华为云ModelArts图深度学习,学习知识还能考取微认证

    作为人工智能最前沿的技术之一,图深度学习被公认是人工智能认识世界实现因果推理的关键,也是深度学习未来发展的方向.但深度学习对图数据模型的支持性差一直是众多研究者难以攻克的难点,因此图深度学习在实际生产 ...

  4. 云图说|初识华为云数据库GaussDB(for openGauss)

    摘要:本文带你了解华为云华为云数据库GaussDB(for openGauss),将AI 技术融入分布式数据库的全生命周期,实现自运维.自管理.自调优.故障自诊断和自愈. 本文分享自华为云社区< ...

  5. 小样本点云深度学习库_基于点云深度学习的点云数据集制作系统及方法与流程...

    本发明涉及测控技术领域,尤其涉及一种基于点云深度学习的点云数据集制作系统及方法. 背景技术: 深度学习网络模型一般都是基于64线单帧激光数据集进行.但64线激光器和单帧的限定,造成了工程应用中点云数据 ...

  6. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现

    无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...

  7. 《深度学习入门一》一入侯门深似海,深度学习深几许 2017-06-09 云栖社区 摘要: 当你和女朋友在路边手拉手一起约会的时候,你可曾想,你们之间早已碰撞出了一种神秘的智慧–深度学习。恋爱容易,相

    <深度学习入门一>一入侯门深似海,深度学习深几许 2017-06-09 云栖社区 摘要: 当你和女朋友在路边手拉手一起约会的时候,你可曾想,你们之间早已碰撞出了一种神秘的智慧–深度学习.恋 ...

  8. AI创想秀,邂逅“华为云ModelArts”征文大赛——第一次收官

    本次活动相信很多小伙伴也都看到了,参加的人数也是很多的呢. 一.大赛简介 华为云ModelArts是面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注.大规模分布式T ...

  9. 自动驾驶轻松开发?华为云ModelArts赋能智慧出行

    作为战略新兴产业,人工智能已经开始广泛应用于多个领域.近几年,科技公司.互联网公司等各领域的企业纷纷布局自动驾驶.那么,自动驾驶技术究竟发展得如何了?日前,华为云携手上海交通大学创新中心举办的华为云人 ...

最新文章

  1. opencv 最大连通域_opencv 查找连通区域 最大面积实例
  2. [HTML5amp;CSS3]Transform具体解释
  3. 为文档快速插入页眉和页脚
  4. 叮咚买菜的数据应用之路,互联网公司的数据决策平台有何不同
  5. PHP3.2配置文件使ini文件配置
  6. android+php最佳实践视频,Android和PHP开发最佳实践 PDF 第2版
  7. 前端市场现在是不是饱和了?
  8. nginx location 匹配 多个规则_后端程序员不得不会的 Nginx 转发匹配规则
  9. SpringCloud五大组件详解
  10. linux 提取重复数据处理,Linux提取命令cut
  11. Linux内核开发_内核模块
  12. linux 卸载 java_Linux安装卸载JDK完整步骤
  13. 《Python参考手册》7 类与面向对象编程
  14. Windows Kernel Programming Windows内核编程(一)
  15. ppt flash倒计时器_央视都在分享的9个PPT小技巧 帮你搞定职场烦心事
  16. java 验证码识别_【Java】验证码识别解决方案
  17. Visual Studio2017 MSDN安装
  18. 英语思维导图大全 名词(三)
  19. CoBOT Java安全漏洞检测类型与OWASP TOP 10对应关系
  20. 计算机专业英语博士就业情况,北京外国语大学博士就业前景怎么样

热门文章

  1. oracle数据库启动多个监听,一台Oracle数据库服务器上两个监听同时使用
  2. php mysql数据库同步_实现MySQL数据库同步实例演示_MySQL
  3. CJOJ 【DP合集】最长上升序列2 — LIS2
  4. 三个等于号===和两个等于号==的区别
  5. [学习指南]运动是基于4412嵌入式技术开发板学习步骤
  6. Android Train—notification通知
  7. 你知道undefined与null的区别吗?
  8. hello !CNBLOG
  9. sqlserver 2008阻止保存要求重新创建表的更改
  10. 拼多多算法笔试2020