У меня есть файл hdf5 размером 80000 * 401408. Мне нужно читать из него данные партиями по 64, но индексы могут быть случайными (5, 0, 121, .., 2).
Проблема заключается в том, что, хотя изначально чтение достаточно последовательное, и для завершения пакета требуется, скажем, 0,5 секунды, через некоторое время некоторые пакеты занимают больше времени, до 10 секунд, в то время как некоторые пакеты все еще читаются быстро. Я заметил, что по мере того, как происходит все больше и больше чтений, процесс чтения замедляется.
hf = h5py.File( conv_file,'r')
conv_features = hf['conv_features']
while True:
conv_batch = [None for i in range(64)]
for i in range(0, 64):
conv_batch[count] = np.reshape(conv_features[some_random_index], [14, 14, 2048] )
# time for each of the above reads for conv_bacth is different.. varies from 0.5 to 5 seconds.. and slows down over time.
Я не использую куски
deep-learning
. Возможно, опубликуйте свой реальный код, а не только этот небольшой отрывок. - person Stefan Falk   schedule 03.10.2017h5py
'fancy-indexing' предупреждает, что производительность индексации может быть низкой. docs.h5py.org/en/latest/high/dataset. html#fancy-indexing. Помните, что файл на диске по своей сути является последовательным устройством, поэтому чтение из двух далеко разделенных «строк» требует больших файловыхseek
перемещений. - person hpaulj   schedule 03.10.2017