Neural Network lib for ncxlib
Project description
NCxLib: A Lightweight Neural Network Library in Python
ncxlib is a lightweight and easy-to-use neural network library built in Python. It provides a simple API for constructing and training neural networks, along with tools for data preprocessing and generation.
Features
- Modular Design: Easily build custom neural networks by combining different layers, activation functions, and loss functions.
- Data Handling: Includes data loaders for CSV and image data, with preprocessing capabilities like scaling and grayscaling.
- Training and Evaluation: Train your networks with various optimization algorithms and evaluate their performance.
- Extensible: Add your own custom layers, activations, and loss functions to expand the library's functionality.
Installation
pip install ncxlib
Getting Started
Here's a quick example of how to use ncxlib to create and train a simple neural network:
# External imporst
import numpy as np
# Util imports
from ncxlib import generators, dataloaders
from ncxlib.util import train_test_split
# Neural network imports
from ncxlib.neuralnetwork import optimizers, losses
from ncxlib.preprocessing import MinMaxScaler
from ncxlib.neuralnetwork import NeuralNetwork, FullyConnectedLayer
from ncxlib.neuralnetwork import activations
from ncxlib.neuralnetwork.initializers import HeNormal, Zero
# ------- Generate some data using generators -------
generators.generate_training_data(to_csv=True)
# ------- Load data from generated csv and split it into train and test -------
loader = dataloaders.CSVDataLoader("training_data.csv")
X, y = loader.get_data()
X_train, X_test, y_train, y_test = train_test_split(X, y)
# ------- Configure model layers -------
model = NeuralNetwork([
FullyConnectedLayer(
n_neurons=3,
activation=activations.ReLU,
optimizer=optimizers.Adam(beta_1=0.9, beta_2=0.999, epsilon=1e-07),
name="first_hidden",
weights_initializer=HeNormal(),
bias_initializer=Zero()
),
FullyConnectedLayer(
n_neurons=5,
activation=activations.ReLU,
optimizer=optimizers.SGDMomentum(momentum = 0.9),
name="second_hidden",
initializer=HeNormal(),
),
FullyConnectedLayer(
n_neurons=2,
activation=activations.Sigmoid,
optimizer=optimizers.RMSProp(decay_rate = 0.8)
)
],
loss_fn=losses.BinaryCrossEntropy
)
# ------- Train model and evaluate accuracy -------
model.train(X_train, y_train, epochs=20, learning_rate=0.01)
model.evaluate(X_test, y_test)
Contributing
Thank you for your interest in contributing to the ncxlib library for Neural Network development. We are thrilled you are considering contributing to our project.
How to Contribute
- Take a look at the list of immediate contributions needed listed under the issues
- Look for areas around the repository with comments marked #TODO. If you find one, feel free to create an issue and get approval before starting the work.
- Any suggestions or feedback - please create an issue.
- Open a Pull Request with your issue and the team will review and approve/deny or provide comments on the PR.
License
This project is licensed under the MIT License
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
ncxlib-0.2.7.tar.gz
(20.3 kB
view details)
Built Distribution
ncxlib-0.2.7-py3-none-any.whl
(35.4 kB
view details)
File details
Details for the file ncxlib-0.2.7.tar.gz
.
File metadata
- Download URL: ncxlib-0.2.7.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.4 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f4639d9a28660ac10fcc4ec3577a6f27d709fc444e0096565b3f8130af058e9 |
|
MD5 | 9de0a846b8be8e61d92d5e9e5b19432e |
|
BLAKE2b-256 | 582157e9685c2d8e38ccb1dcaa400dde914d51766038069482590cdb2afe6ee3 |
File details
Details for the file ncxlib-0.2.7-py3-none-any.whl
.
File metadata
- Download URL: ncxlib-0.2.7-py3-none-any.whl
- Upload date:
- Size: 35.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.4 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 411f5bf9ecdf56d5dcfeb35444c1a80c227383e6816ce0a0385893917e95b0d3 |
|
MD5 | 7b42b18e43f283bb0642f8ad984c1db4 |
|
BLAKE2b-256 | c0026175256bc020568a6b04e8180050b51911f033e4aea12f76adb85b51c8ce |