Pytorch 神经网络模块之 Sparse Layers
1. torch.nn.Embedding
embedding 的主要目的是对稀疏特征进行降维。函数原型如下:
1 2 3 4 5 6 7 8 9 10 | """ num_embeddings – 词典的大小 embedding_dim – 嵌入向量的维度,即用多少维的向量来表示一个词 padding_idx(optional) – 填充id,每次的句子长度可能并不一样,就需要用统一的数字填充,而这里就是指定这个数字 max_norm – norm_type – scale_grad_by_freq – sparse – """ torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx = None , max_norm = None , norm_type = 2 , scale_grad_by_freq = False , sparse = False ) |
举个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import torch embedding = torch.nn.Embedding( 10 , 3 ) # 输入 input 是两个句子,每个句子都是由四个字组成的,使用每个字的索引来表示, # 于是使用 nn.Embedding 对输入进行编码,每个字都会编码成长度为 3 的向量。 input = torch.LongTensor([[ 1 , 2 , 4 , 5 ], [ 4 , 3 , 2 , 9 ]]) print (embedding( input )) """ tensor([[[ 0.2917, -1.5941, -0.4041], [ 1.9426, -0.3626, 0.2998], [ 1.5753, 1.2323, -0.4405], [-0.6988, -0.1813, -0.8102]], [[ 1.5753, 1.2323, -0.4405], [ 0.3580, -0.4253, 0.6412], [ 1.9426, -0.3626, 0.2998], [-0.9070, 0.2207, 2.1904]]], grad_fn=<EmbeddingBackward>) """ |
标签:
Pytorch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架