Examples
Configuration
Backbone, adaptation, shrinkage, and cache configuration examples.
Default config
from vyntri import Vyntri
from vyntri.data import split
# Just use defaults — MobileNetV3, FK projection, diagonal shrinkage
s = split("./my_dataset", train=0.7, test=0.2, seed=42)
model = Vyntri()
model.fit(train=s.train, val=s.val)Auto backbone selection
Requires a validation set. Use split() to create one, or pass an explicit train/val layout.
from vyntri import Vyntri
from vyntri.data import split
# Auto backbone requires validation — split() provides one by default
s = split("./my_dataset", train=0.7, val=0.1, test=0.2, seed=42)
model = Vyntri(backbone="auto")
model.fit(train=s.train, val=s.val)
# See which backbone was selected
sel = model.metadata_["selection"]
print(f"Selected: {sel['selected']}")
print(f"Scores: {sel['scores']}")Auto with candidate control
Limit which backbones are evaluated during auto-selection.
from vyntri import Vyntri
from vyntri.data import split
s = split("./my_dataset", train=0.7, val=0.1, test=0.2, seed=42)
# Only evaluate two fast backbones
model = Vyntri(
backbone="auto",
candidates=["mobilenet_v3_small", "resnet18"],
)
model.fit(train=s.train, val=s.val)
sel = model.metadata_["selection"]
print(f"Selected from limited set: {sel['selected']}")Custom backbone
from vyntri import Vyntri
from vyntri.data import split
# Use EfficientNet-B0
s = split("./my_dataset", train=0.7, test=0.2, seed=42)
model = Vyntri(backbone="efficientnet_b0")
model.fit(train=s.train, val=s.val)
print(f"Feature dim: {model.feature_dim_}") # 1280SLCE projection
from vyntri import Vyntri
from vyntri.data import split
s = split("./my_dataset", train=0.7, test=0.2, seed=42)
model = Vyntri(adaptation="slce")
model.fit(train=s.train, val=s.val)
# Inspect SLCE diagnostics
print(f"Positive eigenvalues: {model.projection_.n_positive_}")
print(f"Spectrum: {model.projection_.spectrum_}")Ledoit-Wolf shrinkage
from vyntri import Vyntri
from vyntri.data import split
s = split("./my_dataset", train=0.7, test=0.2, seed=42)
model = Vyntri(shrinkage="ledoit_wolf")
model.fit(train=s.train, val=s.val)
# See estimated shrinkage intensity
alpha = model.projection_.shrinkage_alpha_
print(f"Estimated shrinkage alpha: {alpha:.3f}")Custom regularization
from vyntri import Vyntri
from vyntri.data import split
s = split("./my_dataset", train=0.7, test=0.2, seed=42)
# Higher regularization (more bias, less variance)
model = Vyntri(regularization=1e-3)
model.fit(train=s.train, val=s.val)
# Lower regularization
model = Vyntri(regularization=1e-5)
model.fit(train=s.train, val=s.val)Custom projection dimension
from vyntri import Vyntri
from vyntri.data import split
s = split("./my_dataset", train=0.7, test=0.2, seed=42)
# Force a specific projection dimension
model = Vyntri(projection_dim=32)
model.fit(train=s.train, val=s.val)
# None = auto-resolve to min(128, feature_dim, C-1)
model = Vyntri(projection_dim=None)
model.fit(train=s.train, val=s.val)Disable caching
from vyntri import Vyntri
from vyntri.data import split
# Disable feature caching (always extract from scratch)
s = split("./my_dataset", train=0.7, test=0.2, seed=42)
model = Vyntri(cache_enabled=False)
model.fit(train=s.train, val=s.val)Custom cache directory
from vyntri import Vyntri
from vyntri.data import split
# Store cache in a custom location
s = split("./my_dataset", train=0.7, test=0.2, seed=42)
model = Vyntri(cache_dir="./my_cache")
model.fit(train=s.train, val=s.val)Discover all options
from vyntri import Config
# Get documentation for all configuration parameters
docs = Config.describe()
for param, info in docs.items():
print(f"{param}: {info['description'][:60]}...")
# Get documentation for a single parameter
info = Config().describe_param("backbone")
print(info)