Skip to content

non_max_suppression结果size为0 #3

Description

@linklist2

请问我使用n系列的pt文件转为weights文件后,进行训练后,训练的过程是正常的,但是在进行val的时候,non_max_suppression后pds的size为0,后面的代码就报错了。

image

但是如果使用您提供的yolov5s.weights训练的话,就不会出现问题。

我转换的代码参考您提供的代码,如下所示:

from pathlib import Path

from models.common import DetectMultiBackend
import numpy as np
import torch
from utils.torch_utils import select_device

weights = 'yolov5s.weights'

pt_weights = 'yolov5s.pt'

device = select_device("cuda:0")
model = DetectMultiBackend(pt_weights, device=device, dnn=False, data='data/coco128.yaml', fp16=False)

# parms "model" is DetectMultiBackend's instance
ddd = model.model.state_dict()
i = 0
if Path(weights).exists():
    f = open(weights, 'rb')
    for k, v in ddd.items():
        if 'weight' in k or 'bias' in k or 'running_mean' in k or 'running_var' in k:
            # t = v.cpu().numpy()
            # if 'weight' in k or 'bias' in k:
            #     print(k, i)
            #     i += 1

            nb = v.element_size() * v.numel()
            data_ = f.read(nb)
            y = np.frombuffer(data_, np.float32).reshape(v.shape)
            y = torch.from_numpy(y).to(v.device)
            v[...] = torch.zeros(v.shape, device=v.device)[...]
            v[...] = y[...]
            print(i, k, v.shape, nb)
            i += 1
            # nb2 = t.nbytes
            # print(k, t.shape, t.dtype)
            # f.write(t.tobytes())
        # v[...] = torch.zeros(v.shape,device=v.device)[...]

    f.close()

else:
    f = open(weights, 'wb')
    for k, v in ddd.items():
        if 'weight' in k or 'bias' in k or 'running_mean' in k or 'running_var' in k:
            t = v.cpu().numpy()
            print(k, t.shape, t.dtype)
            f.write(t.tobytes())
        # v[...] = torch.zeros(v.shape,device=v.device)[...]

    f.close()

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions