def _train_with_cache(cls, cache, task_ids, tier, dqn_load_from, dev_tasks_ids, max_train_actions, output_dir, **kwargs): if dqn_load_from is not None: model = neural_agent.load_agent_from_folder(dqn_load_from) else: train_kwargs, _ = cls._extract_dqn_flags(**kwargs) # CUSTOM if os.path.exists(cls.ACTION_PATH_DIR): with open(cls.ACTION_PATH_DIR + '/channel_paths.pickle', 'rb') as fp: action_path_dict = pickle.load(fp) train_action_paths = torch.Tensor([ action_path_dict[task] if task in action_path_dict else torch.zeros(256, 256) for task in task_ids ])[:, None] if dev_tasks_ids is not None: eval_action_paths = torch.Tensor([ action_path_dict[task] if task in action_path_dict else torch.zeros(256, 256) for task in dev_tasks_ids ])[:, None] else: eval_action_paths = None else: print("can't find action_path_dict!") exit(-1) model = neural_agent.train(output_dir, tier, task_ids, cache=cache, max_train_actions=max_train_actions, dev_tasks_ids=dev_tasks_ids, train_action_paths=train_action_paths, eval_action_paths=eval_action_paths, **train_kwargs) if max_train_actions: num_actions = max_train_actions else: num_actions = len(cache) return dict(model=model, num_actions=num_actions, cache=cache)
def _train_with_cache(cls, cache, task_ids, tier, dqn_load_from, dev_tasks_ids, max_train_actions, output_dir, **kwargs): if dqn_load_from is not None: model = neural_agent.load_agent_from_folder(dqn_load_from) else: train_kwargs, _ = cls._extract_dqn_flags(**kwargs) model = neural_agent.train(output_dir, tier, task_ids, cache=cache, max_train_actions=max_train_actions, dev_tasks_ids=dev_tasks_ids, **train_kwargs) if max_train_actions: num_actions = max_train_actions else: num_actions = len(cache) return dict(model=model, num_actions=num_actions, cache=cache)