AI Studio中的视觉数据集合

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AI Studio中的视觉数据集合相关的知识,希望对你有一定的参考价值。

简 介: ※对于Paddle中的vision中的图片数据Cifar10, FashionMNIST进行显示与测试。

关键词 Cifar10FashionMNIST

视觉图像集合
文章目录
Cifar10数据集合
下载数据集合
数据文件操作
数据集合操作
FashionMNIST
数据集合
数据库下载
数据库显示
数据文件操作
训练LeNet识别
FashionMNIST
使用稠密网络
数据总结

 

§01 觉图像集合


在PaddlePaddle环境中,存在 一些自带数据集合 ,其中的机器视觉(vision)数据集合包括:

print('Dataset for Vision:', paddle.vision.datasets.__all__)
print('Dataset for text:', paddle.text.__all__)
Dataset for Vision: ['DatasetFolder', 'ImageFolder', 'MNIST', 'FashionMNIST', 'Flowers', 'Cifar10', 'Cifar100', 'VOC2012']
Dataset for text: ['Conll05st', 'Imdb', 'Imikolov', 'Movielens', 'UCIHousing', 'WMT14', 'WMT16', 'ViterbiDecoder', 'viterbi_decode']

1.1 Cifar10数据集合

Cifar10数据集合是彩色图片,是机器学习以及深度神经网络的重要的数据库。

1.1.1 下载数据集合

(1)下载代码

train_dataset = paddle.vision.datasets.Cifar10(mode='train')

经过14秒左右,数据集合从 https://dataset.bj.bcebos.com/cifar/cifar-10-python.tar.gz下载到本地的 /home/aistudio/.cache/paddle/dataset/cifar/cifar-10-python.tar.gz

Cache file /home/aistudio/.cache/paddle/dataset/cifar/cifar-10-python.tar.gz not found, downloading https://dataset.bj.bcebos.com/cifar/cifar-10-python.tar.gz 
Begin to download

Download finished

运行时长:13.845秒结束时间:2021-12-15 11:03:15

(2)下载文件

检查本地的数据文件:

aistudio@jupyter-262579-3225298:~/.cache/paddle/dataset/cifar$ ls
cifar-10-python.tar.gz

将 cifar-10文件拷贝到主目录下,然后下载到电脑本地。

aistudio@jupyter-262579-3225298:~/.cache/paddle/dataset/cifar$ cp * $HOME/.

▲ 图1.1.1 将数据文件下载到本地

在本地打开该压缩包,可以看到其中包含如下的文件。

└─cifar-10-batches-py
        batches.meta
        data_batch_1
        data_batch_2
        data_batch_3
        data_batch_4
        data_batch_5
        readme.html
        test_batch

在其中的 readme.html包含着对于该数据集合元有连接的说明: CIFAR-10 and CIFAR-100 datasets

▲ 图1.1.2 Cifar-10数据集合

1.1.2 数据文件操作

(1)文件解压缩

首先在AI Studio中,将Cifar-10压缩包移动到**/data**目录下,

▲ 图1.1.3 利用BML 环境下鼠标右键“提取压缩包“将压缩文件加压缩到当前文件下

(2)文件读取

CIFAR-10 and CIFAR-100 datasets 网站给出了数据文件的操作方法。

 Ⅰ.使用pickle打开文件
filename = 'data/cifar-10-batches-py/data_batch_1'

def unpickle(file):
    import _pickle as cPickle
    with open(file, 'rb') as f:
        dict = cPickle.load(f, encoding='bytes')

    return dict

d = unpickle(filename)
 Ⅱ.数据格式
print(type(d))
print(len(d))
print(d.keys())
<class 'dict'>
4
dict_keys([b'batch_label', b'labels', b'data', b'filenames'])
 Ⅲ.读取各个键值
  • batch_label: b’training batch 1 of 5’
  • labels:
print(len(d[b'labels']))
print(type([b'labels']))

10000
<class 'list'>
[6, 9, 9, 4, 1, 1, 2, 7, 8, 3, 4, 7, 7, 2, 9, 9, 9, 3, 2, 6, 4, 3, 6, 6, 2, 6, 3, 5, 4, 0, 0, 9, 1, 3, 4, 0, 3, 7, 3, 3, 5, 2, 2, 7, 1, 1, 1, 2, 2, 0, 9, 5, 7, 9, 2, 2, 5, 2, 4, 3, 1, 1, 
......
8, 2, 6, 2, 9, 7, 7, 7, 9, 8, 9, 4, 4, 7, 1, 0, 4, 3, 6, 3, 9, 8, 3, 6, 8, 3, 6, 6, 2, 6, 7, 3, 0, 0, 0, 2, 5, 1, 2, 9, 2, 2, 1, 6, 3, 9, 1, 1, 5]
  • data:
print(type(d[b'data']))
print(len(d[b'data']))
print(d[b'data'][0].shape)
print(d[b'data'][0])
<class 'numpy.ndarray'>
10000
(3072,)
[ 59  43  50 ... 140  84  72]

可以看到data中是图像的bytes值,它们的格式:

  • The first 1024 entries contain the red channel values

  • the next 1024 the green

  • and the final 1024 the blue.

  • 显示data图片:

imgdata = d[b'data'][0]
imgdata = array(zip(imgdata[:1024],
              imgdata[1024:1024*2],
              imgdata[1024*2:])).reshape(32,32,3)
plt.imshow(imgdata)
plt.show()

▲ 图1.1.4 第一张图片

plt.figure(figsize=(8,6))
for j in range(3):
    for i in range(5):
        imgdata = d[b'data'][i+j*5]
        imgdata = array(list(zip(imgdata[:1024], imgdata[1024:1024*2], imgdata[1024*2:]))).reshape(32,32,3)
        plt.subplot(3,5, j*5+i+1)
        plt.axis('off')
        plt.imshow(imgdata)

plt.show()

▲ 图1.1.5 数据前15个图片

  • filename:
print(d[b'filenames'][:15])

[b’leptodactylus_pentadactylus_s_000004.png’, b’camion_s_000148.png’, b’tipper_truck_s_001250.png’, b’american_elk_s_001521.png’, b’station_wagon_s_000293.png’, b’coupe_s_001735.png’, b’cassowary_s_001300.png’, b’cow_pony_s_001168.png’, b’sea_boat_s_001584.png’, b’tabby_s_001355.png’, b’muntjac_s_001000.png’, b’arabian_s_001354.png’, b’quarter_horse_s_000672.png’, b’

以上是关于AI Studio中的视觉数据集合的主要内容,如果未能解决你的问题,请参考以下文章

火爆 GitHub!这个 AI 神器究竟有什么魅力?

片段中的Android Studio RecyclerView [重复]

片段中的TextView在Android Studio中返回Null

在android studio中引用Firestore

通过按下 Android Studio 中的片段中的按钮进入新页面

大数据 AI视觉ChatGPT来了,微软发布,代码已开源