【2019.2.27更新】
Tensorflow1.13版本已經(jīng)正式發(fā)布,現(xiàn)在Python3.7直接安裝Tensorflow即可。
pip install tensorflow
本文的歷史使命宣告結(jié)束╰(°▽°)╯
如果讀者希望在Python3.7環(huán)境下安裝低于1.13版本的Tensorflow,請(qǐng)向下查閱有關(guān)內(nèi)容。
【2019.2.15更新】
Tensorflow1.13版本將正式支持Python3.7,目前還未正式發(fā)布,可以安裝RC版本。
注意:同時(shí)需要把NumPy升級(jí)到最新版本
pip install tensorflow==1.13.0rc1
pip install numpy --upgrade
經(jīng)測(cè)試,Mac、Windows、Linux下都可以正常運(yùn)行。
讓我們共同期待Tensorflow1.13版本的正式發(fā)布吧!
【2019.1.7更新】
關(guān)于Windows下出現(xiàn)“找不到DLL”錯(cuò)誤,導(dǎo)致無(wú)法import的問(wèn)題:
需要修改_pywrap_tensorflow_internal.pyd
,可以參考這個(gè)GitHub Link。
該文件為二進(jìn)制文件,最快捷的方式是利用https://hexed.it/這一網(wǎng)站進(jìn)行修改。對(duì)于CPU版本,找到python36
(一處),將其替換為python37
即可。
我已經(jīng)修改了一個(gè)適用于CPU的版本并上傳到百度網(wǎng)盤,鏈接: https://pan.baidu.com/s/14jTm2LUmjmvSgYsjyNJ9hw 提取碼: i453
下載后替換Python37\Lib\site-packages\tensorflow\python\
目錄下的同名文件即可。
如果需要GPU支持,則需要按照上面鏈接中的方法,進(jìn)一步修改_pywrap_tensorflow_internal.pyd
和Python37\Lib\site-packages\tensorflow\python\platform
目錄下的build_info.py
文件。
具體操作為:將_pywrap_tensorflow_internal.pyd
中的64_90
全部替換為64_92
,將build_info.py
中的64_90
替換為64_92
,9.0
替換為9.2
。
【11.27更新】最新版本的tensorflow 1.12.0已經(jīng)修改了async
變量名,可以直接安裝,方法如下
# Mac
pip install https://download.tensorflow.google.cn/mac/cpu/tensorflow-1.12.0-py3-none-any.whl
# Linux CPU
wget https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.12.0-cp36-cp36m-linux_x86_64.whl
mv tensorflow-1.12.0-cp36-cp36m-linux_x86_64.whl tensorflow-1.12.0-cp37-cp37m-linux_x86_64.whl
pip install tensorflow-1.12.0-cp37-cp37m-linux_x86_64.whl
# Linux GPU
wget https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.12.0-cp36-cp36m-linux_x86_64.whl
mv tensorflow_gpu-1.12.0-cp36-cp36m-linux_x86_64.whl tensorflow_gpu-1.12.0-cp37-cp37m-linux_x86_64.whl
pip install tensorflow_gpu-1.12.0-cp37-cp37m-linux_x86_64.whl
# Windows CPU
# 下載https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.12.0-cp36-cp36m-win_amd64.whl
# 重命名文件,將36改為37
pip install tensorflow-1.12.0-cp37-cp37m-win_amd64.whl
# Windows GPU
# 下載https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl
# 重命名文件,將36改為37
pip install tensorflow_gpu-1.12.0-cp37-cp37m-win_amd64.whl
注意:Linux和Windows環(huán)境下,下載的wheel包在名稱中顯示聲明了版本號(hào),為了能夠用pip正常安裝,需要一點(diǎn)小trick,也就是將wheel文件改名。
使用時(shí)可能會(huì)有RuntimeWarning: compiletime version 3.6 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.7
,并不影響使用,可以忽略。
如果需要使用tensorflow 1.10.0或更早的版本,下面??的方法仍然適用。
Mac
Homebrew作為一個(gè)包管理器什么都好,就是在版本管理方面不太方便。默認(rèn)只能裝最新版本,想回退到老版本得費(fèi)不少勁。這不,Python升級(jí)成3.7之后,就遇到了問(wèn)題:
不能導(dǎo)入tensorflow了!!!
這可是出大事了。咋辦呢?搜索了很久后在github上找到了解答:原網(wǎng)頁(yè)鏈接
具體來(lái)說(shuō),原因就是Python3.7新引入了保留字async
,而tensorflow的代碼里,將其作為了變量名。要修改,方法也很簡(jiǎn)單:
首先找到下面這個(gè)文件:
/usr/local/lib/python3.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py
(如果用的是Anaconda這類發(fā)行版,就到對(duì)應(yīng)的site-packages目錄下找,不過(guò)用Anaconda的應(yīng)該沒(méi)這個(gè)問(wèn)題,因?yàn)锳naconda還沒(méi)有升級(jí)到Python3.7),然后搜索async
(注意區(qū)分大小寫),全部替換為async1
,保存關(guān)閉。
【11.21更新】注意,這里只替換單獨(dú)的
async
(請(qǐng)參考下方“太陽(yáng)家的貓”同學(xué)的評(píng)論。)
打開(kāi)IPython測(cè)試一下:
import tensorflow as tf
沒(méi)有問(wèn)題,成功導(dǎo)入啦。
附:在Python3.7下安裝tensorflow
因?yàn)楝F(xiàn)在tensorflow還沒(méi)有官方添加對(duì)Python3.7的支持,所以用pip直接安裝是搜索不到合適的tensorflow包的,這時(shí)候就需要直接從.whl安裝。具體方法為(以Mac為例):
pip install https://download.tensorflow.google.cn/mac/cpu/tensorflow-1.10.0-py3-none-any.whl --upgrade
如果訪問(wèn)不了這個(gè)地址的,請(qǐng)自行解決。
安裝好之后,就按照上面的方法修改一下async
就可以啦。