读取cifar100并将图片按类别保存

运行代码后会得到两个文件夹,一个是训练集(50000张图片)一个是测试集(10000张图片),这两个文件夹下都会有100个子文件夹。
在这里插入图片描述在这里插入图片描述

import os
from skimage import io
import torchvision as tv
import numpy as np
import torch

def Cifar100(root):

    character_train = [[] for i in range(100)]
    character_test = [[] for i in range(100)]

    train_set = tv.datasets.CIFAR100(root, train=True, download=True)
    test_set = tv.datasets.CIFAR100(root, train=False, download=True)

    trainset = []
    testset = []
    for i, (X, Y) in enumerate(train_set):  # 将train_set的数据和label读入列表
        trainset.append(list((np.array(X), np.array(Y))))
    for i, (X, Y) in enumerate(test_set):  # 将test_set的数据和label读入列表
        testset.append(list((np.array(X), np.array(Y))))

    for X, Y in trainset:
        character_train[Y].append(X)  # 32*32*3

    for X, Y in testset:
        character_test[Y].append(X)  # 32*32*3

    os.mkdir(os.path.join(root, 'train'))
    os.mkdir(os.path.join(root, 'test'))

    for i, per_class in enumerate(character_train):
        character_path = os.path.join(root, 'train', 'character_' + str(i))
        os.mkdir(character_path)
        for j, img in enumerate(per_class):
            img_path = character_path + '/' + str(j) + ".jpg"
            io.imsave(img_path, img)

    for i, per_class in enumerate(character_test):
        character_path = os.path.join(root, 'test', 'character_' + str(i))
        os.mkdir(character_path)
        for j, img in enumerate(per_class):
            img_path = character_path + '/' + str(j) + ".jpg"
            io.imsave(img_path, img)

if __name__ == '__main__':
    root = '/home/jim/project/pytorch/pytorch-cifar100-master/cifar100'
    Cifar100(root)




参考:https://blog.csdn.net/Xie_learning/article/details/89365305

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值