目錄
3. 深度學習平臺安裝:Caffe、Tensorflow、MXNet
3.4 Nvidia Digits 安裝(只能在pyhton2.7下使用):
1. Ubuntu18.04系統安裝
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
gcc7+gcc6共存配置
爲系統安裝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
python3+python2共存配置
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
2. CUDA9.0安裝
根據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目錄即可。
3. 深度學習平臺安裝:Caffe、Tensorflow、MXNet
3.1 caffe安裝:
建議用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
caffe的python2和python3版本共存
如果想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 命令切換即可。
3.2 Tensorflow安裝:
若在普通用戶下安裝則使用--user 參數,無需sudo
pip3 install --upgrade tensorflow-gpu
或
pip2 install --upgrade tensorflow-gpu
3.3 MXNet安裝:
http://mxnet.incubator.apache.org/
pip3 install mxnet-cu90mkl
或
pip2 install mxnet-cu90mkl
3.4 Nvidia Digits安裝 (只能在pyhton2.7下使用):
需要安裝必要的依賴項:
sudo apt-get install --no-install-recommends git graphviz python-tk
創建virtualenv隔離環境
建議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