(背景:當前科研工作中要復現一篇Paper,對於環境要求是Python-2.7 + Tensorflow-1.2.0。)
1、在當前的python環境下創建tensorflow子環境(務必指明python版本):
conda create tensorflow python=2.7
conda activate tensorflow
conda deactivate
2、安裝Tensoflow1.2.0並測試:
(1)(失敗)在https://pypi.org/project/tensorflow/1.2.0/#files下載對應版本的tensorflow的.whl安裝包,用pip安裝提示不符合platform;
(2)(成功)用pip在線安裝:
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.2.0-cp27-cp27m-linux_x86_64.whl
此時,conda下的tensorflow的子環境√,python2.7版本√,tensorflow-gpu1.2.0版本√:
但是,嘗試 import tensorflow包出現問題:
可以確認是CUDA出現問題,在.usr/local.cuda/lib64文件夾查看,確實沒有該8.0文件,但是有對應的9.0文件。
3、安裝CUDA-8.0並測試:
CUDA下載地址:https://developer.nvidia.com/cuda-80-ga2-download-archive
此時,在系統中,CUDA8.0和CUDA9.0共存,而默認的CUDA爲CUDA9.0:
首先建立軟連接:
sudo rm -rf /usr/local/cuda #刪除之前生成的軟鏈接
sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda #生成新的軟鏈接
把CUDA鏈接至新安裝的CUDA8.0而非默認的9.0
而後,修改環境變量,需要使用 vim 命令在 bashrc 文件中修改環境變量,使得安裝生效:
vim ~/.bashrc #進入編輯界面
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#同時,
#替換原來語句中的cuda-9.0爲cuda-8.0,
#替換原來語句中的Anaconda3爲Anacodna2,
#替換原來語句中的python3.6爲python2.7,
#保存退出返回終端輸入界面
source ~/.bashrc #激活
值得注意的是,使用 vim 進入~/.bashrc文件編輯界面後,先使用輸入 “i” 進入 “insert” 編輯模式,編輯完成後,先按 “ESC”,而後輸入 ":wq!",回車後即可退出編輯,(別忘了退出後用 “source” 命令激活修改)。
可以看見,此時CUDA-8.0已經正確。
再次嘗試在Anaconda2(Python2.7)下的Tensorflow環境中查看Tensorflow包是否成功:
原來,Tensorflow1.2.0需要cuDnn的版本是5.0,因此我們需要下載安裝對應CUDA-8.0的cuDnn-5.0:
4、安裝cuDnn-5.0並測試:
下載網址爲https://developer.nvidia.com/rdp/cudnn-archive。
注意,下載cuDnn需要登錄英偉達官網,所以需要使用郵箱註冊賬戶,且得通過郵件激活纔可登錄下載。
由於我始終收不到郵件,用了三個郵箱,點擊resend多次,都收不到,所以直接在校內論壇西電睿思上下載成功。
開始操作:
#進入該cudnn解壓後的文件夾後,拷貝一些東西到指定目錄
$cd cuda5.0
$sudo cp lib64/lib* /usr/local/cuda/lib64/
$sudo cp include/cudnn.h /usr/local/cuda/include/
#接下來更新cuDNN庫文件的軟連接:
$ sudo chmod +r libcudnn.so.5.0.5
$ sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5
$ sudo ln -sf libcudnn.so.5 libcudnn.so
$ sudo ldconfig
操作後查看最新的cuDnn版本:
解決了cuDnn問題後,再次查看Tensorflow是否安裝成功:
5、終端下的環境搭建成功:
至此,終於搭建好了Ubuntu-16.04 + Anaconda-2 + Python-2.7 + Tensorflow-1.2.0 + CUDA-8.0 + cuDnn-5.0.5的環境!
在終端中的tensorflow環境下輸入 “spyder” 打開Spyer 這個 IDE,在其中內嵌的 Ipython命令 行區域 import temsorflow,報錯!
6、IDE(Spyder)中的環境搭建成功:
#在當前的tensorflow環境中重新安裝一個spyder編譯器
conda install spyder
總結:搭建環境是深度學習最基礎的第一步,必須在對應的環境下才可以復現特定的代碼。搭建環境同時也是非常麻煩的過程,因爲每臺電腦的情況都不同,每個代碼所需要的環境中的各項配置要求也不同,各項配置之間的相互依賴關係也不同,因此,需要反覆的嘗試,遇到問題解決問題,這個過程必須充滿耐心。