Как избежать сохранения состояний оптимизатора при экспорте модели в тензор потока? - PullRequest
0 голосов
/ 15 ноября 2018

Я написал модель тензорного потока, и когда я экспортирую модель, используя 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
                }
            }
        }
    }
}

Это приводит к тому, что сохраненная модель становится в два раза больше необходимой. Есть ли способ их удалить? (Сохраненная модель используется только для прогнозирования, поэтому ей не нужны состояния оптимизатора.)

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...