Machine Learning library written in Python and NumPy.
Project description
pykitml (Python Kit for Machine Learning)
Machine Learning library written in Python and NumPy.
Installation
python3 -m pip install pykitml
Documentation
https://pykitml.readthedocs.io/en/latest/
Demo (MNIST)
Training
import os.path
import numpy as np
import pykitml as pk
from pykitml.datasets import mnist
# Download dataset
if(not os.path.exists('mnist.pkl')): mnist.get()
# Load dataset
training_data, training_targets, testing_data, testing_targets = mnist.load()
# Create a new neural network
digit_classifier = pk.NeuralNetwork([784, 100, 10])
# Train it
digit_classifier.train(
training_data=training_data,
targets=training_targets,
batch_size=50,
epochs=1200,
optimizer=pk.Adam(learning_rate=0.012, decay_rate=0.95),
testing_data=testing_data,
testing_targets=testing_targets,
testing_freq=30,
decay_freq=15
)
# Save it
pk.save(digit_classifier, 'digit_classifier_network.pkl')
# Show performance
accuracy = digit_classifier.accuracy(training_data, training_targets)
print('Train Accuracy:', accuracy)
accuracy = digit_classifier.accuracy(testing_data, testing_targets)
print('Test Accuracy:', accuracy)
# Plot performance graph
digit_classifier.plot_performance()
# Show confusion matrix
digit_classifier.confusion_matrix(training_data, training_targets)
Trying the model
import random
import numpy as np
import matplotlib.pyplot as plt
import pykitml as pk
from pykitml.datasets import mnist
# Load dataset
training_data, training_targets, testing_data, testing_targets = mnist.load()
# Load the trained network
digit_classifier = pk.load('digit_classifier_network.pkl')
# Pick a random example from testing data
index = random.randint(0, 9999)
# Show the test data and the label
plt.imshow(training_data[index].reshape(28, 28))
plt.show()
print('Label: ', training_targets[index])
# Show prediction
digit_classifier.feed(training_data[index])
model_output = digit_classifier.get_output_onehot()
print('Predicted: ', model_output)
Performance Graph
Confusion Matrix
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
pykitml-0.1.2.tar.gz
(46.0 kB
view details)
Built Distribution
pykitml-0.1.2-py3-none-any.whl
(60.6 kB
view details)
File details
Details for the file pykitml-0.1.2.tar.gz
.
File metadata
- Download URL: pykitml-0.1.2.tar.gz
- Upload date:
- Size: 46.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad5aa2818be29836d99416ce5d7b298fc8d379f5d8086db7a4a81aea7c863a87 |
|
MD5 | f66abe1160da5e79de9b2cc16f2d1812 |
|
BLAKE2b-256 | f1759cab2bcd2d7de3e769f3d099d588c4a3e74aeab323bca11c57d3ed953986 |
File details
Details for the file pykitml-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: pykitml-0.1.2-py3-none-any.whl
- Upload date:
- Size: 60.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ce1675008309f0d34c7bcb2f798e27a52265c41e05d712fcaf47bf010978b5a |
|
MD5 | b45713bacbee75a5fc49b82a346d5e41 |
|
BLAKE2b-256 | 9f7e8557deb2c37dfd5fb915dcf0c68da9ed2bffd7427e7f6626e92dec0162f5 |