def load(dir): with open(f"{dir}/planner.pkl", 'rb') as f: planner = pickle.load(f) planner.world_model = WorldModel.load(dir) return planner
pickle.dump(transformer, f) n_obs = transformer.rbf_dim if transformer else env.observation_space.shape[ 0] n_action = env.action_space.shape[0] max_action = float(env.action_space.high[0]) critic = build_critic(n_obs, args.learning_rate) if transformer: critic = NetworkWithTransformer(critic, transformer) # Initialize agent if args.agent == "PIP": copy_tree(f"world_models/{args.world_model}", f"{model_path}/world_model") world_model = WorldModel.load(model_path) planner = PSOPlanner( env.action_space, world_model, critic, length=args.plan_length, gamma=args.gamma, particles=args.particles, iterations=args.iterations, c1=args.c1, c2=args.c2, w=args.w, k=args.k, ) agent = PIP(planner, critic, gamma=args.gamma)