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()
相关推荐
百度Geek说11 分钟前
商业客户端Harness资产管理与应用实践
人工智能
MacroZheng23 分钟前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
小酒星小杜24 分钟前
一个人,也能做出有人设、能追更、可商业化的漫画内容 IP
人工智能·产品·设计
字节跳动视频云技术团队26 分钟前
从出片到出海:AI MediaKit 重塑短剧全链路生产力
人工智能·音视频开发
一点一木34 分钟前
憋了7周没动静,OpenClaw 2.0带着16000个PR杀回来了
人工智能·github
anyup1 小时前
DeepSeek Harness 从零上手:从认识到写出第一个插件
人工智能·openai·deepseek
学习星球2 小时前
AI Agent 成本工程实战:从 OpenAI Codex 的 8 个“烧 Token“Bug 学起
人工智能·设计模式·微信小程序
一点一木4 小时前
🚀 2026 年 8 月 GitHub 十大热门项目排行榜 🔥
人工智能·github
ssshooter4 小时前
现在网页都能提供 MCP 了?!
前端·人工智能·程序员
京东云开发者4 小时前
Claude Code vs Codex 记忆体系深度对比
人工智能