def __init__(self, feature_ndims, dtype=None, name=None):
if not (isinstance(feature_ndims, int) and feature_ndims > <NUM_LIT:0>):<EOL><INDENT>raise ValueError(<EOL>'<STR_LIT>' +<EOL>'<STR_LIT>'.format(feature_ndims))<EOL><DEDENT>self._feature_ndims = feature_ndims<EOL>self._dtype = dtype<EOL>if not name or name[-<NUM_LIT:1>] != '<STR_LIT:/>':  <EOL><INDENT>name = tf.compat.v1.name_scope(name or type(self).__name__).name<EOL><DEDENT>self._name = name<EOL>
Construct a PositiveSemidefiniteKernel (subclass) instance.

        Args:
          feature_ndims: Python `integer` indicating the number of dims (the rank)
            of the feature space this kernel acts on.
          dtype: `DType` on which this kernel operates.
          name: Python `str` name prefixed to Ops created by this class. Default:
            subclass name.

        Raises:
          ValueError: if `feature_ndims` is not an integer greater than 0
        Inputs to PositiveSemidefiniteKernel methods partition into 3 pieces:

        ```none
        [b1, ..., bB, e, f1, ..., fF]
        '----------'  |  '---------'
             |        |       '-- Feature dimensions
             |        '-- Example dimension (`matrix`-only)
             '-- Batch dimensions
        ```

        The `feature_ndims` argument declares how many of the right-most shape
        dimensions belong to the feature dimensions. This enables us to predict
        which shape dimensions will be 'reduced' away during kernel computation.