python读取CIFAR10数据集并将数据集转换为PNG格式存储
CIFAR10数据集介绍
CIFAR10数据集包括10类图像,每张图像的⼤⼩为32*32,包含如上图的⼗个类别的对象。每个类都包含6000张图⽚,总共有60000张图⽚,数据集平衡。其中,训练组图像包含50000张图⽚,测试集包含10000张图像。
数据集的下载
trainset = torchvision.datasets.CIFAR10(root='存储路径',
train=True,
download=True,
transform = transform,
)
testset = torchvision.datasets.CIFAR10(root='存储路径',
train=False,
download=True,
transform = transform,
)
下载后的数据集如下:
包含五个训练batch和⼀个测试batch,每个batch包含⼀万张图⽚。在做深度学习训练的时候直接从batch中读取数据就好,也可以转换为PNG或者JPG图⽚格式来再进⾏读取和查看图像数据。
读取代码如下:
# !/usr/bin/python3
# -*- coding:utf-8 -*-
# Author:WeiFeng Liu
# @Time: 2021/11/5 下午1:02
import cv2
import numpy as np
ves import cPickle as pickle
#解压缩⼆进制⽂件
def unpack(file):
fo =open(file,"rb")
dict= pickle.load(fo,encoding='iso-8859-1')
fo.close()
return dict
## unpack trainset
for i in range(1,6):
import pickle
data_name ="训练batch路径"+str(i)
Xtr = unpack(data_name)
print(data_name +'')
for j in range(10000):
img = np.reshape(Xtr['data'][j],(3,32,32))
img = anspose(1,2,0)
img_name ='train/'+str(Xtr['labels'][j])+'_'+str(j+(i-1)*10000)+'.jpg'        cv2.imwrite(img_name,img)
print(data_name +'')
testXtr = unpack('测试batch路径')
for i in range(0,10000):
img = np.reshape(testXtr['data'][i],(3,32,32))
img = anspose(1,2,0)
img_name ='test/'+str(testXtr['labels'][i])+'_'+str(i)+'.jpg'
cv2.imwrite(img_name, img)
在python3中解压⼆进制⽂件要带上这⼀句:
dict= pickle.load(fo,encoding='iso-8859-1')
否则会出现编码错误。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。