tutorial how google colaboratory colab python deep-learning google-colaboratory

how - google.colab python



AttributeError: el módulo ''PIL.Image'' no tiene atributo ''register_extensions'' (9)

Estaba ejecutando la lección 1 de fast.ai en google-colab. Cuando llegué a la linea

img = plt.imread(f''{PATH}valid/cats/{files[0]}'') plt.imshow(img);

No mostraba una imagen. En su lugar, tengo un error:

AttributeError: module ''PIL.Image'' has no attribute ''register_extensions''

¿Qué podría estar causando esto?


Estaba en Google Colab cuando me encontré con este problema.

Después del código para instalar la torch , agregue:

!pip install pillow==4.1.1 %reload_ext autoreload %autoreload

El %autoreload recargará todos los módulos, por lo que no es necesario reiniciar el kernel.

El crédito va a este post del foro .


La próxima vez que inicie su VM colab, asegúrese de comentar las siguientes dos líneas (es decir, no las ejecute)

#%reload_ext autoreload <------------— comment out #%autoreload 0 <------------— comment out %matplotlib inline

Solo para estar seguro, también reinstalé mi PIL

!pip install --no-cache-dir -I pillow


La versión de tu almohada instalada no está actualizada. Ejecuta lo siguiente:

import PIL print(PIL.PILLOW_VERSION)

Probablemente será 4.0.0 . Si es así, ejecute los siguientes comandos:

!pip uninstall Pillow !pip install Pillow==5.3.0

Luego reinicie su tiempo de ejecución (presione CTRL + M . , O Runtime --> Restart runtime de Runtime --> Restart runtime desde el menú). Ejecute el primer conjunto de comandos nuevamente para asegurarse de que su versión actual de PIL sea 5.3.0.


Lo que me funcionó después de cargar la pillow del módulo y todas las demás configuraciones de fastai es esto:

# 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

y ahora no se requiere reinicio en tiempo de ejecución.


Me funcionó después de agregar lo siguiente después de toda la configuración:

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

y luego cambió la siguiente función en la sección Analyzing Results: Looking At Pictures

def load_img_id(ds, idx): return np.array(PIL.Image.open(PATH+ds.fnames[idx]))

a

def load_img_id(ds, idx): return np.array(Image.open(PATH+ds.fnames[idx]))


Para mí, reiniciar el tiempo de ejecución con "Runtime / Restart runtime ..." desde el menú después de instalar el Pillow más nuevo con pip y ejecutar el código que lo usa solucionó el problema.


Probablemente el formato del archivo. Lo cambié de ".tiff" a ".png". Funciona. El módulo no tiene decodificador tiff.



!pip install Pillow==4.0.0 !pip install PIL !pip install image from PIL import Im