cifar-10数据集,CIFAR数据集

  cifar-10数据集,CIFAR数据集

  对Theano ——CIFAR-10和CIFAR-100数据集1的介绍。CIFAR-10数据集介绍。CIFAR-10数据集包含60,000幅32*32的彩色图像,有10种类型。有50,000个训练图像和10,000个测试图像。

  数据集分为五个训练块和一个测试块,每个块有10,000幅图像。测试块包含为每个类别随机选择的1000幅图像。训练块以随机顺序包含这些图像,但是一些训练块可能比其他训练块包含更多的图像。每类训练块包含5000幅图像。班级是完全排外的。轿车和卡车之间没有重叠。“汽车”仅包含轿车、SUV等。“卡车”仅包括重型卡车。两者都不包括皮卡车。

  2.2的Python版本存档。CIFAR-10数据集包含文件data_batch_1、data_batch_2、data_batch_5和test_batch。每个文件都是一个Python“腌制”的对象。如下加载字典并返回一个。

  un packle(file):importpincklefo=open)file, Rb) dict=cpickle.load (fo.close))返回每个块文件中的dict。

  Data——1大小为10000*3072的uint8s数组。阵列的每一行存储一个32*32的图像。第一个1024包含红色通道值,第二个包含绿色,最后一个1024包含蓝色。因为图像存储以行顺序为中心,所以数组的前32列是图像第一行的红色通道值。

  Labels——1 10000个从0到9的列表。索引I中的数字表示数组数据中第I个图像的标签。

  数据集包含另一个名为batches.meta的文件,它还包含一个Python字典对象。这些元素包括:10个元素的列表。为标签中的数字标签指定一个有意义的名称。比如label_names[0]=飞机,label_names[1]=汽车等。

  3.CIFAR-100数据集包含100个子类,每个子类包含600幅图像,其中包括500幅训练图像和100幅测试图像。第100类又分为20类。每个图像具有小类别的“精细”标签和大类别的“粗糙”标签。

  4.4的Python版本。CIFAR-100数据集和CIFAR-10数据集的Python版本。

  5.CIFAR-10代码实现(1) CIFAR-10数据集存储在相对文件路径data _ dir _ CIFAR0中。

  (2) _load_batch_cifar10函数

  此函数加载CIFAR-10格式的块文件。将数据块文件名filename与相对文件路径data_dir_cifar10连接,以获取数据块文件的位置。使用numpy中的load函数(或cPickle中的load函数)并返回batch。Batch是包含数据和标签的字典。从数据索引 data 中获取图像数据,从标签索引 labels 中获取图像分类标签,并将标签转换为一键编码格式。请参考上一篇文章对MNIST数据集的描述。最后,将数据和标签中元素的数据类型统一为dtype类型。

  (3)计数功能

  当axis=0时,此函数按行顺序从上到下排列矩阵,当axis=1时,按列顺序从左到右排列矩阵。

  _灰度功能

  该函数首先将A转换为维数为a.shape[0],3,32,32]的四维张量。前面的A是矩阵形式,A的每一行代表一个图像样本。A列是按照红、绿、蓝的顺序对图像中的所有像素进行排序的结果。这意味着图像中所有像素的红色通道值、图像中所有像素的绿色通道值和图像中所有像素的蓝色通道值。3表示颜色通道的数量,32表示图像的行数和列数。这样,整形函数首先将二维矩阵A的所有行排列成一行,首先将该行切割成a.shape[0]行B,然后将行B分成三段,将行C和行C分别分成32段,如下

  平均值(1)对应于第二轴(颜色通道轴)。平均第二个轴(即平均三个通道值,最后第二个轴是单个通道(灰色通道))。最后通过变形得到二维矩阵(a.shape[0],32*32)。

  5) cifar10功能

  研究中心函数首先调用_load_batch_cifar10函数读取块文件,返回的x和t都是列表格式。所以可以用附加连接。连接后,每个块文件的内容都放在大括号中,因此连锁的函数会移除用于区分外部块文件类型的括号。此时获得的x _火车行为图像样本被列举为像素的红色、绿色和蓝色通道值;t _火车的动作图像标签。列为标签的一个热点编码值x _测试和t _测试的结构相同。变换为灰度图像后x _火车和x _测试是矩阵,行动图像样本被列举为像素被归一化后的灰度值;t _火车和t _测试是矩阵,在行为图像标记中列为每个一个热点编码值。

  将数字导入为

  NP导入OS导入c pickle as pickle导入glob导入matplotlib。py绘图为PLT data _ dir= data data _ dir _ CIFAR 10=OS。路径。join(data _ dir, CIFAR-10-batches-py )data _ dir _ CIFAR 100=OS。路径。join(data _ dir, CIFAR-100-python )class _ names _ CIFAR 10=NP。加载(操作系统。路径。join(data _ dir _ CIFAR 10,批处理。meta )类名均值(1)。shape(a.shape[0],-1)返回形状(形状[0],3,32,32).均值(1)。shape(a.shape[0],-1)def cifar10(dtype=float64 ,gray=True):# train x _ train=[]t _ train=[]for k in x range(5):x,t=_ load _ batch _ CIFAR 10( data _ batch _ % d %(k 1),dtype=dtype)x _ train。追加(x)t _ train。追加(t)x _ train=NP。concatenate(x _ train,轴=0)t _ train=NP。连接(t n=100)返回data.astype(dtype),标签。astype(dtype)def cifar 100(dtype= float 64 ,灰度=True): x_train,t _ train=_ load _ batch _ cifar 100( train ,dtype=dtype) x_test,t _ test=_ load _ batch _ cifar 100( test ,dtype=dtype)如果灰度:x _ train=_灰度(x _训练)x _测试=_灰度(x _测试)返回x图像样本显示image=Xtrain[0].整形(32,32)image1=Xtrain[255].整形(32,32)fig=PLT。figure()ax=fig . add _ subplot(121)PLT。轴(“关闭”)PLT。title(class _ names _ cifar 10[ label _ names ][list(y train[0]).index(1)])plt.imshow(image,cmap= gray )ax=fig . add _ subplot(122)PLT。title(class _ names _ cifar 10[ label _ names ][list(y train[255]).index(1)])plt.imshow(image1,cmap= gray )PLT。轴(“关闭”)PLT。显示()

  6.实验结果

  7.参考链接研究中心数据集:http://www。cs。多伦多。edu/~克里兹/西法尔。超文本标记语言

  (2)数据集加载:https://github。com/Ben Anne/the ano-tutorial/blob/master/load。巴拉圭

cifar-10数据集,CIFAR数据集