將tf.batch_matmul替換成tf.matmul的實(shí)現(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)
補(bǔ)充知識(shí):tf.matmul() 和tf.multiply() 的區(qū)別
1.tf.multiply()兩個(gè)矩陣中對(duì)應(yīng)元素各自相乘
格式: tf.multiply(x, y, name=None)
參數(shù):
x: 一個(gè)類型為:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的張量。
y: 一個(gè)類型跟張量x相同的張量。
返回值: x * y element-wise.
注意:
(1)multiply這個(gè)函數(shù)實(shí)現(xiàn)的是元素級(jí)別的相乘,也就是兩個(gè)相乘的數(shù)元素各自相乘,而不是矩陣乘法,注意和tf.matmul區(qū)別。
(2)兩個(gè)相乘的數(shù)必須有相同的數(shù)據(jù)類型,不然就會(huì)報(bào)錯(cuò)。
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: 一個(gè)類型為 float16, float32, float64, int32, complex64, complex128 且張量秩 > 1 的張量。
b: 一個(gè)類型跟張量a相同的張量。
transpose_a: 如果為真, a則在進(jìn)行乘法計(jì)算前進(jìn)行轉(zhuǎn)置。
transpose_b: 如果為真, b則在進(jìn)行乘法計(jì)算前進(jìn)行轉(zhuǎn)置。
adjoint_a: 如果為真, a則在進(jìn)行乘法計(jì)算前進(jìn)行共軛和轉(zhuǎn)置。
adjoint_b: 如果為真, b則在進(jìn)行乘法計(jì)算前進(jìn)行共軛和轉(zhuǎn)置。
a_is_sparse: 如果為真, a會(huì)被處理為稀疏矩陣。
b_is_sparse: 如果為真, b會(huì)被處理為稀疏矩陣。
name: 操作的名字(可選參數(shù))
返回值: 一個(gè)跟張量a和張量b類型一樣的張量且最內(nèi)部矩陣是a和b中的相應(yīng)矩陣的乘積。
注意:
(1)輸入必須是矩陣(或者是張量秩 >2的張量,表示成批的矩陣),并且其在轉(zhuǎn)置之后有相匹配的矩陣尺寸。
(2)兩個(gè)矩陣必須都是同樣的類型,支持的類型如下:float16, float32, float64, int32, complex64, complex128。
引發(fā)錯(cuò)誤:
ValueError: 如果transpose_a 和 adjoint_a, 或 transpose_b 和 adjoint_b 都被設(shè)置為真
程序示例:

運(yùn)行結(jié)果:

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

