NumPy Neural Network
Project description
npnn
NumPy Neural Network
What's npnn?
npnnis a a torch-like Python module for gradient descent based machine learning implemented withnumpy.
Dependency
Basically npnn only depends on numpy(the latest version 1.26.4 is verified).
If you have CUDA devices available, then you can easily get a acceleration by installing suitable version of cupy. In this case npnn will use cupy api rather than numpy api.
For example, my PC have CUDA v12.x (x86_64), so I use command:
pip install cupy-cuda12x
pip install npnn
or in short:
pip install npnn[cuda12x]
check cupy documentation for more information.
API references
See npnn WIKI.
Known issues
See npnn known-issues.
Work with npnn!
Here we will construct a image classification neural network with npnn.
BTW, this is a course assignment of DATA620004, School of Data Science, Fudan University.
Task
Construct and Train a neural network on Fashion-MNIST to do image classification.
-
Implement gradient backpropagation algorithm by hand,you can use
numpybut DO NOT usepytorchortensorflowto do autograd. -
Submit source code including at least four parts:
model definition,training,parameters searchingandtesting.
Implementation
dataset.py: provide Fashion MNIST datasetmodel.py: model definitiontrain.py: model trainingsearch.py: parameters searchingtest.py: model testingviz.py: visualizationutils.py: some misc function, such assave_model
run search.py, you can get a table like:
| no | train_id | accuracy | hidden_size | batch_size | learning_rate | regularization | regular_strength |
|---|---|---|---|---|---|---|---|
| 0 | 2024_0423(1713841292) | 0.8306 | [384] | 3 | 0.002 | None | 0.0 |
| 1 | 2024_0423(1713845802) | 0.8145 | [384] | 3 | 0.002 | l2 | 0.1 |
| 2 | 2024_0423(1713849349) | 0.8269 | [384] | 3 | 0.002 | l2 | 0.01 |
| 3 | 2024_0423(1713853939) | 0.8255 | [384] | 3 | 0.002 | l2 | 0.005 |
| 4 | 2024_0423(1713857657) | 0.8373 | [384] | 3 | 0.002 | l2 | 0.001 |
train log file and saved model weights can be found in ./logs and ./checkpoints folder.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file npnn-0.1.1.tar.gz.
File metadata
- Download URL: npnn-0.1.1.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd839ac815b4ec0b054ba0e934336822cf3ca283e4b41546bb5174a640f6dac1
|
|
| MD5 |
fd5e999a5363793a1884400430dfdb2e
|
|
| BLAKE2b-256 |
757b0b23417bc02775dd17b93f6562bf1bcc02a32e8d4f7d213f14eee21d4166
|
File details
Details for the file npnn-0.1.1-py3-none-any.whl.
File metadata
- Download URL: npnn-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c79becc4cf0305ec665459f548975a15e4fe660e7933850e5ddc6efa1cee3b93
|
|
| MD5 |
05b58c97a31a74d42bd28d5d48787635
|
|
| BLAKE2b-256 |
b72229d69a55b09caf09a789d5c2f17e40f456588bec0be543f8e010222bd2b3
|