Код: Выделить всё
import keras
import numpy
def build_model():
model = keras.models.Sequential()
model.add(keras.layers.LSTM(3, input_shape = (3, 1), activation = 'elu'))# Number of LSTM cells in this layer = 3.
return model
def build_data():
inputs = [1, 2, 3, 4, 5, 6, 7, 8, 9]
outputs = [10, 11, 12, 13, 14, 15, 16, 17, 18]
inputs = numpy.array(inputs)
outputs = numpy.array(outputs)
inputs = inputs.reshape(3, 3, 1)# Number of samples = 3, Number of input vectors in each sample = 3, size of each input vector = 3.
outputs = outputs.reshape(3, 3)# Number of target samples = 3, Number of outputs per target sample = 3.
return inputs, outputs
def train():
model = build_model()
model.summary()
model.compile(optimizer= 'adam', loss='mean_absolute_error', metrics=['accuracy'])
x, y = build_data()
model.fit(x, y, batch_size = 1, epochs = 4000)
model.save("LSTM_testModel")
def apply():
model = keras.models.load_model("LSTM_testModel")
input = [[[7], [8], [9]]]
input = numpy.array(input)
print(model.predict(input))
def main():
train()
main()
Просматривая учебные пособия в Интернете, я Я видел, что количество ячеек LSTM намного больше, чем количество входных векторов, например. 300 ячеек LSTM.
Скажем, например, у меня есть 3 входных вектора на выборку, какие входные данные поступают в 297 оставшихся ячеек LSTM?
Я попытался скомпилировать модель с двумя ячейками LSTM, и она по-прежнему принимала 3 входных вектора на выборку, хотя мне пришлось изменить целевые выходные данные в обучающих данных, чтобы приспособиться к этому (изменить размеры). Так что же случилось с третьим входным вектором каждого образца... он игнорируется?

Я верю, что На изображении выше показано, что каждый входной вектор (произвольного сценария) сопоставляется с определенной ячейкой RNN. Возможно, я неправильно это интерпретирую. Изображение выше взято со следующего URL: http://karpathy.github.io/2015/05/21/rnn-efficientness/
Подробнее здесь: https://stackoverflow.com/questions/596 ... er-than-or