当前位置: 首页 > 后端技术 > Python

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

时间:2023-03-26 10:58:48 Python

原文链接torch.nnpytorch中文文档链接:torch.nn定义在__init__()函数中,定义了一个类:torch.nn.functionalpytorch中文文档链接:__forward()__函数中定义了torch.nn.functional,定义了一个函数:两者的区别是torch.nn中定义了一个class,由classxx定义,可以提取变化的学习范围。torch.nn.functional是一个函数,由deffunction()定义,是一个固定的计算公式。在深度学习中,很多权重是不断更新的,所以我们需要使用类的方法来保证当参数发生变化时,我们仍然可以使用之前设置好的计算步骤。所以如果模型有可学习的参数,应该使用nn.Module,否则两者没有区别。但是简单的计算不需要新建类,所以使用nn.functional来定义函数。即:如果层中有变量,则使用nn来定义,否则使用nn.functional来定义。想了解更多编程知识,请关注我的公众号:代码之道