def __init__(self, config: Config): #if model_type == "mujoco_offline": self.selector_name = config.selector_name with open(config.model_config_file, "rb") as f: model_config = pickle.load(f) model_config = Munch(model_config) model_config.B = 1 if "fix_crop" not in model_config: model_config.fix_crop = False if config.model_type == "mujoco_offline": self.model = model_nets.mujoco_offline.MujocoOffline(model_config) elif config.model_type == "mujoco_offline_metric": self.model = model_nets.mujoco_offline_metric.MujocoOfflineMetric( model_config) self.saveload_config = dict() self.saveload_config["total_init"] = True self.saveload_config["reset_iter"] = False self.saveload_config["loadname"] = dict() ckpt_dict = eval(config.ckpt_dict) for key in ckpt_dict: self.saveload_config["loadname"][key] = ckpt_dict[key] self.saveload_config = Munch(self.saveload_config) self.saverloader = saverloader.SaverLoader(self.saveload_config, self.model, load_only=True) start_iter = self.saverloader.load_weights(optimizer=None) if config.model_type == "mujoco_offline": with open(config.cluster_pkl_file, 'rb') as f: self.cluster_centers = pickle.load(f) for center_name in self.cluster_centers: # key is string # center is B x H x W x D x C self.cluster_centers[center_name] = np.expand_dims( self.cluster_centers[center_name], axis=0) elif config.model_type == "mujoco_offline_metric": self.cluster_centers = self.model.get_cluster_centers_dict()
def __init__(self, config: Config): self.config = config with open(config.model_config_file, "rb") as f: model_config = pickle.load(f) model_config = Munch(model_config) model_config.B = 1 self.model = model_nets.mujoco_offline.MujocoOffline(model_config) self.saveload_config = dict() self.saveload_config["total_init"] = True self.saveload_config["reset_iter"] = False self.saveload_config["loadname"] = dict() ckpt_dict = eval(config.ckpt_dict) for key in ckpt_dict: self.saveload_config["loadname"][key] = ckpt_dict[key] self.saveload_config = Munch(self.saveload_config) self.saverloader = saverloader.SaverLoader(self.saveload_config, self.model, load_only=True) start_iter = self.saverloader.load_weights(optimizer=None) # setup camera self.camera_positions, self.camera_quats = pcp_utils.cameras.generate_new_cameras_hemisphere( radius=self.config.camera_radius, lookat_point=self.config.camera_lookat_pos, pitch=self.config.camera_pitch, yaw=self.config.camera_yaw, yaw_list=self.config.camera_yaw_list) self.n_cams = len(self.camera_positions) mujoco_T_adam = np.array([[1, 0, 0], [0, 0, 1], [0, -1, 0]], dtype=np.float32) origin_T_camR_xpos = np.array(config.table_top, np.float32) + np.array( config.table_T_camR, np.float) origin_T_adam = np.zeros((4, 4), dtype=np.float32) origin_T_adam[:3, :3] = mujoco_T_adam origin_T_adam[:3, 3] = origin_T_camR_xpos origin_T_adam[3, 3] = 1 self.origin_T_adam = origin_T_adam self.adam_T_origin = np.linalg.inv(self.origin_T_adam)