From 7733de01d2d9a657c0e8be457dfb47638eed4111 Mon Sep 17 00:00:00 2001 From: eynard Date: Wed, 22 Dec 2021 21:35:06 +0100 Subject: [PATCH] Jalon 2 complete --- MNIST30epoch | Bin 0 -> 198867 bytes MNISTDrawingPrediction.py | 41 ++++++++++ MNISTLearning.py | 57 ++++++++++++++ MNISTLoadTest.py | 30 +++++++ sobek/network.py | 160 ++++++++++++++++++++++++++------------ testLearning.py | 13 +++- testLearningNAND.py | 47 ++++++----- 7 files changed, 280 insertions(+), 68 deletions(-) create mode 100644 MNIST30epoch create mode 100644 MNISTDrawingPrediction.py create mode 100644 MNISTLearning.py create mode 100644 MNISTLoadTest.py diff --git a/MNIST30epoch b/MNIST30epoch new file mode 100644 index 0000000000000000000000000000000000000000..89924479aeee35b1717acaa4486a816c13b64507 GIT binary patch literal 198867 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

D_%eLb%qM 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%0A4|jNI;E_Oh)+wW=L5{zgeh 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ⅅ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 AwEzGB literal 0 HcmV?d00001 diff --git a/MNISTDrawingPrediction.py b/MNISTDrawingPrediction.py new file mode 100644 index 0000000..e5659b8 --- /dev/null +++ b/MNISTDrawingPrediction.py @@ -0,0 +1,41 @@ +import tkinter +from PIL import Image, ImageDraw +from sobek.network import network +import numpy as np + +class Sketchpad(tkinter.Canvas): + def __init__(self, parent, predictionLabel, **kwargs, ): + super().__init__(parent, **kwargs) + self.bind("", self.test) + self.bind("", self.add_line) + self.PILImage = Image.new("F", (560, 560), 100) + self.draw = ImageDraw.Draw(self.PILImage) + self.MNISTNN = network.networkFromFile("MNIST30epoch") + self.predictionLabel = predictionLabel + + def add_line(self, event): + self.create_oval((event.x+32, event.y+32, event.x-32, event.y-32), fill="black") + self.draw.ellipse([event.x-32, event.y-32, event.x+32, event.y+32], fill="black") + smallerImage = self.PILImage.reduce(20) + imageAsArray = np.array(smallerImage.getdata()) + imageAsArray = (100 - imageAsArray)/100 + self.predictionLabel['text'] = ( "Predicted number : " + str(np.argmax(self.MNISTNN.process(imageAsArray)))) + + def test(self, event): + self.PILImage = Image.new("F", (560, 560), 100) + self.draw = ImageDraw.Draw(self.PILImage) + self.delete("all") + +window = tkinter.Tk() +window.title("Number guesser") +window.resizable(False, False) +window.columnconfigure(0, weight=1) +window.rowconfigure(0, weight=1) + +predictionLabel = tkinter.Label(window, text="Predicted number :") + +sketch = Sketchpad(window, predictionLabel, width=560, height=560) +sketch.grid(column=0, row=0, sticky=(tkinter.N, tkinter.W, tkinter.E, tkinter.S)) +predictionLabel.grid(column=0, row=1) + +window.mainloop() \ No newline at end of file diff --git a/MNISTLearning.py b/MNISTLearning.py new file mode 100644 index 0000000..6ed386c --- /dev/null +++ b/MNISTLearning.py @@ -0,0 +1,57 @@ +import numpy as np +from sobek.network import network +import gzip +import time + +print("--- Data loading ---") + +def getData(fileName): + with open(fileName, 'rb') as f: + data = f.read() + return np.frombuffer(gzip.decompress(data), dtype=np.uint8).copy() + + +tempTrainImages = getData("./MNIST/train-images-idx3-ubyte.gz")[0x10:].reshape((-1, 784)).tolist() +trainImages = [] +for image in tempTrainImages: + for pixel in range(784): + if image[pixel] !=0: + image[pixel] = image[pixel]/256 + trainImages.append(np.array(image, dtype=np.float64)) +tempTrainLabels = getData("./MNIST/train-labels-idx1-ubyte.gz")[8:] +trainLabels = [] +for label in tempTrainLabels: + trainLabels.append(np.zeros(10)) + trainLabels[-1][label] = 1.0 + +myNetwork = network(784, 30, 10) + +learningRate = 3.0 + +print("--- Learning ---") + +startTime = time.perf_counter() + +""" +for i in range(1): + print("Epoch: " + str(i)) + batchEnd = 10 + while batchEnd < 1000: + batchImages = trainImages[:batchEnd] + batchLabels = trainLabels[:batchEnd] + myNetwork.train(batchImages, batchLabels, learningRate) + batchEnd += 10 + if (batchEnd%100) == 0: + print(batchEnd) +""" + +myNetwork.train(trainImages, trainLabels, learningRate, 10, 30) + +endTime = time.perf_counter() + +print("Learning time : " + str(endTime - startTime)) + +print(trainLabels[121]) +print(myNetwork.process(trainImages[121])) + +myNetwork.saveToFile("MNIST30epoch") \ No newline at end of file diff --git a/MNISTLoadTest.py b/MNISTLoadTest.py new file mode 100644 index 0000000..d929474 --- /dev/null +++ b/MNISTLoadTest.py @@ -0,0 +1,30 @@ +import numpy as np +from sobek.network import network +import gzip + +print("--- Data loading ---") + +def getData(fileName): + with open(fileName, 'rb') as f: + data = f.read() + return np.frombuffer(gzip.decompress(data), dtype=np.uint8).copy() + + +tempTrainImages = getData("./MNIST/t10k-images-idx3-ubyte.gz")[0x10:].reshape((-1, 784)).tolist() +trainImages = [] +for image in tempTrainImages: + for pixel in range(784): + if image[pixel] !=0: + image[pixel] = image[pixel]/256 + trainImages.append(np.array(image, dtype=np.float64)) +tempTrainLabels = getData("./MNIST/t10k-labels-idx1-ubyte.gz")[8:] +trainLabels = [] +for label in tempTrainLabels: + trainLabels.append(np.zeros(10)) + trainLabels[-1][label] = 1.0 + +print("--- Testing ---") + +myNetwork = network.networkFromFile("MNIST30epoch") + +print(myNetwork.accuracy(trainImages, trainLabels)) \ No newline at end of file diff --git a/sobek/network.py b/sobek/network.py index a312fd9..84edaf2 100755 --- a/sobek/network.py +++ b/sobek/network.py @@ -1,4 +1,8 @@ +import random import numpy as np +import matplotlib.pyplot as plt +import matplotlib.animation as animation +import pickle class network: @@ -26,9 +30,9 @@ class network: def process(self, _input, __storeValues=False): if type(_input) != np.ndarray: - raise TypeError("The input must be a vector!") + raise TypeError("The input must be a numpy array!") if _input.size != self.__inputLayerSize: - raise ValueError("The input vector has the wrong size!") + raise ValueError("The input vector has the wrong size! " + str(_input.size) + " != " + str(self.__inputLayerSize)) if _input.dtype != np.float64: print(_input.dtype) raise TypeError("The input vector must contain floats!") @@ -59,58 +63,100 @@ class network: - def train(self, inputs, desiredOutputs, learningRate): + def train(self, inputs, desiredOutputs, learningRate, batchSize, epochs=1, visualize=False): + if (type(inputs) != list or type(desiredOutputs) != list): + raise TypeError("The inputs and desired outputs must be lists of numpy arrays !") if (len(inputs) != len(desiredOutputs)): - raise ValueError("The inputs and desired outputs vectors must have the same amount of data !") + raise ValueError("The inputs and desired outputs lists must have the same amount of data ! " + str(len(inputs)) + " != " + str(len(desiredOutputs))) + if (len(inputs) == 0): + raise ValueError("The list is empty !") + if (visualize == False): + if (self.__inputLayerSize != 2): + raise ValueError("Visualization is only possible for 2 inputs networks") + if (len(self.weights[-1]) != 1): + raise ValueError("Visualization is only possible for 1 output networks") - for _input, desiredOutput in zip(inputs, desiredOutputs): + errorSumsWeights = [] + errorSumsBiases = [] - errorSumsWeights = [np.zeros(layer.shape) for layer in self.weights] - errorSumsBiases = [np.zeros(layer.shape) for layer in self.biases] - self.__errors = [np.zeros(len(layer)) for layer in self.weights] + if (visualize): + vizualisationData = [] + fig, graph = plt.subplots() - #rempli self.activations et self.outputs - self.process(_input, True) - self.__desiredOutput = desiredOutput + for epoch in range(epochs): + randomState = random.getstate() - #Somme de matrice ? - for layerNumber in range(len(errorSumsWeights)-1, -1, -1): - for neuronNumber in range(len(errorSumsWeights[layerNumber])): - errorSumsBiases[layerNumber][neuronNumber] += self.__Error(layerNumber, neuronNumber) - for weightNumber in range(len(errorSumsWeights[layerNumber][neuronNumber])): - #print("layer : " + str(layerNumber) + " neuron : " + str(neuronNumber) + " weight : " + str(weightNumber)) - errorSumsWeights[layerNumber][neuronNumber][weightNumber] += self.__PartialDerivative(layerNumber, neuronNumber, weightNumber) + random.shuffle(inputs) - total = 0 - - - errorSumsWeights = np.multiply(errorSumsWeights, -(learningRate/len(inputs))) - self.weights = np.add(self.weights, errorSumsWeights) + random.setstate(randomState) - errorSumsBiases = np.multiply(errorSumsBiases, -(learningRate/len(inputs))) - self.biases = np.add(self.biases, errorSumsBiases) + random.shuffle(desiredOutputs) - #print(self.__biases) - - """ - for layerNumber in range(len(errorSumsWeights)): - for neuronNumber in range(len(errorSumsWeights[layerNumber])): + if (visualize and epoch%10 == 0): + vizualisationFrame = np.empty((30, 30)) + for x in range(30): + for y in range(30): + vizualisationFrame[x][y] = self.process(np.array([float(x), float(y)])) + vizualisationData.append([graph.imshow(vizualisationFrame, animated=True)]) - errorSumsBiases[layerNumber][neuronNumber] = errorSumsBiases[layerNumber][neuronNumber] / len(inputs) - total += errorSumsBiases[layerNumber][neuronNumber] - self.biases[layerNumber][neuronNumber] -= learningRate * errorSumsBiases[layerNumber][neuronNumber] + inputBatches = [inputs[j:j+batchSize] for j in range(0, len(inputs), batchSize)] + desiredOutputsBatches = [desiredOutputs[j:j+batchSize] for j in range(0, len(inputs), batchSize)] + + for inputBatch, desiredOutputsBatch in zip(inputBatches, desiredOutputsBatches): - for weightNumber in range(len(errorSumsWeights[layerNumber][neuronNumber])): + for _input, desiredOutput in zip(inputBatch, desiredOutputsBatch): - #Probablement faisable avec une multiplication de matrices - errorSumsWeights[layerNumber][neuronNumber][weightNumber] = errorSumsWeights[layerNumber][neuronNumber][weightNumber] / len(inputs) - - total += errorSumsWeights[layerNumber][neuronNumber][weightNumber] + errorSumsWeights = [np.zeros(layer.shape) for layer in self.weights] + errorSumsBiases = [np.zeros(layer.shape) for layer in self.biases] + self.__errors = [np.zeros(len(layer)) for layer in self.weights] - #Probablement faisable avec une somme de matrices - self.weights[layerNumber][neuronNumber][weightNumber] -= learningRate * errorSumsWeights[layerNumber][neuronNumber][weightNumber] + #rempli self.activations et self.outputs + self.process(_input, True) + self.__desiredOutput = desiredOutput - #print("Error : " + str(total))""" + #A optimiser + for layerNumber in range(len(errorSumsWeights)-1, -1, -1): + for neuronNumber in range(len(errorSumsWeights[layerNumber])): + errorSumsBiases[layerNumber][neuronNumber] += self.__Error(layerNumber, neuronNumber) + #for weightNumber in range(len(errorSumsWeights[layerNumber][neuronNumber])): + #print("layer : " + str(layerNumber) + " neuron : " + str(neuronNumber) + " weight : " + str(weightNumber)) + #errorSumsWeights[layerNumber][neuronNumber][weightNumber] += self.__PartialDerivative(layerNumber, neuronNumber, weightNumber) + #errorSumsWeights[layerNumber][neuronNumber][weightNumber] = errorSumsBiases[layerNumber][neuronNumber] * self.outputs[layerNumber][weightNumber] + errorSumsWeights[layerNumber][neuronNumber] = np.dot(errorSumsBiases[layerNumber][neuronNumber],self.outputs[layerNumber]) + + total = 0 + + for layerNumber in range(len(errorSumsWeights)): + errorSumsWeights[layerNumber] = np.multiply(errorSumsWeights[layerNumber], -(learningRate/len(inputBatch))) + self.weights[layerNumber] = np.add(self.weights[layerNumber], errorSumsWeights[layerNumber]) + + errorSumsBiases[layerNumber] = np.multiply(errorSumsBiases[layerNumber], -(learningRate/len(inputBatch))) + self.biases[layerNumber] = np.add(self.biases[layerNumber], errorSumsBiases[layerNumber]) + + #print(self.__biases) + """ + + for layerNumber in range(len(errorSumsWeights)): + for neuronNumber in range(len(errorSumsWeights[layerNumber])): + + errorSumsBiases[layerNumber][neuronNumber] = errorSumsBiases[layerNumber][neuronNumber] / len(inputBatch) + total += errorSumsBiases[layerNumber][neuronNumber] + self.biases[layerNumber][neuronNumber] -= learningRate * errorSumsBiases[layerNumber][neuronNumber] + + for weightNumber in range(len(errorSumsWeights[layerNumber][neuronNumber])): + + #Probablement faisable avec une multiplication de matrices + errorSumsWeights[layerNumber][neuronNumber][weightNumber] = errorSumsWeights[layerNumber][neuronNumber][weightNumber] / len(inputBatch) + + #total += errorSumsWeights[layerNumber][neuronNumber][weightNumber] + + #Probablement faisable avec une somme de matrices + self.weights[layerNumber][neuronNumber][weightNumber] -= learningRate * errorSumsWeights[layerNumber][neuronNumber][weightNumber] + + #print("Error : " + str(total))""" + if (visualize): + ani = animation.ArtistAnimation(fig, vizualisationData, interval=100) + plt.show() def __Error(self, layer, neuron): if (self.__errors[layer][neuron] == 0 ): @@ -122,20 +168,38 @@ class network: def __ErrorHiddenLayer(self, layer, neuron): upperLayerLinksSum = 0 - #Probablement faisable avec une multiplication de matrices for upperLayerNeuron in range(len(self.weights[layer+1])): upperLayerLinksSum += self.weights[layer+1][upperLayerNeuron][neuron] * self.__errors[layer+1][upperLayerNeuron] return network.__sigmoid(self.activations[layer][neuron], derivative=True) * upperLayerLinksSum - def __PartialDerivative(self, layer, neuron, weight): - return self.__Error(layer, neuron) * self.outputs[layer][weight] + #def __PartialDerivative(self, layer, neuron, weight): + # return self.__Error(layer, neuron) * self.outputs[layer][weight] + def accuracy(self, inputs, desiredOutputs): + if (type(inputs) != list or type(desiredOutputs) != list): + raise TypeError("The inputs and desired outputs must be lists of numpy arrays !") + if (len(inputs) != len(desiredOutputs)): + raise ValueError("The inputs and desired outputs lists must have the same amount of data !") + if (len(inputs) == 0): + raise ValueError("The list is empty !") + sum = 0 + for i in range(len(desiredOutputs)): + if (np.argmax(desiredOutputs[i]) == np.argmax(self.process(inputs[i]))): + sum += 1 + return sum/len(desiredOutputs) def saveToFile(self, fileName): - np.savez(fileName, biases=self.biases, weights=self.weights) + with open(fileName, "wb") as file: + pickle.dump(self, file) def loadFromFile(self, fileName): - data = np.load(fileName) - self.biases = data['biases'] - self.weights = data['weights'] \ No newline at end of file + with open(fileName, "rb") as file: + fromNetwork = pickle.load(file) + self.weights = fromNetwork.weights + self.biases = fromNetwork.biases + self.__inputLayerSize = fromNetwork.__inputLayerSize + + def networkFromFile(fileName): + with open(fileName, "rb") as file: + return pickle.load(file) \ No newline at end of file diff --git a/testLearning.py b/testLearning.py index db19caa..8f25fd4 100644 --- a/testLearning.py +++ b/testLearning.py @@ -8,7 +8,7 @@ myNetwork = network(10, 10) learningRate = 3 -for j in range(10000): +for j in range(1000): rand = [] inputs = [] desiredOutputs = [] @@ -36,4 +36,13 @@ test[0][1] = 1.0 test[1][5] = 1.0 print(test[0]) print(myNetwork.process(test[0])) -print(myNetwork.process(test[1])) \ No newline at end of file +print(test[1]) +print(myNetwork.process(test[1])) + +print("Save and load test :") + +myNetwork.saveToFile("test") + +myNetwork2 = network.networkFromFile("test") + +print(myNetwork.process(test[0]).all() == myNetwork2.process(test[0]).all()) \ No newline at end of file diff --git a/testLearningNAND.py b/testLearningNAND.py index 14ba696..5d65b65 100644 --- a/testLearningNAND.py +++ b/testLearningNAND.py @@ -1,10 +1,11 @@ import numpy as np import random from sobek.network import network +import time random.seed() -myNetwork = network(2, 1) +myNetwork = network(2, 2, 1) learningRate = 3 @@ -23,23 +24,29 @@ result.append(np.ones(1)) result.append(np.ones(1)) result.append(np.zeros(1)) -for j in range(10000): - inputs = [] - desiredOutputs = [] - - if (j%1000 == 0): - print(j) +learningTime = 0 - random.shuffle(test) +nbRep = 1 - for i in range(4): - if (test[i][0] == 1.0) and (test[i][1] == 1.0): - result[i][0] = 0.0 - else: - result[i][0] = 1.0 - - myNetwork.train(test, result, learningRate) +for i in range(nbRep): + if (i%(nbRep/10) == 0): print(i) + startTime = time.perf_counter() + + #for j in range(10000): + # inputs = [] + # desiredOutputs = [] + + #if (j%1000 == 0): + # print(j) + + # myNetwork.train(test, result, learningRate) + + myNetwork.train(test, result, learningRate, len(test), 10000, visualize=False) + + endTime = time.perf_counter() + learningTime += endTime - startTime +learningTime = learningTime / nbRep test = [] result = [] test.append(np.zeros(2)) @@ -55,9 +62,13 @@ result.append(np.ones(1)) result.append(np.ones(1)) result.append(np.zeros(1)) -print(myNetwork.weights) -print(myNetwork.biases) +#print(myNetwork.weights) +#print(myNetwork.biases) print("0 0 : " + str(myNetwork.process(test[0])) + " == 1 ?") print("0 1 : " + str(myNetwork.process(test[1])) + " == 1 ?") print("1 0 : " + str(myNetwork.process(test[2])) + " == 1 ?") -print("1 1 : " + str(myNetwork.process(test[3])) + " == 0 ?") \ No newline at end of file +print("1 1 : " + str(myNetwork.process(test[3])) + " == 0 ?") + +myNetwork.saveToFile("NAND") + +print("Learning time : " + str(endTime - startTime)) \ No newline at end of file