我试着保存和加载我的角膜模型。它可以加载在同一个工作簿,但当我在一个新的笔记本加载模型时出错。该模型具有文本化层和“标准化”参数的自定义标准化。首先,我注册自定义函数:
@tf.keras.utils.register_keras_serializable()
def custom_standardization(input_data):
text = tf.strings.lower(input_data)
...
...
return text 然后我定义了文本化层:
vectorize_layer = tf.keras.layers.TextVectorization(
standardize=custom_standardization,
max_tokens = 1000,
output_mode ="int",
output_sequence_length = 30)接下来,我构建模型:
model_FFN = tf.keras.Sequential ([
vectorize_layer,
tf.keras.layers.Embedding(
input_dim = len(vectorize_layer.get_vocabulary()),
output_dim = 16,
mask_zero=True),
GlobalAveragePooling1D(),
Dense(1)
])在拟合了模型之后,我保存了它:
model_FFN.compile (
optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate),
loss =loss,
metrics=metrics)
history = model_FFN.fit(train_ds_raw,epochs =epoch,validation_data=val_ds_raw)
modelFileName = 'models/saved_model'
model_FFN.save(modelFileName)但是,当我试图在新笔记本中加载保存的模型时,会收到以下错误:
modelFileName = 'models/saved_model'
loaded_model = keras.models.load_model(modelFileName)错误: ValueError:图层TextVectorization的standardize参数的未知值。如果还原模型且standardize是自定义可调用的,请确保可调用已注册为自定义对象。详情请参见对象。允许的值是:None、一个Callable或下列值之一:(‘and_and_lower_标点符号’、'lower‘、'strip_punctuation')。接收: Custom>custom_standardization
谁能看看有什么问题吗?谢谢!
发布于 2022-08-08 14:35:50
发布于 2022-08-01 19:00:37
https://stackoverflow.com/questions/73197800
复制相似问题