【问题标题】:Difference between feature_column.embedding_column and keras.layers.Embedding in TensorFlowTensorFlow 中 feature_column.embedding_column 和 keras.layers.Embedding 的区别
【发布时间】:2020-03-04 00:03:58
【问题描述】:

我几乎所有的项目都在使用 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 的 [0,1,2] 及其单热编码代表。[ [1,0,0],[0,1,0],[0,0,1] for feature_column.embedding_column)?

【问题讨论】:

    标签: tensorflow input deep-learning embedding


    【解决方案1】:

    在查看这两个操作的源代码后,我发现:

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-03
      • 2018-08-20
      • 2017-04-13
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      相关资源
      最近更新 更多