Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果指定输出数量,如何在CNN中计算输出维度_Python_Tensorflow_Machine Learning_Conv Neural Network - Fatal编程技术网

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

Python 如果指定输出数量,如何在CNN中计算输出维度,python,tensorflow,machine-learning,conv-neural-network,Python,Tensorflow,Machine Learning,Conv Neural Network,我很难弄清楚每个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

我很难弄清楚每个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矩阵输入CNN

如您所见,我使用了卷积2d转置,并将输出指定为64,步长为2,过滤器大小为5。这意味着我知道我的一个维度是64,但是我不知道其他两个维度是什么,我也不知道如何计算它

我试着用下面的公式,但它不适合我


如何计算剩余尺寸?

您编写的公式是用于卷积运算的,因为您需要计算转置卷积,其中形状与卷积成反比,因此可以通过将这些项重新排列,从上述方程推导公式:

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

W是实际输出,Out是转置卷积的实际输入

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
)