代码之家  ›  专栏  ›  技术社区  ›  buydadip

如果指定输出数量,如何在CNN中计算输出维度

  •  0
  • buydadip  · 技术社区  · 6 年前

    我很难弄清楚每一个的尺寸是多少 CNN 图层为。

    假设我的输入是一个向量,然后我把它投影到 4x4x256 矩阵使用一个完全连接的层,所以。。。

    zP = slim.fully_connected(
        z,
        4*4*256,
        normalizer_fn=slim.batch_norm,
        activation_fn=tf.nn.relu,
        scope='g_project',
        weights_initializer=initializer
    )
    
    # Layer is reshaped to a 4x4x256 mapping.
    zCon = tf.reshape(zP,[-1,4,4,256])
    

    z 是我的原始向量。我就拿这个 4x4x256个 矩阵并将其送入 有线电视新闻网 ...

    gen1 = slim.convolution2d_transpose(
        zCon,
        num_outputs=64,
        kernel_size=[5,5],
        stride=[2,2],
        padding="SAME",
        normalizer_fn=slim.batch_norm,
        activation_fn=tf.nn.relu,
        scope='g_conv1', 
        weights_initializer=initializer
    )
    

    ,迈着一大步 2 过滤器大小为 . 这意味着我知道我的一个维度将是 64 ,但是我不知道其他两个维度是什么,也不知道如何计算。

    enter image description here

    如何计算剩余尺寸?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Vijay Mariappan    6 年前

    你写的公式是用于卷积运算的,因为你需要计算 transposed convolution

    W = (Out-1)*S + F - 2P

    W 是你的实际产出和 Out transpose convolution .