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的三目运算符和not in运算符使用示例
Mar 03 Python
python操作MySQL 模拟简单银行转账操作
Sep 27 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
Jun 21 Python
Python3中详解fabfile的编写
Jun 24 Python
django celery redis使用具体实践
Apr 08 Python
如何通过python画loss曲线的方法
Jun 26 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
python打印异常信息的两种实现方式
Dec 24 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python 基于pygame实现俄罗斯方块
Mar 02 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写杨辉三角实例代码
2011/07/17 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
2013/09/28 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
jQuery的slideToggle方法实例
2013/05/07 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
Python 迭代器与生成器实例详解
2017/05/18 Python
详解Python自建logging模块
2018/01/29 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
python线程池threadpool实现篇
2018/04/27 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
django 控制页面跳转的例子
2019/08/06 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
Python实现自动整理文件的脚本
2020/12/17 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
安全教育实施方案
2014/03/02 职场文书
我的小天地教学反思
2014/04/30 职场文书
售房协议书
2014/08/19 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang