【问题标题】:Conv2dTranspose specify output shapeConv2dTranspose 指定输出形状
【发布时间】:2020-04-14 11:36:36
【问题描述】:

我正在尝试构建一个类似网络的自动编码器,但我不知道如何指定网络的输出形状。我有一个大小为mxn 的输入和一对大小为pxq 的预期输出。我见过

Calculate the Output size in Convolution layer

Getting the output shape of deconvolution layer using tf.nn.conv2d_transpose in tensorflow

但是有没有办法强制输出形状而不必为每个输入形状计算一堆数学?

【问题讨论】:

    标签: keras autoencoder


    【解决方案1】:

    我真的不认为有办法做到这一点(很难,否则我会很乐意学习),因为任何类型的卷积层的输出形状都是数学运算(卷积)的结果参数。因此,根据输入张量和参数(步幅、内核大小等),生成的形状必须是可能的形状之一。

    这与密集(全连接层)形成对比,在密集层中,您可以得到任何想要的形状,只要它是一个数字(4、60 或 5000 - 但不是 (60,60))。

    在这种情况下有时可以帮助您的一个小技巧是获取上一层的形状并将其打印出来,以便您知道下一层需要哪些参数并确保您的计算正确:

    import keras.backend as K 
    x = Conv2D()(x) # or any other layer
    shape = K.int_shape(x)
    print(shape)
    x = Conv2D()(x) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 2019-07-04
      • 2020-10-18
      • 1970-01-01
      相关资源
      最近更新 更多