7
Hier ist mein Code:Wie komprimiere ich die hdf5-Datei beim Ändern der Größe?
n = 100000 #This is what makes it tricky - lots of files going into this hdf5 file
with h5py.File('image1.h5','w') as f:
dset_X = f.create_dataset('X',(1,960,224,224),maxshape=(None,960,224,224),chunks=True,compression='gzip')
dset_y = f.create_dataset('y',(1,112,224*224),maxshape=(None,112,224*224),chunks=True,compression='gzip')
n_images = 0
for fl in files[:n]:
X_chunk,y_chunk = get_arrays(fl)
dset_X.resize(n_images+1,axis=0)
dset_y.resize(n_images+1,axis=0)
print dset_X.shape,dset_y.shape
dset_X[n_images:n_images+1,:,:,:]=X_chunk
dset_y[n_images:n_images+1,:,:]=y_chunk
n_images+=1
Dieses schön und gut funktioniert. Bei einer Datei beträgt die Größe des HDF5 jedoch 6,7 MB. Mit 2 Dateien ist es 37MB (sollte 12 MB sein?). Mit 10 ist es bis zu 388MB (sollte 67 richtig sein?)
So eindeutig das Hinzufügen der Komprimierung Flag am Ende der zweiten und dritten Zeile funktioniert nicht wie vorgesehen. Wie kann ich so etwas erreichen?
Haben Sie das Attribut 'Komprimierung' Ihrer Datensätze vor und nach der Größenanpassung überprüft? –
Ja, es sagt weiter: gzip, wenn ich dset_X.compression oder dset_y.compression bei jedem Schritt in der Schleife – BigBoy1337
drücke, könnten Sie versuchen, die Daten auf der Festplatte zu speichern und zu sehen, was darin ist, und ob sie erneut komprimiert werden kann gzip. Wenn die Größe drastisch reduziert wird, wird die Zeit für einen Fehler an das hdf5-Team gemeldet. –