1

我有一个关于如何在 Julia 中训练神经 ODE 网络的一般性问题。是否从定义 Nural ODE 的 tspan 中采样数据点,并在其上计算参数更新?换句话说,在训练期间是否发生了一些洗牌和批处理,或者是否在 tspan 中的所有数据点上计算了损失?

4

2 回答 2

0

我在这里找到了关于 Julia 在做什么的答案:https ://github.com/JuliaDiffEq/DiffEqFlux.jl/blob/master/src/train.jl 。

    "Optimizes the `loss(θ,curdata...)` function with respect to the parameter vector
`θ` iterating over the `data`. By default the data iterator is empty, i.e.
`loss(θ)` is used. The first output of the loss function is considered the loss.
Extra outputs are passed to the callback."

我认为要进行批处理,需要对数据点进行采样,然后在循环中对它们运行 Flux.train,将批处理数据点作为输入。

于 2020-02-20T08:37:34.583 回答
0

根据最小化损失函数优化参数。因此,您可以定义在损失函数中如何进行采样。通常,可能会将输出与离散数据点进行比较,在这种情况下,这些数据点将成为您的离散点。

但是neuralODE 没有处理这个——你是。这是损失函数

于 2020-02-20T01:15:12.323 回答