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 相关文章推荐
Python中使用Beautiful Soup库的超详细教程
Apr 30 Python
浅谈python中set使用
Jun 30 Python
详解python的几种标准输出重定向方式
Aug 15 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
linux环境下Django的安装配置详解
Jul 22 Python
Python 私有化操作实例分析
Nov 21 Python
python分别打包出32位和64位应用程序
Feb 18 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 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
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
Python中logging模块的用法实例
2014/09/29 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
亿企通软件测试面试题
2012/04/10 面试题
车间统计员岗位职责
2014/01/05 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
婚庆公司的创业计划书
2014/01/22 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python