Как я могу эффективно реализовать свертку 1x1, которая имеет отдельные фильтры вдоль пространственного измерения в Tensorflow? Существует tf.nn.depthwise_conv2d, который похож на мою проблему, но имеет отдельные фильтры по глубине глубина (т. Е. 3-е измерение).Пространственно разделяемая свертка
В простейшем случае out_channels = 1 эта свертка может быть записана в виде:
def spatial_conv(input, filter):
return tf.reduce_sum(tf.mul(input, filter), [3], keep_dims=True)
где input.dim=[batch_size, input_width, input_height, channels]
и filter.dim=[input_width, input_height, channels]
. Я хочу обобщить эту свертку, объединив выходы с одного и того же входа и различные (но одинаковые формы) фильтры.