[英]Read in HDF5 dataset as fast as possible
我需要尽可能快地从磁盘到内存读取非常大的H5文件。
我目前正在尝试通过多处理库使用多个线程来读取它,但是我不断收到与无法同时读取H5文件这一事实有关的错误。
这是一个小片段,展示了我采用的方法:
import multiprocessing
import h5py
import numpy
f = h5py.File('/path/to/dataset.h5', 'r')
data = f['/Internal/Path/Dataset'] # this is just to get how big axis 0 is
dataset = numpy.zeros((300, 720, 1280)) # what to read the data into
def process_wrapper(frameCounter):
dataset[frameCounter] = f['/Internal/Path/Dataset']
#init objects
cores = multiprocessing.cpu_count()
pool = multiprocessing.Pool(cores)
jobs = []
#create jobs
frameCounter = 0
for frame in range(0, data.shape[0]): # iterate through axis 0 of data
jobs.append( pool.apply_async(process_wrapper,([frameCounter])) )
frameCounter += 1
#wait for all jobs to finish
for job in jobs:
job.get()
#clean up
pool.close()
我正在寻找一种允许我在H5文件上使用多个阅读器的解决方法,或者是一种仍然可以使我更快地读取它的不同方法。 谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.