Spaces:
Build error
Build error
| import gradio as gr | |
| import torch as th | |
| import numpy as np | |
| from benchmarks import build_env | |
| def submit_model(github_username, | |
| benchmark, | |
| environment, | |
| version, | |
| training_steps, | |
| code_link, | |
| model_uploader | |
| ): | |
| avg_episode_rewards = 0 | |
| success_msg = f""" | |
| INFO: Submitted by {github_username}: | |
| INFO: Benchmark: {benchmark} | |
| INFO: Environment: {environment} | |
| INFO: Version: {version} | |
| INFO: Training Steps: {training_steps} | |
| INFO: Code Link: {code_link} | |
| INFO: Final Score: {avg_episode_rewards} | |
| """ | |
| username_error_msg = f""" | |
| ERROR: The GitHub username should be consistent with the code link! | |
| """ | |
| model_none_error_msg = f""" | |
| ERROR: No model uploaded! | |
| """ | |
| # check if username is valid | |
| if github_username.lower() not in code_link.lower(): | |
| return username_error_msg | |
| if model_uploader is None: | |
| return model_none_error_msg | |
| episode_rewards = evaluate_model(model_uploader, benchmark, environment, version) | |
| avg_episode_rewards = np.mean(episode_rewards) | |
| return success_msg | |
| def evaluate_model(model_uploader, benchmark, environment, version): | |
| env = build_env(benchmark, environment, version) | |
| print(env) | |
| episode_rewards = [] | |
| obs, info = env.reset() | |
| while len(episode_rewards) < 100: | |
| # action = model_uploader.predict(obs) | |
| action = env.action_space.sample() | |
| obs, reward, terminated, truncated, info = env.step(action) | |
| print(reward) | |
| episode_rewards.append(reward) | |
| if terminated or truncated: | |
| obs, info = env.reset() | |
| return episode_rewards | |