Python RuntimeError:应为标量类型Double的对象,但为参数#2'获取标量类型Float;其他';打电话给_th_max
文件 “/home/jake/venv/lib/python3.7/site packages/torchvision/models/detection/rpn.py”, 第274行,将_目标_分配给_锚 match_quality_matrix=self.box_相似性(gt_框,每个图像的锚定)文件 “/home/jake/venv/lib/python3.7/site packages/torchvision/ops/box.py”, 第153行,在“借据”框中 lt=torch.max(boxes1[:,None,:2],boxes2[:,:2])#[N,M,2]运行时错误:应为标量类型Double的对象,但获得标量 在调用_th_max时,为参数#2“other”键入Float 出现以下错误,以下是类型Python RuntimeError:应为标量类型Double的对象,但为参数#2'获取标量类型Float;其他';打电话给_th_max,python,pytorch,tensor,torch,torchvision,Python,Pytorch,Tensor,Torch,Torchvision,文件 “/home/jake/venv/lib/python3.7/site packages/torchvision/models/detection/rpn.py”, 第274行,将_目标_分配给_锚 match_quality_matrix=self.box_相似性(gt_框,每个图像的锚定)文件 “/home/jake/venv/lib/python3.7/site packages/torchvision/ops/box.py”, 第153行,在“借据”框中 lt=torch.max(
annotations-> [{'boxes': tensor([[131.5124, 169.4232, 165.8235, 209.7217],
[157.2659, 185.7604, 199.0850, 210.4478],
[184.4726, 171.3594, 211.5178, 210.3267],
[170.5867, 154.1751, 211.7600, 188.7858],
[162.8364, 156.2324, 182.1313, 186.7285],
[131.2702, 149.8185, 149.4349, 172.3276],
[192.0614, 140.5002, 208.4500, 155.2642],
[165.2583, 140.5002, 188.2670, 158.0476],
[169.5371, 131.9080, 193.3531, 151.1497],
[131.1895, 133.2392, 140.1507, 156.3534]], device='cuda:0',
dtype=torch.float64), 'labels': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], device='cuda:0'), 'area': tensor([1382.6857, 1032.4053, 1053.8795, 1425.0382, 588.4218, 408.8705,
241.9614, 403.7413, 458.2574, 207.1317], device='cuda:0'), 'iscrowd': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], device='cuda:0')}]
我认为盒子的类型是浮动的。这导致了如何将其修复为双倍的问题?没有任何上下文,很难判断 但解决方法是为每个张量调用
mytensor=mytensor.double()
,以及mymodel=mymodel.double()
将数据和模型转换为相同的双精度类型。
或者,您可以将浮动类型的
.double()
替换为.float()
。这两种方法都应该正常工作没有任何上下文很难判断
但解决方法是为每个张量调用mytensor=mytensor.double()
,以及mymodel=mymodel.double()
将数据和模型转换为相同的双精度类型。
或者,您可以将浮动类型的.double()
替换为.float()
。这两种方法都应该正常工作