欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于tf.reverse_sequence()簡(jiǎn)述

 更新時(shí)間:2020年01月20日 16:37:53   作者:Cerisier  
今天小編就為大家分享一篇關(guān)于tf.reverse_sequence()簡(jiǎn)述,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

tf.reverse_sequence()簡(jiǎn)述

在看bidirectional_dynamic_rnn()的源碼的時(shí)候,看到了代碼中有調(diào)用 reverse_sequence()這一方法,于是又回去看了下這個(gè)函數(shù)的用法,發(fā)現(xiàn)還是有點(diǎn)意思的。根據(jù)名字就可以能看得出,這個(gè)方法主要是用來(lái)翻轉(zhuǎn)序列的,就像雙線LSTM中在反向傳播那里需要從下文往上文處理一樣,需要對(duì)序列做一個(gè)鏡像的翻轉(zhuǎn)處理。

先來(lái)看一下這個(gè)方法的定義:

reverse_sequence(
  input,
  seq_lengths,
  seq_axis=None,
  batch_axis=None,
  name=None,
  seq_dim=None,
  batch_dim=None)

其中input是輸入的需要翻轉(zhuǎn)的目標(biāo)張量,seq_lengths是一個(gè)張量;

其元素是input中每一處需要翻轉(zhuǎn)時(shí)翻轉(zhuǎn)的長(zhǎng)度,在雙向LSTM中這個(gè)值統(tǒng)一被設(shè)為輸入語(yǔ)句的長(zhǎng)度,代表著整句話都需要被翻轉(zhuǎn),而實(shí)際上張量中的元素值可以是不同的,下面的例子中就可以看出;

seq_axis和seq_dim的關(guān)系,在源碼中做了如下操作:

seq_axis = deprecation.deprecated_argument_lookup("seq_axis", seq_axis,
                          "seq_dim", seq_dim)

返回中return gen_array_ops.reverse_sequence(..., seq_dim=seq_axis,...),同理,對(duì)于batch_axis和batch_dim也是相同的處理。意義上來(lái)說(shuō),按照官方給出的解釋,“此操作首先沿著維度batch_axis對(duì)input進(jìn)行分割,并且對(duì)于每個(gè)切片 i,將前 seq_lengths 元素沿維度 seq_axis 反轉(zhuǎn)”。實(shí)際上通俗來(lái)理解,就是對(duì)于張量input中的第batch_axis維中的每一個(gè)子張量,在這個(gè)子張量的第seq_axis維上進(jìn)行翻轉(zhuǎn),翻轉(zhuǎn)的長(zhǎng)度為 seq_lengths 張量中對(duì)應(yīng)的數(shù)值。

舉個(gè)例子,如果 batch_axis=0,seq_axis=1,則代表我希望每一行為單位分開(kāi)處理,對(duì)于每一行中的每一列進(jìn)行翻轉(zhuǎn)。相反的,如果 batch_axis=1,seq_axis=0,則是以列為單位,對(duì)于每一列的張量,進(jìn)行相應(yīng)行的翻轉(zhuǎn)?;仡^去看雙向RNN的源碼,就可以理解當(dāng)time_major這一屬性不同時(shí),time_dim 和 batch_dim 這一對(duì)組合的取值為什么恰好是相反的了。

寫一個(gè)簡(jiǎn)單的測(cè)試代碼:

a = tf.constant([[1,2,3], [4,5,6], [7,8,9]])
l = tf.constant([1,2,3],tf.int64) # 每一次翻轉(zhuǎn)長(zhǎng)度分別為1,2,3.由于a是(3,3)維的,所以l中數(shù)值最大只能是3
x = tf.reverse_sequence(a,seq_lengths=l,seq_axis = 0,batch_axis= 1) # 以列為單位進(jìn)行翻轉(zhuǎn),翻轉(zhuǎn)的是每一行的元素
y = tf.reverse_sequence(a,seq_lengths=l,seq_axis = 1,batch_axis= 0) # 以行為單位進(jìn)行翻轉(zhuǎn),翻轉(zhuǎn)的是每一列的元素
with tf.Session() as sess:
  print(sess.run(x))
  print(sess.run(y))

結(jié)果如下:

# 每一列上的元素種類沒(méi)有發(fā)生變化,但是從每一行來(lái)看,行的順序分別翻轉(zhuǎn)了前1,前2,前3個(gè)元素
[[1 5 9]
 [4 2 6]
 [7 8 3]]
