def fit(self, pixel_flux, data_placeholder, var_list, session, feed_dict={}):
        """
        Parameters
        ----------
        pixel_flux : ndarray
            The TPF-like pixel flux time series. The first dimension
            must represent time, and the remaining two dimensions
            must represent the spatial dimensions.
        data_placeholder : tf.placeholder
            A placeholder which will be used to pass the n-th time stamp
            to `self.optimizer.minimize`.
        var_list : list
            The list of parameters (as tensors) to optimize for.
        session : instance of tf.Session
        feed_dict : dict
            Dictionary of additional arguments used to feed the loss function.
        """
        opt_params = []
        cadences = range(pixel_flux.shape[0])

        for n in tqdm.tqdm(cadences):
            feed_dict[data_placeholder] = pixel_flux[n]
            self.optimizer.minimize(session=session, feed_dict=feed_dict)
            opt_params.append([session.run(var) for var in var_list])

        return opt_params