功能:通过equation进行矩阵乘法。
输入:equation:乘法算法定义。
# 矩阵乘
>>> einsum('ij,jk->ik', m0, m1) # output[i,k] = sum_j m0[i,j] * m1[j, k]
# 点乘
>>> einsum('i,i->', u, v) # output = sum_i u[i]*v[i]
# 向量乘
>>> einsum('i,j->ij', u, v) # output[i,j] = u[i]*v[j]
# 转置
>>> einsum('ij->ji', m) # output[j,i] = m[i,j]
# 批量矩阵乘
>>> einsum('aij,ajk->aik', s, t) # out[a,i,k] = sum_j s[a,i,j] * t[a, j, k]
例:
a = tf.constant([[1,2],[3,4]])
b = tf.constant([[5,6],[7,8]])
z=tf.einsum('ij,jk->ik',a,b)
z==>[[19 22]
[43 50]]
网友评论