aboutsummaryrefslogtreecommitdiff
path: root/MultiLayerPerceptron/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'MultiLayerPerceptron/main.py')
-rw-r--r--MultiLayerPerceptron/main.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/MultiLayerPerceptron/main.py b/MultiLayerPerceptron/main.py
index 2dbfa3d..d7a3138 100644
--- a/MultiLayerPerceptron/main.py
+++ b/MultiLayerPerceptron/main.py
@@ -49,9 +49,8 @@ class Layer():
self.grad_weights = np.outer(self.grad_inter, input)
class MultiLayerPerceptron():
- layers = []
-
def __init__(self, layer_sizes):
+ self.layers = []
for k in range(len(layer_sizes)-1):
self.layers.append(Layer(layer_sizes[k], layer_sizes[k+1]))
@@ -60,7 +59,8 @@ class MultiLayerPerceptron():
@staticmethod
def load(filename):
- array = np.load(open(filename, 'rb'))
+ with open(filename, 'rb') as f:
+ array = np.load(f, allow_pickle=True)
sizes = [array[0].shape[1]]
for layer in array:
sizes.append(layer.shape[0])
@@ -70,8 +70,9 @@ class MultiLayerPerceptron():
return mlp
def save(self, filename):
- array = [layer.weights for layer in self.layers]
- np.save(open(filename, 'wb'), array)
+ array = np.array([layer.weights for layer in self.layers], dtype=object)
+ with open(filename, 'wb') as f:
+ np.save(f, array, allow_pickle=True)
def error(self, output, expected):
return 1/2 * np.sum((expected - output)**2)
@@ -171,10 +172,12 @@ if __name__ == "__main__":
mlp = MultiLayerPerceptron.load('mnist.npy')
print("OK")
print("[Loading] Training set: ", end="")
- space = np.load(open("data/train.npy", "rb"))
+ with open("data/train.npy", "rb") as f:
+ space = np.load(f, allow_pickle=True)
space = [(input.reshape(28*28), expected) for input, expected in space]
print("OK Testing set: ", end="")
- test_space = np.load(open("data/test.npy", "rb"))
+ with open("data/test.npy", "rb") as f:
+ test_space = np.load(f, allow_pickle=True)
test_space = [(input.reshape(28*28), expected) for input, expected in test_space]
print("OK")