По сути, я тренирую модель LSTM с использованием Keras, но когда я ее сохраняю, ее размер занимает до 100 МБ. Однако моя цель модели - развернуть на веб-сервере для использования в качестве API, мой веб-сервер не может его запустить, так как размер модели слишком велик. Проанализировав все параметры в моей модели, я обнаружил, что в моей модели 20,000,000
параметры, но 15,000,000
параметры не обучены, так как они являются вложениями слов. Можно ли как-то минимизировать размер модели, удалив параметры 15,000,000
, но сохранив производительность модели?
Вот мой код для модели:
def LSTModel(input_shape, word_to_vec_map, word_to_index):
sentence_indices = Input(input_shape, dtype="int32")
embedding_layer = pretrained_embedding_layer(word_to_vec_map, word_to_index)
embeddings = embedding_layer(sentence_indices)
X = LSTM(256, return_sequences=True)(embeddings)
X = Dropout(0.5)(X)
X = LSTM(256, return_sequences=False)(X)
X = Dropout(0.5)(X)
X = Dense(NUM_OF_LABELS)(X)
X = Activation("softmax")(X)
model = Model(inputs=sentence_indices, outputs=X)
return model