pub fn run_members_classification(
model: &TabFMModel,
x_train_raw: &[Vec<Value>],
y_train_codes: &[f64],
x_query_raw: &[Vec<Value>],
cat_mask: &[bool],
n_classes: usize,
configs: &[MemberConfig],
outlier_threshold: f64,
batch_size: Option<usize>,
) -> Result<Vec<Vec<Vec<f64>>>>Expand description
Runs every ensemble member’s forward pass for classification, given a train/query row split
(query rows may be real held-out test rows, or an OOF fold’s validation rows). Members are
grouped into batch_size-sized chunks (default: DEFAULT_BATCH_CHUNK_SIZE) and each chunk
runs as a single TabFMModel::predict_batch call — sharing the fixed cost of the model’s
deepest stage (24-block ICL) across the whole chunk instead of paying it once per member.
Chunks run in parallel via rayon, combining with Round 1’s parallelism.
Returns [member][query_row][class] logits, already un-shifted back to original class order.