1
Fork 0

Deployed 9f99470 with MkDocs version: 1.6.1

This commit is contained in:
github-actions[bot] 2026-05-19 21:27:06 +00:00
parent 149b30e3a5
commit 0683fa9415
3 changed files with 117 additions and 6 deletions

View file

@ -619,6 +619,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#reproducing-experiments" class="md-nav__link">
<span class="md-ellipsis">
Reproducing Experiments
</span>
</a>
</li>
</ul>
@ -1224,6 +1235,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#reproducing-experiments" class="md-nav__link">
<span class="md-ellipsis">
Reproducing Experiments
</span>
</a>
</li>
</ul>
@ -1256,14 +1278,14 @@
</code></pre></div></p>
</li>
<li>
<p><strong>Edit <code>configs/experiment/my_experiment.yaml</code></strong> to set your experiment parameters:
<div class="highlight"><pre><span></span><code><span class="c1"># @package _global_</span>
<p><strong>Edit <code>configs/experiment/my_experiment.yaml</code></strong> to set your experiment parameters:</p>
</li>
</ol>
<div class="highlight"><pre><span></span><code><span class="c1"># @package _global_</span>
<span class="nt">experiment</span><span class="p">:</span>
<span class="w"> </span><span class="nt">exp_name</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;my_custom_run&quot;</span>
<span class="w"> </span><span class="nt">seed</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">42</span>
</code></pre></div></p>
</li>
</ol>
</code></pre></div>
<h2 id="training-execution">Training Execution</h2>
<p>To start a training run with the default settings defined in <code>configs/main_config.yaml</code>:</p>
<div class="highlight"><pre><span></span><code>uv<span class="w"> </span>run<span class="w"> </span>python<span class="w"> </span>scripts/train.py
@ -1278,6 +1300,31 @@
<p>By default, the trainer saves checkpoints but does not evaluate them. To enable automatic headless evaluation of every saved checkpoint, set <code>evaluation.evaluate_checkpoints=true</code>:</p>
<div class="highlight"><pre><span></span><code>uv<span class="w"> </span>run<span class="w"> </span>python<span class="w"> </span>scripts/train.py<span class="w"> </span>evaluation.evaluate_checkpoints<span class="o">=</span><span class="nb">true</span>
</code></pre></div>
<h2 id="reproducing-experiments">Reproducing Experiments</h2>
<p>To ensure scientific validity and allow other researchers to reproduce your training runs, follow these steps:</p>
<ol>
<li>
<p><strong>Lock Environment Dependencies</strong>:
Always use the exact environment lockfile when running experiments. Run:
<div class="highlight"><pre><span></span><code>uv<span class="w"> </span>sync<span class="w"> </span>--frozen
</code></pre></div>
This guarantees that the same package versions (including JAX, Flax, and MuJoCo) are used.</p>
</li>
<li>
<p><strong>Save and Locate Configuration Metadata</strong>:
Every time you start a training run, the configuration is fully resolved by Hydra and saved as a metadata YAML file:</p>
</li>
<li>For checkpointed steps: <code>runs/&lt;run_dir&gt;/checkpoints/&lt;prefix&gt;_step_&lt;step&gt;_metadata.yaml</code></li>
<li>For the final model: <code>runs/&lt;run_dir&gt;/final_model_metadata.yaml</code></li>
</ol>
<p>This metadata file contains every active hyperparameter (e.g., learning rate, morphology configuration, PPO parameters, etc.) for that specific run.</p>
<ol>
<li><strong>Re-Run with Pinning</strong>:
To reproduce a run, execute the training script with the configuration parameters specified in the metadata file, making sure to reuse the same seed:
<div class="highlight"><pre><span></span><code>uv<span class="w"> </span>run<span class="w"> </span>python<span class="w"> </span>scripts/train.py<span class="w"> </span><span class="nv">experiment</span><span class="o">=</span>my_experiment<span class="w"> </span>ppo.learning_rate<span class="o">=</span><span class="m">0</span>.001<span class="w"> </span>experiment.seed<span class="o">=</span><span class="m">42</span>
</code></pre></div></li>
</ol>
<hr />
<p>For more details on evaluation metrics and comparison tools, see <a href="../evaluation/">Evaluation</a>.</p>
<p>For more details on tracking your experiments, see <a href="../tracking/">Tracking &amp; Monitoring</a>.</p>

View file

@ -255,6 +255,28 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#core-requirements-guides" class="md-nav__link">
<span class="md-ellipsis">
Core Requirements &amp; Guides
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repository-structure" class="md-nav__link">
<span class="md-ellipsis">
Repository Structure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#design-architecture-design" class="md-nav__link">
<span class="md-ellipsis">
@ -1110,6 +1132,28 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#core-requirements-guides" class="md-nav__link">
<span class="md-ellipsis">
Core Requirements &amp; Guides
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repository-structure" class="md-nav__link">
<span class="md-ellipsis">
Repository Structure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#design-architecture-design" class="md-nav__link">
<span class="md-ellipsis">
@ -1152,6 +1196,26 @@
<h1 id="documentation">Documentation</h1>
<p>Welcome to the Brittle Star project documentation. This codebase contains the implementations and research for the scientific evaluation of controller modularity in brittle-star-like robots trained using Reinforcement Learning.</p>
<p>For the core codebase, scripts, and contribution history, visit our <a href="https://github.com/SELab-3-2026/SEL3-2026-Groep-4">GitHub Repository</a>.</p>
<h2 id="core-requirements-guides">Core Requirements &amp; Guides</h2>
<ul>
<li><strong><a href="DEVELOPMENT/">Installation Instructions</a></strong>: Steps to set up your development environment locally or in a devcontainer using <code>uv</code>, including GPU configuration. For High-Performance Computing (HPC) setup details, see the <strong><a href="HPC/">HPC Guide</a></strong>.</li>
<li><strong><a href="api/training/">How to Run Experiments</a></strong>: A complete guide on running training jobs, setting custom hyperparameters, and overriding config options using Hydra.</li>
<li><strong><a href="api/training/#reproducing-experiments">Reproducing Experiments</a></strong>: Best practices for reproducing past training runs using exact seeds, dependencies, and automatic metadata logging.</li>
<li><strong><a href="#repository-structure">Repository Structure</a></strong>: Overview of the directories and files within the codebase.</li>
</ul>
<h2 id="repository-structure">Repository Structure</h2>
<div class="highlight"><pre><span></span><code>.
├── configs/ # Hydra configuration files (YAML)
├── docs/ # Comprehensive documentation and API guides
├── runs/ # Default output directory for Hydra and training artifacts
├── scripts/ # High-level entrypoints for training, simulation, and evaluation
├── src/
│ ├── brittle_star_project/ # Core library and environment logic
│ │ ├── evaluation/ # Checkpoint evaluation, rollout logic, and metrics persistence
│ │ └── trainers/ # Training loop implementations (e.g., PPO)
│ └── experiment_logger/ # Standalone logging package
└── tests/ # Unit and integration tests
</code></pre></div>
<h2 id="design-architecture-design">Design &amp; architecture (<code>/design</code>)</h2>
<p>If you are interested in the "why did you do it like this?"</p>
<ul>

File diff suppressed because one or more lines are too long