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.
======================================================================
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support