最近完成了sqe2seq聊天模型,磕磕碰碰的遇到不少問題,最終總算是做出來了,並符合自己的預期結果。
利用流程圖,從理論方面,回顧,總結seq2seq模型,
你給模型一段輸入,它返回一段輸出!
可以用在這些情景,聊天模型、翻譯、看圖說話、主旨提取等等涉及自然語言的層面,用途較廣泛
例如:輸入"今天中午吃什麼",
輸出"吃蘭州拉麵"。
seq2seq是通過encoder編譯器將一段輸入,編譯,匯聚成乙個狀態。再通過decoder解析器,解析該狀態,返回乙個輸出!
encoder和decoder都是建立再lstm或者rnn的基礎上。
## 執行流程輸入"今天中午吃什麼"
通過結巴分詞工具,分詞為["今天", "中午", "吃", "什麼"]
輸出結果為:輸入通過seq2seq的計算後,輸出結果為["吃", "拉州", "拉麵"]
對於分詞最終都會轉換為相應的向量
我採用了兩種方法,將分詞轉換為向量
1.隨機定義分詞的向量,訓練過程中,不斷的修改,最終形成分詞向量。
(下面**,可以忽略)
self.dec_wemb = tf.get_variable('embedding',
initializer=tf.random_uniform([dec_vocab_size + 2, self.dec_emb_size]),
dtype=tf.float32)
2.使用gesim工具,將分詞轉換為向量。(我認為這個好,拓展性廣很多)
for world in all_words_list:
# ["_gao_", "_pad_", "*",
if world == "_gao_" or world == "_pad_" or world == "*":
continue
try:
except keyerror:
這裡是基礎模型(還有attention模型,schedule模型等)
模型的核心點都是在encoder處,編譯整理輸入狀態,傳遞給decoder解析器,解析得到結果!
seq2seq模型詳解
在李紀為博士的畢業 中提到,基於生成的閒聊機械人中,seq2seq是一種很常見的技術。例如,在法語 英語翻譯中,的當前英語單詞不僅取決於所有前面的已翻譯的英語單詞,還取決於原始的法語輸入 另乙個例子,對話中當前的response不僅取決於以往的response,還取決於訊息的輸入。其實,seq2se...
Seq2Seq模型結構
seq2seq sequence to sequence 是乙個處理序列問題的模型,傳統的 rnn 或 lstm 只能處理 輸入及輸出是定長即 一對一或多對多的問題,而 seq2seq 則能處理一對多的問題,它也是 rnn 最重要的乙個變種 n vs m 輸入與輸出序列長度不同 編碼 解碼模型,主要...
介紹 Seq2Seq 模型
2019 09 10 19 29 26 問題描述 什麼是seq2seq模型?seq2seq模型在解碼時有哪些常用辦法?問題求解 seq2seq模型是將乙個序列訊號,通過編碼解碼生成乙個新的序列訊號,通常用於機器翻譯 語音識別 自動對話等任務。在seq2seq模型提出之前,深度學習網路在影象分類等問題...