class_docstr: Polynomial Kernel.
  
  Is based on the dot product covariance function and can be obtained
  from polynomial regression. This kernel, when parameterizing a
  Gaussian Process, results in random polynomial functions.
  A linear kernel can be created from this by setting the exponent to 1
  or None.
  
  ```none
  k(x, y) = bias_amplitude**2 + slope_amplitude**2 *
            ((x - shift) dot (y - shift))**exponent
  ```
  
  #### References
  
  [1]: Carl Edward Rasmussen and Christopher K. I. Williams. Gaussian
       Processes for Machine Learning. Section 4.4.2. 2006.
       http://www.gaussianprocess.org/gpml/chapters/RW4.pdf
  [2]: David Duvenaud. The Kernel Cookbook.
       https://www.cs.toronto.edu/~duvenaud/cookbook/
class_docstr_tok: ["Polynomial","Kernel",".","Is","based","on","the","dot","product","covariance","function","and","can","be","obtained","from","polynomial","regression",".","This","kernel",",","when","parameterizing","a","Gaussian","Process",",","results","in","random","polynomial","functions",".","A","linear","kernel","can","be","created","from","this","by","setting","the","exponent","to","1","or","None",".","``","`","none","k","(","x",",","y",")","=","bias_amplitude","*","*","2","+","slope_amplitude","*","*","2","*","(","(","x","-","shift",")","dot","(","y","-","shift",")",")","*","*","exponent","``","`","#","#","#","#","References","[","1","]",":","Carl","Edward","Rasmussen","and","Christopher","K.","I.","Williams",".","Gaussian","Processes","for","Machine","Learning",".","Section","4.4.2",".","2006.","http",":","\/\/www.gaussianprocess.org\/gpml\/chapters\/RW4.pdf","[","2","]",":","David","Duvenaud",".","The","Kernel","Cookbook",".","https",":","\/\/www.cs.toronto.edu\/~duvenaud\/cookbook\/"]
docstr: Construct a Polynomial kernel instance.
  
  Args:
    bias_amplitude: Non-negative floating point `Tensor` that controls the
      stddev from the origin. If bias = 0, there is no stddev and the
      fitted function goes through the origin.  Must be broadcastable with
      `slope_amplitude`, `shift`, `exponent`, and inputs to `apply` and
      `matrix` methods. A value of `None` is treated like 0.
      Default Value: `None`
    slope_amplitude: Non-negative floating point `Tensor` that controls the
      stddev of the regression line slope that is the basis for the
      polynomial. Must be broadcastable with `bias_amplitude`, `shift`,
      `exponent`, and inputs to `apply` and `matrix` methods. A value of
      `None` is treated like 1.
      Default Value: `None`
    shift: Floating point `Tensor` that contols the intercept with the x-axis
      of the linear function to be exponentiated to get this polynomial. Must
      be broadcastable with `bias_amplitude`, `slope_amplitude`, `exponent`
      and inputs to `apply` and `matrix` methods. A value of `None` is treated
      like 0, which results in having the intercept at the origin.
      Default Value: `None`
    exponent: Positive floating point `Tensor` that controls the exponent
      (also known as the degree) of the polynomial function, and must be an
      integer.
      Must be broadcastable with `bias_amplitude`, `slope_amplitude`, `shift`,
      and inputs to `apply` and `matrix` methods. A value of `None` is treated
      like 1, which results in a linear kernel.
      Default Value: `None`
    feature_ndims: Python `int` number of rightmost dims to include in kernel
      computation.
      Default Value: 1
    validate_args: If `True`, parameters are checked for validity despite
      possibly degrading runtime performance.
      Default Value: `False`
    parameters: For subclasses, a dict of constructor arguments.
    name: Python `str` name prefixed to Ops created by this class.
      Default Value: `'Polynomial'`
