python h5py 操作 —— 以cifar数据集为例

系统 1741 0

本文要做的是如何把cifar-10数据集创建并写入hdf5文件中,以介绍python操作HDF类文件的常用方法

1、从官网下载数据集cifar-10:cifar官网(注意下载python版的)

下载完后要先解压,不能直接上代码;Linux下解压:

            
              tar -zxvf 压缩包名.tar.gz  # 适用于.tar.gz文件
unzip filename.zip # 适用于zip文件
            
          

解压后看到下面情况: python h5py 操作 —— 以cifar数据集为例_第1张图片

然后才能上以下代码来读取数据文件:

            
              import cPickle as pickle

def unpickle(file):
    fo = open(file, 'rb')
    dict = pickle.load(fo)
    fo.close()
    return dict['data'], dict['labels']

# 这样就可以读取每个batch的数据了,一个batch包含10000个样本以及对应的标签,从batch_1到5是5万个训练样本,还有个test_batch是一万个测试样本以及对应标签;
            
          

假设我对cifar处理后得到三个文件分别为‘cifar_rc_32.npy’,‘cifar_rc_64.npy’,‘cifar_rc_128.npy’三个文件,要创建或写入‘cifar.hdf5’:

            
              import h5py
import numpy as np

rc_32 = np.load('cifar_rc_32.npy')
rc_64 = np.load('cifar_rc_64.npy')
rc_128 = np.load('cifar_rc_128.npy')

f = h5py.File('cifar.hdf5','w') # 如果没有会创建,有的话会覆盖式写入
#先要创建组,我一开始因为没有创建组group导致后来的操作会有麻烦,所以建议先创建组:
f.create_group('data')
dataset = f['group'].create_dataset('rc_32',data=rc_32)
dataset.attrs['prob_hh'] = property_value # 还可以给数据集对象添加属性描述.

f['group'].create_dataset('rc_64',data=rc_64)
f['group'].create_dataset('rc_128',data=rc_128)
# 这样就在group ‘data’下创建了三个数据集了。

# 写入数据集还可以有一下操作:
# 准备待写入数据:
data = np.arange(10000).reshape(100,100)
# 写入数据:
f['data'] = data

label = np.arange(10000)
f['label/resnet/rc_128'] = label
# 这样也可以创建数据集
            
          

 其实还有一种快速写入hdf5文件的方式就是如果你创建过组可以用更方面的方式写入数据到原来不存在的目录:

            
              f['labels/resnet1/rc_32']  = rc_32
f['labels/resnet1/rc_64'] = rc_64
f['labels/resnet1/rc_128'] = rc_128
            
          

rc_32、rc_64、rc_128是数据。 

group下面还可以创建group,dataset,是嵌套的,创建group就像创建目录一样;创建dataset就像在目录下写入有具体名字的数据一样。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论