Python Keras 加载h5模型 KeyError: 0

今天加载h5模型后又出现了KeyError: 0的错误

这应该是keras版本的问题

建议使用高于2.2.4的版本

命令行卸载keras后重新安装:

pip uninstall keras

pip install keras==2.2.4

然后在代码中按照https://blog.csdn.net/leleprogrammer/article/details/119699449https://blog.csdn.net/leleprogrammer/article/details/119699449

 上面我的这篇文章的方法把keras升级版本

就可以成功运行啦!

如果运行后会出现TypeError: __init__() got an unexpected keyword argument 'ragged'的错误,请参考我的Python Keras TypeError: __init__() got an unexpected keyword argument ‘ragged‘_leleprogrammer的博客-CSDN博客加载模型load_model时遇到这个报错只需要把从keras导入的都改成从tensorflow.keras导入from tensorflow.keras.models import load_model这样就好了https://blog.csdn.net/leleprogrammer/article/details/121299680这篇文章


喜欢的话记得点个赞哦!

这段代码的作用是使用已经训练好的LSTM模型对输入句子进行情感分类预测。模型的载入使用了`load_model()`方法,但是在载入模型时出现了UnicodeDecodeError错误。 这个错误通常是因为模型文件的编码格式不是utf-8编码,Python无法解码模型文件。为了解决这个问题,你可以尝试使用二进制模式打开模型文件,即将模型文件的打开方式改为“rb”,如下所示: ``` lstm_model = load_model(model_save_path, compile=False) ``` 此外,你还需要将`compile`参数设置为False,否则会出现类似“AttributeError: 'NoneType' object has no attribute 'predict'”的错误。 修改后的代码如下: ``` import pickle import numpy as np from keras.models import load_model from tensorflow.keras.preprocessing.sequence import pad_sequences # 导入字典 with open('word_dict.pk', 'rb') as f: word_dictionary = pickle.load(f) with open('label_dict.pk', 'rb') as f: output_dictionary = pickle.load(f) try: # 数据预处理 input_shape = 180 sent = "电视刚安装好,说实话,画质不怎么样,很差!" x = [[word_dictionary[word] for word in sent]] x = pad_sequences(maxlen=input_shape, sequences=x, padding='post', value=0) # 载入模型 model_save_path = 'model.h5' lstm_model = load_model(model_save_path, compile=False) # 模型预测 y_predict = lstm_model.predict(x) label_dict = {v:k for k,v in output_dictionary.items()} print('输入语句: %s' % sent) print('情感预测结果: %s' % label_dict[np.argmax(y_predict)]) except KeyError as err: print("您输入的句子有汉字不在词汇表中,请重新输入!") print("不在词汇表中的单词为:%s." % err) ``` 希望能帮助到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值