YOLO 實作 Code
本範例引用自網路程式碼,模型為YOLO V2,基於TensorFlow 2。
YOLO的訓練所需計算量相較於基礎的基於MLP的MNIST,擴大了很多。如果不用Colab的GPU加速環境,在本地訓練就需要額外的計算環境。對於擁有NVIDIA獨立顯示卡的電腦,我們可以在上面安裝CUDA、CuDNN和tensorflow-gpu來加速運算。對於M1系列的Mac,在MLP-1這篇文章中的環境搭建方法仍然有效,可以順利對後文的程式碼進行加速。
首先,我們需要在網路上搜尋CUDA 11.0和CuDNN 8。我們需要切記一點:CUDA和CuDNN的版本其實是需要嚴格對應的。由於我們使用TensorFlow 2,且TensorFlow的版本已經到達2.8,CUDA 11.0和CuDNN 8.1是一個已經經過驗證的組合。CuDNN的下載需要注冊NVIDIA的賬戶。
首先安裝CUDA。可以不安裝驅動和NVIDIA GeForce Experience。
安裝完CUDA,就需要把CuDNN的文件放到合適的位置。這個位置就在Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0,CUDA根目錄中。CuDNN的壓縮檔中有一個cuda資料夾,進入之後有bin、include、lib這三個資料夾。CUDA根目錄中也有這三個資料夾。我們要做的其實就是把CuDNN壓縮檔中同樣目錄層級的文件放入CUDA根目錄中的相同位置。做完這一步,就可以重開電腦作業系統。一般情況下,TensorFlow的GPU加速環境就搭建完畢。
我們只需要確保tensorflow是GPU版本的即可。如果不是,可以先執行pip uninstall tensorflow,再執行pip install tensorflow-gpu即可。如果沒有GPU可用,tensorflow-gpu可以調用CPU進行計算。以上都是Windows用戶搭建環境的指引。
在執行本次程式之前,我們還需要安裝兩個包:
pip install opencv-python
pip install imgaug
本次程式碼請移步github
提示:需要在根目錄新增一個名叫weights的資料夾,放入yolov2的預訓練權重文件。