def add_split(self, name, input_name, output_names):
        """
        Add a split layer that uniformly splits the input along the channel dimension
        to produce multiple outputs.
        Refer to the ``SplitLayerParams`` 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_names: list of str
            List of output blob names of this layer.

        See Also
        --------
        add_elementwise
        """
        spec_layer = self._add_generic_layer(name, [input_name], output_names)
        spec_layer_params = spec_layer.split
        spec_layer_params.nOutputs = len(output_names)
        return spec_layer

        Add a split layer that uniformly splits the input along the channel dimension
        to produce multiple outputs.
        Refer to the ``SplitLayerParams`` 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_names: list of str
            List of output blob names of this layer.

        See Also
        --------
        add_elementwise
        
coremltools/models/neural_network/builder.py