Đây là mã của tôi:Làm thế nào để nén tập tin hdf5 khi thay đổi kích thước?
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
Điều này làm việc tốt và dandy. Tuy nhiên, với 1 tệp, kích thước của hdf5 là 6,7MB. Với 2 tập tin 37MB của nó (nên được 12 MB phải không?). Với 10 của nó tất cả các con đường lên đến 388MB (nên được 67 phải không?)
Vì vậy, rõ ràng thêm cờ nén vào cuối dòng thứ 2 và thứ ba không hoạt động như dự định. Làm thế nào tôi có thể đạt được một cái gì đó như thế này?
bạn đã kiểm tra thuộc tính 'nén' của bộ dữ liệu trước và sau khi bạn đổi kích thước chúng chưa? –
có, nó tiếp tục nói: gzip khi tôi in dset_X.compression hoặc dset_y.compression ở mỗi bước trong vòng lặp – BigBoy1337
bạn có thể thử lưu dữ liệu vào đĩa và xem nội dung trong đó và nếu nó có thể được nén lại bằng gzip. Nếu kích thước giảm đáng kể, thời gian cho một báo cáo lỗi cho nhóm hdf5. –