tensorflow2.4與目標檢測API在3060顯卡上的配置安裝


目前,由於3060顯卡驅動版本默認>11.0,因此,其不能使用tensorflow1版本的任何接口,所以學習在tf2版本下的深度學習目標檢測是很有必要的,而且此配置過程同樣適用於任何30系顯卡配置tf2環境。

一般配置Anaconda比較簡單,這里便跳過,選用的anaconda版本為Anaconda3-2020.11-Windows-x86_64,可以在清華鏡像官網上下載。

1,配置安裝conda

本次選用的tensorflow版本為2.4,cuda為11.0,cudnn為8.0,對應python為3.7

首先設置虛擬環境,輸入如下指令:

conda create -n tensorflow24gpu python=3.7

進入環境:

conda activate tensorflow24gpu

離開環境:

conda deactivate

2,安裝cuda與cudnn

輸入如下指令安裝cuda

conda install cudatoolkit=11.0

輸入如下指令安裝cudnn

conda install cudnn==8.0.5.39 -c conda-forge

如下輸入指令安裝tensorflow2.4.0

pip install tensorflow==2.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

之后執行測試程序,在某一個目錄下新建一個test.py文件,並在GPU環境目錄下輸入python test.py。其中內容如下,輸出GPUTrue則安裝正常,test.py代碼如下

import tensorflow as tf
version = tf.__version__
gpu_ok = tf.test.is_gpu_available()
print("tf version:",version,"\nuse GPU",gpu_ok)

3,tensorflow目標檢測API配置運行

去官網https://github.com/tensorflow/models/tree/archive下載models-archve並解壓文件到本地硬盤下的某一個盤符下,這里我解壓到D盤,注意,解壓 路徑不要有中文

配置protoc,下載網址[https://github.com/protocolbuffers/protobuf/releases],這里我下載的為3.4.0版本win32位,解壓后(位置任意)。接着將bin文件夾下的protoc.exe復制到C:\Windows即可

之后,在models-archive\research\目錄下打開命令行窗口,輸入:

protoc object_detection/protos/*.proto --python_out=.

若無錯誤,程序將不返回任何信息

添加環境變量。在Anaconda安裝目錄Anaconda\Lib\site-packages添加一個路徑文件,如tensorflow_model.pth,必須以.pth為后綴,寫上你要加入的模塊文件所在的目錄名稱

D:\TensorflowModels\models-archive\research
D:\TensorflowModels\models-archive\research\slim

再將解壓目錄,D:\TensorflowModels\models-archive\research\object_detection\packages\tf2下的setup.py文件復制到D:\TensorflowModels\models-archive\research\,並在research目錄下執行

python -m pip install .

若執行成功如圖上所示。

之后安裝運行模型所需要的一些必要的庫,執行以下指令:

pip install tf_slim

pip install scipy

pip install tf-models-official==2.4.0

需要注意,執行最后一個指令時,會默認給當前環境安裝最高版本的tensorflow2.8環境並卸載安裝的tensorflow2.4因此,在執行完最后的安裝tf-models-official后需要重新安裝tensorflow2.4

pip install tensorflow==2.4.0

其中紅包部分是由於部分庫包與tensorflow2.4環境不匹配,降級版本或刪除即可,這里google-cloud-bigquery一般不會用,刪除即可,執行以下指令

pip install grpcio==1.32.0

pip uninstall google-cloud-bigquery

pip install grpcio-status==1.32.0

完成上述步驟后,執行測試文件,在research目錄下輸入以下指令:

python object_detection/builders/model_builder_tf2_test.py

輸出以下結果,則配置安裝正確

4,tensorflow目標檢測API圖片運行測試

在tensorflow24gpu的環境下執行以下語句:

conda install nb_conda

去tensorflow-model的github網站下載1.13版本https://github.com/tensorflow/models/tree/r1.13.0,並解壓 ,將models-r1.13.0\research\object_detection下的object_detection_tutorial.ipynb拷貝到models-archive\research\object_detection下

在research文件夾目錄下運行命令:jupyter notebook,

進入網頁界面點擊new后修改運行環境為tensorflow24gpu,如下

接着在jupyter中打開object_detection文件夾,並單擊object_detection_tutorial.ipynb運行試例文件並在中間執行幾處更改

在imports中插入以下命令

os.environ['CUDA_VISIBLE_DEVICES'] = '/gpu:0'

下載一個他人訓練好的權重文件https://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_2017_11_17.tar.gz

解壓並放在一個位置,將文件地址添加在Variables處,在Variables將代碼改為:

#What model to download.

#Path to frozen detection graph. This is the actual model that is used for the object detection.

PATH_TO_FROZEN_GRAPH = 'D:/TensorflowModels/ssd_mobilenet_v1_coco_2017_11_17/frozen_inference_graph.pb'

# List of the strings that is used to add correct label for each box.

PATH_TO_LABELS = os.path.join('data', 'mscoco_label_map.pbtxt')

中間PATH_TO_FROZEN_GRAPH的目錄為下載解壓的ssd_mobilenet_v1_coco_2017_11_17訓練集解壓的位置,在將Download Model一塊刪除即可

最后,由於tensorflow1與2的區別,需要將object_detection_tutorial.ipynb代碼中的tf全部修改為tf.compat.v1

之后點擊run all運行

成功的運行結果如下所示:

GPU使用情況如下所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM