%pip install h5py
Collecting h5py
  Downloading h5py-3.11.0-cp39-cp39-macosx_10_9_x86_64.whl (3.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 10.3 MB/s eta 0:00:0000:010:01
Requirement already satisfied: numpy>=1.17.3 in /Users/joregan/opt/anaconda3/envs/hf/lib/python3.9/site-packages (from h5py) (1.23.4)
Installing collected packages: h5py
Successfully installed h5py-3.11.0
Note: you may need to restart the kernel to use updated packages.
import h5py as h5
from __future__ import print_function

def scan_hdf5(path, recursive=True, tab_step=2):
    def scan_node(g, tabs=0):
        print(' ' * tabs, g.name)
        for k, v in g.items():
            if isinstance(v, h5.Dataset):
                print(' ' * tabs + ' ' * tab_step + ' -', v.name)
            elif isinstance(v, h5.Group) and recursive:
                scan_node(v, tabs=tabs + tab_step)
    with h5.File(path, 'r') as f:
        scan_node(f)
scan_hdf5("/Users/joregan/Playing/voice_pipe/SingleSpeakerModel.h5")
 /
   /model_weights
     /model_weights/bidirectional_2
       /model_weights/bidirectional_2/bidirectional_2_2
         /model_weights/bidirectional_2/bidirectional_2_2/backward_lstm_2
           - /model_weights/bidirectional_2/bidirectional_2_2/backward_lstm_2/bias:0
           - /model_weights/bidirectional_2/bidirectional_2_2/backward_lstm_2/kernel:0
           - /model_weights/bidirectional_2/bidirectional_2_2/backward_lstm_2/recurrent_kernel:0
         /model_weights/bidirectional_2/bidirectional_2_2/forward_lstm_2
           - /model_weights/bidirectional_2/bidirectional_2_2/forward_lstm_2/bias:0
           - /model_weights/bidirectional_2/bidirectional_2_2/forward_lstm_2/kernel:0
           - /model_weights/bidirectional_2/bidirectional_2_2/forward_lstm_2/recurrent_kernel:0
     /model_weights/time_distributed_24
       /model_weights/time_distributed_24/time_distributed_24_2
         - /model_weights/time_distributed_24/time_distributed_24_2/bias:0
         - /model_weights/time_distributed_24/time_distributed_24_2/kernel:0
     /model_weights/time_distributed_25
       /model_weights/time_distributed_25/time_distributed_25_2
         - /model_weights/time_distributed_25/time_distributed_25_2/beta:0
         - /model_weights/time_distributed_25/time_distributed_25_2/gamma:0
         - /model_weights/time_distributed_25/time_distributed_25_2/moving_mean:0
         - /model_weights/time_distributed_25/time_distributed_25_2/moving_variance:0
     /model_weights/time_distributed_26
     /model_weights/time_distributed_27
       /model_weights/time_distributed_27/time_distributed_27_2
         - /model_weights/time_distributed_27/time_distributed_27_2/bias:0
         - /model_weights/time_distributed_27/time_distributed_27_2/kernel:0
     /model_weights/time_distributed_28
       /model_weights/time_distributed_28/time_distributed_28_2
         - /model_weights/time_distributed_28/time_distributed_28_2/beta:0
         - /model_weights/time_distributed_28/time_distributed_28_2/gamma:0
         - /model_weights/time_distributed_28/time_distributed_28_2/moving_mean:0
         - /model_weights/time_distributed_28/time_distributed_28_2/moving_variance:0
     /model_weights/time_distributed_29
     /model_weights/time_distributed_30
     /model_weights/time_distributed_31
       /model_weights/time_distributed_31/time_distributed_31_2
         - /model_weights/time_distributed_31/time_distributed_31_2/bias:0
         - /model_weights/time_distributed_31/time_distributed_31_2/kernel:0
   /optimizer_weights
     /optimizer_weights/Adadelta_2
       - /optimizer_weights/Adadelta_2/iterations:0
     /optimizer_weights/training_2
       /optimizer_weights/training_2/Adadelta
         - /optimizer_weights/training_2/Adadelta/accumulator_0_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_10_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_11_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_12_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_13_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_14_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_15_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_1_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_2_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_3_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_4_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_5_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_6_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_7_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_8_1:0
         - /optimizer_weights/training_2/Adadelta/accumulator_9_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_0_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_10_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_11_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_12_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_13_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_14_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_15_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_1_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_2_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_3_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_4_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_5_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_6_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_7_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_8_1:0
         - /optimizer_weights/training_2/Adadelta/delta_accumulator_9_1:0