Попытка нанести карту значимости на изображение и создать новый набор данных
trainloader = utilsxai.load_data_cifar10(batch_size=1,test=False)
testloader = utilsxai.load_data_cifar10(batch_size=128, test=True)
этот load_cifar10 - torchvision
data = trainloader.dataset.data
trainloader.dataset.data = (data * sal_maps_hf).reshape(data.shape)
Форма sal_maps_hf с (50000,32,32,3)
и форма загрузчика с (50000,32,32,3)
но когда я запускаю это
for idx,img in enumerate(trainloader):
-------------------------------------------------- ------------------------- KeyError Traceback (последний вызов последним) ~ / venv / lib / python3.7 / site-packages / PIL / Image .py в fromarray (obj, mode) 2644 typekey = (1, 1) + shape [2:], arr ["typestr"] -> 2645 mode, rawmode = _fromarray_typemap [typekey] 2646 кроме KeyError:
KeyError: ((1, 1, 3), '
During handling of the above exception, another exception occurred:
TypeError Traceback (последний вызов последний) в ----> 1 show_images (загрузчик поезда)
в show_images (trainloader) 1 def show_images (trainloader): ----> 2 для idx, (img, target) in enumerate (trainloader): 3 img = img.squeeze () 4 #pritn (img) 5 img = torch .tensor (img)
~ / venv / lib / python3.7 / site-packages / torch / utils / data / dataloader.py в next (self) 344 def next (self): 345 index = self._next_index () # может поднять StopIteration -> 346 data = self._dataset_fetcher.fetch (index) # может поднять StopIteration 347, если self._pin_memory: 348 data = _utils.pin_memory.pin_memory (data)
~ / venv / lib / python3.7 / site-packages / torch / utils / data / _utils / fetch.py в fetch (self, возможно_batched_index) 42 def fetch (self, возможно_batched_index): 43 если self.auto_collation: --- > 44 data = [self.dataset [idx] для idx в возможно_batched_index] 45 else: 46 data = self.dataset [возможно_batched_index]
~ / venv / lib / python3.7 / site-packages / torch / utils / data / _utils / fetch.py в (.0) 42 def fetch (self, возможно_batched_index): 43 если self.auto_collation: ---> 44 data = [self.dataset [idx] для idx в возможно_batched_index] 45 иначе: 46 data = self.dataset [возможно_batched_index]
~ / venv / lib / python3.7 / site-packages / torchvision / datasets / cifar.py в getitem (self, index) 120 # делаем это так, чтобы это согласовывалось со всеми другими наборами данных 121 # чтобы вернуть изображение PIL -> 122 img = Image.fromarray (img) 123 124, если self.transform не равен None:
~ / venv / lib / python3.7 / site-packages / PIL / Image.py в режиме fromarray (obj, mode) 2645, rawmode = _fromarray_typemap [typekey] 2646 за исключением KeyError: -> 2647 raise TypeError ("Невозможно обработать эти данные type ") 2648 else: 2649 rawmode = mode
TypeError: не удается обработать этот тип данных
trainloader.dataset.__getitem__
getitem набора данных CIFAR10 Количество точек данных: 50000 Корневое расположение: / mnt / 3CE35B99003D727B / input / pytorch / data Split: Train StandardTransform Transform: Compose (Resize (size = 32, interpolation = PIL.Image.BILINEAR) ToTensor ())
dataloader
хранит данные какnd.array
илиtorch.tensor
? Похоже, ваши данные хранятся какPIL.Image
s. - person Shai   schedule 30.12.2019dataset.__getitem__
действительно используетdataset.data
? возможно ли дополнительное представление данных? вам нужно будет посмотреть код набора данных. - person Shai   schedule 30.12.2019dtype
dataset.data
до изменения? и после? что такоеdtype
изsal_maps_hf
? - person Shai   schedule 30.12.2019type
, а неdtype
:dataset.data.dtype
иsal_maps_hf.dtype
- person Shai   schedule 30.12.2019