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
| 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`. | |