基于Keras搭建一个简单的LSTM,用IMDB影评数据集对LSTM进行训练,完成模型的保存和加载以及测试。
环境:
CUDA:11.6.134
cuDNN:8.4.0
keras:2.9.0
tensorflow:2.9.1
注意:
项目内目录中两个文件夹:
- /datasets:存放数据集文件
- /save_models:保存训练好的模型权重文件
加载模型权重时请确保使用的模型和保存的权重一致
比如,当你保存的是自定义的lstm模型权重,那么同样需要构建自定义的lstm模型来读取这个权重
当使用Keras官方实现的lstm时,就会报错,即使官方实现的lstm和自定义的lstm参数量是一样的
反之亦然
如同自定义实现简单RNN时所说,实现自己的自定义LSTM:
Keras实现自定义循环神经网络需要:
1.实现自定义Cell,比如一个自定义的LSTMCell,注意需要定义状态参数维度:self.state_size
2.将实现好的Cell作为参数cell传入Keras.layers.RNN(),让Keras自动推断每个时刻的传递过程
数据集:
IMDB:影评数据集,训练集/测试集包含25000/25000条影评数据
链接:https://pan.baidu.com/s/18nX-2mqJzYU8XKQ5cfhxvw?pwd=52dl 提取码:52dl
通过对训练集切分10%比例用于训练时验证模型
训练好的模型对测试集进行测试评价效果
经测试,简单的lstm在测试集accuracy能达到~81%