微軟開源深度學習工具包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 馬上更新吧。

雷鋒網 AI 科技評論報道。


想在手機閱讀更多程式設計資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems