我正在遵循TensorFlow文档中的“关注神经机器翻译”教程,但无法弄清楚如何将模型另存为SavedModel
文件。
在文档中可以看到,我可以很容易地保存检查点,但是afaik在与其他应用程序集成时不是很有用。即使没有使用tf.keras.Model
,有人知道保存整个“模型”吗?
文档:https://www.tensorflow.org/tutorials/text/nmt_with_attention
答案 0 :(得分:0)
如here所述,在tensorflow检查点和SavedModel中有2种保存机制。
如果代码(培训课程或此处的教程)始终可用,那么您只需还原并使用带有检查点的模型即可。
为了拥有SavedModel,您需要将代码重写为
class CustomModule(tf.Module)
,请注意
保存tf.Module时,将保存通过递归遍历找到的所有tf.Variable属性,tf.function-decorated方法和tf.Module。 (有关此递归遍历的更多信息,请参见Checkpoint教程。)但是,所有Python属性,函数和数据都会丢失。这意味着保存tf.function时,不会保存任何Python代码。 如果没有保存任何Python代码,那么SavedModel如何知道如何还原该函数? 简而言之,tf.function通过跟踪Python代码以生成ConcreteFunction(tf.Graph周围的可调用包装器)来工作。保存tf.function时,实际上是在保存tf.function的ConcreteFunctions缓存。 要了解有关tf.function和ConcreteFunctions之间关系的更多信息,请参阅tf.function指南。
更多信息here