# Polygraphy Python API Examples This directory includes examples that use the Polygraphy Python API. For examples of the command-line tools, see the [cli](../cli/) directory instead. You may find it useful to read the [Python API Overview](../../polygraphy/) prior to looking at the API examples. ## Generating Your Own Examples In the event that the examples here do not cover a particular use-case, you can typically use `polygraphy run` to fill the gap; `polygraphy run` is capable of dynamically generating Python scripts that use the Polygraphy API that do exactly what the tool would otherwise do. Thus, if `polygraphy run` includes functionality you need, but you cannot find a corresponding API example, try running: ```bash polygraphy run --gen - ``` The argument to `--gen` should be the name of the file in which to write the generated script. The special value `-` corresponds to `stdout`. For example, running: ```bash polygraphy run --gen - model.onnx --trt --onnxrt ``` will display something like this on `stdout`: ```py #!/usr/bin/env python3 # Template auto-generated by polygraphy [v0.31.0] on 01/01/20 at 10:10:10 # Generation Command: polygraphy run --gen - model.onnx --trt --onnxrt # This script compares model.onnx between TensorRT and ONNX-Runtime from polygraphy.logger import G_LOGGER from polygraphy.backend.onnxrt import OnnxrtRunner, SessionFromOnnx from polygraphy.backend.trt import EngineFromNetwork, NetworkFromOnnxPath, TrtRunner from polygraphy.comparator import Comparator import sys # Loaders parse_network_from_onnx = NetworkFromOnnxPath('model.onnx') build_engine = EngineFromNetwork(parse_network_from_onnx) build_onnxrt_session = SessionFromOnnx('model.onnx') # Runners runners = [ TrtRunner(build_engine), OnnxrtRunner(build_onnxrt_session), ] # Runner Execution results = Comparator.run(runners) success = True # Accuracy Comparison success &= bool(Comparator.compare_accuracy(results)) # Report Results cmd_run = ' '.join(sys.argv) if not success: G_LOGGER.critical(f"FAILED | Command: {cmd_run}")) G_LOGGER.finish(f"PASSED | Command: {cmd_run}")) ```