在cntk

时间:2017-08-28 08:30:13

标签: classification customization cntk loss

我理解人们通常使用下面的损失和错误来训练

ce = cross_entropy_with_softmax(z, label_var) 
pe = classification_error(z, label_var) 
trainer = Trainer(z, (ce, pe), ...)

我们可以覆盖或定义自己的丢失和错误方法吗?我们真正需要的是在计算损失和误差时增加权重。例如,我们有4个类,重要(更多的权重)不将第一个类错误分类为其他类,反之亦然,但如果它在最后3个类中错误分类则不重要(重量较轻)。在cntk中处理这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

是的,任何CNTK表达式都是有效的丢失或错误:这里是交叉熵:

ce = C.negate(C.reduce_sum(C.element_times(target,C.log(prediction)),axis = -1))