Skip to main content

Dynamic neural networks and function transformations in Python + Mojo

Project description

Development Status PyPI version Python 3.12+ License: Apache 2.0

NABLA

Nabla is a Python library that provides three key features:

  • Multidimensional Array computation (like NumPy) with strong GPU acceleration
  • Composable Function Transformations: vmap, grad, jit, and more
  • Deep integration with (custom) Mojo kernels

Installation

📦 Now available on PyPI!

pip install nabla-ml

Note: Nabla also includes an experimental pure Mojo API for native Mojo development.

Quick Start

import nabla as nb

# Example function using Nabla's array operations
def foo(input):
    return nb.sum(input * input, axes=0)

# Vectorize, differentiate, accelerate
foo_grads = nb.jit(nb.vmap(nb.grad(foo)))
gradients = foo_grads(nb.randn((10, 5)))

Development Setup

For contributors and advanced users:

# Clone and install in development mode
git clone https://github.com/nabla-ml/nb.git
cd nabla
pip install -e ".[dev]"

# Run tests
pytest

# Format and lint code
ruff format nabla/
ruff check nabla/ --fix

Repository Structure

nabla/
├── nabla/                     # Core Python library
│   ├── core/                  # Function transformations and core array class
│   ├── ops/                   # Mathematical operations (binary, unary, linalg, etc.)
│   ├── nn/                    # Neural network modules and models
│   └── utils/                 # Utilities (broadcasting, formatting, types)
├── tests/                     # Comprehensive test suite
├── examples/                  # Towards MLP training and other usage examples
└── experimental/              # An alternative pure Mojo API (WIP!)

Contributing

Contributions welcome! Discuss significant changes in Issues first. Submit PRs for bugs, docs, and smaller features.

License

Nabla is licensed under the Apache-2.0 license.


Thank you for checking out Nabla!

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

nabla_ml-25.6091347.tar.gz (94.5 kB view details)

Uploaded Source

Built Distribution

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

nabla_ml-25.6091347-py3-none-any.whl (127.8 kB view details)

Uploaded Python 3

File details

Details for the file nabla_ml-25.6091347.tar.gz.

File metadata

  • Download URL: nabla_ml-25.6091347.tar.gz
  • Upload date:
  • Size: 94.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for nabla_ml-25.6091347.tar.gz
Algorithm Hash digest
SHA256 2e7ce9617185696c2c9c68df1c45d866e511e011a56682e836565727dfeb5d85
MD5 37581f681d1202ed01cf82e4f22291b0
BLAKE2b-256 a2d1d7be17764f6f98023b36e0b312fd7387a7451fbf6dfcedccd795e0a31b70

See more details on using hashes here.

File details

Details for the file nabla_ml-25.6091347-py3-none-any.whl.

File metadata

  • Download URL: nabla_ml-25.6091347-py3-none-any.whl
  • Upload date:
  • Size: 127.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for nabla_ml-25.6091347-py3-none-any.whl
Algorithm Hash digest
SHA256 432fad16235ee5c2349c865ef9d26d5d5379facc08c6d38e60a0ab2953910f9a
MD5 09d948a8c85c1f720d5445066050b6f2
BLAKE2b-256 f3ea78431da83acc31cfd69a358b78659cbe9d23e3e3dabd03d3322574bca7d0

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