我使用最新的 TF2.0a 使用tf.keras创建,编译和拟合了模型。 现在,我想将其另存为pb,以便稍后进行推断。
我使用:
import time
saved_model_path = "./models/pb/experimental/{}".format(int(time.time()))
tf.keras.experimental.export_saved_model(model, saved_model_path)
saved_model_path
在点{em>作为保存的模型
下的here model
是我先前创建/编译/拟合的模型
现在我的问题,
export_saved_model
如何知道要节省的权重?还是可以节省最后一个时期的权重?
按照该逻辑,最好从检查点加载最佳模型,然后使用导出功能?
添加以下问题:是否有一个回调,它用作来自keras的modelcheckpoint但具有此导出功能?创建最佳模型的pb文件。
答案 0 :(得分:1)
您可以在这里查看:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/keras/saving/saved_model.py
1)Keras用最后一个检查点保存模型,实际上这是最后一个时期的权重。
引用来源:
SavedModel
包含:
包含模型权重的检查点。
一个
SavedModel
原型,其中包含Tensorflow后端图。分离 图形被保存以进行预测(服务),训练和评估。如果 该模型尚未编译,则只有图计算预测 将被导出。模型的json配置。如果模型是子类的,则只能是 如果模型的
get_config()
方法被覆盖,则包含在内。
2)我认为最好的方法是在保存和加载时始终将模型体系结构和权重区分开。换句话说:是的,从最佳模型加载权重。
3)不,现在没有回调将整个模型导出到pb。因此,要么使用“ ModelCheckpoint”回调,然后加载最佳权重,要么使用“ LambdaCallback”构建自己的回调。
我希望这会有所帮助!