為什麼選擇 MXNet?

四月底自己搭了一台深度學習工作站,配置:i7-7700K + GTX 1080 + 16G Memory + 256G NVMe SSD + 3TB HDD。最近忙得總算告一段落,想起來好久沒有更新了,遂來一發。

我之前用的深度學習框架是 Caffe 和 TensorFlow,自從 Amazon 把 MXNet 作為官方的工具之後開始關注它,然後買回來電腦後不久學習了一下文檔,跑了幾個模型對比了一下 MXNet 跟 TensorFlow 的性能,決定以後主要使用 MXNet 作為開發工具。

我也從網上找到了更加嚴謹的分析來佐證:對於一個學生尤其是GPU資源有限的情況下,MXNet是不管寫論文還是研讀源代碼最好的選擇。

當然,我們也不能放下 TensorFlow ^_^。

完整的內容在我的主頁:Getting Started with MXNet(內含代碼) , 以下是部分摘要。

MXNET features:

  • Software: MXNET
  • Creator: Distributed (Deep) Machine Learning Community
  • Software license: Apache 2.0
  • Open source: Yes
  • Platform: Ubuntu, OS X, Windows, AWS, Android, iOS, JavaScript
  • Written in: C++, Python, Julia, Matlab, R, Scala
  • Interface: C++, Python, Julia, Matlab, JavaScript, R, Scala
  • CUDA support: Yes
  • Automatic differentiation: Yes
  • Has pre-trained models: Yes
  • Recurrent Nets: Yes
  • Convolutional Nets: Yes
  • RBM/DBNs: Yes

MXNet is a modern interpretation and rewrite of a number of ideas being talked about in the deep learning infrastructure. It』s designed from the ground up to work well with multiple GPUs and multiple computers.

When doing multi-device work in other frameworks, the end user frequently has to think about when to do computation and how data is synchronized. In MXNet, every operation is lazy. It only computes values when the resources are available to compute them.

In practice, you get incredible device utilization automatically. A new batch can be copying to a GPU, while that same GPU can be running a forward pass as a CPU does a complex parameter update on the CPU — all at the same time!

In addition:

  • It is built on a dataflow graph (like Tensorflow, Theano, Torch, Caffe).
  • It manages its own memory internally (like Theano) and is able to reuse memory locations.
  • It has a backend written in C++ and cuda, which is exported via a C interface. This allows simple language bindings. It currently supports Python, R, Julia, Go and Javascript (in varying degrees).
  • It allows use of Torch natively from Python.
  • It can be deployed on mobile.

For a high level overview of MXNet, check out their Arxiv Paper.

推薦閱讀:

MXNet入坑(二)- Engine 「依賴引擎」與它的核心演算法
1.試水:可定製的數據預處理與如此簡單的數據增強(下)
mxnet中如何使用makeloss?
如何看待MXNet在CVPR2017上公布的gluon介面?

TAG:mxnet | 深度学习DeepLearning | 人工智能 |