9.7.1 编码器

编码器是一个没有输出的RNN

这里的nn.Embbeding见下
下面我们用一个具体的例子说明 PyTorch 中 nn.Embedding 的输出。假设:

import torch
import torch.nn as nn

# 创建嵌入层
# 参数说明:
# num_embeddings=3 → 词汇表大小 (3个词)
# embedding_dim=4 → 每个词的向量维度 (4维)
embedding = nn.Embedding(num_embeddings=3, embedding_dim=4)

# 查看初始化的权重矩阵
print("Embedding 权重矩阵:")
print(embedding.weight)
# 输出类似:
# tensor([[ 0.6614,  0.2669,  0.0617,  0.6213],  → 索引0对应的向量
#         [-0.4519, -0.1661, -1.5228,  0.3817],  → 索引1对应的向量
#         [-1.0276, -0.7251, -0.0233,  0.2224]], → 索引2对应的向量
#        requires_grad=True)

# 输入张量 (假设我们有2个样本,每个样本包含3个词的索引)
input_indices = torch.LongTensor([[0, 1, 2], [2, 1, 0]])

# 通过嵌入层
output = embedding(input_indices)
print("\n输出结果:")
print(output)

输出结果示例:

输出结果:
tensor([[[ 0.6614,  0.2669,  0.0617,  0.6213],  # 对应索引0的向量
         [-0.4519, -0.1661, -1.5228,  0.3817],  # 对应索引1的向量
         [-1.0276, -0.7251, -0.0233,  0.2224]], # 对应索引2的向量

        [[-1.0276, -0.7251, -0.0233,  0.2224], # 对应索引2的向量
         [-0.4519, -0.1661, -1.5228,  0.3817],  # 对应索引1的向量
         [ 0.6614,  0.2669,  0.0617,  0.6213]]], # 对应索引0的向量
       grad_fn=<EmbeddingBackward>)

关键点说明:

  1. 输入形状:[2, 3] (batch_size=2, sequence_length=3)
  2. 输出形状:[2, 3, 4] (最后一个维度是嵌入维度)
  3. 每个输入索引被替换为对应的嵌入向量:
    • 0 → [0.6614, 0.2669, 0.0617, 0.6213]
    • 1 → [-0.4519, -0.1661, -1.5228, 0.3817]
    • 2 → [-1.0276, -0.7251, -0.0233, 0.2224]
  4. 权重矩阵本质是一个查找表:embedding.weight.data 的形状是 [3,4]

应用场景示例:假设我们有一个简单的词汇表:

  • 0 → "apple"
  • 1 → "banana"
  • 2 → "orange"

经过嵌入层后,每个水果词都会被转换为一个4维的连续向量表示,这些向量会在模型训练过程中自动学习调整,最终相似的词会有相近的向量表示。
也就是类似于独热编码

permute这个函数就是改变维度的顺序而已,将X的维度从(batch_size,num_steps,embed_size)变成(num_steps,batch_size,embed_size)

这里outputstate的区别是什么?前者是最后一层的每一个时间步的隐状态(注意,GRU只会输出隐状态),后者是每一层的最后一个时间步的隐状态

posted @   最爱丁珰  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2024-02-13 连续攻击游戏
2024-02-13 捉迷藏
2024-02-13 路径覆盖与二分图匹配一一对应
2024-02-13 会议
点击右上角即可分享
微信分享提示