【问题标题】:How do I calculate computational complexity of automatic differentiation?如何计算自动微分的计算复杂度?
【发布时间】:2019-06-05 02:06:33
【问题描述】:

我正在使用 Pytorch 中实现的自动网格来训练神经网络,我需要计算整个算法的计算复杂度。我在哪里可以找到 autograd 计算复杂度的完整计算?我在 Pytorch 文档中进行了搜索,但没有找到任何答案。 谢谢

【问题讨论】:

    标签: complexity-theory pytorch automatic-differentiation autograd


    【解决方案1】:

    这取决于您在这种情况下如何计算复杂性。每个forward 操作都与它各自的backward 操作配对(返回相对于网络最后一个节点的导数,通常是成本函数)。

    如果您将每个操作视为一个单元,那么向前和向后将是两个单元,基本上不会改变任何复杂性,否则它取决于神经网络的类型和其中的操作。

    【讨论】:

      【解决方案2】:

      试试这个https://github.com/Lyken17/pytorch-OpCounter。它计算 nn 的 macs(类似于复杂度)。 您可以在 hub 上看到一些指南,使用 profile 来测量 pytorch 中模型的 FLOP。

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
      猜你喜欢
      • 1970-01-01
      • 2013-04-30
      • 2017-11-04
      • 2012-12-31
      • 2019-03-11
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多