tbhugging/camera_orbit_compact_09_2b
What this model does
Given 6 camera-orbit views (0°, 60°, 120°, 180°, 240°, 300°) of 128×128 projections from the GummyBear Tomography dataset, the model predicts
- particle_x
- particle_y
- particle_z
coordinates of the embedded particle.
Architecture
Per-view GAP (pooled) CNN trunk → camera sin/cos geometry tokens →
compact fusion MLP (e2e_pooled_geometry_fusion).
Final Report M9 Step 2 / 09_2B — compact head (f2_state).
- Hub: tbhugging/camera_orbit_compact_09_2b
- Companion dataset: tbhugging/gummybear-tomography
- Runnable report: GummyBearTomography_Final_Report.ipynb (M9 Step 2 — 09_2B pooled ladder)
- Source study checkpoint: checkpoints/m9/m09_e2e_pooled_geometry_fusion.pt (
f2_state/m09_2_e2e_pooled_geometry_fusion)
Training configuration
- Protocol:
09_2B(pooled GAP; excludes 09_2A Fourier) - Backbone:
pooled_gap(pooledtrunk) - Input field:
anomaly_ref - Normalisation:
per_image_zscore - Camera orbit:
0°, 60°, 120°, 180°, 240°, 300°(6 views) - Geometry:
sin_theta, cos_theta(concat) - Fusion: hidden
128, depth1 - Targets:
particle_x, particle_y, particle_z - Builder:
GeometryAwareFourierFusionLocalizer.for_09_2_pooled() - Variant:
m09_2_e2e_pooled_geometry_fusion - Trainable parameters:
132358 - Stage-A learning rate:
0.001
Evaluation Results
Structured scores for the Hub widget are declared in the YAML model-index / metrics metadata (Model Cards — Evaluation Results).
Testing Data
- Dataset: tbhugging/gummybear-tomography (config
m8_1) - Splits:
validation,test - Protocol: Final Report M9 Step 2 / 09_2B (camera orbit 0°, 60°, 120°, 180°, 240°, 300°,
anomaly_ref,per_image_zscore, GAP pooled trunk only, compact geometry fusion; excludes 09_2A Fourier) - Source checkpoint: checkpoints/m9/m09_e2e_pooled_geometry_fusion.pt (
f2_stateonly)
Metrics
Reported error is Euclidean RMSE over particle (x,y,z):
d_i = ||pred_i - y_i||_2, then RMSE_total = sqrt(mean_i d_i^2).
Hub metric id: rmse (display name RMSE_total (Euclidean xyz)).
Results
Scores match the Final Report M9 Step 2 09_2B pooled GAP bar (not 09_2A Fourier; not element-wise MSE).
| Split | Metric | Value |
|---|---|---|
validation |
RMSE_total (Euclidean xyz) | 1.320252 |
test |
RMSE_total (Euclidean xyz) | 0.860746 |
Source: Final Report M9 Step 2 / 09_2B.
Load
import torch
# libraries from https://github.com/tbgitoo/gummybear-tomography
# Historical class name — use .for_09_2_pooled() for this GAP checkpoint only.
from tomography_ml.localization.localize_multiview import (
GeometryAwareFourierFusionLocalizer,
)
n_views = 6
view_angles_deg = [0.0, 60.0, 120.0, 180.0, 240.0, 300.0]
model = GeometryAwareFourierFusionLocalizer.for_09_2_pooled(
n_views=n_views,
view_angles_deg=view_angles_deg,
)
views = torch.zeros(1, n_views, 1, 128, 128)
model(views) # materialise lazy layers
state = torch.load('pytorch_model.bin', map_location='cpu', weights_only=True)
model.load_state_dict(state)
model.eval()
xyz = model(views)
Input tensor shape: [batch, n_views, channels, height, width].
Do not load with .for_09_2() (that builds the 09_2A Fourier trunk).
Also excludes single-view M8, 09_3 large fusion, and M10 illumination stacks.
Inference
For an example with worked download, model instanciation and inference, see: 11_2_test_camera_orbit_compact_09_2b.ipynb in the github.com/tbgitoo/gummybear-tomography repository.
- Downloads last month
- 17
Dataset used to train tbhugging/camera_orbit_compact_09_2b
Evaluation results
- RMSE_total (Euclidean xyz) on GummyBear Tomography (M8 catalog, M9 multi-view)validation set Final Report M9 Step 2 / 09_2B (pooled GAP)1.320
- RMSE_total (Euclidean xyz) on GummyBear Tomography (M8 catalog, M9 multi-view)test set Final Report M9 Step 2 / 09_2B (pooled GAP)0.861