torch 踩坑记录(一)

本文记录了在使用PyTorch时遇到的AMD显卡兼容问题,以及在处理梯度和optimizer时遇到的错误。在Linux上,AMD老显卡建议使用torch_directml。对于没有梯度的错误,原因是不恰当使用to(device)导致require_grad丢失。optimizer未正确加载也会引发bug,官方文档中提供了加载optimizer的示例。
摘要由CSDN通过智能技术生成

AMD 的显卡问题

amd的老显卡,linux平台早不更新了,建议win平台下面用 torch_directml 搞定

	pip install torch_directml
	import torch_directml
	device = torch_directml.device()

剩下的内容和cuda一样了。

没有梯度的错误

element 0 of tensors does not require grad and does not have a grad_fn
这个问题太恶心了,不过问题还是在于代码不规范,没有理解到torch的工作机制。错误出现在保存后,再load,结果就出错了。翻阅了很多地方,才知道是to(device)不能乱用,会把require_grad 这个参数给丢掉。仔细检查代码,发现,load 的时候,正确的代码应该是。

checkpoint = torch.load(model_path, map_location=device)
model = MyNet(input_dim)
model &
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值