TensorFlow实现2×2反池化
2×2反池化
如下图,将输入的尺寸扩大为原来两倍,输入值填充到新的每个2×2网格的左上角,其余三个填0。
代码实现
TensorFlow中没有反池化函数,以下是代码实现。
# 2x2反池化
def unpool(value, name='unpool'):
with tf.name_scope(name) as scope:
sh = value.get_shape().as_list()
dim = len(sh[1:-1])
out = (tf.reshape(value, [-1] + sh[-dim:]))
for i in range(dim, 0, -1):
out = tf.concat([out, tf.zeros_like(out)], i)
out_size = [-1] + [s * 2 for s in sh[1:-1]] + [sh[-1]]
out = tf.reshape(out, out_size)
return out