load model实现加载含有参数自定义类的方法

2023-05-21,,

本篇文章展示了load model实现加载含有参数自定义类的方法具体操作,代码简明扼要容易理解,绝对能让你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Keras在代码结构上由面向对象方法编写,完全模块化并具有可扩展性,其运行机制和说明文档有将用户体验和使用难度纳入考虑,并试图简化复杂算法的实现难度 。

加载自定义模型和函数,如下图

这个SelfAttention层是在训练过程自己定义的一个class,但如果要加载这个自定义层,需要在load_model里添加custom_objects字典,这个自定义的类,不要用import ,最好是直接复制进再训练的模型中。

如果直接运行上面的代码,会出现一个init初始化错误,如下图,

再来看看 这个SelfAttention 自定义的类的初始化

这就说明再调用这个类的时候,输入的ch=256并不会初始化这个类,需要先自定义好初始化值,如下图

调用方式不变

这样问题就解决啦!

补充知识:keras load model的时候,报错('Keyword argument not understood:', u'******')如何解决

由于keras不同版本的API有变化,因此在一个keras版本下训练的模型在另一个keras版本下加载时,可能会出现诸如('Keyword argument not understood:', u'data_format')等报错。

通过打开*.h6文件,查看该模型训练所用环境,再安装该环境即可解决报错。

查看Keras Model所用的Keras环境的方法

import h6py

f = h6py.File('Model.h6', 'r')
print(f.attrs.get('keras_version'))

根据输出的keras版本安装对应版本的keras即可解决加载问题。

看完上述内容,你们掌握load model实现加载含有参数自定义类的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注本站行业资讯频道,感谢各位的阅读!

《load model实现加载含有参数自定义类的方法.doc》

下载本文的Word格式文档,以方便收藏与打印。