silver-torch
Leakage-safe tensors and a real training loop with every important decision left visible.
An optional PyTorch layer for Silver. It turns a small Silver preprocessing
program into a fitted, inspectable, reusable tensor and DataLoader pipeline.
pip install silver-data
pip install 'silver-torch[pytorch]'
Train a real model
import torch
from torch.utils.data import DataLoader, TensorDataset
from silver_torch import (
SilverTrainer, TrainingConfig, build_tabular_model,
)
x = torch.tensor([[-2.0, -1.0], [-1.0, -2.0], [1.0, 1.0], [2.0, 1.0]])
y = torch.tensor([0, 0, 1, 1])
loader = DataLoader(TensorDataset(x, y), batch_size=4)
model = build_tabular_model(input_size=2, output_size=2)
trainer = SilverTrainer(model, TrainingConfig(
epochs=50,
learning_rate=0.01,
checkpoint_path=".silver/best.pt",
))
result = trainer.fit(loader, loader)
print(result.best_epoch, result.best_loss, result.parameter_count)
SilverTrainer includes deterministic seeds, CPU/CUDA/MPS selection, gradient
clipping, non-finite loss protection, early stopping, best-state restoration,
atomic checkpoints, evaluation, prediction, and event callbacks.
from silver_data import Dataset
from silver_torch import compile_silver
program = """
pipeline ieee_inverse:
features voltage, current, phase, sensor
categorical sensor
label fault
architecture transformer
sequence_length 2
scaling standard
missing median
label_type classification
batch_size 128
num_workers 2
cache_dir .cache/ieee_inverse
"""
dataset = Dataset.from_records("ieee", [
{"voltage": 1.0, "current": 2.0, "phase": 0.2, "sensor": "a", "fault": 0},
{"voltage": 1.2, "current": 2.1, "phase": 0.3, "sensor": "b", "fault": 1},
])
splits = dataset.split(0.5, 0.5, 0.0)
pipeline = compile_silver(program).fit(splits.train.records())
loader = pipeline.dataloader(splits.validation.records(), device="cuda")
print(pipeline.plan(device="cuda").to_dict())
print(pipeline.benchmark(splits.validation.records(), steps=20))
The compiler has explicit research-safety boundaries:
- statistics and vocabularies are fitted only on
splits.train; - missing columns, non-finite numbers, invalid labels, and incompatible sequence lengths fail loudly;
- categorical vocabularies are sorted for reproducibility and reserve index 0 for unknown values;
- classification targets are
torch.long; regression targets use the chosen floating dtype; - cache keys include the fitted-training fingerprint and transformed rows, and cache writes are atomic;
- loaders are seeded and tune pinning, persistent workers, prefetching, and
drop_lastbased on the declared runtime.
The emitted shapes are [batch, features] for MLP, [batch, 1, features] for
CNN, and [batch, sequence_length, features_per_step] for RNN/Transformer.
These are layout contracts, not model implementations. Measure with
benchmark() on the target machine; input speedups depend on storage, CPU,
worker count, batch size, and accelerator.
Metadata
Release files for silver-torch 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| silver_torch-1.0.0.tar.gz | 1.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| silver_torch-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / silver_torch-1.0.0.tar.gz
| Download URL | silver_torch-1.0.0.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8028e801816b7cc615c34734b5d098469a932ab80cd234cdb53dad0567ec384d
|
|
BLAKE2b-256 checksum How to use checksums |
dcbead7828cda0875cb40ff4e33680ed8e39f3ebbaf5eedb688cf0ffa603fe72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.
Transparency logRelease files / silver_torch-1.0.0-py3-none-any.whl
| Download URL | silver_torch-1.0.0-py3-none-any.whl |
|---|---|
| Size | 15.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0edf3a1fd84e6c39928d1adb007c3449c25c479b1eaeb5e618067fda9f66117d
|
|
BLAKE2b-256 checksum How to use checksums |
88cb2bf3d7928f51d898aa7ece44115a8b998c41d7cbb8c4745c79859be13074
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.
Transparency log