写点什么

PyTorch 中 torch.nn 与 torch.nn.functional 的区别

作者:代码的路
  • 2023-01-11
    江苏
  • 本文字数:351 字

    阅读完需:约 1 分钟

原文链接

torch.nn

pytorch 中文文档链接:torch.nn


__init__()函数里定义,定义的是一个类:

torch.nn.functional

pytorch 中文文档链接:torch.nn.functional


__forward()__函数里定义,定义的是一个函数:

两者的区别

torch.nn 中是一个定义的类,以 class xx 来定义的,可以提取变化的学习参数。


torch.nn.functional 是一个函数,由 def function( )定义,是一个固定的运算公式。


深度学习中会有很多权重是在不断更新的,所以需要采用类的方式,以确保能在参数发生变化时仍能使用我们之前定好的运算步骤。因此如果模型有可学习的参数,应该使用 nn.Module,否则两个没有区别。但是简单的计算不需要新建一个类来做,所以使用 nn.functional 定义函数就可以。


即:层内有variable的情况用nn定义,否则用nn.functional定义。


学习更多编程知识,请关注我的公众号:


代码的路



发布于: 刚刚阅读数: 3
用户头像

代码的路

关注

公众号:代码的路 2023-01-10 加入

Java、Python、C++、图像处理、深度学习相关知识分享

评论

发布
暂无评论
PyTorch中 torch.nn与torch.nn.functional的区别_Python_代码的路_InfoQ写作社区