TensorFlow中的feature_column.embedding_column和keras.layers.Embedding之间的区别

我几乎所有项目都使用 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,1] for feature_column.embedding_column)?

speedstar119 回答:TensorFlow中的feature_column.embedding_column和keras.layers.Embedding之间的区别

在检查了两种操作的源代码之后,我发现了以下内容:

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

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

本文链接:https://www.f2er.com/3145102.html

大家都在问