| 12345678910111213141516171819202122232425262728293031323334353637 |
- # @package regularizer_context
- # Module caffe2.python.regularizer_context
- from caffe2.python import context
- from caffe2.python.modifier_context import (
- ModifierContext, UseModifierBase)
- class RegularizerContext(ModifierContext, context.DefaultManaged):
- """
- provide context to allow param_info to have different regularizers
- """
- def has_regularizer(self, name):
- return self._has_modifier(name)
- def get_regularizer(self, name):
- assert self.has_regularizer(name), (
- "{} regularizer is not provided!".format(name))
- return self._get_modifier(name)
- class UseRegularizer(UseModifierBase):
- '''
- context class to allow setting the current context.
- Example usage with layer:
- regularizers = {'reg1': reg1, 'reg2': reg2}
- with UseRegularizer(regularizers):
- reg = RegularizerContext.current().get_regularizer('reg1')
- layer(reg=reg)
- '''
- def _context_class(self):
- return RegularizerContext
|