def report_results(self, configuration, results_dir): """Report on the results of a run of the optimisation""" optimisation = configuration.optimisation configuration.report_on_best_params(self.best_citizen.dictionary) print("After: " + str(configuration.num_generations) + " generations:") if not results_dir: params_dir = os.path.dirname(optimisation.params_file) results_dir = os.path.join(params_dir, "results") results_dir = utils.get_new_directory(results_dir) best_parameters_fname = os.path.join(results_dir, "best_params") best_parameters_file = open(best_parameters_fname, "w") for param in optimisation.parameters: value = self.best_citizen.dictionary[param.name] line = param.name + ": " + str(value) print (line) best_parameters_file.write(line) best_parameters_file.write("\n") best_parameters_file.close() best_cost_fname = os.path.join(results_dir, "best_cost") best_cost_file = open(best_cost_fname, "w") best_cost_file.write(str(self.best_cost)) best_cost_file.close() self.print_best_citizen_results(results_dir)
def bundle_result(self, configuration, results_directory): """A simple function to bundle the results into the results directory.""" if not results_directory: results_directory = utils.get_new_directory("results") shutil.copy2(self.results_file, results_directory) optimisation = configuration.optimisation shutil.copy2(optimisation.params_file, results_directory) # These are untested since I updated optimisation to hold # multiple model_datas rather than a single model file and # gold standard file. for model_data in optimisation.model_datas: shutil.copy2(model_data.model_file, results_directory) shutil.copy2(model_data.gold_standard_file, results_directory) print ("Find the results in: " + results_directory)