Je courais leçon 1 de fast.ai dans google-colab. Quand je suis arrivé à la ligne
img = plt.imread(f'{PATH}valid/cats/{files[0]}')
plt.imshow(img);
Il n'a pas montré d'image. Au lieu de cela, j'ai eu une erreur:
AttributeError: le module 'PIL.Image' n'a pas d'attribut 'register_extensions'
Qu'est-ce qui peut causer cela?
J'étais sur Google Colab lorsque j'ai rencontré ce problème.
Après le code pour installer torch
, ajoutez:
!pip install pillow==4.1.1
%reload_ext autoreload
%autoreload
Le %autoreload
rechargera tous les modules afin qu'aucun redémarrage du noyau ne soit requis.
Le crédit va à cet article du forum .
Ce qui a fonctionné pour moi après le chargement du module pillow
et de toutes les autres configurations fastai est la suivante:
# workaround
from PIL import Image
def register_extension(id, extension): Image.EXTENSION[extension.lower()] = id.upper()
Image.register_extension = register_extension
def register_extensions(id, extensions):
for extension in extensions: register_extension(id, extension)
Image.register_extensions = register_extensions
et aucun redémarrage à l'exécution n'est maintenant requis.
Pour moi, le redémarrage de l'exécution à l'aide de l'option "Exécution/Redémarrage de l'exécution…" du menu après l'installation du nouvel oreiller à l'aide de pip et l'exécution du code qui l'utilise corrigeait le problème.
lancez ces 3 lignes au début de votre cahier colab
!pip install Pillow==4.0.0
!pip install PIL
!pip install image
J'étais également aux prises avec le même problème. Mais cela a fonctionné pour moi. https://pillow.readthedocs.io/en/3.1.x/reference/Image.html
Votre version de Pillow installée n'est pas à jour. Exécutez ce qui suit:
import PIL
print(PIL.PILLOW_VERSION)
Ce sera probablement 4.0.0
. Si tel est le cas, exécutez les commandes suivantes:
!pip uninstall Pillow
!pip install Pillow==5.3.0
Puis redémarrez votre runtime (appuyez sur CTRL + M .
, ou Runtime --> Restart runtime
du menu). Exécutez à nouveau le premier jeu de commandes pour vous assurer que votre version actuelle de PIL est 5.3.0.
La prochaine fois que vous démarrez votre machine virtuelle colab, veillez à commenter les deux lignes suivantes (c.-à-d. Ne les exécutez pas).
#%reload_ext autoreload <------------— comment out
#%autoreload 0 <------------— comment out
%matplotlib inline
Juste pour être sûr, j'ai également réinstallé mon PIL
!pip install --no-cache-dir -I pillow
Cela a fonctionné pour moi après avoir ajouté ce qui suit après toute la configuration:
from PIL import Image
def register_extension(id, extension): Image.EXTENSION[extension.lower()] = id.upper()
Image.register_extension = register_extension
def register_extensions(id, extensions):
for extension in extensions: register_extension(id, extension)
Image.register_extensions = register_extensions
puis modifié la fonction suivante dans la section Analyzing Results: Looking At Pictures
def load_img_id(ds, idx): return np.array(PIL.Image.open(PATH+ds.fnames[idx]))
à
def load_img_id(ds, idx): return np.array(Image.open(PATH+ds.fnames[idx]))
Probablement le format du fichier. Je l'ai changé de ".tiff" à ".png". Ça marche. Le module n'a pas de décodeur tiff.