我正在尝试使用 export_savedmodel 函数编写从Keras模型创建的Estimator。我的代码如下所示:
from tensorflow.python import keras
...
model = keras.Model(...)
model.compile(...)
model.fit(...)
estimator_model = keras.estimator.model_to_estimator(keras_model=model, model_dir='./estimator_model')
estimator_model.export_savedmodel('./export', serving_input_receiver_fn=serving_input_fn)
def serving_input_fn():
...
我是根据Google tutorial编写的,但是有问题。不幸的是, export_savedmodel 在 ./ estimator_model 中找不到经过训练的模型。这让我感到惊讶,因为首先,在附加链接中我没有发现与此相关的任何问题,其次,在 export_savedmodel 我们还有一个附加的 checkpoint_path 参数,该参数未使用,但看起来会产生影响。 因为 model_to_estimator 将数据保存到文件夹 ./ estimator_model / keras 中,所以我尝试通过以下方式使用它:
estimator_model.export_savedmodel('./export', serving_input_receiver_fn=serving_input_fn, checkpoint_path='./estimator_model/keras/keras_model.ckpt.data-00000-of-00001')
但是现在我有: “数据丢失:不是一个稳定的(错误的魔术数字):也许您的文件格式不同?”
这是怎么回事?
答案 0 :(得分:0)
您可以尝试
from tensorflow.python import keras
...
model = keras.Model(...)
model.compile(...)
estimator_model = keras.estimator.model_to_estimator(keras_model=model,
model_dir='./estimator_model')
estimator_model.train(...)
estimator_model.export_savedmodel('./export',
serving_input_receiver_fn=serving_input_fn)
看看是否可行?
这可能是一个错误,我会在github上报告它。