1、bash窗口可能提示 not module utils 或者not module xxxx模塊;這是因為沒有將源碼根目錄添加進環境變量,
linux下,執行以下命令就行
export PYTHONPATH="$PWD"
win下,我建議直接用pycharm打開yolov5.4工程,在ide中去執行export.py就行,
2、錯誤: “std”: 不明確的符號
解決辦法1:項目->屬性->c/c++->語言->符合模式->選擇否
(看清楚vs項目屬性窗口對應的到底是Debug還是Release,血的教訓!)
解決辦法2:還有有個老哥給出的方法是,在std報錯的地方改為:"::std",不推薦!
3、建議常被debug版本libtorch
libtorch中,執行到加載模型那一行代碼,跳進libtorch庫中的Assert,提示錯誤:AT_ASSERT(isTuple(), "Expected Tuple but got ", tagKind());(咱們是libtorch debug版本,還能跳到這一行,要是release,你都不知道錯在哪里,所以常備debug版本,很有必要)
可能是你轉模型的yolov5版本不是5.4,而是5.3、5.3.1、5.3、5.1;還有可能是你export.py腳本中沒有按照上面設置。
參考:https://blog.csdn.net/weixin_42398658/article/details/111954760
4、問題:編譯成功后,運行代碼,發現torch::cuda::is_available()返回false
解決:a、配置環境的時候,請將庫lib文件夾下所有“.lib”文件名粘貼到項目屬性(Release)-鏈接器 - 輸入 - 附加依賴項
b、在項目屬性(Release)-鏈接器 - 命令行 - 其他選項貼入下面命令
/INCLUDE:?warp_size@cuda@at@@YAHXZ
完美解決!
5、導出模型,命令行有警告
最好是查詢下,盡管不影響部署。
以后有問題也會更新!
reference:
[1] libtorch相關報錯總結(非常nice!):https://blog.csdn.net/qq_18305555/article/details/114013236
[2] 我的博客:LibTorch實戰六:C++版本YOLOV5.4的部署<一>
https://www.cnblogs.com/winslam/p/14614632.html