有人可以在数学上告诉我在计算损失函数和指标时,在Keras中如何使用sample_weight和class_weight?一个简单的数学表达将是伟大的.
这是一个简单的乘法.样品所造成的损失因其样品重量而放大.假定i = 1 to n样本,样本的权重的权重向量w长度的n,并对于样品损失i表示为L_i:
特别是在Keras中,每个样品的损失与其重量的乘积除以不为0的重量分数,使得每批的损失与重量> 0个样品的数量成比例.让我们p为非零权重的比例.
以下是Keras回购的相关代码片段:
score_array = loss_fn(y_true, y_pred)
if weights is not None:
score_array *= weights
score_array /= K.mean(K.cast(K.not_equal(weights, 0), K.floatx()))
return K.mean(score_array)
Run Code Online (Sandbox Code Playgroud)
class_weight使用方式与sample_weight; 相同; 它只是为了方便在整个类中指定某些权重而提供的.
样本权重目前不适用于指标,仅适用于损失.
| 归档时间: |
|
| 查看次数: |
1951 次 |
| 最近记录: |