Skip to content

Instantly share code, notes, and snippets.

@rmccorm4
Last active May 11, 2020 19:16
Show Gist options
  • Save rmccorm4/465627ecc77a6665ad57cba4c842e79f to your computer and use it in GitHub Desktop.
Save rmccorm4/465627ecc77a6665ad57cba4c842e79f to your computer and use it in GitHub Desktop.
Minimal example of creating a TensorRT engine from an ONNX model with FIXED SHAPE
import tensorrt as trt
TRT_LOGGER = trt.Logger(trt.Logger.INFO)
EXPLICIT_BATCH = 1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)
with trt.Builder(TRT_LOGGER) as builder, \
builder.create_network(EXPLICIT_BATCH) as network, \
builder.create_builder_config() as config, \
trt.OnnxParser(network, TRT_LOGGER) as parser:
# Fill network attributes with information by parsing model
with open("alexnet_fixed.onnx", "rb") as f:
# Parse model and capture its exit status
parse_success = parser.parse(f.read())
# Catch any errors thrown while parsing and exit gracefully on failure
if not parse_success:
for error in range(parser.num_errors):
print(parser.get_error(error))
sys.exit(1)
# Additional builder_config flags can be set prior to building the engine
with builder.build_engine(network, config) as engine:
# Serialize our engine to a file for future use
with open("alexnet_fixed.engine", "wb") as f:
f.write(engine.serialize())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment