电脑环境:Python3.7
需要注意路径,filename的那个地方~
下面是训练集转化代码:
import os
from imageio import imsave
def unpickle(file):
import pickle
with open(file, 'rb') as fo:
dict = pickle.load(fo, encoding='bytes')
return dict
filename = './data/cifar-10-batches-py' # 图片的路径
meta = unpickle(filename + '/batches.meta')
label_name = meta[b'label_names']
for i in range(len(label_name)):
file = label_name[i].decode()
path = './data/train/' + file
isExist = os.path.exists(path)
if not isExist:
os.makedirs(path)
for i in range(1, 6):
content = unpickle(filename + '/data_batch_' + str(i)) # 解压后的每个data_batch_
print('load data...')
print(content.keys())
print('tranfering data_batch' + str(i))
for j in range(10000):
img = content[b'data'][j]
img = img.reshape(3, 32, 32)
img = img.transpose(1, 2, 0)
img_name = './data/train/' + label_name[
content[b'labels'][j]].decode() + '/batch_' + str(i) + '_num_' + str(
j) + '.jpg'
imsave(img_name, img)
下面是测试集代码:
还是路径,注意正确
testXtr = unpickle("./data/cifar-10-batches-py/test_batch")
for i in range(0, 10000):
img = np.reshape(testXtr[b'data'][i], (3, 32, 32))
img = img.transpose(1, 2, 0)
picName = 'test/' + str(date_dict[testXtr[b'labels'][i]]) + '/' + str(i) + '.png'
imsave(picName, img)
print("test_batch loaded.")
参考链接:
https://blog.csdn.net/weixin_43509698/article/details/115474127