This is embarrassing, yet I seem to have difficulties to figure out how to perform a rather simple division operation in Torch. Here is what I attempt to do:
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>
This exact operation 1/a
in numpy is plain straighforward and works as expected, why is it have to be different in Torch?
Seems like it is not implemented in this way. If you didn't find out how to do it, try this:
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.