想问一下,loss.backward()时候使用的的到底是什么?
收藏
很显然,loss()函数产生的是一个具体的值,但是backward往回算梯度的时候,使用的是什么?
比如说,有这么一个输出:
pred=[1.5,1.7,1.7],true=[1.6,1.5,1.9]
假设loss的算法是相减取绝对值后相加,得到diff=[0.1,-0.2,0.2],那么loss=0.1+0.2+0.2=0.5
请问使用loss.forward()计算的时候,diff,loss,各个值都产生了什么影响?
0
收藏
请登录后评论
绝对值不好做loss,梯度不好算。如果是差的平方做loss 梯度是2*diff*loss
反向传播,是为了对参数进行优化。
可以找找梯度下降的文章了解一下。
建议看源码,现在都是自动微分,但具体的还真没看过