PyTorch 中的未知 Python 语法:一个实例可以直接接收一个参数
Unknown Python syntax in PyTorch: a instance can directly receive a parameter
我在学习 PyTorch 时对 Python 语法有疑问。以下代码是 PyTorch 文档中的示例。
m = nn.Linear(20, 30)
input = autograd.Variable(torch.randn(128, 20))
output = m(input)
print(output.size())
第一行是创建一个实例m
,但是为什么这个实例m
可以像第3行那样直接接收一个参数呢?我认为它应该使用方法来处理像 m.method(input)
.
这样的参数
在 python 中,任何对象都可以定义一个 __call__
方法,允许它像您的示例中那样用作函数。
参考:https://docs.python.org/2/reference/datamodel.html#object.call
我在学习 PyTorch 时对 Python 语法有疑问。以下代码是 PyTorch 文档中的示例。
m = nn.Linear(20, 30)
input = autograd.Variable(torch.randn(128, 20))
output = m(input)
print(output.size())
第一行是创建一个实例m
,但是为什么这个实例m
可以像第3行那样直接接收一个参数呢?我认为它应该使用方法来处理像 m.method(input)
.
在 python 中,任何对象都可以定义一个 __call__
方法,允许它像您的示例中那样用作函数。
参考:https://docs.python.org/2/reference/datamodel.html#object.call