我想在火炬/ lua中调换张量。
实际上我并没有完全理解“:”但它真的让我感到沮丧
我是卢阿和火炬的初学者。
只有这样才有效:
x:t()
我想这样做
x = torch.t(x)
当我这样做时,我看到错误
尝试调用字段't'(零值)
我试图在互联网上搜索解决方案,但我没有找到任何解决方案。
答案 0 :(得分:0)
在Lua中,x:method(args)
是x.method(x, args)
的语法糖。这是一种省略self
参数的方法。
这就是说,转换2D张量x
的最简单方法确实是x:t()
。你也可以写x.t(x)
,但它更复杂。
最后torch
没有方法transpose
或t
作为字段(与squeeze
不同,例如,您可以同时执行torch.squeeze(x)
和x:squeeze()
{1}}),我不知道这个选择的原因,但是写x:t()
似乎并不太痛苦,而且它也是最接近数学符号的符号,我觉得这很方便。