TypeError: tensor is not a torch image
Another, less elegant solution (assuming the image was loaded with opencv and is hence BGR):
t_ = transforms.Compose([transforms.ToPILImage(),
transforms.Resize((224,224)),
transforms.ToTensor()])
norm_ = transforms.Normalize([103.939, 116.779, 123.68],[1,1,1])
img = 255*t_(img)
img = norm_(img)
The problem is with the order of the transforms. The ToTensor
transform should come before the Normalize
transform, since the latter expects a tensor, but the Resize
transform returns an image. Correct code with the faulty lines changed:
train_transforms = transforms.Compose([
transforms.Resize((224,224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])
test_transforms = transforms.Compose([
transforms.Resize((224,224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])