Skip to main content

A From Scratch Neural Network Framework with Educational Purposes

Project description

forgeNN

A From Scratch Neural Network Framework with Educational Purposes

Python 3.8+ NumPy

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

forgenn-1.0.0.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forgenn-1.0.0-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

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

Hashes for forgenn-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d39a94860270fc1273b72885498d450f1b6f90e2ec0685e6e866d521631618bb
MD5 5116faebf18776f6e0a5bb112c03cc76
BLAKE2b-256 efe3b127c860646ae7a26663c2719368b93e08678dfd75a6d54b0796cda9a7bb

See more details on using hashes here.

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

Hashes for forgenn-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 062e924124ac79ea9104211662472e3575240d34787259877929430f80776823
MD5 5d9d9ee948bfb149bcdcf78ffc46891f
BLAKE2b-256 aac3b428289642dd2b003b48ccec00269abee40b034c12350e9109406edcdaa3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page