import numpy as np
import pandas as pd
import seaborn as sns
import bayesflow as bf
from dmc import DMC, dmc_helpersAmortized Bayesian Inference of the Diffusion Model for Conflict Tasks
Authored by Stefan T. Radev and Simon Schaefer
Large part of the work below are based on the following paper: - Schaefer et al., (2026). Amortized Bayesian Workflow for Modeling Congruency Effects Using the Diffusion Model for Conflict Tasks. Computational Brain & Behavior. https://link.springer.com/article/10.1007/s42113-026-00266-y
Model Specification
The Diffusion Model for Conflict Tasks (DMC; Ulrich et al., 2015) extends the standard Drift Diffusion Model by including a time-varying drift-rate component. This allows it to explain reaction time distributions and error rates in conflict tasks such as the Stroop, Simon, and Flanker tasks. In these tasks, performance differs between congruent and incongruent trials because relevant and irrelevant stimulus dimensions can either support the same response or interfere with one another. For example, in a flanker task, participants respond to the direction of a central arrow while ignoring the surrounding arrows.
- Congruent trial (e.g., → → → → → ): The central target arrow and the flankers all point in the same direction. Because the irrelevant flankers support the same response as the target, responses are usually faster and more accurate.
- Incongruent trial (e.g., → → ← → →): The central target arrow points in the opposite direction from the flankers. Here, the irrelevant flankers activate a competing response, which typically leads to slower responses and more errors.
Compared with a stationary DDM-like process, it has been argued that non-stationary processing better captures this conflict process because it can model how the influence of irrelevant information changes over time. As a result, the DMC is assumed to provide a better account of how the congruency effect develops across the reaction time distribution, for example in delta plots.
Similar to a classic DDM, the DMC comprises a constant drift rate \(\mu_c\). This route of evidence accumulation, also referred to as the controlled process is driven by the processing of relevant information such as the target stimulus in a flanker paradigm. Simultaneously, a second automatic drift process integrates irrelevant information such as the flanker stimuli in the flanker task. A second time-varying drift rate \(\mu_a\) reflects this automatic activation at a given point in time \(t\) formulated as the derivative of a reshaped gamma function:
\[\mu_a(t) = A \cdot e^{-t/\tau}\cdot \left[ \frac{t\cdot e}{(a-1)\cdot \tau}\right]^{a-1} \cdot \left[\frac{a - 1}{t}-\frac{1}{\tau}\right], a > 1\]
The sign of the amplitude A is defined by the congruency of relevant and irrelevant information. E.g. in a Flanker task, the amplitude is positive if the flankers (irrelevant dimension) are similar to the target (relevenat information). Adding up both drift rate \(\mu_c\) and \(\mu_a\) results in the superimposed process, resembling the typically observed congruency effect in RTs and error rates.

param_names = ('A', 'tau', 'mu_c', 'mu_r', 'b', 'sd_r')
simulator = DMC(
prior_means=np.array([20.49, 118.36, 0.57, 358.01, 61.0, 36.93]),
prior_sds=np.array([8.4, 37.6, 0.12, 24.27, 13.23, 8.6]),
sdr_fixed=None,
param_names=param_names,
tmax=1500,
dt=1
)Note that the maximum decision time is per default set to \(1200 ms\) and the time discretization is set to \(dt = 1 ms\). Setting \(dt\) to lower values will result in a higher temporal resolution while prolonging the simulation time. \(t_{max}\) should be chosen so that \(\mu_r + t_{max}\) is higher than the maximum RT in the observed data. In order to account for longer RTs, we set \(t_{max}\) to 1500 ms.
Training with Raw Data
num_train = 1000
num_test = 100
train_data = simulator.sample(batch_size=num_train)
test_data = simulator.sample(batch_size=num_test)Shape conventions of simulator.sample(): The returned dict contains two kinds of arrays:
- Parameters (e.g.,
"A","tau", …): shape(B, 1)— one scalar per simulated individual. - Trial-level data (
"rt","accuracy","conditions"): shape(B, N, 1)— \(N\) trials per individual, with a trailing feature dimension of 1. "num_obs": shape(B, 1)— records how many trials were simulated (can vary between batches whenmin_num_obs/max_num_obsare set).
The trailing dimension on trial-level data exists because BayesFlow’s summary nets (e.g., SetTransformer) expect inputs shaped (B, N, D) where \(D\) is the number of features per set element.
for key, i in train_data.items():
print(f'{key}: {i.shape}')A: (1000, 1)
tau: (1000, 1)
mu_c: (1000, 1)
mu_r: (1000, 1)
b: (1000, 1)
sd_r: (1000, 1)
rt: (1000, 200, 1)
accuracy: (1000, 200, 1)
conditions: (1000, 200, 1)
num_obs: (1000, 1)
In conflict tasks, Conditional Accuracy Functions (CAFs), Cumulative Distribution Functions (CDFs), and delta functions are commonly used to examine how cognitive control and interference effects unfold across the full reaction time (RT) distribution, rather than being summarized by single mean values. Together, these distributional analyses provide complementary insights into both the speed and accuracy of responses under congruent and incongruent conditions.
Conditional Accuracy Functions (CAFs) characterize how response accuracy varies as a function of response speed. By dividing RTs into quantile-based bins and computing accuracy within each bin, CAFs reveal whether fast responses are more error-prone and whether accuracy improves or deteriorates for slower responses. In conflict tasks, CAFs are particularly informative about early, impulsive response tendencies versus later, more controlled responding, and whether incongruent trials show disproportionate accuracy costs at specific portions of the RT distribution.
Cumulative Distribution Functions (CDFs) describe the overall shape of the RT distribution for each condition. CDFs plot the cumulative probability of responding as a function of RT, allowing direct comparison of how quickly responses are generated under congruent and incongruent conditions. Differences between CDFs indicate global shifts or shape differences in RT distributions, such as whether incongruent trials produce uniformly slower responses or selectively affect only slower portions of the distribution.
\(\Delta\) - functions focus explicitly on the difference between congruent and incongruent RT distributions across response speed. Rather than collapsing the congruency effect into a single mean RT difference, delta functions show how this effect changes across quantiles of the RT distribution. This makes it possible to assess whether interference is constant, increases, or decreases as responses become slower, thereby providing insight into the temporal dynamics of conflict processing and control.
format_sim_data and only_convergents: format_sim_data converts the dict of arrays returned by the simulator into a tidy pandas DataFrame. The simulated diffusion process sometimes fails to reach a decision boundary within \(t_{max}\) — these are “non-convergent” trials. only_convergents=True excludes them (they’d have an RT of \(-1\) or similar sentinel), keeping only trials where a decision was actually made.
df_complete = dmc_helpers.format_sim_data(test_data, only_convergents=True)
for id in np.arange(0, num_test):
# select data from individual id
df_id = df_complete[df_complete['id'] == id]
# plot rt distribution excluding values of -1
sns.kdeplot(df_id, x = 'rt', hue='congruency', alpha=0.2)
workflow = bf.BasicWorkflow(
inference_network=bf.networks.CouplingFlow(),
summary_network=bf.networks.SetTransformer(embed_dims=(16, 16), summary_dim=32),
inference_variables=param_names,
summary_variables=["rt", "conditions", "accuracy"],
standardize="all"
)history = workflow.fit_offline(
train_data, batch_size=16, epochs=15, validation_data=test_data
)INFO:bayesflow:Fitting on dataset instance of OfflineDataset.
INFO:bayesflow:Building on a test batch.
Epoch 1/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 16s 168ms/step - loss: 7.8923 - val_loss: 6.6566 Epoch 2/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 109ms/step - loss: 6.1054 - val_loss: 5.7760 Epoch 3/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 106ms/step - loss: 5.4360 - val_loss: 5.1114 Epoch 4/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 107ms/step - loss: 5.1468 - val_loss: 4.8897 Epoch 5/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 109ms/step - loss: 4.9095 - val_loss: 4.7116 Epoch 6/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 115ms/step - loss: 4.7500 - val_loss: 4.9605 Epoch 7/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 117ms/step - loss: 4.5539 - val_loss: 4.5220 Epoch 8/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 117ms/step - loss: 4.5243 - val_loss: 4.3843 Epoch 9/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 118ms/step - loss: 4.3390 - val_loss: 4.3715 Epoch 10/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 119ms/step - loss: 4.2466 - val_loss: 4.5295 Epoch 11/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 117ms/step - loss: 4.1958 - val_loss: 4.2928 Epoch 12/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 117ms/step - loss: 4.1699 - val_loss: 4.2487 Epoch 13/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 7s 118ms/step - loss: 4.1114 - val_loss: 4.2141 Epoch 14/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 8s 120ms/step - loss: 4.0672 - val_loss: 4.2230 Epoch 15/15 63/63 ━━━━━━━━━━━━━━━━━━━━ 8s 123ms/step - loss: 4.0475 - val_loss: 4.2123
INFO:bayesflow:Training completed in 2.07 minutes.
samples = workflow.sample(conditions=test_data, num_samples=1000)INFO:bayesflow:Sampling completed in 4.71 seconds.
figs = workflow.plot_default_diagnostics(
test_data=test_data,
samples=samples
)




