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=dev

本文记录了在使用PyTorch时遇到的AMD显卡兼容问题,以及在处理梯度和optimizer时遇到的错误。在Linux上,AMD老显卡建议使用torch_directml。对于没有梯度的错误,原因是不恰当使用to(device)导致require_grad丢失。optimizer未正确加载也会引发bug,官方文档中提供了加载optimizer的示例。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



