我正在尝试使用基于 API tf.estimator 的 Tensorflow (r1.4) 构建 CNN。这是一个罐头模型。这个想法是在 python 中使用估计器来训练和评估网络,并通过加载训练后生成的 pb 文件来使用没有估计器的 C++ 中的预测。
我的第一个问题是,这可能吗?
如果是,则训练部分有效,预测部分也有效(生成的 pb 文件没有估算器)但是当我从估算器加载 pb 文件时它不起作用。
我收到了这个错误:"Data loss: Can't parse saved_model.pb as binary proto"
我的 pyhon 代码导出我的模型:
feature_spec = {'input_image': parsing_ops.FixedLenFeature(dtype=dtypes.float32, shape=[1, 48 * 48])}
export_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec)
input_fn = tf.estimator.inputs.numpy_input_fn(self.eval_features,
self.eval_label,
shuffle=False,
num_epochs=1)
eval_result = self.model.evaluate(input_fn=input_fn, name='eval')
exporter = tf.estimator.FinalExporter('save_model', export_input_fn)
exporter.export(estimator=self.model, export_path=MODEL_DIR,
checkpoint_path=self.model.latest_checkpoint(),
eval_result=eval_result,
is_the_final_export=True)
它也不适用于tf.estimator.Estimator.export_savedmodel()
如果你们中的一个人知道关于带有固定模型的估计器以及如何导出它的明确教程,我很感兴趣