Francismj commited on
Commit
c32be8e
·
verified ·
1 Parent(s): c404fd0

Upload folder using huggingface_hub

Browse files
Files changed (2) hide show
  1. README.md +35 -8
  2. config.json +1 -1
README.md CHANGED
@@ -12,28 +12,55 @@ pipeline_tag: other
12
 
13
  # Sonny
14
 
15
- StepNets one-step weather backbone: variable-aware embedding and a two-stage trunk, 69 ERA5 variables, 120×240, patch size 2.
16
 
17
- ## Loading (with the `stormer` codebase)
18
 
19
- This Hub snapshot stores weights only (`model.safetensors`) plus `config.json` (`init_args`).
20
- You need the same Python dependencies as training (**PyTorch**, **timm**, **xformers** on GPU, etc.) and the `stormer` package that defines the model.
21
 
22
  ```python
23
- from stormer.models.hub.sonny import load_sonny_from_hub
24
 
25
  model = load_sonny_from_hub("Francismj/sonny", map_location="cuda")
26
  model.eval()
27
  ```
28
 
29
- Or download files manually and build :class:`~stormer.models.hub.sonny.Sonny`(**init_args**) then :meth:`load_state_dict`.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
  ## Files
32
 
33
- - `config.json` — hyperparameters / variable list for **Sonny**
34
  - `model.safetensors` — EMA ``ema_model_state_dict``
35
  - `normalization_note.txt` — reminder to use your local ``normalization_constants`` from the training repo for real inference
36
 
37
  ## Citation
38
 
39
- If you use this checkpoint, cite [Sonny](https://arxiv.org/abs/2603.21284).
 
 
 
 
 
 
12
 
13
  # Sonny
14
 
15
+ StepNets one-step weather backbone: variable-aware embedding and a two-stage trunk, 69 ERA5-like variables, 120×240, patch size 2. EMA checkpoint at epoch 50.
16
 
17
+ ## Loading
18
 
19
+ Weights: `model.safetensors`. Hyperparameters: `config.json` (`init_args`).
20
+ Install the small **`sonny`** package (model code only; [GitHub](https://github.com/YOUR_ACCOUNT/sonny)) or the full `stormer` research tree if you already use it.
21
 
22
  ```python
23
+ from sonny import load_sonny_from_hub
24
 
25
  model = load_sonny_from_hub("Francismj/sonny", map_location="cuda")
26
  model.eval()
27
  ```
28
 
29
+ Or download the files and build `networks.sonny.Sonny(**init_args)` then `load_state_dict` (see `class_qualname` in `config.json`).
30
+
31
+ ## Google Colab
32
+
33
+ Install `sonny` (clone or zip of the repo with `pyproject.toml`, packages `sonny/` and `networks/`).
34
+
35
+ ```text
36
+ !pip install -q huggingface_hub safetensors timm pyyaml
37
+ !pip install -q xformers
38
+ !git clone https://github.com/YOUR_ACCOUNT/sonny.git sonny_src
39
+ %cd sonny_src
40
+ !pip install -q -e .
41
+ %cd /content
42
+ ```
43
+
44
+ ```python
45
+ from sonny import load_sonny_from_hub
46
+
47
+ model = load_sonny_from_hub("Francismj/sonny", map_location="cuda")
48
+ model.eval()
49
+ ```
50
+
51
+ Private code: zip the `sonny` repo → upload in Colab → `pip install -e /content/unzipped_folder`.
52
 
53
  ## Files
54
 
55
+ - `config.json` — hyperparameters and variable list
56
  - `model.safetensors` — EMA ``ema_model_state_dict``
57
  - `normalization_note.txt` — reminder to use your local ``normalization_constants`` from the training repo for real inference
58
 
59
  ## Citation
60
 
61
+ If you use this checkpoint or architecture, cite:
62
+
63
+ **Sonny: Breaking the Compute Wall in Medium-Range Weather Forecasting** — Minjong Cheon, arXiv:2603.21284, 2026.
64
+ [https://arxiv.org/abs/2603.21284](https://arxiv.org/abs/2603.21284)
65
+
66
+ Code: [https://github.com/jmj2316/sonny](https://github.com/jmj2316/sonny)
config.json CHANGED
@@ -3,7 +3,7 @@
3
  "sonny_version": "1.0",
4
  "architecture_name": "Sonny",
5
  "architecture_family": "StepNets",
6
- "class_qualname": "stormer.models.hub.sonny.Sonny",
7
  "source_checkpoint": "stormbreaker5_checkpoint_ema_epoch_050.pth",
8
  "source_epoch": 50,
9
  "init_args": {
 
3
  "sonny_version": "1.0",
4
  "architecture_name": "Sonny",
5
  "architecture_family": "StepNets",
6
+ "class_qualname": "networks.sonny.Sonny",
7
  "source_checkpoint": "stormbreaker5_checkpoint_ema_epoch_050.pth",
8
  "source_epoch": 50,
9
  "init_args": {