Python 虚拟环境+安装MxNet(CPU和GPU版本)
2017-09-11 08:43
513 查看
安装OpenCV
Mxnet在编译的时候依赖Opencv,这里我主要参考了这篇博客。但是我并没有像这篇博客一样将OpenCV安装到虚拟环境,而是直接将其安装到了系统环境下。安装Opencv依赖
#安装基本编译工具: sudo apt-get install build-essential cmake pkg-config #由于OpenCV是计算机视觉库,总需要加载一些图像文件( JPEG, PNG, TIFF)。使用下面命令安装一些必要的图像库: sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev #除了图片之外,OpenCV还要处理视频文件。使用下面命令安装一些视频编解码库: sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev #OpenCV的GUI模块highgui依赖Gtk。安装gtk库: sudo apt-get install libgtk-3-dev #下面安装一些可以提高OpenCV性能的库,如矩阵操作: sudo apt-get install libatlas-base-dev gfortran #安装Python2和Python3的开发库: sudo apt-get install python2.7-dev python3.5-dev
下载Opencv源码
cd ~ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip unzip opencv.zip #下载和OpenCV版本对应的opencv_contrib(一些扩展功能和non-free代码): wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip unzip opencv_contrib.zip
编译Opencv
cd ~/opencv-3.1.0/ mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D WITH_TBB=ON \ -D WITH_V4L=ON \ -D WITH_QT=ON \ -D WITH_OPENGL=ON \ -D WITH_CUDA=OFF \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.1.0/modules ..
make sudo make install sudo ldconfig #这一步很重要,不然系统找不到刚刚安装的Opencv库(当然也可以重启电脑)
到这里OpenCV就安装完毕了。
PIP
什么是Pip?
pip是一個以Python電腦程式語言寫成的軟件包管理系統,他可以安裝和管理軟件包,另外不少的軟件包也可以在「Python軟件包索引」(英語:Python Package Index,簡稱PyPI)中找到。安装Pip
首先在安装一下依赖包,不然后续过程容易出错sudo apt-get install build-essential libssl-dev libffi-dev python-dev
下载 get-pip.py脚本,并在终端运行:
sudo python get-pip.py
什么是Python虚拟环境?
Python的版本繁多,但是变来变去,有些项目依赖2.7版本,有些则依赖3.0版本。如果全局一个版本的话,势必对不同的项目造成不必要的麻烦。Virtualenv的特点就是,创造一个虚拟的环境,该环境下就存在一个特点的版本。安装Virtualenv
因为Virtualenv其实也是一个Python软件,所以使用Pip来安装:sudo pip install virtualenv
Virtualenv
安装好virtualenv以后在.bashrc文件中设置变量export PIP_REQUIRE_VIRTUALENV=true
这样可以保证以后用PIP安装的包都在当前的虚拟环境下。
设定并启动一个虚拟环境
virtualenv -p /usr/bin/python2.7 --no-site-packages MXNET source MXNET/bin/activate
如果你之前安装了Anaconda的话,Anaconda会在你的”~/.bashrc”中增加一行:
export PATH="/usr/local/anaconda2/bin:$PATH"
这样就算在虚拟环境下启动的也会是anaconda所对应的程序,所以需要注释掉这一行
#export PATH="/usr/local/anaconda2/bin:$PATH"
在虚拟环境下安装Jupyter notebook
pip install jupyter
在该环境下根据Mxnet的文档安装Mxnet
git clone https://github.com/dmlc/mxnet.git ~/mxnet --recursive cd ~/mxnet # (没有GPU,所以下面的不执行) # echo "USE_CUDA=1" >>config.mk # echo "USE_CUDA_PATH=/usr/local/cuda" >>config.mk # echo "USE_CUDNN=1" >>config.mk cd ~/mxnet/setup-utils # Mxnet的路径会自动加入.bachrc文件中 bash install-mxnet-ubuntu-python.sh $ source ~/.bashrc
在虚拟环境下,运行一个简单的MNIST例子
cd /mxnet/example/image-classification python train_mnist.py --network mlp #上述过程可能报错,比如“No module named requests”,可以在虚拟环境中安装相应的包 pip install requrests #然后在进行训练 python train_mnist.py --network mlp
安装GPU版本
安装GPU版本需要安装CUDA和CuDNN- CUDA:用于开发GPU加速应用的开发环境,主要包含了针对NVIDIA GPU的编译器以及相对应的数学运算库和其他一些处理的优化。
- cuDNN:主要针对神经网络开发的库(GPU加速),使用cuDNN可以得到更大的训练加速,它类似于CUDA的一个扩展。
安装CUDA
Ubuntu机器上可能使用了第三方开发的NVIDIA的显卡,在这种情况下安装显卡驱动会造成冲突,安装无法成功,为了给不给后续的安装留坑,先禁用这个驱动sudo vi /etc/modprobe.d/blacklist-nouveau.conf #然后在该文件中加入如下行: blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off #保持退出,并重新启动
重新启动以后,这个驱动就会被禁用,下面我们安装CUDA 8.0 for Ubuntu 16.04版本。在NV的官网,我选择了本地run文件,并下载到了本地的Downloads目录中。
#给run文件添加执行属性 chmod +x cuda_8.0.61_375.26_linux.run 执行run文件,进行安装 sh ./cuda_8.0.61_375.26_linux.run
在后续的执行中可以看到,这个run内部包含三个部分,分别是:
- 显卡驱动
- CUDA库
- CUDA实例
最开始,我并没有选择安装显卡驱动,后来安装完成后发现我的显卡驱动版本太低,无法使用CUDA,后来还是将显卡驱动安装上了。
根据默认配置,在
/usr/local/目录下,多出了一个
cuda链接,指向了
cuda-8.0。
现在,将CUDA的路径加入
~/.bashrc文件中
vi ~/.bashrc 在文件末尾加入: # CUDA Toolkit export CUDA_HOME=/usr/local/cuda-7.5 export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:$LD_LIBRARY_PATH export PATH=${CUDA_HOME}/bin:${PATH} #重新source source ~/.bashrc
安装cuDNN
我这里下载了cuDNN的5.0版本到~/Downloads/文件夹下,并进行解压。解压后的文件夹中存在两个子文件夹:
include和
lib64,我们将这个两个文件夹中的文件复制到刚刚CUDA目录下的相应文件夹中:
sudo cp lib64/* /usr/local/cuda/lib64/ sudo cp include/* /usr/local/cuda/include/
这样,使用CUDA的时候,也可以调用cuDNN的库了。
安装OpenCV
与上面描述的安装方式一致,很多GPU版本的编译错误都来源于Opencv的版本或者编译出现问题,我之前也遇到了各式各样奇怪的问题,最后按照上面的方法安装了Opencv在编译mxnet就没有出问题了。编译Mxnet for GPU
我这里与CPU版本的编译稍有不同,部分参考了这篇博客。#克隆Mxnet至本地 git clone --recursive https://github.com/dmlc/mxnet cd mxnet #复制编译需要的config文件 cp make/config.mk .
我的
config.mk文件如下
export CC = gcc export CXX = g++ export NVCC = nvcc # whether compile with debug DEBUG = 0 #--------------------------------------------- # matrix computation libraries for CPU/GPU #--------------------------------------------- # whether use CUDA during compile USE_CUDA = 1 # cuda 的安装目录 USE_CUDA_PATH = /usr/local/cuda USE_CUDNN = 1 # whether use cuda runtime compiling for writing kernels in native language (i.e. Python) USE_NVRTC = 0 # whether use opencv during compilation # you can disable it, however, you will not able to use # imbin iterator USE_OPENCV = 1 # use openmp for parallelization USE_OPENMP = 1 USE_BLAS = atlas # add path to intel library, you may need it for MKL, if you did not add the path # to environment variable USE_INTEL_PATH = NONE # If use MKL, choose static link automatically to allow python wrapper ifeq ($(USE_BLAS), mkl) USE_STATIC_MKL = 1 else USE_STATIC_MKL = NONE endif #---------------------------- # distributed computing #---------------------------- # whether or not to enable multi-machine supporting USE_DIST_KVSTORE = 0 # whether or not allow to read and write HDFS directly. If yes, then hadoop is # required USE_HDFS = 0 # path to libjvm.so. required if USE_HDFS=1 LIBJVM=$(JAVA_HOME)/jre/lib/amd64/server # whether or not allow to read and write AWS S3 directly. If yes, then # libcurl4-openssl-dev is required, it can be installed on Ubuntu by # sudo apt-get install -y libcurl4-openssl-dev USE_S3 = 0 #---------------------------- # additional operators #---------------------------- # path to folders containing projects specific operators that you don't want to put in src/operators EXTRA_OPERATORS =
相关文章推荐
- mxnet CPU版本Windows下简单安装(python接口安装)
- 使用python自带Venv创建虚拟环境安装多版本python
- mac 安装python虚拟环境,多版本共存
- Windows10下安装GPU版本的MXNet
- Win10 64位下GPU版本MXNet+Tensorflow 1.3.0的安装
- Win10 64bit +VS2015+GPU版本MXNet+Tensorflow 1.3.0的安装
- ubuntu16.04 安装CUDA 8.0 和 cuDNN 5.1 /cudnn6.0,可适用于gpu版本的(tensorflow,caffe,mxnet)
- ubuntu 16.04 安装MXNet GPU版本
- (亲测可用)ubuntu16.04安装+cuda8.0+cudnn5.1+MXNET gpu版本安装+tensorflow gpu版本安装+chainerGPU版本安装
- 【已解决】Anaconda3 4.2.0版本 创建虚拟python环境 / 安装tensorflow 出现HTTPError网络错误
- Windows下MXnet GPU版本环境搭建
- Python linux 上的管理工具 pyenv 安装, pip 使用, python项目(版本分割, 项目分割, 虚拟环境创建)
- ubuntu16.04安装+cuda8.0+cudnn5.1+MXNET gpu版本安装+tensorflow gpu版本安装+chainerGPU版本安装
- Windows下mxnet的CPU版本安装
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别