首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Tensorflow 2中实现类似Pytorch Embedding(sparse=True)的稀疏嵌入?

在TensorFlow 2中实现类似PyTorch Embedding(sparse=True)的稀疏嵌入,可以使用tf.lookup模块中的tf.lookup.StaticHashTable来实现。下面是实现的步骤:

  1. 定义稀疏张量(SparseTensor)来表示嵌入索引和对应的权重。稀疏张量由三个分别表示索引、形状和值的张量组成。
  2. 定义稀疏张量(SparseTensor)来表示嵌入索引和对应的权重。稀疏张量由三个分别表示索引、形状和值的张量组成。
  3. 这里的indices表示两个嵌入索引的坐标,values表示对应的权重值。dense_shape指定嵌入表的形状。
  4. 使用tf.lookup.StaticHashTable构建嵌入表。
  5. 使用tf.lookup.StaticHashTable构建嵌入表。
  6. KeyValueTensorInitializer用于指定键-值对的初始化器。default_value指定未找到键时的默认值。
  7. 进行稀疏嵌入的查找。
  8. 进行稀疏嵌入的查找。
  9. 使用lookup方法可以通过稀疏索引在嵌入表中查找对应的嵌入向量。

这样就可以在TensorFlow 2中实现类似PyTorch Embedding(sparse=True)的稀疏嵌入。

关于TensorFlow的更多信息,请参考腾讯云的TensorFlow产品介绍:TensorFlow

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

NVIDIA HugeCTR,GPU版本参数服务器--- (5) 嵌入式hash表

因为其巨大嵌入表和稀疏访问模式可能跨越多个 GPU,所以训练这种类型 DL 系统存在独特挑战。 HugeCTR 就实现了一种优化嵌入实现,其性能比其他框架嵌入层高 8 倍。...这种优化实现也可作为 TensorFlow 插件使用,可与 TensorFlow 无缝协作,并作为 TensorFlow 原生嵌入便捷替代品。...您可以通过使用 ReLU 激活将嵌入输出馈送到多个完全连接层来扩展先前模型。这里在设计上一个选择点是:如何组合两个嵌入向量。您可以只连接嵌入向量,也可以将向量按元素相乘,类似于点积。...具体模型架构如下: 0x04 HugeCTR嵌入层 为了克服嵌入挑战并实现更快训练,HugeCTR 实现了自己嵌入层,其中包括一个 GPU 加速哈希表、以节省内存方式实现高效稀疏优化器以及各种嵌入分布策略...稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB 无中生有:论推荐算法中Embedding思想 tf.nn.embedding_lookup函数原理 求通俗讲解下tensorflow

