C++ TensorRT 批量推理给出了奇怪的结果

Posted

技术标签:

【中文标题】C++ TensorRT 批量推理给出了奇怪的结果【英文标题】:C++ TensorRT batch inference gives weird results 【发布时间】:2018-11-14 10:13:20 【问题描述】:

大家好!

我在 TensorRT 中执行批量推理时遇到问题。当批量大小为 1 时,它就像一个魅力,但当我将其更改为任何其他数字时,它会发出普通的垃圾。

一步一步地,我下载了 TensorRT (5.0) 并将其安装在我的 Ubuntu 18.04 笔记本电脑上,带有 GTX755M。然后我构建了与之配套的样本并在 sampleMNIST 样本上对其进行了测试,它就像一个魅力。然后我开始将每次出现的mParams.batchSize 更改为 10。当然,我还更改了分配内存的大小并修改了结果打印。但是在我重新编译样本后,我得到了完全奇怪的结果——对于每个给定的输入,输出显示为 80% 7 20% 1:

grim@shigoto:~/tensorrt/bin$ ./sample_mnist
Building and running a GPU inference engine for MNIST

Input:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@.*@@@@@@@@@@
@@@@@@@@@@@@@@@@.=@@@@@@@@@@
@@@@@@@@@@@@+@@@.=@@@@@@@@@@
@@@@@@@@@@@% #@@.=@@@@@@@@@@
@@@@@@@@@@@% #@@.=@@@@@@@@@@
@@@@@@@@@@@+ *@@:-@@@@@@@@@@
@@@@@@@@@@@= *@@= @@@@@@@@@@
@@@@@@@@@@@. #@@= @@@@@@@@@@
@@@@@@@@@@=  =++.-@@@@@@@@@@
@@@@@@@@@@       =@@@@@@@@@@
@@@@@@@@@@  :*## =@@@@@@@@@@
@@@@@@@@@@:*@@@% =@@@@@@@@@@
@@@@@@@@@@@@@@@% =@@@@@@@@@@
@@@@@@@@@@@@@@@# =@@@@@@@@@@
@@@@@@@@@@@@@@@# =@@@@@@@@@@
@@@@@@@@@@@@@@@* *@@@@@@@@@@
@@@@@@@@@@@@@@@= #@@@@@@@@@@
@@@@@@@@@@@@@@@= #@@@@@@@@@@
@@@@@@@@@@@@@@@=.@@@@@@@@@@@
@@@@@@@@@@@@@@@++@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Output:

0: 
1: ********
2: 
3: 
4: 
5: 
6: 
7: **
8: 
9: 

此输出重复 10 次。我已经用不同的网络尝试过这个,但结果是相似的,大多数网络给出了 1 次正确的输出和其他 9 次纯垃圾。完整的示例可以在here 找到。我试过谷歌搜索文档,但我不明白我做错了什么。您能否告诉我我做错了什么或如何在 TensorRT 中执行批量推理?

【问题讨论】:

【参考方案1】:

你是否也修改了mnist.prototxt

尤其是这部分:

input: "data"
input_shape 
  dim: 1
  dim: 1
  dim: 28
  dim: 28

我认为应该是:

input: "data"
input_shape 
  dim: 10
  dim: 1
  dim: 28
  dim: 28

【讨论】:

以上是关于C++ TensorRT 批量推理给出了奇怪的结果的主要内容,如果未能解决你的问题,请参考以下文章

yolov7的 TensorRT c++推理,win10, cuda11.4.3 ,cudnn8.2,tensorrt8.2.1.8。

TensorRT 调用onnx后的批量处理(上)

使用 TF-slim 训练的模型与 python 推理完美配合,但使用 C++ 给出完全错误的结果

tensorflow C++ 批量推理

TensorRT模型部署实战,英伟达平台,C++ 和python对比(包含源码)

TensorRT模型部署实战,英伟达平台,C++ 和python对比(包含源码)