https://github.com/boobshash/numpy-neural-net
Simple and extendable library for deep learning in numpy
https://github.com/boobshash/numpy-neural-net
deep-learning mlp-classifier numpy
Last synced: 7 months ago
JSON representation
Simple and extendable library for deep learning in numpy
- Host: GitHub
- URL: https://github.com/boobshash/numpy-neural-net
- Owner: boobshash
- Created: 2022-03-18T13:23:19.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-20T09:32:50.000Z (almost 4 years ago)
- Last Synced: 2025-06-11T03:39:33.566Z (8 months ago)
- Topics: deep-learning, mlp-classifier, numpy
- Language: Jupyter Notebook
- Homepage:
- Size: 4.24 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Numpy-Neural-Net
Dear comrade! You can see a simple and extendable library for deep learning which is written entirely in numpy.
## Core
The choosen architecture a little similar to PyTorch (`Module`, `Criterion`, and etc entities), see `core` folder for precise information.
## Data
In `data/data.py` you can find 3 useful abstractions:
1. `DatasetImageFolder`
2. `DataLoader`
3. `DataManager`
DatasetImageFolder and DataLoader are similar to Torch, DataManager similar to Torch Lightning.
P.S. To run `run.py` to test efficiency of nn, download [CIFAR-10 dataset](https://drive.google.com/drive/folders/1M0M8jFpfWyi2G45kVovvVeoPgzGo6vaD?usp=sharing)
## Trainer
I have implement `Trainer` in `trainer.py`, you can use it to fit your model.
```python
dm = DataManager(
train_data_path='data/Dataset/train',
test_data_path='data/Dataset/test',
val_data_path='data/Dataset/test',
class_names=[str(i) for i in range(10)],
batch_size=512
)
trainer = Trainer(
model=model,
train_dataloader=dm.get_train_dataloader(),
test_dataloader=dm.get_test_dataloader(),
val_dataloader=dm.get_val_dataloader(),
criterion=criterion,
metrics_fn=metrics,
optimizer=optimizer,
optimizer_config=optimizer_config,
optimizer_state={}
)
model, hist = trainer.fit(n_epochs=100)
```
## Examples
see `example.ipynb`