tensorflow求导和梯度计算实例


Posted in Python onJanuary 23, 2020

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 相关文章推荐
Cpy和Python的效率对比
Mar 20 Python
python学习入门细节知识点
Mar 29 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
由面试题加深对Django的认识理解
Jul 19 Python
如何使用python操作vmware
Jul 27 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
使用python如何删除同一文件夹下相似的图片
May 07 Python
Tensorflow的梯度异步更新示例
Jan 23 #Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 #Python
Tensorflow实现部分参数梯度更新操作
Jan 23 #Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 #Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 #Python
tensorflow 实现打印pb模型的所有节点
Jan 23 #Python
TensorFlow命名空间和TensorBoard图节点实例
Jan 23 #Python
You might like
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
Python Pandas 箱线图的实现
2019/07/23 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
Python配置文件处理的方法教程
2019/08/29 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
JAVA软件工程师测试题
2014/07/25 面试题
学生发电厂实习自我鉴定
2013/09/22 职场文书
党建工作经验交流材料
2014/05/25 职场文书
门店业绩提升方案
2014/06/08 职场文书
会计学毕业生求职信
2014/06/25 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
葬礼主持词
2015/07/02 职场文书
迎新年主持词
2015/07/06 职场文书
JavaScript实现优先级队列
2021/12/06 Javascript