gpt4 book ai didi

python - TensorFlow:整合神经网络的输出

转载 作者:行者123 更新时间:2023-12-02 20:05:41 25 4
gpt4 key购买 nike

我有一个神经网络,它接受两个参数作为输入:

t = tf.placeholder(tf.float32, [None, 1])
x = tf.placeholder(tf.float32, [None, 1])

在我的损失函数中,我需要对 t 上的输出进行积分,但我无法找到实现此目的的方法,因为 TensorFlow 中唯一可用的数值积分函数是 tf .contrib.integrate.odeint_fixed,不能将 Tensor 作为函数,因为它无法被调用:

通话

t = tf.constant(np.linspace(0.0,1.0,100), dtype = tf.float64 )

integ = tf.contrib.integrate.odeint_fixed(model.output,
0.0,
t,
method = "rk4")

输出

...

<ipython-input-5-c79e79b75391> in loss(model, t, x)
24 0.0,
25 t,
---> 26 method = "rk4")

...

TypeError: 'Tensor' object is not callable

更不用说我对如何在这个计算中处理x一无所知,它应该保持固定。

最佳答案

tf.contrib.integrate.odeint_fixed 似乎用于积分常微分方程 (ODE)。但是,如果我理解正确的话,您想要近似模型输出的定积分,我们将其称为 y,在 t 采样。

为此,您可以使用 trapezoidal rule ,您可以在 tensorflows AUC function 中找到可能的实现。在你的情况下,它可能看起来像:

from tensorflow.python.ops import math_ops

def trapezoidal_integral_approx(t, y):
return math_ops.reduce_sum(
math_ops.multiply(t[:-1] - t[1:],
(y[:-1] + y[1:]) / 2.),
name='trapezoidal_integral_approx')

其中 y 是模型的输出。

关于python - TensorFlow:整合神经网络的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54788475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com