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博客。

tensorflow with求导_tensorflow求导和梯度计算实例相关推荐

  1. tensorflow with求导_TensorFlow - 求导

    从函数开始说明TensorFlow是如何求导的 flyfish 函数 定义域是关于输入的 上域是关于输出的 值域实际上是上域的一个子集 上域是可能输出的集合 值域则是实际输出的集合. [a, b] 这 ...

  2. 深度学习框架 TensorFlow:张量、自动求导机制、tf.keras模块(Model、layers、losses、optimizer、metrics)、多层感知机(即多层全连接神经网络 MLP)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 安装 TensorFlow2.CUDA10.cuDNN7.6. ...

  3. 5.2 matlab多项式计算(多项式的四则运算、求导、求值、求根)

    1.多项式的表示 在MATLAB中创建多项式向量时,注意三点: (1)多项式系数向量的顺序是从高到低. (2)多项式系数向量包含0次项系数,所以其长度为多项式最高次数加1. (3)如果有的项没有,系数 ...

  4. 二阶矩阵转置怎么求_矩阵求导术(下)

    本文承接上篇 https://zhuanlan.zhihu.com/p/24709748,来讲矩阵对矩阵的求导术.使用小写字母x表示标量,粗体小写字母 表示列向量,大写字母X表示矩阵.矩阵对矩阵的求导 ...

  5. luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)

    luogu P4725 多项式对数函数 (模板题.FFT.多项式求逆.求导和积分) 手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/s ...

  6. python求函数一二阶导_python:利用多种方式解微分方程(以二阶微分系统零状态响应为例)...

    1.问题:求系统的零状态响应 image.png 2.引入 首先用高数知识求解非齐次常系数微分方程 image.png 再利用信号与系统中冲激响应求解验证 image.png 利用MATLAB求解验证 ...

  7. MATLAB新手简明使用教程(七)——使用matlab建立多项式以及求导,商求导乘积求导等——新手来看,保证看懂。

    前期回顾 上一期中,我们学了下面的知识: 定积分的基本概念和一些简单的几何意义. 使用 int 函数计算不定积分. 使用 int 函数计算定积分. 本期内容 本期我打算给大家介绍一下使用matlab对 ...

  8. 函数求导及求微分的基本公式

    函数求导及求微分的基本公式

  9. 机器学习-算法-有监督学习:EM(最大期望值算法)<=> MLE(最大似然估计法)【关系类似“梯度下降法”<=>“直接求导法”】【EM“梯度下降”:先初始化一个随机值,然后通过迭代不断靠近真实值】

    机器学习-算法-有监督学习:EM(最大期望值算法)<=> MLE(最大似然估计法)[关系类似"梯度下降法"<=>"直接求导法"][EM& ...

最新文章

  1. 20159208 《网络攻防实践》第七周学习总结
  2. java 申请不定长度数组_java中申请不定长度数组ArrayList的方法
  3. 影响数百万人的21个经典全英文演讲,看完英语水平暴增!赶紧收藏
  4. arduino编程时加{}报错_使用Arduino开发板时最常见的10个错误
  5. C# Object与二进制串(byte数组)之间的转换
  6. SOAP(Simple Object Access Protocol )简单对象访问协议
  7. mysql根据行数排序_mysql指定某行或者某列的排序
  8. 2019写给对象的话_数组方法写给女友的一系列 JS 数组操作(建议收藏 | 内附思维导图)...
  9. c语言编程运行符号是什么,c语言编程用的符号有哪些
  10. 总结:服务网格(Service Mesh)
  11. android 得到屏幕尺寸 状态栏尺寸 标题栏尺寸
  12. ZiSync:跨平台局域网自同步工具
  13. 了解人脸识别和二维码识别
  14. 小知识:Access端口和Trunk端口
  15. C语言文字简单加密程序的实现
  16. 用户界面设计应该用那些软件?
  17. python历史波动率_【BSM模型】用实际市场数据计算隐含波动率并验证波动率微笑...
  18. 虚拟机ubuntu系统鼠标移动消失
  19. Oracle数据库 | SQL语句解析
  20. EasyUi DataGrid打印问题处理

热门文章

  1. android 充电模式deamon_Android Lint工作原理剖析
  2. LOJ——#6277. 数列分块入门 1
  3. Crazy Defense Heroes 如何冲入 GameFi 前 4?
  4. 平板触控笔哪种好?主动式电容笔推荐
  5. 前端实现聊天对话框页面
  6. NCE开放可编程培训交流
  7. 赶紧自查这个插件!黑客可能远程控制你的谷歌浏览器
  8. 二十世纪最“反直觉”的伟大生物学发现:化学渗透(chemiosmosis)
  9. jQuery——02
  10. arduino智能门锁应用