3
a = tf.random_uniform([5, 3, 5])
b = tf.random_uniform([5, 1, 6])
tiled_b = tf.tile(b, [1, 3, 1])
c = tf.concat([a, tiled_b], 2)
d = tf.layers.dense(c, 10, activation=tf.nn.relu)
这里的输出形状竟然是5x3x10
。输入形状为5x3x11
。我看过这个操作的源代码,发现权重矩阵的形状是11x10
。我也明白,操作类似于res = np.tensordot(input,weights,axes=([2],[0]))
。我不明白的是这是如何发生的。我如何在神经网络中可视化这个操作?因为,密集层仅仅是一个有10个神经元的单层,那么权重矩阵如何可以是11x10
?Tensorflow致密层操作
每个神经元如何连接到输入通道?你是说每个神经元都是由'5x3'矩阵共享的吗?如果是这样,那么发生的操作是什么? –
每个'5x3'组包含'10'个输出神经元。在输入中,有'5x3'组的'11'输入神经元。因此,在这些“5x3”组的每一组中,该组“11”乘以一个矩阵以得到一组“10”。 –