how to run this code:
convert-to-uff tensorflow -o name_of_output_uff_file –
input_file
name_of_input_pb_file -O name_of_output_tensor
should I execute it in the terminal?
how to run this code:
convert-to-uff tensorflow -o name_of_output_uff_file –
input_file
name_of_input_pb_file -O name_of_output_tensor
should I execute it in the terminal?
Hi,
Please use Python API to covert Tensorflow model into UFF.
Currently, python API is only available on x86-based Linux machine.
Model conversion sample can be found at ‘/usr/local/lib/python2.7/dist-packages/tensorrt/examples/tf_to_trt/’.
Thanks.
Hi AastaLLL:
I want to use the convert-to-uff.py utility, convert the .pb frozen graph to .uff.
I don’t know how to execute the sample code in the user guide:
convert-to-uff tensorflow -o name_of_output_uff_file –
input_file
name_of_input_pb_file -O name_of_output_tensor
if I run it in the terminal ,it always tells me that:
convert_to_uff: command not found
Hi,
Please check our tf_to_trt.py example:
Flow should be like this:
......
uff_model = uff.from_tensorflow(tf_model, ["fc2/Relu"])
#Convert Tensorflow model to TensorRT model
parser = uffparser.create_uff_parser()
parser.register_input("Placeholder", (1, 28, 28), 0)
parser.register_output("fc2/Relu")
engine = trt.utils.uff_to_trt_engine(G_LOGGER,
uff_model,
parser,
MAX_BATCHSIZE,
MAX_WORKSPACE)
......
Thanks.
Hi , 373197201
I think that if want to run python code
the command maybe like this
python convert-to-uff.py tensorflow -o name_of_output_uff_file –
input_file
How do I save uff_model to file? I want to run exported model other device (Jetson).
Thanks.
I resolved it. In “conversion_helpers.py” is source code for uff.from_tensorflow.
uff.from_tensorflow(tf_model, ["fc2/Relu"], output_filename = "model.uff")
So is there any sample code available to do this in C++? I want to do this on the TX2.
-siddarth
Hi,
Convert TensorFlow model to UFF is only available on an x86-based machine.
The flow we recommend is:
1. Convert TensorFlow to UFF model on x86-machine with python API.
2. Launch TensorRT engine with UFF model on Jetson with C++ API.
Thanks.
That is the workflow I would like to see. A simple example of the python code to save to uff and a simple c++ example to read the uff on the jetson for inference would be sweet.
I will share if I put it together.
I have two questions:
uff_model = uff.from_tensorflow_frozen_model(config['frozen_model_file'], OUTPUT_LAYERS)
Traceback (most recent call last):
File "tf_to_uff.py", line 75, in <module>
create_and_save_inference_engine()
File "tf_to_uff.py", line 36, in create_and_save_inference_engine
uff_model = uff.from_tensorflow_frozen_model(config['frozen_model_file'], OUTPUT_LAYERS)
File "/opt/uff/uff/converters/tensorflow/conversion_helpers.py", line 103, in from_tensorflow_frozen_model
return from_tensorflow(graphdef, output_nodes, **kwargs)
File "/opt/uff/uff/converters/tensorflow/conversion_helpers.py", line 75, in from_tensorflow
name="main")
File "/opt/uff/uff/converters/tensorflow/converter.py", line 64, in convert_tf2uff_graph
uff_graph, input_replacements)
File "/opt/uff/uff/converters/tensorflow/converter.py", line 46, in convert_tf2uff_node
inp_node = tf_nodes[inp_name]
KeyError: u'^dropout/cond/switch_t'
I see that dropout is not registered. Is there a way to clean up a tensorflow model’s nodes so that it passes for uff model?
Also, do I have to return the logits or is a argmax node supported to get the integer that corresponds to the class?
Hi,
1. Try this command to remove the non-necessary node:
tf.graph_util.remove_training_nodes(frozen_graph)
2. You can return the layer you preferred if it’s supported.
Thanks.
Here are the answers to my questions:
uff_model = uff.from_tensorflow_frozen_model(config['frozen_model_file'], OUTPUT_LAYERS, output_filename = "model.uff")
The advice of
tf.graph_util.remove_training_nodes(frozen_graph)
will not remove the dropout node. Also, the graph transform tool does not support removing the dropout node for optimizing the model for inference. https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/graph_transforms.
I found this guys post to do the trick, which is sort of involved (manually have to remove the node)
Thanks for update this information with us.
@ljstrnadiii Saving .uff file doesn’t work for me, any ideas?
uff.version’0.2.0’
uff_model = uff.from_tensorflow_frozen_model(‘test.pb’, [‘out/out’], out_filename=‘model.uff’)
Solved.
out_filename → output_filename
input_file → input-file
Issue is still unresolved. Could you please clarify:
- Convert the .pb file to .uff, using the convert-to-uff utility:
The converter will display information about the input and output nodes, which you can use to >>> the registerconvert-to-uff models/lenet5.pb
inputs and outputs with the parser. In this case, we already know the details of the input and >>> output nodes
and have included them in the sample.
Is this utility still available in the Linux distribution?
YES. But please noticed that it is only available in the x86 Linux.
/usr/lib/python2.7/dist-packages/uff/bin/convert_to_uff.py
/usr/lib/python3.5/dist-packages/uff/bin/convert_to_uff.py
Thanks.
Why is this information not available anywhere else? I have been looking for this utility for hours. Extremely disappointed by the quality of documentation. It is vague, incomplete and sometimes refers to tools and files that are nowhere to be found, resulting in valuable loss of working hours.