在線音樂網(wǎng)站怎么做影視后期培訓(xùn)機(jī)構(gòu)全國排名
一、定義
0、機(jī)器翻譯是序列轉(zhuǎn)換模型的一個(gè)核心問題, 其輸入和輸出都是長(zhǎng)度可變的序列。?為了處理這種類型的輸入和輸出, 我們?cè)O(shè)計(jì)一個(gè)包含兩個(gè)主要組件的架構(gòu):
????????第一個(gè)組件是一個(gè)編碼器(encoder): 它接受一個(gè)長(zhǎng)度可變的序列作為輸入, 并將其轉(zhuǎn)換為具有固定形狀的編碼狀態(tài)。
????????第二個(gè)組件是解碼器(decoder): 它將固定形狀的編碼狀態(tài)映射到長(zhǎng)度可變的序列。 這被稱為編碼器-解碼器(encoder-decoder)架構(gòu)。
????????編解碼器架構(gòu),模型分為兩塊:編碼器處理輸入,解碼器處理輸出
1、對(duì)于CNN:就是先做特征提取,然后在輸出層做預(yù)測(cè)
(1)編碼器:將輸入編程為中間表達(dá)形式(特征)-將文本表示成向量
(2)解碼器:將中間表示解碼成輸出-向量表示成輸出
二、代碼
1、編碼器
from torch import nn#@save class Encoder(nn.Module):"""編碼器-解碼器架構(gòu)的基本編碼器接口"""def __init__(self, **kwargs):super(Encoder, self).__init__(**kwargs)def forward(self, X, *args):raise NotImplementedError
2、解碼器
#@save class Decoder(nn.Module):"""編碼器-解碼器架構(gòu)的基本解碼器接口"""def __init__(self, **kwargs):super(Decoder, self).__init__(**kwargs)def init_state(self, enc_outputs, *args):raise NotImplementedErrordef forward(self, X, state):raise NotImplementedError
3、合并編解碼器
#@save class EncoderDecoder(nn.Module):"""編碼器-解碼器架構(gòu)的基類"""def __init__(self, encoder, decoder, **kwargs):super(EncoderDecoder, self).__init__(**kwargs)self.encoder = encoderself.decoder = decoderdef forward(self, enc_X, dec_X, *args):enc_outputs = self.encoder(enc_X, *args)dec_state = self.decoder.init_state(enc_outputs, *args)return self.decoder(dec_X, dec_state)
三、小結(jié)
1、“編碼器-解碼器”架構(gòu)可以將長(zhǎng)度可變的序列作為輸入和輸出,因此適用于機(jī)器翻譯等序列轉(zhuǎn)換問題。
2、編碼器將長(zhǎng)度可變的序列作為輸入,并將其轉(zhuǎn)換為具有固定形狀的編碼狀態(tài)。
3、解碼器將具有固定形狀的編碼狀態(tài)映射為長(zhǎng)度可變的序列。