# 加载参数, 跳过形状不匹配的。 load_weights(ppyolo, cfg.train_cfg['model_path']) strs = cfg.train_cfg['model_path'].split('step') if len(strs) == 2: iter_id = int(strs[1][:8]) # 冻结,使得需要的显存减少。低显存的卡建议这样配置。 backbone.freeze() if use_gpu: # 如果有gpu可用,模型(包括了权重weight)存放在gpu显存里 ppyolo = ppyolo.cuda() ema = None if cfg.use_ema: ema = ExponentialMovingAverage(ppyolo, cfg.ema_decay) ema.register() # 种类id _catid2clsid = copy.deepcopy(catid2clsid) _clsid2catid = copy.deepcopy(clsid2catid) if num_classes != 80: # 如果不是COCO数据集,而是自定义数据集 _catid2clsid = {} _clsid2catid = {} for k in range(num_classes): _catid2clsid[k] = k _clsid2catid[k] = k # 训练集 train_dataset = COCO(cfg.train_path) train_img_ids = train_dataset.getImgIds() train_records = data_clean(train_dataset, train_img_ids, _catid2clsid,