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
因此这个数字是相当随意的,他们只是凭经验测试它是否有效,但你可以在这里使用任意数量的单元,或任意数量的层。
我正在阅读 '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
因此这个数字是相当随意的,他们只是凭经验测试它是否有效,但你可以在这里使用任意数量的单元,或任意数量的层。