| --- |
| 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. |
| ====================================================================== |
| ``` |