在Tensorflow示例“Deep MNIST for Experts”中 https://www.tensorflow.org/get_started/mnist/pros
我不清楚如何确定激活函数权重中的特征数量。
例如:
我们现在可以实现第一层。它将包括卷积,然后是最大池化。卷积将为每个5×5的patch计算32个特征。
W_conv1 = weight_variable([5, 5, 1, 32])
为什么这里选择32?
为了构建一个深度网络,我们堆叠了几层这种类型。第二层将为每个5×5的patch计算64个特征。
W_conv2 = weight_variable([5, 5, 32, 64])
同样,为什么选择64?
现在图像大小已缩减至7×7,我们添加了一个具有1024个神经元的全连接层,以便在整个图像上进行处理。
W_fc1 = weight_variable([7 * 7 * 64, 1024])
为什么这里是1024?
谢谢
回答:
32和64分别是各层中的滤波器数量。1024是全连接层中的输出神经元数量。你的问题基本上是关于选择这些超参数的原因。
这些特定选择背后没有数学或编程上的原因。这些是在实验后选择的,因为它们在MNIST数据集上提供了良好的准确性。你可以更改这些数字,这是修改模型的一种方式。不幸的是,你无法在TensorFlow或任何其他文献来源中探索选择这些参数的原因。