標籤:
MXNET Windows 編譯安裝(Python)
本文只記錄Mxnet在windows下的編譯安裝,更多環境配置請移步官方文檔:http://mxnet.readthedocs.io/en/latest/how_to/build.html
編譯目標:
必要條件:
- 支援C++11,g++>=4.8
- BLAS庫, 比如 libblas, libblas, openblas intel mkl
可選條件:
- CUDA Toolkit >= v7.0 to run on nvidia GPUs
- Requires GPU with support for Compute Capability >= 2.0
- CUDNN to accelerate the GPU computation (only CUDNN 3 is supported)
- opencv for image augmentation
Steps
首先,強化VS2013,使之能支援C++11特性。
- 下載安裝: Visual C++ Compiler Nov 2013 CTP.
- 將安裝目錄下的檔案拷貝至VS2013相應安裝目錄下,例如: 將C:\Program Files (x86)\Microsoft Visual C++ Compiler Nov 2013 CTP下所有檔案拷貝到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC 最好將原來的檔案備份。
其次,安裝第三方庫。
包括 OpenCV, CuDNN and OpenBlas(如果已經安裝 MKL,則忽略此項).
最後,使用CMake來建立VS工程,CMake需要預先安裝。
注意,應該根據自己機器選擇是否為Win64,否則配置openCV時,會找不到cuBLAS.
點擊configure之後,需要配置openCV、openBLAS和cuDNN路徑,按提示next即可。
提示Configure done後,點擊Generate產生解決方案。
提示Generate done後,在VS裡開啟解決方案進行編譯。
如果提示opencv2/opencv.hpp找不到,則在項目屬性的VC++中,在包含目錄添加該檔案目錄(在opencv安裝目錄中可找到)即可,類似問題都如此解決。
Python Package Installation
需要 python>=2.7 和 numpy. 在windows命令列中使用pip命令安裝numpy即可:
pip install numpy
檢驗是否安裝成功:
python example/image-classification/train_mnist.py
安裝(即將所需庫檔案放到指定位置):
cd python;
python setup.py install
或者設定環境變數 PYTHONPATH 為/<RootPathToProject>/mxnet/python
Train MLP on MNIST
現在訓練一個MLP來簡單瞭解下訓練一個網路的過程以及相關Python介面。
import mxnet as mx# step 1 配置訓練集train = mx.io.MNISTIter( image = "mnist/train-images-idx3-ubyte", label = "mnist/train-labels-idx1-ubyte", batch_size = 128, data_shape = (784, ))# step 2 配置驗證集val = mx.io.MNISTIter( image = "mnist/t10k-images-idx3-ubyte", label = "mnist/t10k-labels-idx1-ubyte", batch_size = 128, data_shape = (784, ))# step 3 配置網路,此處簡單的三層data = mx.symbol.Variable(‘data‘)fc1 = mx.symbol.FullyConnected(data = data, num_hidden=128)act1 = mx.symbol.Activation(data = fc1, act_type="relu")fc2 = mx.symbol.FullyConnected(data = act1, num_hidden = 64)act2 = mx.symbol.Activation(data = fc2, act_type="relu")fc3 = mx.symbol.FullyConnected(data = act2, num_hidden=10)mlp = mx.symbol.SoftmaxOutput(data = fc3, name = ‘softmax‘)# step 4 前饋網路設定model = mx.model.FeedForward( symbol = mlp, num_epoch = 20, learning_rate = .1)# step 5 擬合model.fit(X = train, eval_data = val)# step 6 訓練完成後,利用訓練好的模型進行預測model.predict(X = val)
填坑~~
Mxnet Windows配置