小编mat*_*112的帖子

Keras:如何在损失函数中使用层的权重?

我在keras中实现自定义损失功能。该模型是autoencoder。所述第一层是一个嵌入层,其嵌入尺寸的输入(batch_size, sentence_length)(batch_size, sentence_length, embedding_dimension)。然后,模型将嵌入压缩为一定维数的向量,最后必须重建嵌入(batch_size, sentence_lenght, embedding_dimension)

但是嵌入层是可训练的,并且损失必须使用嵌入层的权重(我必须对词汇表的所有词嵌入进行求和)。

例如,如果我想训练玩具示例:“猫”。的sentence_length is 2并假设embedding_dimension is 10vocabulary size is 50,所以嵌入矩阵具有形状(50,10)。嵌入层的输出X为shape (1,2,10)。然后,它传递到模型中,并且输出X_hat也具有形状(1,2,10)。必须对模型进行训练,以最大程度地提高在嵌入层中表示“ the” X_hat[0]的矢量与X[0]表示“ the” 的矢量最相似的可能性,而对于“ cat”也一样。但是损失是如此之大,以至于我必须计算X和之间的余弦相似度,并X_hat通过将的余弦相似度之和归一化X_hat 以及嵌入矩阵中的每个嵌入(由于词汇量为50,因此为50),它们是嵌入层权重的列。

但是,在训练过程的每次迭代中,如何访问嵌入层中的权重?

谢谢 !

embedding loss keras tensor

5
推荐指数
1
解决办法
1036
查看次数

标签 统计

embedding ×1

keras ×1

loss ×1

tensor ×1