yolov5的工业化部署

背景

老规矩首先背景介绍一下,目的就是为了把pytorch的模型部署在ros上,而ros主要使用的C++,所以我本次的目的就是使用C++调用模型。为什么使用C++呢?当然是因为c++的性能更高了。

我的电脑配置:

  • I5处理器
  • 英伟达的1050ti显卡,4g显存
  • 运行内存8G
  • cuda10.2,cudnn7.6.5

pytorch模型

将 PyTorch 模型转换为 Torch Script

对于这步,ptorch的官网提供了两种方法,

  • 利用Tracing将模型转换为Torch Script
  • 通过Annotation将Model转换为Torch Script

将Script Module序列化为一个文件

不论是从上面两种方法的哪一种方法获得了ScriptModule,都可以将得到的ScriptModule序列化为一个文件,然后C++就可以不依赖任何Python代码来执行该Script所对应的Pytorch模型。 假设我们想要序列化前面trace示例中显示的ResNet18模型。要执行此序列化,只需在模块上调用 save并给个文件名。

yolov5的export.py文件

对于这个python文件,它是可以转为三种类型的文件,以默认的yolov5s.pt文件为例子,

  • 将模型pt文件的转换成对应的onnx文件后,即可使用

你可能感兴趣的:(深度学习)