乘以不同等级的张量 [英] Multiply Tensors with different ranks

查看:37
本文介绍了乘以不同等级的张量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将两个不同等级的张量相乘,例如

I would like to multiply two tensors with different ranks, e.g.

tensor A -> (i x j x k x l)
tensor B -> (l x m)

获得另一个具有此维度的张量.

to get another tensor with this dimensions.

tensor C -> (i x j x k x m) = (i x j x k x l)*(l x m)

在 tensorflow 中,我必须一直重塑才能获得输出

In tensorflow I have to reshape all the time to get the output as

(A.reshape(-1,l)*B).reshape(i,j,k,m)

还有其他直接做的操作吗?

Any other operation that does it directly?

推荐答案

您需要 tf.tensordot.不需要在实数乘法之前进行整形.如果你想沿着A的最后一维和B的第一维收缩张量A和B,你可以用这种方式将张量A和张量B相乘:

You need tf.tensordot. Reshaping before real multiplication is not necessary. If you want to contract tensor A and B along the A's last dimension and the B's first dimension, you can multiply tensor A and tensor B in this way:

tf.tensordot(A, B, axes=[[3], [0]])

这篇关于乘以不同等级的张量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