Download Loader.py from Energetic26/first-model: direct link, hf CLI and curl.
- Browser
- Download file 1.98 kB
-
https://huggingface.co/Energetic26/first-model/resolve/main/Loader.py
- Command line
-
hf download hf://Energetic26/first-model/Loader.py
-
curl -L -o Loader.py https://huggingface.co/Energetic26/first-model/resolve/main/Loader.py
1.98 kB
| import os | |
| from stable_baselines3 import PPO | |
| import gym | |
| class MegaLoader: | |
| def __init__(self, env_name, algo, directory): | |
| self.env_name = env_name | |
| self.env = gym.make(self.env_name) | |
| self.env.reset() | |
| self.algorithm = algo | |
| self.directory = directory | |
| def model_selector(self, all_models_dir): | |
| # print( os.listdir(all_models_dir)[-1]) | |
| return os.listdir(all_models_dir)[-1] | |
| # return whole file name properly, with date and all | |
| pass | |
| def load(self, execution_number, no_of_episodes): | |
| # Input :- | |
| # 1. execution_number - | |
| # 2. no_of_episodes - | |
| # 3. | |
| # Returns :- | |
| # Dictionary with the following items | |
| # 1. total_return [int] | |
| # 2. return_per_episode [list] | |
| # 3. | |
| # 3. | |
| # 3. | |
| # 3. | |
| total_return = 0 | |
| return_per_episode = [] | |
| info_per_episode = [] | |
| all_models_dir = f"model/{self.directory}/{execution_number}" | |
| model_no = self.model_selector(all_models_dir) | |
| model_dir = f"{all_models_dir}/{model_no}" | |
| model = PPO.load(model_dir, env=self.env) | |
| for ep in range(no_of_episodes): | |
| obs = self.env.reset() | |
| done = False | |
| info = "" | |
| episode_return = 0 | |
| while not done: | |
| action, _states = model.predict(obs) | |
| obs, rewards, done, info = self.env.step(action) | |
| episode_return += rewards | |
| # self.env.render() | |
| return_per_episode.append(episode_return) | |
| total_return += episode_return | |
| info_per_episode.append(info) | |
| model_test_info = { | |
| "total_return": total_return, | |
| "return_per_episode": return_per_episode, | |
| "info_per_episode": info_per_episode, | |
| } | |
| return model_test_info |