tf.einsum()基本使用

tf.enisum(equation,*inputs)

可以用简单的方式表示许多常见的多维线性代数数组运算。

常见使用方法如下:

# Matrix multiplication
einsum('ij,jk->ik', m0, m1)  # output[i,k] = sum_j m0[i,j] * m1[j, k]

# Dot product
einsum('i,i->', u, v)  # output = sum_i u[i]*v[i]

# Outer product
einsum('i,j->ij', u, v)  # output[i,j] = u[i]*v[j]

# Transpose
einsum('ij->ji', m)  # output[j,i] = m[i,j]

# Trace
einsum('ii', m)  # output[j,i] = trace(m) = sum_i m[i, i]

# Batch matrix multiplication
einsum('aij,ajk->aik', s, t)  # out[a,i,k] = sum_j s[a,i,j] * t[a, j, k]

示例:
①外积tf.einsum('ij,ij->ij', x, y) 相当于 tf.multiply(x, y)
在这里插入图片描述
②点积 tf.einsum('ij,jk->ik', x, z) 相当于 tf.matmul(x, z)
在这里插入图片描述
③转置 tf.einsum('ij->ji', x) 相当于 tf.transpose(x, [1, 0])
在这里插入图片描述

参考链接:
https://blog.csdn.net/qq_35203425/article/details/81560118
https://tensorflow.google.cn/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值