Neural network DifferenceQflux.sciml_如何训练Julia中的神经ODE?

Neural network DifferenceQflux.sciml_如何训练Julia中的神经ODE?,neural-network,julia,ode,flux-machine-learning,Neural Network,Julia,Ode,Flux Machine Learning,我有一个关于Julia如何训练神经网络的普遍问题。是否从定义了Nural ODE的tspan中采样数据点,并在其上计算参数更新?换句话说,在训练期间是否发生了一些混洗和批处理,或者是否在tspan中的所有数据点上计算了损失?根据最小化损失函数优化参数。因此,由您定义采样如何在损失函数中发生。通常情况下,可以将输出与离散数据点进行比较,在这种情况下,这些数据点将成为离散点 但纽鲁洛德不会处理这件事,你会的。损失函数参数根据损失函数最小化进行优化。因此,由您定义采样如何在损失函数中发生。通常情况下,

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

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


但纽鲁洛德不会处理这件事,你会的。损失函数

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


但纽鲁洛德不会处理这件事,你会的。这是损失函数

我找到了朱莉娅在这里做什么的答案:


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

我找到了朱莉娅在这里做什么的答案:


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

我不同意这一点。损耗函数仅用于测量网络的性能w.r.t.到当前参数设置,该设置将用于计算这些参数的梯度和更新。通量,火车!这是培训逻辑应该定义的地方,目前由Julia处理。我找到了Julia在这里做什么的答案:。我认为,要进行批处理,需要对数据点进行采样,然后在循环中对其运行Flux.train。@SimonAda,我认为您可能混淆了这里的术语。neuralODE可以有批量数据训练输入,通常是不同初始条件的列表,但输出将是每个初始条件的时间序列。但是通量本身并没有得到这个返回值。这是由损失函数处理的。损失函数如何选择计算损失(例如,在离散时间点或以不同方式对NeuralODE返回对象进行采样)完全取决于损失函数。通量得到的只是整个批次中损失总和的标量值。一批是你的离散输入。我不同意这一点。损耗函数仅用于测量网络的性能w.r.t.到当前参数设置,该设置将用于计算这些参数的梯度和更新。通量,火车!这是培训逻辑应该定义的地方,目前由Julia处理。我找到了Julia在这里做什么的答案:。我认为,要进行批处理,需要对数据点进行采样,然后在循环中对其运行Flux.train。@SimonAda,我认为您可能混淆了这里的术语。neuralODE可以有批量数据训练输入,通常是不同初始条件的列表,但输出将是每个初始条件的时间序列。但是通量本身并没有得到这个返回值。这是由损失函数处理的。损失函数如何选择计算损失(例如,在离散时间点或以不同方式对NeuralODE返回对象进行采样)完全取决于损失函数。通量得到的只是整个批次中损失总和的标量值。批次是您的离散输入。
    "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."