Python 报错记录——ValueError: Unknown layer:XXXXX

Python 报错记录——ValueError: Unknown layer:XXXXX

  • 参考

利用keras导入自定义模型时会报错:

ValueError: Unknown layer:Mandist

比如我的源代码是:

model = tf.keras.models.load_model('en_SiameseLSTM.h5')

由于原先训练的模型有自定义层Mandist,keras导入时识别不出来就会报错。因此,需要加入

model = tf.keras.models.load_model('en_SiameseLSTM.h5', custom_objects={'ManDist': ManDist})

如果有小伙伴有此类报错,只需要对custom_objects中进行修改几个,比如你的自定义层是xxx,则:

model = tf.keras.models.load_model('model_name.h5', custom_objects={'xxx': xxx})

另外,值得注意的是,如果xxx不在同一个py文件中,需要对其调用。
比如
from a import xxx

a代表另外个py文件。

tensorflow官网也有解释,当时没看懂,看了参考1忽然明白。

参考

  1. https://stackoverflow.com/questions/50837728/valueerror-unknown-layer-capsulelayer
  2. https://www.tensorflow.org/guide/keras/save_and_serialize#registering_the_custom_object

你可能感兴趣的:(Python,Error,汇总,python,tensorflow,深度学习)