libtorch在windows下场见错误整理总结

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

CV&DL
原文地址:https://www.cnblogs.com/winslam/p/14687275.html