神经网络每次反向传播是可以不求出损失函数的值,直接计算梯度进行反向传播的。
在神经网络中,计算backward的过程仅仅需要backward函数中所有需要的数据都准备好就可以计算,跟forward函数是没有关系的。
而后续的操作是需要前序操作的forward结果的,所以forward过程通常是不可缺少的。
但是,损失函数Loss是神经网络中的最后一个节点,没有后续操作(多损失函数除外),因此是不需要forward过程的,但如果从实际出发,损失函数的Loss值是反映神经网络当前训练状态的重要指标,只是为了节省少量的forward过程的计算量收益不大,也不符合实际场景需要。
Reference:
https://www.zhihu.com/question/507718145