class_docstr: Deserializer for HDF5 format.
  
  This is the standard deserializer in Chainer. This deserializer can be used
  to read an object serialized by :class:`HDF5Serializer`.
  
  Args:
      group (h5py.Group): The group that the deserialization starts from.
      strict (bool): If ``True``, the deserializer raises an error when an
          expected value is not found in the given HDF5 file. Otherwise,
          it ignores the value and skip deserialization.
code: def __call__(self, key, value):
      if self.group is None:
          if not self.strict:
              return value
          else:
              raise ValueError("Inexistent group is specified")
      if not self.strict and key not in self.group:
          return value
  
      dataset = self.group[key]
      if dataset.shape is None:  # Empty
          return None
      if value is None:
          return numpy.asarray(dataset)
      if isinstance(value, chainerx.ndarray):
          value[...] = _chainerx._array_to_chainerx(
              numpy.asarray(dataset), value.device
          )
      elif isinstance(value, numpy.ndarray):
          dataset.read_direct(value)
      elif isinstance(value, cuda.ndarray):
          value.set(numpy.asarray(dataset, dtype=value.dtype))
      elif isinstance(value, intel64.mdarray):
          intel64.ideep.basic_copyto(value, numpy.asarray(dataset))
      else:
          value = type(value)(numpy.asarray(dataset))
      return value
  
imports: import sys
  import numpy
  import six
  from chainer.backends import _chainerx
  from chainer.backends import _cpu
  from chainer.backends import cuda
  from chainer.backends import intel64
  from chainer import serializer
  import chainerx
label_desc: Use image node_id 3 for calling the HDF5Deserializer obj's underlying member method code with example usage: obj.__call__(key, value) and returns: value, value, None, numpy, value