def add_l2_normalize(self, name, input_name, output_name, epsilon=1e-5):
        """
        Add L2 normalize layer. Normalizes the input by the L2 norm, i.e. divides by the
        the square root of the sum of squares of all elements of the input along C, H and W dimensions.
        Refer to the ``L2NormalizeLayerParams`` message in the specification (NeuralNetwork.proto) for more details.

        Parameters
        ----------
        name: str
            The name of this layer.

        input_name: str
            The input blob name of this layer.
        output_name: str
            The output blob name of this layer.

        epsilon: float
            small bias to avoid division by zero.


        See Also
        --------
        add_mvn, add_lrn
        """
        spec_layer = self._add_generic_layer(name, [input_name], [output_name])
        spec_layer_params = spec_layer.l2normalize
        spec_layer_params.epsilon = epsilon
        return spec_layer

        Add L2 normalize layer. Normalizes the input by the L2 norm, i.e. divides by the
        the square root of the sum of squares of all elements of the input along C, H and W dimensions.
        Refer to the ``L2NormalizeLayerParams`` message in the specification (NeuralNetwork.proto) for more details.

        Parameters
        ----------
        name: str
            The name of this layer.

        input_name: str
            The input blob name of this layer.
        output_name: str
            The output blob name of this layer.

        epsilon: float
            small bias to avoid division by zero.


        See Also
        --------
        add_mvn, add_lrn
        
coremltools/models/neural_network/builder.py