首页
学习
活动
专区
工具
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,生成

    2.1K30

    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

    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.3K10

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

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

    1.5K40

    开发 | 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

    85130

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

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

    1K10

    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

    谷歌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,这是一个模块化的可分辨渲染的应用,如高分辨率模拟环境。

    56120

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

    创立之初,本着避免重复造轮子的原则,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.6K20

    【AI系统】谷歌 TPUv4 与光路交换

    在这期间,英伟达迭代了三代架构(Volta, Amber, Hopper),PyTorch 也代替了 TensorFlow 成为了业界的首选训练框架,同时也面临了对于超大计算能力的更多需求,因此,TPU...特别引人注目的是 Sparse Core 的引入,它专门针对稀疏计算进行了优化,使得 TPU v4 在处理深度学习中的 Embedding 层时更加高效。...Sparse Core:TPU v4 的硬件增加了 Sparse Core 的支持用于利好稀疏计算,基于 TPU v4 改良的自有 Transformer 模型架构3D torus:TPU v4 首次亮相了...我们在下文会细分讲解第二个特性(Sparse Core)和 3D-Torus 的互联方式Sparse Core 稀疏计算核Embedding 层的计算Embedding 处理离散型分类特征(Categorical...TPU v4 在 Sparse Core 中原生支持了 Embedding 计算的模型并行和数据并行,提供了极大的并行灵活度,让大规模的 Embedding 计算能够很好的在大规模集群内被妥善计算和处理

    14510

    推荐系统基础:使用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.8K50

    转载:【AI系统】谷歌 TPUv4 与光路交换

    在这期间,英伟达迭代了三代架构(Volta, Amber, Hopper),PyTorch 也代替了 TensorFlow 成为了业界的首选训练框架,同时也面临了对于超大计算能力的更多需求,因此,TPU...特别引人注目的是 Sparse Core 的引入,它专门针对稀疏计算进行了优化,使得 TPU v4 在处理深度学习中的 Embedding 层时更加高效。...Sparse Core:TPU v4 的硬件增加了 Sparse Core 的支持用于利好稀疏计算,基于 TPU v4 改良的自有 Transformer 模型架构3D torus:TPU v4 首次亮相了...我们在下文会细分讲解第二个特性(Sparse Core)和 3D-Torus 的互联方式Sparse Core 稀疏计算核Embedding 层的计算Embedding 处理离散型分类特征(Categorical...TPU v4 在 Sparse Core 中原生支持了 Embedding 计算的模型并行和数据并行,提供了极大的并行灵活度,让大规模的 Embedding 计算能够很好的在大规模集群内被妥善计算和处理

    10710
    领券