【问题标题】:TensorFlow - SavedModelBuilderTensorFlow - SavedModelBuilder
【发布时间】:2018-02-06 15:26:38
【问题描述】:

我有一个 TF 模型,我想以不同的增量保存它。我用来执行此操作的代码如下。每 100 步我想创建一个新模型,所以我打电话给builder.save()

问题:每次我想保存时我需要调用整个块 2 还是只需要调用builder.save()

#  For exporting the model in SavedModel format
export_path = os.path.abspath(os.path.join(out_dir, "Model_Exports"))
builder = tf.saved_model.builder.SavedModelBuilder(export_path)
#  Create classification signature - describes what model is being exported
tensor_info_x = tf.saved_model.utils.build_tensor_info(cnn.input_x)
tensor_info_y = tf.saved_model.utils.build_tensor_info(cnn.input_y)

classification_signature = (
  tf.saved_model.signature_def_utils.build_signature_def(
    inputs={'documents': tensor_info_x},
    outputs={'scores': tensor_info_y},
    method_name=tf.saved_model.signature_constants.CLASSIFY_METHOD_NAME)
)

#  BLOCK2 - Adding metagraph and variables to export  
builder.add_meta_graph_and_variables(
  sess,
  [tf.saved_model.tag_constants.SERVING],
  signature_def_map={
    'classify':
      classification_signature,
  }
)

【问题讨论】:

    标签: python tensorflow machine-learning save builder


    【解决方案1】:

    SavedModelBuilder 是 protobuf 文件的简单汇编程序。 save 方法只会将内存中的当前结构刷新到磁盘上的文件中。

    如果创建builder并调用builder.save()而不添加元图和变量,调用会成功,但保存的SavedModelprotobuf会为空(除了架构版本,所以总文件大小将是 2 个字节)。这没有实际用途。同样,在不添加任何新内容的情况下多次调用save 也没有多大意义。

    另见documentation中的描述:

    要构建SavedModel,第一个元图必须与变量一起保存。随后的元图将与其图定义一起保存。

    【讨论】:

      猜你喜欢
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 2021-10-02
      • 2020-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多