我构建了一个带有自定义层的 Keras 模型,并.h5通过回调将其保存到一个文件中ModelCheckPoint。当我在训练后尝试加载此模型时,出现以下错误消息:
Run Code Online (Sandbox Code Playgroud)__init__() missing 1 required positional argument: 'pool_size'
这是自定义层及其__init__方法的定义:
__init__() missing 1 required positional argument: 'pool_size'
Run Code Online (Sandbox Code Playgroud)
这就是我将此层添加到我的模型的方式:
class MyMeanPooling(Layer):
def __init__(self, pool_size, axis=1, **kwargs):
self.supports_masking = True
self.pool_size = pool_size
self.axis = axis
self.y_shape = None
self.y_mask = None
super(MyMeanPooling, self).__init__(**kwargs)
Run Code Online (Sandbox Code Playgroud)
这是我加载模型的方式:
x = MyMeanPooling(globalvars.pool_size)(x)
Run Code Online (Sandbox Code Playgroud)
这些是完整的错误消息:
Traceback (most recent call last):
File "D:/My Projects/Attention_BLSTM/script3.py", line 9, in <module>
model = load_model(model_path, custom_objects={'MyMeanPooling': MyMeanPooling})
File "D:\ProgramData\Anaconda3\envs\tf\lib\site-packages\keras\engine\saving.py", line 419, in load_model
model = _deserialize_model(f, …Run Code Online (Sandbox Code Playgroud)