Add 10-seed headless ONNX evaluation
Browse files- README.md +57 -0
- evaluation.json +148 -0
- evaluation_by_seed.csv +11 -0
README.md
CHANGED
|
@@ -7,6 +7,28 @@ tags:
|
|
| 7 |
- mujoco
|
| 8 |
- ppo
|
| 9 |
- microduck
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
---
|
| 11 |
|
| 12 |
# Microduck flat-walking PPO — Colab study run
|
|
@@ -43,6 +65,41 @@ This repository documents a personal study run that installs Pollen Robotics' Mi
|
|
| 43 |
|
| 44 |
The video was reviewed before publication as a qualitative success check. This run has not been tested on a physical Microduck. One video and one seed are not a statistical performance benchmark.
|
| 45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
## Files
|
| 47 |
|
| 48 |
- `policy.onnx` — deployable policy with observation normalization
|
|
|
|
| 7 |
- mujoco
|
| 8 |
- ppo
|
| 9 |
- microduck
|
| 10 |
+
# MULTI_SEED_MODEL_INDEX_START
|
| 11 |
+
model-index:
|
| 12 |
+
- name: Microduck flat-walking PPO seed42
|
| 13 |
+
results:
|
| 14 |
+
- task:
|
| 15 |
+
type: reinforcement-learning
|
| 16 |
+
name: Flat-ground locomotion
|
| 17 |
+
dataset:
|
| 18 |
+
name: Microduck simulator seeds 100-109
|
| 19 |
+
type: microduck-simulator-seeds-100-109
|
| 20 |
+
metrics:
|
| 21 |
+
- type: success_rate_no_termination
|
| 22 |
+
name: Success rate without termination
|
| 23 |
+
value: 1.000000
|
| 24 |
+
- type: mean_forward_velocity_mps
|
| 25 |
+
name: Mean forward velocity (m/s)
|
| 26 |
+
value: 0.258120
|
| 27 |
+
- type: mean_reward_per_step
|
| 28 |
+
name: Mean reward per step
|
| 29 |
+
value: 0.147762
|
| 30 |
+
# MULTI_SEED_MODEL_INDEX_END
|
| 31 |
+
|
| 32 |
---
|
| 33 |
|
| 34 |
# Microduck flat-walking PPO — Colab study run
|
|
|
|
| 65 |
|
| 66 |
The video was reviewed before publication as a qualitative success check. This run has not been tested on a physical Microduck. One video and one seed are not a statistical performance benchmark.
|
| 67 |
|
| 68 |
+
|
| 69 |
+
<!-- MULTI_SEED_EVAL_START -->
|
| 70 |
+
## Multi-seed headless evaluation
|
| 71 |
+
|
| 72 |
+
The uploaded `policy.onnx` was evaluated without rendering across 10 deterministic evaluation seeds. This tests one policy trained with seed 42; it is not a multiple-training-seed study.
|
| 73 |
+
|
| 74 |
+
| Eval seed | Mean reward/step | Mean velocity (m/s) | Mean absolute velocity error (m/s) | Terminations | Success |
|
| 75 |
+
|---:|---:|---:|---:|---:|:---:|
|
| 76 |
+
| 100 | 0.1413 | 0.236 | 0.264 | 0 | ✅ |
|
| 77 |
+
| 101 | 0.1487 | 0.271 | 0.232 | 0 | ✅ |
|
| 78 |
+
| 102 | 0.1460 | 0.225 | 0.276 | 0 | ✅ |
|
| 79 |
+
| 103 | 0.1482 | 0.291 | 0.212 | 0 | ✅ |
|
| 80 |
+
| 104 | 0.1444 | 0.227 | 0.274 | 0 | ✅ |
|
| 81 |
+
| 105 | 0.1447 | 0.221 | 0.279 | 0 | ✅ |
|
| 82 |
+
| 106 | 0.1480 | 0.276 | 0.228 | 0 | ✅ |
|
| 83 |
+
| 107 | 0.1524 | 0.250 | 0.250 | 0 | ✅ |
|
| 84 |
+
| 108 | 0.1500 | 0.290 | 0.215 | 0 | ✅ |
|
| 85 |
+
| 109 | 0.1540 | 0.295 | 0.207 | 0 | ✅ |
|
| 86 |
+
|
| 87 |
+
### Aggregate results
|
| 88 |
+
|
| 89 |
+
| Metric | Result |
|
| 90 |
+
|---|---:|
|
| 91 |
+
| Evaluation seeds | 10 (`100`–`109`) |
|
| 92 |
+
| Steps per seed | 400 |
|
| 93 |
+
| Mean reward per step | 0.1478 ± 0.0036 |
|
| 94 |
+
| Mean forward velocity | 0.258 ± 0.028 m/s |
|
| 95 |
+
| Mean absolute velocity error | 0.244 ± 0.027 m/s |
|
| 96 |
+
| Total terminations | 0 |
|
| 97 |
+
| Success rate without termination | 100.0% |
|
| 98 |
+
|
| 99 |
+
Raw, machine-readable results: [`evaluation.json`](evaluation.json) and [`evaluation_by_seed.csv`](evaluation_by_seed.csv). No new video was generated because the policy did not change.
|
| 100 |
+
|
| 101 |
+
<!-- MULTI_SEED_EVAL_END -->
|
| 102 |
+
|
| 103 |
## Files
|
| 104 |
|
| 105 |
- `policy.onnx` — deployable policy with observation normalization
|
evaluation.json
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"evaluation_type": "single_trained_policy_multiple_evaluation_seeds",
|
| 4 |
+
"generated_at_utc": "2026-09-07T03:01:09.935197+00:00",
|
| 5 |
+
"policy_file": "policy.onnx",
|
| 6 |
+
"policy_sha256": "82a2369fe642eda505ee6d60c7ed26aafd177eb7484030834cd04e5a53035213",
|
| 7 |
+
"training_seed": 42,
|
| 8 |
+
"source_checkpoint": "model_3999.pt",
|
| 9 |
+
"protocol": {
|
| 10 |
+
"task_id": "Mjlab-Velocity-Flat-MicroDuck",
|
| 11 |
+
"evaluation_seeds": [
|
| 12 |
+
100,
|
| 13 |
+
101,
|
| 14 |
+
102,
|
| 15 |
+
103,
|
| 16 |
+
104,
|
| 17 |
+
105,
|
| 18 |
+
106,
|
| 19 |
+
107,
|
| 20 |
+
108,
|
| 21 |
+
109
|
| 22 |
+
],
|
| 23 |
+
"num_seeds": 10,
|
| 24 |
+
"steps_per_seed": 400,
|
| 25 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 26 |
+
"rendering": false,
|
| 27 |
+
"video_generated": false,
|
| 28 |
+
"policy_runtime": "onnxruntime-cpu",
|
| 29 |
+
"actions": "deterministic"
|
| 30 |
+
},
|
| 31 |
+
"per_seed": [
|
| 32 |
+
{
|
| 33 |
+
"seed": 100,
|
| 34 |
+
"rollout_steps": 400,
|
| 35 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 36 |
+
"mean_reward_per_step": 0.14128163651563228,
|
| 37 |
+
"mean_forward_velocity_mps": 0.23589461453258992,
|
| 38 |
+
"mean_absolute_velocity_error_mps": 0.2643511279672384,
|
| 39 |
+
"termination_count": 0,
|
| 40 |
+
"success_no_termination": true
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"seed": 101,
|
| 44 |
+
"rollout_steps": 400,
|
| 45 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 46 |
+
"mean_reward_per_step": 0.14869166431948544,
|
| 47 |
+
"mean_forward_velocity_mps": 0.27104998455848545,
|
| 48 |
+
"mean_absolute_velocity_error_mps": 0.23166746033821256,
|
| 49 |
+
"termination_count": 0,
|
| 50 |
+
"success_no_termination": true
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"seed": 102,
|
| 54 |
+
"rollout_steps": 400,
|
| 55 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 56 |
+
"mean_reward_per_step": 0.14602043539285658,
|
| 57 |
+
"mean_forward_velocity_mps": 0.2245279321074486,
|
| 58 |
+
"mean_absolute_velocity_error_mps": 0.2757411253452301,
|
| 59 |
+
"termination_count": 0,
|
| 60 |
+
"success_no_termination": true
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"seed": 103,
|
| 64 |
+
"rollout_steps": 400,
|
| 65 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 66 |
+
"mean_reward_per_step": 0.14819012811407448,
|
| 67 |
+
"mean_forward_velocity_mps": 0.29148244574753335,
|
| 68 |
+
"mean_absolute_velocity_error_mps": 0.2116375322631211,
|
| 69 |
+
"termination_count": 0,
|
| 70 |
+
"success_no_termination": true
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"seed": 104,
|
| 74 |
+
"rollout_steps": 400,
|
| 75 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 76 |
+
"mean_reward_per_step": 0.14435075111687184,
|
| 77 |
+
"mean_forward_velocity_mps": 0.22676853544602638,
|
| 78 |
+
"mean_absolute_velocity_error_mps": 0.273739144433639,
|
| 79 |
+
"termination_count": 0,
|
| 80 |
+
"success_no_termination": true
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"seed": 105,
|
| 84 |
+
"rollout_steps": 400,
|
| 85 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 86 |
+
"mean_reward_per_step": 0.14471292811096645,
|
| 87 |
+
"mean_forward_velocity_mps": 0.22117613712325693,
|
| 88 |
+
"mean_absolute_velocity_error_mps": 0.2788238628767431,
|
| 89 |
+
"termination_count": 0,
|
| 90 |
+
"success_no_termination": true
|
| 91 |
+
},
|
| 92 |
+
{
|
| 93 |
+
"seed": 106,
|
| 94 |
+
"rollout_steps": 400,
|
| 95 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 96 |
+
"mean_reward_per_step": 0.14796128492802382,
|
| 97 |
+
"mean_forward_velocity_mps": 0.2755377550085541,
|
| 98 |
+
"mean_absolute_velocity_error_mps": 0.22814512956538238,
|
| 99 |
+
"termination_count": 0,
|
| 100 |
+
"success_no_termination": true
|
| 101 |
+
},
|
| 102 |
+
{
|
| 103 |
+
"seed": 107,
|
| 104 |
+
"rollout_steps": 400,
|
| 105 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 106 |
+
"mean_reward_per_step": 0.15238978615030646,
|
| 107 |
+
"mean_forward_velocity_mps": 0.24962244590977206,
|
| 108 |
+
"mean_absolute_velocity_error_mps": 0.2504566774680279,
|
| 109 |
+
"termination_count": 0,
|
| 110 |
+
"success_no_termination": true
|
| 111 |
+
},
|
| 112 |
+
{
|
| 113 |
+
"seed": 108,
|
| 114 |
+
"rollout_steps": 400,
|
| 115 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 116 |
+
"mean_reward_per_step": 0.14997595064342023,
|
| 117 |
+
"mean_forward_velocity_mps": 0.28972968977410346,
|
| 118 |
+
"mean_absolute_velocity_error_mps": 0.21514052021782845,
|
| 119 |
+
"termination_count": 0,
|
| 120 |
+
"success_no_termination": true
|
| 121 |
+
},
|
| 122 |
+
{
|
| 123 |
+
"seed": 109,
|
| 124 |
+
"rollout_steps": 400,
|
| 125 |
+
"commanded_forward_velocity_mps": 0.5,
|
| 126 |
+
"mean_reward_per_step": 0.1540444320999086,
|
| 127 |
+
"mean_forward_velocity_mps": 0.29541337831818965,
|
| 128 |
+
"mean_absolute_velocity_error_mps": 0.2067692495981464,
|
| 129 |
+
"termination_count": 0,
|
| 130 |
+
"success_no_termination": true
|
| 131 |
+
}
|
| 132 |
+
],
|
| 133 |
+
"summary": {
|
| 134 |
+
"mean_reward_per_step": 0.1477618997391546,
|
| 135 |
+
"std_reward_per_step_population": 0.0036446650806754564,
|
| 136 |
+
"mean_forward_velocity_mps": 0.258120291852596,
|
| 137 |
+
"std_forward_velocity_mps_population": 0.02831245410335961,
|
| 138 |
+
"mean_absolute_velocity_error_mps": 0.24364718300735694,
|
| 139 |
+
"std_absolute_velocity_error_mps_population": 0.026886847320684554,
|
| 140 |
+
"total_terminations": 0,
|
| 141 |
+
"successful_seeds_no_termination": 10,
|
| 142 |
+
"success_rate_no_termination": 1.0
|
| 143 |
+
},
|
| 144 |
+
"limitations": [
|
| 145 |
+
"This evaluates one policy trained with seed 42; it does not measure training-seed variance.",
|
| 146 |
+
"The test covers one fixed forward command and simulation only, not physical hardware."
|
| 147 |
+
]
|
| 148 |
+
}
|
evaluation_by_seed.csv
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed,rollout_steps,commanded_forward_velocity_mps,mean_reward_per_step,mean_forward_velocity_mps,mean_absolute_velocity_error_mps,termination_count,success_no_termination
|
| 2 |
+
100,400,0.5,0.14128163651563228,0.23589461453258992,0.2643511279672384,0,True
|
| 3 |
+
101,400,0.5,0.14869166431948544,0.27104998455848545,0.23166746033821256,0,True
|
| 4 |
+
102,400,0.5,0.14602043539285658,0.2245279321074486,0.2757411253452301,0,True
|
| 5 |
+
103,400,0.5,0.14819012811407448,0.29148244574753335,0.2116375322631211,0,True
|
| 6 |
+
104,400,0.5,0.14435075111687184,0.22676853544602638,0.273739144433639,0,True
|
| 7 |
+
105,400,0.5,0.14471292811096645,0.22117613712325693,0.2788238628767431,0,True
|
| 8 |
+
106,400,0.5,0.14796128492802382,0.2755377550085541,0.22814512956538238,0,True
|
| 9 |
+
107,400,0.5,0.15238978615030646,0.24962244590977206,0.2504566774680279,0,True
|
| 10 |
+
108,400,0.5,0.14997595064342023,0.28972968977410346,0.21514052021782845,0,True
|
| 11 |
+
109,400,0.5,0.1540444320999086,0.29541337831818965,0.2067692495981464,0,True
|