温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-22 22:20:52 来源:亿速云 阅读:848 作者:元一 栏目:开发技术

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

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

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

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

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

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

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

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

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

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

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

调用方式不变

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

这样问题就解决啦!

补充知识: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实现加载含有参数自定义类的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI