RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! (when checking argument for argument index in method wrapper_CUDA__index_select)
这个错误通常意味着你在 PyTorch 中尝试执行的操作涉及到了位于不同设备(通常是 CPU 和 GPU)上的张量。
1.检查张量所在设备
print("Tensor CPU device:", input_ids.device)
print("Attention mask device:", attention_mask.device)
Tensor CPU device: cpu
Attention mask device:cpu
2.将所有张量移动到相同的设备
一旦确认了张量所在的设备,你需要确保所有张量都在同一个设备上。你可以使用 .to() 方法来将张量移动到目标设备。移动到 GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print("Model device:", device)
input_ids = input_ids.to(device)
attention_mask = attention_mask.to(device)