我想知道tensorflow.python.keras.layers.Dense层的行为(从现在开始就是Dense)。在documentation中,可以阅读
注意:如果该图层的输入的秩大于2,则为 在具有内核的初始点积之前变平。
因此,我希望Dense层的输出始终具有两个维度,一个由批处理大小确定,另一个由该层中的单元数确定。但是,我无法复制这一点:我总是在输入和输出中获得相同数量的尺寸。在实践中,Dense的行为与我期望的TimeDistributed(Dense)完全一样(唯一的区别是,TimeDistributed(Dense)在应用于2D输入时会引发错误)。
我不正确理解文档吗?
一个最小的工作示例来说明这一点:
from tensorflow.python.keras import Input, Model
from tensorflow.python.keras.layers import Dense, TimeDistributed
shape = (80, 32, 14, 2) # this doesn't include the batch size, change at will but keep len(shape) >= 2
x = Input(shape=shape)
y1 = TimeDistributed(Dense(3))(x)
model1 = Model(inputs=x, outputs=y1)
model1.summary()
y2 = Dense(3)(x)
model2 = Model(inputs=x, outputs=y2)
model2.summary()
摘要表明模型具有相同的输出形状和相同数量的可训练参数。