我正在尝试开发一种模型,该模型从候选人列表中选择最佳候选人:
K
个候选人的列表x
的单热点向量x[t] = p_t
,其中p_t
是t
是最佳候选的概率这就是我在Keras中尝试做的事情:
i
表示为特征向量f_i
(所有特征均为正)。该行的候选者可能少于K
;在这种情况下,我会掩盖
/用伪f_i
向量(在所有向量中)填充候选列表
-1's f_i
向量通过一组图层以获得一些分数s_i
;虚拟特征向量不应该被传递
通过这些层,应该直接获得0分s_i
上的softmax并获得最终概率第1步很简单,第3步可以通过自定义激活完成,如here所示。第2步是我不知道该怎么做;我尝试将Keras的Lambda
层与K.switch
一起使用:
score_layer = Lambda(lambda x: K.switch(K.sum(x) < 0, 0.0, score_using_layers(x))
但这没用。当我尝试编译模型并打印摘要时,它甚至都不会显示用于对真实特征向量评分的图层。我该怎么做?