亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

將tf.batch_matmul替換成tf.matmul的實現(xiàn)

 更新時間:2020年06月18日 11:41:13   作者:guotong1988  
這篇文章主要介紹了將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)文章

最新評論