写点什么

华为云深度学习的王牌—MoXing

  • 2020-04-01
  • 本文字数:1932 字

    阅读完需:约 6 分钟

华为云深度学习的王牌—MoXing

MoXing 是华为深度学习服务提供的网络模型开发 API。支持以原生 TensorFlow、Keras、slim 等 API,帮助构建图像分类、物体检测、生成对抗、自然语言处理,OCR 等多种模型。相比使用 TensorFlow 和 MXNet 原生 API,使用 MoXing API 开发深度学习算法模型编程更加简单,而且能够自动获得高性能的分布式执行能力。

华为云深度学习——高性能

华为云深度学习的高效性是通过混合并行、梯度压缩、卷积加速、EASGD 等技术加快模型训练速度;内置模型压缩能力,可极大降低模型大小成本。以下是基于华为云深度学习服务的实验数据。




由上图对比可知,MoXing 在 GPU=1 时,吞吐量和加速比优势不明显,在 GPU=4 时,吞吐量和加速比全面超越 tensorflow,GPU=8 时,吞吐量相对于别的 API 有质的飞跃。搭配使用 OBS 和华为云深度学习服务,性能具有压倒性的优势。




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


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


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
LargeBatch Training of Convolutional Networks
复制代码


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


损失值曲线:



正确率曲线:



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

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

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

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


2、MoXing 实现 DGC 训练 ResNet-50


Deep Gradient Compression: Reducing the Communication Bandwidth for Distributed Training


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: 是否应用factormaskingdgc_total_samples:训练集样本数量
复制代码


代码(基于 TensorFlow-1.4):


http://code.huawei.com/inforsight-dl/tf-models/blob/v1.x.x-tf-1.4/moxing/moxing/tensorflow/practi
复制代码


运行参数:


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-tuning:http://code.huawei.com/inforsight-dl/tf-models/blob/v1.x.x-tf-1.4/moxing/moxing/tensorflow/practice/image_classification/finetune_model.py
复制代码


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/Ocw0zVoPrSCcYMcdiZqo3w


2020-04-01 21:201923

评论

发布
暂无评论
发现更多内容

如何使用Go语言实现软件设计中的‘对扩展开放、修改关闭’原则

Jack

Charles(HTTP代理服务器)注册安装教程

Rose

Charles注册码 Charles下载 HTTP代理服务器

PS 2023中文一键安装版 Photoshop永久使用

Rose

Photoshop 2023中文版 photoshop下载 PS2023下载 PS 2023破解

MySQL中使用group_concat()函数进行分组排序

源字节1号

开源 软件开发 小程序开发

如何在OpenJ9场景下使用Arthas

骑牛上青山

Java JVM Arthas openj9

XMind思维导图安装教程XMind 2023最新版下载

Rose

XMind教程 XMind思维导图 XMind2023下载 XMind2023新功能 XMind如何使用

软件测试/测试开发丨Pytest测试用例生命周期管理-Fixture

测试人

软件测试 自动化测试 测试开发 测试用例 pytest

Git 远程仓库失效

Andy

软件测试|Python高手教你玩转 Excel 自动化

霍格沃兹测试开发学社

C++中的可移植性和跨平台开发

小万哥

CleanMyMac X专业的Mac清理工具,一次激活,永久使用

Rose

CleanMyMac下载 CleanMyMac v4.13.4 Mac清理优化工具 苹果电脑系统清理软件

idea每次打开新的类依次排列

源字节1号

开源 软件开发 小程序开发

单调队列算法模板及应用

timerring

算法

超级独角兽 Databricks 的崛起之路

CnosDB

时序数据库 开源社区 CnosDB Databricks

SecureCRT v9.3.2最新版 激活安装教程

Rose

SSH工具 SecureCRT下载 SecureCRT激活版 SecureCRT许可证

背靠香港影视集团星光文化,StarNFT问世了

股市老人

软件测试/测试开发丨学习笔记之Allure2测试报告

测试人

Python 软件测试 自动化测试 测试开发 Allure

代开病假单|代办病假条|体检报告|诊断证明书

病假条病假单

JavaScript作用域深度剖析:从局部到全局一网打尽

Immerse

C语言编程-环境设置

芯动大师

C语言 环境搭建 三周年连更

测试写代码的好处

FunTester

基于容器和Kubernetes的应用无限扩容

俞凡

Kubernetes 最佳实践 云原生

背靠香港影视集团星光文化,StarNFT问世了

鳄鱼视界

Kafka008——浅谈Broker的存储架构

Codyida

后端

软件测试/测试开发丨Python常用数据结构-学习笔记

测试人

软件测试 自动化测试 测试开发 python数据结构

华为云深度学习的王牌—MoXing_文化 & 方法_华为云产品与解决方案_InfoQ精选文章