踩坑無數後,極速安裝TensorFlow2.1(CPU版)和OpenCV

關於安裝Anaconda和Pycharm / VSCode的教程很多,在這裏就不贅述了,我們直接進入主題,TensorFlow2.X系列版本一經發行就備受好評,但是一直沒有機會安裝,最近想跟着中國大學mooc裏最帥的北大曹健老師(我覺得神經網絡方面講的最適合入門的,中國大學mooc好評刷爆)學學TensorFlow2.1,然後就來安裝......一路踩坑,接着一分鐘安好???玄學 or 科學???下面來分享分享。

硬件環境:Surface Laptop3(win10 + 8G內存 + i5-1035G7) 

這低廉的配置顯然不能支持CUDA,沒有GPU並行計算的加持,只能安裝CPU版本的。

曹健老師的視頻講的很簡單(需要安裝GPU版本的,可以按照老師的視頻“第一講 1.8節”安裝,安裝CPU版本的接着看啦),先創建一個自己的環境:(注意的是-n後面的參數是自己創建的環境名,可以自己定義)

conda create -n TF2.1 python=3.7

在Proceed([y] / n)選y後稍等片刻就安裝好了,安裝完成後進入環境:(TF2.1是你前面創建的環境名哦,記得改成自己的)

conda activate TF2.1

特別特別要注意!!!接下來安裝TensorFlow2.1,老師用的是pip install tensorflow==2.1,網上的很多教程也用的是這一句,然後引起了各種報錯,比如因爲網絡原因的加載異常,Tendorflow安裝出錯: Could not find a version that satisfies the requirement grpcio>=1.8.6;Could not find a version that satisfies the balabalabala......讓我重度懷疑自己的laptop3是不是隻能用來攤雞蛋了(請你保持一個程序員的冷靜!)去網上找答案,網上的教程真可謂五花八門,有的是讓檢查python版本是不是32位,有的讓手動更新各種軟件包(更新方法:conda update --all 我給你更新個全家桶)...然並卵都沒有什麼用,也不知道他們是怎麼解決問題的(咱也不敢說,咱也不敢問),浪費了一晚上的時間並沒有什麼用,衆多的答案都集中在了讓換成清華的鏡像源,具體方法詳見我上一條博客https://blog.csdn.net/Fox_Alex/article/details/104871074(這是傳送門),然後我把鏡像源換了又換,排列了又組合(因爲有教程說需要在加/win-64/,類似下面)

  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/

然鵝下面展示的是我自己用的,不清楚爲什麼要加後面那個,然鵝加上也沒有用emmmm

- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

每次的下載都會因爲網絡莫名其妙的斷掉,安裝過程異常艱辛,然而都無疾而終,直覺告訴我是網絡的問題,但是爲什麼?我明明已經改了.condarc文件...就這樣度過了三個小時,然後試了試用conda安裝:(conda和pip的安裝包存放路徑不一樣,一起使用容易讓包冗餘,難以管理)

conda install tensorflow

結果一分鐘不到安裝好了,並測試通過(黑人臉問號)

測試代碼:

import tensorflow as tf

tensorflow_version = tf.__version__
gpu_available = tf.test.is_gpu_available()

print("tensorflow version", tensorflow_version, "\tGPU available:", gpu_available)

a = tf.constant([1.0, 2.0], name = "a")
b = tf.constant([1.0, 2.0], name = "b")
result = tf.add(a, b, name = "add")
print(result)

  當輸出最後一行計算結果,就算成功:

一個簡短的小結:.condarc更改的是conda的鏡像源,和pip並沒有什麼關係,當然pip的源也可以更改(本身的源訪問國外,會比較慢),網上有很多教程,這裏就不贅述了。

接下來講Opencv4.2的安裝,Opencv的安裝真可謂一股清流(噁心心),採用下面這行代碼就行:

conda install -c menpo opencv 

等安裝好以後,然後最神奇的事情就發生了,在命令行的python環境下測試:

顯示已安裝,然後在VSCode測試:(測試前記得換成你安裝了OpenCV的python解釋器,換好後重啓VSCode【重啓的這一步是祈福用的,心誠則靈,防止玄學】!)

然後....我彷彿被嘲笑了???找不到指定模塊???網上的教程五花八門,基本都說的天花亂墜,不知所云,就感覺我的電腦需要一波女媧補天般的操作纔可安裝,抱歉...我不可以!

解決辦法有兩種:

  1. 如果你從官網下載的OpenCV文件,打開它的opencv\build\python\cv2,之後會看到有幾個文件夾,然後需要找到對應自己python版本的文件夾打開它,找一個叫cv2.cp37-win_amd64.pyd的文件(可能會和我的文件有點差別,如果你是python版本和我的不相同的話),將它放到你要寫的py文件的同一目錄就OK了;
  2. 如果你按照我上面採用conda方式安裝,請在Anaconda文件夾的\Lib\site-packages裏找到cv2文件夾裏(或者在這個下面就有)找cv2.cp37-win_amd64.pyd的文件,然後將它放到你要寫的py文件的同一目錄就OK。

OpenCV的測試代碼:(記得順手更新一波PyLint+更改一些設置,因爲一些cv的函數可能會在顯示找不到,很影響視覺感受和心情哎,傳送門:https://www.cnblogs.com/ManWingloeng/p/10758418.html

import cv2
import numpy as np
img = cv2.imread('C:\\Users\\28912\\Pictures\\Camera Roll\\test.jpg')#圖片路徑記得換自己的喲
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

當加載出圖片就OK了!總的來說,一波三折折折折折折,本來事情可以很簡單,但是亂七八糟的教程就會很混亂,一些基本的概念還是要懂得,多總結多踩坑...我真棒emmmmm,但還存在一些問題,比如寫用到OpenCV庫的代碼,每次都需要手動加入cv2.cp37-win_amd64.pyd文件很麻煩,後面想辦法解決這個問題。

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