TensorFlow 卷积神经网络教程

我在学习TensorFlow的’Expert MINST’教程(https://www.tensorflow.org/versions/r0.8/tutorials/mnist/pros/index.html),但在这一部分卡住了:

全连接层

现在图像尺寸已经缩小到7×7,我们添加了一个包含1024个神经元的全连接层,以便对整个图像进行处理。我们将池化层的张量重塑为一批向量,乘以一个权重矩阵,加上偏置,并应用ReLU函数。

为什么是1024这个数字?它从哪里来的?

我对全连接层的理解是,它必须以某种方式恢复到原始图像尺寸(然后我们开始将数据输入到我们的softmax方程中)。在这种情况下,原始图像尺寸是高度 x 宽度 x 通道 = 28*28*1 = 784…而不是1024。

我在这里错过了什么?


回答:

1024只是一个任意的隐藏单元数量。此时,网络的输入已经减少到64个平面,每个平面尺寸为7×7像素。他们并不是试图“恢复到原始图像尺寸”,他们只是声称,他们想要一个能够提取全局特征的层,因此他们希望它与来自最后一个池化层的每个神经元密集连接(这些神经元代表你的输入空间),而之前的操作(卷积和池化)是局部特征

因此,为了以多层感知器(MLP)的方式处理这些数据,你需要7*7*64=3136个神经元。他们在上面又加了一层1024个神经元,所以如果你画出你的网络,它会是这样的

 输入 - 卷积 - 池化 - .... - 卷积 - 池化 - 隐藏 - 输出28 x 28-               ....         7*7*64   1024      10                                    =3136

因此,这个数字是相当任意的,他们只是通过经验测试发现它有效,但你可以在这里使用任何数量的单元,或者任何数量的层。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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