metrics = workflow.compute_default_diagnostics(test_data=test_data, samples=samples)
metricsWARNING:bayesflow:Using new default normalize='prior' for a more dynamic range. To reproduce previous behavior, set normalize='range'.
| A | tau | mu_c | mu_r | b | sd_r | |
|---|---|---|---|---|---|---|
| NRMSE | 0.604628 | 0.930012 | 0.430153 | 0.377351 | 0.450111 | 1.025645 |
| Log Gamma | 3.179287 | 0.270818 | 0.566712 | 1.789717 | -0.050010 | 2.856014 |
| Calibration Error | 0.027632 | 0.033421 | 0.050263 | 0.014474 | 0.028421 | 0.011842 |
| Posterior Contraction | 0.682176 | 0.210749 | 0.835730 | 0.862319 | 0.798811 | 0.110256 |
Training with Informative Summary Statistics
Key details in summary_stats:
[..., 0]strips the trailing dimension:(B, N, 1)→(B, N), since each variable is stored as a single-column “feature”.- Masking with
np.where:np.where(mask, rt, np.nan)keeps RTs where the mask isTrueand fills the rest withNaN.np.nanquantilethen computes quantiles while ignoringNaNs — this avoids explicitly indexing ragged groups per batch. stats[np.isnan(stats)] = -1.: If a group is empty (e.g., no errors for a given condition in a batch),nanquantilereturnsNaN. Replacing with \(-1\) provides a sentinel value the network can learn to ignore, since RTs are always positive.**kwargs: Absorbs extra dict keys (e.g.,"A","tau","num_obs", …) that are present in the data dict but not needed here. This makes the function compatible withsummary_stats(**train_data).
def summary_stats(conditions, rt, accuracy, num_quantiles=5, **kwargs):
"""Computes hand-crafted summary statistics to be used on batched conditions,
rts, and accuracies.
"""
quantiles = np.linspace(0.05, 0.95, num_quantiles)
rt = rt[..., 0]
conditions = conditions[..., 0]
accuracy = accuracy[..., 0]
quantile_parts = []
for cond_val in (0, 1):
for acc_val in (0, 1):
mask = (conditions == cond_val) & (accuracy == acc_val)
q = np.nanquantile(np.where(mask, rt, np.nan), quantiles, axis=1).T
quantile_parts.append(q)
acc_c0 = np.nanmean(np.where(conditions == 0, accuracy, np.nan), axis=1, keepdims=True)
acc_c1 = np.nanmean(np.where(conditions == 1, accuracy, np.nan), axis=1, keepdims=True)
stats = np.concatenate([*quantile_parts, acc_c0, acc_c1], axis=1)
stats[np.isnan(stats)] = -1.
return {"summary_stats": stats}The |= (merge-update) pattern: train_data |= summary_stats(**train_data) unpacks the entire data dict as keyword arguments to summary_stats. The function ignores unneeded keys via **kwargs and returns {"summary_stats": ...}. The |= operator merges this back into the original dict, adding the new "summary_stats" key alongside the existing "rt", "conditions", etc.
train_data |= summary_stats(**train_data)
test_data |= summary_stats(**test_data)c:\Users\radevs\AppData\Local\anaconda3\envs\bf\Lib\site-packages\numpy\lib\_nanfunctions_impl.py:1593: RuntimeWarning: All-NaN slice encountered
return fnb._ureduce(a,
Why no summary_network anymore?
In the first workflow above, raw trial-level data (rt, conditions, accuracy) was passed as summary_variables and a SetTransformer learned to compress them into a fixed-size representation. Here, we instead pre-compute hand-crafted summary statistics and pass them via inference_conditions. This means the inference network receives a fixed (B, 22) vector directly. No learnable summary network is needed. This can be more interpretable and sometimes more data-efficient, but it requires domain knowledge to design good summaries.
workflow = bf.BasicWorkflow(
inference_network=bf.networks.CouplingFlow(),
inference_variables=param_names,
inference_conditions="summary_stats",
standardize="all",
)history = workflow.fit_offline(
train_data, epochs=50, batch_size=32, validation_data=test_data
)INFO:bayesflow:Fitting on dataset instance of OfflineDataset.
INFO:bayesflow:Building on a test batch.
Epoch 1/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 6s 112ms/step - loss: 8.3409 - val_loss: 7.9190 Epoch 2/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 7.5666 - val_loss: 6.9911 Epoch 3/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 6.2321 - val_loss: 5.4081 Epoch 4/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 5.0773 - val_loss: 4.6707 Epoch 5/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 4.5370 - val_loss: 4.5749 Epoch 6/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 4.2442 - val_loss: 4.2461 Epoch 7/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 4.1671 - val_loss: 4.1328 Epoch 8/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.9760 - val_loss: 4.1766 Epoch 9/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.9503 - val_loss: 4.0523 Epoch 10/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.8589 - val_loss: 4.1523 Epoch 11/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.7894 - val_loss: 3.9756 Epoch 12/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.7430 - val_loss: 4.0315 Epoch 13/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.7248 - val_loss: 4.0553 Epoch 14/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.6714 - val_loss: 4.2021 Epoch 15/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.6740 - val_loss: 4.0590 Epoch 16/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.6726 - val_loss: 4.0777 Epoch 17/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.6403 - val_loss: 4.1006 Epoch 18/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.5775 - val_loss: 4.0304 Epoch 19/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.5432 - val_loss: 4.1006 Epoch 20/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4982 - val_loss: 4.1022 Epoch 21/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4938 - val_loss: 4.0496 Epoch 22/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4785 - val_loss: 4.1923 Epoch 23/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4615 - val_loss: 4.1549 Epoch 24/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.4859 - val_loss: 4.1469 Epoch 25/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.4456 - val_loss: 4.1428 Epoch 26/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.4314 - val_loss: 4.0810 Epoch 27/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4024 - val_loss: 4.2032 Epoch 28/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4002 - val_loss: 4.2635 Epoch 29/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.3902 - val_loss: 4.2061 Epoch 30/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.3655 - val_loss: 4.2320 Epoch 31/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.3499 - val_loss: 4.2812 Epoch 32/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.3423 - val_loss: 4.3016 Epoch 33/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.3472 - val_loss: 4.3055 Epoch 34/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2998 - val_loss: 4.3093 Epoch 35/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.3130 - val_loss: 4.2570 Epoch 36/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2956 - val_loss: 4.2877 Epoch 37/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2875 - val_loss: 4.3371 Epoch 38/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.2881 - val_loss: 4.3529 Epoch 39/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.2568 - val_loss: 4.4007 Epoch 40/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2585 - val_loss: 4.4139 Epoch 41/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.2555 - val_loss: 4.4457 Epoch 42/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.2689 - val_loss: 4.4348 Epoch 43/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.2572 - val_loss: 4.4319 Epoch 44/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2567 - val_loss: 4.4380 Epoch 45/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2274 - val_loss: 4.4425 Epoch 46/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2259 - val_loss: 4.4351 Epoch 47/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.2362 - val_loss: 4.4362 Epoch 48/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2541 - val_loss: 4.4329 Epoch 49/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2218 - val_loss: 4.4330 Epoch 50/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2300 - val_loss: 4.4329
INFO:bayesflow:Training completed in 17.98 seconds.
samples = workflow.sample(conditions=test_data, num_samples=1000)INFO:bayesflow:Sampling completed in 1.07 seconds.
figs = workflow.plot_default_diagnostics(test_data, samples=samples)




Flow Matching vs. Diffusion Model
Separate Workflows
workflows = {}
estimators = {
"fm": bf.networks.FlowMatching(subnet_kwargs={"widths": (128,)*3}),
"cf": bf.networks.CouplingFlow()
}
histories = {}
for name, estimator in estimators.items():
workflow = bf.BasicWorkflow(
inference_network=estimator,
inference_variables=param_names,
inference_conditions="summary_stats",
standardize="all",
)
history = workflow.fit_offline(
train_data, epochs=50, batch_size=32, validation_data=test_data
)
workflows[name] = workflow
histories[name] = historyINFO:bayesflow:Fitting on dataset instance of OfflineDataset.
INFO:bayesflow:Building on a test batch.
Epoch 1/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 4s 81ms/step - loss: 2.7185 - val_loss: 2.0849 Epoch 2/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.9025 - val_loss: 1.5525 Epoch 3/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.6046 - val_loss: 1.4497 Epoch 4/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - loss: 1.3944 - val_loss: 1.3906 Epoch 5/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.3114 - val_loss: 1.2330 Epoch 6/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.2280 - val_loss: 1.2034 Epoch 7/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.1746 - val_loss: 0.9951 Epoch 8/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.1155 - val_loss: 1.1651 Epoch 9/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.0865 - val_loss: 1.0754 Epoch 10/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.0786 - val_loss: 0.9850 Epoch 11/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.0685 - val_loss: 1.0211 Epoch 12/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.0427 - val_loss: 1.0287 Epoch 13/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.0337 - val_loss: 1.0271 Epoch 14/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.0019 - val_loss: 0.9548 Epoch 15/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.0312 - val_loss: 1.0016 Epoch 16/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.0008 - val_loss: 1.0187 Epoch 17/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 1.0110 - val_loss: 0.9720 Epoch 18/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9609 - val_loss: 1.0262 Epoch 19/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9582 - val_loss: 1.1195 Epoch 20/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - loss: 0.9610 - val_loss: 0.9979 Epoch 21/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - loss: 0.9539 - val_loss: 0.9868 Epoch 22/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9142 - val_loss: 0.9672 Epoch 23/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9768 - val_loss: 1.0775 Epoch 24/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9495 - val_loss: 0.8989 Epoch 25/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9023 - val_loss: 0.9436 Epoch 26/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9240 - val_loss: 0.8860 Epoch 27/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9191 - val_loss: 1.0958 Epoch 28/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9481 - val_loss: 0.9197 Epoch 29/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8932 - val_loss: 0.8588 Epoch 30/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - loss: 0.9136 - val_loss: 1.0346 Epoch 31/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9125 - val_loss: 0.9637 Epoch 32/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8767 - val_loss: 0.8656 Epoch 33/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8939 - val_loss: 1.1134 Epoch 34/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9054 - val_loss: 0.9524 Epoch 35/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8865 - val_loss: 0.8992 Epoch 36/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8956 - val_loss: 0.9461 Epoch 37/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8906 - val_loss: 0.9266 Epoch 38/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9098 - val_loss: 0.9478 Epoch 39/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8804 - val_loss: 0.9140 Epoch 40/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - loss: 0.8573 - val_loss: 0.9895 Epoch 41/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8526 - val_loss: 0.8799 Epoch 42/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8657 - val_loss: 1.0050 Epoch 43/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.9187 - val_loss: 0.9031 Epoch 44/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8688 - val_loss: 0.8918 Epoch 45/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8934 - val_loss: 0.8177 Epoch 46/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8577 - val_loss: 0.9393 Epoch 47/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8981 - val_loss: 0.9270 Epoch 48/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8690 - val_loss: 0.9492 Epoch 49/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8807 - val_loss: 0.8916 Epoch 50/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - loss: 0.8438 - val_loss: 0.8974
INFO:bayesflow:Training completed in 9.46 seconds.
INFO:bayesflow:Fitting on dataset instance of OfflineDataset.
INFO:bayesflow:Building on a test batch.
Epoch 1/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 5s 93ms/step - loss: 8.3293 - val_loss: 7.9300 Epoch 2/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 7.5828 - val_loss: 6.9926 Epoch 3/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 6.2715 - val_loss: 5.5095 Epoch 4/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 5.0504 - val_loss: 4.6920 Epoch 5/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 4.4781 - val_loss: 4.3297 Epoch 6/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 4.2240 - val_loss: 4.3615 Epoch 7/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 4.0885 - val_loss: 4.2190 Epoch 8/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.9984 - val_loss: 4.1993 Epoch 9/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.8910 - val_loss: 4.1890 Epoch 10/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.8372 - val_loss: 4.1199 Epoch 11/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.7554 - val_loss: 4.2193 Epoch 12/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.7685 - val_loss: 4.1229 Epoch 13/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.7172 - val_loss: 4.1712 Epoch 14/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.6742 - val_loss: 4.0211 Epoch 15/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.6403 - val_loss: 4.0107 Epoch 16/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.5883 - val_loss: 4.1448 Epoch 17/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.5960 - val_loss: 4.1361 Epoch 18/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.5527 - val_loss: 4.2430 Epoch 19/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.5404 - val_loss: 4.2959 Epoch 20/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.5317 - val_loss: 4.0439 Epoch 21/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.5170 - val_loss: 4.1143 Epoch 22/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.4826 - val_loss: 4.1390 Epoch 23/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.4665 - val_loss: 4.1439 Epoch 24/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4732 - val_loss: 4.3105 Epoch 25/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4107 - val_loss: 4.2385 Epoch 26/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4062 - val_loss: 4.2228 Epoch 27/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.4101 - val_loss: 4.2821 Epoch 28/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.3931 - val_loss: 4.2268 Epoch 29/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.3646 - val_loss: 4.2866 Epoch 30/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.3446 - val_loss: 4.2624 Epoch 31/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - loss: 3.3628 - val_loss: 4.3702 Epoch 32/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.3407 - val_loss: 4.2236 Epoch 33/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.3169 - val_loss: 4.4223 Epoch 34/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.3279 - val_loss: 4.4552 Epoch 35/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.3056 - val_loss: 4.3616 Epoch 36/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2951 - val_loss: 4.3809 Epoch 37/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2880 - val_loss: 4.3187 Epoch 38/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2792 - val_loss: 4.3977 Epoch 39/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2783 - val_loss: 4.4247 Epoch 40/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2534 - val_loss: 4.3897 Epoch 41/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2459 - val_loss: 4.4584 Epoch 42/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.2340 - val_loss: 4.4334 Epoch 43/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 3.2373 - val_loss: 4.4619 Epoch 44/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2451 - val_loss: 4.4891 Epoch 45/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.2401 - val_loss: 4.4940 Epoch 46/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2400 - val_loss: 4.4847 Epoch 47/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2166 - val_loss: 4.4850 Epoch 48/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2169 - val_loss: 4.4808 Epoch 49/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step - loss: 3.2462 - val_loss: 4.4814 Epoch 50/50 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step - loss: 3.2285 - val_loss: 4.4813
INFO:bayesflow:Training completed in 16.32 seconds.
figs = workflows["fm"].plot_default_diagnostics(
test_data=test_data,
num_samples=300,
)




figs = workflows["cf"].plot_default_diagnostics(
test_data=test_data,
num_samples=300
)Using Deep Ensembles
EnsembleWorkflow trains multiple inference networks jointly on the same data. Each member learns a different posterior approximation, and their samples can be merged for better coverage.
workflow = bf.EnsembleWorkflow(
inference_networks={
"fm": bf.networks.FlowMatching(subnet_kwargs={"widths": (64,)*3}),
"dm": bf.networks.DiffusionModel(subnet_kwargs={"widths": (64,)*3}),
},
# The rest goes like before
inference_variables=param_names,
inference_conditions="summary_stats",
standardize="all"
)
history = workflow.fit_offline(train_data, batch_size=32, epochs=100, validation_data=test_data)INFO:bayesflow:EnsembleIndexedDataset: ensemble_size=2, batch_size=32, num_samples=1000, data_reuse=1.0 -> reduction_factor=1.00, window_size=1000, steps_per_epoch=32. Overlap is enforced at the subdataset level (member-specific windows into the global index pool).
INFO:bayesflow:Fitting on dataset instance of EnsembleDataset.
INFO:bayesflow:Building on a test batch.
Epoch 1/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 6s 122ms/step - dm/loss: 2.5058 - fm/loss: 2.9388 - loss: 5.4446 - val_dm/loss: 2.5018 - val_fm/loss: 2.9874 - val_loss: 5.4892 Epoch 2/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 2.4300 - fm/loss: 2.6749 - loss: 5.1049 - val_dm/loss: 0.7957 - val_fm/loss: 1.4401 - val_loss: 2.2357 Epoch 3/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 2.4576 - fm/loss: 1.9250 - loss: 4.3826 - val_dm/loss: 1.2014 - val_fm/loss: 1.8155 - val_loss: 3.0169 Epoch 4/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 2.1621 - fm/loss: 2.0378 - loss: 4.2000 - val_dm/loss: 0.8746 - val_fm/loss: 2.5016 - val_loss: 3.3763 Epoch 5/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.5714 - fm/loss: 1.6475 - loss: 3.2189 - val_dm/loss: 1.2338 - val_fm/loss: 1.4518 - val_loss: 2.6857 Epoch 6/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.5451 - fm/loss: 1.4986 - loss: 3.0437 - val_dm/loss: 0.7244 - val_fm/loss: 1.5274 - val_loss: 2.2518 Epoch 7/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.6956 - fm/loss: 1.4407 - loss: 3.1363 - val_dm/loss: 1.2454 - val_fm/loss: 0.9504 - val_loss: 2.1958 Epoch 8/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 4.7974 - fm/loss: 1.3261 - loss: 6.1234 - val_dm/loss: 0.4408 - val_fm/loss: 1.3368 - val_loss: 1.7776 Epoch 9/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.4514 - fm/loss: 1.6359 - loss: 3.0873 - val_dm/loss: 1.4344 - val_fm/loss: 1.2964 - val_loss: 2.7307 Epoch 10/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3222 - fm/loss: 1.3103 - loss: 2.6324 - val_dm/loss: 0.6875 - val_fm/loss: 1.0301 - val_loss: 1.7176 Epoch 11/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.7021 - fm/loss: 1.5721 - loss: 3.2742 - val_dm/loss: 0.7449 - val_fm/loss: 0.4122 - val_loss: 1.1571 Epoch 12/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3637 - fm/loss: 1.0498 - loss: 2.4136 - val_dm/loss: 0.9379 - val_fm/loss: 1.0611 - val_loss: 1.9989 Epoch 13/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.1958 - fm/loss: 1.2847 - loss: 2.4805 - val_dm/loss: 2.4199 - val_fm/loss: 0.7572 - val_loss: 3.1771 Epoch 14/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.7198 - fm/loss: 1.2961 - loss: 3.0159 - val_dm/loss: 1.0213 - val_fm/loss: 1.1112 - val_loss: 2.1325 Epoch 15/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3384 - fm/loss: 1.0748 - loss: 2.4132 - val_dm/loss: 0.6076 - val_fm/loss: 1.2300 - val_loss: 1.8376 Epoch 16/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 2.4902 - fm/loss: 0.9923 - loss: 3.4826 - val_dm/loss: 1.0754 - val_fm/loss: 0.9306 - val_loss: 2.0059 Epoch 17/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.7508 - fm/loss: 1.1791 - loss: 2.9300 - val_dm/loss: 1.7884 - val_fm/loss: 1.0864 - val_loss: 2.8747 Epoch 18/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 2.7521 - fm/loss: 1.5380 - loss: 4.2901 - val_dm/loss: 0.8132 - val_fm/loss: 0.9691 - val_loss: 1.7823 Epoch 19/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 2.5204 - fm/loss: 1.1015 - loss: 3.6219 - val_dm/loss: 5.9685 - val_fm/loss: 1.3702 - val_loss: 7.3387 Epoch 20/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.2424 - fm/loss: 0.9587 - loss: 2.2011 - val_dm/loss: 1.2309 - val_fm/loss: 1.3755 - val_loss: 2.6064 Epoch 21/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.1497 - fm/loss: 0.9750 - loss: 2.1247 - val_dm/loss: 0.4613 - val_fm/loss: 1.2584 - val_loss: 1.7196 Epoch 22/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3406 - fm/loss: 0.9391 - loss: 2.2797 - val_dm/loss: 1.5004 - val_fm/loss: 1.0767 - val_loss: 2.5771 Epoch 23/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 2.6855 - fm/loss: 1.1658 - loss: 3.8513 - val_dm/loss: 1.1586 - val_fm/loss: 0.9407 - val_loss: 2.0993 Epoch 24/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.4030 - fm/loss: 0.9600 - loss: 2.3630 - val_dm/loss: 1.1531 - val_fm/loss: 0.6984 - val_loss: 1.8514 Epoch 25/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.2147 - fm/loss: 1.0042 - loss: 2.2189 - val_dm/loss: 1.2193 - val_fm/loss: 0.8242 - val_loss: 2.0435 Epoch 26/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.8627 - fm/loss: 1.0769 - loss: 2.9397 - val_dm/loss: 1.9970 - val_fm/loss: 1.3102 - val_loss: 3.3073 Epoch 27/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.2830 - fm/loss: 1.0391 - loss: 2.3221 - val_dm/loss: 0.5818 - val_fm/loss: 1.4131 - val_loss: 1.9949 Epoch 28/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.2169 - fm/loss: 1.0852 - loss: 2.3021 - val_dm/loss: 1.9724 - val_fm/loss: 0.6243 - val_loss: 2.5967 Epoch 29/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.4123 - fm/loss: 1.2181 - loss: 2.6304 - val_dm/loss: 0.9759 - val_fm/loss: 0.5789 - val_loss: 1.5548 Epoch 30/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.5645 - fm/loss: 0.9049 - loss: 2.4693 - val_dm/loss: 0.8075 - val_fm/loss: 0.5208 - val_loss: 1.3284 Epoch 31/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.2470 - fm/loss: 1.1346 - loss: 2.3816 - val_dm/loss: 0.9339 - val_fm/loss: 0.9090 - val_loss: 1.8429 Epoch 32/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 0.8711 - fm/loss: 0.9869 - loss: 1.8580 - val_dm/loss: 1.3887 - val_fm/loss: 1.4001 - val_loss: 2.7888 Epoch 33/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3843 - fm/loss: 1.0078 - loss: 2.3921 - val_dm/loss: 1.4710 - val_fm/loss: 1.0089 - val_loss: 2.4800 Epoch 34/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3248 - fm/loss: 1.0452 - loss: 2.3700 - val_dm/loss: 0.9531 - val_fm/loss: 1.4072 - val_loss: 2.3603 Epoch 35/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.6772 - fm/loss: 0.7777 - loss: 2.4549 - val_dm/loss: 0.7646 - val_fm/loss: 1.5408 - val_loss: 2.3054 Epoch 36/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.8991 - fm/loss: 0.8783 - loss: 2.7774 - val_dm/loss: 1.0359 - val_fm/loss: 0.9711 - val_loss: 2.0070 Epoch 37/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.7286 - fm/loss: 1.0939 - loss: 2.8225 - val_dm/loss: 0.8291 - val_fm/loss: 0.7067 - val_loss: 1.5358 Epoch 38/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.1522 - fm/loss: 1.1983 - loss: 2.3505 - val_dm/loss: 1.0328 - val_fm/loss: 1.3207 - val_loss: 2.3535 Epoch 39/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.0192 - fm/loss: 0.9553 - loss: 1.9744 - val_dm/loss: 0.7538 - val_fm/loss: 1.1618 - val_loss: 1.9156 Epoch 40/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.9864 - fm/loss: 1.1678 - loss: 3.1541 - val_dm/loss: 1.6572 - val_fm/loss: 1.1077 - val_loss: 2.7648 Epoch 41/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3787 - fm/loss: 1.0067 - loss: 2.3854 - val_dm/loss: 0.7075 - val_fm/loss: 1.5528 - val_loss: 2.2603 Epoch 42/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 0.9845 - fm/loss: 1.0878 - loss: 2.0723 - val_dm/loss: 0.5120 - val_fm/loss: 1.0159 - val_loss: 1.5279 Epoch 43/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.5369 - fm/loss: 0.8784 - loss: 2.4153 - val_dm/loss: 1.1055 - val_fm/loss: 1.0740 - val_loss: 2.1795 Epoch 44/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.8658 - fm/loss: 0.7835 - loss: 2.6492 - val_dm/loss: 17.6500 - val_fm/loss: 1.0507 - val_loss: 18.7007 Epoch 45/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.4782 - fm/loss: 1.0621 - loss: 2.5404 - val_dm/loss: 0.8849 - val_fm/loss: 1.6042 - val_loss: 2.4891 Epoch 46/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3016 - fm/loss: 0.9973 - loss: 2.2989 - val_dm/loss: 0.8794 - val_fm/loss: 0.5485 - val_loss: 1.4278 Epoch 47/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.4573 - fm/loss: 0.9211 - loss: 2.3784 - val_dm/loss: 0.8221 - val_fm/loss: 0.8728 - val_loss: 1.6949 Epoch 48/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3161 - fm/loss: 0.9386 - loss: 2.2547 - val_dm/loss: 0.5343 - val_fm/loss: 1.0888 - val_loss: 1.6231 Epoch 49/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 0.9794 - fm/loss: 1.0152 - loss: 1.9946 - val_dm/loss: 2.1683 - val_fm/loss: 0.9310 - val_loss: 3.0993 Epoch 50/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.6541 - fm/loss: 0.8851 - loss: 2.5392 - val_dm/loss: 1.0980 - val_fm/loss: 0.6004 - val_loss: 1.6985 Epoch 51/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 3.0539 - fm/loss: 0.8644 - loss: 3.9183 - val_dm/loss: 1.2712 - val_fm/loss: 0.9216 - val_loss: 2.1928 Epoch 52/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.1531 - fm/loss: 0.8981 - loss: 2.0512 - val_dm/loss: 1.0406 - val_fm/loss: 0.6532 - val_loss: 1.6938 Epoch 53/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.0613 - fm/loss: 0.7551 - loss: 1.8164 - val_dm/loss: 0.6847 - val_fm/loss: 1.4540 - val_loss: 2.1387 Epoch 54/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.2722 - fm/loss: 0.9301 - loss: 2.2023 - val_dm/loss: 0.7444 - val_fm/loss: 0.3624 - val_loss: 1.1068 Epoch 55/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.2689 - fm/loss: 1.0471 - loss: 2.3160 - val_dm/loss: 1.4351 - val_fm/loss: 0.3480 - val_loss: 1.7831 Epoch 56/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.1674 - fm/loss: 0.9778 - loss: 2.1453 - val_dm/loss: 1.1388 - val_fm/loss: 0.8385 - val_loss: 1.9773 Epoch 57/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.0737 - fm/loss: 0.7602 - loss: 1.8340 - val_dm/loss: 0.9774 - val_fm/loss: 0.5813 - val_loss: 1.5587 Epoch 58/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 2.0739 - fm/loss: 0.9922 - loss: 3.0661 - val_dm/loss: 1.7128 - val_fm/loss: 1.4174 - val_loss: 3.1302 Epoch 59/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 16.5515 - fm/loss: 0.8951 - loss: 17.4466 - val_dm/loss: 0.8221 - val_fm/loss: 0.8770 - val_loss: 1.6991 Epoch 60/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.4921 - fm/loss: 0.9490 - loss: 2.4411 - val_dm/loss: 0.5828 - val_fm/loss: 0.9435 - val_loss: 1.5263 Epoch 61/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.1491 - fm/loss: 1.0424 - loss: 2.1915 - val_dm/loss: 4.4262 - val_fm/loss: 1.2655 - val_loss: 5.6917 Epoch 62/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3474 - fm/loss: 0.7892 - loss: 2.1366 - val_dm/loss: 0.9303 - val_fm/loss: 1.2030 - val_loss: 2.1333 Epoch 63/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 0.8882 - fm/loss: 0.9493 - loss: 1.8375 - val_dm/loss: 1.1028 - val_fm/loss: 0.9205 - val_loss: 2.0233 Epoch 64/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3828 - fm/loss: 0.9000 - loss: 2.2828 - val_dm/loss: 1.2021 - val_fm/loss: 0.6948 - val_loss: 1.8970 Epoch 65/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.5516 - fm/loss: 1.1050 - loss: 2.6566 - val_dm/loss: 0.6603 - val_fm/loss: 1.1181 - val_loss: 1.7784 Epoch 66/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.0622 - fm/loss: 1.1344 - loss: 2.1966 - val_dm/loss: 1.0017 - val_fm/loss: 0.8580 - val_loss: 1.8597 Epoch 67/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 3.6413 - fm/loss: 1.0104 - loss: 4.6517 - val_dm/loss: 1.8606 - val_fm/loss: 1.1641 - val_loss: 3.0248 Epoch 68/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3073 - fm/loss: 0.7661 - loss: 2.0734 - val_dm/loss: 1.3448 - val_fm/loss: 1.6907 - val_loss: 3.0355 Epoch 69/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.2140 - fm/loss: 0.9194 - loss: 2.1334 - val_dm/loss: 0.6585 - val_fm/loss: 0.9613 - val_loss: 1.6198 Epoch 70/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.0323 - fm/loss: 1.0889 - loss: 2.1212 - val_dm/loss: 1.2766 - val_fm/loss: 0.7261 - val_loss: 2.0026 Epoch 71/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.4042 - fm/loss: 0.7889 - loss: 2.1931 - val_dm/loss: 1.2018 - val_fm/loss: 0.8850 - val_loss: 2.0867 Epoch 72/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.7203 - fm/loss: 0.9870 - loss: 2.7073 - val_dm/loss: 1.9133 - val_fm/loss: 0.6871 - val_loss: 2.6004 Epoch 73/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.2632 - fm/loss: 0.9604 - loss: 2.2235 - val_dm/loss: 1.3939 - val_fm/loss: 0.8452 - val_loss: 2.2391 Epoch 74/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3669 - fm/loss: 0.8729 - loss: 2.2398 - val_dm/loss: 9.2167 - val_fm/loss: 1.1324 - val_loss: 10.3492 Epoch 75/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.2330 - fm/loss: 0.8900 - loss: 2.1229 - val_dm/loss: 1.2148 - val_fm/loss: 2.3371 - val_loss: 3.5519 Epoch 76/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.2003 - fm/loss: 0.7976 - loss: 1.9980 - val_dm/loss: 1.9335 - val_fm/loss: 1.1871 - val_loss: 3.1206 Epoch 77/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 0.9688 - fm/loss: 1.5656 - loss: 2.5344 - val_dm/loss: 1.2392 - val_fm/loss: 1.0152 - val_loss: 2.2544 Epoch 78/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.0199 - fm/loss: 1.1159 - loss: 2.1358 - val_dm/loss: 1.0344 - val_fm/loss: 0.9976 - val_loss: 2.0320 Epoch 79/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.1766 - fm/loss: 0.7954 - loss: 1.9720 - val_dm/loss: 1.3678 - val_fm/loss: 0.7602 - val_loss: 2.1280 Epoch 80/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.0165 - fm/loss: 0.9948 - loss: 2.0113 - val_dm/loss: 0.9656 - val_fm/loss: 0.7521 - val_loss: 1.7178 Epoch 81/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3309 - fm/loss: 1.0182 - loss: 2.3491 - val_dm/loss: 1.0725 - val_fm/loss: 0.8513 - val_loss: 1.9237 Epoch 82/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.2909 - fm/loss: 0.9920 - loss: 2.2828 - val_dm/loss: 0.9036 - val_fm/loss: 0.7802 - val_loss: 1.6837 Epoch 83/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 2.6637 - fm/loss: 0.9579 - loss: 3.6216 - val_dm/loss: 0.7546 - val_fm/loss: 1.1265 - val_loss: 1.8811 Epoch 84/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.1662 - fm/loss: 0.8902 - loss: 2.0563 - val_dm/loss: 1.2328 - val_fm/loss: 1.5100 - val_loss: 2.7428 Epoch 85/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.2541 - fm/loss: 0.6972 - loss: 1.9513 - val_dm/loss: 1.1820 - val_fm/loss: 1.5830 - val_loss: 2.7650 Epoch 86/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.1380 - fm/loss: 0.8086 - loss: 1.9466 - val_dm/loss: 1.0152 - val_fm/loss: 0.4375 - val_loss: 1.4527 Epoch 87/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.4684 - fm/loss: 0.8278 - loss: 2.2961 - val_dm/loss: 2.5808 - val_fm/loss: 0.8665 - val_loss: 3.4473 Epoch 88/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.1240 - fm/loss: 1.0226 - loss: 2.1466 - val_dm/loss: 1.0629 - val_fm/loss: 0.5699 - val_loss: 1.6328 Epoch 89/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 2.7106 - fm/loss: 0.7082 - loss: 3.4188 - val_dm/loss: 0.7865 - val_fm/loss: 0.4207 - val_loss: 1.2072 Epoch 90/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.0646 - fm/loss: 0.8721 - loss: 1.9367 - val_dm/loss: 1.3729 - val_fm/loss: 1.3483 - val_loss: 2.7212 Epoch 91/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.5327 - fm/loss: 0.8088 - loss: 2.3415 - val_dm/loss: 0.8775 - val_fm/loss: 1.1028 - val_loss: 1.9803 Epoch 92/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 4.7501 - fm/loss: 0.8155 - loss: 5.5656 - val_dm/loss: 0.5379 - val_fm/loss: 1.5103 - val_loss: 2.0483 Epoch 93/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.0911 - fm/loss: 0.9258 - loss: 2.0169 - val_dm/loss: 1.1647 - val_fm/loss: 1.2470 - val_loss: 2.4117 Epoch 94/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.1080 - fm/loss: 0.9333 - loss: 2.0413 - val_dm/loss: 1.1916 - val_fm/loss: 1.1387 - val_loss: 2.3303 Epoch 95/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3476 - fm/loss: 0.8922 - loss: 2.2398 - val_dm/loss: 0.5669 - val_fm/loss: 1.0731 - val_loss: 1.6399 Epoch 96/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.3392 - fm/loss: 0.8219 - loss: 2.1610 - val_dm/loss: 0.7377 - val_fm/loss: 0.9515 - val_loss: 1.6892 Epoch 97/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.1675 - fm/loss: 0.9758 - loss: 2.1433 - val_dm/loss: 0.4416 - val_fm/loss: 0.5975 - val_loss: 1.0391 Epoch 98/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - dm/loss: 1.7841 - fm/loss: 0.9877 - loss: 2.7717 - val_dm/loss: 0.8066 - val_fm/loss: 1.3596 - val_loss: 2.1662 Epoch 99/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.9080 - fm/loss: 0.9525 - loss: 2.8604 - val_dm/loss: 1.4704 - val_fm/loss: 0.8391 - val_loss: 2.3095 Epoch 100/100 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - dm/loss: 1.6514 - fm/loss: 0.9556 - loss: 2.6070 - val_dm/loss: 0.4518 - val_fm/loss: 0.5444 - val_loss: 0.9962
INFO:bayesflow:Training completed in 15.66 seconds.
# Obtain posterior draws from all ensemble members
marginal_draws = workflow.sample(
conditions=test_data,
batch_size=25,
num_samples=300,
merge_members=False
)WARNING:bayesflow:JAX backend needs to preallocate random samples for 'max_steps=1000'.
WARNING:bayesflow:JAX backend needs to preallocate random samples for 'max_steps=1000'.
WARNING:bayesflow:JAX backend needs to preallocate random samples for 'max_steps=1000'.
WARNING:bayesflow:JAX backend needs to preallocate random samples for 'max_steps=1000'.
INFO:bayesflow:Sampling completed in 32.16 seconds.
Why merge_members=False? By default, EnsembleWorkflow.sample() pools draws from all members into a single sample. Setting merge_members=False returns a dict keyed by member name, so we can inspect each member’s recovery performance individually and diagnose which estimator contributes most (or poorly).
for member, samples in marginal_draws.items():
f = bf.diagnostics.recovery(samples, test_data, variable_names=param_names)
f.suptitle(f"Recovery - Ensemble Member {member.upper()}")

Adding Point Estimators to the mix
workflow = bf.EnsembleWorkflow(
inference_networks={
"fm": bf.networks.FlowMatching(subnet_kwargs={"widths": (128,)*3}),
"dm": bf.networks.DiffusionModel(subnet_kwargs={"widths": (128,)*3}),
"qt": bf.networks.ScoringRuleNetwork(
quantiles=bf.scoring_rules.QuantileScore(np.linspace(0.1,0.9,5)),
)
},
inference_variables=param_names,
inference_conditions="summary_stats",
standardize="all"
)
history = workflow.fit_offline(train_data, batch_size=32, epochs=200, validation_data=test_data)INFO:bayesflow:EnsembleIndexedDataset: ensemble_size=3, batch_size=32, num_samples=1000, data_reuse=1.0 -> reduction_factor=1.00, window_size=1000, steps_per_epoch=32. Overlap is enforced at the subdataset level (member-specific windows into the global index pool).
INFO:bayesflow:Fitting on dataset instance of EnsembleDataset.
INFO:bayesflow:Building on a test batch.
Epoch 1/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 7s 131ms/step - dm/loss: 2.6307 - fm/loss: 2.9853 - loss: 6.1702 - qt/ScoringRuleNetwork/quantiles: 0.5542 - qt/loss: 0.5542 - val_dm/loss: 1.9800 - val_fm/loss: 2.2685 - val_loss: 4.7464 - val_qt/ScoringRuleNetwork/quantiles: 0.4979 - val_qt/loss: 0.4979 Epoch 2/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.3626 - fm/loss: 2.2608 - loss: 5.0501 - qt/ScoringRuleNetwork/quantiles: 0.4268 - qt/loss: 0.4268 - val_dm/loss: 1.6676 - val_fm/loss: 1.5307 - val_loss: 3.4876 - val_qt/ScoringRuleNetwork/quantiles: 0.2893 - val_qt/loss: 0.2893 Epoch 3/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.6822 - fm/loss: 1.8644 - loss: 3.8553 - qt/ScoringRuleNetwork/quantiles: 0.3087 - qt/loss: 0.3087 - val_dm/loss: 1.6884 - val_fm/loss: 2.4660 - val_loss: 4.3911 - val_qt/ScoringRuleNetwork/quantiles: 0.2367 - val_qt/loss: 0.2367 Epoch 4/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.5518 - fm/loss: 1.7416 - loss: 3.6161 - qt/ScoringRuleNetwork/quantiles: 0.3226 - qt/loss: 0.3226 - val_dm/loss: 1.4081 - val_fm/loss: 2.0006 - val_loss: 3.6092 - val_qt/ScoringRuleNetwork/quantiles: 0.2005 - val_qt/loss: 0.2005 Epoch 5/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 2.8184 - fm/loss: 1.2495 - loss: 4.3744 - qt/ScoringRuleNetwork/quantiles: 0.3065 - qt/loss: 0.3065 - val_dm/loss: 1.2517 - val_fm/loss: 1.0753 - val_loss: 2.5263 - val_qt/ScoringRuleNetwork/quantiles: 0.1993 - val_qt/loss: 0.1993 Epoch 6/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.6851 - fm/loss: 1.5090 - loss: 3.4685 - qt/ScoringRuleNetwork/quantiles: 0.2744 - qt/loss: 0.2744 - val_dm/loss: 1.2300 - val_fm/loss: 1.3932 - val_loss: 2.8171 - val_qt/ScoringRuleNetwork/quantiles: 0.1939 - val_qt/loss: 0.1939 Epoch 7/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2377 - fm/loss: 1.2286 - loss: 2.7011 - qt/ScoringRuleNetwork/quantiles: 0.2348 - qt/loss: 0.2348 - val_dm/loss: 1.0336 - val_fm/loss: 0.8119 - val_loss: 2.0240 - val_qt/ScoringRuleNetwork/quantiles: 0.1785 - val_qt/loss: 0.1785 Epoch 8/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3778 - fm/loss: 1.3865 - loss: 3.0358 - qt/ScoringRuleNetwork/quantiles: 0.2715 - qt/loss: 0.2715 - val_dm/loss: 0.9412 - val_fm/loss: 1.3967 - val_loss: 2.5415 - val_qt/ScoringRuleNetwork/quantiles: 0.2036 - val_qt/loss: 0.2036 Epoch 9/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.8325 - fm/loss: 1.4101 - loss: 3.4972 - qt/ScoringRuleNetwork/quantiles: 0.2546 - qt/loss: 0.2546 - val_dm/loss: 0.9738 - val_fm/loss: 1.4718 - val_loss: 2.6306 - val_qt/ScoringRuleNetwork/quantiles: 0.1849 - val_qt/loss: 0.1849 Epoch 10/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0529 - fm/loss: 1.1619 - loss: 2.4895 - qt/ScoringRuleNetwork/quantiles: 0.2747 - qt/loss: 0.2747 - val_dm/loss: 1.8788 - val_fm/loss: 0.6409 - val_loss: 2.6899 - val_qt/ScoringRuleNetwork/quantiles: 0.1702 - val_qt/loss: 0.1702 Epoch 11/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.6166 - fm/loss: 1.3464 - loss: 4.2078 - qt/ScoringRuleNetwork/quantiles: 0.2447 - qt/loss: 0.2447 - val_dm/loss: 1.9747 - val_fm/loss: 1.7731 - val_loss: 4.2863 - val_qt/ScoringRuleNetwork/quantiles: 0.5385 - val_qt/loss: 0.5385 Epoch 12/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.1605 - fm/loss: 1.2937 - loss: 2.6454 - qt/ScoringRuleNetwork/quantiles: 0.1911 - qt/loss: 0.1911 - val_dm/loss: 1.0770 - val_fm/loss: 0.7164 - val_loss: 1.9493 - val_qt/ScoringRuleNetwork/quantiles: 0.1559 - val_qt/loss: 0.1559 Epoch 13/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0664 - fm/loss: 1.0004 - loss: 2.2775 - qt/ScoringRuleNetwork/quantiles: 0.2107 - qt/loss: 0.2107 - val_dm/loss: 1.3893 - val_fm/loss: 1.4302 - val_loss: 3.0477 - val_qt/ScoringRuleNetwork/quantiles: 0.2282 - val_qt/loss: 0.2282 Epoch 14/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.7802 - fm/loss: 0.8730 - loss: 3.8469 - qt/ScoringRuleNetwork/quantiles: 0.1938 - qt/loss: 0.1938 - val_dm/loss: 1.7170 - val_fm/loss: 0.6177 - val_loss: 2.5370 - val_qt/ScoringRuleNetwork/quantiles: 0.2023 - val_qt/loss: 0.2023 Epoch 15/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.6616 - fm/loss: 1.0546 - loss: 2.9289 - qt/ScoringRuleNetwork/quantiles: 0.2127 - qt/loss: 0.2127 - val_dm/loss: 0.7027 - val_fm/loss: 1.5736 - val_loss: 2.4832 - val_qt/ScoringRuleNetwork/quantiles: 0.2068 - val_qt/loss: 0.2068 Epoch 16/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2981 - fm/loss: 1.1980 - loss: 2.7589 - qt/ScoringRuleNetwork/quantiles: 0.2629 - qt/loss: 0.2629 - val_dm/loss: 2.8712 - val_fm/loss: 0.7155 - val_loss: 3.7931 - val_qt/ScoringRuleNetwork/quantiles: 0.2064 - val_qt/loss: 0.2064 Epoch 17/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3173 - fm/loss: 1.1603 - loss: 2.6762 - qt/ScoringRuleNetwork/quantiles: 0.1985 - qt/loss: 0.1985 - val_dm/loss: 0.5763 - val_fm/loss: 1.0716 - val_loss: 1.7774 - val_qt/ScoringRuleNetwork/quantiles: 0.1294 - val_qt/loss: 0.1294 Epoch 18/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.8383 - fm/loss: 0.8210 - loss: 2.8426 - qt/ScoringRuleNetwork/quantiles: 0.1834 - qt/loss: 0.1834 - val_dm/loss: 0.4717 - val_fm/loss: 0.9329 - val_loss: 1.5752 - val_qt/ScoringRuleNetwork/quantiles: 0.1706 - val_qt/loss: 0.1706 Epoch 19/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.3131 - fm/loss: 0.9852 - loss: 2.5732 - qt/ScoringRuleNetwork/quantiles: 0.2749 - qt/loss: 0.2749 - val_dm/loss: 1.7119 - val_fm/loss: 0.7232 - val_loss: 2.5840 - val_qt/ScoringRuleNetwork/quantiles: 0.1488 - val_qt/loss: 0.1488 Epoch 20/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.5430 - fm/loss: 0.9883 - loss: 2.7218 - qt/ScoringRuleNetwork/quantiles: 0.1906 - qt/loss: 0.1906 - val_dm/loss: 1.4898 - val_fm/loss: 1.0731 - val_loss: 2.7812 - val_qt/ScoringRuleNetwork/quantiles: 0.2183 - val_qt/loss: 0.2183 Epoch 21/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.4404 - fm/loss: 1.0949 - loss: 2.7328 - qt/ScoringRuleNetwork/quantiles: 0.1975 - qt/loss: 0.1975 - val_dm/loss: 1.1572 - val_fm/loss: 1.1549 - val_loss: 2.5571 - val_qt/ScoringRuleNetwork/quantiles: 0.2450 - val_qt/loss: 0.2450 Epoch 22/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.4239 - fm/loss: 1.1049 - loss: 2.7342 - qt/ScoringRuleNetwork/quantiles: 0.2054 - qt/loss: 0.2054 - val_dm/loss: 0.8599 - val_fm/loss: 0.6814 - val_loss: 1.7011 - val_qt/ScoringRuleNetwork/quantiles: 0.1598 - val_qt/loss: 0.1598 Epoch 23/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2416 - fm/loss: 1.0932 - loss: 2.5435 - qt/ScoringRuleNetwork/quantiles: 0.2086 - qt/loss: 0.2086 - val_dm/loss: 0.8690 - val_fm/loss: 1.0601 - val_loss: 2.0797 - val_qt/ScoringRuleNetwork/quantiles: 0.1506 - val_qt/loss: 0.1506 Epoch 24/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.2199 - fm/loss: 0.7596 - loss: 3.1451 - qt/ScoringRuleNetwork/quantiles: 0.1656 - qt/loss: 0.1656 - val_dm/loss: 1.4607 - val_fm/loss: 0.6079 - val_loss: 2.2008 - val_qt/ScoringRuleNetwork/quantiles: 0.1322 - val_qt/loss: 0.1322 Epoch 25/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0166 - fm/loss: 0.7805 - loss: 1.9843 - qt/ScoringRuleNetwork/quantiles: 0.1872 - qt/loss: 0.1872 - val_dm/loss: 1.2854 - val_fm/loss: 0.6739 - val_loss: 2.0988 - val_qt/ScoringRuleNetwork/quantiles: 0.1395 - val_qt/loss: 0.1395 Epoch 26/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2779 - fm/loss: 0.9269 - loss: 2.3986 - qt/ScoringRuleNetwork/quantiles: 0.1938 - qt/loss: 0.1938 - val_dm/loss: 2.3058 - val_fm/loss: 0.7993 - val_loss: 3.3779 - val_qt/ScoringRuleNetwork/quantiles: 0.2729 - val_qt/loss: 0.2729 Epoch 27/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2040 - fm/loss: 1.0397 - loss: 2.4616 - qt/ScoringRuleNetwork/quantiles: 0.2180 - qt/loss: 0.2180 - val_dm/loss: 1.1303 - val_fm/loss: 1.3645 - val_loss: 2.6787 - val_qt/ScoringRuleNetwork/quantiles: 0.1840 - val_qt/loss: 0.1840 Epoch 28/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.0884 - fm/loss: 0.9528 - loss: 3.2240 - qt/ScoringRuleNetwork/quantiles: 0.1827 - qt/loss: 0.1827 - val_dm/loss: 1.7570 - val_fm/loss: 0.6916 - val_loss: 2.6082 - val_qt/ScoringRuleNetwork/quantiles: 0.1596 - val_qt/loss: 0.1596 Epoch 29/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.4628 - fm/loss: 0.9529 - loss: 3.6012 - qt/ScoringRuleNetwork/quantiles: 0.1856 - qt/loss: 0.1856 - val_dm/loss: 0.9315 - val_fm/loss: 0.7722 - val_loss: 1.9398 - val_qt/ScoringRuleNetwork/quantiles: 0.2360 - val_qt/loss: 0.2360 Epoch 30/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0012 - fm/loss: 0.9912 - loss: 2.1824 - qt/ScoringRuleNetwork/quantiles: 0.1900 - qt/loss: 0.1900 - val_dm/loss: 0.8796 - val_fm/loss: 0.5124 - val_loss: 1.5762 - val_qt/ScoringRuleNetwork/quantiles: 0.1842 - val_qt/loss: 0.1842 Epoch 31/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0755 - fm/loss: 0.9929 - loss: 2.2444 - qt/ScoringRuleNetwork/quantiles: 0.1761 - qt/loss: 0.1761 - val_dm/loss: 1.0225 - val_fm/loss: 0.8813 - val_loss: 2.1537 - val_qt/ScoringRuleNetwork/quantiles: 0.2499 - val_qt/loss: 0.2499 Epoch 32/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.2854 - fm/loss: 0.9273 - loss: 2.3762 - qt/ScoringRuleNetwork/quantiles: 0.1635 - qt/loss: 0.1635 - val_dm/loss: 0.8765 - val_fm/loss: 0.9846 - val_loss: 2.0292 - val_qt/ScoringRuleNetwork/quantiles: 0.1681 - val_qt/loss: 0.1681 Epoch 33/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.5829 - fm/loss: 0.7974 - loss: 2.5663 - qt/ScoringRuleNetwork/quantiles: 0.1860 - qt/loss: 0.1860 - val_dm/loss: 0.6899 - val_fm/loss: 0.5927 - val_loss: 1.4493 - val_qt/ScoringRuleNetwork/quantiles: 0.1667 - val_qt/loss: 0.1667 Epoch 34/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.0505 - fm/loss: 0.8806 - loss: 2.1034 - qt/ScoringRuleNetwork/quantiles: 0.1723 - qt/loss: 0.1723 - val_dm/loss: 1.1792 - val_fm/loss: 1.3813 - val_loss: 2.7981 - val_qt/ScoringRuleNetwork/quantiles: 0.2375 - val_qt/loss: 0.2375 Epoch 35/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0638 - fm/loss: 1.1069 - loss: 2.3440 - qt/ScoringRuleNetwork/quantiles: 0.1733 - qt/loss: 0.1733 - val_dm/loss: 6.6388 - val_fm/loss: 0.5704 - val_loss: 7.3662 - val_qt/ScoringRuleNetwork/quantiles: 0.1570 - val_qt/loss: 0.1570 Epoch 36/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.0366 - fm/loss: 0.7288 - loss: 1.9089 - qt/ScoringRuleNetwork/quantiles: 0.1435 - qt/loss: 0.1435 - val_dm/loss: 1.2923 - val_fm/loss: 1.1335 - val_loss: 2.6040 - val_qt/ScoringRuleNetwork/quantiles: 0.1782 - val_qt/loss: 0.1782 Epoch 37/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1707 - fm/loss: 1.1297 - loss: 2.4754 - qt/ScoringRuleNetwork/quantiles: 0.1750 - qt/loss: 0.1750 - val_dm/loss: 0.7372 - val_fm/loss: 0.9403 - val_loss: 1.8600 - val_qt/ScoringRuleNetwork/quantiles: 0.1826 - val_qt/loss: 0.1826 Epoch 38/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3915 - fm/loss: 0.8301 - loss: 2.3825 - qt/ScoringRuleNetwork/quantiles: 0.1609 - qt/loss: 0.1609 - val_dm/loss: 3.4053 - val_fm/loss: 0.6250 - val_loss: 4.2022 - val_qt/ScoringRuleNetwork/quantiles: 0.1718 - val_qt/loss: 0.1718 Epoch 39/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 7.1400 - fm/loss: 0.9648 - loss: 8.2670 - qt/ScoringRuleNetwork/quantiles: 0.1623 - qt/loss: 0.1623 - val_dm/loss: 0.8602 - val_fm/loss: 0.7563 - val_loss: 1.8485 - val_qt/ScoringRuleNetwork/quantiles: 0.2319 - val_qt/loss: 0.2319 Epoch 40/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.1089 - fm/loss: 0.8436 - loss: 3.1151 - qt/ScoringRuleNetwork/quantiles: 0.1626 - qt/loss: 0.1626 - val_dm/loss: 1.5006 - val_fm/loss: 1.3422 - val_loss: 3.0139 - val_qt/ScoringRuleNetwork/quantiles: 0.1711 - val_qt/loss: 0.1711 Epoch 41/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 0.9709 - fm/loss: 0.8894 - loss: 2.0358 - qt/ScoringRuleNetwork/quantiles: 0.1755 - qt/loss: 0.1755 - val_dm/loss: 0.8170 - val_fm/loss: 1.0416 - val_loss: 2.0115 - val_qt/ScoringRuleNetwork/quantiles: 0.1528 - val_qt/loss: 0.1528 Epoch 42/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.0348 - fm/loss: 0.9425 - loss: 2.1316 - qt/ScoringRuleNetwork/quantiles: 0.1543 - qt/loss: 0.1543 - val_dm/loss: 0.6864 - val_fm/loss: 0.7283 - val_loss: 1.6045 - val_qt/ScoringRuleNetwork/quantiles: 0.1898 - val_qt/loss: 0.1898 Epoch 43/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 3.4438 - fm/loss: 0.7347 - loss: 4.3277 - qt/ScoringRuleNetwork/quantiles: 0.1492 - qt/loss: 0.1492 - val_dm/loss: 1.6740 - val_fm/loss: 0.9080 - val_loss: 2.7731 - val_qt/ScoringRuleNetwork/quantiles: 0.1911 - val_qt/loss: 0.1911 Epoch 44/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.9629 - fm/loss: 0.8134 - loss: 3.9471 - qt/ScoringRuleNetwork/quantiles: 0.1707 - qt/loss: 0.1707 - val_dm/loss: 2.8576 - val_fm/loss: 1.1336 - val_loss: 4.1497 - val_qt/ScoringRuleNetwork/quantiles: 0.1585 - val_qt/loss: 0.1585 Epoch 45/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.1526 - fm/loss: 1.0421 - loss: 2.3565 - qt/ScoringRuleNetwork/quantiles: 0.1618 - qt/loss: 0.1618 - val_dm/loss: 1.0632 - val_fm/loss: 0.7181 - val_loss: 1.9637 - val_qt/ScoringRuleNetwork/quantiles: 0.1825 - val_qt/loss: 0.1825 Epoch 46/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.0948 - fm/loss: 0.8971 - loss: 2.1630 - qt/ScoringRuleNetwork/quantiles: 0.1711 - qt/loss: 0.1711 - val_dm/loss: 0.7497 - val_fm/loss: 0.7064 - val_loss: 1.6245 - val_qt/ScoringRuleNetwork/quantiles: 0.1684 - val_qt/loss: 0.1684 Epoch 47/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1712 - fm/loss: 1.0862 - loss: 2.4203 - qt/ScoringRuleNetwork/quantiles: 0.1629 - qt/loss: 0.1629 - val_dm/loss: 7.1259 - val_fm/loss: 1.7105 - val_loss: 9.0430 - val_qt/ScoringRuleNetwork/quantiles: 0.2066 - val_qt/loss: 0.2066 Epoch 48/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.4089 - fm/loss: 0.8754 - loss: 2.4494 - qt/ScoringRuleNetwork/quantiles: 0.1652 - qt/loss: 0.1652 - val_dm/loss: 0.5934 - val_fm/loss: 0.5000 - val_loss: 1.2920 - val_qt/ScoringRuleNetwork/quantiles: 0.1986 - val_qt/loss: 0.1986 Epoch 49/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.4451 - fm/loss: 0.8851 - loss: 2.5172 - qt/ScoringRuleNetwork/quantiles: 0.1870 - qt/loss: 0.1870 - val_dm/loss: 0.7466 - val_fm/loss: 1.3544 - val_loss: 2.3155 - val_qt/ScoringRuleNetwork/quantiles: 0.2145 - val_qt/loss: 0.2145 Epoch 50/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3314 - fm/loss: 0.9075 - loss: 2.4066 - qt/ScoringRuleNetwork/quantiles: 0.1677 - qt/loss: 0.1677 - val_dm/loss: 0.5820 - val_fm/loss: 1.7108 - val_loss: 2.4947 - val_qt/ScoringRuleNetwork/quantiles: 0.2019 - val_qt/loss: 0.2019 Epoch 51/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.1818 - fm/loss: 1.0552 - loss: 2.3941 - qt/ScoringRuleNetwork/quantiles: 0.1571 - qt/loss: 0.1571 - val_dm/loss: 1.3145 - val_fm/loss: 1.1779 - val_loss: 2.7333 - val_qt/ScoringRuleNetwork/quantiles: 0.2409 - val_qt/loss: 0.2409 Epoch 52/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.6117 - fm/loss: 1.1186 - loss: 2.8962 - qt/ScoringRuleNetwork/quantiles: 0.1660 - qt/loss: 0.1660 - val_dm/loss: 0.8716 - val_fm/loss: 0.5739 - val_loss: 1.6133 - val_qt/ScoringRuleNetwork/quantiles: 0.1677 - val_qt/loss: 0.1677 Epoch 53/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3085 - fm/loss: 0.9663 - loss: 2.4336 - qt/ScoringRuleNetwork/quantiles: 0.1587 - qt/loss: 0.1587 - val_dm/loss: 1.6004 - val_fm/loss: 1.7441 - val_loss: 3.5447 - val_qt/ScoringRuleNetwork/quantiles: 0.2002 - val_qt/loss: 0.2002 Epoch 54/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.6851 - fm/loss: 1.0094 - loss: 2.8817 - qt/ScoringRuleNetwork/quantiles: 0.1872 - qt/loss: 0.1872 - val_dm/loss: 1.4212 - val_fm/loss: 2.4053 - val_loss: 4.0016 - val_qt/ScoringRuleNetwork/quantiles: 0.1751 - val_qt/loss: 0.1751 Epoch 55/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.6518 - fm/loss: 0.6774 - loss: 2.4956 - qt/ScoringRuleNetwork/quantiles: 0.1664 - qt/loss: 0.1664 - val_dm/loss: 1.9979 - val_fm/loss: 0.4171 - val_loss: 2.5980 - val_qt/ScoringRuleNetwork/quantiles: 0.1830 - val_qt/loss: 0.1830 Epoch 56/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.5390 - fm/loss: 0.8962 - loss: 2.5956 - qt/ScoringRuleNetwork/quantiles: 0.1603 - qt/loss: 0.1603 - val_dm/loss: 0.6212 - val_fm/loss: 1.2168 - val_loss: 2.0277 - val_qt/ScoringRuleNetwork/quantiles: 0.1896 - val_qt/loss: 0.1896 Epoch 57/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1512 - fm/loss: 0.8727 - loss: 2.1944 - qt/ScoringRuleNetwork/quantiles: 0.1706 - qt/loss: 0.1706 - val_dm/loss: 1.0399 - val_fm/loss: 0.6570 - val_loss: 1.8434 - val_qt/ScoringRuleNetwork/quantiles: 0.1465 - val_qt/loss: 0.1465 Epoch 58/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.1041 - fm/loss: 0.6714 - loss: 1.9228 - qt/ScoringRuleNetwork/quantiles: 0.1472 - qt/loss: 0.1472 - val_dm/loss: 1.1272 - val_fm/loss: 0.7760 - val_loss: 2.1016 - val_qt/ScoringRuleNetwork/quantiles: 0.1984 - val_qt/loss: 0.1984 Epoch 59/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.8185 - fm/loss: 0.7971 - loss: 2.8006 - qt/ScoringRuleNetwork/quantiles: 0.1851 - qt/loss: 0.1851 - val_dm/loss: 1.1288 - val_fm/loss: 0.8896 - val_loss: 2.2903 - val_qt/ScoringRuleNetwork/quantiles: 0.2719 - val_qt/loss: 0.2719 Epoch 60/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 0.9091 - fm/loss: 0.8099 - loss: 1.8799 - qt/ScoringRuleNetwork/quantiles: 0.1609 - qt/loss: 0.1609 - val_dm/loss: 0.8468 - val_fm/loss: 0.6975 - val_loss: 1.7438 - val_qt/ScoringRuleNetwork/quantiles: 0.1995 - val_qt/loss: 0.1995 Epoch 61/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1090 - fm/loss: 0.8002 - loss: 2.0675 - qt/ScoringRuleNetwork/quantiles: 0.1582 - qt/loss: 0.1582 - val_dm/loss: 0.6991 - val_fm/loss: 0.6803 - val_loss: 1.5346 - val_qt/ScoringRuleNetwork/quantiles: 0.1552 - val_qt/loss: 0.1552 Epoch 62/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3014 - fm/loss: 1.0206 - loss: 2.5478 - qt/ScoringRuleNetwork/quantiles: 0.2258 - qt/loss: 0.2258 - val_dm/loss: 1.1048 - val_fm/loss: 1.4101 - val_loss: 2.6627 - val_qt/ScoringRuleNetwork/quantiles: 0.1478 - val_qt/loss: 0.1478 Epoch 63/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.4329 - fm/loss: 0.6477 - loss: 2.2387 - qt/ScoringRuleNetwork/quantiles: 0.1582 - qt/loss: 0.1582 - val_dm/loss: 0.6673 - val_fm/loss: 1.0251 - val_loss: 1.8231 - val_qt/ScoringRuleNetwork/quantiles: 0.1306 - val_qt/loss: 0.1306 Epoch 64/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2874 - fm/loss: 1.0278 - loss: 2.4695 - qt/ScoringRuleNetwork/quantiles: 0.1544 - qt/loss: 0.1544 - val_dm/loss: 16.6690 - val_fm/loss: 0.5101 - val_loss: 17.2880 - val_qt/ScoringRuleNetwork/quantiles: 0.1088 - val_qt/loss: 0.1088 Epoch 65/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1674 - fm/loss: 1.0112 - loss: 2.3452 - qt/ScoringRuleNetwork/quantiles: 0.1666 - qt/loss: 0.1666 - val_dm/loss: 1.1096 - val_fm/loss: 0.9013 - val_loss: 2.1727 - val_qt/ScoringRuleNetwork/quantiles: 0.1618 - val_qt/loss: 0.1618 Epoch 66/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2191 - fm/loss: 0.8647 - loss: 2.2423 - qt/ScoringRuleNetwork/quantiles: 0.1585 - qt/loss: 0.1585 - val_dm/loss: 0.6690 - val_fm/loss: 1.1900 - val_loss: 2.0585 - val_qt/ScoringRuleNetwork/quantiles: 0.1995 - val_qt/loss: 0.1995 Epoch 67/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1496 - fm/loss: 0.8093 - loss: 2.1058 - qt/ScoringRuleNetwork/quantiles: 0.1469 - qt/loss: 0.1469 - val_dm/loss: 0.8496 - val_fm/loss: 1.2305 - val_loss: 2.2266 - val_qt/ScoringRuleNetwork/quantiles: 0.1466 - val_qt/loss: 0.1466 Epoch 68/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1881 - fm/loss: 0.8286 - loss: 2.1803 - qt/ScoringRuleNetwork/quantiles: 0.1636 - qt/loss: 0.1636 - val_dm/loss: 1.7084 - val_fm/loss: 0.7661 - val_loss: 2.6120 - val_qt/ScoringRuleNetwork/quantiles: 0.1376 - val_qt/loss: 0.1376 Epoch 69/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2499 - fm/loss: 0.8177 - loss: 2.2171 - qt/ScoringRuleNetwork/quantiles: 0.1495 - qt/loss: 0.1495 - val_dm/loss: 1.1692 - val_fm/loss: 0.9699 - val_loss: 2.3471 - val_qt/ScoringRuleNetwork/quantiles: 0.2080 - val_qt/loss: 0.2080 Epoch 70/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.0847 - fm/loss: 0.9129 - loss: 2.1460 - qt/ScoringRuleNetwork/quantiles: 0.1484 - qt/loss: 0.1484 - val_dm/loss: 1.1370 - val_fm/loss: 1.1292 - val_loss: 2.4207 - val_qt/ScoringRuleNetwork/quantiles: 0.1545 - val_qt/loss: 0.1545 Epoch 71/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.0596 - fm/loss: 1.0180 - loss: 2.2431 - qt/ScoringRuleNetwork/quantiles: 0.1656 - qt/loss: 0.1656 - val_dm/loss: 0.5551 - val_fm/loss: 0.9637 - val_loss: 1.7601 - val_qt/ScoringRuleNetwork/quantiles: 0.2413 - val_qt/loss: 0.2413 Epoch 72/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0581 - fm/loss: 0.7845 - loss: 2.0031 - qt/ScoringRuleNetwork/quantiles: 0.1606 - qt/loss: 0.1606 - val_dm/loss: 1.2386 - val_fm/loss: 0.8318 - val_loss: 2.2369 - val_qt/ScoringRuleNetwork/quantiles: 0.1665 - val_qt/loss: 0.1665 Epoch 73/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3060 - fm/loss: 0.8712 - loss: 2.3348 - qt/ScoringRuleNetwork/quantiles: 0.1576 - qt/loss: 0.1576 - val_dm/loss: 0.7742 - val_fm/loss: 0.6631 - val_loss: 1.5936 - val_qt/ScoringRuleNetwork/quantiles: 0.1563 - val_qt/loss: 0.1563 Epoch 74/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1491 - fm/loss: 0.7732 - loss: 2.0763 - qt/ScoringRuleNetwork/quantiles: 0.1540 - qt/loss: 0.1540 - val_dm/loss: 0.5555 - val_fm/loss: 0.6541 - val_loss: 1.3741 - val_qt/ScoringRuleNetwork/quantiles: 0.1645 - val_qt/loss: 0.1645 Epoch 75/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 2.2303 - fm/loss: 0.8127 - loss: 3.2114 - qt/ScoringRuleNetwork/quantiles: 0.1684 - qt/loss: 0.1684 - val_dm/loss: 1.7191 - val_fm/loss: 0.6526 - val_loss: 2.5490 - val_qt/ScoringRuleNetwork/quantiles: 0.1772 - val_qt/loss: 0.1772 Epoch 76/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9574 - fm/loss: 0.9154 - loss: 2.0360 - qt/ScoringRuleNetwork/quantiles: 0.1631 - qt/loss: 0.1631 - val_dm/loss: 0.8920 - val_fm/loss: 0.6628 - val_loss: 1.7221 - val_qt/ScoringRuleNetwork/quantiles: 0.1673 - val_qt/loss: 0.1673 Epoch 77/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9359 - fm/loss: 0.5872 - loss: 1.6656 - qt/ScoringRuleNetwork/quantiles: 0.1425 - qt/loss: 0.1425 - val_dm/loss: 1.1868 - val_fm/loss: 0.7832 - val_loss: 2.1919 - val_qt/ScoringRuleNetwork/quantiles: 0.2218 - val_qt/loss: 0.2218 Epoch 78/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0326 - fm/loss: 0.6861 - loss: 1.8742 - qt/ScoringRuleNetwork/quantiles: 0.1555 - qt/loss: 0.1555 - val_dm/loss: 1.5829 - val_fm/loss: 0.6953 - val_loss: 2.4102 - val_qt/ScoringRuleNetwork/quantiles: 0.1319 - val_qt/loss: 0.1319 Epoch 79/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3773 - fm/loss: 0.7419 - loss: 2.2828 - qt/ScoringRuleNetwork/quantiles: 0.1636 - qt/loss: 0.1636 - val_dm/loss: 1.4768 - val_fm/loss: 0.9317 - val_loss: 2.6026 - val_qt/ScoringRuleNetwork/quantiles: 0.1941 - val_qt/loss: 0.1941 Epoch 80/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.8967 - fm/loss: 0.6920 - loss: 1.7216 - qt/ScoringRuleNetwork/quantiles: 0.1329 - qt/loss: 0.1329 - val_dm/loss: 0.9083 - val_fm/loss: 0.6699 - val_loss: 1.7038 - val_qt/ScoringRuleNetwork/quantiles: 0.1256 - val_qt/loss: 0.1256 Epoch 81/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 0.9803 - fm/loss: 0.8444 - loss: 1.9600 - qt/ScoringRuleNetwork/quantiles: 0.1352 - qt/loss: 0.1352 - val_dm/loss: 0.4506 - val_fm/loss: 0.7287 - val_loss: 1.3482 - val_qt/ScoringRuleNetwork/quantiles: 0.1689 - val_qt/loss: 0.1689 Epoch 82/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.4618 - fm/loss: 0.8959 - loss: 2.5208 - qt/ScoringRuleNetwork/quantiles: 0.1630 - qt/loss: 0.1630 - val_dm/loss: 0.3483 - val_fm/loss: 0.7905 - val_loss: 1.3351 - val_qt/ScoringRuleNetwork/quantiles: 0.1963 - val_qt/loss: 0.1963 Epoch 83/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 3.0991 - fm/loss: 0.8724 - loss: 4.1217 - qt/ScoringRuleNetwork/quantiles: 0.1502 - qt/loss: 0.1502 - val_dm/loss: 2.3151 - val_fm/loss: 1.3152 - val_loss: 3.8248 - val_qt/ScoringRuleNetwork/quantiles: 0.1945 - val_qt/loss: 0.1945 Epoch 84/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2002 - fm/loss: 0.9180 - loss: 2.2569 - qt/ScoringRuleNetwork/quantiles: 0.1387 - qt/loss: 0.1387 - val_dm/loss: 0.6529 - val_fm/loss: 0.4987 - val_loss: 1.3263 - val_qt/ScoringRuleNetwork/quantiles: 0.1747 - val_qt/loss: 0.1747 Epoch 85/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.8182 - fm/loss: 0.6728 - loss: 1.6276 - qt/ScoringRuleNetwork/quantiles: 0.1366 - qt/loss: 0.1366 - val_dm/loss: 0.7594 - val_fm/loss: 0.6681 - val_loss: 1.6123 - val_qt/ScoringRuleNetwork/quantiles: 0.1848 - val_qt/loss: 0.1848 Epoch 86/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.1977 - fm/loss: 0.8066 - loss: 2.1526 - qt/ScoringRuleNetwork/quantiles: 0.1483 - qt/loss: 0.1483 - val_dm/loss: 0.8223 - val_fm/loss: 1.0801 - val_loss: 2.0658 - val_qt/ScoringRuleNetwork/quantiles: 0.1634 - val_qt/loss: 0.1634 Epoch 87/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3087 - fm/loss: 0.7765 - loss: 2.2208 - qt/ScoringRuleNetwork/quantiles: 0.1356 - qt/loss: 0.1356 - val_dm/loss: 2.3718 - val_fm/loss: 1.1012 - val_loss: 3.6753 - val_qt/ScoringRuleNetwork/quantiles: 0.2023 - val_qt/loss: 0.2023 Epoch 88/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0443 - fm/loss: 0.9502 - loss: 2.1230 - qt/ScoringRuleNetwork/quantiles: 0.1285 - qt/loss: 0.1285 - val_dm/loss: 1.2459 - val_fm/loss: 1.1952 - val_loss: 2.6332 - val_qt/ScoringRuleNetwork/quantiles: 0.1921 - val_qt/loss: 0.1921 Epoch 89/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.0765 - fm/loss: 0.8942 - loss: 3.1172 - qt/ScoringRuleNetwork/quantiles: 0.1465 - qt/loss: 0.1465 - val_dm/loss: 0.7950 - val_fm/loss: 1.4702 - val_loss: 2.4622 - val_qt/ScoringRuleNetwork/quantiles: 0.1969 - val_qt/loss: 0.1969 Epoch 90/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2055 - fm/loss: 0.7942 - loss: 2.1438 - qt/ScoringRuleNetwork/quantiles: 0.1441 - qt/loss: 0.1441 - val_dm/loss: 0.2767 - val_fm/loss: 1.3871 - val_loss: 1.8858 - val_qt/ScoringRuleNetwork/quantiles: 0.2219 - val_qt/loss: 0.2219 Epoch 91/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.8577 - fm/loss: 0.8603 - loss: 2.8563 - qt/ScoringRuleNetwork/quantiles: 0.1384 - qt/loss: 0.1384 - val_dm/loss: 0.9703 - val_fm/loss: 1.5383 - val_loss: 2.6820 - val_qt/ScoringRuleNetwork/quantiles: 0.1734 - val_qt/loss: 0.1734 Epoch 92/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 3.1555 - fm/loss: 0.8515 - loss: 4.1491 - qt/ScoringRuleNetwork/quantiles: 0.1421 - qt/loss: 0.1421 - val_dm/loss: 0.8016 - val_fm/loss: 0.9031 - val_loss: 1.8810 - val_qt/ScoringRuleNetwork/quantiles: 0.1763 - val_qt/loss: 0.1763 Epoch 93/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9742 - fm/loss: 0.6814 - loss: 1.7953 - qt/ScoringRuleNetwork/quantiles: 0.1397 - qt/loss: 0.1397 - val_dm/loss: 0.9930 - val_fm/loss: 1.1820 - val_loss: 2.3494 - val_qt/ScoringRuleNetwork/quantiles: 0.1743 - val_qt/loss: 0.1743 Epoch 94/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.8627 - fm/loss: 0.8223 - loss: 3.8250 - qt/ScoringRuleNetwork/quantiles: 0.1400 - qt/loss: 0.1400 - val_dm/loss: 1.0415 - val_fm/loss: 0.6803 - val_loss: 1.8966 - val_qt/ScoringRuleNetwork/quantiles: 0.1748 - val_qt/loss: 0.1748 Epoch 95/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.8425 - fm/loss: 0.9656 - loss: 2.9647 - qt/ScoringRuleNetwork/quantiles: 0.1567 - qt/loss: 0.1567 - val_dm/loss: 0.6774 - val_fm/loss: 0.8969 - val_loss: 1.7340 - val_qt/ScoringRuleNetwork/quantiles: 0.1596 - val_qt/loss: 0.1596 Epoch 96/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.9013 - fm/loss: 0.8184 - loss: 2.8581 - qt/ScoringRuleNetwork/quantiles: 0.1383 - qt/loss: 0.1383 - val_dm/loss: 0.7501 - val_fm/loss: 1.1641 - val_loss: 2.0530 - val_qt/ScoringRuleNetwork/quantiles: 0.1387 - val_qt/loss: 0.1387 Epoch 97/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2066 - fm/loss: 0.9416 - loss: 2.3034 - qt/ScoringRuleNetwork/quantiles: 0.1552 - qt/loss: 0.1552 - val_dm/loss: 38.7705 - val_fm/loss: 0.5073 - val_loss: 39.4652 - val_qt/ScoringRuleNetwork/quantiles: 0.1875 - val_qt/loss: 0.1875 Epoch 98/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0305 - fm/loss: 0.6321 - loss: 1.8094 - qt/ScoringRuleNetwork/quantiles: 0.1468 - qt/loss: 0.1468 - val_dm/loss: 1.7239 - val_fm/loss: 0.4558 - val_loss: 2.3320 - val_qt/ScoringRuleNetwork/quantiles: 0.1523 - val_qt/loss: 0.1523 Epoch 99/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.1340 - fm/loss: 0.8363 - loss: 2.1248 - qt/ScoringRuleNetwork/quantiles: 0.1545 - qt/loss: 0.1545 - val_dm/loss: 0.7169 - val_fm/loss: 0.7013 - val_loss: 1.5720 - val_qt/ScoringRuleNetwork/quantiles: 0.1537 - val_qt/loss: 0.1537 Epoch 100/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9151 - fm/loss: 0.7677 - loss: 1.8192 - qt/ScoringRuleNetwork/quantiles: 0.1364 - qt/loss: 0.1364 - val_dm/loss: 0.6124 - val_fm/loss: 0.4343 - val_loss: 1.1836 - val_qt/ScoringRuleNetwork/quantiles: 0.1368 - val_qt/loss: 0.1368 Epoch 101/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 0.9653 - fm/loss: 0.7410 - loss: 1.8605 - qt/ScoringRuleNetwork/quantiles: 0.1542 - qt/loss: 0.1542 - val_dm/loss: 1.0899 - val_fm/loss: 0.6309 - val_loss: 1.8329 - val_qt/ScoringRuleNetwork/quantiles: 0.1120 - val_qt/loss: 0.1120 Epoch 102/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.2465 - fm/loss: 0.8087 - loss: 3.1949 - qt/ScoringRuleNetwork/quantiles: 0.1397 - qt/loss: 0.1397 - val_dm/loss: 0.7070 - val_fm/loss: 0.9322 - val_loss: 1.8455 - val_qt/ScoringRuleNetwork/quantiles: 0.2063 - val_qt/loss: 0.2063 Epoch 103/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2535 - fm/loss: 0.6718 - loss: 2.0543 - qt/ScoringRuleNetwork/quantiles: 0.1290 - qt/loss: 0.1290 - val_dm/loss: 0.8318 - val_fm/loss: 1.1873 - val_loss: 2.1657 - val_qt/ScoringRuleNetwork/quantiles: 0.1466 - val_qt/loss: 0.1466 Epoch 104/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3266 - fm/loss: 0.7644 - loss: 2.2332 - qt/ScoringRuleNetwork/quantiles: 0.1422 - qt/loss: 0.1422 - val_dm/loss: 0.9045 - val_fm/loss: 0.8998 - val_loss: 1.9583 - val_qt/ScoringRuleNetwork/quantiles: 0.1539 - val_qt/loss: 0.1539 Epoch 105/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0831 - fm/loss: 0.8844 - loss: 2.1006 - qt/ScoringRuleNetwork/quantiles: 0.1331 - qt/loss: 0.1331 - val_dm/loss: 0.6718 - val_fm/loss: 0.8799 - val_loss: 1.7455 - val_qt/ScoringRuleNetwork/quantiles: 0.1938 - val_qt/loss: 0.1938 Epoch 106/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0847 - fm/loss: 0.9067 - loss: 2.1281 - qt/ScoringRuleNetwork/quantiles: 0.1367 - qt/loss: 0.1367 - val_dm/loss: 0.9062 - val_fm/loss: 0.5835 - val_loss: 1.6616 - val_qt/ScoringRuleNetwork/quantiles: 0.1720 - val_qt/loss: 0.1720 Epoch 107/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1822 - fm/loss: 0.8520 - loss: 2.1982 - qt/ScoringRuleNetwork/quantiles: 0.1640 - qt/loss: 0.1640 - val_dm/loss: 0.6902 - val_fm/loss: 0.7490 - val_loss: 1.6345 - val_qt/ScoringRuleNetwork/quantiles: 0.1953 - val_qt/loss: 0.1953 Epoch 108/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.2179 - fm/loss: 0.9783 - loss: 3.3387 - qt/ScoringRuleNetwork/quantiles: 0.1425 - qt/loss: 0.1425 - val_dm/loss: 1.4837 - val_fm/loss: 0.6368 - val_loss: 2.3138 - val_qt/ScoringRuleNetwork/quantiles: 0.1933 - val_qt/loss: 0.1933 Epoch 109/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1508 - fm/loss: 0.8403 - loss: 2.1385 - qt/ScoringRuleNetwork/quantiles: 0.1474 - qt/loss: 0.1474 - val_dm/loss: 3.8295 - val_fm/loss: 0.5313 - val_loss: 4.5889 - val_qt/ScoringRuleNetwork/quantiles: 0.2282 - val_qt/loss: 0.2282 Epoch 110/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 4ms/step - dm/loss: 0.8333 - fm/loss: 0.8472 - loss: 1.8184 - qt/ScoringRuleNetwork/quantiles: 0.1379 - qt/loss: 0.1379 - val_dm/loss: 0.3271 - val_fm/loss: 0.6723 - val_loss: 1.1168 - val_qt/ScoringRuleNetwork/quantiles: 0.1174 - val_qt/loss: 0.1174 Epoch 111/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0807 - fm/loss: 0.7169 - loss: 1.9290 - qt/ScoringRuleNetwork/quantiles: 0.1315 - qt/loss: 0.1315 - val_dm/loss: 0.6512 - val_fm/loss: 0.5599 - val_loss: 1.3638 - val_qt/ScoringRuleNetwork/quantiles: 0.1528 - val_qt/loss: 0.1528 Epoch 112/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0338 - fm/loss: 0.8967 - loss: 2.0835 - qt/ScoringRuleNetwork/quantiles: 0.1531 - qt/loss: 0.1531 - val_dm/loss: 0.8215 - val_fm/loss: 0.4388 - val_loss: 1.3616 - val_qt/ScoringRuleNetwork/quantiles: 0.1012 - val_qt/loss: 0.1012 Epoch 113/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9443 - fm/loss: 0.7733 - loss: 1.8535 - qt/ScoringRuleNetwork/quantiles: 0.1359 - qt/loss: 0.1359 - val_dm/loss: 0.9678 - val_fm/loss: 1.0433 - val_loss: 2.1983 - val_qt/ScoringRuleNetwork/quantiles: 0.1872 - val_qt/loss: 0.1872 Epoch 114/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9306 - fm/loss: 0.7100 - loss: 1.7927 - qt/ScoringRuleNetwork/quantiles: 0.1521 - qt/loss: 0.1521 - val_dm/loss: 0.9742 - val_fm/loss: 1.1323 - val_loss: 2.2976 - val_qt/ScoringRuleNetwork/quantiles: 0.1912 - val_qt/loss: 0.1912 Epoch 115/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 4ms/step - dm/loss: 0.6972 - fm/loss: 0.6811 - loss: 1.5168 - qt/ScoringRuleNetwork/quantiles: 0.1384 - qt/loss: 0.1384 - val_dm/loss: 0.9664 - val_fm/loss: 0.7647 - val_loss: 1.9497 - val_qt/ScoringRuleNetwork/quantiles: 0.2186 - val_qt/loss: 0.2186 Epoch 116/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.2075 - fm/loss: 0.8246 - loss: 2.1902 - qt/ScoringRuleNetwork/quantiles: 0.1581 - qt/loss: 0.1581 - val_dm/loss: 2.0842 - val_fm/loss: 0.6925 - val_loss: 2.9560 - val_qt/ScoringRuleNetwork/quantiles: 0.1792 - val_qt/loss: 0.1792 Epoch 117/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1976 - fm/loss: 0.8213 - loss: 2.1541 - qt/ScoringRuleNetwork/quantiles: 0.1352 - qt/loss: 0.1352 - val_dm/loss: 0.5290 - val_fm/loss: 1.3000 - val_loss: 2.0519 - val_qt/ScoringRuleNetwork/quantiles: 0.2229 - val_qt/loss: 0.2229 Epoch 118/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9559 - fm/loss: 0.6625 - loss: 1.7712 - qt/ScoringRuleNetwork/quantiles: 0.1527 - qt/loss: 0.1527 - val_dm/loss: 1.4507 - val_fm/loss: 0.5051 - val_loss: 2.1197 - val_qt/ScoringRuleNetwork/quantiles: 0.1639 - val_qt/loss: 0.1639 Epoch 119/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9764 - fm/loss: 0.7803 - loss: 1.8906 - qt/ScoringRuleNetwork/quantiles: 0.1339 - qt/loss: 0.1339 - val_dm/loss: 0.6422 - val_fm/loss: 0.8191 - val_loss: 1.5984 - val_qt/ScoringRuleNetwork/quantiles: 0.1371 - val_qt/loss: 0.1371 Epoch 120/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.9035 - fm/loss: 0.8591 - loss: 2.9039 - qt/ScoringRuleNetwork/quantiles: 0.1414 - qt/loss: 0.1414 - val_dm/loss: 0.9140 - val_fm/loss: 1.1617 - val_loss: 2.1977 - val_qt/ScoringRuleNetwork/quantiles: 0.1220 - val_qt/loss: 0.1220 Epoch 121/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 5.0410 - fm/loss: 0.7621 - loss: 5.9517 - qt/ScoringRuleNetwork/quantiles: 0.1486 - qt/loss: 0.1486 - val_dm/loss: 1.1583 - val_fm/loss: 1.0608 - val_loss: 2.3959 - val_qt/ScoringRuleNetwork/quantiles: 0.1768 - val_qt/loss: 0.1768 Epoch 122/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 0.8811 - fm/loss: 0.9697 - loss: 1.9805 - qt/ScoringRuleNetwork/quantiles: 0.1297 - qt/loss: 0.1297 - val_dm/loss: 0.6339 - val_fm/loss: 0.6048 - val_loss: 1.3712 - val_qt/ScoringRuleNetwork/quantiles: 0.1325 - val_qt/loss: 0.1325 Epoch 123/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 5.5622 - fm/loss: 0.8531 - loss: 6.5514 - qt/ScoringRuleNetwork/quantiles: 0.1360 - qt/loss: 0.1360 - val_dm/loss: 0.9288 - val_fm/loss: 1.0185 - val_loss: 2.1619 - val_qt/ScoringRuleNetwork/quantiles: 0.2146 - val_qt/loss: 0.2146 Epoch 124/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 5.3078 - fm/loss: 0.8605 - loss: 6.3015 - qt/ScoringRuleNetwork/quantiles: 0.1332 - qt/loss: 0.1332 - val_dm/loss: 1.2114 - val_fm/loss: 0.6807 - val_loss: 2.0841 - val_qt/ScoringRuleNetwork/quantiles: 0.1921 - val_qt/loss: 0.1921 Epoch 125/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.8836 - fm/loss: 0.9084 - loss: 1.9345 - qt/ScoringRuleNetwork/quantiles: 0.1425 - qt/loss: 0.1425 - val_dm/loss: 2.7172 - val_fm/loss: 0.7699 - val_loss: 3.7532 - val_qt/ScoringRuleNetwork/quantiles: 0.2661 - val_qt/loss: 0.2661 Epoch 126/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.0548 - fm/loss: 0.7415 - loss: 2.9237 - qt/ScoringRuleNetwork/quantiles: 0.1273 - qt/loss: 0.1273 - val_dm/loss: 0.7198 - val_fm/loss: 0.3559 - val_loss: 1.2279 - val_qt/ScoringRuleNetwork/quantiles: 0.1522 - val_qt/loss: 0.1522 Epoch 127/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0209 - fm/loss: 0.6186 - loss: 1.7809 - qt/ScoringRuleNetwork/quantiles: 0.1414 - qt/loss: 0.1414 - val_dm/loss: 1.5735 - val_fm/loss: 0.8613 - val_loss: 2.5994 - val_qt/ScoringRuleNetwork/quantiles: 0.1647 - val_qt/loss: 0.1647 Epoch 128/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.1485 - fm/loss: 0.7518 - loss: 3.0398 - qt/ScoringRuleNetwork/quantiles: 0.1395 - qt/loss: 0.1395 - val_dm/loss: 1.1700 - val_fm/loss: 1.3007 - val_loss: 2.6592 - val_qt/ScoringRuleNetwork/quantiles: 0.1886 - val_qt/loss: 0.1886 Epoch 129/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 13.3660 - fm/loss: 0.7142 - loss: 14.2154 - qt/ScoringRuleNetwork/quantiles: 0.1352 - qt/loss: 0.1352 - val_dm/loss: 0.6479 - val_fm/loss: 1.9062 - val_loss: 2.7438 - val_qt/ScoringRuleNetwork/quantiles: 0.1897 - val_qt/loss: 0.1897 Epoch 130/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3461 - fm/loss: 0.7626 - loss: 2.2475 - qt/ScoringRuleNetwork/quantiles: 0.1388 - qt/loss: 0.1388 - val_dm/loss: 0.4662 - val_fm/loss: 1.1378 - val_loss: 1.7694 - val_qt/ScoringRuleNetwork/quantiles: 0.1654 - val_qt/loss: 0.1654 Epoch 131/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9484 - fm/loss: 0.8573 - loss: 1.9324 - qt/ScoringRuleNetwork/quantiles: 0.1267 - qt/loss: 0.1267 - val_dm/loss: 0.7182 - val_fm/loss: 0.5324 - val_loss: 1.3691 - val_qt/ScoringRuleNetwork/quantiles: 0.1185 - val_qt/loss: 0.1185 Epoch 132/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0230 - fm/loss: 0.7238 - loss: 1.8760 - qt/ScoringRuleNetwork/quantiles: 0.1292 - qt/loss: 0.1292 - val_dm/loss: 1.1916 - val_fm/loss: 0.3550 - val_loss: 1.6711 - val_qt/ScoringRuleNetwork/quantiles: 0.1245 - val_qt/loss: 0.1245 Epoch 133/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 14.0701 - fm/loss: 1.0499 - loss: 15.2645 - qt/ScoringRuleNetwork/quantiles: 0.1445 - qt/loss: 0.1445 - val_dm/loss: 1.1853 - val_fm/loss: 0.5614 - val_loss: 1.9403 - val_qt/ScoringRuleNetwork/quantiles: 0.1936 - val_qt/loss: 0.1936 Epoch 134/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.8123 - fm/loss: 0.9469 - loss: 1.8940 - qt/ScoringRuleNetwork/quantiles: 0.1347 - qt/loss: 0.1347 - val_dm/loss: 3.5764 - val_fm/loss: 0.5975 - val_loss: 4.2751 - val_qt/ScoringRuleNetwork/quantiles: 0.1012 - val_qt/loss: 0.1012 Epoch 135/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.8603 - fm/loss: 0.8503 - loss: 2.8353 - qt/ScoringRuleNetwork/quantiles: 0.1247 - qt/loss: 0.1247 - val_dm/loss: 3.1361 - val_fm/loss: 0.6592 - val_loss: 3.9226 - val_qt/ScoringRuleNetwork/quantiles: 0.1272 - val_qt/loss: 0.1272 Epoch 136/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.8718 - fm/loss: 0.5729 - loss: 1.5856 - qt/ScoringRuleNetwork/quantiles: 0.1409 - qt/loss: 0.1409 - val_dm/loss: 2.3072 - val_fm/loss: 0.8433 - val_loss: 3.3490 - val_qt/ScoringRuleNetwork/quantiles: 0.1985 - val_qt/loss: 0.1985 Epoch 137/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.4015 - fm/loss: 0.5777 - loss: 2.1166 - qt/ScoringRuleNetwork/quantiles: 0.1373 - qt/loss: 0.1373 - val_dm/loss: 1.1949 - val_fm/loss: 1.2662 - val_loss: 2.6316 - val_qt/ScoringRuleNetwork/quantiles: 0.1705 - val_qt/loss: 0.1705 Epoch 138/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3926 - fm/loss: 0.7718 - loss: 2.2993 - qt/ScoringRuleNetwork/quantiles: 0.1349 - qt/loss: 0.1349 - val_dm/loss: 2.0403 - val_fm/loss: 1.2156 - val_loss: 3.4219 - val_qt/ScoringRuleNetwork/quantiles: 0.1659 - val_qt/loss: 0.1659 Epoch 139/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 4ms/step - dm/loss: 1.4306 - fm/loss: 0.4843 - loss: 2.0351 - qt/ScoringRuleNetwork/quantiles: 0.1201 - qt/loss: 0.1201 - val_dm/loss: 0.8274 - val_fm/loss: 0.8557 - val_loss: 1.8421 - val_qt/ScoringRuleNetwork/quantiles: 0.1590 - val_qt/loss: 0.1590 Epoch 140/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 4.0633 - fm/loss: 0.5305 - loss: 4.7238 - qt/ScoringRuleNetwork/quantiles: 0.1299 - qt/loss: 0.1299 - val_dm/loss: 1.3183 - val_fm/loss: 0.7575 - val_loss: 2.2694 - val_qt/ScoringRuleNetwork/quantiles: 0.1937 - val_qt/loss: 0.1937 Epoch 141/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.2056 - fm/loss: 0.8763 - loss: 2.2226 - qt/ScoringRuleNetwork/quantiles: 0.1407 - qt/loss: 0.1407 - val_dm/loss: 1.0669 - val_fm/loss: 1.4024 - val_loss: 2.6475 - val_qt/ScoringRuleNetwork/quantiles: 0.1782 - val_qt/loss: 0.1782 Epoch 142/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0163 - fm/loss: 0.6985 - loss: 1.8480 - qt/ScoringRuleNetwork/quantiles: 0.1332 - qt/loss: 0.1332 - val_dm/loss: 1.5988 - val_fm/loss: 0.4608 - val_loss: 2.2218 - val_qt/ScoringRuleNetwork/quantiles: 0.1621 - val_qt/loss: 0.1621 Epoch 143/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.0194 - fm/loss: 0.6225 - loss: 1.7719 - qt/ScoringRuleNetwork/quantiles: 0.1300 - qt/loss: 0.1300 - val_dm/loss: 1.2864 - val_fm/loss: 0.8066 - val_loss: 2.2558 - val_qt/ScoringRuleNetwork/quantiles: 0.1628 - val_qt/loss: 0.1628 Epoch 144/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0663 - fm/loss: 0.9160 - loss: 2.1367 - qt/ScoringRuleNetwork/quantiles: 0.1544 - qt/loss: 0.1544 - val_dm/loss: 0.4721 - val_fm/loss: 0.6428 - val_loss: 1.2622 - val_qt/ScoringRuleNetwork/quantiles: 0.1473 - val_qt/loss: 0.1473 Epoch 145/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0304 - fm/loss: 0.7825 - loss: 1.9617 - qt/ScoringRuleNetwork/quantiles: 0.1488 - qt/loss: 0.1488 - val_dm/loss: 0.5621 - val_fm/loss: 1.0172 - val_loss: 1.7358 - val_qt/ScoringRuleNetwork/quantiles: 0.1564 - val_qt/loss: 0.1564 Epoch 146/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9686 - fm/loss: 0.8887 - loss: 1.9612 - qt/ScoringRuleNetwork/quantiles: 0.1040 - qt/loss: 0.1040 - val_dm/loss: 1.0123 - val_fm/loss: 0.4890 - val_loss: 1.6280 - val_qt/ScoringRuleNetwork/quantiles: 0.1266 - val_qt/loss: 0.1266 Epoch 147/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.8804 - fm/loss: 0.8786 - loss: 1.9174 - qt/ScoringRuleNetwork/quantiles: 0.1584 - qt/loss: 0.1584 - val_dm/loss: 1.0154 - val_fm/loss: 1.3820 - val_loss: 2.5904 - val_qt/ScoringRuleNetwork/quantiles: 0.1930 - val_qt/loss: 0.1930 Epoch 148/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9535 - fm/loss: 0.7252 - loss: 1.8079 - qt/ScoringRuleNetwork/quantiles: 0.1292 - qt/loss: 0.1292 - val_dm/loss: 3.9897 - val_fm/loss: 0.5068 - val_loss: 4.6613 - val_qt/ScoringRuleNetwork/quantiles: 0.1648 - val_qt/loss: 0.1648 Epoch 149/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9895 - fm/loss: 1.0621 - loss: 2.1811 - qt/ScoringRuleNetwork/quantiles: 0.1295 - qt/loss: 0.1295 - val_dm/loss: 0.8206 - val_fm/loss: 0.8460 - val_loss: 1.8538 - val_qt/ScoringRuleNetwork/quantiles: 0.1872 - val_qt/loss: 0.1872 Epoch 150/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1885 - fm/loss: 0.8370 - loss: 2.1502 - qt/ScoringRuleNetwork/quantiles: 0.1247 - qt/loss: 0.1247 - val_dm/loss: 1.6561 - val_fm/loss: 0.6462 - val_loss: 2.4227 - val_qt/ScoringRuleNetwork/quantiles: 0.1204 - val_qt/loss: 0.1204 Epoch 151/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2309 - fm/loss: 0.8328 - loss: 2.1925 - qt/ScoringRuleNetwork/quantiles: 0.1288 - qt/loss: 0.1288 - val_dm/loss: 1.8893 - val_fm/loss: 0.5729 - val_loss: 2.5725 - val_qt/ScoringRuleNetwork/quantiles: 0.1102 - val_qt/loss: 0.1102 Epoch 152/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 0.9808 - fm/loss: 0.9042 - loss: 2.0300 - qt/ScoringRuleNetwork/quantiles: 0.1450 - qt/loss: 0.1450 - val_dm/loss: 2.7005 - val_fm/loss: 2.2124 - val_loss: 5.1454 - val_qt/ScoringRuleNetwork/quantiles: 0.2325 - val_qt/loss: 0.2325 Epoch 153/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.5549 - fm/loss: 1.0769 - loss: 2.7533 - qt/ScoringRuleNetwork/quantiles: 0.1216 - qt/loss: 0.1216 - val_dm/loss: 0.6232 - val_fm/loss: 1.3084 - val_loss: 2.1192 - val_qt/ScoringRuleNetwork/quantiles: 0.1876 - val_qt/loss: 0.1876 Epoch 154/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0303 - fm/loss: 0.8221 - loss: 1.9813 - qt/ScoringRuleNetwork/quantiles: 0.1289 - qt/loss: 0.1289 - val_dm/loss: 0.9540 - val_fm/loss: 0.6643 - val_loss: 1.7984 - val_qt/ScoringRuleNetwork/quantiles: 0.1801 - val_qt/loss: 0.1801 Epoch 155/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 4.9127 - fm/loss: 0.6055 - loss: 5.6406 - qt/ScoringRuleNetwork/quantiles: 0.1224 - qt/loss: 0.1224 - val_dm/loss: 0.5917 - val_fm/loss: 1.1055 - val_loss: 1.8789 - val_qt/ScoringRuleNetwork/quantiles: 0.1818 - val_qt/loss: 0.1818 Epoch 156/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0521 - fm/loss: 0.8938 - loss: 2.0911 - qt/ScoringRuleNetwork/quantiles: 0.1451 - qt/loss: 0.1451 - val_dm/loss: 0.7065 - val_fm/loss: 1.0583 - val_loss: 1.9789 - val_qt/ScoringRuleNetwork/quantiles: 0.2140 - val_qt/loss: 0.2140 Epoch 157/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2522 - fm/loss: 0.5971 - loss: 1.9846 - qt/ScoringRuleNetwork/quantiles: 0.1354 - qt/loss: 0.1354 - val_dm/loss: 1.0593 - val_fm/loss: 0.3130 - val_loss: 1.5546 - val_qt/ScoringRuleNetwork/quantiles: 0.1823 - val_qt/loss: 0.1823 Epoch 158/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.6974 - fm/loss: 0.5456 - loss: 2.3650 - qt/ScoringRuleNetwork/quantiles: 0.1220 - qt/loss: 0.1220 - val_dm/loss: 0.5399 - val_fm/loss: 0.3387 - val_loss: 1.0424 - val_qt/ScoringRuleNetwork/quantiles: 0.1639 - val_qt/loss: 0.1639 Epoch 159/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3207 - fm/loss: 0.6688 - loss: 2.1092 - qt/ScoringRuleNetwork/quantiles: 0.1197 - qt/loss: 0.1197 - val_dm/loss: 8.0193 - val_fm/loss: 0.9509 - val_loss: 9.1323 - val_qt/ScoringRuleNetwork/quantiles: 0.1621 - val_qt/loss: 0.1621 Epoch 160/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.8600 - fm/loss: 0.7857 - loss: 1.7764 - qt/ScoringRuleNetwork/quantiles: 0.1307 - qt/loss: 0.1307 - val_dm/loss: 1.1220 - val_fm/loss: 0.6845 - val_loss: 1.9304 - val_qt/ScoringRuleNetwork/quantiles: 0.1239 - val_qt/loss: 0.1239 Epoch 161/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9983 - fm/loss: 0.6942 - loss: 1.8496 - qt/ScoringRuleNetwork/quantiles: 0.1571 - qt/loss: 0.1571 - val_dm/loss: 2.2431 - val_fm/loss: 1.2187 - val_loss: 3.6786 - val_qt/ScoringRuleNetwork/quantiles: 0.2168 - val_qt/loss: 0.2168 Epoch 162/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1328 - fm/loss: 0.8929 - loss: 2.1697 - qt/ScoringRuleNetwork/quantiles: 0.1440 - qt/loss: 0.1440 - val_dm/loss: 1.7011 - val_fm/loss: 1.1347 - val_loss: 3.0188 - val_qt/ScoringRuleNetwork/quantiles: 0.1829 - val_qt/loss: 0.1829 Epoch 163/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0424 - fm/loss: 0.8096 - loss: 2.0003 - qt/ScoringRuleNetwork/quantiles: 0.1483 - qt/loss: 0.1483 - val_dm/loss: 3.7580 - val_fm/loss: 1.6249 - val_loss: 5.6039 - val_qt/ScoringRuleNetwork/quantiles: 0.2211 - val_qt/loss: 0.2211 Epoch 164/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 2.7833 - fm/loss: 0.6954 - loss: 3.6117 - qt/ScoringRuleNetwork/quantiles: 0.1330 - qt/loss: 0.1330 - val_dm/loss: 0.9480 - val_fm/loss: 1.3702 - val_loss: 2.4991 - val_qt/ScoringRuleNetwork/quantiles: 0.1809 - val_qt/loss: 0.1809 Epoch 165/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.1295 - fm/loss: 0.9176 - loss: 2.1935 - qt/ScoringRuleNetwork/quantiles: 0.1464 - qt/loss: 0.1464 - val_dm/loss: 0.7963 - val_fm/loss: 0.5081 - val_loss: 1.4993 - val_qt/ScoringRuleNetwork/quantiles: 0.1949 - val_qt/loss: 0.1949 Epoch 166/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9867 - fm/loss: 0.5958 - loss: 1.7027 - qt/ScoringRuleNetwork/quantiles: 0.1202 - qt/loss: 0.1202 - val_dm/loss: 0.7588 - val_fm/loss: 1.0559 - val_loss: 2.0027 - val_qt/ScoringRuleNetwork/quantiles: 0.1880 - val_qt/loss: 0.1880 Epoch 167/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 0.9541 - fm/loss: 0.7626 - loss: 1.8564 - qt/ScoringRuleNetwork/quantiles: 0.1398 - qt/loss: 0.1398 - val_dm/loss: 1.0473 - val_fm/loss: 0.9744 - val_loss: 2.2276 - val_qt/ScoringRuleNetwork/quantiles: 0.2059 - val_qt/loss: 0.2059 Epoch 168/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.1675 - fm/loss: 0.7252 - loss: 2.0082 - qt/ScoringRuleNetwork/quantiles: 0.1154 - qt/loss: 0.1154 - val_dm/loss: 1.2930 - val_fm/loss: 1.3255 - val_loss: 2.8069 - val_qt/ScoringRuleNetwork/quantiles: 0.1884 - val_qt/loss: 0.1884 Epoch 169/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3761 - fm/loss: 0.7562 - loss: 2.2858 - qt/ScoringRuleNetwork/quantiles: 0.1535 - qt/loss: 0.1535 - val_dm/loss: 7.1981 - val_fm/loss: 1.2354 - val_loss: 8.6310 - val_qt/ScoringRuleNetwork/quantiles: 0.1975 - val_qt/loss: 0.1975 Epoch 170/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2185 - fm/loss: 0.6666 - loss: 2.0082 - qt/ScoringRuleNetwork/quantiles: 0.1231 - qt/loss: 0.1231 - val_dm/loss: 0.2724 - val_fm/loss: 1.2911 - val_loss: 1.7675 - val_qt/ScoringRuleNetwork/quantiles: 0.2040 - val_qt/loss: 0.2040 Epoch 171/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9375 - fm/loss: 0.4969 - loss: 1.5573 - qt/ScoringRuleNetwork/quantiles: 0.1228 - qt/loss: 0.1228 - val_dm/loss: 0.6371 - val_fm/loss: 0.9305 - val_loss: 1.7149 - val_qt/ScoringRuleNetwork/quantiles: 0.1473 - val_qt/loss: 0.1473 Epoch 172/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.4163 - fm/loss: 0.8157 - loss: 2.3736 - qt/ScoringRuleNetwork/quantiles: 0.1416 - qt/loss: 0.1416 - val_dm/loss: 0.8722 - val_fm/loss: 0.6204 - val_loss: 1.6849 - val_qt/ScoringRuleNetwork/quantiles: 0.1923 - val_qt/loss: 0.1923 Epoch 173/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.4574 - fm/loss: 0.8089 - loss: 2.3933 - qt/ScoringRuleNetwork/quantiles: 0.1271 - qt/loss: 0.1271 - val_dm/loss: 0.8125 - val_fm/loss: 0.6110 - val_loss: 1.5871 - val_qt/ScoringRuleNetwork/quantiles: 0.1636 - val_qt/loss: 0.1636 Epoch 174/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.0003 - fm/loss: 0.7220 - loss: 2.8566 - qt/ScoringRuleNetwork/quantiles: 0.1344 - qt/loss: 0.1344 - val_dm/loss: 5.2932 - val_fm/loss: 0.6603 - val_loss: 6.0957 - val_qt/ScoringRuleNetwork/quantiles: 0.1422 - val_qt/loss: 0.1422 Epoch 175/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9753 - fm/loss: 0.7462 - loss: 1.8474 - qt/ScoringRuleNetwork/quantiles: 0.1258 - qt/loss: 0.1258 - val_dm/loss: 0.6648 - val_fm/loss: 0.5164 - val_loss: 1.3339 - val_qt/ScoringRuleNetwork/quantiles: 0.1526 - val_qt/loss: 0.1526 Epoch 176/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9895 - fm/loss: 0.8952 - loss: 2.0304 - qt/ScoringRuleNetwork/quantiles: 0.1457 - qt/loss: 0.1457 - val_dm/loss: 1.1135 - val_fm/loss: 0.7876 - val_loss: 2.1088 - val_qt/ScoringRuleNetwork/quantiles: 0.2077 - val_qt/loss: 0.2077 Epoch 177/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9553 - fm/loss: 0.6125 - loss: 1.7079 - qt/ScoringRuleNetwork/quantiles: 0.1401 - qt/loss: 0.1401 - val_dm/loss: 0.7084 - val_fm/loss: 0.9892 - val_loss: 1.9028 - val_qt/ScoringRuleNetwork/quantiles: 0.2053 - val_qt/loss: 0.2053 Epoch 178/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.7179 - fm/loss: 0.4881 - loss: 2.3226 - qt/ScoringRuleNetwork/quantiles: 0.1167 - qt/loss: 0.1167 - val_dm/loss: 0.8025 - val_fm/loss: 1.1773 - val_loss: 2.2321 - val_qt/ScoringRuleNetwork/quantiles: 0.2522 - val_qt/loss: 0.2522 Epoch 179/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 7.6043 - fm/loss: 0.5492 - loss: 8.2786 - qt/ScoringRuleNetwork/quantiles: 0.1250 - qt/loss: 0.1250 - val_dm/loss: 1.0663 - val_fm/loss: 2.5206 - val_loss: 3.8297 - val_qt/ScoringRuleNetwork/quantiles: 0.2428 - val_qt/loss: 0.2428 Epoch 180/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0872 - fm/loss: 0.7911 - loss: 2.0188 - qt/ScoringRuleNetwork/quantiles: 0.1405 - qt/loss: 0.1405 - val_dm/loss: 0.8065 - val_fm/loss: 0.5094 - val_loss: 1.4787 - val_qt/ScoringRuleNetwork/quantiles: 0.1628 - val_qt/loss: 0.1628 Epoch 181/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0444 - fm/loss: 0.6656 - loss: 1.8344 - qt/ScoringRuleNetwork/quantiles: 0.1244 - qt/loss: 0.1244 - val_dm/loss: 1.2358 - val_fm/loss: 1.3633 - val_loss: 2.7700 - val_qt/ScoringRuleNetwork/quantiles: 0.1709 - val_qt/loss: 0.1709 Epoch 182/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 20.3302 - fm/loss: 0.7017 - loss: 21.1566 - qt/ScoringRuleNetwork/quantiles: 0.1247 - qt/loss: 0.1247 - val_dm/loss: 1.1379 - val_fm/loss: 1.0126 - val_loss: 2.3237 - val_qt/ScoringRuleNetwork/quantiles: 0.1732 - val_qt/loss: 0.1732 Epoch 183/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0857 - fm/loss: 0.5860 - loss: 1.7964 - qt/ScoringRuleNetwork/quantiles: 0.1247 - qt/loss: 0.1247 - val_dm/loss: 0.5444 - val_fm/loss: 0.9637 - val_loss: 1.7568 - val_qt/ScoringRuleNetwork/quantiles: 0.2487 - val_qt/loss: 0.2487 Epoch 184/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9738 - fm/loss: 0.6140 - loss: 1.7206 - qt/ScoringRuleNetwork/quantiles: 0.1328 - qt/loss: 0.1328 - val_dm/loss: 1.0668 - val_fm/loss: 0.7102 - val_loss: 2.0108 - val_qt/ScoringRuleNetwork/quantiles: 0.2339 - val_qt/loss: 0.2339 Epoch 185/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.8565 - fm/loss: 0.7472 - loss: 1.7528 - qt/ScoringRuleNetwork/quantiles: 0.1491 - qt/loss: 0.1491 - val_dm/loss: 0.7170 - val_fm/loss: 0.3008 - val_loss: 1.1403 - val_qt/ScoringRuleNetwork/quantiles: 0.1225 - val_qt/loss: 0.1225 Epoch 186/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.8252 - fm/loss: 0.6709 - loss: 1.6304 - qt/ScoringRuleNetwork/quantiles: 0.1343 - qt/loss: 0.1343 - val_dm/loss: 1.1428 - val_fm/loss: 1.0780 - val_loss: 2.4326 - val_qt/ScoringRuleNetwork/quantiles: 0.2118 - val_qt/loss: 0.2118 Epoch 187/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.5756 - fm/loss: 0.8667 - loss: 2.5850 - qt/ScoringRuleNetwork/quantiles: 0.1427 - qt/loss: 0.1427 - val_dm/loss: 0.7597 - val_fm/loss: 1.0930 - val_loss: 1.9778 - val_qt/ScoringRuleNetwork/quantiles: 0.1251 - val_qt/loss: 0.1251 Epoch 188/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 0.9388 - fm/loss: 0.6550 - loss: 1.7269 - qt/ScoringRuleNetwork/quantiles: 0.1331 - qt/loss: 0.1331 - val_dm/loss: 0.4498 - val_fm/loss: 0.7448 - val_loss: 1.3405 - val_qt/ScoringRuleNetwork/quantiles: 0.1459 - val_qt/loss: 0.1459 Epoch 189/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 2.7129 - fm/loss: 0.7356 - loss: 3.5890 - qt/ScoringRuleNetwork/quantiles: 0.1405 - qt/loss: 0.1405 - val_dm/loss: 10.1971 - val_fm/loss: 1.1973 - val_loss: 11.5933 - val_qt/ScoringRuleNetwork/quantiles: 0.1989 - val_qt/loss: 0.1989 Epoch 190/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0024 - fm/loss: 0.7629 - loss: 1.8828 - qt/ScoringRuleNetwork/quantiles: 0.1176 - qt/loss: 0.1176 - val_dm/loss: 0.6409 - val_fm/loss: 0.6912 - val_loss: 1.4987 - val_qt/ScoringRuleNetwork/quantiles: 0.1666 - val_qt/loss: 0.1666 Epoch 191/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.0253 - fm/loss: 0.8454 - loss: 2.0072 - qt/ScoringRuleNetwork/quantiles: 0.1365 - qt/loss: 0.1365 - val_dm/loss: 1.4429 - val_fm/loss: 0.7131 - val_loss: 2.3438 - val_qt/ScoringRuleNetwork/quantiles: 0.1878 - val_qt/loss: 0.1878 Epoch 192/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.2708 - fm/loss: 0.8020 - loss: 2.1996 - qt/ScoringRuleNetwork/quantiles: 0.1267 - qt/loss: 0.1267 - val_dm/loss: 1.7233 - val_fm/loss: 0.7767 - val_loss: 2.6503 - val_qt/ScoringRuleNetwork/quantiles: 0.1504 - val_qt/loss: 0.1504 Epoch 193/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1237 - fm/loss: 0.6033 - loss: 1.8439 - qt/ScoringRuleNetwork/quantiles: 0.1169 - qt/loss: 0.1169 - val_dm/loss: 0.4964 - val_fm/loss: 0.7205 - val_loss: 1.4133 - val_qt/ScoringRuleNetwork/quantiles: 0.1964 - val_qt/loss: 0.1964 Epoch 194/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.4366 - fm/loss: 0.7014 - loss: 2.2687 - qt/ScoringRuleNetwork/quantiles: 0.1307 - qt/loss: 0.1307 - val_dm/loss: 0.5322 - val_fm/loss: 0.7864 - val_loss: 1.4912 - val_qt/ScoringRuleNetwork/quantiles: 0.1727 - val_qt/loss: 0.1727 Epoch 195/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.5657 - fm/loss: 0.8265 - loss: 2.5183 - qt/ScoringRuleNetwork/quantiles: 0.1261 - qt/loss: 0.1261 - val_dm/loss: 1.0714 - val_fm/loss: 0.5415 - val_loss: 1.8009 - val_qt/ScoringRuleNetwork/quantiles: 0.1880 - val_qt/loss: 0.1880 Epoch 196/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.2725 - fm/loss: 0.7997 - loss: 2.1938 - qt/ScoringRuleNetwork/quantiles: 0.1216 - qt/loss: 0.1216 - val_dm/loss: 2.1669 - val_fm/loss: 0.5086 - val_loss: 2.8206 - val_qt/ScoringRuleNetwork/quantiles: 0.1450 - val_qt/loss: 0.1450 Epoch 197/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1597 - fm/loss: 0.8918 - loss: 2.1918 - qt/ScoringRuleNetwork/quantiles: 0.1403 - qt/loss: 0.1403 - val_dm/loss: 7.1613 - val_fm/loss: 1.0371 - val_loss: 8.3988 - val_qt/ScoringRuleNetwork/quantiles: 0.2005 - val_qt/loss: 0.2005 Epoch 198/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.1614 - fm/loss: 0.8064 - loss: 2.1161 - qt/ScoringRuleNetwork/quantiles: 0.1483 - qt/loss: 0.1483 - val_dm/loss: 2.2497 - val_fm/loss: 1.7624 - val_loss: 4.1809 - val_qt/ScoringRuleNetwork/quantiles: 0.1688 - val_qt/loss: 0.1688 Epoch 199/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step - dm/loss: 1.3844 - fm/loss: 0.7441 - loss: 2.2523 - qt/ScoringRuleNetwork/quantiles: 0.1237 - qt/loss: 0.1237 - val_dm/loss: 0.9442 - val_fm/loss: 0.7954 - val_loss: 1.9248 - val_qt/ScoringRuleNetwork/quantiles: 0.1852 - val_qt/loss: 0.1852 Epoch 200/200 32/32 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step - dm/loss: 1.3325 - fm/loss: 0.7815 - loss: 2.2417 - qt/ScoringRuleNetwork/quantiles: 0.1276 - qt/loss: 0.1276 - val_dm/loss: 1.0658 - val_fm/loss: 0.4830 - val_loss: 1.6963 - val_qt/ScoringRuleNetwork/quantiles: 0.1474 - val_qt/loss: 0.1474
INFO:bayesflow:Training completed in 42.14 seconds.
# Obtain posterior draws from all ensemble members
marginal_draws = workflow.approximator.sample(
conditions=test_data,
batch_size=50,
num_samples=300,
merge_members=False
)WARNING:bayesflow:JAX backend needs to preallocate random samples for 'max_steps=1000'.
WARNING:bayesflow:JAX backend needs to preallocate random samples for 'max_steps=1000'.
# Only plot recovery
for member, samples in marginal_draws.items():
f = bf.diagnostics.recovery(samples, test_data, variable_names=param_names)
f.suptitle(f"Recovery - Ensemble Member {member.upper()}")

### Your code here - plot calibration ECDF plotsmarker_mapping = dict(quantiles="_")
estimates = workflow.estimate(conditions=test_data)
f = bf.diagnostics.recovery_from_estimates(estimates["qt"], test_data, variable_names=param_names, marker_mapping=marker_mapping)INFO:bayesflow:Estimating completed in 0.69 seconds.

Fitting Real Data
This will get messy!
Data Considerations
data = pd.read_csv(
"https://raw.githubusercontent.com/simschaefer/amortized-dmc/main/empirical_data/experiment_data_narrow.csv"
)data = (data[['participant', 'rt', 'accuracy', 'congruency_num']]
.rename(columns={'congruency_num': "congruency"})
)data.head()Determine the proportion of missing values.
num_trials = data.groupby("participant").size().values
print("Avg. number of trials", (num_trials / 400).mean())
print("Std. number of trials", (num_trials / 400).std())Subsampling for training robustness: In real experiments, participants often have missing or excluded trials (e.g., timeouts). If the network is only trained on data with exactly \(N\) trials, it may struggle when applied to real data with fewer observations. summary_stats_subsample addresses this by randomly dropping ~14% of trials during training via a Bernoulli mask (p=0.86). The retained proportion is appended as a 23rd feature (props), so the network can account for varying sample sizes. At inference time, set subsample=False and provide the actual trial proportion manually.
def summary_stats_subsample(conditions, rt, accuracy, num_quantiles=5, subsample=True, props=None, **kwargs):
quantiles = np.linspace(0.05, 0.95, num_quantiles)
rt = rt[..., 0]
conditions = conditions[..., 0]
accuracy = accuracy[..., 0]
if subsample:
keep = np.random.binomial(n=1, p=0.86, size=rt.shape) == 1
props = keep.sum(axis=1, keepdims=1) / rt.shape[-1]
else:
keep = np.ones(shape=rt.shape) == 1
props = props if props else 1.
quantile_parts = []
for cond_val in (0, 1):
for acc_val in (0, 1):
mask = (conditions == cond_val) & (accuracy == acc_val) & keep
q = np.nanquantile(np.where(mask, rt, np.nan), quantiles, axis=1).T
quantile_parts.append(q)
acc_c0 = np.nanmean(np.where(conditions == 0, accuracy, np.nan), axis=1, keepdims=True)
acc_c1 = np.nanmean(np.where(conditions == 1, accuracy, np.nan), axis=1, keepdims=True)
stats = np.concatenate([*quantile_parts, acc_c0, acc_c1, props], axis=1)
stats[np.isnan(stats)] = -1.
return {"summary_stats": stats}train_data = simulator.sample(batch_size=num_train, num_obs=400)
test_data = simulator.sample(batch_size=num_test, num_obs=400)train_data |= summary_stats_subsample(**train_data)
test_data |= summary_stats_subsample(**test_data)test_data["summary_stats"][:, -1]Training and In-Silico Diagnostics
Below, we use the hyperparameters determined via Optuna.
batch_size = 32
depth = 3
width = 128
initial_lr = 5e-4
workflow = bf.BasicWorkflow(
inference_network=bf.networks.FlowMatching(subnet_kwargs={"widths": (width,)*depth}),
inference_variables=param_names,
inference_conditions="summary_stats",
initial_learning_rate=initial_lr,
standardize="all"
)
history = workflow.fit_offline(train_data, batch_size=batch_size, epochs=100, validation_data=test_data)figs = workflow.plot_default_diagnostics(test_data=test_data, num_samples=500)Why loop over participants?
The trained network expects summary_stats as input, not raw trial data. Since each participant may have a different number of trials, we compute summary statistics per participant individually, then stack them into a single (num_participants, 23) array. subsample=False disables the training-time augmentation — here, we want the exact statistics from the observed data. The props field tells the network what fraction of the 400 possible trials were actually retained.
conditions = []
participant_ids = np.unique(data.participant).tolist()
for participant_id in participant_ids:
particpant_df = data[data["participant"] == participant_id]
particpant_dict = {
"rt": particpant_df["rt"].values[None, :, None],
"accuracy": particpant_df["accuracy"].values[None, :, None],
"conditions": particpant_df["congruency"].values[None, :, None],
"props": np.array([[len(particpant_df) / 400]])
}
conditions.append(summary_stats_subsample(**particpant_dict, subsample=False)["summary_stats"])
conditions = np.concatenate(conditions, axis=0)num_samples = 500
samples = workflow.sample(conditions={"summary_stats": conditions}, num_samples=500, batch_size=10)Posterior Predictive Check: For each participant, we take 10 random draws from their posterior, plug each draw back into the simulator to regenerate 400 synthetic trials, and collect everything into a long-format DataFrame. Comparing the re-simulated distributional statistics (CAFs, CDFs, \(\Delta\)-functions) against the observed data tells us whether the recovered parameters can actually reproduce the empirical patterns.
num_resim = 10
sample_idx = np.random.permutation(num_samples)[:num_resim]
rows = []
for p_idx, p in enumerate(participant_ids):
for draw_idx, s_idx in enumerate(sample_idx):
sample = {k: v[p_idx, s_idx, 0] for k, v in samples.items()}
resim = simulator.experiment(**sample, num_obs=400)
part_df = pd.DataFrame(resim)
part_df["id"] = p
part_df["draw_idx"] = draw_idx
rows.append(part_df)
df_long = pd.concat(rows, ignore_index=True)df_long.head()caf, cdf, delta = dmc_helpers.compute_stats(df_long, id_name='id', rt='rt', congruency='conditions')dmc_helpers.plot_stats(caf, cdf, delta, id_name='id', rt='rt', congruency='conditions')