pytorch YOLOv 5- Concat()问题,RuntimeError:Tensor的大小必须匹配,除了维度1

anhgbhbe  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(448)

代码:

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])

为什么会这样?任何提示都很感激。

7vux5j2d

7vux5j2d1#

输入必须是Tensor,因为torch数据加载器在训练期间向模型呈现Tensor,而不是numpy数组。

相关问题