一、环境
TensorFlow API r1.12
CUDA 9.2 V9.2.148
cudnn64_7.dll
Python 3.6.3
Windows 10
二、官方说明
tf.linalg.matmul或tf.matmul:矩阵乘
tf.linalg.matmul(a,b,transpose_a=False,transpose_b=False,adjoint_a=False,adjoint_b=False,a_is_sparse=False,b_is_sparse=False,name=None
)
输入:
(1)张量a:支持张量类型float16, float32, float64, int32, complex64,complex128,阶>1
(2)张量b:支持张量类型同张量a
(3)transpose_a:布尔型参数,如果是True,矩阵乘之前先执行转置
(4)transpose_b:布尔型参数,如果是True,矩阵乘之前先执行转置
(5)adjoint_a:布尔型参数,如果是True,矩阵乘之前先执行共轭转置
(6)adjoint_b:布尔型参数,如果是True,矩阵乘之前先执行共轭转置
(7)a_is_sparse:布尔型参数,如果是True,矩阵a被当做稀疏矩阵
(8)b_is_sparse:布尔型参数,如果是True,矩阵b被当做稀疏矩阵
(9)name:可选参数,操作的名称
返回结果:
(1)与输入张量a和输入张量b相同类型的张量,返回的结果张量最内层矩阵是输入矩阵a和输入矩阵b相应矩阵的乘积。
tf.math.multiply或tf.multiply:矩阵元素乘
tf.math.multiply(x,y,name=None
)
输入:
(1)张量x:数据类型可以是bfloat16, half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128
(2)张量y:数据类型跟x一样
返回结果:
(1)张量:跟输入张量同一种数据类型
三、实例
(1)矩阵乘(tf.linalg.matmul或tf.matmul)
>>> x = tf.constant([[1,2,3],[4,5,6]])
>>> sess = tf.Session()
>>> sess.run(tf.shape(x))
# array([2, 3])
>>> y = tf.constant([[1,2],[3,4],[5,6]])
>>> sess.run(tf.shape(y))
# array([3, 2])
>>> result = tf.matmul(x,y)
>>> sess.run(tf.shape(result))
# array([2, 2])
(2)矩阵元素乘(tf.math.multiply或tf.multiply)
>>> import tensorflow as tf
>>> x = tf.constant([1,2,3])
>>> y = tf.constant([4,5,6])
>>> result1 = tf.multiply(x,y)
>>> result1
<tf.Tensor 'Mul:0' shape=(3,) dtype=int32>
>>> sess = tf.Session()
>>> sess.run(result1)
array([ 4, 10, 18])