I run my C++ code with tensorrt6.0.1, it build engine from UFF file. It worked without dynamic_shape and out error when use dynamic_shape:
[W] [TRT] Calling isShapeTensor before the entire network is constructed may result in an inaccurate result. [W] [TRT] Calling isShapeTensor before the entire network is constructed may result in an inaccurate result. [E] [TRT] model/lambda/add: at least 4 dimensions are required for input [E] [TRT] model/lambda/truediv: elementwise inputs must have same dimensions or follow broadcast rules (input dimensions were [-1,-1,1] and ) [E] [TRT] UffParser: Parser error: model/forward_1_conv2D/Conv2D: Order size is not matching the number dimensions of TensorRT [E] [TRT] Network must have at least one output Segmentation fault (core dumped)
I used explicit batch flag and register input,output:
network = builder->createNetworkV2(1U << static_cast<int>(NetworkDefinitionCreationFlag::kEXPLICIT_BATCH)); dims = Dims3(-1,-1,1) parser->registerInput(input_names[i].c_str(), dims, order); parser->registerOutput(output_names[i].c_str());
apt-get -y install libnvinfer6=6.0.1-1+cuda10.0 libnvinfer-dev=6.0.1-1+cuda10.0 apt-get -y install libnvparsers6=6.0.1-1+cuda10.0 libnvparsers-dev=6.0.1-1+cuda10.0 apt-get -y install libnvinfer-plugin6=6.0.1-1+cuda10.0 libnvinfer-plugin-dev=6.0.1-1+cuda10.0
How to fix?