Spaces:
Running on Zero
Running on Zero
Download config.yaml from guyPerry/scatteringnet: direct link, hf CLI and curl.
- Browser
- Download file 3.57 kB
-
https://huggingface.co/spaces/guyPerry/scatteringnet/resolve/main/config.yaml
- Command line
-
hf download hf://spaces/guyPerry/scatteringnet/config.yaml
-
curl -L -o config.yaml https://huggingface.co/spaces/guyPerry/scatteringnet/resolve/main/config.yaml
3.57 kB
| # Experiment settings for the occupancy MLP MVP. | |
| # `device` is still detected at runtime in src/config.py (CUDA vs CPU). | |
| # --- Model Architecture --- | |
| hidden: 64 # Number of hidden units (channels) per layer in the OccupancyMLP | |
| depth: 4 # Number of hidden linear layers in the MLP network | |
| seed: 1 # Same seed as the previous extrude_nr1 train | |
| # --- Path Configuration --- | |
| data_dir: "E:/Work_stuff/scatteringNet/data" # Base root directory where all NPZ dataset files are stored | |
| # --- Training Hyperparameters --- | |
| epochs: 20 # Same length as the knn24-n2048 G5 clone (compare IoU to that best.pt) | |
| lr: 0.001 # Initial learning rate | |
| batch_size: 1024 # Points per optimizer step (GPU mini-batch) | |
| optimizer: adam # adam | adamw | sgd | |
| # BCE inside-class weight. auto = n_outside / n_inside on the train split. | |
| # Omit or null = unweighted BCE (legacy / 18-09-31 clone). Head is unchanged. | |
| pos_weight: auto | |
| # --- Split --- | |
| # Whole meshes: 80% train / 20% val of unique OBJs. All NPZs of one OBJ stay on one side. | |
| # This split selects best.pt (not a locked holdout). Phase 2 Step 11 adds that. | |
| val_fraction: 0.20 | |
| # --- Geometry --- | |
| # none = xyz-only OccupancyMLP. surface = envelope (XYZ + face normal) + OccupancyEncoder. | |
| # Occupancy labels stay in the NPZ. New trains write envelope_dim=6 on best.pt. | |
| shape_encoder: surface # none / surface | |
| n_surface: 2048 # Envelope samples on the joined OBJ (area-weighted face darts) | |
| knn_k: 24 # Neighbors per query (not envelope count). Same head as knn24-n2048 inspect / G5 clone. Fresh train; do not resume that mix-75 best.pt. | |
| # knn_local_dim: 64 # z_local width; omit to use latent_dim / hidden | |
| # latent_dim: 64 # OccupancyEncoder z width; omit to use hidden | |
| # --- Catalog --- | |
| # npz_catalog wins over npz_glob. Each row is all meshes for that glob unless | |
| # max_shapes is set (unique OBJs, sampled with seed; still max_files_per_shape NPZs). | |
| # Varied/organic and combo* are omitted on purpose. | |
| # Fallback glob is unused while npz_catalog is set. | |
| # Smooth extruded_* is back (same glob as knn24-n2048 inspect). High-round | |
| # extrude_* stay s0.08. Primitives and nr1 stay s0.15. nr3 is omitted. | |
| # max_files_per_shape keeps lattice + one jitter. | |
| npz_glob: "exports/dataset/*.npz" | |
| npz_catalog: | |
| - glob: "exports/dataset/cone_*.npz" | |
| - glob: "exports/dataset/cube_*.npz" | |
| - glob: "exports/dataset/cyl_*.npz" | |
| - glob: "exports/dataset/gear_*.npz" | |
| - glob: "exports/dataset/helix_*.npz" | |
| - glob: "exports/dataset/pipe_*.npz" | |
| - glob: "exports/dataset/platonic_*.npz" | |
| - glob: "exports/dataset/prism_*.npz" | |
| - glob: "exports/dataset/sphere_*.npz" | |
| - glob: "exports/dataset/torus_*.npz" | |
| - glob: "exports/dataset/extruded_*occupancy_s0.08*.npz" | |
| - glob: "exports/dataset/extrude_*_nr1_*.npz" | |
| max_shapes: 40 | |
| - glob: "exports/dataset/extrude_*_nr4_*occupancy_s0.08*.npz" | |
| max_shapes: 90 | |
| - glob: "exports/dataset/extrude_*_nr5_*occupancy_s0.08*.npz" | |
| max_files_per_shape: 2 | |
| # --- Run logs --- | |
| # Suffix for runs/<YYYY-MM-DD_HH-MM-SS>_<name>/. Device is detected at runtime, not stored here. | |
| run_name: prim_extruded_nr45_knn24_n2048_n6_pw | |
| # --- Checkpoints --- | |
| # Scalar used to decide models/<run_id>/best.pt (strict improve). No last.pt. | |
| # The run snapshot (runs/<id>/config.yaml) records: | |
| # total — planned epoch count (copied from epochs) | |
| # checkpoint — epoch index stored in best.pt (runtime; not a project knob) | |
| # val_iou = keep the epoch with the best inside overlap (not overall accuracy). | |
| checkpoint_metric: val_iou | |