IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

"Invalid Syntax" sur un code de réseau neuronal Python [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Programmeur à mes heures perdues !
    Inscrit en
    Septembre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Programmeur à mes heures perdues !
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 17
    Par défaut "Invalid Syntax" sur un code de réseau neuronal Python
    EDIT : MESSAGE RESOLU UNE BETE PARANTHESE MISE AU MAUVAIS ENDROIT AVEC UN DEBUG QUI NE MONTRAIT PAS LE BON ENDROIT

    Bonjour (ou Bonsoir selon l'heure),
    Je viens d'écrire un code de réseau neuronal pour découvrir un peu et pour cela j'ai suivi un tuto sur Youtube. Cependant au moment où le programmeur testait son code le sien fonctionne et le mien me met un message d'erreur sur un endroit du code vraiment incompréhensible :
    Voici le code entier que j'ai récupéré.
    Merci d'avance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
    Type "copyright", "credits" or "license()" for more information.
    >>> from fonctions import sigmoide, tangente
     
     
    class reseau:
        def __init__(self,name='Unknow',learn='sigmoide',error=0.001):
            """
    #On initialise avec 3 paramètres : le nom, la fonction d'activation et le code d'erreur d'apprentissage
    """
            self.name = name #Le nom du réseau
            if 'tangente' == str.lower(learn):
                self.fun_learn = tangente
                self.name_fun_learn = 'tangente'
            else:
                self.fun_learn = sigmoide
                self.name_fun_learn = 'sigmoide'
                self.error = error #Erreur d'apprentissage
                self.couche = [] #Tableau de couches avec le nombre de neurones par couches
                self.link = [] #Le tableau avec tous les poids
                self.values = [] #Le tableau avec les différentes valeurs de neurones
     
                self.control = 0 #Controleur pour empêcher l'ajout de couche/neurone
     
                """
                    # L'ensemble des getter et setter pour les variables de l'objet
                """
            def set_name(self, name):
                self.name = name
     
            def get_name(self):
                return self.name
     
            def set_erreur(self, nbr):
                if (nbr >0):
                    self.error = nbr
     
            def get_erreur(self):
                return self.error
     
            def set_fun_learn(self, name):
                if (str.lower(name) == 'tangente'):
                    self.fun_learn ) = tangente
                    self.name_fun_learn = 'tangente'
                else:
                    self.fun_learn = sigmoide
                    self.name_fun_learn = 'sigmoide'
     
            def get_name_fun_learn(self):
                return self.name_fun_learn
     
            def get_data(self):
                return [self.get_name(),self.get_name_fun_learn(),self.get_erreur(),self.get_nbr_couche()]
     
            def get_nbr_couche(self):
                return len(self.couche)
     
            def get_last_couche(self):
                return self.values[-1]
     
            def set_couche(self,value=2):
                """
                    # On initialise les différentes couches du réseau
                    # On a au minimum 2 couches entrée+ sortie
                """
            if (self.control == 0):
                if (value>=2):
                    for  i in range(0,value):
                        self.coucche.append(0)
                else:
                    print("Il doit y avoir au moins 2 couches")
            else:
                print("Le réseau est déja créé, vous ne pouvez plus le modifier")
     
     
            def add_couche(self,pos):
                """
                    # Fonction pour ajouter une couche
                """
            if (self.control == 0):       
                if (pos>=0 and pos<len(self.couche)):
                    self.couche.insert(pos,0)
                else:
                    print("Vous pouvez ajouter une couche dans l'intervalle [0,",len(self.couche)"]")
            else:
                print("Le réseau est déjà créé, vous ne pouvez plus le modifier")
     
            def add_neurone(self,couche,nbr=1):
                """
                    # Ajouter au minimum un neurone sur la couche déssirée
                """
     
                if (self.control == 0):
                    if (couche >=0 and couche <=len(self.couche)-1 and nbr>0):
                        self.couche[couche] += nbr
                else:
                    print("Le réseau est déjà créé, vous ne pouvez plus le modifier")
     
            def add_all_neurone(seld,tab):
                """
                    # Ajouter tous les neurones a toutes les couches
                """
     
                if (self.control == 0):
                    if(len(ab) == len(self.couche)):
                        for i in range[0,len(tab)):
                            self.add_neurone(i,tab[i])
                    else:
                        print("Le tableau doit etre de taille",len(self.couche))
                else:
                    print("Le réseau est déjà créé, vous ne pouvez plus le modifier")
    P.S Pour mes fonctions Sigmoide et Tangentes elles sont dans un autre fichier .py dans le meme dossier que le code
    Images attachées Images attachées  

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    L'emplacement indiqué dans le traceback n'est pas stupide, il a une logique.

    Une erreur de syntaxe ne signifie pas que l'interpréteur "voit" un faute à un endroit précis mais plutôt que le code devient ,à un moment donné, incohérent.

    L'exemple le plus courant, un oubli de parenthèse fermante en fin de ligne. Logiquement Python continue à la ligne suivante or, il trouve là une instruction ou quoique ce soit qui rende le code incohérent par rapport à la ligne précédente, c'est donc à cette ligne suivante qu'il s'arrête et lève une erreur de syntaxe.

    CQFD

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Syntaxe quotes et double quotes
    Par almoha dans le forum Langage
    Réponses: 5
    Dernier message: 01/11/2010, 15h33
  2. invalid syntax sur close()
    Par scary dans le forum Général Python
    Réponses: 20
    Dernier message: 07/12/2008, 20h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo