/usr/local/lib64/python3.6/site-packages/torch/fx/experimental/fx2trt/tools
NameSizeModeActions
__pycache__/-0755rm
graph_util.py20420644editdlrm
trt_minimizer.py21500644editdlrm
trt_splitter.py29820644editdlrm
__init__.py430644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/fx/experimental/fx2trt/tools/graph_util.py (2042B)
import graphviz # type: ignore[import] def get_layer_name_type(layer): return "\n".join(f"{i}" for i in [layer.name, layer.type]) def trt_network_to_dot_graph(network): dot = graphviz.Digraph(comment="Network") # add nodes (layers) for i in range(network.num_layers): layer = network.get_layer(i) dot.node(get_layer_name_type(layer)) # add nodes (inputs) for i in range(network.num_inputs): dot.node(network.get_input(i).name) # add nodes (outputs) for i in range(network.num_outputs): dot.node(network.get_output(i).name) # add layer->layer edges for a in range(network.num_layers): layer_a = network.get_layer(a) for b in range(network.num_layers): layer_b = network.get_layer(b) for i in range(layer_a.num_outputs): output_i = layer_a.get_output(i) for j in range(layer_b.num_inputs): input_j = layer_b.get_input(j) if output_i == input_j: dot.edge(get_layer_name_type(layer_a), get_layer_name_type(layer_b), label=str(input_j.shape)) # add input->layer edges for i in range(network.num_inputs): input_i = network.get_input(i) for b in range(network.num_layers): layer_b = network.get_layer(b) for j in range(layer_b.num_inputs): input_j = layer_b.get_input(j) if input_i == input_j: dot.edge(input_i.name, get_layer_name_type(layer_b), label=str(input_j.shape)) # add layer->output edges for i in range(network.num_outputs): input_i = network.get_output(i) for b in range(network.num_layers): layer_b = network.get_layer(b) for j in range(layer_b.num_outputs): input_j = layer_b.get_output(j) if input_i == input_j: dot.edge(get_layer_name_type(layer_b), input_i.name, label=str(input_j.shape)) return dot