TensorRT自带的trtexec在bin目录下,是一个可执行文件。
运行./trtexec -h
其中给出了 model options、build options、 inference options和system options等。
上次我们使用TensorRT的pyhton API进行序列化模型和前向推理,这次介绍使用trtexec转模型。
1.从固定尺寸的onnx转cudaEngine
./trtexec --explicitBatch --onnx=./resnet50.onnx --saveEngine=resnet50.engine
2.从可变尺寸的onnx转cudaEngine,需要指定profile。
./trtexec --onnx=./resnet50_dynamic.onnx --explicitBatch \
--minShapes="input":1x3x224x224\
--optShapes="input":16x3x224x224\
--maxShapes="input":32x3x224x224\
--shapes="input":1x3x224x224\
--saveEngine=./resnet50_dynamic.engine
其中profile指定了输入的最小尺寸、最优尺寸和最大尺寸。那么真实输入推理时,处在最小和最大尺寸中都行。
实际前向推理时,可以根据自己需要选择哪种方式。