【问题标题】:How to upsample one layer to any size in keras?如何在keras中将一层上采样到任何大小?
【发布时间】:2017-11-16 01:48:06
【问题描述】:

我想将一个大小为 (w,h,channels) 的层上采样到 (w',h',channels) 的大小,但是 Upsample2D 层只能上采样到两倍大小。

谁能告诉我如何进行任何尺寸的上采样?

【问题讨论】:

    标签: deep-learning keras caffe


    【解决方案1】:

    Keras UpSample2D 可以上采样到不同的尺寸,而不仅仅是双倍尺寸。从 Keras docs 我们可以看到这是针对此类层的:

    keras.layers.UpSampling2D(size=(2, 2), data_format=None)

    2D 输入的上采样层。

    分别按 size[0] 和 size[1] 重复数据的行和列。

    默认的size 值确实是(2,2),所以在这种情况下,您的上采样将加倍。通过指定您想要的尺寸,您可以根据需要设法上采样到不同的尺寸。所以,如果你想要一个上采样因子,比如 3,那么你应该使用 size=(3,3) 等。

    作为替代方案,您也可以define your own custom layers,如果您想要一些真正针对您的案例的东西。例如,here 是一个关于创建自定义池功能的 Github issue(与上采样层相反,因此很容易比较),如果您需要这样的自定义层,它可以帮助您。

    【讨论】:

    • 感谢您的回复。我没有澄清我的问题。我只想上采样到五次。所以我会尝试你的建议来定义自定义层。
    • @spider 如果您想上采样五次(即每行和每列获得五次),请尝试使用size=(5,5)。很高兴它有帮助:)
    • 我只想在两个上采样层之后上采样到 5 倍,所以我在一个上采样层之后上采样到 2 倍,并在连续的另一层上采样到 2.5 倍。我定义了一个自定义上采样层,它可以根据您的建议上采样到浮点数。谢谢!
    • @spider sweet,我想请注意可能导致上采样不稳定的舍入错误。我曾经遇到过上采样问题,因为我使用素数作为图像输入,所以我最终得到了比预期更多的行和列,确保你的输入和样本大小不会给你这个问题。干杯。
    猜你喜欢
    • 1970-01-01
    • 2021-07-11
    • 2019-07-29
    • 2017-10-16
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多