Я написал модель тензорного потока, и когда я экспортирую модель, используя 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
}
}
}
}
}
Это приводит к тому, что сохраненная модель становится в два раза больше необходимой. Есть ли способ их удалить? (Сохраненная модель используется только для прогнозирования, поэтому ей не нужны состояния оптимизатора.)
Спасибо!