报错:
new_cloud = torch.bmm((torch.from_numpy(c[:,0:3]).view(1,-1,3).cuda() - T), R).contiguous()
RuntimeError: Expected object of type torch.cuda.FloatTensor but found type torch.cuda.DoubleTensor for argument #2 'mat2'
可见通过.cuda()操作已经将array数组转成的tensor送入cuda中,这个报错不是因为数据不在cuda中导致,而是因为需要进行计算的数据类型不统一。
更改为:
new_cloud = torch.bmm((torch.from_numpy(c[:,0:3].astype(np.float32)).view(1,-1,3).cuda() - T), R).contiguous()
将numpy array先转成np.float32然后再转成tensor即可