我尝试按照本教程讲解如何转换Keras H5模型zu ProtoBuff并使用Tensorflow Serve为其提供服务: https://towardsdatascience.com/deploying-keras-models-using-tensorflow-serving-and-flask-508ba00f1037
该教程在网络上的许多其他资源中都使用了“ tf.saved_model.simple_save”,该名称现已被弃用并删除(2019年3月)。 使用freeze_session将h5转换为pb,如下所示: How to export Keras .h5 to 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
用saved_model_cli进行了检查,没有标签。
如今如何使h5模型在tensorflow_server中可用?
答案 0 :(得分:1)
注意:这适用于TF 2.0 +
我假设您在model.h5
中拥有Keras模型。
首先,使用Tenorflow的Keras实现加载模型:
from tensorflow import keras
model = keras.models.load_model('model.h5')
然后,只需导出一个SavedModel
keras.experimental.export_saved_model(model, 'path_to_saved_model')
最后,应用您名义上要从SavedModel
到.pb
推理文件的所有转换(例如:冻结,优化推理等)
您可以在TF的official guide for saving and serializing models in TF 2.0
中获得更多详细信息和完整示例