All input tensors must be on the same device
RuntimeError: All input tensors must be on the same device. Received cuda:0 and cpu #18
RuntimeError: All input tensors must be on the same device. Received cuda:2 and cuda:0
pytorch在进行计算时,
张量必须在同一设备,都在cpu上,或者都在指定的gpu上,不同gpu之间也不能实时计算。
举例:
class DCRNN(torch.nn.Module):
def _set_hidden_state(self, X, H):
if H is None:
H = torch.zeros(X.shape[0], self.out_channels)
return H
这个例子中,H是新创建Tensor变量,如果X也为Tensor变量,分配gpu或者cpu后,H没有分配gpu或cpu资源
所以可能报错。
解决方法:
H.to(X.device)
当然,X也需要是tensor数据类型。