网站后台上传文章格式,深圳网站设计公司费用大概多少,昆明网络公司app,网站开发应用技术专业一、定义
0、机器翻译是序列转换模型的一个核心问题#xff0c; 其输入和输出都是长度可变的序列。 为了处理这种类型的输入和输出#xff0c; 我们设计一个包含两个主要组件的架构#xff1a; 第一个组件是一个编码器#xff08;encoder#xff09;#xff1a; 它接受一…一、定义
0、机器翻译是序列转换模型的一个核心问题 其输入和输出都是长度可变的序列。 为了处理这种类型的输入和输出 我们设计一个包含两个主要组件的架构 第一个组件是一个编码器encoder 它接受一个长度可变的序列作为输入 并将其转换为具有固定形状的编码状态。 第二个组件是解码器decoder 它将固定形状的编码状态映射到长度可变的序列。 这被称为编码器-解码器encoder-decoder架构。 编解码器架构模型分为两块编码器处理输入解码器处理输出 1、对于CNN就是先做特征提取然后在输出层做预测 1编码器将输入编程为中间表达形式特征-将文本表示成向量
2解码器将中间表示解码成输出-向量表示成输出 二、代码
1、编码器
from torch import nn#save
class Encoder(nn.Module):编码器-解码器架构的基本编码器接口def __init__(self, **kwargs):super(Encoder, self).__init__(**kwargs)def forward(self, X, *args):raise NotImplementedError
2、解码器
#save
class Decoder(nn.Module):编码器-解码器架构的基本解码器接口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):编码器-解码器架构的基类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)
三、小结
1、“编码器解码器”架构可以将长度可变的序列作为输入和输出因此适用于机器翻译等序列转换问题。
2、编码器将长度可变的序列作为输入并将其转换为具有固定形状的编码状态。
3、解码器将具有固定形状的编码状态映射为长度可变的序列。