MxNet系列——how_to——faq

博客新址: http://blog.xuezhisd.top
郵箱:[email protected]


常見問題

本節回答了 mxnet/issues上的常見問題。在提問前,請先檢查該頁面。如果你想要貢獻本頁面,請儘量使問題和答案簡單。如果你的回答非常詳細,請發佈在其它地方並提供鏈接。

構建和安裝

關於構建和安裝的問題,絕大多數問題的答案都可以在 build page 上找到。

速度

在GPU上啓動花費很長時間

嘗試禁止OpenCV使用GPU: build opencv from source with GPU module disabled.

It’s slow on a single GPU

檢查下面幾條:

  1. 確保 CUDA/驅動 版本不是太老。
  2. 構建時使用 USE_CUDNN=1。這一般能提速 50+%。嘗試使用最近版。
  3. 在運行前執行 export MXNET_CUDNN_AUTOTUNE_DEFAULT=1。這一般能提速 10%-15%。
  4. 如果你使用的是 Tesla GPUs,那麼執行命令 nvidia-smi -e 0,來禁用ECC。這需要root權限和重啓。You might need root permission and have to reboot.
  5. 對於 Tesla 顯卡,執行命令 nvidia-smi -ac ??,設置最大時鐘。詳細細節,參考 this blog
  6. No throttle reason 一般是由於溫度引起的。 nvidia-smi -q -d PERFORMANCE

使用多個GPU或機器,但速度沒有提升

檢查下面幾條:

  1. 你的神經網絡是否已經很快了?比如,>1000樣本/秒,或>10 批/秒?如果是的話,由於通信開銷,不能通過添加更多資源來提速。
  2. 批的尺度是不是很小?嘗試增大批尺度。
  3. GPUs數量是否超過4個? 使用 --kv-store=device

內存使用

CPU內存使用異常

這可能是因爲數據預取。查看 issue 2111

等待審覈

下面的話題需要被審覈。

如何將部分參數複製到另一個模型

大部分MXNet包含2部分,參數數組和符號。你可以簡單地將參數數組複製到另一個模型的參數數組。例如,在Python模型API中,你可以如下操作:

copied_model =  mx.model.FeedForward(ctx=mx.gpu(), symbol=new_symbol,
                                     arg_params=old_arg_params, aux_params=old_aux_params,
                                     allow_extra_params=True);

關於從已存的old_arg_params複製模型參數的更多信息,請查看 notebook

如何提取某一層的特徵圖

請查看 notebook.

MXNet 和 CXXNet, Minerva, 與 Purine2是什麼關係?

  • MXNet 是由來自以上3個項目的作者們相互協作創建的。
  • MXNet 反映了我們已從這些項目中學習到的東西。
  • MXNet 組合了這些項目的重要方面:效率高,靈活和內存利用率高。
  • MXNet 也包含了新的方法:允許你組合使用不同的編程方式,寫出比 CXXNet 和 Purine內存利用率高的CPU/GPU應用,比Minerva更加靈活。

MXNet 和 TensorFlow的是什麼關係?

  • MXNet 和 TensorFlow都使用計算圖抽象化,它最早在Theano中使用,後來被其它庫所採用,比如,CGT, Caffe2, 和 Purine。當前,TensorFlow 使用一個優化的符號API。MXNet 支持一種混合方法,該方法使用動態依賴調度器來組合符號編程和命令編程。

  • 簡而言之,MXNet是輕量級的,混合的。既有命令式編程的靈活性,又因計算圖(符號編程)而變得速度快和內存高效。

發佈了147 篇原創文章 · 獲贊 283 · 訪問量 101萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章