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

Calcul scientifique Python Discussion :

IA : repeat() de tensorflow


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Architecte systèmes
    Inscrit en
    Mai 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2017
    Messages : 32
    Par défaut IA : repeat() de tensorflow
    Bonjour à tous,

    Je suis en train d'entrainer une IA mais j'ai un message d'erreur concernant le nombre d'époches et de batch. Du coup, j'ai ajouté la fonction repeat() mais ça ne fonctionne toujours pas et l'apprentissage arrive à cours de données. Si vous avez déjà été confronté à ce genre de problème ou si vous avez une idée de comment générer des datas infinies ça m'aiderait pas mal parce que là je bloque

    Voici le code:

    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
     
     
    BATCH_SIZE = 500
    coeff=0.2
    N_VALIDATION = int(coeff*len(df))
    N_TRAIN = int((1-coeff)*len(df))
    BUFFER_SIZE= N_TRAIN
    STEPS_PER_EPOCH = 1 #int(N_TRAIN//BATCH_SIZE)
     
    inputs, labels=split_window(df)
     
    ds=tf.data.Dataset.from_tensor_slices((inputs, labels))
    packed_ds=ds.shuffle(BUFFER_SIZE).repeat(3).batch(BATCH_SIZE, drop_remainder=True)#.prefetch(tf.data.AUTOTUNE)
     
    validate_ds = packed_ds.take(N_VALIDATION).cache()
    train_ds = packed_ds.skip(N_VALIDATION).take(N_TRAIN).cache()
     
    def compile_and_fit(model, name, optimizer=None, max_epochs=1000):
      if optimizer is None:
        optimizer = get_optimizer()
      model.compile(optimizer=optimizer,
                    loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
                    metrics=[
                      tf.keras.losses.BinaryCrossentropy(
                          from_logits=True, name='binary_crossentropy'),
                      'accuracy'])
     
      history = model.fit(
        train_ds,
        steps_per_epoch = STEPS_PER_EPOCH,
        epochs=max_epochs,
        validation_data=validate_ds,
        callbacks=get_callbacks(name),
        verbose=0)
     
      model.summary()
     
      return history
    Et voici le message d'erreur:

    0
    Input shape: (1462161, 30, 1)
    Target shape: (1462161, 30, 1)
    0
    2022-08-11 03:58:06.466184: E tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1666] function cupti_interface_->Subscribe( &subscriber_, (CUpti_CallbackFunc)ApiCallback, this)failed with error CUPTI could not be loaded or symbol could not be found.
    2022-08-11 03:58:06.811542: E tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1757] function cupti_interface_->Finalize()failed with error CUPTI could not be loaded or symbol could not be found.
    WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 1000 batches). You may need to use the repeat() function when building your dataset.
    Expect x to be a non-empty array or dataset.
    Merci d'avance,

    Mango1

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Salut,

    Lisez le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 1000 batches).
    Le 1000 est la valeur par défaut (max_epochs=1000) de la fonction... et ça ne semble pas cohérent avec les données actuelles. Plutôt que de fabriquer des données, vous pourriez passer le bon max_epochs.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Architecte systèmes
    Inscrit en
    Mai 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2017
    Messages : 32
    Par défaut
    Salut,

    Merci par votre réponse, l'idée c'est de pouvoir mettre le nombre d'époches que l'on veut et que le dataset se répète automatiquement avec la fonction repeat() ; ce que je ne comprends pas c'est 500*1000 pour 1M de data je devrais m'en sortir non?

    Mango1

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Fabriquer un dataset en répétant ou pas ne change pas trop le problème: à la fin, il faudra bien préciser les bons step_by_epochs et epochs.

    Après pour ce qui est de l'usage de repeat(), il y a des tas d'exemples sur Internet.... et vous ne montrez pas ce que vous avez essayé (et le soucis rencontré).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [LG]repeat/until comportement etrange
    Par scifire dans le forum Langage
    Réponses: 11
    Dernier message: 25/03/2005, 21h56
  2. [VB.NET] Repeater imbriqué
    Par Sadneth dans le forum ASP.NET
    Réponses: 8
    Dernier message: 18/02/2005, 15h31
  3. [VB.NET] Affichage conditionnel dans un repeater
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/02/2005, 12h58
  4. [VB.Net]Evenement dans un Repeater !!
    Par m-mas dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/09/2004, 17h13
  5. [C#] Déclencher action dans Repeater avec LinkButton
    Par globeriding dans le forum ASP.NET
    Réponses: 13
    Dernier message: 13/05/2004, 15h29

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