我正在编写一个自定义损失函数,它使用惩罚矩阵来计算损失。y_true
和y_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])