Views
No views yet
core), depth=1, 1024x1024 resolution.
Published from the snowGAN project for
downstream transfer-learning consumers.snowgan.weights.fetch
to download + cache, then snowgan.models.Discriminator to rebuild and load:1from snowgan.weights import fetch
2from snowgan.config import build
3from snowgan.models.discriminator import Discriminator
4
5# Fetch the release (cached locally after first call).
6path = fetch("RMDig/snowGAN-core", "v0.1.0")
7
8# Reconstruct the model from its sidecar config, then load weights.
9cfg = build(str(path / "discriminator_config.json"))
10disc = Discriminator(cfg)
11disc.model.build((None, cfg.depth, cfg.resolution[0], cfg.resolution[1], cfg.channels))
12disc.model.load_weights(str(path / "discriminator.weights.h5"))
13
14# Tap the named features layer — the cross-repo contract with downstream consumers.
15features = disc.model.get_layer("features")
16print("backbone features:", features.output.shape) # (None, 1048576)pip install snowgan[hub] (pulls in huggingface_hub). Without the
[hub] extra, fetch() raises a clean ImportError naming the missing dep.model.get_layer("features").output. Secondary use is generating synthetic core samples via the generator.| Field | Value |
|---|---|
| Modality | core (depth=1) |
| Resolution | 1024x1024 |
| Channels | 3 |
| Latent dim | 100 |
| Generator filter counts | [1024, 512, 256, 128, 64] |
| Discriminator filter counts | [64, 128, 256, 512, 1024] |
| Conv kernel / stride | [3, 3] / [2, 2] |
| Backbone (Flatten "features") dim | 1048576 |
| Final activation | tanh |
Conv3D layers use ksize=(1, kH, kW), so the depth axis is
broadcast — kernels themselves are depth-agnostic. This is the contract that lets
downstream consumers compose multiple single-modality backbones into a depth=N model
(e.g. profile + core stacked at depth=2 for paired-modality transfer).rmdig/rocky_mountain_snowpack.
At release: fade_step=130000.| Stabilizer | Setting |
|---|---|
| Spectral norm | False |
| Differentiable augmentation | True |
| Adaptive augmentation (ADA) target | 0.6 |
| Adaptive disc/gen step ratio | False |
| EMA decay (generator shadow) | 0.999 |
| Multi-scale discriminator | True |
| Gradient clip (global norm) | 1.0 |
| LR decay schedule | cosine (lr_min=1e-07) |
| FID eval interval | 5000 steps |
(site, column, core) group level (seed=42),
persisted in both sidecar configs so downstream consumers (e.g. AvAI) evaluate
on the same held-out cores the GAN never saw:trained_pool: 10 groupsvalidation_pool: 1 groupstest_pool: 2 groupsdiscriminator.weights.h5 — main discriminator weights (the transfer backbone).discriminator_config.json — architecture sidecar; pass to snowgan.models.Discriminator(cfg).generator.weights.h5 + generator_config.json — generator weights and sidecar.generator_ema.weights.h5 — EMA shadow weights (only if EMA was enabled during training).generator_fade_endpoints.weights.h5 — progressive-fade toRGB endpoints (only if fade was used).discriminator_lowres.weights.h5 — multi-scale 256×256 critic (only if multiscale_disc was on).MANIFEST.md — full provenance dump (git SHA, every training flag, every artifact). Read this for debugging.README.md — this file.RMDig/snowGAN-magnified-profile,
RMDig/snowGAN-corermdig/rocky_mountain_snowpack