【问题标题】:Does inference time depend on number of parameter? [closed]推理时间是否取决于参数的数量? [关闭]
【发布时间】:2017-09-15 08:09:19
【问题描述】:

我有两个网络。一个有以下:

总参数:2,246,550
可训练参数:2,246,550
不可训练参数:0

第二个网络总共有大约 333,013 个可训练参数

但在推理时间的情况下,第二个网络需要 0.12 秒 和第一个网络平均分别花费 0.08 秒。

造成这种差异的原因是什么?

【问题讨论】:

    标签: machine-learning neural-network deep-learning caffe


    【解决方案1】:

    你不一定能说出来。假设 0.4M 参数网络主要由卷积层组成,而 2M 参数网络由全连接层组成。然后第一个将需要更长的前传。所以它取决于很多东西,包括深度、参数、操作次数等。通常你可以说它取决于乘法的次数。

    【讨论】:

    • 参数表示可学习参数。例如 resnet 和 vgg 网络
    • @KimHee 我的意思也是可学习的参数。你的观点是什么?
    • 是的,在论文 arxiv.org/abs/1608.06993 的图 3 中,该方案显示的参数较少。你猜哪个更快?
    • @KimHee 该论文已经说过 DenseNet 需要比 ResNet 更少的参数和触发器来获得相似的性能。
    • 是的,这就是我的观点。那么,如果我们有一个参数和触发器更少的网络,我们是否可以得出结论,它在推理阶段花费的计算时间更少?
    【解决方案2】:

    虽然参数的数量确实会影响网络的测试时间,但它并不是唯一的因素。您还应该考虑应用学习过滤器/权重的数据/特征的大小。

    例如,考虑两个简单的卷积网络:
    - net A 有一个 7x7 过滤器
    - net B 有一个 3x3 过滤器

    很明显,net A 有 49 个参数,而 net B 只有 9 个。
    但是,net A 的输入是 150x150 图像,而 net B 的输入是 1500x1500 图像。
    显然,在这些设置下,netB 将花费更长的时间来处理输入。

    在许多情况下,深度网络将卷积层与全连接层混合在一起,这使得比较“相同大小的输入”的失败次数变得困难/不可能。

    顺便说一句,caffe 向compute the number of FLOPS required for a net 添加功能仍然是一个悬而未决的问题。

    【讨论】:

    • 感谢 shai,但为了公平比较,我们需要考虑相同的输入维度。这里的参数只是可学习的参数
    • 你不能总是做出“公平”的比较。例如,ResNets 通常具有相对较少的参数,但非常深,因此输入/特征大小非常大。另一方面,VGG 网络具有巨大的完全连接层,具有大量参数,但输入/特征大小相对较小。因此,您不能仅从参数数量得出 FLOPS。
    • 好的,我找到了一篇关于 arxiv.org/abs/1608.06993 的论文。在图 3。该方案显示的参数较少。你猜哪个更快?
    【解决方案3】:

    当然更大(更复杂的网络)将需要更多时间来评估输入,因为推理需要将输入传播到所有网络才能到达最后一层(输出)。所以它与参数的数量成正比是正常的,即与深度、每层的神经元数量和每两层之间的连接类型相关。

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      相关资源
      最近更新 更多