为什么我不能在没有 : 的情况下使用转置函数?
why can not i use the transpose function without :?
我想转置 torch/lua 中的张量。
实际上我并没有完全理解“:”的意思,但它真的让我很沮丧
我是 lua 和火炬的初学者。
只有这个有效:
x:t()
我想做这个
x = torch.t(x)
当我这样做时,我看到错误
attempt to call field 't' (a nil value)
我试图在互联网上搜索解决方案,但没有找到。
在Lua中,x:method(args)
是x.method(x, args)
的语法糖。这是一种省略 self
参数的方法。
也就是说,转置二维张量 x
的最简单方法确实是 x:t()
。也可以写成x.t(x)
,但是比较复杂。
最后 torch
没有方法 transpose
或 t
作为字段(不像 squeeze
例如你可以同时做这两个 torch.squeeze(x)
和x:squeeze()
),我不知道为什么会这样选择,但是写成x:t()
似乎不会太痛苦,也是我发现最接近数学符号的符号方便。
我想转置 torch/lua 中的张量。
实际上我并没有完全理解“:”的意思,但它真的让我很沮丧
我是 lua 和火炬的初学者。
只有这个有效:
x:t()
我想做这个
x = torch.t(x)
当我这样做时,我看到错误
attempt to call field 't' (a nil value)
我试图在互联网上搜索解决方案,但没有找到。
在Lua中,x:method(args)
是x.method(x, args)
的语法糖。这是一种省略 self
参数的方法。
也就是说,转置二维张量 x
的最简单方法确实是 x:t()
。也可以写成x.t(x)
,但是比较复杂。
最后 torch
没有方法 transpose
或 t
作为字段(不像 squeeze
例如你可以同时做这两个 torch.squeeze(x)
和x:squeeze()
),我不知道为什么会这样选择,但是写成x:t()
似乎不会太痛苦,也是我发现最接近数学符号的符号方便。