如何使用张量作为函数的输入?(张量流)

2024-09-27 09:33:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用张量流来构造我的模型来解一个微分方程,例如

dX/dt=f(\mu,X,t)

这里,\ mu是一个依赖于X的函数,它很复杂,所以我想用神经网络来预测\mu(X)。你知道吗

首先,我的输入X通过密集层N得到\mu~N(X)。 然后,我用龙格库塔法求解上述常微分方程,该方法由一个代码定义:

def RK4(self, mu, X, t, dt=0.2):
    kX1=dt*self.f(mu, X, t)
    kX2=dt*self.f(mu, X+kX1/2, t+dt/2)
    kX3=dt*self.f(mu, X+kX2/2, t+dt/2)
    kX4=dt*self.f(mu, X+kX3, t+dt)
    X_next=X+(kX1+2*kX2+2*kX3+kX4)/6

    return X_next

注意self来自一个类变量。 当我直接将N(X)放入RK4时,出现了一个错误。你知道吗

 Tensor objects are only iterable when eager execution is enabled. To iterate 
 over this tensor use tf.map_fn.

我不熟悉这张地图。我的函数很复杂,因为它既有张量(\mu,X)又有浮点数(t,dt)。但正如我所知,map\u fn只处理张量输入。有没有一个聪明的方法来处理这些输入?谢谢!你知道吗


Tags: 方法函数模型selfmapdtnextfn

热门问题