Я работаю с функциональным API keras на LSTM. где a дали входную последовательность из 3 объектов и предсказали следующее значение в ней. например, для ввода
[10, 20, 30]
target
[40]
ниже приведены входные данные.
[[[10, 20, 30],
[20, 30, 40],
[30, 40, 50],
[40, 50, 60],
[50, 60, 70],
[60, 70, 80],
[70, 80, 90]]]
и целевые данные.
[ 40, 50, 60, 70, 80, 90, 100]
вот мой код для создания входного массива и целевого массива
from keras.utils import plot_model
from keras.models import Model
from keras.layers import Input
from keras.layers import Dense
from keras.layers.recurrent import LSTM
from numpy import array
def own_split_sequence():
X, y = list(), list()
for i in range(10,100,10):
if i+30 > 100:
break
seq_x = [i, i+10, i+20]
seq_y = i+30
X.append(seq_x)
y.append(seq_y)
return array(X), array(y)
изменить форму ввода в соответствии с (выборками, временными шагами, функциями)
x1 = X.reshape((1,7,3))
код модели.
visible = Input(shape=(7,3))
hidden1 = LSTM(10)(visible)
output = Dense(1,activation='relu')(hidden1)
model = Model(inputs=visible,outputs=output)
model.compile(optimizer='adam', loss='mse')
model.fit(x1, y, epochs=150, verbose=2)
и здесь в методе подгонки выдает ошибку
ValueError: Input arrays should have the same number of samples as target arrays. Found 1 input samples and 7 target samples.