Есть ли способ в Keras не иметь размер y, равный размеру пакета X для LSTM с отслеживанием состояния?

Я пытаюсь обновить вес только в конце партии, и я знаю, что это поведение по умолчанию, но я не понимаю, почему вам нужно, чтобы ваши X и Y были одинакового размера? Если у меня есть X.shape(12,32,64), в котором я использую размер пакета 12, то почему только одной партии недостаточно, чтобы иметь y.shape(1,N)?

Я хотел бы выполнить обратное распространение только после того, как весь размер пакета будет показан в сети. Зачем иметь этикетку для каждой партии товара?

Пример кода:

def create_model(batch, timesteps, features):
    inputTensor1 = Input(batch_shape=(batch, timesteps, features))
    lstm1 = LSTM(32, stateful=True, dropout=0.2)(inputTensor1)
    x = Dense(4, activation='linear')(lstm1)
    model = Model(inputs=inputTensor1, outputs=x)
    model.compile(loss='mse', optimizer='rmsprop', metrics=['mse'])
    print(model.summary())
    plot_model(model, show_shapes=True, show_layer_names=True)

    return model

X = np.load("").reshape(1280,12,640,32)
y = np.load("").reshape(1280,1,4)

prop_train = 0.8
ntrain = int(X.shape[0]*prop_train)

X_train, X_val = X[:ntrain], X[ntrain:]
y_train, y_val = y[:ntrain], y[ntrain:]

model =create_model(12,640,32)

for j in np.arange(1):
    for i in np.arange(X_train.shape[0]):
        print(i)
        model.reset_states()
        history=model.train_on_batch(X_train[i], y_train[i])

Здесь у меня ошибка

ValueError: Input arrays should have the same number of samples as target arrays. Found 12 input samples and 1 target samples

0 ответов

Другие вопросы по тегам