def plot_session_from_file(session_df_filepath): ''' Method to plot session from its session_df file @example from slm_lab.experiment import analysis filepath = 'data/reinforce_cartpole_2018_01_22_211751/reinforce_cartpole_t0_s0_session_df.csv' analysis.plot_session_from_file(filepath) ''' from slm_lab.experiment.monitor import InfoSpace spec_name = util.prepath_to_spec_name(session_df_filepath) session_spec = {'name': spec_name} session_df = util.read(session_df_filepath, header=[0, 1, 2, 3], index_col=0, dtype=np.float32) session_data = util.session_df_to_data(session_df) tn, sn = session_df_filepath.replace('_session_df.csv', '').split('_')[-2:] info_space = InfoSpace() info_space.set('experiment', 0) info_space.set('trial', int(tn[1:])) info_space.set('session', int(sn[1:])) session_fig = plot_session(session_spec, info_space, session_data) viz.save_image( session_fig, session_df_filepath.replace('_session_df.csv', '_session_graph.png'))
def save_experiment_data(spec, info_space, experiment_df, experiment_fig): '''Save the experiment data: best_spec, experiment_df, experiment_graph.''' prepath = util.get_prepath(spec, info_space, unit='experiment') logger.info(f'Saving experiment data to {prepath}') util.write(experiment_df, f'{prepath}_experiment_df.csv') viz.save_image(experiment_fig, f'{prepath}_experiment_graph.png') # TODO tmp hack plot_best_sessions(experiment_df, prepath)
def save_experiment_data(spec, info_space, experiment_df, experiment_fig): '''Save the experiment data: best_spec, experiment_df, experiment_graph.''' prepath = util.get_prepath(spec, info_space, unit='experiment') logger.info(f'Saving experiment data to {prepath}') util.write(experiment_df, f'{prepath}_experiment_df.csv') viz.save_image(experiment_fig, f'{prepath}_experiment_graph.png') # zip for ease of upload predir, _, _, _, _, _ = util.prepath_split(prepath) shutil.make_archive(predir, 'zip', predir) logger.info(f'All experiment data zipped to {predir}.zip')
def save_experiment_data(info_space, best_spec, experiment_df, experiment_fig): '''Save the experiment data: best_spec, experiment_df, experiment_graph.''' spec_name = best_spec['name'] predir = f'data/{spec_name}_{info_space.experiment_ts}' prename = f'{spec_name}' logger.info(f'Saving experiment data to {predir}') util.write(best_spec, f'{predir}/{prename}_best_spec.json') util.write(experiment_df, f'{predir}/{prename}_experiment_df.csv') viz.save_image(experiment_fig, f'{predir}/{prename}_experiment_graph.png') plot_best_sessions(experiment_df, predir, prename)
def save_trial_data(spec, info_space, trial_fitness_df, trial_fig): '''Save the trial data: spec, trial_fitness_df.''' prepath = util.get_prepath(spec, info_space, unit='trial') logger.info(f'Saving trial data to {prepath}') util.write(trial_fitness_df, f'{prepath}_trial_fitness_df.csv') viz.save_image(trial_fig, f'{prepath}_trial_graph.png') if util.get_lab_mode() == ('train', 'eval'): predir, _, _, _, _, _ = util.prepath_split(prepath) shutil.make_archive(predir, 'zip', predir) logger.info(f'All trial data zipped to {predir}.zip')
def save_session_data(session_spec, session_df, session_fig): ''' Save the session data: df, plot. session_df is multi-indexed with (a,e,b), 3 extra levels to read, use: session_df = util.read(filepath, header=[0, 1, 2, 3]) session_data = util.session_df_to_data(session_df) ''' # TODO generalize to use experiment timestamp, id, sesison coor in info space, to replace timestamp spec_name = session_spec['name'] prepath = f'data/{spec_name}/{spec_name}_{util.get_timestamp()}' logger.info(f'Saving session data to {prepath}_*') util.write(session_df, f'{prepath}_session_df.csv') viz.save_image(session_fig, f'{prepath}_session_graph.png')
def save_session_data(spec, info_space, session_data, session_fitness_df, session_fig): ''' Save the session data: session_df, session_fitness_df, session_graph. session_data is saved as session_df; multi-indexed with (a,e,b), 3 extra levels to read, use: session_df = util.read(filepath, header=[0, 1, 2, 3]) session_data = util.session_df_to_data(session_df) ''' prepath = util.get_prepath(spec, info_space, unit='session') logger.info(f'Saving session data to {prepath}') if 'retro_analyze' not in os.environ['PREPATH']: session_df = pd.concat(session_data, axis=1) util.write(session_df, f'{prepath}_session_df.csv') util.write(session_fitness_df, f'{prepath}_session_fitness_df.csv') viz.save_image(session_fig, f'{prepath}_session_graph.png')
def save_session_data(spec, info_space, session_data, session_fitness_df, session_fig, body_df_kind='eval'): ''' Save the session data: session_df, session_fitness_df, session_graph. session_data is saved as session_df; multi-indexed with (a,e,b), 3 extra levels to read, use: session_df = util.read(filepath, header=[0, 1, 2, 3], index_col=0) session_data = util.session_df_to_data(session_df) ''' prepath = util.get_prepath(spec, info_space, unit='session') logger.info(f'Saving session data to {prepath}') prefix = 'train' if body_df_kind == 'train' else '' if 'retro_analyze' not in os.environ['PREPATH']: save_session_df(session_data, f'{prepath}_{prefix}session_df.csv', info_space) util.write(session_fitness_df, f'{prepath}_{prefix}session_fitness_df.csv') viz.save_image(session_fig, f'{prepath}_{prefix}session_graph.png')
def plot_experiment_from_file(experiment_df_filepath): ''' Method to plot experiment from its experiment_df file @example from slm_lab.experiment import analysis filepath = 'data/reinforce_cartpole_2018_01_22_190720/reinforce_cartpole_experiment_df.csv' analysis.plot_experiment_from_file(filepath) ''' spec_name = '_'.join(experiment_df_filepath.split('/')[1].split('_')[:-4]) experiment_spec = {'name': spec_name} experiment_df = util.read(experiment_df_filepath) experiment_fig = plot_experiment(experiment_spec, experiment_df) viz.save_image( experiment_fig, experiment_df_filepath.replace('_experiment_df.csv', '_experiment_graph.png'))
def plot_session_from_file(session_df_filepath): ''' Method to plot session from its session_df file @example from slm_lab.experiment import analysis filepath = 'data/reinforce_cartpole_2018_01_22_211751/reinforce_cartpole_t0_s0_session_df.csv' analysis.plot_session_from_file(filepath) ''' spec_name = '_'.join(session_df_filepath.split('/')[1].split('_')[:-4]) session_spec = {'name': spec_name} session_df = util.read(session_df_filepath, header=[0, 1, 2, 3]) session_data = util.session_df_to_data(session_df) session_fig = plot_session(session_spec, session_data) viz.save_image( session_fig, session_df_filepath.replace('_session_df.csv', '_session_graph.png'))
def save_session_data(spec, info_space, session_mdp_data, session_data, session_fitness_df, session_fig): ''' Save the session data: session_mdp_df, session_df, session_fitness_df, session_graph. session_data is saved as session_df; multi-indexed with (a,e,b), 3 extra levels to read, use: session_df = util.read(filepath, header=[0, 1, 2, 3]) session_data = util.session_df_to_data(session_df) Likewise for session_mdp_df ''' prepath = util.get_prepath(spec, info_space, unit='session') logger.info(f'Saving session data to {prepath}') if session_mdp_data is not None: # not from retro analysis session_mdp_df = pd.concat(session_mdp_data, axis=1) session_df = pd.concat(session_data, axis=1) # TODO reactivate saving when get to the transition matrix research # util.write(session_mdp_df, f'{prepath}_session_mdp_df.csv') util.write(session_df, f'{prepath}_session_df.csv') util.write(session_fitness_df, f'{prepath}_session_fitness_df.csv') viz.save_image(session_fig, f'{prepath}_session_graph.png')
def save_session_data(spec, info_space, session_mdp_data, session_data, session_fitness_df, session_fig): ''' Save the session data: session_mdp_df, session_df, session_fitness_df, session_graph. session_data is saved as session_df; multi-indexed with (a,e,b), 3 extra levels to read, use: session_df = util.read(filepath, header=[0, 1, 2, 3]) session_data = util.session_df_to_data(session_df) Likewise for session_mdp_df ''' prepath = util.get_prepath(spec, info_space, unit='session') logger.info(f'Saving session data to {prepath}') if session_mdp_data is not None: # not from retro analysis session_mdp_df = pd.concat(session_mdp_data, axis=1) session_df = pd.concat(session_data, axis=1) # TODO reactivate saving when get to the transition matrix research # util.write(session_mdp_df, f'{prepath}_session_mdp_df.csv') util.write(session_df, f'{prepath}_session_df.csv') util.write(session_fitness_df, f'{prepath}_session_fitness_df.csv') # TODO replaced by plot_best_sessions until Feb 2018 https://github.com/plotly/plotly.py/issues/880 if os.environ.get('lab_mode') == 'train': viz.save_image(session_fig, f'{prepath}_session_graph.png')
def plot_session_from_file(session_df_filepath): ''' Method to plot session from its session_df file @example from slm_lab.experiment import analysis filepath = 'data/reinforce_cartpole_2018_01_22_211751/reinforce_cartpole_t0_s0_session_df.csv' analysis.plot_session_from_file(filepath) ''' from slm_lab.experiment.monitor import InfoSpace spec_name = util.prepath_to_spec_name(session_df_filepath) session_spec = {'name': spec_name} session_df = util.read(session_df_filepath, header=[0, 1, 2, 3], index_col=0, dtype=np.float32) session_data = util.session_df_to_data(session_df) tn, sn = session_df_filepath.replace('_session_df.csv', '').split('_')[-2:] info_space = InfoSpace() info_space.set('experiment', 0) info_space.set('trial', int(tn[1:])) info_space.set('session', int(sn[1:])) session_fig = plot_session(session_spec, info_space, session_data) viz.save_image(session_fig, session_df_filepath.replace('_session_df.csv', '_session_graph.png'))
def save_trial_data(spec, info_space, trial_fitness_df, trial_fig): '''Save the trial data: spec, trial_fitness_df.''' prepath = util.get_prepath(spec, info_space, unit='trial') logger.info(f'Saving trial data to {prepath}') util.write(trial_fitness_df, f'{prepath}_trial_fitness_df.csv') viz.save_image(trial_fig, f'{prepath}_trial_graph.png')
def save_experiment_data(spec, info_space, experiment_df, experiment_fig): '''Save the experiment data: best_spec, experiment_df, experiment_graph.''' prepath = util.get_prepath(spec, info_space, unit='experiment') logger.info(f'Saving experiment data to {prepath}') util.write(experiment_df, f'{prepath}_experiment_df.csv') viz.save_image(experiment_fig, f'{prepath}_experiment_graph.png')