tensorflow求导和梯度计算实例

 更新时间:2020年01月23日 18:19:12   作者:大雄没有叮当猫  
今天小编就为大家分享一篇tensorflow求导和梯度计算实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1. 函数求一阶导

import tensorflow as tf
tf.enable_eager_execution()
tfe=tf.contrib.eager
from math import pi
def f(x):
  return tf.square(tf.sin(x))
assert f(pi/2).numpy()==1.0
sess=tf.Session()
grad_f=tfe.gradients_function(f)
print(grad_f(np.zeros(1))[0].numpy())

2. 高阶函数求导

import numpy as np
def f(x):
  return tf.square(tf.sin(x))
 
def grad(f):
  return lambda x:tfe.gradients_function(f)(x)[0]
 
x=tf.lin_space(-2*pi,2*pi,100)
# print(grad(f)(x).numpy())
x=x.numpy()
import matplotlib.pyplot as plt
plt.plot(x,f(x).numpy(),label="f")
plt.plot(x,grad(f)(x).numpy(),label="first derivative")#一阶导
plt.plot(x,grad(grad(f))(x).numpy(),label="second derivative")#二阶导
plt.plot(x,grad(grad(grad(f)))(x).numpy(),label="third derivative")#三阶导
plt.legend()
plt.show()
 

def f(x,y):
  output=1
  for i in range(int(y)):
    output=tf.multiply(output,x)
  return output
 
def g(x,y):
  return tfe.gradients_function(f)(x,y)[0]
 
print(f(3.0,2).numpy()) #f(x)=x^2
print(g(3.0,2).numpy()) #f'(x)=2*x
print(f(4.0,3).numpy())#f(x)=x^3
print(g(4.0,3).numpy())#f(x)=3x^2

3. 函数求一阶偏导

x=tf.ones((2,2))
with tf.GradientTape(persistent=True) as t:
  t.watch(x)
  y=tf.reduce_sum(x)
  z=tf.multiply(y,y)
  
dz_dy=t.gradient(z,y)
print(dz_dy.numpy())
dz_dx=t.gradient(z,x)
print(dz_dx.numpy())
for i in [0, 1]:
 for j in [0, 1]:
  print(dz_dx[i][j].numpy() )

4. 函数求二阶偏导

x=tf.constant(2.0)
with tf.GradientTape() as t:
  with tf.GradientTape() as t2:
    t2.watch(x)
    y=x*x*x
  dy_dx=t2.gradient(y,x)
d2y_dx2=t.gradient(dy_dx,x)
 
print(dy_dx.numpy())
print(d2y_dx2.numpy())

以上这篇tensorflow求导和梯度计算实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python的help函数如何使用

    python的help函数如何使用

    在本篇文章里小编给大家整理的是关于python的help函数的相关用法和知识点总结,需要的朋友们可以学习下。
    2020-06-06
  • Python的Flask框架中Flask-Admin库的简单入门指引

    Python的Flask框架中Flask-Admin库的简单入门指引

    这篇文章主要介绍了一个Python的Flask框架中Flask-Admin库简单入门的指引,包括介绍和简单的部署等,需要的朋友可以参考下
    2015-04-04
  • Python视频处理之噪声矩阵与并行计算

    Python视频处理之噪声矩阵与并行计算

    这篇文章主要为大家详细介绍了Python视频处理中噪声矩阵与并行计算的完美融合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-01-01
  • python 装饰器详解与应用范例

    python 装饰器详解与应用范例

    装饰器是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic。大多数初学者不知道在哪儿使用它们,所以我将要分享下,哪些区域里装饰器可以让你的代码更简洁。 首先,让我们讨论下如何写你自己的装饰器
    2021-11-11
  • windows10下python3.5 pip3安装图文教程

    windows10下python3.5 pip3安装图文教程

    这篇文章主要为大家详细介绍了windows10下python3.5 pip3安装图文教程,注意区分python 2.x和python 3.x的相关命令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • django框架单表操作之增删改实例分析

    django框架单表操作之增删改实例分析

    这篇文章主要介绍了django框架单表操作之增删改,结合实例形式分析了Django框架前台数据操作提交与后台处理相关实现技巧,需要的朋友可以参考下
    2019-12-12
  • 基于Python开发PPT图片提取与合并工具

    基于Python开发PPT图片提取与合并工具

    在日常工作中,我们经常需要处理PPT中的图片,本文将介绍如何使用Python开发一个图形界面工具,实现PPT图片提取和九宫格合并功能,需要的可以参考下
    2024-12-12
  • python 根据网易云歌曲的ID 直接下载歌曲的实例

    python 根据网易云歌曲的ID 直接下载歌曲的实例

    今天小编就为大家分享一篇python 根据网易云歌曲的ID 直接下载歌曲的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python基础教程之if判断,while循环,循环嵌套

    Python基础教程之if判断,while循环,循环嵌套

    这篇文章主要介绍了Python基础教程之if判断,while循环,循环嵌套 的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Pandas中Series的创建及数据类型转换

    Pandas中Series的创建及数据类型转换

    这篇文章主要介绍了Pandas中Series的创建及数据类型转换,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论