code: def _h5_parameter_file_loader(ctx, file_loader, nnp, filename, ext):
      with get_file_handle_load(nnp, filename, ext) as hd:
          keys = []
  
          def _get_keys(name):
              ds = hd[name]
              if not isinstance(ds, h5py.Dataset):
                  # Group
                  return
              # To preserve order of parameters
              keys.append((ds.attrs.get("index", None), name))
  
          hd.visit(_get_keys)
          for _, key in sorted(keys):
              ds = hd[key]
  
              var = nn.parameter.get_parameter_or_create(
                  key, ds.shape, need_grad=ds.attrs["need_grad"]
              )
              var.data.cast(ds.dtype)[...] = ds[...]
  
              if hasattr(ctx, "needs_proto") and ctx.needs_proto:
                  parameter = ctx.proto.parameter.add()
                  parameter.variable_name = key
                  parameter.shape.dim.extend(ds.shape)
                  parameter.data.extend(
                      numpy.array(ds[...]).flatten().tolist()
                  )
                  parameter.need_grad = False
                  if ds.attrs["need_grad"]:
                      parameter.need_grad = True
  
imports: import contextlib
  import io
  import os
  import re
  import zipfile
  from collections import OrderedDict
  from functools import partial
  import google.protobuf.text_format
  import h5py
  import nnabla
  import numpy
  from nnabla.logger import logger
  from nnabla.utils import nnabla_pb2
  from nnabla.utils.nnp_format import nnp_version
label_desc: Use image node_id 10 for calling a global function with example usage: _h5_parameter_file_loader(ctx, file_loader, nnp, filename, ext) without return types