YvanYin/Metric3D

目前的代码只能在GPU:0中运行吗?

sukasu403 opened this issue · 1 comments

pred_depth, confidence, output_dict = model.inference({'input': rgb})
我将模型和上述代码中的rgb通过to(device)移到GPU:1后会在代码的其他部分报错:
Metric3D/mono/model/decode_heads/RAFTDepthNormalDPTDecoder5.py", line 215, in compute_depth_expectation
depth = torch.sum(prob * depth_values, 1)
~~~~~^~~~~~~~~~~~~~
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:1 and cuda:0!
也就是说,目前代码中的数据都是全部默认放置在GPU:0中的?

这个depth_values是初始化在网络里面、存在寄存器里面的量,而不是参数。这个值可能需要手动调一下硬件。

我们训练的时候用的DataDistributedParallel,应该不会有这个问题