lstm模型二分类代码
时间: 2023-11-09 12:09:18 浏览: 86
以下是一个基于LSTM的二分类模型的示例代码:
```python
import numpy as np
import tensorflow as tf
# 定义超参数
num_epochs = 10
batch_size = 32
lstm_size = 128
embedding_size = 128
learning_rate = 0.001
# 加载数据集
from tensorflow.keras.datasets import imdb
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=10000)
# 对数据进行预处理,将每个样本的长度填充到相同的长度
from tensorflow.keras.preprocessing.sequence import pad_sequences
x_train = pad_sequences(x_train, maxlen=200)
x_test = pad_sequences(x_test, maxlen=200)
# 创建模型
model = tf.keras.Sequential()
model.add(tf.keras.layers.Embedding(input_dim=10000, output_dim=embedding_size, input_shape=(x_train.shape[1],)))
model.add(tf.keras.layers.LSTM(units=lstm_size))
model.add(tf.keras.layers.Dense(units=1, activation='sigmoid'))
# 编译模型
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=learning_rate),
loss=tf.keras.losses.BinaryCrossentropy(),
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=num_epochs, batch_size=batch_size, validation_data=(x_test, y_test))
# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print('Test Loss:', test_loss)
print('Test Accuracy:', test_acc)
```
在此示例中,我们使用了Keras API来构建模型。首先,我们加载IMDB数据集,并将每个样本的长度填充到相同的长度。然后,我们创建了一个序列模型,并添加了一个嵌入层、一个LSTM层和一个输出层。最后,我们编译模型,并使用训练数据训练模型。在训练完成后,我们评估了模型在测试数据上的性能。
阅读全文