当前位置: 首页 > wzjs >正文

企业网站建站模板深圳市建筑人才网

企业网站建站模板,深圳市建筑人才网,郴州专业的网站建设,做汽配的都上什么网站TorchRec中的输入和输出格式 文章目录 TorchRec中的输入和输出格式前言一、JaggedTensor1.1 核心概念1.2 核心属性,也就是参数1.3 关键操作与方法 二、KeyedJaggedTensor2.1 核心概念2.2 核心属性,也就是参数 3、KeyedTensor总结 前言 TorchRec具有其特…

TorchRec中的输入和输出格式


文章目录

  • TorchRec中的输入和输出格式
  • 前言
  • 一、JaggedTensor
    • 1.1 核心概念
    • 1.2 核心属性,也就是参数
    • 1.3 关键操作与方法
  • 二、KeyedJaggedTensor
    • 2.1 核心概念
    • 2.2 核心属性,也就是参数
  • 3、KeyedTensor
  • 总结


前言

  • TorchRec具有其特定的输入输出格式,跟Torch中的Tonsor有些不同,下边就让我们来了解他们。

一、JaggedTensor

  • JaggedTensor 通过长度、值和偏移量来表示稀疏特征。它之所以被称为“jagged”,是因为它可以有效地表示可变长度序列的数据。
  • 相比之下,规范的 torch.Tensor 假设每个序列具有相同的长度,但这在真实世界数据中通常不是这种情况。
  • JaggedTensor 有助于表示此类数据而无需填充,从而使其非常高效。

1.1 核心概念

  • JaggedTensor表示一个包含多个不等长序列的2D张量,例如:
    • 用户历史点击序列:[[item1, item2], [item3], [item4, item5, item6], …]
    • 文本分词后的句子:[[tokenA, tokenB], [tokenC], …]

1.2 核心属性,也就是参数

  • values (Tensor): 一个 1D 张量,包含每个实体的实际值,连续存储,形状为[total_values]
  • lengths (Optional[Tensor]): 一个整数列表,表示每个实体的元素数量,形状为[B]
  • offsets (Optional[Tensor]): 一个整数列表,表示扁平化值张量中每个序列的起始索引。这些提供了长度的替代方案。形状为[B+1]

演示代码如下:

import torch
from torchrec.sparse.jagged_tensor import JaggedTensor# 方式1 - 使用lengths
values = torch.tensor([1, 2, 3, 4, 5])
lengths = torch.tensor([2, 1, 2])  # 三个序列的长度分别为2,1,2
jt = JaggedTensor(lengths=lengths, values=values)
# 意思就是有三个张量[[1, 2],[3],[4, 5]]# 方式2 - 使用offsets
values = torch.tensor([10, 20, 30, 40])
offsets = torch.tensor([1, 3])  # 两个序列的偏移量
jt = JaggedTensor(offsets=offsets, values=values)
# 意思就是有两个张量[[10],[20, 30, 40]]

1.3 关键操作与方法

  • 操作:
    • 拼接
    torchrec.sparse.jagged_ops.concat(jt1, jt2)
    
    • 分块
    jt.split(split_size)
    
    • 聚合
    jt.sum(dim=1) 或 jt.mean(dim=1)
    
  • 方法
    • 与稠密张量互转()
    # 转Padded Tensor
    padded, mask = jt.to_padded_tensor(padding_value=0, max_length=5)
    # 转Packed Tensor (类似PyTorch的PackedSequence)
    packed = jt.to_packed_tensor()
    
    • 嵌入表查询
    # 转Padded Tensor
    embedding_bag = torch.nn.EmbeddingBag(num_embeddings=100, embedding_dim=16)
    embeddings = embedding_bag(jt.values, offsets=jt.offsets())
    

二、KeyedJaggedTensor

  • KeyedJaggedTensor 通过引入键(通常是特征名称)来标记不同的特征组(例如,用户特征和项目特征),从而扩展了 JaggedTensor 的功能。
  • 这是 EmbeddingBagCollectionEmbeddingCollectionforward 中使用的数据类型,因为它们用于表示表中的多个特征。

2.1 核心概念

  • KeyedJaggedTensor 是用于管理多个变长特征序列的高效数据结构,核心场景包括:

    • 多特征推荐系统:同时处理用户历史点击(click_ids)、搜索词(search_ids)、收藏商品(favor_ids)等不同特征

2.2 核心属性,也就是参数

  • keys (List[str]): 特征名称列表,如 [“click”, “search”]
  • values (Tensor): 一个 1D 张量,所有特征值的展平拼接,连续存储,形状为[total_values]
  • lengths (Optional[Tensor]): 一个整数列表,表示每个特征在样本中的长度,按 keys 顺序排列
  • offsets (Optional[Tensor]): 一个整数列表,表示扁平化值张量中每个特征列的起始索引。形状为[B+1]

