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