class MaFenetre(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.setWindowTitle("reseau neurones test")
        self.resize(420, 420)
        self.dessin = ZoneDessin(self)
        self.dessin.setGeometry(50, 50, 28 * 5, 28 * 5)
        self.btn_0 = QtGui.QPushButton("tester", self)
        self.btn_0.clicked.connect(self.tester)
        self.btn_0.setGeometry(50, 280, 150, 50)
        self.btn_1 = QtGui.QPushButton("effacer", self)
        self.btn_1.clicked.connect(self.effacer)
        self.btn_1.setGeometry(50, 340, 150, 50)
        self.btn_2 = QtGui.QPushButton("charger un reseau", self)
        self.btn_2.clicked.connect(self.charger)
        self.btn_2.setGeometry(50, 220, 150, 50)
        self.btn_3 = QtGui.QPushButton("quitter", self)
        self.btn_3.clicked.connect(QtCore.QCoreApplication.instance().quit)
        self.btn_3.setGeometry(300, 340, 100, 40)
        self.label = QtGui.QLabel(self)
        self.label.setGeometry(200, 115, 175, 75)
        self.label.setFrameStyle(QtGui.QFrame.Panel | QtGui.QFrame.Sunken)
        self.label.setText("reponse du reseau : ?\n\n")
        self.label.setAlignment(QtCore.Qt.AlignBottom | QtCore.Qt.AlignRight)
        self.reseau = None

    def effacer(self):

        self.dessin.im.fill(QtCore.Qt.white)
        self.dessin.repaint()
        self.label.setText("reponse du reseau : ?\n\n")

    def tester(self):
        if (self.reseau == None):
            QtGui.QMessageBox.information(
                self, "Information", "Vouds devez d'abord charger un reseau")
        else:
            input = self.dessin.toBinaryMatrix()
            output = self.reseau.getOutput(
                input.reshape((1, ) + np.shape(input)))
            classe = np.argmax(output)
            self.label.setText("reponse du reseau : {}\n\n".format(classe))

    def charger(self):
        nomfichier, _ = QtGui.QFileDialog.getOpenFileName(
            self, str("charger un reseau"), "/home/jana",
            str("reseau sauvegarde (*.txt *.csv)"))
        if nomfichier != '':
            self.reseau = Reseau()
            self.reseau.charger(nomfichier)
            if isinstance(self.reseau.couches[0], CNN):
                self.dessin.setGeometry(
                    50, 50, self.reseau.couches[0].dimInput[1] * 5 + 2,
                    self.reseau.couches[0].dimInput[2] * 5 + 2)
            if isinstance(self.reseau.couches[0], MLP):
                self.dessin.setGeometry(
                    *(50, 50) +
                    (int(np.sqrt(self.reseau.couches[0].dimInput)) * 5 + 2, ) *
                    2)
 def charger(self):
     nomfichier, _ = QtGui.QFileDialog.getOpenFileName(
         self, str("charger un reseau"), "/home/jana",
         str("reseau sauvegarde (*.txt *.csv)"))
     if nomfichier != '':
         self.reseau = Reseau()
         self.reseau.charger(nomfichier)
         if isinstance(self.reseau.couches[0], CNN):
             self.dessin.setGeometry(
                 50, 50, self.reseau.couches[0].dimInput[1] * 5 + 2,
                 self.reseau.couches[0].dimInput[2] * 5 + 2)
         if isinstance(self.reseau.couches[0], MLP):
             self.dessin.setGeometry(
                 *(50, 50) +
                 (int(np.sqrt(self.reseau.couches[0].dimInput)) * 5 + 2, ) *
                 2)
Пример #3
0
class GuiLogger(QWidget):
    def __init__(self):
        super().__init__()
        self.reseau = Reseau()
        self.planning = Planning()
        self.createLogger()

    def createLogger(self):
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Connexion')

        # create layout vertical contenant les layouts horizontaux
        vbox = QVBoxLayout(self)

        boxLoggin = QHBoxLayout()
        lalogin = QLabel("login : "******"@epitech.eu")
        boxLoggin.addWidget(lalogin)
        boxLoggin.addWidget(self.liLogin)
        boxLoggin.addWidget(laepitech)

        boxPasswd = QHBoxLayout()
        lapasswd = QLabel("Passwd : ")
        self.liPasswd = QLineEdit()
        self.liPasswd.setEchoMode(QLineEdit.Password)
        boxPasswd.addWidget(lapasswd)
        boxPasswd.addWidget(self.liPasswd)

        btnConnect = QPushButton('Connexion', self)
        btnConnect.clicked.connect(self.on_click)

        vbox.addLayout(boxLoggin)
        vbox.addLayout(boxPasswd)
        vbox.addWidget(btnConnect)
        self.show()

    @pyqtSlot()
    def on_click(self):
        ret = self.reseau.authenticate(self.liLogin.text() + "@epitech.eu",
                                       self.liPasswd.text())
        if ret == True:
            self.win = GuiLesson(self.reseau)
            self.close()
        else:
            QMessageBox.warning("Connexion error", 'Error connexion, check id',
                                QMessageBox.Ok, QMessageBox.Ok)
#!/usr/bin/env python
#-*- coding: latin-1 -*-

from Reseau import Reseau
from MLP import MLP
from CNN import CNN
from outils import *
from matplotlib import pyplot as plt

nbrExplApr = 783
Niter = 100
paquetSize =19
nbrPaquet = nbrExplApr/paquetSize

#creation du modele
reseau=Reseau(learning_rate=0.1,momentum=0.8)
reseau.addCouche(CNN((4,1,5,5)))
reseau.addCouche(MLP((4*12*12,120,10)))

#chargement de la base d'apprentissage
images , etiquetes = chargerBase('data/digit10_28x28_learn.txt')
images=images.reshape(nbrExplApr,1,28,28)

#entrainement du modele

couts=reseau.entrainer(images,etiquetes,Niter,nbrPaquet,paquetSize,cout_type='crossEntropy',getCouts=True,autosave=20)

#affichage du cout par iteration

plt.plot(couts,label="aprentissage")
plt.xlabel("nombre d'iterations")
Пример #5
0
 def __init__(self):
     super().__init__()
     self.reseau = Reseau()
     self.planning = Planning()
     self.createLogger()
import numpy as np

from outils import *
from mnistHandwriting import *
from Reseau import Reseau
from CNN import CNN
from MLP import MLP

#parametres du reseau

nu = 1e-1
nbrIter = 400
nbrExplApr = 2560
nbrExpltest = 2560
paquetSize = 32
moment = 0.0
poidDecay = 0.0008
nbrPaquets = nbrExplApr / paquetSize

baseApr = chargerBase('data/digit10_28x28_learn.txt')
images, targets = adaptData(baseApr, nbrExplApr, (28, 28))
reseau = Reseau(nu, moment, poidDecay)
reseau.addCouche(MLP((28 * 28, 120, 10)))
reseau.entrainer(images, targets, nbrIter, paquetSize, nbrPaquets)

basetest = MNISTexample(0, nbrExpltest, only01=False, bTrain=False)
#basetest=chargerBase('data/digit10_28x28_test.txt')
images, targets = adaptData(basetest, nbrExpltest, (28, 28))
reseau.tester(images, targets, nbrExpltest)
Пример #7
0
                obj.append(
                    Cour(ret[i]['codemodule'], ret[i]['codeinstance'],
                         ret[i]['codeacti'], ret[i]['codeevent'],
                         ret[i]['acti_title'], ret[i]['scolaryear']))
                print('id=', i, ret[i]['codemodule'], ret[i]['codeinstance'],
                      ret[i]['codeacti'], ret[i]['codeevent'],
                      ret[i]['acti_title'], ret[i]['scolaryear'])
                i += 1
            return obj
        except Exception as e:
            print("Planning exception: %s" % str(e))
            return obj


if __name__ == "__main__":
    reseau = Reseau()
    planning = Planning()

    reseau.authenticate("*****@*****.**", "hjR5HQq.")

    cours = planning.reqDay(reseau)

    # Attente selection du cours !!!!
    id_cour = input('Selection du cours: ')
    cours[int(id_cour)].reqRegistered(reseau)

    # Creation client com avec Serveur NFC
    client = Client(config.URI)

    print('Place card')
    lastID = ""
Пример #8
0
    data = openFile(file)
    busStops = parseBusStops(data)
    reseau.addBusStops(busStops, numLigne)
    fillHoraire(reseau, data)


# =============================================================================
#                       Execution
# =============================================================================

#Récupération des fichiers
data_file_name1 = 'data/1_Poisy-ParcDesGlaisins.txt'
data_file_name2 = 'data/2_Piscine-Patinoire_Campus.txt'

#Création du réseau
reseau = Reseau()
addLigneFromtxt(reseau, data_file_name1)
addLigneFromtxt(reseau, data_file_name2)
#print(reseau.djikstraShortest(reseau.listBusStop[4], reseau.listBusStop[21]))
print(
    reseau.djikstraForemost(reseau.listBusStop[1], reseau.listBusStop[8],
                            "10:00"))

# =============================================================================
#           INTERFACE UTILISATEUR
# =============================================================================

root = Tk()
ww = GUI(root)
for count, i in enumerate(reseau.listBusStop):
    ww.listBox1.insert(count, i.name)
nbrExpl = 800
centre1=(-2,-2)
centre2=(-2, 2)
centre3=( 2,-2)
centre4=( 2, 2)
x,y=generNuageGaussien((centre1,centre2,centre3,centre4),nbrExpl,pour='mlp')

#on affiche la base d'aprentissage (la une couleur designe la classe)
couleur={0:'r',1:'b',2:'g',3:'k'}
for k in range(nbrExpl):
    plt.plot(x[k,0],x[k,1],'ro',color=couleur[np.argmax(y[k])])
plt.show()

#creation d'un perceptron multicouches a l'aide de la classe Reseau et la classe MLP
reseau=Reseau(learning_rate=0.1)
reseau.addCouche(MLP((2,4)))

#aprentissage du modele
Niter = 100
couts = reseau.entrainer(x,y,Niter,nbrExpl,getCouts=True,autosave=1)

#affichage du cout par iteration



plt.plot(couts,label="aprentissage")
plt.xlabel("nombre d'iterations")
plt.ylabel("le cout ")

#teste des performances
from Reseau import Reseau
from MLP import MLP
from outils import *
from matplotlib import pyplot as plt
nbrEntrees = 28*28
nbrClasses = 10
tailleCoucheC = 120

#creation du modele
reseau=Reseau(learning_rate=0.1)
reseau.addCouche(MLP((nbrEntrees,tailleCoucheC,nbrClasses)))

#chargement de la base d'apprentissage
images , etiquetes = chargerBase('data/digit10_28x28_learn.txt')
nbrExpl = 783
#entrainement du modele
Niter = 200
paquetSize =19
nbrPaquet = 783/paquetSize
couts=reseau.entrainer(images,etiquetes,Niter,nbrPaquet,paquetSize,cout_type='quadratique',getCouts=True,autosave=1)

#affichage du cout par iteration

plt.plot(couts,label="aprentissage")
plt.xlabel("nombre d'iterations")
plt.ylabel("le cout ")

#teste des performances

#chargement de la base de test