最近在看别人写的代码,遇到经常使用with torch.no_grad()。一直对这个一知半解,特各方查资料,对其进行一个简短的总结。
不使用with torch.no_grad():此时有grad_fn=属性,表示,计算的结果在一计算图当中,可以进行梯度反传等操作。
只是想要网络结果的话就不需要后向传播 ,如果你想通过网络输出的结果去进一步优化网络的话 就需要后向传播了。
以上代码为使用了with torch.no_grad(),开始自己不是很清楚,特问了别人之后才知道,原来是因为验证集的时候,我们只是想看一下训练的效果,并不是想通过验证集来更新网络时,就可以使用with torch.no_grad()。最终,torch.save就是保存的训练集的训练模型。