コード例 #1
0
ファイル: Experiment.py プロジェクト: ronimb/temporal-coding
    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}"
)