Closed KangolHsu closed 3 years ago
@KangolHsu the same error occurred,have you solved it yet?
i think it's detectron2 update some core so that make this error! if your used old version maybe solve this problem,if you dont know how to fix it
Have you solved it yet?
return build_detection_train_loader(cfg=cfg,mapper= mapper) it works for me
@Peter-weng Maybe you are right, I use the latest version :v0.3 @doduythanh021199 I tried ,did not work for v0.3
@doduythanh021199
new error:
Traceback (most recent call last):
File "D:/实例分割/github/centermask2-master/train_net.py", line 232, in
@KangolHsu ok you meet the same error as me,so i can help you! you just need to delete some core in train_net.py just like this, it work for me.
`class Trainer(DefaultTrainer):
def __init__(self, cfg):
super().__init__(cfg)`
@doduythanh021199 new error: Traceback (most recent call last): File "D:/实例分割/github/centermask2-master/train_net.py", line 232, in args=(args,), File "d:\实例分割\detectron2-0.3\detectron2\engine\launch.py", line 62, in launch main_func(*args) File "D:/实例分割/github/centermask2-master/train_net.py", line 214, in main trainer = Trainer(cfg) File "D:/实例分割/github/centermask2-master/train_net.py", line 53, in init super(DefaultTrainer, self).init(model, data_loader, optimizer) TypeError: init() takes 1 positional argument but 4 were given
I wrote new train_net.py without the class Trainer and it runs 👍
@doduythanh021199 new error: Traceback (most recent call last): File "D:/实例分割/github/centermask2-master/train_net.py", line 232, in args=(args,), File "d:\实例分割\detectron2-0.3\detectron2\engine\launch.py", line 62, in launch main_func(*args) File "D:/实例分割/github/centermask2-master/train_net.py", line 214, in main trainer = Trainer(cfg) File "D:/实例分割/github/centermask2-master/train_net.py", line 53, in init super(DefaultTrainer, self).init(model, data_loader, optimizer) TypeError: init() takes 1 positional argument but 4 were given
I wrote new train_net.py without the class Trainer and it runs 👍
Can you share with us the new train_net.py? And is the training process was completely successful without "Trainer" or there are other errors happen with you?
This is my Solution by changing code in 'train_net.py':
@KangolHsu Actually,number 2.replace 'return build_detection_train_loader(cfg,mapper)' with 'return build_detection_train_loader(cfg, mapper=mapper) maybe not necessary to change. Have you ever test your train model ? maybe the model cant work normal
Fixed it in my fork if anyone needs it.
@Traderain hi,i see your fork,you seem like just change only one place.
super(DefaultTrainer, self).__init__(model, data_loader, optimizer) -> super().__init__(model, data_loader, optimizer)
and i dont know why this is work.it see the same job to init the defaultTrainer class,thank your to reply.
@Peter-weng it works now
import logging import os from collections import OrderedDict import torch from torch.nn.parallel import DistributedDataParallel from detectron2.data.datasets import register_coco_instances
import detectron2.utils.comm as comm from detectron2.data import MetadataCatalog, build_detection_train_loader from detectron2.engine import DefaultTrainer, default_argument_parser, default_setup, hooks, launch from detectron2.utils.events import EventStorage from detectron2.evaluation import ( CityscapesInstanceEvaluator, COCOPanopticEvaluator, DatasetEvaluators, LVISEvaluator, PascalVOCDetectionEvaluator, SemSegEvaluator, verify_results, ) from centermask.evaluation import COCOEvaluator from detectron2.modeling import GeneralizedRCNNWithTTA
from detectron2.data.dataset_mapper import DatasetMapper from centermask.config import get_cfg from centermask.checkpoint import AdetCheckpointer
if name == 'main':
name = "foodtrain" json_file = "/content/data/DETR/d_training_segmentation/aggregated_coco.json" image_root = "/content/data/DETR/d_training_segmentation/images"
name_val = "foodtest" json_file_val = "/content/data/DETR/d_training_segmentation/aggregated_coco.json" image_root_val = "/content/data/DETR/d_training_segmentation/images" register_coco_instances(name_val, {} ,json_file_val,image_root_val) register_coco_instances(name, {} ,json_file,image_root)
cfg = get_cfg() cfg.merge_from_file("/content/drive/MyDrive/centermask2/configs/centermask/centermask_lite_V_19_slim_eSE_FPN_ms_4x.yaml") cfg.DATASETS.TRAIN = ("foodtrain",) cfg.DATASETS.TEST = ("foodtest")
os.makedirs(cfg.OUTPUT_DIR, exist_ok=True) trainer = DefaultTrainer(cfg) trainer.resume_or_load(resume=False) trainer.train()
use this its is working!
This problem is fixed.
Please open this issue again if you find another problem.
I run in cmd : python train_net.py --config-file "configs/centermask/centermask_R_50_FPN_ms_3x.yaml" --num-gpus 1 error :
Traceback (most recent call last): File "train_net.py", line 230, in
args=(args,),
File "d:\segmentation\detectron2-0.3\detectron2\engine\launch.py", line 62, in launch
main_func(args)
File "train_net.py", line 212, in main
trainer = Trainer(cfg)
File "train_net.py", line 46, in init
data_loader = self.build_train_loader(cfg)
File "train_net.py", line 112, in build_train_loader
return build_detection_train_loader(cfg, mapper)
File "d:\segmentation\detectron2-0.3\detectron2\config\config.py", line 201, in wrapped
explicit_args = _get_args_from_config(from_config, args, *kwargs)
File "d:\segmentation\detectron2-0.3\detectron2\config\config.py", line 236, in _get_args_from_config
ret = from_config_func(args, **kwargs)
TypeError: _train_loader_from_config() takes 1 positional argument but 2 were given
Why this error occurred?