TF2中的export_saved_model是否也节省了权重?

时间:2019-05-22 14:43:02

标签: python tensorflow keras tensorflow2.0 tf.keras

我使用最新的 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是我先前创建/编译/拟合的模型

现在我的问题,

  1. export_saved_model如何知道要节省的权重?还是可以节省最后一个时期的权重?

  2. 按照该逻辑,最好从检查点加载最佳模型,然后使用导出功能?

  3. 添加以下问题:是否有一个回调,它用作来自keras的modelcheckpoint但具有此导出功能?创建最佳模型的pb文件。

1 个答案:

答案 0 :(得分:1)

您可以在这里查看:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/keras/saving/saved_model.py

1)Keras用最后一个检查点保存模型,实际上这是最后一个时期的权重。

引用来源:

  

SavedModel包含:

     
      
  1. 包含模型权重的检查点。

  2.   
  3. 一个SavedModel原型,其中包含Tensorflow后端图。分离   图形被保存以进行预测(服务),训练和评估。如果   该模型尚未编译,则只有图计算预测   将被导出。

  4.   
  5. 模型的json配置。如果模型是子类的,则只能是   如果模型的get_config()方法被覆盖,则包含在内。

  6.   

2)我认为最好的方法是在保存和加载时始终将模型体系结构和权重区分开。换句话说:是的,从最佳模型加载权重。

3)不,现在没有回调将整个模型导出到pb。因此,要么使用“ ModelCheckpoint”回调,然后加载最佳权重,要么使用“ LambdaCallback”构建自己的回调。

我希望这会有所帮助!