在yolov5中添加自己的模块时出现错误
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
PyTorch 中的张量(Tensors)是数据的主要表现形式,可以存在于计算设备 CPU或GPU上。当进行涉及多个张量的操作时,如加法、乘法或更复杂的神经网络层计算,所有这些张量都必须在同一设备上。
一、最简单的方式是使用.cuda()或.cpu()方法将张量转移到GPU或CPU上。
tensor1 = tensor1.cuda() # 将张量转移到GPU上
tensor2 = tensor2.cpu() # 将张量转移到CPU上
但是这种方法没有解决我的代码问题
二、控制或者说确保y在与x随时都处于相同的设备上
#1.
if x.device != y.device:#可以省略
y = y.to(x.device) # 确保y在与x相同的设备上
#2.
y = self.xxx(y).to(x.device)
检查输入是否使用cuda
a = x.is_cuda
print(a)