The fundamentals
Linear layers, activations, dropout, normalization, and losses for small supervised experiments.
Explore modulesTHE FRAMEWORK / DESIGNED FOR DEEPER UNDERSTANDING
Build, train, inspect, and save neural networks. Follow the code through a complete stack written from scratch on NumPy.
01 / THE FOUNDATION
Create arrays with float32 defaults, operate with broadcasting, and inspect shapes, dtypes, devices, and gradients.
import everyo as eo
x = eo.tensor([[1.0, 2.0]])
y = eo.tensor([[3.0], [4.0]])
print(eo.matmul(x, y))
# Tensor([[11.]], shape=(1, 1), dtype=float32)
02 / FOLLOW THE GRAPH
Reverse-mode differentiation records operations and accumulates gradients through an iterative topological traversal.
Use requires_grad=True to start recording. Use
eo.no_grad() for inference without building a
gradient graph.
03 / COMPOSABLE BY DESIGN
Combine familiar building blocks or subclass Module to write your own forward pass.
Linear layers, activations, dropout, normalization, and losses for small supervised experiments.
Explore modulesConv2D, MaxPool2D, and AvgPool2D. Images use NHWC layout; kernels follow TensorFlow’s layout.
Build a CNNRNN, LSTM, GRU, embeddings, positional encoding, multi-head attention, and transformer encoders.
Explore sequences04 / THE EXPERIMENT LOOP
Use SGD or Adam, track metrics with Trainer, and keep experiments understandable from data to checkpoint.
trainer = eo.Trainer(
model,
eo.Adam(model.parameters(), lr=0.01),
eo.CrossEntropyLoss(),
metrics=["accuracy"],
)
history = trainer.fit(train_loader, epochs=20)
eo.save(model, "model.evo")
05 / TRUST COMES WITH CONTEXT
EveryO is built for learning, teaching, and small-scale experiments. It is not a production training runtime.
| Component | What to expect | Evidence & limits |
|---|---|---|
| CPU / NumPy | The standard local workflow | Finite-difference gradient checks and project tests |
| TensorFlow | Optional numerical reference | Install separately for reference comparisons |
| CUDA | Optional native kernels with CPU fallback | Project CI has no GPU runtime validation. The standard Tensor path uses host buffers; the separate resident-buffer API is tested with a CPU stand-in |
| ONNX | Export supported graphs | Optional extra; validate unsupported operations and target runtime |
| Distributed | CPU process-level training; experimental TCP process groups | Multi-machine training has not been validated |
| Mixed precision | autocast and GradScaler | Autocast applies to matmul and conv2d |