MCPcopy Create free account
hub / github.com/Meshcapade/difflocks / CallbacksGroup

Class CallbacksGroup

callbacks/callback.py:49–91  ·  view source on GitHub ↗

Groups together several callbacks and delegates training loop notifications to the encapsulated objects.

Source from the content-addressed store, hash-verified

47
48
49class CallbacksGroup(Callback):
50 """
51 Groups together several callbacks and delegates training loop
52 notifications to the encapsulated objects.
53 """
54 def __init__(self, callbacks):
55 self.callbacks = callbacks
56 self.named_callbacks = {to_snake_case(classname(cb)): cb for cb in self.callbacks}
57
58 def __getitem__(self, item):
59 item = to_snake_case(item)
60 if item in self.named_callbacks:
61 return self.named_callbacks[item]
62 raise KeyError(f'callback name is not found: {item}')
63
64 def training_started(self, **kwargs): self.invoke('training_started', **kwargs)
65
66 def training_ended(self, **kwargs): self.invoke('training_ended', **kwargs)
67
68 def epoch_started(self, **kwargs): self.invoke('epoch_started', **kwargs)
69
70 def phase_started(self, **kwargs): self.invoke('phase_started', **kwargs)
71
72 def phase_ended(self, **kwargs): self.invoke('phase_ended', **kwargs)
73
74 def epoch_ended(self, **kwargs): self.invoke('epoch_ended', **kwargs)
75
76 def batch_started(self, **kwargs): self.invoke('batch_started', **kwargs)
77
78 def batch_ended(self, **kwargs): self.invoke('batch_ended', **kwargs)
79
80 def before_forward_pass(self, **kwargs): self.invoke('before_forward_pass', **kwargs)
81
82 def after_forward_pass(self, **kwargs): self.invoke('after_forward_pass', **kwargs)
83
84 def before_backward_pass(self, **kwargs): self.invoke('before_backward_pass', **kwargs)
85
86 def after_backward_pass(self, **kwargs): self.invoke('after_backward_pass', **kwargs)
87
88 def invoke(self, method, **kwargs):
89 with torch.set_grad_enabled(False):
90 for cb in self.callbacks:
91 getattr(cb, method)(**kwargs)

Callers 1

create_callbacksFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected