【发布时间】:2017-05-27 13:33:52
【问题描述】:
我刚开始使用 Tensorflow 进行编程,虽然我已经对一般的神经网络概念非常熟悉(这很奇怪,我知道,怪我的大学)。我一直在尝试更改this CNN example 的实现以使我自己的设计能够工作。我的问题是关于权重初始化:
weights = {
# 5x5 conv, 1 input, 32 outputs (i.e. 32 filters)
'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]))
}
如果第二层有 32 个输入和 64 个输出,这是否意味着它只应用了 2 个过滤器? (似乎很少?)这是否意味着,要实现 5 个连续的 3x3 卷积层,我应该继续将之前的输出数量乘以该层中的过滤器数量,如下所示:
weights = {
'wc1': tf.Variable(tf.random_normal([3, 3, 1, 20])),
'wc2': tf.Variable(tf.random_normal([3, 3, 20, 41])),
'wc3': tf.Variable(tf.random_normal([3, 3, 20*41, 41])),
'wc4': tf.Variable(tf.random_normal([3, 3, 20*41*41, 62])),
'wc5': tf.Variable(tf.random_normal([3, 3, 20*41*41*62, 83])),
'out': tf.Variable(tf.random_normal([3, 3, 20*41*41*62*83, n_classes]))
}
感觉好像我做错了什么。
【问题讨论】:
标签: tensorflow conv-neural-network