CNN:了解权重输出通道参数

问题描述 投票:1回答:2
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, num_classes]))
}

我的问题是:如何计算特征/通道输出的数量,在这种情况下,第一层是32,第二层是64,第三层是1024?如果我在CNN中添加多于或少于32,64,1024的数字会产生什么影响?

machine-learning tensorflow deep-learning conv-neural-network convolution
2个回答
0
投票

CNN模型的限制如下:

  • 7x7由输入图像大小决定。在这种情况下,它是在2次下采样(池化)操作之后的28x28
  • conv层中的特征(3264)的数量可以是任意的,但它必须对应于下一层的深度值。所以,如果你在32中将48更改为wc1,你还必须在32中将48更改为wc2
  • 关于FC层的大小相同:1024中的wd1必须与1024中的out相对应。

除此之外,您可以设置任何值,但它可能会也可能不会提高网络性能。通常,研究将它们设置得尽可能大,以便模型仍然适合GPU内存,因为更大的模型往往更好地学习。同样有意义的是从早期层向下进一步增加尺寸,以捕获学习特征的复杂性,即第二层中的变化大于第一层中的变化。


0
投票

作为过滤器的数量,例如32,64,128,1024是设计决策,模型设计者决定使用的过滤器数量。在这种情况下,你。通常使用2的幂2 ^ 5 = 32,2 ^ 6 = 64等。除了影响模型将具有的参数数量之外,不同数量的滤波器显然会对计算所需的操作数量产生影响。学习。

例如尺寸为5x5x1(高x宽x通道)的10个滤波器将具有(5 x 5 x 1 + 1)x 10 = 110参数进行训练。请注意,+ 1表示偏差项。

我建议阅读下面的内容,特别是关于ConvNet架构的部分。 http://cs231n.github.io/convolutional-networks/#architectures

对于卷积算术,我发现了“深度学习的卷积算法指南”资源丰富:https://arxiv.org/abs/1603.07285

© www.soinside.com 2019 - 2024. All rights reserved.