Views
No views yet
| Folder | Model | Params | Notes |
|---|---|---|---|
gblsr-scalar | GB-LSR-Scalar (native reconstruction) | 0.99M | main native-benchmark variant |
gblsr-scalar-asr | GB-LSR-Scalar-ASR (base) | 22.02M | arbitrary-scale SR, RDN encoder |
gblsr-scalar-asr-noLE | ASR, no local ensemble | 22.02M | faster; trained + eval'd without 4-corner LE |
gblsr-scalar-asr-nf96-noLE | ASR, wider encoder + noLE | 24.93M | small quality gain |
gblsr-scalar-asr-nf48-noLE | ASR, narrower encoder + noLE | 20.61M | aggressive-efficiency |
pip install git+https://github.com/KempnerInstitute/gblsr1import torch
2from safetensors.torch import load_file
3from gblsr import build_model, ModelConfig, BasisConfig, EncoderConfig
4
5model = build_model(
6 ModelConfig(arm="local_spectral", image_size=256, patch_size=32,
7 basis=BasisConfig(patch_size=32, p_max=16, s_e_range=(0.25, 2.0)),
8 encoder=EncoderConfig()),
9 bandwidth_mode="global_scalar", adapt_order=False).eval()
10model.load_state_dict(load_file("gblsr-scalar/model.safetensors"))
11
12out = model(torch.rand(1, 3, 256, 256)) # dict of outputs
13recon = out["recon"] # (1, 3, 256, 256) reconstruction1import torch
2from safetensors.torch import load_file
3from gblsr import GBLSRScalarASR
4
5# match encoder_cfg / decoder_cfg to the folder's config.json
6model = GBLSRScalarASR(encoder_cfg={"num_features": 96},
7 decoder_cfg={"local_ensemble": False}).eval() # nf96+noLE
8model.load_state_dict(load_file("gblsr-scalar-asr-nf96-noLE/model.safetensors"))
9
10lr = torch.rand(1, 3, 64, 64)
11hr = model.predict_full(lr, H_q=256, W_q=256) # (1, 3, 256, 256), any target sizeconfig.json.gblsr code is
BSD-3-Clause; this non-commercial term applies to the trained weights here.1@article{shad2026gblsr,
2 title = {GB-LSR: A Fast Local Spectral Image Representation with a
3 Single Global Bandwidth for Continuous Reconstruction and
4 Super-Resolution},
5 author = {Shad, Max and Khoshnevis, Naeem},
6 journal = {arXiv preprint arXiv:2606.19617},
7 year = {2026}
8}