4. Transformer_4_输出部分

1. 输出部分介绍

2️⃣ 输出部分:输出部分包含:linear线性层、softmax层;经过 Linear层:对于分类任务,如 18分类的人名分类器,则Linear最后输出层即为18,再进行 softmax;

2. 线性层的作用

通过对上一步的线性变化得到指定维度的输出,也就是转换维度的作用;

3. softmax层的作用

使最后一维的向量中的数字缩放到0-1的概率值域内,并满足他们的和为1;

4. 线性层和softmax层的代码分析

init中:参数:d_model, vocab_size;d_model解码器输出的词嵌入维度512、vocab_size解码器单词总个数;nn.Linear(d_model, vocab_size)一个linear层,输出vocab_size;

forward:参数:x;x即为解码器的输出结果,经过linear得到预测值,在经过log_softmax返回最终输出x;

python 复制代码
from dm3_decoder import *

class Generator(nn.Module):
    def __init__(self, d_model, vocab_size):
        super(Generator, self).__init__()
        # d_model:词嵌入维度大小,解码器输出的词嵌入维度大小;vocab_size:解码器端词表大小
        self.linear = nn.Linear(d_model, vocab_size)

    def forward(self, x):
        output = F.log_softmax(self.linear(x), dim=-1)
        return output

def test_generator():
    decoder_output = test_decoder()
    # 实例化输出层对象
    my_generator = Generator(d_model=512, vocab_size=2000)
    result = my_generator(decoder_output)
    print(f'输出结果:{result.shape}')  # [2, 6, 2000]


if __name__ == '__main__':
    test_generator()
相关推荐
做萤石二次开发的哈哈11 小时前
连锁门店、园区、交通枢纽的视频如何统一汇集?应用模板的接入与分权管理详解
人工智能·物联网·音视频·二次开发·视频监控·蓝海aiot一站式工作台·萤石云开放平台
老金带你玩AI11 小时前
全程拿着手机,我让dot准备了一场AI分享
人工智能
nvd1111 小时前
Flink 批处理驱动的湖仓 AI 财务研报流水线:从双流广播汇聚到 Agent 智能决策与原生 Iceberg 落盘全景实战
大数据·人工智能·flink
snhna12 小时前
向量数据库深度实战:从 HNSW 到 pgvector、Milvus 选型与 RAG 落地
数据库·人工智能·python·postgresql·milvus
架构技术专栏12 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
点云-激光雷达-Slam-三维牙齿12 小时前
100,000 Records CSV File - India Traffic Accident Analysis Dataset.7z
人工智能·数据集
TechWayfarer12 小时前
精度极限的突破:AI与IPv6如何重塑高精度IP查询
人工智能·网络协议·tcp/ip·transformer
七十二时95612 小时前
视频掉帧怎么用AI补帧
人工智能
可达智灵12 小时前
信创适配|织灵 Coda Loom 2.0 完成银河麒麟服务器操作系统 V10、V11 适配认证
人工智能·可达智灵
Wx-bishekaifayuan13 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
人工智能·spring boot·后端·python·课程设计·express·旅游