本篇文章展示了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实现加载含有参数自定义类的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。