Вы не можете исправить эту конкретную проблему, потому что вы можете передать вектор переменного размера в слой Dense
. Почему? Поскольку он имеет матрицу весов фиксированного размера, то есть ядро W
.
Вместо этого вы должны взглянуть на слои, которые могут обрабатывать последовательности переменной длины, такие как RNN. Например, вы можете позволить LSTM изучить представление всей последовательности:
input = Input(shape=(None, 100))
lstm_out = Bidirectional(LSTM(10))(input) # the LSTM produces a single fixed size vector
output = Dense(22, activation='softmax')(lstm_out) # Dense classifies it
Если вам нужна большая емкость в вашей модели, вы можете связать слои RNN, если последний не возвращает последовательности:
lstm_out = Bidirectional(LSTM(10, return_sequences=True))(input)
lstm_out = Bidirectional(LSTM(10))(lstm_out) # this LSTM produces a single vector