【发布时间】:2017-07-30 02:25:38
【问题描述】:
我想在 torch/lua 中转置一个张量。
实际上我并没有完全理解“:”的想法,但这真的让我很沮丧
我是lua和torch的初学者。
只有这样才有效:
x:t()
我想做这个
x = 火炬.t(x)
当我这样做时,我看到了错误
尝试调用字段“t”(零值)
我试图在互联网上搜索解决方案,但没有找到。
【问题讨论】:
标签: torch
我想在 torch/lua 中转置一个张量。
实际上我并没有完全理解“:”的想法,但这真的让我很沮丧
我是lua和torch的初学者。
只有这样才有效:
x:t()
我想做这个
x = 火炬.t(x)
当我这样做时,我看到了错误
尝试调用字段“t”(零值)
我试图在互联网上搜索解决方案,但没有找到。
【问题讨论】:
标签: torch
在 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()似乎并没有太痛苦,而且它也是最接近数学符号的符号,我觉得很方便。
【讨论】: