windows安裝TensorFlow和Keras遇到的問(wèn)題及其解決方法
安裝TensorFlow在Windows上,真是讓我心力交瘁,想死的心都有了,在Windows上做開(kāi)發(fā)真的讓人發(fā)狂。
首先說(shuō)一下我的經(jīng)歷,本來(lái)也就是起初,網(wǎng)上說(shuō)python3.7不支持TensorFlow環(huán)境,而且使用Anaconda最好,所以我將我之前Windows上所有的python環(huán)境卸載掉?。。?,對(duì)沒(méi)錯(cuò),是所有,包括Anaconda環(huán)境,python環(huán)境,pycharm環(huán)境也卸載掉了。而且我喪心病狂的在電腦上找?guī)缀跛嘘P(guān)于python的字眼,全部刪除掉,統(tǒng)統(tǒng)不留。只是為了鐵了心在Windows上成功安裝一個(gè)TensorFlow環(huán)境。
之前在Linux上環(huán)境都有,但是總是切換Linux和Windows比較麻煩,但是這個(gè)原因解釋起來(lái)也比較麻煩,就不多說(shuō)了??傊?,就是必須在Windows上安裝TensorFlow!這次是鐵了心的,因?yàn)槿ツ暝赪indows上沒(méi)有安裝成功,我就避而遠(yuǎn)之,沒(méi)弄,但是現(xiàn)在不得不再來(lái),我決定遇到問(wèn)題不再躲避,要直面挫折,即使浪費(fèi)很長(zhǎng)的時(shí)間,也必須完成(其實(shí)是正好這段時(shí)間不太忙)。
然后聽(tīng)到同事說(shuō),很簡(jiǎn)單啊,就是安裝一個(gè)Anaconda對(duì)應(yīng)python3.6版本的就行,后面直接pip install 就OK了。當(dāng)然我們希望是這樣,可是事與愿違,簡(jiǎn)直是氣死我了,這一天安裝anaconda就安裝了三次,你說(shuō)累不累,除了安裝這個(gè),還要安裝對(duì)應(yīng)的包,真的是卸了又安,安了又卸。
而打算最后一次嘗試,竟然是安裝的python3.7成功了(各位盆友,記住,只是安裝成功了!?。?,哈哈哈,真的我覺(jué)得我這笑是無(wú)奈的笑。
下圖是anaconda的版本和python的版本:
下圖是TensorFlow和keras安裝成功的見(jiàn)證:
但是,使用的時(shí)候還是報(bào)錯(cuò)!??!下圖是在python3.7的情況下:
唉,難受,那最最后一次嘗試,就是在python3.6版本下安裝,終于成功了??!包括測(cè)試成功,上圖:
所以,我的總結(jié)就是,安裝python3.6 還是python3.7的什么都不重要,最重要的是遇到問(wèn)題,解決問(wèn)題。無(wú)論用哪個(gè)版本,只要TensorFlow支持這個(gè)版本,我們就可以按照成功?。。?,但是前提是必須官方支持的版本
好了,牢騷發(fā)完了,廢話也說(shuō)完了,下面說(shuō)說(shuō)安裝注意的坑。
1,anaconda安裝要注意的問(wèn)題
話不多說(shuō),先上anaconda的下載地址。
鏡像下載地址:清華鏡像源
官方下載地址:https://repo.anaconda.com/archive/
那anaconda按照要注意的問(wèn)題是什么呢?
1.1,安裝到這一步,配置所有的User,選擇第二個(gè)??!
如果選擇第一個(gè),可能會(huì)出現(xiàn),下面報(bào)錯(cuò),也就是PermissionError,權(quán)限不足,所以就是安裝不成功,即使我使用了管理員權(quán)限進(jìn)入了cmd,但是還是沒(méi)有任何用處。
當(dāng)然,有可能你們有用,那么如何進(jìn)入管理員身份運(yùn)行,如下:
到C:\Windows\System32目錄下,右鍵單擊cmd.exe文件以管理員身份運(yùn)行。如下
運(yùn)行結(jié)果如下:
1.2,安裝到這一步,最好√上第一個(gè),讓anaconda自己配置環(huán)境變量
當(dāng)然,不讓anaconda自己配置環(huán)境變量也可以,那就是我們自己去我的電腦配置。
如何確保已經(jīng)配置好環(huán)境變量了呢?
我們打開(kāi)cmd,直接輸入pip list 或者 conda list,如果出現(xiàn)anaconda安裝的包,則說(shuō)明沒(méi)有問(wèn)題,如果出現(xiàn),無(wú)此命令,則環(huán)境變量沒(méi)有配置好。
我第一次沒(méi)有打 √ ,選擇自己配置的環(huán)境變量。
配置環(huán)境變量就是根據(jù)安裝時(shí)的路徑找到以下幾個(gè)路徑用于環(huán)境配置,我放在E盤(pán)里,以下為我安裝時(shí)的路徑。
E:\anaconda3E:\anaconda3\ScriptsE:\anaconda3\Library\bin
配置環(huán)境:回到桌面,右擊‘我的電腦',然后點(diǎn)擊屬性-高級(jí)系統(tǒng)設(shè)置-右下角點(diǎn)擊環(huán)境變量,點(diǎn)擊系統(tǒng)變量下方新建,如下圖所示,依次將上面的三個(gè)路徑輸入,路徑間用英文狀態(tài)下的分號(hào)隔開(kāi),點(diǎn)擊確定并應(yīng)用。
然后設(shè)置環(huán)境變量:
檢測(cè)是否安裝成功
打開(kāi)命令提示符(按住田字鍵和R鍵)輸入cmd,輸入conda和python,檢測(cè)是否安裝成功。
好啦~安裝完成啦!
2,安裝TensorFlow中報(bào)錯(cuò)cannot uninstall wrapt
報(bào)錯(cuò)如下:
導(dǎo)致錯(cuò)誤的原因:Wrapt issue when installing package
解決方法:
強(qiáng)行升級(jí),然后安裝TensorFlow和Keras,成功了??!
安裝成功,是成功了,但是無(wú)法使用,依舊會(huì)報(bào)錯(cuò)。
3,使用Keras中報(bào)錯(cuò)TensorFlow錯(cuò)誤
導(dǎo)入Keras,發(fā)現(xiàn)報(bào)錯(cuò)了,報(bào)錯(cuò)信息如下:
本以為是版本的問(wèn)題,然后卸載了keras和TensorFlow:
最好將其依賴一同卸載掉:
然后嘗試安裝了TensorFlow更低的版本(版本如下面所示):
結(jié)果無(wú)濟(jì)于事,沒(méi)用?。?!
迫不得已,我決定降低python版本,嘗試python3.6,大家都說(shuō)3.6好,那就用唄。
4,在anaconda中降低python版本,嘗試python3.6
使用以下命令創(chuàng)建新環(huán)境:
其中 -n 代表 name,env_name 是需要?jiǎng)?chuàng)建的環(huán)境名稱,list of packages 則是列出在新環(huán)境中需要安裝的工具包。
我現(xiàn)在的python版本是3.7,但是我想安裝一個(gè)python 3.6的環(huán)境,則在anaconda prompt輸入:
控制臺(tái)會(huì)輸出:
輸入y:
下面我們激活這個(gè)環(huán)境:
然后安裝keras和TensorFlow,最后在python環(huán)境中驗(yàn)證,發(fā)現(xiàn)新的錯(cuò)誤:
講道理,現(xiàn)在的我已經(jīng)麻木了,感覺(jué)自己把該犯的錯(cuò)全犯了,運(yùn)氣怎么這么差呢?
百度,改錯(cuò)方法如下:
5,使用TensorFlow,keras出現(xiàn)錯(cuò)誤:modulenotfounderror: no module named tensorflow.python
真的是遇到問(wèn)題,解決問(wèn)題,我已經(jīng)麻木了。
可能是因?yàn)閠ensorflow作為后端對(duì)keras的支持不夠好,但是keras的backend 同時(shí)支持tensorflow和theano,并且默認(rèn)是tensorflow,因此在win本上需要更改backend為theano才能運(yùn)行。
在keras安裝目錄里(在安裝環(huán)境的目錄里有Lib\site-packages\keras),找到Lib\site-packages\keras\backend__init__.py文件。
然后在C:\Users\Administrator\下有個(gè)文件夾.keras,里面有keras.json文件,修改里面的內(nèi)容,原來(lái)是:
那這個(gè)只解決了Keras的問(wèn)題,但是TensorFlow的問(wèn)題仍然沒(méi)有解決:
從下面代碼來(lái)看,我們的Keras確實(shí)可以運(yùn)行。但是TensorFlow仍然報(bào)錯(cuò)。
python使用TensorFlow報(bào)錯(cuò) ModuleNotFoundError:No module named 'tensorflow.python
我去我同事能使用的TensorFlow的安裝包site_packages下的tensorflow包里面查看,發(fā)現(xiàn)別人的環(huán)境都是這樣的:
而我的環(huán)境中沒(méi)有python,example include這幾個(gè)文件夾,終于知道問(wèn)題出在哪里了,所以我打算將別人的這個(gè)文件夾復(fù)制下來(lái),但是于此同時(shí)在網(wǎng)上看到一個(gè)安裝方法,反正折騰一天了,這個(gè)復(fù)制還在進(jìn)行當(dāng)中,我就先嘗試了一下:
然后等了好久,安裝成功了:
我也就不報(bào)希望,但是還是例行公事的在python環(huán)境中驗(yàn)證了一下:
不知道大家看到了什么,對(duì),安裝成功了?。。?!
此時(shí)此刻,我的內(nèi)心已經(jīng)毫無(wú)波瀾了,一絲喜悅感都沒(méi)有了。
為了測(cè)試到底能不能用,我又將keras的后端環(huán)境由theano換成了TensorFlow(如何改回去,上面有代碼,大家可以自己改,這里不再重復(fù)了)。
然后測(cè)試,成功!?。?,上圖:
今天真的是,哈哈哈哈哈。既然這個(gè)舒服,那我就再在python3.7上測(cè)試安裝keras和tensorflow,看看是否成功,但是去清華大學(xué)鏡像倉(cāng)庫(kù),發(fā)現(xiàn)沒(méi)有python3.7版本的tensorflow。
下面記錄一下去清華大學(xué)鏡像倉(cāng)庫(kù)下載并安裝對(duì)應(yīng)版本的tensorflow,一方面記錄正確的安裝過(guò)程,另一方面,證明確實(shí)沒(méi)用python3.7對(duì)應(yīng)的TensorFlow版本。
6,一次安裝成功TensorFlow過(guò)程
直接去清華大學(xué)鏡像倉(cāng)庫(kù),查看對(duì)應(yīng)版本的tensorflow:地址:https://mirrors.tuna.tsinghua.edu.cn/
尋找找tensorflow,并點(diǎn)進(jìn)去:
那查找自己對(duì)應(yīng)的電腦系統(tǒng):
我安裝的是CPU版本的:
點(diǎn)進(jìn)去,發(fā)現(xiàn),目前只有python3.5 和 python3.6的:
然后,下載對(duì)應(yīng)python版本的輪子,直接安裝即可。
7,不信邪,嘗試python3.7版本安裝TensorFlow,最終放棄
為什么這樣說(shuō)呢?,因?yàn)槲以诔O螺d輪子的地方發(fā)現(xiàn)了python3.7版本對(duì)應(yīng)的TensorFlow,真的。
?。ㄏ螺d輪子的地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/)
上圖:
反正都失敗這么多次了,也不差這一回,我就繼續(xù)安裝了一下python3.7版本的:
顯示,安裝成功:
此時(shí),內(nèi)心竊喜,測(cè)試一下:
心里有很多臟話,不值當(dāng)講不當(dāng)講,還是沒(méi)有用。
所以目前決定放棄在python3.7版本安裝tensorflow??!反正在python3.6版本上已經(jīng)安裝成功了,可以用就行了。
8,彩蛋
哈哈哈,很高興,看到我這篇文章的盆友,能看到這里,這里我分享一下我這次撥開(kāi)烏云見(jiàn)彩虹的坎坷歷程。
講道理,這兩天的無(wú)數(shù)次嘗試,最終成功,讓我明白一個(gè)道理,就是遇到問(wèn)題并不可怕,可怕的是自己脆弱的心,不斷想放棄的想法。
記得去年十月份的時(shí)候,我在Windows上嘗試安裝tensorflow失敗了。我就對(duì)深度學(xué)習(xí)這塊避而遠(yuǎn)之,即使訓(xùn)練模型也在Linux服務(wù)器上做, 麻煩是麻煩了點(diǎn),但是就是不愿意面對(duì)這個(gè)麻煩。但是從上個(gè)月開(kāi)始,當(dāng)我看到同事完成了一件事后,我決定安裝tensorflow(因?yàn)樽罱_實(shí)用的比較多,切換太頻繁也比較麻煩),她的那鍥而不舍精神打動(dòng)了我,什么事情呢? 先說(shuō)一下背景,她是學(xué)習(xí)java的,雖然說(shuō)編程語(yǔ)法大相徑庭,但是不同點(diǎn)依舊很多,而需要她使用python一個(gè)web框架flask做一個(gè)東西。她雖然不會(huì),但是不斷嘗試,不斷嘗試,可以說(shuō)是遇到了很多很多麻煩,挫折,我也天天聽(tīng)到了她的抱怨(可惜我?guī)筒簧希墙K于聽(tīng)到了她說(shuō)“yes”。我知道她成功了。所以,我決定不放棄,一定要安裝成功,最后也確實(shí)安裝成功了。
那其實(shí),很多人說(shuō),沒(méi)這么麻煩,我在Windows上直接pip install 就成功了啊,也確實(shí)是,但是我確實(shí)遇到了很多麻煩。希望我這次經(jīng)歷能幫到需要幫助的盆友。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python驗(yàn)證碼識(shí)別教程之滑動(dòng)驗(yàn)證碼
這篇文章主要給大家介紹了關(guān)于python驗(yàn)證碼識(shí)別教程之滑動(dòng)驗(yàn)證碼的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06echarts動(dòng)態(tài)獲取Django數(shù)據(jù)的實(shí)現(xiàn)示例
本文主要介紹了echarts動(dòng)態(tài)獲取Django數(shù)據(jù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Python Web程序搭建簡(jiǎn)單的Web服務(wù)器
這篇文章主要介紹了Python Web程序搭建簡(jiǎn)單的Web服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07python的django寫(xiě)頁(yè)面上傳文件及遇到的問(wèn)題小結(jié)
這篇文章主要介紹了python的django寫(xiě)頁(yè)面上傳文件以及遇到的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08PyQt 5 設(shè)置Logo圖標(biāo)和Title標(biāo)題的操作
這篇文章主要介紹了PyQt 5 設(shè)置Logo圖標(biāo)和Title標(biāo)題的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03