lstm网络多参数输入,单参数输出代码
时间: 2023-12-19 09:07:54 浏览: 55
以下是一个简单的LSTM网络多参数输入,单参数输出的代码示例:
```python
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, LSTM
# 生成训练数据
data = [[i+j for j in range(5)] for i in range(100)]
target = [[i+5] for i in range(100)]
data = np.array(data, dtype=float)
target = np.array(target, dtype=float)
# 创建LSTM模型
model = Sequential()
model.add(LSTM(64, input_shape=(5,1)))
model.add(Dense(1))
# 编译模型
model.compile(loss='mean_absolute_error', optimizer='adam')
# 训练模型
model.fit(data.reshape(100,5,1), target, epochs=1000, verbose=2)
# 预测数据
test_data = [[95,96,97,98,99]]
test_data = np.array(test_data, dtype=float)
print(model.predict(test_data.reshape(1,5,1)))
```
在这个例子中,我们生成了100个数值序列,每个序列包含5个连续的数字。然后,我们使用前4个数字作为输入,第5个数字作为输出,从而创建了训练数据。我们将这些数据转换为Numpy数组,并使用Keras的Sequential模型创建了一个LSTM网络。该网络有一个LSTM层和一个Dense层,其中LSTM层的输入形状为(5,1),因为我们有5个数字作为输入,并且每个数字都是一个单独的特征。我们使用平均绝对误差作为损失函数,使用Adam优化器编译模型。最后,我们训练模型并使用测试数据进行预测。