cifar-10数据集的下载及恢复原图片

数据集下载

进入官网CIFAR-10 and CIFAR-100 datasets

选择python版本

cifar-10数据集的下载及恢复原图片_第1张图片

 

解压后得到文件夹:

cifar-10数据集的下载及恢复原图片_第2张图片 

data_batch_1~data_batch_5是训练集数据,每个文件里有10000张图片,test_batch是测试集数据,也含有10000张图片。

转成图片

import numpy as np
import pickle
import imageio
import os


# 解压缩,返回解压后的字典
def unpickle(file):
    fo = open(file, 'rb')
    dict = pickle.load(fo, encoding='latin1')
    fo.close()
    return dict


list = ["airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse", "ship", "truck"]
for z in range(10):
    if os.path.exists('train/' + list[z]) == False:
        os.makedirs('train/' + list[z])
    if os.path.exists('val/' + list[z]) == False:
        os.makedirs('val/' + list[z])

# 生成训练集图片,如果需要png格式,只需要改图片后缀名即可。
for j in range(1, 6):
    dataName = "/tmp/Tip-Adapter-main/caches/cifar-10-batches-py/data_batch_" + str(j)
    # 读取当前目录下的data_batch12345文件,dataName其实也是data_batch文件的路径,本文和脚本文件在同一目录下。也就是这里的dataName的绝对路径
    Xtr = unpickle(dataName)
    print(dataName + " is loading...")

    for i in range(0, 10000):
        img = np.reshape(Xtr['data'][i], (3, 32, 32))  # Xtr['data']为图片二进制数据
        img = img.transpose(1, 2, 0)  # 读取image
        picName = 'train/' + list[Xtr['labels'][i]] + '/' + str(i + (j - 1) * 10000) + '.jpg'#png
        # Xtr['labels']为图片的标签,值范围0-9,本文中,train文件夹需要存在,并与脚本文件在同一目录下。
        imageio.imwrite(picName, img)
    print(dataName + " loaded.")
print("test_batch is loading...")

# 生成测试集图片
testXtr = unpickle("/tmp/Tip-Adapter-main/caches/cifar-10-batches-py/test_batch")#同dataName一样也是自己的文件所在路径
for i in range(0, 10000):
    img = np.reshape(testXtr['data'][i], (3, 32, 32))
    img = img.transpose(1, 2, 0)
    picName = 'val/' + list[testXtr['labels'][i]] + '/' + str(i) + '.png'
    imageio.imwrite(picName, img)
print("test_batch loaded.")

 

 运行效果

cifar-10数据集的下载及恢复原图片_第3张图片

 

 之后会得到不同标签的文件夹

cifar-10数据集的下载及恢复原图片_第4张图片

 

你可能感兴趣的:(深度学习,人工智能,计算机视觉)