feature_column.embedding_column与keras.layers.TensorFlow中的嵌入之间的差异

问题描述 投票:1回答:1

我一直在几乎所有项目中使用keras.layers.Embedding。但是,最近,我想摆弄tf.data并找到feature_column.embedding_column

从文档中:

feature_column.embedding_column-从稀疏分类输入转换的DenseColumn。输入稀疏但要转换为密集输入时使用表示形式(例如,用于馈送至DNN)。

keras.layers.Embedding-将正整数(索引)转换为固定大小的密集向量。例如[[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]该层只能用作模型的第一层。

[我的问题是,两种api在不同类型的输入数据上是否都做类似的事情(例如,对于keras.layers.Embedding及其单编码的rep [例如,输入-[0,1,2]-[[ 1,0,0],[0,1,0],[0,0,1]用于feature_column.embedding_column)?

tensorflow input deep-learning embedding
1个回答
0
投票

查看了这两种操作的源代码后,发现的是:

  • 两个操作都依赖于tensorflow.python.ops.embedding_ops的功能性;
  • keras.layers.Embedding使用dense表示形式,并包含用于处理形状,初始变量等的通用keras代码;
  • feature_column.embedding_column依靠sparse并包含缓存结果的功能。

所以,您的猜测似乎是正确的:这两个正在做类似的事情,依赖于不同的输入表示形式,包含一些不会改变其本质的逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.