MCPcopy Create free account
hub / github.com/TorchSSL/TorchSSL / __init__

Method __init__

models/softmatch/softmatch.py:24–71  ·  view source on GitHub ↗

class Freematch contains setter of data_loader, optimizer, and model update methods. Args: net_builder: backbone network class (see net_builder in utils.py) num_classes: # of label classes ema_m: momentum of exponential moving average for eval_mod

(self, net_builder, num_classes, ema_m, lambda_u, dist_algn, \
                 hard_label=True, t_fn=None, p_fn=None, it=0, num_eval_iter=1000, tb_log=None, logger=None)

Source from the content-addressed store, hash-verified

22
23class SoftMatch:
24 def __init__(self, net_builder, num_classes, ema_m, lambda_u, dist_algn, \
25 hard_label=True, t_fn=None, p_fn=None, it=0, num_eval_iter=1000, tb_log=None, logger=None):
26 """
27 class Freematch contains setter of data_loader, optimizer, and model update methods.
28 Args:
29 net_builder: backbone network class (see net_builder in utils.py)
30 num_classes: # of label classes
31 ema_m: momentum of exponential moving average for eval_model
32 lambda_u: ratio of unsupervised loss to supervised loss
33 hard_label: If True, consistency regularization use a hard pseudo label.
34 it: initial iteration count
35 num_eval_iter: freqeuncy of iteration (after 500,000 iters)
36 tb_log: tensorboard writer (see train_utils.py)
37 logger: logger (see utils.py)
38 """
39
40 super(SoftMatch, self).__init__()
41
42 # momentum update param
43 self.loader = {}
44 self.num_classes = num_classes
45 self.ema_m = ema_m
46
47 # create the encoders
48 # network is builded only by num_classes,
49 # other configs are covered in main.py
50
51 self.model = net_builder(num_classes=num_classes)
52 self.ema_model = None
53
54 self.num_eval_iter = num_eval_iter
55 self.lambda_u = lambda_u
56 self.tb_log = tb_log
57 self.use_hard_label = hard_label
58 self.dist_align = dist_algn
59 self.ema_p = 0.999
60
61 self.optimizer = None
62 self.scheduler = None
63
64 self.it = 0
65 self.lst = [[] for i in range(10)]
66 self.abs_lst = [[] for i in range(10)]
67 self.clsacc = [[] for i in range(10)]
68 self.logger = logger
69 self.print_fn = print if logger is None else logger.info
70
71 self.bn_controller = Bn_Controller()
72
73 def set_data_loader(self, loader_dict):
74 self.loader_dict = loader_dict

Callers

nothing calls this directly

Calls 2

Bn_ControllerClass · 0.90
net_builderFunction · 0.85

Tested by

no test coverage detected