AWS发布深度学习框架MXNet 1.0.0版本,新功能将简化深度学习训练

Posted AI前线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS发布深度学习框架MXNet 1.0.0版本,新功能将简化深度学习训练相关的知识,希望对你有一定的参考价值。

编译 | Debra
编辑 | Vincent
AI 前线导读:近日,深度学习框架 MXNet 发布了 1.0.0 版本,性能得到优化,增加了一些新功能,并修复了一些 bug。12 月 4 日,AWS 针对 MXNet 1.0 推出了新的模型服务 Model server,简化深度学习培训和应用程序 AI 功能开发。

更多干货内容请关注微信公众号“AI 前线”(ID:ai-front)

同期,12 月 4 日,AWS 宣布为 Apache MXNet 的深度学习引擎 1.0 版本引入新的模型服务功能 Model server for Apache MXNet 。AWS 称,这些新功能将可以简化培训和部署深度学习模型,增强其最新性能,并提高深度学习框架之间的简单互操作性。Model server 包含 10 个可用的预训练模型,省去了用户自己训练模型的时间,并简化了 Web、移动和物联网应用程序中 AI 功能的开发。

性能优化

最新版本的 MXNet 1.0.0 性能得到优化,包括:

  • sparse.dot 运算符性能增强。

  • 现在,MXNet 可以自动设置 OpenMP,在未设置 NUM_OMP_THREADS 时可以使用所有可用的 CPU 内核,以最大限度地提高 CPU 利用率。

  • 一元运算符和二元运算符现在可以避免在小数组上使用 OpenMP,因为实际上小数组多线程会损害运算性能。

  • 显着提高了 broadcast_add、broadcast_mul 等在 CPU 上的性能。

  • 将批量执行添加到命令模式。用户可以用 mxnet.engine.bulk 来控制段的大小。因此,混合模式下 Gluon 的速度提高,特别是在小型网络和多 GPU 上。

  • 改进了 Python 前端调用 ctypes 的速度。

此外,MXNet 1.0.0 还增加了若干新功能。

梯度压缩 [试验]

MXNet 1.0.0 通过压缩梯度通讯来加速多 GPU 和分布式训练。这在训练具有大型完全连接层的网络时,是非常有效的。在 Gluon 中,梯度通讯可以通过训练器中的 compression_params 来激活。

支持 NVIDIA 多卡通讯框架(NCCL)[试验]
  • 在多个 GPU 上使用 kvstore ='nccl'(在某些情况下)以更快进行训练。

  • 小批量处理时比 kvstore ='device'速度快得多。

  • 使用 NCCL 2.1 版或更新版本时,建议将环境变量 NCCL_LAUNCH_MODE 设置为 PARALLEL。

高级索引 [一般可用性]

·NDArray 现在支持由 numpy 标准指定的高级索引(包括 slice 和 assign):

https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.indexing.html#combining-advanced-and-basic-indexing

并有如下限制:

  • 如果 key 是列表类型,则只支持整数列表。例如,支持 key = [1,2],而不支持 key = [[1,2]]。

  • 不支持省略号(...)和 np.newaxis。

  • 不支持布尔数组索引。

Gluon[一般可用性]
  • 上述性能优化。

  • 添加了对 gluon.data.DataLoader 并行加载数据的支持。worker 的数量可以用 num_worker 设置。不支持 Windows。

  • 增加了 Block.cast 以支持具有不同数据类型的网络,例如 float16。

  • 添加了用于将用户定义的函数打包的 Lambda 块。

  • 广义 gluon.data.ArrayDataset 支持任意数量的数组。

支持 ARM / Raspberry Pi[试验]

最新版本的 MXNet 现在可以在 ARMv6、ARMv7、ARMv64(包括 Raspberry Pi 设备)上编译并运行。更多信息,请参见 https://github.com/apache/incubator-mxnet/tree/master/docker_multiarch。

支持 NVIDIA Jetson[试验]
  • MXNet 现在在具有 GPU 加速功能的 NVIDIA Jetson TX2 主板上进行编译和运行。

  • 可以通过运行 - $ pip install mxnet-jetson-tx2 在 Jetson 板上安装 python MXNet 软件包。

支持 Sparse Tensor[一般可用性]
  • 添加了更多的稀疏算子:contrib.SparseEmbedding、sparse.sum 和 sparse.mean。

  • 添加 asscipy(),以方便转换为 scipy。

  • 添加了 sparse ndarrays 的 check_format()来检查数组格式是否有效。

Bug 修复
  • 修复了在 NDArray 上无效的 [-1] 索引。

  • 修复了轴<0 时的 expand_dims。

  • 修正导致 topk 在大数组上产生不正确结果的 bug。

  • 提高 float64 数据的一元和二元运算符的数值精度。

  • 固定 log2 和 log10 的衍生物, 它曾经和日志相同。

  • 修复了导致 MXNet 在 fork 之后中止的错误。请注意,由于 CUDA 的限制,用户仍然无法在 fork 之后的子进程中使用 GPU。

  • 修复了在使用辅助状态时,CustomOp 失败的 bug。

  • 修复了在分布式模式下运行培训时,MXNet 会监听所有可用接口的安全漏洞。

文档更新
  • 在 FAQ 部分添加了一个安全最佳实践文档。

  • 修复许可标题,包括恢复版权归属。

  • 文档更新。

  • 查看源代码的链接。


以上是关于AWS发布深度学习框架MXNet 1.0.0版本,新功能将简化深度学习训练的主要内容,如果未能解决你的问题,请参考以下文章

AWS CTO:解读首选 MXNet 做为 AWS 的深度学习框架的原因

重磅 | 巨头之间的深度学习框架战争:亚马逊选中MXNet

资源 | 一张速查表实现Apache MXNet深度学习框架五大特征的开发利用

深度学习框架 MXNet 成为 Apache 孵化器项目

从PyTorch到Mxnet ,对比7大Python深度学习框架

从 ACM 班百度到亚马逊,深度学习大牛李沐的开挂人生