为什么尝试“1 / torch.Tensor”会触发错误?
Why attempting "1 / torch.Tensor" triggers an error?
这很尴尬,但我似乎很难弄清楚如何在 Torch 中执行相当简单的除法运算。
这是我尝试做的事情:
th> a
0.5058 0.2460 0.9038 0.6348
0.6324 0.3435 0.2530 0.9692
0.1531 0.1178 0.5588 0.5323
[torch.DoubleTensor of size 3x4]
[0.0004s]
th> 1/a
bad argument #1 to '?' (torch.DoubleTensor expected, got boolean)
stack traceback:
[C]: at 0x7ff5e513e9d0
[C]: in function '__div'
[string "_RESULT={1/a}"]:1: in main chunk
[C]: in function 'xpcall'
/home/tasty/torch/install/share/lua/5.1/trepl/init.lua:651: in function 'repl'
...asty/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:199: in main chunk
[C]: at 0x00406670
[0.0002s]
th>
numpy 中的这个确切操作 1/a
非常简单明了并且按预期工作,为什么它在 Torch[=20 中必须不同=]?
好像不是这样实现的。
如果您不知道如何操作,请试试这个:
x = torch.Tensor(2, 2):fill(2)
z = torch.div(x, 2) --will return a new Tensor with the result of x / 2.
torch.div(z, x, 2) --will put the result of x / 2 in z.
x:div(2) --will divide all elements of x with 2 in-place.
z:div(x, 2) --puts the result of x / 2 in z.
Torch 已经有 methods 了。
local z= torch.cinv(x) -- to make a copy
x:cinv() -- for an in place element wise inverse
这很尴尬,但我似乎很难弄清楚如何在 Torch 中执行相当简单的除法运算。 这是我尝试做的事情:
th> a
0.5058 0.2460 0.9038 0.6348
0.6324 0.3435 0.2530 0.9692
0.1531 0.1178 0.5588 0.5323
[torch.DoubleTensor of size 3x4]
[0.0004s]
th> 1/a
bad argument #1 to '?' (torch.DoubleTensor expected, got boolean)
stack traceback:
[C]: at 0x7ff5e513e9d0
[C]: in function '__div'
[string "_RESULT={1/a}"]:1: in main chunk
[C]: in function 'xpcall'
/home/tasty/torch/install/share/lua/5.1/trepl/init.lua:651: in function 'repl'
...asty/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:199: in main chunk
[C]: at 0x00406670
[0.0002s]
th>
numpy 中的这个确切操作 1/a
非常简单明了并且按预期工作,为什么它在 Torch[=20 中必须不同=]?
好像不是这样实现的。 如果您不知道如何操作,请试试这个:
x = torch.Tensor(2, 2):fill(2)
z = torch.div(x, 2) --will return a new Tensor with the result of x / 2.
torch.div(z, x, 2) --will put the result of x / 2 in z.
x:div(2) --will divide all elements of x with 2 in-place.
z:div(x, 2) --puts the result of x / 2 in z.
Torch 已经有 methods 了。
local z= torch.cinv(x) -- to make a copy
x:cinv() -- for an in place element wise inverse