#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