代码:
import torch
yolo_ = torch.hub.load('ultralytics/yolov5', 'yolov5x', pretrained=True, force_reload=True)
yolo_(torch.rand((2,3,1280,720)))
退货:
RuntimeError: Sizes of tensors must match except in dimension 1. Expected size 46 but got size 45 for tensor number 1 in the list.
来自:
~/.cache/torch/hub/ultralytics_yolov5_master/models/common.py in forward(self, x)
310
311 def forward(self, x):
--> 312 return torch.cat(x, self.d)
这个问题是在尝试将yolo集成到更大的分类器中时提出的。我把它缩小到上面的代码。据我所知,这个错误是在模型之内。我尝试了不同的输入形状,但得到相同的结果。我也试过yolo5s,同样的交易。下面是错误来源的yolo github代码。https://github.com/ultralytics/yolov5/blob/master/models/common.py
连接是在2个Tensor的列表x
上完成的:
x[0].shape=
torch.Size([2, 640, 80, 46])
x[1].shape=
torch.Size([2, 640, 80, 45])
为什么会这样?任何提示都很感激。
1条答案
按热度按时间7vux5j2d1#
输入必须是Tensor,因为torch数据加载器在训练期间向模型呈现Tensor,而不是numpy数组。