1. 程式人生 > >win10安裝TensorFlow填坑筆記

win10安裝TensorFlow填坑筆記

研究了一段人工智慧的基礎理論以後,終於決定安裝一套TensorFlow來練練手。鄭重其事的將一臺電腦重灌了win10,網上找了幾個安裝攻略,照著安裝TensorFlow For windows。結果就踩到了幾個大坑。很多安裝攻略只告訴你怎麼做,沒告訴你為啥這麼做,所以踩到坑時一臉茫然。所以我想把填坑時的分析及解決問題過程也寫出來,供大家參考。

說正題前說明一下,由於開源的軟體更新速度快,所以以下說明應該也有一定的時效性。其實我也是看著別人安裝0.12版的攻略掉坑裡的。所以事先宣告:以下說明為在2018年10月在windows10 64位系統上(版本10.0.15063)安裝TensorFlow 1.1 CPU版本時的經驗。如果後續版本有發生變化需要根據實際情況分析。至於GPU版本,待我先把CPU的摸清楚了再去折騰。

第一個坑:注意下載Python的版本

網上很多安裝攻略,都提到了TennsorFlow要使用 Python3.0 系列版本不能使用2.0系列版本。當我前去Python官網下載版本是3.6.4

但是,如果你直接安裝這個最新版本以後,在後面使用pip安裝TensorFlow的時候就會出現錯誤。截圖字太小看不清,貼出來:
Could not find a version that satisfies the requirement tensorfllow (from versions: )No matching distribution found for tensorflow

這個問題的根源其實在於TensorFlow 的安裝包目前windows版本還不支援 Python 3.6 。可以到

https://pypi.python.org/pypi/tensorflow/1.1.0rc2 檢視1.1目前支援的安裝包

這裡寫圖片描述

吶,檔名裡cp35 cp36 就是指cpython的版本。檔名裡還有支援的作業系統版本。 截止4月20日,支援windows 的版本需要64位系統,不支援32位系統。linux和osx的就支援32位,不過話說現在的機器都是64位CPU了吧,這個不是障礙。要用windows的只支援Python3.5。linux和osx有python3.6的支援。不過這不關鍵,並不因為python版本而影響功能。

還有很多攻略裡建議安裝Anaconda 。這樣 就可以省去未來安裝各種類庫的麻煩。在這裡也要提醒一下,至少在4月份的時候 最新的Anaconda版本里是python3.6。如果按照3月份以前出的安裝攻略走就會掉溝裡去。

如果你看到這篇的時候已經距離2017年4月比較久了,就到上面那個網址裡面看看最新放出來的版本。至少目前我們只能在Python官網下載3.5的歷史版本來用。

本文2017年6月17日修訂:TensorFlow已經放出1.2 for windows 版本。支援python3.6

第二個坑:命令列工具一定要用管理員身份啟動。建議用powershell

說到命令列,大家可能習慣性的就敲個cmd進去了。但是如果就這麼簡單的輸入命令開始安裝,會發現整個下載過程非常順利,但是到了安裝步驟的時候就出現異常了。

這裡寫圖片描述
這裡寫圖片描述

暗紅色的報錯資訊洋洋灑灑一整屏,最後還有一個換色的提示,說pip已經有9了建議升級,看到這個可能會被帶到另外一個溝裡,以為是pip版本太低導致的。實際上最關鍵的錯誤在最後兩行:PermissionError: [WinError 5] 拒絕訪問。 涉及到許可權問題了。
我們知道win7開始有嚴格的使用者賬戶控制,大部分安裝程式在安裝的時候都會跳出對話方塊讓你授權。這給系統安全帶來了好處,但是也會帶來一些莫名其妙的問題(之前寫過一篇關於win7下裝oracle10g,其中一個坑也是使用者賬戶控制帶來的)。出現這種情況一般兩種情況:1、降低使用者賬戶控制級別 2、用更高的許可權來執行程式。我個人反對前者,建議從開始選單中找到Windows PowerShell,然後從右擊選單中選擇以管理員身份執行。

這裡寫圖片描述

其間,使用者賬戶控制會彈出授權確認介面

這裡寫圖片描述

其後就可以和cmd一樣使用了,輕快的輸入安裝命令,稍後安裝完成。下面這張截圖裡因為剛才cmd雖然沒有許可權安裝,但是已經完成了安裝包的下載,所以後面一次安裝直接使用了前一次的下載快取,介面顯示和上面的截圖不太一樣,沒有下載進度顯示。

這裡寫圖片描述

第三個坑:需要VS2015以上的執行時

你以為完成上述安裝就萬事大吉了麼。建立一個TensorFlow例項看看?

這裡寫圖片描述

不就是建立一個例項麼,洋洋灑灑兩屏錯誤,至於麼。解決這個問題饒了好大的彎子。首先是發現網上的win版攻略基本都是安裝了Anaconda,而linux版安裝攻略基本就一個命令搞定。難道真的是少了什麼庫,仔細看了一下,發現win版Anaconda裡貌似還有一個VS的執行庫。最後是翻牆看了tensorflow官網的說明,的確也發現有VS執行庫的相關說明(翻牆的沒截圖)去微軟下載了最新的Visual Studio 2017 社群版,安裝後TensorFlow例項建立成功。到此一切就圓滿了。下面這個截圖裡一個hello world 期間打錯命令,報個小錯,後面洋洋灑灑一堆提示是因為日誌級別的問題,而不是錯誤,最終輸出正確。懶得修改了截圖貼上發表。

這裡寫圖片描述

最後總結一下安裝步驟

  1. 上pypi.python.org看目前windows版本的tensorflow到底需要哪個版本的python支援
  2. 下載相應版本的python安裝
  3. 用管理員許可權的命令列工具 使用命令 pip install tensorflow 安裝
  4. 安裝一個VS