Tensorflow MNIST使用卷积参数

时间:2017-01-31 20:15:14

标签: machine-learning tensorflow

我不明白为什么在official documentation他使用大小为32的bias_variable,因为我知道偏差num等于图层中神经元的数量,在这种情况下,第一层中神经元的数量是相等的到28,因为图像像素= 28并且他使用padding = "SAME",为什么它等于32而不是28?

2 个答案:

答案 0 :(得分:1)

请记住,mnist正在使用卷积网络,而不是传统的神经网络,因此,您正在处理卷积(而非神经元),在此示例中,在卷积中,您通常对每个输出通道使用偏差,此示例使用32第一个卷积层中的输出通道,可以产生32个偏差。

答案 1 :(得分:0)

他们使用大小为32的偏差来与权重兼容:

W_conv1 = weight_variable([5, 5, 1, 32])
b_conv1 = bias_variable([32])

他们在conv2d函数tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')中使用权重。

tf.nn.conv2d()告诉第二个参数代表您的过滤器,由[filter_height, filter_width, in_channels, out_channels]组成。所以[5, 5, 1, 32]表示你的in_channels为1:你有一个灰度图像,所以这里没什么意外。

32意味着在我们的学习阶段,网络将尝试学习将在预测期间使用的32个不同的内核。您可以将此号码更改为任何其他号码,因为它是您可以调整的超参数。