AbstractPhil's picture
Update README.md
1c2ea9a verified
---
license: mit
---
# geolip scene classifier proto
Disposing of the old concept we now have a robust factory to test and utilize for synthetic scene construction.
This will be expanded as training continues, and will start at less shapes first to increase model complexity training to more.
In this repo has a simple colab testing script that will activate the repo and test the baseline shape structures. Not bad for a day.
```
"""
try:
!pip uninstall -qy geolip
except:
pass
!pip install "git+https://github.com/AbstractEyes/glip-autoencoder.git" -q
"""
```
Looks like claude took some shortcuts, I'll fix them tomorrow.
```
βœ“ All imports resolved
======================================================================
FORWARD PASS TESTS β€” Device: cuda
======================================================================
── SimplexFactory ──
βœ“ numpy regular (shape=(5, 10))
βœ“ torch regular (dtype=torch.float32)
βœ“ numpy random (shape=(5, 10))
βœ“ torch random (dtype=torch.float32)
βœ“ numpy uniform (shape=(5, 10))
βœ“ torch uniform (dtype=torch.float32)
βœ“ regular edge uniformity (edge_std=0.00000000)
βœ“ reproducibility
βœ“ CUDA build (device=cuda:0)
── CayleyMengerFormula ──
βœ“ volume > 0 (vol=0.023292)
βœ“ is_valid
βœ“ regularity ~1.0 (reg=1.000000)
βœ“ edge_lengths shape
βœ“ degenerate detected (vol=-0.00e+00)
βœ“ batched volume shape
βœ“ batched edge_lengths
βœ“ gradient through volume
βœ“ numpy backend
── CayleyMengerValidator ──
βœ“ gram_volume_sq shape
βœ“ validity_loss scalar (val=0.000000)
βœ“ consistency_loss scalar (val=1728.068359)
βœ“ regularity_loss scalar (val=0.928428)
βœ“ combined_loss scalar
βœ“ validate bool tensor
βœ“ analyze returns dict
── KSimplexLinear ──
βœ“ forward init=regular (out=torch.Size([4, 256]))
βœ“ forward init=random (out=torch.Size([4, 256]))
βœ“ forward init=uniform (out=torch.Size([4, 256]))
βœ“ input!=output forward
βœ“ batched (2,16,64)
βœ“ gradient flow
βœ“ per-channel differentiation (diff=1.856000)
βœ“ simplex template shape (shape=torch.Size([5, 5]))
βœ“ param ratio < 0.2 (ratio=0.1490)
── CrystalSuperpositionHead ──
βœ“ scores shape (no gates)
βœ“ proj shape
βœ“ scores shape (with gates)
βœ“ zero-fill fallback
βœ“ diagnostics has keys
βœ“ no collapsed crystals (collapsed=0)
βœ“ edge regularity (edge_std=0.0000)
βœ“ crystal reproducibility
βœ“ forward init=regular
βœ“ forward init=random
βœ“ forward init=uniform
── RoseLoss ──
βœ“ loss scalar (loss=5.6436)
βœ“ info has rose (rose=5.6436)
βœ“ info has collapse (collapse=0.0000)
βœ“ info has f1 (f1=0.1091)
βœ“ CM passthrough
βœ“ CM=None works
βœ“ crystal grad from loss
── ShapeFormulas ──
βœ“ volume: sphere β‰ˆ 4Ο€/3 (vol=4.0610 expectedβ‰ˆ4.1888)
βœ“ volume: convex_hull > 0 (vol=5.6000)
βœ“ volume: voxel > 0 (vol=7.2721)
βœ“ volume: monte_carlo > 0 (vol=1.3512)
βœ“ surface_area: sphere β‰ˆ 4Ο€ (area=12.3096 expectedβ‰ˆ12.5664)
βœ“ quality: sphere > 0.7 (q=0.8856)
βœ“ quality: cube > 0.7 (q=0.9100)
βœ“ quality: line < 0.7 (q=0.6990)
βœ“ quality: outliers < 0.5 (q=0.3772)
βœ“ quality: all keys
βœ“ quality: batch (2,N,3)
βœ“ classifier: sphere->sphere (got=sphere)
βœ“ classifier: cube->cube (got=cube)
βœ“ classifier: cyl->cylinder (got=cylinder)
βœ“ validator: sphere valid (score=1.0000)
βœ“ validator: all check keys
βœ“ transform: rotation preserves distances
βœ“ transform: scale fails rotation check
── SimpleShapeFactory ──
βœ“ factory cube: classifies correctly (got=cube)
βœ“ factory cube: quality > 0.7 (q=0.9100)
βœ“ factory sphere: classifies correctly (got=sphere)
βœ“ factory sphere: quality > 0.7 (q=0.8856)
βœ“ factory cylinder: classifies correctly (got=cylinder)
βœ“ factory cylinder: quality > 0.7 (q=0.8964)
βœ“ factory pyramid: classifies correctly (got=pyramid)
βœ“ factory pyramid: quality > 0.7 (q=0.8278)
βœ“ factory cone: classifies correctly (got=cone)
βœ“ factory cone: quality > 0.7 (q=0.7873)
βœ“ sphere embed_dim=5
βœ“ 5d sphere: unit norms (mean=1.0000)
βœ“ cylinder 5d: dims 3-4 zero
βœ“ shape reproducibility
βœ“ scale=3.0 range (max=2.99)
βœ“ metrics: volume key
βœ“ metrics: quality key
βœ“ metrics: classification key
βœ“ CUDA shape build
── ShapeDeformer ──
βœ“ deform stretch: changes points (mean_diff=0.028808)
βœ“ deform stretch: preserves shape
βœ“ deform twist: changes points (mean_diff=0.134114)
βœ“ deform twist: preserves shape
βœ“ deform taper: changes points (mean_diff=0.038202)
βœ“ deform taper: preserves shape
βœ“ deform noise: changes points (mean_diff=0.023275)
βœ“ deform noise: preserves shape
βœ“ deform shear: changes points (mean_diff=0.026289)
βœ“ deform shear: preserves shape
βœ“ deform bend: changes points (mean_diff=0.040808)
βœ“ deform bend: preserves shape
βœ“ random deform: has meta (type=stretch)
βœ“ deform invariance: 26/30 correct (acc=86.67%)
βœ“ deform stretch mag=0.8: finite
βœ“ deform twist mag=0.8: finite
βœ“ deform taper mag=0.8: finite
βœ“ deform noise mag=0.8: finite
βœ“ deform shear mag=0.8: finite
βœ“ deform bend mag=0.8: finite
βœ“ deform 5D twist
── SO(5) Rotation ──
βœ“ SO(5) det=1 (det=1.000000)
βœ“ SO(5) orthogonal (err=1.19e-07)
βœ“ SO(5) torch det=1 (det=1.000000)
βœ“ SO(5) torch orthogonal (err=2.38e-07)
βœ“ SO(5) preserves norms
── SceneBuilder ──
βœ“ scene: points shape
βœ“ scene: labels shape
βœ“ scene: point_labels shape
βœ“ scene: overlap shape
βœ“ scene: n_shapes in range (n=2)
βœ“ scene: meta count
βœ“ scene: all finite
βœ“ scene: points in [-1,1] (max=0.8141)
βœ“ scene: labels match meta (meta={2, 4} labels={2, 4})
βœ“ scene: no orphan point labels (orphans=0)
βœ“ scene: cylinder has labeled points (n=263)
βœ“ scene: cone has labeled points (n=249)
βœ“ scene: overlap >= membership (violations=0)
βœ“ scene: meta keys
βœ“ scene: rotation is 5x5
βœ“ scene: rotation is SO(5) (det=1.000000)
βœ“ scene: reproducibility
βœ“ scene: different seeds differ
βœ“ scene: different label combos possible
βœ“ batch: points shape
βœ“ batch: labels shape
βœ“ batch: point_labels shape
βœ“ batch: overlap shape
βœ“ batch: label diversity (unique_combos=7/8)
βœ“ batch: all finite
βœ“ batch: all in [-1,1]
βœ“ scene torch: type
βœ“ scene torch: shape
βœ“ batch torch: points
βœ“ stream: count
βœ“ 1-shape: n_shapes
βœ“ 1-shape: exactly 1 label
βœ“ 5-shape: n_shapes
βœ“ 5-shape: labels match unique types (labels=3 unique=3)
βœ“ scene validate()
βœ“ scene CUDA
── End-to-End Pipeline ──
βœ“ factory->formula valid
βœ“ gradient -> KSimplexLinear
βœ“ gradient -> crystals
βœ“ e2e < 5s (elapsed=0.01s)
======================================================================
Results: 155 passed, 0 failed out of 155 tests
All forward passes operational.
======================================================================
```