TensorFlow 卷积神经网络教程

TensorFlow Convolutional Neural Network tutorial

我正在阅读 'Expert MINST' tf 教程 (https://www.tensorflow.org/versions/r0.8/tutorials/mnist/pros/index.html),但我卡在了这部分:

Densely Connected Layer

Now that the image size has been reduced to 7x7, we add a fully-connected layer with 1024 neurons to allow processing on the entire image. We reshape the tensor from the pooling layer into a batch of vectors, multiply by a weight matrix, add a bias, and apply a ReLU.

为什么是数字 1024?那是从哪里来的?

我对全连接层的理解是它必须以某种方式恢复到原始图像大小(然后我们开始将其插入 softmax 方程)。在这种情况下,原始图像大小为高 x 宽 x 通道 = 28*28*1 = 784... 而不是 1024.

我在这里错过了什么?

1024 只是任意数量的 隐藏单元 。此时,网络输入减少到 64 个平面,每个平面大小为 7x7 像素。他们没有尝试 "get back to the original image size",他们只是声称,他们想要一个可以提取 全局特征 的层,因此他们希望它密集地连接到最后一个神经元池化层(代表你的输入space),而之前的操作(卷积和池化)是局部特征

因此,为了以 MLP 方式处理此问题,您需要 7*7*64=3136 个神经元。他们在上面添加了另一层 1024,所以如果你画你的网络,它会是

行中的东西
 INPUT - CONV - POOL - .... - CONV - POOL - HIDDEN - OUTPUT

28 x 28-               ....         7*7*64   1024      10
                                    =3136

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