File size: 3,961 Bytes
2884f0c
 
 
 
 
 
 
 
 
 
685c827
 
 
 
 
2884f0c
 
 
685c827
 
 
2884f0c
685c827
2884f0c
 
685c827
2884f0c
685c827
 
 
2884f0c
685c827
 
2884f0c
 
 
 
 
 
 
685c827
2884f0c
 
 
685c827
2884f0c
 
 
 
685c827
 
2884f0c
 
 
 
 
 
685c827
 
 
 
 
 
 
 
 
 
 
 
2884f0c
 
 
 
 
 
 
 
685c827
 
2884f0c
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
---
license: mit
datasets:
- jantrom/tile-obstacle-maps
tags:
- Robotics
- motion-planning
- path-planning
- diffusion
---
# Assets to host outside GitHub

This directory mirrors the exact paths `scripts/download_assets.py` expects, so
an upload can be verified and reproduced without guessing where anything goes.

It is a local staging area. It is **not** uploaded: `subir.py` ignores it, and
the Hugging Face repositories carry their own dataset and model cards.

## Layout

    upload_assets/
    β”œβ”€β”€ README.md                  this file (not uploaded)
    β”œβ”€β”€ checksums.txt              sha256 of every asset below
    β”œβ”€β”€ subir.py                   the upload script (not uploaded)
    β”œβ”€β”€ tile-obstacle-maps.npz     -> dataset repo root
    β”œβ”€β”€ artifacts/
    β”‚   └── ckpt_tiles_seed1{01..06}/   -> same path in the model repo
    β”‚       β”œβ”€β”€ diffusion_model.pt      the weights used for evaluation
    β”‚       β”œβ”€β”€ modelo_final_ema.pt     the same weights, EMA copy
    β”‚       └── ultimo.pt               RESUME checkpoint: weights + EMA + AdamW state
    └── optional_derived/          NOT uploaded, NOT fetched by download_assets.py
        └── artifacts/metrics_seed*/.../maps.npz   per-repetition generated maps

The assets are split across two Hugging Face repositories, because HF treats the
two kinds differently:

* `datasets/jantrom/tile-obstacle-maps` β€” the dataset and both held-out splits.
* `jantrom/tile-obstacle-diffusion` β€” the `artifacts/ckpt_tiles_seed*/` tree.

## What went up

Sizes are decimal MB, the same unit Hugging Face displays.

| Path | Uploaded | Notes |
|---|---|---|
| `tile-obstacle-maps.npz` | yes | 171 MB. sha256 `95a20e222a46057d1bfc3cb1d55c359fa1bca9d9ac064b8302c4bd2ceabdfcfe`, the value in Table I. |
| `ckpt_*/diffusion_model.pt` | yes | 39.2 MB each. What the evaluation loads. Seed 101 alone reproduces the whole battery. |
| `ckpt_*/modelo_final_ema.pt` | yes | 39.2 MB each, the EMA copy of the same weights. |
| `ckpt_*/ultimo.pt` | yes | 156.9 MB each. Only needed to resume training β€” it carries the AdamW optimizer state, which roughly triples the file. Uploaded anyway so the model repo matches `checksums.txt` and `CHECKPOINT_FILES` in `download_assets.py`, which both list all three files. |
| `optional_derived/` | no | 98 small `maps.npz` (~9 MB) holding the generated maps per mosaic repetition. Raw evidence behind Table VI and the diversity metrics; nothing reads them and they are regenerable. |

Totals: **171 MB** in the dataset repo, **1.41 GB** in the model repo
(6 Γ— 39.2 + 6 Γ— 39.2 + 6 Γ— 156.9).

Dropping the six `ultimo.pt` would save 941 MB, but it would also mean editing
`checksums.txt` and `CHECKPOINT_FILES` so that `download_assets.py --check` does
not fail on six missing files. Keeping them costs nothing but disk.

## Verify before and after uploading

    # every asset against the manifest
    python3 - <<'PY'
    import hashlib, os
    for line in open("checksums.txt", encoding="utf-8"):
        s = line.strip()
        if not s or s.startswith("#"):
            continue
        h, p = s.split(None, 1)
        p = p.strip()
        if not os.path.exists(p):
            print("MISSING", p)
            continue
        d = hashlib.sha256()
        with open(p, "rb") as f:
            for blk in iter(lambda: f.read(1 << 20), b""):
                d.update(blk)
        print("OK  " if d.hexdigest() == h else "BAD ", p)
    PY

After uploading, the same check from the other end:

    python3 scripts/download_assets.py --check

## A note on disk

The `.pt` and `.npz` files here are hardlinks to the copies in the repository
working tree: they share the same inode, so this directory costs no extra disk.
Deleting the repository's copies is safe β€” the data stays here. Moving this
directory to another filesystem turns the hardlinks into real copies and the
space is spent for real.