Python os
Bonjour à tous,
J'ai télécharger un fichier zip sur Kaggle qui s'appelle 'dogs-vs-cats' puis j'ai extrait le contenu, il y avait deux fichiers zip et un fichier csv. J'ai extait le deux fichiers zip dans les dossiers train et test toujours à l'intérieur du dossier ''C:\Users\user\.keras\datasets\dogs-vs-cats" (j'ai mis user à la place de mon pseudo pour le forum mais dans le code j'ai le bon chemin bref :)o ).
Justement le code suivant : tiré du livre de Chollet : Chollet
L'erreur se situe ici :
Il est dit que
La photo cat.0 est bien disponible dans le fichier train. Après peut être qu'il n'y ait pas allé. Je suis en train de découvrir la librairie os qui permet d'interagir avec le système d'exploitation.
Par exemple mkdir c'est pour créer un dossier, je ne le vois pas quand j'exécute le code mais c'est pas grave.
J'ai télécharger un fichier zip sur Kaggle qui s'appelle 'dogs-vs-cats' puis j'ai extrait le contenu, il y avait deux fichiers zip et un fichier csv. J'ai extait le deux fichiers zip dans les dossiers train et test toujours à l'intérieur du dossier ''C:\Users\user\.keras\datasets\dogs-vs-cats" (j'ai mis user à la place de mon pseudo pour le forum mais dans le code j'ai le bon chemin bref :)o ).
Justement le code suivant : tiré du livre de Chollet : Chollet
# The path to the directory where the original # dataset was uncompressed original_dataset_dir = r'C:\Users\user\.keras\datasets\dogs-vs-cats' # The directory where we will # store our smaller dataset base_dir = r"C:\Users\user\.keras\datasets\dogs-vs-cats\small" os.mkdir(base_dir) # Directories for our training, # validation and test splits train_dir = os.path.join(base_dir, 'train') os.mkdir(train_dir) validation_dir = os.path.join(base_dir, 'validation') os.mkdir(validation_dir) test_dir = os.path.join(base_dir, 'test') os.mkdir(test_dir) # Directory with our training cat pictures train_cats_dir = os.path.join(train_dir, 'cats') os.mkdir(train_cats_dir) # Directory with our training dog pictures train_dogs_dir = os.path.join(train_dir, 'dogs') os.mkdir(train_dogs_dir) # Directory with our validation cat pictures validation_cats_dir = os.path.join(validation_dir, 'cats') os.mkdir(validation_cats_dir) # Directory with our validation dog pictures validation_dogs_dir = os.path.join(validation_dir, 'dogs') os.mkdir(validation_dogs_dir) # Directory with our validation cat pictures test_cats_dir = os.path.join(test_dir, 'cats') os.mkdir(test_cats_dir) # Directory with our validation dog pictures test_dogs_dir = os.path.join(test_dir, 'dogs') os.mkdir(test_dogs_dir) # Copy first 1000 cat images to train_cats_dir fnames = ['cat.{}.jpg'.format(i) for i in range(1000)] for fname in fnames: src = os.path.join(original_dataset_dir, fname) dst = os.path.join(train_cats_dir, fname) shutil.copyfile(src, dst) # Copy next 500 cat images to validation_cats_dir fnames = ['cat.{}.jpg'.format(i) for i in range(1000, 1500)] for fname in fnames: src = os.path.join(original_dataset_dir, fname) dst = os.path.join(validation_cats_dir, fname) shutil.copyfile(src, dst) # Copy next 500 cat images to test_cats_dir fnames = ['cat.{}.jpg'.format(i) for i in range(1500, 2000)] for fname in fnames: src = os.path.join(original_dataset_dir, fname) dst = os.path.join(test_cats_dir, fname) shutil.copyfile(src, dst) # Copy first 1000 dog images to train_dogs_dir fnames = ['dog.{}.jpg'.format(i) for i in range(1000)] for fname in fnames: src = os.path.join(original_dataset_dir, fname) dst = os.path.join(train_dogs_dir, fname) shutil.copyfile(src, dst) # Copy next 500 dog images to validation_dogs_dir fnames = ['dog.{}.jpg'.format(i) for i in range(1000, 1500)] for fname in fnames: src = os.path.join(original_dataset_dir, fname) dst = os.path.join(validation_dogs_dir, fname) shutil.copyfile(src, dst) # Copy next 500 dog images to test_dogs_dir fnames = ['dog.{}.jpg'.format(i) for i in range(1500, 2000)] for fname in fnames: src = os.path.join(original_dataset_dir, fname) dst = os.path.join(test_dogs_dir, fname) shutil.copyfile(src, dst)
L'erreur se situe ici :
---> 48 shutil.copyfile(src, dst)
Il est dit que
Erreur a écrit:FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\user\\.keras\\datasets\\dogs-vs-cats/cat.0.jpg'
La photo cat.0 est bien disponible dans le fichier train. Après peut être qu'il n'y ait pas allé. Je suis en train de découvrir la librairie os qui permet d'interagir avec le système d'exploitation.
Par exemple mkdir c'est pour créer un dossier, je ne le vois pas quand j'exécute le code mais c'est pas grave.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il a crée un chemin, une adresse.
Il devrait y avoir \\ à la place...
Le / c'est le séparateur sous unix, os.path.join devrait mettre \\ à la place...
Si j'ai bien compris les chemins sur windows s'écrivent avec des \\ à la place de \ ? Non c'est faux je viens de regarder mon ficher le chemin est : "C:\Users\blabla\.keras\datasets\dogs-vs-cats"
mais os.path.join devrait renvoyer un chemin cohérent avec le système et l'erreur est un mix des deux... j'ignore pourquoi.
tu devrais écrire
J'ai eu
Mais ça n'apparait pas dans mon ficher. Je crois que c'est le code précédent qui a crée des dossiers que j'appellerai fantôme.
1) Je mettrais un print() juste avant utilisation pour montrer le chemin précis qui est utilisé.
2) Après avoir bien regardé et rien remarqué qui explique le problème, je posterais une capture d'écran qui montre le chemin complet du fichier, afin de permettre une comparaison précise avec ce que montre (1).
Les \\ servent à donner un simple \ dans les chaînes non raw (les raw strings étant celles précédées de r). C'est du Python de base. On peut aussi utiliser os.listdir() pour valider le répertoire et vérifier que le fichier attendu est bien dedans.
J'ai reçu la réponse :
Mon python marche bien tout à l'heure j'ai fait tourner un réseau de neurones et j'utilise régulièrement numpy et matplotlib.
- ou bien tu testes mal ;
- ou bien tu n'as pas de répertoire C:\Users ;
- ou bien tu utilises un Python modifié avec des restrictions d'accès (me semble très hypothétique, mais bon...). Comment été installé ton interprète Python ?
Tu peux essayer os.chdir("C:/") suivi de os.listdir() pour voir.
EDIT : J'ai remplacé mon pseudo par blabla sur le forum mais il a fini par fuité lol :)o
Avec Google Colab tu utilises les machines de Google pour faire tourner tes scripts Python (les jupyter notebook que tu crées avec Colab ne se trouvent pas sur ton PC, mais dans le cloud), l'avantage est que tu n'as rien besoin d'installer ni Python ni rien d'autre et que tu peux utiliser les GPU de Google. L'inconvénient est que l'espace de stockage est limité (15 Go gratuits).
Est-ce que je continue sur Colab ou sur jupyter ben faut que je me décide. Colab j'aime bien pour écrire en latex, c'est surtout ça en fait.
Merci à vous deux (:D
Puis tu importes drive en faisant :
et tu lui donnes l'autorisation d'aller mettre le nez dans ton Google Drive en faisant :
En reprenant ton script et en supposant que tu places toutes tes images dans le sous-dossier "Colab Notebooks/datasets/dogs-vs-cats/train" tu a :