矩阵如何做乘法,一直没搞清楚,今天写个实例:

如下:

a = tf.constant([[1,2],[3,4]])
b = tf.constant([[0,0],[1,0]])
c =a *b
with tf.Session() as sess:
	print(sess.run(a))
	print(sess.run(b))
	print(sess.run(c))

输出如下:

 从上面的结果输出可以看出:

   \begin{bmatrix} 1&2 \\ 3&4 \end{bmatrix}* \begin{bmatrix} 0&0 \\ 1&0 \end{bmatrix} =\begin{bmatrix} 1*0& 2*0\\ 3*1&4*0 \end{bmatrix}\begin{bmatrix} 1&2 \\ 3&4 \end{bmatrix}

符合上述输出

在百度上查了下,这种概念如下:

 

 这里特别容易把矩阵* 与matmul混淆,

我再举个例子:

a = tf.constant([[1,2],[3,4]])
b = tf.constant([[0,0],[1,0]])
c =a *b
d = tf.matmul(a,b)
with tf.Session() as sess:
	print(sess.run(d))
	print(sess.run(c))

输出:

 明显两个结果是不一样的。

计算方法如下:

\begin{bmatrix} 1 &2 \\ 3& 4 \end{bmatrix} matmul\begin{bmatrix} 0 &0 \\ 1& 0 \end{bmatrix} =\begin{bmatrix} 1*0+2*1&1*0+2*0 \\ 3*0+4*1&3*1+4*0 \end{bmatrix}=\begin{bmatrix} 2 &0 \\ 4 &0 \end{bmatrix}

结果符合预期。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