Keras自定义丢失,在y_true和y_pred中的批处理大小中有错误

时间:2018-12-06 11:42:26

标签: tensorflow keras loss-function

我想创建一个自定义损失函数,我想在其中使用预先计算的y_true,但是不幸的是,当我使用该函数时,批处理大小与y_pred不匹配时出现了错误。我有兴趣了解周围的工作。这是我的自定义损失的示例代码。

  def avg_vect_loss(y_true, y_pred):
    #y_true need not to be used, instead pos_avg_vects and neg_avg_vects are considered as my pre calculated y_trues
     pos_avg_vects, neg_avg_vects = pos_neg_avg_vects()
     l2_dist_to_pos_avg = l2_distance_loss(y_pred, pos_avg_vects)
     l2_dist_to_neg_avg = l2_distance_loss(y_pred, neg_avg_vects)
     return l2_dist_to_pos_avg/l2_dist_to_neg_avg

代码已注释。我的损失函数试图使y_pred与neg_avg_vec之间的l2距离最大化,并使y_pred与pos_avg_vec之间的l2_distance最小化。由于y_pred和pos_avg_vects,neg_avg_vects之间的批量大小不匹配,我出现了错误。

pos_avg_vector和neg_avg_vector是y_true的最近邻居和最远邻居的平均向量。

请注意,y_true,y_pred是单词向量。我的训练集和测试集由对应单词的单词向量组成。

0 个答案:

没有答案