雷鋒網 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馬上更新吧。