微软开源深度学习工具包CNTK更新2.3版,带来多重性能改进_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > 微软开源深度学习工具包CNTK更新2.3版,带来多重性能改进

微软开源深度学习工具包CNTK更新2.3版,带来多重性能改进

 2017/12/1 18:48:50    程序员俱乐部  我要评论(0)
  • 摘要:雷锋网AI科技评论消息,近日微软更新了自家开源深度学习工具包CNTK,新的版本号为2.3,带来了多项性能改进。CNTK全名为ComputationalNetworkToolkit,与谷歌的TensorFlow、Facebook的Caffe/Caffe2一样是开源的计算平台/工具包,意在服务更多深度学习、人工智能的研究人员和开发者们。从2016年开源起,微软就宣传CNTK的性能明显高于Caffe、Theano、TensoFlow等其它的一些热门工具
  • 标签:微软 学习 工具 开源

微软开源深度学习工具包 CNTK 更新 2.3 版,带来多重性能改进

  雷锋网 AI 科技评论消息,近日微软更新了自家开源深度学习工具包 CNTK,新的版本号为 2.3,带来了多项性能改进。

  CNTK 全名为 Computational Network Toolkit,与谷歌的 TensorFlow、Facebook 的 Caffe/Caffe2 一样是开源的计算平台/工具包,意在服务更多深度学习、人工智能研究人员和开发者们。从 2016 年开源起,微软就宣传 CNTK 的性能明显高于 Caffe、Theano、TensoFlow 等其它的一些热门工具,当然也提供了基于英伟达 cuDNN 的一到多 GPU 加速支持。

  CNTK 在 2.0 的多个 Beta 和 RC 版本中逐步更新了面向 Python、C++、C#、Java 等语言的 API 支持,对 Keras 的后端支持,Python 示例和教程、自动安装等等一大堆新功能,接着在 2.1 中把 cuDNN 版本升级到了 6.0、支持 Universal Windows Platform,在 2.2 中做了许多模型支持相关的改进之后,近日 CNTK 也发布了 2.3 版本。雷锋网 AI 科技评论把更新内容简单介绍如下:

  CNTK 2.3 更新重点

  • 对 ONNX 标准的更好支持(关于 ONNX 看这里)

  • 分布式训练支持切换到 NCCL2,带来更好的性能(NCCL 是英伟达官方的多卡训练库,详细解读看这里)

  • 改进了C# API 的支持

  • (2.2 版本中必须安装 OpenCV 库)现在 OpenCV 不是必须安装的,只有当用到 TensorBoard Image 功能和图像读取功能时才需要安装它

  • 多重性能改进

  • 增加了网络优化 API

  • 更快的稀疏 Adadelta

  性能改进的相关项目包含

  • 改进 C# API,提升训练和预测性能

  • 通过自由动态轴的支持,提升带有卷积操作的网络的训练速度。对于某些模型,训练速度可以提升 5 倍以上;

  • 提升验证性能,移除了许多不需要的验证检查;

  • CPU 卷积中更多地使用 MKL-ML,AlexNet 的训练速度可以提升 4 倍;

  • Linux 的正式版 CNTK-GPU 会默认使用 NCCL2,可以降低分布式训练中的聚合开销。对于 Python 用户来说没有什么影响,Linux 的 Python 自己就带有 NCCL 支持。BrainScript 版本的用户需要先自己手工安装 NCCL 库作为 CNTK 的运行环境,就像 CUDA 和 CUDNN 一样。CPU 版本和 Windows 版本都不受影响,因为目前 NCCL 只支持 Linux。

  • 提升了梯度稀疏时 Adadelta 的更新速度。现在每次更新的运行时间和梯度中不为零的元素的数量成正比。对于在单个 GPU 上运行的带有高维稀疏输入(大约 2 百万特征)的前馈模型,性能可以提升 5 倍。内存需求稍有增加,每一个稀疏的输入特征会需要额外的四个字节空间(对前面提到的模型来说一共增加 8MB 左右的内存需求)

  其它值得注意的项目

  • 2. 3 版本是最后一个支持 Python3.4 的版本,未来版本的 CNTK 将不再支持 Python3.4。

  • ONNX 方面,优化标准支持的同时,ONNX 标准也更新到了最新版本;目前已经覆盖了 ResNet、Inception、VGG 在内的多数计算机视觉模型

  • 增加了 GPU 上分组卷积的支持

  CNTK2.3 版本此次发布了运行在 Windows 下的 CPU、GPU、GPU+1bit-SGD、UWP 等多个版本以及运行在 Linux 下的 CPU、GPU、GPU+1bit-SGD 三个版本,都支持 64 位系统。有需要的研究人员和开发者请到 CNTK 的 github 马上更新吧。

发表评论
用户名: 匿名