Wednesday, July 3, 2024
HomeLanguagesPythonPython – tensorflow.GradientTape.gradient()

Python – tensorflow.GradientTape.gradient()

TensorFlow is open-source Python library designed by Google to develop Machine Learning models and deep learning  neural networks. 

gradient() is used to computes the gradient using operations recorded in context of this tape.

Syntax: gradient(target, sources, output_gradients, unconnected_gradients)

Parameters:

  • target: It is Tensor or list of Tensor to be differentiated.
  • sources: It is Tensor or list of Tensor. Target values are differentiated against the source.
  • output_gradients: It is a list of gradients with default value None.
  • unconnected_gradients: It’s value can be either none or zero with default value none.

Returns: It returns a list or nested structure of Tensor.

Example 1:

Python3




# Importing the library
import tensorflow as tf
  
x = tf.constant(4.0)
  
# Using GradientTape
with tf.GradientTape() as gfg:
  gfg.watch(x)
  y = x * x * x
  
# Computing gradient
res  = gfg.gradient(y, x) 
  
# Printing result
print("res: ",res)


Output:


res:  tf.Tensor(48.0, shape=(), dtype=float32)

Example 2:

Python3




# Importing the library
import tensorflow as tf
  
x = tf.constant(4.0)
  
# Using GradientTape
with tf.GradientTape() as gfg:
  gfg.watch(x)
  
  # Using nested GradientTape for 
  # calculating higher order derivative
  with tf.GradientTape() as gg:
    gg.watch(x)
    y = x * x * x
  
  # Computing first order gradient
  first_order = gg.gradient(y, x)
  
# Computing Second order gradient
second_order  = gfg.gradient(first_order, x) 
  
# Printing result
print("first_order: ",first_order)
print("second_order: ",second_order)


Output:


first_order:  tf.Tensor(48.0, shape=(), dtype=float32)
second_order:  tf.Tensor(24.0, shape=(), dtype=float32)

Shaida Kate Naidoo
am passionate about learning the latest technologies available to developers in either a Front End or Back End capacity. I enjoy creating applications that are well designed and responsive, in addition to being user friendly. I thrive in fast paced environments. With a diverse educational and work experience background, I excel at collaborating with teams both local and international. A versatile developer with interests in Software Development and Software Engineering. I consider myself to be adaptable and a self motivated learner. I am interested in new programming technologies, and continuous self improvement.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments