python将cifar10数据集转成图片格式的训练集和测试集

电脑环境: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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值