Skip to content
Snippets Groups Projects
Select Git revision
  • 39da3e9abc1e5d9da3dadeded4174dbbc63dfefc
  • main default protected
2 results

app_functions.py

Blame
  • script_exp_solve_tff.py 4.59 KiB
    # -*- coding: utf-8 -*-
    """
    
    .. moduleauthor:: Valentin Emiya
    """
    from yafe.utils import generate_oar_script
    import matplotlib.pyplot as plt
    
    from tffpy.experiments.exp_solve_tff import \
        SolveTffExperiment, create_and_run_light_experiment
    
    
    try:
        experiment = SolveTffExperiment.get_experiment(setting='full',
                                                       force_reset=False)
    except RuntimeError:
        experiment = None
    except FileNotFoundError:
        experiment = None
    
    if __name__ == '__main__':
        answer = 1
        while answer > 0:
            input_msg = '\n'.join(['1 - Create and run light experiment',
                                   '2 - Display results of light experiment',
                                   '3 - Full experiment: create full experiment',
                                   '4 - Generate OAR script',
                                   '5 - Full experiment: collect results',
                                   '6 - Full experiment: download results',
                                   '7 - Full experiment: display results',
                                   '8 - Figures for task 12 (bird + car, TFF-1)',
                                   '9 - Figures for task 13 (bird + car, TFF-P)',
                                   '0 - Exit',
                                   ])
            answer = int(input(input_msg))
            if answer == 0:
                break
            elif answer == 1:
                create_and_run_light_experiment()
            elif answer == 2:
                light_exp = SolveTffExperiment.get_experiment(
                    setting='light', force_reset=False)
                for idt in range(light_exp.n_tasks):
                    light_exp.plot_task(idt=idt, fontsize=16)
                    plt.close('all')
                light_exp.plot_results()
            elif answer == 3:
                experiment = SolveTffExperiment.get_experiment(
                    setting='full', force_reset=True)
                experiment.display_status()
            elif answer == 4:
                experiment.display_status()
                batch_size = int(input('Batch size (#tasks per job)?'))
                generate_oar_script(script_file_path=__file__,
                                    xp_var_name='experiment',
                                    batch_size=batch_size,
                                    oar_walltime='01:00:00',
                                    activate_env_command='source activate py36',
                                    use_gpu=False)
            elif answer == 5:
                experiment.collect_results()
                experiment.display_status()
            elif answer == 6:
                to_dir = str(experiment.xp_path)
                from_dir = \
                    '/data1/home/valentin.emiya/data_exp/SolveTffExperiment/'
                print('Run:')
                print(' '.join(['rsync', '-rv',
                                'valentin.emiya@frontend.lidil.univ-mrs.fr:'
                                + from_dir,
                                to_dir]))
                print('Or (less files):')
                print(' '.join(['rsync', '-rv',
                                'valentin.emiya@frontend.lidil.univ-mrs.fr:'
                                + from_dir
                                + '*.*',
                                to_dir]))
            elif answer == 7:
                experiment.plot_results()
                experiment.display_status()
            elif answer in (8, 9):
                task_params = {'data_params': {'loc_source': 'bird',
                                               'wideband_src': 'car'},
                               'problem_params': {'closing_first': True,
                                                  'delta_loc_db': 40,
                                                  'delta_mix_db': 0,
                                                  'fig_dir': None,
                                                  'n_iter_closing': 3,
                                                  'n_iter_opening': 3,
                                                  'or_mask': True,
                                                  'wb_to_loc_ratio_db': 8,
                                                  'win_choice': 'gauss 256',
                                                  'crop': None},
                               'solver_params': {'proba_arrf': 0.9999,
                                                 'tolerance_arrf': 0.001}}
                if answer == 8:
                    task_params['solver_params']['tol_subregions'] = None
                elif answer == 9:
                    task_params['solver_params']['tol_subregions'] = 1e-05
                task = experiment.get_task_data_by_params(**task_params)
                experiment.run_task_by_id(idt=task['id_task'])
                experiment.plot_task(idt=task['id_task'], fontsize=16)
            else:
                print('Unknown answer: ' + str(answer))