alunxu commited on
Commit
03d0e7c
·
verified ·
1 Parent(s): 0a52915

README: clarify frames-per-ckpt mapping (blind=10.06M, sighted=5.0M)

Browse files
Files changed (1) hide show
  1. README.md +21 -14
README.md CHANGED
@@ -4,19 +4,29 @@ Frozen post-training DD-PPO PointNav agents on Habitat for five visual sensor
4
  conditions on a shared ResNet-18 + 3-layer LSTM (512-d) backbone. Hidden
5
  state `h_2` (top LSTM layer) is the canonical 512-d cognitive-map readout.
6
 
7
- | folder | encoder | final ckpt |
8
- | ------------------- | ------------------------------------------------------ | ---------- |
9
- | `blind/` | no visual encoder | `ckpt.34.pth` |
10
- | `coarse/` | 48 x 48 RGB, 1 x 1 encoder feature map | `ckpt.49.pth` |
11
- | `foveated/` | 256 x 256 RGB, eccentricity Gaussian blur, 4 x 4 map | `ckpt.49.pth` |
12
- | `foveated_logpolar/`| 64 x 64 log-polar resampled, ~2 x 2 map | `ckpt.49.pth` |
13
- | `uniform/` | 256 x 256 RGB, no blur, 4 x 4 map | `ckpt.49.pth` |
14
 
15
  The **full training trajectory** is included for every condition (one
16
- checkpoint per DD-PPO save event): sighted ckpts `0..49` (50 each),
17
- blind ckpts `0..34` (35). This supports per-checkpoint training-time
18
- analyses (subspace evolution, probe-R^2 trajectories, eigenspectrum
19
- emergence, etc.) at the finest available granularity.
 
 
 
 
 
 
 
 
 
 
20
 
21
  ## Load a checkpoint
22
 
@@ -42,9 +52,6 @@ Each `.pth` is a habitat-baselines checkpoint with keys `state_dict`,
42
 
43
  ```python
44
  from habitat_baselines.common.baseline_registry import baseline_registry
45
- from habitat_baselines.utils.common import get_action_space_info
46
- from habitat_baselines.config.default import get_config
47
- from habitat.config.default_structured_configs import HabitatConfigPlugin
48
 
49
  # 1. Build the same env the policy was trained on (for obs/action spaces).
50
  env_config = config.habitat # already inside ckpt
 
4
  conditions on a shared ResNet-18 + 3-layer LSTM (512-d) backbone. Hidden
5
  state `h_2` (top LSTM layer) is the canonical 512-d cognitive-map readout.
6
 
7
+ | folder | encoder | # ckpts | frames per ckpt | converged ckpt |
8
+ | ------------------- | ------------------------------------------------------ | ------- | --------------- | -------------- |
9
+ | `blind/` | no visual encoder | 35 (`0..34`) | 10.06 M | `ckpt.34.pth` (~342 M frames) |
10
+ | `coarse/` | 48 x 48 RGB, 1 x 1 encoder feature map | 50 (`0..49`) | 5.0 M | `ckpt.49.pth` (250 M frames) |
11
+ | `foveated/` | 256 x 256 RGB, eccentricity Gaussian blur, 4 x 4 map | 50 (`0..49`) | 5.0 M | `ckpt.49.pth` (250 M frames) |
12
+ | `foveated_logpolar/`| 64 x 64 log-polar resampled, ~2 x 2 map | 50 (`0..49`) | 5.0 M | `ckpt.49.pth` (250 M frames) |
13
+ | `uniform/` | 256 x 256 RGB, no blur, 4 x 4 map | 50 (`0..49`) | 5.0 M | `ckpt.49.pth` (250 M frames) |
14
 
15
  The **full training trajectory** is included for every condition (one
16
+ checkpoint per DD-PPO save event). Note that `frames per ckpt` differs
17
+ across conditions, so to align across conditions at the same training-step
18
+ anchor, convert ckpt index to absolute frame count first:
19
+
20
+ ```python
21
+ FRAMES_PER_CKPT_M = {
22
+ "blind": 10.06,
23
+ "coarse": 5.0,
24
+ "foveated": 5.0,
25
+ "foveated_logpolar": 5.0,
26
+ "uniform": 5.0,
27
+ }
28
+ # blind ckpt.20 ~= coarse ckpt.40 (both ~200 M frames trained)
29
+ ```
30
 
31
  ## Load a checkpoint
32
 
 
52
 
53
  ```python
54
  from habitat_baselines.common.baseline_registry import baseline_registry
 
 
 
55
 
56
  # 1. Build the same env the policy was trained on (for obs/action spaces).
57
  env_config = config.habitat # already inside ckpt