使用tensorrt 推理 resnet

leon 7fc39c1f6b 添加readme hai 10 meses
.vscode 2507494339 添加cpm hai 10 meses
src 9a348ed79d 完善测试 hai 10 meses
.gitignore d21fa429d7 添加gitignore hai 10 meses
Makefile 1733cc9ff0 添加Makefile hai 10 meses
README.md 7fc39c1f6b 添加readme hai 10 meses

README.md

Tensorrt 推理 resnet 分类模型

使用tensorrt推理resnet模型流程

模型转换

trtexec --onnx=resnet.onnx --saveEngine=resnet.engine --fp16 --verbose

代码使用

  1. 直接推理

    cv::Mat image = cv::imread("inference/car.jpg");
    auto resnet = resnet::load("resnet.engine");
    if (resnet == nullptr) return;
    auto attr = resnet->forward(cvimg(image));
    printf("score : %lf, label : %d\n", attr.confidence, attr.class_label);
    /*
    [infer.cu:393]: Infer 0x564a443b3440 [StaticShape]
    [infer.cu:405]: Inputs: 1
    [infer.cu:409]:     0.input.1 : shape {1x3x224x224}
    [infer.cu:412]: Outputs: 1
    [infer.cu:416]:     0.343 : shape {1x3}
    score : 0.997001, label : 2
    */
    
  2. cpm模式

    cv::Mat image = cv::imread("inference/car.jpg");
    
    cpm::Instance<resnet::Attribute, resnet::Image, resnet::Infer> cpmi;
    bool ok = cpmi.start([] { return resnet::load("resnet.engine"); }, max_infer_batch);
    
    cpmi.commit(cvimg(image)).get();