| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # @package optimizer
- # Module caffe2.python.normalizer
- class Normalizer(object):
- def __init__(self):
- pass
- """
- Adds normalization to train_net for given parameter. Its factor ahead of
- regularization is given when initialization.
- The param should be a BlobReference.
- """
- def __call__(self, net, param):
- return self._run(net, param)
- def _run(self, net, param):
- raise Exception("Not Impelemented")
- class BatchNormalizer(Normalizer):
- def __init__(self, momentum, scale_init_value=1.0):
- super(BatchNormalizer, self).__init__()
- self._momentum = float(momentum)
- self._scale_init_value = float(scale_init_value)
- def _run(self, layer_model, param):
- return layer_model.BatchNormalization(
- param, momentum=self._momentum, scale_init_value=self._scale_init_value
- )
- class LayerNormalizer(Normalizer):
- def __init__(self, epsilon, use_layer_norm_op=True, scale_init_value=1.0):
- super(LayerNormalizer, self).__init__()
- self._epsilon = float(epsilon)
- self._use_layer_norm_op = use_layer_norm_op
- self._scale_init_value = float(scale_init_value)
- def _run(self, layer_model, param):
- return layer_model.LayerNormalization(
- param, epsilon=self._epsilon, use_layer_norm_op=self._use_layer_norm_op, scale_init_value=self._scale_init_value
- )
|