torch.sigmoid、torch.nn.Sigmoid和torch.nn.functional.sigmoid的区别
review代码的时候发现我使用的是torch.sigmoid,pycharm标黄cannot find reference 'sigmoid' in '__init__.py'
于是产生了这样的疑问,这三者的区别是啥。
0x00. 官网解释
-
torch.sigmoid
我们可以看到,这是一个方法,拥有Parametrs和Returns。 - torch.nn.Sigmoid
可以看到官网文档在左上角标注着显眼的CLASS,同时根据Examples我们可以得出结论,torch.nn.Sigmoid在我们的神经网络中使用时,我们应该将其看作是网络的一层,而不是简单的函数使用。
-
torch.nn.functional.sigmoid
事实上,torch.nn.functional从这个包名就能看出来,这个包里的都是函数。同样的,按照官网的文档的内容,我们也可以判断出torch.nn.funtional.sigmoid是一个方法,可以直接在我们的神经网络的forward中使用,并不需要在init的时候初始化。也就是说torch.nn.functional.sigmoid和torch.sigmoid没有什么区别,同理,本文对于其他的**函数一样适用。