2017-08-14 74 views
0
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文档任何满意的答案。此输出尺寸如何影响预测结果。 在此先感谢。输出在tensorflow

回答

0

像1024这样的数字通常有些经验性,取决于数据和目标。

一般来说,我认为这个问题有太多的影响来回答简洁。我将在这个问题的有限和假定的背景下回答:卷积网络。你描述的网络类型通常隐藏层的节点数多于目标数量的类(这是一个分类器,对吧?)。

在你的情况下,最后一个隐藏层有1024个节点,超过10个输出类。这是必要的数字吗?这取决于你的数据量,多样性等。没有背景和目标,这个数字没有多大意义。

至少我们通常可以有信心:数字高于输出类别。这样做,网络能够存储“大量”特征来描述类。输出层然后将这些许多特征作为输入,并计算组合到期望数量的类。

+0

感谢这个信息共享 –

+0

其实当我改变的分类changes.Some倍这个数字结果,当我增加这个数字,我得到更多的效率可能会not.So我不明白尤其应该使用的价值。 –

+0

更改号码将影响您的结果。多次运行---请记住所涉及的随机过程。想象一下,你有一个悬垂,并希望把它铺在你的沙发上。您希望窗帘尽可能地跟随您的沙发形状,只需将它铺在沙发上并让它覆盖即可。你可以得到很好的结果,但会出现颠簸和褶皱。 ML有点类似,这就是为什么像拟合和过度拟合这样的术语。很多尝试和失败,以您的经验和独创性为指导。除此之外,请查阅Hinton提供的关于如何选择NN层的在线建议。 –

1

在这种情况下,1024是完全连接/隐藏层的尺寸。 wd1拥有超过1024的扇子,然后回到10个输出类。因此,正如在深度学习中经常发生的那样,1024不是计算的结果,而是超参数。