
介紹
tensorflow使用之前的安裝和環(huán)境配置是頭等大事,只有這個解決了,才能進行后面的學習和使用。本文介紹了在win10 操作系統(tǒng)上面安裝tensorflow-CPU和tensorflow-GPU的環(huán)境。
說在安裝之前
- tensorflow需要先安裝anaconda,然后再在anaconda中安裝tensorflow,
conda install tensorfow,這里最好先下載鏡像,然后安裝,國內(nèi)容易被墻,很多時候安裝一大半就失敗了。 - 安裝anaconda,再安裝其cpu或者GPU版本。最后再在spyder中使用。
- 然而,對于習慣使用pycharm而非anaconda的朋友來說,安裝tensorflow是一件多么不幸的事情呀,
pip install tensorflow,至少我沒有成功過,可以安裝完成anaconda后,在pycharm中調(diào)用anaconda中的解釋器。 - 對于anaconda中是否需要再安裝一個虛擬環(huán)境,在這個環(huán)境里再安裝tensorflow這個問題,我覺得完全沒有必要,雖然網(wǎng)上很多貼子都是這么做的,anaconda已經(jīng)安裝這么多包了,不在乎多這么一個了。
一、win10 搭建tensorflow-CPU環(huán)境
已經(jīng)在另一篇博客中介紹了,pycharm+anaconda+tensorflow(CPU)
二、win10 搭建tensorflow-GPU環(huán)境
cpu只能解決一些運算量很小的問題,學習還可以,但真需要使用時,就捉襟見肘了。這里就要用到GPU來加速了。在搭建tensorflow-gpu環(huán)境之前有幾個問題不得不注意:
- 1、cuda9.0+cudnn9.0+tensorflow-gpu1.9.0,三者版本需要對的上
- 2、cunda9.0的安裝路徑和環(huán)境變量的配置問題
- 3、tensorflow1.9.0和numpy的不兼容問題,numpy==1.14.0降低到numpy==1.13.0
- 4、使用清華鏡像源會出現(xiàn)的問題
1、環(huán)境
- 操作系統(tǒng):win10
- GPU:GTX1050+CUDA9.0+cuDNN9.0
- IDE:Pycharm
- 框架:tensorflow-gpu1.9.0
- 解釋器:Python3.6
(強烈建議anaconda3,又方便又強大,下載太慢可以找鏡像)
2、安裝順序
(1)首先安裝CUDA9.0 官方下載地址
現(xiàn)在最新的已經(jīng)是9.2版本了。而我選擇9.0版本,是因為網(wǎng)上說,tensorflow的windows-gpu還不支持CUDA的新版本。再加上網(wǎng)上安裝9.0版本的教程都成功了,我就偷偷懶。
按照要求,一路綠燈。
note:這里的安裝路徑選用系統(tǒng)默認,最后肯定會安裝到C盤
(2)CUDA9.0 環(huán)境變量配置
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
(3)安裝cuDNN9.0 官網(wǎng)下載地址
下載搭配CUDA9.0的cudnn ,一定要注意搭配9.0。需要注冊英偉達的賬號,這個過程可能很痛苦,國外網(wǎng)站使用不易。
下載好之后,解壓,分別將.h .lib 和.dll 文件分別拷貝到cuda的include, lib/x64, bin 文件夾下。其實也就是對應的文件夾。
到這里就安裝好了CUDA9.0及其對應的cudnn。
(3)安裝tensorflow-GPU
為了不相干擾,先刪除之前安裝的是cpu版本。
>> pip uninstall tensorflow
然后安裝清華鏡像源中的程序
>> pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.9.0
添加到path當中
(4) 驗證
在命令行中,進入python,并輸入以下代碼:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
輸出:
b’ Hello, TensorFlow!
安裝完成
3、遇到的大坑
(1)鏡像源帶來的版本問題
https://mirrors.tuna.tsinghua.edu.cn/
https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
注意兩者的區(qū)別,前者不是最新的安裝包,很容易出現(xiàn)問題
以前使用清華鏡像源來安裝軟件,能大大提升下載速度,但是遇到一個很嚴重的問題,清華鏡像源上的版本問題,這里使用的是cuda9.0+cuDNN9.0,自然tensorflow-gpu也應該是1.9.0版本,而清華鏡像源上的是1.1.0版本,根本就不行。這里要先解除鏡像源鏈接,再重新安裝。
- 添加 Anaconda 倉庫的鏡像源:
>> conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
>> conda config --set show_channel_urls yes
添加之后,就會從鏡像源中直接下載,速度是非??斓?/p>
- 查看鏡像源:
conda config --show
- 刪除鏡像源:
conda config --remove channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'
對于一些鏡像源出現(xiàn)的版本限制,可以刪除此鏡像源
(2)tensorflow1.9.0及其他高版本對numpy的不兼容問題
運行的時候會出現(xiàn)如下錯誤類型:
.local/lib/python2.7/site-packages/h5py/init.py:36: FutureWarning: Conversion of the second argument of issubdtype from
floattonp.floatingis deprecated. In future, it will be treated asnp.float64 == np.dtype(float).type.
from ._conv import register_converters as _register_converters
解決方法:這是因為numpy高版本與h5py不兼容導致,可以用 pip install numpy==1.13.0 安裝舊版本的numpy解決