Downloads · 30 days
13
13% of all-time downloads
sarojpatil16/exoplanet-transit-detector
exoplanet-transit-detector is a tabular classification model from sarojpatil16. Use it for the tabular classification task on the model card, and read the license before you ship it in a product. It is set up for k2. The card lists the license as apache-2.0.
A multi-branch 1D CNN for detecting exoplanet transits in stellar light curves, based on the AstroNet/ExoMiner++ architecture (NASA Ames).
Downloads · 30 days
13
13% of all-time downloads
All-time downloads
97
Public
Parameters
245K
31 MB on disk
Likes
0
Public
Click a slice to open those files.
.pt1 MB · 51%
From the Hugging Face model README
A multi-branch 1D CNN for detecting exoplanet transits in stellar light curves, based on the AstroNet/ExoMiner++ architecture (NASA Ames).
Multi-Branch 1D CNN with 5 input branches:
Each flux branch uses 2 convolutional blocks with 3 conv layers each (8→16 filters), batch normalization, and max pooling. Branches are fused and fed through a 4-layer fully-connected classifier head.
Total parameters: 244,181
| Metric | Test Set |
|---|---|
| Accuracy | 89.10% |
| F1 (weighted) | 89.03% |
| Precision (weighted) | 89.03% |
| Recall (weighted) | 89.10% |
| Loss | 0.2804 |
import torch
import numpy as np
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
# 1. Download and load model
model_path = hf_hub_download("sarojpatil16/exoplanet-transit-detector", "model.safetensors")
# 2. Recreate architecture (copy from this model card or train.py)
# ... (see model architecture code below) ...
# model = AstroNetCNN(n_scalars=9, num_classes=3)
# model.load_state_dict(load_file(model_path))
# model.eval()
# 3. Prepare inputs from light curve data
# flux_global: (1, 201) - phase-folded full light curve, median-subtracted & MAD-normalized
# flux_local: (1, 81) - zoomed transit view
# flux_odd: (1, 201) - odd-numbered transits
# flux_even: (1, 201) - even-numbered transits
# scalars: (1, 9) - [period_days, duration_hrs, depth_ppm, teff, logg, radius, mass, metallicity, kepmag]
# (period, duration, depth are log1p-transformed)
# 4. Predict
# with torch.no_grad():
# output = model(flux_global, flux_local, flux_odd, flux_even, scalars)
# probabilities = torch.softmax(output.logits, dim=-1)
# pred_class = torch.argmax(output.logits, dim=-1)
# # 0=PLANET, 1=FALSE_POSITIVE, 2=NO_SIGNAL
| Class ID | Label | Description |
|---|---|---|
| 0 | PLANET | Confirmed or candidate exoplanet transit |
| 1 | FALSE_POSITIVE | Signal is not a planet (eclipsing binary, stellar variability, etc.) |
| 2 | NO_SIGNAL | No significant transit signal detected |