我有一个卷积层,它产生 16 个输出特征图,我想把这些图转换成 4 个图,如下所示:
- 将 16 个特征图分成 4 组,每组 4 个图。
- 将每个组乘以掩码以将某些值清零。
- 在每组中添加生成的特征图以获得 4 个图。
或者,我可以先将所有 16 个映射乘以一个掩码,然后将结果分成 4 个组,对每个组进行 reduce_sum。生成的 4 个映射将用作下一个卷积或池化层的输入。
Tensorflow 是否能够自动计算 tf.split、tf.multiply 和 tf.reduce_sum 组合的梯度?
编辑:这是一系列操作,其中conv
是 的输出tf.layers.conv2d
,并且mask
是形状相同的二进制 numpy 数组conv
(完整代码在此处):
conv_masked = mask * conv
conv_grouped = tf.reshape(conv_masked, (batch_size, num_groups, fs*fs, dim, dim))
out = tf.reduce_sum(conv_grouped, axis=2)