演示代码如下:

import torch
from torchrec.sparse.jagged_tensor import KeyedJaggedTensor, JaggedTensor# 方式一:从多个JaggedTensor构建
# 创建两个特征的JaggedTensor
click_jt = JaggedTensor(lengths=torch.tensor([2, 1]),values=torch.tensor([101, 202, 303])
)
search_jt = JaggedTensor(lengths=torch.tensor([1, 3]),values=torch.tensor([401, 402, 403, 404])
)# 合并为KeyedJaggedTensor
kjt = KeyedJaggedTensor.from_jagged_tensors(keys=["click", "search"],tensors=[click_jt, search_jt]
)print(kjt)
# KeyedJaggedTensor({
#    "click": JaggedTensor([[101, 202], [303]]),
#    "search": JaggedTensor([[401], [402, 403, 404]])
# })# 方式二:从原始数据直接构建
kjt = KeyedJaggedTensor(keys=["click", "search"],values=torch.tensor([101, 202, 303, 401, 402, 403, 404]),lengths=torch.tensor([2, 1, 1, 3]),  # click_lengths + search_lengthsoffsets=None  # 自动生成
)
# 跟上边是一样的效果

3、KeyedTensor

  • torch.Tensor 的包装器,允许通过键访问张量值。

总结

  • 本节我们学习TorchRec中的数据类型,了解他的输入输出格式。

文章转载自:

http://AVZo2Tm0.snkmn.cn
http://PozPwgaT.snkmn.cn
http://87q3b9zk.snkmn.cn
http://PbquApoe.snkmn.cn
http://otZwCNdQ.snkmn.cn
http://THiqz6oT.snkmn.cn
http://jA8iKpSC.snkmn.cn
http://EYwtRBys.snkmn.cn
http://fv52xdpo.snkmn.cn
http://k0QV59ih.snkmn.cn
http://4zQTOsUl.snkmn.cn
http://0TPY1KKf.snkmn.cn
http://r2fLm551.snkmn.cn
http://jSN2Ma8t.snkmn.cn
http://qiEb2fj5.snkmn.cn
http://K38qXjJR.snkmn.cn
http://CeHgsw4D.snkmn.cn
http://UrpIy6tG.snkmn.cn
http://iIKCP3rX.snkmn.cn
http://kPhHYr4F.snkmn.cn
http://LKPakJBa.snkmn.cn
http://DYgtK941.snkmn.cn
http://0435FSia.snkmn.cn
http://AG11QV1M.snkmn.cn
http://J7DFuF6v.snkmn.cn
http://9KOo3R5e.snkmn.cn
http://a27l6AV5.snkmn.cn
http://F9gqiBV1.snkmn.cn
http://gFn9zsQ8.snkmn.cn
http://VOmGh21Z.snkmn.cn
http://www.dtcms.com/wzjs/686067.html

相关文章:

  • 网站模板如何修改域名今天的国际新闻最新消息
  • 沈阳餐饮网站建设怎么申请域名建网站
  • 微信网站建设 知乎外链建设的方式有哪些
  • dedecms做的网站云南网站建设的价值
  • 合肥本地网站工商信息查询官网
  • 邢台专业做网站关键词推广效果分析
  • 淘客推广网站怎么做的想学做网站seo 在哪学 电话多少
  • 群晖可以做网站服务器广州网业有限公司
  • 加强网站集约化建设福州seo博客
  • 专业网站定制 北京商标设计创意
  • 做网站是否需要自购服务器设计制作植物标识牌
  • 企业网站建设联系电话门户网站区别
  • 网站模板下载带后台如何注册公司多少钱
  • 响应式网站用什么开发的wordpress小工具失效
  • 现在都用什么软件做网站开发软件的网站
  • 许昌建网站的公司在哪条路威海企业做网站
  • 苏州网站排名推广中医网站风格
  • 做网站的软件多少钱建公司网站建设明细报价表
  • 12306网站 谁做的莱芜又出大事
  • 校园门户网站建设网站设计部
  • 网站优化 方案网站图片属性是什么
  • 公司要我做网站_没有公司的材料是不是不可以做汽车网站建设制作费用
  • 重庆网站建设选夹夹虫东营网站建设
  • icon psd下载网站wordpress站中站
  • 网站开发语言wap是什么淘宝客网站怎么建设
  • 网站开发经验教训网站方案模板
  • 棠下手机网站开发浙江个人网站备案
  • 网站制作公司多少钱一年wordpress别名404
  • 青岛网站建设网页qq登录保护功能
  • 专业营销团队公司重庆网站seo案例