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变量作用范围实例分析
Jul 07 Python
python实现发送邮件及附件功能
Mar 02 Python
对Python中数组的几种使用方法总结
Jun 28 Python
实例讲解Python爬取网页数据
Jul 08 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
python:接口间数据传递与调用方法
Dec 17 Python
django认证系统 Authentication使用详解
Jul 22 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
python判断正负数方式
Jun 03 Python
Python检测端口IP字符串是否合法
Jun 05 Python
python框架flask入门之环境搭建及开启调试
Jun 07 Python
django创建css文件夹的具体方法
Jul 31 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
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
PHP输出日历表代码实例
2015/03/27 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
php与js的区别是什么
2013/08/05 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
用Python实现一个简单的线程池
2015/04/07 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
python实现简单爬虫功能的示例
2016/10/24 Python
通过shell+python实现企业微信预警
2019/03/07 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
python标记语句块使用方法总结
2019/08/05 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
python支持多继承吗
2020/06/19 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
python如何调用php文件中的函数详解
2020/12/29 Python
英语硕士生求职简历的自我评价
2013/10/15 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
校本教研工作方案
2014/01/14 职场文书
生物学学生自我评价
2014/01/17 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
普通话演讲稿
2014/09/03 职场文书
2015年安全工作总结范文
2015/04/02 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python
Python实现照片卡通化
2021/12/06 Python