【问题标题】:How many neurons are going into each layer of VGG?有多少神经元进入 VGG 的每一层?
【发布时间】:2016-11-03 03:42:13
【问题描述】:

你能告诉我每一层有多少神经元吗?我觉得这会加深我对 VGG 中发生的事情的理解。

让我们在这里使用这段代码只是为了得到一些具体的东西。

https://github.com/machrisaa/tensorflow-vgg/blob/master/vgg19.py#L46

在这一行中,我看到输入了 224x224x3(图像)。在代码中的每一行之后(每行代表一个层),该图像的尺寸会发生什么变化?

谢谢。

【问题讨论】:

  • 请不要在不解释自己的情况下投反对票。投反对票也很容易。
  • 我只是不确定这真的是一个 tensorflow 问题。这听起来像是一个通用的机器学习问题,因此您想查看 VGG16 的原始论文。顺便说一句,我没有投反对票。
  • (这是机器学习和 TF 的边界。顺便说一句,SO 中不允许机器学习问题吗?如果不允许,并且如果您有管理员访问权限,请将此问题转移到交叉验证。但我我担心那些人会抱怨这是一个 SO 问题)

标签: tensorflow machine-learning conv-neural-network vgg-net


【解决方案1】:

您发布的调试信息是每个操作/层输出的尺寸。跟“神经元”的个数有关,但又不一样。

输出维度从何而来?

VGG-19 中只有两种类型的层(不包括 softmax 和全连接):

  • 卷积层:它们都使用步长为 1 且填充为 1 的 3x3 过滤器。这意味着输出体积将具有与输入体积相同的宽度和高度(深度等于过滤器的数量)。下面参考资料的幻灯片 44 具有在给定输入尺寸和卷积参数的情况下计算输出的公式。
  • 最大池层:它们都使用步幅为 2 的 2x2 窗口。这意味着输出体积将具有输入体积的一半宽度和一半高度。幻灯片 56。

神经元在哪里?

假设我们想将网络解释为一组神经元。神经元是每个具有一组权重的单元,用于收集其输入的加权和,然后进行非线性变换。

首先,全连接层中有神经元:4096 + 4096 + 1000 = 9192 个神经元。

第二,卷积层中有神经元。基本上,您可以将每个过滤器视为一个神经元(幻灯片 50 上有一个很好的说明)。

您可以在幻灯片 71 上轻松查找每一层的过滤器数量(例如 conv3-64 代表 64 个 3x3 过滤器)。对于 VGG-19,我们有 2*64 + 2*128 + 4*256 + 2*4*512 = 5504 个神经元。

综上所述,在实践中,通常人们会根据参数数量(即权重)和层数来衡量网络的大小。 VGG-19 有 1.44 亿个参数,非常大。作为比较,训练集有 130 万个示例。

参考:http://cs231n.stanford.edu/slides/winter1516_lecture7.pdf

【讨论】:

  • 我想我的意思是音量,感谢您纠正我对音量和神经元互换使用的混乱。快速提问:如果您有 64 个过滤器,每个过滤器都是 3x3,对图像 224x224x3 进行操作,您不应该将 224x224x(3*64) 作为输出体积吗?怎么变成224x224x64的?
  • 好问题。不,单个图像补丁上的每个过滤器应用程序都会产生单个数字/标量。请参阅幻灯片 16、17 和 41。同样重要的是要注意每个过滤器都与输入一样深。所以 VGG-19 第一层中的 3x3 过滤器实际上是 3x3x3(同样是幻灯片 17)。
【解决方案2】:

我找到了一种检测代码的方法,并得出了每一层的大小。这让我现在很清楚。如果您好奇,我使用了 tensorflow 中的交互式会话功能来完成这项工作。

conv1_1 [100、224、224、64]

conv1_2 [100、224、224、64]

池1 [100、112、112、64]

conv2_1 [100、112、112、128]

conv2_2 [100、112、112、128]

池2 [100、56、56、128]

conv3_1 [100、56、56、256]

conv3_2 [100、56、56、256]

conv3_3 [100、56、56、256]

conv3_4 [100、56、56、256]

池3 [100、28、28、256]

conv4_1 [100、28、28、512]

conv4_2 [100、28、28、512]

conv4_3 [100、28、28、512]

conv4_4 [100、28、28、512]

池4 [100、14、14、512]

conv5_1 [100、14、14、512]

conv5_2 [100、14、14、512]

conv5_3 [100、14、14、512]

conv5_4 [100、14、14、512]

池5 [100、7、7、512]

fc6 [100, 4096]

relu6 [100, 4096]

fc7 [100, 4096]

relu7 [100, 4096]

fc8 [100, 1000]

概率 [100, 1000]

【讨论】:

    猜你喜欢
    • 2019-02-15
    • 2022-12-11
    • 2017-03-27
    • 2017-05-21
    • 2023-02-17
    • 2020-01-10
    • 2020-12-06
    • 2016-09-02
    • 2019-09-09
    相关资源
    最近更新 更多