從零開始的深度學習 4

2021-10-03 02:49:17 字數 1393 閱讀 3723

在之前的練習中,解碼器在各個時間步依賴相同的背景變數(context vector)來獲取輸入的序列資訊。當編碼器為迴圈神經網路時,背景變數來自它最終時間步的隱藏狀態。將源序列輸入資訊以迴圈單位狀態編碼,然後將其傳遞給解碼器以生成目標序列。

然而這種結構存在著問題,尤其是rnn機制實際中存在長程梯度消失的問題,對於較長的句子,我們很難寄希望於將輸入的序列轉化為定長的向量而儲存所有的有效資訊,所以隨著所需翻譯句子的長度的增加,這種結構的效果會顯著下降。

解碼器只能隱式地從編碼器的最終狀態中選擇相應的資訊。然而,注意力機制可以將這種選擇過程顯式地建模。

注意力機制框架

attention 是一種通用的帶權池化方法,輸入由兩部分構成:詢問(query)和鍵值對(key-value pairs)。對於乙個query來說,attention layer 會與每乙個key計算注意力分數並進行權重的歸一化,輸出的向量則是value的加權求和,而每個key計算的權重與value一一對應

為了計算輸出,我們首先假設有乙個函式α用於計算query和key的相似性,然後可以計算所有的 attention scores ,

之後用softmax函式將其歸一化,獲得注意力權重,

最終的輸出就是value的加權求和:

不同的attetion layer的區別在於score函式的選擇,在本節的其餘部分,我們將討論兩個常用的注意層 dot-product attention 和 multilayer perceptron attention;

os模組:提供了多數作業系統的功能介面函式。,在python程式設計時,經常和檔案、目錄打交道,這時就離不了os模組.

os.walk()

函式宣告:os.walk(top,topdown=true,οnerrοr=none)

(1)引數top表示需要遍歷的頂級目錄的路徑。

(2)引數topdown的預設值是「true」表示首先返回頂級目錄下的檔案,然後再遍歷子目錄中的檔案。當topdown的值為"false"時,表示先遍歷子目錄中的檔案,然後再返回頂級目錄下的檔案。

(3)引數onerror預設值為"none",表示忽略檔案遍歷時的錯誤。如果不為空,則提供乙個自定義函式提示錯誤資訊後繼續遍歷或丟擲異常中止遍歷。

返回值:函式返回乙個元組,含有三個元素。這三個元素分別是:每次遍歷的路徑名、路徑下子目錄列表、目錄下檔案列表。

從零開始搭建深度學習環境

開始深度學習調參之路不能沒有乙個趁手的環境 安裝基礎環境 我使用的機器環境是 ubuntu18.04 安裝顯示卡驅動 1.2.按照cuda所需的版本安裝 3.sudo ubuntu drivers autoinstall 安裝pip sudo apt get install python pip 安...

從零開始學編碼4

從零開始學編碼1 從零開始學編碼2 從零開始學編碼3 邏輯學是研究由條件推導結果的學科,在漫長的時間長河裡,雖然有很多人研究這門學科,但是因為人們習慣於用數學符號和運算元 來解釋這個世界,而邏輯學並不像數字可以使用加減乘除來運算,所以並沒有很好的突破,比較有名的是亞里斯多德的三段論法 所有男人都必有...

從零開始學習react

react.createlement tag,content class shoppinglist extends react.component return 我們可以把兩者結合起來,使 react 的 state 成為 唯一資料來源 渲染表單的 react 元件還控制著使用者輸入過程中表單發生的...