РЕДАКТИРОВАТЬ: разделение классов . Исходный файл pickle содержит словарь с метками, данными (массивом) и именами файлов. Я просто отфильтровал массивы по меткам классов и добавил все массивы, чтобы сформировать список, а затем собрал этот список вместе.
class_index= 9 #gives the corresponding class label in the dataset
images = [] #empty list
for i in range(len(labels)):
if labels[i]==class_index:
images.append(data[i])
с этим я получаю список массивов, соответствующих только одному классу, скажем, собака. затем я просто записываю их в файл рассылки
with open('name.pkl', 'wb') as f:
pickle.dump(images0, f)
Когда я загружаю файл рассылки, он выдает мне выходные массивы, каждый из которых имеет форму (3072,).
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
#Load the pickle
images = np.load('name.pkl',allow_pickle=True)
Мне нужно получить их как изображения RGB (32,32,3). Эти подходы были опробованы
image = images[0]
img = np.reshape(image,(32,32,3))
im = Image.fromarray(img)
. Это дает очень искаженное изображение, похожее на 9 изображений одного и того же предмета, которое, я думаю, связано с изменением формы
![image distorted](https://i.stack.imgur.com/2yEPm.png)
* 1019. * Есть ли способ избежать этого? Я также попытался
image = image.reshape(-1,1)
pict = Image.fromarray(image,'L')
plt.imshow(pict)
, который дает следующее изображение в качестве вывода ![empty image](https://i.stack.imgur.com/lp0LE.png)
Может кто-нибудь, пожалуйста, помогите мне? Другие подходы также приветствуются