Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TensorFlow:神经网络的积分输出_Python_Tensorflow_Neural Network_Numerical Methods - Fatal编程技术网

Python TensorFlow:神经网络的积分输出

Python TensorFlow:神经网络的积分输出,python,tensorflow,neural-network,numerical-methods,Python,Tensorflow,Neural Network,Numerical Methods,我有一个神经网络,输入两个参数: t = tf.placeholder(tf.float32, [None, 1]) x = tf.placeholder(tf.float32, [None, 1]) 在我的损失函数中,我需要在t上对输出进行积分,但我无法找到一种方法,因为TensorFlow中唯一可用的数值积分函数tf.contrib.integrate.odeint\u fixed,不能将张量作为函数,因为它不能被调用: 呼叫 输出 。。。 损耗(型号,t,x) 24

我有一个神经网络,输入两个参数:

t = tf.placeholder(tf.float32, [None, 1])
x = tf.placeholder(tf.float32, [None, 1])
在我的损失函数中,我需要在
t
上对输出进行积分,但我无法找到一种方法,因为TensorFlow中唯一可用的数值积分函数
tf.contrib.integrate.odeint\u fixed
,不能将张量作为函数,因为它不能被调用:

呼叫 输出
。。。
损耗(型号,t,x)
24                                                 0.0,
25吨,
--->26方法=“rk4”)
...
TypeError:“Tensor”对象不可调用

更不用说,我也不知道如何在这个计算中处理
x
,它应该是固定不变的。

tf.contrib.integrate.odeint\u fixed
似乎是用于积分常微分方程(ODE)。但是,如果我理解正确,您希望近似模型输出的定积分,让我们称之为
y
,采样点为
t

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

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
将是您模型的输出。

吹毛求疵:在运行时间方面,用2除2可能更好。
...

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

...

TypeError: 'Tensor' object is not callable
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')