提取嵌入层的输出
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 数组中的权重。
我正在尝试建立一个回归模型,为此我有一个基数非常高的名义变量。我正在尝试获取列的分类嵌入。
输入:
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 数组中的权重。