Pytorch中nn. 与nn.functional 的区别

nn. 中和 nn.functional中有很多名字相似功能一致的东西,那同样一个东西为什么要留两个使用方式呢?区别又是什么?
先上一篇我觉得写得非常清楚的博客,详细内容见下

https://blog.csdn.net/chanbo8205/article/details/114890006

简要概略:
nn.XXX均为一个类的实现,其均继承自一个祖父类nn.Module
而nn.functional为函数的实现
二者的运行效率等几乎一致,可以理解为这两个中一个是类的接口一个是函数的接口。
如果要谈论二者的区别,类的实现需要你提前传入参数实例化,并在之后的调用中传入数据。nn.functional则需要你同时传入weight 和 bias。另一方面,对于具有学习参数的命令而言(conv2d, linear),推荐使用nn.XXX的方法,而对于不需要学习参数的功能(maxpool)则推荐使用nn.functional中的接口。

你可能感兴趣的:(pytorch,python,pytorch)