目录
1. Ubuntu18.04系统安装
gcc7+gcc6共存配置
python3+python2共存配置
2. CUDA9.0安装
3. 深度学习平台安装:Caffe、Tensorflow、MXNet
3.1 caffe安装:
caffe的python2和python3版本共存
3.2 Tensorflow安装:
3.3 MXNet安装:
3.4 Nvidia Digits 安装(只能在pyhton2.7下使用):
创建virtualenv隔离环境
1)插入安装介质,光标移动到Install Ubuntu,按e键,在splash后添加nomodeset,按F10启动安装。
2)进入ubuntu,先打开system setting–software&update指定更新源为china-清华源。
3)修改grub:sudo gedit /etc/default/grub,
找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
修改为:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
更新GRUB:sudo update-grub
4)在system-setting面板的language里点设置,自动安装iBus,注销后就可以添加Chinese-->pinyin输入法:
5) 显卡驱动:从nvidia官网下载推荐驱动的.runfile文件安装,1080Ti目前是390.87,
显卡驱动的安装依赖gcc-7和make:
sudo apt install gcc make
然后关闭图形界面-->安装驱动-->回到图形界面:
sudo init 3
sudo sh NVIDIA-Linux-x86_64-390.87.run
sudo init 5
为系统安装gcc-6,并使用 update-alternatives工具设置gcc的快捷切换选项:
sudo apt install gcc-6 g++-6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --config gcc
ubuntu18系统中自带python3,再通过apt安装python2,然后通过和上面配置gcc相同的方式,使用 update-alternatives工具设置python的快捷切换选项:
sudo apt install python2.7
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 30 --slave /usr/local/bin/pip pip /usr/local/bin/pip3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 20 --slave /usr/local/bin/pip pip /usr/local/bin/pip2
sudo update-alternatives --config python
为两个python版本都安装pip,并检测/usr/local/bin/下的pip,pip2,pip3文件头分别是:
#!/usr/bin/python
#!/usr/bin/python2
#!/usr/bin/python3
这样pip就自动对应update-alternatives中当前选中的python版本,pip2和pip3分别对应python2和python3
最后记得给pip换国内源:创建文件 ~/.pip/pip.conf 并写入:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
安装jupyter-notebook:
sudo apt install jupyter-notebook
给jupyter添加python2 kernel:
sudo pip2 install ipython==5.8.0
sudo pip2 install ipykernel==4.10.0
sudo python2 -m ipykernel install --name python2
根据TensorFlow官网的提示,安装CUDA=9.0,Cudnn>=7.2(选择9.0配套的最新版本即可)
安装cuda前需将系统的默认gcc版本切换到6,并且最后可能会提示有一些依赖库缺失,用sudo apt install安装那些库即可:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
如果编译sample时仍出现缺少-lGL:
locate libGL.so
# 拷贝相关so的位置,建立软链接:
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so
然后运行cuda**.run安装文件...
为方便所有用户使用,这里在/etc/profile文件中将cuda9.0目录地址加入系统path, 随系统启动生效
# CUDA
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
/usr/local/cuda是/usr/local/cuda-9.0的软链接地址,如果以后需要切换使用其他版本的cuda,只需将/usr/local/cuda指向其他cuda目录即可。
建议用caffe1.0源码编译,使用编译而不推荐直接通过官网描述的apt安装caffe的原因是为了和tensorflow共存。apt安装会在/usr/lib下自动安装cuda的9.1版本,而最新的tensorflow12只支持cuda9.0,而且apt安装的9.1的很多文件还很难卸干净,所以还是不要轻易尝试为好。
过程也很简单,参考官网安装依赖库:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libatlas-base-dev
sudp apt-get install cmake
修改一下cmakelist.txt中的python version为 2或3,如果是多GPU的话的use NCCL改为on, 再进入python目录下打开requirements.txt,修改其中的两行:
python-dateutil>=1.4,<2 改为 python-dateutil>=1.4
matplotlib>=1.3.1 改为 matplotlib>=1.3.1,<=2.2.3(此行仅对于python2修改,采用python3编译则无需修改)
然后安装python依赖项
sudo pip2 install -r requirements.txt
或
sudo pip3 install -r requirements.txt
然后就可以参考官网的说明编译:
mkdir build
cd build
cmake ..
make all -j6
make install
make runtest
如果想python2和python3都需要用caffe的话,就切换cmakelist.txt中的python version分别编译两次,每次将build下生成的install文件夹拷贝至/usr/local/下并分别命名为caffe-1.0-py2或caffe-1.0-py3,像这样:
用 update-alternatives工具设置caffe的快捷切换选项(生成动态切换的软链接/usr/local/caffe):
sudo update-alternatives --install /usr/local/caffe caffe /usr/local/caffe-1.0-py3/ 30
sudo update-alternatives --install /usr/local/caffe caffe /usr/local/caffe-1.0-py2/ 20
sudo update-alternatives --config caffe
同时配置系统环境变量(sudo gedit /etc/profile)(也可以配置到用户环境变量中 gedit ~/.bashrc)
# caffe
export PATH="$PATH:/usr/local/caffe/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/caffe/lib"
最后一步就是把caffe-1.0-py2和caffe-1.0-py3下的python目录下的内容分别拷贝至/usr/local/lib/python2.7/dist-packages/和/usr/local/lib/python3.6/dist-packages/下。
需要在不同python下切换使用caffe时,通过 sudo update-alternatives --config caffe 命令切换即可。
若在普通用户下安装则使用--user 参数,无需sudo
pip3 install --upgrade tensorflow-gpu
或
pip2 install --upgrade tensorflow-gpu
http://mxnet.incubator.apache.org/
pip3 install mxnet-cu90mkl
或
pip2 install mxnet-cu90mkl
需要安装必要的依赖项:
sudo apt-get install --no-install-recommends git graphviz python-tk
建议digits安装在普通用户个人目录下,并且为digits安装python环境前先用pip安装virtualenv+virtualenvwrapper,配置隔离环境,因为requirements.txt定义了不少低版本的包,
pip install --user virtualenv
pip install --user virtualenvwrapper
然后在用户home下新建一个.virtualenv目录,在~/.bashrc下添加如下(~/.local/bin/virtualenvwrapper.sh是用--user安装时该脚本的位置,若使用sudo pip则该文件在/usr/local/bin下):
#virtualenv
if [ `id -u` != '0' ]; then
export VIRTUALENV_USE_DISTRIBUTE=1 # <-- Always use pip/distribute
export WORKON_HOME=~/.virtualenvs # <-- Where all virtualenvs will be stored
source ~/.local/bin/virtualenvwrapper.sh
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
fi
创建隔离python环境,指定python2(或python2.7),指定--system-site-packages允许使用系统pip库(这样才能调用caffe和tensorflow),最后的digits是该环境的名字,可以随便起:
mkvirtualenv -p python2 --system-site-packages digits
workon digits
然后在digits隔离环境下安装DIGITS-6.1的相应依赖包:https://github.com/NVIDIA/DIGITS/blob/digits-6.0/docs/BuildDigits.md
进入digits-6.1目录直接运行digits-devserver会报缺包,需安装requirements.txt中的python环境,注意该文件内有以下几个包的版本参数需要修改为:
Pillow==4.3.0
numpy
protobuf==3.6.1
matplotlib==2.0.0
原因是Digits-6.1的requirements.txt中标注的这几个包版本过低,低于tensorflow12要求的最低版本,而按最新版本安装当然Digits也不支持,修改为tensorflow12接受的最低版测试可以。
pip install -r ./requirements.txt
./digits-devserver
手把手教你用英伟达 DIGITS 解决图像分类问题