CIFAR彩色图像分类数据集

一、CIFAR数据集介绍
1.1 CIFAR-10
数据集图像个数:60000张彩色图像;其中Train sets:50000;Test sets:10000,(测试批的数据里,取自10类中的每一类,每一类随机取1000张,抽剩下的就随机排列组成了训练批)
Class: 共10类,分别是:
飞机airplane、小汽车automobile、卡车truck、轮船ship、马horse、
猫cat、狗dog、鸟bird、鹿deer、青蛙frog。
图像属性: 大小为32*32(RGB),uint8型
数据集的数据结构:(python版本数据集被保存为numpy数组)图像以行优先顺序存储,以便数组的前32个条目是图像第一行的红色通道值。
训练集:50000*3072 的二维数组,其中3072=32*32*3=1024(R)+1024(G)+1024(B),
测试集:10000*3072,其结构如下:
这里写图片描述
部分样例图片如下:
这里写图片描述

1.2 CIFAR-100
该数据集有100个类,每个类包含600个图像。每类各有500个训练图像和100个测试图像。CIFAR-100中的100个类被分成20个超类。
图片张数60000 = 100类*600个 = 100*500(train) + 100*100(test)
该数据集的属性和数据结构与CIFAR-10相同。

每个图像都带有一个“精细”标签(它所属的类)和一个“粗糙”标签(它所属的超类),以下是CIFAR-100中的类别列表:

超类类别
水生哺乳动物海狸,海豚,水獭,海豹,鲸鱼
水族馆的鱼,比目鱼,射线,鲨鱼,鳟鱼
花卉兰花,罂粟花,玫瑰,向日葵,郁金香
食品容器瓶子,碗,罐子,杯子,盘子
水果和蔬菜苹果,蘑菇,橘子,梨,甜椒
家用电器时钟,电脑键盘,台灯,电话机,电视机
家用家具床,椅子,沙发,桌子,衣柜
昆虫蜜蜂,甲虫,蝴蝶,毛虫,蟑螂
大型食肉动物熊,豹,狮子,老虎,狼
大型人造户外用品桥,城堡,房子,路,摩天大楼
大自然的户外场景云,森林,山,平原,海
大杂食动物和食草动物骆驼,牛,黑猩猩,大象,袋鼠
中型哺乳动物狐狸,豪猪,负鼠,浣熊,臭鼬
非昆虫无脊椎动物螃蟹,龙虾,蜗牛,蜘蛛,蠕虫
宝贝,男孩,女孩,男人,女人
爬行动物鳄鱼,恐龙,蜥蜴,蛇,乌龟
小型哺乳动物仓鼠,老鼠,兔子,母老虎,松鼠
树木枫树,橡树,棕榈,松树,柳树
车辆1自行车,公共汽车,摩托车,皮卡车,火车
车辆2割草机,火箭,有轨电车,坦克,拖拉机

这里写图片描述

数据集下载地址:http://www.cs.toronto.edu/~kriz/cifar.html

二、读取数据集代码

加载CIFAR-10彩色图像数据集数据
"""
import numpy as np
import pickle

path = "D:\\ProgramFiles64\\Anaconda36\\Conda_Work\\CIFAR_data\\cifar-10-python\\"
file_test = 'test_batch'
file_meta = 'batches.meta'
fb = 'data_batch_'

train_data = np.empty((50000,3072))
train_label = []
for i in range(5):
    filename = path+fb+str(i+1)
    print(filename)
    with open(filename,'rb') as f:
        D=pickle.load(f,encoding='bytes')  #D是一个dict
        #D的成员有:b'batch_label';b'data';b'labels';b'filenames'
        xs = D[b'data']              #图像数据:10000*3072,是一个numpy数组
        ys = D[b'labels']            #是图像对应的标签,是一个list,大小为10000
        explain  = D[b'batch_label']   #说明:此数据集为5batch中的第1个batch
        image_name = D[b'filenames']   #图片的名称,eg:b'rana_clamitans_s_000435.png'
        train_data[i*10000:(i+1)*10000] = xs
        train_label.extend(ys)
        print(D,type(D))
        print('\n',type(xs),type(ys),xs.shape,len(ys))
        print(explain)
        #print(image_name)

print(train_data.shape,len(train_label),train_label)

with open(path+file_test ,'rb') as f:
    D1 = pickle.load(f,encoding='bytes')
    test_ys = D1[b'labels']   #是图像对应的标签,是一个list,大小为10000
    test_xs = D1[b'data']     #图像数据:10000*3072,是一个numpy数组

with open(path+file_meta,'rb') as f:
    """
    'batches.meta'是一些说明数据,包括每batch有10000个样本,
    类标签名称,b'label_names'
    每个图像向量化的长度:b'num_vis':3072
    """
    D1 = pickle.load(f,encoding='bytes')  
    #print(D1,type(D1))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值