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.
corre estas 3 líneas al comienzo de tu cuaderno colab
!pip install Pillow==4.0.0
!pip install PIL
!pip install image
Yo también estaba luchando con el mismo problema. Pero esto me ha funcionado. https://pillow.readthedocs.io/en/3.1.x/reference/Image.html
!pip install Pillow==4.0.0
!pip install PIL
!pip install image
from PIL import Im