真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

RNN:RecurrentNeuralNetwork-創(chuàng)新互聯(lián)

透過cs224n課程提供的課件:A Primer on Neural Network Models for Natural Language Processinghttp://u.cs.biu.ac.il/~yogo/nnlp.pdf

成都創(chuàng)新互聯(lián)公司是由多位在大型網絡公司、廣告設計公司的優(yōu)秀設計人員和策劃人員組成的一個具有豐富經驗的團隊,其中包括網站策劃、網頁美工、網站程序員、網頁設計師、平面廣告設計師、網絡營銷人員及形象策劃。承接:成都網站制作、做網站、網站改版、網頁設計制作、網站建設與維護、網絡推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網站、行業(yè)門戶平臺等全方位的服務。

中的RNN部分的Page52-Figure10:

可以對RNN結構得到一個比較清晰的認識。

RNN公式一般定義為:

在Pytorch中,公式存在兩組bias:

該公式來源于Pytorch截圖,

其相關設置如下https://pytorch.org/docs/stable/generated/torch.nn.RNN.html#rnn

Tensorflow2-Docs中未明確公式,使用的是RNN公式的計算方式?

其相關設置如下https://pytorch.org/docs/stable/generated/torch.nn.RNN.html#rnn

對Pytorch而言,根據(jù)公式和后續(xù)代碼,基本可知:

(1)假設此時刻是中間某個時刻t,正在計算h_t,計算時接收兩個輸入,分別是當前時刻對應的輸入x_t,上一時刻計算得到的隱藏狀態(tài)h_t-1。

(2)假設此時刻是初始時刻,正在計算h_1,計算時同樣接收兩個輸入,分別是當前時刻對應的網絡輸入x_0,初始時刻的隱藏狀態(tài),需要注意的是按照torch.nn.RNN源碼中的計算方式,如果初始h0不存在也即為None,則網絡將自動生成一個尺度為(n_layers * n_directions,max_batch_size, hidden_size)的3維零矩陣初始隱藏狀態(tài)。其源碼如下:

(3)假如此時刻是中間某個時刻,并且此RNN是多層RNN,計算過程將是層層遞進的,計算中間層時,也需要輸入一個x_hat,只是這時候的x_hat是上層計算的output,因此每一層都會出現(xiàn)一個h_hat_i,直到最后一層產生一個y_t的時候,暫且算作同時計算得到了一個h_t。

(4)無論是中間層計算還是時刻t計算他們在pytorch中都遵循上面的公式

(5)pytorch計算的具體實現(xiàn)通過Github項目aTen作為底層實現(xiàn)的

PyTorch公式中只包含了4組參數(shù),分別是W_ih、b_ih、W_hh、b_hh,有時人們總會賦予字母以不同的寓意,這里的i并非序列號“第i個”或“第i層”的意思,而是“input”的意思,表示這里的i是對當前層的輸入做的矩陣運算,也即x_t,h則表示“hidden”的意思。因此該4組分別對應于:計算當前RNN部分輸入門“結果”的W_ih、b_ih以及計算隱藏層狀態(tài)的W_hh、b_hh。這里的計算注意表述的是一組完整的RNN模塊按時間步的計算,而不是多層RNN中某時間步內層與層之間的計算。

然后在pytorch有關RNNbase的module部分包含對上面4組參數(shù)的定義:

w_ih = Parameter(torch.empty((gate_size, layer_input_size), **factory_kwargs))
w_hh = Parameter(torch.empty((gate_size, real_hidden_size), **factory_kwargs))
b_ih = Parameter(torch.empty(gate_size, **factory_kwargs))
b_hh = Parameter(torch.empty(gate_size, **factory_kwargs))

實際查看時可按圖索驥找到gate_size的選擇由當前“mode”類型和“hidden_size”參數(shù)決定。至此可得:Pytorch中,一層RNN有4組參數(shù)變量矩陣,兩層RNN有2*4=8組參數(shù)變量矩陣,N層的RNN有N*4=4N組參數(shù)變量矩陣。

從Tensroflow2的角度來看,參數(shù)方面主要區(qū)別在于tf2的bias參數(shù)只有一個,其他基本相同。另外,Tensorflow2中由于完全支持了keras,因此這里按照tf.keras.layers.RNN(...)https://www.tensorflow.org/api_docs/python/tf/keras/layers/RNN和keras中的循環(huán)神經網絡(RNN)https://www.tensorflow.org/guide/keras/rnn來敘述:

Tensorflow2的Keras包含兩種建模方式:Sequential()、Model(),Sequential即搭建一個容器,容器中只包含一列格子,每個格子存放一層計算結構,建模后訓練時串行計算每個格子的結果。Model()則是不創(chuàng)建容器,一層一層聲明計算方式,結構可以存在分支結構。從任務實現(xiàn)上來說Model()的存在是必要的,這方便網絡拓寬,網絡存在多輸入、多輸出結構等情況下任務的實現(xiàn)。

無論是PyTorch還是Tensorflow,RNN的作用是相同的,不同的是兩個框架的細節(jié)實現(xiàn)和計算方式。


RNN計算過程推導


基于Pytorch搭建RNN網絡并實現(xiàn)任務

# 基于Pytorch1搭建的單向單層RNN(SimpleRNN)、雙向單層RNN(BiRNN)、單向多層RNN(StackedRNN)、雙向多層RNN(StackedBiRNN)

# building

基于Tensorflow2搭建RNN網絡并實現(xiàn)任務

# 基于Tensorflow2搭建的單向單層RNN(SimpleRNN)、雙向單層RNN(BiRNN)、單向多層RNN(StackedRNN)、雙向多層RNN(StackedBiRNN)

# building

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧


當前標題:RNN:RecurrentNeuralNetwork-創(chuàng)新互聯(lián)
當前地址:http://weahome.cn/article/dpocos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部