I am using TensorRT on Windows - version 5.0 GA. I have a tensorflow model which I have exported to an UFF file as shown by the code below. Note that since the python packages UFF and graph_surgeon are not available in the windows distribution, I have used the Linux tarball to get them and install them.
Get current session
tf_session = K.backend.get_session() # For now assume that the output of the last layer of the model is the output output_name = model.layers[-1].output.name.split(':') output_names = [output_name] # Freeze graph - this is deprecated graph_def = tf.graph_util.convert_variables_to_constants(tf_session, tf_session.graph_def, output_names) # Remove training nodes graph_def = tf.graph_util.remove_training_nodes(graph_def) # Convert graph into UFF format so that it can be loaded by TensorRT graph_nodes = [n for n in graph_def.node] names = [node.name for node in graph_nodes] uff.from_tensorflow(graphdef=graph_def, text=True, list_nodes=True, output_filename='test1.uff')
In my C++ code, I have the following:
IBuilder* builder = createInferBuilder(gLogger);
INetworkDefinition* network = builder->createNetwork();
IUffParser* parser = nvuffparser::createUffParser();
// Hard coded, but can be easily parameterised parser->registerInput("conv2d_1_input", DimsCHW(28, 28, 1), UffInputOrder::kNHWC); parser->registerOutput("dense_2/Softmax"); parser->parse(std::string("test11.uff", *network, nvinfer1::DataType::kFLOAT);
The parse() call above give the error: unsupported number of graph 0 error.
Can someone shed light on what is going on? Could it be because of version mismatch of TensorFlow/TensorRT?
I am using TensorRT 5.0 GA, CUDA v9.0, cuDNN v7, tensorflow 1.2.1 python v3.6