AI Studio中的视觉数据集合
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AI Studio中的视觉数据集合相关的知识,希望对你有一定的参考价值。
简 介: ※对于Paddle中的vision中的图片数据Cifar10, FashionMNIST进行显示与测试。
关键词
: Cifar10,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中的视觉数据集合的主要内容,如果未能解决你的问题,请参考以下文章
片段中的Android Studio RecyclerView [重复]
片段中的TextView在Android Studio中返回Null