Как указано в документации keras , вы можете использовать 3D (или более высокий ранг) данные в качестве входных данных для плотного слоя, но вход сначала выравнивается:
Примечание: есливход для слоя имеет ранг больше 2, затем он выравнивается перед начальным точечным произведением с ядром.
Это означает, что если ваш вход имеет форму (batch_size, sequence_length, dim)
, то плотный слойсначала сгладит ваши данные, чтобы сформировать (batch_size * sequence_length, dim)
, а затем нанесет плотный слой как обычно.Выход будет иметь форму (batch_size, sequence_length, hidden_units)
.На самом деле это то же самое, что применение слоя Conv1D с размером ядра 1, и может быть более явным использование слоя Conv1D вместо плотного слоя.