loadmodel实现加载含有参数自定义类的方法-创新互联

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

创新互联专注于企业成都营销网站建设、网站重做改版、政和网站定制设计、自适应品牌网站建设、H5场景定制商城系统网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为政和等各大城市提供网站开发制作服务。

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'))

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:loadmodel实现加载含有参数自定义类的方法-创新互联
文章起源:http://scyanting.com/article/cccejp.html