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

 

程序示例:

 

 

運行結果: 

這里寫圖片描述

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM