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

我很难搞清楚每个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)# 层被重塑为4x4x256的映射。zCon = tf.reshape(zP,[-1,4,4,256])

其中z是我的原始向量。然后我将这个4x4x256的矩阵输入到CNN中…

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)

如你所见,我使用了二维转置卷积,并指定输出为64,步长为2,滤波器大小为5。这意味着我知道其中一个维度将是64,然而我不知道另外两个维度会是什么,也不知道如何计算它们。

我尝试使用以下公式,但对我来说行不通…

enter image description here

我该如何计算剩余的维度呢?


回答:

你写的公式是针对卷积操作的,由于你需要计算转置卷积的维度,而转置卷积的形状是卷积的逆操作,因此可以通过重新排列上述方程的项来推导出公式:

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注