矢量化张量运算,而不是在keras自定义损失函数中使用for循环



我正在编写一个自定义损失函数,它使用惩罚矩阵来计算损失。y_truey_pred值是矩阵惩罚矩阵A:的索引

def score(y_true, y_pred):
S = 0.0
for i in range(0, y_true.shape[0]):
S -= A[y_true[i], y_pred[i]]
return S/y_true.shape[0]

由于for循环不能提供最佳性能,我想知道如果没有它,我怎么能完成下面的代码片段

S -= A[y_true[i], y_pred[i]]

在我看来,如果y_true包含行索引,y_pred包含列索引,则以下内容对您有效

S = -sum(A[y_true,y_pred])

最新更新