def test(): Xtrain, ytrain, Xvalid, yvalid, Xtest, ytest = utils.readMoonFile() h = 200 wd = 0.0001 K = 200 maxIter = 500 # neuralNetwork = NeuralNetwork(len(Xtrain[0]), h, utils.getClassCount(ytrain), K=10, wd=wd) neuralNetworkEfficient = NeuralNetworkEfficient( len(Xtrain[0]), h, utils.getClassCount(ytrain), K, wd=wd) # neuralNetworkEfficient._w1 = neuralNetwork._w1 # neuralNetworkEfficient._w2 = neuralNetwork._w2 # neuralNetwork.train(Xtrain, ytrain, maxIter) # predTrain = neuralNetwork.computePredictions(Xtrain) # predValid = neuralNetwork.computePredictions(Xvalid) # predTest = neuralNetwork.computePredictions(Xtest) # trainEfficiency = utils.calculatePredictionsEfficiency(predTrain, ytrain) # validEfficiency = utils.calculatePredictionsEfficiency(predValid, yvalid) # testEfficiency = utils.calculatePredictionsEfficiency(predTest, ytest) # print( "Train Err: " + "{:.2f}".format(100 - trainEfficiency) + "%" \ # + " / Valid Err: " + "{:.2f}".format(100 - validEfficiency) + "%" \ # + " / Test Err: " + "{:.2f}".format(100 - testEfficiency) + "%") neuralNetworkEfficient.train(Xtrain, ytrain, maxIter) predTrain = neuralNetworkEfficient.computePredictions(Xtrain) predValid = neuralNetworkEfficient.computePredictions(Xvalid) predTest = neuralNetworkEfficient.computePredictions(Xtest) trainEfficiency = utils.calculatePredictionsEfficiency(predTrain, ytrain) validEfficiency = utils.calculatePredictionsEfficiency(predValid, yvalid) testEfficiency = utils.calculatePredictionsEfficiency(predTest, ytest) print( "Train Err: " + "{:.2f}".format(100 - trainEfficiency) + "%" \ + " / Valid Err: " + "{:.2f}".format(100 - validEfficiency) + "%" \ + " / Test Err: " + "{:.2f}".format(100 - testEfficiency) + "%")
def exo1234(): print("\n\n>>EXERCICE 1 et 2") sigma = 1e-4 neuralNetwork = NeuralNetwork(2, 2, 2) Xtrain = [0.7, 0.7] ytrain = 1 # imaginons que c'est un point de la classe print("Liste des ratio W1, b1, W2, b2") res = verifGradient1d(neuralNetwork, Xtrain, ytrain) print(res) print(">Tout les ratio sont bien entre 0.99 et 1.01" if False not in [0.99 < i < 1.01 for i in (np.array(res)).flatten()] else "Echec de la verif..") print("\n\n>>EXERCICE 3 et 4") Xtrain, ytrain, Xvalid, yvalid, Xtest, ytest = utils.readMoonFile() neuralNetwork = NeuralNetwork(len(Xtrain[0]), 5, utils.getClassCount(ytrain)) K = 10 X = Xtrain[9] y = ytrain[9] print("Liste des ratio W1, b1, W2, b2") res = verifGradient1d(neuralNetwork, X, y) print(res) print(">Tout les ratio sont bien entre 0.99 et 1.01" if False not in [0.99 < i < 1.01 for i in (np.array(res)).flatten()] else "Echec de la verif..")
def test(): Xtrain, ytrain, Xvalid, yvalid, Xtest, ytest = utils.readMoonFile() h = 200 wd = 0.0001 K = 200 maxIter = 500 # neuralNetwork = NeuralNetwork(len(Xtrain[0]), h, utils.getClassCount(ytrain), K=10, wd=wd) neuralNetworkEfficient = NeuralNetworkEfficient(len(Xtrain[0]), h, utils.getClassCount(ytrain), K, wd=wd) # neuralNetworkEfficient._w1 = neuralNetwork._w1 # neuralNetworkEfficient._w2 = neuralNetwork._w2 # neuralNetwork.train(Xtrain, ytrain, maxIter) # predTrain = neuralNetwork.computePredictions(Xtrain) # predValid = neuralNetwork.computePredictions(Xvalid) # predTest = neuralNetwork.computePredictions(Xtest) # trainEfficiency = utils.calculatePredictionsEfficiency(predTrain, ytrain) # validEfficiency = utils.calculatePredictionsEfficiency(predValid, yvalid) # testEfficiency = utils.calculatePredictionsEfficiency(predTest, ytest) # print( "Train Err: " + "{:.2f}".format(100 - trainEfficiency) + "%" \ # + " / Valid Err: " + "{:.2f}".format(100 - validEfficiency) + "%" \ # + " / Test Err: " + "{:.2f}".format(100 - testEfficiency) + "%") neuralNetworkEfficient.train(Xtrain, ytrain, maxIter) predTrain = neuralNetworkEfficient.computePredictions(Xtrain) predValid = neuralNetworkEfficient.computePredictions(Xvalid) predTest = neuralNetworkEfficient.computePredictions(Xtest) trainEfficiency = utils.calculatePredictionsEfficiency(predTrain, ytrain) validEfficiency = utils.calculatePredictionsEfficiency(predValid, yvalid) testEfficiency = utils.calculatePredictionsEfficiency(predTest, ytest) print( "Train Err: " + "{:.2f}".format(100 - trainEfficiency) + "%" \ + " / Valid Err: " + "{:.2f}".format(100 - validEfficiency) + "%" \ + " / Test Err: " + "{:.2f}".format(100 - testEfficiency) + "%")
def exo5(): print("\n\n>>EXERCICE 5 Entrainement du reseau de neuronne + Variation des hyper-parametres") Xtrain, ytrain, Xvalid, yvalid, Xtest, ytest = utils.readMoonFile() sample_h = [2, 20, 100] sample_wd = [0, 0.0001, 0.01] sample_maxIter = [2, 50, 200, 500] for h in sample_h: for wd in sample_wd: for maxIter in sample_maxIter: trainAndPrint(Xtrain, ytrain, Xvalid, yvalid, Xtest, ytest, h, wd, maxIter)
def exo5(): print( "\n\n>>EXERCICE 5 Entrainement du reseau de neuronne + Variation des hyper-parametres" ) Xtrain, ytrain, Xvalid, yvalid, Xtest, ytest = utils.readMoonFile() sample_h = [2, 20, 100] sample_wd = [0, 0.0001, 0.01] sample_maxIter = [2, 50, 200, 500] for h in sample_h: for wd in sample_wd: for maxIter in sample_maxIter: trainAndPrint(Xtrain, ytrain, Xvalid, yvalid, Xtest, ytest, h, wd, maxIter)
def exo1234(): print("\n\n>>EXERCICE 1 et 2") sigma = 1e-4 neuralNetwork = NeuralNetwork(2, 2, 2) Xtrain = [0.7, 0.7] ytrain = 1 # imaginons que c'est un point de la classe print("Liste des ratio W1, b1, W2, b2") res = verifGradient1d(neuralNetwork, Xtrain, ytrain) print(res) print(">Tout les ratio sont bien entre 0.99 et 1.01" if False not in [0.99 < i < 1.01 for i in ( np.array(res)).flatten()] else "Echec de la verif..") print("\n\n>>EXERCICE 3 et 4") Xtrain, ytrain, Xvalid, yvalid, Xtest, ytest = utils.readMoonFile() neuralNetwork = NeuralNetwork(len(Xtrain[0]), 5, utils.getClassCount(ytrain)) K = 10 X = Xtrain[9] y = ytrain[9] print("Liste des ratio W1, b1, W2, b2") res = verifGradient1d(neuralNetwork, X, y) print(res) print(">Tout les ratio sont bien entre 0.99 et 1.01" if False not in [0.99 < i < 1.01 for i in ( np.array(res)).flatten()] else "Echec de la verif..")