A From Scratch Neural Network Framework with Educational Purposes
Project description
forgeNN
A From Scratch Neural Network Framework with Educational Purposes
Overview
forgeNN is a modern neural network framework that is developed by a solo developer learning about ML. Features vectorized operations for high-speed training.
Key Features
- ** Vectorized Operations**: NumPy-powered batch processing (100x+ speedup)
- ** Dynamic Computation Graphs**: Automatic differentiation with gradient tracking
- ** Complete Neural Networks**: From simple neurons to complex architectures
- ** Production Loss Functions**: Cross-entropy, MSE with numerical stability
Quick Start
High-Performance Training
import forgeNN
from sklearn.datasets import make_classification
# Generate dataset
X, y = make_classification(n_samples=1000, n_features=20, n_classes=3)
# Create vectorized model
model = forgeNN.VectorizedMLP(20, [64, 32], 3)
optimizer = forgeNN.VectorizedOptimizer(model.parameters(), lr=0.01)
# Fast batch training
for epoch in range(10):
# Convert to tensors
x_batch = forgeNN.Tensor(X)
# Forward pass
logits = model(x_batch)
loss = forgeNN.cross_entropy_loss(logits, y)
# Backward pass
optimizer.zero_grad()
loss.backward()
optimizer.step()
acc = forgeNN.accuracy(logits, y)
print(f"Epoch {epoch}: Loss = {loss.data:.4f}, Acc = {acc*100:.1f}%")
Legacy Examples
# For learning automatic differentiation
from forgeNN.legacy import Value, MLP
x = Value(2.0)
y = x**2 + 3*x + 1
y.backward()
print(f"dy/dx = {x.grad}") # 7.0
# Simple neural network
model = MLP(2, [4, 1])
output = model([Value(1.0), Value(2.0)])
Architecture
- Main API:
forgeNN.Tensor,forgeNN.VectorizedMLP(production use) - Legacy API:
forgeNN.legacy.*(backward compatible) - Functions: Complete activation and loss function library
- Examples:
example.py- Complete MNIST classification demo
Performance
| Implementation | Speed |
|---|---|
| Vectorized | 38,000+ samples/sec |
MNIST Results: 93%+ accuracy in under 2 seconds!
Complete Example
See example.py for a full MNIST classification demo achieving professional results.
Contributing
I am not currently accepting contributions, but I'm always open to suggestions and feedback!
📦 PyPI Deployment
This package is ready for PyPI deployment! All deployment files are organized in the deployment/ directory to keep the main project clean.
# Build and deploy to PyPI
cd deployment
python build_package.py
python upload_package.py
For detailed deployment instructions, see deployment/DEPLOY.md.
🌟 Acknowledgments
- Inspired by educational automatic differentiation tutorials
- Built for both learning and production use
- Optimized with modern NumPy practices
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file forgenn-1.0.0.tar.gz.
File metadata
- Download URL: forgenn-1.0.0.tar.gz
- Upload date:
- Size: 29.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d39a94860270fc1273b72885498d450f1b6f90e2ec0685e6e866d521631618bb
|
|
| MD5 |
5116faebf18776f6e0a5bb112c03cc76
|
|
| BLAKE2b-256 |
efe3b127c860646ae7a26663c2719368b93e08678dfd75a6d54b0796cda9a7bb
|
File details
Details for the file forgenn-1.0.0-py3-none-any.whl.
File metadata
- Download URL: forgenn-1.0.0-py3-none-any.whl
- Upload date:
- Size: 27.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
062e924124ac79ea9104211662472e3575240d34787259877929430f80776823
|
|
| MD5 |
5d9d9ee948bfb149bcdcf78ffc46891f
|
|
| BLAKE2b-256 |
aac3b428289642dd2b003b48ccec00269abee40b034c12350e9109406edcdaa3
|