Views
No views yet
1import gymnasium as gym
2import pickle
3from huggingface_hub import hf_hub_download
4
5# Define state_mapper if needed for your environment (e.g., Blackjack)
6# def map_blackjack_state_to_int(state_tuple, obs_space): ...
7
8def load_from_hub(repo_id, filename):
9 pickle_model = hf_hub_download(repo_id=repo_id, filename=filename)
10 with open(pickle_model, 'rb') as f:
11 downloaded_model_file = pickle.load(f)
12 return downloaded_model_file
13
14model_data = load_from_hub(repo_id="shihuai7189/q-Blackjack-v1-experiment", filename="q-learning.pkl")
15q_table = model_data["qtable"]
16env_id = model_data["env_id"]
17
18# For Blackjack, the observation space is needed for the mapper
19# if env_id == "Blackjack-v1":
20# env_temp = gym.make(env_id) # Create a temp env to get obs_space details
21# blackjack_obs_space_dims = (env_temp.observation_space[0].n, env_temp.observation_space[1].n, env_temp.observation_space[2].n)
22# env_temp.close()
23# # Then use map_blackjack_state_to_int(raw_state, blackjack_obs_space_dims)
24
25# Example of running the loaded agent (adapt as needed)
26# env = gym.make(env_id)
27# raw_state, info = env.reset()
28# state_idx = map_blackjack_state_to_int(raw_state, blackjack_obs_space_dims) if env_id == "Blackjack-v1" else raw_state
29# ... run agent using greedy_policy(q_table, state_idx) ...