Instructions to use zachtheyek/aetherscan with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Keras
How to use zachtheyek/aetherscan with Keras:
# Available backend options are: "jax", "torch", "tensorflow". import os os.environ["KERAS_BACKEND"] = "jax" import keras model = keras.saving.load_model("hf://zachtheyek/aetherscan") - Notebooks
- Google Colab
- Kaggle
File size: 2,565 Bytes
1480422 35b9efa 1480422 35b9efa 1480422 35b9efa 1480422 35b9efa 1480422 35b9efa 1480422 35b9efa 1480422 35b9efa 1480422 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | ---
license: bsd-3-clause
library_name: keras
tags:
- seti
- radio-astronomy
- anomaly-detection
- beta-vae
- random-forest
---
# Aetherscan
[Breakthrough Listen](https://breakthroughinitiatives.org/initiative/1)'s deep-learning SETI
pipeline: a two-stage architecture where a **Beta-VAE encoder** compresses each observation of
a 6-observation cadence (3 ON / 3 OFF, ABACAD) into an 8-dimensional latent, and a **Random
Forest** classifies the cadence's concatenated latents as a technosignature candidate or not.
This repository carries the released model weights at stable filenames, versioned via git
tags: training tags match the pipeline run's save tag (e.g. `train_20260101_120000`), and
release tags (`vX.Y.Z`) mark blessed weights.
**Training tag**: `train_20260729_152426`
## Files
| File | Description |
|---|---|
| `vae_encoder.keras` | Beta-VAE encoder (Keras) — the inference feature extractor |
| `vae_decoder.keras` | Beta-VAE decoder (Keras) — for reconstruction/traversal analysis |
| `random_forest.joblib` | Random Forest cadence classifier (joblib) |
| `config.json` | Full resolved training configuration for this run |
## Training configuration
| Parameter | Value |
|---|---|
| Training rounds | `10` |
| Epochs per round | `100` |
| Beta-VAE samples per round | `499200` |
| Random Forest samples | `99840` |
| Curriculum schedule | `exponential` |
| SNR base | `10` |
| Initial SNR range | `40` |
| Final SNR range | `10` |
| Latent dimensions | `8` |
| Beta (KL weight) | `1.5` |
| Alpha (clustering weight) | `10.0` |
| RF estimators | `1000` |
The complete configuration is in `config.json`.
## Evaluation (validation split)
| Metric | Value |
|---|---|
| ROC AUC | 1.0000 |
| Average precision | 1.0000 |
| Classification threshold | 0.99 |
| Validation samples | 19968 |
## Library versions
| Library | Version |
|---|---|
| python | `3.12.3` |
| tensorflow | `2.17.0` |
| numpy | `1.26.4` |
| scikit-learn | `1.5.2` |
| huggingface_hub | `1.21.0` |
## Usage
Pin this training tag with `--hf-revision` to download exactly these weights (a bare no-artifact
inference download resolves to the latest `vX.Y.Z` release tag instead, never a training tag):
```bash
python -m aetherscan.main inference --hf-revision train_20260729_152426 --inference-files <catalog.csv>
```
## Links & citation
Source code, documentation, and issue tracker: [https://github.com/zachtheyek/Aetherscan](https://github.com/zachtheyek/Aetherscan).
If you use Aetherscan in your research, please cite it via the repository's `CITATION.cff`.
|