MCPcopy Create free account
hub / github.com/UX-Decoder/Semantic-SAM / Trainer

Class Trainer

train_net.py:58–378  ·  view source on GitHub ↗

Extension of the Trainer class adapted to MaskFormer.

Source from the content-addressed store, hash-verified

56
57
58class Trainer(DefaultTrainer):
59 """
60 Extension of the Trainer class adapted to MaskFormer.
61 """
62 def __init__(self, cfg):
63 super(DefaultTrainer, self).__init__()
64 logger = logging.getLogger("detectron2")
65 if not logger.isEnabledFor(logging.INFO): # setup_logger is not called for d2
66 setup_logger()
67 cfg = DefaultTrainer.auto_scale_workers(cfg, comm.get_world_size())
68
69 # Assume these objects must be constructed in this order.
70 model = self.build_model(cfg)
71 optimizer = self.build_optimizer(cfg, model)
72 data_loader = self.build_train_loader(cfg)
73
74 model = create_ddp_model(model, broadcast_buffers=False)
75 self._trainer = (AMPTrainer if cfg.SOLVER.AMP.ENABLED else SimpleTrainer)(
76 model, data_loader, optimizer
77 )
78 self.scheduler = self.build_lr_scheduler(cfg, optimizer)
79
80 # add model EMA
81 kwargs = {
82 'trainer': weakref.proxy(self),
83 }
84 # kwargs.update(model_ema.may_get_ema_checkpointer(cfg, model)) TODO: release ema training for large models
85 self.checkpointer = DetectionCheckpointer(
86 # Assume you want to save checkpoints together with logs/statistics
87 model,
88 cfg['OUTPUT_DIR'],
89 **kwargs,
90 )
91 self.start_iter = 0
92 self.max_iter = cfg['SOLVER']['MAX_ITER']
93 self.cfg = cfg
94
95 self.register_hooks(self.build_hooks())
96 # TODO: release model conversion checkpointer from DINO to MaskDINO
97 self.checkpointer = DetectionCheckpointer(
98 # Assume you want to save checkpoints together with logs/statistics
99 model,
100 cfg['OUTPUT_DIR'],
101 **kwargs,
102 )
103 # TODO: release GPU cluster submit scripts based on submitit for multi-node training
104
105 def build_hooks(self):
106 """
107 Build a list of default hooks, including timing, evaluation,
108 checkpointing, lr scheduling, precise BN, writing events.
109
110 Returns:
111 list[HookBase]:
112 """
113 cfg = copy.deepcopy(self.cfg)
114 cfg.DATALOADER.NUM_WORKERS = 0 # save some memory and time for PreciseBN
115 ret = [

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected