Ubuntu16.4+cuda9.0+cudnn7.4+tensorflow1.7環境搭建
阿新 • • 發佈:2018-12-18
首先安裝Anaconda
- 在Anaconda官網安裝Anaconda相應的版本。
- 執行如下命令bash Anaconda3-4.2.0-Linux-x86_64.sh(對應本文下載的Anaconda版本)
- 一直確認,直到出現提示 Anaconda3 install Location to PATH in your /home/使用者名稱/.bashrc?[yes|no]?。意思是要將anaconda加入到環境變數,以後Python預設版本變為該版本Python
安裝CUDA
- 在NVIDIA官網下載對應版本的cuda,如果以前沒有安裝過cuda,可以下載.deb檔案,如果已經安裝過,則下載.run檔案。推薦使用.run檔案,可以安裝指定版本的cuda,否則總是要求安裝最新的,或者不能在已有高版本的情況下,安裝低版本。
- 下載之後,按照官網提示的安裝命令安裝
- 安裝後重啟電腦,在usr/local/cuda/samples目錄下執行sudo make all命令
- 如果成功,則提示Finished building CUDA samples
- 之後進入usr/local/cuda/extras/demo_suite資料夾下執行./deviceQuery
安裝cudnn
- 進入cudnn官網(需要先註冊賬號),下載對應cuda的cudnn版本
- 在下的目錄進行解壓tar -zxvf cudnn-9.0-linux-x64-v7.4.2.24.tgz
- 解壓後會出現名為cuda的資料夾,其中裡面有lib64和include兩個資料夾
- 執行
sudo cp lib64/libcudnn* /usr/local/cuda/lib64 sudo cp include/cudnn.h /usr/local/cuda/include
-
cd /usr/local/cuda/lib64/ sudo chmod +r libcudnn.so.7.4.2(自己的版本號) sudo ln -s libcudnn.so.7.4.2 libcudnn.so.7 sudo ln -s libcudnn.so.7.4.2 libcudnn.so sudo ldconfig
更新軟連線,如果出現已有軟連線,則百度一下,刪除原來軟連線
-
在~/.bashrc檔案里加入環境變數
export PATH="/home/zhangpf/Anaconda/python/bin:/usr/local/cuda-9.0/bin:$PATH" export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CPUTI/lib64:$LD_LIBRARY_PATH export CUDA_HOME=/usr/local/cuda-9.0
加入後,執行source ~/.bashrc更新
安裝Tensorflow
- 使用清華源下載安裝
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow(CPU版本) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.7(GPU版本,可以自己指定版本號)
-
使用網上的例子測試tensorflow是否安裝成功,且是使用GPU訓練
import numpy import tensorflow as tf a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') c = tf.matmul(a, b) sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) print(sess.run(c))
結果為下所示,則成功,並且用GPU訓練
Device mapping: /job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Tesla K40c, pci bus id: 0000:05:00.0 b: /job:localhost/replica:0/task:0/device:GPU:0 a: /job:localhost/replica:0/task:0/device:GPU:0 MatMul: /job:localhost/replica:0/task:0/device:GPU:0 [[ 22. 28.] [ 49. 64.]]