windows实现libtorch推理行人重识别PCB

**

训练代码

链接: link.

安装libtorch

首先从官网下载libtorch
在这里插入图片描述下载对应cuda版本的libtorch,由于官网只有1.7版本,我采用的是pytorch1.6+libtorch1.6+cuda10.2的组合,这里给出libtorch1.6的下载链接https://download.pytorch.org/libtorch/cu102/libtorch-win-shared-with-deps-1.6.0.zip。下载完解压至相应的文件夹。把libtorch的lib文件夹添加到环境变量里,重启生效。

模型转换

由于python训练保存的是pth文件,是不能在c++中直接调用的,因此需要先转换模型,即转换成c++版本的libtorch可以调用的pt模型,这一步是在python中的pytorch里实现的。
模型的序列化是利用Torch Script来完成的。TorchScript是一种从PyTorch代码创建可序列化和可优化模型的方法。用TorchScript编写的任何代码都可以从Python进程中保存并加载到没有Python依赖关系的进程中。对于一个已经训练好的pytorch模型,官方提供两种方法进行Torch Script的转换:tracing和annotation。
tracing适用于大多数网络,如果你的网络的forward方法中对input有逻辑判断,比如input的size为一个值时走向一个分支,而为另一值时走向另一个分支,那么只能用annotation进行转换。
这里我用的是第一种方法tracing,即需要传一个输入给torch.jit.trace函数,让它输出一次,然后save。模型是采用market1501数据集训练的。示例代码:

from torchvision import models
import torch
import torch.nn as nn
import torch.nn.functional as F
import numpy as np
from model import PCBModel
from torchvision import datasets, transforms
from PIL import Image
from torch.jit import ScriptModule, script_method, trace
import time
import cv2 as cv


def load_img(img_name):
    loader = transforms.Compose(
        [transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])
    img = cv.imread(img_name)
    img = cv.cvtColor(img, cv.COLOR_BGR2RGB)
    img = cv.resize(img,</
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
libtorch 推理是指使用 C++ 相关工具库 libtorch 进行模型推理的过程。 libtorch 是一个基于 PyTorchC++ 库,用于在生产环境中进行高性能的深度学习推理libtorch推理过程主要分为以下几个步骤: 1. 加载模型:首先,我们需要将训练好的 PyTorch 模型保存为 TorchScript 格式,这样就可以在 C++ 中使用 libtorch 进行加载和运行。可以使用 PyTorch 提供的 `torch.jit.save()` 函数将模型保存为 TorchScript 文件。 2. 创建推理引擎:在加载模型之后,我们需要创建一个推理引擎。可以通过调用 `torch::jit::load()` 函数加载 TorchScript 文件,将其转化为可执行的推理引擎,并且可以通过设置相关参数来优化推理性能,例如启用或禁用 GPU 加速。 3. 输入数据准备:接下来,我们需要准备输入数据以供推理使用。根据模型的输入要求,我们可以通过 C++ 的数据结构(如张量)来加载和预处理输入数据,例如图像数据的归一化或缩放等。 4. 进行模型推理:一切准备就绪后,我们可以调用推理引擎的 `forward()` 函数并传递输入数据进行模型推理推理引擎会处理数据,并返回模型的输出结果。 5. 输出结果处理:最后,我们可以对模型的输出结果进行后处理操作。根据具体的应用场景,可以将输出结果转化为特定的格式,或者对结果进行解码、映射等操作。 总结起来,libtorch 推理是利用 libtorch 库加载和运行 PyTorch 模型,通过创建推理引擎、准备输入数据、进行模型推理和处理输出结果等步骤来完成的。这些步骤可以帮助我们在 C++ 环境中完成高性能的深度学习推理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值