gpt4 book ai didi

python - 加载以前保存的没有自定义层的模型时缺少 get_config

转载 作者:行者123 更新时间:2023-12-04 06:59:31 25 4
gpt4 key购买 nike

我在加载之前保存的模型时遇到问题。

这是我的保存:

def build_rnn_lstm_model(tokenizer, layers):
model = tf.keras.Sequential([
tf.keras.layers.Embedding(len(tokenizer.word_index) + 1, layers,input_length=843),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(layers, kernel_regularizer=l2(0.01), recurrent_regularizer=l2(0.01), bias_regularizer=l2(0.01))),
tf.keras.layers.Dense(layers, activation='relu', kernel_regularizer=l2(0.01), bias_regularizer=l2(0.01)),
tf.keras.layers.Dense(layers/2, activation='relu', kernel_regularizer=l2(0.01), bias_regularizer=l2(0.01)),
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.summary()
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy',f1,precision, recall])
print("Layers: ", len(model.layers))
return model

model_path = str(Path(__file__).parents[2]) + os.path.sep + 'model'
data_train_sequence, data_test_sequence, labels_train, labels_test, tokenizer = get_training_test_data_local()
model = build_rnn_lstm_model(tokenizer, 32)
model.fit(data_train_sequence, labels_train, epochs=num_epochs, validation_data=(data_test_sequence, labels_test))
model.save(model_path + os.path.sep + 'auditor_model', save_format='tf')

在此之后我可以看到 auditor_model保存在 model目录。

现在我想加载这个模型:
model = tf.keras.models.load_model(model_path + os.path.sep + 'auditor_model')

但我得到:

ValueError: Unable to restore custom object of type _tf_keras_metric currently. Please make sure that the layer implements get_configand from_config when saving. In addition, please use the custom_objects arg when calling load_model().



我读过 custom_objectsTensorFlow docs,但我不明白如何实现它,而我不使用自定义层,而是使用预定义的层。

谁能给我一个提示如何使它工作?我使用 TensorFlow 2.2 和 Python3

最佳答案

您的示例缺少 f1 的定义, precisionrecall职能。如果内置指标,例如'f1' (注意它是一个字符串)不适合您的用例,您可以通过 custom_objects如下:

def f1(y_true, y_pred):
return 1

model = tf.keras.models.load_model(path_to_model, custom_objects={'f1':f1})

关于python - 加载以前保存的没有自定义层的模型时缺少 get_config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61767723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com