我试图通过设置model = nn.DataParallel(model).cuda()
在多个GPU上使用DataParallel运行我的模型,但每次出现此错误时-
RuntimeError: chunk expects at least a 1-dimensional tensor (chunk at /pytorch/aten/src/ATen/native/TensorShape.cpp:184).
我的代码是正确的。有人知道怎么了吗
我已尝试在终端上设置device_ids=[0,1]
参数和CUDA_VISIBLE_DEVICES
。还尝试了不同的批量大小
要确定问题,您应该检查每个小批量的输入数据的形状。文档中说,
nn.DataParallel
在dim0
中分割输入张量,并将每个块发送到指定的GPU。从错误消息中,似乎您正试图传递一个0维张量一个可能的原因是,如果您有一个带有
n
示例的小批处理,并且您在多个n
GPU上运行程序,那么您将得到此错误让我们考虑下面的场景。
现在,在上面的场景中,在第三个小批量中,将有一个示例。因此,不可能将块发送到所有特定的GPU,您将收到错误消息。因此,请检查您是否不是此问题的受害者
相关问题 更多 >
编程相关推荐