Mxnet Windows配置


MXNET Windows 編譯安裝(Python)

本文只記錄Mxnet在windows下的編譯安裝,更多環境配置請移步官方文檔:http://mxnet.readthedocs.io/en/latest/how_to/build.html

編譯目標:

  • libmxnet.dll

必要條件:

  • 支持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 最好將原來的文件備份。

其次,安裝第三方庫。

包括 OpenCVCuDNN 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)

 

 填坑~~

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM