提取嵌入层的输出

Extract the output of the embedding layer

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

输入:

df["nominal_column"]

输出:

the embeddings of the column.

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

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

如果嵌入是模型的一部分并且您对其进行了训练,那么您可以使用 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,returns numpy 数组中的权重。