Dual Surface-Subsurface Adapter (DSSA)

Official pre-trained model weights for Dual Surface-Subsurface Adapter (DSSA) for multimodal land-cover classification using ground-level RGB photography and topsoil physicochemical properties.


1. Models Included

Model Variant Parameters Latency (B=1) Throughput (B=64) Peak VRAM Test Accuracy Macro F1 Cohen's Kappa
DSSA-Lite (Edge) 3.99M 9.85 ms 3,724.4 img/s 698.0 MB 80.63% 0.7487 0.7553
DSSA-Standard (Proposed) 8.42M 13.87 ms 3,344.9 img/s 893.7 MB 86.20% 0.8287 0.8286
  • best_dssa_full_standard.pth (32.5 MB):

    • Full proposed architecture (8.42M parameters).
    • Integrates Spatial Attention Decomposition, Physics-Guided Modality Relevance (PGMR) routing, and Adaptive Zero-Soil canopy gating.
    • Achieves 86.20% Accuracy and 0.8287 Macro F1 on the frozen LUCAS benchmark (N = 2,917).
  • dssa_lite_best_seed42.pth (15.5 MB):

    • Edge-optimized architecture (3.99M parameters, 52.6% parameter reduction).
    • Truncates EfficientNet-B0 at Stage 5 and discards the 1,280-channel expansion head, keeping adapter overhead down to just 528k parameters.
    • Optimized for real-time edge surveying (<10 ms latency, 698 MB VRAM).

2. Hardware Environment & Training Compute

All models were trained and profiled under the following hardware environment:

  • GPU: NVIDIA GeForce RTX 5070 Ti (16 GB GDDR7 VRAM, Blackwell SMs)
  • CPU: x86-64 Host Processor
  • Software: PyTorch 2.6.0, CUDA 12.8, cuDNN 9.x, FP32 Single Precision

Training Durations (Approximate)

  • DSSA-Standard:
    • ~45โ€“55 seconds per epoch (batch size = 64, 13,608 training samples).
    • Total Training Time: ~20โ€“25 minutes (converged in 25โ€“28 epochs with early stopping patience = 15).
  • DSSA-Lite:
    • ~25โ€“35 seconds per epoch.
    • Total Training Time: ~10โ€“12 minutes (converged in 20โ€“24 epochs).

3. Quick Inference Examples

A. Run Inference with Proposed DSSA-Standard (8.42M)

import torch
from huggingface_hub import hf_hub_download
from models.dssa_model import DSSAModel

# 1. Download checkpoint
ckpt_path = hf_hub_download(repo_id="Papahaven/DSSA-LUCAS", filename="best_dssa_full_standard.pth")

# 2. Instantiate DSSA-Standard
feature_cols = ['pH_H2O', 'pH_CaCl2', 'OC', 'CaCO3', 'N', 'P', 'K', 'EC']
visible_cols = ['pH_H2O', 'pH_CaCl2', 'OC', 'CaCO3', 'EC']
subsurface_cols = ['N', 'P', 'K', 'EC']

model = DSSAModel(
    feature_cols=feature_cols,
    visible_cols=visible_cols,
    subsurface_cols=subsurface_cols,
    num_classes=6,
    shared_dim=256,
    num_heads=4,
    use_spatial_attention=True,
    use_physics_guidance=True,
    use_soil_gating=True,
    pretrained=False,
)

state_dict = torch.load(ckpt_path, map_location="cpu", weights_only=True)
model.load_state_dict(state_dict)
model.eval()

# 3. Predict: (B, 3, 224, 224) RGB image and (B, 8) normalized soil vector
img = torch.randn(1, 3, 224, 224)
soil = torch.randn(1, 8)
with torch.no_grad():
    logits = model(img, soil)
pred = logits.argmax(dim=-1).item()
print("DSSA-Standard Predicted Class:", pred)

B. Run Inference with Edge-Optimized DSSA-Lite (3.99M)

import torch
from huggingface_hub import hf_hub_download
from models.dssa_lite import DSSALiteModel

# 1. Download checkpoint
ckpt_path = hf_hub_download(repo_id="Papahaven/DSSA-LUCAS", filename="dssa_lite_best_seed42.pth")

# 2. Instantiate DSSA-Lite
model_lite = DSSALiteModel(
    num_classes=6,
    d=128,
    num_heads=4,
    pretrained=False,
    dropout=0.15,
)

state_dict = torch.load(ckpt_path, map_location="cpu", weights_only=True)
model_lite.load_state_dict(state_dict)
model_lite.eval()

# 3. Predict: (B, 3, 224, 224) RGB image and (B, 8) normalized soil vector
img = torch.randn(1, 3, 224, 224)
soil = torch.randn(1, 8)
with torch.no_grad():
    logits = model_lite(img, soil)
pred = logits.argmax(dim=-1).item()
print("DSSA-Lite Predicted Class:", pred)

4. Citation

@article{dssa2026,
  title={Dual Surface-Subsurface Adapter for Ground-Level Land Cover Classification with Soil Physicochemical Context},
  author={Siam, Sarker and Mim, Farhana Nur},
  journal={IEEE Transactions / Conference Submission},
  year={2026},
  url={https://github.com/siam4201/DSSA-LUCAS}
}
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