I am serializing then deserializing a resnet50 file.
Here is my code:
engine, context = build_engine(ONNX_FILE_PATH)
with open(“resnet50.engine”, “wb”) as f:
f.write(engine.serialize())
with open(“resnet50.engine”, “rb”) as f, trt.Runtime(TRT_LOGGER) as runtime:
engine = runtime.deserialize_cuda_engine(f.read())
When I do this, it works. I get an output later. However, if I just run:
with open(“resnet50.engine”, “rb”) as f, trt.Runtime(TRT_LOGGER) as runtime:
engine = runtime.deserialize_cuda_engine(f.read())
I get:
[TensorRT] ERROR: INVALID_ARGUMENT: Cannot deserialize with an empty memory buffer.
[TensorRT] ERROR: INVALID_CONFIG: Deserialize the cuda engine failed.
How can I work around this? I don’t want to have to build the trt model from onnx everytime. Also, why does it work when I serialize then deserialize, vs when I just deserialize?