PyTorch 中nn.Embedding

核心参数与用法

nn.Embedding的核心参数:

num_embeddings:嵌入表的大小(即离散特征的总类别数,如词汇表大小)。

embedding_dim:每个嵌入向量的维度(输出向量的长度)。

padding_idx(可选):指定一个索引,其对应的嵌入向量将始终为 0(用于处理填充符号)。

css 复制代码
import torch
import torch.nn as nn

# 定义嵌入层:词汇表大小为10(索引0-9),嵌入维度为3
embedding = nn.Embedding(num_embeddings=10, embedding_dim=3)

# 输入:形状为(batch_size, seq_len)的整数张量(索引必须在[0, num_embeddings-1]范围内)
input_indices = torch.tensor([[1, 3, 5], [2, 4, 6]])  # 批量大小为2,序列长度为3

# 前向传播:获取嵌入向量
output_embeddings = embedding(input_indices)

print("输入形状:", input_indices.shape)  # 输出:torch.Size([2, 3])
print("输出形状:", output_embeddings.shape)  # 输出:torch.Size([2, 3, 3])(每个索引被映射为3维向量)
print("输出内容:\n", output_embeddings)
css 复制代码
输入形状: torch.Size([2, 3])
输出形状: torch.Size([2, 3, 3])
输出内容:
 tensor([[[ 0.5095,  0.3979, -1.7759],
         [-0.1456,  1.6262,  0.3929],
         [ 0.8530, -0.6685,  1.6823]],

        [[ 1.0323, -0.0969, -0.6512],
         [ 0.2309, -1.5649,  0.7431],
         [-0.3285, -0.2512, -0.1028]]], grad_fn=<EmbeddingBackward0>)
Parameter containing:
tensor([[-1.8749,  0.2108,  0.4401],
        [ 0.5095,  0.3979, -1.7759],
        [ 1.0323, -0.0969, -0.6512],
        [-0.1456,  1.6262,  0.3929],
        [ 0.2309, -1.5649,  0.7431],
        [ 0.8530, -0.6685,  1.6823],
        [-0.3285, -0.2512, -0.1028],
        [-0.1919,  0.2022, -0.2425],
        [-0.7266,  1.3337, -0.7980],
        [ 0.0791, -0.7093,  0.2264]], requires_grad=True)
相关推荐
聆风吟º4 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
User_芊芊君子5 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能5 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
人工不智能5775 小时前
拆解 BERT:Output 中的 Hidden States 到底藏了什么秘密?
人工智能·深度学习·bert
h64648564h6 小时前
CANN 性能剖析与调优全指南:从 Profiling 到 Kernel 级优化
人工智能·深度学习
心疼你的一切6 小时前
解密CANN仓库:AIGC的算力底座、关键应用与API实战解析
数据仓库·深度学习·aigc·cann
学电子她就能回来吗8 小时前
深度学习速成:损失函数与反向传播
人工智能·深度学习·学习·计算机视觉·github
Coder_Boy_8 小时前
TensorFlow小白科普
人工智能·深度学习·tensorflow·neo4j
大模型玩家七七8 小时前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
kkzhang9 小时前
Concept Bottleneck Models-概念瓶颈模型用于可解释决策:进展、分类体系 与未来方向综述
深度学习