【发布时间】:2019-06-05 02:06:33
【问题描述】:
我正在使用 Pytorch 中实现的自动网格来训练神经网络,我需要计算整个算法的计算复杂度。我在哪里可以找到 autograd 计算复杂度的完整计算?我在 Pytorch 文档中进行了搜索,但没有找到任何答案。 谢谢
【问题讨论】:
标签: complexity-theory pytorch automatic-differentiation autograd
我正在使用 Pytorch 中实现的自动网格来训练神经网络,我需要计算整个算法的计算复杂度。我在哪里可以找到 autograd 计算复杂度的完整计算?我在 Pytorch 文档中进行了搜索,但没有找到任何答案。 谢谢
【问题讨论】:
标签: complexity-theory pytorch automatic-differentiation autograd
这取决于您在这种情况下如何计算复杂性。每个forward 操作都与它各自的backward 操作配对(返回相对于网络最后一个节点的导数,通常是成本函数)。
如果您将每个操作视为一个单元,那么向前和向后将是两个单元,基本上不会改变任何复杂性,否则它取决于神经网络的类型和其中的操作。
【讨论】:
试试这个https://github.com/Lyken17/pytorch-OpCounter。它计算 nn 的 macs(类似于复杂度)。 您可以在 hub 上看到一些指南,使用 profile 来测量 pytorch 中模型的 FLOP。
【讨论】: