如何用pytorch计算layers或者modles的macs和parameters

860 次浏览0个评论2021年09月10日

举个例子

class model(nn.Module)
    def __init__()
        self.l1 = nn.linear(10,10)
        self.l2 = nn.linear(10,10)
    def forward(x)
        y1 = self.l1(x)
        y2 = self.l2(x)
        y3 = y1 + y2
        return y2 + y2 + y3*y1

在这个例子中,我可以用forward_hook functions去跟中不同的layers和他们的变量,比如linear1和linear2.fn是钩子函数,钩在每一个子模块中。

m.register_forward_hook(fn)

但, y3 并没有纳入parameter中,因为是不在nn.module中的变量而是forwad中自己定义的变量。 而且 y2 + y2 + y3*y1 的计算也没有被统计.\ 请问如何解决?\ macs是一种统计网络复杂度的方式. For example, y1 *(y2 + y3) is one macs, if y1, y2, y3 are floats.

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文

    当前暂无更多相关好文推荐...

    公告提示

    Pytorch是Facebook的AI研究团队发布了一个Python工具包,是Python优先的深度学习框架。作为numpy的替代品;使用强大的GPU能力,提供最大的灵活性和速度,实现了机器学习框架Torch在Python语言环境的执行,基于python且具备强大GPU加速的张量和动态神经网络。