You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
How you installed PyTorch (conda, pip, source): conda
Python version: 3
CUDA/cuDNN version: 8.0
GPU models and configuration: Titan X (Maxwell)
ERROR: ValueError: Incorrect mode (<class 'float'>) supplied for input type <class 'numpy.dtype'>. Should be L
The torchvision transform ToPILImage(mode=float) will always break for input of type torch.FloatTensor ToPILImage() uses the internal function to_pil_image found in torchvision/transforms/functional.py
In https://github.com/pytorch/vision/blob/master/torchvision/transforms/functional.py:
Line 104 checks if the input is of type torch.FloatTensor
If so, line 105 scales the input by 255, but then converts it to byte
Lines 113-127 check if the user-specified mode is the expected mode, and throws an error if not.
The expected mode is assigned by npimg.dtype, which return np.uint8 if line 105 is executed
I believe the bug can be fixed by changing line 105 from: pic = pic.mul(255).byte()
-to- pic = pic.mul(255)
Test script:
import torch
from torchvision import transforms
a = torch.FloatTensor(1,64,64)
tform = transforms.Compose([transforms.ToPILImage(mode='F')])
b = tform(a)