7
Ecco il mio codice:Come comprimere il file hdf5 durante il ridimensionamento?
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
Questo funziona bene e dandy. Tuttavia, con 1 file, la dimensione di hdf5 è 6,7 MB. Con 2 file il suo 37MB (dovrebbe essere 12 MB giusto?). Con 10 fino a 388 MB (dovrebbe essere 67 giusto?)
Così chiaramente aggiungendo il flag di compressione alla fine della 2a e la terza riga non funziona come previsto. Come posso ottenere qualcosa di simile?
hai controllato l'attributo 'compression' dei tuoi dataset prima e dopo averli ridimensionati? –
sì, continua a dire: gzip quando stampo dset_X.compression o dset_y.compression in ogni fase del ciclo – BigBoy1337
si può provare a salvare i dati su disco, e vedere cosa c'è dentro e se può essere nuovamente compresso con gzip. Se la dimensione è ridotta drasticamente, il tempo per un bug report al team hdf5. –