问题描述:

最近进行把TF的模型转化为UFF文件部署到TensorRT。在进行测试的时候发现一个问题,同一个数据使用TRT进行推理,但是每次结果都不一样。输出的结果本应是softmax算子输出结果, 但是输出结果都是随机的,数值求和结果非1,有的非常大有的非常小非常没有规律。

排查了一整天发现是因为我的日志头文件导入的顺序导致这个问题。

#include "easylogging++.h"
#include "common.h"
#include "buffers.h"
#include "NvInfer.h"
#include "NvUffParser.h"
#include "cuda_runtime_api.h"

没有问题的。

#include "common.h"
#include "easylogging++.h"
#include "buffers.h"
#include "NvInfer.h"
#include "NvUffParser.h"
#include "cuda_runtime_api.h"

出现上面的问题。

#include "common.h"
#include "buffers.h"
#include "NvInfer.h"
#include "NvUffParser.h"
#include "cuda_runtime_api.h"
#include "easylogging++.h"

没问题。

总结:发现是因为把“easylogging++.h”放到了“common.h”和“buffers.h”中间导致的问题。应该是什么地方给冲突了。没有认真研究其中原因。

记录一下!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