tf.matmul() 和tf.multiply() 的區別

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 都被設置爲真ui

 

程序示例:

 

 

運行結果: 

這裏寫圖片描述

注意: 在TensorFlow的世界裏,變量的定義和初始化是分開的,全部關於圖變量的賦值和計算都要經過tf.Session的run來進行。想要將全部圖變量進行集體初始化時應該使用tf.global_variables_initializer。spa

相關文章
相關標籤/搜索