tf.multiply:
函数原型:
tf.math.multiply(
x,
y,
name=None
)
说明:
- 作用:对应元素相乘,并且具有广播作用。
- x: 类型为:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的张量。
- y: 类型跟张量x相同的张量。
- 返回:x * y(element-wise )
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
)
说明:
- 作用:最里面的矩阵相乘,两个输入必须时矩阵。
- a: 类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。
- b: 类型跟张量a相同的张量。
- transpose_a: 如果为真, a则在进行乘法计算前进行转置。
- transpose_b: 如果为真, b则在进行乘法计算前进行转置。
- adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置。
- adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置。
- a_is_sparse: 如果为真, a会被处理为稀疏矩阵。
- b_is_sparse: 如果为真, b会被处理为稀疏矩阵。
例子:
import tensorflow as tf
a = tf.constant([[2, 3]])
a1 = tf.constant([2, 3])
b = tf.constant([[0, 1], [2, 3]])
x = tf.constant([[[0, 1], [2, 3], [1, 3]],
[[4, 5], [6, 7], [4, 7]]])
y = tf.constant([[[0, 1, 0], [2, 3, 1]], [[4, 5, 1], [6, 7, 2]]])
z=tf.matmul(y, x)
c = tf.matmul(a, b)
d = tf.multiply(a, b)
e = tf.multiply(a1, b)
with tf.Session() as sess:
print(sess.run(c))
print(sess.run(d))
print(sess.run(e))
print(sess.run(z))
输出:
[[ 6 11]]
=======================
[[0 3]
[4 9]]
=======================
[[0 3]
[4 9]]
=======================
[[[ 2 3]
[ 7 14]]
[[50 62]
[74 93]]]
tf.transpose():
函数原型:
tf.transpose(
a,
perm=None,
name='transpose',
conjugate=False
)
说明:
- 这个函数主要适用于交换输入张量的不同维度,如果输入张量是二维,就相当是转置。
- dimension_n是整数,如果张量是三维,就是用0,1,2来表示
例子:
import tensorflow as tf
b = tf.constant([[0, 1], [2, 3]])
c= tf.transpose(b, [1,0])
x = tf.constant([[[0, 1], [2, 3], [1, 3]],
[[4, 5], [6, 7], [4, 7]]])
y = tf.transpose(x, [2,0,1])
with tf.Session() as sess:
print(sess.run(c))
print(sess.run(y))
输出:
[[0 2]
[1 3]]
=====================
[[[0 2 1]
[4 6 4]]
[[1 3 3]
[5 7 7]]]