注意力模型的一個實例代碼的實現(xiàn)與分析

上一篇文章:關于《注意力模型--Attention注意力機制》的學習?是對注意力模型的理論知識進行學習箭阶,這一篇文章將結合,在github上找到的一份基于keras框架實現(xiàn)的可運行的注意模型代碼:Attention_Network_With_Keras?進行分析喘沿,進一步理解Attention模型蘸炸。


將jupyter的文件轉換為.py文件湖雹,方便在Pycharm中運行調試,轉換方法如下圖:

文件轉換操作方法




先解決一個問題:

因為Python環(huán)境不同乍钻,而導致的一個問題莺禁,運行程序時會在下圖中報一個錯:TypeError: softmax() got an unexpected keyword argument 'axis'

1石洗,出問題的地方
2循诉,具體的出錯信息

跳轉到我目前版本的tensorflow后端softmax()函數(shù)沒有參數(shù)axis

3贤斜,尋找問題的具體原因
4拷淘,尋找解決問題的方法
5各墨,解決辦法:將K.softmax() 換成 tf.nn.softmax()

問題解決完畢!F粞摹1岫隆!结洼!




程序分析與理解:

1.獲取模型的樣子

想獲取搭建模型的樣子黎做,先按照上圖:文件轉換操作方法。將文件轉換成.py文件松忍,然后在Pycharm中運行程序代碼蒸殿。再參考文章:《kears可視化模塊keras.utils.visualize_util 的安裝配置與錯誤解決辦法》?按照這篇文章處理后,添加語句:plot_model(model,to_file='AttentionModel.png',show_shapes=True)

打印模型圖片的語句
模型圖1: 已獲得 github上Attention_Network_With_Keras?搭建模型的樣子


2.對模型的思路進行理解分析

以["six hours and fifty five am","06:55"]實例為例進行模型分析:

問題定義

將人類語言描述的時間,記為X宏所;將標準數(shù)字描述的時間酥艳,記為Y。即<X,Y>類型爬骤,符合Encoder-Decoder框架充石。 ?X=["six hours and fifty five am"],Y=["06:55"] ? ?任務:將X通過模型轉換成Y

數(shù)據處理

對數(shù)據進行處理霞玄。數(shù)據集中<X,Y>句對樣例有1萬個赫冬,數(shù)據集在Time Dataset.json文件中。X集合溃列,可以由41個不同的字符構成劲厌,將這41個字符存為字典類型;Y集合听隐,可以由11個不同的字符構成补鼻,將這11個字符存為字典。其實這兩個字典數(shù)據就存在Time Vocabs.json文件中雅任。

將X风范、Y數(shù)據處理成索引形式,每一個索引對應于一個one-hot向量沪么。比如:

X="six hours and fifty five am" ? len(X)=27 ?,模型中設置了X數(shù)據中的最大長度為41硼婿,索引len(X)=27<41,得進行索引填充(padding)禽车。

X=['s','i','x',' ','h','o','u','r','s',' ','a','n','d',' ','f','i','f','t','y',' ','f','i','v','e',' ','a','m']

去字典human_vocab查詢其索引值寇漫,并填充到41的長度,于是:

索引X=[31 22 36 0 21 27 33 30 31 0 14 26 17 0 19 22 19 32 37 0 19 22 34 18 0 14 25 40 40 40 40 40 40 40 40 40 40 40 40 40 40]

同理殉摔,Y="06:55"州胳,len(Y)=5,Y數(shù)據集的長度都為5逸月,所以不需要填充栓撞。

Y=['0','6',':','5,'5']

去字典machine_vocab查詢其索引值,得到:

索引Y=[0 6 10 5 5]

然后再將X索引轉換為Xoh(one-hot)形式碗硬,Xoh維度:(41x41)瓤湘;將Y索引轉換為Yoh(one-hot)形式,Yoh維度:(5x11)恩尾。如下圖:

模型搭建:

1)通過get_model()函數(shù)獲得搭建的模型

2)get_model()函數(shù)理解

3)attention_layer()獲取注意力的實現(xiàn)

4)one_step_of_attention()每一步獲取注意力的過程

5) 模型訓練

6)對各個網絡層進行命名后的模型圖片弛说,兩個下劃線'__'后面的表示這個層在哪個函數(shù)中。

7)模型圖片劃分

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末特笋,一起剝皮案震驚了整個濱河市剃浇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌猎物,老刑警劉巖虎囚,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蔫磨,居然都是意外死亡淘讥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門堤如,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蒲列,“玉大人,你說我怎么就攤上這事搀罢』柔” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵榔至,是天一觀的道長抵赢。 經常有香客問我,道長唧取,這世上最難降的妖魔是什么铅鲤? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮枫弟,結果婚禮上邢享,老公的妹妹穿的比我還像新娘。我一直安慰自己淡诗,他們只是感情好骇塘,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著韩容,像睡著了一般绪爸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宙攻,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天奠货,我揣著相機與錄音,去河邊找鬼座掘。 笑死递惋,一個胖子當著我的面吹牛,可吹牛的內容都是我干的溢陪。 我是一名探鬼主播萍虽,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼形真!你這毒婦竟也來了杉编?” 一聲冷哼從身側響起超全,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎邓馒,沒想到半個月后嘶朱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡光酣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年疏遏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片救军。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡财异,死狀恐怖,靈堂內的尸體忽然破棺而出唱遭,到底是詐尸還是另有隱情戳寸,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布拷泽,位于F島的核電站庆揩,受9級特大地震影響,放射性物質發(fā)生泄漏跌穗。R本人自食惡果不足惜订晌,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚌吸。 院中可真熱鬧锈拨,春花似錦、人聲如沸羹唠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佩微。三九已至缝彬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哺眯,已是汗流浹背谷浅。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奶卓,地道東北人一疯。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像夺姑,于是被迫代替她去往敵國和親墩邀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內容