def run(self, number_of_repetitions=None, reassign_test_training=False, regenerate_sets=False): """ :param number_of_repetitions: :param reassign_test_training: :param regenerate_sets: :return: """ if not (number_of_repetitions): number_of_repetitions = self.repetitions # Repeat experiment number_of_repetitions time for i in range(number_of_repetitions): rep_start = time() rep_start_date = gen_datestr() print(f'Running repetition #{i+1} ', end='') current_results = self._single_run() # Write from indexes returned from the single run for column in current_results.index: # Write results of current run to experimemnt results self.results.loc[i, column] = current_results[column] # Add repetition time to results rep_time = sec_to_time(time() - rep_start) self.results.loc[i, 'run_time'] = rep_time rep_end_date = gen_datestr() print( f' | DONE! Started at {rep_start_date}, finished at {rep_end_date}, took {rep_time}') self.rep_times.append(rep_time) self.last_run_time = sec_to_time(time() - self._experiment_start_time)
# Set up the experiment experiment = Experiment(stimuli_creation_params=stimuli_creation_params, model=model_params, training_params=training_params, origin_transform_function=origin_transform_function, origin_transform_params=origin_transform_params, set_transform_function=set_transform_function, set_transform_params=set_transform_params, repetitions=number_of_repetitions) # Run the experiment experiment.run() # Saving all experiment data experiment.save(report_folder, condition_name) # Save backup copy of this file with open(__file__, 'r') as file: this_file = file.read() with open(path.join(report_folder, f'{condition_name}experiment_template.py'), 'w') as template_file: template_file.write(this_file) template_file.close() # %% Report finish end_time = time() runtime = sec_to_time(end_time - start_time) end_date = gen_datestr() print( f"EXPERIMENT FINISHED:\n\tStarted: {start_date}\n\tEnded: {end_date}\n\tTook: {runtime}" )