是否有可能获得嵌入keras层的输出?

问题描述

我想将时间用作深度学习模型的输入功能。因此,我需要使用嵌入层将其转换为嵌入向量。所以我用:

from keras.layers import Embedding
hours_input=Input(shape=(1,),name='hours_input')
hours_embedding=Embedding(24,64)hours_input

我需要嵌入层的输出(权重是我的意思)。我使用hours_embedding.get_weights()。 但是我得到一个错误: get_weights()缺少1个必需的位置参数:“ self” 那么,如何嵌入权重矩阵?

解决方法

首先创建模型。

hours_input=Input(shape=(1,),name='hours_input')
hours_embedding=Embedding(24,64)(hours_input)
model = keras.models.Model(inputs = hours_input,outputs = hours_embedding)

然后您可以访问:

model.layers[1].get_weights()

输出:

[array([[ 0.00782292,-0.03037642,-0.03229956,...,-0.02188529,-0.02597365,-0.04166167],[-0.04877049,-0.03961046,0.01000347,0.00204592,0.01949279,-0.00540505],[ 0.0323245,-0.02847096,-0.0023482,0.02859743,-0.04320076,0.01578701],[ 0.01989252,0.00970422,0.00193944,0.02689132,-0.00167314,0.00353283],[ 0.01885528,0.00589638,-0.03409225,-0.00504225,0.01269731,0.04380948],[-0.01756806,-0.00950485,-0.0189078,0.023773,-0.00471363,-0.03708603]],dtype=float32)]