Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Tensorflow中二阶导数的和

Tensorflow中二阶导数的和
EN

Stack Overflow用户
提问于 2018-09-09 04:48:04
回答 1查看 967关注 0票数 2

我在Tensorflow中有一个函数,让我们在f中调用它,它在表单[None, N, M]上以张量x作为输入,并为每一行输出一个数字,也就是说,输出是一个张量,对于任意数目的行,它的形式是[None]

我想要计算拉普拉斯 of f,在我的例子中,这意味着我想要计算形状[None]的张量y,它的行是

我可以用我想要的方式得到一阶梯度。为了这个例子,假设我的代码如下所示:

代码语言:javascript
运行
AI代码解释
复制
import tensorflow as tf
x = tf.Variable([[[0.5, 1, 2], [3, 4, 5]]] , dtype=tf.float64)
y = tf.reduce_sum(x*x*x/3, axis=[1, 2])
grad = tf.gradients(y, x)[0]

如预期的那样

代码语言:javascript
运行
AI代码解释
复制
grad: [[[ 0.25  1.    4.  ]
        [ 9.   16.   25.  ]]]

我认为我现在可以在grad上做同样的操作来获得第二个订单:

代码语言:javascript
运行
AI代码解释
复制
lap = tf.gradients(grad, x)

但这给了

代码语言:javascript
运行
AI代码解释
复制
lap: [-117.125]

这和我所期望的完全不同。我会希望

代码语言:javascript
运行
AI代码解释
复制
lap: [[[ 1  2  4]
       [ 6  8 10]]]

或者仅仅是每一行的和,如下所示:

代码语言:javascript
运行
AI代码解释
复制
lap: [ 31 ]

显然,这并没有导致我想要什么,而且我有点困惑于如何解决它。有什么帮助吗?

我也尝试过tf.hessians,哪一种可以工作:

代码语言:javascript
运行
AI代码解释
复制
hess = tf.hessians(y, x)

这给

代码语言:javascript
运行
AI代码解释
复制
hess:
 [array([[[[[[ 1.,  0.,  0.],
             [ 0.,  0.,  0.]]],
           [[[ 0.,  2.,  0.],
             [ 0.,  0.,  0.]]],
           [[[ 0.,  0.,  4.],
             [ 0.,  0.,  0.]]]],

           [[[[ 0.,  0.,  0.],
              [ 6.,  0.,  0.]]],
            [[[ 0.,  0.,  0.],
              [ 0.,  8.,  0.]]],
            [[[ 0.,  0.,  0.],
              [ 0.,  0., 10.]]]]]])]

这里面有正确的数字,但这也计算了比我所需要的更多的导数,从这个混乱中找出数字似乎效率很低。

次要问题:我认为这个问题与返回“ysw.r.t.x在xs中的求和”的导数有关。我不需要求和的导数,所以我想我可能需要在tf.gradients的子切片上运行几次grad。但是,为什么上面的代码得到了完整的一阶梯度呢?据我所知,没有求和,因为我得到了我想要的所有导数。

Side注意到:如果x是形状为[None, N*M]的话,那么我可以重构其余的代码来处理这个问题。

EN

回答 1

Stack Overflow用户

发布于 2018-09-09 10:14:04

这是一种有趣的,因为以下工作对我完美。

输入代码:

代码语言:javascript
运行
AI代码解释
复制
import tensorflow as tf
x = tf.Variable([[[0.5, 1, 2], [3, 4, 5]]] , dtype=tf.float64)
y = tf.reduce_sum(x*x*x/3, axis=[1, 2])
grad = tf.gradients(y, x)[0]
grad2 = tf.gradients(grad, x)
init_op = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init_op)
    g1, g2 = sess.run([grad, grad2])

print('First order : {}'.format(g1))
print('Second order : {}'.format(g2))

产出:

代码语言:javascript
运行
AI代码解释
复制
First order : [[[ 0.25  1.    4.  ]
  [ 9.   16.   25.  ]]]
Second order : [array([[[ 1.,  2.,  4.],
        [ 6.,  8., 10.]]])]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52244681