1.3K20
  • 译文 | 简明 TensorFlow 教程:混合模型

    广泛深度网络 数据 我们将使用泰坦尼克号 Kaggle 数据来预测乘客生存率是否和某些属性有关,姓名,性别,船票,船舱类型等。...(也即创建一列来储存预测结果) SURVIVED_COLUMN = "Survived" 网络 现在我们可以创建列和添加嵌入层。 当我们构建我们模型时,我们想要将我们分类列变成稀疏列。...,它会将我们提供高维度稀疏特征进行降维来计算。...而且只要很少微调这个模型可以得到相对较好结果。 ? 对比图 与传统广度线性模型一起添加嵌入能力,允许通过将稀疏维度降低到低维度来进行准确预测。...这些模型开始更多地被各种公司推荐,并且会因为优秀嵌入能力越来越流行。

    1.3K60

    PyTorch 最新版发布:API 变动,增加新特征,多项运算和加载速度提升

    这在处理需要类似 BatchNorm 效果较大图像和较小 mini-batches 时很有用。...CUDA 支持稀疏张量,更快 CPU sparse 新版本中 torch.sparse API 一部分也支持 torch.cuda.sparse。* Tensor。 CUDA 支持函数有: ?...利用这些稀疏函数,nn.Embedding 现在也在 CUDA 上支持 sparse(使用 sparse = True 标志)。...一种新混合矩阵乘法 hspmm,将稀疏矩阵与密集矩阵相乘,并以混合张量形式(即1个稀疏维度,1个密集维度)返回1个矩阵。 几个CPU稀疏函数具有更高效实现。...这里有一个嵌入式分类器训练脚本,作者是@martinraison,我们可以对比 CUDA sparse 和 CUDA dense 表现。(http://t.cn/RaZcltA) ?

    1.8K70

    CCPM & FGCNN:使用 CNN 进行特征生成 CTR 预测模型

    前言 今天主要通过两篇论文介绍如何将 CNN 应用在传统结构化数据预测任务中,尽量以精简语言说明主要问题,并提供代码实现和运行 demo ,细节问题请参阅论文。...基于点击率预测任务和自然语言处理中一些任务相似性(大规模稀疏特征), NLP 一些方法和 CTR 预测任务方法其实也是可以互通。...这里对于 FGCNN 模块使用一套独立 embedding 向量,避免梯度耦合问题。 卷积层和池化层 卷积和池化和 CCPM 类似,池化层使用是普通 Max Pooling 。...拼接层 经过若干重组后,将重组后生成特征拼接上原始特征作为新输入,后面可以使用各种其他方法, LR,FM,DeepFM 等。...,embedding_size,l2_reg_embedding,l2_reg_linear, init_std, seed, True) CNN 特征生成模块 通过封装好 FGCNNLayer,生成

    2K30

    BGE M3-Embedding 模型介绍

    M3-Embedding支持超过100种工作语言,支持8192长度输入文本,同时支持密集检索(Dense Retrieval)、多向量检索(Multi-Vector Retrieval)和稀疏检索(Sparse...通过这种创新训练数据组成,M3-Embedding能够有效地学习并支持超过100种语言文本嵌入,同时处理从短句到长达8192个词符长文档,实现了在多语言、多功能和多粒度方面的突破。...BGE-M3 混合检索 M3-Embedding统一了嵌入模型三种常见检索功能,即密集检索(Dense retrieval)、词汇(稀疏)检索(Lexical retrieval)和多向量检索(Multi-vector...类似地,我们可以获取段落p嵌入表示为 e_p = \text{norm}(H_p[0])。...def sparse_embedding(self, hidden_state, input_ids, return_embedding: bool = True): # sparse_linear

    4.8K11

    Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec…你都掌握了吗?一文总结推荐系统必备经典模型(三)

    模型资源站收录情况 模型来源论文 Wide&Deep https://sota.jiqizhixin.com/project/wide-deep收录实现数量:12支持框架:TensorFlow, Pytorch...://sota.jiqizhixin.com/project/xdeepfm收录实现数量:6支持框架:TensorFlow,PaddlePaddle, Pytorch xDeepFM: Combining...通过将Wide模型和Deep模型进行联合训练,能够实现高效推荐,特别是对于输入数据稀疏场景。 图1....DCN架构 Embedding and Stacking Layer 首先针对原始特征进行预处理,其中,类别特征(Sparse feature)可以通过二值化处理,然后进行特征嵌入,将高维稀疏特征转化为低维稠密实值向量...特征嵌入门。左图表示矢量特征嵌入门,右图是比特特征嵌入门 Hidden Gate 与上一部分类似,Hidden Gate主要是在MLP中增加门控机制,用于选择更加重要特征交互传递到更深层网络。

    1.1K10

    【教程】PyG入门,初步尝试运行第一行GNN代码

    PyTorch Geometric是流行深度学习框架PyTorch一个扩展库,由各种方法和工具组成,以简化图神经网络实现。         ...(h, color=data.y) Embedding shape: [34, 2]         值得注意是,即使在训练我们模型权重之前,该模型产生节点嵌入与图社区结构非常相似。...否则,PyTorch文档提供了一个关于如何在PyTorch中训练神经网络良好介绍。         请注意,我们半监督学习方案是由以下一行实现。...此外,我们只用了几行代码就完成了这一切,这要感谢PyTorchPyG库,它在数据处理和GNN实现方面帮助了我们。...总结         对GNN和PyTorch Geometric世界第一次介绍到此结束。在后续课程中,你将学习如何在一些真实世界图数据集上实现最先进分类结果。

    1.5K40

    PyTorch官方发布推荐系统仓库: TorchRec

    我们很高兴地宣布TorchRec,一个用于推荐系统PyTorch 域库。这个新库提供了通用稀疏性和并行性原语,使研究人员能够构建最先进个性化模型并将其部署到生产中。...与 Vision 和 NLP 等领域不同,RecSys 大部分持续创新和开发都是在封闭公司门后进行。对于研究这些技术学术研究人员或构建个性化用户体验公司而言,该领域远未实现民主化。...我们最初目标是“双塔”([1],[2])架构,这些架构具有单独子模块来学习候选项目和查询或上下文表示。输入信号可以是浮点“密集”特征或需要训练大型嵌入高基数分类“稀疏”特征混合。...由 FBGEMM 提供支持优化 RecSys 内核,包括对稀疏和量化操作支持。 一个分片器,它可以使用各种不同策略对嵌入表进行分区,包括数据并行、逐表、逐行、逐表行和逐列分片。...sparse embedding layers eb_configs = [ EmbeddingBagConfig( name=f"t_{feature_name}",

    94710

    开发 | Facebook 开源深度学习推荐模型 DLRM,可直接用 PyTorch 和 Caffe2 实现

    为了有助于加深人们对这一子领域理解,Facebook 开源了一个最先进深度学习推荐模型(DLRM),该模型是使用 Facebook 开源 PyTorch 和 Caffe2 平台实现。...这些实现允许我们将 Caffe2 框架与 PyTorch 框架以及当前专注于加速器 Glow 实现进行对比。...并行性 如上图所示,DLRM 基准由计算主导 MLP 和内存容量有限 embedding 组成。因此,依靠数据并行性来提高 MLP 性能,依靠模型并行性来满足嵌入内存容量需求是很自然。...它将每个设备上小批量嵌入查找结果随机移动到所有设备上小批量嵌入查找一部分。如下图所示,其中每种颜色表示小批量不同元素,每个数字表示设备及其分配 embedding。 ?...python dlrm_s_pytorch.py --arch-sparse-feature-size=16 --arch-mlp-bot="13-512-256-64-16" --arch-mlp-top

    80830

    Facebook 开源深度学习推荐模型 DLRM,可直接用 PyTorch 和 Caffe2 实现

    为了有助于加深人们对这一子领域理解,Facebook 开源了一个最先进深度学习推荐模型(DLRM),该模型是使用 Facebook 开源 PyTorch 和 Caffe2 平台实现。...这些实现允许我们将 Caffe2 框架与 PyTorch 框架以及当前专注于加速器 Glow 实现进行对比。...并行性 如上图所示,DLRM 基准由计算主导 MLP 和内存容量有限 embedding 组成。因此,依靠数据并行性来提高 MLP 性能,依靠模型并行性来满足嵌入内存容量需求是很自然。...它将每个设备上小批量嵌入查找结果随机移动到所有设备上小批量嵌入查找一部分。如下图所示,其中每种颜色表示小批量不同元素,每个数字表示设备及其分配 embedding。 ?...python dlrm_s_pytorch.py --arch-sparse-feature-size=16 --arch-mlp-bot="13-512-256-64-16" --arch-mlp-top

    1.3K10

    「紫禁之巅」四大图神经网络架构

    创立之初,本着避免重复造轮子原则,DGL基于主流框架进行开发,即框架上框架。目前,DGL已经支持PyTorch、MXNet和TensorFlow作为其后端。 消息传递是图计算经典编程模型。...此外,DGL也发布了训练知识图谱嵌入(Knowledge Graph Embedding)专用包DGL-KE,并在许多经典嵌入模型上进一步优化了性能。...同样使用消息传递机制,将会比普通矩阵运算更为高效、比稀疏矩阵更为友好。在其Github开源demo中,可以看到GAE、GCN、GAT等主流模型已经实现。与此同时,它还提供了面向对象和函数式API。...,但因是PyTorch扩展库,所以均是在PyTorch实现。...DGL在PyTorch、MXNet和TensorFlow实现了三十多种模型,还实现了多种sampling方法,对于构建自己模型更具灵活性。

    1.5K20

    谷歌AI发布TensorFlow 3D,智能汽车场景亲测好用

    3D稀疏卷积网络,在Waymo Open数据集上实验表明,这种实现比预先设计好TensorFlow操作提速「20倍」。...然而,用户可以自由地将其他流行数据集,NuScenes和Kitti,转换成类似的格式,并将其用于已有或自定义pipeline模型中,还可以利用TF 3D进行各种3D深度学习研究和应用,从快速原型设计到部署实时推理系统...因此,在TF 3D 中,我们采用了流形稀疏卷积(submanifold sparse convolution)和池操作,这些操作可以更有效地处理3D稀疏数据。...在Waymo Open数据集上实验表明,这种实现比预先设计好TensorFlow操作要快「20倍」左右。 ?...2020年,Facebook推出了 PyTorch3D,专注于3D渲染和虚拟现实。另一个是英伟达Kaolin,这是一个模块化可分辨渲染应用,高分辨率模拟环境。

    55520

    推荐系统基础:使用PyTorch进行矩阵分解进行动漫推荐

    矩阵因式分解(为了方便说明,数字是随机取) PyTorch实现 使用PyTorch实现矩阵分解,可以使用PyTorch提供嵌入层对用户和物品嵌入矩阵(Embedding)进行分解,利用梯度下降法得到最优分解...因为我们将使用PyTorch嵌入层来创建用户和物品嵌入,所以我们需要连续id来索引嵌入矩阵并访问每个用户/项目嵌入。...在我实现中,我刚刚用(0,11 /K)uniform值初始化了嵌入(随机初始化在我例子中运行得很好!)其中K是嵌入矩阵中因子数量。...emb_user: the trained user embedding emb_anime: the trained anime embedding """ Y = create_sparse_matrix...很难包含关于用户/物品附加上下文 我们只使用用户id和物品id来创建嵌入。我们不能在实现中使用关于用户和项任何其他信息。有一些复杂基于内容协同过滤模型可以用来解决这个问题。

    1.5K20

    学习TensorFlow中有关特征工程API

    input_layer函数作用与占位符定义函数tf.placeholder作用类似,都用来建立数据与模型之间连接。 通过这几个步骤便可以将特征列内容完全显示出来。...提示: 有关稀疏矩阵更多介绍可以参考《深度学习之TensorFlow——入门、原理与进阶实战》一书中9.4.17小节。...2.代码实现:构建词嵌入初始值 词嵌入过程将字典中词向量应用到多维数组中。...代码第61行,将运行图中所有张量打印出来。可以通过观察TensorFlow内部创建词嵌入张量情况,来验证共享特征列功能。 5.代码实现:建立会话输出结果 建立会话输出结果。...模拟数据sparse_input_a与sparse_input_b同时使用了共享词嵌入embedding_values_a。每个序列数据被转化成两个维度嵌入数据。

    5.7K50

    PyTorch发布一周年:盘点社区和工程大事件,后来者居上态势已显?

    同时有228篇提到TensorFlow,42篇提到Keras,32篇提到Theano和Matlab arXiv每月平均提到PyTorch 72次,TensorFlow 273次,Keras 100次,Caffe...,随后发布了他们PyTorch实现。...工程大事件 在过去一年,PyTorch团队实现了多个功能,提高了性能。我们一起回顾一下: 高阶梯度 去年8月,PyTorch实现了一个可以接收n阶导数通用接口,并增加了支持高阶梯度函数范围。...稀疏张量 去年三月,PyTorch发布了一个支持稀疏张量小程序包,五月发布了CUDA支持稀疏包。该程序包可以实现深度学习中常用稀疏范例稀疏嵌入。...PyTorch为张量操作添加了专门AVX和AVX2内联函数 编写了更快GPU内核,用于常用工作负载中 重写了几个神经网络operator代码,nn.Embedding等 此外,PyTorch将框架开销减小了

    884100
    领券