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

Tensorflow與RNN、雙向LSTM等的踩坑記錄及解決

 更新時間:2021年05月31日 17:06:50   作者:Orion Nebula  
這篇文章主要介紹了Tensorflow與RNN、雙向LSTM等的踩坑記錄及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

1、tensorflow(不定長)文本序列讀取與解析

tensorflow讀取csv時需要指定各列的數(shù)據(jù)類型。

但是對于RNN這種接受序列輸入的模型來說,一條序列的長度是不固定。這時如果使用csv存儲序列數(shù)據(jù),應(yīng)當(dāng)首先將特征序列拼接成一列。

例如兩條數(shù)據(jù)序列,第一項是標(biāo)簽,之后是特征序列

[0, 1.1, 1.2, 2.3] 轉(zhuǎn)換成 [0, '1.1_1.2_2.3']

[1, 1.0, 2.5, 1.6, 3.2, 4.5] 轉(zhuǎn)換成 [1, '1.0_2.5_1.6_3.2_4.5']

這樣每條數(shù)據(jù)都只包含固定兩列了。

讀取方式是指定第二列為字符串類型,再將字符串按照'_'分割并轉(zhuǎn)換為數(shù)字。

關(guān)鍵的幾行代碼示例如下:

def readMyFileFormat(fileNameQueue):
    reader = tf.TextLineReader()
    key, value = reader.read(fileNameQueue)

    record_defaults = [["Null"], [-1], ["Null"], ["Null"], [-1]]
    phone1, seqlen, ts_diff_strseq, t_cod_strseq, userlabel = tf.decode_csv(value, record_defaults=record_defaults)
    ts_diff_str = tf.string_split([ts_diff_strseq], delimiter='_')
    t_cod_str = tf.string_split([t_cod_strseq], delimiter='_')
    # 每個字符串轉(zhuǎn)數(shù)字
    Str2Float = lambda string: tf.string_to_number(string, tf.float32)
    Str2Int = lambda string: tf.string_to_number(string, tf.int32)
    ts_diff_seq = tf.map_fn(Str2Float, ts_diff_str.values, dtype = tf.float32) # 一定要加上dtype,且必須與fn的輸出類型一致
    t_cod_seq = tf.map_fn(Str2Int, t_cod_str.values, dtype = tf.int32)

2、時序建模的序列預(yù)測、序列擬合、標(biāo)簽預(yù)測,及輸入數(shù)據(jù)格式

序列預(yù)測、擬合的“標(biāo)簽”都是序列本身,區(qū)別是未來時刻或者是當(dāng)前時刻,當(dāng)前時刻的擬合任務(wù)類似于antoencoder的reconstruction

標(biāo)簽預(yù)測常見于語言學(xué)建模,有單詞級標(biāo)簽的分詞與整句標(biāo)簽的情感分析,前者需要對每一個單詞輸入都要輸出其分詞標(biāo)識,后者是取最后若干輸出級聯(lián)前饋神經(jīng)網(wǎng)絡(luò)分類器

keras的輸入-輸出對:需要將序列拆分成多個片段

序列形式:

按時間列表:static_bidirectional_rnn

多維數(shù)組:bidirectional_dynamic_rnn與stack_bidirectional_dynamic_rnn 變長雙向rnn的正確使用姿勢

3、多任務(wù)設(shè)置及相應(yīng)的輸出向量劃分

對于標(biāo)簽預(yù)測任務(wù),按需取輸出即可

對于序列預(yù)測、擬合:

雙向lstm:通常用于擬合。但如果需要捕捉動態(tài)信息,盡管需要序列完整輸入,則仍可以加上正向預(yù)測與反向預(yù)測

單向lstm:擬合與預(yù)測

4、zero padding

后一般需要通過tf.boolean_mask()隔離這些零的影響,函數(shù)輸入包括數(shù)據(jù)矩陣和補(bǔ)零位置的指示矩陣。

5、get_shape()方法

與 tf.shape() 類型區(qū)別,前者得到一個list,后者得到一個tensor

6、雙向LSTM的信息瓶頸的解決

在這里插入圖片描述

如果在時間步的最后輸出,則可能會導(dǎo)致開始的一些字符被遺忘門給遺忘。

所以這里就對每個時間步的輸出做出了處理,

主要處理有:

1、拼接:把所有的輸出拼接在一起。

2、Average

3、Pooling

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Python的Django框架中顯示對象子集的方法

    在Python的Django框架中顯示對象子集的方法

    這篇文章主要介紹了在Python的Django框架中顯示對象子集的方法,即queryset的參數(shù)的使用相關(guān),需要的朋友可以參考下
    2015-07-07
  • Python代理IP爬蟲的新手使用教程

    Python代理IP爬蟲的新手使用教程

    這篇文章主要給大家介紹了關(guān)于Python代理IP爬蟲的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 分析Python中設(shè)計模式之Decorator裝飾器模式的要點

    分析Python中設(shè)計模式之Decorator裝飾器模式的要點

    這篇文章主要介紹了Python中設(shè)計模式之Decorator裝飾器模式模式,文中詳細(xì)地講解了裝飾對象的相關(guān)加鎖問題,需要的朋友可以參考下
    2016-03-03
  • Selenium執(zhí)行完畢未關(guān)閉chromedriver/geckodriver進(jìn)程的解決辦法(java版+python版)

    Selenium執(zhí)行完畢未關(guān)閉chromedriver/geckodriver進(jìn)程的解決辦法(java版+python版

    這篇文章主要介紹了Selenium執(zhí)行完畢未關(guān)閉chromedriver/geckodriver進(jìn)程的解決辦法(java版+python版),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python基礎(chǔ)之類屬性和實例屬性

    python基礎(chǔ)之類屬性和實例屬性

    這篇文章主要介紹了python類屬性和實例屬性,實例分析了Python中返回一個返回值與多個返回值的方法,需要的朋友可以參考下
    2021-10-10
  • 最新tensorflow與pytorch環(huán)境搭建的實現(xiàn)步驟

    最新tensorflow與pytorch環(huán)境搭建的實現(xiàn)步驟

    深度學(xué)習(xí)相關(guān)的熱門框架主要為Tensorflow和Pytorch,本文主要介紹了搭建最新tensorflow與pytorch環(huán)境,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼

    Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼

    這篇文章主要介紹了Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • django中的數(shù)據(jù)庫遷移的實現(xiàn)

    django中的數(shù)據(jù)庫遷移的實現(xiàn)

    這篇文章主要介紹了django中的數(shù)據(jù)庫遷移的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • PyQt5?QLineEdit校驗器限制輸入實例代碼

    PyQt5?QLineEdit校驗器限制輸入實例代碼

    QLineEdit類是一個單行文本控件,可輸入單行字符串,可以設(shè)置回顯模式(Echomode)和掩碼模式,下面這篇文章主要給大家介紹了關(guān)于PyQt5?QLineEdit校驗器限制輸入的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Python 矩陣轉(zhuǎn)置的幾種方法小結(jié)

    Python 矩陣轉(zhuǎn)置的幾種方法小結(jié)

    今天小編就為大家分享一篇Python 矩陣轉(zhuǎn)置的幾種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論