def test_multiprocessing_works(self): experiment = _setup_experiment() experiment.num_workers = 5 experiment.num_steps = 10 experiment.num_runs = 5 result = attention_allocation_experiment.run(experiment) result = json.loads(result)
def mle_agent_epsilon_5_resource_all_dynamics(): """Run experiments on a greedy-epsilon mle agent, epsilon=0.6, across dynamics.""" dynamic_values_to_test = [0.0, 0.01, 0.05, 0.1, 0.15] experiment = _setup_experiment() experiment.agent_class = allocation_agents.MLEProbabilityMatchingAgent experiment.agent_params = allocation_agents.MLEProbabilityMatchingAgentParams( ) experiment.agent_params.burn_steps = 25 experiment.agent_params.epsilon = 0.5 experiment.agent_params.window = 100 reports_dict = {} for value in dynamic_values_to_test: experiment.env_params.dynamic_rate = value json_report = attention_allocation_experiment.run(experiment) report = json.loads(json_report) print('\n\nMLE Agent, 6 attention units, epsilon=0.5') _print_discovered_missed_incidents_report(value, report) output_filename = 'mle_epsilon.5_6units_%f.json' % value with open(os.path.join(FLAGS.output_dir, output_filename), 'w') as f: json.dump(report, f) reports_dict[value] = json_report return reports_dict
def test_MLEProbabilityMatchingAgent_works(self): experiment = _setup_experiment() experiment.agent_class = allocation_agents.MLEProbabilityMatchingAgent experiment.agent_params = allocation_agents.MLEProbabilityMatchingAgentParams( burn_steps=25, window=100) result = attention_allocation_experiment.run(experiment) # Tests that the result is a valid json string. result = json.loads(result)
def test_MLEGreedyAgent_works(self): experiment = _setup_experiment() experiment.agent_class = allocation_agents.MLEGreedyAgent experiment.agent_params = allocation_agents.MLEGreedyAgentParams( burn_steps=5, window=10, alpha=5.0) result = attention_allocation_experiment.run(experiment) # Tests that the result is a valid json string. result = json.loads(result)
def uniform_agent_resource_all_dynamics(): """Run experiments on a uniform agent across dynamic rates.""" dynamic_values_to_test = [0.0, 0.01, 0.05, 0.1, 0.15] experiment = _setup_experiment() experiment.agent_class = test_util.DummyAgent reports_dict = {} for value in dynamic_values_to_test: print('Running an experiment...') experiment.env_params.dynamic_rate = value json_report = attention_allocation_experiment.run(experiment) report = json.loads(json_report) print('\n\nUniform Random Agent, 6 attention units') _print_discovered_missed_incidents_report(value, report) output_filename = 'uniform_6units_%f.json' % value with open(os.path.join(FLAGS.output_dir, output_filename), 'w') as f: json.dump(report, f) reports_dict[value] = json_report return reports_dict
def mle_greedy_alpha5_agent_resource_all_dynamics(): """Run experiments on a greedy-epsilon mle agent, epsilon=0.1, across dynamics.""" dynamic_values_to_test = [0.0, 0.01, 0.05, 0.1, 0.15] experiment = _setup_experiment() experiment.agent_class = allocation_agents.MLEGreedyAgent experiment.agent_params = allocation_agents.MLEGreedyAgentParams( burn_steps=25, window=100, alpha=0.75) reports_dict = {} for value in dynamic_values_to_test: print('Running an experiment...') experiment.env_params.dynamic_rate = value json_report = attention_allocation_experiment.run(experiment) report = json.loads(json_report) print('\n\nMLE Greedy Fair Agent, 6 attention units, alpha=0.75') _print_discovered_missed_incidents_report(value, report) output_filename = 'mle_greedy_fair_alpha75_6units_%f.json' % value with open(os.path.join(FLAGS.output_dir, output_filename), 'w') as f: json.dump(report, f) reports_dict[value] = json_report return reports_dict
def test_report_is_replicable(self): experiment = _setup_experiment() json_report = attention_allocation_experiment.run(experiment) json_report_second = attention_allocation_experiment.run(experiment) self.assertEqual(json_report, json_report_second)
def test_report_valid_json(self): # Tests that the experiment can run. experiment = _setup_experiment() result = attention_allocation_experiment.run(experiment) # Tests that the result is a valid json string. result = json.loads(result)