пытается нормализовать для питчера
from torchvision.transforms import Normalize
class Unnormalize:
"""Converts an image tensor that was previously Normalize'd
back to an image with pixels in the range [0, 1]."""
def __init__(self, mean, std):
self.mean = mean
self.std = std
def __call__(self, tensor):
mean = torch.as_tensor(self.mean, dtype=tensor.dtype, device=tensor.device).view(3, 1, 1)
std = torch.as_tensor(self.std, dtype=tensor.dtype, device=tensor.device).view(3, 1, 1)
return torch.clamp(tensor*std + mean, 0., 1.)
mean = [0.485, 0.456, 0.406]
std = [0.229, 0.224, 0.225]
normalize_transform = Normalize(mean, std)
unnormalize_transform = Unnormalize(mean, std)
тогда мой размер изображения: img = torch.Size ([3, 224, 224])
img_temp=img.permute((1, 2, 0)).cpu().detach()
normalize_transform(img_temp)
---- -------------------------------------------------- --------------------- RuntimeError Traceback (последний вызов был последним) в ----> 1 normalize_transform (img_temp)
~ / venv / lib / python3 .7 / site-packages / torchvision / transforms / transforms.py в call (self, тензор) 173 Tensor: нормализованное изображение Tensor. 174 "" "-> 175 return F.normalize (тензор, self.mean, self.std, self.inplace) 176 177 def repr (self):
~ / venv /lib/python3.7/site-packages/torchvision/transforms/functional.py для нормализации (тензор, среднее значение, стандартное отклонение, на месте) 216 std = torch.as_tensor (std, dtype = dtype, device = tenor.device) -> 217 тензор (среднее [:, нет, нет]). Div_ (std [:, нет, нет]) 218 return тензор 219
RuntimeError: размер тензора a (224) должен соответствовать размеру тензора b (3) при не синглетонном измерении 0