lstm网络训练模型并输出 python
时间: 2023-12-19 20:07:39 浏览: 80
SARIMA-LSTM混合模型预测时间序列(Python)
5星 · 资源好评率100%
下面是一个简单的LSTM网络训练模型并输出的Python代码示例:
```python
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout
# 读取数据
data = np.loadtxt('data.csv', delimiter=',')
# 分割数据集
train_data = data[:800, :]
test_data = data[800:, :]
# 准备训练数据
train_X, train_Y = [], []
for i in range(len(train_data)-3):
train_X.append(train_data[i:i+3])
train_Y.append(train_data[i+3][0])
train_X = np.array(train_X)
train_Y = np.array(train_Y)
# 准备测试数据
test_X, test_Y = [], []
for i in range(len(test_data)-3):
test_X.append(test_data[i:i+3])
test_Y.append(test_data[i+3][0])
test_X = np.array(test_X)
test_Y = np.array(test_Y)
# 构建LSTM网络模型
model = Sequential()
model.add(LSTM(128, input_shape=(3, 1)))
model.add(Dropout(0.2))
model.add(Dense(1, activation='linear'))
# 编译模型
model.compile(loss='mean_squared_error', optimizer='adam')
# 训练模型
model.fit(train_X, train_Y, epochs=100, batch_size=32)
# 测试模型
score = model.evaluate(test_X, test_Y, verbose=0)
# 输出模型结果
print('Test loss:', score)
```
这个示例中,我们首先读取一个包含一列数据的 CSV 文件,然后将数据集分割成训练集和测试集。接着,我们准备训练数据和测试数据,将每个数据点的前三个值作为输入,将第四个值作为输出。然后,我们构建了一个包含一个 LSTM 层和一个全连接层的神经网络模型,并编译模型。最后,我们使用训练集训练模型并使用测试集测试模型,并输出测试结果。
阅读全文