Вы не можете изменить форму входного тензора во время тренировочного процесса. В вашем случае вы хотите иметь:
(batch_size, len1, num_features) -> (batch_size, len2, num_features)
для каждого шага.
У вас может быть что-то похожее на это:
from keras.models import Model
from keras.layers import Input, LSTM
x = Input(shape=(None,128))
hidden = LSTM(32)(x)
model = Model(x, hidden)
for batch in batch_lst:
model.train_on_batch(batch)
Отмечено, что Input
имеет форму ( Нет , 128), что означает переменная batch_size, переменная time_steps и фиксированное значение num_feature = 128
Более того, вы можете рассмотреть возможность использования маскирующего слоя , чтобы игнорировать все ваши значения заполнения, чтобы вы могли иметь один тензорный ввод для всей тренировкиустанавливается, пока на производительность модели не влияет заполнение.