<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fit(self, data, labels, **kwargs):
 """\ Training the SOM on the the data and calibrate itself. After the training, `self.quant_error` and `self.topog_error` are respectively set. :param data: sparse input matrix (ideal dtype is `numpy.float32`) :type data: :class:`scipy.sparse.csr_matrix` :param labels: the labels associated with data :type labels: iterable :param \**kwargs: optional parameters for :meth:`train` """

        # train the network
        self._som.train(data, **kwargs)
        # retrieve first and second bmus and distances
        bmus, q_error, t_error = self.bmus_with_errors(data)
        # set errors measures of training data
        self.quant_error = q_error
        self.topog_error = t_error
        # store training bmus
        self._bmus = bmus
        # calibrate
        self._calibrate(data, labels)