1.tf.multiply()兩個矩陣中對應元素各自相乘
格式: tf.multiply(x, y, name=None)
參數:
x: 一個類型為:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的張量。
y: 一個類型跟張量x相同的張量。
返回值: x * y element-wise.
注意:
(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)
參數:
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會被處理為稀疏矩陣。
name: 操作的名字(可選參數)
返回值: 一個跟張量a和張量b類型一樣的張量且最內部矩陣是a和b中的相應矩陣的乘積。
注意:
(1)輸入必須是矩陣(或者是張量秩 >2的張量,表示成批的矩陣),並且其在轉置之后有相匹配的矩陣尺寸。
(2)兩個矩陣必須都是同樣的類型,支持的類型如下:float16, float32, float64, int32, complex64, complex128。
引發錯誤:
ValueError: 如果transpose_a 和 adjoint_a, 或 transpose_b 和 adjoint_b 都被設置為真
程序示例:
運行結果:
注意: 在TensorFlow的世界里,變量的定義和初始化是分開的,所有關於圖變量的賦值和計算都要通過tf.Session的run來進行。想要將所有圖變量進行集體初始化時應該使用tf.global_variables_initializer。