docstr_tok: ["Construct","a","Polynomial","kernel","instance",".","Args",":","bias_amplitude",":","Non-negative","floating","point","`","Tensor","`","that","controls","the","stddev","from","the","origin",".","If","bias","=","0",",","there","is","no","stddev","and","the","fitted","function","goes","through","the","origin",".","Must","be","broadcastable","with","`","slope_amplitude","`",",","`","shift","`",",","`","exponent","`",",","and","inputs","to","`","apply","`","and","`","matrix","`","methods",".","A","value","of","`","None","`","is","treated","like","0",".","Default","Value",":","`","None","`","slope_amplitude",":","Non-negative","floating","point","`","Tensor","`","that","controls","the","stddev","of","the","regression","line","slope","that","is","the","basis","for","the","polynomial",".","Must","be","broadcastable","with","`","bias_amplitude","`",",","`","shift","`",",","`","exponent","`",",","and","inputs","to","`","apply","`","and","`","matrix","`","methods",".","A","value","of","`","None","`","is","treated","like","1",".","Default","Value",":","`","None","`","shift",":","Floating","point","`","Tensor","`","that","contols","the","intercept","with","the","x-axis","of","the","linear","function","to","be","exponentiated","to","get","this","polynomial",".","Must","be","broadcastable","with","`","bias_amplitude","`",",","`","slope_amplitude","`",",","`","exponent","`","and","inputs","to","`","apply","`","and","`","matrix","`","methods",".","A","value","of","`","None","`","is","treated","like","0",",","which","results","in","having","the","intercept","at","the","origin",".","Default","Value",":","`","None","`","exponent",":","Positive","floating","point","`","Tensor","`","that","controls","the","exponent","(","also","known","as","the","degree",")","of","the","polynomial","function",",","and","must","be","an","integer",".","Must","be","broadcastable","with","`","bias_amplitude","`",",","`","slope_amplitude","`",",","`","shift","`",",","and","inputs","to","`","apply","`","and","`","matrix","`","methods",".","A","value","of","`","None","`","is","treated","like","1",",","which","results","in","a","linear","kernel",".","Default","Value",":","`","None","`","feature_ndims",":","Python","`","int","`","number","of","rightmost","dims","to","include","in","kernel","computation",".","Default","Value",":","1","validate_args",":","If","`","True","`",",","parameters","are","checked","for","validity","despite","possibly","degrading","runtime","performance",".","Default","Value",":","`","False","`","parameters",":","For","subclasses",",","a","dict","of","constructor","arguments",".","name",":","Python","`","str","`","name","prefixed","to","Ops","created","by","this","class",".","Default","Value",":","`","'Polynomial","'","`"]
code: def __init__(
      self,
      bias_amplitude=None,
      slope_amplitude=None,
      shift=None,
      exponent=None,
      feature_ndims=1,
      validate_args=False,
      parameters=None,
      name="Polynomial",
  ):
      """Construct a Polynomial kernel instance.
  
      Args:
        bias_amplitude: Non-negative floating point `Tensor` that controls the
          stddev from the origin. If bias = 0, there is no stddev and the
          fitted function goes through the origin.  Must be broadcastable with
          `slope_amplitude`, `shift`, `exponent`, and inputs to `apply` and
          `matrix` methods. A value of `None` is treated like 0.
          Default Value: `None`
        slope_amplitude: Non-negative floating point `Tensor` that controls the
          stddev of the regression line slope that is the basis for the
          polynomial. Must be broadcastable with `bias_amplitude`, `shift`,
          `exponent`, and inputs to `apply` and `matrix` methods. A value of
          `None` is treated like 1.
          Default Value: `None`
        shift: Floating point `Tensor` that contols the intercept with the x-axis
          of the linear function to be exponentiated to get this polynomial. Must
          be broadcastable with `bias_amplitude`, `slope_amplitude`, `exponent`
          and inputs to `apply` and `matrix` methods. A value of `None` is treated
          like 0, which results in having the intercept at the origin.
          Default Value: `None`
        exponent: Positive floating point `Tensor` that controls the exponent
          (also known as the degree) of the polynomial function, and must be an
          integer.
          Must be broadcastable with `bias_amplitude`, `slope_amplitude`, `shift`,
          and inputs to `apply` and `matrix` methods. A value of `None` is treated
          like 1, which results in a linear kernel.
          Default Value: `None`
        feature_ndims: Python `int` number of rightmost dims to include in kernel
          computation.
          Default Value: 1
        validate_args: If `True`, parameters are checked for validity despite
          possibly degrading runtime performance.
          Default Value: `False`
        parameters: For subclasses, a dict of constructor arguments.
        name: Python `str` name prefixed to Ops created by this class.
          Default Value: `'Polynomial'`
      """
      parameters = dict(locals()) if parameters is None else parameters
      with tf.name_scope(name):
          dtype = util.maybe_get_common_dtype(
              [bias_amplitude, slope_amplitude, shift, exponent]
          )
          self._bias_amplitude = tensor_util.convert_nonref_to_tensor(
              bias_amplitude, name="bias_amplitude", dtype=dtype
          )
          self._slope_amplitude = tensor_util.convert_nonref_to_tensor(
              slope_amplitude, name="slope_amplitude", dtype=dtype
          )
          self._shift = tensor_util.convert_nonref_to_tensor(
              shift, name="shift", dtype=dtype
          )
          self._exponent = tensor_util.convert_nonref_to_tensor(
              exponent, name="exponent", dtype=dtype
          )
          super(Polynomial, self).__init__(
              feature_ndims,
              dtype=dtype,
              name=name,
              validate_args=validate_args,
              parameters=parameters,
          )
  
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.math.psd_kernels import positive_semidefinite_kernel
  from tensorflow_probability.python.math.psd_kernels.internal import util
label_desc: Use image node_id 1 to create a new Polynomial object from inherited base classes: psd_kernel with example: obj = Polynomial(bias_amplitude, slope_amplitude, shift, exponent, feature_ndims, validate_args, parameters, name)