Shirish Ranade
Shirish Ranade

Reputation: 98

How do I read a 'family' of h5 files using python?

These are files in the file system as:

vgg16_weights_tf_dim_ordering_tf_kernels_0.h5
vgg16_weights_tf_dim_ordering_tf_kernels_1.h5
vgg16_weights_tf_dim_ordering_tf_kernels_2.h5
vgg16_weights_tf_dim_ordering_tf_kernels_3.h5
vgg16_weights_tf_dim_ordering_tf_kernels_4.h5
vgg16_weights_tf_dim_ordering_tf_kernels_5.h5

an attempt to open 'vgg16_weights_tf_dim_ordering_tf_kernels_0.h5' causes an error that suggests Family driver should be used

opening with

f = h5py.File('../input/keras-models/vgg16_weights_tf_dim_ordering_tf_kernels_0.h5','r', driver='family')

causes error "file name not unique"

opening with

f = h5py.File('../input/keras-models/vgg16_weights_tf_dim_ordering_tf_kernels_%d.h5','r', driver='family')

causes error "Unable to open file (Family member size should be 102400000. but the size from file access property is 2147483647)"

Upvotes: 2

Views: 524

Answers (1)

Shirish Ranade
Shirish Ranade

Reputation: 98

After some research I found the right way of opening a family of files as:

h5py.File('../input/keras-models/vgg16_weights_tf_dim_ordering_tf_kernels_%d.h5','r', driver='family', memb_size=102400000)

The default memb_size is 2**31-1 (i.e. 2147483647). If file family is written with member size specified as 102400000, one should also open it with the same.

Upvotes: 3

Related Questions