在Torch中修改ClassNLLCriterion

时间:2017-05-18 13:25:32

标签: customization torch loss

我是Torch的新手,我想在Torch中创建一个自定义丢失函数,它是ClassNLLCriterion的修改。具体而言,ClassNLLCriterion损失是:

loss(x, class) = -x[class]

我想将其修改为:

loss(x, class) = -x[class] + F(x)

其中F(x)是一个在表(作为键)中查找x并输出其值的函数。

我的问题是,实施此自定义标准的正确方法是什么? updateOutput()函数似乎很简单,但如何实现updateGradInput()函数?

1 个答案:

答案 0 :(得分:0)

如果F(x)在网络参数方面无法区分,则您无法在损失函数中使用它。可分性是在反向传播期间执行梯度下降的必要条件。请参阅Non-smooth and non-differentiable customized loss function tensorflow