def METHOD_NAME(self):
    'Gather config parameters accessible to the learner'
    # args stored by 'store_attr'
    cb_args = {
        f'{cb}': getattr(cb, '__stored_args__', True)
        for cb in self.cbs
        if cb != self
    }
    args = {'Learner': self.learn, **cb_args}
    # input dim
    try:
        n_inp = self.dls.train.n_inp
        args['n_inp'] = n_inp
        xb = self.dls.valid.one_batch()[:n_inp]
        args.update(
            {
                f'input {n+1} dim {i+1}': d
                for n in range(n_inp)
                for i, d in enumerate(list(detuplify(xb[n]).shape))
            }
        )
    except Exception:
        logger.warning('Failed to gather input dimensions')
    # other args
    with ignore_exceptions():
        args['batch_size'] = self.dls.bs
        args['batch_per_epoch'] = len(self.dls.train)
        args['model_parameters'] = total_params(self.model)[0]
        args['device'] = self.dls.device.type
        args['frozen'] = bool(self.opt.frozen_idx)
        args['frozen_idx'] = self.opt.frozen_idx
        args['dataset', 'tfms'] = f'{self.dls.dataset.tfms}'
        args['dls', 'after_item'] = f'{self.dls.after_item}'
        args['dls', 'before_batch'] = f'{self.dls.before_batch}'
        args['dls', 'after_batch'] = f'{self.dls.after_batch}'
    return args