From b62f40d913117a77502d2c3eae1c1ba9979bdd26 Mon Sep 17 00:00:00 2001 From: spikey Date: Tue, 5 Mar 2024 16:30:33 -0500 Subject: [PATCH] added project structure. believe there is a better way to do this. --- run.py | 8 ++++++++ train.py | 33 +++++++++++++++++++++++++++++++++ weights.pkl | Bin 0 -> 10847 bytes 3 files changed, 41 insertions(+) create mode 100755 run.py create mode 100755 train.py create mode 100644 weights.pkl diff --git a/run.py b/run.py new file mode 100755 index 0000000..cca990e --- /dev/null +++ b/run.py @@ -0,0 +1,8 @@ +#!/usr/bin/env python3 + +import pickle + + +weights = pickle.load(open("weights.pkl", "rb")) + + diff --git a/train.py b/train.py new file mode 100755 index 0000000..4bbce43 --- /dev/null +++ b/train.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + +from sklearn.datasets import load_digits +from sklearn.model_selection import train_test_split +from sklearn.neural_network import MLPClassifier +from sklearn.metrics import accuracy_score +import matplotlib.pyplot as plt +import pickle + +digits = load_digits() + +# input +x = digits.images.reshape((len(digits.images), -1)) + +# what the output should be +y = digits.target + +mlp = MLPClassifier(hidden_layer_sizes=(18,), + activation='logistic', + alpha=1e-4, solver='sgd', + tol=1e-4, random_state=1, + learning_rate_init=.1, + verbose=True) + +mlp.fit(x, y) + +fig, axes = plt.subplots(1, 1) +axes.plot(mlp.loss_curve_, 'o-') +axes.set_xlabel("iterations") +axes.set_ylabel("loss") +plt.show() + +pickle.dump(mlp.coefs_, open( 'weights.pkl', 'wb')) diff --git a/weights.pkl b/weights.pkl new file mode 100644 index 0000000000000000000000000000000000000000..690aacd5b7c365d845b8665c3b25ace293d4e700 GIT binary patch literal 10847 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 ci~j@FJGLrtuZ&Yp2q)q!c9c}AHW+fqW}N^ literal 0 HcmV?d00001