    def _get_kind_name(param_type, is_list):
        """Returns the field name given parameter type and is_list.

        Args:
          param_type: Data type of the hparam.
          is_list: Whether this is a list.

        Returns:
          A string representation of the field name.

        Raises:
          ValueError: If parameter type is not recognized.
        """
        if issubclass(param_type, bool):
            # This check must happen before issubclass(param_type, six.integer_types),
            # since Python considers bool to be a subclass of int.
            typename = "bool"
        elif issubclass(param_type, six.integer_types):
            # Setting 'int' and 'long' types to be 'int64' to ensure the type is
            # compatible with both Python2 and Python3.
            typename = "int64"
        elif issubclass(param_type, (six.string_types, six.binary_type)):
            # Setting 'string' and 'bytes' types to be 'bytes' to ensure the type is
            # compatible with both Python2 and Python3.
            typename = "bytes"
        elif issubclass(param_type, float):
            typename = "float"
        else:
            raise ValueError("Unsupported parameter type: %s" % str(param_type))

        suffix = "list" if is_list else "value"
        return "_".join([typename, suffix])
Returns the field name given parameter type and is_list.

Args:
param_type: Data type of the hparam.
is_list: Whether this is a list.

Returns:
A string representation of the field name.

Raises:
ValueError: If parameter type is not recognized.
utils/hparam.py