我正在将训练有素的模型转移到生产推理上。为此,我需要保存模型,以便它(和/或检查点)可以在运行时从生产运行更改为生产运行。移动模型的输入和输出形状的形状可以在运行之间变化。
所以我在看tf.saved_model.simple_save
:
simple_save(session, export_dir, inputs={"x": x, "y": y}, outputs={"z": z})
如果我运行推理生产代码,如:
session = Session()
inputs = tf.placeholder(dtype=tf.float32, shape=(None, height, width, in_channel_size), name='input_img')
model = Some_Model(inputs, num_classes=no_of_defects, is_training=False)
logits, _ = model.build_model()
predictor = tf.nn.softmax(self.logits, name='logits_to_softmax')
feed_dict = {inputs: inputs}
prediction_probabilities = session.run(self.predictor, feed_dict=feed_dict)
然后我如何确定inputs
和outputs
的输入内容:
simple_save(session, export_dir, inputs=???, outputs=???)
即tf.saved_mode.simple_save()
的“输入”和“输出”参数是什么?
我正在PyCharm中运行调试会话,如果这是相关的。
simple_save(session, export_dir, inputs={"inputs" : inputs}, outputs={"predictor" : predictor})
在我看来,它将是:
simple_save(session, export_dir, inputs=feed_dict, outputs={"predictor" : predictor}))