可以用python写一段LSTM代码吗?
时间: 2024-02-01 13:03:09 浏览: 86
当然可以,请参考下面的代码:
```python
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical
# 加载MNIST数据集
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# 将输入数据reshape成LSTM网络需要的形状
X_train = X_train.reshape(-1, 28, 28) / 255.0
X_test = X_test.reshape(-1, 28, 28) / 255.0
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
# 定义LSTM网络结构
model = Sequential()
model.add(LSTM(128, input_shape=(28, 28), activation='tanh', return_sequences=False))
model.add(Dense(10, activation='softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, batch_size=128, epochs=10, validation_data=(X_test, y_test))
# 评估模型
loss, accuracy = model.evaluate(X_test, y_test)
print('Test loss:', loss)
print('Test accuracy:', accuracy)
```
在这个例子中,我们使用了`tensorflow.keras`模块来构建、编译和训练LSTM网络。首先加载MNIST数据集,并将输入数据reshape成LSTM网络需要的形状。接着定义LSTM网络结构,包括一个LSTM层和一个全连接层。然后编译模型,指定损失函数、优化器和评估指标。最后使用`fit`函数来训练模型,并使用`evaluate`函数来评估模型性能。
阅读全文