# 每一行上的元素種類沒(méi)有發(fā)生變化,但是從每一列來(lái)看,列的順序分別翻轉(zhuǎn)了前1,前2,前3個(gè)元素
[[1 2 3]
 [5 4 6]
 [9 8 7]]

以上這篇關(guān)于tf.reverse_sequence()簡(jiǎn)述就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • 解決Python Matplotlib繪圖數(shù)據(jù)點(diǎn)位置錯(cuò)亂問(wèn)題

    解決Python Matplotlib繪圖數(shù)據(jù)點(diǎn)位置錯(cuò)亂問(wèn)題

    這篇文章主要介紹了解決Python Matplotlib繪圖數(shù)據(jù)點(diǎn)位置錯(cuò)亂問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python?中如何將十六進(jìn)制轉(zhuǎn)換為?Base64

    Python?中如何將十六進(jìn)制轉(zhuǎn)換為?Base64

    本篇文章將介紹在?Python?中將?hex?轉(zhuǎn)換為?base64?的方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • python用循環(huán)新建多個(gè)列表的代碼實(shí)例

    python用循環(huán)新建多個(gè)列表的代碼實(shí)例

    當(dāng)我們處理數(shù)據(jù)時(shí),有時(shí)候需要?jiǎng)?chuàng)建多個(gè)列表以存儲(chǔ)不同類型或不同條件下的數(shù)據(jù),在Python中,我們可以利用循環(huán)來(lái)快速、高效地創(chuàng)建這些列表,本文將介紹如何使用循環(huán)在Python中創(chuàng)建多個(gè)列表,并提供代碼實(shí)例,需要的朋友可以參考下
    2024-04-04
  • Python讀取CSV文件并計(jì)算某一列的均值和方差

    Python讀取CSV文件并計(jì)算某一列的均值和方差

    這篇文章主要介紹了利用Python讀取CSV文件并計(jì)算某一列的均值和方差,這里利用了csv模塊來(lái)對(duì)文件進(jìn)行處理,文章通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 詳解Anconda環(huán)境下載python包的教程(圖形界面+命令行+pycharm安裝)

    詳解Anconda環(huán)境下載python包的教程(圖形界面+命令行+pycharm安裝)

    這篇文章主要介紹了Anconda環(huán)境下載python包的教程(圖形界面+命令行+pycharm安裝),這篇文章很適合小白入手級(jí)別的,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Matplotlib使用Cursor實(shí)現(xiàn)UI定位的示例代碼

    Matplotlib使用Cursor實(shí)現(xiàn)UI定位的示例代碼

    這篇文章主要介紹了Matplotlib使用Cursor實(shí)現(xiàn)UI定位的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python中線程的MQ消息隊(duì)列實(shí)現(xiàn)以及消息隊(duì)列的優(yōu)點(diǎn)解析

    Python中線程的MQ消息隊(duì)列實(shí)現(xiàn)以及消息隊(duì)列的優(yōu)點(diǎn)解析

    消息隊(duì)列(MQ,Message Queue)在消息數(shù)據(jù)傳輸中的保存作用為數(shù)據(jù)通信提供了保障和實(shí)時(shí)處理上的便利,這里我們就來(lái)看一下Python中線程的MQ消息隊(duì)列實(shí)現(xiàn)以及消息隊(duì)列的優(yōu)點(diǎn)解析
    2016-06-06
  • Python編程入門的一些基本知識(shí)

    Python編程入門的一些基本知識(shí)

    這篇文章主要介紹了Python編程入門的一些基本知識(shí),包括注釋需和Shell命令使用等基本內(nèi)容,要的朋友可以參考下
    2015-05-05
  • 在Django框架中偽造捕捉到的URLconf值的方法

    在Django框架中偽造捕捉到的URLconf值的方法

    這篇文章主要介紹了在Django框架中偽造捕捉到的URLconf值的方法,Django是Python各色人氣框架中最為著名的一個(gè),需要的朋友可以參考下
    2015-07-07
  • Python通過(guò)wordcloud庫(kù)實(shí)現(xiàn)將單詞生成詞云

    Python通過(guò)wordcloud庫(kù)實(shí)現(xiàn)將單詞生成詞云

    Python的wordcloud庫(kù)是一個(gè)用于生成詞云的Python包,它可以將一段文本中出現(xiàn)頻率高的單詞按其出現(xiàn)頻率大小以及顏色深淺排列成一個(gè)詞云圖形,從而更好地展示文本中的信息,你可以使用wordcloud庫(kù)來(lái)生成各種類型的詞云,本文就介紹了如何生成心型詞云
    2023-06-06

最新評(píng)論