yolov3/yolov5 val.py Training normaler Testfehler

Erstellen Sie Ihr eigenes Modell basierend auf der u-Version von yolov3/yolov5, ändern Sie das Backbone-Netzwerk oder den Kopf, und das Training kann normal trainiert werden. Verwenden Sie nach Abschluss des Trainings den Befehl python val.py --weights run/exp/train /best.pt zum Testen und Melden eines Fehlers:
RuntimeError: Größen der Tensoren müssen übereinstimmen, außer in Dimension 2. Habe 27 und 28 erhalten (Der fehlerhafte Index ist 0)
Wie in der Abbildung unten gezeigt,
Fügen Sie hier eine Bildbeschreibung ein
dachte ich, dass es sich um einen Dimensionsfehler handelte Die Größe der Feature-Map stimmt nicht überein, kann aber normal trainiert werden. Das sollte nicht am aufgebauten Netzwerk liegen. Problem, endlich eine Lösung in github/yolov5
gefunden: common.py suchen, #stride = int(model ändern. stride.max()) zu stride = max(int(model.stride.max()), 32) ,wie folgt:

elif pt:  # PyTorch
            from models.experimental import attempt_load  # scoped to avoid circular import
            model = torch.jit.load(w) if 'torchscript' in w else attempt_load(weights, map_location=device)
            #stride = int(model.stride.max())  # model stride
            stride = max(int(model.stride.max()), 32)  # model stride

Guess you like

Origin blog.csdn.net/weixin_44769034/article/details/125392620