Example #1
0
    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)
Example #2
0
 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)