https://github.com/w86763777/numpynet
A simple Deep Learning framework powered by numpy.
https://github.com/w86763777/numpynet
backpropagation cnn deeplearning fundamental numpy python
Last synced: 4 months ago
JSON representation
A simple Deep Learning framework powered by numpy.
- Host: GitHub
- URL: https://github.com/w86763777/numpynet
- Owner: w86763777
- Created: 2018-12-05T05:26:38.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-05-03T19:54:19.000Z (about 2 years ago)
- Last Synced: 2025-03-05T05:02:10.005Z (over 1 year ago)
- Topics: backpropagation, cnn, deeplearning, fundamental, numpy, python
- Language: Python
- Homepage:
- Size: 22.5 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# NumpyNet
High level neural network API implementated using numpy.
The project is my homework in deeplearning course at NCTU. Anyone can trace the code to learn how to do the backpropagation on sequential model and how to build a basic deeplearning API with python.
## Requirements
- python3
## Install
```
$ git clone https://github.com/w86763777/numpynet
$ cd numpynet
$ python setup.py install
```
## Example
```python
from numpynet.dataset import iris, split_dataset
from numpynet.models import SequentialModel
from numpynet.optimizers import Adam
from numpynet.loss import CrossEntropy
from numpynet.metrics import categorical_accuracy
from numpynet.layers import Input, Dense, ReLU, Softmax, Dropout
if __name__ == "__main__":
# load iris dataset
iris = iris.read_data_sets()
# split dataset
train, test = split_dataset(iris, test_size=0.33)
# build model
model = SequentialModel()
model.add(Input((4,)))
model.add(Dense(10))
model.add(ReLU())
model.add(Dropout(0.3))
model.add(Dense(10))
model.add(ReLU())
model.add(Dropout(0.3))
model.add(Dense(3))
model.add(Softmax())
# assign objective, optimizer and metrics which is going to be shown on
# progress bar
model.compile(
objective=CrossEntropy(),
optimizer=Adam(learning_rate=0.001),
metric=[categorical_accuracy])
# fit on data
model.fit(
x=train.X, y=train.y, val_x=test.X, val_y=test.y,
epochs=500, batch_size=8)
```
output
```
Epoch 1/500
100%|█████████████| 13/13 [00:00<00:00, 1441.88it/s, categorical_accuracy=0.2900, cross_entropy=1.0986, val_categorical_accuracy=0.3600, val_cross_entropy=1.0982]
Epoch 2/500
100%|█████████████| 13/13 [00:00<00:00, 1288.82it/s, categorical_accuracy=0.4200, cross_entropy=1.0968, val_categorical_accuracy=0.3600, val_cross_entropy=1.0982]
...
Epoch 500/500
100%|█████████████| 13/13 [00:00<00:00, 1296.02it/s, categorical_accuracy=0.6900, cross_entropy=0.8285, val_categorical_accuracy=0.9600, val_cross_entropy=0.2492]
```
[more examples](https://github.com/w86763777/numpynet/tree/master/examples)
## How it work
- TODO
## Issues
- regularization deos not work