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

时间:2018-11-14 10:13:20

标签: c++ machine-learning inference tensorrt

大家好!

我在TensorRT中执行批量推理时遇到问题。当批处理大小为1时,它就像一个超级按钮,但是当我将其更改为任何其他数字时,它会发出简单的垃圾。

我逐步下载了TensorRT(5.0),并将其安装在具有GTX755M的Ubuntu 18.04笔记本电脑上。然后,我构建了随附的样本,并在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 个答案:

答案 0 :(得分:0)

您还修改了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
}