web-dev-qa-db-fra.com

Erreur dans Google Colaboratory - AttributeError: le module 'PIL.Image' n'a pas d'attribut 'register_decoder'

J'utilise ce code sur Google Colaboratory et j'obtiens une erreur de registre

image_data = dset.ImageFolder(root="drive/SemanticDataset/train/", transform = transforms.Compose([
                                        transforms.Scale(size=img_size),
                                        transforms.CenterCrop(size=(img_size,img_size*2)),
                                        transforms.ToTensor(),
                                        ]))
enter code herelabel_data = dset.ImageFolder(root="drive/SemanticDataset/label/", transform = transforms.Compose([
                                        transforms.Scale(size=img_size),
                                        transforms.CenterCrop(size=(img_size,img_size*2)),
                                        transforms.ToTensor(),
                                        ]))

image_batch = data.DataLoader(image_data, batch_size=batch_size, shuffle=False, num_workers=2)
label_batch = data.DataLoader(label_data, batch_size=batch_size, shuffle=False, num_workers=2)
for i in range(Epoch):
   for _, (image, label) in enumerate(Zip(image_batch, label_batch)):
       optimizer.zero_grad()

       x = Variable(image, requires_grad=True).cuda()
       y = Variable(label).cuda()

       out = model.forward(x)
       loss = loss_func(out, y)

       loss.backward()
       optimizer.step()

       if _ % 100 == 0:
           print("Epoch: "+i+"| Loss: " , loss)

voici la capture d'écran de l'erreur

5
Aditya Kumar

Tout d’abord, vérifiez la version de votre oreiller en utilisant:

import PIL
print(PIL.PILLOW_VERSION)

et assurez-vous que vous avez la dernière version, celle que j'utilise actuellement est 5.3.0 Si vous avez comme 4.0.0, installez une nouvelle version en utilisant: !pip install Pillow==5.3.0 dans l'environnement Colab.

Deuxièmement, redémarrez votre environnement Google Colab et vérifiez à nouveau la version, il devrait être mis à jour.

J'ai eu le même problème et j'ai passé du temps à essayer de le résoudre. 

Note: J'utilisais PyTorch 0.4. 

J'espère que cela résoudra votre problème.

8
Michael Heidelberg

Je recommanderais d'utiliser:

!pip install -U pillow

Le moteur d'exécution doit être redémarré après la mise à niveau.

Le -U s'assurera que pillow n'est installé que si une version plus récente est disponible, ce qui permettra de gagner du temps à la deuxième exécution de la cellule après le redémarrage du noyau.

1
Tom Hale

J'ai essayé ceci:

!pip uninstall -y Pillow
# install the new one
!pip install Pillow==5.3.0
# import the new one
import PIL
print(PIL.PILLOW_VERSION)

et il a imprimé 5.3.0 et j'ai redémarré l'environnement d'exécution via Menu > Runtime > Restart Runtime. Cela a fonctionné comme un charme pour moi.

0
Muhammad Haseeb