我正在Nvidia Tesla P100 上使用张量流centernet_resnet50_v2_512x512_kpts_coco17_tpu-8
对象检测模型来提取边界框和关键点以进行检测视频中的人。使用来自tensorflow.org的预训练,我每秒能够处理约16帧。有什么方法可以提高此模型的评估速度?这是我一直在研究的一些想法:
label_map
似乎并不能提高性能。model_builder
进行更改时,性能有所下降。答案 0 :(得分:2)
在大多数情况下,与Tensorflow相比,TensorRT的每秒帧数应大大增加。
config_file = pkg_resources.resource_stream('src.codes', 'config.json')
config = json.load(config_file)
可在TensorFlow模型动物园中找到。
Nvidia发布了一篇博客文章,描述了如何使用Deepstream和TensorRT从TensorFlow Model Zoo优化模型:
https://developer.nvidia.com/blog/deploying-models-from-tensorflow-model-zoo-using-deepstream-and-triton-inference-server/
现在关于您的建议:
修剪模型图:可以通过将张量流模型转换为TF-TRT模型来修剪模型图。
对输入大小进行硬编码:在TF-TRT中使用静态模式。这是默认模式,并通过以下方式启用:centernet_resnet50_v2_512x512_kpts_coco17_tpu-8
编译模型:我的建议是将模型转换为TF-TRT或先转换为ONNX,然后再转换为TensorRT。
批处理:在NVIDIA博客文章中还介绍了指定批处理大小。
最后,对我的模型而言,在推理引擎中使用FP16可以大大提高性能。 (mixed precision)您甚至可以尝试INT8,但随后必须先进行校准。