tf.math.polyval

TensorFlow 1 version View source on GitHub

Computes the elementwise value of a polynomial.

tf.math.polyval(
    coeffs, x, name=None
)

If x is a tensor and coeffs is a list n + 1 tensors, this function returns the value of the n-th order polynomial

p(x) = coeffs[n-1] + coeffs[n-2] * x + ... + coeffs[0] * x**(n-1)

evaluated using Horner's method, i.e.

p(x) = coeffs[n-1] + x * (coeffs[n-2] + ... + x * (coeffs[1] + x * coeffs[0]))

Usage Example:

coefficients = [1.0, 2.5, -4.2] 
x = 5.0 
y = tf.math.polyval(coefficients, x) 
y 
<tf.Tensor: shape=(), dtype=float32, numpy=33.3> 

Usage Example:

tf.math.polyval([2, 1, 0], 3) # evaluates 2 * (3**2) + 1 * (3**1) + 0 * (3**0) 
<tf.Tensor: shape=(), dtype=int32, numpy=21> 

tf.math.polyval can also be used in polynomial regression. Taking advantage of this function can facilitate writing a polynomial equation as compared to explicitly writing it out, especially for higher degree polynomials.

x = tf.constant(3) 
theta1 = tf.Variable(2) 
theta2 = tf.Variable(1) 
theta3 = tf.Variable(0) 
tf.math.polyval([theta1, theta2, theta3], x) 
<tf.Tensor: shape=(), dtype=int32, numpy=21> 

Args:

  • coeffs: A list of Tensor representing the coefficients of the polynomial.
  • x: A Tensor representing the variable of the polynomial.
  • name: A name for the operation (optional).

Returns:

A tensor of the shape as the expression p(x) with usual broadcasting rules for element-wise addition and multiplication applied.

Numpy Compatibility

Equivalent to numpy.polyval.