如何用python读取cifar10数据集,并另存为图片文件
时间: 2024-04-30 07:18:02 浏览: 59
cifar10数据集的读取
可以使用Python中的`pickle`模块来加载CIFAR10数据集。以下是一个将CIFAR10数据集加载并保存为图片文件的示例代码:
``` python
import pickle
import numpy as np
import os
from PIL import Image
def unpickle(file):
with open(file, 'rb') as fo:
dict = pickle.load(fo, encoding='bytes')
return dict
data_dir = 'cifar-10-batches-py'
save_dir = 'cifar10_images'
if not os.path.exists(save_dir):
os.makedirs(save_dir)
for i in range(1, 6):
file_name = os.path.join(data_dir, 'data_batch_' + str(i))
data_dict = unpickle(file_name)
data = data_dict[b'data']
labels = data_dict[b'labels']
for j in range(10000):
img_data = data[j].reshape(3, 32, 32).transpose(1, 2, 0)
img_label = labels[j]
img = Image.fromarray(img_data)
img.save(os.path.join(save_dir, 'batch_' + str(i) + '_' + str(j) + '_label_' + str(img_label) + '.png'))
```
这段代码将CIFAR10数据集中的每个图像保存为一个PNG文件,并将其存储在`cifar10_images`目录中。每个文件名包含该图像所属的批次编号、图像编号和标签编号。
阅读全文