<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_experiments(self):
 """This function will return the list of experiments. """

        logging.debug("Loading experiments.")
        # look for experiments in experiments directory
        exp_dir = self.config['dirs']['experiments_dir']
        for path in glob.glob(os.path.join(exp_dir, '[!_]*.py')):
            # get name of file and path
            name, ext = os.path.splitext(os.path.basename(path))
            # load the experiment
            try:
                # do not load modules that have already been loaded
                if name in loaded_modules:
                    continue
                imp.load_source(name, path)
                loaded_modules.add(name)
                logging.debug("Loaded experiment \"%s(%s)\"." % (name, path))
            except Exception as exception:
                logging.exception("Failed to load experiment %s: %s" %
                                  (name, exception))

        logging.debug("Finished loading experiments.")
        # return dict of experiment names and classes
        return ExperimentList.experiments