Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False.
时间: 2023-11-04 22:54:10 浏览: 125
当您在尝试在CUDA设备上反序列化对象时,出现了错误"Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False." 这个错误是由于您的机器上没有可用的CUDA设备导致的。
为了解决这个问题,您可以使用torch.load函数时添加参数map_location=torch.device('cpu')或者map_location='cpu',这将把对象的存储映射到CPU上。
除此之外,还有一个可能的错误是"AssertionError: Torch not compiled with CUDA enabled",这是因为您的PyTorch没有启用CUDA编译。
现在,您可以继续提出其他
相关问题
Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False
这个错误意味着你正在尝试将一个在CUDA设备上序列化的对象反序列化,但是torch.cuda.is_available()返回的值为False,即CUDA不可用。
要解决这个问题,你可以在torch.load()函数后面添加map_location=torch.device('cpu')或者map_location='cpu'参数来将存储映射到CPU上。例如:
state_dict = torch.load(self.model_path, map_location=torch.device('cpu')) 或
state_dict = torch.load(self.model_path, map_location='cpu')
如果你看到了"AssertionError: Torch not compiled with CUDA enabled"错误,这意味着你的PyTorch没有启用CUDA。你可以去掉代码中所有的.cuda()函数调用来解决这个问题。你可以注释掉这些代码并保存,然后重新运行程序。
另外,你需要根据你的服务器上的CUDA版本选择适合的PyTorch版本。确保你安装了与服务器CUDA版本兼容的PyTorch版本。比如,如果你的服务器CUDA版本为11.0,你需要找到与之兼容的PyTorch版本,并进行相应的安装。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [pytorch出错: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False](https://blog.csdn.net/qq_27149279/article/details/106037681)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False.](https://blog.csdn.net/weixin_40438421/article/details/130514552)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
untimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False.
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. 如果你在一个仅有CPU的机器上运行,请使用torch.load并设置map_location=torch.device('cpu')将存储映射到CPU上解决这个问题。你可以在加载模型时添加map_location='cpu'参数,然后将模型放到CPU上进行运算。例如:
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
weights = torch.load('yolov.pt', map_location='cpu')
model = weights['model']
model = model.half().to(device)
_ = model.eval()
阅读全文