复制
相关文章
python实现之一阶二阶导数
f'(x)=(x^3)‘+(4cosx)‘-(sin(π/2))‘=3x^2-4sinx-0
python与大数据分析
2022/03/11
5870
python实现之一阶二阶导数
高等数学——导数的定义和常见导数
导数是微积分也是高数当中很重要的一个部分,不过很遗憾的是,和导数相关的部分很多同学都是高中的时候学的。经过了这么多年,可能都差不多还给老师了。所以今天的文章就一起来温习一下导数的相关知识,捡一捡之前忘记的内容。
TechFlow-承志
2020/03/05
1.3K0
高等数学——导数的定义和常见导数
导数和微分(一)
导数的概念 导数的定义 注意 导函数的定义 单侧倒数 注意点 函数的连续性 注意: 课后例题 导数的四则运算 定理 定理的推广 法则1的推广: 法则2的推广: 另外: 课后例题 反函
李小白是一只喵
2020/04/24
7130
导数和微分(一)
OpenCV之图像梯度 – 拉普拉斯算子(二阶导数算子)
python代码: import cv2 as cv import numpy as np image = cv.imread("./test.png") cv.namedWindow("input", cv.WINDOW_AUTOSIZE) cv.imshow("input", image) h, w = image.shape[:2] src = cv.GaussianBlur(image, (0, 0), 1) dst = cv.Laplacian(src, cv.CV_32F, ksize=3,
MachineLP
2021/07/27
6840
关于导数、偏导数的理解
导数是人工智能、神经网络的基础,正向传播、反向传播无不依赖于导数,导数也是高数的基础,本文算是一个半学习半理解加非科班的学习过程吧
python与大数据分析
2022/03/11
1.3K0
关于导数、偏导数的理解
f²(x)的导数 e²的导数
在做习题的时候出现了一个小纰漏,原因是想当然的把 ƒ²(x) 的导数当成了 x²的导数。 从原理上来说 ƒ²(x) 应该当作 ƒ(x) 的复合函数来求导,也可以当作是 ƒ(x) * ƒ(x) 来计算。
雪碧君
2023/02/15
1.1K0
偏导数与全导数
1.偏导数 代数意义 偏导数是对一个变量求导,另一个变量当做数 对x求偏导的话y就看作一个数,描述的是x方向上的变化率 对y求偏导的话x就看作一个数,描述的是y方向上的变化率 几何意义 对x求偏导是曲面z=f(x,y)在x方向上的切线 对y求偏导是曲面z=f(x,y)在x方向上的切线 这里在补充点.就是因为偏导数只能描述x方向或y方向上的变化情况,但是我们要了解各个方向上的情况,所以后面有方向导数的概念.
狼啸风云
2019/08/29
2.5K0
直观理解梯度,以及偏导数、方向导数和法向量等
梯度是微积分中的基本概念,也是机器学习解优化问题经常使用的数学工具(梯度下降算法),虽然常说常听常见,但其细节、物理意义以及几何解释还是值得深挖一下,这些不清楚,梯度就成了“熟悉的陌生人”,仅仅“记住就完了”在用时难免会感觉不踏实,为了“用得放心”,本文将尝试直观地回答以下几个问题,
李拜六不开鑫
2019/10/23
3.7K0
梯度 方向导数 偏导数 导数 等值线
梯度出现在 高等数学下册 的 第九章:多元函数微分法及其应用  第七节: 方向导数与梯度中;(讲的非常清楚) 在讲到这个概念的时候,也是从二元函数开始入手,并没有讨论一元的情况,所以根据我的理解,梯度是一个出现在多元函数里面的概念,不存在一元的讨论里面; 同理,偏导数和方向导数只存在于多元函数的情况下,一元函数不会去讨论这些; 以下图来自以同济6版高数。 一、梯度 1)导数 对于一元函数而言,对某一点沿着唯一的一个自变量方向的变化率,就是导数。 2)偏导数 对于多元函数而言,对于某一点沿着每个自变量的方向
Echo_fy
2018/06/20
1.6K0
TensorFlow和Pytorch中的音频增强
对于图像相关的任务,对图像进行旋转、模糊或调整大小是常见的数据增强的方法。因为图像的自身属性与其他数据类型数据增强相比,图像的数据增强是非常直观的,我们只需要查看图像就可以看到特定图像是如何转换的,并且使用肉眼就能对效果有一个初步的评判结果。尽管增强在图像域中很常见,但在其他的领域中也是可以进行数据增强的操作的,本篇文章将介绍音频方向的数据增强方法。
deephub
2022/04/14
8090
TensorFlow和Pytorch中的音频增强
TensorFlow和Pytorch中的音频增强
来源:Deephub Imba本文约2100字,建议阅读9分钟本文将介绍如何将增强应用到 TensorFlow 中的数据集的两种方法。 对于图像相关的任务,对图像进行旋转、模糊或调整大小是常见的数据增强的方法。因为图像的自身属性与其他数据类型数据增强相比,图像的数据增强是非常直观的,我们只需要查看图像就可以看到特定图像是如何转换的,并且使用肉眼就能对效果有一个初步的评判结果。尽管增强在图像域中很常见,但在其他的领域中也是可以进行数据增强的操作的,本篇文章将介绍音频方向的数据增强方法。 在这篇文章中,将介绍
数据派THU
2022/04/11
1.1K0
TensorFlow和Pytorch中的音频增强
机器学习数学基础——积分和导数
不定积分计算的是原函数(得出结果是一个式子) 定积分计算的是具体的数值(得出的结果是一个具体的数字)
用户3577892
2020/06/12
9410
Theano 中文文档 0.9 - 7.2.3 Theano中的导数
现在让我们使用Theano来完成一个稍微复杂的任务:创建一个函数,该函数计算相对于其参数x的某个表达式y的导数。为此,我们将使用宏T.grad。例如,我们可以计算
ApacheCN_飞龙
2022/12/01
6420
Theano 中文文档 0.9 - 7.2.3 Theano中的导数
什么是导数和切线?以及他们的关系?
(引自高等数学)设函数y=f(x)在点x0的某个邻域内有定义,当自变量x在x0处有增量Δx,相应地函数取得增量Δy=f(x0+Δx)-f(x0);如果Δy与Δx之比当Δx→0时极限存在,则称函数y=f(x)在点x0处可导,并称这个极限为函数y=f(x)在点x0处的导数。马克-to-win @ 马克java社区: 所以说:函数y=f(x)在x0点的导数f'(x0)的几何意义:表示函数曲线在点P0(x0,f(x0))处的切线的斜率(导数的几何意义是该函数曲线在这一点上的切线斜率)。
马克java社区
2021/06/22
7550
我的机器学习微积分篇观点函数从极限到导数导数的应用偏导数从方向导数到梯度
前言: 没想到还能在此生再次用到大学习学习的高数,线性代数和概率论,如果上天给我再来一次的机会,我一定往死了学习这三门课。 观点 与机器学习相关的微积分的核心问题是极值问题 核心技能是偏导数
DC童生
2018/04/27
1.5K0
我的机器学习微积分篇观点函数从极限到导数导数的应用偏导数从方向导数到梯度
二阶段Servlet和Filter和Listener
Web(World Wide Web) 称为万维网,简单理解就是网站,它用来表示Internet主机上供外界访问的资源。
Qwe7
2022/07/24
2630
Tensorflow中的placeholder和Variable | MI-机器智能 | Tensorflow技能树
当执行这些操作时,tf.Variable 的值将会改变,也即被修改,这也是其名称的来源(variable,变量)。
用户7623498
2020/08/04
4330
Tensorflow中的placeholder和Variable | MI-机器智能 | Tensorflow技能树
OpenCV 滤波与卷积之 —— 梯度和导数
平滑一般也称“模糊”,是一种简单而又常用的图像处理操作。平滑图像的目的有很多,但通常都是为了减少噪声和伪影。在降低图像分辨率的时候,平滑也是十分重要的。OpenCV 提供5种不同的平滑操作,每种操作都有对应的函数实现,这些操作平滑的结果有着细微的差别。
为为为什么
2022/08/09
7410
OpenCV 滤波与卷积之 —— 梯度和导数
点击加载更多

相似问题

Tensorflow 2.0中的二阶导数

176

用GradientTape TensorFlow计算二阶导数

115

在tensorflow中计算二阶导数时出错

16

tensorflow自动微分中的二阶导数不存在

26

Tensorflow 2二阶导数在急迫执行中的应用梯度

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档