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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值