当你使用tensorflow.keras.layers.Add不同的形状时会发生什么?



所以我刚刚意识到根据文档,tensorflow keras的Add层希望在添加的张量之间具有相同的形状(我知道,但错误地改变了一个的形状)。但是它没有抛出错误,而是做了一些意想不到的事情。有人知道它是做什么的吗?

根据我的经验,它复制和扩展较小的形状张量以匹配较大的形状张量(如果可能的话),并将它们添加到结果中。所以如果你做

x1 = tf.zeros((32, 32, 3))
x2= tf.zeros((32, 32, 1))
temp = tf.keras.layers.add([x1, x2])
print(tf.shape(temp))

它会输出(32,32,3)

也许不是非常重要的信息,但想防止人们犯同样的错误,像我一样使用添加层,没有得到他们期望的形状!

最新更新