def getBaseExpConfig(args): """ :param args: (parsed args object) :return: (str) """ if not os.path.isfile(args.base_config): printRed("You must specify a valid --base-config json file") sys.exit(1) args.data_folder = parseDataFolder(args.data_folder) dataset_path = "data/{}".format(args.data_folder) assert os.path.isdir(dataset_path), "Path to dataset folder is not valid: {}".format(dataset_path) with open(args.base_config, 'r') as f: exp_config = json.load(f) exp_config['data-folder'] = args.data_folder exp_config['relative-pos'] = useRelativePosition(args.data_folder) return exp_config
parser.add_argument('--print-corr', action='store_true', default=False, help='Only print correlation measurements') args = parser.parse_args() cmap = "tab20" if args.color_episode else "coolwarm" assert not (args.color_episode and args.data_folder == ""), \ "You must specify a datafolder when using per-episode color" assert not (args.correlation and args.data_folder == ""), \ "You must specify a datafolder when using the correlation plot" # Force correlation plotting when `--print-cor` is passed if args.print_corr: args.correlation = True args.data_folder = parseDataFolder(args.data_folder) if args.input_file != "": print("Loading {}...".format(args.input_file)) states_rewards = np.load(args.input_file) rewards = states_rewards['rewards'] if args.color_episode: episode_starts = np.load('data/{}/preprocessed_data.npz'.format(args.data_folder))['episode_starts'] rewards = colorPerEpisode(episode_starts)[:len(rewards)] if args.plot_against: print("Plotting against") plotAgainst(states_rewards['states'], rewards, cmap=cmap) elif args.pretty_plot_against: print("Pretty plotting against")