在张量流中导出模型时如何避免保存优化器状态?

时间:2018-11-15 06:37:12

标签: tensorflow tensorflow-serving

我已经编写了一个张量流模型,当我使用simple_save导出模型时,如下所示:

signature_def_map = {
    signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY:
      signature_def_utils.predict_signature_def(inputs, outputs)
}
b = builder.SavedModelBuilder(export_dir)
b.add_meta_graph_and_variables(
    session,
    tags=[tag_constants.SERVING],
    signature_def_map=signature_def_map,
    assets_collection=ops.get_collection(ops.GraphKeys.ASSET_FILEPATHS),
    legacy_init_op=legacy_init_op,
    clear_devices=True)
b.save(as_text=True)

我发现Adagrad中的所有变量也都根据saved_model.pbtxt保存了:

node {
    name: "input/input_layer_1/context.match_type_info_x_MatchNum_embedding/embedding_weights/part_0/Adagrad"
    op: "VariableV2"
    attr {
        key: "_class"
        value {
            list {
                s: "loc:@input/input_layer_1/context.match_type_info_x_MatchNum_embedding/embedding_weights/part_0"
            }
        }
    }
    attr {
    key: "_output_shapes"
    value {
        list {
            shape {
                dim {
                    size: 31
                }
                dim {
                    size: 16
                }
            }
        }
    }
}

这将导致保存的模型的大小是所需大小的两倍。有没有办法删除它们? (保存的模型仅用于预测,因此不需要优化器状态。)

谢谢!

0 个答案:

没有答案