您的位置:首页 > 其它

torch中cmul()函数的用法总结

2015-11-09 19:03 330 查看
cmul计算的是两个张量tensor1与tensor2之间的element-wise-multiplication (数组元素依次相乘或者元素对应相乘)。

值得注意的是:两个张量之间的元素个数必须相等,它们大小不一定要相同。

说明:当tensor1与tensor2之间的维数满足可以矩阵相乘时,就还原为矩阵乘法;当二者之间的维数不满足普通矩阵乘法时,按照行优先的顺序依次将二者对应位置的数字相乘,存放在新的张量中。

cmul()的应用主要有以下四种形式:

1、y:cmul(x) —-将y中所有的元素分别与x中对应位置的元素相乘,得到新的张量维数和y一致;

2、torch.cmul(z,x,y) – –将x和y相乘的结果存放在z中,z的维数和x一致;

3、z=torch.cmul(x,y) – –相当于矩阵相乘,结果存放在新的张量z中,z的维数和x一致;

4、z:cmul(x,y) – –与2类似,将结果存放在z中,z的维数和x一致。

实例

x = torch.rand(2,3)  print('x:')  print(x)
y = torch.rand(3,2)  print('y:')  print(y)
y:cmul(x)            print('y:')  print(y)
z1 = x:cmul(y)       print('z1:') print(z1)
torch.cmul(z2,x,y)   print('z2:') print(z2)
z3 = torch.cmul(x,y) print('z3:') print(z3)
z4 = torch.cmul(y,x) print('z4:') print(z4)
z5 = torch.rand(x:size())
z5:cmul(x,y)         print('z5:') print(z5)


结果如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%

x:

0.8708 0.2033 0.9649

0.3312 0.5697 0.4939

[torch.DoubleTensor of size 2x3]

y:

0.0082 0.4973

0.6427 0.0190

0.1723 0.5376

[torch.DoubleTensor of size 3x2]

y:

0.0071 0.1011

0.6201 0.0063

0.0981 0.2655

[torch.DoubleTensor of size 3x2]

z1:

0.0062 0.0206 0.5983

0.0021 0.0559 0.1311

[torch.DoubleTensor of size 2x3]

z2:

0.0000 0.0021 0.3710

0.0000 0.0055 0.0348

[torch.DoubleTensor of size 2x3]

z3:

0.0000 0.0021 0.3710

0.0000 0.0055 0.0348

[torch.DoubleTensor of size 2x3]

z4:

0.0000 0.0021

0.3710 0.0000

0.0055 0.0348

[torch.DoubleTensor of size 3x2]

z5:

0.0000 0.0021 0.3710

0.0000 0.0055 0.0348

[torch.DoubleTensor of size 2x3]

%%%%%%%%%%%%%%%%%%%%%%%%%%

参考资料:

http://torch7.readthedocs.org/en/latest/maths/index.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  torch 函数