將tf.batch_matmul替換成tf.matmul的實現(xiàn)
我就廢話不多說了,大家還是直接看代碼吧~
import tensorflow as tf h_doc=tf.placeholder(tf.int32,[None,30,512]) h_query=tf.placeholder(tf.int32,[None,10,512]) temp = tf.matmul(h_doc, h_query, adjoint_b = True) # tf.batch_matmul(h_doc, h_query, adj_y=True) print(temp.get_shape())
(?, 30, 10)
補充知識:tf.matmul() 和tf.multiply() 的區(qū)別
1.tf.multiply()兩個矩陣中對應元素各自相乘
格式: tf.multiply(x, y, name=None)
參數(shù):
x: 一個類型為:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的張量。
y: 一個類型跟張量x相同的張量。
返回值: x * y element-wise.
注意:
(1)multiply這個函數(shù)實現(xiàn)的是元素級別的相乘,也就是兩個相乘的數(shù)元素各自相乘,而不是矩陣乘法,注意和tf.matmul區(qū)別。
(2)兩個相乘的數(shù)必須有相同的數(shù)據(jù)類型,不然就會報錯。
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)
參數(shù):
a: 一個類型為 float16, float32, float64, int32, complex64, complex128 且張量秩 > 1 的張量。
b: 一個類型跟張量a相同的張量。
transpose_a: 如果為真, a則在進行乘法計算前進行轉(zhuǎn)置。
transpose_b: 如果為真, b則在進行乘法計算前進行轉(zhuǎn)置。
adjoint_a: 如果為真, a則在進行乘法計算前進行共軛和轉(zhuǎn)置。
adjoint_b: 如果為真, b則在進行乘法計算前進行共軛和轉(zhuǎn)置。
a_is_sparse: 如果為真, a會被處理為稀疏矩陣。
b_is_sparse: 如果為真, b會被處理為稀疏矩陣。
name: 操作的名字(可選參數(shù))
返回值: 一個跟張量a和張量b類型一樣的張量且最內(nèi)部矩陣是a和b中的相應矩陣的乘積。
注意:
(1)輸入必須是矩陣(或者是張量秩 >2的張量,表示成批的矩陣),并且其在轉(zhuǎn)置之后有相匹配的矩陣尺寸。
(2)兩個矩陣必須都是同樣的類型,支持的類型如下:float16, float32, float64, int32, complex64, complex128。
引發(fā)錯誤:
ValueError: 如果transpose_a 和 adjoint_a, 或 transpose_b 和 adjoint_b 都被設置為真
程序示例:
運行結(jié)果:
注意:
在TensorFlow的世界里,變量的定義和初始化是分開的,所有關(guān)于圖變量的賦值和計算都要通過tf.Session的run來進行。想要將所有圖變量進行集體初始化時應該使用tf.global_variables_initializer。
以上這篇將tf.batch_matmul替換成tf.matmul的實現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python自帶tkinter庫實現(xiàn)棋盤覆蓋圖形界面
這篇文章主要為大家詳細介紹了python自帶tkinter庫實現(xiàn)棋盤覆蓋圖形界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07用Python進行柵格數(shù)據(jù)的分區(qū)統(tǒng)計和批量提取
該教程其實源于web,我看到之后覺得很實用,于是自己又重復做了一遍,寫了詳細的注釋分享給大家,希望對大家的研究有幫助,本文講述了柵格的分區(qū)統(tǒng)計,批量提取,深化理解遍歷循環(huán)等內(nèi)容2021-05-05Python中執(zhí)行存儲過程及獲取存儲過程返回值的方法
這篇文章主要介紹了Python中執(zhí)行存儲過程及獲取存儲過程返回值的方法,結(jié)合實例形式總結(jié)分析了Python調(diào)用存儲過程的常用方法與相關(guān)操作注意事項,需要的朋友可以參考下2017-10-10python中關(guān)于py文件之間相互import的問題及解決方法
這篇文章主要介紹了python中關(guān)于py文件之間相互import的問題,本文用一個例子演示下如何解決python中循環(huán)引用的問題,需要的朋友可以參考下2022-02-02scrapy redis配置文件setting參數(shù)詳解
這篇文章主要介紹了scrapy redis配置文件setting參數(shù)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11Python Pandas pandas.read_sql函數(shù)實例用法
在本篇文章里小編給大家整理的是一篇關(guān)于Python Pandas pandas.read_sql函數(shù)詳解內(nèi)容,有需要的朋友們可以學習下。2021-06-06