Я получаю следующую ошибку при записи большого набора данных размером 256x256 (тип данных uint8) по частям в файл .h5 из Matlab:
HDF5: infinite loop closing library
D,S,T,D,S,F,D,S,F,FD,P,FD,P,FD,P,E,E,SL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL,FL
Я использую функцию Matlab h5write (), например:
if(batchIdx == batchSize)
h5write(fn,'/trainingset',uint8(xCorrupted_temp),[1 1 currCountTr+1],[256 256 batchSize]);
h5write(fn,'/targetsTraining',uint8(x_tg_temp),[1 1 currCountTr+1],[256 256 batchSize]);
currCountTr=currCountTr+batchSize;
batchIdx=0;
end
Для меньшего набора данных все прошло нормально. Но теперь он записывает некоторые данные примерно до 60 тыс. Изображений, и затем я получаю сообщение об ошибке.
(данные временно сохраняются в xCorrupted_temp и x_tg_temp до размера пакета, а затем записываются в файл h5). У меня есть партии по 30 Кб, я также пробовал партии по 1 и другие, но всегда есть ошибки, поскольку набор данных вырос с 150 К до 500 К *. 1009 *
PS Я не могу показать полный код по соображениям конфиденциальности.