Pycharm下安裝Tensorflow

趁着幫師妹看Github上的一個項目,督促自己學習一下Python下訓練神經網絡的一整套流程。沒想到在一開頭就遇到了不少問題。首先是Pycharm中導入Github項目的問題,還有安裝tensorflow的問題,之後又遇到了多種版本的Python共存的問題。在這裏記錄一下,包括一些開源鏡像,方便日後查閱。

Justin-Tan實現了一篇文章提出的基於GAN網絡壓縮圖像的目標。原理基本就是生成一幅儘可能和原圖相似的圖像,讓鑑別器難以分辨,同時使得圖像佔用內存空間儘可能小。可以在大小比常規方法縮小一半的同時,圖像質量提高到兩倍

說到git,這是個版本控制系統,Linux自己用c寫成的,因爲需要協同工作,每個人都可能對某部分進行改動,生成不同版本,有了Git就可以方便地回到每個版本。當然有其他版本控制系統如SVN,但是代碼託管平臺Github只支持Git,這也是Github得名的原因。之前使用Github大多是c++代碼,都是下載了zip壓縮包,然後到本地重新進行編譯。但是對於Python還沒怎麼接觸。看到一篇博客,發現可以直接在Pycharm通過版本控制從Github上面clone得到項目工程。簡單來說就是在setting中的version control中的Github中登錄自己的賬號,並且明確自己安裝的Git.exe的路徑。

這個項目依賴於TensorFlow1.8.但是在pycharm中卻一直安裝失敗(其實也是在後臺執行pip install tensorflow),升級pip之後仍然報錯; AttributeError: module 'pip' has no attribute 'main',還是提示在選擇的解釋器中要使用正確版本的pip,建議在命令行中執行。

參考將pycharm安裝目錄下 helpers/packaging_tool.py文件的install和uninstall部分進行修改。仍然有錯Non-zero exit code (1)這就是pycharm沒有找到合適的TensorFlow版本。其實安裝package最重要的就是版本對應和網絡環境。

這就需要鏡像。鏡像的使用有兩種方法,一種是讓電腦在鏡像中自動尋找匹配的版本:在Terminal端使用:

pip install pandas -i https://pypi.douban.com/simple #利用豆瓣鏡像源自動選擇合適版本,
pip install tensorflow -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com  #或者使用阿里雲

但有時還是需要手動尋找合適的版本。我從加州歐文大學的一個生物醫學熒光光譜學研究中心下載輪子(wheel),安裝命令可以在PowerShell中執行,也可以在Git Bash中執行,只要要cd到whl所在路徑下(也可直接將文件拖動到)。按照命令也很簡單:

pip install XXXXX.whl #兩種方法都可以
pip install --upgrade tensorflow-1.0.0-cp35-cp35m-win_amd64.whl #會按照一些依賴工具

現在說明一下什麼樣子的纔是合適的版本。1.tensorflow只支持64位的python,機器也必須是64位的。2.tensorflow的版本與python有關,cp36意味着對應的python版本是3.6.。3.太老的CPU支持不了太新版本的tensorflow,因爲缺少VAX的指令集。

關於1,2,無非就是重新安裝一個新的python版本,可參考教程。或者卸載原來的tensorflow:pip uninstall tensorflow。麻煩的是如果本地存在多個python版本,如何使用pip指令。以我自己爲例,兩個python3.6和3.7路徑不同,但安裝目錄下兩個可執行文件名都是python.exe。爲了在cmd中可以由用戶決定進入哪種python,可以將兩種python.exe分別重命名爲python36.exe和python37.exe。同樣的,在使用pip安裝whl的時候也要聲明要將whl安裝在哪個版本的python下,如果依然直接使用pip install XXX就會報錯,平臺不支持,因爲不同版本的python都包含pip。自己嘗試直接將pip重命名,依然不對。正確做法:Python36 –m pip install XXX

第三點也是個大坑,因爲我本來都安裝成功了,結果在嘗試import時報錯:ImportError: DLL load failed with error code -1073741795。原因就是之前提到的,硬件條件太差,不僅沒有GPU加速,CPU也太落伍,不支持新的tensorflow。在tintinmovie的github中解釋了這個問題,在其鏈接中可以查看自己的CPU是否支持VAX。如果真的不支持,一種方法是使用低版本的tf:pip install tensorflow==1.5。但在這個項目中要求使用的tf版本是1.8的,該怎麼辦呢?這就要多謝fo40225大神重新編譯的基於SSE指令集的tensorflow版本了。

到這裏,應該就可以順利地安裝成功了。因爲是在cmd命令行安裝的,爲了在pycharm中使用模塊,可以在setting中勾選如下選項,繼承全局package。

總體來講,pycharm安裝package的方法很傻瓜,應付大部分第三方模塊是足夠的,只不過遇到網絡問題或者版本問題就需要自己多動幾下手啦。希望能多少幫助到一些朋友。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章