Keras h5将于2019年在Tensorflow上服?

Jen*_*sen 4 keras tensorflow tensorflow-serving

我试图按照本教程讲解如何转换Keras H5模型zu ProtoBuff并使用Tensorflow服务为其提供服务:https ://towardsdatascience.com/deploying-keras-models-using-tensorflow-serving-and-flask-508ba00f1037

该教程在网络上的许多其他资源中都使用了“ tf.saved_model.simple_save”,该名称现已弃用并删除(2019年3月)。如以下所示,使用freeze_session将h5转换为pb: 如何将Keras .h5导出到tensorflow .pb?

似乎错过了一个“ serv”标签,因为tensorflow_model_server输出:

Loading servable: {name: ImageClassifier version: 1} failed: Not found: Could not find meta graph def matching supplied tags: { serve }. To inspect available tag-sets in the SavedModel, please use the SavedModel CLI: saved_model_cli

使用save_model_cli进行了检查,没有标签。

现在如何使h5模型可在tensorflow_server中使用?

GPh*_*ilo 5

注意:这适用于TF 2.0+

我假设您有您的Keras模型model.h5。首先,只需使用tensorflow的Keras实现加载模型:

from tensorflow import keras
model = keras.models.load_model('model.h5')
Run Code Online (Sandbox Code Playgroud)

然后,只需导出一个SavedModel

keras.experimental.export_saved_model(model, 'path_to_saved_model')
Run Code Online (Sandbox Code Playgroud)

最后,将您名义上要进行的任何转换应用SavedModel.pb推理文件(例如:冻结,优化推理等)

您可以在TF 官方指南中获得更多详细信息和完整示例,以在TF 2.0中保存和序列化模型。

  • API 现已更新为 `model.save('path_to_saved_model', save_format="tf")` (2认同)