keras 解决加载lstm+crf模型出错的问题


Posted in Python onJune 10, 2020

错误展示

new_model = load_model(“model.h5”)

报错:

1、keras load_model valueError: Unknown Layer :CRF

2、keras load_model valueError: Unknown loss function:crf_loss

错误修改

1、load_model修改源码:custom_objects = None 改为 def load_model(filepath, custom_objects, compile=True):

2、new_model = load_model(“model.h5”,custom_objects={‘CRF': CRF,‘crf_loss': crf_loss,‘crf_viterbi_accuracy': crf_viterbi_accuracy}

以上修改后,即可运行。

补充知识:用keras搭建bilstm crf

使用 https://github.com/keras-team/keras-contrib实现的crf layer,

安装 keras-contrib

pip install git+https://www.github.com/keras-team/keras-contrib.git

Code Example:

# coding: utf-8
from keras.models import Sequential
from keras.layers import Embedding
from keras.layers import LSTM
from keras.layers import Bidirectional
from keras.layers import Dense
from keras.layers import TimeDistributed
from keras.layers import Dropout
from keras_contrib.layers.crf import CRF
from keras_contrib.utils import save_load_utils

VOCAB_SIZE = 2500
EMBEDDING_OUT_DIM = 128
TIME_STAMPS = 100
HIDDEN_UNITS = 200
DROPOUT_RATE = 0.3
NUM_CLASS = 5

def build_embedding_bilstm2_crf_model():
 """
 带embedding的双向LSTM + crf
 """
 model = Sequential()
 model.add(Embedding(VOCAB_SIZE, output_dim=EMBEDDING_OUT_DIM, input_length=TIME_STAMPS))
 model.add(Bidirectional(LSTM(HIDDEN_UNITS, return_sequences=True)))
 model.add(Dropout(DROPOUT_RATE))
 model.add(Bidirectional(LSTM(HIDDEN_UNITS, return_sequences=True)))
 model.add(Dropout(DROPOUT_RATE))
 model.add(TimeDistributed(Dense(NUM_CLASS)))
 crf_layer = CRF(NUM_CLASS)
 model.add(crf_layer)
 model.compile('rmsprop', loss=crf_layer.loss_function, metrics=[crf_layer.accuracy])
 return model

def save_embedding_bilstm2_crf_model(model, filename):
 save_load_utils.save_all_weights(model,filename)

def load_embedding_bilstm2_crf_model(filename):
 model = build_embedding_bilstm2_crf_model()
 save_load_utils.load_all_weights(model, filename)
 return model

if __name__ == '__main__':
 model = build_embedding_bilstm2_crf_model()

注意:

如果执行build模型报错,则很可能是keras版本的问题。在keras-contrib==2.0.8且keras==2.0.8时,上面代码不会报错。

以上这篇keras 解决加载lstm+crf模型出错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
深入理解python中的atexit模块
Mar 07 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
Python 查看文件的读写权限方法
Jan 23 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
Python连接Redis的基本配置方法
Sep 13 Python
对numpy中二进制格式的数据存储与读取方法详解
Nov 01 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
python set内置函数的具体使用
Jul 02 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
python爬取代理ip的示例
Dec 18 Python
Python+Appium实现自动化清理微信僵尸好友的方法
Feb 04 Python
Python自动化测试PO模型封装过程详解
Jun 22 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 #Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 #Python
Python 字典中的所有方法及用法
Jun 10 #Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 #Python
Keras—embedding嵌入层的用法详解
Jun 10 #Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
Jun 10 #Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 #Python
You might like
php生成zip文件类实例
2015/04/07 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
javascript时区函数介绍
2012/09/14 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
js解决movebox移动问题
2016/03/29 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
Python 对输入的数字进行排序的方法
2018/06/23 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
2019/04/11 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
Python作用域与名字空间原理详解
2020/03/21 Python
简单了解如何封装自己的Python包
2020/07/08 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
JPA的优势都有哪些
2013/07/04 面试题
期末考试动员演讲稿
2014/01/10 职场文书
新领导上任欢迎词
2014/01/13 职场文书
音乐器材管理制度
2014/01/31 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
投标承诺书范本
2014/03/27 职场文书
市场营销工作计划书
2014/05/06 职场文书
工商管理专业自荐信
2014/06/03 职场文书
社区文艺活动方案
2014/08/19 职场文书
新教师教学工作总结
2015/08/14 职场文书
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
PyTorch device与cuda.device用法
2022/04/03 Python
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS