cifar-10学习——1、获取样本图片和标签模拟实际场景训练

最近想弄点样本来做个简单的图片分类,期望能找到所有的样本图片文件和标签文件,这样就可以模拟实际场景下进行机器学习了。在网上找了一番,都是打包的数据,也有解析出样本图片的,但是都不是很全,例如缺少标签。下面就尝试从cifar-10中获取所有图片和样本数据。

cifar-10 数据集介绍请看官网:

http://www.cs.toronto.edu/~kriz/cifar.html


样本共有10个分类:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车

数据集有60000张 32x32 像素彩色图片(RGB)

注意这里的RGB很重要,在训练过程中要和MNIST区分开,因为MNIST是单色的而cifar-10是RGB的。

每个类别图片有6000张,10个类别图片共60000张 = 训练图片50000张 + 测试图片10000张。

先从官网下载样本数据集如下:


好了,有个样本数据集我们现在将样本解析成图片保存到本地,我们希望图片的命名方式可以显示出其类别,例如:1_cat.png,78_airplan.png。

打开spyder开始编写代码 cifar-10可视化.py:

import pickle as p  
import numpy as np  
from PIL import Image  
import os

#加载数据
def load_CIFAR_batch(filename):  
    with open(filename, 'rb') as f:  
        datadict = p.load(f,encoding='latin1')  
        X = datadict['data']  
        Y = datadict['labels']  
        X = X.reshape(10000, 3, 32, 32)  
        Y = np.array(Y)  
        return X, Y  
  
#将标签转换成英文       
def getLabelType(typeIndex,label):
    index = label[typeIndex]
    if index == 0:
        return "airplane"
    if index == 1:
        return "automobile"
    if index == 2:
        return "bird"
    if index == 3:
        return "cat"
    if index == 4:
        return "deer"
    if index == 5:
        return "dog"
    if index == 6:
        return "frog"
    if index == 7:
        return "horse"
    if index == 8:
        return "ship"
    if index == 9:
        return "truck"
    
#创建每个batch图片保存的文件夹   
def mkdir(path):  
    folder = os.path.exists(path)  
    if not folder:              
        os.makedirs(path)
        print("创建文件夹"+path)
        return 1
    else:
        return 0
  
    
#保存图片和标签
def saveImgAndLabel(tag):
    saveDir = "./batch_images_"+str(tag)
    if mkdir(saveDir) == 0:
        return 
    if tag == "test":
        imgX, labelX = load_CIFAR_batch("./test_batch") #加载测试数据集
    else:
        imgX, labelX = load_CIFAR_batch("./data_batch_"+str(tag)) #加载训练数据集
    for i in range(0,10000): 
        imgs = imgX[i]  
        img0 = imgs[0]  
        img1 = imgs[1]  
        img2 = imgs[2]  
        #生成image对象RGB 
        i0 = Image.fromarray(img0) 
        i1 = Image.fromarray(img1)  
        i2 = Image.fromarray(img2)  
        img = Image.merge("RGB",(i0,i1,i2)) 
        #这里是生成英文标签的名字
        label = getLabelType(i,labelX)
        name = str(i)+'_'+label+'.png'
        img.save(saveDir+"/"+name,"png") 
        print(name)

#程序入口
if __name__ == "__main__":  
    for i in range(1,7):
        if i == 6:
            saveImgAndLabel('test')
        else:
            saveImgAndLabel(i)
    print("保存完毕.")  
        
    

运行完成后当前目录如下:


我们打开看一下:



ok,60000张彩色图片带标签都生成了,现在看这些图片感觉直观多了,我们可以针对这些样本开始自己的训练了。

下一篇我们再拿这些样本(假设这些样本是自己实际场景的)进行训练。一步一步从最基本、最原始的开始。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CIFAR-10是一个用于机器学习的图像分类数据集。它是由50000幅32*32像素的彩色图片组成的,其中有10个不同的物体类别,每个类别有5000个样本。它包括10个类别,分别是飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。 CIFAR-10数据集的标签以数字形式表示,即0表示飞机,1表示汽车,2表示鸟,以此类推。在机器学习中,通常将数据集分为训练集和测试集。在CIFAR-10数据集中,训练集包括50000个样本,测试集包括10000个样本。 这个数据集广泛用于计算机视觉的研究,尤其是用于图像分类、目标检测等任务中。CIFAR-10数据集的一个挑战是,图像大小很小,像素较少,因此分类的难度较大,需要使用一些先进的技术来提高分类准确率。 总之,CIFAR-10数据集是一个用于机器学习的图像分类数据集,它包括10个不同的物体类别,每个类别有5000个样本,用于研究计算机视觉等方面的研究。 ### 回答2: CIFAR-10是一个十个类别的小图像数据集,每个类别包含6000张长宽均为32像素的彩色图像。这些类别包括:飞机,汽车,鸟类,猫,鹿,狗,青蛙,马,船和卡车。其中50000张图像被用于训练集,而剩余的10000张图像则被用于测试集。 CIFAR-10图片格式数据集广泛应用于计算机视觉领域的图像分类任务中。训练集中6000张图像的分布方式是随机的,而测试集的图像则被分为了5000张自然图像和其他5000张图像。这些图像中的对象可能是前景物体,也可能是背景物体。 这个数据集具有一些独特的特点。首先,图像的大小仅为32×32像素,这使它们在大多数情况下难以被准确地分辨。其次,10个分类类别各有各的特点,例如船在颜色和纹理方面与青蛙、狗等其他类别有很大的差异。这意味着对于每个类别更深层次的特征提取是必要的。最后,由于这些图像都是真实场景下的图像,所以存在大量的噪声和照明变化,这也是优化算法需要考虑的因素之一。 在近些年的深度学习算法的发展中,CIFAR-10数据集一直是一个标准的测试用例,被广泛应用于卷积神经网络(CNN)等模型的训练和测试中,以便研究人员在相对公正的环境下比较这些算法的优劣表现。在已有的计算机视觉算法之中,有许多已经取得了相当好的成绩,并已经得到了广泛的应用,例如Inception,ResNet和VGG网络。CIFAR-10数据集为这些算法的发展提供了一个共同平台,推动着计算机视觉技术的不断发展和进步。 ### 回答3: cifar-10图片格式数据集是一种广泛使用的机器学习数据集,其中包含10个不同类别的RGB彩色图像。这些图像类别包括:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。 这个数据集由加拿大计算机科学家Alex Krizhevsky、Vinod Nair和Geoffrey Hinton创建,用于评估图像分类算法的性能。这些图像的分辨率为32 x 32像素,每个图像都有一个对应的标签,该标签指示图像所属的类别。 cifar-10图片格式数据集已经成为计算机视觉领域研究人员评估算法性能的标准数据集之一,并被广泛用于训练深度学习模型,例如卷积神经网络(CNNs)。 此外,还有一个名为cifar-100的相关数据集,其中包含100个类别的图像,每个类别有600张图像。虽然cifar-100的类别数量更多,但其使用的图像分辨率与cifar-10相同,也是32 x 32像素。 总体来说,cifar-10图片格式数据集是一个非常有用的工具,可用于测试机器学习算法的性能,特别是在计算机视觉领域。它已经成为该领域的标准数据集之一,并将继续为该领域的研究提供支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值