我理解人们通常使用下面的损失和错误来训练
ce = cross_entropy_with_softmax(z, label_var)
pe = classification_error(z, label_var)
trainer = Trainer(z, (ce, pe), ...)
我们可以覆盖或定义自己的丢失和错误方法吗?我们真正需要的是在计算损失和误差时增加权重。例如,我们有4个类,重要(更多的权重)不将第一个类错误分类为其他类,反之亦然,但如果它在最后3个类中错误分类则不重要(重量较轻)。在cntk中处理这个问题的最佳方法是什么?
答案 0 :(得分:1)
是的,任何CNTK表达式都是有效的丢失或错误:这里是交叉熵:
ce = C.negate(C.reduce_sum(C.element_times(target,C.log(prediction)),axis = -1))