卷积-反卷积,同时保持原始图像大小

问题描述 投票:0回答:1

我正在尝试在张量流中实现 pspnet。 它需要一个池模块来接收输入以及几个内核大小:

对每个内核的输入进行平均池化

AveragePooling2D

进行 1x1 卷积,之后使用

UpSampling2D

最后所有不同的转换-解转换输出都连接在一起并前馈

def pyramid_pooling_module(x, pool_sizes):
    pool_outputs = []
    for pool_size in pool_sizes:
        pooled= layers.AveragePooling2D(pool_size)(x)
        pooled= layers.Conv2D(512, (1,1), padding='same')(pooled)
        pooled= layers.UpSampling2D(size=pool_size, interpolation='bilinear')(pooled)
        print(pool_size)
        pool_outputs.append(pooled)
    return layers.Concatenate()(pool_outputs)

输入的维度为 68, 120 因此,使用的内核(1x1、2x2、3x3、6x6)会因 3x3、6x6 的平均池层而产生舍入误差

这些层的最终池化输出为 (66, 120)

我不知道如何解决这个问题,是否应该将我的输入大小调整为可以被 6x6 整除的大小?还有别的办法吗?

python tensorflow image-segmentation
1个回答
0
投票

AveragePooling2D 的输出尺寸可能与输入尺寸不同,因为填充的默认值为“有效”。也许设置 padding='same' 可以解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.