【发布时间】:2022-01-20 01:23:56
【问题描述】:
假设我有 5x5x3 的图像,并且每个通道都有不同的过滤器 - 例如 3x3x3。 首先在 Cov2D 中,过滤器中的每个内核分别应用于输入层中的三个通道(给出 3x3x3 - 没有填充和步幅 1),然后将这三个通道相加(逐元素相加),得到 3x3x1 .
我想要连接三个通道 (3x3x3),而不是对通道 (3x3x1) 求和。
感谢您的帮助。
【问题讨论】:
标签: tensorflow keras
假设我有 5x5x3 的图像,并且每个通道都有不同的过滤器 - 例如 3x3x3。 首先在 Cov2D 中,过滤器中的每个内核分别应用于输入层中的三个通道(给出 3x3x3 - 没有填充和步幅 1),然后将这三个通道相加(逐元素相加),得到 3x3x1 .
我想要连接三个通道 (3x3x3),而不是对通道 (3x3x1) 求和。
感谢您的帮助。
【问题讨论】:
标签: tensorflow keras
您指的是深度卷积,其中输出的通道是连接而不是相加的。 (详见https://www.tensorflow.org/api_docs/python/tf/keras/layers/DepthwiseConv2D)
演示:
x = np.random.rand(1,5,5,3)
l = tf.keras.layers.DepthwiseConv2D(3, depth_multiplier=1)
print(l(x).shape)
'''
(1, 3, 3, 3)
'''
您可以使用depth_multiplier 来控制应用于每个通道的深度内核的数量。
l2 = tf.keras.layers.DepthwiseConv2D(3, depth_multiplier=2)
print(l2(x).shape)
'''
(1, 3, 3, 6)
'''
【讨论】: