tf.keras中的密集层的行为

时间:2019-09-18 09:53:24

标签: tensorflow tf.keras

我想知道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()

摘要表明模型具有相同的输出形状和相同数量的可训练参数。

0 个答案:

没有答案