vectorphile is a research-first computational intelligence library. One import covers tensors, autograd, deep learning, classical ML, DataFrames, signal processing, and more — built from first principles.
Core Modules
vectorphile is structured around a single Tensor primitive with autodiff built in. Every module — from neural networks to classical ML to DataFrames — extends from the same foundation.
The central primitive. Every numeric object in vectorphile is a Tensor. All operations — arithmetic, reduction, reshaping, broadcasting — are defined on it. Autodiff is built in from day one.
Composable neural network layers, all differentiable. Linear, convolutional, normalization, attention, and dropout layers alongside a full set of loss functions and a Sequential container.
The full spectrum of classical learning algorithms — linear models, trees, ensembles, boosting, clustering, decomposition, preprocessing, metrics, and cross-validation. Consistent fit/predict interface throughout.
Research Philosophy
vectorphile is built for researchers and engineers who want to understand what their computational stack actually does. Every design decision prioritizes transparency over convenience.
Every module exposes the underlying mathematics. Gradient derivations, decomposition proofs, and numerical stability notes are part of the codebase — not hidden in a black box.
The internals are written to be read. A researcher should be able to follow the execution of a backward pass or a decision tree split without consulting external documentation.
The public API surface is designed for stability. Phase transitions (Python → C → CUDA) are internal — the calling interface does not change between phases.
Design Principles
Every architectural decision in vectorphile is grounded in a research requirement. Here is what that looks like in practice.
Every numeric object in vectorphile is a Tensor. DataFrames, sparse matrices, model parameters, and statistical outputs all share the same underlying representation and operator set. No type fragmentation, no hidden conversions.
The autograd engine is not bolted on. Every tensor primitive registers its backward function at construction time, so custom operations automatically participate in gradient flow without any special registration.
The API is designed so that moving from a quick prototype to a production training loop requires zero idiom changes. Use high-level Sequential for fast iteration; drop into raw tensor ops when you need full control.
No global dispatch tables, no opaque C extensions in Phase 1, no framework-level implicit state. What you read is what runs. Every execution path is explicit, traceable, and readable — designed for researchers who want to understand what their code does.
Beyond deep learning — linear algebra via LAPACK-backed routines, full statistical inference, FFT and digital signal processing, sparse matrix formats, and numerical optimization. Everything a computational researcher needs.
Phase 1 is pure Python and NumPy. Phase 2 introduces C extensions for core tensor ops, real CUDA support via cuBLAS/cuDNN, and fp16/bf16 AMP. The API surface remains stable across phases — no breaking changes.
The vectorphile module graph — from raw tensor ops to full ML pipelines, all in one coherent system.
One pip command. No C compiler, no CUDA setup, no driver headaches. Phase 1 is pure Python — works everywhere Python works.
16 focused modules. No fragmented dependencies. No bridging code. One coherent system.
vectorphile is designed to be learnable incrementally. Start with tensors. Add autograd. Add layers. The same idioms carry through every module in the library.
Open the full referencepip install vectorphile — that's it. No CUDA setup required for Phase 1. NumPy ≥ 1.24 is the only hard dependency. The full module surface is available immediately.
Start with vp.randn, vp.tensor, and a simple autograd trace. The computation graph is dynamic — operations build it as they execute. Call .backward() and inspect .grad to see it in action.
Compose layers with vp.nn.Sequential, choose an optimizer from vp.optim, pick a loss from vp.nn. The training loop is explicit — no Trainer abstractions hiding what happens per step.
vp.ml for classical algorithms, vp.data for DataFrames, vp.linalg for decompositions, vp.stats for inference, vp.fft and vp.signal for spectral work. Same Tensor primitive throughout.
Vectorphile is free, open-source software. Star the repo, open an issue, or contribute a module — every kind of participation matters.