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中使用中文的方法
Feb 19 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
Python requests库用法实例详解
Aug 14 Python
python 3.7.0 下pillow安装方法
Aug 27 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
python利用7z批量解压rar的实现
Aug 07 Python
Pytorch to(device)用法
Jan 08 Python
python爬虫scrapy图书分类实例讲解
Nov 23 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中OR与|| AND与&&的区别总结
2013/10/26 PHP
php 可变函数使用小结
2018/06/12 PHP
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
[51:11]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS DT
2014/05/22 DOTA
python3生成随机数实例
2014/10/20 Python
详解Python爬虫的基本写法
2016/01/08 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
专科文秘应届生求职信
2013/11/18 职场文书
创业大赛策划书
2014/03/01 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
经理任命书模板
2014/06/06 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
教育合作协议范本
2014/10/17 职场文书
《大禹治水》教学反思
2016/02/22 职场文书