pytorch模型轉caffe模型之SSD

這不是第一次轉模型了,但是還是折騰了兩天,然後將轉換之中遇到的問題總結以下:

1)caffe的prototxt手動構建時一定要仔細,不然容易出錯;(我自己在構建時就是拿着代碼forward運行一行一行進行的對比記錄);

2)數據的預處理一定要保持一致,否則模型轉換後,可能參數拷貝已經成功,但是由於預處理的差距,導致最終結果不一樣;

3)SSD中有detectout層,而detectout層中有很多閾值,所以也需要仔細看代碼,進行解析;

4)注意自己使用的類別數,本次轉換的時候,由於沒有注意類別數,對分類結果進行reshape時,參數填寫錯誤,改正後:

5)pytorch和caffe環境不統一時,可以使用json文件對模型參數,依照字典的格式進行參數保存,然後再進行json格式的文件讀取;

json保存文件:all_data就是pytorch模型的所有層參數:

all_data = data..numpy().tolist()
with open('/pytorch_model_data.json', 'w') as f:
     json.dump(all_data, f)

加載json文件:

json_file = "pytorch_model_data.json"
with open(json_file, 'r') as f:
    data = np.array(json.load(f))

 

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