add sofia models
This commit is contained in:
126
src/models/sofia_v71/__init__.py
Normal file
126
src/models/sofia_v71/__init__.py
Normal file
@@ -0,0 +1,126 @@
|
||||
"""SOFIA v7.1 — student model for cross-view geo-localization (CVGL).
|
||||
|
||||
Architecture:
|
||||
stem → stage1 (StripDCN-lite) → stage2 (StripMixConv)
|
||||
→ stage3 (MambaVision MV5) → stage4 (MambaVision MV1)
|
||||
→ 1×1 neck → asymmetric Sat/UAV heads
|
||||
|
||||
Key novel components:
|
||||
- StripDCN-lite: Strip DW with adaptive offset on one axis
|
||||
- MambaVision MV5: Mamba ∥ MHSA ∥ Strip 3-way parallel
|
||||
- CircularHarmonicPool: formally SO(2)-invariant UAV head
|
||||
- AltitudeFiLM: telemetry-aware conditioning
|
||||
|
||||
Presets (see config.py):
|
||||
- SOFIA-M (~500 M params, 500 MB INT8) — default
|
||||
- SOFIA-L (~1 B params, 1 GB INT8) — max scale
|
||||
- SOFIA-Tiny (~5 M) — reference from original v7.1 spec
|
||||
|
||||
Quick start:
|
||||
from sofia_v71 import build_sofia
|
||||
model = build_sofia("M")
|
||||
out = model(sat=sat_tensor, uav=uav_tensor, altitude=alt_tensor)
|
||||
g_sat, g_uav = out["g_sat"], out["g_uav"]
|
||||
|
||||
See README.md and HYP_SOFIA_v7_UltraDeep_дизайн.md for full design rationale.
|
||||
"""
|
||||
|
||||
from .config import (
|
||||
SOFIAConfig,
|
||||
sofia_l_config,
|
||||
sofia_m_config,
|
||||
sofia_tiny_config,
|
||||
DEFAULT_CONFIG,
|
||||
)
|
||||
from .model import (
|
||||
SOFIAv71,
|
||||
build_sofia,
|
||||
Backbone,
|
||||
Stem,
|
||||
UltraLiteNeck,
|
||||
SatHead,
|
||||
UAVHead,
|
||||
RingAuxHead,
|
||||
)
|
||||
from .layers import (
|
||||
GGeM,
|
||||
CircularHarmonicPool,
|
||||
AltitudeFiLM,
|
||||
TextFiLM,
|
||||
RoPE2D,
|
||||
SqueezeExcite,
|
||||
LayerNorm2d,
|
||||
)
|
||||
from .blocks import (
|
||||
StripDCNLiteBlock,
|
||||
StripMixConvBlock,
|
||||
SimpleMambaBlock,
|
||||
Mamba2Block,
|
||||
EfficientVMambaBlock,
|
||||
MambaVisionBlock,
|
||||
EVSSBridge,
|
||||
Downsample,
|
||||
build_mamba_block,
|
||||
is_mamba_ssm_available,
|
||||
is_mamba2_available,
|
||||
)
|
||||
from .quant import (
|
||||
# DCN-M2
|
||||
OffsetClampSTE,
|
||||
offset_clamp_ste,
|
||||
# k-scaled
|
||||
KScaledFakeQuant,
|
||||
KScaledMamba2Block,
|
||||
# model-wide helpers
|
||||
start_calibration,
|
||||
finalize_calibration,
|
||||
set_quant_enabled,
|
||||
)
|
||||
|
||||
__version__ = "0.1.0"
|
||||
__all__ = [
|
||||
# Config
|
||||
"SOFIAConfig",
|
||||
"sofia_m_config",
|
||||
"sofia_l_config",
|
||||
"sofia_tiny_config",
|
||||
"DEFAULT_CONFIG",
|
||||
# Top-level
|
||||
"SOFIAv71",
|
||||
"build_sofia",
|
||||
# Model parts
|
||||
"Backbone",
|
||||
"Stem",
|
||||
"UltraLiteNeck",
|
||||
"SatHead",
|
||||
"UAVHead",
|
||||
"RingAuxHead",
|
||||
# Layers
|
||||
"GGeM",
|
||||
"CircularHarmonicPool",
|
||||
"AltitudeFiLM",
|
||||
"TextFiLM",
|
||||
"RoPE2D",
|
||||
"SqueezeExcite",
|
||||
"LayerNorm2d",
|
||||
# Blocks
|
||||
"StripDCNLiteBlock",
|
||||
"StripMixConvBlock",
|
||||
"SimpleMambaBlock",
|
||||
"Mamba2Block",
|
||||
"EfficientVMambaBlock",
|
||||
"MambaVisionBlock",
|
||||
"EVSSBridge",
|
||||
"Downsample",
|
||||
"build_mamba_block",
|
||||
"is_mamba_ssm_available",
|
||||
"is_mamba2_available",
|
||||
# Quantization
|
||||
"OffsetClampSTE",
|
||||
"offset_clamp_ste",
|
||||
"KScaledFakeQuant",
|
||||
"KScaledMamba2Block",
|
||||
"start_calibration",
|
||||
"finalize_calibration",
|
||||
"set_quant_enabled",
|
||||
]
|
||||
Reference in New Issue
Block a user