VS2022 + libtorch 配置C++工程

这里以配置debug版的工程为例

配置包含目录和库目录

包含目录:

E:\deploy_test\packet\libtorch\include\torch\csrc\api\include
E:\deploy_test\packet\libtorch\include

库目录:

E:\deploy_test\packet\libtorch\lib

这里设置的绝对路径,可以根据需要设置相对路径。

配置链接器输入

将libtorch的lib中所以*.lib文件添加进去,也可以根据需要按需添加。

E:\deploy_test\packet\libtorch\lib\*.lib

复制动态链接库

将libtorch的lib中所以*.dll文件复制到VS的工程文件夹中,也可以根据需要按需添加。如将debug版的*.dll复制到VS工程文件夹的debug文件中;将release版的*.dll复制到VS工程文件夹的release文件中。

设置语言模式

最新的libtorch要选用最新的标准,且将符合模式选“否”。否则,会出现几千条报错。

导出pytorch的网络模型

采用script导出pytorch的网络模型

mi = Mine(args.state_dim)
mi.load_state_dict(torch.load('model_params.pkl'))  # load model parameters from files
mi.to('cpu')

# converting to Torch Script via Annotation
serialized_model = torch.jit.script(mi)
# save the torch script for C++
serialized_model.save("model_C/MI_cpu.pt")

添加头文件

添加头文件就可以使用libtorch了

#include <torch/torch.h>
#include <torch/script.h>

列子

int main() {
    // 检查CUDA是否可用
    torch::DeviceType device_type;
    if (torch::cuda::is_available()) {
        std::cout << "CUDA available! Predicting on GPU." << std::endl;
        device_type = torch::kCUDA;
    }
    else {
        std::cout << "Predicting on CPU." << std::endl;
        device_type = torch::kCPU;
    }
    torch::Device device(device_type);


    // 加载模型
    torch::NoGradGuard no_grad; // 禁用梯度计算
    auto mi_model = torch::jit::load("model/MI_cpu.pt"); // 确保路径正确
    mi_model.to(device);
    mi_model.eval();

    // 数据
    torch::Tensor input1_tensor = torch::tensor(input1, torch::kFloat32);

    // 前向传播
    std::vector<torch::jit::IValue> inputs;
    inputs.push_back(input1_tensor.to(device));

    auto mi_tensor = mi_model.forward(inputs).toTensor();

    return 0;
}

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值