2
votes

Comment corriger l'erreur `` Aucun fichier ou répertoire de ce type '' lors du chargement de l'ensemble de données MNIST

J'ai téléchargé les images et les étiquettes de formation MNIST sur yann.lecun.com et je les ai décompressées. J'essaye de les charger en utilisant ce code -

FileNotFoundError: [Errno 2] No such file or directory: '/python/mnist-files'

Cependant, j'obtiens cette erreur -

total 46156
-rw-r--r-- 1 inglorion inglorion 47040016 Jul 21  2000 train-images-idx3- 
ubyte
-rw-r--r-- 1 inglorion inglorion    60008 Jul 21  2000 train-labels-idx1- 
ubyte
-rw-r--r-- 1 inglorion inglorion   147970 Feb  8 22:43 wget-log
-rw-r--r-- 1 inglorion inglorion      682 Feb  9 14:40 wget-log.1

Le répertoire existe, et le les noms de fichiers sont corrects. Comment puis-je résoudre ce problème?

EDIT: J'ai essayé la même chose avec le package python-mnist -

Traceback (most recent call last):
  File "generateClassifier.py", line 11, in <module>
    features,labels = mndata.load_training()
  File "/home/inglorion/.local/lib/python3.6/site-packages/mnist/loader.py", 
line 126, in load_training
    os.path.join(self.path, self.train_lbl_fname))
  File "/home/inglorion/.local/lib/python3.6/site-packages/mnist/loader.py", 
line 247, in load
    with self.opener(path_lbl, 'rb') as file:
  File "/home/inglorion/.local/lib/python3.6/site-packages/mnist/loader.py", 
line 239, in opener
    return open(path_fn, *args, **kwargs)
FileNotFoundError: [Errno 2] No such file or directory: '/python/mnist- 
files/train-labels-idx1-ubyte'

J'ai obtenu une erreur similaire-

from mnist import MNIST
mndata = MNIST('/python/mnist-files')
features,labels = mndata.load_training()

L'erreur ne semble provenir que du fichier training-labels; J'ai essayé de retélécharger le fichier, mais cela ne l'a pas corrigé.

EDIT 2: Comme demandé, voici la sortie de ls -l / python / mnist-files -

Traceback (most recent call last):
  File "generateClassifier.py", line 12, in <module>
    labels_path='/python/mnist-files/train-labels-idx1-ubyte')
  File "/home/inglorion/.local/lib/python3.6/site- 
packages/mlxtend/data/local_mnist.py", line 36, in loadlocal_mnist
    with open(labels_path, 'rb') as lbpath:
FileNotFoundError: [Errno 2] No such file or directory: '/python/mnist- 
files/train-labels-idx1-ubyte'

EDIT 3: Voici la sortie de print (os.listdir ('/ python / mnist-files')) :

from mlxtend.data import loadlocal_mnist

features,labels = loadlocal_mnist(
    images_path='/python/mnist-files/train-images-idx3-ubyte',
    labels_path='/python/mnist-files/train-labels-idx1-ubyte')

Je suis totalement perplexe - je sais que le répertoire existe! Je peux le voir quand je cd dans /python !


4 commentaires

Pouvez-vous essayer de mettre vos données mnist dans le répertoire de votre fichier python? Et puis lancez MNIST comme ceci mndata = MNIST () . Avez-vous téléchargé et décompressé les fichiers à ici ? Pouvez-vous ajouter l'outpyt de ls -l / python / mnist-files


@ Jeppe- oui, j'ai utilisé le site que vous avez mentionné dans votre lien. Je les ai décompressés également, si c'est ce que vous voulez dire.


@ Jeppe- oui, j'ai utilisé le site que vous avez mentionné dans votre lien. Je les ai décompressés également, si c'est ce que vous voulez dire.


Oui, décompressez. :-P - Hm, vos permissions / tailles de fichiers sont les mêmes que les miennes. Que faire si vous mettez un fichier aléatoire dans le même répertoire - pouvez-vous l'ouvrir à partir de python? Ou peut-être exécuter print (os.listdir ('/ python / mnist-files')) ? Désolé, je ne fais que deviner ici.


3 Réponses :


0
votes

Vous pouvez essayer d'utiliser ce code.

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', validation_size=0)

J'ai exécuté le code et cela fonctionne très bien !! J'espère que vous le trouverez utile.


0 commentaires

0
votes

Il existe une différence entre un / et un ~ . Par défaut,

from os.path import expanduser
home = expanduser("~")+'/python/mnist-files'
mndata = MNIST(home)
features,labels = mndata.load_training()

vérifiera à '/' . Je suppose que votre fichier python se trouve dans '~' c'est-à-dire votre répertoire personnel.

Vous pouvez essayer ceci:

os.dir('/')


1 commentaires

C'était ce dont j'avais besoin; J'avais besoin d'écrire les chemins de fichier comme '/ home / username / python / ...'. Erreur stupide causée par ne pas en savoir suffisamment sur la navigation dans les fichiers. Merci d'avoir répondu!



1
votes

Pour moi, cela m'a aidé à renommer le fichier en train-images.idx3-ubyte au lieu de train-images-idx3-ubyte (le - après que les images aient été changées en . ).


0 commentaires