配置:
CPU:i7
GPU:1070
CUDA:8.0
Cudnn:8.0v6.0
Tensorflow:1.4
雙系統:win7 + ubuntu16.04
一.系統安裝
Win7 U盤安裝Ubuntu16.04 雙系統詳細教程
安裝主要分爲以下幾步:
一. 下載Ubuntu 16.04鏡像軟件;
二. 製作U盤啓動盤使用ultraISO;
三. 安裝Ubuntu系統;
四. 用EasyBCD 創建啓動系統啓動引導; (根據個人情況,選擇性的安裝)
五. 開啓系統;
一. 下載ubuntu16.04
直接到官網免費下載 http://www.ubuntu.com/download/desktop
根據自己計算機的配置信息下載(本人下載的是的64位的)
二. 製作U盤啓動器
百度下載ultraISO軟件安裝並打開
1.
2.
3.
4.開始寫入—》直到完成大概五分的樣子
三.安裝Ubuntu系統
1.要在Windows下新劃出一個大於20G的硬盤空間
(本人劃分了50G,如果說知識爲了玩玩,那麼20G足夠了)
在win7系統下–》計算機–》右鍵–》管理–》磁盤管理—–》然後自己真不會分區了百度一大堆!(分好空間不 要新建壓縮卷)——》保持他的綠色–一會兒U盤啓動後需要分區的
2.在電腦上插入製作好的U盤啓動盤,重啓電腦,F2–》boot界面,選擇通過USB啓動。
(不同主板進入boot,按鍵有區別)
3.進入ubuntu安裝菜單,選擇 “安裝Ubuntu”。(語言選擇漢語吧!,當然你的英文可以了,English無所謂了)
4.在安裝類型界然後選擇最後一項“其他選項”,以爲這樣可以自己手動分區,點擊繼續。
5.現在我們看到的是硬盤的分區情況,找到前邊有“空閒”二字,我們要做到就是,把空閒的空間給ubuntu劃分分區。
6.點擊“空閒”的分區,選擇下邊的“添加”,彈出窗口如下,上邊填寫分區空間大小,下邊填寫要掛載的分區,然後確定。
邏輯分區,200M,起始,Ext4日誌文件系統,/boot;(引導分區200M足夠)
邏輯分區,4000M,起始,交換空間,無掛載點;(交換分區swap,一般不大於物理內存)
邏輯分區,15000M,起始,Ext4日誌文件系統,/;(系統分區”/”或稱作”/root”裝系統和軟件,15G以上足夠)
邏輯分區,剩餘空間數,起始,Ext4日誌文件系統,/home;(home分區存放個人文檔)
7.分區設置好後,查看/boot分區的編號,然後在下邊的“安裝啓動引導區的設備”下拉框中選擇/boot分區的
編號,點擊安裝。一直到你安裝成功,當然中途需要你設置一個用戶名和密碼的(這個就不說了吧)
8.安裝完成後需要重新啓動(這個時候默認是在Ubuntu啓動模式下進入的–》選擇windows7系統啓動)
四. 用EasyBCD 創建啓動系統。
1.下載EasyBCD,此軟件用於在啓動電腦的時候選擇要進入的系統(自行百度搜索安裝)
2.打開easyBCD,選擇add new entry, 選擇linux/BSD, name這一行隨便填寫,只是系統名詞,寫ubuntu吧,Device這一行選擇剛剛我們創建的200MB的那個”/boot“分區,前邊有linux標記的。(其他的不要動)
五. 開啓系統
做完這些重啓系統後,系統會將win7系統和ubuntu 16.04系統都列出來,你可以選擇系統進入了。
這樣啓動的好處(windows 不會受到Ubuntu的影響)
如果說沒有最後這一步,沒有任何問題,但是你要是啓動windows7把Ubuntu系統的分區刪除,那麼就啓動不了系統了
(如果你真的遇到這樣的問題了,不要着急,直接用老毛桃U盤或者大白菜製作好的U盤啓動,直接啓動引導修復就OK了)
上圖:選擇Ubuntu-16.04
2.選擇Ubuntu或者等待幾秒自動進入
3.進入系統主界面
第一波任務結束!
二.環境安裝
第一步:安裝navidia driver
Ubuntu下安裝nvidia顯卡驅動(安裝方式簡單)
第二步:安裝anaconda
參考我另一篇文章: 【Keras】Win10系統 + Anaconda+TensorFlow+Keras 環境搭建教程
這篇文章包含了詳細的安裝流程,anaconda鏡像庫,以及anaconda教程。
第三步:安裝tensorflow-gpu
terminal下run
conda create -n tensorflow python=2.7
source activate tensorflow
conda install -c conda-forge tensorflow-gpu
若要在終端使用 Tensorflow, 則要先輸入 source activate tensorflow,退出時輸入 source deactivate
安裝過程中會自動安裝相關的依賴包,如cuda、cudnn等等
雖然自動安裝的依賴cuda、cudnn,tensorflow-gpu也可以工作,但是我們還是建議讀者手動安裝cuda、cudnn(Ubuntu下安裝cuda+cudnn)。因爲這樣可自己配置cuda以及cudnn版本信息,並且cuda、cudnn相關的包也是在默認目錄下,而不是在anaconda下,以免其他環節使用時出錯
測試:
進入terminal並run:python, 在python環境下引入tensorflow: import tensorflow as tf,如果沒有報錯,那麼安裝成功
測試GPU
測試代碼如下:
import tensorflow as tf
a = tf.constant([1.,2.,3.,4.,5.,6.], shape=[2,3], name='a')
b = tf.constant([1.,2.,3.,4.,5.,6.], shape=[3,2], name='b')
c = tf.matmul(a,b)with tf.Session(config= tf.ConfigProto(log_device_placement=True)) as sess:
print(sess.run(c))
結果如下: (之後再拍圖)
表明安裝成功,且可以使用tensorflow-gpu運行GPU
GPU使用率:terminal下run:
nvidia-smi -q -g 0 -d UTILIZATION -l
or run:
watch -n 2 nvidia-smi
三、 Ubuntu16.04安裝Tensorflow-gpu
主要參考:
Ubuntu16.04下安裝tensorflow(GPU加速)
1. 安裝對應的顯卡驅動,最簡單且方便的做法就是在“設置”的“附加驅動”裏直接安裝nvidia的驅動(需要重啓才能更新)。然後我之前用的是自己下載對應版本來安裝,比較麻煩,而且後續容易出問題~
2. 檢查驅動:
nvidia-smi
會顯示以下信息:
3. gcc降版本
在終端依次執行:
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++/usr /bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
4. 安裝CUDA8.0
先找到CUDA_8.0資源(官網下載會是最新的9.1版本)。然後終端依次輸入:
sudo apt-get update
chomd +x cuda_8.0.44_linux.run
sudo su cuda_8.0.44_linux.run --override --silent --toolkit
5. 安裝cudnn 8.0v6.0,注意一定要裝6.0的:
先下載cudnn 8.0v6.0安裝包,然後終端依次輸入:
sudo cp cudnn-8.0-linux-x64-v6.0.tgz /usr/local/cuda
cd /usr/local/cuda
tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h/usr/local/cuda/lib64/libcudnn*
6. 配置CUDA環境變量
sudo gedit ~/.bashrc
在打開的編輯器末尾添加:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
保存並在終端輸入:
source ~/.bahsrc
7. 建立軟鏈接
終端輸入:
cd/usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.3 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
設置環境變量:終端輸入:sudo gedit /etc/profile
在編輯器末尾加入:
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存後,創建鏈接文件:
sudo vim /etc/ld.so.conf.d/cuda.conf
摁a進入插入模式,增加下面一行:
/usr/local/cuda/lib64
保存退出。最後在終端輸入:
sudo ldconfig #使鏈接生效
注意:這步可能會報錯:
/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.6 不是符號連接
解決方法:
終端輸入:sudo ldconfig -v
找到這一行錯誤:libcudnn.so.6 -> libcudnn.so.6.0.21
是這個鏈接錯誤。以根用戶(sudo su)在終端輸入:ln -sf
/usr/local/cuda-8.0/lib64/libcudnn.so.6.0.21 /usr/local/cuda-8.0/lib64/libcudnn.so.6
再執行sudo ldconfig即可
8. 檢查CUDA是否安裝好
切換到CUDA 8.0 Samples默認安裝路徑(即在NVIDIA_CUDA-8.0_Samples目錄下),終端輸入:
sudo make all –j8 #(我的電腦是8核)
完成後繼續向終端輸入:
cd bin/x86_64/linux/release
./deviceQuery
如果看到下面畫面,則成功:
9. 安裝Tensorflow-gpu
1) 按照教程是:sudo pip3 install tensorflow-gpu
報錯:sudo: pip3:找不到命令
解決:udo apt-get install python3-pip
驗證pip3是否安裝成功:pip3 --version
2) 輸入:sudo pip3 install tensorflow-gpu
開始下載Downloading
tensorflow_gpu-1.6.0-cp35-cp35m-manylinux1_x86_64.whl以及各種依賴包;
然後出現問題:
You are using pip version 8.1.1, however version 9.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
百度解決:
apt install python-pip
python -m pip install --upgrade pip
sudo pip install tensorflow-gpu
(若在python3.5安裝,則:先pip3 install --upgrade pip 然後sudo pip3
install tensorflow-gpu)
再次下載安裝,沒有警告或報錯
3) 然後無論是輸入python還是python3,若import tensorflow as tf報錯:
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
Failed to load the native TensorFlow runtime.
這是因爲我裝了tensorflow-gpu 1.5版本,而我用的是cuda 8.0和cudnn6.0,1.5版本要求cuda 9.0,解決方法是回滾:pip install tensorflow-gpu==1.4(在python2.7上回滾安裝好tesorflow1.4);若用pip3 install tensorflow-gpu==1.4 則是回滾python3.5上安裝好的tensorflow——個人建議在python3.5上使用Tensorflow。
總之,這種python--pip--tensorlow--CUDA的匹配問題一定要謹慎(我個人就是特別容易搞混這個,然後導致兩種python版本都安裝了tensorflow,然後回滾的時候也搞混~~區分pip和pip3的使用!!!)
10.驗證tensorflow-gpu:
終端輸入: python3
然後輸入驗證程序:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果安裝成功,則會顯示 Hello, TensorFlow!
參考資料
conda-forge: conda庫,速度比較快,整理的比較好
How to install the latest Nvidia drivers on Ubuntu 16.04
Ubuntu16.04 安裝 CUDA、CUDNN、OpenCV 並用 Anaconda 配置 Tensorflow 和 Caffe 詳細過程