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