K.batch_dot()的用法总结

K.batch_dot()的用法总结

K.batch_dot(a, b, axis)
输入1:a(计算量1,维度应该大于等于2)
输入2:b(计算量2,维度应该大于等于2)
输入3:axis(可以是一个元组(x,y),也可以是一个整数)
当axis是一个元组(x,y)时,x代表a参与计算的维数,y代表b参与计算的维度;
当axis是一个整数z时,则a和b参与计算的维数均为z;
当axis为none时,则a参与计算的维数是倒数第一维,b参与计算的维数是倒数第二维(听说有的情况是b也是倒数第一维,比较少遇到)。
(可能专业术语还是不太熟悉,说得也不太清楚,举个例子把)
比如说

a = [[1,2], [3,4]];b = [[5,6], [7,8]
out = K.batch_dot(a, b, (1,1))

则表示将第一维即每一行的对应的元素进行相乘后相加,得出的结果是:

out = [17,
       53]

out = K.batch_dot(a, b, 1) 

则同样表示将a和b的第一维对应的元素相乘后相加,结果和上面相同。

out = K.batch_dot(a, b)

则表示将a的第2维和b的第1维对应的元素进行相乘后相加。

但是有时候需要计算的量可不只二维张量,对于多维张量的计算,我总结了一下,二维张量是一个矩阵,对于多维张量,比如三维张量和四维张量,可分别想象为一个矩阵中每个元素都是一个数组或者一个矩阵,那么三维张量的batch_dot则表示将大矩阵的数组元素对应的每个子元素进行相乘后相加,同样四维张量的第三维度的batch_dot则表示将大矩阵的小矩阵元素中的行对应的元素进行相乘后相加。
至于如果多维矩阵进行第一维度或者第二维度的计算的话,就不用考虑那么多了,只要还是把大矩阵的元素单纯地看成一个数去计算就可以了。

第一次写博客,可能有点混乱。。。。

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值