首页 > 编程知识 正文

深入浅出pytorch,pytorch是啥

时间:2023-05-05 05:52:20 阅读:175240 作者:3482

入坑runtime error : tryingtobackwardthroughthegraphasecondtime,butthesavedintermediateresultshavealreadybenfreed.specifred

通过查阅资料,我们发现调用backward时出现的问题,即重要的反向传播计算是错误的。 使用图像示例

forIinrange(1000 ) :#opt.zero_grad ) #计算损耗cri=nn.MSELoss ) ) loss=CRI ) out1,target.T ) #反向传播loss.backkk loss.data )用pytorch构建的计算图是动态图,很明显,代码有1000次迭代,为了避免立即释放,必须添加标志retain_graph=True

重写

loss.backward (retain _ graph=true )坑2跳,所以代码完成了吗? 不! 不! 不! 又弄错了!

我错了很久

运行时间错误3360 oneofthevariablesneededforgradientcomputationhasbeenmodifiedbyaninplaceoperation 3360 [ torch.float tensor ] expected version1instead.hint : enableanomalydetectiontofindtheoperationthatfailedtocomputeitsgradient,with torch.auto gro

这就是说梯度供不应求了,出现了nan吗? 仔细看这个代码的话,会不会缺了什么? 是的,我缺了头。

的整个反复过程,因为没有输入特征,所以可以反复毛发。 不就是在第一次迭代之后出现了nan吗!

给您正确的代码!

forIinrange(1000 ) : # )网络out1=net(x ) x ) #清除opt.zero_grad ) #计算损耗cri=nn.MSELoss ) loss=CRI ) out1

没有的优化程序,自己做!

#构建优化:丢失——梯度清零——反向传播##forIinrange(1000 ) : ) CRI=nn.MSEloss ) #loss=CRI ) out, target.T ) #归零#net.zero_grad(##后传播# loss.backward (retain _ graph=true ) #更新权重# l _ rate=

pytorch基础知识

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。