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

transformer(4):FFN 编码器块

文章目录

  • FFN
    • 1.目的
    • 2.代码
  • 编码器块

FFN

1.目的

注意力机制捕捉了序列里面不同位置的相关关系,并没有加强非线性表达能力,所以添加FFN用于增强非线性表达能力。

2.代码

class Pos_FFN(nn.Module):
    def __init__(self, *args, **kwargs) -> None:
        super(Pos_FFN, self).__init__(*args, **kwargs)
        self.lin_1 = nn.Linear(num_hiddens, 1024, bias=False)
        self.relu1 = nn.ReLU()
        self.lin_2 = nn.Linear(1024, num_hiddens, bias=False)
        self.relu2 = nn.ReLU()

    def forward(self, X):
        X = self.lin_1(X)
        X = self.relu1(X)
        X = self.lin_2(X)
        X = self.relu2(X)  # 可写可不写
        return X

编码器块

在这里插入图片描述

class Encoder_block(nn.Module):
    def __init__(self, *args, **kwargs) -> None:
        super(Encoder_block, self).__init__(*args, **kwargs)
        self.attention = Attention_block()
        self.add_norm_1 = AddNorm()
        self.FFN = Pos_FFN()
        self.add_norm_2 = AddNorm()

    def forward(self, X, I_m):
        I_m = I_m.unsqueeze(-2)
        X_1 = self.attention(X, I_m)
        X = self.add_norm_1(X, X_1)
        X_1 = self.FFN(X)
        X = self.add_norm_2(X, X_1)
        return X

相关文章:

  • Hutool - Cron:强大的定时任务模块
  • 装饰器模式
  • 双指针-三数之和
  • 【YOLOv11改进- 主干网络】YOLOv11+CSWinTransformer: 交叉窗口注意力Transformer助力YOLOv11有效涨点;
  • MongoDB:记一次数据迁移经验
  • JavaSE的基础语法(5)
  • PostgreSQL如何关闭自动commit
  • 基于Python的Flask微博话题舆情分析可视化系统
  • SaaS 平台开发要点
  • javascript-es6 (四)
  • 【NLP251】命名实体实战(基于Transformer分类)
  • 【BUUCTF逆向题】[ACTF新生赛2020]Splendid_MineCraft(SMC代码混淆)
  • 【强化学习】强化学习(Reinforcement Learning, RL)详解
  • SpringBoot+uniApp日历备忘录小程序系统 附带详细运行指导视频
  • 459重复的子字符串(substr)
  • Word中的文档信息域
  • Java语言介绍
  • cap2:1000分类的ResNet的TensorRT部署指南(python版)
  • Linux:深入了解进程信号(上)
  • (7/100)每日小游戏平台系列
  • 铁路12306回应“五一前大量放票”传闻:个别方向和区段出现新增票额,均即时进入系统重新发售
  • 习近平主持召开部分省区市“十五五”时期经济社会发展座谈会
  • 俄伏尔加格勒机场正式更名为斯大林格勒机场
  • 解密62个“千亿县”:强者恒强,新兴产业助新晋县崛起
  • 费高云调研党的建设工作:营造风清气正劲足的政治生态
  • 人社部:将会同更多部门分行业、分领域制定专项培训计划