我不明白为什么在official documentation他使用大小为32的bias_variable,因为我知道偏差num等于图层中神经元的数量,在这种情况下,第一层中神经元的数量是相等的到28,因为图像像素= 28并且他使用padding = "SAME"
,为什么它等于32而不是28?
答案 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个不同的内核。您可以将此号码更改为任何其他号码,因为它是您可以调整的超参数。