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 :

ERREUR Python int too large to convert to C long


Sujet :

Calcul scientifique Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut ERREUR Python int too large to convert to C long
    Bonjour,
    Sur la base de la vidéo de Sébastien COLLET DeepLearning pour le traitement du langage avec PyTorch
    Le code suivant
    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
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    # Import des librairies
    # ------------------------------------------------
    import torchtext            # traitement du texte
    import torch
    import torch.nn as nn
    import torch.optim as optim # optimizer
    from torchtext.data import Field, TabularDataset, BucketIterator
     
    import sys
     
    # Tokenization
    # ------------------------------------------------
    import spacy
    spacy_en = spacy.load('en')
     
     
    def tokenizer(text): # create a tokenizer function
        return [tok.text for tok in spacy_en.tokenizer(text)]
     
    # Definition des prétraitements sur le texte
    # ------------------------------------------------
    TEXT = Field(sequential = True, lower=True, include_lengths = False,
                      pad_token = "<pad>", unk_token = "<unk>",
                      batch_first = True, tokenize = tokenizer)
     
    LABELS = Field(sequential=False, use_vocab=False)
     
    # Création des datasets
    # ------------------------------------------------
    train_dataset, test_dataset = TabularDataset.splits(
        path='C:/Users/et/eclipse-workspace/S_COLLET/DevoxxFR-17-04-2019/data/', format='tsv',
        train='data_train', test='data_test',
        fields=[('text', TEXT), ('labels', LABELS)])
    délivre le message d'erreur OverflowError: Python int too large to convert to C long
    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
    ---------------------------------------------------------------------------
    OverflowError                             Traceback (most recent call last)
    <ipython-input-20-d103382ebadc> in <module>
         34     path='C:/Users/et/eclipse-workspace/S_COLLET/DevoxxFR-17-04-2019/data/', format='tsv',
         35     train='data_train', test='data_test',
    ---> 36     fields=[('text', TEXT), ('labels', LABELS)])
     
    ~\Anaconda3\lib\site-packages\torchtext\data\dataset.py in splits(cls, path, root, train, validation, test, **kwargs)
         76             path = cls.download(root)
         77         train_data = None if train is None else cls(
    ---> 78             os.path.join(path, train), **kwargs)
         79         val_data = None if validation is None else cls(
         80             os.path.join(path, validation), **kwargs)
     
    ~\Anaconda3\lib\site-packages\torchtext\data\dataset.py in __init__(self, path, format, fields, skip_header, csv_reader_params, **kwargs)
        269                 next(reader)
        270 
    --> 271             examples = [make_example(line, fields) for line in reader]
        272 
        273         if isinstance(fields, dict):
     
    ~\Anaconda3\lib\site-packages\torchtext\data\dataset.py in <listcomp>(.0)
        269                 next(reader)
        270 
    --> 271             examples = [make_example(line, fields) for line in reader]
        272 
        273         if isinstance(fields, dict):
     
    ~\Anaconda3\lib\site-packages\torchtext\utils.py in unicode_csv_reader(unicode_csv_data, **kwargs)
        128             maxInt = int(maxInt / 10)
        129 
    --> 130     csv.field_size_limit(sys.maxsize)
        131 
        132     if six.PY2:
     
    OverflowError: Python int too large to convert to C long
    Je comprend qu'il me faut définir un maxsize

    Des discussions évoquent l'influence de la plateforme (je suis sous Windows 64 bit), et l'utilisation de dtype='int64' ou dtype=np.int64
    Le type int utilise un C long, qui est toujours 32-bit sous Windows
    Perso je ne comprends pas comment utiliser ces infos pour traiter l'erreur.
    Pouvez-vous m'aiguiller SVP ?
    Alain

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    C'est possiblement un bug dans la bibliothèque torchtext.
    Et si d'autres sont tombés dedans, un peu de recherche sur Internet devrait vous donner des solutions. A défaut, ceux qui développent, on peut être une buglist ou un chat...

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

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut
    Merci wiztricks,
    J'ai mis la main sur la solution en associant le motclé torchtext dans ma recherche

    Dans le fichier torchtext\utils.py ligne 130
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Remplacer 
    csv.field_size_limit(sys.maxsize)
    par 
    csv.field_size_limit(maxInt)

Discussions similaires

  1. [Python 2.X] long int too large to convert to float
    Par Sh0rtY dans le forum Général Python
    Réponses: 7
    Dernier message: 25/06/2014, 11h48
  2. Erreur: Texture data too large for graphics device
    Par j_ere_my dans le forum Images
    Réponses: 2
    Dernier message: 31/03/2010, 12h36
  3. [TPW][Débutant] Erreur "Data segment too large"
    Par dimi2 dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 08/04/2008, 20h35
  4. Erreur de "Procedure too large"
    Par Tintou dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/05/2007, 08h37

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