【问题标题】:Extract the output of the embedding layer提取嵌入层的输出
【发布时间】:2023-03-12 10:03:02
【问题描述】:

我正在尝试建立一个回归模型,为此我有一个具有非常高基数的名义变量。我正在尝试获取该列的分类嵌入。

输入:

df["nominal_column"]

输出:

the embeddings of the column.

我想单独使用嵌入列的操作,因为我需要将其作为传统回归模型的输入。有没有办法单独提取该输出。

P.S 我不是要代码,任何关于该方法的建议都会很棒。

【问题讨论】:

    标签: tensorflow keras categorical-data embedding


    【解决方案1】:

    如果嵌入是模型的一部分并且您对其进行训练,那么您可以使用 keras 的功能 API 来获取图中任何中间操作的输出:

    x=Input((number_of_categories,))
    y=Embedding(parameters_of_your_embeddings)(x)
    output=Rest_of_your_model()(y)
    model=Model(inputs=[x],outputs=[output,y])
    

    如果您在训练模型之前执行此操作,则必须定义自定义损失函数,该函数仅处理部分输出。另一种方法是只用一个输出训练模型,然后用两个输出创建相同的模型,并根据训练的模型设置第二个模型的权重。

    如果你想从你的模型中获取嵌入矩阵,你可以使用嵌入层的 get_weights 方法,它返回 numpy 数组中的权重。

    【讨论】:

      猜你喜欢
      • 2020-01-19
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 2019-11-13
      • 2022-12-31
      • 1970-01-01
      相关资源
      最近更新 更多