Ubuntu18.04 CUDA9.0 Caffe1.0 Tensorflow12.0 MXNet Digits6.1 python多版本配置

目錄

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. 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

手把手教你用英偉達 DIGITS 解決圖像分類問題

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章