What is the role of TimeDistributed layer in Keras?
Solution 1:
In keras
- while building a sequential model - usually the second dimension (one after sample dimension) - is related to a time
dimension. This means that if for example, your data is 5-dim
with (sample, time, width, length, channel)
you could apply a convolutional layer using TimeDistributed
(which is applicable to 4-dim
with (sample, width, length, channel)
) along a time dimension (applying the same layer to each time slice) in order to obtain 5-d
output.
The case with Dense
is that in keras
from version 2.0 Dense
is by default applied to only last dimension (e.g. if you apply Dense(10)
to input with shape (n, m, o, p)
you'll get output with shape (n, m, o, 10)
) so in your case Dense
and TimeDistributed(Dense)
are equivalent.