深度学习----------------------------编码器、解码器架构

embedded/2024/12/21 21:08:53/

目录

  • 重新考察CNN
  • 重新考察RNN
  • 编码器-解码器架构
  • 总结
  • 编码器=解码器架构
    • 编码器
    • 解码器
    • 合并编码器和解码器

重新考察CNN

编码器:将输入编码成中间表达形式(特征)

解码器:将中间表示解码成输出。

在这里插入图片描述




重新考察RNN

编码器:文本表示成向量

解码器:向量表示成输出

在这里插入图片描述




编码器-解码器架构

一个模块被分为两块

                    编码器处理输出
                    解码器生成输出

在这里插入图片描述




总结

使用编码器-解码器架构的模型,编码器负责表示输入,解码器负责输出。




编码器=解码器架构

编码器

# 编码器
from torch import nnclass Encoder(nn.Module):"""编码器-解码器结构的基本编码器接口"""#  Encoder 类的构造函数,它接受任意数量的关键字参数def __init__(self, **kwargs):# 调用了父类 nn.Module 的构造函数,确保正确初始化super(Encoder, self).__init__(**kwargs)# 给一个X,输出其状态def forward(self, X, *args):# 抛出一个 NotImplementedError 异常,表示该方法需要在子类中进行实现。raise NotImplementedError



解码器

# 解码器
class Decoder(nn.Module):def __init__(self, **kwargs):super(Decoder, self).__init__(**kwargs)# 有一个中介状态,编码器的东西传给解码器,拿到编码器的输出enc_outputs,然后初始化状态。def init_state(self, enc_outputs, *args):raise NotImplementedError# 拿到额外的输出X, state是用来不断更新的def forward(self, X, state):raise NotImplementedError



合并编码器和解码器

# 编码器
from torch import nn# 合并编码器和解码器
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)




http://www.ppmy.cn/embedded/121763.html

相关文章

千益畅行,旅游创业新模式的创新与发展

旅游创业的时代背景与旅游卡的崛起,在当今快节奏的时代,旅行成为人们生活中的重要部分,随着科技发展和市场需求的变化,旅游创业项目中的旅游卡应运而生。 其中,“千益畅行” 旅游卡作为新兴力量,在共享经济…

在VS code 中部署C#和avalonia开发环境

要在 Mac 的 VS Code 中配置 C# 和 Avalonia 的开发环境,您可以按照以下步骤进行: 1. 安装 .NET SDK 下载 .NET SDK: 访问 .NET 下载页面。选择适用于 macOS 的最新稳定版本的 .NET SDK,并下载安装程序。安装 .NET SDK&#xff1…

Springboot+PostgreSQL+MybatisPlus存储JSON或List、数组(Array)数据

项目架构 SpringbootPostgreSQLMybatisPlus 从Mongodb转过来的项目,有存储json数据的需求,但是在mybatis-plus上会出点问题 报错: Error updating database. Cause: org.postgresql.util.PSQLException 字段 “” 的类型为 jsonb, 但表达式的…

Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持

作者:来自 Elastic Jeff Vestal 我们很高兴地宣布 Elasticsearch 的开放推理 API 支持 Gemini 开发者 API。使用 Google AI Studio 时,开发者现在可以与 Elasticsearch 索引中的数据进行聊天、运行实验并使用 Google Cloud 的模型(例如 Gemin…

Prometheus之Pushgateway使用

Pushgateway属于整个架构图的这一部分 The Pushgateway is an intermediary service which allows you to push metrics from jobs which cannot be scraped. The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. S…

Git大框架总结

下面首先是我对于git的一个小总结,主要是大框架 首先是四区,因为大部分你所有的工作都是在这四个区里的实现的,包括要提交一个东西,是先是在工作区修改,后用add添加到暂存区,后提交到本地仓库,当…

C语言基础之数组

上一篇讲述了C语言函数的使用,本文讲述数组的相关概念,通过一维数组、二维数组、数组越界等详细讲解数组相关的具体内容,以辅助读者了解并掌握数组相关概念。 一维数组 一维数组的定义与创建 若无数组,我们要存储一堆类型相同的…

OpenCV-图像透视变换

文章目录 一、定义与原理二、应用场景三、实现方法四、代码运用 图像的透视变换(Perspective Transformation)是一种在图像处理中广泛使用的技术,它通过模拟人眼或相机镜头观看三维空间物体时的透视效果,来改变图像的视角和形状。…