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生成指定长度的随机数密码
Jan 23 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
详解Python3.6安装psutil模块和功能简介
May 30 Python
Python 打印中文字符的三种方法
Aug 14 Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 Python
对pandas写入读取h5文件的方法详解
Dec 28 Python
基于python的ini配置文件操作工具类
Apr 24 Python
python中web框架的自定义创建
Sep 08 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
Python判断字符串是否为空和null方法实例
Apr 26 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
PHP提取中文首字母
2008/04/09 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
asp 取文本框名称代码
2008/12/02 Javascript
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
JavaScript知识点整理
2015/12/09 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
详解Python中如何写控制台进度条的整理
2018/03/07 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
python输出决策树图形的例子
2019/08/09 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
Pat McGrath Labs官网:世界上最有影响力的化妆师推出的彩妆品牌
2018/01/07 全球购物
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
优秀研究生自我鉴定
2013/12/04 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
广告创意求职信
2014/03/17 职场文书
老师对学生的评语
2014/04/18 职场文书
求职自我推荐信
2014/06/25 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书