51 votes

ImportError : Impossible d'importer la bibliothèque d'imagerie Python (PIL) requise pour charger les fichiers d'image sur tensorflow.

Je suis un cours d'apprentissage profond sur udacity. Pour le premier devoir, quand j'ai essayé d'exécuter le script qui est en dessous du problème 1 , j'ai eu cette erreur. J'ai donc essayé de désinstaller PIL et pillow puis de les installer individuellement mais je n'ai pas réussi. J'ai besoin d'aide. J'utilise l'image docker de tensorflow avec le notebook python.

# These are all the modules we'll be using later. Make sure you can import them
# before proceeding further.
from __future__ import print_function
import matplotlib.pyplot as plt
import numpy as np
import os
import sys
import scipy
import tarfile
from IPython.display import display, Image
from scipy import ndimage
from sklearn.linear_model import LogisticRegression
from six.moves.urllib.request import urlretrieve
from six.moves import cPickle as pickle
# Config the matplotlib backend as plotting inline in IPython
%matplotlib inline 

url = 'http://commondatastorage.googleapis.com/books1000/'
last_percent_reported = None

def download_progress_hook(count, blockSize, totalSize):
    percent = int(count * blockSize * 100 / totalSize)

   if last_percent_reported != percent:
     if percent % 5 == 0:
  sys.stdout.write("%s%%" % percent)
  sys.stdout.flush()
else:
  sys.stdout.write(".")
  sys.stdout.flush()

last_percent_reported = percent

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/udacity/1_notmnist.ipynb

Vous pouvez voir le code ici. J'ai une erreur dans le bloc de code après le problème 1 Image d'erreur

J'ai essayé tout ce qui est décrit ici dans ces deux liens ou solutions :

Solution 1 sur stackoverflow

Solution 2 sur stackoverflow

Système d'exploitation :

en utilisant docker et tensorflow est installé dans un conteneur avec le notebook IPython.

La sortie de python -c "import tensorflow ; print(tensorflow. version )".

0.11.0

0 votes

Avez-vous installé le LIP ? Si non, suivez le lien dans le message d'erreur

1 votes

@lhk Oui je l'ai fait et cela me donne la même erreur.

70voto

Yohanna Points 579

pip install pillow

Alors, remplacez from IPython.display import display, Image avec from IPython.display import display from PIL import Image

8 votes

N'oubliez pas de redémarrer votre env. après l'installation de pip.., comme : source deactivate ; source activate.., etc.

14voto

rort1989 Points 168

J'ai rencontré le même problème. Mais j'utilise un paramètre différent pour le tensorflow. SYSTÈME D'EXPLOITATION : Ubuntu 14.04 LTS. Installation avec Anaconda. Je l'ai résolu en suivant les avertissements dans Installation de l'oreiller . Il peut cependant ne pas être utile pour une installation docker de tensorflow.

Voici les étapes que j'ai suivies. D'abord entrer dans l'environnement tensorflow,

source activate tensorflow

Désinstaller ensuite PIL et installer Pillow

conda uninstall PIL
conda install Pillow

Ensuite, dans le code fourni, remplacez

from IPython.display import display, Image

par

from IPython.display import display
from PIL import Image

C'est tout. Ré-exécutez le code et il fonctionne sans erreur PIL.

4 votes

Note : vous devrez peut-être redémarrer spyder pour que le changement prenne effet. (Merci à SanjeevKumar de l'avoir signalé !)

0 votes

Merci. J'apprends l'intelligence artificielle dans Udemy et dans la classe 255 j'ai eu cette situation. J'utilise Ubuntu 16.04. Merci encore.

2voto

A. Attia Points 455

J'ai résolu ce problème en désinstallant Jupyter et en le réinstallant correctement. Le problème était lié au noyau du notebook. Mon terminal et mon notebook n'avaient pas le même noyau. Pour le vérifier, j'ai fait dans mon virtualenv :

jupyter-kernelspec list

puis allez dans la liste des répertoires de votre noyau et ouvrez le fichier json (quelque chose comme /Library/Jupyter/kernels/virtualenv/kernel.json )

et vérifiez que le lien Python est le même que dans la sortie de which python .

Sinon, créez un autre noyau pour votre virtualenv.

0 votes

Cette réponse m'a permis de faire une bonne partie du chemin. Pour créer un autre noyau pour mon virtualenv, j'ai dû me référer à ce document, ipython.readthedocs.io/fr/stable/install/kernel_install.html la section "Noyaux pour différents environnements".

1voto

Quant aux utilisateurs de Windows qui utilisent Anaconda, il existe probablement une solution simple à votre problème. Si vous avez installé 'tensorflow' avec pip, ou une variante de pip (par exemple pip3), vous devrez installer tensorflow à nouveau, mais cette fois avec la commande suivante conda install tensorflow .

-2voto

Sneha Mule Points 1

Installer PIL à Anaconda, alors :

from PIL import Image
model.fit_generator(
        train_generator,
        steps_per_epoch=2000 // batch_size,
        epochs=50,
        validation_data=validation_generator,
        validation_steps=800 // batch_size)
model.save_weights('first_try.h5') 

output will display like: Epoch 1/50
 34/125 [=======>......................] - ETA: 7:23 - loss: 0.7237 - acc: 0.5478 ... comntinue

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X