CoDet icon indicating copy to clipboard operation
CoDet copied to clipboard

Weights loading warnings

Open Instinct323 opened this issue 7 months ago • 0 comments

Hello! I've recently been trying to use your model, but I'm encountering some issues when loading the weights. I'd really appreciate it if you could take a quick look for me!

Here is my code:

import sys
import warnings

import matplotlib.pyplot as plt
import supervision as sv
import torch
from detectron2.config import get_cfg
from detectron2.data.detection_utils import read_image
from detectron2.engine.defaults import DefaultPredictor

sys.path.insert(0, "third_party/CenterNet2")
from centernet.config import add_centernet_config
from codet.config import add_codet_config

warnings.filterwarnings("ignore")


def setup_cfg(file):
    confidence_threshold = 0.5
    pred_all_class = False

    cfg = get_cfg()
    if not torch.cuda.is_available(): cfg.MODEL.DEVICE = "cpu"
    add_centernet_config(cfg)
    add_codet_config(cfg)
    cfg.merge_from_file(file)
    # Set score_threshold for builtin models
    cfg.MODEL.RETINANET.SCORE_THRESH_TEST = cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = (
        cfg.MODEL.PANOPTIC_FPN.COMBINE).INSTANCES_CONFIDENCE_THRESH = confidence_threshold
    cfg.MODEL.ROI_BOX_HEAD.ZEROSHOT_WEIGHT_PATH = 'rand'  # load later
    if not pred_all_class:
        cfg.MODEL.ROI_HEADS.ONE_CLASS_PER_PROPOSAL = True
    cfg.freeze()
    return cfg


def to_detections(result: dict):
    xyxy = result["instances"].get_fields()["pred_boxes"].tensor.cpu().data.numpy()
    return sv.Detections(xyxy=xyxy)


predictor = DefaultPredictor(setup_cfg("configs/CoDet_OVLVIS_SwinB_4x_ft4x.yaml"))
img = read_image("/media/tongzj/Data/Workbench/ModelsAPI/assets/desktop-c.png", format="BGR")

dets = to_detections(predictor(img))
anno = sv.BoxAnnotator(color_lookup=sv.ColorLookup.INDEX)
res = anno.annotate(img.copy(), dets)
plt.imshow(res)
plt.show()

The relevant configuration is as follows:

  • MODEL.WEIGHTS: CoDet_OVLVIS_SwinB_4x_ft4x.pth, and I can confirm that the weight path is correct
  • MODEL.CAT_FREQ_PATH: commented out, since I don't plan to train the model right now The warning message I received is:
Skip loading parameter 'roi_heads.box_predictor.0.cls_score.zs_weight' to the model due to incompatible shapes: (512, 5910) in the checkpoint but (512, 1204) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.0.fc1.weight' to the model due to incompatible shapes: (64, 448) in the checkpoint but (128, 896) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.0.fc1.bias' to the model due to incompatible shapes: (64,) in the checkpoint but (128,) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.0.fc2.weight' to the model due to incompatible shapes: (1, 64) in the checkpoint but (1, 128) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.0.weight_transform.0.weight' to the model due to incompatible shapes: (64, 448) in the checkpoint but (128, 896) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.0.weight_transform.0.bias' to the model due to incompatible shapes: (64,) in the checkpoint but (128,) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.0.weight_transform.2.weight' to the model due to incompatible shapes: (1, 64) in the checkpoint but (1, 128) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.1.cls_score.zs_weight' to the model due to incompatible shapes: (512, 5910) in the checkpoint but (512, 1204) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.1.fc1.weight' to the model due to incompatible shapes: (64, 448) in the checkpoint but (128, 896) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.1.fc1.bias' to the model due to incompatible shapes: (64,) in the checkpoint but (128,) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.1.fc2.weight' to the model due to incompatible shapes: (1, 64) in the checkpoint but (1, 128) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.1.weight_transform.0.weight' to the model due to incompatible shapes: (64, 448) in the checkpoint but (128, 896) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.1.weight_transform.0.bias' to the model due to incompatible shapes: (64,) in the checkpoint but (128,) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.1.weight_transform.2.weight' to the model due to incompatible shapes: (1, 64) in the checkpoint but (1, 128) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.2.cls_score.zs_weight' to the model due to incompatible shapes: (512, 5910) in the checkpoint but (512, 1204) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.2.fc1.weight' to the model due to incompatible shapes: (64, 448) in the checkpoint but (128, 896) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.2.fc1.bias' to the model due to incompatible shapes: (64,) in the checkpoint but (128,) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.2.fc2.weight' to the model due to incompatible shapes: (1, 64) in the checkpoint but (1, 128) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.2.weight_transform.0.weight' to the model due to incompatible shapes: (64, 448) in the checkpoint but (128, 896) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.2.weight_transform.0.bias' to the model due to incompatible shapes: (64,) in the checkpoint but (128,) in the model! You might want to double check if this is expected.
Skip loading parameter 'roi_heads.box_predictor.2.weight_transform.2.weight' to the model due to incompatible shapes: (1, 64) in the checkpoint but (1, 128) in the model! You might want to double check if this is expected.
Some model parameters or buffers are not found in the checkpoint:
roi_heads.box_predictor.0.cls_score.{detection_weight, zs_weight}
roi_heads.box_predictor.0.fc1.{bias, weight}
roi_heads.box_predictor.0.fc2.weight
roi_heads.box_predictor.0.weight_transform.0.{bias, weight}
roi_heads.box_predictor.0.weight_transform.2.weight
roi_heads.box_predictor.1.cls_score.{detection_weight, zs_weight}
roi_heads.box_predictor.1.fc1.{bias, weight}
roi_heads.box_predictor.1.fc2.weight
roi_heads.box_predictor.1.weight_transform.0.{bias, weight}
roi_heads.box_predictor.1.weight_transform.2.weight
roi_heads.box_predictor.2.cls_score.{detection_weight, zs_weight}
roi_heads.box_predictor.2.fc1.{bias, weight}
roi_heads.box_predictor.2.fc2.weight
roi_heads.box_predictor.2.weight_transform.0.{bias, weight}
roi_heads.box_predictor.2.weight_transform.2.weight

It seems that some weights were not loaded correctly. However, this doesn't appear to affect the model's ability to produce correct results.

Can I safely ignore these warnings? Or what would be the recommended way to resolve this issue?

Instinct323 avatar Jul 02 '25 05:07 Instinct323