Libtorch的介绍与使用方法
Libtorch的介绍与使用方法
- 1.libtorch是什么
- 2.libtorch如何下载
- 3.libtorch在windows下如何使用
- 4.libtorch推理YOLOv5的例子
- 5.libtorch模型转换方法
1.libtorch是什么
libtorch是pytorch的C++版本,支持CPU端和GPU端的部署和训练。由于python和c++的语言特性,因此用pytorch做模型训练,libtorch做模型部署。
用libtorch部署pytorch模型,而不是用tensorrt等工具部署模型的优势在于:pytorch和libtorch同属一个生态,API语句比较接近,并且不会出现某网络层不支持的问题。
Note that LibTorch is only available for C++.
2.libtorch如何下载
libtorch的下载链接,如下图所示,libtorch有release和debug版本可以选择。
注意:最新版本的pytorch和libtorch(1.11.0)已经不支持windows系统下的CUDA10.2,如下图所示。解决方法:windows下使用CUDA11.3,或者不使用最新版本的pytorch和libtorch,1.10版本是支持windows下的pytorch的。老版本的libtorch下载请参考这篇博客。
3.libtorch在windows下如何使用
libtorch解压后如下图所示:
最核心的是include和lib这两个文件夹。其实,不管是libtorch,还是别的tensorrt、openvino等模型部署工具,其本质都是给用户提供include和lib去使用。
下面讲解下libtorch在windows下如何在VS中使用。
3.1在VS的包含目录中添加libtorch的头文件
3.2 在VS的库目录中添加libtorch的库文件
3.3 在VS中添加附加依赖项
libtorch的所有依赖项如下,可以直接粘贴使用。
asmjit.lib
c10.lib
c10_cuda.lib
caffe2_detectron_ops_gpu.lib
caffe2_module_test_dynamic.lib
caffe2_nvrtc.lib
Caffe2_perfkernels_avx.lib
Caffe2_perfkernels_avx2.lib
Caffe2_perfkernels_avx512.lib
clog.lib
cpuinfo.lib
dnnl.lib
fbgemm.lib
fbjni.lib
kineto.lib
libprotobuf-lite.lib
libprotobuf.lib
libprotoc.lib
mkldnn.lib
pthreadpool.lib
pytorch_jni.lib
torch.lib
torch_cpu.lib
torch_cuda.lib
XNNPACK.lib
3.4 错误:c2872 std 不明确的符号
解决方法:将 VS配置中的符合模式 改为否,问题解决。如下图所示。
3.5 Torch::cuda::is_available()返回值为False的解决办法:
在链接器中 -> 命令行 -> 其他选项,添加如下内容:
/INCLUDE:?warp_size@cuda@at@@YAHXZ
如果还没解决的话,可以参考下图,亲测有效:
4.libtorch推理YOLOv5的例子
这篇博客写的较为详细,推荐看这篇博客。
5.libtorch模型转换方法
官方教程链接Converting to Torch Script via Tracing
#例子
import torch
import torchvision# An instance of your model.
model = torchvision.models.resnet18()# An example input you would normally provide to your model's forward() method.
example = torch.rand(1, 3, 224, 224)# Use torch.jit.trace to generate a torch.jit.ScriptModule via tracing.
traced_script_module = torch.jit.trace(model, example)# save model
traced_script_module.save("traced_resnet_model.pt")
Libtorch的介绍与使用方法相关推荐
- fanuc机器人四边形编程_FANUC机器人示教编程:原始路径恢复功能介绍与使用方法...
概要 原始路径恢复功能,是在机器人运行过程中,程序动作由于某种原因被暂停的情况下,当机器人再次启动运行时首先恢复到暂停时位置的一种功能.比如,在暂停后通过手动运行方式使得机器人发生了移动,当再次启动机 ...
- 【Android UI设计与开发】第07期:底部菜单栏(二)Fragment的详细介绍和使用方法
转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8995025 由于TabActivity在Android4.0以后已经被完全弃 ...
- 如何通过牛顿方法解决Logistic回归问题 By 机器之心2017年8月09日 16:30 本文介绍了牛顿方法(Newton's Method),以及如何用它来解决 logistic 回归。log
如何通过牛顿方法解决Logistic回归问题 By 机器之心2017年8月09日 16:30 本文介绍了牛顿方法(Newton's Method),以及如何用它来解决 logistic 回归.logi ...
- Python语言学习之文件格式后缀那些事:python和常见各种文件格式后缀介绍、使用方法之详细攻略
Python语言学习之文件格式后缀那些事:python和常见各种文件格式后缀介绍.使用方法之详细攻略 目录 常见各种文件格式后缀介绍 .pyc文件介绍 .py文件介绍 .pxd 文件 .pyd 文件 ...
- CV之face_recognition:Py之face_recognition库安装、介绍、使用方法详细攻略
CV之face_recognition:Py之face_recognition库安装.介绍.使用方法详细攻略 目录 face_recognition简介 face_recognition安装 face ...
- JSTL 及 tablibs 的简单介绍和配置方法
JSTL 及 tablibs 的简单介绍和配置方法 jstl 简介 jstl 的全称就是jsp standard tag libraries, 就是jsp里的标准标签库. 引用jstl技术能在jsp种 ...
- informix 访问mysql_informix用户权限的介绍及查看方法
informix用户权限的介绍及查看方法 在Informix中,有三个数据库特权级别:DBA.Resource 和 Connect Connect 特权允许用户访问数据库以及添加.修改和删除数据. R ...
- anaconda怎么使用python包_Anaconda中python包的介绍与使用方法
Anaconda中python包的介绍与使用方法 目录: 1.包的定义 2.常用包管理器 3.包管理器的使用方法 4.数据科学常用的包 1.包的定义 由多个和同一功能相关的模块组成,通常为含有_ini ...
- 打开程序时固定位置_FANUC机器人:参考位置功能介绍与设定方法
机器人参考位置概述 机器人参考位置是在运行程序中或手动运行过程中频繁使用的固定位置(预先设定的位置).参考位置通常是离开工装夹具等外围设备的可动区域范围内的安全位置. 机器人位于参考位置时,会立即输出 ...
最新文章
- 泡椒java_吃货联盟 源代码 Java初级小项目
- es6 匿名函数求阶乘
- 提权学习之旅——Linux操作系统提权
- 二维绕任意点旋转_二维图形复合线性变换程序设计:三角形绕任意点旋转2wfhbh...
- 为什么不用DriverManager.registerDriver(driver)
- AI:IPPR的数学表示-CNN可视化语义分析
- 编译maven_头条一面竟然问我Maven?
- 用wordpress制作网站的总结
- 删除python类中所有未使用的方法?
- php 后期发展,php – 通过后期处理上传进度
- hashmap为什么是线程不安全的_HashMap 为什么线程不安全?
- CCNA培训课总结笔记--静态路由实现负载均衡(四)
- mysql 2000_sql server 2000 下载
- html中给div或者span加边框css样式
- IntelliJ IDEA中文插件
- 通过API开发平台构建微服务应用实例(一)
- ECO-PASSPOET认证辅导,Eco-Passport证书有效期为多久,到期是否需要重新缴纳费用
- 纵横网络靶场社区-Modbus协议
- 重庆计算机软件类工作在哪找,重庆计算机办公应用有哪些
- 手机自带便签怎么找,怎么恢复以前的便签