def add_matrix_band_part(
        self, name, input_name, output_name, num_lower=-1, num_upper=-1
    ):
        """
        Add a matrix_band_part layer to the model that copies a tensor setting
        everything outside a central band in each inner-most matrix to zero.
        Refer to the ``MatrixBandPartLayerParams`` message in the specification
        (NeuralNetwork.proto) for more details.

        Parameters
        ----------
        name: str
            The name of this layer.
        input_name: str
            The of input blob name of this layer.
        output_name: str
            The output blob name of this layer.
        num_lower: int, optional
            Number of lower sub-diagonals to keep.
            Default: -1 (keep entire lower triangle).
        num_upper: int, optional
            Number of upper sub-diagonals to keep.
            Default: -1 (keep entire upper triangle).

        See Also
        --------
        add_lower_triangular, add_lower_triangular
        """

        spec_layer = self._add_generic_layer(name, [input_name], [output_name])
        spec_layer_params = spec_layer.matrixBandPart
        spec_layer_params.numLower = num_lower
        spec_layer_params.numUpper = num_upper
        return spec_layer

        Add a matrix_band_part layer to the model that copies a tensor setting
        everything outside a central band in each inner-most matrix to zero.
        Refer to the ``MatrixBandPartLayerParams`` message in the specification
        (NeuralNetwork.proto) for more details.

        Parameters
        ----------
        name: str
            The name of this layer.
        input_name: str
            The of input blob name of this layer.
        output_name: str
            The output blob name of this layer.
        num_lower: int, optional
            Number of lower sub-diagonals to keep.
            Default: -1 (keep entire lower triangle).
        num_upper: int, optional
            Number of upper sub-diagonals to keep.
            Default: -1 (keep entire upper triangle).

        See Also
        --------
        add_lower_triangular, add_lower_triangular
        
coremltools/models/neural_network/builder.py