(self, name, new_mixin, reinit=False)
| 112 | m.reinit(self) |
| 113 | |
| 114 | def add_mixin(self, name, new_mixin, reinit=False): |
| 115 | assert name not in self.mixins |
| 116 | assert isinstance(new_mixin, BaseMixin) |
| 117 | |
| 118 | self.mixins[name] = new_mixin # will auto-register parameters |
| 119 | object.__setattr__(new_mixin, 'transformer', self.transformer) # cannot use pytorch set_attr |
| 120 | |
| 121 | self.collect_hooks_() |
| 122 | if reinit: |
| 123 | new_mixin.reinit(self) # also pass current mixins |
| 124 | |
| 125 | def del_mixin(self, name): |
| 126 | assert name in self.mixins |