为什么我不能使用转置功能:?

时间:2017-07-29 16:29:02

标签: torch

我想在火炬/ lua中调换张量。
实际上我并没有完全理解“:”但它真的让我感到沮丧 我是卢阿和火炬的初学者。 只有这样才有效:

  

x:t()

我想这样做

  

x = torch.t(x)

当我这样做时,我看到错误

  

尝试调用字段't'(零值)

我试图在互联网上搜索解决方案,但我没有找到任何解决方案。

1 个答案:

答案 0 :(得分:0)

在Lua中,x:method(args)x.method(x, args)的语法糖。这是一种省略self参数的方法。

这就是说,转换2D张量x的最简单方法确实是x:t()。你也可以写x.t(x),但它更复杂。

最后torch没有方法transposet作为字段(与squeeze不同,例如,您可以同时执行torch.squeeze(x)x:squeeze() {1}}),我不知道这个选择的原因,但是写x:t()似乎并不太痛苦,而且它也是最接近数学符号的符号,我觉得这很方便。