python与Tensorflow机器学习与数据挖掘

Tensorflow——tf.matmul() 和tf.mult

2018-10-30  本文已影响321人  SpareNoEfforts

1.tf.multiply()两个矩阵中对应元素各自相乘

格式:
tf.multiply(x, y, name=None)
参数:

注意:
(1)multiply这个函数实现的是元素级别的相乘,也就是两个相乘的数元素各自相乘,而不是矩阵乘法,注意和tf.matmul区别。
(2)两个相乘的数必须有相同的数据类型,不然就会报错。

2.tf.matmul()将矩阵a乘以矩阵b,生成a * b。

格式:
tf.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)输入必须是矩阵(或者是张量秩 >2的张量,表示成批的矩阵),并且其在转置之后有相匹配的矩阵尺寸。
(2)两个矩阵必须都是同样的类型,支持的类型如下:float16, float32, float64, int32, complex64, complex128。

示例

import tensorflow as tf

#两个矩阵对应元素各自相乘
x=tf.constant([[1.,2.,3.],[1.,2.,3.],[1.,2.,3.]])
y=tf.constant([[0.,0.,1.],[0.,0.,1.],[0.,0.,1.]])
#注意这里x,y必须要有相同的数据类型,不然就会因为数据类型不匹配报错
z=tf.multiply(x,y)

#两个数相乘
x1=tf.constant(1)
y1=tf.constant(2)
#注意这里x,y必须要有相同的数据类型,不然就会因为数据类型不匹配报错
z1=tf.multiply(x1,y1)

#数和矩阵相乘
x2=tf.constant([[1.,2.,3.],[1.,2.,3.],[1.,2.,3.]])
y2=tf.constant(2.0)
#注意这里x,y必须要有相同的数据类型,不然就会因为数据类型不匹配报错
z2=tf.multiply(x2,y2)

#两个矩阵相乘
x3=tf.constant([[1.,2.,3.],[1.,2.,3.],[1.,2.,3.]])
y3=tf.constant([[0.,0.,1.],[0.,0.,1.],[0.,0.,1.]])
#注意这里x,y要满足矩阵相乘的格式要求
z3=tf.matmul(x3,y3)

with tf.Session() as sess:
    print(sess.run(z))
    print(sess.run(z1))
    print(sess.run(z2))
    print(sess.run(z3))

输出:

[[0. 0. 3.]
 [0. 0. 3.]
 [0. 0. 3.]]

2

[[2. 4. 6.]
 [2. 4. 6.]
 [2. 4. 6.]]

[[0. 0. 6.]
 [0. 0. 6.]
 [0. 0. 6.]]
上一篇下一篇

猜你喜欢

热点阅读