將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 都被設(shè)置為真
程序示例:

運行結(jié)果:

注意:
在TensorFlow的世界里,變量的定義和初始化是分開的,所有關(guān)于圖變量的賦值和計算都要通過tf.Session的run來進行。想要將所有圖變量進行集體初始化時應該使用tf.global_variables_initializer。
以上這篇將tf.batch_matmul替換成tf.matmul的實現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python通過fnmatch模塊實現(xiàn)文件名匹配
這篇文章主要介紹了Python通過fnmatch模塊實現(xiàn)文件名匹配,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09
Python中五種實現(xiàn)字符串反轉(zhuǎn)的方法
這篇文章主要介紹了Python中五種實現(xiàn)字符串反轉(zhuǎn)的方法,編寫一個函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過來。下面文章關(guān)于其詳細介紹,需要的小伙伴可以參考一下2022-05-05
使用python創(chuàng)建股票的時間序列可視化分析
這篇文章主要為大家詳細介紹了python創(chuàng)建股票的時間序列可視化分析,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
python web應用程序之Django數(shù)據(jù)庫詳解
這篇文章主要介紹了python web應用程序之Django數(shù)據(jù)庫,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2024-06-06
Python使用matplotlib創(chuàng)建Gif動圖的思路
這篇文章主要介紹了Python使用matplotlib創(chuàng)建Gif動圖,我們將討論matplotlib提供的名為“Animation”的動畫庫之一,Python二維繪圖庫是Matplolib可以輕松創(chuàng)建繪圖、直方圖、條形圖、散點圖等,需要的朋友可以參考下2022-04-04
Python Numpy數(shù)組擴展repeat和tile使用實例解析
這篇文章主要介紹了Python Numpy數(shù)組擴展repeat和tile使用實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12
Python基于回溯法子集樹模板解決旅行商問題(TSP)實例
這篇文章主要介紹了Python基于回溯法子集樹模板解決旅行商問題(TSP),簡單描述了旅行商問題并結(jié)合實例形式分析了Python使用回溯法子集樹模板解決旅行商問題的相關(guān)實現(xiàn)步驟與操作技巧,需要的朋友可以參考下2017-09-09

