Skip to content

Latest commit

 

History

History
 
 

Polygraphy Python API Examples

This directory includes examples that use the Polygraphy Python API. For examples of the command-line tools, see the cli directory instead.

You may find it useful to read the Python API Overview 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:

polygraphy run --gen - <options...>

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:

polygraphy run --gen - model.onnx --trt --onnxrt

will display something like this on stdout:

#!/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("FAILED | Command: {}".format(cmd_run))
G_LOGGER.finish("PASSED | Command: {}".format(cmd_run))