Example #1
0
    def __init__(self,
                 obs_space,
                 action_space,
                 model_dir,
                 device=None,
                 argmax=False,
                 num_envs=1,
                 use_memory=False,
                 use_text=False):
        obs_space, self.preprocess_obss = utils.get_obss_preprocessor(
            obs_space)
        self.acmodel = ACModel(obs_space,
                               action_space,
                               use_memory=use_memory,
                               use_text=use_text)
        self.device = device
        self.argmax = argmax
        self.num_envs = num_envs

        if self.acmodel.recurrent:
            self.memories = torch.zeros(self.num_envs,
                                        self.acmodel.memory_size)

        self.acmodel.load_state_dict(utils.get_model_state(model_dir))
        self.acmodel.to(self.device)
        self.acmodel.eval()
        if hasattr(self.preprocess_obss, "vocab"):
            self.preprocess_obss.vocab.load_vocab(utils.get_vocab(model_dir))
    def __init__(self, obs_space, action_space, model_dir, device=None, argmax=False, num_envs=1):
        obs_space, self.preprocess_obss = utils.get_obss_preprocessor(obs_space)
        self.acmodel = ACModel(obs_space, action_space)
        self.device = device
        self.argmax = argmax
        self.num_envs = num_envs

        self.acmodel.load_state_dict(utils.get_model_state(model_dir))
        self.acmodel.to(self.device)
        self.acmodel.eval()
Example #3
0
    def __init__(self, obs_space, action_space, model_dir, device=None, argmax=False, num_envs=1):
        obs_space, self.preprocess_obss = utils.get_obss_preprocessor(obs_space)
        self.acmodel = ACModel(obs_space, action_space)
        self.device = device
        self.argmax = argmax
        self.num_envs = num_envs

        if self.acmodel.recurrent:
            self.memories = torch.zeros(self.num_envs, self.acmodel.memory_size)

        self.acmodel.load_state_dict(utils.get_model_state(model_dir))
        self.acmodel.to(self.device)
        self.acmodel.eval()
    def __init__(self,
                 obs_space,
                 action_space,
                 model_dir,
                 device=None,
                 argmax=False,
                 num_envs=1):
        obs_space, self.preprocess_obss = utils.get_obss_preprocessor(
            obs_space)
        self.model = QModel(obs_space, action_space)
        self.device = device
        self.argmax = argmax
        self.num_envs = num_envs

        self.model.load_state_dict(utils.get_model_state(model_dir))
        self.model.to(self.device)
        self.model.eval()
        if hasattr(self.preprocess_obss, "vocab"):
            self.preprocess_obss.vocab.load_vocab(utils.get_vocab(model_dir))
Example #5
0
    def __init__(self,
                 env,
                 obs_space,
                 action_space,
                 model_dir,
                 ignoreLTL,
                 progression_mode,
                 gnn,
                 recurrence=1,
                 dumb_ac=False,
                 device=None,
                 argmax=False,
                 num_envs=1):
        try:
            print(model_dir)
            status = utils.get_status(model_dir)
        except OSError:
            status = {"num_frames": 0, "update": 0}

        using_gnn = (gnn != "GRU" and gnn != "LSTM")
        obs_space, self.preprocess_obss = utils.get_obss_preprocessor(
            env, using_gnn, progression_mode)
        if "vocab" in status and self.preprocess_obss.vocab is not None:
            self.preprocess_obss.vocab.load_vocab(status["vocab"])

        if recurrence > 1:
            self.acmodel = RecurrentACModel(env, obs_space, action_space,
                                            ignoreLTL, gnn, dumb_ac, True)
            self.memories = torch.zeros(num_envs,
                                        self.acmodel.memory_size,
                                        device=device)
        else:
            self.acmodel = ACModel(env, obs_space, action_space, ignoreLTL,
                                   gnn, dumb_ac, True)

        self.device = device
        self.argmax = argmax
        self.num_envs = num_envs

        self.acmodel.load_state_dict(utils.get_model_state(model_dir))
        self.acmodel.to(self.device)
        self.acmodel.eval()
Example #6
0
    def __init__(self,
                 obs_space,
                 action_space,
                 model_dir,
                 model_name='AC',
                 device=None,
                 argmax=False,
                 num_envs=1,
                 use_memory=False,
                 use_text=False,
                 input_type="image",
                 feature_learn="curiosity"):
        obs_space, self.preprocess_obss = utils.get_obss_preprocessor(
            obs_space)
        if model_name == 'ac':
            self.acmodel = ACModel(obs_space,
                                   action_space,
                                   use_memory=use_memory,
                                   use_text=use_text)
        elif model_name == 'sr':
            self.acmodel = SRModel(obs_space,
                                   action_space,
                                   input_type=input_type,
                                   use_memory=use_memory,
                                   use_text=use_text,
                                   feature_learn=feature_learn)
        self.model_name = model_name
        self.device = device
        self.argmax = argmax
        self.num_envs = num_envs

        if self.acmodel.recurrent:
            self.memories = torch.zeros(self.num_envs,
                                        self.acmodel.memory_size)

        self.acmodel.load_state_dict(utils.get_model_state(model_dir))
        self.acmodel.to(self.device)
        self.acmodel.eval()
        if hasattr(self.preprocess_obss, "vocab"):
            self.preprocess_obss.vocab.load_vocab(utils.get_vocab(model_dir))
Example #7
0
                    type=int,
                    default=0,
                    help="random seed (default: 0)")
args = parser.parse_args()

# Set seed for all randomness sources

utils.seed(args.seed)

# Set device

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Device: {device}\n")

# Load generator

gen = utils.make_gen(args.gen)
print("Generator loaded\n")

# Load model

model_dir = utils.get_model_dir(args.model)
model = AdditionModel()
model.load_state_dict(utils.get_model_state(model_dir))
model.to(device)
print("Model loaded\n")

# Evaluate model

print("Accuracy: {}".format(gen.evaluate(model, args.examples, device=device)))