weights = {
# 5x5 conv, 1 input, 32 outputs
'wc1': tf.Variable(tf.random_normal([5, 5, 1, 32])),
`# 5x5 conv, 32 inputs, 64 outputs`
'wc2': tf.Variable(tf.random_normal([5, 5, 32, 64])),
# fully connected, 7*7*64 inputs, 1024 outputs
'wd1': tf.Variable(tf.random_normal([7*7*64, 1024])),
# 1024 inputs, 10 outputs (class prediction)
'out': tf.Variable(tf.random_normal([1024, n_classes]))
}在这段代码中,来自全连接层的输出是1024,但我不能理解从哪个计算中生成了这个'1024‘,我也无法从tensorflow documentation.And中找到这个输出大小如何影响预测结果的任何令人满意的答案。提前谢谢。
发布于 2017-08-15 08:44:14
1024这样的数字通常是经验的,这取决于数据和目标。
总体而言,我认为这个问题有太多的后果,无法简明扼要地回答。我将在问题的受限和假设上下文中回答:卷积网络。您所描述的这种网络通常具有比目标类数量更多的节点的隐藏层(这是一个分类器,对吗?)。
在您的示例中,最后一个隐藏层有1024个节点,比10个输出类还多。这是必要的数字吗?这取决于你的数据量、多样性等。如果没有上下文和目标,这个数字没有多大意义。
至少我们通常可以确信:数字高于输出类。这样,网络就能够存储“大量”特征来描述类。然后,输出层将这些特征作为输入,并将组合计算到期望的类数。
发布于 2017-08-15 01:54:45
在这种情况下,1024是完全连接/隐藏层的维度。wd1的输出为1024,然后返回到10个输出类。因此,正如深度学习中经常发生的那样,1024不是计算的结果,而是一个超参数。
https://stackoverflow.com/questions/45679562
复制相似问题