当前位置:   article > 正文

解决:RuntimeError: Expected all tensors to be on the same device, but found at least two devices

runtimeerror: expected all tensors to be on the same device, but found at le

报错

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:1 and cuda:0

可能原因1:

传入模型的数据格式为对象(object),DataParallel无法分割对象类型的数据,没有分割直接传入gpu0。
DataParallel只能自动分割Tensor, tuple, list, dict这几种类型的数据。

可能原因2:

如果你的model存在多个encoder、fusion或者discriminator,可以考虑根据如下方式调整encoder

encoder =  YourEncoder1(config).to(device)
model = YourMoldel(encoder).to(device)
model = torch.nn.DataParallel(model)
  • 1
  • 2
  • 3

注意:

  1. torch.nn.DataParallel前必须要写 ‘=’
  2. YourEncoder1需要是nn.Module,不然也是无法分配的
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/149497?site
推荐阅读
相关标签
  

闽ICP备14008679号