tf.multiply
multiply表示点积,这个函数实现的是元素级别的相乘,也就是两个相乘的数元素各自相乘,而不是矩阵乘法。还需要注意的两个相乘的数必须有相同的数据类型,不然会报错的。
tf.matmul
matmul表示矩阵乘法,它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义,否则也会报错: ValueError: Dimensions must be equal。
输入的必须是矩阵,两个矩阵必须是同样的类型,返回的是矩阵的乘积。
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import tensorflow as tf
x = tf.constant([ [1,2,3], [4,5,6], [7,8,9] ])
y = tf.constant([ [1,2,3], [3,2,1], [1,2,3] ])
z = tf.multiply(x, y)
z1 = tf.matmul(x, y)
with tf.Session() as sess:
print sess.run(z)
print sess.run(z1)
输出:
//z
[[ 1 4 9]
[12 10 6]
[ 7 16 27]]
//z1
[[10 12 14]
[25 30 35]
[40 48 56]]