想问问torch.nn.sigmoid()和torch.nn.funcitonal.sigmoid()的区别

想问问torch.nn.Sigmoid()和torch.nn.funcitonal.sigmoid()的区别

a=nn.Sigmoid()
m=torch.rand(12)
a(m)

为什么这段代码不可以直接写成nn.Sigmoid(m)呢
代码的第一行代码啥意思?
感觉和类的使用有点不同?
求解答

nn.Sigmoid()返回的是一个对象,torch.nn.funcitonal.sigmoid()是一个函数。nn.Sigmoid对象在其源代码中也是调用torch.nn.funcitonal.sigmoid进行sigmoid操作的

m=nn.Sigmoid()
x=m(x) === torch.nn.funcitonal.sigmoid(x)

这篇文章讲的很详细,请看:torch.nn.NLLLoss()与torch.nn.CrossEntropyLoss()
同时,你还可以查看手册:pytorch sigmoid_() (torch.Tensor method) 中的内容