精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>PyTorch教程10.7之用于機(jī)器翻譯的編碼器-解碼器Seq2Seq

PyTorch教程10.7之用于機(jī)器翻譯的編碼器-解碼器Seq2Seq

2023-06-05 | pdf | 0.37 MB | 次下載 | 免費(fèi)

資料介紹

在所謂的 seq2seq 問題中,如機(jī)器翻譯(如 第 10.5 節(jié)所述),其中輸入和輸出均由可變長度的未對齊序列組成,我們通常依賴編碼器-解碼器架構(gòu)(第10.6 節(jié))。在本節(jié)中,我們將演示編碼器-解碼器架構(gòu)在機(jī)器翻譯任務(wù)中的應(yīng)用,其中編碼器和解碼器均作為 RNN 實(shí)現(xiàn)( Cho,2014 年,Sutskever等人,2014 年

在這里,編碼器 RNN 將可變長度序列作為輸入并將其轉(zhuǎn)換為固定形狀的隱藏狀態(tài)。稍后,在 第 11 節(jié)中,我們將介紹注意力機(jī)制,它允許我們訪問編碼輸入,而無需將整個(gè)輸入壓縮為單個(gè)固定長度的表示形式。

然后,為了生成輸出序列,一次一個(gè)標(biāo)記,由一個(gè)單獨(dú)的 RNN 組成的解碼器模型將在給定輸入序列和輸出中的前一個(gè)標(biāo)記的情況下預(yù)測每個(gè)連續(xù)的目標(biāo)標(biāo)記。在訓(xùn)練期間,解碼器通常會(huì)以官方“ground-truth”標(biāo)簽中的前面標(biāo)記為條件。然而,在測試時(shí),我們希望根據(jù)已經(jīng)預(yù)測的標(biāo)記來調(diào)節(jié)解碼器的每個(gè)輸出。請注意,如果我們忽略編碼器,則 seq2seq 架構(gòu)中的解碼器的行為就像普通語言模型一樣。圖 10.7.1說明了如何在機(jī)器翻譯中使用兩個(gè) RNN 進(jìn)行序列到序列學(xué)習(xí)。

https://file.elecfans.com/web2/M00/A9/C8/poYBAGR9N3mATR0fAAFvoV0b0sI161.svg

圖 10.7.1使用 RNN 編碼器和 RNN 解碼器進(jìn)行序列到序列學(xué)習(xí)。

圖 10.7.1中,特殊的“”標(biāo)記標(biāo)志著序列的結(jié)束。一旦生成此令牌,我們的模型就可以停止進(jìn)行預(yù)測。在 RNN 解碼器的初始時(shí)間步,有兩個(gè)特殊的設(shè)計(jì)決策需要注意:首先,我們以特殊的序列開始“”標(biāo)記開始每個(gè)輸入。其次,我們可以在每個(gè)解碼時(shí)間步將編碼器的最終隱藏狀態(tài)輸入解碼器Cho等人,2014 年在其他一些設(shè)計(jì)中,例如Sutskever等人。( 2014 ),RNN 編碼器的最終隱藏狀態(tài)僅在第一個(gè)解碼步驟用于啟動(dòng)解碼器的隱藏狀態(tài)。

import collections
import math
import torch
from torch import nn
from torch.nn import functional as F
from d2l import torch as d2l
import collections
import math
from mxnet import autograd, gluon, init, np, npx
from mxnet.gluon import nn, rnn
from d2l import mxnet as d2l

npx.set_np()
import collections
import math
from functools import partial
import jax
import optax
from flax import linen as nn
from jax import numpy as jnp
from d2l import jax as d2l
import collections
import math
import tensorflow as tf
from d2l import tensorflow as d2l

10.7.1。教師強(qiáng)迫

雖然在輸入序列上運(yùn)行編碼器相對簡單,但如何處理解碼器的輸入和輸出則需要更加小心。最常見的方法有時(shí)稱為 教師強(qiáng)制。在這里,原始目標(biāo)序列(標(biāo)記標(biāo)簽)作為輸入被送入解碼器。更具體地說,特殊的序列開始標(biāo)記和原始目標(biāo)序列(不包括最終標(biāo)記)被連接起來作為解碼器的輸入,而解碼器輸出(用于訓(xùn)練的標(biāo)簽)是原始目標(biāo)序列,移動(dòng)了一個(gè)標(biāo)記: “”,“Ils”,“regardent”,“?!?“Ils”、“regardent”、“.”、“”(圖 10.7.1)。

我們在10.5.3 節(jié)中的實(shí)施為教師強(qiáng)制準(zhǔn)備了訓(xùn)練數(shù)據(jù),其中用于自監(jiān)督學(xué)習(xí)的轉(zhuǎn)移標(biāo)記類似于9.3 節(jié)中的語言模型訓(xùn)練。另一種方法是將來自前一個(gè)時(shí)間步的預(yù)測標(biāo)記作為當(dāng)前輸入提供給解碼器。

下面,我們 將更詳細(xì)地解釋圖 10.7.1中描繪的設(shè)計(jì)。我們將在第 10.5 節(jié)中介紹的英語-法語數(shù)據(jù)集上訓(xùn)練該模型進(jìn)行機(jī)器翻譯 。

10.7.2。編碼器

回想一下,編碼器將可變長度的輸入序列轉(zhuǎn)換為固定形狀的上下文變量 c(見圖 10.7.1)。

考慮一個(gè)單序列示例(批量大小 1)。假設(shè)輸入序列是x1,…,xT, 這樣xt是個(gè) tth令牌。在時(shí)間步t, RNN 變換輸入特征向量xt為了xt 和隱藏狀態(tài)ht?1從上一次進(jìn)入當(dāng)前隱藏狀態(tài)ht. 我們可以使用一個(gè)函數(shù)f表達(dá)RNN循環(huán)層的變換:

(10.7.1)ht=f(xt,ht?1).

通常,編碼器通過自定義函數(shù)將所有時(shí)間步的隱藏狀態(tài)轉(zhuǎn)換為上下文變量q:

(10.7.2)c=q(h1,…,hT).

例如,在圖 10.7.1中,上下文變量只是隱藏狀態(tài)hT對應(yīng)于編碼器 RNN 在處理輸入序列的最終標(biāo)記后的表示。

在這個(gè)例子中,我們使用單向 RNN 來設(shè)計(jì)編碼器,其中隱藏狀態(tài)僅取決于隱藏狀態(tài)時(shí)間步和之前的輸入子序列。我們還可以使用雙向 RNN 構(gòu)建編碼器。在這種情況下,隱藏狀態(tài)取決于時(shí)間步長前后的子序列(包括當(dāng)前時(shí)間步長的輸入),它編碼了整個(gè)序列的信息。

現(xiàn)在讓我們來實(shí)現(xiàn) RNN 編碼器。請注意,我們使用嵌入層來獲取輸入序列中每個(gè)標(biāo)記的特征向量。嵌入層的權(quán)重是一個(gè)矩陣,其中行數(shù)對應(yīng)于輸入詞匯表的大小 ( vocab_size),列數(shù)對應(yīng)于特征向量的維度 ( embed_size)。對于任何輸入令牌索引i,嵌入層獲取ith權(quán)矩陣的行(從 0 開始)返回其特征向量。在這里,我們使用多層 GRU 實(shí)現(xiàn)編碼器。

def init_seq2seq(module): #@save
  """Initialize weights for Seq2Seq."""
  if type(module) == nn.Linear:
     nn.init.xavier_uniform_(module.weight)
  if type(module) == nn.GRU:
    for param in module._flat_weights_names:
      if "weight" in param:
        nn.init.xavier_uniform_(module._parameters[param])

class Seq2SeqEncoder(d2l.Encoder): #@save
  """The RNN encoder for sequence to sequence learning."""
  def __init__(self, vocab_size, embed_size, num_hiddens, num_layers,
         dropout=0):
    super().__init__()
    self.embedding = nn.Embedding(vocab_size, embed_size)
    self.rnn = d2l.GRU(embed_size, num_hiddens, num_layers, dropout)
    self.apply(init_seq2seq)

  def forward(self, X, *args):
    # X shape: (batch_size, num_steps)
    embs = self.embedding(X.t().type(torch.in
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)