zoukankan      html  css  js  c++  java
  • CIFAR10和CIFAR100转图片

    昨天从csdn上看了一个,结果转出来图片是偏蓝的,效果如下:

    资料发现是cv2的色彩空间正好是反着的,按资料里改一下就行了,或者我重新写了一份:

    CIFAR10:

    import numpy as np 
    import pickle as pkl 
    import os
    from PIL import Image
    import matplotlib.pyplot as plt 
    
    train_list = [
            ['data_batch_1', 'c99cafc152244af753f735de768cd75f'],
            ['data_batch_2', 'd4bba439e000b95fd0a9bffe97cbabec'],
            ['data_batch_3', '54ebc095f3ab1f0389bbae665268c751'],
            ['data_batch_4', '634d18415352ddfa80567beed471001a'],
            ['data_batch_5', '482c414d41f54cd18b22e5b47cb7c3cb'],
        ]
    
    test_list = [
            ['test_batch', '40351d587109b95175f43aff81a1287e'],
        ]
    
    count = 0
    for file_name, checksum in train_list:
    	with open(file_name, 'rb') as f:
    		entry = pkl.load(f, encoding='latin1')
    		data, label = np.array(entry['data']).reshape(-1, 3, 32, 32).transpose(0, 2, 3, 1), entry['labels']
    		if not os.path.exists('train'):
    			os.mkdir('train')
    			for i in range(10):
    				os.mkdir(os.path.join('train', str(i)))
    		for i in range(data.shape[0]):
    			count = count + 1
    			img = Image.fromarray(data[i])
    			img.save(os.path.join('train', str(label[i]), str(count)+'.png'))
    
    for file_name, checksum in test_list:
    	with open(file_name, 'rb') as f:
    		entry = pkl.load(f, encoding='latin1')
    		data, label = np.array(entry['data']).reshape(-1, 3, 32, 32).transpose(0, 2, 3, 1), entry['labels']
    		if not os.path.exists('val'):
    			os.mkdir('val')
    			for i in range(10):
    				os.mkdir(os.path.join('val', str(i)))
    		for i in range(data.shape[0]):
    			count = count + 1
    			img = Image.fromarray(data[i])
    			img.save(os.path.join('val', str(label[i]), str(count)+'.png'))
    

    CIFAR100:

    import os
    from PIL import Image
    ROOT_PATH='/cache/cifar-100-python/cifar-100-python'
    TO_ROOT='/cache/cifar100V2'
    def unpickle(file):
        import pickle
        with open(file, 'rb') as fo:
            dict = pickle.load(fo, encoding='latin1')
        return dict
    meta_dict=unpickle(os.path.join(ROOT_PATH,'meta'))
    train_dict=unpickle(os.path.join(ROOT_PATH,'train'))
    test_dict=unpickle(os.path.join(ROOT_PATH,'test'))
    os.mkdir(TO_ROOT)
    os.mkdir(os.path.join(TO_ROOT,'train'))
    os.mkdir(os.path.join(TO_ROOT,'val'))
    for i in range(100):
        os.mkdir(os.path.join(TO_ROOT,'train',str(i)))
        os.mkdir(os.path.join(TO_ROOT,'val',str(i)))
    count=0
    data, label = np.array(train_dict['data']).reshape(-1, 3, 32, 32).transpose(0, 2, 3, 1), train_dict['fine_labels']
    for i in range(data.shape[0]):
        count = count + 1
        img = Image.fromarray(data[i])
        img.save(os.path.join(TO_ROOT,'train', str(label[i]), str(count)+'.png'))
    data, label = np.array(test_dict['data']).reshape(-1, 3, 32, 32).transpose(0, 2, 3, 1), test_dict['fine_labels']
    for i in range(data.shape[0]):
        count = count + 1
        img = Image.fromarray(data[i])
        img.save(os.path.join(TO_ROOT,'val', str(label[i]), str(count)+'.png'))
    
  • 相关阅读:
    Mysql中use filesort的误区
    Windows双系统
    Java visualvm
    软件设计师06-数据结构
    安装VMware14可能出现的问题
    计算机硬件系统
    Web漏洞扫描
    crunch制作字典
    kali之HexorBase数据库破解
    memcahce 介绍以及安装以及扩展的安装
  • 原文地址:https://www.cnblogs.com/jiading/p/14607084.html
Copyright © 2011-2022 走看看