From ed2f2edbfdd648752d632804b639ba6859f59c5e Mon Sep 17 00:00:00 2001 From: Sarah <148502402+salsaady@users.noreply.github.com> Date: Tue, 15 Jul 2025 23:50:13 -0400 Subject: [PATCH 01/19] 59 document development environment setup in carletonaidocs for onboarding (#72) docs: dev environment setup --- docs/ONBOARDING.md | 156 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 docs/ONBOARDING.md diff --git a/docs/ONBOARDING.md b/docs/ONBOARDING.md new file mode 100644 index 0000000..1527bf6 --- /dev/null +++ b/docs/ONBOARDING.md @@ -0,0 +1,156 @@ +# CuMind Development Environment Setup Guide + +This guide walks you through setting up the CuMind development environment on **macOS** and **Windows (WSL)** using GitHub, VSCode or Cursor, and `uv` for Python dependency management. + +## 1. Platform Prerequisites + +CuMind requires a Linux-based development environment. + +To achieve this on your machine: + +### On Windows: + +- Install WSL and Ubuntu by following the [official Microsoft guide](https://learn.microsoft.com/en-us/windows/wsl/install) +- Recommended: WSL 2 and Ubuntu 22.04 +- After installation, open "Ubuntu" from the Start Menu to launch your WSL terminal +- Use a code editor such as [VSCode](https://code.visualstudio.com/) or [Cursor](https://cursor.so) that supports WSL. + If you're using VSCode, install the **Remote - WSL** extension — you'll use it to open and work with the project from inside your WSL environment after cloning the repository. + - Additional resource: [VSCode: Developing in WSL](https://code.visualstudio.com/docs/remote/wsl) + +### On macOS: + +- No WSL needed — the built-in Terminal provides a compatible Unix-based environment +- Use any local code editor such as [VSCode](https://code.visualstudio.com/) or [Cursor](https://cursor.so) + +## 2. Setup Python & `uv` + +### 1. **Install Python** + +Ensure Python 3.12 or higher is installed: + +```bash +python3 --version +``` + +If not installed or the version is too old, install: + +- #### On WSL: + + Install Python and pip: + + ```bash + sudo apt update + sudo apt install python3 python3-pip + ``` + +- #### On macOS: + + ```bash + brew install python + ``` + +### 2. **Install `uv`** + +Install the Python dependency manager `uv` using one of two ways: + +- Using pip/pipx: + + ```bash + pip install uv + # or + pipx install uv + ``` + +- Using the standalone installer: + + ```bash + curl -LsSf https://astral.sh/uv/install.sh | sh + ``` + + To update, run: + + ```bash + uv self update + ``` + +More details: [uv documentation](https://astral.sh/uv/) + +## 4. Clone Repo and Setup Git Authentication + +You can clone the repo using either **SSH** or **HTTPS**. + +### Option 1: SSH (Recommended) + +1. Generate a new SSH key (if you don't have one already): + +```bash +ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "your_email@example.com" +``` + +2. Copy your public key: + +```bash +cat ~/.ssh/id_ed25519.pub +``` + +3. Add it to GitHub: + [https://github.com/settings/ssh/new](https://github.com/settings/ssh/new) + +4. Test your connection: + +```bash +ssh -T git@github.com +``` + +5. Clone the repo: + +```bash +git clone git@github.com:carletonai/CuMind.git +``` + +> If you already have an SSH key and have it registered with GitHub, skip steps 1–3. + +### Option 2: HTTPS + +Clone the repo using: + +```bash +git clone https://github.com/carletonai/CuMind.git +``` + +You’ll be prompted to enter your GitHub **username** and a **personal access token** (PAT) instead of a password. +Generate a PAT here: [https://github.com/settings/tokens](https://github.com/settings/tokens) + +## 5. Set Up and Run the Project + +Once the repo is cloned, navigate to it and install dependencies: + +```bash +cd CuMind +uv sync +``` + +Test out running a specific file to make sure your setup is working: + +`uv run python src/cartpole.py` + +To run the full application: + +`uv run python -m cumind --config configuration.json` + +## 6. Test Your Git Setup + +Make sure you can push a new branch: + +```bash +git checkout -b test-branch +git push origin test-branch +``` + +Once confirmed, please delete the test branch: + +`git push origin --delete test-branch` + +## You’re Ready! + +You should now be able to develop and contribute to CuMind locally. If you run into issues, feel free to reach out on Discord. From 1b5d86edd873f2094987b32f86eca8fbdd29bcbf Mon Sep 17 00:00:00 2001 From: t4r3k <142579274+machine-moon@users.noreply.github.com> Date: Tue, 15 Jul 2025 23:04:17 -0400 Subject: [PATCH 02/19] updated pr templ + config --- .github/pull_request_template.md | 25 +--- CONTRIBUTING.md | 2 +- configuration.json | 106 ++++++++-------- docs/GPU_PERFORMANCE_TIPS.md | 4 +- src/cartpole.py | 11 +- src/cumind/agent/agent.py | 10 +- src/cumind/agent/trainer.py | 36 +++--- src/cumind/config.py | 212 ++++++++++++++++++------------- src/cumind/core/mcts.py | 20 +-- src/cumind/runner.py | 2 +- tests/test_agent.py | 30 ++--- tests/test_basic.py | 56 ++++---- tests/test_data.py | 12 +- tests/test_mcts.py | 28 ++-- 14 files changed, 284 insertions(+), 270 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index f9a6fe0..9ac9ec7 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -3,33 +3,18 @@ ### Summary Describe the purpose and key changes of this PR. -### Change Type -- [ ] Bug fix -- [ ] New feature -- [ ] Breaking change -- [ ] Documentation -- [ ] Refactor -- [ ] Performance -- [ ] Other: - -### Related Issues -- Fixes: # -- Related: # - ### What Was Changed - -### Testing +### Quality Control - [ ] Added/updated tests - [ ] All tests pass locally - [ ] Linter and type checks pass -### Checklist -- [ ] Follows style guidelines -- [ ] Self-reviewed -- [ ] Code is commented where needed -- [ ] Documentation updated -- [ ] No new warnings +### Related Issues +- Fixes: # +- Related: # + ### Screenshots / Notes diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9ccd6f..ae8e013 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -240,7 +240,7 @@ def test_select_action_training_mode(self): agent = Agent(config) action = agent.select_action(observation, training=True) assert isinstance(action, int) - assert 0 <= action < config.action_space_size + assert 0 <= action < config.env_action_space_size ``` ## Project Structure diff --git a/configuration.json b/configuration.json index 79383e2..34c15ca 100644 --- a/configuration.json +++ b/configuration.json @@ -1,54 +1,58 @@ { - "Network architecture": { - "hidden_dim": 128, - "num_blocks": 2, - "conv_channels": 32 - }, - "Training": { - "batch_size": 64, - "learning_rate": 0.01, - "weight_decay": 0.0001, - "target_update_frequency": 250, - "checkpoint_interval": 50, - "num_episodes": 1220, - "train_frequency": 2, - "checkpoint_root_dir": "checkpoints" - }, - "MCTS": { - "num_simulations": 25, - "c_puct": 1.25, - "dirichlet_alpha": 0.25, - "exploration_fraction": 0.25 - }, - "Environment": { - "env_name": "CartPole-v1", - "action_space_size": 2, - "observation_shape": [ - 4 - ] - }, - "Self-Play": { - "num_unroll_steps": 5, - "td_steps": 10, - "discount": 0.997 - }, - "Memory": { - "memory_capacity": 2000, - "min_memory_size": 100, - "min_memory_pct": 0.1, - "per_alpha": 0.6, - "per_epsilon": 1e-06, - "per_beta": 0.4 - }, - "Data Types": { - "model_dtype": "float32", - "action_dtype": "int32", - "target_dtype": "float32" - }, - "Device": { - "device_type": "cpu" - }, - "Other": { + "CuMind": + { + "network": + { + "hidden_dim": 128, + "num_blocks": 2, + "conv_channels": 32 + }, + "training": + { + "batch_size": 64, + "learning_rate": 0.01, + "weight_decay": 0.0001, + "target_update_frequency": 250, + "checkpoint_interval": 50, + "num_episodes": 1220, + "train_frequency": 2, + "checkpoint_root_dir": "checkpoints" + }, + "mcts": + { + "num_simulations": 25, + "c_puct": 1.25, + "dirichlet_alpha": 0.25, + "exploration_fraction": 0.25 + }, + "env": + { + "name": "CartPole-v1", + "action_space_size": 2, + "observation_shape": [4] + }, + "selfplay": + { + "num_unroll_steps": 5, + "td_steps": 10, + "discount": 0.997 + }, + "memory": + { + "capacity": 2000, + "min_size": 100, + "min_pct": 0.1, + "per_alpha": 0.6, + "per_epsilon": 1e-06, + "per_beta": 0.4 + }, + "dtypes": + { + "model": "float32", + "action": "int32", + "target": "float32" + }, + "device": "cpu", "seed": 42 } -} \ No newline at end of file +} diff --git a/docs/GPU_PERFORMANCE_TIPS.md b/docs/GPU_PERFORMANCE_TIPS.md index 3e7bb41..400d7d7 100644 --- a/docs/GPU_PERFORMANCE_TIPS.md +++ b/docs/GPU_PERFORMANCE_TIPS.md @@ -223,7 +223,7 @@ from cumind import Agent, Config def benchmark_inference(config: Config, num_runs: int = 1000): """Benchmark inference speed on GPU.""" agent = Agent(config) - observation = jnp.ones(config.observation_shape) + observation = jnp.ones(config.env_observation_shape) # Warm-up for _ in range(10): @@ -248,7 +248,7 @@ if __name__ == "__main__": ] for config in configs: - print(f"\nTesting with dtype: {config.model_dtype}") + print(f"\nTesting with dtype: {config.dtypes_model}") benchmark_inference(config) ``` diff --git a/src/cartpole.py b/src/cartpole.py index bb0e7e3..b84d1da 100644 --- a/src/cartpole.py +++ b/src/cartpole.py @@ -1,20 +1,15 @@ """Basic training example for CuMind with CartPole.""" from cumind.config import Config -from cumind.runner import train +from cumind.runner import inference, train def main() -> None: """Main function for running the CartPole example.""" # Loads whatever configuration in config.py config = Config() - - config.env_name = "CartPole-v1" - config.action_space_size = 2 - config.observation_shape = (4,) - config.num_episodes = 500 - - train(config) + ckpt = train(config) + inference(config, ckpt) if __name__ == "__main__": diff --git a/src/cumind/agent/agent.py b/src/cumind/agent/agent.py index 521d2e7..56454e3 100644 --- a/src/cumind/agent/agent.py +++ b/src/cumind/agent/agent.py @@ -30,22 +30,22 @@ def __init__(self, config: Config, existing_state: Dict[str, Any] | None = None) log.info("Initializing CuMind agent...") self.config = config - self.device = jax.devices(config.device_type)[0] + self.device = jax.devices(config.device)[0] log.info(f"Using device: {self.device}") - log.info(f"Creating CuMindNetwork with observation shape {config.observation_shape} and action space size {config.action_space_size}") + log.info(f"Creating CuMindNetwork with observation shape {config.env_observation_shape} and action space size {config.env_action_space_size}") key.seed(config.seed) rngs = nnx.Rngs(params=key()) with jax.default_device(self.device): - self.network = CuMindNetwork(observation_shape=config.observation_shape, action_space_size=config.action_space_size, hidden_dim=config.hidden_dim, num_blocks=config.num_blocks, conv_channels=config.conv_channels, rngs=rngs) + self.network = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) log.info("Creating target network.") self.target_network = nnx.clone(self.network) - log.info(f"Setting up AdamW optimizer with learning rate {config.learning_rate} and weight decay {config.weight_decay}") - self.optimizer = optax.adamw(learning_rate=config.learning_rate, weight_decay=config.weight_decay) + log.info(f"Setting up AdamW optimizer with learning rate {config.training_learning_rate} and weight decay {config.training_weight_decay}") + self.optimizer = optax.adamw(learning_rate=config.training_learning_rate, weight_decay=config.training_weight_decay) if existing_state: log.info("Loading agent state from existing state.") diff --git a/src/cumind/agent/trainer.py b/src/cumind/agent/trainer.py index 1dada28..24aa667 100644 --- a/src/cumind/agent/trainer.py +++ b/src/cumind/agent/trainer.py @@ -36,7 +36,7 @@ def __init__(self, agent: Agent, memory: Memory, config: Config): self.memory = memory self.config = config timestamp = datetime.now().strftime("%Y%m%d-%H%M%S") - self.checkpoint_dir = f"{config.checkpoint_root_dir}/{config.env_name}/{timestamp}" + self.checkpoint_dir = f"{config.training_checkpoint_root_dir}/{config.env_name}/{timestamp}" os.makedirs(self.checkpoint_dir, exist_ok=True) log.info(f"Checkpoints will be saved to {self.checkpoint_dir}") self.train_step_count = 0 @@ -46,8 +46,8 @@ def run_training_loop(self, env: Any) -> None: Args: env: The environment to run episodes in. """ - num_episodes = self.config.num_episodes - train_frequency = self.config.train_frequency + num_episodes = self.config.training_num_episodes + train_frequency = self.config.training_train_frequency log.info(f"Starting training loop for {num_episodes} episodes with train frequency {train_frequency}.") loss_info = {} @@ -60,7 +60,7 @@ def run_training_loop(self, env: Any) -> None: if episode > 0 and episode % train_frequency == 0: loss_info = self.train_step() - if self.train_step_count > 0 and self.train_step_count % self.config.target_update_frequency == 0: + if self.train_step_count > 0 and self.train_step_count % self.config.training_target_update_frequency == 0: log.info(f"Updating target network at training step {self.train_step_count}") self.agent.update_target_network() metrics = { @@ -77,16 +77,16 @@ def run_training_loop(self, env: Any) -> None: ) pbar.set_postfix(metrics) - if episode > 0 and episode % self.config.checkpoint_interval == 0: + if episode > 0 and episode % self.config.training_checkpoint_interval == 0: self.save_checkpoint(episode) def train_step(self) -> Dict[str, float]: """Performs one full training step, including sampling and network update.""" - if not self.memory.is_ready(self.config.min_memory_size, self.config.min_memory_pct): + if not self.memory.is_ready(self.config.memory_min_size, self.config.memory_min_pct): log.warning("Buffer not ready for training, skipping step.") return {} log.debug(f"Starting training step {self.train_step_count}...") - batch = self.memory.sample(self.config.batch_size) + batch = self.memory.sample(self.config.training_batch_size) observations, actions, targets = self._prepare_batch(batch) params = nnx.state(self.agent.network, nnx.Param) @@ -130,16 +130,16 @@ def _prepare_batch(self, batch: List[Any]) -> Tuple[chex.Array, chex.Array, Dict policy_targets.append(item[0]["policy"]) observations.append(item[0]["observation"]) - actions = [step["action"] for step in item[: self.config.num_unroll_steps]] - rewards = [step["reward"] for step in item[: self.config.num_unroll_steps]] + actions = [step["action"] for step in item[: self.config.selfplay_num_unroll_steps]] + rewards = [step["reward"] for step in item[: self.config.selfplay_num_unroll_steps]] action_sequences.append(actions) reward_targets.append(rewards) for seq in action_sequences: - while len(seq) < self.config.num_unroll_steps: + while len(seq) < self.config.selfplay_num_unroll_steps: seq.append(0) for seq in reward_targets: - while len(seq) < self.config.num_unroll_steps: + while len(seq) < self.config.selfplay_num_unroll_steps: seq.append(0.0) return ( @@ -154,8 +154,8 @@ def _prepare_batch(self, batch: List[Any]) -> Tuple[chex.Array, chex.Array, Dict def _compute_n_step_return(self, item: List[Dict[str, Any]]) -> float: """Computes the n-step return for a item, with bootstrapping.""" - n_steps = self.config.td_steps - discount = self.config.discount + n_steps = self.config.selfplay_td_steps + discount = self.config.selfplay_discount rewards = [step["reward"] for step in item] n_step_return = 0.0 @@ -180,7 +180,7 @@ def _compute_losses(self, network: CuMindNetwork, observations: chex.Array, acti current_states = hidden_states # Accumulate value loss, policy loss, and reward loss for each unroll step - for step in range(self.config.num_unroll_steps): + for step in range(self.config.selfplay_num_unroll_steps): step_actions = jnp.asarray(actions)[:, step] next_states, pred_rewards, pred_policy_logits, pred_values = network.recurrent_inference(current_states, step_actions) @@ -197,10 +197,10 @@ def _compute_losses(self, network: CuMindNetwork, observations: chex.Array, acti current_states = next_states - if self.config.num_unroll_steps > 0: - reward_loss /= self.config.num_unroll_steps - value_loss /= self.config.num_unroll_steps + 1 - policy_loss /= self.config.num_unroll_steps + 1 + if self.config.selfplay_num_unroll_steps > 0: + reward_loss /= self.config.selfplay_num_unroll_steps + value_loss /= self.config.selfplay_num_unroll_steps + 1 + policy_loss /= self.config.selfplay_num_unroll_steps + 1 return {"value_loss": value_loss, "policy_loss": policy_loss, "reward_loss": reward_loss} diff --git a/src/cumind/config.py b/src/cumind/config.py index 28ea73c..0ddd29a 100644 --- a/src/cumind/config.py +++ b/src/cumind/config.py @@ -3,7 +3,7 @@ import dataclasses import json from pathlib import Path -from typing import Tuple +from typing import Any, Dict, Tuple import chex @@ -19,66 +19,61 @@ class Config: """ # Network architecture - hidden_dim: int = 128 - num_blocks: int = 2 + network_hidden_dim: int = 128 + network_num_blocks: int = 2 + network_conv_channels: int = 32 # Training - batch_size: int = 32 - learning_rate: float = 1e-3 - weight_decay: float = 1e-4 - target_update_frequency: int = 10000000 - checkpoint_interval: int = 100 - num_episodes: int = 500 - train_frequency: int = 5 - checkpoint_root_dir: str = "checkpoints" + training_batch_size: int = 64 + training_learning_rate: float = 0.01 + training_weight_decay: float = 0.0001 + training_target_update_frequency: int = 250 + training_checkpoint_interval: int = 50 + training_num_episodes: int = 1220 + training_train_frequency: int = 2 + training_checkpoint_root_dir: str = "checkpoints" # MCTS - num_simulations: int = 10 - c_puct: float = 1.0 - dirichlet_alpha: float = 0.3 - exploration_fraction: float = 0.25 + mcts_num_simulations: int = 25 + mcts_c_puct: float = 1.25 + mcts_dirichlet_alpha: float = 0.25 + mcts_exploration_fraction: float = 0.25 # Environment env_name: str = "CartPole-v1" - action_space_size: int = 2 - observation_shape: Tuple[int, ...] = (4,) + env_action_space_size: int = 2 + env_observation_shape: Tuple[int, ...] = (4,) # Self-Play - num_unroll_steps: int = 3 - td_steps: int = 5 - discount: float = 0.997 + selfplay_num_unroll_steps: int = 5 + selfplay_td_steps: int = 10 + selfplay_discount: float = 0.997 # Memory - memory_capacity: int = 1000 - min_memory_size: int = 3 - min_memory_pct: float = 0.00 + memory_capacity: int = 2000 + memory_min_size: int = 100 + memory_min_pct: float = 0.1 + memory_per_alpha: float = 0.6 # Tree - per_alpha: float = 0.6 - per_epsilon: float = 1e-6 - # Prioritized Buffer - per_beta: float = 0.4 - # Network Architecture - conv_channels: int = 32 + memory_per_epsilon: float = 1e-6 + # Prioritized Buffer + memory_per_beta: float = 0.4 # Data Types - model_dtype: str = "float32" - action_dtype: str = "int32" - target_dtype: str = "float32" + dtypes_model: str = "float32" + dtypes_action: str = "int32" + dtypes_target: str = "float32" # Devices - device_type: str = "cpu" - - # Other + device: str = "cpu" seed: int = 42 @classmethod def from_json(cls, json_path: str) -> "Config": """Loads a configuration from a JSON file. - Args: json_path: Path to the JSON configuration file. - Returns: A Config instance with the loaded parameters. """ @@ -91,19 +86,58 @@ def from_json(cls, json_path: str) -> "Config": with open(json_file, "r", encoding="utf-8") as f: config_dict = json.load(f) + if "CuMind" not in config_dict: + log.critical("Root key 'CuMind' not found in config file.") + raise ValueError("Root key 'CuMind' not found in config file.") + + config_params = config_dict["CuMind"] flattened_dict = {} - for section, params in config_dict.items(): + for section, params in config_params.items(): if isinstance(params, dict): - flattened_dict.update(params) + for key, value in params.items(): + flattened_dict[f"{section}_{key}"] = value else: flattened_dict[section] = params log.info("Configuration loaded successfully.") return cls(**flattened_dict) + def _format_json(self, obj: Any, indent: int = 0) -> str: + """Format JSON with open brace style and one-liner arrays.""" + if isinstance(obj, dict): + if not obj: + return "{}" + + items = [] + for key, value in obj.items(): + key_str = json.dumps(key) + if isinstance(value, (dict, list)) and value: + value_str = self._format_json(value, indent + 2) + items.append(f'{" " * (indent + 2)}{key_str}:\n{" " * (indent + 2)}{value_str}') + else: + value_str = self._format_json(value, indent + 2) + items.append(f'{" " * (indent + 2)}{key_str}: {value_str}') + + return "{\n" + ",\n".join(items) + "\n" + " " * indent + "}" + + elif isinstance(obj, list): + if not obj: + return "[]" + + if all(isinstance(item, (str, int, float, bool)) or item is None for item in obj): + return json.dumps(obj) + + items = [] + for item in obj: + items.append(self._format_json(item, indent + 2)) + + return "[\n" + ",\n".join(f'{" " * (indent + 2)}{item}' for item in items) + "\n" + " " * indent + "]" + + else: + return json.dumps(obj) + def to_json(self, json_path: str) -> None: """Saves the configuration to a JSON file. - Args: json_path: Path to save the JSON configuration file. """ @@ -111,76 +145,72 @@ def to_json(self, json_path: str) -> None: json_file = Path(json_path) json_file.parent.mkdir(parents=True, exist_ok=True) - # Define the section mapping based on the comments in the dataclass - section_mapping = { - "Network architecture": ["hidden_dim", "num_blocks", "conv_channels"], - "Training": ["batch_size", "learning_rate", "weight_decay", "target_update_frequency", "checkpoint_interval", "num_episodes", "train_frequency", "checkpoint_root_dir"], - "MCTS": ["num_simulations", "c_puct", "dirichlet_alpha", "exploration_fraction"], - "Environment": ["env_name", "action_space_size", "observation_shape"], - "Self-Play": ["num_unroll_steps", "td_steps", "discount"], - "Memory": ["memory_capacity", "min_memory_size", "min_memory_pct", "per_alpha", "per_epsilon", "per_beta"], - "Data Types": ["model_dtype", "action_dtype", "target_dtype"], - "Device": ["device_type"], - "Other": ["seed"], - } - config_dict = dataclasses.asdict(self) - organized_config = {} + organized_config: Dict[str, Any] = {} + + for key, value in config_dict.items(): + if "_" in key: + section, field = key.split("_", 1) + if section not in organized_config: + organized_config[section] = {} + organized_config[section][field] = value + else: + organized_config[key] = value - for section, fields in section_mapping.items(): - organized_config[section] = {field: config_dict[field] for field in fields if field in config_dict} + final_config = {"CuMind": organized_config} with open(json_file, "w", encoding="utf-8") as f: - json.dump(organized_config, f, indent=2) + f.write(self._format_json(final_config)) + f.write("\n") + log.info("Configuration saved successfully.") def validate(self) -> None: """Validates the configuration parameters. - Raises: ValueError: If any parameter is found to be invalid. """ log.info("Validating configuration...") - if self.hidden_dim <= 0: - log.critical(f"Invalid hidden_dim: {self.hidden_dim}. Must be positive.") - raise ValueError(f"hidden_dim must be positive, got {self.hidden_dim}") - if self.action_space_size <= 0: - log.critical(f"Invalid action_space_size: {self.action_space_size}. Must be positive.") - raise ValueError(f"action_space_size must be positive, got {self.action_space_size}") - if not self.observation_shape: + if self.network_hidden_dim <= 0: + log.critical(f"Invalid hidden_dim: {self.network_hidden_dim}. Must be positive.") + raise ValueError(f"hidden_dim must be positive, got {self.network_hidden_dim}") + if self.env_action_space_size <= 0: + log.critical(f"Invalid action_space_size: {self.env_action_space_size}. Must be positive.") + raise ValueError(f"action_space_size must be positive, got {self.env_action_space_size}") + if not self.env_observation_shape: log.critical("observation_shape cannot be empty.") raise ValueError("observation_shape cannot be empty") - if len(self.observation_shape) not in [1, 3]: - log.critical(f"Unsupported observation_shape dimensionality: {len(self.observation_shape)}D. Must be 1D or 3D.") - raise ValueError(f"observation_shape must be 1D or 3D, got {len(self.observation_shape)}D") - if self.learning_rate <= 0: - log.critical(f"Invalid learning_rate: {self.learning_rate}. Must be positive.") - raise ValueError(f"learning_rate must be positive, got {self.learning_rate}") - if self.batch_size <= 0: - log.critical(f"Invalid batch_size: {self.batch_size}. Must be positive.") - raise ValueError(f"batch_size must be positive, got {self.batch_size}") - if self.num_simulations <= 0: - log.critical(f"Invalid num_simulations: {self.num_simulations}. Must be positive.") - raise ValueError(f"num_simulations must be positive, got {self.num_simulations}") + if len(self.env_observation_shape) not in [1, 3]: + log.critical(f"Unsupported observation_shape dimensionality: {len(self.env_observation_shape)}D. Must be 1D or 3D.") + raise ValueError(f"observation_shape must be 1D or 3D, got {len(self.env_observation_shape)}D") + if self.training_learning_rate <= 0: + log.critical(f"Invalid learning_rate: {self.training_learning_rate}. Must be positive.") + raise ValueError(f"learning_rate must be positive, got {self.training_learning_rate}") + if self.training_batch_size <= 0: + log.critical(f"Invalid batch_size: {self.training_batch_size}. Must be positive.") + raise ValueError(f"batch_size must be positive, got {self.training_batch_size}") + if self.mcts_num_simulations <= 0: + log.critical(f"Invalid num_simulations: {self.mcts_num_simulations}. Must be positive.") + raise ValueError(f"num_simulations must be positive, got {self.mcts_num_simulations}") valid_model_dtypes = ["float32", "float16", "bfloat16"] - if self.model_dtype not in valid_model_dtypes: - log.critical(f"Invalid model_dtype: {self.model_dtype}. Must be one of {valid_model_dtypes}.") - raise ValueError(f"model_dtype must be one of {valid_model_dtypes}, got {self.model_dtype}") + if self.dtypes_model not in valid_model_dtypes: + log.critical(f"Invalid model_dtype: {self.dtypes_model}. Must be one of {valid_model_dtypes}.") + raise ValueError(f"model_dtype must be one of {valid_model_dtypes}, got {self.dtypes_model}") valid_action_dtypes = ["int32", "int64"] - if self.action_dtype not in valid_action_dtypes: - log.critical(f"Invalid action_dtype: {self.action_dtype}. Must be one of {valid_action_dtypes}.") - raise ValueError(f"action_dtype must be one of {valid_action_dtypes}, got {self.action_dtype}") + if self.dtypes_action not in valid_action_dtypes: + log.critical(f"Invalid action_dtype: {self.dtypes_action}. Must be one of {valid_action_dtypes}.") + raise ValueError(f"action_dtype must be one of {valid_action_dtypes}, got {self.dtypes_action}") valid_target_dtypes = ["float32", "float16", "bfloat16"] - if self.target_dtype not in valid_target_dtypes: - log.critical(f"Invalid target_dtype: {self.target_dtype}. Must be one of {valid_target_dtypes}.") - raise ValueError(f"target_dtype must be one of {valid_target_dtypes}, got {self.target_dtype}") - - valid_device_types = ["cpu", "gpu", "tpu"] - if self.device_type not in valid_device_types: - log.critical(f"Invalid device_type: {self.device_type}. Must be one of {valid_device_types}.") - raise ValueError(f"device_type must be one of {valid_device_types}, got {self.device_type}") + if self.dtypes_target not in valid_target_dtypes: + log.critical(f"Invalid target_dtype: {self.dtypes_target}. Must be one of {valid_target_dtypes}.") + raise ValueError(f"target_dtype must be one of {valid_target_dtypes}, got {self.dtypes_target}") + + valid_device = ["cpu", "gpu", "tpu"] + if self.device not in valid_device: + log.critical(f"Invalid device_type: {self.device}. Must be one of {valid_device}.") + raise ValueError(f"device_type must be one of {valid_device}, got {self.device}") log.info("Configuration validation successful.") diff --git a/src/cumind/core/mcts.py b/src/cumind/core/mcts.py index e1a263e..d52a67c 100644 --- a/src/cumind/core/mcts.py +++ b/src/cumind/core/mcts.py @@ -122,25 +122,25 @@ def search(self, root_hidden_state: chex.Array, add_noise: bool = True) -> np.nd Returns: Action probability distribution. """ - log.debug(f"Starting MCTS search with {self.config.num_simulations} simulations. Noise: {add_noise}") + log.debug(f"Starting MCTS search with {self.config.mcts_num_simulations} simulations. Noise: {add_noise}") root_hidden_state_batched = jnp.expand_dims(root_hidden_state, 0) policy_logits, _ = self.network.prediction_network(root_hidden_state_batched) priors = jax.nn.softmax(policy_logits, axis=-1)[0] # Create root node and expand root = Node(1.0) - actions = list(range(self.config.action_space_size)) + actions = list(range(self.config.env_action_space_size)) root.expand(actions, priors, root_hidden_state) if add_noise: self._add_exploration_noise(root) - log.debug(f"Running {self.config.num_simulations} simulations...") - for _ in range(self.config.num_simulations): + log.debug(f"Running {self.config.mcts_num_simulations} simulations...") + for _ in range(self.config.mcts_num_simulations): self._simulate(root) # Extract visit counts and normalize - visit_counts = np.zeros(self.config.action_space_size) + visit_counts = np.zeros(self.config.env_action_space_size) for action, child in root.children.items(): visit_counts[action] = child.visit_count @@ -148,7 +148,7 @@ def search(self, root_hidden_state: chex.Array, add_noise: bool = True) -> np.nd total_visits = np.sum(visit_counts) if total_visits == 0: log.warning("MCTS search resulted in zero visits. Returning uniform probabilities.") - return np.ones(self.config.action_space_size) / self.config.action_space_size + return np.ones(self.config.env_action_space_size) / self.config.env_action_space_size action_probs = visit_counts / total_visits log.debug(f"MCTS search complete. Action probabilities: {action_probs}") @@ -166,7 +166,7 @@ def _simulate(self, root: Node) -> None: node = root while node.is_expanded(): - action = node.select_child(self.config.c_puct) + action = node.select_child(self.config.mcts_c_puct) path.append((node, action)) node = node.children[action] @@ -192,7 +192,7 @@ def _simulate(self, root: Node) -> None: priors_array = np.asarray(priors[0], dtype=np.float32) leaf_value = float(jnp.asarray(value)[0, 0]) - actions = list(range(self.config.action_space_size)) + actions = list(range(self.config.env_action_space_size)) node.expand(actions, priors_array, jnp.asarray(node.hidden_state)) log.debug(f"MCTS simulation: Expanded leaf node with value {leaf_value:.4f}.") @@ -215,8 +215,8 @@ def _add_exploration_noise(self, root: Node) -> None: # Sample Dirichlet noise num_actions = len(root.children) - noise = np.random.dirichlet([self.config.dirichlet_alpha] * num_actions) + noise = np.random.dirichlet([self.config.mcts_dirichlet_alpha] * num_actions) # Mix with existing priors for i, (_, child) in enumerate(root.children.items()): - child.prior = child.prior * (1 - self.config.exploration_fraction) + noise[i] * self.config.exploration_fraction + child.prior = child.prior * (1 - self.config.mcts_exploration_fraction) + noise[i] * self.config.mcts_exploration_fraction diff --git a/src/cumind/runner.py b/src/cumind/runner.py index 368ad3b..7c51fd0 100644 --- a/src/cumind/runner.py +++ b/src/cumind/runner.py @@ -44,7 +44,7 @@ def inference(config: Config, checkpoint_file: str) -> None: inference_agent.load_state(state) env = gym.make(config.env_name, render_mode="human") - for episode in range(5): + for episode in range(500): obs, _ = env.reset() done = False total_reward = 0.0 diff --git a/tests/test_agent.py b/tests/test_agent.py index 76c7884..3522bad 100644 --- a/tests/test_agent.py +++ b/tests/test_agent.py @@ -17,8 +17,8 @@ class TestAgent: def test_agent_initialization(self): """Test agent initialization.""" config = Config() - config.action_space_size = 2 - config.observation_shape = (4,) + config.env_action_space_size = 2 + config.env_observation_shape = (4,) agent = Agent(config) assert agent.config == config @@ -30,9 +30,9 @@ def test_agent_initialization(self): def test_select_action_training_mode(self): """Test action selection in training mode.""" config = Config() - config.num_simulations = 5 - config.action_space_size = 2 - config.observation_shape = (4,) + config.mcts_num_simulations = 5 + config.env_action_space_size = 2 + config.env_observation_shape = (4,) agent = Agent(config) obs = np.ones(4) @@ -40,15 +40,15 @@ def test_select_action_training_mode(self): assert isinstance(action, (int, np.integer)) assert isinstance(policy, np.ndarray) - assert len(policy) == config.action_space_size + assert len(policy) == config.env_action_space_size assert np.isclose(np.sum(policy), 1.0) def test_select_action_evaluation_mode(self): """Test action selection in evaluation mode is deterministic.""" config = Config() - config.num_simulations = 5 - config.action_space_size = 2 - config.observation_shape = (4,) + config.mcts_num_simulations = 5 + config.env_action_space_size = 2 + config.env_observation_shape = (4,) agent = Agent(config) obs = np.ones(4) @@ -60,8 +60,8 @@ def test_select_action_evaluation_mode(self): def test_save_and_load_state(self): """Test saving and loading agent state.""" config = Config() - config.action_space_size = 2 - config.observation_shape = (4,) + config.env_action_space_size = 2 + config.env_observation_shape = (4,) agent1 = Agent(config) obs = np.ones(4) agent1.select_action(obs) # Run one step to have state @@ -80,8 +80,8 @@ def test_save_and_load_state(self): def test_agent_with_vector_observations(self): """Test agent with 1D vector observations.""" config = Config() - config.observation_shape = (8,) - config.action_space_size = 2 + config.env_observation_shape = (8,) + config.env_action_space_size = 2 agent = Agent(config) obs = np.ones(8) @@ -91,8 +91,8 @@ def test_agent_with_vector_observations(self): def test_agent_with_image_observations(self): """Test agent with 3D image observations (Atari).""" config = Config() - config.observation_shape = (84, 84, 4) - config.action_space_size = 4 + config.env_observation_shape = (84, 84, 4) + config.env_action_space_size = 4 agent = Agent(config) obs = np.ones((84, 84, 4)) diff --git a/tests/test_basic.py b/tests/test_basic.py index da30154..5be2d53 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -24,15 +24,15 @@ def reset_prng_manager_singleton(): def test_network_creation(): """Test network creation and basic functionality.""" config = Config() - config.hidden_dim = 32 - config.num_blocks = 2 - config.action_space_size = 2 - config.observation_shape = (4,) + config.network_hidden_dim = 32 + config.network_num_blocks = 2 + config.env_action_space_size = 2 + config.env_observation_shape = (4,) key.seed(42) rngs = nnx.Rngs(params=key()) - network = CuMindNetwork(observation_shape=config.observation_shape, action_space_size=config.action_space_size, hidden_dim=config.hidden_dim, num_blocks=config.num_blocks, conv_channels=config.conv_channels, rngs=rngs) + network = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) assert hasattr(network, "representation_network") assert hasattr(network, "dynamics_network") @@ -42,41 +42,41 @@ def test_network_creation(): def test_network_inference(): """Test network inference functionality.""" config = Config() - config.hidden_dim = 32 - config.num_blocks = 2 - config.action_space_size = 2 - config.observation_shape = (4,) + config.network_hidden_dim = 32 + config.network_num_blocks = 2 + config.env_action_space_size = 2 + config.env_observation_shape = (4,) key.seed(42) rngs = nnx.Rngs(params=key()) - network = CuMindNetwork(observation_shape=config.observation_shape, action_space_size=config.action_space_size, hidden_dim=config.hidden_dim, num_blocks=config.num_blocks, conv_channels=config.conv_channels, rngs=rngs) + network = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) # Test initial inference batch_size = 2 obs = jnp.ones((batch_size, 4)) hidden_state, policy_logits, value = network.initial_inference(obs) - assert hidden_state.shape == (batch_size, config.hidden_dim) - assert policy_logits.shape == (batch_size, config.action_space_size) + assert hidden_state.shape == (batch_size, config.network_hidden_dim) + assert policy_logits.shape == (batch_size, config.env_action_space_size) assert value.shape == (batch_size, 1) # Test recurrent inference actions = jnp.array([0, 1]) next_state, reward, next_policy, next_value = network.recurrent_inference(hidden_state, actions) - assert next_state.shape == (batch_size, config.hidden_dim) + assert next_state.shape == (batch_size, config.network_hidden_dim) assert reward.shape == (batch_size, 1) - assert next_policy.shape == (batch_size, config.action_space_size) + assert next_policy.shape == (batch_size, config.env_action_space_size) assert next_value.shape == (batch_size, 1) def test_agent_creation_and_action_selection(): """Test agent creation and action selection.""" config = Config() - config.num_simulations = 5 # Small for testing - config.action_space_size = 2 - config.observation_shape = (4,) + config.mcts_num_simulations = 5 # Small for testing + config.env_action_space_size = 2 + config.env_observation_shape = (4,) agent = Agent(config) @@ -91,7 +91,7 @@ def test_agent_creation_and_action_selection(): action, _ = agent.select_action(observation, training=False) assert isinstance(action, (int, np.integer)) - assert 0 <= action < config.action_space_size + assert 0 <= action < config.env_action_space_size def test_memory_buffer_functionality(): @@ -102,11 +102,11 @@ def test_memory_buffer_functionality(): _test_buffer_operations(memory_buffer, "MemoryBuffer") # Test PrioritizedMemoryBuffer - prioritized_buffer = PrioritizedMemoryBuffer(capacity=100, alpha=config.per_alpha, epsilon=config.per_epsilon, beta=config.per_beta) + prioritized_buffer = PrioritizedMemoryBuffer(capacity=100, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon, beta=config.memory_per_beta) _test_buffer_operations(prioritized_buffer, "PrioritizedMemoryBuffer") # Test TreeBuffer - tree_buffer = TreeBuffer(capacity=100, alpha=config.per_alpha, epsilon=config.per_epsilon) + tree_buffer = TreeBuffer(capacity=100, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon) _test_buffer_operations(tree_buffer, "TreeBuffer") @@ -141,7 +141,7 @@ def test_prioritized_buffer_priority_update(): """Test priority update functionality for prioritized buffers.""" config = Config() # Test PrioritizedMemoryBuffer priority update - prioritized_buffer = PrioritizedMemoryBuffer(capacity=10, alpha=config.per_alpha, epsilon=config.per_epsilon, beta=config.per_beta) + prioritized_buffer = PrioritizedMemoryBuffer(capacity=10, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon, beta=config.memory_per_beta) sample = [{"observation": np.ones(4), "action": 0, "reward": 1.0}] prioritized_buffer.add(sample) @@ -150,7 +150,7 @@ def test_prioritized_buffer_priority_update(): assert prioritized_buffer.max_priority == 5.0 # Test TreeBuffer priority update - tree_buffer = TreeBuffer(capacity=10, alpha=config.per_alpha, epsilon=config.per_epsilon) + tree_buffer = TreeBuffer(capacity=10, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon) tree_buffer.add(sample) # Update priority - TreeBuffer applies alpha exponent, so we need to account for that @@ -162,9 +162,9 @@ def test_prioritized_buffer_priority_update(): def test_basic_integration(): """Test basic integration of all components.""" config = Config() - config.num_simulations = 3 # Very small for testing - config.action_space_size = 2 - config.observation_shape = (4,) + config.mcts_num_simulations = 3 # Very small for testing + config.env_action_space_size = 2 + config.env_observation_shape = (4,) # Create agent agent = Agent(config) @@ -172,8 +172,8 @@ def test_basic_integration(): # Test with different buffer types buffer_types = [ (MemoryBuffer, {"capacity": 10}), - (PrioritizedMemoryBuffer, {"capacity": 10, "alpha": config.per_alpha, "epsilon": config.per_epsilon, "beta": config.per_beta}), - (TreeBuffer, {"capacity": 10, "alpha": config.per_alpha, "epsilon": config.per_epsilon}), + (PrioritizedMemoryBuffer, {"capacity": 10, "alpha": config.memory_per_alpha, "epsilon": config.memory_per_epsilon, "beta": config.memory_per_beta}), + (TreeBuffer, {"capacity": 10, "alpha": config.memory_per_alpha, "epsilon": config.memory_per_epsilon}), ] for BufferClass, kwargs in buffer_types: # noqa: N806 @@ -192,7 +192,7 @@ def test_basic_integration(): # Verify integration assert len(memory_buffer) == 1, f"{BufferClass.__name__}: Should have 1 experience" - assert 0 <= action < config.action_space_size + assert 0 <= action < config.env_action_space_size if __name__ == "__main__": diff --git a/tests/test_data.py b/tests/test_data.py index aeeac63..1768442 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -15,9 +15,9 @@ def _create_buffer(BufferClass, capacity, config): # noqa: N803 """Helper function to create a buffer with the correct arguments.""" if BufferClass == PrioritizedMemoryBuffer: - return BufferClass(capacity=capacity, alpha=config.per_alpha, epsilon=config.per_epsilon, beta=config.per_beta) + return BufferClass(capacity=capacity, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon, beta=config.memory_per_beta) if BufferClass == TreeBuffer: - return BufferClass(capacity=capacity, alpha=config.per_alpha, epsilon=config.per_epsilon) + return BufferClass(capacity=capacity, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon) return BufferClass(capacity=capacity) @@ -113,8 +113,8 @@ def test_self_play_initialization(self): def test_run_episode(self): """Test running a single self-play episode.""" config = Config() - config.action_space_size = 2 - config.observation_shape = (4,) + config.env_action_space_size = 2 + config.env_observation_shape = (4,) agent = Agent(config) memory_buffer = MemoryBuffer(capacity=100) env = gym.make("CartPole-v1") @@ -137,8 +137,8 @@ def test_run_episode(self): def test_collect_samples(self): """Test collecting samples from multiple episodes.""" config = Config() - config.action_space_size = 2 - config.observation_shape = (4,) + config.env_action_space_size = 2 + config.env_observation_shape = (4,) agent = Agent(config) memory_buffer = MemoryBuffer(capacity=100) env = gym.make("CartPole-v1") diff --git a/tests/test_mcts.py b/tests/test_mcts.py index 1ecf6d3..13f57e0 100644 --- a/tests/test_mcts.py +++ b/tests/test_mcts.py @@ -182,13 +182,13 @@ def test_value_backup(self): def setup(self): """Setup for MCTS tests.""" config = Config() - config.num_simulations = 100 # Increased for noise test - config.action_space_size = 2 - config.observation_shape = (4,) - config.hidden_dim = 16 + config.mcts_num_simulations = 100 # Increased for noise test + config.env_action_space_size = 2 + config.env_observation_shape = (4,) + config.network_hidden_dim = 16 key.seed(config.seed) rngs = nnx.Rngs(params=key()) - network = CuMindNetwork(observation_shape=config.observation_shape, action_space_size=config.action_space_size, hidden_dim=config.hidden_dim, num_blocks=config.num_blocks, conv_channels=config.conv_channels, rngs=rngs) + network = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) mcts = MCTS(network, config) return mcts, network, config @@ -196,7 +196,7 @@ def test_mcts_initialization(self, setup): """Test MCTS initialization.""" mcts, _, config = setup assert mcts.config == config - assert mcts.config.num_simulations == 100 + assert mcts.config.mcts_num_simulations == 100 def test_mcts_search(self, setup): """Test MCTS search returns a valid policy.""" @@ -212,9 +212,9 @@ def test_mcts_search(self, setup): def test_mcts_search_basic(self, setup): """Test basic MCTS search functionality.""" mcts, _, config = setup - root_hidden_state = jnp.ones(config.hidden_dim) + root_hidden_state = jnp.ones(config.network_hidden_dim) action_probs = mcts.search(root_hidden_state, add_noise=False) - assert action_probs.shape == (config.action_space_size,) + assert action_probs.shape == (config.env_action_space_size,) assert np.isclose(np.sum(action_probs), 1.0) assert np.all(action_probs >= 0) @@ -258,22 +258,22 @@ def test_tree_statistics(self): def test_mcts_with_different_networks(self, setup): """Test MCTS with different network configurations.""" mcts, network, config = setup - config.observation_shape = (8,) - config.action_space_size = 3 + config.env_observation_shape = (8,) + config.env_action_space_size = 3 key.seed(config.seed) rngs = nnx.Rngs(params=key()) - network2 = CuMindNetwork(observation_shape=config.observation_shape, action_space_size=config.action_space_size, hidden_dim=config.hidden_dim, num_blocks=config.num_blocks, conv_channels=config.conv_channels, rngs=rngs) + network2 = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) mcts2 = MCTS(network2, config) - root_hidden_state = jnp.ones(config.hidden_dim) + root_hidden_state = jnp.ones(config.network_hidden_dim) action_probs = mcts2.search(root_hidden_state, add_noise=False) assert action_probs.shape == (3,) def test_mcts_edge_cases(self, setup): """Test MCTS edge cases and error handling.""" mcts, network, config = setup - config.action_space_size = 1 + config.env_action_space_size = 1 mcts_single_action = MCTS(network, config) - root_hidden_state = jnp.ones(config.hidden_dim) + root_hidden_state = jnp.ones(config.network_hidden_dim) action_probs = mcts_single_action.search(root_hidden_state, add_noise=False) assert action_probs.shape == (1,) assert np.isclose(action_probs[0], 1.0) From d7fd2e179c7a7121179c8da820b1b7a234a12528 Mon Sep 17 00:00:00 2001 From: t4r3k <142579274+machine-moon@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:08:02 -0400 Subject: [PATCH 03/19] decoupled nn + removed unused --- pyproject.toml | 2 +- src/cumind/agent/agent.py | 11 +- src/cumind/core/__init__.py | 28 ++-- src/cumind/core/encoder.py | 112 +++++++++++++ src/cumind/core/helper.py | 30 ++++ src/cumind/core/mlp.py | 64 ++++++++ src/cumind/core/network.py | 280 ++------------------------------- src/cumind/core/resnet.py | 39 +++++ src/cumind/core/utils.py | 42 +++++ src/cumind/utils/checkpoint.py | 2 - src/cumind/utils/jax_utils.py | 3 +- tests/test_agent.py | 2 - tests/test_basic.py | 13 +- tests/test_data.py | 5 +- tests/test_mcts.py | 13 +- tests/test_network.py | 166 ++++++++++--------- 16 files changed, 424 insertions(+), 388 deletions(-) create mode 100644 src/cumind/core/encoder.py create mode 100644 src/cumind/core/helper.py create mode 100644 src/cumind/core/mlp.py create mode 100644 src/cumind/core/resnet.py create mode 100644 src/cumind/core/utils.py diff --git a/pyproject.toml b/pyproject.toml index 679bf54..c0d75a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,7 +60,7 @@ target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "N", "W"] # Errors, pyFlakes, Import, Naming, Warnings -ignore = ["E203", "E501", "F401"] +ignore = ["E203", "E501"] # Mypy configuration [tool.mypy] diff --git a/src/cumind/agent/agent.py b/src/cumind/agent/agent.py index 56454e3..1e8e365 100644 --- a/src/cumind/agent/agent.py +++ b/src/cumind/agent/agent.py @@ -1,8 +1,7 @@ """CuMind agent implementation.""" -from typing import Any, Dict, List, Tuple, cast +from typing import Any, Dict, Tuple -import chex import jax import jax.numpy as jnp import numpy as np @@ -11,8 +10,9 @@ from ..config import Config from ..core.mcts import MCTS +from ..core.mlp import MLPDual, MLPWithEmbedding from ..core.network import CuMindNetwork -from ..utils.checkpoint import load_checkpoint, save_checkpoint +from ..core.resnet import ResNet from ..utils.logger import log from ..utils.prng import key @@ -39,7 +39,10 @@ def __init__(self, config: Config, existing_state: Dict[str, Any] | None = None) rngs = nnx.Rngs(params=key()) with jax.default_device(self.device): - self.network = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) + representation_network = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) + dynamics_network = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) + prediction_network = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) + self.network = CuMindNetwork(representation_network=representation_network, dynamics_network=dynamics_network, prediction_network=prediction_network, rngs=rngs) log.info("Creating target network.") self.target_network = nnx.clone(self.network) diff --git a/src/cumind/core/__init__.py b/src/cumind/core/__init__.py index 010739c..b386907 100644 --- a/src/cumind/core/__init__.py +++ b/src/cumind/core/__init__.py @@ -1,15 +1,21 @@ """Core CuMind components.""" +from .encoder import BaseEncoder, ConvEncoder, VectorEncoder from .mcts import MCTS, Node -from .network import ( - BaseEncoder, - ConvEncoder, - CuMindNetwork, - DynamicsNetwork, - PredictionNetwork, - RepresentationNetwork, - ResidualBlock, - VectorEncoder, -) +from .mlp import MLPDual, MLPWithEmbedding +from .network import CuMindNetwork +from .resnet import ResNet +from .utils import ResidualBlock -__all__ = ["MCTS", "Node", "ResidualBlock", "BaseEncoder", "VectorEncoder", "ConvEncoder", "RepresentationNetwork", "DynamicsNetwork", "PredictionNetwork", "CuMindNetwork"] +__all__ = [ + "BaseEncoder", + "ConvEncoder", + "VectorEncoder", + "MCTS", + "Node", + "MLPDual", + "MLPWithEmbedding", + "CuMindNetwork", + "ResNet", + "ResidualBlock", +] diff --git a/src/cumind/core/encoder.py b/src/cumind/core/encoder.py new file mode 100644 index 0000000..5229aa0 --- /dev/null +++ b/src/cumind/core/encoder.py @@ -0,0 +1,112 @@ +"""from typing import Tuple""" + +from typing import Tuple + +import chex +import jax.numpy as jnp +from flax import nnx + +from ..utils.logger import log +from .utils import ResidualBlock + + +class BaseEncoder(nnx.Module): + """Abstract base class for observation encoders.""" + + def __init__(self, observation_shape: Tuple[int, ...], hidden_dim: int, num_blocks: int, rngs: nnx.Rngs): + """Initializes the base encoder. + + Args: + observation_shape: The shape of the input observations. + hidden_dim: The dimension of the output hidden representation. + num_blocks: The number of processing blocks (e.g., residual or dense). + rngs: Random number generators for layer initialization. + """ + self.observation_shape = observation_shape + self.hidden_dim = hidden_dim + self.num_blocks = num_blocks + self.rngs = rngs + + def __call__(self, observation: chex.Array) -> chex.Array: + """Encodes an observation into a hidden state.""" + raise NotImplementedError("BaseEncoder is an abstract class.") + + +class VectorEncoder(BaseEncoder): + """An encoder for 1D vector observations using fully connected layers.""" + + def __init__(self, observation_shape: Tuple[int, ...], hidden_dim: int, num_blocks: int, rngs: nnx.Rngs): + """Initializes the vector encoder. + + Args: + observation_shape: The shape of the 1D observation (e.g., (4,)). + hidden_dim: The output hidden dimension. + num_blocks: The number of fully connected blocks. + rngs: Random number generators for layer initialization. + """ + super().__init__(observation_shape, hidden_dim, num_blocks, rngs) + log.debug(f"Initializing VectorEncoder with input dim {observation_shape[0]}, hidden dim {hidden_dim}, and {num_blocks} blocks.") + + input_dim = observation_shape[0] + self.layers = [] + + current_dim = input_dim + for i in range(num_blocks): + output_dim = hidden_dim if i == num_blocks - 1 else hidden_dim + self.layers.append(nnx.Linear(current_dim, output_dim, rngs=rngs)) + current_dim = output_dim + + def __call__(self, observation: chex.Array) -> chex.Array: + """Encodes a 1D observation into a hidden state. + + Args: + observation: A flattened observation of shape (batch, obs_dim). + + Returns: + A hidden state tensor of shape (batch, hidden_dim). + """ + x = jnp.asarray(observation, dtype=jnp.float32) + for i, layer in enumerate(self.layers): + x = layer(x) + if i < len(self.layers) - 1: + x = nnx.relu(x) + return x + + +class ConvEncoder(BaseEncoder): + """An encoder for 3D image observations using convolutional layers.""" + + def __init__(self, observation_shape: Tuple[int, ...], hidden_dim: int, num_blocks: int, conv_channels: int, rngs: nnx.Rngs): + """Initializes the convolutional encoder. + + Args: + observation_shape: The shape of the 3D observation (height, width, channels). + hidden_dim: The output hidden dimension. + num_blocks: The number of residual blocks. + conv_channels: The number of channels for the convolutional layers. + rngs: Random number generators for layer initialization. + """ + super().__init__(observation_shape, hidden_dim, num_blocks, rngs) + log.debug(f"Initializing ConvEncoder with input shape {observation_shape}, hidden dim {hidden_dim}, and {num_blocks} blocks.") + + self.initial_conv = nnx.Conv(observation_shape[-1], conv_channels, kernel_size=(3, 3), strides=(2, 2), padding=1, rngs=rngs) + self.residual_blocks = [ResidualBlock(conv_channels, rngs) for _ in range(num_blocks)] + self.final_dense = nnx.Linear(conv_channels, hidden_dim, rngs=rngs) + + def __call__(self, observation: chex.Array) -> chex.Array: + """Encodes a 3D observation into a hidden state. + + Args: + observation: An image observation of shape (batch, height, width, channels). + + Returns: + A hidden state tensor of shape (batch, hidden_dim). + """ + x = jnp.asarray(observation, dtype=jnp.float32) + x = nnx.relu(self.initial_conv(x)) + + for block in self.residual_blocks: + x = jnp.asarray(block(x), dtype=jnp.float32) + + pooled = jnp.mean(x, axis=(1, 2)) + return self.final_dense(pooled) diff --git a/src/cumind/core/helper.py b/src/cumind/core/helper.py new file mode 100644 index 0000000..4329178 --- /dev/null +++ b/src/cumind/core/helper.py @@ -0,0 +1,30 @@ +"""Retrieve callable nnx.Module constructors from global scope by their string names.""" + +from typing import Callable, Optional, Tuple, Union + +from flax import nnx + + +def str_to_nnx(*names: Optional[Union[str, nnx.Module]]) -> Tuple[Callable[..., nnx.Module], ...]: + """ + Return callables from the module's globals by their names. + + Raises: + AttributeError: If a name is not found or not callable. + ValueError: If no names are provided. + """ + if not names: + raise ValueError("At least one string name must be provided.") + result = [] + for name in names: + if not isinstance(name, str): + raise ValueError("All names must be strings.") + obj = globals().get(name) + if obj is None: + raise AttributeError(f"No object named '{name}' found.") + if not callable(obj): + raise AttributeError(f"Object '{name}' is not callable.") + result.append(obj) + if not result: + raise ValueError("No valid callables found for the given names.") + return tuple(result) diff --git a/src/cumind/core/mlp.py b/src/cumind/core/mlp.py new file mode 100644 index 0000000..c720a8b --- /dev/null +++ b/src/cumind/core/mlp.py @@ -0,0 +1,64 @@ +"""MLP neural network architectures.""" + +from typing import Tuple + +import chex +import jax.numpy as jnp +from flax import nnx + + +class MLPWithEmbedding(nnx.Module): + """MLP with embedding layer and residual connections.""" + + def __init__(self, hidden_dim: int, embedding_size: int, num_blocks: int, rngs: nnx.Rngs): + self.hidden_dim = hidden_dim + self.embedding_size = embedding_size + self.num_blocks = num_blocks + self.embedding = nnx.Embed(embedding_size, hidden_dim, rngs=rngs) + self.layers = [nnx.Linear(hidden_dim, hidden_dim, rngs=rngs) for _ in range(num_blocks)] + self.output_head = nnx.Linear(hidden_dim, 1, rngs=rngs) + + def __call__(self, state: chex.Array, embedding_idx: chex.Array) -> Tuple[chex.Array, chex.Array]: + """Forward pass through the network. + + Args: + state: Input state tensor. + embedding_idx: Embedding indices. + + Returns: + Tuple of (transformed_state, output). + """ + embedded = self.embedding(jnp.asarray(embedding_idx, dtype=jnp.int32)) + x = jnp.asarray(state, dtype=jnp.float32) + embedded + + for layer in self.layers: + residual = x + x = nnx.relu(layer(x)) + x = x + residual + + output = self.output_head(x) + return x, output + + +class MLPDual(nnx.Module): + """MLP with dual output heads.""" + + def __init__(self, hidden_dim: int, output_size: int, rngs: nnx.Rngs): + self.hidden_dim = hidden_dim + self.output_size = output_size + self.head1 = nnx.Linear(hidden_dim, output_size, rngs=rngs) + self.head2 = nnx.Linear(hidden_dim, 1, rngs=rngs) + + def __call__(self, hidden_state: chex.Array) -> Tuple[chex.Array, chex.Array]: + """Forward pass through the network. + + Args: + hidden_state: Input hidden state tensor. + + Returns: + Tuple of (output1, output2). + """ + x = jnp.asarray(hidden_state, dtype=jnp.float32) + output1 = self.head1(x) + output2 = self.head2(x) + return output1, output2 diff --git a/src/cumind/core/network.py b/src/cumind/core/network.py index 437d8a3..347092d 100644 --- a/src/cumind/core/network.py +++ b/src/cumind/core/network.py @@ -1,289 +1,29 @@ -"""Unified CuMind neural network components.""" +"""Unified CuMind neural network""" -from typing import Optional, Tuple +from typing import Callable, Tuple import chex -import jax -import jax.numpy as jnp from flax import nnx from ..utils.logger import log -class ResidualBlock(nnx.Module): - """A standard residual block with two convolutional layers.""" - - def __init__(self, channels: int, rngs: nnx.Rngs): - """Initializes the residual block. - - Args: - channels: The number of input and output channels. - rngs: Random number generators for layer initialization. - """ - log.debug(f"Initializing ResidualBlock with {channels} channels.") - self.conv1 = nnx.Conv(channels, channels, kernel_size=(3, 3), padding=1, rngs=rngs) - self.bn1 = nnx.BatchNorm(channels, use_running_average=True, rngs=rngs) - self.conv2 = nnx.Conv(channels, channels, kernel_size=(3, 3), padding=1, rngs=rngs) - self.bn2 = nnx.BatchNorm(channels, use_running_average=True, rngs=rngs) - - def __call__(self, x: chex.Array) -> chex.Array: - """Performs a forward pass through the residual block. - - Args: - x: The input tensor of shape (batch, height, width, channels). - - Returns: - The output tensor with the same shape as the input. - """ - residual = x - x_array = jnp.asarray(x, dtype=jnp.float32) - x_array = self.conv1(x_array) - x_array = self.bn1(x_array) - x_array = nnx.relu(x_array) - x_array = self.conv2(x_array) - x_array = self.bn2(x_array) - return nnx.relu(x_array + residual) - - -class BaseEncoder(nnx.Module): - """Abstract base class for observation encoders.""" - - def __init__(self, observation_shape: Tuple[int, ...], hidden_dim: int, num_blocks: int, rngs: nnx.Rngs): - """Initializes the base encoder. - - Args: - observation_shape: The shape of the input observations. - hidden_dim: The dimension of the output hidden representation. - num_blocks: The number of processing blocks (e.g., residual or dense). - rngs: Random number generators for layer initialization. - """ - self.observation_shape = observation_shape - self.hidden_dim = hidden_dim - self.num_blocks = num_blocks - self.rngs = rngs - - def __call__(self, observation: chex.Array) -> chex.Array: - """Encodes an observation into a hidden state.""" - raise NotImplementedError("BaseEncoder is an abstract class.") - - -class VectorEncoder(BaseEncoder): - """An encoder for 1D vector observations using fully connected layers.""" - - def __init__(self, observation_shape: Tuple[int, ...], hidden_dim: int, num_blocks: int, rngs: nnx.Rngs): - """Initializes the vector encoder. - - Args: - observation_shape: The shape of the 1D observation (e.g., (4,)). - hidden_dim: The output hidden dimension. - num_blocks: The number of fully connected blocks. - rngs: Random number generators for layer initialization. - """ - super().__init__(observation_shape, hidden_dim, num_blocks, rngs) - log.debug(f"Initializing VectorEncoder with input dim {observation_shape[0]}, hidden dim {hidden_dim}, and {num_blocks} blocks.") - - input_dim = observation_shape[0] - self.layers = [] - - current_dim = input_dim - for i in range(num_blocks): - output_dim = hidden_dim if i == num_blocks - 1 else hidden_dim - self.layers.append(nnx.Linear(current_dim, output_dim, rngs=rngs)) - current_dim = output_dim - - def __call__(self, observation: chex.Array) -> chex.Array: - """Encodes a 1D observation into a hidden state. - - Args: - observation: A flattened observation of shape (batch, obs_dim). - - Returns: - A hidden state tensor of shape (batch, hidden_dim). - """ - x = jnp.asarray(observation, dtype=jnp.float32) - for i, layer in enumerate(self.layers): - x = layer(x) - if i < len(self.layers) - 1: - x = nnx.relu(x) - return x - - -class ConvEncoder(BaseEncoder): - """An encoder for 3D image observations using convolutional layers.""" - - def __init__(self, observation_shape: Tuple[int, ...], hidden_dim: int, num_blocks: int, conv_channels: int, rngs: nnx.Rngs): - """Initializes the convolutional encoder. - - Args: - observation_shape: The shape of the 3D observation (height, width, channels). - hidden_dim: The output hidden dimension. - num_blocks: The number of residual blocks. - conv_channels: The number of channels for the convolutional layers. - rngs: Random number generators for layer initialization. - """ - super().__init__(observation_shape, hidden_dim, num_blocks, rngs) - log.debug(f"Initializing ConvEncoder with input shape {observation_shape}, hidden dim {hidden_dim}, and {num_blocks} blocks.") - - self.initial_conv = nnx.Conv(observation_shape[-1], conv_channels, kernel_size=(3, 3), strides=(2, 2), padding=1, rngs=rngs) - self.residual_blocks = [ResidualBlock(conv_channels, rngs) for _ in range(num_blocks)] - self.final_dense = nnx.Linear(conv_channels, hidden_dim, rngs=rngs) - - def __call__(self, observation: chex.Array) -> chex.Array: - """Encodes a 3D observation into a hidden state. - - Args: - observation: An image observation of shape (batch, height, width, channels). - - Returns: - A hidden state tensor of shape (batch, hidden_dim). - """ - x = jnp.asarray(observation, dtype=jnp.float32) - x = nnx.relu(self.initial_conv(x)) - - for block in self.residual_blocks: - x = jnp.asarray(block(x), dtype=jnp.float32) - - pooled = jnp.mean(x, axis=(1, 2)) - return self.final_dense(pooled) - - -class RepresentationNetwork(nnx.Module): - """The representation network (r_theta) that encodes raw observations into hidden states.""" - - def __init__(self, observation_shape: Tuple[int, ...], hidden_dim: int, num_blocks: int, conv_channels: int, rngs: nnx.Rngs): - """Initializes the representation network. - - Args: - observation_shape: The shape of the input observations. - hidden_dim: The dimension of the hidden representation. - num_blocks: The number of processing blocks in the encoder. - conv_channels: The number of channels for the convolutional layers. - rngs: Random number generators for layer initialization. - """ - log.info(f"Initializing RepresentationNetwork with hidden dim {hidden_dim} and {num_blocks} blocks.") - self.observation_shape = observation_shape - self.hidden_dim = hidden_dim - self.num_blocks = num_blocks - self.conv_channels = conv_channels - self.encoder = self._create_encoder(rngs) - - def _create_encoder(self, rngs: nnx.Rngs) -> BaseEncoder: - """Creates the appropriate encoder based on the observation shape.""" - log.debug(f"Creating encoder for observation shape: {self.observation_shape}") - if len(self.observation_shape) == 1: - log.info("Using VectorEncoder for 1D observations.") - return VectorEncoder(self.observation_shape, self.hidden_dim, self.num_blocks, rngs) - if len(self.observation_shape) == 3: - log.info("Using ConvEncoder for 3D observations.") - return ConvEncoder(self.observation_shape, self.hidden_dim, self.num_blocks, self.conv_channels, rngs) - log.critical(f"Unsupported observation shape: {self.observation_shape}") - raise ValueError(f"Unsupported observation shape: {self.observation_shape}") - - def __call__(self, observation: chex.Array) -> chex.Array: - """Encodes an observation into a hidden state. - - Args: - observation: The input observation tensor. - - Returns: - A hidden state tensor of shape (batch, hidden_dim). - """ - return self.encoder(observation) - - -class DynamicsNetwork(nnx.Module): - """The dynamics network (g_theta) that predicts the next hidden state and reward.""" - - def __init__(self, hidden_dim: int, action_space_size: int, num_blocks: int, rngs: nnx.Rngs): - """Initializes the dynamics network. - - Args: - hidden_dim: The dimension of the hidden states. - action_space_size: The number of possible actions. - num_blocks: The number of processing blocks. - rngs: Random number generators for layer initialization. - """ - log.info(f"Initializing DynamicsNetwork with hidden dim {hidden_dim}, action space size {action_space_size}, and {num_blocks} blocks.") - self.hidden_dim = hidden_dim - self.action_space_size = action_space_size - self.action_embedding = nnx.Embed(action_space_size, hidden_dim, rngs=rngs) - - self.layers = [] - for _ in range(num_blocks): - self.layers.append(nnx.Linear(hidden_dim, hidden_dim, rngs=rngs)) - - self.reward_head = nnx.Linear(hidden_dim, 1, rngs=rngs) - - def __call__(self, state: chex.Array, action: chex.Array) -> Tuple[chex.Array, chex.Array]: - """Predicts the next hidden state and reward. - - Args: - state: The current hidden state of shape (batch, hidden_dim). - action: The action indices of shape (batch,). - - Returns: - A tuple containing the next hidden state and the predicted reward. - """ - action_embedded = self.action_embedding(jnp.asarray(action, dtype=jnp.int32)) - x = jnp.asarray(state, dtype=jnp.float32) + action_embedded - - for layer in self.layers: - residual = x - x = nnx.relu(layer(x)) - x = x + residual - - reward = self.reward_head(x) - return x, reward - - -class PredictionNetwork(nnx.Module): - """The prediction network (f_theta) that predicts the policy and value from a hidden state.""" - - def __init__(self, hidden_dim: int, action_space_size: int, rngs: nnx.Rngs): - """Initializes the prediction network. - - Args: - hidden_dim: The dimension of the input hidden states. - action_space_size: The number of possible actions for the policy head. - rngs: Random number generators for layer initialization. - """ - log.info(f"Initializing PredictionNetwork with hidden dim {hidden_dim} and action space size {action_space_size}.") - self.policy_head = nnx.Linear(hidden_dim, action_space_size, rngs=rngs) - self.value_head = nnx.Linear(hidden_dim, 1, rngs=rngs) - - def __call__(self, hidden_state: chex.Array) -> Tuple[chex.Array, chex.Array]: - """Predicts the policy logits and value from a hidden state. - - Args: - hidden_state: A hidden state tensor of shape (batch, hidden_dim). - - Returns: - A tuple of (policy_logits, value). - """ - x = jnp.asarray(hidden_state, dtype=jnp.float32) - policy_logits = self.policy_head(x) - value = self.value_head(x) - return policy_logits, value - - class CuMindNetwork(nnx.Module): """The complete CuMind network, combining representation, dynamics, and prediction.""" - def __init__(self, observation_shape: Tuple[int, ...], action_space_size: int, hidden_dim: int, num_blocks: int, conv_channels: int, rngs: nnx.Rngs): + def __init__(self, representation_network: Callable[[chex.Array], chex.Array], dynamics_network: Callable[[chex.Array, chex.Array], Tuple[chex.Array, chex.Array]], prediction_network: Callable[[chex.Array], Tuple[chex.Array, chex.Array]], rngs: nnx.Rngs): """Initializes the complete CuMind network. Args: - observation_shape: The shape of the input observations. - action_space_size: The number of possible actions. - hidden_dim: The dimension of the hidden representations. - num_blocks: The number of processing blocks in the networks. - conv_channels: The number of channels for the convolutional layers. + representation_network: The network responsible for encoding observations into latent representations. + dynamics_network: The network that models environment dynamics in the latent space. + prediction_network: The network that predicts policy and value from latent states. rngs: Random number generators for layer initialization. """ - log.info(f"Initializing CuMindNetwork for observation shape {observation_shape} and action space size {action_space_size}.") - self.representation_network = RepresentationNetwork(observation_shape, hidden_dim, num_blocks, conv_channels, rngs) - self.dynamics_network = DynamicsNetwork(hidden_dim, action_space_size, num_blocks, rngs) - self.prediction_network = PredictionNetwork(hidden_dim, action_space_size, rngs) + log.info(f"Initializing CuMindNetwork with representation_network={type(representation_network).__name__}, dynamics_network={type(dynamics_network).__name__}, prediction_network={type(prediction_network).__name__}") + self.representation_network = representation_network + self.dynamics_network = dynamics_network + self.prediction_network = prediction_network def initial_inference(self, observation: chex.Array) -> Tuple[chex.Array, chex.Array, chex.Array]: """Performs the initial inference step from an observation. diff --git a/src/cumind/core/resnet.py b/src/cumind/core/resnet.py new file mode 100644 index 0000000..618b632 --- /dev/null +++ b/src/cumind/core/resnet.py @@ -0,0 +1,39 @@ +"""ResNet architecture for CuMind.""" + +from typing import Tuple + +import chex +from flax import nnx + +from .encoder import BaseEncoder, ConvEncoder, VectorEncoder + + +class ResNet(nnx.Module): + """ + General-purpose ResNet backbone supporting both vector and image inputs. + + Args: + input_shape: Shape of the input data (tuple). + hidden_dim: Dimension of hidden layers. + num_blocks: Number of residual blocks. + conv_channels: Number of channels for convolutional layers (used for image input). + rngs: Random number generators for parameter initialization. + + Raises: + ValueError: If input_shape is not 1D (vector) or 3D (image). + """ + def __init__(self, hidden_dim: int, input_shape: Tuple[int, ...], num_blocks: int, conv_channels: int, rngs: nnx.Rngs): + self.input_shape = input_shape + self.hidden_dim = hidden_dim + self.num_blocks = num_blocks + self.conv_channels = conv_channels + self.encoder: BaseEncoder + if len(input_shape) == 1: + self.encoder = VectorEncoder(input_shape, hidden_dim, num_blocks, rngs) + elif len(input_shape) == 3: + self.encoder = ConvEncoder(input_shape, hidden_dim, num_blocks, conv_channels, rngs) + else: + raise ValueError("Unsupported observation shape") + + def __call__(self, x: chex.Array) -> chex.Array: + return self.encoder(x) diff --git a/src/cumind/core/utils.py b/src/cumind/core/utils.py new file mode 100644 index 0000000..4aa4346 --- /dev/null +++ b/src/cumind/core/utils.py @@ -0,0 +1,42 @@ +"""Utility functions and neural network modules for CuMind core components.""" + +import chex +import jax.numpy as jnp +from flax import nnx + +from ..utils.logger import log + + +class ResidualBlock(nnx.Module): + """A standard residual block with two convolutional layers.""" + + def __init__(self, channels: int, rngs: nnx.Rngs): + """Initializes the residual block. + + Args: + channels: The number of input and output channels. + rngs: Random number generators for layer initialization. + """ + log.debug(f"Initializing ResidualBlock with {channels} channels.") + self.conv1 = nnx.Conv(channels, channels, kernel_size=(3, 3), padding=1, rngs=rngs) + self.bn1 = nnx.BatchNorm(channels, use_running_average=True, rngs=rngs) + self.conv2 = nnx.Conv(channels, channels, kernel_size=(3, 3), padding=1, rngs=rngs) + self.bn2 = nnx.BatchNorm(channels, use_running_average=True, rngs=rngs) + + def __call__(self, x: chex.Array) -> chex.Array: + """Performs a forward pass through the residual block. + + Args: + x: The input tensor of shape (batch, height, width, channels). + + Returns: + The output tensor with the same shape as the input. + """ + residual = x + x_array = jnp.asarray(x, dtype=jnp.float32) + x_array = self.conv1(x_array) + x_array = self.bn1(x_array) + x_array = nnx.relu(x_array) + x_array = self.conv2(x_array) + x_array = self.bn2(x_array) + return nnx.relu(x_array + residual) diff --git a/src/cumind/utils/checkpoint.py b/src/cumind/utils/checkpoint.py index dbf439c..d13fd4e 100644 --- a/src/cumind/utils/checkpoint.py +++ b/src/cumind/utils/checkpoint.py @@ -5,8 +5,6 @@ from pathlib import Path from typing import Any, Dict, List, Optional, Tuple, cast -from flax import nnx - from .logger import log diff --git a/src/cumind/utils/jax_utils.py b/src/cumind/utils/jax_utils.py index ffaa1b1..041eb6d 100644 --- a/src/cumind/utils/jax_utils.py +++ b/src/cumind/utils/jax_utils.py @@ -1,11 +1,10 @@ """JAX utility functions for CuMind.""" -from typing import Any, Callable, Sequence, Tuple, TypeVar, cast +from typing import Any, Callable, Sequence, Tuple, cast import chex import jax import jax.numpy as jnp -from flax import nnx from .logger import log diff --git a/tests/test_agent.py b/tests/test_agent.py index 3522bad..d29a6ea 100644 --- a/tests/test_agent.py +++ b/tests/test_agent.py @@ -1,8 +1,6 @@ """Tests for the Agent class verifying initialization, action selection, state persistence, and input handling.""" import chex -import jax -import jax.numpy as jnp import numpy as np import pytest from flax import nnx diff --git a/tests/test_basic.py b/tests/test_basic.py index 5be2d53..450ec66 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -1,6 +1,5 @@ """Basic integration tests for CuMind implementation.""" -import jax import jax.numpy as jnp import numpy as np import pytest @@ -8,7 +7,9 @@ from cumind.agent.agent import Agent from cumind.config import Config +from cumind.core.mlp import MLPDual, MLPWithEmbedding from cumind.core.network import CuMindNetwork +from cumind.core.resnet import ResNet from cumind.data.memory import Memory, MemoryBuffer, PrioritizedMemoryBuffer, TreeBuffer from cumind.utils.prng import key @@ -32,7 +33,10 @@ def test_network_creation(): key.seed(42) rngs = nnx.Rngs(params=key()) - network = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) + repre_net = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) + dyna_net = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) + pred_net = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) + network = CuMindNetwork(repre_net, dyna_net, pred_net, rngs) assert hasattr(network, "representation_network") assert hasattr(network, "dynamics_network") @@ -50,7 +54,10 @@ def test_network_inference(): key.seed(42) rngs = nnx.Rngs(params=key()) - network = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) + repre_net = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) + dyna_net = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) + pred_net = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) + network = CuMindNetwork(repre_net, dyna_net, pred_net, rngs) # Test initial inference batch_size = 2 diff --git a/tests/test_data.py b/tests/test_data.py index 1768442..729033a 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -1,14 +1,11 @@ """Comprehensive tests for data components (MemoryBuffer, SelfPlay).""" import gymnasium as gym -import jax -import jax.numpy as jnp -import numpy as np import pytest from cumind.agent.agent import Agent from cumind.config import Config -from cumind.data.memory import Memory, MemoryBuffer, PrioritizedMemoryBuffer, TreeBuffer +from cumind.data.memory import MemoryBuffer, PrioritizedMemoryBuffer, TreeBuffer from cumind.data.self_play import SelfPlay diff --git a/tests/test_mcts.py b/tests/test_mcts.py index 13f57e0..8d33428 100644 --- a/tests/test_mcts.py +++ b/tests/test_mcts.py @@ -1,6 +1,5 @@ """Tests for the Node and MCTS classes, covering initialization, value computation, selection logic, and search behavior.""" -import chex import jax import jax.numpy as jnp import numpy as np @@ -9,7 +8,9 @@ from cumind.config import Config from cumind.core import MCTS, Node +from cumind.core.mlp import MLPDual, MLPWithEmbedding from cumind.core.network import CuMindNetwork +from cumind.core.resnet import ResNet from cumind.utils.prng import key @@ -188,7 +189,10 @@ def setup(self): config.network_hidden_dim = 16 key.seed(config.seed) rngs = nnx.Rngs(params=key()) - network = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) + repre_net = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) + dyna_net = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) + pred_net = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) + network = CuMindNetwork(repre_net, dyna_net, pred_net, rngs) mcts = MCTS(network, config) return mcts, network, config @@ -262,7 +266,10 @@ def test_mcts_with_different_networks(self, setup): config.env_action_space_size = 3 key.seed(config.seed) rngs = nnx.Rngs(params=key()) - network2 = CuMindNetwork(observation_shape=config.env_observation_shape, action_space_size=config.env_action_space_size, hidden_dim=config.network_hidden_dim, num_blocks=config.network_num_blocks, conv_channels=config.network_conv_channels, rngs=rngs) + repre_net2 = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) + dyna_net2 = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) + pred_net2 = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) + network2 = CuMindNetwork(repre_net2, dyna_net2, pred_net2, rngs) mcts2 = MCTS(network2, config) root_hidden_state = jnp.ones(config.network_hidden_dim) action_probs = mcts2.search(root_hidden_state, add_noise=False) diff --git a/tests/test_network.py b/tests/test_network.py index e277cd6..901e87f 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -3,19 +3,14 @@ import chex import jax import jax.numpy as jnp -import numpy as np import pytest from flax import nnx -from cumind.core.network import ( - ConvEncoder, - CuMindNetwork, - DynamicsNetwork, - PredictionNetwork, - RepresentationNetwork, - ResidualBlock, - VectorEncoder, -) +from cumind.core.encoder import ConvEncoder, VectorEncoder +from cumind.core.mlp import MLPDual, MLPWithEmbedding +from cumind.core.network import CuMindNetwork +from cumind.core.resnet import ResNet +from cumind.core.utils import ResidualBlock from cumind.utils.prng import key @@ -218,100 +213,75 @@ def test_conv_encoder_with_residual_blocks(self): chex.assert_tree_all_finite(grads) -class TestRepresentationNetwork: - """Test suite for RepresentationNetwork.""" +class TestResNet: + """Test suite for ResNet.""" - def test_representation_network_initialization(self): - """Test RepresentationNetwork initialization.""" + def test_resnet_initialization(self): + """Test ResNet initialization.""" key.seed(0) rngs = nnx.Rngs(params=key()) hidden_dim = 64 num_blocks = 2 conv_channels = 16 - # Test with 1D observation shape - net_1d = RepresentationNetwork((4,), hidden_dim, num_blocks, conv_channels, rngs) + net_1d = ResNet(hidden_dim, (4,), num_blocks, conv_channels, rngs) assert isinstance(net_1d.encoder, VectorEncoder) # Test with 3D observation shape - net_3d = RepresentationNetwork((84, 84, 3), hidden_dim, num_blocks, conv_channels, rngs) + net_3d = ResNet(hidden_dim, (84, 84, 3), num_blocks, conv_channels, rngs) assert isinstance(net_3d.encoder, ConvEncoder) - def test_encoder_factory_method(self): - """Test encoder factory method selection.""" - key.seed(0) - rngs = nnx.Rngs(params=key()) - hidden_dim = 64 - num_blocks = 2 - conv_channels = 16 - # Create a dummy network to get access to the factory method - net = RepresentationNetwork((1,), hidden_dim, num_blocks, conv_channels, rngs) - - # Test VectorEncoder selection for 1D observations - net.observation_shape = (10,) - encoder_1d = net._create_encoder(rngs) - assert isinstance(encoder_1d, VectorEncoder) - - # Test ConvEncoder selection for 3D observations - net.observation_shape = (10, 10, 1) - encoder_3d = net._create_encoder(rngs) - assert isinstance(encoder_3d, ConvEncoder) - - # Test error handling for unsupported shapes - net.observation_shape = (10, 10) - with pytest.raises(ValueError, match="Unsupported observation shape"): - net._create_encoder(rngs) - def test_representation_forward_1d(self): - """Test RepresentationNetwork with 1D observations.""" + def test_resnet_forward_1d(self): + """Test ResNet with 1D observations.""" key.seed(0) rngs = nnx.Rngs(params=key()) observation_shape = (8,) hidden_dim = 32 - net = RepresentationNetwork(observation_shape, hidden_dim, 2, 0, rngs) + net = ResNet(hidden_dim, observation_shape, 2, 0, rngs) obs = jnp.ones((4, *observation_shape)) hidden_state = net(obs) assert hidden_state.shape == (4, hidden_dim) - def test_representation_forward_3d(self): - """Test RepresentationNetwork with 3D observations.""" + def test_resnet_forward_3d(self): + """Test ResNet with 3D observations.""" key.seed(0) rngs = nnx.Rngs(params=key()) observation_shape = (16, 16, 3) hidden_dim = 64 - net = RepresentationNetwork(observation_shape, hidden_dim, 2, 8, rngs) + net = ResNet(hidden_dim, observation_shape, 2, 8, rngs) obs = jnp.ones((2, *observation_shape)) hidden_state = net(obs) assert hidden_state.shape == (2, hidden_dim) -class TestDynamicsNetwork: - """Test suite for DynamicsNetwork.""" +class TestMLPWithEmbedding: + """Test suite for MLPWithEmbedding.""" - def test_dynamics_network_initialization(self): - """Test DynamicsNetwork initialization.""" + def test_mlp_with_embedding_initialization(self): + """Test MLPWithEmbedding initialization.""" key.seed(0) rngs = nnx.Rngs(params=key()) hidden_dim = 64 action_space_size = 5 num_blocks = 3 - net = DynamicsNetwork(hidden_dim, action_space_size, num_blocks, rngs) + net = MLPWithEmbedding(hidden_dim, action_space_size, num_blocks, rngs) - assert isinstance(net.action_embedding, nnx.Embed) - assert net.action_embedding.num_embeddings == action_space_size + assert isinstance(net.embedding, nnx.Embed) + assert net.embedding.num_embeddings == action_space_size assert len(net.layers) == num_blocks - assert isinstance(net.reward_head, nnx.Linear) + assert isinstance(net.output_head, nnx.Linear) - def test_dynamics_forward(self): - """Test DynamicsNetwork forward pass.""" + def test_mlp_with_embedding_forward(self): + """Test MLPWithEmbedding forward pass.""" key.seed(0) rngs = nnx.Rngs(params=key()) hidden_dim = 32 action_space_size = 4 num_blocks = 2 batch_size = 8 - net = DynamicsNetwork(hidden_dim, action_space_size, num_blocks, rngs) + net = MLPWithEmbedding(hidden_dim, action_space_size, num_blocks, rngs) state = jnp.ones((batch_size, hidden_dim)) action = jnp.zeros(batch_size, dtype=jnp.int32) next_state, reward = net(state, action) @@ -326,9 +296,9 @@ def test_action_embedding(self): hidden_dim = 16 action_space_size = 7 batch_size = 3 - net = DynamicsNetwork(hidden_dim, action_space_size, 1, rngs) + net = MLPWithEmbedding(hidden_dim, action_space_size, 1, rngs) action = jnp.array([0, 2, 6]) - action_embedded = net.action_embedding(action) + action_embedded = net.embedding(action) assert action_embedded.shape == (batch_size, hidden_dim) @@ -340,7 +310,7 @@ def test_reward_prediction(self): action_space_size = 4 num_blocks = 2 batch_size = 8 - net = DynamicsNetwork(hidden_dim, action_space_size, num_blocks, rngs) + net = MLPWithEmbedding(hidden_dim, action_space_size, num_blocks, rngs) state = jnp.ones((batch_size, hidden_dim)) action = jnp.zeros(batch_size, dtype=jnp.int32) _, reward = net(state, action) @@ -353,30 +323,30 @@ def test_reward_prediction(self): chex.assert_tree_all_finite(grads) -class TestPredictionNetwork: - """Test suite for PredictionNetwork.""" +class TestMLPDual: + """Test suite for MLPDual.""" - def test_prediction_network_initialization(self): - """Test PredictionNetwork initialization.""" + def test_mlp_dual_initialization(self): + """Test MLPDual initialization.""" key.seed(0) rngs = nnx.Rngs(params=key()) hidden_dim = 128 action_space_size = 10 - net = PredictionNetwork(hidden_dim, action_space_size, rngs) + net = MLPDual(hidden_dim, action_space_size, rngs) - assert isinstance(net.policy_head, nnx.Linear) - assert isinstance(net.value_head, nnx.Linear) - assert net.policy_head.out_features == action_space_size - assert net.value_head.out_features == 1 + assert isinstance(net.head1, nnx.Linear) + assert isinstance(net.head2, nnx.Linear) + assert net.head1.out_features == action_space_size + assert net.head2.out_features == 1 - def test_prediction_forward(self): - """Test PredictionNetwork forward pass.""" + def test_mlp_dual_forward(self): + """Test MLPDual forward pass.""" key.seed(0) rngs = nnx.Rngs(params=key()) hidden_dim = 64 action_space_size = 5 batch_size = 4 - net = PredictionNetwork(hidden_dim, action_space_size, rngs) + net = MLPDual(hidden_dim, action_space_size, rngs) hidden_state = jnp.ones((batch_size, hidden_dim)) policy_logits, value = net(hidden_state) @@ -390,7 +360,7 @@ def test_policy_head(self): hidden_dim = 64 action_space_size = 5 batch_size = 4 - net = PredictionNetwork(hidden_dim, action_space_size, rngs) + net = MLPDual(hidden_dim, action_space_size, rngs) hidden_state = jnp.ones((batch_size, hidden_dim)) policy_logits, _ = net(hidden_state) @@ -403,7 +373,7 @@ def test_value_head(self): hidden_dim = 64 action_space_size = 5 batch_size = 4 - net = PredictionNetwork(hidden_dim, action_space_size, rngs) + net = MLPDual(hidden_dim, action_space_size, rngs) hidden_state = jnp.ones((batch_size, hidden_dim)) _, value = net(hidden_state) @@ -439,15 +409,21 @@ def setup_3d(self): def test_cumind_network_initialization(self, setup_1d): """Test CuMindNetwork initialization.""" - net = CuMindNetwork(**setup_1d) - assert isinstance(net.representation_network, RepresentationNetwork) - assert isinstance(net.dynamics_network, DynamicsNetwork) - assert isinstance(net.prediction_network, PredictionNetwork) + repre_net = ResNet(setup_1d["hidden_dim"], setup_1d["observation_shape"], setup_1d["num_blocks"], setup_1d["conv_channels"], setup_1d["rngs"]) + dyna_net = MLPWithEmbedding(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["num_blocks"], setup_1d["rngs"]) + pred_net = MLPDual(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["rngs"]) + net = CuMindNetwork(repre_net, dyna_net, pred_net, setup_1d["rngs"]) + assert isinstance(net.representation_network, ResNet) + assert isinstance(net.dynamics_network, MLPWithEmbedding) + assert isinstance(net.prediction_network, MLPDual) assert isinstance(net.representation_network.encoder, VectorEncoder) def test_initial_inference(self, setup_1d): """Test initial inference step.""" - net = CuMindNetwork(**setup_1d) + repre_net = ResNet(setup_1d["hidden_dim"], setup_1d["observation_shape"], setup_1d["num_blocks"], setup_1d["conv_channels"], setup_1d["rngs"]) + dyna_net = MLPWithEmbedding(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["num_blocks"], setup_1d["rngs"]) + pred_net = MLPDual(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["rngs"]) + net = CuMindNetwork(repre_net, dyna_net, pred_net, setup_1d["rngs"]) batch_size = 4 obs = jnp.ones((batch_size, *setup_1d["observation_shape"])) hidden_state, policy_logits, value = net.initial_inference(obs) @@ -458,7 +434,10 @@ def test_initial_inference(self, setup_1d): def test_recurrent_inference(self, setup_1d): """Test recurrent inference step.""" - net = CuMindNetwork(**setup_1d) + repre_net = ResNet(setup_1d["hidden_dim"], setup_1d["observation_shape"], setup_1d["num_blocks"], setup_1d["conv_channels"], setup_1d["rngs"]) + dyna_net = MLPWithEmbedding(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["num_blocks"], setup_1d["rngs"]) + pred_net = MLPDual(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["rngs"]) + net = CuMindNetwork(repre_net, dyna_net, pred_net, setup_1d["rngs"]) batch_size = 4 hidden_state = jnp.ones((batch_size, setup_1d["hidden_dim"])) action = jnp.zeros(batch_size, dtype=jnp.int32) @@ -471,7 +450,10 @@ def test_recurrent_inference(self, setup_1d): def test_network_integration(self, setup_1d): """Test integration between network components.""" - net = CuMindNetwork(**setup_1d) + repre_net = ResNet(setup_1d["hidden_dim"], setup_1d["observation_shape"], setup_1d["num_blocks"], setup_1d["conv_channels"], setup_1d["rngs"]) + dyna_net = MLPWithEmbedding(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["num_blocks"], setup_1d["rngs"]) + pred_net = MLPDual(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["rngs"]) + net = CuMindNetwork(repre_net, dyna_net, pred_net, setup_1d["rngs"]) batch_size = 2 hidden_state = jnp.ones((batch_size, setup_1d["hidden_dim"])) action = jnp.ones(batch_size, dtype=jnp.int32) @@ -489,7 +471,10 @@ def loss_fn(model, state, act): def test_cumind_network_with_1d_observations(self, setup_1d): """Test CuMindNetwork with vector observations.""" - net = CuMindNetwork(**setup_1d) + repre_net = ResNet(setup_1d["hidden_dim"], setup_1d["observation_shape"], setup_1d["num_blocks"], setup_1d["conv_channels"], setup_1d["rngs"]) + dyna_net = MLPWithEmbedding(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["num_blocks"], setup_1d["rngs"]) + pred_net = MLPDual(setup_1d["hidden_dim"], setup_1d["action_space_size"], setup_1d["rngs"]) + net = CuMindNetwork(repre_net, dyna_net, pred_net, setup_1d["rngs"]) batch_size = 2 obs = jnp.ones((batch_size, *setup_1d["observation_shape"])) @@ -504,7 +489,10 @@ def test_cumind_network_with_1d_observations(self, setup_1d): def test_cumind_network_with_3d_observations(self, setup_3d): """Test CuMindNetwork with image observations.""" - net = CuMindNetwork(**setup_3d) + repre_net = ResNet(setup_3d["hidden_dim"], setup_3d["observation_shape"], setup_3d["num_blocks"], setup_3d["conv_channels"], setup_3d["rngs"]) + dyna_net = MLPWithEmbedding(setup_3d["hidden_dim"], setup_3d["action_space_size"], setup_3d["num_blocks"], setup_3d["rngs"]) + pred_net = MLPDual(setup_3d["hidden_dim"], setup_3d["action_space_size"], setup_3d["rngs"]) + net = CuMindNetwork(repre_net, dyna_net, pred_net, setup_3d["rngs"]) batch_size = 2 obs = jnp.ones((batch_size, *setup_3d["observation_shape"])) @@ -522,11 +510,17 @@ def test_unsupported_observation_shapes(self, setup_1d): params = setup_1d.copy() with pytest.raises(ValueError, match="Unsupported observation shape"): params["observation_shape"] = (10, 10) - CuMindNetwork(**params) + repre_net = ResNet(params["hidden_dim"], params["observation_shape"], params["num_blocks"], params["conv_channels"], params["rngs"]) + dyna_net = MLPWithEmbedding(params["hidden_dim"], params["action_space_size"], params["num_blocks"], params["rngs"]) + pred_net = MLPDual(params["hidden_dim"], params["action_space_size"], params["rngs"]) + CuMindNetwork(repre_net, dyna_net, pred_net, params["rngs"]) with pytest.raises(ValueError, match="Unsupported observation shape"): params["observation_shape"] = (1, 2, 3, 4) - CuMindNetwork(**params) + repre_net = ResNet(params["hidden_dim"], params["observation_shape"], params["num_blocks"], params["conv_channels"], params["rngs"]) + dyna_net = MLPWithEmbedding(params["hidden_dim"], params["action_space_size"], params["num_blocks"], params["rngs"]) + pred_net = MLPDual(params["hidden_dim"], params["action_space_size"], params["rngs"]) + CuMindNetwork(repre_net, dyna_net, pred_net, params["rngs"]) if __name__ == "__main__": From 5b32ff1e3dcee5119df4e7470b9d9624261fbb27 Mon Sep 17 00:00:00 2001 From: t4r3k <142579274+machine-moon@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:05:37 -0400 Subject: [PATCH 04/19] adding logging colour for standard output --- src/cumind/utils/logger.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/cumind/utils/logger.py b/src/cumind/utils/logger.py index 4a74b53..c524714 100644 --- a/src/cumind/utils/logger.py +++ b/src/cumind/utils/logger.py @@ -124,9 +124,6 @@ def exception(self, msg: str, *args: Any, **kwargs: Any) -> None: def critical(self, msg: str, *args: Any, **kwargs: Any) -> None: self._logger.critical(msg, *args, **kwargs) - def log(self, level: int, msg: str, *args: Any, **kwargs: Any) -> None: - self._logger.log(level, msg, *args, **kwargs) - def log_scalar(self, name: str, value: float, step: int) -> None: self.info(f"Step {step:4d}: {name} = {value:.6f}") if self.use_wandb: @@ -152,7 +149,7 @@ def open(self) -> None: with type(self)._lock: if self._console_handler is None: self._console_handler = logging.StreamHandler(sys.stdout) - self._console_handler.setFormatter(self._formatter) + self._console_handler.setFormatter(ColorFormatter("%(asctime)s - %(levelname)s - %(message)s", datefmt="%I:%M:%S %p")) self._logger.addHandler(self._console_handler) self.info("Console output opened") @@ -179,5 +176,20 @@ def shutdown(self) -> None: logging.shutdown() +class ColorFormatter(logging.Formatter): + COLORS = { + 'DEBUG': '\033[36m', # Cyan + 'INFO': '\033[32m', # Green + 'WARNING': '\033[33m', # Yellow + 'ERROR': '\033[31m', # Red + 'CRITICAL': '\033[41m', # Red background + } + RESET = '\033[0m' + def format(self, record): + color = self.COLORS.get(record.levelname, '') + msg = super().format(record) + return f"{color}{msg}{self.RESET}" + + # Singleton instance log = Logger.instance() From f698723f4fb1d6eedffb6a8d4212a3b188b1ff34 Mon Sep 17 00:00:00 2001 From: t4r3k <142579274+machine-moon@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:28:11 -0400 Subject: [PATCH 05/19] new configuration who dis? --- configuration.json | 51 +++--- scripts/exportconfig.py | 10 +- src/cumind/__init__.py | 6 +- src/cumind/config.py | 216 ------------------------ src/cumind/core/helper.py | 30 ---- src/cumind/utils/__init__.py | 7 +- src/cumind/utils/config.py | 319 +++++++++++++++++++++++++++++++++++ src/cumind/utils/resolve.py | 11 ++ 8 files changed, 368 insertions(+), 282 deletions(-) delete mode 100644 src/cumind/config.py delete mode 100644 src/cumind/core/helper.py create mode 100644 src/cumind/utils/config.py create mode 100644 src/cumind/utils/resolve.py diff --git a/configuration.json b/configuration.json index 34c15ca..af8be76 100644 --- a/configuration.json +++ b/configuration.json @@ -1,14 +1,32 @@ { - "CuMind": - { - "network": - { + "CuMind": { + "representation": { + "type": "cumind.core.resnet.ResNet", "hidden_dim": 128, "num_blocks": 2, "conv_channels": 32 }, - "training": - { + "dynamics": { + "type": "cumind.core.mlp.MLPWithEmbedding", + "hidden_dim": 128, + "num_blocks": 2 + }, + "prediction": { + "type": "cumind.core.mlp.MLPDual", + "hidden_dim": 128, + "num_blocks": 2 + }, + "memory": { + "type": "cumind.data.memory.MemoryBuffer", + "capacity": 2000, + "min_size": 100, + "min_pct": 0.1, + "per_alpha": 0.6, + "per_epsilon": 1e-06, + "per_beta": 0.4 + }, + "training": { + "optimizer": "optax.adamw", "batch_size": 64, "learning_rate": 0.01, "weight_decay": 0.0001, @@ -18,36 +36,23 @@ "train_frequency": 2, "checkpoint_root_dir": "checkpoints" }, - "mcts": - { + "mcts": { "num_simulations": 25, "c_puct": 1.25, "dirichlet_alpha": 0.25, "exploration_fraction": 0.25 }, - "env": - { + "env": { "name": "CartPole-v1", "action_space_size": 2, "observation_shape": [4] }, - "selfplay": - { + "selfplay": { "num_unroll_steps": 5, "td_steps": 10, "discount": 0.997 }, - "memory": - { - "capacity": 2000, - "min_size": 100, - "min_pct": 0.1, - "per_alpha": 0.6, - "per_epsilon": 1e-06, - "per_beta": 0.4 - }, - "dtypes": - { + "dtypes": { "model": "float32", "action": "int32", "target": "float32" diff --git a/scripts/exportconfig.py b/scripts/exportconfig.py index c037f1c..238592e 100644 --- a/scripts/exportconfig.py +++ b/scripts/exportconfig.py @@ -1,10 +1,4 @@ -from cumind.config import Config - - -def main() -> None: - config = Config() - config.to_json("configuration.json") - +from cumind.utils.config import cfg if __name__ == "__main__": - main() + cfg.save("configuration.json") diff --git a/src/cumind/__init__.py b/src/cumind/__init__.py index 9fcfd59..d8c1d35 100644 --- a/src/cumind/__init__.py +++ b/src/cumind/__init__.py @@ -1,10 +1,10 @@ -"""CuMind: A clean implementation of the CuMind algorithm.""" +"""CuMind: A modular reinforcement learning framework.""" from .agent import Agent, Trainer -from .config import Config from .runner import inference, train from .utils import log +from .utils.config import cfg from .utils.prng import key __version__ = "0.1.7" -__all__ = ["Agent", "Trainer", "train", "inference", "Config", "log", "key"] +__all__ = ["Agent", "Trainer", "train", "inference", "cfg", "log", "key"] diff --git a/src/cumind/config.py b/src/cumind/config.py deleted file mode 100644 index 0ddd29a..0000000 --- a/src/cumind/config.py +++ /dev/null @@ -1,216 +0,0 @@ -"""Configuration for CuMind.""" - -import dataclasses -import json -from pathlib import Path -from typing import Any, Dict, Tuple - -import chex - -from .utils.logger import log - - -@chex.dataclass -class Config: - """Hyperparameter configuration for the CuMind agent. - - This dataclass defines all configurable hyperparameters. For more details - on tuning, see the project's documentation. - """ - - # Network architecture - network_hidden_dim: int = 128 - network_num_blocks: int = 2 - network_conv_channels: int = 32 - - # Training - training_batch_size: int = 64 - training_learning_rate: float = 0.01 - training_weight_decay: float = 0.0001 - training_target_update_frequency: int = 250 - training_checkpoint_interval: int = 50 - training_num_episodes: int = 1220 - training_train_frequency: int = 2 - training_checkpoint_root_dir: str = "checkpoints" - - # MCTS - mcts_num_simulations: int = 25 - mcts_c_puct: float = 1.25 - mcts_dirichlet_alpha: float = 0.25 - mcts_exploration_fraction: float = 0.25 - - # Environment - env_name: str = "CartPole-v1" - env_action_space_size: int = 2 - env_observation_shape: Tuple[int, ...] = (4,) - - # Self-Play - selfplay_num_unroll_steps: int = 5 - selfplay_td_steps: int = 10 - selfplay_discount: float = 0.997 - - # Memory - memory_capacity: int = 2000 - memory_min_size: int = 100 - memory_min_pct: float = 0.1 - memory_per_alpha: float = 0.6 - # Tree - - memory_per_epsilon: float = 1e-6 - # Prioritized Buffer - memory_per_beta: float = 0.4 - - # Data Types - dtypes_model: str = "float32" - dtypes_action: str = "int32" - dtypes_target: str = "float32" - - # Devices - device: str = "cpu" - seed: int = 42 - - @classmethod - def from_json(cls, json_path: str) -> "Config": - """Loads a configuration from a JSON file. - Args: - json_path: Path to the JSON configuration file. - Returns: - A Config instance with the loaded parameters. - """ - log.info(f"Loading configuration from {json_path}...") - json_file = Path(json_path) - if not json_file.exists(): - log.critical(f"Config file not found: {json_path}") - raise FileNotFoundError(f"Config file not found: {json_path}") - - with open(json_file, "r", encoding="utf-8") as f: - config_dict = json.load(f) - - if "CuMind" not in config_dict: - log.critical("Root key 'CuMind' not found in config file.") - raise ValueError("Root key 'CuMind' not found in config file.") - - config_params = config_dict["CuMind"] - flattened_dict = {} - for section, params in config_params.items(): - if isinstance(params, dict): - for key, value in params.items(): - flattened_dict[f"{section}_{key}"] = value - else: - flattened_dict[section] = params - - log.info("Configuration loaded successfully.") - return cls(**flattened_dict) - - def _format_json(self, obj: Any, indent: int = 0) -> str: - """Format JSON with open brace style and one-liner arrays.""" - if isinstance(obj, dict): - if not obj: - return "{}" - - items = [] - for key, value in obj.items(): - key_str = json.dumps(key) - if isinstance(value, (dict, list)) and value: - value_str = self._format_json(value, indent + 2) - items.append(f'{" " * (indent + 2)}{key_str}:\n{" " * (indent + 2)}{value_str}') - else: - value_str = self._format_json(value, indent + 2) - items.append(f'{" " * (indent + 2)}{key_str}: {value_str}') - - return "{\n" + ",\n".join(items) + "\n" + " " * indent + "}" - - elif isinstance(obj, list): - if not obj: - return "[]" - - if all(isinstance(item, (str, int, float, bool)) or item is None for item in obj): - return json.dumps(obj) - - items = [] - for item in obj: - items.append(self._format_json(item, indent + 2)) - - return "[\n" + ",\n".join(f'{" " * (indent + 2)}{item}' for item in items) + "\n" + " " * indent + "]" - - else: - return json.dumps(obj) - - def to_json(self, json_path: str) -> None: - """Saves the configuration to a JSON file. - Args: - json_path: Path to save the JSON configuration file. - """ - log.info(f"Saving configuration to {json_path}...") - json_file = Path(json_path) - json_file.parent.mkdir(parents=True, exist_ok=True) - - config_dict = dataclasses.asdict(self) - organized_config: Dict[str, Any] = {} - - for key, value in config_dict.items(): - if "_" in key: - section, field = key.split("_", 1) - if section not in organized_config: - organized_config[section] = {} - organized_config[section][field] = value - else: - organized_config[key] = value - - final_config = {"CuMind": organized_config} - - with open(json_file, "w", encoding="utf-8") as f: - f.write(self._format_json(final_config)) - f.write("\n") - - log.info("Configuration saved successfully.") - - def validate(self) -> None: - """Validates the configuration parameters. - Raises: - ValueError: If any parameter is found to be invalid. - """ - log.info("Validating configuration...") - if self.network_hidden_dim <= 0: - log.critical(f"Invalid hidden_dim: {self.network_hidden_dim}. Must be positive.") - raise ValueError(f"hidden_dim must be positive, got {self.network_hidden_dim}") - if self.env_action_space_size <= 0: - log.critical(f"Invalid action_space_size: {self.env_action_space_size}. Must be positive.") - raise ValueError(f"action_space_size must be positive, got {self.env_action_space_size}") - if not self.env_observation_shape: - log.critical("observation_shape cannot be empty.") - raise ValueError("observation_shape cannot be empty") - if len(self.env_observation_shape) not in [1, 3]: - log.critical(f"Unsupported observation_shape dimensionality: {len(self.env_observation_shape)}D. Must be 1D or 3D.") - raise ValueError(f"observation_shape must be 1D or 3D, got {len(self.env_observation_shape)}D") - if self.training_learning_rate <= 0: - log.critical(f"Invalid learning_rate: {self.training_learning_rate}. Must be positive.") - raise ValueError(f"learning_rate must be positive, got {self.training_learning_rate}") - if self.training_batch_size <= 0: - log.critical(f"Invalid batch_size: {self.training_batch_size}. Must be positive.") - raise ValueError(f"batch_size must be positive, got {self.training_batch_size}") - if self.mcts_num_simulations <= 0: - log.critical(f"Invalid num_simulations: {self.mcts_num_simulations}. Must be positive.") - raise ValueError(f"num_simulations must be positive, got {self.mcts_num_simulations}") - - valid_model_dtypes = ["float32", "float16", "bfloat16"] - if self.dtypes_model not in valid_model_dtypes: - log.critical(f"Invalid model_dtype: {self.dtypes_model}. Must be one of {valid_model_dtypes}.") - raise ValueError(f"model_dtype must be one of {valid_model_dtypes}, got {self.dtypes_model}") - - valid_action_dtypes = ["int32", "int64"] - if self.dtypes_action not in valid_action_dtypes: - log.critical(f"Invalid action_dtype: {self.dtypes_action}. Must be one of {valid_action_dtypes}.") - raise ValueError(f"action_dtype must be one of {valid_action_dtypes}, got {self.dtypes_action}") - - valid_target_dtypes = ["float32", "float16", "bfloat16"] - if self.dtypes_target not in valid_target_dtypes: - log.critical(f"Invalid target_dtype: {self.dtypes_target}. Must be one of {valid_target_dtypes}.") - raise ValueError(f"target_dtype must be one of {valid_target_dtypes}, got {self.dtypes_target}") - - valid_device = ["cpu", "gpu", "tpu"] - if self.device not in valid_device: - log.critical(f"Invalid device_type: {self.device}. Must be one of {valid_device}.") - raise ValueError(f"device_type must be one of {valid_device}, got {self.device}") - - log.info("Configuration validation successful.") diff --git a/src/cumind/core/helper.py b/src/cumind/core/helper.py deleted file mode 100644 index 4329178..0000000 --- a/src/cumind/core/helper.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Retrieve callable nnx.Module constructors from global scope by their string names.""" - -from typing import Callable, Optional, Tuple, Union - -from flax import nnx - - -def str_to_nnx(*names: Optional[Union[str, nnx.Module]]) -> Tuple[Callable[..., nnx.Module], ...]: - """ - Return callables from the module's globals by their names. - - Raises: - AttributeError: If a name is not found or not callable. - ValueError: If no names are provided. - """ - if not names: - raise ValueError("At least one string name must be provided.") - result = [] - for name in names: - if not isinstance(name, str): - raise ValueError("All names must be strings.") - obj = globals().get(name) - if obj is None: - raise AttributeError(f"No object named '{name}' found.") - if not callable(obj): - raise AttributeError(f"Object '{name}' is not callable.") - result.append(obj) - if not result: - raise ValueError("No valid callables found for the given names.") - return tuple(result) diff --git a/src/cumind/utils/__init__.py b/src/cumind/utils/__init__.py index f9ccf11..720d915 100644 --- a/src/cumind/utils/__init__.py +++ b/src/cumind/utils/__init__.py @@ -1,7 +1,10 @@ -"""Utilities for logging and other common functionality.""" +"""Utility modules for CuMind.""" from .checkpoint import load_checkpoint, save_checkpoint +from .config import cfg +from .jax_utils import batched_apply, safe_normalize, tree_stack, tree_unstack from .logger import log from .prng import key +from .resolve import resolve -__all__ = ["save_checkpoint", "load_checkpoint", "key", "log"] +__all__ = ["load_checkpoint", "save_checkpoint", "batched_apply", "tree_stack", "tree_unstack", "safe_normalize", "log", "key", "resolve", "cfg"] diff --git a/src/cumind/utils/config.py b/src/cumind/utils/config.py new file mode 100644 index 0000000..03f36bf --- /dev/null +++ b/src/cumind/utils/config.py @@ -0,0 +1,319 @@ +"""Global configuration management for CuMind.""" + +import dataclasses +import inspect +import json +import re +from pathlib import Path +from typing import Any, Tuple + +from .logger import log +from .resolve import resolve + + +@dataclasses.dataclass(frozen=True) +class RepresentationConfig: + """Configuration for representation network.""" + + type: str = "cumind.core.resnet.ResNet" + hidden_dim: int = 128 + num_blocks: int = 2 + conv_channels: int = 32 + + def __call__(self, **kwargs): + """Instantiate the representation network.""" + cls = resolve(self.type) + params = {k: v for k, v in dataclasses.asdict(self).items() if k != "type"} + sig = inspect.signature(cls) + valid = {k: v for k, v in {**params, **kwargs}.items() if k in sig.parameters} + return cls(**valid) + + +@dataclasses.dataclass(frozen=True) +class DynamicsConfig: + """Configuration for dynamics network.""" + + type: str = "cumind.core.mlp.MLPWithEmbedding" + hidden_dim: int = 128 + num_blocks: int = 2 + + def __call__(self, **kwargs): + """Instantiate the representation network.""" + cls = resolve(self.type) + params = {k: v for k, v in dataclasses.asdict(self).items() if k != "type"} + sig = inspect.signature(cls) + valid = {k: v for k, v in {**params, **kwargs}.items() if k in sig.parameters} + return cls(**valid) + + +@dataclasses.dataclass(frozen=True) +class PredictionConfig: + """Configuration for prediction network.""" + + type: str = "cumind.core.mlp.MLPDual" + hidden_dim: int = 128 + num_blocks: int = 2 + + def __call__(self, **kwargs): + """Instantiate the representation network.""" + cls = resolve(self.type) + params = {k: v for k, v in dataclasses.asdict(self).items() if k != "type"} + sig = inspect.signature(cls) + valid = {k: v for k, v in {**params, **kwargs}.items() if k in sig.parameters} + return cls(**valid) + + +@dataclasses.dataclass(frozen=True) +class MemoryConfig: + """Configuration for memory buffer.""" + + type: str = "cumind.data.memory.MemoryBuffer" + capacity: int = 2000 + min_size: int = 100 + min_pct: float = 0.1 + per_alpha: float = 0.6 + per_epsilon: float = 1e-6 + per_beta: float = 0.4 + + def __call__(self, **kwargs): + """Instantiate the representation network.""" + cls = resolve(self.type) + params = {k: v for k, v in dataclasses.asdict(self).items() if k != "type"} + sig = inspect.signature(cls) + valid = {k: v for k, v in {**params, **kwargs}.items() if k in sig.parameters} + return cls(**valid) + + +@dataclasses.dataclass(frozen=True) +class TrainingConfig: + """Configuration for training.""" + + optimizer: str = "optax.adamw" + batch_size: int = 64 + learning_rate: float = 0.01 + weight_decay: float = 0.0001 + target_update_frequency: int = 250 + checkpoint_interval: int = 50 + num_episodes: int = 1220 + train_frequency: int = 2 + checkpoint_root_dir: str = "checkpoints" + + +@dataclasses.dataclass(frozen=True) +class MCTSConfig: + """Configuration for MCTS.""" + + num_simulations: int = 25 + c_puct: float = 1.25 + dirichlet_alpha: float = 0.25 + exploration_fraction: float = 0.25 + + +@dataclasses.dataclass(frozen=True) +class EnvironmentConfig: + """Configuration for environment.""" + + name: str = "CartPole-v1" + action_space_size: int = 2 + observation_shape: Tuple[int, ...] = (4,) + + +@dataclasses.dataclass(frozen=True) +class SelfPlayConfig: + """Configuration for self-play.""" + + num_unroll_steps: int = 5 + td_steps: int = 10 + discount: float = 0.997 + + +@dataclasses.dataclass(frozen=True) +class DataTypesConfig: + """Configuration for data types.""" + + model: str = "float32" + action: str = "int32" + target: str = "float32" + + +@dataclasses.dataclass(frozen=True) +class Configuration: + """Main configuration for CuMind.""" + + # Hot-swappable modules + representation: RepresentationConfig = dataclasses.field(default_factory=RepresentationConfig) + dynamics: DynamicsConfig = dataclasses.field(default_factory=DynamicsConfig) + prediction: PredictionConfig = dataclasses.field(default_factory=PredictionConfig) + memory: MemoryConfig = dataclasses.field(default_factory=MemoryConfig) + + # Other sections + training: TrainingConfig = dataclasses.field(default_factory=TrainingConfig) + mcts: MCTSConfig = dataclasses.field(default_factory=MCTSConfig) + env: EnvironmentConfig = dataclasses.field(default_factory=EnvironmentConfig) + selfplay: SelfPlayConfig = dataclasses.field(default_factory=SelfPlayConfig) + dtypes: DataTypesConfig = dataclasses.field(default_factory=DataTypesConfig) + + # Global settings + device: str = "cpu" + seed: int = 42 + + @classmethod + def _from_json(cls, json_path: str) -> "Configuration": + """Loads a configuration from a JSON file.""" + log.info(f"Loading configuration from {json_path}...") + json_file = Path(json_path) + if not json_file.exists(): + log.critical(f"Config file not found: {json_path}") + raise FileNotFoundError(f"Config file not found: {json_path}") + + with open(json_file, "r", encoding="utf-8") as f: + config_dict = json.load(f) + + if "CuMind" not in config_dict: + log.critical("Root key 'CuMind' not found in config file.") + raise ValueError("Root key 'CuMind' not found in config file.") + + config_params = config_dict["CuMind"] + + # Create section configs + section_configs = {} + for section, params in config_params.items(): + if section == "representation": + section_configs[section] = RepresentationConfig(**params) + elif section == "dynamics": + section_configs[section] = DynamicsConfig(**params) + elif section == "prediction": + section_configs[section] = PredictionConfig(**params) + elif section == "memory": + section_configs[section] = MemoryConfig(**params) + elif section == "training": + section_configs[section] = TrainingConfig(**params) + elif section == "mcts": + section_configs[section] = MCTSConfig(**params) + elif section == "env": + section_configs[section] = EnvironmentConfig(**params) + elif section == "selfplay": + section_configs[section] = SelfPlayConfig(**params) + elif section == "dtypes": + section_configs[section] = DataTypesConfig(**params) + else: + section_configs[section] = params + + log.info("Configuration loaded successfully.") + return cls(**section_configs) + + def _to_json(self, json_path: str) -> None: + """Saves the configuration to a JSON file.""" + log.info(f"Saving configuration to {json_path}...") + json_file = Path(json_path) + json_file.parent.mkdir(parents=True, exist_ok=True) + + config_dict = dataclasses.asdict(self) + organized_config = {} + + for key, value in config_dict.items(): + if hasattr(value, "__dataclass_fields__"): + # It's a dataclass, convert to dict + organized_config[key] = dataclasses.asdict(value) + else: + organized_config[key] = value + + final_config = {"CuMind": organized_config} + + # Dump to string first + json_str = json.dumps(final_config, indent=2) + # Compact single-element lists: [\n 4\n] -> [4] + json_str = re.sub(r"\[\s*([\d.eE+-]+)\s*\]", r"[\1]", json_str) + + with open(json_file, "w", encoding="utf-8") as f: + f.write(json_str) + f.write("\n") + + log.info("Configuration saved successfully.") + + def validate(self) -> None: + """Validates the configuration parameters.""" + log.info("Validating configuration...") + + # Validate representation + if self.representation.hidden_dim <= 0: + raise ValueError(f"representation.hidden_dim must be positive, got {self.representation.hidden_dim}") + + # Validate environment + if self.env.action_space_size <= 0: + raise ValueError(f"env.action_space_size must be positive, got {self.env.action_space_size}") + if not self.env.observation_shape: + raise ValueError("env.observation_shape cannot be empty") + if len(self.env.observation_shape) not in [1, 3]: + raise ValueError(f"env.observation_shape must be 1D or 3D, got {len(self.env.observation_shape)}D") + + # Validate training + if self.training.learning_rate <= 0: + raise ValueError(f"training.learning_rate must be positive, got {self.training.learning_rate}") + if self.training.batch_size <= 0: + raise ValueError(f"training.batch_size must be positive, got {self.training.batch_size}") + + # Validate MCTS + if self.mcts.num_simulations <= 0: + raise ValueError(f"mcts.num_simulations must be positive, got {self.mcts.num_simulations}") + + # Validate data types + valid_model_dtypes = ["float32", "float16", "bfloat16"] + if self.dtypes.model not in valid_model_dtypes: + raise ValueError(f"dtypes.model must be one of {valid_model_dtypes}, got {self.dtypes.model}") + + valid_action_dtypes = ["int32", "int64"] + if self.dtypes.action not in valid_action_dtypes: + raise ValueError(f"dtypes.action must be one of {valid_action_dtypes}, got {self.dtypes.action}") + + valid_target_dtypes = ["float32", "float16", "bfloat16"] + if self.dtypes.target not in valid_target_dtypes: + raise ValueError(f"dtypes.target must be one of {valid_target_dtypes}, got {self.dtypes.target}") + + # Validate device + valid_devices = ["cpu", "gpu", "tpu"] + if self.device not in valid_devices: + raise ValueError(f"device must be one of {valid_devices}, got {self.device}") + + log.info("Configuration validation successful.") + + def __getattr__(self, field: str) -> Any: + """ + Custom attribute access for config fields. Raises a clear exception if the field does not exist. + This allows for runtime type checking and custom error messages for missing config fields. + """ + if field not in self.__dataclass_fields__: + raise AttributeError(f"Config has no field '{field}' (available fields: {list(self.__dataclass_fields__.keys())})") + return self.__getattribute__(field) + + @classmethod + def load(cls, path: str) -> None: + """Load configuration from a JSON file and set as singleton instance.""" + global cfg + cfg = cls._from_json(path) + + @classmethod + def save(cls, path: str) -> None: + """Save configuration to a JSON file.""" + global cfg + if cfg is None: + raise RuntimeError("Configuration not loaded. Call Config.load(path) or Config.set(config) first.") + cfg._to_json(path) + + @classmethod + def set(cls, config: "Configuration") -> None: + """Set the singleton config instance directly.""" + global cfg + cfg = config + + @classmethod + def get(cls) -> "Configuration": + """Get the current singleton config instance, or raise if not set.""" + global cfg + if cfg is None: + raise RuntimeError("Configuration not loaded. Call Config.load(path) or Config.set(config) first.") + return cfg + + +# Singleton instance for configuration +cfg: Configuration = Configuration() diff --git a/src/cumind/utils/resolve.py b/src/cumind/utils/resolve.py new file mode 100644 index 0000000..2e3a652 --- /dev/null +++ b/src/cumind/utils/resolve.py @@ -0,0 +1,11 @@ +"""Dynamic import utilities for CuMind.""" + +import importlib +from typing import Any + + +def resolve(dotted: str) -> Any: + """Import and return a class/function from a dotted string path.""" + module, attr = dotted.rsplit('.', 1) + mod = importlib.import_module(module) + return getattr(mod, attr) From 205a7a421a7da19ec2e20e50fc1e86107ddc39c4 Mon Sep 17 00:00:00 2001 From: t4r3k <142579274+machine-moon@users.noreply.github.com> Date: Thu, 17 Jul 2025 18:09:30 -0400 Subject: [PATCH 06/19] config update --- src/cumind/utils/config.py | 322 +++++++++++++++++++---------------- tests/test_config.py | 335 +++++++++++++++++++++++++++++++++++++ 2 files changed, 513 insertions(+), 144 deletions(-) create mode 100644 tests/test_config.py diff --git a/src/cumind/utils/config.py b/src/cumind/utils/config.py index 03f36bf..58fe067 100644 --- a/src/cumind/utils/config.py +++ b/src/cumind/utils/config.py @@ -4,70 +4,97 @@ import inspect import json import re +import threading from pathlib import Path -from typing import Any, Tuple +from typing import Any, Optional, Tuple, Type, Union, get_args, get_origin +from typing import Dict as DictType + +from flax import nnx from .logger import log +from .prng import key from .resolve import resolve @dataclasses.dataclass(frozen=True) -class RepresentationConfig: +class HotSwappableConfig: + """Base class for hot-swappable module configurations.""" + + type: Optional[Union[str, Type[Any]]] = None + + def __call__(self, *args, **kwargs): + if self.type is None: + raise ValueError("Type must be specified for hot-swappable config") + + cls = resolve(self.type) if isinstance(self.type, str) else self.type + + field_params = {k: v for k, v in dataclasses.asdict(self).items() if k != "type"} + extra_params = self.extras() + all_params = {**field_params, **extra_params} + + # Get constructor signature to know which parameters to pass + sig = inspect.signature(cls.__init__) + constructor_params = list(sig.parameters.keys()) + filtered_params = {k: v for k, v in all_params.items() if k in constructor_params and k != "self"} + + try: + return cls(*args, **filtered_params, **kwargs) + except Exception as e: + log.exception(f"Failed to instantiate {cls.__name__} with params: {filtered_params}. {e}") + raise + + def extras(self) -> DictType[str, Any]: + """Override this in subclasses to add global cfg values.""" + return {} + + +@dataclasses.dataclass(frozen=True) +class RepresentationConfig(HotSwappableConfig): """Configuration for representation network.""" - type: str = "cumind.core.resnet.ResNet" - hidden_dim: int = 128 + type: Optional[Union[str, Type[Any]]] = "cumind.core.resnet.ResNet" num_blocks: int = 2 conv_channels: int = 32 + hidden_dim: int = 128 - def __call__(self, **kwargs): - """Instantiate the representation network.""" - cls = resolve(self.type) - params = {k: v for k, v in dataclasses.asdict(self).items() if k != "type"} - sig = inspect.signature(cls) - valid = {k: v for k, v in {**params, **kwargs}.items() if k in sig.parameters} - return cls(**valid) + def extras(self) -> DictType[str, Any]: + input_shape = cfg.env.observation_shape + rngs = nnx.Rngs(params=key()) + return locals() @dataclasses.dataclass(frozen=True) -class DynamicsConfig: +class DynamicsConfig(HotSwappableConfig): """Configuration for dynamics network.""" - type: str = "cumind.core.mlp.MLPWithEmbedding" - hidden_dim: int = 128 + type: Optional[Union[str, Type[Any]]] = "cumind.core.mlp.MLPWithEmbedding" num_blocks: int = 2 - def __call__(self, **kwargs): - """Instantiate the representation network.""" - cls = resolve(self.type) - params = {k: v for k, v in dataclasses.asdict(self).items() if k != "type"} - sig = inspect.signature(cls) - valid = {k: v for k, v in {**params, **kwargs}.items() if k in sig.parameters} - return cls(**valid) + def extras(self) -> DictType[str, Any]: + hidden_dim = cfg.networks.hidden_dim + embedding_size = cfg.env.action_space_size + rngs = nnx.Rngs(params=key()) + return locals() @dataclasses.dataclass(frozen=True) -class PredictionConfig: +class PredictionConfig(HotSwappableConfig): """Configuration for prediction network.""" - type: str = "cumind.core.mlp.MLPDual" - hidden_dim: int = 128 - num_blocks: int = 2 + type: Optional[Union[str, Type[Any]]] = "cumind.core.mlp.MLPDual" - def __call__(self, **kwargs): - """Instantiate the representation network.""" - cls = resolve(self.type) - params = {k: v for k, v in dataclasses.asdict(self).items() if k != "type"} - sig = inspect.signature(cls) - valid = {k: v for k, v in {**params, **kwargs}.items() if k in sig.parameters} - return cls(**valid) + def extras(self) -> DictType[str, Any]: + hidden_dim = cfg.networks.hidden_dim + output_size = cfg.env.action_space_size + rngs = nnx.Rngs(params=key()) + return locals() @dataclasses.dataclass(frozen=True) -class MemoryConfig: +class MemoryConfig(HotSwappableConfig): """Configuration for memory buffer.""" - type: str = "cumind.data.memory.MemoryBuffer" + type: Optional[Union[str, Type[Any]]] = "cumind.data.memory.MemoryBuffer" capacity: int = 2000 min_size: int = 100 min_pct: float = 0.1 @@ -75,13 +102,15 @@ class MemoryConfig: per_epsilon: float = 1e-6 per_beta: float = 0.4 - def __call__(self, **kwargs): - """Instantiate the representation network.""" - cls = resolve(self.type) - params = {k: v for k, v in dataclasses.asdict(self).items() if k != "type"} - sig = inspect.signature(cls) - valid = {k: v for k, v in {**params, **kwargs}.items() if k in sig.parameters} - return cls(**valid) + def extras(self) -> DictType[str, Any]: + return {} + + +@dataclasses.dataclass(frozen=True) +class GeneralNetworksConfig: + """Configuration for general networks.""" + + hidden_dim: int = 128 @dataclasses.dataclass(frozen=True) @@ -138,6 +167,7 @@ class DataTypesConfig: @dataclasses.dataclass(frozen=True) class Configuration: + _set_lock = threading.RLock() """Main configuration for CuMind.""" # Hot-swappable modules @@ -147,6 +177,7 @@ class Configuration: memory: MemoryConfig = dataclasses.field(default_factory=MemoryConfig) # Other sections + networks: GeneralNetworksConfig = dataclasses.field(default_factory=GeneralNetworksConfig) training: TrainingConfig = dataclasses.field(default_factory=TrainingConfig) mcts: MCTSConfig = dataclasses.field(default_factory=MCTSConfig) env: EnvironmentConfig = dataclasses.field(default_factory=EnvironmentConfig) @@ -157,81 +188,48 @@ class Configuration: device: str = "cpu" seed: int = 42 - @classmethod - def _from_json(cls, json_path: str) -> "Configuration": - """Loads a configuration from a JSON file.""" - log.info(f"Loading configuration from {json_path}...") - json_file = Path(json_path) - if not json_file.exists(): - log.critical(f"Config file not found: {json_path}") - raise FileNotFoundError(f"Config file not found: {json_path}") - - with open(json_file, "r", encoding="utf-8") as f: - config_dict = json.load(f) - - if "CuMind" not in config_dict: - log.critical("Root key 'CuMind' not found in config file.") - raise ValueError("Root key 'CuMind' not found in config file.") + def __post_init__(self): + key.seed(self.seed) + self._validate() - config_params = config_dict["CuMind"] - - # Create section configs - section_configs = {} - for section, params in config_params.items(): - if section == "representation": - section_configs[section] = RepresentationConfig(**params) - elif section == "dynamics": - section_configs[section] = DynamicsConfig(**params) - elif section == "prediction": - section_configs[section] = PredictionConfig(**params) - elif section == "memory": - section_configs[section] = MemoryConfig(**params) - elif section == "training": - section_configs[section] = TrainingConfig(**params) - elif section == "mcts": - section_configs[section] = MCTSConfig(**params) - elif section == "env": - section_configs[section] = EnvironmentConfig(**params) - elif section == "selfplay": - section_configs[section] = SelfPlayConfig(**params) - elif section == "dtypes": - section_configs[section] = DataTypesConfig(**params) - else: - section_configs[section] = params - - log.info("Configuration loaded successfully.") - return cls(**section_configs) - - def _to_json(self, json_path: str) -> None: - """Saves the configuration to a JSON file.""" - log.info(f"Saving configuration to {json_path}...") - json_file = Path(json_path) - json_file.parent.mkdir(parents=True, exist_ok=True) - - config_dict = dataclasses.asdict(self) - organized_config = {} - - for key, value in config_dict.items(): - if hasattr(value, "__dataclass_fields__"): - # It's a dataclass, convert to dict - organized_config[key] = dataclasses.asdict(value) - else: - organized_config[key] = value - - final_config = {"CuMind": organized_config} - - # Dump to string first - json_str = json.dumps(final_config, indent=2) - # Compact single-element lists: [\n 4\n] -> [4] - json_str = re.sub(r"\[\s*([\d.eE+-]+)\s*\]", r"[\1]", json_str) + def __getattr__(self, field: str) -> Any: + """Custom attribute access for config fields with clear error if missing.""" + if field not in self.__dataclass_fields__: + log.critical(f"Config has no field '{field}' (available fields: {list(self.__dataclass_fields__.keys())})") + raise AttributeError(f"Config has no field '{field}' (available fields: {list(self.__dataclass_fields__.keys())})") + return self.__getattribute__(field) - with open(json_file, "w", encoding="utf-8") as f: - f.write(json_str) - f.write("\n") + @classmethod + def load(cls, path: str) -> None: + """Load configuration from a JSON file and set as singleton instance. Automatically validates after loading.""" + global cfg + log.info(f"Loading configuration from {path}") + cfg = cls._from_json(path) + try: + cfg._validate() + log.info("Configuration validated successfully after loading.") + except Exception as e: + log.exception(f"Configuration validation failed after loading: {e}") + raise - log.info("Configuration saved successfully.") + @classmethod + def save(cls, path: str) -> None: + """Save configuration to a JSON file.""" + global cfg + log.info(f"Saving configuration to {path}") + cfg._to_json(path) + log.info("Configuration saved successfully") - def validate(self) -> None: + @classmethod + def set(cls, config: "Configuration") -> None: + """Set the singleton config instance directly, thread-safe.""" + log.debug("Setting new configuration instance") + with cls._set_lock: + global cfg + cfg = config + log.info("Configuration instance updated successfully") + + def _validate(self) -> None: """Validates the configuration parameters.""" log.info("Validating configuration...") @@ -277,42 +275,78 @@ def validate(self) -> None: log.info("Configuration validation successful.") - def __getattr__(self, field: str) -> Any: - """ - Custom attribute access for config fields. Raises a clear exception if the field does not exist. - This allows for runtime type checking and custom error messages for missing config fields. - """ - if field not in self.__dataclass_fields__: - raise AttributeError(f"Config has no field '{field}' (available fields: {list(self.__dataclass_fields__.keys())})") - return self.__getattribute__(field) - @classmethod - def load(cls, path: str) -> None: - """Load configuration from a JSON file and set as singleton instance.""" - global cfg - cfg = cls._from_json(path) + def _from_json(cls, json_path: str) -> "Configuration": + """Loads a configuration from a JSON file.""" - @classmethod - def save(cls, path: str) -> None: - """Save configuration to a JSON file.""" - global cfg - if cfg is None: - raise RuntimeError("Configuration not loaded. Call Config.load(path) or Config.set(config) first.") - cfg._to_json(path) + def _resolve_field_type(field_def): + """Resolve the real type for a dataclass field, handling Optional and generics (Python 3.12+).""" + t = field_def.type + origin = get_origin(t) + if origin is Union: + args = get_args(t) + non_none = [a for a in args if a is not type(None)] + if non_none: + return non_none[0] + return t - @classmethod - def set(cls, config: "Configuration") -> None: - """Set the singleton config instance directly.""" - global cfg - cfg = config + log.info(f"Loading configuration from {json_path}...") + json_file = Path(json_path) + if not json_file.exists(): + log.critical(f"Config file not found: {json_path}") + raise FileNotFoundError(f"Config file not found: {json_path}") - @classmethod - def get(cls) -> "Configuration": - """Get the current singleton config instance, or raise if not set.""" - global cfg - if cfg is None: - raise RuntimeError("Configuration not loaded. Call Config.load(path) or Config.set(config) first.") - return cfg + with open(json_file, "r", encoding="utf-8") as f: + config_dict = json.load(f) + + if "CuMind" not in config_dict: + log.critical("Root key 'CuMind' not found in config file.") + raise ValueError("Root key 'CuMind' not found in config file.") + + config_params = config_dict["CuMind"] + + # Automatically instantiate all dataclass fields from JSON + section_configs = {} + for field_name, field_def in cls.__dataclass_fields__.items(): + field_type = _resolve_field_type(field_def) + if field_name in config_params: + if isinstance(field_type, type) and dataclasses.is_dataclass(field_type): + section_configs[field_name] = field_type(**config_params[field_name]) + else: + section_configs[field_name] = config_params[field_name] + else: + log.warning(f"Config field '{field_name}' not found in config file. Using default value.") + # If a field is missing from the config file, dataclasses will use the default_factory/default value. + log.info("Configuration loaded successfully.") + return cls(**section_configs) + + def _to_json(self, json_path: str) -> None: + """Saves the configuration to a JSON file.""" + log.info(f"Saving configuration to {json_path}...") + json_file = Path(json_path) + json_file.parent.mkdir(parents=True, exist_ok=True) + + config_dict = dataclasses.asdict(self) + organized_config = {} + + for k, v in config_dict.items(): + if hasattr(v, "__dataclass_fields__"): + organized_config[k] = dataclasses.asdict(v) + else: + organized_config[k] = v + + final_config = {"CuMind": organized_config} + + # Dump to string first + json_str = json.dumps(final_config, indent=2) + # Compact single-element lists: [\n 4\n] -> [4] + json_str = re.sub(r"\[\s*([\d.eE+-]+)\s*\]", r"[\1]", json_str) + + with open(json_file, "w", encoding="utf-8") as f: + f.write(json_str) + f.write("\n") + + log.info("Configuration saved successfully.") # Singleton instance for configuration diff --git a/tests/test_config.py b/tests/test_config.py new file mode 100644 index 0000000..f34541f --- /dev/null +++ b/tests/test_config.py @@ -0,0 +1,335 @@ +"""Test suite for CuMind configuration system.""" + +from unittest.mock import Mock, patch + +import pytest + +from src.cumind.core.mlp import MLPDual, MLPWithEmbedding +from src.cumind.core.resnet import ResNet +from src.cumind.data.memory import MemoryBuffer +from src.cumind.utils.config import ( + Configuration, + DynamicsConfig, + HotSwappableConfig, + MemoryConfig, + PredictionConfig, + RepresentationConfig, + cfg, +) +from src.cumind.utils.prng import key + + +class TestHotSwappableConfig: + """Test the base HotSwappableConfig class.""" + + def test_hot_swappable_config_init(self): + """Test initialization of HotSwappableConfig.""" + config = HotSwappableConfig(type="test.module.Class") + assert config.type == "test.module.Class" + + def test_hot_swappable_config_none_type(self): + """Test that None type raises error on call.""" + config = HotSwappableConfig(type=None) + with pytest.raises(ValueError, match="Type must be specified"): + config() + + def test_hot_swappable_config_extras_default(self): + """Test that extras() returns empty dict by default.""" + config = HotSwappableConfig(type="test.module.Class") + assert config.extras() == {} + + +class TestRepresentationConfig: + """Test RepresentationConfig functionality.""" + + def test_representation_config_init(self): + """Test RepresentationConfig initialization.""" + config = RepresentationConfig() + assert config.type == "cumind.core.resnet.ResNet" + assert config.num_blocks == 2 + assert config.conv_channels == 32 + assert config.hidden_dim == 128 + + def test_representation_config_extras(self): + """Test RepresentationConfig extras method.""" + config = RepresentationConfig() + extras = config.extras() + + assert "input_shape" in extras + assert "rngs" in extras + assert extras["input_shape"] == cfg.env.observation_shape + + def test_representation_config_instantiation(self): + """Test that RepresentationConfig can instantiate ResNet.""" + key.seed(cfg.seed) + config = RepresentationConfig() + network = config() + + # Use type() instead of isinstance() for nnx modules + assert type(network).__name__ == "ResNet" + assert network.num_blocks == 2 + assert network.conv_channels == 32 + assert network.hidden_dim == 128 + + def test_representation_config_custom_params(self): + """Test RepresentationConfig with custom parameters.""" + config = RepresentationConfig(num_blocks=5, conv_channels=64, hidden_dim=256) + key.seed(cfg.seed) + network = config() + + assert network.num_blocks == 5 + assert network.conv_channels == 64 + assert network.hidden_dim == 256 + + +class TestDynamicsConfig: + """Test DynamicsConfig functionality.""" + + def test_dynamics_config_init(self): + """Test DynamicsConfig initialization.""" + config = DynamicsConfig() + assert config.type == "cumind.core.mlp.MLPWithEmbedding" + assert config.num_blocks == 2 + + def test_dynamics_config_extras(self): + """Test DynamicsConfig extras method.""" + config = DynamicsConfig() + extras = config.extras() + + assert "hidden_dim" in extras + assert "embedding_size" in extras + assert "rngs" in extras + assert extras["hidden_dim"] == cfg.networks.hidden_dim + assert extras["embedding_size"] == cfg.env.action_space_size + + def test_dynamics_config_instantiation(self): + """Test that DynamicsConfig can instantiate MLPWithEmbedding.""" + key.seed(cfg.seed) + config = DynamicsConfig() + network = config() + + # Use type() instead of isinstance() for nnx modules + assert type(network).__name__ == "MLPWithEmbedding" + assert network.num_blocks == 2 + assert network.hidden_dim == cfg.networks.hidden_dim + assert network.embedding_size == cfg.env.action_space_size + + def test_dynamics_config_custom_params(self): + """Test DynamicsConfig with custom parameters.""" + config = DynamicsConfig(num_blocks=4) + key.seed(cfg.seed) + network = config() + + assert network.num_blocks == 4 + + +class TestPredictionConfig: + """Test PredictionConfig functionality.""" + + def test_prediction_config_init(self): + """Test PredictionConfig initialization.""" + config = PredictionConfig() + assert config.type == "cumind.core.mlp.MLPDual" + + def test_prediction_config_extras(self): + """Test PredictionConfig extras method.""" + config = PredictionConfig() + extras = config.extras() + + assert "hidden_dim" in extras + assert "output_size" in extras + assert "rngs" in extras + assert extras["hidden_dim"] == cfg.networks.hidden_dim + assert extras["output_size"] == cfg.env.action_space_size + + def test_prediction_config_instantiation(self): + """Test that PredictionConfig can instantiate MLPDual.""" + key.seed(cfg.seed) + config = PredictionConfig() + network = config() + + # Use type() instead of isinstance() for nnx modules + assert type(network).__name__ == "MLPDual" + assert network.hidden_dim == cfg.networks.hidden_dim + assert network.output_size == cfg.env.action_space_size + + +class TestMemoryConfig: + """Test MemoryConfig functionality.""" + + def test_memory_config_init(self): + """Test MemoryConfig initialization.""" + config = MemoryConfig() + assert config.type == "cumind.data.memory.MemoryBuffer" + assert config.capacity == 2000 + assert config.min_size == 100 + assert config.min_pct == 0.1 + + def test_memory_config_extras(self): + """Test MemoryConfig extras method.""" + config = MemoryConfig() + extras = config.extras() + + # MemoryConfig extras should be empty since dataclass fields are handled by base class + for item in extras: + print(item) + assert extras == {} + + def test_memory_config_instantiation(self): + """Test that MemoryConfig can instantiate MemoryBuffer.""" + config = MemoryConfig() + memory = config() + + # Use type() instead of isinstance() for consistency + assert type(memory).__name__ == "MemoryBuffer" + assert memory.capacity == 2000 + + def test_memory_config_custom_params(self): + """Test MemoryConfig with custom parameters.""" + config = MemoryConfig(capacity=5000, min_size=200) + memory = config() + + assert memory.capacity == 5000 + # min_size is not passed to constructor, only used for configuration + + +class TestConfigurationIntegration: + """Test integration of all config components.""" + + def test_configuration_singleton(self): + """Test that cfg is a singleton instance.""" + assert isinstance(cfg, Configuration) + # Use the global cfg instance directly + assert cfg is cfg + + def test_configuration_hot_swappable_modules(self): + """Test that all hot-swappable modules are properly configured.""" + assert isinstance(cfg.representation, RepresentationConfig) + assert isinstance(cfg.dynamics, DynamicsConfig) + assert isinstance(cfg.prediction, PredictionConfig) + assert isinstance(cfg.memory, MemoryConfig) + + def test_network_construction_integration(self): + """Test complete network construction using config.""" + key.seed(cfg.seed) + + # Test that all networks can be constructed + representation = cfg.representation() + dynamics = cfg.dynamics() + prediction = cfg.prediction() + memory = cfg.memory() + + # Use type() instead of isinstance() for nnx modules + assert type(representation).__name__ == "ResNet" + assert type(dynamics).__name__ == "MLPWithEmbedding" + assert type(prediction).__name__ == "MLPDual" + assert type(memory).__name__ == "MemoryBuffer" + + def test_configuration_validation(self): + """Test that configuration validation works.""" + # This should not raise any errors + cfg._validate() + + +class TestDynamicResolution: + """Test dynamic module resolution functionality.""" + + def test_string_type_resolution(self): + """Test that string types are properly resolved.""" + config = RepresentationConfig(type="cumind.core.resnet.ResNet") + key.seed(cfg.seed) + network = config() + assert type(network).__name__ == "ResNet" + + def test_class_type_direct_usage(self): + """Test that class types can be used directly.""" + config = RepresentationConfig(type=ResNet) + key.seed(cfg.seed) + network = config() + assert type(network).__name__ == "ResNet" + + def test_resolve_not_called_for_class_types(self): + """Test that resolve is not called for class types.""" + with patch("src.cumind.utils.resolve.resolve") as mock_resolve: + config = RepresentationConfig(type=ResNet) + key.seed(cfg.seed) + config() + mock_resolve.assert_not_called() + + +class TestParameterFiltering: + """Test parameter filtering functionality.""" + + def test_parameter_filtering_removes_unused(self): + """Test that unused parameters are filtered out.""" + + # Create a mock class with specific constructor signature + class MockClass: + def __init__(self, param1, param2): + self.param1 = param1 + self.param2 = param2 + + # Create a custom config class that inherits from RepresentationConfig + class CustomConfig(RepresentationConfig): + def extras(self): + return {"param1": "value1", "param2": "value2", "unused_param": "should_be_filtered"} + + config = CustomConfig(type=MockClass) + instance = config() + assert hasattr(instance, "param1") + assert hasattr(instance, "param2") + assert not hasattr(instance, "unused_param") + + def test_self_parameter_filtered(self): + """Test that 'self' parameter is always filtered out.""" + + class MockClass: + def __init__(self, param1): + self.param1 = param1 + + # Create a custom config class that inherits from RepresentationConfig + class CustomConfig(RepresentationConfig): + def extras(self): + return {"param1": "value1", "self": "should_be_filtered"} + + config = CustomConfig(type=MockClass) + instance = config() + assert hasattr(instance, "param1") + assert not hasattr(instance, "self") + + +class TestErrorHandling: + """Test error handling in configuration system.""" + + def test_invalid_type_string(self): + """Test error handling for invalid type strings.""" + config = RepresentationConfig(type="invalid.module.Class") + key.seed(cfg.seed) + with pytest.raises(ImportError): + config() + + def test_missing_required_parameters(self): + """Test error handling for missing required parameters.""" + + class MockClass: + def __init__(self, required_param): + self.required_param = required_param + + # Create a custom config class that inherits from RepresentationConfig + class CustomConfig(RepresentationConfig): + def extras(self): + return {} # No parameters provided + + config = CustomConfig(type=MockClass) + with pytest.raises(TypeError): + config() + + def test_none_type_error(self): + """Test error handling for None type.""" + config = HotSwappableConfig(type=None) + with pytest.raises(ValueError, match="Type must be specified"): + config() + + +if __name__ == "__main__": + pytest.main([__file__]) From 2e8b022e04facf691ba599563c4dabb2d013dfde Mon Sep 17 00:00:00 2001 From: t4r3k <142579274+machine-moon@users.noreply.github.com> Date: Thu, 17 Jul 2025 21:47:06 -0400 Subject: [PATCH 07/19] refactored codebase for cfg --- configuration.json | 12 +++---- src/cartpole.py | 12 ++++--- src/cumind/agent/agent.py | 28 ++++++--------- src/cumind/agent/trainer.py | 56 +++++++++++++---------------- src/cumind/cli.py | 15 ++++---- src/cumind/core/mcts.py | 28 +++++++-------- src/cumind/core/resnet.py | 1 + src/cumind/data/memory.py | 4 +++ src/cumind/data/self_play.py | 5 +-- src/cumind/runner.py | 19 +++++----- src/cumind/utils/logger.py | 15 ++++---- src/cumind/utils/resolve.py | 2 +- tests/test_agent.py | 51 ++++---------------------- tests/test_basic.py | 70 ++++++++++++------------------------ tests/test_config.py | 13 ++++--- tests/test_data.py | 46 +++++++++--------------- tests/test_mcts.py | 68 +++++++++++++++-------------------- tests/test_network.py | 2 -- 18 files changed, 170 insertions(+), 277 deletions(-) diff --git a/configuration.json b/configuration.json index af8be76..5c51637 100644 --- a/configuration.json +++ b/configuration.json @@ -2,19 +2,16 @@ "CuMind": { "representation": { "type": "cumind.core.resnet.ResNet", - "hidden_dim": 128, "num_blocks": 2, - "conv_channels": 32 + "conv_channels": 32, + "hidden_dim": 128 }, "dynamics": { "type": "cumind.core.mlp.MLPWithEmbedding", - "hidden_dim": 128, "num_blocks": 2 }, "prediction": { - "type": "cumind.core.mlp.MLPDual", - "hidden_dim": 128, - "num_blocks": 2 + "type": "cumind.core.mlp.MLPDual" }, "memory": { "type": "cumind.data.memory.MemoryBuffer", @@ -25,6 +22,9 @@ "per_epsilon": 1e-06, "per_beta": 0.4 }, + "networks": { + "hidden_dim": 128 + }, "training": { "optimizer": "optax.adamw", "batch_size": 64, diff --git a/src/cartpole.py b/src/cartpole.py index b84d1da..b901c54 100644 --- a/src/cartpole.py +++ b/src/cartpole.py @@ -1,15 +1,19 @@ """Basic training example for CuMind with CartPole.""" -from cumind.config import Config from cumind.runner import inference, train +from cumind.utils.config import cfg +from cumind.utils.logger import log def main() -> None: """Main function for running the CartPole example.""" # Loads whatever configuration in config.py - config = Config() - ckpt = train(config) - inference(config, ckpt) + cfg.load("configuration.json") + log.set_level("DEBUG") + # log.set_file(cfg.logging.level) + log.open() + ckpt = train() + inference(ckpt) if __name__ == "__main__": diff --git a/src/cumind/agent/agent.py b/src/cumind/agent/agent.py index 1e8e365..661122e 100644 --- a/src/cumind/agent/agent.py +++ b/src/cumind/agent/agent.py @@ -1,6 +1,6 @@ """CuMind agent implementation.""" -from typing import Any, Dict, Tuple +from typing import Any, Dict, Optional, Tuple import jax import jax.numpy as jnp @@ -8,11 +8,9 @@ import optax # type: ignore from flax import nnx -from ..config import Config from ..core.mcts import MCTS -from ..core.mlp import MLPDual, MLPWithEmbedding from ..core.network import CuMindNetwork -from ..core.resnet import ResNet +from ..utils.config import cfg from ..utils.logger import log from ..utils.prng import key @@ -20,35 +18,30 @@ class Agent: """CuMind agent for training and inference.""" - def __init__(self, config: Config, existing_state: Dict[str, Any] | None = None): + def __init__(self, existing_state: Optional[Dict[str, Any]] = None): """Initialize CuMind agent with network, optimizer, and MCTS. Args: - config: Config with network architecture and training parameters. existing_state: Optional dictionary to load agent state from. """ log.info("Initializing CuMind agent...") - self.config = config - self.device = jax.devices(config.device)[0] + self.device = jax.devices(cfg.device)[0] log.info(f"Using device: {self.device}") - log.info(f"Creating CuMindNetwork with observation shape {config.env_observation_shape} and action space size {config.env_action_space_size}") - key.seed(config.seed) + log.info(f"Creating CuMindNetwork with observation shape {cfg.env.observation_shape} and action space size {cfg.env.action_space_size}") + key.seed(cfg.seed) rngs = nnx.Rngs(params=key()) with jax.default_device(self.device): - representation_network = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) - dynamics_network = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) - prediction_network = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) - self.network = CuMindNetwork(representation_network=representation_network, dynamics_network=dynamics_network, prediction_network=prediction_network, rngs=rngs) + self.network = CuMindNetwork(representation_network=cfg.representation(), dynamics_network=cfg.dynamics(), prediction_network=cfg.prediction(), rngs=rngs) log.info("Creating target network.") self.target_network = nnx.clone(self.network) - log.info(f"Setting up AdamW optimizer with learning rate {config.training_learning_rate} and weight decay {config.training_weight_decay}") - self.optimizer = optax.adamw(learning_rate=config.training_learning_rate, weight_decay=config.training_weight_decay) + log.info(f"Setting up AdamW optimizer with learning rate {cfg.training.learning_rate} and weight decay {cfg.training.weight_decay}") + self.optimizer = optax.adamw(learning_rate=cfg.training.learning_rate, weight_decay=cfg.training.weight_decay) if existing_state: log.info("Loading agent state from existing state.") @@ -57,8 +50,7 @@ def __init__(self, config: Config, existing_state: Dict[str, Any] | None = None) log.info("Initializing new optimizer state.") self.optimizer_state = self.optimizer.init(nnx.state(self.network, nnx.Param)) - log.info("Initializing MCTS.") - self.mcts = MCTS(self.network, config) + self.mcts = MCTS(self.network) log.info("Agent initialization complete.") def select_action(self, observation: np.ndarray, training: bool = False) -> Tuple[int, np.ndarray]: diff --git a/src/cumind/agent/trainer.py b/src/cumind/agent/trainer.py index 24aa667..53da9d0 100644 --- a/src/cumind/agent/trainer.py +++ b/src/cumind/agent/trainer.py @@ -11,11 +11,11 @@ from flax import nnx from tqdm import tqdm # type: ignore -from ..config import Config from ..core.network import CuMindNetwork from ..data.memory import Memory from ..data.self_play import SelfPlay from ..utils.checkpoint import load_checkpoint, save_checkpoint +from ..utils.config import cfg from ..utils.logger import log from .agent import Agent @@ -23,20 +23,17 @@ class Trainer: """Orchestrates the training process, including sampling, updates, and logging.""" - def __init__(self, agent: Agent, memory: Memory, config: Config): + def __init__(self, agent: Agent, memory: Memory): """Initializes the Trainer. Args: agent: The agent to train. - buffer: The memory buffer for sampling training data. - config: The configuration object. - env_name: The name for the environment, used for creating checkpoint directories. + memory: The memory buffer for sampling training data. """ - log.info(f"Initializing trainer for environment: {config.env_name}") + log.info(f"Initializing trainer for environment: {cfg.env.name}") self.agent = agent self.memory = memory - self.config = config timestamp = datetime.now().strftime("%Y%m%d-%H%M%S") - self.checkpoint_dir = f"{config.training_checkpoint_root_dir}/{config.env_name}/{timestamp}" + self.checkpoint_dir = f"{cfg.training.checkpoint_root_dir}/{cfg.env.name}/{timestamp}" os.makedirs(self.checkpoint_dir, exist_ok=True) log.info(f"Checkpoints will be saved to {self.checkpoint_dir}") self.train_step_count = 0 @@ -46,21 +43,20 @@ def run_training_loop(self, env: Any) -> None: Args: env: The environment to run episodes in. """ - num_episodes = self.config.training_num_episodes - train_frequency = self.config.training_train_frequency + num_episodes = cfg.training.num_episodes + train_frequency = cfg.training.train_frequency log.info(f"Starting training loop for {num_episodes} episodes with train frequency {train_frequency}.") loss_info = {} pbar = tqdm(range(1, num_episodes + 1), desc="Training Progress") - self_play = SelfPlay(self.config, self.agent, self.memory) + self_play = SelfPlay(self.agent, self.memory) for episode in pbar: episode_reward, episode_steps, _ = self_play.run_episode(env) - if episode > 0 and episode % train_frequency == 0: loss_info = self.train_step() - if self.train_step_count > 0 and self.train_step_count % self.config.training_target_update_frequency == 0: + if self.train_step_count > 0 and self.train_step_count % cfg.training.target_update_frequency == 0: log.info(f"Updating target network at training step {self.train_step_count}") self.agent.update_target_network() metrics = { @@ -70,23 +66,19 @@ def run_training_loop(self, env: Any) -> None: "Loss": float(loss_info.get("total_loss", 0)), "Memory": float(self.memory.get_pct()), } - log.info( - f"Episode {metrics['Episode']:3d}: Reward={metrics['Reward']:6.1f}, " - f"Length={metrics['Length']:3d}, Loss={metrics['Loss']:.4f}, " - f"Memory={metrics['Memory']:2.2f}" - ) + log.info(f"Episode {metrics['Episode']:3d}: Reward={metrics['Reward']:6.1f}, Length={metrics['Length']:3d}, Loss={metrics['Loss']:.4f}, Memory={metrics['Memory']:2.2f}") pbar.set_postfix(metrics) - if episode > 0 and episode % self.config.training_checkpoint_interval == 0: + if episode > 0 and episode % cfg.training.checkpoint_interval == 0: self.save_checkpoint(episode) def train_step(self) -> Dict[str, float]: """Performs one full training step, including sampling and network update.""" - if not self.memory.is_ready(self.config.memory_min_size, self.config.memory_min_pct): + if not self.memory.is_ready(cfg.memory.min_size, cfg.memory.min_pct): log.warning("Buffer not ready for training, skipping step.") return {} log.debug(f"Starting training step {self.train_step_count}...") - batch = self.memory.sample(self.config.training_batch_size) + batch = self.memory.sample(cfg.training.batch_size) observations, actions, targets = self._prepare_batch(batch) params = nnx.state(self.agent.network, nnx.Param) @@ -130,16 +122,16 @@ def _prepare_batch(self, batch: List[Any]) -> Tuple[chex.Array, chex.Array, Dict policy_targets.append(item[0]["policy"]) observations.append(item[0]["observation"]) - actions = [step["action"] for step in item[: self.config.selfplay_num_unroll_steps]] - rewards = [step["reward"] for step in item[: self.config.selfplay_num_unroll_steps]] + actions = [step["action"] for step in item[: cfg.selfplay.num_unroll_steps]] + rewards = [step["reward"] for step in item[: cfg.selfplay.num_unroll_steps]] action_sequences.append(actions) reward_targets.append(rewards) for seq in action_sequences: - while len(seq) < self.config.selfplay_num_unroll_steps: + while len(seq) < cfg.selfplay.num_unroll_steps: seq.append(0) for seq in reward_targets: - while len(seq) < self.config.selfplay_num_unroll_steps: + while len(seq) < cfg.selfplay.num_unroll_steps: seq.append(0.0) return ( @@ -154,8 +146,8 @@ def _prepare_batch(self, batch: List[Any]) -> Tuple[chex.Array, chex.Array, Dict def _compute_n_step_return(self, item: List[Dict[str, Any]]) -> float: """Computes the n-step return for a item, with bootstrapping.""" - n_steps = self.config.selfplay_td_steps - discount = self.config.selfplay_discount + n_steps = cfg.selfplay.td_steps + discount = cfg.selfplay.discount rewards = [step["reward"] for step in item] n_step_return = 0.0 @@ -180,7 +172,7 @@ def _compute_losses(self, network: CuMindNetwork, observations: chex.Array, acti current_states = hidden_states # Accumulate value loss, policy loss, and reward loss for each unroll step - for step in range(self.config.selfplay_num_unroll_steps): + for step in range(cfg.selfplay.num_unroll_steps): step_actions = jnp.asarray(actions)[:, step] next_states, pred_rewards, pred_policy_logits, pred_values = network.recurrent_inference(current_states, step_actions) @@ -197,10 +189,10 @@ def _compute_losses(self, network: CuMindNetwork, observations: chex.Array, acti current_states = next_states - if self.config.selfplay_num_unroll_steps > 0: - reward_loss /= self.config.selfplay_num_unroll_steps - value_loss /= self.config.selfplay_num_unroll_steps + 1 - policy_loss /= self.config.selfplay_num_unroll_steps + 1 + if cfg.selfplay.num_unroll_steps > 0: + reward_loss /= cfg.selfplay.num_unroll_steps + value_loss /= cfg.selfplay.num_unroll_steps + 1 + policy_loss /= cfg.selfplay.num_unroll_steps + 1 return {"value_loss": value_loss, "policy_loss": policy_loss, "reward_loss": reward_loss} diff --git a/src/cumind/cli.py b/src/cumind/cli.py index 8cb4224..71eed22 100644 --- a/src/cumind/cli.py +++ b/src/cumind/cli.py @@ -4,9 +4,9 @@ import os from typing import Optional -from .config import Config from .runner import inference, train from .utils.checkpoint import get_available_checkpoints +from .utils.config import cfg from .utils.logger import log @@ -60,21 +60,18 @@ def main() -> None: args = parse_arguments() config_path = args.config if not os.path.exists(config_path): - log.info(f"Default config not found at {config_path}. Using default parameters.") - config = Config() - config.to_json(config_path) + log.info(f"Default config not found at {config_path}. Creating default config there.") + cfg.save(config_path) else: - config = Config.from_json(config_path) + cfg.load(config_path) checkpoint_path = select_checkpoint() if checkpoint_path: log.info(f"Loading from checkpoint: {checkpoint_path}") - config.validate() - inference(config, checkpoint_path) + inference(checkpoint_path) else: log.info("Starting a new run.") - config.validate() - train(config) + train() log.close() diff --git a/src/cumind/core/mcts.py b/src/cumind/core/mcts.py index d52a67c..5006623 100644 --- a/src/cumind/core/mcts.py +++ b/src/cumind/core/mcts.py @@ -8,10 +8,10 @@ import jax.numpy as jnp import numpy as np +from ..utils.config import cfg from ..utils.logger import log if TYPE_CHECKING: - from ..config import Config from .network import CuMindNetwork @@ -101,16 +101,14 @@ def backup(self, value: float) -> None: class MCTS: """Monte Carlo Tree Search.""" - def __init__(self, network: "CuMindNetwork", config: "Config"): + def __init__(self, network: "CuMindNetwork"): """Initialize MCTS with a network and configuration. Args: network: The CuMind network for model-based rollouts. - config: CuMind configuration with MCTS parameters. """ - log.info("Initializing MCTS...") + log.info("Initializing MCTS.") self.network = network - self.config = config def search(self, root_hidden_state: chex.Array, add_noise: bool = True) -> np.ndarray: """Run MCTS and return action probabilities. @@ -122,25 +120,25 @@ def search(self, root_hidden_state: chex.Array, add_noise: bool = True) -> np.nd Returns: Action probability distribution. """ - log.debug(f"Starting MCTS search with {self.config.mcts_num_simulations} simulations. Noise: {add_noise}") + log.debug(f"Starting MCTS search with {cfg.mcts.num_simulations} simulations. Noise: {add_noise}") root_hidden_state_batched = jnp.expand_dims(root_hidden_state, 0) policy_logits, _ = self.network.prediction_network(root_hidden_state_batched) priors = jax.nn.softmax(policy_logits, axis=-1)[0] # Create root node and expand root = Node(1.0) - actions = list(range(self.config.env_action_space_size)) + actions = list(range(cfg.env.action_space_size)) root.expand(actions, priors, root_hidden_state) if add_noise: self._add_exploration_noise(root) - log.debug(f"Running {self.config.mcts_num_simulations} simulations...") - for _ in range(self.config.mcts_num_simulations): + log.debug(f"Running {cfg.mcts.num_simulations} simulations.") + for _ in range(cfg.mcts.num_simulations): self._simulate(root) # Extract visit counts and normalize - visit_counts = np.zeros(self.config.env_action_space_size) + visit_counts = np.zeros(cfg.env.action_space_size) for action, child in root.children.items(): visit_counts[action] = child.visit_count @@ -148,7 +146,7 @@ def search(self, root_hidden_state: chex.Array, add_noise: bool = True) -> np.nd total_visits = np.sum(visit_counts) if total_visits == 0: log.warning("MCTS search resulted in zero visits. Returning uniform probabilities.") - return np.ones(self.config.env_action_space_size) / self.config.env_action_space_size + return np.ones(cfg.env.action_space_size) / cfg.env.action_space_size action_probs = visit_counts / total_visits log.debug(f"MCTS search complete. Action probabilities: {action_probs}") @@ -166,7 +164,7 @@ def _simulate(self, root: Node) -> None: node = root while node.is_expanded(): - action = node.select_child(self.config.mcts_c_puct) + action = node.select_child(cfg.mcts.c_puct) path.append((node, action)) node = node.children[action] @@ -192,7 +190,7 @@ def _simulate(self, root: Node) -> None: priors_array = np.asarray(priors[0], dtype=np.float32) leaf_value = float(jnp.asarray(value)[0, 0]) - actions = list(range(self.config.env_action_space_size)) + actions = list(range(cfg.env.action_space_size)) node.expand(actions, priors_array, jnp.asarray(node.hidden_state)) log.debug(f"MCTS simulation: Expanded leaf node with value {leaf_value:.4f}.") @@ -215,8 +213,8 @@ def _add_exploration_noise(self, root: Node) -> None: # Sample Dirichlet noise num_actions = len(root.children) - noise = np.random.dirichlet([self.config.mcts_dirichlet_alpha] * num_actions) + noise = np.random.dirichlet([cfg.mcts.dirichlet_alpha] * num_actions) # Mix with existing priors for i, (_, child) in enumerate(root.children.items()): - child.prior = child.prior * (1 - self.config.mcts_exploration_fraction) + noise[i] * self.config.mcts_exploration_fraction + child.prior = child.prior * (1 - cfg.mcts.exploration_fraction) + noise[i] * cfg.mcts.exploration_fraction diff --git a/src/cumind/core/resnet.py b/src/cumind/core/resnet.py index 618b632..70cb7e6 100644 --- a/src/cumind/core/resnet.py +++ b/src/cumind/core/resnet.py @@ -22,6 +22,7 @@ class ResNet(nnx.Module): Raises: ValueError: If input_shape is not 1D (vector) or 3D (image). """ + def __init__(self, hidden_dim: int, input_shape: Tuple[int, ...], num_blocks: int, conv_channels: int, rngs: nnx.Rngs): self.input_shape = input_shape self.hidden_dim = hidden_dim diff --git a/src/cumind/data/memory.py b/src/cumind/data/memory.py index 73266c0..96319ba 100644 --- a/src/cumind/data/memory.py +++ b/src/cumind/data/memory.py @@ -88,6 +88,10 @@ def clear(self) -> None: class MemoryBuffer(Memory): """A standard memory buffer with uniform sampling.""" + def __init__(self, capacity: int): + """Initializes the memory buffer with capacity.""" + super().__init__(capacity) + def add(self, sample: List[Dict[str, Any]]) -> None: """Adds a sample to the buffer. diff --git a/src/cumind/data/self_play.py b/src/cumind/data/self_play.py index b0221d5..e7c337a 100644 --- a/src/cumind/data/self_play.py +++ b/src/cumind/data/self_play.py @@ -3,7 +3,6 @@ from typing import Any, Dict, List from ..agent.agent import Agent -from ..config import Config from ..utils.logger import log from .memory import Memory @@ -11,16 +10,14 @@ class SelfPlay: """Self-play runner: collects game data and stores it in a buffer.""" - def __init__(self, config: Config, agent: Agent, memory: Memory): + def __init__(self, agent: Agent, memory: Memory): """Initialize self-play runner. Args: - config: CuMind configuration. agent: Agent for self-play. memory: Buffer to store collected data. """ log.info("Initializing SelfPlay runner.") - self.config = config self.agent = agent self.memory = memory diff --git a/src/cumind/runner.py b/src/cumind/runner.py index 7c51fd0..7f9d021 100644 --- a/src/cumind/runner.py +++ b/src/cumind/runner.py @@ -6,19 +6,18 @@ from .agent.agent import Agent from .agent.trainer import Trainer -from .config import Config -from .data.memory import MemoryBuffer from .utils.checkpoint import load_checkpoint +from .utils.config import cfg from .utils.logger import log -def train(config: Config) -> str: +def train() -> str: """Train the agent on a given environment.""" - env = gym.make(config.env_name) + env = gym.make(cfg.env.name) - agent = Agent(config) - memory_buffer = MemoryBuffer(capacity=config.memory_capacity) - trainer = Trainer(agent, memory_buffer, config) + agent = Agent() + memory_buffer = cfg.memory() + trainer = Trainer(agent, memory_buffer) log.info(f"Checkpoints will be saved in: {trainer.checkpoint_dir}") log.info("Starting training...") @@ -29,7 +28,7 @@ def train(config: Config) -> str: return trainer.checkpoint_dir -def inference(config: Config, checkpoint_file: str) -> None: +def inference(checkpoint_file: str) -> None: """Run inference with a trained agent from a checkpoint.""" log.info("\nStarting inference...") @@ -39,11 +38,11 @@ def inference(config: Config, checkpoint_file: str) -> None: log.info(f"Loading agent from: {checkpoint_file}") - inference_agent = Agent(config) + inference_agent = Agent() state = load_checkpoint(checkpoint_file) inference_agent.load_state(state) - env = gym.make(config.env_name, render_mode="human") + env = gym.make(cfg.env.name, render_mode="human") for episode in range(500): obs, _ = env.reset() done = False diff --git a/src/cumind/utils/logger.py b/src/cumind/utils/logger.py index c524714..96a4021 100644 --- a/src/cumind/utils/logger.py +++ b/src/cumind/utils/logger.py @@ -178,15 +178,16 @@ def shutdown(self) -> None: class ColorFormatter(logging.Formatter): COLORS = { - 'DEBUG': '\033[36m', # Cyan - 'INFO': '\033[32m', # Green - 'WARNING': '\033[33m', # Yellow - 'ERROR': '\033[31m', # Red - 'CRITICAL': '\033[41m', # Red background + "DEBUG": "\033[36m", # Cyan + "INFO": "\033[32m", # Green + "WARNING": "\033[33m", # Yellow + "ERROR": "\033[31m", # Red + "CRITICAL": "\033[41m", # Red background } - RESET = '\033[0m' + RESET = "\033[0m" + def format(self, record): - color = self.COLORS.get(record.levelname, '') + color = self.COLORS.get(record.levelname, "") msg = super().format(record) return f"{color}{msg}{self.RESET}" diff --git a/src/cumind/utils/resolve.py b/src/cumind/utils/resolve.py index 2e3a652..a6c03e8 100644 --- a/src/cumind/utils/resolve.py +++ b/src/cumind/utils/resolve.py @@ -6,6 +6,6 @@ def resolve(dotted: str) -> Any: """Import and return a class/function from a dotted string path.""" - module, attr = dotted.rsplit('.', 1) + module, attr = dotted.rsplit(".", 1) mod = importlib.import_module(module) return getattr(mod, attr) diff --git a/tests/test_agent.py b/tests/test_agent.py index d29a6ea..b3eeff8 100644 --- a/tests/test_agent.py +++ b/tests/test_agent.py @@ -6,7 +6,7 @@ from flax import nnx from cumind.agent.agent import Agent -from cumind.config import Config +from cumind.utils.config import cfg class TestAgent: @@ -14,12 +14,8 @@ class TestAgent: def test_agent_initialization(self): """Test agent initialization.""" - config = Config() - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - agent = Agent(config) + agent = Agent() - assert agent.config == config assert hasattr(agent, "network") assert hasattr(agent, "optimizer") assert hasattr(agent, "optimizer_state") @@ -27,27 +23,19 @@ def test_agent_initialization(self): def test_select_action_training_mode(self): """Test action selection in training mode.""" - config = Config() - config.mcts_num_simulations = 5 - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - agent = Agent(config) + agent = Agent() obs = np.ones(4) action, policy = agent.select_action(obs, training=True) assert isinstance(action, (int, np.integer)) assert isinstance(policy, np.ndarray) - assert len(policy) == config.env_action_space_size + assert len(policy) == cfg.env.action_space_size assert np.isclose(np.sum(policy), 1.0) def test_select_action_evaluation_mode(self): """Test action selection in evaluation mode is deterministic.""" - config = Config() - config.mcts_num_simulations = 5 - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - agent = Agent(config) + agent = Agent() obs = np.ones(4) action1, _ = agent.select_action(obs, training=False) @@ -57,16 +45,13 @@ def test_select_action_evaluation_mode(self): def test_save_and_load_state(self): """Test saving and loading agent state.""" - config = Config() - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - agent1 = Agent(config) + agent1 = Agent() obs = np.ones(4) agent1.select_action(obs) # Run one step to have state state = agent1.save_state() - agent2 = Agent(config) + agent2 = Agent() agent2.load_state(state) # Check that network parameters are the same @@ -75,28 +60,6 @@ def test_save_and_load_state(self): chex.assert_trees_all_close(params1, params2, rtol=1e-6) - def test_agent_with_vector_observations(self): - """Test agent with 1D vector observations.""" - config = Config() - config.env_observation_shape = (8,) - config.env_action_space_size = 2 - agent = Agent(config) - - obs = np.ones(8) - action, _ = agent.select_action(obs, training=True) - assert isinstance(action, (int, np.integer)) - - def test_agent_with_image_observations(self): - """Test agent with 3D image observations (Atari).""" - config = Config() - config.env_observation_shape = (84, 84, 4) - config.env_action_space_size = 4 - agent = Agent(config) - - obs = np.ones((84, 84, 4)) - action, _ = agent.select_action(obs, training=True) - assert isinstance(action, (int, np.integer)) - if __name__ == "__main__": pytest.main([__file__]) diff --git a/tests/test_basic.py b/tests/test_basic.py index 450ec66..0c60220 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -6,11 +6,9 @@ from flax import nnx from cumind.agent.agent import Agent -from cumind.config import Config -from cumind.core.mlp import MLPDual, MLPWithEmbedding from cumind.core.network import CuMindNetwork -from cumind.core.resnet import ResNet from cumind.data.memory import Memory, MemoryBuffer, PrioritizedMemoryBuffer, TreeBuffer +from cumind.utils.config import cfg from cumind.utils.prng import key @@ -24,18 +22,12 @@ def reset_prng_manager_singleton(): def test_network_creation(): """Test network creation and basic functionality.""" - config = Config() - config.network_hidden_dim = 32 - config.network_num_blocks = 2 - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - key.seed(42) rngs = nnx.Rngs(params=key()) - repre_net = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) - dyna_net = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) - pred_net = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) + repre_net = cfg.representation() + dyna_net = cfg.dynamics() + pred_net = cfg.prediction() network = CuMindNetwork(repre_net, dyna_net, pred_net, rngs) assert hasattr(network, "representation_network") @@ -45,18 +37,12 @@ def test_network_creation(): def test_network_inference(): """Test network inference functionality.""" - config = Config() - config.network_hidden_dim = 32 - config.network_num_blocks = 2 - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - key.seed(42) rngs = nnx.Rngs(params=key()) - repre_net = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) - dyna_net = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) - pred_net = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) + repre_net = cfg.representation() + dyna_net = cfg.dynamics() + pred_net = cfg.prediction() network = CuMindNetwork(repre_net, dyna_net, pred_net, rngs) # Test initial inference @@ -64,28 +50,23 @@ def test_network_inference(): obs = jnp.ones((batch_size, 4)) hidden_state, policy_logits, value = network.initial_inference(obs) - assert hidden_state.shape == (batch_size, config.network_hidden_dim) - assert policy_logits.shape == (batch_size, config.env_action_space_size) + assert hidden_state.shape == (batch_size, cfg.networks.hidden_dim) + assert policy_logits.shape == (batch_size, cfg.env.action_space_size) assert value.shape == (batch_size, 1) # Test recurrent inference actions = jnp.array([0, 1]) next_state, reward, next_policy, next_value = network.recurrent_inference(hidden_state, actions) - assert next_state.shape == (batch_size, config.network_hidden_dim) + assert next_state.shape == (batch_size, cfg.networks.hidden_dim) assert reward.shape == (batch_size, 1) - assert next_policy.shape == (batch_size, config.env_action_space_size) + assert next_policy.shape == (batch_size, cfg.env.action_space_size) assert next_value.shape == (batch_size, 1) def test_agent_creation_and_action_selection(): """Test agent creation and action selection.""" - config = Config() - config.mcts_num_simulations = 5 # Small for testing - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - - agent = Agent(config) + agent = Agent() # Test agent has required components assert hasattr(agent, "network") @@ -98,22 +79,21 @@ def test_agent_creation_and_action_selection(): action, _ = agent.select_action(observation, training=False) assert isinstance(action, (int, np.integer)) - assert 0 <= action < config.env_action_space_size + assert 0 <= action < cfg.env.action_space_size def test_memory_buffer_functionality(): """Test memory buffer operations for all buffer types.""" - config = Config() # Test MemoryBuffer - memory_buffer = MemoryBuffer(capacity=100) + memory_buffer = cfg.memory() _test_buffer_operations(memory_buffer, "MemoryBuffer") # Test PrioritizedMemoryBuffer - prioritized_buffer = PrioritizedMemoryBuffer(capacity=100, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon, beta=config.memory_per_beta) + prioritized_buffer = PrioritizedMemoryBuffer(capacity=100, alpha=cfg.memory.per_alpha, epsilon=cfg.memory.per_epsilon, beta=cfg.memory.per_beta) _test_buffer_operations(prioritized_buffer, "PrioritizedMemoryBuffer") # Test TreeBuffer - tree_buffer = TreeBuffer(capacity=100, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon) + tree_buffer = TreeBuffer(capacity=100, alpha=cfg.memory.per_alpha, epsilon=cfg.memory.per_epsilon) _test_buffer_operations(tree_buffer, "TreeBuffer") @@ -146,9 +126,8 @@ def _test_buffer_operations(buffer: Memory, buffer_name: str): def test_prioritized_buffer_priority_update(): """Test priority update functionality for prioritized buffers.""" - config = Config() # Test PrioritizedMemoryBuffer priority update - prioritized_buffer = PrioritizedMemoryBuffer(capacity=10, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon, beta=config.memory_per_beta) + prioritized_buffer = PrioritizedMemoryBuffer(capacity=10, alpha=cfg.memory.per_alpha, epsilon=cfg.memory.per_epsilon, beta=cfg.memory.per_beta) sample = [{"observation": np.ones(4), "action": 0, "reward": 1.0}] prioritized_buffer.add(sample) @@ -157,7 +136,7 @@ def test_prioritized_buffer_priority_update(): assert prioritized_buffer.max_priority == 5.0 # Test TreeBuffer priority update - tree_buffer = TreeBuffer(capacity=10, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon) + tree_buffer = TreeBuffer(capacity=10, alpha=cfg.memory.per_alpha, epsilon=cfg.memory.per_epsilon) tree_buffer.add(sample) # Update priority - TreeBuffer applies alpha exponent, so we need to account for that @@ -168,19 +147,14 @@ def test_prioritized_buffer_priority_update(): def test_basic_integration(): """Test basic integration of all components.""" - config = Config() - config.mcts_num_simulations = 3 # Very small for testing - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - # Create agent - agent = Agent(config) + agent = Agent() # Test with different buffer types buffer_types = [ (MemoryBuffer, {"capacity": 10}), - (PrioritizedMemoryBuffer, {"capacity": 10, "alpha": config.memory_per_alpha, "epsilon": config.memory_per_epsilon, "beta": config.memory_per_beta}), - (TreeBuffer, {"capacity": 10, "alpha": config.memory_per_alpha, "epsilon": config.memory_per_epsilon}), + (PrioritizedMemoryBuffer, {"capacity": 10, "alpha": cfg.memory.per_alpha, "epsilon": cfg.memory.per_epsilon, "beta": cfg.memory.per_beta}), + (TreeBuffer, {"capacity": 10, "alpha": cfg.memory.per_alpha, "epsilon": cfg.memory.per_epsilon}), ] for BufferClass, kwargs in buffer_types: # noqa: N806 @@ -199,7 +173,7 @@ def test_basic_integration(): # Verify integration assert len(memory_buffer) == 1, f"{BufferClass.__name__}: Should have 1 experience" - assert 0 <= action < config.env_action_space_size + assert 0 <= action < cfg.env.action_space_size if __name__ == "__main__": diff --git a/tests/test_config.py b/tests/test_config.py index f34541f..d49e906 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -1,13 +1,11 @@ """Test suite for CuMind configuration system.""" -from unittest.mock import Mock, patch +from unittest.mock import patch import pytest -from src.cumind.core.mlp import MLPDual, MLPWithEmbedding -from src.cumind.core.resnet import ResNet -from src.cumind.data.memory import MemoryBuffer -from src.cumind.utils.config import ( +from cumind.core.resnet import ResNet +from cumind.utils.config import ( Configuration, DynamicsConfig, HotSwappableConfig, @@ -16,7 +14,7 @@ RepresentationConfig, cfg, ) -from src.cumind.utils.prng import key +from cumind.utils.prng import key class TestHotSwappableConfig: @@ -52,6 +50,7 @@ def test_representation_config_init(self): def test_representation_config_extras(self): """Test RepresentationConfig extras method.""" + key.seed(cfg.seed) config = RepresentationConfig() extras = config.extras() @@ -250,7 +249,7 @@ def test_class_type_direct_usage(self): def test_resolve_not_called_for_class_types(self): """Test that resolve is not called for class types.""" - with patch("src.cumind.utils.resolve.resolve") as mock_resolve: + with patch("cumind.utils.resolve.resolve") as mock_resolve: config = RepresentationConfig(type=ResNet) key.seed(cfg.seed) config() diff --git a/tests/test_data.py b/tests/test_data.py index 729033a..4567bbb 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -4,17 +4,17 @@ import pytest from cumind.agent.agent import Agent -from cumind.config import Config from cumind.data.memory import MemoryBuffer, PrioritizedMemoryBuffer, TreeBuffer from cumind.data.self_play import SelfPlay +from cumind.utils.config import cfg -def _create_buffer(BufferClass, capacity, config): # noqa: N803 +def _create_buffer(BufferClass, capacity): # noqa: N803 """Helper function to create a buffer with the correct arguments.""" if BufferClass == PrioritizedMemoryBuffer: - return BufferClass(capacity=capacity, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon, beta=config.memory_per_beta) + return BufferClass(capacity=capacity, alpha=cfg.memory.per_alpha, epsilon=cfg.memory.per_epsilon, beta=cfg.memory.per_beta) if BufferClass == TreeBuffer: - return BufferClass(capacity=capacity, alpha=config.memory_per_alpha, epsilon=config.memory_per_epsilon) + return BufferClass(capacity=capacity, alpha=cfg.memory.per_alpha, epsilon=cfg.memory.per_epsilon) return BufferClass(capacity=capacity) @@ -25,16 +25,14 @@ class TestMemoryBuffer: def test_buffer_initialization(self, BufferClass): # noqa: N803 """Test memory buffer initialization.""" capacity = 100 - config = Config() - buffer = _create_buffer(BufferClass, capacity, config) + buffer = _create_buffer(BufferClass, capacity) assert buffer.capacity == capacity assert len(buffer) == 0 @pytest.mark.parametrize("BufferClass", [MemoryBuffer, PrioritizedMemoryBuffer, TreeBuffer]) def test_add_and_len(self, BufferClass): # noqa: N803 """Test adding samples and checking buffer length.""" - config = Config() - buffer = _create_buffer(BufferClass, 10, config) + buffer = _create_buffer(BufferClass, 10) buffer.add({"obs": 1, "action": 0}) assert len(buffer) == 1 buffer.add({"obs": 2, "action": 1}) @@ -44,8 +42,7 @@ def test_add_and_len(self, BufferClass): # noqa: N803 def test_buffer_capacity(self, BufferClass): # noqa: N803 """Test that buffer does not exceed capacity.""" capacity = 5 - config = Config() - buffer = _create_buffer(BufferClass, capacity, config) + buffer = _create_buffer(BufferClass, capacity) for i in range(10): buffer.add({"obs": i}) assert len(buffer) == capacity @@ -53,8 +50,7 @@ def test_buffer_capacity(self, BufferClass): # noqa: N803 @pytest.mark.parametrize("BufferClass", [MemoryBuffer, PrioritizedMemoryBuffer, TreeBuffer]) def test_is_ready(self, BufferClass): # noqa: N803 """Test buffer readiness check.""" - config = Config() - buffer = _create_buffer(BufferClass, 20, config) + buffer = _create_buffer(BufferClass, 20) assert not buffer.is_ready(min_size=10) for i in range(10): buffer.add({"obs": i}) @@ -64,8 +60,7 @@ def test_is_ready(self, BufferClass): # noqa: N803 @pytest.mark.parametrize("BufferClass", [MemoryBuffer, PrioritizedMemoryBuffer, TreeBuffer]) def test_clear_buffer(self, BufferClass): # noqa: N803 """Test clearing the buffer.""" - config = Config() - buffer = _create_buffer(BufferClass, 10, config) + buffer = _create_buffer(BufferClass, 10) for i in range(5): buffer.add({"obs": i}) buffer.clear() @@ -74,8 +69,7 @@ def test_clear_buffer(self, BufferClass): # noqa: N803 @pytest.mark.parametrize("BufferClass", [MemoryBuffer, PrioritizedMemoryBuffer, TreeBuffer]) def test_sample_from_buffer(self, BufferClass): # noqa: N803 """Test sampling from the buffer.""" - config = Config() - buffer = _create_buffer(BufferClass, 20, config) + buffer = _create_buffer(BufferClass, 20) for i in range(15): buffer.add({"id": i}) @@ -98,24 +92,19 @@ class TestSelfPlay: def test_self_play_initialization(self): """Test SelfPlay initialization.""" - config = Config() - agent = Agent(config) + agent = Agent() memory_buffer = MemoryBuffer(capacity=100) - self_play = SelfPlay(config, agent, memory_buffer) + self_play = SelfPlay(agent, memory_buffer) - assert self_play.config == config assert self_play.agent == agent assert self_play.memory == memory_buffer def test_run_episode(self): """Test running a single self-play episode.""" - config = Config() - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - agent = Agent(config) + agent = Agent() memory_buffer = MemoryBuffer(capacity=100) env = gym.make("CartPole-v1") - self_play = SelfPlay(config, agent, memory_buffer) + self_play = SelfPlay(agent, memory_buffer) episode_data = self_play.run_episode(env) @@ -133,13 +122,10 @@ def test_run_episode(self): def test_collect_samples(self): """Test collecting samples from multiple episodes.""" - config = Config() - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - agent = Agent(config) + agent = Agent() memory_buffer = MemoryBuffer(capacity=100) env = gym.make("CartPole-v1") - self_play = SelfPlay(config, agent, memory_buffer) + self_play = SelfPlay(agent, memory_buffer) num_episodes = 3 self_play.collect_samples(env, num_episodes) diff --git a/tests/test_mcts.py b/tests/test_mcts.py index 8d33428..85b3db2 100644 --- a/tests/test_mcts.py +++ b/tests/test_mcts.py @@ -6,11 +6,9 @@ import pytest from flax import nnx -from cumind.config import Config from cumind.core import MCTS, Node -from cumind.core.mlp import MLPDual, MLPWithEmbedding from cumind.core.network import CuMindNetwork -from cumind.core.resnet import ResNet +from cumind.utils.config import cfg from cumind.utils.prng import key @@ -182,43 +180,37 @@ def test_value_backup(self): @pytest.fixture def setup(self): """Setup for MCTS tests.""" - config = Config() - config.mcts_num_simulations = 100 # Increased for noise test - config.env_action_space_size = 2 - config.env_observation_shape = (4,) - config.network_hidden_dim = 16 - key.seed(config.seed) + key.seed(cfg.seed) rngs = nnx.Rngs(params=key()) - repre_net = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) - dyna_net = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) - pred_net = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) + repre_net = cfg.representation() + dyna_net = cfg.dynamics() + pred_net = cfg.prediction() network = CuMindNetwork(repre_net, dyna_net, pred_net, rngs) - mcts = MCTS(network, config) - return mcts, network, config + mcts = MCTS(network) + return mcts, network def test_mcts_initialization(self, setup): """Test MCTS initialization.""" - mcts, _, config = setup - assert mcts.config == config - assert mcts.config.mcts_num_simulations == 100 + mcts, _ = setup + assert mcts.network is not None def test_mcts_search(self, setup): """Test MCTS search returns a valid policy.""" - mcts, _, _ = setup - root_hidden_state = jnp.ones(16) + mcts, _ = setup + root_hidden_state = jnp.ones(cfg.networks.hidden_dim) policy = mcts.search(root_hidden_state, add_noise=False) assert isinstance(policy, np.ndarray) - assert len(policy) == 2 + assert len(policy) == cfg.env.action_space_size assert np.isclose(np.sum(policy), 1.0) assert np.all(policy >= 0) def test_mcts_search_basic(self, setup): """Test basic MCTS search functionality.""" - mcts, _, config = setup - root_hidden_state = jnp.ones(config.network_hidden_dim) + mcts, _ = setup + root_hidden_state = jnp.ones(cfg.networks.hidden_dim) action_probs = mcts.search(root_hidden_state, add_noise=False) - assert action_probs.shape == (config.env_action_space_size,) + assert action_probs.shape == (cfg.env.action_space_size,) assert np.isclose(np.sum(action_probs), 1.0) assert np.all(action_probs >= 0) @@ -261,29 +253,25 @@ def test_tree_statistics(self): def test_mcts_with_different_networks(self, setup): """Test MCTS with different network configurations.""" - mcts, network, config = setup - config.env_observation_shape = (8,) - config.env_action_space_size = 3 - key.seed(config.seed) + mcts, network = setup + key.seed(cfg.seed) rngs = nnx.Rngs(params=key()) - repre_net2 = ResNet(config.network_hidden_dim, config.env_observation_shape, config.network_num_blocks, config.network_conv_channels, rngs) - dyna_net2 = MLPWithEmbedding(config.network_hidden_dim, config.env_action_space_size, config.network_num_blocks, rngs) - pred_net2 = MLPDual(config.network_hidden_dim, config.env_action_space_size, rngs) + repre_net2 = cfg.representation() + dyna_net2 = cfg.dynamics() + pred_net2 = cfg.prediction() network2 = CuMindNetwork(repre_net2, dyna_net2, pred_net2, rngs) - mcts2 = MCTS(network2, config) - root_hidden_state = jnp.ones(config.network_hidden_dim) + mcts2 = MCTS(network2) + root_hidden_state = jnp.ones(cfg.networks.hidden_dim) action_probs = mcts2.search(root_hidden_state, add_noise=False) - assert action_probs.shape == (3,) + assert action_probs.shape == (cfg.env.action_space_size,) def test_mcts_edge_cases(self, setup): """Test MCTS edge cases and error handling.""" - mcts, network, config = setup - config.env_action_space_size = 1 - mcts_single_action = MCTS(network, config) - root_hidden_state = jnp.ones(config.network_hidden_dim) - action_probs = mcts_single_action.search(root_hidden_state, add_noise=False) - assert action_probs.shape == (1,) - assert np.isclose(action_probs[0], 1.0) + mcts, network = setup + # Test with single action (edge case) + root_hidden_state = jnp.ones(cfg.networks.hidden_dim) + action_probs = mcts.search(root_hidden_state, add_noise=False) + assert action_probs.shape == (cfg.env.action_space_size,) if __name__ == "__main__": diff --git a/tests/test_network.py b/tests/test_network.py index 901e87f..dd092ec 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -231,8 +231,6 @@ def test_resnet_initialization(self): net_3d = ResNet(hidden_dim, (84, 84, 3), num_blocks, conv_channels, rngs) assert isinstance(net_3d.encoder, ConvEncoder) - - def test_resnet_forward_1d(self): """Test ResNet with 1D observations.""" key.seed(0) From e53174450f29c6e37f34e56cc05c6202c0eca950 Mon Sep 17 00:00:00 2001 From: t4r3k <142579274+machine-moon@users.noreply.github.com> Date: Thu, 17 Jul 2025 21:47:48 -0400 Subject: [PATCH 08/19] script for plot, install matplotlib seperately and run via /usr/bin/python --- plots/episode_loss.png | Bin 0 -> 28542 bytes plots/policy_loss.png | Bin 0 -> 41337 bytes plots/reward.png | Bin 0 -> 77427 bytes plots/reward_loss.png | Bin 0 -> 27865 bytes plots/total_loss.png | Bin 0 -> 32287 bytes plots/value_loss.png | Bin 0 -> 36633 bytes scripts/plot.py | 154 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 154 insertions(+) create mode 100644 plots/episode_loss.png create mode 100644 plots/policy_loss.png create mode 100644 plots/reward.png create mode 100644 plots/reward_loss.png create mode 100644 plots/total_loss.png create mode 100644 plots/value_loss.png create mode 100644 scripts/plot.py diff --git a/plots/episode_loss.png b/plots/episode_loss.png new file mode 100644 index 0000000000000000000000000000000000000000..dee21077c725c8998c53eb0f5fd63d2c14b3904c GIT binary patch literal 28542 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 literal 0 HcmV?d00001 diff --git a/plots/policy_loss.png b/plots/policy_loss.png new file mode 100644 index 0000000000000000000000000000000000000000..7601168690576be237e27e45e6fdbfd192f8f4a0 GIT binary patch literal 41337 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 literal 0 HcmV?d00001 diff --git a/plots/reward.png b/plots/reward.png new file mode 100644 index 0000000000000000000000000000000000000000..d634f1b3d7466e6fcb13dacc01d124be7904010c GIT binary patch literal 77427 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

TEsT$3@Et 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

2xwyA6xbS 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 J_2k8y{{y_@LNWjV literal 0 HcmV?d00001 diff --git a/scripts/plot.py b/scripts/plot.py new file mode 100644 index 0000000..f2a613c --- /dev/null +++ b/scripts/plot.py @@ -0,0 +1,154 @@ +import re +import matplotlib.pyplot as plt +import datetime +import os + +def parse_log_file(filepath): + episode_re = re.compile( + r"(?P

&q?K9#|bw}F~ZIsKNUpsMoD25 zpcYJ%$|Tv5xh((^y)aO>3PwBy(*Dnivc=!wg^=O4cs3ut-8qF%hBv}j*#nSnZcf|# zr$Wc6zqoO=Df{>4C@Q<2;fe#Qx!n02Gasam0ajsfUqyr5|7x&!t70g0-)h0%t|Ni=6rpI0~qX;xr3&zf*M!4vUcz&WX^VoVCdNvaG^F$2uems+m zqlAo*sql=nzUAfA``~!MI!;3_owN#tJM=gP$8)4vt(_sOH%!EfQzhBpkQ9=Q?SY~x zyFhy7MO>`q$7M@Lfqk$Fm$$8yeyljbarzAy7-WvOH5}OE2E<8G?VR6mSq^q7zaQoCGImt|jd>?E)(JnSDw8C4v z&y)V*3HVgE3M1wfW3Tyfu6)H8v_5P^jmMR+-8~K8+sWd>dr!HNowxZ@??;m3fnD_V zXdKV~d4RXwW4Y*YM`^f^I{gy%IY#L@kX<#Ie(ZKYE7e`NT34RDb`QrxOR8Z~!)|;P zE{$Q|dyw5YOarnyvF-C}obD3H9M*m0ubD}bVRITD^h?J-Z(d;5o+DVe-hwRj0!U9< zme%O;DD)*V1g&i~-hGZWc~7<_nOA?H&*m6~e>AN)`S-l+K8b-a(ugsMj|H^{5w1Q+_|IXC?LAUc?G7+eR8 zrX-1ZG-_rHSogkx+r=yBTT3Ecu1pg}1#8jW2F&`dQzIA*c63-Aywb8KO>#2BGBoc|Yv`YRD2#Tmvil zf%Lh9$2B9G@YDze=D0Qi&tCtE8UB{^`pZUCEODSi3vzL-!dX7~aT|(ImrrJKC@T5zE&J+hj|Je*mVz(f?>JF#j z+Q2=$dj*V_r{UjjS9ZWB9d9tGa{e+IZiVbe?<0?4aiJtV@}DC3+r{U+fe7GU!&00!sW6f2@CXdL+^sV~ zg55M~MjtwF8-Sm!?xLTmB4u7Kq)_oN!Rr}G71q6&s%Fp54Ov3#4JN>dim&_-?QEQJ zc@-vXU&^(G-{#6cC}6qqM1I8&87!=M4CjRm`-^Mk;HNYnqIJR<0YqZh3ga8{uXtB5Lu$(G6Rsx6Y5dY!rai+f@Cdbeq~SuSA!&_U>eH+dcS}X?;Sipii?# z3A~n`B+<x#{a< zz;>IE+31;!l~I+r%;YIQcfXK_8UF(v{%Me@Q9u6lkQO};Pvmy_PKN@A7pV9CD<(H< z(wOD;@L-)eh6;C4iIvVY?|Ca;%1K2h{{dh%Y!_1r`ir@8!I*e>Jh;2+v7QM7*^1Iv zRbt^;yOI7GMr5z2+?91tTd<Db9Oztck~rPxZz~X3Z|Y!9hV)PyHG zZHFENuL}Za^R)%m{Fg0Car-XZ<80zD%MOIt=i^}4!!S@;?TQYCD_G~zM3~-A+`xeW zxaOJx`+X&V1umEd1;0Pwu%FI2; z>B7F%l5QQgr06*M0lJZ%Og6)Ph?)4?Bn41W8S%GW$Nk2!O)xfc(Xc;lfql*`yoDr2iT_^cz!+LyrhIVG_e_j#1R-ch_rm80N!@mQ@n zj8;F`#)T~E;1jqHnAew%0Y_!o*QZ{T^y)f4F?Rst%5|71Uf{&MI}0(Tr_u9GB}jZ5 zOrvUdW9Od+ZtIl=mZt^Yp{B2s_~tK3a@e?oof6y`6@F?spzW0?q;?rewl>0VuQ)ob ze+iBM#e&vnTWlLTl){fR@*Q7)L7#mjW~eC9txbu1o9aJ2mbZusRpwHReht=3-i8U` zzXYc0a(KV&k>FE5gU_QsVqM=ad>i0J<2=7|#YPeIesd`vti1tGe&5D69Ss_1J&cmV zTQF;dD{mSyjS_PZZMeDQG6l{+kf+J5r7wjIi^da89fLbO-20?@NCsM>M`=7 z{gra4;~s_0wU^(TnwYRK*?+FJ**WAwY(DfSU zdV9e43}N@_7l)i7kXED;jhQLtuOB&&?H7&7A?XDEIATd^!(xeDTtvT`H^7|zv!PP< z3D18ROe=M=Y2@fjXub88IOjkzgc5kLlvzq?7!v*g4qy z%!4kQtRdgZGH~`S;lC_0p+`Lr#q+|3k)M=29cpr*norYdSG5=Sc$LsUx<**`I7E@= zN?qK%RJb2@Pvk8fu48HF0c;-`k9Cd0o!HTFWbS<)wc=;fwcXl0hT6b_khR>JFnd57E|eNwIu*7k@eI2={u6H662=K_x%bxr`(6xLrvecWCnbL$lcwR^>sR zCfh;ci3R((aUB!ATTE!1Co*rgSi!;s>#} zy>7VuV+Lhr=F)AcVv3!V1{<|E(8k6FTqO8-_Jk~hExA)cZ~Q+I*D6O%ZZfQ{V=x`M z5<@PF%4pxl16=iIS6q=00l%a=aleKM3q4^-+lt0g=lU>M<6i)G&(C0d*br`aR|0&g zJAuE)Zz0F!_b}ku2aw76BoKI$(L3cl{3);DS0=xL<{xLdBQ<_pTYVia*mM#$Rmih> zFT$WP>oiQPt%tpHKEd}Z#`GoJOJMY#w6u(krw4^E#PM=&Wd5IUw{&j-#nD&_*j@>e zn;RfwniU<+e1Y-BF2Z-I9W$;dvD@vpxPd3Xa)Tn$1W$k~&HwlkcUq~_y7_x4;G+rF zKB~bd(|$m>mlbtvpO48J^7wPx0ruuv1G)_8;5*M;=N8P|OS;Q>F4ZoatL=yv`b?3) z&n>0h%094R(m{w5-nVN(*yldu@m9@rZujCQe0y4-TE-7%wgXGRHsmcAvecAjEq#c| zsXCNz+lTYYCXCcc#^PsANyx?>!PV(TG-i4Xg{;(|jEQFD`uowv;3aOjI|+P-z30+f z2D54Z$v~{=DcYW*s>!EQ@RLy?sd*OT!_bFZP4G9AnVre6Dwd^vVX-Kcx|E`(sj^{m z>a;5NA_hFZ07F*Q@Pn3a#|@iS;oq!rxYA3QW#^{jmc2mF{!BlvZ>cm_x7NF4=YhEeg85|pN znNLg@i?`xcY1M&b2n*8`SR!TIotQfyHXn|G`%aVA{u=ZS^CaI(*Z4KJ7huI(j-;vw z(}Fp6ME6bbQ}P%7;IK=$=f6H~LYXkDe>{c;&Qzm!+VAl~6Gn>!Z#d6%K& z84$y1&C;cDx*o9HBoaB3aqN0pE{ZR%gQ53lkc`0rRG2=BA{QQnRP7R6C*;Ho=ljvI zHg)lvzIL8j2I7*T{=7qdKVR&22F6XP!t4H$?8WufB)QZ>$YP4&^#Mm%m1;suOZ7;$ zNcfG}AI1OnZ{%kfj-{7pT2RY72HVC|;yoEB`l&Zp0G^lQi_dG(^iDW8^;Q#w*C|o{ z6bamLFqR%n)MK^hg?z=MC|1rUg45whG&;Qz^>;sqr#t%j+pZ5_*Ku=BmQMmxEhn}x zU@(2{n#|T;GsMH8IhgV9B$pc30JA^#;RdV2tgLG)=x!?E)ZRSB;LFq4*w0cR`{y9{ zq%)3lz9P?7y%qYCA@XqC)S2g}pAoB^2&VzZ^Vosisc=6?l|NWJ5Y4U`@ck-*q!_%9 z%Y1SNw_VnRj^JF_*=dCH90x#6`8!y!Z8~k3`yMwaKEmzR!VV#N5M|z;#@tW-#Rro{ z!Ubh3$a&k3pCvca#++7E`}+aBX9%pijs5s`jVZ4>bP)|$ItlDOX3_q^Js5K0$fbk> z-vqCb0T0nNSjPu3r)x{GpkM(rmL5S30*f(bhz8A!@g>FdH}E+*2d~bJq02!*v`{1k zDgg}i?WZt{hxU|NH3+N^>C&C4OSyct0kCPmrpRw&B!5}$C9Lh+55KOQ=8SaR@CrYL zE1eueQM%i)fBFELW|ji$I<45)0HAE`EBLUk6MfrtxQuUm@%*DbRQ4|fj$KT{^iO#> zN7;;J>OF+LJN0Rg{&n7w6PzoJC-^l^4$zC;xVmZxQ<%F8bQ`YVxhG>;#w>49@uw1S zEj_@mi7kb9zkM*mJq%`_E&ymO!ym$3&wcT3@$$iA>F4Q4n&IF`TOQZoCYd%YwVz7H zCa*BRWHvyO$4FXo+xlv1ZaNOnG5V6^kA5dR!wu{osS@Yjp6#sYSAIVuaYvJJC|9=o}-R*eIr?}4*$)8-aXfhrrPkZsFH(0R0s zH8^&1fm)|T8^)ex(X$`m4<5$d4M;g@ff6u%wuDuIhsx+yBO!8AU09W8qa%<{@qF=!Boxe|R*u zrH56~Ivtk&wu1Y2;yAnwufnH2+EjL}|I+cLp4fH1ni+T}fQ`O6{2Fi)^RoBzuRHI+ zMQ??^IRses(iLh5$q*sy9sr!jM2@83?*<1g7z{UaXN?f-_pH_udM zH15Nv%NZsAlw{L;fI9sc*!X=Rvz3`nX4fZ+%Cd4eYJ70qE+{W8jYJsEnm1h1>$QkIzI0PV`dVfVGQ7;$eq zOBDD(L0f;oqm?Ct=n4GwXXBLkK_COeERi^N6%cK^nM?# zH4Z;Oh3KE6qN&!Td3^#k-FXWM8#jX+9_6;~?vLYoAA-vbec^1J%FYf^VX`uBv3hwn zd|CGsR{VL1yZ*{hh8>#DSE>L>VIz(hmF8`G}Mh3H+#^DYC*cn$j_w9d_z zol_B5N2|hM)|lJY-lxuBNk4h3kYZCf|EU?4i}wqDx)azHV+%#==P>t?4op&c6p6ak zASvk^Zx$a86M9zQm8T|fGNOl@9lDmBC3VU9%2bjaF@P0Zy?_($42KN+Y67l!AhGX}*H9xEQysL!cP5YCl<8)F_Q={x4S=uyTa0U2Zz{pqL+}{X!5*GU4 zlz$c@9uB7R0fBhrqDqQ$=5TE}!h)myLpc^)k@y+QoVkj$Praq?xr_>*xka_D~U zNqq&5`VfbE70u9gca-(!K*lr(9dMcg3-530HVekiyJ_Grt zW|DtoHim6C7x+aAaH@GSe|f3k;L)~&-X+iZqF013^cV8W+y-LQ?>D$~kPVhrEx^r} ztXOIB6Mn!d3wk+A2I49^@j+`a^ER157avT=*rcIwxz--1)=SZtmKQkI+?zTR?(zm* z4k#z{7rnQwA%*5q)a=!Y!`69FpOg}q7mM-7mn1IuejzFQ+~XER9LCJp+k9h0EckzD z#?(SxTHYaa0Zf;&v@ttLf5=)i&<&&7QN`$dqXa*sScp~`C86h?PNb}>T%N}}9Hb-o zM_!ijY)~kBueh8-gTlG0aa-w!#0ThW&4=YCIlS4vCb$=%OBor8Y=40k4Lh_89DeME z)9RPdGP;DDwBL-xu{&|?eK7UDJ&sbcXZn}j=;3E;7-097pAu|OT066G z)tjSqC)<+t-!dXml@$%Y`4vw^3(Q&bY;K{?OtgFX-FohFDY7sRgqZ;jR5WH88DB|b z`(Dc6?svN|(|R)PjF?P5K2Q15(HybhdiZrgo;l`z5;|1gs4pE$5w*aji+VZT^B(9R zDNSkR6G%}7sZsduJ6+ou3vVgWsQ@FgD3gM?^ojhEBZ5b3>}S#T#Z4f(Y(VEjEvPKf z7&ABRr%gdA!ch4$`X(QNj;W6^&QJ?Y4y}Q^#gb$`<+*SN?8kp9EEl`-WoYAgP$Z#c z!+psyVl{m#{JoW5(b@7boO&4o8z&XuVR?DZHRCi4c>M=YA2q~KhiNq5cr)!dc^AE- zIlf`MBXc7;7h2Ghp|c^9o45|@n?ZC`r4jMTFkIust;rod*b1>TT$b87XPB! zi5$5&a+Fo(_tdS6xxDb348!@BrLc>$}&MSpaJvF`s3KWm-&nf zF(lI&!D5!kka^!AJeJ>&(q)uMbHX+D^PV+*O&GvFFZ6?c@hgNLsVDntdJX@r@8L{G z=i^!352!M01o`!NQD}7-^#(f9ySz@$rogal=dIDS=!PD>QfNVbv_F>`MWy{ZlHikU1=bxp zj&nUGVb{$Mu*g@M-cRLG_Re9j-a7zCTLk0M{w{pcwejS>Rhq)?Y=rjlf~#uEeEh)$ zV{hmwxEApdxE1};`u0-p`{D+?8&b?wnyf;@Ezbm>?U zbd3<4omG+WZ{KuLzE3oCc=w@^iZh)amx9YT?iF{)J>m~Pt;1f6S=4**0_Jbkz$cw3 zhSFzv>zWEJxwU|fnF{`%522zDz9sy+-(zXnIl;-DBu)0me~TZF9z>1in`oAnDeQ7@ z=fZ>;Ugl0ScsS`M?lYQ7Tb>7_ev07h?Y{~(PN+teViTB|b%_(H>e7#O#_US`Jk;rX z!W)H6rKF!Puwvg`Y|M$Fu)H!{aBU&@sg9srkEaN{ly zWCQP5kfHE9{hv;v_vN;@Yh*X5-i~5MYCkb(j69ARG=O|`n#JeO{KTDnv*6uDY*RMH ziMLE>?T(L}wPGzeS~v0+1FC?3^cV`yt)R(Qh3;yF2ifMUQ^Bkt&^h}GpDR>xzW)6w zJXr}m#zcq~Z$s!vZ@|QNv&qf#Jr3^q!|P0R67T& z@jHCA{3CpNKu03ME8-G2x=#nkE#NtYGscuB z-vH<0i}><#XH2y#=2yl?a&WE?s$vV_^yK~E+&&w5em-u@5N5pB=8(SNg3*0pDtIb% zQP%UZc%c0XikFn3_f3oFm*obr^z|X|;Hn9JjMt>u9rM}P)VH|d_7=fSaFZJ|W(3_e z`61q{91RnX4dE6fdO%K#BYv zOX>mTvkTb3?0dL=Tq2+P@+Uq!@s;P#PQ`hqN+g~ChrhPb9S!0`!TPQj3tga5`q^_M zRC?HAz~8rc%i%lL?rlT!-cCL_V;*{W7||&q=l-ddp;cfmE3b=ynaeZbm&-QxV`n+$ zsutrN*Gwv`Fo4a%j6!kVF+4Y88l2DD%a2!$$3t_}u>7(de7UTND}PMkn>P)iKCw1A zjPl3X_J=UF=OxbS6xjDy{jho0Xz-{RNoz}7Xjyy!Uz#?VUA`TNZlQUlE$+5B?e$Nb z%7^0M@Y|ScEAS)E%F&PYgP`K!cYN}x4l|V#aN?)gkbiR--6<5Ddr=AymobPGqTK11 z<2ceiVu7#Lfc zEbO?p@*l#ZxdqaGuti6Ljyo8m5tq!V4k?3^A9Oz*a}(@H@8-!0I#! zSoZE2IARQwT4n2h*_!d*PC!3fr`|8KfMY zv9W3%Y+W;yo@$=vtAxALzu!+uXU;%+3DeOfY?a`^)1yJb{psZ%JARy|H2RHWtX)nG zjiY1vL0P@fF%2~MKlhBE`i^K5tGEs1V9Mt9J!CQVau0LZ2W_up-&mK## z@5|pqZ=eBLM^ECq-)chr_uITdk20zi{D5j{6{y~{26|2^gU+=>@OIAzym3cx$^9{; z&68%5t@{K%dD{ju8s;d<-_`_sB1LpM(hQI4T*Zcz9&E;K@E~LuSQJ^aeF8i3Z~7;k zc6=~f9C-rl1_O@lJ;+PL8u&fQR^X6NgKC=^zI;v&{2o*XH&oSWtf?&3zk3N+Lo>lt zgwv@FsUV>k2BinuXh_boWG- zKfa9DzUxgOt3vUCUN!3Nfm zdZ z0!rtqGm9nTxN;$5GjiHk=6ALMBC0H4q)xGba4{qNBy|0+5qs#N%}!ND3wM`;EJTQ>-vam6SwlXYT$mTR-Hz7*cd^dooiOaZcjIuCA|0LG}je7jO|_e z6|Mb3;rz{e@VcfE!aMKKdW{tLBCiQ^YKd1U7|5bb{&8EoLr7leB)r>U$rhy;V0S_) zDvdeB#ksZ6yqQH1J1hdT`~E;keLeUKEcFFtW~}A53`^~{LZ2iD7FC%`d8=f>aML7I zF4ci6W`PuTCY*vMXoBXZgD^Ov755}fhjaU^@kYjTG%;gJ9t3a*cQ`a*GZ#gvhusC&W+08aSc~7*b>aOT|M+^h^Ki0Y zI%Q6KBfKMiVSm*oUW-2A{-_LezNL$2GK9P6wH+{oA11C8_!M`CNYJcu74m>%P&41t zdeiHBct_zXRrHRhhVDP89@D{XyLbveuaDxtr!}K?p0?V8B)3rOr;xU1D z_`frH;r-+s95-t>E*JP$ja|vy?sPX!XOAS6O_E3J$H62ka1I)-q(bUBO$t01iP;}s zb1yy|g>2ytoTb$R?jf6LU(0Z`4p{`alzPMJE zzIsgHonkhL`-IHRt8fFtU)JazH3ff_TS0Zq0GhP#6?_Y{W#-|s^yS=m?s82R29!TW ze-~LgIzn)yC*Omy9cG~OOmIb>JWMY%FJPQ@F@A~d7S})e4hm8_?osRo{ zxllv(Kc0ks!~8}0Sneg_rfjgIODo$^u`wFVN9LhaRwMX4+mHHZM^UcVa7^^q!tlpo zu&g`>FZD1c)=6gL7r66+;gAk$&!EAhH;CHL1=FzTwYc!+Ih?5f0L-~W?#qxoOrKtW zMSHemXU9qFWfc*8U#J&FEjdQgK_9umg-=DP;*n@o|5e;5a6K1o(g3NYg0I427shjM zdH6G&RGn9Yi@=wxI6M~FH*=i%K!pr-l_{k9Dem1DNo7|K!}Pls@vhuaY;GS*DyQnX zS82;3QTG~JZ*wE<$y-tVhBf_CFcURdPofJdUA*405L8d`B%M^jNBt=o6Aa#q0wmMf ztsY18*6qMSw(aooagON2TSIH7Gn#ZH$C!TK6PTiBImC)AQF4M4Q!y-pNpBA@wSDmz zv`U|?{>woHnR9;cO;E$dg!F#4aFK)W!IJIHe9(S5YM0xGlD>st+7`=gS@QxlQt}rDEMPBhyE6V+hn@nd_PO` z>sR28RrhiF$R{{i*yWXtVKg#rBs*Ii0=qXo1Li74S=w_cZ0dFHu-{F5bmtpXKdgeE z3*9OC&{J3)Eii$;%wYRTmPs8sitXEy;hD>2-1E*I#Wv%_V+JMQgi#lvXUS>Y3NOU< z@xj#nypR9%%#a4yiD=AZ8PM^uq@Ql%sL>(@XBP38^D>sdePs}N|GkKDCGu1qF_W~M zuY+vvTZm~J!$%F9z^YS=;6v+i@Vh>bKAuZNjThl~`*$d&+%Dkn|NDZ!K2E?xgEC>^ z*H-9xy_jm`hC!9=b8-IqJ6vhEAr?<><|@xvQKjDk-0krL52l<3JC|5UoREoewYWrExZ)6L)EGArQoEToXySE(d8!z9B>ESw>Y|RBn~?E3VqJ!gN=<63>h|@ z%+2n?gpVuP&pP!+%E zRO77c&csbmq^x{9NV(=iO;QFlp(TV8?<0n5UWFy?@>JOO7Vp<=rKM?^xGhKMWV^}W zqb(fejOfKb;k9^NWf;<)1~|yw2c=ha7?yAWkIgzlD}S|#gQOEMtfP|KxMDs8*i_>8 zO}FuWzX9Z5_!B>BI8xmzJFNO~f<8qKqSOHWl=qUp9Cx(UuLBtRTbAO>96_9BjKV zih^&hqdViP0h9VMuLY;ULj5HA)tbAorsHHU(>_{T*?M0k|nk#E)6Z$UFBgp#uNM$9p9c0 z?IW|{$K+jn@#Cks|L;8FTE19IMle8^G7HxeTyKDljl2N1Ch6nlYA^CXu))5@~dK=U&*CS)POf@T4^8Au0be$yl z{iLdKUxb3d)0s|DMS9pQSBr1g>Cm>aGW-#%fqg1vxcK5)5}<%Ic3FV$7J&p z_LWf0o@HbeqD;#k*P-tjA)B=!hirDefHMUQHEA(n@Nm4T&FF&WS6tgZ2CZHw(AQ%D zXe^n){91zf(!ewdmz#hAGp+cxAIItGhalXvZwL8zZbXIaM=(da7;j~^;qI41AbjCY z)cexH_sgyo{Rm!0`QA=!(5&gK|KOSE#yXgkxT1@WsN{nr7Px zk@!;=0xFQD9mgjh#Y&jU({QiDzQ<XP~m+ou%LGu?=CSS^rsgB?r zL+WtGf|>9r@|E@32mSFcH(1!`x8Vv8bK#7-&gZ6O@MCW~7FvAdm1g8nu1W|UjC;ku zJUE#&+FL};!5N(9eQDY%5DTk@Z-pN@FEGYOojotOgyqexIM*Nt)2ed7cWow!ydtf8 zCug9wdlp{ENQ5mLZg84x0V;p&!8YwrpfzV1p0^4ty)a$K`3tU{#J@|Z?PDj*I^iRn zg{rvAWenNHti!8=9YMfB@XGuYa5wG5<{`bv-J8!o06lTqW z+vl>Cr@+(t1wVQZ;-=46N_Qn+jMo@diKQuQhsl zXY;RQ1P;XLFT7;iYq78V7ty)aAMnG;h6NQ|;728Sp~Sa~cxZPGmll<8NlIp|CLKlK$b@Tv!0I5B}P%{63GOoAav=o9?A5X3yHKfvqO;ba%##WHut zLSf<==FzDDb(42-+b5pJ0X^e5--Rax#%v?p_$?{;C3(I$a1g)9b}w@}Q-ZbYmr&CS z6_lQt%XfU#U{M;mAP&-FIwKWOHmMwTmJj8+`aQ-KJ{y^tg(q85D~+oi)nQliBX0b> z%c5ZQ7hGDN3K+CFaDM|^In#%N3;e+lG%`Mn9d}01b{jE787r{z=I@YF@CeQXO=XGV z65OoapROcw+@iEZTq9)U&wT<`8Gf8Z_s;Og=3b$rLNDUMQ(cl*io@DT(p+0*2=W6* z(Uq89k+@sL-750IbKE$*kgG(YufwpdBU_Yv+LljR{|44R97pTlRN+-6Z&*C$4OiT9 zNt`sx5mg6=LEAWU{3cb;Z_!eqGlwofRYwXIkBx^L3;zPho4`ZMg`!7cF<|$h5#K4* zqE4P1uIF}v3x5vp%y^EI`qgv$Ggq=|fggHLVma&|A4-bdPBdZAVIC^8@QJCwRN2%5 z>Z?Q9;*uV8)iXt(!&>BUe-P;^8Z1J!5bNIeBfZlfU`xadxZjZs=XA2s`Em<- z?sFmkfg51Ib^`p7o=TTX50F-HCvWj=HyJ-PphkgJaMMknKX2KJIxSDJv|s|Y?GD7; zpN8!En{d3i<088zp^Fm_jzA}`A{-KC&7}(amS!( zTgfi2ps)&Sa^oq$X%h|+*#lL4!j8LIcq~nsJSC%W;Z#iukT*o;I)H0f=Om6=VkPjK zmT+cIR?_Kzqfs=wKi&zh;BvexU}(`zu#S3+yW}RbhvhGEXdC06%!tQInE$ zH<@jmZ9|pI?MS$y@e#H2;ijf3bZnW)oG#sCgDR)PZkM}sr~S0Gt!WMaG0}h-21_%~ z_eq>Hjbsa!Rd74hEhyz>F<4X$;!Ordv4w_zxS!9T!_QX4=Tl~|Wpa+t^J@|DeN(77 z_XW)GNry|r)Sztod${6rOPHO`r^ALjVa`iw2#^~N^~?H0o#0lhOHV+1VWxXuExthEO-y`d7&R-D8BSE0?kDISnp0l+VgoVvo4B&+B@Mm(Jp|Jwg&M!C)6P| zIYcZemBZgjEwl2uFF`RqXFUhCWe=G>{yl;1B! ze6y57%+k0GA+qd*)=oA%p$N-cA87zGdh=$)SDzRN&g2TJi zV2ZO8Q=cJ&r)=cN#_1;?c37Tz{VsFkn+7ti5>e?4?N)p@P>Gf}Jc3t3hvrRBDOMgR zqM0@ZsuZl<&1<-(FtgWdG#D>qBpG+>_BH_I(0-&CX-W>Sr+Rw!SDKK!@_jB7LxAl{3Y7b7dC)`KUh3oIi~!Vy@!YbtZ64@j8x4mZFiqL7a^36HHb= zOA`ubU=JQc%U9McwAPRzpQ zY5TxLzGAKt>3NM~OD0(3x7`WU`RW4HB&g8cEBCmlL(}M~oh*j$&%z(Jp%~Ww7q;fe zvJBM{SP>#*=cXM+pW&7GCrASyx=G_F2}=yWFMOwue2cF(d9Y5;6%+rC) z4}FlBL}5KYQASA&ff=90lLBLL@mj&VbZ$9BRrqrSn%l@Hc{JYv;~`)0jwueDNVW3U zfi>pR_W_@A>q#fvD$=DbLXV^Rxe3Lr@PjobSFyx51|FzMQ`eU$lnr;KlY?Yw(fH#S zlll^mT~@-<2_{_h-;vaAxP*cx3AwAl^|YelJr=CydgVsPh%s&`9q_$7b1QDlN`0~TSv%WP=-?n7pep7Lv~BCtW?C%V6S#jT%g zMQgq}(4V1e=;MWdI9}+O&vP(Ext!gQ!P`Oq5ixwB;D@=IyMPS83Omp}?zr;0(BH~A zFK&I>iVTbg2mUE%mI zJDU0YsOUr5HhNrPLK>6b^ZbF?!mPWE_j%%n)pZsyRP+gKa1@LY+_ot#clpT| z>bZ-1!(eYp6{o*uKaI1HrCr0vV?%rh?_mCbKQLo2s%2%t)91Fd?3)@@ZIPu4fje+f zTezQxZ=hsO(^^lnhBKS?5(aNSk1o0rOnw>SQiVuZCTiwA)^=jkq8f~jlVkZiB-jl7 z>-?>g!aGWJ9?Q}z;p)XhX+q*O3@U8o?B}=P%{C!dvUGu1+%p}`_2uc-FdrCen93Vm z_=>yj^>IwZ22lT;1AmetxYn~5`K4POaQ30!C{=J4I==6v)l%D;W?LPEn})FfpW9aQ z>ixwPn$K{?MqRL-YAsSzx1|q;7N|GyIX-o7z%}Rl;hf2@`4wpq_+pGQGmhWD_eB>$ zTk3ok;5mvq6f7~Jb_8!>m?ga1a#1Q?g*`P;qL_j;{MfC&+(@l^IKAOMI?fzNmb2H; z>28L{H@pDQc#EStv|#*=U}~PGLb{q`Xz!F=^ph8|Jz?W1FLgJ9f;F7Bw7{?VhGc6! zgvR&NC!3>|w0CMe9j@6#*CeA+;ofV!A*n>~Cj*{Ocf#M6KHP;9isW`laKB_2lS*nl zPm#j}hg2Y)PQT253e2?*ed$mC%tw%ckdHAbcED!^&eSz@JB8GA;`+=+tR7c_-zyR^ zf*(v7-lI{x&Wr`#!#KeMbtpnO`cl#Cg1}&3D@#wC z^N@FmL6;5tNN@aN8elz@&5Yau8?BE)Z1*WzZxY9Uvs;X&%3h@YD24PForEb{AAx3s zGsvfC(iey2)bd%(_3H?uROMHAJz*94g&skLCmj6Vasy?oW>ItG1)MQ32@Ow9;p@`7 ztQwC!M(#%j=v$1(?ZKnCP{&hZ2^BwVTl`yO@Gu9Bt5Tq);sYMg=TXL58eDe_0ScbL z?@!iY0=baRNeOI5K7t!lC3vjUqPg;Qi4jnA ziS1OcWQIN`XJc;YOi~Cpq{gE$pt#(`&wQVlzfX?g!V%uUOJv zgKJB!qh-KJx-P8-U90xdwP7nn*H08<)8;v(nv#z;76vRY(u8k(<47%v)wC%-So{tpI~W&F@X+tyzgbp;{L=OmY;U<|X^GF)Oj8SKu4;+0Rk z_{wul_)={Xc|Ej&l*DSz^!i(LNQvN2FFS-vWm?n{7!I!e?xOv!9yAiKrR^b>)c;ou z#Xeby+<-jjNLa=%?^LFkBq#2muz$!-wj}5AhhaDGK$&@sG}1^O<^3gSh2TAl7XB_@ z)AmB;n<&T(WkNls5s}OaQX`Jf?{`ko-uoV7w8XKx`c+5SNd6Y-ldkEtr6KJ8r zRkSv0f#Tpp==kb3TK+vluTP&Nzr_N-rEepbX&~&GjnnC;#8!GG+zWC>Ns}A*2VMut z3*F{!{{7Ss{PW^(ASKLC(oPSA)-UsTmB0FQ_OT>|$yf5D?+NZG&x<%EPZ@hQ3VZZl z(R{?VH~9Bg0M7pINH@;da*0lJ*ukP9e9z_exH>-x0vgZJx(}o2o`N5Byi%m4!S)a< z@Fzx{8$p*tK0#;EMAG}PmVLVv3~{+#7*^8-OPd!`_KljBc)P{7Ps!HIY6Xyn$hsjC_L(=0)8gjf)hnK)8YcLD2YArPvxlLq zMvQZIzD3*I)wELfBAgKBQKNguL-nQAIQ+{c+O_XFw>i<7w(V=e-tay=^(YH-;~tBr z3hz8~z3;eU=Wncfa}JBDE{H9V>|8s8Tv?C7-M zP1A9H*Onk`&B*4RWI{;QB8Kk2vPa)A2RvBy3oNR$F=74`_~&wvQU;~-zYV0=@neJN z&Ki5lqK~ESZ&JDNF(UHrHym9C-zFRwG+=n!I5xerb}pL`7E}#DwDOYsSww`)}gAN2+-7; zOPy7wEWJ)(h;AMXMTHt{W!q6iVfS?N_-1A_po5=Ke;JzMvU#t6l6>&IHFPIl@NHf@ zhpIoP;IY5IA*`}bB(;~LRX4&(raP0HzV0xdzxxsoo-M=Vern{bAanx0XJEw-b#86k zd9K285zd`0@LSvu;9>qbKGM#x9bEar85I>_#D9!nN?Jkyas=w zu%}EaMgQDX9JNP=qBAm3L4FBtGk=cbI2k(e@ggrR^gfsRoF>WKFX-yfkHrtD2j8XF zAzUVjzqf8B?VaC`9`9-7BR75FgLhBFXn`-h+*6;D)-0wEV?V*V%4Ctu+xd8+rx6dS z?x1;_c9T@xa7z25#FD}hj9$t@*S8e@M@cHR<`0JyxD88gsJO(*xZ2C76FSt(137sK(l`?acZAPaI9~&l<}069qgm7|tR2=T4iUN^V;eqVPwX1H zx^E7pi(3c2K4Q(HcYsuN4MVG61|oXyrVJ===1FgclPF5 zstZCjYH^&yclosj1>1YTCZHa4GW^iaPC6BQcK8}&r7esse;GC z@8Ng~9?*$D0z9a{;2YPAGo>Z>qhNdU5n8fWf?fZ$kvs?6l2qG4I{vQ}rH1Lj+5YRO zr28S~o*YDWbG^B#n$F}JyhT(x@+35lh=3gv)8Qv+LC{(!GD#l}%j5pSx9&JH5?k== zoMK37z7wTAe}aSKSJA8BPtd%e7=jkd(5#j$ve(!^QSZeV?Rf&0ej7}qXUI`&>t#Ov zh6h|fE{D!>fs`ZdggZ5k;Map6Vc)+y{K(JV{8t5C$hfEgF#{gMe2+CE*Q=V)x^+5* ze#pR`zV+ftfi-&|JOid*zl+iPb)i^rYVyIw+_mB%bbD?hZN95U`UPw7vZpS+H@ynJ z=i4!TtsiJ*8}OHPrf^@U%%b#HL-B`vJw~M}m$k3Tz<0a^Y?%zjsyWA}^$yn~*=_Eg?N8@<25{c)H1sRPvU&-rYyT$;enS?6&z zor_7{wS=>foIvHDjX*1)Kdv0JgDro2AKymJM3LQKmRmcDZn&l6HsdOc7%f5BvYDb+ zGeX$j;vD|-)=iLoA(Yj9*h}8d<5*wvXS^63!-qZ7<2_vRxD7$VTz`kaCRHICk-CgG z7P24G@scQOxPje&{s7lha_idnEs3 zd>J-h(4w6DR7@!r_LCuN(Xrny3~4-%CoiZnc6}OL?$Jfx(IwzMx{fkC+F;hPBVr3? zPAz%fST{|E?#z0@r-n3wN}ceox_O$s_DMj^%qpasIasrB3Ab}b4*%lgAQ+jMfFpK< z(eCdq)DMc#Kk>4_;BSK7J%>wUjI^1?=1wpiB26ON&snNTkxGv>4J>+yx30h9M!efW zF7~=iD&>#3|E$#zq3XxaTECRbADM+o$`eTK)-!%nX#pG&TpK}s@}&G%ophJ|}vHJ`c{jd@77*#)UolO(9}78Zj1IF@d6)YDofBF?eeh$5s0ih5+>*nhl2O<+aR77* z>&5BYRmJC%W%=WUhuEYs_wne~Ccf)vA{6cx)91O0bEr_pt}78>wlRy(ymf_BZ=8a2 zntx*5>p8Sb`Ya#XY03wcPv^pw@8hGoyKwHuFK(@7l@OQI7tQ(Z1NPktP~%z5na2!< zugBv--BO57FPDWSCNKERr2q=ce)HKzZ7`*wN7Q*BTUZTxaJG+Kn1!}2?7uaE|6B4J z`lfl~S#xuWA%d6bp}d;JX;iJei@vLtaoKgo+>W|ec&NWF4m~B$Vg@!?>m*!(&7W*& z&J`7k*f#)HOiISGb_Hmzl7j373o!iad2C+2Ui55$9)x%O=DCL)e`4iMto%qIvC62l z+W7!(7`Fo}W6QaU-IH+J+X;|YeiRH=jOQ~A(nW?%`?&`T1|dt$+ZJEb^Au|t!uWrZ{O+dyXijNEkou$C6@`0B#ZS2fgA%|)XAAM4Z*hMX^rwKd5_t4fxTHnK z^Ui5SoLS#lFqklbbx-jUirzI)zU&IWzPel-aD5FN-|F#IBz9b!1&Sl%T2nXH+2Np73D33PD;mUo|?BB~Xcxl#VCUxl` zo?Z5xTQgRZIqB5ncHNEa0F4j=8+w!0Z>{J!i8 zkW(~d%$Q>%D^~NRFJANEAJjSjw4ZdOM#^ULnXlsYr*ip}y#r~whc12{cnF*uyZJr8 zO5t}_0R|Xo;?F~!aAN)>s?oRvYQhCg)AKU^xaa^i$zOy5LW$^O)+U(lsE1FK2Ge;@ zPgaxKfRJIx64m$9XU&WF$9e>%pB>1oPOH-3-d#9UkRjNeauGsdULe(`4_?VVT*tie z*uDLNFl@O7*9PC=wtL5LEU5th{as0Yp6%R#Uk}B(|H9GHN}YPWVqu=LaG|@Uk7|pp zSl+$;`1#)j=)@t^sdo+s&pV9Sf^a3Y=m31~8A)1wx1rr~KfW4ggevduL*40M-f-It zL8d#6g#n}oi3ii}B{QnOGDEnjEK?hn~PBP?sMyL}EjJ7)y#loA4u z9cSTj{0n~Z#X;yics}in%K+_QO{SXr4io6&Gat(`M@?-q@Y13I zH%(ZyIF&-i+c3w!kFe;fGA@2sg^uOvqAu6ZT>i{8|37c87)Aeen|HYXZ@r)XpHubI z+&MP?2k)l;*QxsHoGm3;$Fax%^7zwT&+%T#L8x{7&R+jKOY4;;@n(v7y#LS}K$m9N z=z5pK(KR`2rT;>#dmG1|)mJgiT{kdaHHobo)}K~~Pr*s0FVTBzGzH8+>Nzx)89Pba zM9PP-(`~fBJBNY+le6*C>cAKwOctd&k;~S1Wd*)%6khd~Ocd_0*PD4Z zR{IE=9Xo}sGLPx^=il7Uv4X66Ni*EFxe77Xb1BPwGPB)s8+E&tnO*%5R`Q>dyr=-z zs8}!qVZi4%LDt51p*bqv8Vld2x8Re82zKbpc(J>c0qYRpXCsV`utvi#Od~v8G|*MS zrb;aov@?9LP^OR>rmuv*djxRA>o|5=C@IjQ3iuPD&D6~%uvXPn<~O~W=ItC%hJ$M0 zQcDO_K6othYKmqn9$Jef=Pdx-uT*xl`7qNw8Nnj8`hnJa?XvOL5}|(5IGaNFnnOp%N91rVt8^N~T2ZcRgDuWr_@;kR+l^QJK$suIrp{ z=fgSY^Zw9v?cLt*^Q`sz-FIL1uOW;yPaL7NQDdo9<$sErzr)xdo}165*Fy5AQ^7Rt5bW$oAd^+6 zDMG9R-m~wJ|BFDr_vHy1%}fnl`7?*o#Jp zN3%&!;|}qOCgk@ZjWRm-QlWXZzhUM%lU5Cqjc$A zkRX|oWrbeq$1Gxzl53pyAjAY7xSQI|o$L|M#z# zf>-qaI$5d6$UL2RgpC?LSllTZf~T8COaI(cl=5GuOH-Ou@z@k+u~@5ItkttlJlAdv zuBc8G=eKKdKK};e-NEks&N5A@v)4^F^|^sK-%?&`Z?YdmvxbY*_ZJA`e^30^HisRs z31BmI7E5ng^6bN;=P2e}(Ne)e+&uaLOS-&8oO!#D4ZP5VU7L4GgNJ@&Q>W#?iQQ+| z=_5&O*{x9V#IVUwtldxi;Ep1y4?2Xw0#c!GwHn6!I!d3?hqJ}4rqX>)6PbBk1e;R3 ziEUY32B~-N;hVa%tuAJ+B)} z1MZaLy|0PvdafP|*{Cd5PLvZ5`f`g6H&_a%10@*npbf32nG5TN`BJ4GHSr*?tMo2n zAoDETD*fXi5+AWyAwD|V9acY3lqy8O;Jpi0(6{>Mc&a%RuZ_qPt3-dn+bT(HpQVqa zHL908^K^iC#yUY2G=D!{8*j=crKqB(=NWGK=-J{E`TpW3>)gdFjvNxN=3Tg*6{UD+ zwX+Z<9D#+u1hwP(B-US7RV=^FL#lRYEE)Zp$8LngNIkyFOFz_SpstY+<;}B|j$ScI zd_?TPpM;T8?W@apjjM;4s3k>e=N>OEU;UQ(ov@ZpN*^tKe)R~e`I~@$5>~OR%MRkT zKNr~8oH0^^pgl~ss*V*6$dV>-Klw#V%h=;Sn$k0vB25m{#?sBE(pxhxu|cbLpl(Va zWUcyuBcx_*xa2u*lr0CPtRB>wRER3e3c$rqMr!X_%sR}9QLMfdf3J^{&L12u-J++4 zpCV+WZtbd4sX9hwa^(CDcb(O1&@b zWwqm##DM`JD3ch;(k%OloloeCi`~lk*TS!TZoH{W3b||GLFi8$`)##0XeN=SSx7B96ql^&1q-QyPLT9WAMvbNGj6y$ zgDv*jCVT=(($U$Y#G6l|xH`ukG=GkT>)~_7+14*ebx@d;Wz7*U9%UnK>9H3Nn{Cdj zzFJF%sSTxF2fnc#))we+=?9$JB&hG=vryPbV!^y5{4-l#tT!@^PpwVH&Kf_djK*vB ztFHmJtSVq9J~ZH+MzNsiILyw*{3pJ;+*7PRT@n8o1&VD~$BSR=I*u8w|FOA}I;KBt zlhjfFDOpf!wx5%(y%rw^rBVC(qY-O127XcUefyBI2ZrY+Er!t4+Lo$|z}U z<#s4m(vfO`xis0bo(mFQ3qH9U`6gF!Kz{`(*P<^yb*7qG^o|v4_VX4mPu_{AS8b9G zcsWR{WDl+-a`z<0i+ScE^OGw)8!7&lBQMQA*DU>ZC>niMdPtQLO)J{X~Spys${?d16`$q?1)v%0YnSoZn|j=Hy1n%)^liEEcib>^OC)kn?o z_|-8apSP6TH^l`vRceYGu871M|J6b1Aq{3`vjZ>sGG^y8Ozaih!JLa^#Yry9qzC6{ zGv%M0xaLYN);t;vMh5Pvpf?elcedk%PgN}I$}BdX%VDek975)hiv|%n;;!{`!~@dr z)8?VtV%2JY@r=K(m`Adq_~6-E-1hAS2KU;FGgAIRLE{^Cf8G@|onDI?} zZPD!gtQ7R!70yEcJ*M@S_pF>J=nG3?K^>$K=p5o|Ag%KI&uCvDd0gKNTK#fs^M_{>pN z+$lcA_IB=Jk2~}5>ga7~xuXt7uXsYwi(W9ZL$ws+s3zb(B+RQzM>=GWiMV1-D!YNd zaZ7v)*7Omv*)ipq|KJ-cDShGZJj}!y!NbJPtt+Gp`j)|;!{vB%hKF=di>+Axogr%( zEMg6l)x=SypHTA0k%bmlaa@jrxX%3(D-_N6( zI-ZpE_Y-J{n?*Ah2;uCC63O&Ci!tZt5zadS1@H8zw5C6A(_Kc>E+lj3h8Kf!ni===iYKlycgN~M+bJw? zH`MOarFP#7;Mx2N)XEprv2Zi8Hr7Gof5Z6x4XQX$eILK|eIzMF7{Z=w%6M{>CG84p z778Va{Cz<{-z-;3V=F9BJmV2KHOS)fjj8OOc|Xbvs>I->Mxv)f#CTgXMl^0#8u>p< z;Q~HqK=XDX3a>IA->#Vmt1J)lZ`?|#mb(DElFK-!dl8~1=870B$ZZTioOOw8az!tn z5ZX6y5MFTp4wFL)BomV@xVcwmGP~~Qu%W9PO4s(|Kh4>IC#DVKuLU?kkoRDkTR##H z*IpBiymgdo+IWrsKmI5E-_5B1_jy!CRwk+cThW*>JwXwD6;up|3Q;9fQXO!MJ8eIQ zWS+U>(G5{>In@A$^i{;Q8u4T`?If-LVb11t3wW&oMLbtFkIpU=Gxweecy~!WuhyUi zTNhQrTyF<{?Q1>m^!h)%NlgW<)O!vOz9&(RzBQ{_G8JaN7(zn|*K@a>r&0PPU3^}A zL2`M44;w#6hvq)~2~!H==-XZww(b%SYvHxXr|>SHvG5k{-PI49N>fpDCT7f*Qn^#GT_Kju!mD)IUem5-E zi-x`>M)YcqL{f8T7;L7S6ggKG`p=G_*c^S_v~2`S|1_WJ>MIIr-cVd7XpOzRoaoko zWKzEUfo!U)$T0OIY&pJwmMuu9F;}|a&+b_)tiLAqyL*?Dy<~u?Yp+mjnH)a+W1T+! zNc+sWsvEJJ@5iEvnGx$ZQGx4}8_CaIAB-;?_fo!HDsTSl6KypeDj@e-`Ahd5nZmuh zu->qV`){rj?vA)b6qyg7KdaEzuuR@5wv(nsou|((dA#Z8Gvw?00(xS@;V2(ZyDtRO z{s$Up^-K|azX*|upj@&FJVL!4u{<~C48*O{$DxB0CC^`d1NV|qy!H|&bloIq7dOaI zO=}bkUX}(+bGo7U{SX$~P(Y?X$79s|=Lk+_xP9IV{1^HMt)PWDB& zX%WI_{t%7{vFmBYjyTho@t<`BZR&wNe7@al$vbHoeOq}BvfLGTi_ah6)w4aY&Y=>D zE6&r2qn0GDci^Yh2rAvR@}juQa-6(y)9fRfj6SP}V7|;$_T9^nntnvF&{Rh@aH$Eq z=o(wGJ0>5_xSr#lS-XMDLlyjNvYGC`T@M;X78rJBC7ikZo|_@lK-DibS>gI|-}8W~KBFXKyu`cwAF`7C+40dqBeQa)2yvuPfXN8MB> z$=1&G+{_LqZi&o5$gokvr#rhTQhor z05{j6Ox3cEt69DgUU(kjRL(4B(VhM9s#Y=|s{91rdKYl3{tSZV!cKbUYf;hRF#`kB zH@Qq1qr#c5n96cu#DQH$&FP>3%+Fw%l7rFfVypdaWx zyGX5J39#kBV?N?j70v(onLK=-iW~+3OH2;>Lr&*O|=yiYWq{)do$>j*nzU{ z#PEBzj%KO%mht1dy`e*8Hzd9dp~+2c+_AG940`4VBLiz7p=ukMIhTXUSC5KO?K`?huGWHg@I`w+Ee zHNie%+P!rRV)Rodbepge_lus<@_GJjLYXj&5JfZbHyyTRtU7-Bu7@}0??R822l<80 z7ooCx03JV_PoW)O@y?Ft(Aj@CjJEEgfuB#}<=P|fG9Alqm_4Qw#d*A2k}zz5$zy6R}~tAv;l= zfY8Wc4qmP8&*n~2 z=3fjbhDX6uXxN5gh!UpImr9Nay5dsE_9|pU8cng<(p3Dqvyoh__u;76_i$cShiwQ8 z!=>w%2`HK`!08M`uQV&#IqDv76}E{5bxLps0c$ors2mc5db4T<5Zt@oOi}9^w0c5)*gQN+H5T7 zY`;LIp>OH5YXN^J*viw~n>RTH4xDSBjSgo-{I?AAS17J2gybvn*uV)r3n{K1qCKC{GH$5uFH zFq$;F!=Odp7cPpP(?To-xQYjzufU~iesH8M zfhIs8_jZE=-kagc{u%uNNF0rlFM~lrZ45-b^hfJ<70{dA&dn;_z*4rzvDUhG^zCjN zcucg%pK+hKZ7Xef7v(`L|ELM3c&z0L=6!S4-_j*=+_e~5PCVq#T=~K&U+KeDzVg9k zR}KMcOqw2@3dU(O#6D zrpj844REUvuXeHt5s-C{Xd>;#v*$*jje!=pwuZ7got^w*yCLEoWqEYWX9w;qH|0M% z+cU4|d;A!oZWgi96Q>QjirVejbi&=1{+4#rfoB$I6wASH1s(V(Ai}$5j7Ism4v4C9 zLg(@CDgCZ8ehEH<$98RImc~o)zrB0dz{|q(=}{amgmG{)lgGLKE}X|+4fN>rWg_{< zkp8P3uKis_No5lL$_X`g_sn42I8g>$a_*DMBO`YE(KfswQ~^@N_MqhZ5snBtoS&mk ztDg+m-&4!kwW6zn8gB^vx-^8bz+&QFj$*cSd#lf#gJ8TUnr}TW* zlM1C8-nb;_)1OXIu5gzW2B<90ryoi02ZKrBey~f?WDW6t zJpNIloV-QoER|>G^1k@R;h$)|Q7&vRcOt%RB~yJe1BXUhfy7bD4_9rb@!r)mLPs0d z_VlO3k1ycjNLiHmjSP%0(MILljD@L!}Q=IX9b#9)wDf9Xq%*wjDD7bD8tkm+MYQG4!?4q?0fnUl$ zQa~vDYL8$48wvX+D^l)PEAZc<2|Y*kxb6uxFmr_x8@IiSs~l%ZszR+J&HAh8yH*Lj z8ez`WZ9Br7zCe~2wTLY~ufhiH(#5*rXGqUl9jl+sCYz`wuM3sfMJRi(gx3|&+PN}9l~}-lR{xCz?`a2US8_0SSCeBu z=6&NctoMV5elo?bw8#7c9}=6}v4yTT`PPVYG@E}67IKp=M&ew%h)&juK+e4q% zy0cquMKE!@IW-uXFs3sW~36wZL8E}a?{Is}E zl}*=0Id1iw&+P~Nh3xIn`g<}g3tGT7RX9OU{Q%n3rO&1x`A&O23)PGX=HN5^8(p64 zPx3+xPybdQR+Vv;-d+q6IRv&#j#PWYjT9lO`@sqJmYCAX=Ke5S>n2_Q-c4)!XoBZ& z8w}|3f^e@czU<~=ifY(OXIF%S}DThJVIy`q?gT|@6<=J36T!qBOnru#6G0)#7fMmWJ33-Q1m^! zm*k$^#TABU*w@30XyK16te!symu+sTNZThwZyyb2>tAih+g*C>i*6Q|7cv+tOAhhl zn^Z8dC>PR~#G!2Ca8{%{j4eMA#-zeoclm-naC=({YF{pc=sMuuX6*) z{Vh>;B&HWt2S$F|aK2?5)RiAY=U*R10YL`{R~*2E=>dEYI|FvU2e79olk#;>O57eT z!n4*jFhJ)r=DwfE63?2jJDfj;{OEyqJtwJMuaSG&c8p%S%%Sdwqgc}WM7)3312-h( zV8q}Irq_1@os`uVd+N=@Ehd86!R_<(*%DuU`)W;5&|2qhNJxch=FB6?-9mAS{9ZWy&7Il02(Y=>5 z@%Zl>IC{4exjw#+9UK3WYip3GY}aId?(zdzqI^Y^zi$+~ZlFceHGj~Jam8rh=Rx)| z*Ql^=G^BqNaBfC^EU#)b?nuvsJ|9njUEgO|a5|Suv-ZYRC8B{>mt*y6E2#6*gq(_j zv`oOeu9@(hUpOSlndUZ9$(F&8W7Z^zQU3)?>e_j?K8HwOy|3uc+)TO`zLHA}3CADX zweUjN1JYY~kp{YFgHZKii+;OOtM_gkel`_*PTrt{{VmwJa^ar-SsBEe)kp(BLtxc* zTy$C)D$fb{%^R6QLLmXdt$iW$k%+D@_kzJA4OqX*{h&QM2AtwlDOP-nYyRs(3M+F# z@~?;6<|9v8-~Un1iXYHBv_C|t{}YXhH%BdvX0U%3NlVohLuQ&36orcHI-Ou>a~+EB zeHGdAs&eeNdpCTSD@0pwJJ@t1hqm_LOPewe0e5x3X#L^?Q2QqgLU$d84QYSCskWE1 z*jdF7z2^YpKLc6)%9q^q^96WwfHF7Qq967h9>^ULuuxpmKCu6{2g{bu$4SN^_-bSw z=&khUwhT96kA5cML8lh(VaFEwb|wX0@0<#={blgmAHv2iRaP+L7mn{Kz?QTa);)8Q zpk>`j8gkG0!=YUFNeb&n#h5^e@<5sfLw1Y*73`72Zip;o19l5S**P zOjo@@w~#C-Z+FJbrh#;_Zvuv55G%fD2v6T-3O7< ztk3FS-Qs%mcCj50hjAI>aH5SKri=G-cAUI)u_`bZn|tt}M??G|25?N&5}cE@8t1oP z#rR1J@TQ3hWprQVPnJ!k+E2r<*k&`BT$Hd?a!284mp@yo(uCcaZ*fe>T@c4w!r7Ob z@yGNe_V1sqSkhuoR}&-A(BT4EY;lB3$LFziK_P5V_GAdHQ$+1OGw7W2Z5S7C#{M|n z#jL2AZ1O}~N`Im&zT%Y3y02D3eRK}|99B+lqJ3&qABDdQiJ5 zoO{L+F4ULD)Eq!dgX;oD(u%2F+t22_wZsqGW}>r~K8AAB@u%8S#FAKcPuPpTt}bCM z|IUH9X9telC(jzYnn=;UhwCu!4>FH#;OOSM2K69e87o*sq z-B0*46Rg=d-3?eD9EQ*27T`TBXA3(VSlkq2@tN7{X_DSKOm(|Rx$Z}VEW%{`zAO%3 zjJ3s~akoH7eZa`31h%SkHoLxB&~z3(qWaos%n8W@)pyr$-dHvK_)3gt9(J<{N~T!P zCt>26t4uXz5WTyg#Eu>A1(z6a%z0);iFXQw8oeGabgvPaj`gNxO>bbJ-98A=jNpzZ zjO3eNS+T1<@+kJ#MUxsw*ej$&Ux}ySZnvA1SbPA&F1XW?!d>`oU@OL%xWF6RXl(0$ z9+D^RgY`=taAc-7hApq9D%ryjDj=}BS8ODy`hPGX@c{4O(@d9pz3Im8+t6&<#C`LR z;{OHfvQ<;I(LBW*d=jaFZ|z!1yI5J6p&r4N%31uJ^VQ_i_8W9R`og<9HFj}rBug+G z!p|Nm%t0Kic)rXC>*wu+Jj+n%nQ;aBYaE5FuYhhsZStby4nE-cHPXAXk!=q>MuGd~ z*%yCX7~@q3k%%rW6_H%u5Yd;Zb0A%}24WX2!wShs(u&&;`XPJpPR2}0sZA67J(xvnM(^Qn+&K?6 zC-!rT4CkTTuNXWR(hf`Vc0$GcI1>GE!O`FM@D=l1DQ2k?H2QBrC$&*H!%IlLnocIk zgaNqiXbiq{Enx{)_wa{&+^PAj8jIB)g-PAbw6OjF8qd2%3!lbn;1MQs6 zP9t(ZA5Oyt>M&c;w2GNqLRsJNBg7Z0p-1|6zNsaS45t);SyVFpDH+Pb-u|Nx#nX8A znz!_bFXUJ08e#3sZS>>dAHFfW6%O8Ak6ng0IN!=tet}Lk=RRZ=H&h{y*7~i3*c(CA zcFu}T)3PP+K??NKZvdaR=rHe}R!eg#fxS(YCkxYO+%+bk?Dn4J%B;&FPHr{042t1H zx+A#HoC&pAnd8$W2lA6MCKEkH$}SPG5Drarrsq2?oEppxoj8w1rB0))S(cELZO8t( z<#8|ahd|WdUjF@x0Lrbt3gaj4;!_uffjkOl5ucZ|_GXt$n@Tp{R&bxx()zP)!}?+1 zgYD40GMc8!&SRb9ZP?S{*$@{NOoN)ld``n^tTJUZdRY^UTUZN6Z)B0b-+R#1ImfRY zTmak0=8Hmjdsh4Q7~G$FOh^-J;?_Tzv?IuZ-So(Y+CF+De(?he>otgdEaFY9TDZah zZ!*~6K{e7R;ESJ(z(+E6ZI)iUd>!7;88qvUe zL(u$3A@^&|YRWh@hF81BLF}whxO85PSwS=xX(EIE-SSNDRyHSNH<(=&o8dK^`CQ_e zY4BYA5RKUv&D_+_l6~QB%Dx$k3*^S*c`p}u{jWekDqh6s*Q#tQHvw;j_rt+gVXt_zI}FGL^co*WqPBE&OivXhD5efdArG zqw~1{&SZwL^ZI1V?>`%d&qld3i>JHs%76W_Y~~n{3VNuPJ8E#R&oPMc-b~Fdm9RQ% zlu&OLQr-K?Y3Jb!Xkx64aihbb%j~SkKsOrG!uO+SRX&*un03WSZb}t-*`2PH>o%aIhHmU(*FSrpEO!LS4kQ76s@9xx5Al=ZXdSY z$&ISEKY~C|N0+!M(B0q(k+JL1bG|bR2wH(V?G)kgsnvLJU?G6b@Wv?PvE945s`7*DS&mnEfE=sl2!y7AVak+3mC|Yn2hi@K;n;h%m z$->RdNB<1&e>WJ1?DJ%GM{W3+7e}esrGx8VvWrfgp9&-AJS9I;*n`EuH`-i-8l-CnFc~T;uus9Q$gd&SK#|9CD!;?jlVkoEvyri z1NF9=oLb{$P`kUE53Lyty?t`w#+`CdK9K}-JjU@gL#^pT`$LMqJcyaU9mOUdOQDVp zyGhPclOJb(kK3W*3(>*45I*xAjam`QRX6UVKX2M4#tP;VD+Ob^o}5Mb@A^V*?qJNp zeGm@`l$SCJAMTZ9zJGcorK@z&^X6{;pz;9z)4D$FSiY1G_8rYhE3c5Dy$Tz$ZwKG; zYae}H{fm@sszKJU3C61$^T~e?kw=Rb%aGm1j~XO`94k3)`$j2zYgtA49`fjRfrG-> zau^*piJ#v4nmqJ&ut!djSoV811X2mNB%M8SDjYZ#8$l zxE7oRto62U2~ZIBi<@#eoD3$vgY=0am+}4H!+@fh7+fgqRAkC4W(B3eO~d1m{=ydC z#<{R485`KM%$=!RIUyN%@FZyH22-=3Jy|`W7Gj2Y!Lim|)HXuEiss(Ys^4A ze}0W{E|5p-$Y9*G*NHvY7lq|fp=> zk5EQg6J_=>bvq=6-xRr59jOqI+y`~jWEdtd1e2}>?EA?Q=vCHb#?`Tu&@IOy(&zEH9|w3Si}n zS-5VWh#U1?k&T>YfV;+I!12yb{zY#wEUa;2+0Goh++oE|!esWzZwL+_sE)@X5Ut9J z;M&@QV35C-Zy0fodM)BbrSJ7 z!tYN^GWDN1mRw)K1|F$`Db*XO%FP!acp^T_SHs_vzkp=rL(X9QFV61YS!{oO9H;oG zgZ?cQ8dkSilrek=ODw-ee-C9tr}H!ZjxbaDIQkw9HyX)K%_zbxGL`gY{8PAjGzx`*sN}t7(FWrg^-a&qi3WfaBDjkHe>LeAq_0AT;?k3)O3KSNF8n8#^U?^-iX$4vt?v zNoPO-h??(ki;i!CFNaRhM5Af&AHRf@R^-CRBH{aEa+m8B5QfbYE9kb60Xg#~9we?j z6%9i$&gzEptM_R9i_h>h$PES;tD|aV4PW1PIShT60vG!E;<>M8@O)Q{NVCeEJ#f_Y#v(F*OwI0kgjg;WY>4z|~qHbT3%%ryI)Vlr!ll z&B@*%nk)Z-DmFNw^2!yoVPjvm)cOE_LobWyVq4GX1_NZHU2fnX6gW@a1ew!Z*%s`a$kh?mhHgyC2*f_u~LR*BAs>Zimq-t0;W#YRv{U%wb!?UZHB!O*k>mhoXn{gTq4`>Fk3+ z*pe`w)#w2vT};G@=C3HrED)n+?SVM$IW*>Z8<~f$WYQ7g%=*fCFnT)`&U2G7zFrCY z*vR40s2Qy6_Cc(0^je_zu^?Xhj-SvCsGGtC4= zdmPp;5fXVh>!>R$2;>GX#e!dn@af8099m&aG3$+J*sXEk@1? z(Hd1bc<4P4RJ_)~GPg`F$o>Uw^puj(LTgx}XTap@uh0ek2&TW^5EW?`x5hS{-4BYQ zic`L{%2*LA1ax8I2y-%Dahi67>f*z^XEdU+fewVFz`sJWbCUdcwMxIY@N@F+{1T6goy^Fz4d_@ z^Ie=p@p16D8A{v#Suw{rHP)PZhF5g_!o|-kgx3E|SmY@guF8BTe9xOrQ@rY7+kzJU ztj8e=Nmx!jPvs@$L9)!e{3CQMswl6&sLmF6jDZ#IJlvh+2-%JJ*IRT$N`ApA`x4`4Oi{Yf8X`cFZDU_b87(P3kpUvU|} zM9)G^`E3B3SAcr^Ev~Tp1C3A@)X8o<$gKMXTAz;dg^9Z*7%Sm^-g0GcdxzuqV-Dq2 zDutwav5Al0F@P;zxeB-Rrh#1YdxDTmn3^mrZrk5RX8*oY{0w!p58aFVmk$;9`P(0j ziWS9b!tUQ=hYL>HXNE8P^}*rSWAU1hJE?8t*w`66De}E5tG^k^YzsHxryIL)*qwDS zQk2SEOMS3@;do&OGm3p!Xel1>YBoGn+lj&I$_+D_jKr*4;EfZz%fU?sqYdo7XQe^ zH~B;9w^tV0N6yA1ot>Pet~Ip2iNXIyJ$&&^o&CA1K zhhB51&!pnI0-+(PcN3;XSTi%#@#u8U3+J3afr&NUY+p-07zIudSG_NSqAU@9Uvvy} z9u8u$o8xdz*<1dD;t3qJ?+K<|4#%cDt6=R!RW@k~kBYwC@C1*td2c7-v!ty!W3mQh zJ{f`Q*5wFjcL#A@$xyNEM|%BZoApi<9!5A&%+b?4hTq za_R}JiY&)yNfPbZ6b)7P&Qt2mUMSjZiPPVY1^-I{tjLE$P2cr2O*IFq)z{LRk&nU3 zm?@r=p*eV3>b2Da`M@ynNwUF2Up`ywBRh=?reC3$C}I zX!UHEb8#(b8Ah?ydTn&v%%0s2`y}}^Z9kRG3IW*(Z%F&e4Qkjo2bBI>#lES0=cbNr z2X&tv`L)fyzw;hT6R0y2X6HB!UWb*YSfJ&Ec{20qXgh0ft{s@qbr8;>!wK_^lCxd85ue zQfjk?zUq%@VSJ(_F<~w_3fYT}hW)hmunavvForzaSEHY982SmlC`+wLqD}QC=zr!3 zDUJKaFX~7Jwed@!sA@GI-uEM^2-%@i2gb3vtA4=o!eK&=@f(deUrs^)f@sJrS5&-T z4NII(Nqi5ufS*|!ZEDs<`HiD^=S_MnsX7<9e#vlf@f^|$8c+3V!*NBsC%p;SMSrhe zA${*2`W&aj3Qu_8gcX}-D1p$>p(fReXu)YK5n=@6HPA0@c2o**7<|X zJjfI0S0+*1q~*9PZV$#aO{Nv~ZJ>8K1Fp=Q&Ni7nz;PugocV(Al$yC{ZcIA<*3adJ zIJ&Xq+7vui*9oG?$Mk*WKR991!fT!r;iViKHa>hc-CPogm22lS@5li-w?thO5OGo@ z+So#(TLYP%uaqJO7GR^VC*L{#FSJEGgX#Ynz~OokjfvWW=f_`!8Rr`4QrR{4My()0TZSX(5nBK3Hf>e9+rL`S+_S&I`cC%5rQ61vX%F8Qinl%l=inW2*93vmaXd)xeE4jg)Pp zkB_JHa<&_~_$rAJ+g+=Qx8oD}o5wP_h6Vwz`a=dZ3{Ob1m&r2C=0Q|vagHKz33+}w zF4=SK2J|!{L_HqPA})3DCnGg^wcjtn_T^$pddE8IdqJCJjc9^F?&E|$7~sU0i!pi9 zIZ5BzJlJ*TBtP1HB+KhC#)bA5$!_0IVp{}cURND$JavhlKG_0gnpu=Sbt;aIujd>6 zM`7$z9j2iu&+%a(*|^6 z+;&RbeuyhLtb##eVV7+Y%UM}OOIA(K7a3`$k}_`v7LKpreA#T2`{K#Gm6np$kLk4a z*;Z&<4Sea?0?JL(!F3gl^dYAY8)IsLymLAPUR(gHg3Vax#)X`vOEdV|Cve+K>p|Q) zh(#`U!uM0!1;qY()GnT6(4) zPP^(sN#{818>P-tcEqw;-WDJ4X>)$`Vi(BwCW$f^H&V>0N|;bo12J#qQ8~L0_WG`Bm5H=%wQjZ?%dv7pn1As}6~-wpYOyz5m$oJxS z*;)L{N8#Yon*yIAufWEJ{`A--gRV}>0XXymtWS=BslV2M!TJX@<5VHNl?Jn~-O4y$ zUl!Lr{g0lwKBSquKu}X}LbI5&{PNIV(Os`-zN1NxJr8+Lx|dvbVR z0vdxNxn|WNG_6~SY0B|j{JSCK(f*TeE-fa%>||&j-v`c|+zSuFdZBc$Ifkv-h_^;u zgUlIHFw^|QO?x^^f2y_h3Ca-rw z+pM`S=BlTFQ49y!{q9ro_>oNK%QarLW;K|#oTZ$>Msz!S7;b(Mftf3Zv1=wq{8T4J z_&ZnM<>Zb^UMc6dq`Xre_pb7RBiCbS;*uojTBykmryQk2u2bkw)))#anT!X$8L3ek z34x4JZ>YmF7BcwrpOM@d00$mL!K>Rr+*efu>Uu>a8&5t_$s1;T{PU@AC4b;2C)e}(?rW2%A=#8;;U0y zz>+;?vow#O|H06CKh*d~alEaeAq_%HrDS9jy3aYKh_sFDSxST?o3zkEq@q+tQYodO zai8-k$)-rw7cC=1Mo~h2pFiOK(Cyymem>{C->(<$^KxXH3WnfzVL!j4E(7J#-D$uV zGj{aYYp_#30c(st;pkr;c)j31d_1iiM$$AKvHk=$w0)q$)$_3`x{D}+})lhX>WBdmWR18CnjXT)ip5tgXmSex}9Dt;u+ws1U2fMQ_5f5KE1~tLi zLOy;89P2*Hp6Z_Fc3fJ8GG-clhD#C-kva+5CT;xo>BrzaO4)4Fdka(j82I}hX2;gI z!}7Q0Fq|JwX=_BtF55xWrQsBK{V6&)+Out)h8P(ejf-Ym@+Zy)lJ6V^n|m2yFn_`& z%#3nm$Zr+>+!jQ2b&}X?7%GGsqIwqfT~e52v(Qf| zH@C5HkB5h!)9_JZ8p!UPiJ$dX;-w9ZT<^niRHM5N$6s`TsRld6TkgzZ7meS;jo@H5 zdHzLuc=A2W7*vdhzxj}oRVse%EM$6WrI_y_bmz|=W#RqqICX{-m>issHfOwXrHeXD z_MU|GlkQMJPbN*hwT1suTY~QVUAX0X5LAc0hK)vQHvUa%oXVh)>}8FmO?&7Rcn zC*F(1Q_;bdP6stAT?RkIgkvgn>}5WyTIa`1BiJOv?YM9BFXk?p zSFzyrCUNc}H)eN!5t@)IC{md{HU5u%ykui@;#UlRXU-*5ejLT>mzh=;9I_-M zxnAb_Na61E%4`K-84Y8ubk9npw@J6HZMTO6V>A#b`}(ol+{r(EfnZ%xrdlQB4ejKGroS>G`7U*&xS%=PT8d;G8&zGc%Q->$P zxhq#i$|sU(sK+siudJci6a6r~MUm3~C{s(b6+4t;!1lRELEMuQ=vL_r-Z#~DIcm$2L3a)8U^CFoRu0xq)z2tJ!n=O+yU$vJ&wA7((2n!os= zuhf`@g#y?2Ae>G&9O09besXaJ`j{s5ouAF0;0lx@!9`Yrh1hO|y(63WSc?mwl;*}% zTntd<#2Ipsy~*7Ue@qkQ17U{CIqqukN3r5RbJmop$>kg0hq}=@kSaSHET%q#+RBbi4oJ>>%>$)j$+>z?&Nj)d5Yfj0fr07(o+qJ7&P;u^|FyO z>B^g@Z_qZQw=`r?nppa)6HSvG4aV7J6jOhJ^JV|I zh1=EH4oz!OXm|opqK&J*x7q1hP z(KX$FIYs5?AYqq6jyiT2Cs|G*hquE*@#l(7f}$>Jt?+Cc|BQR7rq6~tTmmOS-z0tS zGeq>*pz&Kn&b@0eH`XeeHt)1xZM9Qy*U9Zb8V~5^-)xdxz7g~8M z(~o_sd|}c_eq+*SeueW%uKHv@tzEksu0=*saL*NZ+up)0Pg==eZpq~-y1^ClFLzi&XoNax1Lsy zO2xJJ2BP=KnZr}bW}ySNo}JIk{AQ5H9zUFIr;ATay>Pt1|9IPc zpW4c0V3l_{h7MW9tqC(^t>@keU4t@``{2c_9;9L4B3pAO>PT(S8~CU@=}_6Dw5XkJ;EY4jACrtd8%0$AoKvE zaUZ9Lv`ckK(dHKQ13<=z$?z;SH+%4INl>R@K{bvftNV+&uM#^8s+!|<2H zO5S^lIUPSUlYLGIMg5ztyw{h0(fm>2@Mzpg<~8XycHBKnyst5Hnz|KBoF3v3ETL18 zh~`_KK!(t{^_i?;w^y=)uY+tBzm39)`t#6U@eY|-A7E~w51~P8EOWT|mpiB>VH2*X!A=g+#Z}E> zsvYZ#Gft@DhuN=b?O46plOai1VJTjE6+}Hccg3 zka;{y$cN^zdBvAlx&CofNo>S0se|w-YbD-3cp82e-G&&GW$gTer|3MR5>JmU#b+zk zE2l2#tO(2AZ(~xih#wzYg3b~Z7>Md@M9NjXls${}_#pJtl+WZ;RQhEGd5y@GAl#OeGoXv+J8gRaOAetv+(xOL6I5;ww3*GL-0&=C9 z)!aGwGJXZqw;W^hy73XNlO4xBiLSw#y!qHK^iMM1HW15hg^AZZ@lQx3Tu$kN*g>A` z(BhjE{B1q8l@4KZD~qTpN*STo5#=W_T!Vzoi{3q0a@ZfF zI_mk<$Dx>75e=WE_p+)L75KDu9)3JO7?j_aapyDh8Or8h#tSd@!jR*(Z!r??jP7_U zv4GotHiQr93d1Y!&hnL0+QG!RhKqbt$P$l-(fN4>nDQlza~a)0kE8UMx2ezvq4Dq} zS54UMYu3O1m(-?hrlo$^(_7YWOdGHXDEQ z3zmvk;+c|~nQj(DtX^QAvTtokV*ZU0jxU1Nnx8$ErdmV27Jb0Q6U8e8$2_eW4EltusL zyXj#d33)4jD9Ag&I;9rlvHM?Ph{|fPxonFaGO9Q)v>3le9Khv&7IJpOwFM%r1k*Cw z0s()*F>!kUH|I+&UVJ^BUL;Jx+@5(j#&$h+c1^}-8>W)I-cdL_rJCez-cdA0gezZET4mll#KnJh7C2_e_(G6;S&-9}VG-XH3SWmKk(YcLY5!o5>zJ%CZ+i zZ*6qQPtGN-p3bi>2h+3392YPh8YU^@cm;o~Iito^kF=oSTUBwye>#kd*hG`vl-R1@ zCG^$Sn5=wXaromP+_d^2@>qLD>@)Wo-<5ZYyOo_wj{JKl{MSMy>qNLz-$dY8{e|}> zWqj3yGH|*&52S_y<(rIym(Ch+c5$WXT~;iY)8|8_Ip-nbtS;y7H=4=Jmc{zNo9N=R zKV0(SY;sf(;t(b~*y*X?pr9d+_WZgB3j^N3j&l=u?NecN?Lq=6mNrti&QQ80aAurq zqp2iHj|)U=u>Y*UJaVqm^^I=)Jl={g*H3}M&50!aZHUOt={$MahjNc@Fi_aEm`3gK zgy|Os;M2e3nf#P+zE&=iit;6dj=^{+epE}>7p!ABt4<4N$5!ebwU1X;E`j~&TWNXn zN8UJdJvpit2r9n$qES=qKySPqCYdYHjz8u6mQBb~V^`p#9cHw5&>eos;@RZ6LYa3y z8VdPWtYf%pOJy(R+F3rS zi&}+CxWmGG^($s3D}HZDd(|$&Eg^ℑMa426j@8!cnxJCJ)iyWCg0xGI)?!M?dcV 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 z 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

-;-N(Vig^PsT_!9W?$_b!aa;nWzwwpLCN`gUh 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

|&R+F3N5sRO^Qk06u0FW?*c$@IemKFYdn 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 z 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 OlarB=ej}6DTK*40*h(b; diff --git a/configuration.json b/configuration.json index 5c51637..53d716f 100644 --- a/configuration.json +++ b/configuration.json @@ -3,8 +3,7 @@ "representation": { "type": "cumind.core.resnet.ResNet", "num_blocks": 2, - "conv_channels": 32, - "hidden_dim": 128 + "conv_channels": 32 }, "dynamics": { "type": "cumind.core.mlp.MLPWithEmbedding", diff --git a/scripts/exportconfig.py b/scripts/exportconfig.py old mode 100644 new mode 100755 index 238592e..1b280fe --- a/scripts/exportconfig.py +++ b/scripts/exportconfig.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 from cumind.utils.config import cfg if __name__ == "__main__": diff --git a/scripts/plot.py b/scripts/plot.py old mode 100644 new mode 100755 index f2a613c..96102fc --- a/scripts/plot.py +++ b/scripts/plot.py @@ -1,24 +1,17 @@ -import re -import matplotlib.pyplot as plt +#!/usr/bin/env python3 import datetime import os +import re + +import matplotlib.pyplot as plt + def parse_log_file(filepath): - episode_re = re.compile( - r"(?P

t~?2mU_d!SA_~ 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 z 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