libtorch 调用pytorch模型

本文介绍如何将PyTorch模型转换为libtorch格式,并在C++环境中调用执行,以期望实现更快的运行速度,但实际测试中速度提升不明显。
摘要由CSDN通过智能技术生成

我测试的速度没有提升


int main(int argc, const char* argv[])
{

	//size_t len = url.length();//获取字符串长度


	char sBuf[1024];
	char *ptr;
	if (GetModuleFileNameA(NULL, sBuf, sizeof(sBuf)))
	{
		ptr = strrchr(sBuf, '\\');
		if (ptr)
			*ptr = '\0';
		SetCurrentDirectoryA(sBuf);
	}


	torch::DeviceType device_type;

	if (torch::cuda::is_available()) {
		device_type = torch::kCUDA;
	}
	else {
		device_type = torch::kCPU;
	}
	torch::Device device(device_type);

try
	{
		std::shared_ptr<torch::jit::script::Module> module = torch::jit::load("../models/yolo_model.pt");

		assert(module != nullptr);

		//module->to(at::kCUDA);
		module->to(device);
		torch::Tensor img_tensor = torch::rand({ 1
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
使用libtorch调用多个模型时,我们可以通过以下步骤进行操作: 1. 导入libtorch库和模型文件:首先,我们需要导入libtorch库,该库为我们提供了与PyTorch模型交互的功能。然后,我们需要加载多个模型文件,可以使用torch::jit::load()函数来加载已经训练好的模型文件。 2. 创建模型实例:通过导入的模型文件,我们可以创建多个模型实例。每个模型实例代表一个训练好的模型,可以通过torch::jit::script::Module类的实例来表示。 3. 准备输入数据:在使用模型进行预测之前,我们需要准备输入数据。可以根据模型的要求,将输入数据进行预处理,例如进行归一化、调整尺寸等处理。 4. 前向传播:对于每个模型实例,通过调用forward()函数来执行前向传播。可以将输入数据作为参数传递给forward()函数,并得到预测结果。 5. 处理输出结果:根据模型输出的结果,我们可以进行后续处理。可以根据需要,对输出进行解码、转换等操作,以获得我们想要的最终结果。 6. 释放资源:最后,我们需要释放已经加载的模型实例,以及其他相关的资源。可以使用torch::jit::clear()函数来释放模型实例。 总结起来,使用libtorch调用多个模型的流程包括导入库和模型文件、创建模型实例、准备输入数据、执行前向传播、处理输出结果以及释放资源。通过这些步骤,我们可以方便地使用libtorch调用多个模型,实现我们想要的功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值