如何加载已保存的Tensorflow模型并对其进行评估



这就是我保存模型的方式。


# First created serving_input func
serving_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(tf.feature_column.make_parse_example_spec(my_feature_columns))
# Save Estimator as a tf model
classifier.export_saved_model("location", serving_input_fn)

这产生了一个文件夹;saved_model.pb";文件和文件夹";变量";

问题是我试图通过加载并运行模型


imported_model = tf.saved_model.load("/folderLocation")
imported_model_res = imported_model.evaluate(input_fn=lambda: input_fn(x_test, y_test, training=False))

但我收到一个错误,上面写着

AttributeError:"AutoTrackable"对象没有属性"evaluate">

非常感谢您的帮助。感谢

您首先需要将模型转换为keras。

尝试以下操作:

loaded = tf.saved_model.load(path)
class LayerFromSavedModel(tf.keras.layers.Layer):
def __init__(self):
super(LayerFromSavedModel, self).__init__()
self.vars = loaded.variables
def call(self, inputs):
return loaded.signatures['serving_default'](inputs)
input = tf.keras.Input(...)
model = tf.keras.Model(input, LayerFromSavedModel()(input))
model.save('saved_model')

最新更新