關於各個軟件環境的說明
python
是深度學習使用的一門語言,封裝比較高級,語言表達很簡潔,實現複雜網絡模型的時候比較易讀,所以不用偏底層的c++語言, 目前選擇的版本是3.6或3.7opencv
是python的一個庫, 什麼是庫呢?庫是集合了同一類函數的集合。opencv就是圖像處理, 視頻處理的庫anaconda
可以理解爲一種容器,可以和docker以及nodejs的nvm做下對比, 在我們系統上有很多軟件會因不同版本可能產生的不兼容, anaconda隔離了版本之間的不兼容,是個獨立容器, 安裝完成後自帶python等軟件- 備註:anaconda如果下載的默認是3.x版本的python, 那麼在anacoda虛擬環境中安裝軟件的時候, 使用pip即可, 如果使用pip3的話裝的軟件可能會不在conda list的軟件列表中,在虛擬環境下, python就是python3命令, pip就是pip3命令, 退出虛擬環境即可恢復原配置
Anaconda的安裝
1 ) 下載和安裝
- 在搜索引擎搜索anaconda進入它的官網,點擊download,選擇版本下載,如:
- Windows下載:https://repo.anaconda.com/archive/Anaconda3-2019.10-Windows-x86_64.exe
- Mac下載:https://repo.anaconda.com/archive/Anaconda3-2019.10-MacOSX-x86_64.pkg
- Linux下載:https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
- 安裝時注意選項和權限的相關問題
2 )相關常用命令
- 查看安裝的軟件集合 $
conda list
- 在用戶目錄下執行 $
conda activate
可以看到前面多個base的提示,這裏是一個總的虛擬環境,這個命令執行默認是在用戶目錄下操作,在其他目錄下執行會報錯 - 創建其他虛擬環境 $
conda create -n tf1 python==3.7
- 這裏指定其他虛擬環境的名稱爲:tf1
- python的環境是3.7的版本
- 退出虛擬環境 $
conda deactivate tf1
- 刪除虛擬環境 $
conda remove tf1 --all
- 查看當前存在的虛擬環境 $
conda env list
或 $conda info -e
- 更多使用方式請自行搜索
3 ) 關於jupyter notebook的說明
- anaconda的安裝後會自帶
jupyter notebook
工具 - 在使用$
jupyter notebook
的時候,$pwd
是什麼,當前的工作空間就是什麼
Cuda&Cudnn的安裝(N卡選擇,推薦安裝)
1 ) cuda的安裝
- cuda是nvidia廠商提供的運算平臺,用於加速的流處理器模塊是軟件和硬件的集合,用顯卡來加速運算
- 首先確認自己的電腦的顯卡是否爲N卡, 如果不是可以跳過此步驟
- 通過搜索引擎,進入cuda的官網選擇版本, 以下以windows作爲例子:
- cuda官網找到 windows 64 10 exe(local)的版本進行下載, 注意cuda版本和tf是有對應關係的,下載錯誤可能存在問題
- 下載安裝後選擇自定義安裝, 只選擇
CUDA
, 其他三項不選勾掉即可,要記住安裝的位置路徑,用於之後cudnn文件的拷貝
2 ) cudnn的安裝
- cudnn是nvdia提供的額外服務,是用來加速深度學習模塊的工具,需要官網註冊開發者的身份再來進行下載
- 註冊開發者並且登錄後,訪問:developer.nvidia.com/rdp/cudnn-download
- 與cuda版本對應,選擇 cudnn library for windows10, 具體版本也選擇10.0的
- cudnn下載好之後直接解壓處理,是個壓縮包, 解壓後直接複製,按照同目錄粘貼過去即可
- cuda的目錄一般在
C/program files/Nvidia GPU computing Toolkit/cuda/v10.0
- 將cudnn中對應的文件完全粘貼替換即可!
3 ) 測試是否安裝成功
- 重新打開一個新的終端:$
nvcc -V
- 輸出類似下面的信息即成功!
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2018 NVIDIA Corporation Built on Sat_Aug_25_21:08:04_Central_Daylight_Time_2018 Cuda compilation tools, release 10.0, V10.0.130
Opencv的安裝
1 )安裝
- 進入conda的虛擬環境中$
conda activate
再進行安裝,執行下面的命令 - $
pip install opencv-python==3.4.2.16 -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
- $
pip install opencv-contrib-python==3.4.2.16 -i https://pypi.doubanio.com/simple/
- i
參數表示使用其他源--trusted-host
參數表示信任該源的主機地址- 上面兩條命令不可順序顛倒,否則會產生覆蓋和報錯, 在安裝opencv-python的時候就添加了trusted-host,所以下面的opencv-contrib-python不用添加了
- opencv-python的版本更新到了4.x, 更新版本後因版權的緣故將sift函數被刪除了,此處我們使用3.4的版本
2 ) 測試是否安裝成功
- 在python環境中進行測試 $
python
>>> import cv2 # 這一步不報錯,說明opencv安裝成功 >>> sift = cv2.xfeatures2d.SIFT_create() # 這一步不報錯說明contrib包安裝成功
TensorFlow的安裝
1 ) 分類安裝
- 進入conda安裝tensorflow, $
conda activate tf1
(不加tf1默認是base, tf1是我創建的虛擬環境) - $
pip install tensorflow==1.14
這個是CPU的版本,沒有N卡的用戶直接安裝, 一些A卡的Mac用戶也可以選擇此項 - $
pip install tensorflow-gpu==1.14
這個是GPU的版本,比較麻煩,先安裝cuda和cudnn, 我們之前已經配置安裝了 - 如果下載太慢的話可以使用國內的源,這裏提供一個清華的源:後加
-i https://pypi.tuna.tsinghua.edu.cn/simple
參數即可, 下載速度飛快 - 然後發生了一個錯誤!
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
- 解決錯誤:$
pip install --upgrade tensorflow-gpu==1.14 -i https://pypi.tuna.tsinghua.edu.cn/simple
- 網上找到的解決方案, 添加了
--upgrade
參數 - 這裏只能重新下載
- 建議一開始就使用這條命令來下載
- 網上找到的解決方案, 添加了
2 ) 測試tensorflow是否安裝成功
- 在conda虛擬環境中,進入python環境 $
python
>>> import tensorflow as tf >>> greeting = tf.constant("Hello tensorflow!") >>> ses = tf.Session() # 啓動一個會話 >>> res = ses.run(greeting) # 使用會話執行greeting計算模塊 >>> print(res) >>> ses.close()
- 通過屏幕信息可以查看到在啓動會話後的GPU信息,如:
2020-02-21 08:37:07.201020: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library nvcuda.dll 2020-02-21 08:37:07.361835: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties: name: GeForce RTX 2080 major: 7 minor: 5 memoryClockRate(GHz): 1.59 pciBusID: 0000:01:00.0 2020-02-21 08:37:07.366723: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check. 2020-02-21 08:37:07.371966: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0 2020-02-21 08:37:07.376013: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 2020-02-21 08:37:07.383803: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties: name: GeForce RTX 2080 major: 7 minor: 5 memoryClockRate(GHz): 1.59 pciBusID: 0000:01:00.0 2020-02-21 08:37:07.388199: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check. 2020-02-21 08:37:07.393190: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0 2020-02-21 08:37:08.506285: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix: 2020-02-21 08:37:08.509243: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187] 0 2020-02-21 08:37:08.510397: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0: N 2020-02-21 08:37:08.514244: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6257 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080, pci bus id: 0000:01:00.0, compute capability: 7.5)
- 其他問題:測試時,如果出現下列錯誤信息,是因爲cuda的版本和tf的版本不兼容,如:cuda10.2與tf1.14, 建議cuda回退到cuda10或升級tf到相關版本(具體版本沒有試過>1.14):
ImportError: Could not find 'cudart64_100.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 10.0 from this URL: https://developer.nvidia.com/cuda-90-download-archive
- 網上有人通過在bin目錄下的
cudart64_102.dll
文件改名爲cudart64_100.dll
這樣也能解決,但是這樣很可能會有潛在的問題 - 上面的錯誤信息中的鏈接:
https://developer.nvidia.com/cuda-90-download-archive
, 下載的是9版本的cuda, 所以也不推薦 - cuda歷史版本鏈接:
https://developer.nvidia.com/cuda-toolkit-archive
找到對應的10.0版本重新下載安裝即可
- 網上有人通過在bin目錄下的
3 ) 相關說明
-
我們的深度學習,神經網絡主要用到的數據是圖片和視頻,拿圖片來說,在電腦儲存形式是很多像素點形成的矩陣,每個像素點是0-255的數字,再做圖像處理的時候實際上是在做矩陣的運算,可以認爲它是一個並行化程度很高的,同時運行很多個小的計算, 如果使用CPU進行加速的時候, CPU有16核、最多32核,一次最多隻能執行32次計算。
-
而在顯卡中,GPU有很多的計算單元, 可以同時進行幾千個運算, 如果是N卡還可以使用加速器, 並且兼容cuda,如果兼容的話, 那麼就安裝這個GPU版本, 如果顯卡是集成顯卡, 直接選擇CPU版本, 如果速度慢的話,可以使用雲服務器來跑,有很多廠商提供相關服務
-
與tf框架類似框架:mxnet pytorch等
- tensorflow 是谷歌出品的框架, 便於部署,工業界應用廣泛,已經升級到2.x版本,但是之前很多項目是基於1.x的
- pytorch 便於使用,學術界用於快速實現自己的想法
- mxnet 使用率的尚不廣泛
Pycharm的安裝
- 下載pycharm選擇community社區版,主要是免費,pycharm功能很全面
- New Project / Pure Python / location 自己選地址 / Existing interpreter 選擇在anoconda中配置的虛擬環境下的東西
- 選擇Conda Environment ,默認顯示剛纔已安裝的python解釋器了,Make available to all projects,點擊創建即可!
- 等Pycharm底下的indexing 創建索引更新等操作結束後, 點擊 ADD CONFIGURATION… 配置 點擊 + 選擇python, 默認解釋器即可!
- 後期再進入項目的時候,直接點擊settings設置找到Project/Project Interpreter下配置即可!
- 其他注意事項:在項目面板中新建python文件時需要特別注意不要使用關鍵名,如:opencv,容易發生循環調用衝突導致的錯誤
- 不同的pycharm版本會略有不同, 僅供參考!