Получение ошибки «Не удается замариновать» при сохранении модели keras

#python #keras #pickle #bert-language-model

Вопрос:

Я строю модель с предварительно обученной моделью БЕРТА, затем я попытался сохранить ее с помощью pickle, я получил эту ошибку

Не удается рассолить <вызов функции LayerCall.call по адресу 0x7f3f6a88a8c0>: это не тот же объект, что и tensorflow.python.keras.saving.saved_model.save_impl.LayerCall.>вызов

Обновить:

Я попытался сохранить его с помощью метода model.save (), но получил: IndexError: индекс списка вне диапазона

Вот мой код для построения модели:

 MAX_LENGTH = 35
INPUT_IDs = Input(shape=(MAX_LENGTH,), dtype=tf.int32, name="input_ids")
INPUT_MASK = Input(shape=(MAX_LENGTH,), dtype=tf.int32, name="attention_mask")

 embeddings = bert_model([INPUT_IDs, INPUT_MASK])[1] # 0 is hidden state, 1 is pooler_output

 out = tf.keras.layers.Dropout(0.1)(embeddings)
 out = Dense(128, activation="relu")(out)
 out = tf.keras.layers.Dropout(0.1)(out)
 out = Dense(32, activation="relu")(out)

 y = Dense(1, activation='sigmoid')(out)
 model = tf.keras.Model(inputs=[INPUT_IDs, INPUT_MASK], outputs=y)
 model.layers[2].trainable = True


 optimizer = Adam(learning_rate=5e-06,
             epsilon=1e-08,
             decay=0.01,
             clipnorm=1.0)

 loss = BinaryCrossentropy(from_logits=True)
 metric = BinaryAccuracy('accuracy')

 model.compile(
     optimizer=optimizer,
     loss=loss,
     metrics=metric)

 train_history = model.fit(
     x={'input_ids':X_train["input_ids"], 'attention_mask':X_train["attention_mask"]},
     y=y_train,
     validation_split=0.2,
     epochs=10,
     batch_size=24)
 

Комментарии:

1. Нам нужно увидеть ваш код.

2. @2e0byo хорошо, я обновил вопрос своим кодом.

3. Где вы вызываете model.save()?

4. после завершения подгонки модели «model.fit()» я вызываю model.save() @2e0byo