我正在将训练有素的模型用于生产推理。为此,我需要保存模型,以便可以在运行时从生产运行到生产运行更改模型(和/或检查点)。移动时,模型的输入和输出形状的形状可以随运行而变化。
所以我正在看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=???)
ie tf.saved_mode.simple_save()
的“输入”和“输出”参数是什么?
如果需要的话,我正在PyCharm中运行调试会话。
答案 0 :(得分:-1)
在我看来,应该是:
simple_save(session, export_dir, inputs=feed_dict, outputs={"predictor" : predictor}))
答案 1 :(得分:-1)
simple_save(session, export_dir, inputs={"inputs" : inputs}, outputs={"predictor" : predictor})