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()
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))
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()
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))
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)))