1 環境搭建(參看另外文檔)
2 將caffe模型(浮點型)定點量化
2.1 在工作目錄下創建個人目錄
(1) 工作目錄為:/tp_work/ddk/samples/ai_toolchain/horizon_model_convert_sample/04_detection
(2) 在該目錄下創建個人目錄 08_tp_yolov3
(3) 將02_yolov3里的mapper文件夾全部拷貝進 08_tp_yolov3
(4) cd 08_tp_yolov3/mapper 進入mapper目錄
(5)創建weights文件夾,用於存放訓練權重文件和網絡文件 mkdir weights
(6)拷貝 model_zoo里的yolov3的示例權重和網絡文件
cp ../../../../model_zoo/mapper/detection/yolov3/* weights/
也可以用自己訓練出來的權重文件,如果使用darknet框架,則需要將模型文件轉成caffemodel,參見另外文檔。
此時目錄樹為:

2.2 模型驗證
驗證所使用的網絡模型是否符合地平線的算子約束,並生成相應結果信息。
vim 01_check.sh

將proto和caffe_model的路徑改為自己的模型網絡文件(*.prototxt)和權重文件(*.caffemodel)的路徑。
執行腳本: sh 01_ckeck.sh

結果沒有報錯,說明網絡模型符合地平線J3平台算子約束。
2.3 模型轉換
將訓練出來的復電模型轉換為J3平台支持的混合異構模型。
vim yolov3_config.yaml


將圖中三個路徑改為自己的路徑,將preprocess_on 設置為True,確保校准圖像和訓練圖像大小不一致時進行適配。
執行 sh 03_build.sh

該腳本完成 模型解析(轉成onnx)->模型優化->模型校准->模型量化->模型編譯過程,最終生成結果如下圖所示:

完成整個轉換過程。
