keras调用load_model时报错ValueError: Unknown Layer

报错的原因:

是因为该层是自己定义的网络层,在加载模型时没有办法读取到该网络层(layer)

解决办法:

在load_model函数中添加custom_objects参数,该参数接受一个字典,键值为自定义的层:

model = load_model(model_path, custom_objects={'AttLayer': AttLayer})  # 假设自定义的层的名字为AttLayer

假如AttLayer是在另一.py文件中,还需从另一个.py文件夹中导入过来

from  myself import AttLayer     #假设另一个.py文件的名字是 myself.py,自定义的层的名字为AttLayer
model = load_model(model_path, custom_objects={'AttLayer': AttLayer})  # 假设自定义的层的名字为AttLayer

你可能感兴趣的:(python,嵌入式硬件,计算机视觉)