当前位置: 首页 > news >正文

编解码器架构

一、定义

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、解码器将具有固定形状的编码状态映射为长度可变的序列。

http://www.lryc.cn/news/408319.html

相关文章:

  • 追问试面试系列:JVM运行时数据区
  • React Native在移动端落地实践
  • 《操作系统》(学习笔记)(王道)
  • LabVIEW学习-LabVIEW处理带分隔符的字符串从而获取数据
  • freesql简单使用操作mysql数据库
  • 使用Java和Spring Retry实现重试机制
  • Linux Vim教程(十):自定义配置与插件管理
  • 代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
  • Verilog语言和C语言的本质区别是什么?
  • Delphi5实现鱼C屏幕保护程序
  • 【计算机毕业设计】844学籍管理系统
  • Java之开发 系统设计 分布式 高性能 高可用
  • java连接redis和基础操作命令
  • 土耳其云手机提升TikTok电商效率
  • 《Utilizing Ensemble Learning for Detecting Multi-Modal Fake News》
  • Oracle集群RAC磁盘管理命令asmcmd的使用
  • vscode插件开发笔记——大模型应用之AI编程助手
  • @JSONField(format = “yyyyMMddHH“)的作用和使用
  • 计算机网络 6.1Internet概念
  • 编写SpringBoot的自定义starter包
  • 【LeetCode:3106. 满足距离约束且字典序最小的字符串 + 贪心】
  • 25 Python常用函数——reduce()
  • oracle登录报“ORA-27101: shared memory realm does not exist”
  • 界面控件Telerik UI for WPF 2024 Q2亮点 - 全新的AIPrompt组件
  • IT服务运营过程中的资源要素管理(至简)
  • wodpress设置固定链接的方式和好处【SEO优化】
  • 【C#】 CancellationTokenSource 与Thread的启动、取消的区别?
  • 基于 HTML+ECharts 实现智慧运维数据可视化大屏(含源码)
  • AIGC(Artificial Intelligence Generated Content)
  • 02 MySQL数据库管理