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用GET方法上传文件
Mar 10 Python
使用Python标准库中的wave模块绘制乐谱的简单教程
Mar 30 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
JPype实现在python中调用JAVA的实例
Jul 19 Python
Python语言实现百度语音识别API的使用实例
Dec 13 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
网红编程语言Python将纳入高考你怎么看?
Jun 07 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
Nov 26 Python
python通过函数名调用函数的几种场景
Sep 23 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
PHP $_SERVER详解
2009/01/16 PHP
php 删除记录实现代码
2009/03/12 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
简单介绍Python中的decode()方法的使用
2015/05/18 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
Python3.6.x中内置函数总结及讲解
2019/02/22 Python
django-allauth入门学习和使用详解
2019/07/03 Python
python中的Elasticsearch操作汇总
2019/10/30 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
财务会计专业个人求职信范本
2014/01/08 职场文书
小学生家长寄语
2014/04/02 职场文书
自强之星事迹材料
2014/05/12 职场文书
体育教师求职信
2014/05/24 职场文书
安全标语口号
2014/06/09 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
男人帮观后感
2015/06/18 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