Tensorflow v1.12.0中的export_savedmodel问题

时间:2018-12-18 23:28:35

标签: python tensorflow keras tensorflow-estimator

我正在尝试使用 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')

但是现在我有: “数据丢失:不是一个稳定的(错误的魔术数字):也许您的文件格式不同?”

这是怎么回事?

1 个答案:

答案 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上报告它。