【问题标题】:How to speed up Tensorflow 2 keras model for inference?如何加速 Tensorflow 2 keras 模型进行推理?
【发布时间】:2020-03-04 20:50:55
【问题描述】:

所以现在有一个重大更新,从 TensorFlow 1.X 迁移到 2.X。

在 TF 1.X 中,我习惯了一个管道,它帮助我将我的 keras 模型推向生产。 管道:keras (h5) model --> freeze & convert to pb --> optimize pb 这个工作流程帮助我加快了推理速度,我的最终模型可以存储在单个 (pb) 文件中,而不是文件夹中(请参阅 SavedModel 格式)。

如何优化我的模型以在 TensorFlow 2.0.0 中进行推理?

我的第一印象是我需要将我的 tf.keras 模型转换为 tflite,但由于我的 GPU 使用 float32 操作,这种转换会让我的生活更加艰难。

谢谢。

【问题讨论】:

    标签: python performance tensorflow keras inference


    【解决方案1】:

    一种方法是使用带有 TensorRT (TF-TRT) (https://github.com/tensorflow/tensorrt) 的 Tensorflow 优化您的模型。但是,在 Tensorflow 2 中,模型保存在文件夹中,而不是单个 .pb 文件中。 TF-TRT 优化模型也是如此,它们存储在一个文件夹中。您可以将模型转换为 TF-TRT,如下所示:

    from tensorflow.python.compiler.tensorrt import trt_convert as trt
    converter = tf.experimental.tensorrt.Converter(input_saved_model_dir=saved_model_dir)
    converter.convert() 
    converter.save("trt_optimized_model") # save it to a dir
    

    如果您要求模型需要包含在单个文件中(并且不关心 TF-TRT 提供的优化),您可以将 SavedModel 转换为 ONNX。并使用 ONNX 运行时进行推理。您甚至可以在这里更进一步,将 ONNX 文件转换为 TensorRT (https://developer.nvidia.com/Tensorrt)。这将为您提供一个可以使用 TensorRT 运行的优化文件(请注意,您无法再使用 Tensorflow 运行生成的文件)。

    【讨论】:

      猜你喜欢
      • 2018-03-27
      • 2021-12-26
      • 1970-01-01
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      • 2019-10-12
      • 1970-01-01
      相关资源
      最近更新 更多