生成数据集
h5py.File
打开文件h5py.create_dataset
生成数据集
f = h5py.File('mydatasets2.h5', mode='w')
path = r'D:\\desktop\\壁纸\\*.jpg'
fnames = glob.glob(path)
pics = []
for fname in fnames:
pic = plt.imread(fname)
pic = resize(pic, output_shape=(1080, 1920), preserve_range=True).astype('uint8')
pics.append(pic)
%time f.create_dataset('/pics', data=pics, compression='gzip', compression_opts=9, chunks=True)
f.flush()
f.close()
output:
Wall time: 2.79 s
需要注意的是:
- 存储在同一个datasets中的图片大小要一致,这里我把图片都resize到了同一个大小。
- 储存的type决定了h5文件的大小,并且这里我使用了压缩。在resize函数中,如果没有将preserve_range置为True,则输出的图片将会是浮点数,导致h5文件会非常大。
计算前后数据量的变化
import os
pic_size=0.
for fname in fnames:
pic_size+=os.path.getsize(fname)
print('pictures size:{:.3f} MB'.format(pic_size/1024**2))
h5_size=os.path.getsize('mydatasets2.h5')
print('h5 size:{:.3f} MB'.format(h5_size/1024**2))
output:
pictures size:7.579 MB
h5 size:9.691 MB