{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Perturbation Prediction with CellDISECT\n",
"\n",
"This tutorial demonstrates how to use CellDISECT for **perturbation prediction** on real single-cell data. We use the **Norman** combinatorial perturbation dataset preprocessed by GEARS and **GenePT** gene embeddings.\n",
"\n",
"CellDISECT treats perturbations as a categorical covariate with **predefined external embeddings** (e.g. GenePT, ESM, scGPT) instead of learned embeddings. For combinatorial perturbations like `GeneA+GeneB`, the combined embedding is the **sum** of the atomic component embeddings. This enables:\n",
"\n",
"1. **Seen perturbation prediction** — predicting expression under a perturbation that was part of the training set (single or combinatorial).\n",
"2. **Unseen perturbation prediction** — predicting expression under a novel perturbation not seen during training, using its predefined embedding.\n",
"3. **Combinatorial perturbation prediction** — predicting expression under simultaneous perturbations (e.g. `GeneA+GeneB`).\n",
"\n",
"We hold out a random set of perturbations for evaluation, train the model on the remaining perturbations, and then evaluate on both **unseen (held-out)** and **seen (training)** perturbations."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 0. Setup & Data Download"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dataset already exists at data/norman/perturb_processed.h5ad\n",
"Success! File ready at: data/norman/perturb_processed.h5ad\n"
]
}
],
"source": [
"import os\n",
"import subprocess\n",
"import zipfile\n",
"\n",
"DATA_DIR = \"data\"\n",
"os.makedirs(DATA_DIR, exist_ok=True)\n",
"\n",
"# Define paths\n",
"zip_path = os.path.join(DATA_DIR, \"norman.zip\")\n",
"extract_path = os.path.join(DATA_DIR, \"norman\")\n",
"h5ad_path = os.path.join(extract_path, \"perturb_processed.h5ad\")\n",
"\n",
"if not os.path.exists(h5ad_path):\n",
" # 1. Download the zip file\n",
" print(\"Downloading Norman dataset (zip)...\")\n",
" subprocess.run(\n",
" [\"wget\", \"-q\", \"-O\", zip_path,\n",
" \"https://dataverse.harvard.edu/api/access/datafile/6154020\"],\n",
" check=True,\n",
" )\n",
" \n",
" # 2. Extract the zip file\n",
" print(f\"Extracting to {extract_path}...\")\n",
" with zipfile.ZipFile(zip_path, 'r') as zip_ref:\n",
" zip_ref.extractall(DATA_DIR)\n",
" \n",
" # 3. Clean up the zip file to save space (optional)\n",
" os.remove(zip_path)\n",
" print(\"Extraction complete. Zip file removed.\")\n",
"else:\n",
" print(f\"Dataset already exists at {h5ad_path}\")\n",
"\n",
"# Quick verification\n",
"if os.path.exists(h5ad_path):\n",
" print(f\"Success! File ready at: {h5ad_path}\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"GenePT embeddings already exist at data/GenePT_gene_embedding_ada_text.pickle\n"
]
}
],
"source": [
"genept_zip = os.path.join(DATA_DIR, \"GenePT_emebdding_v2.zip\")\n",
"genept_pickle = os.path.join(DATA_DIR, \"GenePT_gene_embedding_ada_text.pickle\")\n",
"\n",
"if not os.path.exists(genept_pickle):\n",
" if not os.path.exists(genept_zip):\n",
" print(\"Downloading GenePT embeddings...\")\n",
" subprocess.run(\n",
" [\"wget\", \"-q\", \"-O\", genept_zip,\n",
" \"https://zenodo.org/records/10833191/files/GenePT_emebdding_v2.zip?download=1\"],\n",
" check=True,\n",
" )\n",
" print(\"Extracting GenePT embeddings...\")\n",
" subprocess.run(\n",
" [\"unzip\", \"-o\", \"-j\", genept_zip,\n",
" \"GenePT_gene_embedding_ada_text.pickle\", \"-d\", DATA_DIR],\n",
" check=True,\n",
" )\n",
" print(\"Done.\")\n",
"else:\n",
" print(f\"GenePT embeddings already exist at {genept_pickle}\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Global seed set to 0\n",
"Global seed set to 42\n"
]
}
],
"source": [
"%load_ext autoreload\n",
"%autoreload 2\n",
"%matplotlib inline\n",
"\n",
"import pickle\n",
"import numpy as np\n",
"import pandas as pd\n",
"import scanpy as sc\n",
"import scvi\n",
"import torch\n",
"import matplotlib.pyplot as plt\n",
"from scipy.stats import pearsonr\n",
"\n",
"torch.set_float32_matmul_precision('medium')\n",
"scvi.settings.seed = 42\n",
"\n",
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"\n",
"from celldisect import CellDISECT, perturbation_metrics"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Data Preparation"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loaded: 91205 cells x 5045 genes\n",
"Obs columns: ['condition', 'cell_type', 'dose_val', 'control', 'condition_name']\n"
]
},
{
"data": {
"text/plain": [
"AnnData object with n_obs × n_vars = 91205 × 5045\n",
" obs: 'condition', 'cell_type', 'dose_val', 'control', 'condition_name'\n",
" var: 'gene_name'\n",
" uns: 'non_dropout_gene_idx', 'non_zeros_gene_idx', 'rank_genes_groups_cov_all', 'top_non_dropout_de_20', 'top_non_zero_de_20'\n",
" layers: 'counts'"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"adata = sc.read_h5ad(h5ad_path)\n",
"print(f\"Loaded: {adata.n_obs} cells x {adata.n_vars} genes\")\n",
"print(f\"Obs columns: {list(adata.obs.columns)}\")\n",
"adata"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.1 Identify perturbation and control columns\n",
"\n",
"The Norman dataset uses `condition` for perturbation labels. Single-gene perturbations are encoded as `ctrl+GENE` or `GENE+ctrl`, and true combinatorial perturbations as `GENEA+GENEB`. The only label without `+` is `ctrl`."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Perturbation column: 'perturbation'\n",
"Unique perturbations: 284\n",
"Control cells: 7353\n"
]
},
{
"data": {
"text/plain": [
"perturbation\n",
"ctrl 7353\n",
"CEBPE+RUNX1T1 1030\n",
"KLF1+ctrl 997\n",
"TBX3+TBX2 969\n",
"SLC4A1+ctrl 853\n",
"ETS2+CNN1 785\n",
"DUSP9+ETS2 698\n",
"UBASH3B+OSR2 677\n",
"DUSP9+ctrl 662\n",
"ctrl+ETS2 656\n",
"Name: count, dtype: int64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"perturbation_key = 'perturbation'\n",
"control_label = 'ctrl'\n",
"\n",
"if 'condition' in adata.obs.columns and perturbation_key not in adata.obs.columns:\n",
" adata.obs[perturbation_key] = adata.obs['condition'].copy()\n",
"\n",
"adata.X = adata.layers['counts'].copy()\n",
"\n",
"# Remove empty cells\n",
"sc.pp.filter_cells(adata, min_counts=1)\n",
"\n",
"print(f\"Perturbation column: '{perturbation_key}'\")\n",
"print(f\"Unique perturbations: {adata.obs[perturbation_key].nunique()}\")\n",
"print(f\"Control cells: {(adata.obs[perturbation_key] == control_label).sum()}\")\n",
"adata.obs[perturbation_key].value_counts().head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.2 Normalize perturbation labels\n",
"\n",
"Single-gene perturbations in the Norman dataset appear as `ctrl+GENE` or `GENE+ctrl`. We strip the `ctrl` component so that single-gene perturbations become just `GENE` and true combinatorial perturbations remain `GENEA+GENEB`. This ensures CellDISECT only looks up real gene embeddings."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 'TSC22D1+ctrl' -> 'TSC22D1'\n",
" 'KLF1+MAP2K6' -> 'KLF1+MAP2K6'\n",
" 'CEBPE+RUNX1T1' -> 'CEBPE+RUNX1T1'\n",
" 'MAML2+ctrl' -> 'MAML2'\n",
" 'ctrl+CEBPE' -> 'CEBPE'\n",
" 'CBL+PTPN9' -> 'CBL+PTPN9'\n",
"\n",
"After normalization:\n",
" Unique perturbations: 237\n"
]
},
{
"data": {
"text/plain": [
"perturbation\n",
"ctrl 7353\n",
"KLF1 1641\n",
"BAK1 1171\n",
"CEBPE 1039\n",
"ETS2 1031\n",
"CEBPE+RUNX1T1 1030\n",
"UBASH3B 983\n",
"TBX3+TBX2 969\n",
"OSR2 858\n",
"SLC4A1 853\n",
"Name: count, dtype: int64"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DELIMITER = '+'\n",
"\n",
"def normalize_pert_label(label, ctrl='ctrl', delimiter='+'):\n",
" \"\"\"Strip the ctrl component from perturbation labels.\n",
" \n",
" 'ctrl+GENE' / 'GENE+ctrl' -> 'GENE'\n",
" 'GENEA+GENEB' -> 'GENEA+GENEB' (unchanged)\n",
" 'ctrl' -> 'ctrl' (unchanged)\n",
" \"\"\"\n",
" if label == ctrl:\n",
" return label\n",
" parts = [p.strip() for p in label.split(delimiter)]\n",
" gene_parts = [p for p in parts if p != ctrl]\n",
" return delimiter.join(gene_parts)\n",
"\n",
"# Show before/after for a few examples\n",
"raw_labels = adata.obs[perturbation_key].unique().tolist()\n",
"examples = [l for l in raw_labels if l != control_label][:6]\n",
"for ex in examples:\n",
" print(f\" '{ex}' -> '{normalize_pert_label(ex)}'\")\n",
"\n",
"# Apply normalization\n",
"adata.obs[perturbation_key] = adata.obs[perturbation_key].map(\n",
" lambda x: normalize_pert_label(x, ctrl=control_label, delimiter=DELIMITER)\n",
")\n",
"\n",
"print(f\"\\nAfter normalization:\")\n",
"print(f\" Unique perturbations: {adata.obs[perturbation_key].nunique()}\")\n",
"adata.obs[perturbation_key].value_counts().head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.3 Inspect single vs combinatorial perturbations"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Single-gene perturbations: 105\n",
"Combinatorial perturbations: 131\n",
"Unique atomic genes across all perturbations: 105\n",
"\n",
"Example singles: ['TSC22D1', 'MAML2', 'CEBPE', 'DUSP9', 'ELMSAN1']\n",
"Example combos: ['KLF1+MAP2K6', 'CEBPE+RUNX1T1', 'CBL+PTPN9', 'TGFBR2+ETS2', 'SGK1+TBX3']\n"
]
}
],
"source": [
"all_perts = [p for p in adata.obs[perturbation_key].unique() if p != control_label]\n",
"single_perts = [p for p in all_perts if DELIMITER not in p]\n",
"combo_perts = [p for p in all_perts if DELIMITER in p]\n",
"\n",
"# Collect all atomic gene names\n",
"all_atomic_genes = set()\n",
"for p in all_perts:\n",
" all_atomic_genes.update(p.split(DELIMITER))\n",
"\n",
"print(f\"Single-gene perturbations: {len(single_perts)}\")\n",
"print(f\"Combinatorial perturbations: {len(combo_perts)}\")\n",
"print(f\"Unique atomic genes across all perturbations: {len(all_atomic_genes)}\")\n",
"print(f\"\\nExample singles: {single_perts[:5]}\")\n",
"print(f\"Example combos: {combo_perts[:5]}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.4 Load GenePT gene embeddings"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"GenePT embeddings: 93800 genes\n",
"Embedding dim: 1536\n",
"Example: 'A1BG' -> shape (1536,)\n"
]
}
],
"source": [
"with open(genept_pickle, 'rb') as f:\n",
" gene_embeddings_raw = pickle.load(f)\n",
"\n",
"gene_embeddings = {\n",
" k: np.array(v, dtype=np.float32) for k, v in gene_embeddings_raw.items()\n",
"}\n",
"\n",
"example_gene = list(gene_embeddings.keys())[0]\n",
"print(f\"GenePT embeddings: {len(gene_embeddings)} genes\")\n",
"print(f\"Embedding dim: {gene_embeddings[example_gene].shape[0]}\")\n",
"print(f\"Example: '{example_gene}' -> shape {gene_embeddings[example_gene].shape}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.5 Filter to perturbations with available embeddings\n",
"\n",
"For combinatorial perturbations `GeneA+GeneB`, **both** atomic components must have a GenePT embedding. CellDISECT automatically computes the combined embedding by summing."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Perturbations with all embeddings: 232\n",
"Perturbations missing >=1 embedding (removed): 4\n",
" Examples: ['RHOXF2BB', 'KIAA1804', 'RHOXF2BB+ZBTB25', 'RHOXF2BB+SET']\n",
"\n",
"Filtered: 90231 cells\n",
" Single-gene perturbations: 103\n",
" Combinatorial perturbations: 129\n",
" Total (+ ctrl): 233\n"
]
}
],
"source": [
"def has_all_embeddings(pert, emb_dict, delimiter='+'):\n",
" \"\"\"Check whether all atomic components of a perturbation have embeddings.\"\"\"\n",
" return all(g in emb_dict for g in pert.split(delimiter) if g != control_label)\n",
"\n",
"perts_with_emb = [p for p in all_perts if has_all_embeddings(p, gene_embeddings, DELIMITER)]\n",
"perts_without_emb = [p for p in all_perts if not has_all_embeddings(p, gene_embeddings, DELIMITER)]\n",
"\n",
"print(f\"Perturbations with all embeddings: {len(perts_with_emb)}\")\n",
"print(f\"Perturbations missing >=1 embedding (removed): {len(perts_without_emb)}\")\n",
"if perts_without_emb:\n",
" print(f\" Examples: {perts_without_emb[:5]}\")\n",
"\n",
"keep_mask = (\n",
" (adata.obs[perturbation_key] == control_label) |\n",
" (adata.obs[perturbation_key].isin(perts_with_emb))\n",
")\n",
"adata = adata[keep_mask].copy()\n",
"\n",
"# Recount\n",
"remaining_perts = [p for p in adata.obs[perturbation_key].unique() if p != control_label]\n",
"remaining_single = [p for p in remaining_perts if DELIMITER not in p]\n",
"remaining_combo = [p for p in remaining_perts if DELIMITER in p]\n",
"print(f\"\\nFiltered: {adata.n_obs} cells\")\n",
"print(f\" Single-gene perturbations: {len(remaining_single)}\")\n",
"print(f\" Combinatorial perturbations: {len(remaining_combo)}\")\n",
"print(f\" Total (+ ctrl): {adata.obs[perturbation_key].nunique()}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.6 Train / test split — hold out random perturbations\n",
"\n",
"We randomly select a set of perturbations as unseen (test). We hold out both single-gene and combinatorial perturbations to evaluate both scenarios."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Held-out single-gene perturbations (5): ['FOXO4', 'FOXL2', 'ARRDC3', 'C19orf26', 'PTPN12']\n",
"Held-out combinatorial perturbations (5): ['MAP2K6+IKZF3', 'FEV+ISL2', 'FOXA3+FOXL2', 'LHX1+ELMSAN1', 'FOXA1+FOXL2']\n",
"\n",
"Training perturbations: 222 (98 single + 124 combo)\n"
]
}
],
"source": [
"np.random.seed(42)\n",
"\n",
"N_HOLDOUT_SINGLE = 5\n",
"N_HOLDOUT_COMBO = 5\n",
"\n",
"holdout_single = list(np.random.choice(\n",
" remaining_single, size=min(N_HOLDOUT_SINGLE, len(remaining_single)), replace=False\n",
"))\n",
"holdout_combo = list(np.random.choice(\n",
" remaining_combo, size=min(N_HOLDOUT_COMBO, len(remaining_combo)), replace=False\n",
"))\n",
"holdout_perts = holdout_single + holdout_combo\n",
"\n",
"train_perts = [p for p in remaining_perts if p not in holdout_perts]\n",
"train_single = [p for p in train_perts if DELIMITER not in p]\n",
"train_combo = [p for p in train_perts if DELIMITER in p]\n",
"\n",
"print(f\"Held-out single-gene perturbations ({len(holdout_single)}): {holdout_single}\")\n",
"print(f\"Held-out combinatorial perturbations ({len(holdout_combo)}): {holdout_combo}\")\n",
"print(f\"\\nTraining perturbations: {len(train_perts)} ({len(train_single)} single + {len(train_combo)} combo)\")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training data: 86623 cells, 223 perturbations (incl. ctrl)\n",
"Evaluation data: 90231 cells\n"
]
}
],
"source": [
"train_mask = (\n",
" (adata.obs[perturbation_key] == control_label) |\n",
" (adata.obs[perturbation_key].isin(train_perts))\n",
")\n",
"adata_train = adata[train_mask].copy()\n",
"adata_eval = adata.copy()\n",
"\n",
"print(f\"Training data: {adata_train.n_obs} cells, {adata_train.obs[perturbation_key].nunique()} perturbations (incl. ctrl)\")\n",
"print(f\"Evaluation data: {adata_eval.n_obs} cells\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.7 Store embeddings in AnnData"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"gene_embeddings['ctrl'] = np.zeros_like(gene_embeddings['MAP2K6'])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"adata_train.uns['pert_embeddings'] = gene_embeddings\n",
"adata_eval.uns['pert_embeddings'] = gene_embeddings"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Model Setup and Training"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
]
}
],
"source": [
"cats = [perturbation_key]\n",
"cell_type_included = True\n",
"\n",
"arch_dict = {'n_layers': 2,\n",
" 'n_hidden': 128,\n",
" 'n_latent_shared': 32,\n",
" 'n_latent_attribute': 32,\n",
" 'dropout_rate': 0.1,\n",
" 'weighted_classifier': False,\n",
"}\n",
"train_dict = {\n",
" 'max_epochs': 1000,\n",
" 'batch_size': 256,\n",
" 'recon_weight': 20,\n",
" 'cf_weight': 0.8,\n",
" 'beta': 0.003,\n",
" 'clf_weight': 0.05,\n",
" 'adv_clf_weight': 0.014,\n",
" 'adv_period': 5,\n",
" 'n_cf': 1,\n",
" 'early_stopping_patience': 6,\n",
" 'early_stopping': True,\n",
" 'save_best': True,\n",
" 'kappa_optimizer2': False,\n",
" 'n_epochs_pretrain_ae': 0,\n",
"}\n",
"\n",
"plan_kwargs = {\n",
" 'lr': 0.003,\n",
" 'weight_decay': 0.00005,\n",
" 'ensemble_method_cf': True,\n",
" 'lr_patience': 5,\n",
" 'lr_factor': 0.5,\n",
" 'lr_scheduler_metric': 'loss_validation',\n",
" 'n_epochs_kl_warmup': 10,\n",
"}\n",
"\n",
"CellDISECT.setup_anndata(\n",
" adata_train,\n",
" layer='counts',\n",
" categorical_covariate_keys=cats,\n",
" continuous_covariate_keys=[],\n",
" perturbation_key=perturbation_key,\n",
" perturbation_embedding_key='pert_embeddings',\n",
" perturbation_combination_delimiter=DELIMITER,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"
CellDISECT Model with the following params: \n",
"n_hidden: 128, n_latent_shared: 32, n_latent_attribute: 32, n_layers: 2, dropout_rate: 0.1, gene_likelihood: zinb, \n",
"latent_distribution: normal\n",
"Training status: Not Trained\n",
"Model's adata is minified?: False\n",
"\n"
],
"text/plain": [
"CellDISECT Model with the following params: \n",
"n_hidden: \u001b[1;36m128\u001b[0m, n_latent_shared: \u001b[1;36m32\u001b[0m, n_latent_attribute: \u001b[1;36m32\u001b[0m, n_layers: \u001b[1;36m2\u001b[0m, dropout_rate: \u001b[1;36m0.1\u001b[0m, gene_likelihood: zinb, \n",
"latent_distribution: normal\n",
"Training status: Not Trained\n",
"Model's adata is minified?: \u001b[3;91mFalse\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"model = CellDISECT(\n",
" adata_train,\n",
" **arch_dict\n",
")\n",
"print(model)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"GPU available: True (cuda), used: True\n",
"TPU available: False, using: 0 TPU cores\n",
"IPU available: False, using: 0 IPUs\n",
"HPU available: False, using: 0 HPUs\n",
"LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [MIG-GPU-c92e82f0-acdb-bfba-5c7c-90306242f281/13/0]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 2/1000: 0%| | 1/1000 [00:11<3:14:02, 11.65s/it, v_num=1, loss_validation=6.11, x_0_validation=0.279, x_1_validation=0.29, rec_x_cf_validation=0.201, z_1_validation=28.5, ce_validation=5.12, acc_validation=0.087, f1_validation=0.087, adv_ce_validation=4.98, adv_acc_validation=0.0854, adv_f1_validation=0.0854, loss_train=7.74, x_0_train=0.363, x_1_train=0.366, rec_x_cf_train=0.24, z_1_train=21.3, ce_train=5.26, acc_train=0.0682, f1_train=0.0682, adv_ce_train=5.11, adv_acc_train=0.0784, adv_f1_train=0.0784]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00001: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 6/1000: 0%| | 5/1000 [00:43<2:18:12, 8.33s/it, v_num=1, loss_validation=6.03, x_0_validation=0.278, x_1_validation=0.28, rec_x_cf_validation=0.198, z_1_validation=32.6, ce_validation=5.1, acc_validation=0.0858, f1_validation=0.0858, adv_ce_validation=4.81, adv_acc_validation=0.0941, adv_f1_validation=0.0941, loss_train=6.04, x_0_train=0.278, x_1_train=0.28, rec_x_cf_train=0.198, z_1_train=35.4, ce_train=5.11, acc_train=0.0869, f1_train=0.0869, adv_ce_train=4.84, adv_acc_train=0.0939, adv_f1_train=0.0939]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00005: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 7/1000: 1%| | 6/1000 [00:56<2:40:14, 9.67s/it, v_num=1, loss_validation=5.6, x_0_validation=0.258, x_1_validation=0.259, rec_x_cf_validation=0.193, z_1_validation=11.8, ce_validation=5, acc_validation=0.0941, f1_validation=0.0941, adv_ce_validation=4.86, adv_acc_validation=0.0936, adv_f1_validation=0.0936, loss_train=5.72, x_0_train=0.266, x_1_train=0.267, rec_x_cf_train=0.195, z_1_train=16.4, ce_train=5.05, acc_train=0.0894, f1_train=0.0894, adv_ce_train=4.86, adv_acc_train=0.0928, adv_f1_train=0.0928] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00006: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 11/1000: 1%| | 10/1000 [01:28<2:18:08, 8.37s/it, v_num=1, loss_validation=5.6, x_0_validation=0.258, x_1_validation=0.259, rec_x_cf_validation=0.193, z_1_validation=10.9, ce_validation=4.98, acc_validation=0.093, f1_validation=0.093, adv_ce_validation=4.82, adv_acc_validation=0.0939, adv_f1_validation=0.0939, loss_train=5.6, x_0_train=0.258, x_1_train=0.259, rec_x_cf_train=0.193, z_1_train=12.4, ce_train=4.99, acc_train=0.0932, f1_train=0.0932, adv_ce_train=4.83, adv_acc_train=0.0935, adv_f1_train=0.0935] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00010: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 12/1000: 1%| | 11/1000 [01:40<2:37:42, 9.57s/it, v_num=1, loss_validation=5.46, x_0_validation=0.252, x_1_validation=0.253, rec_x_cf_validation=0.192, z_1_validation=5.81, ce_validation=4.91, acc_validation=0.0974, f1_validation=0.0974, adv_ce_validation=4.89, adv_acc_validation=0.0899, adv_f1_validation=0.0899, loss_train=5.46, x_0_train=0.254, x_1_train=0.255, rec_x_cf_train=0.192, z_1_train=8.55, ce_train=4.96, acc_train=0.0953, f1_train=0.0953, adv_ce_train=4.87, adv_acc_train=0.0921, adv_f1_train=0.0921]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00011: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 16/1000: 2%|▏ | 15/1000 [02:13<2:19:53, 8.52s/it, v_num=1, loss_validation=5.46, x_0_validation=0.252, x_1_validation=0.252, rec_x_cf_validation=0.192, z_1_validation=5.68, ce_validation=4.91, acc_validation=0.0986, f1_validation=0.0986, adv_ce_validation=4.86, adv_acc_validation=0.0911, adv_f1_validation=0.0911, loss_train=5.46, x_0_train=0.252, x_1_train=0.252, rec_x_cf_train=0.192, z_1_train=6.88, ce_train=4.91, acc_train=0.0979, f1_train=0.0979, adv_ce_train=4.87, adv_acc_train=0.092, adv_f1_train=0.092] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00015: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 17/1000: 2%|▏ | 16/1000 [02:25<2:38:24, 9.66s/it, v_num=1, loss_validation=5.38, x_0_validation=0.248, x_1_validation=0.249, rec_x_cf_validation=0.192, z_1_validation=5.09, ce_validation=4.8, acc_validation=0.101, f1_validation=0.101, adv_ce_validation=4.86, adv_acc_validation=0.0912, adv_f1_validation=0.0912, loss_train=5.35, x_0_train=0.25, x_1_train=0.251, rec_x_cf_train=0.192, z_1_train=6.3, ce_train=4.87, acc_train=0.1, f1_train=0.1, adv_ce_train=4.86, adv_acc_train=0.0916, adv_f1_train=0.0916] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00016: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 19/1000: 2%|▏ | 18/1000 [02:41<2:24:37, 8.84s/it, v_num=1, loss_validation=5.38, x_0_validation=0.248, x_1_validation=0.249, rec_x_cf_validation=0.192, z_1_validation=4.85, ce_validation=4.81, acc_validation=0.102, f1_validation=0.102, adv_ce_validation=4.84, adv_acc_validation=0.0917, adv_f1_validation=0.0917, loss_train=5.38, x_0_train=0.248, x_1_train=0.249, rec_x_cf_train=0.191, z_1_train=5.91, ce_train=4.82, acc_train=0.103, f1_train=0.103, adv_ce_train=4.86, adv_acc_train=0.0922, adv_f1_train=0.0922]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00018: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 21/1000: 2%|▏ | 20/1000 [02:58<2:17:43, 8.43s/it, v_num=1, loss_validation=5.38, x_0_validation=0.248, x_1_validation=0.249, rec_x_cf_validation=0.192, z_1_validation=4.84, ce_validation=4.81, acc_validation=0.102, f1_validation=0.102, adv_ce_validation=4.84, adv_acc_validation=0.0922, adv_f1_validation=0.0922, loss_train=5.38, x_0_train=0.248, x_1_train=0.249, rec_x_cf_train=0.192, z_1_train=5.91, ce_train=4.82, acc_train=0.103, f1_train=0.103, adv_ce_train=4.85, adv_acc_train=0.0929, adv_f1_train=0.0929]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00020: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 22/1000: 2%|▏ | 21/1000 [03:10<2:36:37, 9.60s/it, v_num=1, loss_validation=5.33, x_0_validation=0.246, x_1_validation=0.246, rec_x_cf_validation=0.192, z_1_validation=4.87, ce_validation=4.71, acc_validation=0.112, f1_validation=0.112, adv_ce_validation=4.85, adv_acc_validation=0.0913, adv_f1_validation=0.0913, loss_train=5.29, x_0_train=0.247, x_1_train=0.248, rec_x_cf_train=0.192, z_1_train=5.79, ce_train=4.77, acc_train=0.107, f1_train=0.107, adv_ce_train=4.85, adv_acc_train=0.0927, adv_f1_train=0.0927]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00021: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 23/1000: 2%|▏ | 22/1000 [03:18<2:29:14, 9.16s/it, v_num=1, loss_validation=5.32, x_0_validation=0.246, x_1_validation=0.246, rec_x_cf_validation=0.192, z_1_validation=4.65, ce_validation=4.71, acc_validation=0.114, f1_validation=0.114, adv_ce_validation=4.84, adv_acc_validation=0.0917, adv_f1_validation=0.0917, loss_train=5.33, x_0_train=0.246, x_1_train=0.246, rec_x_cf_train=0.192, z_1_train=5.66, ce_train=4.71, acc_train=0.112, f1_train=0.112, adv_ce_train=4.85, adv_acc_train=0.0926, adv_f1_train=0.0926]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00022: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 26/1000: 2%|▎ | 25/1000 [03:42<2:16:26, 8.40s/it, v_num=1, loss_validation=5.32, x_0_validation=0.246, x_1_validation=0.246, rec_x_cf_validation=0.192, z_1_validation=4.63, ce_validation=4.71, acc_validation=0.114, f1_validation=0.114, adv_ce_validation=4.84, adv_acc_validation=0.0914, adv_f1_validation=0.0914, loss_train=5.33, x_0_train=0.246, x_1_train=0.246, rec_x_cf_train=0.192, z_1_train=5.66, ce_train=4.71, acc_train=0.113, f1_train=0.113, adv_ce_train=4.84, adv_acc_train=0.0932, adv_f1_train=0.0932]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00025: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 27/1000: 3%|▎ | 26/1000 [03:54<2:35:20, 9.57s/it, v_num=1, loss_validation=5.28, x_0_validation=0.244, x_1_validation=0.244, rec_x_cf_validation=0.192, z_1_validation=4.46, ce_validation=4.6, acc_validation=0.123, f1_validation=0.123, adv_ce_validation=4.83, adv_acc_validation=0.0933, adv_f1_validation=0.0933, loss_train=5.24, x_0_train=0.245, x_1_train=0.245, rec_x_cf_train=0.191, z_1_train=5.63, ce_train=4.66, acc_train=0.118, f1_train=0.118, adv_ce_train=4.84, adv_acc_train=0.0929, adv_f1_train=0.0929] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00026: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 28/1000: 3%|▎ | 27/1000 [04:02<2:28:14, 9.14s/it, v_num=1, loss_validation=5.28, x_0_validation=0.244, x_1_validation=0.244, rec_x_cf_validation=0.192, z_1_validation=4.63, ce_validation=4.59, acc_validation=0.123, f1_validation=0.123, adv_ce_validation=4.82, adv_acc_validation=0.092, adv_f1_validation=0.092, loss_train=5.28, x_0_train=0.244, x_1_train=0.244, rec_x_cf_train=0.191, z_1_train=5.59, ce_train=4.6, acc_train=0.122, f1_train=0.122, adv_ce_train=4.83, adv_acc_train=0.0926, adv_f1_train=0.0926] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00027: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 31/1000: 3%|▎ | 30/1000 [04:27<2:16:06, 8.42s/it, v_num=1, loss_validation=5.28, x_0_validation=0.244, x_1_validation=0.244, rec_x_cf_validation=0.192, z_1_validation=4.66, ce_validation=4.58, acc_validation=0.124, f1_validation=0.124, adv_ce_validation=4.82, adv_acc_validation=0.0931, adv_f1_validation=0.0931, loss_train=5.28, x_0_train=0.244, x_1_train=0.244, rec_x_cf_train=0.191, z_1_train=5.59, ce_train=4.59, acc_train=0.122, f1_train=0.122, adv_ce_train=4.82, adv_acc_train=0.094, adv_f1_train=0.094] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00030: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 32/1000: 3%|▎ | 31/1000 [04:39<2:35:08, 9.61s/it, v_num=1, loss_validation=5.25, x_0_validation=0.242, x_1_validation=0.243, rec_x_cf_validation=0.192, z_1_validation=4.69, ce_validation=4.5, acc_validation=0.134, f1_validation=0.134, adv_ce_validation=4.83, adv_acc_validation=0.0926, adv_f1_validation=0.0926, loss_train=5.2, x_0_train=0.243, x_1_train=0.244, rec_x_cf_train=0.191, z_1_train=5.55, ce_train=4.52, acc_train=0.127, f1_train=0.127, adv_ce_train=4.83, adv_acc_train=0.0931, adv_f1_train=0.0931]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00031: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 34/1000: 3%|▎ | 33/1000 [04:55<2:21:59, 8.81s/it, v_num=1, loss_validation=5.24, x_0_validation=0.242, x_1_validation=0.243, rec_x_cf_validation=0.192, z_1_validation=4.53, ce_validation=4.42, acc_validation=0.135, f1_validation=0.135, adv_ce_validation=4.82, adv_acc_validation=0.092, adv_f1_validation=0.092, loss_train=5.24, x_0_train=0.242, x_1_train=0.243, rec_x_cf_train=0.192, z_1_train=5.45, ce_train=4.43, acc_train=0.134, f1_train=0.134, adv_ce_train=4.82, adv_acc_train=0.0935, adv_f1_train=0.0935]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00033: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 36/1000: 4%|▎ | 35/1000 [05:11<2:15:13, 8.41s/it, v_num=1, loss_validation=5.24, x_0_validation=0.242, x_1_validation=0.243, rec_x_cf_validation=0.192, z_1_validation=4.54, ce_validation=4.42, acc_validation=0.134, f1_validation=0.134, adv_ce_validation=4.81, adv_acc_validation=0.0925, adv_f1_validation=0.0925, loss_train=5.24, x_0_train=0.242, x_1_train=0.243, rec_x_cf_train=0.192, z_1_train=5.45, ce_train=4.43, acc_train=0.133, f1_train=0.133, adv_ce_train=4.82, adv_acc_train=0.0933, adv_f1_train=0.0933]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00035: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 37/1000: 4%|▎ | 36/1000 [05:24<2:34:32, 9.62s/it, v_num=1, loss_validation=5.21, x_0_validation=0.241, x_1_validation=0.242, rec_x_cf_validation=0.19, z_1_validation=4.27, ce_validation=4.33, acc_validation=0.144, f1_validation=0.144, adv_ce_validation=4.81, adv_acc_validation=0.0937, adv_f1_validation=0.0937, loss_train=5.16, x_0_train=0.242, x_1_train=0.242, rec_x_cf_train=0.191, z_1_train=5.43, ce_train=4.36, acc_train=0.139, f1_train=0.139, adv_ce_train=4.82, adv_acc_train=0.0937, adv_f1_train=0.0937] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00036: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 38/1000: 4%|▎ | 37/1000 [05:32<2:27:04, 9.16s/it, v_num=1, loss_validation=5.21, x_0_validation=0.241, x_1_validation=0.241, rec_x_cf_validation=0.19, z_1_validation=4.48, ce_validation=4.28, acc_validation=0.146, f1_validation=0.146, adv_ce_validation=4.8, adv_acc_validation=0.0935, adv_f1_validation=0.0935, loss_train=5.21, x_0_train=0.241, x_1_train=0.242, rec_x_cf_train=0.19, z_1_train=5.41, ce_train=4.29, acc_train=0.144, f1_train=0.144, adv_ce_train=4.81, adv_acc_train=0.0939, adv_f1_train=0.0939] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00037: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 40/1000: 4%|▍ | 39/1000 [05:48<2:17:31, 8.59s/it, v_num=1, loss_validation=5.21, x_0_validation=0.241, x_1_validation=0.241, rec_x_cf_validation=0.19, z_1_validation=4.49, ce_validation=4.28, acc_validation=0.144, f1_validation=0.144, adv_ce_validation=4.8, adv_acc_validation=0.0935, adv_f1_validation=0.0935, loss_train=5.21, x_0_train=0.241, x_1_train=0.242, rec_x_cf_train=0.19, z_1_train=5.41, ce_train=4.29, acc_train=0.143, f1_train=0.143, adv_ce_train=4.8, adv_acc_train=0.0938, adv_f1_train=0.0938] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00039: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 41/1000: 4%|▍ | 40/1000 [05:56<2:14:37, 8.41s/it, v_num=1, loss_validation=5.21, x_0_validation=0.241, x_1_validation=0.241, rec_x_cf_validation=0.19, z_1_validation=4.48, ce_validation=4.27, acc_validation=0.144, f1_validation=0.144, adv_ce_validation=4.8, adv_acc_validation=0.0942, adv_f1_validation=0.0942, loss_train=5.21, x_0_train=0.241, x_1_train=0.242, rec_x_cf_train=0.19, z_1_train=5.41, ce_train=4.29, acc_train=0.144, f1_train=0.144, adv_ce_train=4.8, adv_acc_train=0.0941, adv_f1_train=0.0941]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00040: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 42/1000: 4%|▍ | 41/1000 [06:08<2:33:14, 9.59s/it, v_num=1, loss_validation=5.19, x_0_validation=0.24, x_1_validation=0.24, rec_x_cf_validation=0.192, z_1_validation=5.6, ce_validation=4.28, acc_validation=0.144, f1_validation=0.144, adv_ce_validation=4.8, adv_acc_validation=0.0936, adv_f1_validation=0.0936, loss_train=5.13, x_0_train=0.241, x_1_train=0.241, rec_x_cf_train=0.191, z_1_train=5.42, ce_train=4.24, acc_train=0.148, f1_train=0.148, adv_ce_train=4.81, adv_acc_train=0.0939, adv_f1_train=0.0939]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00041: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 44/1000: 4%|▍ | 43/1000 [06:24<2:20:30, 8.81s/it, v_num=1, loss_validation=5.17, x_0_validation=0.24, x_1_validation=0.24, rec_x_cf_validation=0.191, z_1_validation=4.51, ce_validation=4.18, acc_validation=0.154, f1_validation=0.154, adv_ce_validation=4.79, adv_acc_validation=0.0945, adv_f1_validation=0.0945, loss_train=5.18, x_0_train=0.24, x_1_train=0.24, rec_x_cf_train=0.191, z_1_train=5.43, ce_train=4.19, acc_train=0.153, f1_train=0.153, adv_ce_train=4.8, adv_acc_train=0.094, adv_f1_train=0.094] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00043: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 45/1000: 4%|▍ | 44/1000 [06:32<2:17:13, 8.61s/it, v_num=1, loss_validation=5.17, x_0_validation=0.24, x_1_validation=0.24, rec_x_cf_validation=0.191, z_1_validation=4.5, ce_validation=4.17, acc_validation=0.153, f1_validation=0.153, adv_ce_validation=4.79, adv_acc_validation=0.0948, adv_f1_validation=0.0948, loss_train=5.18, x_0_train=0.24, x_1_train=0.24, rec_x_cf_train=0.191, z_1_train=5.44, ce_train=4.19, acc_train=0.153, f1_train=0.153, adv_ce_train=4.79, adv_acc_train=0.0947, adv_f1_train=0.0947]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00044: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 46/1000: 4%|▍ | 45/1000 [06:40<2:14:19, 8.44s/it, v_num=1, loss_validation=5.17, x_0_validation=0.24, x_1_validation=0.24, rec_x_cf_validation=0.191, z_1_validation=4.5, ce_validation=4.17, acc_validation=0.155, f1_validation=0.155, adv_ce_validation=4.78, adv_acc_validation=0.0945, adv_f1_validation=0.0945, loss_train=5.18, x_0_train=0.24, x_1_train=0.24, rec_x_cf_train=0.191, z_1_train=5.43, ce_train=4.19, acc_train=0.153, f1_train=0.153, adv_ce_train=4.79, adv_acc_train=0.0946, adv_f1_train=0.0946]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00045: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 47/1000: 5%|▍ | 46/1000 [06:54<2:37:59, 9.94s/it, v_num=1, loss_validation=5.15, x_0_validation=0.239, x_1_validation=0.239, rec_x_cf_validation=0.191, z_1_validation=4.68, ce_validation=4.12, acc_validation=0.166, f1_validation=0.166, adv_ce_validation=4.78, adv_acc_validation=0.0941, adv_f1_validation=0.0941, loss_train=5.1, x_0_train=0.239, x_1_train=0.24, rec_x_cf_train=0.191, z_1_train=5.45, ce_train=4.14, acc_train=0.158, f1_train=0.158, adv_ce_train=4.79, adv_acc_train=0.0941, adv_f1_train=0.0941]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00046: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 51/1000: 5%|▌ | 50/1000 [07:26<2:14:31, 8.50s/it, v_num=1, loss_validation=5.15, x_0_validation=0.239, x_1_validation=0.239, rec_x_cf_validation=0.191, z_1_validation=4.52, ce_validation=4.08, acc_validation=0.166, f1_validation=0.166, adv_ce_validation=4.77, adv_acc_validation=0.0953, adv_f1_validation=0.0953, loss_train=5.15, x_0_train=0.239, x_1_train=0.239, rec_x_cf_train=0.191, z_1_train=5.42, ce_train=4.09, acc_train=0.165, f1_train=0.165, adv_ce_train=4.77, adv_acc_train=0.0953, adv_f1_train=0.0953]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00050: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 52/1000: 5%|▌ | 51/1000 [07:38<2:32:19, 9.63s/it, v_num=1, loss_validation=5.13, x_0_validation=0.238, x_1_validation=0.238, rec_x_cf_validation=0.19, z_1_validation=4.67, ce_validation=4.08, acc_validation=0.176, f1_validation=0.176, adv_ce_validation=4.75, adv_acc_validation=0.0967, adv_f1_validation=0.0967, loss_train=5.08, x_0_train=0.238, x_1_train=0.239, rec_x_cf_train=0.19, z_1_train=5.49, ce_train=4.05, acc_train=0.168, f1_train=0.168, adv_ce_train=4.76, adv_acc_train=0.0953, adv_f1_train=0.0953] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00051: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 54/1000: 5%|▌ | 53/1000 [07:55<2:19:26, 8.83s/it, v_num=1, loss_validation=5.12, x_0_validation=0.238, x_1_validation=0.238, rec_x_cf_validation=0.19, z_1_validation=4.6, ce_validation=4, acc_validation=0.175, f1_validation=0.175, adv_ce_validation=4.74, adv_acc_validation=0.0963, adv_f1_validation=0.0963, loss_train=5.13, x_0_train=0.238, x_1_train=0.238, rec_x_cf_train=0.19, z_1_train=5.5, ce_train=4.01, acc_train=0.175, f1_train=0.175, adv_ce_train=4.75, adv_acc_train=0.0957, adv_f1_train=0.0957] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00053: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 55/1000: 5%|▌ | 54/1000 [08:03<2:15:45, 8.61s/it, v_num=1, loss_validation=5.12, x_0_validation=0.238, x_1_validation=0.238, rec_x_cf_validation=0.19, z_1_validation=4.6, ce_validation=4, acc_validation=0.175, f1_validation=0.175, adv_ce_validation=4.75, adv_acc_validation=0.0959, adv_f1_validation=0.0959, loss_train=5.13, x_0_train=0.238, x_1_train=0.238, rec_x_cf_train=0.19, z_1_train=5.51, ce_train=4.01, acc_train=0.174, f1_train=0.174, adv_ce_train=4.75, adv_acc_train=0.096, adv_f1_train=0.096] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00054: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 56/1000: 6%|▌ | 55/1000 [08:11<2:12:50, 8.43s/it, v_num=1, loss_validation=5.12, x_0_validation=0.238, x_1_validation=0.238, rec_x_cf_validation=0.19, z_1_validation=4.61, ce_validation=4, acc_validation=0.177, f1_validation=0.177, adv_ce_validation=4.74, adv_acc_validation=0.0966, adv_f1_validation=0.0966, loss_train=5.13, x_0_train=0.238, x_1_train=0.238, rec_x_cf_train=0.19, z_1_train=5.51, ce_train=4.01, acc_train=0.174, f1_train=0.174, adv_ce_train=4.75, adv_acc_train=0.0962, adv_f1_train=0.0962]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00055: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 57/1000: 6%|▌ | 56/1000 [08:23<2:30:46, 9.58s/it, v_num=1, loss_validation=5.1, x_0_validation=0.237, x_1_validation=0.237, rec_x_cf_validation=0.19, z_1_validation=4.75, ce_validation=3.96, acc_validation=0.188, f1_validation=0.188, adv_ce_validation=4.73, adv_acc_validation=0.0969, adv_f1_validation=0.0969, loss_train=5.05, x_0_train=0.237, x_1_train=0.238, rec_x_cf_train=0.19, z_1_train=5.56, ce_train=3.97, acc_train=0.179, f1_train=0.179, adv_ce_train=4.74, adv_acc_train=0.0958, adv_f1_train=0.0958]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00056: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 58/1000: 6%|▌ | 57/1000 [08:31<2:24:04, 9.17s/it, v_num=1, loss_validation=5.1, x_0_validation=0.237, x_1_validation=0.237, rec_x_cf_validation=0.19, z_1_validation=4.67, ce_validation=3.92, acc_validation=0.186, f1_validation=0.186, adv_ce_validation=4.73, adv_acc_validation=0.096, adv_f1_validation=0.096, loss_train=5.11, x_0_train=0.237, x_1_train=0.237, rec_x_cf_train=0.19, z_1_train=5.57, ce_train=3.92, acc_train=0.186, f1_train=0.186, adv_ce_train=4.74, adv_acc_train=0.0963, adv_f1_train=0.0963] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00057: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 59/1000: 6%|▌ | 58/1000 [08:39<2:18:06, 8.80s/it, v_num=1, loss_validation=5.1, x_0_validation=0.237, x_1_validation=0.237, rec_x_cf_validation=0.19, z_1_validation=4.68, ce_validation=3.92, acc_validation=0.188, f1_validation=0.188, adv_ce_validation=4.72, adv_acc_validation=0.0972, adv_f1_validation=0.0972, loss_train=5.11, x_0_train=0.237, x_1_train=0.237, rec_x_cf_train=0.19, z_1_train=5.58, ce_train=3.92, acc_train=0.186, f1_train=0.186, adv_ce_train=4.73, adv_acc_train=0.0964, adv_f1_train=0.0964]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00058: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 60/1000: 6%|▌ | 59/1000 [08:47<2:15:05, 8.61s/it, v_num=1, loss_validation=5.1, x_0_validation=0.237, x_1_validation=0.237, rec_x_cf_validation=0.19, z_1_validation=4.68, ce_validation=3.92, acc_validation=0.188, f1_validation=0.188, adv_ce_validation=4.72, adv_acc_validation=0.0973, adv_f1_validation=0.0973, loss_train=5.11, x_0_train=0.237, x_1_train=0.237, rec_x_cf_train=0.19, z_1_train=5.58, ce_train=3.92, acc_train=0.185, f1_train=0.185, adv_ce_train=4.73, adv_acc_train=0.0967, adv_f1_train=0.0967]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00059: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 61/1000: 6%|▌ | 60/1000 [08:55<2:12:04, 8.43s/it, v_num=1, loss_validation=5.1, x_0_validation=0.237, x_1_validation=0.237, rec_x_cf_validation=0.19, z_1_validation=4.67, ce_validation=3.91, acc_validation=0.192, f1_validation=0.192, adv_ce_validation=4.72, adv_acc_validation=0.0969, adv_f1_validation=0.0969, loss_train=5.11, x_0_train=0.237, x_1_train=0.237, rec_x_cf_train=0.19, z_1_train=5.58, ce_train=3.92, acc_train=0.186, f1_train=0.186, adv_ce_train=4.73, adv_acc_train=0.0964, adv_f1_train=0.0964]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00060: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 62/1000: 6%|▌ | 61/1000 [09:08<2:30:57, 9.65s/it, v_num=1, loss_validation=5.08, x_0_validation=0.236, x_1_validation=0.236, rec_x_cf_validation=0.189, z_1_validation=4.92, ce_validation=3.87, acc_validation=0.204, f1_validation=0.204, adv_ce_validation=4.71, adv_acc_validation=0.0981, adv_f1_validation=0.0981, loss_train=5.03, x_0_train=0.236, x_1_train=0.237, rec_x_cf_train=0.19, z_1_train=5.64, ce_train=3.89, acc_train=0.191, f1_train=0.191, adv_ce_train=4.72, adv_acc_train=0.0968, adv_f1_train=0.0968]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00061: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 63/1000: 6%|▌ | 62/1000 [09:16<2:23:30, 9.18s/it, v_num=1, loss_validation=5.08, x_0_validation=0.236, x_1_validation=0.236, rec_x_cf_validation=0.19, z_1_validation=4.79, ce_validation=3.83, acc_validation=0.203, f1_validation=0.203, adv_ce_validation=4.7, adv_acc_validation=0.0977, adv_f1_validation=0.0977, loss_train=5.09, x_0_train=0.236, x_1_train=0.237, rec_x_cf_train=0.19, z_1_train=5.68, ce_train=3.83, acc_train=0.199, f1_train=0.199, adv_ce_train=4.72, adv_acc_train=0.0972, adv_f1_train=0.0972] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00062: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 66/1000: 6%|▋ | 65/1000 [09:40<2:11:28, 8.44s/it, v_num=1, loss_validation=5.08, x_0_validation=0.236, x_1_validation=0.236, rec_x_cf_validation=0.19, z_1_validation=4.77, ce_validation=3.83, acc_validation=0.2, f1_validation=0.2, adv_ce_validation=4.7, adv_acc_validation=0.0971, adv_f1_validation=0.0971, loss_train=5.09, x_0_train=0.236, x_1_train=0.237, rec_x_cf_train=0.19, z_1_train=5.68, ce_train=3.83, acc_train=0.198, f1_train=0.198, adv_ce_train=4.71, adv_acc_train=0.097, adv_f1_train=0.097] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00065: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 67/1000: 7%|▋ | 66/1000 [09:52<2:29:15, 9.59s/it, v_num=1, loss_validation=5.06, x_0_validation=0.235, x_1_validation=0.236, rec_x_cf_validation=0.19, z_1_validation=5.23, ce_validation=3.73, acc_validation=0.219, f1_validation=0.219, adv_ce_validation=4.69, adv_acc_validation=0.0988, adv_f1_validation=0.0988, loss_train=5.01, x_0_train=0.235, x_1_train=0.236, rec_x_cf_train=0.19, z_1_train=5.75, ce_train=3.8, acc_train=0.204, f1_train=0.204, adv_ce_train=4.7, adv_acc_train=0.0972, adv_f1_train=0.0972]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00066: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 68/1000: 7%|▋ | 67/1000 [10:00<2:22:52, 9.19s/it, v_num=1, loss_validation=5.06, x_0_validation=0.235, x_1_validation=0.236, rec_x_cf_validation=0.19, z_1_validation=4.85, ce_validation=3.74, acc_validation=0.213, f1_validation=0.213, adv_ce_validation=4.69, adv_acc_validation=0.0995, adv_f1_validation=0.0995, loss_train=5.06, x_0_train=0.235, x_1_train=0.236, rec_x_cf_train=0.19, z_1_train=5.77, ce_train=3.74, acc_train=0.212, f1_train=0.212, adv_ce_train=4.7, adv_acc_train=0.0979, adv_f1_train=0.0979]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00067: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 71/1000: 7%|▋ | 70/1000 [10:25<2:10:57, 8.45s/it, v_num=1, loss_validation=5.06, x_0_validation=0.235, x_1_validation=0.236, rec_x_cf_validation=0.19, z_1_validation=4.86, ce_validation=3.74, acc_validation=0.213, f1_validation=0.213, adv_ce_validation=4.69, adv_acc_validation=0.0986, adv_f1_validation=0.0986, loss_train=5.06, x_0_train=0.235, x_1_train=0.236, rec_x_cf_train=0.19, z_1_train=5.77, ce_train=3.74, acc_train=0.211, f1_train=0.211, adv_ce_train=4.69, adv_acc_train=0.0974, adv_f1_train=0.0974]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00070: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 72/1000: 7%|▋ | 71/1000 [10:37<2:28:43, 9.61s/it, v_num=1, loss_validation=5.04, x_0_validation=0.234, x_1_validation=0.235, rec_x_cf_validation=0.19, z_1_validation=5.3, ce_validation=3.71, acc_validation=0.224, f1_validation=0.224, adv_ce_validation=4.67, adv_acc_validation=0.0989, adv_f1_validation=0.0989, loss_train=4.99, x_0_train=0.235, x_1_train=0.235, rec_x_cf_train=0.19, z_1_train=5.84, ce_train=3.71, acc_train=0.217, f1_train=0.217, adv_ce_train=4.69, adv_acc_train=0.0976, adv_f1_train=0.0976] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00071: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 73/1000: 7%|▋ | 72/1000 [10:46<2:23:00, 9.25s/it, v_num=1, loss_validation=5.04, x_0_validation=0.234, x_1_validation=0.235, rec_x_cf_validation=0.19, z_1_validation=5, ce_validation=3.66, acc_validation=0.227, f1_validation=0.227, adv_ce_validation=4.67, adv_acc_validation=0.1, adv_f1_validation=0.1, loss_train=5.05, x_0_train=0.234, x_1_train=0.235, rec_x_cf_train=0.19, z_1_train=5.91, ce_train=3.65, acc_train=0.225, f1_train=0.225, adv_ce_train=4.68, adv_acc_train=0.0981, adv_f1_train=0.0981] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00072: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 76/1000: 8%|▊ | 75/1000 [11:10<2:11:07, 8.50s/it, v_num=1, loss_validation=5.04, x_0_validation=0.234, x_1_validation=0.235, rec_x_cf_validation=0.19, z_1_validation=4.99, ce_validation=3.65, acc_validation=0.227, f1_validation=0.227, adv_ce_validation=4.66, adv_acc_validation=0.0995, adv_f1_validation=0.0995, loss_train=5.05, x_0_train=0.234, x_1_train=0.235, rec_x_cf_train=0.19, z_1_train=5.9, ce_train=3.65, acc_train=0.223, f1_train=0.223, adv_ce_train=4.67, adv_acc_train=0.0982, adv_f1_train=0.0982] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00075: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 77/1000: 8%|▊ | 76/1000 [11:23<2:29:57, 9.74s/it, v_num=1, loss_validation=5.02, x_0_validation=0.233, x_1_validation=0.234, rec_x_cf_validation=0.189, z_1_validation=5.1, ce_validation=3.59, acc_validation=0.24, f1_validation=0.24, adv_ce_validation=4.67, adv_acc_validation=0.0994, adv_f1_validation=0.0994, loss_train=4.97, x_0_train=0.234, x_1_train=0.235, rec_x_cf_train=0.19, z_1_train=5.95, ce_train=3.62, acc_train=0.23, f1_train=0.23, adv_ce_train=4.67, adv_acc_train=0.0985, adv_f1_train=0.0985] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00076: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 78/1000: 8%|▊ | 77/1000 [11:31<2:23:13, 9.31s/it, v_num=1, loss_validation=5.02, x_0_validation=0.233, x_1_validation=0.234, rec_x_cf_validation=0.19, z_1_validation=5.04, ce_validation=3.57, acc_validation=0.242, f1_validation=0.242, adv_ce_validation=4.65, adv_acc_validation=0.1, adv_f1_validation=0.1, loss_train=5.03, x_0_train=0.234, x_1_train=0.234, rec_x_cf_train=0.19, z_1_train=5.96, ce_train=3.57, acc_train=0.238, f1_train=0.238, adv_ce_train=4.67, adv_acc_train=0.0991, adv_f1_train=0.0991] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00077: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 80/1000: 8%|▊ | 79/1000 [11:49<2:20:33, 9.16s/it, v_num=1, loss_validation=5.02, x_0_validation=0.233, x_1_validation=0.234, rec_x_cf_validation=0.19, z_1_validation=5.03, ce_validation=3.57, acc_validation=0.24, f1_validation=0.24, adv_ce_validation=4.65, adv_acc_validation=0.0998, adv_f1_validation=0.0998, loss_train=5.03, x_0_train=0.234, x_1_train=0.234, rec_x_cf_train=0.19, z_1_train=5.97, ce_train=3.57, acc_train=0.238, f1_train=0.238, adv_ce_train=4.66, adv_acc_train=0.0988, adv_f1_train=0.0988]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00079: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 81/1000: 8%|▊ | 80/1000 [11:57<2:15:27, 8.83s/it, v_num=1, loss_validation=5.02, x_0_validation=0.233, x_1_validation=0.234, rec_x_cf_validation=0.19, z_1_validation=5.04, ce_validation=3.57, acc_validation=0.24, f1_validation=0.24, adv_ce_validation=4.65, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=5.03, x_0_train=0.234, x_1_train=0.234, rec_x_cf_train=0.19, z_1_train=5.96, ce_train=3.57, acc_train=0.238, f1_train=0.238, adv_ce_train=4.66, adv_acc_train=0.0991, adv_f1_train=0.0991] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00080: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 82/1000: 8%|▊ | 81/1000 [12:09<2:31:51, 9.91s/it, v_num=1, loss_validation=5.01, x_0_validation=0.233, x_1_validation=0.234, rec_x_cf_validation=0.189, z_1_validation=5.3, ce_validation=3.49, acc_validation=0.25, f1_validation=0.25, adv_ce_validation=4.64, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.96, x_0_train=0.233, x_1_train=0.234, rec_x_cf_train=0.19, z_1_train=6.06, ce_train=3.53, acc_train=0.244, f1_train=0.244, adv_ce_train=4.66, adv_acc_train=0.0996, adv_f1_train=0.0996]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00081: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 84/1000: 8%|▊ | 83/1000 [12:26<2:19:36, 9.13s/it, v_num=1, loss_validation=5.01, x_0_validation=0.233, x_1_validation=0.234, rec_x_cf_validation=0.19, z_1_validation=5.14, ce_validation=3.48, acc_validation=0.255, f1_validation=0.255, adv_ce_validation=4.64, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=5.01, x_0_train=0.233, x_1_train=0.234, rec_x_cf_train=0.189, z_1_train=6.08, ce_train=3.48, acc_train=0.25, f1_train=0.25, adv_ce_train=4.65, adv_acc_train=0.0994, adv_f1_train=0.0994] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00083: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 86/1000: 8%|▊ | 85/1000 [12:42<2:11:33, 8.63s/it, v_num=1, loss_validation=5.01, x_0_validation=0.233, x_1_validation=0.234, rec_x_cf_validation=0.19, z_1_validation=5.13, ce_validation=3.49, acc_validation=0.255, f1_validation=0.255, adv_ce_validation=4.64, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=5.01, x_0_train=0.233, x_1_train=0.234, rec_x_cf_train=0.189, z_1_train=6.07, ce_train=3.49, acc_train=0.249, f1_train=0.249, adv_ce_train=4.65, adv_acc_train=0.0997, adv_f1_train=0.0997]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00085: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 87/1000: 9%|▊ | 86/1000 [12:55<2:28:19, 9.74s/it, v_num=1, loss_validation=4.99, x_0_validation=0.232, x_1_validation=0.233, rec_x_cf_validation=0.189, z_1_validation=5.33, ce_validation=3.43, acc_validation=0.262, f1_validation=0.262, adv_ce_validation=4.63, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.94, x_0_train=0.233, x_1_train=0.234, rec_x_cf_train=0.19, z_1_train=6.16, ce_train=3.45, acc_train=0.254, f1_train=0.254, adv_ce_train=4.64, adv_acc_train=0.0999, adv_f1_train=0.0999]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00086: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 88/1000: 9%|▊ | 87/1000 [13:03<2:21:15, 9.28s/it, v_num=1, loss_validation=4.99, x_0_validation=0.232, x_1_validation=0.233, rec_x_cf_validation=0.19, z_1_validation=5.24, ce_validation=3.41, acc_validation=0.263, f1_validation=0.263, adv_ce_validation=4.63, adv_acc_validation=0.1, adv_f1_validation=0.1, loss_train=5, x_0_train=0.232, x_1_train=0.233, rec_x_cf_train=0.19, z_1_train=6.18, ce_train=3.41, acc_train=0.26, f1_train=0.26, adv_ce_train=4.64, adv_acc_train=0.0995, adv_f1_train=0.0995] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00087: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 89/1000: 9%|▉ | 88/1000 [13:11<2:16:28, 8.98s/it, v_num=1, loss_validation=4.99, x_0_validation=0.232, x_1_validation=0.233, rec_x_cf_validation=0.19, z_1_validation=5.24, ce_validation=3.4, acc_validation=0.261, f1_validation=0.261, adv_ce_validation=4.63, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=5, x_0_train=0.232, x_1_train=0.233, rec_x_cf_train=0.19, z_1_train=6.19, ce_train=3.41, acc_train=0.26, f1_train=0.26, adv_ce_train=4.64, adv_acc_train=0.0997, adv_f1_train=0.0997]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00088: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 91/1000: 9%|▉ | 90/1000 [13:27<2:09:00, 8.51s/it, v_num=1, loss_validation=4.99, x_0_validation=0.232, x_1_validation=0.233, rec_x_cf_validation=0.19, z_1_validation=5.26, ce_validation=3.41, acc_validation=0.261, f1_validation=0.261, adv_ce_validation=4.63, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=5, x_0_train=0.232, x_1_train=0.233, rec_x_cf_train=0.19, z_1_train=6.19, ce_train=3.41, acc_train=0.259, f1_train=0.259, adv_ce_train=4.64, adv_acc_train=0.099, adv_f1_train=0.099] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00090: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 92/1000: 9%|▉ | 91/1000 [13:40<2:26:06, 9.64s/it, v_num=1, loss_validation=4.98, x_0_validation=0.231, x_1_validation=0.233, rec_x_cf_validation=0.19, z_1_validation=5.2, ce_validation=3.38, acc_validation=0.266, f1_validation=0.266, adv_ce_validation=4.62, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.93, x_0_train=0.232, x_1_train=0.233, rec_x_cf_train=0.19, z_1_train=6.26, ce_train=3.38, acc_train=0.265, f1_train=0.265, adv_ce_train=4.63, adv_acc_train=0.1, adv_f1_train=0.1] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00091: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 93/1000: 9%|▉ | 92/1000 [13:48<2:20:10, 9.26s/it, v_num=1, loss_validation=4.98, x_0_validation=0.231, x_1_validation=0.233, rec_x_cf_validation=0.19, z_1_validation=5.37, ce_validation=3.34, acc_validation=0.271, f1_validation=0.271, adv_ce_validation=4.61, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.98, x_0_train=0.232, x_1_train=0.233, rec_x_cf_train=0.19, z_1_train=6.3, ce_train=3.33, acc_train=0.27, f1_train=0.27, adv_ce_train=4.62, adv_acc_train=0.1, adv_f1_train=0.1] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00092: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 96/1000: 10%|▉ | 95/1000 [14:12<2:07:50, 8.48s/it, v_num=1, loss_validation=4.98, x_0_validation=0.231, x_1_validation=0.233, rec_x_cf_validation=0.19, z_1_validation=5.35, ce_validation=3.34, acc_validation=0.272, f1_validation=0.272, adv_ce_validation=4.61, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.98, x_0_train=0.232, x_1_train=0.233, rec_x_cf_train=0.19, z_1_train=6.31, ce_train=3.33, acc_train=0.27, f1_train=0.27, adv_ce_train=4.62, adv_acc_train=0.1, adv_f1_train=0.1] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00095: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 97/1000: 10%|▉ | 96/1000 [14:25<2:25:30, 9.66s/it, v_num=1, loss_validation=4.96, x_0_validation=0.231, x_1_validation=0.232, rec_x_cf_validation=0.189, z_1_validation=5.8, ce_validation=3.27, acc_validation=0.282, f1_validation=0.282, adv_ce_validation=4.61, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.91, x_0_train=0.231, x_1_train=0.233, rec_x_cf_train=0.19, z_1_train=6.36, ce_train=3.31, acc_train=0.272, f1_train=0.272, adv_ce_train=4.62, adv_acc_train=0.1, adv_f1_train=0.1]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00096: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 99/1000: 10%|▉ | 98/1000 [14:41<2:14:49, 8.97s/it, v_num=1, loss_validation=4.96, x_0_validation=0.231, x_1_validation=0.232, rec_x_cf_validation=0.19, z_1_validation=5.44, ce_validation=3.28, acc_validation=0.283, f1_validation=0.283, adv_ce_validation=4.61, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.97, x_0_train=0.231, x_1_train=0.232, rec_x_cf_train=0.189, z_1_train=6.38, ce_train=3.27, acc_train=0.279, f1_train=0.279, adv_ce_train=4.62, adv_acc_train=0.1, adv_f1_train=0.1] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00098: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 101/1000: 10%|█ | 100/1000 [14:57<2:07:13, 8.48s/it, v_num=1, loss_validation=4.96, x_0_validation=0.231, x_1_validation=0.232, rec_x_cf_validation=0.19, z_1_validation=5.42, ce_validation=3.27, acc_validation=0.281, f1_validation=0.281, adv_ce_validation=4.6, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.97, x_0_train=0.231, x_1_train=0.232, rec_x_cf_train=0.189, z_1_train=6.37, ce_train=3.27, acc_train=0.278, f1_train=0.278, adv_ce_train=4.61, adv_acc_train=0.1, adv_f1_train=0.1]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00100: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 102/1000: 10%|█ | 101/1000 [15:10<2:23:58, 9.61s/it, v_num=1, loss_validation=4.96, x_0_validation=0.23, x_1_validation=0.232, rec_x_cf_validation=0.19, z_1_validation=5.41, ce_validation=3.29, acc_validation=0.27, f1_validation=0.27, adv_ce_validation=4.6, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.9, x_0_train=0.231, x_1_train=0.232, rec_x_cf_train=0.189, z_1_train=6.45, ce_train=3.24, acc_train=0.283, f1_train=0.283, adv_ce_train=4.61, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00101: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 103/1000: 10%|█ | 102/1000 [15:18<2:17:32, 9.19s/it, v_num=1, loss_validation=4.95, x_0_validation=0.23, x_1_validation=0.232, rec_x_cf_validation=0.19, z_1_validation=5.51, ce_validation=3.21, acc_validation=0.29, f1_validation=0.29, adv_ce_validation=4.59, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.96, x_0_train=0.231, x_1_train=0.232, rec_x_cf_train=0.19, z_1_train=6.46, ce_train=3.2, acc_train=0.286, f1_train=0.286, adv_ce_train=4.6, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00102: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 105/1000: 10%|█ | 104/1000 [15:34<2:09:00, 8.64s/it, v_num=1, loss_validation=4.95, x_0_validation=0.23, x_1_validation=0.232, rec_x_cf_validation=0.19, z_1_validation=5.5, ce_validation=3.21, acc_validation=0.292, f1_validation=0.292, adv_ce_validation=4.59, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.96, x_0_train=0.231, x_1_train=0.232, rec_x_cf_train=0.19, z_1_train=6.47, ce_train=3.2, acc_train=0.286, f1_train=0.286, adv_ce_train=4.6, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00104: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 106/1000: 10%|█ | 105/1000 [15:42<2:06:24, 8.47s/it, v_num=1, loss_validation=4.95, x_0_validation=0.23, x_1_validation=0.232, rec_x_cf_validation=0.19, z_1_validation=5.53, ce_validation=3.21, acc_validation=0.291, f1_validation=0.291, adv_ce_validation=4.59, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.96, x_0_train=0.231, x_1_train=0.232, rec_x_cf_train=0.19, z_1_train=6.47, ce_train=3.2, acc_train=0.286, f1_train=0.286, adv_ce_train=4.6, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00105: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 107/1000: 11%|█ | 106/1000 [15:55<2:23:25, 9.63s/it, v_num=1, loss_validation=4.94, x_0_validation=0.23, x_1_validation=0.231, rec_x_cf_validation=0.189, z_1_validation=5.6, ce_validation=3.22, acc_validation=0.28, f1_validation=0.28, adv_ce_validation=4.59, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.89, x_0_train=0.23, x_1_train=0.232, rec_x_cf_train=0.189, z_1_train=6.54, ce_train=3.18, acc_train=0.288, f1_train=0.288, adv_ce_train=4.6, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00106: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 111/1000: 11%|█ | 110/1000 [16:27<2:05:58, 8.49s/it, v_num=1, loss_validation=4.94, x_0_validation=0.23, x_1_validation=0.231, rec_x_cf_validation=0.19, z_1_validation=5.62, ce_validation=3.15, acc_validation=0.295, f1_validation=0.295, adv_ce_validation=4.58, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.94, x_0_train=0.23, x_1_train=0.231, rec_x_cf_train=0.19, z_1_train=6.56, ce_train=3.14, acc_train=0.295, f1_train=0.295, adv_ce_train=4.59, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00110: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 112/1000: 11%|█ | 111/1000 [16:40<2:23:27, 9.68s/it, v_num=1, loss_validation=4.94, x_0_validation=0.23, x_1_validation=0.231, rec_x_cf_validation=0.19, z_1_validation=5.71, ce_validation=3.18, acc_validation=0.292, f1_validation=0.292, adv_ce_validation=4.57, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.88, x_0_train=0.23, x_1_train=0.231, rec_x_cf_train=0.189, z_1_train=6.65, ce_train=3.12, acc_train=0.297, f1_train=0.297, adv_ce_train=4.59, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00111: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 113/1000: 11%|█ | 112/1000 [16:48<2:17:03, 9.26s/it, v_num=1, loss_validation=4.93, x_0_validation=0.23, x_1_validation=0.231, rec_x_cf_validation=0.19, z_1_validation=5.74, ce_validation=3.1, acc_validation=0.302, f1_validation=0.302, adv_ce_validation=4.57, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.94, x_0_train=0.23, x_1_train=0.231, rec_x_cf_train=0.19, z_1_train=6.69, ce_train=3.08, acc_train=0.302, f1_train=0.302, adv_ce_train=4.59, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00112: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 115/1000: 11%|█▏ | 114/1000 [17:05<2:11:30, 8.91s/it, v_num=1, loss_validation=4.93, x_0_validation=0.23, x_1_validation=0.231, rec_x_cf_validation=0.19, z_1_validation=5.73, ce_validation=3.11, acc_validation=0.304, f1_validation=0.304, adv_ce_validation=4.57, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.94, x_0_train=0.23, x_1_train=0.231, rec_x_cf_train=0.19, z_1_train=6.68, ce_train=3.08, acc_train=0.3, f1_train=0.3, adv_ce_train=4.58, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00114: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 116/1000: 12%|█▏ | 115/1000 [17:13<2:07:20, 8.63s/it, v_num=1, loss_validation=4.93, x_0_validation=0.23, x_1_validation=0.231, rec_x_cf_validation=0.19, z_1_validation=5.74, ce_validation=3.1, acc_validation=0.306, f1_validation=0.306, adv_ce_validation=4.57, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.94, x_0_train=0.23, x_1_train=0.231, rec_x_cf_train=0.19, z_1_train=6.68, ce_train=3.08, acc_train=0.301, f1_train=0.301, adv_ce_train=4.58, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00115: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 117/1000: 12%|█▏ | 116/1000 [17:26<2:23:20, 9.73s/it, v_num=1, loss_validation=4.92, x_0_validation=0.229, x_1_validation=0.231, rec_x_cf_validation=0.189, z_1_validation=5.86, ce_validation=3.08, acc_validation=0.306, f1_validation=0.306, adv_ce_validation=4.57, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.87, x_0_train=0.23, x_1_train=0.231, rec_x_cf_train=0.189, z_1_train=6.74, ce_train=3.07, acc_train=0.303, f1_train=0.303, adv_ce_train=4.58, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00116: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 119/1000: 12%|█▏ | 118/1000 [17:42<2:12:19, 9.00s/it, v_num=1, loss_validation=4.92, x_0_validation=0.229, x_1_validation=0.23, rec_x_cf_validation=0.189, z_1_validation=5.8, ce_validation=3.05, acc_validation=0.309, f1_validation=0.309, adv_ce_validation=4.56, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.92, x_0_train=0.229, x_1_train=0.231, rec_x_cf_train=0.189, z_1_train=6.75, ce_train=3.03, acc_train=0.309, f1_train=0.309, adv_ce_train=4.58, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00118: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 121/1000: 12%|█▏ | 120/1000 [17:58<2:04:28, 8.49s/it, v_num=1, loss_validation=4.92, x_0_validation=0.229, x_1_validation=0.23, rec_x_cf_validation=0.189, z_1_validation=5.81, ce_validation=3.05, acc_validation=0.309, f1_validation=0.309, adv_ce_validation=4.56, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.92, x_0_train=0.229, x_1_train=0.231, rec_x_cf_train=0.189, z_1_train=6.75, ce_train=3.02, acc_train=0.309, f1_train=0.309, adv_ce_train=4.57, adv_acc_train=0.102, adv_f1_train=0.102]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00120: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 122/1000: 12%|█▏ | 121/1000 [18:11<2:21:46, 9.68s/it, v_num=1, loss_validation=4.91, x_0_validation=0.229, x_1_validation=0.23, rec_x_cf_validation=0.189, z_1_validation=6.09, ce_validation=3.05, acc_validation=0.311, f1_validation=0.311, adv_ce_validation=4.55, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.86, x_0_train=0.229, x_1_train=0.23, rec_x_cf_train=0.189, z_1_train=6.83, ce_train=3.01, acc_train=0.312, f1_train=0.312, adv_ce_train=4.57, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00121: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 124/1000: 12%|█▏ | 123/1000 [18:27<2:11:07, 8.97s/it, v_num=1, loss_validation=4.91, x_0_validation=0.229, x_1_validation=0.23, rec_x_cf_validation=0.19, z_1_validation=5.88, ce_validation=3, acc_validation=0.316, f1_validation=0.316, adv_ce_validation=4.55, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.91, x_0_train=0.229, x_1_train=0.23, rec_x_cf_train=0.19, z_1_train=6.84, ce_train=2.98, acc_train=0.317, f1_train=0.317, adv_ce_train=4.57, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00123: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 126/1000: 12%|█▎ | 125/1000 [18:43<2:03:57, 8.50s/it, v_num=1, loss_validation=4.91, x_0_validation=0.229, x_1_validation=0.23, rec_x_cf_validation=0.19, z_1_validation=5.9, ce_validation=3, acc_validation=0.315, f1_validation=0.315, adv_ce_validation=4.55, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.91, x_0_train=0.229, x_1_train=0.23, rec_x_cf_train=0.19, z_1_train=6.83, ce_train=2.97, acc_train=0.317, f1_train=0.317, adv_ce_train=4.56, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00125: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 127/1000: 13%|█▎ | 126/1000 [18:56<2:20:23, 9.64s/it, v_num=1, loss_validation=4.9, x_0_validation=0.228, x_1_validation=0.23, rec_x_cf_validation=0.189, z_1_validation=6.07, ce_validation=3.02, acc_validation=0.309, f1_validation=0.309, adv_ce_validation=4.53, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.85, x_0_train=0.229, x_1_train=0.23, rec_x_cf_train=0.189, z_1_train=6.95, ce_train=2.96, acc_train=0.318, f1_train=0.318, adv_ce_train=4.56, adv_acc_train=0.102, adv_f1_train=0.102]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00126: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 131/1000: 13%|█▎ | 130/1000 [19:28<2:02:47, 8.47s/it, v_num=1, loss_validation=4.9, x_0_validation=0.228, x_1_validation=0.23, rec_x_cf_validation=0.19, z_1_validation=6.01, ce_validation=2.96, acc_validation=0.324, f1_validation=0.324, adv_ce_validation=4.53, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.9, x_0_train=0.229, x_1_train=0.23, rec_x_cf_train=0.19, z_1_train=6.94, ce_train=2.92, acc_train=0.324, f1_train=0.324, adv_ce_train=4.55, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00130: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 132/1000: 13%|█▎ | 131/1000 [19:41<2:19:20, 9.62s/it, v_num=1, loss_validation=4.89, x_0_validation=0.228, x_1_validation=0.23, rec_x_cf_validation=0.189, z_1_validation=6.15, ce_validation=2.95, acc_validation=0.32, f1_validation=0.32, adv_ce_validation=4.53, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.84, x_0_train=0.228, x_1_train=0.23, rec_x_cf_train=0.189, z_1_train=7.03, ce_train=2.91, acc_train=0.327, f1_train=0.327, adv_ce_train=4.55, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00131: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 136/1000: 14%|█▎ | 135/1000 [20:13<2:02:20, 8.49s/it, v_num=1, loss_validation=4.89, x_0_validation=0.228, x_1_validation=0.229, rec_x_cf_validation=0.189, z_1_validation=6.12, ce_validation=2.91, acc_validation=0.331, f1_validation=0.331, adv_ce_validation=4.52, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.89, x_0_train=0.228, x_1_train=0.23, rec_x_cf_train=0.189, z_1_train=7.02, ce_train=2.87, acc_train=0.332, f1_train=0.332, adv_ce_train=4.54, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00135: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 137/1000: 14%|█▎ | 136/1000 [20:26<2:20:41, 9.77s/it, v_num=1, loss_validation=4.88, x_0_validation=0.228, x_1_validation=0.229, rec_x_cf_validation=0.189, z_1_validation=6.37, ce_validation=2.9, acc_validation=0.336, f1_validation=0.336, adv_ce_validation=4.52, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.83, x_0_train=0.228, x_1_train=0.23, rec_x_cf_train=0.189, z_1_train=7.14, ce_train=2.86, acc_train=0.333, f1_train=0.333, adv_ce_train=4.54, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00136: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 141/1000: 14%|█▍ | 140/1000 [20:59<2:02:16, 8.53s/it, v_num=1, loss_validation=4.88, x_0_validation=0.228, x_1_validation=0.229, rec_x_cf_validation=0.189, z_1_validation=6.22, ce_validation=2.87, acc_validation=0.337, f1_validation=0.337, adv_ce_validation=4.51, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.89, x_0_train=0.228, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.13, ce_train=2.82, acc_train=0.339, f1_train=0.339, adv_ce_train=4.53, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00140: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 142/1000: 14%|█▍ | 141/1000 [21:11<2:18:17, 9.66s/it, v_num=1, loss_validation=4.88, x_0_validation=0.227, x_1_validation=0.229, rec_x_cf_validation=0.189, z_1_validation=6.49, ce_validation=2.86, acc_validation=0.34, f1_validation=0.34, adv_ce_validation=4.51, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.82, x_0_train=0.228, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.21, ce_train=2.82, acc_train=0.338, f1_train=0.338, adv_ce_train=4.53, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00141: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 143/1000: 14%|█▍ | 142/1000 [21:19<2:12:20, 9.25s/it, v_num=1, loss_validation=4.87, x_0_validation=0.227, x_1_validation=0.229, rec_x_cf_validation=0.189, z_1_validation=6.26, ce_validation=2.82, acc_validation=0.346, f1_validation=0.346, adv_ce_validation=4.51, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.88, x_0_train=0.228, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.15, ce_train=2.77, acc_train=0.348, f1_train=0.348, adv_ce_train=4.53, adv_acc_train=0.105, adv_f1_train=0.105]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00142: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 144/1000: 14%|█▍ | 143/1000 [21:27<2:07:50, 8.95s/it, v_num=1, loss_validation=4.87, x_0_validation=0.227, x_1_validation=0.229, rec_x_cf_validation=0.189, z_1_validation=6.24, ce_validation=2.82, acc_validation=0.347, f1_validation=0.347, adv_ce_validation=4.51, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.88, x_0_train=0.228, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.16, ce_train=2.77, acc_train=0.348, f1_train=0.348, adv_ce_train=4.52, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00143: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 145/1000: 14%|█▍ | 144/1000 [21:35<2:04:08, 8.70s/it, v_num=1, loss_validation=4.87, x_0_validation=0.227, x_1_validation=0.229, rec_x_cf_validation=0.189, z_1_validation=6.24, ce_validation=2.82, acc_validation=0.346, f1_validation=0.346, adv_ce_validation=4.5, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.88, x_0_train=0.228, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.16, ce_train=2.78, acc_train=0.347, f1_train=0.347, adv_ce_train=4.52, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00144: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 146/1000: 14%|█▍ | 145/1000 [21:43<2:01:03, 8.50s/it, v_num=1, loss_validation=4.87, x_0_validation=0.227, x_1_validation=0.229, rec_x_cf_validation=0.189, z_1_validation=6.27, ce_validation=2.82, acc_validation=0.347, f1_validation=0.347, adv_ce_validation=4.5, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.88, x_0_train=0.228, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.15, ce_train=2.78, acc_train=0.348, f1_train=0.348, adv_ce_train=4.52, adv_acc_train=0.105, adv_f1_train=0.105]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00145: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 147/1000: 15%|█▍ | 146/1000 [21:57<2:22:04, 9.98s/it, v_num=1, loss_validation=4.87, x_0_validation=0.227, x_1_validation=0.229, rec_x_cf_validation=0.19, z_1_validation=6.97, ce_validation=2.85, acc_validation=0.336, f1_validation=0.336, adv_ce_validation=4.51, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.81, x_0_train=0.227, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.3, ce_train=2.77, acc_train=0.348, f1_train=0.348, adv_ce_train=4.52, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00146: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 148/1000: 15%|█▍ | 147/1000 [22:05<2:14:28, 9.46s/it, v_num=1, loss_validation=4.87, x_0_validation=0.227, x_1_validation=0.229, rec_x_cf_validation=0.189, z_1_validation=6.37, ce_validation=2.78, acc_validation=0.35, f1_validation=0.35, adv_ce_validation=4.5, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.87, x_0_train=0.227, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.29, ce_train=2.72, acc_train=0.355, f1_train=0.355, adv_ce_train=4.52, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00147: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 151/1000: 15%|█▌ | 150/1000 [22:30<2:01:30, 8.58s/it, v_num=1, loss_validation=4.86, x_0_validation=0.227, x_1_validation=0.229, rec_x_cf_validation=0.19, z_1_validation=6.39, ce_validation=2.77, acc_validation=0.353, f1_validation=0.353, adv_ce_validation=4.5, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.87, x_0_train=0.227, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.29, ce_train=2.72, acc_train=0.355, f1_train=0.355, adv_ce_train=4.52, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00150: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 152/1000: 15%|█▌ | 151/1000 [22:42<2:17:27, 9.71s/it, v_num=1, loss_validation=4.86, x_0_validation=0.227, x_1_validation=0.229, rec_x_cf_validation=0.19, z_1_validation=6.49, ce_validation=2.8, acc_validation=0.347, f1_validation=0.347, adv_ce_validation=4.49, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.8, x_0_train=0.227, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.38, ce_train=2.72, acc_train=0.356, f1_train=0.356, adv_ce_train=4.51, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00151: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 153/1000: 15%|█▌ | 152/1000 [22:51<2:11:36, 9.31s/it, v_num=1, loss_validation=4.86, x_0_validation=0.227, x_1_validation=0.228, rec_x_cf_validation=0.19, z_1_validation=6.47, ce_validation=2.73, acc_validation=0.359, f1_validation=0.359, adv_ce_validation=4.48, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.86, x_0_train=0.227, x_1_train=0.229, rec_x_cf_train=0.189, z_1_train=7.38, ce_train=2.68, acc_train=0.362, f1_train=0.362, adv_ce_train=4.51, adv_acc_train=0.106, adv_f1_train=0.106]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00152: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 157/1000: 16%|█▌ | 156/1000 [23:27<2:15:53, 9.66s/it, v_num=1, loss_validation=4.86, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.189, z_1_validation=6.63, ce_validation=2.8, acc_validation=0.35, f1_validation=0.35, adv_ce_validation=4.49, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.8, x_0_train=0.227, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.47, ce_train=2.67, acc_train=0.363, f1_train=0.363, adv_ce_train=4.51, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00156: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 158/1000: 16%|█▌ | 157/1000 [23:36<2:09:45, 9.24s/it, v_num=1, loss_validation=4.85, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.189, z_1_validation=6.55, ce_validation=2.69, acc_validation=0.366, f1_validation=0.366, adv_ce_validation=4.49, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.86, x_0_train=0.227, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.47, ce_train=2.64, acc_train=0.37, f1_train=0.37, adv_ce_train=4.51, adv_acc_train=0.106, adv_f1_train=0.106]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00157: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 159/1000: 16%|█▌ | 158/1000 [23:44<2:05:48, 8.96s/it, v_num=1, loss_validation=4.85, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.189, z_1_validation=6.54, ce_validation=2.69, acc_validation=0.367, f1_validation=0.367, adv_ce_validation=4.49, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.86, x_0_train=0.227, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.47, ce_train=2.63, acc_train=0.371, f1_train=0.371, adv_ce_train=4.51, adv_acc_train=0.106, adv_f1_train=0.106]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00158: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 162/1000: 16%|█▌ | 161/1000 [24:12<2:14:51, 9.64s/it, v_num=1, loss_validation=4.85, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.189, z_1_validation=6.88, ce_validation=2.79, acc_validation=0.342, f1_validation=0.342, adv_ce_validation=4.48, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.79, x_0_train=0.227, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.54, ce_train=2.62, acc_train=0.373, f1_train=0.373, adv_ce_train=4.5, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00161: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 163/1000: 16%|█▌ | 162/1000 [24:21<2:08:52, 9.23s/it, v_num=1, loss_validation=4.84, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.189, z_1_validation=6.66, ce_validation=2.64, acc_validation=0.376, f1_validation=0.376, adv_ce_validation=4.47, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.85, x_0_train=0.226, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.53, ce_train=2.58, acc_train=0.377, f1_train=0.377, adv_ce_train=4.5, adv_acc_train=0.106, adv_f1_train=0.106]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00162: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 166/1000: 16%|█▋ | 165/1000 [24:45<1:58:14, 8.50s/it, v_num=1, loss_validation=4.84, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.19, z_1_validation=6.64, ce_validation=2.64, acc_validation=0.375, f1_validation=0.375, adv_ce_validation=4.47, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.85, x_0_train=0.226, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.54, ce_train=2.58, acc_train=0.378, f1_train=0.378, adv_ce_train=4.5, adv_acc_train=0.107, adv_f1_train=0.107] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00165: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 167/1000: 17%|█▋ | 166/1000 [24:57<2:14:00, 9.64s/it, v_num=1, loss_validation=4.84, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.189, z_1_validation=6.44, ce_validation=2.68, acc_validation=0.366, f1_validation=0.366, adv_ce_validation=4.48, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.78, x_0_train=0.226, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.6, ce_train=2.57, acc_train=0.381, f1_train=0.381, adv_ce_train=4.5, adv_acc_train=0.108, adv_f1_train=0.108]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00166: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 168/1000: 17%|█▋ | 167/1000 [25:06<2:08:41, 9.27s/it, v_num=1, loss_validation=4.84, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.189, z_1_validation=6.64, ce_validation=2.59, acc_validation=0.384, f1_validation=0.384, adv_ce_validation=4.47, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.84, x_0_train=0.226, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.55, ce_train=2.53, acc_train=0.389, f1_train=0.389, adv_ce_train=4.5, adv_acc_train=0.107, adv_f1_train=0.107]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00167: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 171/1000: 17%|█▋ | 170/1000 [25:30<1:57:34, 8.50s/it, v_num=1, loss_validation=4.84, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.189, z_1_validation=6.63, ce_validation=2.6, acc_validation=0.382, f1_validation=0.382, adv_ce_validation=4.47, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.84, x_0_train=0.226, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.56, ce_train=2.53, acc_train=0.389, f1_train=0.389, adv_ce_train=4.5, adv_acc_train=0.107, adv_f1_train=0.107] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00170: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 172/1000: 17%|█▋ | 171/1000 [25:43<2:14:27, 9.73s/it, v_num=1, loss_validation=4.84, x_0_validation=0.226, x_1_validation=0.228, rec_x_cf_validation=0.189, z_1_validation=6.93, ce_validation=2.63, acc_validation=0.377, f1_validation=0.377, adv_ce_validation=4.48, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.78, x_0_train=0.226, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.66, ce_train=2.52, acc_train=0.388, f1_train=0.388, adv_ce_train=4.49, adv_acc_train=0.107, adv_f1_train=0.107]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00171: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 177/1000: 18%|█▊ | 176/1000 [26:28<2:14:01, 9.76s/it, v_num=1, loss_validation=4.83, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.19, z_1_validation=6.66, ce_validation=2.59, acc_validation=0.381, f1_validation=0.381, adv_ce_validation=4.47, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.77, x_0_train=0.226, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.71, ce_train=2.47, acc_train=0.397, f1_train=0.397, adv_ce_train=4.49, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00176: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 178/1000: 18%|█▊ | 177/1000 [26:37<2:09:20, 9.43s/it, v_num=1, loss_validation=4.82, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.19, z_1_validation=6.76, ce_validation=2.49, acc_validation=0.402, f1_validation=0.402, adv_ce_validation=4.46, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.83, x_0_train=0.226, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.69, ce_train=2.42, acc_train=0.406, f1_train=0.406, adv_ce_train=4.49, adv_acc_train=0.107, adv_f1_train=0.107]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00177: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 182/1000: 18%|█▊ | 181/1000 [27:16<2:17:05, 10.04s/it, v_num=1, loss_validation=4.84, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.189, z_1_validation=7.58, ce_validation=2.79, acc_validation=0.335, f1_validation=0.335, adv_ce_validation=4.47, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.76, x_0_train=0.226, x_1_train=0.228, rec_x_cf_train=0.189, z_1_train=7.76, ce_train=2.41, acc_train=0.408, f1_train=0.408, adv_ce_train=4.49, adv_acc_train=0.107, adv_f1_train=0.107] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00181: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 186/1000: 18%|█▊ | 185/1000 [27:49<1:58:05, 8.69s/it, v_num=1, loss_validation=4.82, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.189, z_1_validation=6.79, ce_validation=2.44, acc_validation=0.411, f1_validation=0.411, adv_ce_validation=4.46, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.82, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.74, ce_train=2.38, acc_train=0.414, f1_train=0.414, adv_ce_train=4.49, adv_acc_train=0.108, adv_f1_train=0.108] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00185: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 187/1000: 19%|█▊ | 186/1000 [28:02<2:13:44, 9.86s/it, v_num=1, loss_validation=4.82, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.188, z_1_validation=6.63, ce_validation=2.44, acc_validation=0.417, f1_validation=0.417, adv_ce_validation=4.47, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.76, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.81, ce_train=2.36, acc_train=0.417, f1_train=0.417, adv_ce_train=4.49, adv_acc_train=0.108, adv_f1_train=0.108]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00186: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 188/1000: 19%|█▊ | 187/1000 [28:10<2:07:37, 9.42s/it, v_num=1, loss_validation=4.81, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.188, z_1_validation=6.8, ce_validation=2.37, acc_validation=0.423, f1_validation=0.423, adv_ce_validation=4.46, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.82, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.188, z_1_train=7.77, ce_train=2.31, acc_train=0.426, f1_train=0.426, adv_ce_train=4.49, adv_acc_train=0.108, adv_f1_train=0.108] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00187: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 190/1000: 19%|█▉ | 189/1000 [28:26<1:59:24, 8.83s/it, v_num=1, loss_validation=4.81, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.188, z_1_validation=6.81, ce_validation=2.38, acc_validation=0.421, f1_validation=0.421, adv_ce_validation=4.46, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.82, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.188, z_1_train=7.78, ce_train=2.31, acc_train=0.428, f1_train=0.428, adv_ce_train=4.49, adv_acc_train=0.108, adv_f1_train=0.108] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00189: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 192/1000: 19%|█▉ | 191/1000 [28:47<2:11:38, 9.76s/it, v_num=1, loss_validation=4.82, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.189, z_1_validation=7.25, ce_validation=2.51, acc_validation=0.394, f1_validation=0.394, adv_ce_validation=4.48, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.75, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.85, ce_train=2.31, acc_train=0.428, f1_train=0.428, adv_ce_train=4.49, adv_acc_train=0.108, adv_f1_train=0.108]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00191: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 194/1000: 19%|█▉ | 193/1000 [29:04<2:02:36, 9.12s/it, v_num=1, loss_validation=4.8, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.189, z_1_validation=6.83, ce_validation=2.32, acc_validation=0.432, f1_validation=0.432, adv_ce_validation=4.47, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.81, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.81, ce_train=2.26, acc_train=0.436, f1_train=0.436, adv_ce_train=4.49, adv_acc_train=0.108, adv_f1_train=0.108] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00193: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 195/1000: 19%|█▉ | 194/1000 [29:12<1:58:50, 8.85s/it, v_num=1, loss_validation=4.8, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.189, z_1_validation=6.83, ce_validation=2.33, acc_validation=0.431, f1_validation=0.431, adv_ce_validation=4.46, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.81, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.81, ce_train=2.26, acc_train=0.436, f1_train=0.436, adv_ce_train=4.5, adv_acc_train=0.107, adv_f1_train=0.107]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00194: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 197/1000: 20%|█▉ | 196/1000 [29:33<2:10:55, 9.77s/it, v_num=1, loss_validation=4.8, x_0_validation=0.225, x_1_validation=0.227, rec_x_cf_validation=0.189, z_1_validation=6.54, ce_validation=2.39, acc_validation=0.42, f1_validation=0.42, adv_ce_validation=4.48, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.74, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.87, ce_train=2.25, acc_train=0.436, f1_train=0.436, adv_ce_train=4.49, adv_acc_train=0.108, adv_f1_train=0.108] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00196: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 198/1000: 20%|█▉ | 197/1000 [29:42<2:06:29, 9.45s/it, v_num=1, loss_validation=4.8, x_0_validation=0.224, x_1_validation=0.227, rec_x_cf_validation=0.189, z_1_validation=6.86, ce_validation=2.26, acc_validation=0.446, f1_validation=0.446, adv_ce_validation=4.47, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.8, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.86, ce_train=2.2, acc_train=0.449, f1_train=0.449, adv_ce_train=4.5, adv_acc_train=0.107, adv_f1_train=0.107]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00197: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 199/1000: 20%|█▉ | 198/1000 [29:50<2:02:29, 9.16s/it, v_num=1, loss_validation=4.8, x_0_validation=0.224, x_1_validation=0.227, rec_x_cf_validation=0.189, z_1_validation=6.86, ce_validation=2.27, acc_validation=0.445, f1_validation=0.445, adv_ce_validation=4.47, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.8, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.86, ce_train=2.21, acc_train=0.446, f1_train=0.446, adv_ce_train=4.5, adv_acc_train=0.108, adv_f1_train=0.108]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00198: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 202/1000: 20%|██ | 201/1000 [30:20<2:12:08, 9.92s/it, v_num=1, loss_validation=4.8, x_0_validation=0.224, x_1_validation=0.227, rec_x_cf_validation=0.188, z_1_validation=6.66, ce_validation=2.32, acc_validation=0.435, f1_validation=0.435, adv_ce_validation=4.48, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.74, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.92, ce_train=2.2, acc_train=0.445, f1_train=0.445, adv_ce_train=4.5, adv_acc_train=0.107, adv_f1_train=0.107] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00201: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 207/1000: 21%|██ | 206/1000 [31:06<2:11:32, 9.94s/it, v_num=1, loss_validation=4.8, x_0_validation=0.224, x_1_validation=0.227, rec_x_cf_validation=0.19, z_1_validation=7.13, ce_validation=2.29, acc_validation=0.435, f1_validation=0.435, adv_ce_validation=4.49, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.73, x_0_train=0.225, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.94, ce_train=2.14, acc_train=0.458, f1_train=0.458, adv_ce_train=4.51, adv_acc_train=0.107, adv_f1_train=0.107] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00206: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 208/1000: 21%|██ | 207/1000 [31:15<2:06:21, 9.56s/it, v_num=1, loss_validation=4.79, x_0_validation=0.224, x_1_validation=0.226, rec_x_cf_validation=0.19, z_1_validation=6.88, ce_validation=2.15, acc_validation=0.463, f1_validation=0.463, adv_ce_validation=4.49, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.79, x_0_train=0.224, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.92, ce_train=2.1, acc_train=0.469, f1_train=0.469, adv_ce_train=4.52, adv_acc_train=0.107, adv_f1_train=0.107]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00207: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 212/1000: 21%|██ | 211/1000 [31:52<2:09:28, 9.85s/it, v_num=1, loss_validation=4.79, x_0_validation=0.224, x_1_validation=0.226, rec_x_cf_validation=0.189, z_1_validation=7.02, ce_validation=2.18, acc_validation=0.459, f1_validation=0.459, adv_ce_validation=4.52, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.73, x_0_train=0.224, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=7.95, ce_train=2.08, acc_train=0.47, f1_train=0.47, adv_ce_train=4.52, adv_acc_train=0.108, adv_f1_train=0.108]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00211: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 217/1000: 22%|██▏ | 216/1000 [32:39<2:11:13, 10.04s/it, v_num=1, loss_validation=4.79, x_0_validation=0.224, x_1_validation=0.227, rec_x_cf_validation=0.19, z_1_validation=7.14, ce_validation=2.17, acc_validation=0.471, f1_validation=0.471, adv_ce_validation=4.52, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.72, x_0_train=0.224, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=8, ce_train=2.03, acc_train=0.481, f1_train=0.481, adv_ce_train=4.53, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00216: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 222/1000: 22%|██▏ | 221/1000 [33:25<2:07:48, 9.84s/it, v_num=1, loss_validation=4.78, x_0_validation=0.224, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.46, ce_validation=2.18, acc_validation=0.459, f1_validation=0.459, adv_ce_validation=4.53, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.72, x_0_train=0.224, x_1_train=0.227, rec_x_cf_train=0.189, z_1_train=8.03, ce_train=1.98, acc_train=0.493, f1_train=0.493, adv_ce_train=4.54, adv_acc_train=0.107, adv_f1_train=0.107]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00221: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 223/1000: 22%|██▏ | 222/1000 [33:34<2:02:20, 9.43s/it, v_num=1, loss_validation=4.77, x_0_validation=0.224, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.9, ce_validation=1.97, acc_validation=0.504, f1_validation=0.504, adv_ce_validation=4.52, adv_acc_validation=0.111, adv_f1_validation=0.111, loss_train=4.78, x_0_train=0.224, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.02, ce_train=1.93, acc_train=0.504, f1_train=0.504, adv_ce_train=4.55, adv_acc_train=0.107, adv_f1_train=0.107] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00222: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 227/1000: 23%|██▎ | 226/1000 [34:11<2:06:43, 9.82s/it, v_num=1, loss_validation=4.77, x_0_validation=0.224, x_1_validation=0.226, rec_x_cf_validation=0.189, z_1_validation=6.55, ce_validation=2.05, acc_validation=0.491, f1_validation=0.491, adv_ce_validation=4.53, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.71, x_0_train=0.224, x_1_train=0.226, rec_x_cf_train=0.189, z_1_train=8.05, ce_train=1.93, acc_train=0.505, f1_train=0.505, adv_ce_train=4.55, adv_acc_train=0.107, adv_f1_train=0.107]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00226: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 232/1000: 23%|██▎ | 231/1000 [34:57<2:06:56, 9.90s/it, v_num=1, loss_validation=4.77, x_0_validation=0.224, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.84, ce_validation=2.01, acc_validation=0.494, f1_validation=0.494, adv_ce_validation=4.55, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.71, x_0_train=0.224, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.06, ce_train=1.87, acc_train=0.516, f1_train=0.516, adv_ce_train=4.56, adv_acc_train=0.106, adv_f1_train=0.106]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00231: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 237/1000: 24%|██▎ | 236/1000 [35:43<2:04:28, 9.78s/it, v_num=1, loss_validation=4.77, x_0_validation=0.224, x_1_validation=0.226, rec_x_cf_validation=0.187, z_1_validation=7.3, ce_validation=1.98, acc_validation=0.498, f1_validation=0.498, adv_ce_validation=4.57, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.7, x_0_train=0.224, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.1, ce_train=1.82, acc_train=0.531, f1_train=0.531, adv_ce_train=4.57, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00236: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 238/1000: 24%|██▎ | 237/1000 [35:52<1:58:57, 9.35s/it, v_num=1, loss_validation=4.75, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.189, z_1_validation=6.85, ce_validation=1.81, acc_validation=0.544, f1_validation=0.544, adv_ce_validation=4.54, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.76, x_0_train=0.224, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.06, ce_train=1.77, acc_train=0.541, f1_train=0.541, adv_ce_train=4.57, adv_acc_train=0.106, adv_f1_train=0.106]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00237: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 240/1000: 24%|██▍ | 239/1000 [36:08<1:50:54, 8.74s/it, v_num=1, loss_validation=4.75, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.189, z_1_validation=6.87, ce_validation=1.8, acc_validation=0.545, f1_validation=0.545, adv_ce_validation=4.53, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.76, x_0_train=0.224, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.05, ce_train=1.77, acc_train=0.542, f1_train=0.542, adv_ce_train=4.56, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00239: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 242/1000: 24%|██▍ | 241/1000 [36:28<2:02:26, 9.68s/it, v_num=1, loss_validation=4.76, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.189, z_1_validation=7.08, ce_validation=1.91, acc_validation=0.529, f1_validation=0.529, adv_ce_validation=4.57, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.7, x_0_train=0.224, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.13, ce_train=1.77, acc_train=0.541, f1_train=0.541, adv_ce_train=4.59, adv_acc_train=0.105, adv_f1_train=0.105]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00241: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 243/1000: 24%|██▍ | 242/1000 [36:37<1:56:58, 9.26s/it, v_num=1, loss_validation=4.75, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.87, ce_validation=1.75, acc_validation=0.559, f1_validation=0.559, adv_ce_validation=4.54, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.76, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.11, ce_train=1.73, acc_train=0.554, f1_train=0.554, adv_ce_train=4.58, adv_acc_train=0.106, adv_f1_train=0.106]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00242: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 245/1000: 24%|██▍ | 244/1000 [36:53<1:49:29, 8.69s/it, v_num=1, loss_validation=4.75, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.9, ce_validation=1.75, acc_validation=0.56, f1_validation=0.56, adv_ce_validation=4.52, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.76, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.1, ce_train=1.73, acc_train=0.554, f1_train=0.554, adv_ce_train=4.56, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00244: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 247/1000: 25%|██▍ | 246/1000 [37:13<2:01:10, 9.64s/it, v_num=1, loss_validation=4.77, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=8.27, ce_validation=2.07, acc_validation=0.459, f1_validation=0.459, adv_ce_validation=4.58, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.69, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.16, ce_train=1.72, acc_train=0.554, f1_train=0.554, adv_ce_train=4.62, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00246: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 248/1000: 25%|██▍ | 247/1000 [37:22<1:56:17, 9.27s/it, v_num=1, loss_validation=4.74, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.189, z_1_validation=6.92, ce_validation=1.7, acc_validation=0.574, f1_validation=0.574, adv_ce_validation=4.54, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.75, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.19, ce_train=1.68, acc_train=0.566, f1_train=0.566, adv_ce_train=4.58, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00247: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 249/1000: 25%|██▍ | 248/1000 [37:31<1:56:09, 9.27s/it, v_num=1, loss_validation=4.74, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.189, z_1_validation=6.94, ce_validation=1.7, acc_validation=0.575, f1_validation=0.575, adv_ce_validation=4.52, adv_acc_validation=0.111, adv_f1_validation=0.111, loss_train=4.75, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.18, ce_train=1.68, acc_train=0.566, f1_train=0.566, adv_ce_train=4.56, adv_acc_train=0.107, adv_f1_train=0.107]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00248: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 252/1000: 25%|██▌ | 251/1000 [38:00<2:01:35, 9.74s/it, v_num=1, loss_validation=4.75, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.58, ce_validation=1.77, acc_validation=0.554, f1_validation=0.554, adv_ce_validation=4.58, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.69, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.16, ce_train=1.67, acc_train=0.566, f1_train=0.566, adv_ce_train=4.62, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00251: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 253/1000: 25%|██▌ | 252/1000 [38:08<1:56:13, 9.32s/it, v_num=1, loss_validation=4.74, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.84, ce_validation=1.64, acc_validation=0.591, f1_validation=0.591, adv_ce_validation=4.55, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.75, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.12, ce_train=1.63, acc_train=0.574, f1_train=0.574, adv_ce_train=4.59, adv_acc_train=0.105, adv_f1_train=0.105]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00252: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 254/1000: 25%|██▌ | 253/1000 [38:16<1:52:22, 9.03s/it, v_num=1, loss_validation=4.74, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.85, ce_validation=1.64, acc_validation=0.591, f1_validation=0.591, adv_ce_validation=4.54, adv_acc_validation=0.11, adv_f1_validation=0.11, loss_train=4.75, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.13, ce_train=1.63, acc_train=0.577, f1_train=0.577, adv_ce_train=4.58, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00253: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 257/1000: 26%|██▌ | 256/1000 [38:45<1:59:49, 9.66s/it, v_num=1, loss_validation=4.75, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.96, ce_validation=1.78, acc_validation=0.551, f1_validation=0.551, adv_ce_validation=4.62, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.68, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.23, ce_train=1.62, acc_train=0.579, f1_train=0.579, adv_ce_train=4.62, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00256: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 260/1000: 26%|██▌ | 259/1000 [39:09<1:47:37, 8.72s/it, v_num=1, loss_validation=4.73, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=6.88, ce_validation=1.58, acc_validation=0.603, f1_validation=0.603, adv_ce_validation=4.57, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.74, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.21, ce_train=1.58, acc_train=0.59, f1_train=0.59, adv_ce_train=4.6, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00259: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 262/1000: 26%|██▌ | 261/1000 [39:30<1:58:50, 9.65s/it, v_num=1, loss_validation=4.74, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=7.37, ce_validation=1.71, acc_validation=0.555, f1_validation=0.555, adv_ce_validation=4.61, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.68, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.23, ce_train=1.57, acc_train=0.593, f1_train=0.593, adv_ce_train=4.62, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00261: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 263/1000: 26%|██▌ | 262/1000 [39:38<1:53:45, 9.25s/it, v_num=1, loss_validation=4.73, x_0_validation=0.223, x_1_validation=0.225, rec_x_cf_validation=0.189, z_1_validation=6.87, ce_validation=1.54, acc_validation=0.615, f1_validation=0.615, adv_ce_validation=4.59, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.74, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.22, ce_train=1.54, acc_train=0.602, f1_train=0.602, adv_ce_train=4.62, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00262: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 264/1000: 26%|██▋ | 263/1000 [39:46<1:50:16, 8.98s/it, v_num=1, loss_validation=4.73, x_0_validation=0.223, x_1_validation=0.225, rec_x_cf_validation=0.189, z_1_validation=6.85, ce_validation=1.54, acc_validation=0.618, f1_validation=0.618, adv_ce_validation=4.57, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.74, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.21, ce_train=1.53, acc_train=0.604, f1_train=0.604, adv_ce_train=4.61, adv_acc_train=0.105, adv_f1_train=0.105]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00263: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 265/1000: 26%|██▋ | 264/1000 [39:54<1:46:26, 8.68s/it, v_num=1, loss_validation=4.73, x_0_validation=0.223, x_1_validation=0.225, rec_x_cf_validation=0.189, z_1_validation=6.88, ce_validation=1.54, acc_validation=0.619, f1_validation=0.619, adv_ce_validation=4.57, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.74, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.22, ce_train=1.54, acc_train=0.6, f1_train=0.6, adv_ce_train=4.6, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00264: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 267/1000: 27%|██▋ | 266/1000 [40:15<1:58:04, 9.65s/it, v_num=1, loss_validation=4.74, x_0_validation=0.223, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=7.62, ce_validation=1.67, acc_validation=0.571, f1_validation=0.571, adv_ce_validation=4.62, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.67, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.26, ce_train=1.53, acc_train=0.605, f1_train=0.605, adv_ce_train=4.64, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00266: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 268/1000: 27%|██▋ | 267/1000 [40:23<1:53:03, 9.25s/it, v_num=1, loss_validation=4.72, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.88, ce_validation=1.48, acc_validation=0.628, f1_validation=0.628, adv_ce_validation=4.58, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.74, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.21, ce_train=1.49, acc_train=0.614, f1_train=0.614, adv_ce_train=4.62, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00267: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 272/1000: 27%|██▋ | 271/1000 [41:00<1:56:55, 9.62s/it, v_num=1, loss_validation=4.73, x_0_validation=0.222, x_1_validation=0.226, rec_x_cf_validation=0.188, z_1_validation=7, ce_validation=1.64, acc_validation=0.587, f1_validation=0.587, adv_ce_validation=4.61, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.67, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.29, ce_train=1.48, acc_train=0.618, f1_train=0.618, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00271: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 273/1000: 27%|██▋ | 272/1000 [41:08<1:52:20, 9.26s/it, v_num=1, loss_validation=4.72, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.88, ce_validation=1.43, acc_validation=0.644, f1_validation=0.644, adv_ce_validation=4.58, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.73, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.27, ce_train=1.45, acc_train=0.626, f1_train=0.626, adv_ce_train=4.62, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00272: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 277/1000: 28%|██▊ | 276/1000 [41:45<1:56:25, 9.65s/it, v_num=1, loss_validation=4.73, x_0_validation=0.222, x_1_validation=0.226, rec_x_cf_validation=0.189, z_1_validation=6.79, ce_validation=1.55, acc_validation=0.626, f1_validation=0.626, adv_ce_validation=4.63, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.67, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.31, ce_train=1.44, acc_train=0.627, f1_train=0.627, adv_ce_train=4.66, adv_acc_train=0.102, adv_f1_train=0.102]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00276: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 282/1000: 28%|██▊ | 281/1000 [42:31<1:59:22, 9.96s/it, v_num=1, loss_validation=4.72, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.76, ce_validation=1.55, acc_validation=0.602, f1_validation=0.602, adv_ce_validation=4.64, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.66, x_0_train=0.223, x_1_train=0.226, rec_x_cf_train=0.188, z_1_train=8.33, ce_train=1.4, acc_train=0.639, f1_train=0.639, adv_ce_train=4.67, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00281: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 283/1000: 28%|██▊ | 282/1000 [42:39<1:53:24, 9.48s/it, v_num=1, loss_validation=4.71, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.86, ce_validation=1.34, acc_validation=0.671, f1_validation=0.671, adv_ce_validation=4.57, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.72, x_0_train=0.223, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.29, ce_train=1.36, acc_train=0.649, f1_train=0.649, adv_ce_train=4.62, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00282: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 284/1000: 28%|██▊ | 283/1000 [42:47<1:48:38, 9.09s/it, v_num=1, loss_validation=4.71, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.89, ce_validation=1.34, acc_validation=0.673, f1_validation=0.673, adv_ce_validation=4.54, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.72, x_0_train=0.223, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.31, ce_train=1.36, acc_train=0.65, f1_train=0.65, adv_ce_train=4.58, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00283: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 287/1000: 29%|██▊ | 286/1000 [43:16<1:55:16, 9.69s/it, v_num=1, loss_validation=4.72, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=7.42, ce_validation=1.53, acc_validation=0.615, f1_validation=0.615, adv_ce_validation=4.63, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.66, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.36, ce_train=1.36, acc_train=0.651, f1_train=0.651, adv_ce_train=4.68, adv_acc_train=0.102, adv_f1_train=0.102]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00286: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 292/1000: 29%|██▉ | 291/1000 [44:01<1:53:45, 9.63s/it, v_num=1, loss_validation=4.72, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.187, z_1_validation=7.12, ce_validation=1.46, acc_validation=0.638, f1_validation=0.638, adv_ce_validation=4.66, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.65, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.38, ce_train=1.31, acc_train=0.663, f1_train=0.663, adv_ce_train=4.66, adv_acc_train=0.102, adv_f1_train=0.102]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00291: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 293/1000: 29%|██▉ | 292/1000 [44:09<1:48:49, 9.22s/it, v_num=1, loss_validation=4.7, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.187, z_1_validation=6.84, ce_validation=1.25, acc_validation=0.7, f1_validation=0.7, adv_ce_validation=4.61, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.72, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.36, ce_train=1.28, acc_train=0.673, f1_train=0.673, adv_ce_train=4.65, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00292: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 297/1000: 30%|██▉ | 296/1000 [44:46<1:53:13, 9.65s/it, v_num=1, loss_validation=4.71, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=7.72, ce_validation=1.38, acc_validation=0.658, f1_validation=0.658, adv_ce_validation=4.63, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.65, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.42, ce_train=1.28, acc_train=0.672, f1_train=0.672, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00296: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 298/1000: 30%|██▉ | 297/1000 [44:54<1:48:35, 9.27s/it, v_num=1, loss_validation=4.7, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.91, ce_validation=1.21, acc_validation=0.713, f1_validation=0.713, adv_ce_validation=4.6, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.71, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.39, ce_train=1.24, acc_train=0.686, f1_train=0.686, adv_ce_train=4.64, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00297: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 302/1000: 30%|███ | 301/1000 [45:31<1:52:33, 9.66s/it, v_num=1, loss_validation=4.71, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.95, ce_validation=1.33, acc_validation=0.666, f1_validation=0.666, adv_ce_validation=4.64, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.65, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.45, ce_train=1.24, acc_train=0.684, f1_train=0.684, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00301: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 303/1000: 30%|███ | 302/1000 [45:39<1:47:39, 9.25s/it, v_num=1, loss_validation=4.69, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.87, ce_validation=1.16, acc_validation=0.727, f1_validation=0.727, adv_ce_validation=4.62, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.71, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.4, ce_train=1.21, acc_train=0.695, f1_train=0.695, adv_ce_train=4.65, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00302: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 307/1000: 31%|███ | 306/1000 [46:16<1:51:14, 9.62s/it, v_num=1, loss_validation=4.71, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=7.2, ce_validation=1.37, acc_validation=0.645, f1_validation=0.645, adv_ce_validation=4.64, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.64, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.45, ce_train=1.2, acc_train=0.695, f1_train=0.695, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00306: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 312/1000: 31%|███ | 311/1000 [47:01<1:50:34, 9.63s/it, v_num=1, loss_validation=4.7, x_0_validation=0.222, x_1_validation=0.225, rec_x_cf_validation=0.189, z_1_validation=7.07, ce_validation=1.31, acc_validation=0.667, f1_validation=0.667, adv_ce_validation=4.67, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.64, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.49, ce_train=1.16, acc_train=0.706, f1_train=0.706, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00311: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 314/1000: 31%|███▏ | 313/1000 [47:17<1:42:20, 8.94s/it, v_num=1, loss_validation=4.69, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.91, ce_validation=1.08, acc_validation=0.753, f1_validation=0.753, adv_ce_validation=4.58, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.7, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.46, ce_train=1.13, acc_train=0.718, f1_train=0.718, adv_ce_train=4.62, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00313: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 317/1000: 32%|███▏ | 316/1000 [47:47<1:52:21, 9.86s/it, v_num=1, loss_validation=4.7, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.187, z_1_validation=7.66, ce_validation=1.28, acc_validation=0.683, f1_validation=0.683, adv_ce_validation=4.64, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.64, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.51, ce_train=1.13, acc_train=0.715, f1_train=0.715, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00316: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 318/1000: 32%|███▏ | 317/1000 [47:55<1:47:03, 9.40s/it, v_num=1, loss_validation=4.69, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.189, z_1_validation=6.94, ce_validation=1.05, acc_validation=0.762, f1_validation=0.762, adv_ce_validation=4.6, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.7, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.51, ce_train=1.1, acc_train=0.728, f1_train=0.728, adv_ce_train=4.64, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00317: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 322/1000: 32%|███▏ | 321/1000 [48:32<1:49:21, 9.66s/it, v_num=1, loss_validation=4.69, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=7.17, ce_validation=1.21, acc_validation=0.695, f1_validation=0.695, adv_ce_validation=4.64, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.63, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.51, ce_train=1.1, acc_train=0.725, f1_train=0.725, adv_ce_train=4.68, adv_acc_train=0.102, adv_f1_train=0.102]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00321: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 323/1000: 32%|███▏ | 322/1000 [48:40<1:44:27, 9.24s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.189, z_1_validation=6.93, ce_validation=1.01, acc_validation=0.773, f1_validation=0.773, adv_ce_validation=4.61, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.7, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.53, ce_train=1.07, acc_train=0.735, f1_train=0.735, adv_ce_train=4.64, adv_acc_train=0.102, adv_f1_train=0.102]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00322: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 324/1000: 32%|███▏ | 323/1000 [48:48<1:41:16, 8.98s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.94, ce_validation=1.01, acc_validation=0.772, f1_validation=0.772, adv_ce_validation=4.6, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.7, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.52, ce_train=1.06, acc_train=0.736, f1_train=0.736, adv_ce_train=4.63, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00323: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 325/1000: 32%|███▏ | 324/1000 [48:56<1:37:50, 8.68s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.189, z_1_validation=6.95, ce_validation=1.01, acc_validation=0.775, f1_validation=0.775, adv_ce_validation=4.59, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.7, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.52, ce_train=1.06, acc_train=0.736, f1_train=0.736, adv_ce_train=4.62, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00324: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 327/1000: 33%|███▎ | 326/1000 [49:17<1:48:17, 9.64s/it, v_num=1, loss_validation=4.69, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=7.14, ce_validation=1.13, acc_validation=0.716, f1_validation=0.716, adv_ce_validation=4.63, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.63, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.54, ce_train=1.06, acc_train=0.734, f1_train=0.734, adv_ce_train=4.66, adv_acc_train=0.102, adv_f1_train=0.102]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00326: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 328/1000: 33%|███▎ | 327/1000 [49:25<1:43:38, 9.24s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.9, ce_validation=0.976, acc_validation=0.785, f1_validation=0.785, adv_ce_validation=4.62, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.69, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.52, ce_train=1.03, acc_train=0.746, f1_train=0.746, adv_ce_train=4.65, adv_acc_train=0.102, adv_f1_train=0.102]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00327: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 329/1000: 33%|███▎ | 328/1000 [49:33<1:40:24, 8.97s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.91, ce_validation=0.972, acc_validation=0.783, f1_validation=0.783, adv_ce_validation=4.61, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.69, x_0_train=0.222, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.52, ce_train=1.03, acc_train=0.745, f1_train=0.745, adv_ce_train=4.64, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00328: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 332/1000: 33%|███▎ | 331/1000 [50:02<1:47:18, 9.62s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.187, z_1_validation=6.98, ce_validation=1.08, acc_validation=0.748, f1_validation=0.748, adv_ce_validation=4.64, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.63, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.56, ce_train=1.03, acc_train=0.746, f1_train=0.746, adv_ce_train=4.66, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00331: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 335/1000: 33%|███▎ | 334/1000 [50:26<1:36:43, 8.71s/it, v_num=1, loss_validation=4.67, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.187, z_1_validation=6.86, ce_validation=0.943, acc_validation=0.792, f1_validation=0.792, adv_ce_validation=4.6, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.69, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.51, ce_train=1, acc_train=0.753, f1_train=0.753, adv_ce_train=4.63, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00334: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 337/1000: 34%|███▎ | 336/1000 [50:47<1:47:08, 9.68s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.82, ce_validation=1.09, acc_validation=0.73, f1_validation=0.73, adv_ce_validation=4.63, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.62, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.56, ce_train=1, acc_train=0.753, f1_train=0.753, adv_ce_train=4.66, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00336: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 338/1000: 34%|███▎ | 337/1000 [50:55<1:42:17, 9.26s/it, v_num=1, loss_validation=4.67, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.85, ce_validation=0.909, acc_validation=0.806, f1_validation=0.806, adv_ce_validation=4.61, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.69, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.5, ce_train=0.974, acc_train=0.766, f1_train=0.766, adv_ce_train=4.65, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00337: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 339/1000: 34%|███▍ | 338/1000 [51:03<1:38:51, 8.96s/it, v_num=1, loss_validation=4.67, x_0_validation=0.221, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.85, ce_validation=0.905, acc_validation=0.805, f1_validation=0.805, adv_ce_validation=4.6, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.69, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.5, ce_train=0.973, acc_train=0.765, f1_train=0.765, adv_ce_train=4.63, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00338: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 342/1000: 34%|███▍ | 341/1000 [51:32<1:45:42, 9.62s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.189, z_1_validation=7.36, ce_validation=1.1, acc_validation=0.731, f1_validation=0.731, adv_ce_validation=4.64, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.62, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.57, ce_train=0.969, acc_train=0.767, f1_train=0.767, adv_ce_train=4.66, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00341: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 343/1000: 34%|███▍ | 342/1000 [51:40<1:41:24, 9.25s/it, v_num=1, loss_validation=4.67, x_0_validation=0.221, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.88, ce_validation=0.87, acc_validation=0.812, f1_validation=0.812, adv_ce_validation=4.62, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.68, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.56, ce_train=0.944, acc_train=0.772, f1_train=0.772, adv_ce_train=4.65, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00342: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 347/1000: 35%|███▍ | 346/1000 [52:17<1:44:47, 9.61s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.187, z_1_validation=7.17, ce_validation=1.01, acc_validation=0.755, f1_validation=0.755, adv_ce_validation=4.64, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.62, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.59, ce_train=0.941, acc_train=0.768, f1_train=0.768, adv_ce_train=4.65, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00346: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 352/1000: 35%|███▌ | 351/1000 [53:03<1:45:50, 9.79s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=7.4, ce_validation=1.04, acc_validation=0.742, f1_validation=0.742, adv_ce_validation=4.64, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.62, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.62, ce_train=0.913, acc_train=0.781, f1_train=0.781, adv_ce_train=4.66, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00351: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 353/1000: 35%|███▌ | 352/1000 [53:11<1:40:49, 9.34s/it, v_num=1, loss_validation=4.66, x_0_validation=0.221, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.92, ce_validation=0.816, acc_validation=0.829, f1_validation=0.829, adv_ce_validation=4.62, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.68, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.6, ce_train=0.887, acc_train=0.79, f1_train=0.79, adv_ce_train=4.65, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00352: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 357/1000: 36%|███▌ | 356/1000 [53:48<1:43:30, 9.64s/it, v_num=1, loss_validation=4.68, x_0_validation=0.221, x_1_validation=0.225, rec_x_cf_validation=0.187, z_1_validation=7.03, ce_validation=1.03, acc_validation=0.75, f1_validation=0.75, adv_ce_validation=4.64, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.61, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.63, ce_train=0.884, acc_train=0.789, f1_train=0.789, adv_ce_train=4.66, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00356: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 362/1000: 36%|███▌ | 361/1000 [54:33<1:42:52, 9.66s/it, v_num=1, loss_validation=4.67, x_0_validation=0.221, x_1_validation=0.224, rec_x_cf_validation=0.189, z_1_validation=7.52, ce_validation=0.973, acc_validation=0.754, f1_validation=0.754, adv_ce_validation=4.64, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.61, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.65, ce_train=0.856, acc_train=0.797, f1_train=0.797, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00361: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 364/1000: 36%|███▋ | 363/1000 [54:49<1:35:23, 8.98s/it, v_num=1, loss_validation=4.66, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.92, ce_validation=0.756, acc_validation=0.845, f1_validation=0.845, adv_ce_validation=4.6, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.67, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.62, ce_train=0.832, acc_train=0.807, f1_train=0.807, adv_ce_train=4.63, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00363: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 367/1000: 37%|███▋ | 366/1000 [55:18<1:41:50, 9.64s/it, v_num=1, loss_validation=4.67, x_0_validation=0.22, x_1_validation=0.225, rec_x_cf_validation=0.188, z_1_validation=6.97, ce_validation=0.948, acc_validation=0.782, f1_validation=0.782, adv_ce_validation=4.65, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.61, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.65, ce_train=0.837, acc_train=0.802, f1_train=0.802, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00366: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 368/1000: 37%|███▋ | 367/1000 [55:26<1:37:48, 9.27s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.9, ce_validation=0.732, acc_validation=0.852, f1_validation=0.852, adv_ce_validation=4.6, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.67, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.61, ce_train=0.813, acc_train=0.813, f1_train=0.813, adv_ce_train=4.64, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00367: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 369/1000: 37%|███▋ | 368/1000 [55:34<1:34:11, 8.94s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.9, ce_validation=0.731, acc_validation=0.856, f1_validation=0.856, adv_ce_validation=4.57, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.67, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.188, z_1_train=8.62, ce_train=0.816, acc_train=0.811, f1_train=0.811, adv_ce_train=4.61, adv_acc_train=0.106, adv_f1_train=0.106]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00368: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 372/1000: 37%|███▋ | 371/1000 [56:03<1:40:47, 9.61s/it, v_num=1, loss_validation=4.67, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.46, ce_validation=0.961, acc_validation=0.757, f1_validation=0.757, adv_ce_validation=4.65, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.6, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.69, ce_train=0.808, acc_train=0.81, f1_train=0.81, adv_ce_train=4.68, adv_acc_train=0.1, adv_f1_train=0.1] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00371: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 374/1000: 37%|███▋ | 373/1000 [56:19<1:33:27, 8.94s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.97, ce_validation=0.705, acc_validation=0.86, f1_validation=0.86, adv_ce_validation=4.58, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.67, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.73, ce_train=0.789, acc_train=0.817, f1_train=0.817, adv_ce_train=4.62, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00373: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 377/1000: 38%|███▊ | 376/1000 [56:48<1:40:18, 9.65s/it, v_num=1, loss_validation=4.67, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=8.1, ce_validation=0.939, acc_validation=0.769, f1_validation=0.769, adv_ce_validation=4.64, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.6, x_0_train=0.221, x_1_train=0.225, rec_x_cf_train=0.187, z_1_train=8.7, ce_train=0.789, acc_train=0.814, f1_train=0.814, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00376: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 382/1000: 38%|███▊ | 381/1000 [57:33<1:39:15, 9.62s/it, v_num=1, loss_validation=4.66, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=7.28, ce_validation=0.83, acc_validation=0.818, f1_validation=0.818, adv_ce_validation=4.66, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.6, x_0_train=0.221, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.72, ce_train=0.76, acc_train=0.825, f1_train=0.825, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00381: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 387/1000: 39%|███▊ | 386/1000 [58:19<1:39:56, 9.77s/it, v_num=1, loss_validation=4.66, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=7.45, ce_validation=0.812, acc_validation=0.817, f1_validation=0.817, adv_ce_validation=4.64, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.6, x_0_train=0.221, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.72, ce_train=0.742, acc_train=0.83, f1_train=0.83, adv_ce_train=4.67, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00386: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 392/1000: 39%|███▉ | 391/1000 [59:04<1:38:22, 9.69s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.13, ce_validation=0.75, acc_validation=0.849, f1_validation=0.849, adv_ce_validation=4.64, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.6, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.77, ce_train=0.722, acc_train=0.834, f1_train=0.834, adv_ce_train=4.68, adv_acc_train=0.1, adv_f1_train=0.1] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00391: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 394/1000: 39%|███▉ | 393/1000 [59:20<1:31:07, 9.01s/it, v_num=1, loss_validation=4.64, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.98, ce_validation=0.608, acc_validation=0.885, f1_validation=0.885, adv_ce_validation=4.6, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.66, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.77, ce_train=0.698, acc_train=0.843, f1_train=0.843, adv_ce_train=4.63, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00393: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 397/1000: 40%|███▉ | 396/1000 [59:49<1:37:31, 9.69s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.48, ce_validation=0.765, acc_validation=0.838, f1_validation=0.838, adv_ce_validation=4.67, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.59, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.78, ce_train=0.702, acc_train=0.841, f1_train=0.841, adv_ce_train=4.68, adv_acc_train=0.1, adv_f1_train=0.1] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00396: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 400/1000: 40%|███▉ | 399/1000 [1:00:14<1:27:14, 8.71s/it, v_num=1, loss_validation=4.64, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=6.92, ce_validation=0.589, acc_validation=0.89, f1_validation=0.89, adv_ce_validation=4.59, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.66, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.73, ce_train=0.685, acc_train=0.844, f1_train=0.844, adv_ce_train=4.63, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00399: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 402/1000: 40%|████ | 401/1000 [1:00:34<1:36:29, 9.66s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.43, ce_validation=0.774, acc_validation=0.828, f1_validation=0.828, adv_ce_validation=4.67, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.59, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.79, ce_train=0.679, acc_train=0.848, f1_train=0.848, adv_ce_train=4.69, adv_acc_train=0.0999, adv_f1_train=0.0999]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00401: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 403/1000: 40%|████ | 402/1000 [1:00:43<1:32:29, 9.28s/it, v_num=1, loss_validation=4.64, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.98, ce_validation=0.562, acc_validation=0.897, f1_validation=0.897, adv_ce_validation=4.61, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.65, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.188, z_1_train=8.8, ce_train=0.659, acc_train=0.853, f1_train=0.853, adv_ce_train=4.65, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00402: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 404/1000: 40%|████ | 403/1000 [1:00:51<1:29:14, 8.97s/it, v_num=1, loss_validation=4.64, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.99, ce_validation=0.566, acc_validation=0.898, f1_validation=0.898, adv_ce_validation=4.58, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.65, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.188, z_1_train=8.79, ce_train=0.658, acc_train=0.857, f1_train=0.857, adv_ce_train=4.62, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00403: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 405/1000: 40%|████ | 404/1000 [1:00:59<1:26:33, 8.71s/it, v_num=1, loss_validation=4.64, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=6.99, ce_validation=0.562, acc_validation=0.898, f1_validation=0.898, adv_ce_validation=4.57, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.65, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.188, z_1_train=8.79, ce_train=0.66, acc_train=0.854, f1_train=0.854, adv_ce_train=4.61, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00404: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 407/1000: 41%|████ | 406/1000 [1:01:20<1:35:32, 9.65s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.1, ce_validation=0.711, acc_validation=0.852, f1_validation=0.852, adv_ce_validation=4.69, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.59, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.83, ce_train=0.666, acc_train=0.852, f1_train=0.852, adv_ce_train=4.7, adv_acc_train=0.0993, adv_f1_train=0.0993]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00406: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 408/1000: 41%|████ | 407/1000 [1:01:28<1:31:50, 9.29s/it, v_num=1, loss_validation=4.63, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=7.03, ce_validation=0.545, acc_validation=0.903, f1_validation=0.903, adv_ce_validation=4.62, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.65, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.188, z_1_train=8.84, ce_train=0.641, acc_train=0.86, f1_train=0.86, adv_ce_train=4.66, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00407: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 409/1000: 41%|████ | 408/1000 [1:01:36<1:28:42, 8.99s/it, v_num=1, loss_validation=4.63, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=7.01, ce_validation=0.545, acc_validation=0.902, f1_validation=0.902, adv_ce_validation=4.59, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.65, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.188, z_1_train=8.82, ce_train=0.641, acc_train=0.86, f1_train=0.86, adv_ce_train=4.63, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00408: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 412/1000: 41%|████ | 411/1000 [1:02:05<1:35:02, 9.68s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.189, z_1_validation=8.1, ce_validation=0.815, acc_validation=0.794, f1_validation=0.794, adv_ce_validation=4.67, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.59, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.85, ce_train=0.645, acc_train=0.856, f1_train=0.856, adv_ce_train=4.71, adv_acc_train=0.0986, adv_f1_train=0.0986]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00411: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 413/1000: 41%|████ | 412/1000 [1:02:13<1:30:45, 9.26s/it, v_num=1, loss_validation=4.63, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=7.03, ce_validation=0.535, acc_validation=0.902, f1_validation=0.902, adv_ce_validation=4.61, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.65, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.188, z_1_train=8.83, ce_train=0.632, acc_train=0.862, f1_train=0.862, adv_ce_train=4.65, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00412: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 417/1000: 42%|████▏ | 416/1000 [1:02:51<1:37:19, 10.00s/it, v_num=1, loss_validation=4.64, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=7.15, ce_validation=0.631, acc_validation=0.879, f1_validation=0.879, adv_ce_validation=4.68, adv_acc_validation=0.0996, adv_f1_validation=0.0996, loss_train=4.58, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.85, ce_train=0.627, acc_train=0.863, f1_train=0.863, adv_ce_train=4.72, adv_acc_train=0.0984, adv_f1_train=0.0984]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00416: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 418/1000: 42%|████▏ | 417/1000 [1:02:59<1:32:08, 9.48s/it, v_num=1, loss_validation=4.63, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7, ce_validation=0.514, acc_validation=0.909, f1_validation=0.909, adv_ce_validation=4.62, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.65, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.84, ce_train=0.61, acc_train=0.866, f1_train=0.866, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00417: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 419/1000: 42%|████▏ | 418/1000 [1:03:07<1:28:19, 9.11s/it, v_num=1, loss_validation=4.63, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.03, ce_validation=0.511, acc_validation=0.913, f1_validation=0.913, adv_ce_validation=4.59, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.65, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.84, ce_train=0.614, acc_train=0.866, f1_train=0.866, adv_ce_train=4.63, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00418: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 422/1000: 42%|████▏ | 421/1000 [1:03:36<1:33:51, 9.73s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=8.27, ce_validation=0.867, acc_validation=0.783, f1_validation=0.783, adv_ce_validation=4.69, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.58, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.88, ce_train=0.616, acc_train=0.865, f1_train=0.865, adv_ce_train=4.71, adv_acc_train=0.0987, adv_f1_train=0.0987]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00421: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 424/1000: 42%|████▏ | 423/1000 [1:03:52<1:26:27, 8.99s/it, v_num=1, loss_validation=4.63, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.06, ce_validation=0.495, acc_validation=0.915, f1_validation=0.915, adv_ce_validation=4.56, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.65, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.89, ce_train=0.597, acc_train=0.872, f1_train=0.872, adv_ce_train=4.61, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00423: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 427/1000: 43%|████▎ | 426/1000 [1:04:21<1:32:19, 9.65s/it, v_num=1, loss_validation=4.64, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.4, ce_validation=0.732, acc_validation=0.826, f1_validation=0.826, adv_ce_validation=4.68, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.58, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.88, ce_train=0.593, acc_train=0.873, f1_train=0.873, adv_ce_train=4.74, adv_acc_train=0.0968, adv_f1_train=0.0968]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00426: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 432/1000: 43%|████▎ | 431/1000 [1:05:06<1:31:46, 9.68s/it, v_num=1, loss_validation=4.65, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=8.03, ce_validation=0.887, acc_validation=0.774, f1_validation=0.774, adv_ce_validation=4.69, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.58, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.91, ce_train=0.578, acc_train=0.876, f1_train=0.876, adv_ce_train=4.75, adv_acc_train=0.0965, adv_f1_train=0.0965]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00431: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 433/1000: 43%|████▎ | 432/1000 [1:05:15<1:27:26, 9.24s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=7.04, ce_validation=0.464, acc_validation=0.922, f1_validation=0.922, adv_ce_validation=4.6, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.64, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.88, ce_train=0.565, acc_train=0.881, f1_train=0.881, adv_ce_train=4.65, adv_acc_train=0.102, adv_f1_train=0.102] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00432: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 434/1000: 43%|████▎ | 433/1000 [1:05:23<1:24:57, 8.99s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.05, ce_validation=0.468, acc_validation=0.921, f1_validation=0.921, adv_ce_validation=4.56, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.64, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.88, ce_train=0.567, acc_train=0.88, f1_train=0.88, adv_ce_train=4.6, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00433: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 437/1000: 44%|████▎ | 436/1000 [1:05:51<1:30:50, 9.66s/it, v_num=1, loss_validation=4.65, x_0_validation=0.219, x_1_validation=0.224, rec_x_cf_validation=0.188, z_1_validation=8.02, ce_validation=0.888, acc_validation=0.773, f1_validation=0.773, adv_ce_validation=4.67, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.58, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.9, ce_train=0.562, acc_train=0.88, f1_train=0.88, adv_ce_train=4.73, adv_acc_train=0.0977, adv_f1_train=0.0977] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00436: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 439/1000: 44%|████▍ | 438/1000 [1:06:08<1:23:57, 8.96s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.03, ce_validation=0.453, acc_validation=0.923, f1_validation=0.923, adv_ce_validation=4.56, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.64, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.88, ce_train=0.552, acc_train=0.885, f1_train=0.885, adv_ce_train=4.61, adv_acc_train=0.105, adv_f1_train=0.105]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00438: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 442/1000: 44%|████▍ | 441/1000 [1:06:37<1:29:49, 9.64s/it, v_num=1, loss_validation=4.64, x_0_validation=0.22, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.66, ce_validation=0.668, acc_validation=0.842, f1_validation=0.842, adv_ce_validation=4.7, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.57, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.92, ce_train=0.549, acc_train=0.885, f1_train=0.885, adv_ce_train=4.72, adv_acc_train=0.0981, adv_f1_train=0.0981]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00441: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 443/1000: 44%|████▍ | 442/1000 [1:06:45<1:26:14, 9.27s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.188, z_1_validation=7.08, ce_validation=0.435, acc_validation=0.929, f1_validation=0.929, adv_ce_validation=4.62, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.64, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.91, ce_train=0.535, acc_train=0.888, f1_train=0.888, adv_ce_train=4.66, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00442: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 444/1000: 44%|████▍ | 443/1000 [1:06:53<1:23:24, 8.98s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.08, ce_validation=0.436, acc_validation=0.925, f1_validation=0.925, adv_ce_validation=4.59, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.64, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.9, ce_train=0.534, acc_train=0.888, f1_train=0.888, adv_ce_train=4.63, adv_acc_train=0.103, adv_f1_train=0.103] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00443: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 447/1000: 45%|████▍ | 446/1000 [1:07:22<1:29:41, 9.71s/it, v_num=1, loss_validation=4.63, x_0_validation=0.219, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.35, ce_validation=0.598, acc_validation=0.884, f1_validation=0.884, adv_ce_validation=4.68, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.57, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.93, ce_train=0.54, acc_train=0.885, f1_train=0.885, adv_ce_train=4.71, adv_acc_train=0.0991, adv_f1_train=0.0991]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00446: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 452/1000: 45%|████▌ | 451/1000 [1:08:08<1:29:49, 9.82s/it, v_num=1, loss_validation=4.63, x_0_validation=0.219, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.56, ce_validation=0.54, acc_validation=0.901, f1_validation=0.901, adv_ce_validation=4.68, adv_acc_validation=0.0995, adv_f1_validation=0.0995, loss_train=4.57, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.96, ce_train=0.525, acc_train=0.89, f1_train=0.89, adv_ce_train=4.74, adv_acc_train=0.0978, adv_f1_train=0.0978]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00451: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 457/1000: 46%|████▌ | 456/1000 [1:08:53<1:27:37, 9.67s/it, v_num=1, loss_validation=4.64, x_0_validation=0.219, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=8.02, ce_validation=0.744, acc_validation=0.812, f1_validation=0.812, adv_ce_validation=4.68, adv_acc_validation=0.0996, adv_f1_validation=0.0996, loss_train=4.57, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.96, ce_train=0.508, acc_train=0.895, f1_train=0.895, adv_ce_train=4.72, adv_acc_train=0.0988, adv_f1_train=0.0988]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00456: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 458/1000: 46%|████▌ | 457/1000 [1:09:01<1:23:43, 9.25s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.08, ce_validation=0.392, acc_validation=0.938, f1_validation=0.938, adv_ce_validation=4.6, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.63, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.94, ce_train=0.494, acc_train=0.898, f1_train=0.898, adv_ce_train=4.65, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00457: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 462/1000: 46%|████▌ | 461/1000 [1:09:38<1:26:38, 9.65s/it, v_num=1, loss_validation=4.64, x_0_validation=0.219, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.76, ce_validation=0.71, acc_validation=0.836, f1_validation=0.836, adv_ce_validation=4.67, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.57, x_0_train=0.22, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.95, ce_train=0.497, acc_train=0.898, f1_train=0.898, adv_ce_train=4.73, adv_acc_train=0.0992, adv_f1_train=0.0992]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00461: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 463/1000: 46%|████▌ | 462/1000 [1:09:46<1:23:06, 9.27s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.12, ce_validation=0.38, acc_validation=0.941, f1_validation=0.941, adv_ce_validation=4.62, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.63, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.98, ce_train=0.483, acc_train=0.903, f1_train=0.903, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00462: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 464/1000: 46%|████▋ | 463/1000 [1:09:54<1:20:11, 8.96s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.188, z_1_validation=7.11, ce_validation=0.379, acc_validation=0.942, f1_validation=0.942, adv_ce_validation=4.6, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.63, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.98, ce_train=0.481, acc_train=0.904, f1_train=0.904, adv_ce_train=4.64, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00463: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 465/1000: 46%|████▋ | 464/1000 [1:10:03<1:17:49, 8.71s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.1, ce_validation=0.38, acc_validation=0.941, f1_validation=0.941, adv_ce_validation=4.59, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.63, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.99, ce_train=0.484, acc_train=0.903, f1_train=0.903, adv_ce_train=4.62, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00464: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 467/1000: 47%|████▋ | 466/1000 [1:10:23<1:26:04, 9.67s/it, v_num=1, loss_validation=4.63, x_0_validation=0.219, x_1_validation=0.224, rec_x_cf_validation=0.187, z_1_validation=7.69, ce_validation=0.637, acc_validation=0.85, f1_validation=0.85, adv_ce_validation=4.68, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.57, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.97, ce_train=0.483, acc_train=0.902, f1_train=0.902, adv_ce_train=4.71, adv_acc_train=0.1, adv_f1_train=0.1] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00466: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 468/1000: 47%|████▋ | 467/1000 [1:10:32<1:22:18, 9.27s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.11, ce_validation=0.371, acc_validation=0.943, f1_validation=0.943, adv_ce_validation=4.62, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.63, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.96, ce_train=0.476, acc_train=0.904, f1_train=0.904, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00467: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 472/1000: 47%|████▋ | 471/1000 [1:11:08<1:25:07, 9.66s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.186, z_1_validation=7.74, ce_validation=0.48, acc_validation=0.911, f1_validation=0.911, adv_ce_validation=4.69, adv_acc_validation=0.1, adv_f1_validation=0.1, loss_train=4.56, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.97, ce_train=0.474, acc_train=0.905, f1_train=0.905, adv_ce_train=4.71, adv_acc_train=0.099, adv_f1_train=0.099] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00471: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 477/1000: 48%|████▊ | 476/1000 [1:11:53<1:24:10, 9.64s/it, v_num=1, loss_validation=4.63, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.188, z_1_validation=8.22, ce_validation=0.646, acc_validation=0.838, f1_validation=0.838, adv_ce_validation=4.7, adv_acc_validation=0.0988, adv_f1_validation=0.0988, loss_train=4.56, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.467, acc_train=0.908, f1_train=0.908, adv_ce_train=4.73, adv_acc_train=0.0981, adv_f1_train=0.0981]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00476: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 480/1000: 48%|████▊ | 479/1000 [1:12:18<1:15:35, 8.70s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.15, ce_validation=0.35, acc_validation=0.948, f1_validation=0.948, adv_ce_validation=4.55, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.63, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.453, acc_train=0.912, f1_train=0.912, adv_ce_train=4.6, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00479: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 482/1000: 48%|████▊ | 481/1000 [1:12:39<1:23:38, 9.67s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.41, ce_validation=0.566, acc_validation=0.884, f1_validation=0.884, adv_ce_validation=4.7, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.56, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=8.99, ce_train=0.45, acc_train=0.911, f1_train=0.911, adv_ce_train=4.74, adv_acc_train=0.0984, adv_f1_train=0.0984]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00481: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 483/1000: 48%|████▊ | 482/1000 [1:12:48<1:22:59, 9.61s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.17, ce_validation=0.339, acc_validation=0.95, f1_validation=0.95, adv_ce_validation=4.61, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.63, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=9.01, ce_train=0.444, acc_train=0.913, f1_train=0.913, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00482: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 484/1000: 48%|████▊ | 483/1000 [1:12:56<1:19:30, 9.23s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.15, ce_validation=0.339, acc_validation=0.95, f1_validation=0.95, adv_ce_validation=4.58, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.63, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.444, acc_train=0.913, f1_train=0.913, adv_ce_train=4.62, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00483: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 487/1000: 49%|████▊ | 486/1000 [1:13:25<1:23:12, 9.71s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.35, ce_validation=0.443, acc_validation=0.922, f1_validation=0.922, adv_ce_validation=4.69, adv_acc_validation=0.0998, adv_f1_validation=0.0998, loss_train=4.56, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.44, acc_train=0.914, f1_train=0.914, adv_ce_train=4.73, adv_acc_train=0.0975, adv_f1_train=0.0975]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00486: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 488/1000: 49%|████▊ | 487/1000 [1:13:33<1:19:45, 9.33s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.15, ce_validation=0.328, acc_validation=0.953, f1_validation=0.953, adv_ce_validation=4.62, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.63, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.433, acc_train=0.915, f1_train=0.915, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00487: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 492/1000: 49%|████▉ | 491/1000 [1:14:10<1:22:06, 9.68s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.188, z_1_validation=7.42, ce_validation=0.455, acc_validation=0.92, f1_validation=0.92, adv_ce_validation=4.69, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.56, x_0_train=0.219, x_1_train=0.224, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.433, acc_train=0.916, f1_train=0.916, adv_ce_train=4.72, adv_acc_train=0.099, adv_f1_train=0.099] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00491: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 497/1000: 50%|████▉ | 496/1000 [1:14:55<1:21:18, 9.68s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.44, ce_validation=0.525, acc_validation=0.896, f1_validation=0.896, adv_ce_validation=4.69, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.56, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.422, acc_train=0.919, f1_train=0.919, adv_ce_train=4.72, adv_acc_train=0.0984, adv_f1_train=0.0984]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00496: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 500/1000: 50%|████▉ | 499/1000 [1:15:19<1:12:54, 8.73s/it, v_num=1, loss_validation=4.6, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.11, ce_validation=0.31, acc_validation=0.955, f1_validation=0.955, adv_ce_validation=4.58, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=8.98, ce_train=0.413, acc_train=0.921, f1_train=0.921, adv_ce_train=4.62, adv_acc_train=0.104, adv_f1_train=0.104] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00499: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 502/1000: 50%|█████ | 501/1000 [1:15:40<1:20:15, 9.65s/it, v_num=1, loss_validation=4.63, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=8.24, ce_validation=0.685, acc_validation=0.832, f1_validation=0.832, adv_ce_validation=4.7, adv_acc_validation=0.101, adv_f1_validation=0.101, loss_train=4.56, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.01, ce_train=0.413, acc_train=0.921, f1_train=0.921, adv_ce_train=4.73, adv_acc_train=0.0987, adv_f1_train=0.0987]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00501: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 504/1000: 50%|█████ | 503/1000 [1:15:56<1:14:15, 8.96s/it, v_num=1, loss_validation=4.6, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.16, ce_validation=0.303, acc_validation=0.957, f1_validation=0.957, adv_ce_validation=4.59, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.405, acc_train=0.923, f1_train=0.923, adv_ce_train=4.63, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00503: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 505/1000: 50%|█████ | 504/1000 [1:16:04<1:11:48, 8.69s/it, v_num=1, loss_validation=4.6, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.15, ce_validation=0.3, acc_validation=0.96, f1_validation=0.96, adv_ce_validation=4.58, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.406, acc_train=0.923, f1_train=0.923, adv_ce_train=4.62, adv_acc_train=0.105, adv_f1_train=0.105] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00504: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 507/1000: 51%|█████ | 506/1000 [1:16:25<1:19:33, 9.66s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.186, z_1_validation=7.68, ce_validation=0.487, acc_validation=0.897, f1_validation=0.897, adv_ce_validation=4.7, adv_acc_validation=0.0996, adv_f1_validation=0.0996, loss_train=4.56, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.405, acc_train=0.922, f1_train=0.922, adv_ce_train=4.73, adv_acc_train=0.0979, adv_f1_train=0.0979]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00506: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 508/1000: 51%|█████ | 507/1000 [1:16:33<1:15:51, 9.23s/it, v_num=1, loss_validation=4.6, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.17, ce_validation=0.294, acc_validation=0.959, f1_validation=0.959, adv_ce_validation=4.62, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.01, ce_train=0.395, acc_train=0.926, f1_train=0.926, adv_ce_train=4.67, adv_acc_train=0.1, adv_f1_train=0.1] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00507: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 509/1000: 51%|█████ | 508/1000 [1:16:41<1:13:30, 8.97s/it, v_num=1, loss_validation=4.6, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.15, ce_validation=0.289, acc_validation=0.963, f1_validation=0.963, adv_ce_validation=4.58, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.01, ce_train=0.394, acc_train=0.928, f1_train=0.928, adv_ce_train=4.63, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00508: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 512/1000: 51%|█████ | 511/1000 [1:17:10<1:18:39, 9.65s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.21, ce_validation=0.399, acc_validation=0.93, f1_validation=0.93, adv_ce_validation=4.68, adv_acc_validation=0.1, adv_f1_validation=0.1, loss_train=4.55, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.03, ce_train=0.395, acc_train=0.926, f1_train=0.926, adv_ce_train=4.74, adv_acc_train=0.0971, adv_f1_train=0.0971] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00511: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 514/1000: 51%|█████▏ | 513/1000 [1:17:27<1:12:55, 8.98s/it, v_num=1, loss_validation=4.6, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.14, ce_validation=0.284, acc_validation=0.965, f1_validation=0.965, adv_ce_validation=4.58, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=8.99, ce_train=0.387, acc_train=0.928, f1_train=0.928, adv_ce_train=4.62, adv_acc_train=0.105, adv_f1_train=0.105]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00513: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 515/1000: 51%|█████▏ | 514/1000 [1:17:35<1:10:53, 8.75s/it, v_num=1, loss_validation=4.6, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.15, ce_validation=0.283, acc_validation=0.962, f1_validation=0.962, adv_ce_validation=4.57, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=8.99, ce_train=0.385, acc_train=0.929, f1_train=0.929, adv_ce_train=4.61, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00514: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 517/1000: 52%|█████▏ | 516/1000 [1:17:57<1:20:56, 10.03s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.186, z_1_validation=7.59, ce_validation=0.441, acc_validation=0.917, f1_validation=0.917, adv_ce_validation=4.7, adv_acc_validation=0.0991, adv_f1_validation=0.0991, loss_train=4.55, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.04, ce_train=0.39, acc_train=0.927, f1_train=0.927, adv_ce_train=4.74, adv_acc_train=0.0983, adv_f1_train=0.0983]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00516: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 518/1000: 52%|█████▏ | 517/1000 [1:18:05<1:16:39, 9.52s/it, v_num=1, loss_validation=4.6, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.15, ce_validation=0.274, acc_validation=0.967, f1_validation=0.967, adv_ce_validation=4.61, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.38, acc_train=0.931, f1_train=0.931, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00517: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 519/1000: 52%|█████▏ | 518/1000 [1:18:13<1:13:41, 9.17s/it, v_num=1, loss_validation=4.6, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.15, ce_validation=0.274, acc_validation=0.967, f1_validation=0.967, adv_ce_validation=4.58, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=8.99, ce_train=0.377, acc_train=0.931, f1_train=0.931, adv_ce_train=4.62, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00518: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 522/1000: 52%|█████▏ | 521/1000 [1:18:42<1:17:28, 9.70s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.186, z_1_validation=8.2, ce_validation=0.652, acc_validation=0.84, f1_validation=0.84, adv_ce_validation=4.69, adv_acc_validation=0.0996, adv_f1_validation=0.0996, loss_train=4.55, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.03, ce_train=0.38, acc_train=0.929, f1_train=0.929, adv_ce_train=4.76, adv_acc_train=0.0974, adv_f1_train=0.0974]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00521: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 525/1000: 52%|█████▏ | 524/1000 [1:19:06<1:09:07, 8.71s/it, v_num=1, loss_validation=4.6, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.21, ce_validation=0.27, acc_validation=0.964, f1_validation=0.964, adv_ce_validation=4.55, adv_acc_validation=0.109, adv_f1_validation=0.109, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.07, ce_train=0.375, acc_train=0.931, f1_train=0.931, adv_ce_train=4.59, adv_acc_train=0.106, adv_f1_train=0.106] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00524: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 527/1000: 53%|█████▎ | 526/1000 [1:19:27<1:16:39, 9.70s/it, v_num=1, loss_validation=4.61, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.186, z_1_validation=7.34, ce_validation=0.359, acc_validation=0.945, f1_validation=0.945, adv_ce_validation=4.71, adv_acc_validation=0.1, adv_f1_validation=0.1, loss_train=4.55, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.06, ce_train=0.375, acc_train=0.93, f1_train=0.93, adv_ce_train=4.77, adv_acc_train=0.0968, adv_f1_train=0.0968] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00526: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 528/1000: 53%|█████▎ | 527/1000 [1:19:35<1:13:10, 9.28s/it, v_num=1, loss_validation=4.6, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.17, ce_validation=0.262, acc_validation=0.966, f1_validation=0.966, adv_ce_validation=4.62, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.62, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.04, ce_train=0.365, acc_train=0.935, f1_train=0.935, adv_ce_train=4.67, adv_acc_train=0.0998, adv_f1_train=0.0998]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00527: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 532/1000: 53%|█████▎ | 531/1000 [1:20:12<1:15:36, 9.67s/it, v_num=1, loss_validation=4.62, x_0_validation=0.219, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.88, ce_validation=0.587, acc_validation=0.86, f1_validation=0.86, adv_ce_validation=4.69, adv_acc_validation=0.0995, adv_f1_validation=0.0995, loss_train=4.55, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.03, ce_train=0.366, acc_train=0.933, f1_train=0.933, adv_ce_train=4.75, adv_acc_train=0.0977, adv_f1_train=0.0977]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00531: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 533/1000: 53%|█████▎ | 532/1000 [1:20:20<1:12:23, 9.28s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.2, ce_validation=0.254, acc_validation=0.969, f1_validation=0.969, adv_ce_validation=4.62, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.03, ce_train=0.355, acc_train=0.936, f1_train=0.936, adv_ce_train=4.67, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00532: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 537/1000: 54%|█████▎ | 536/1000 [1:20:57<1:14:47, 9.67s/it, v_num=1, loss_validation=4.61, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.188, z_1_validation=7.97, ce_validation=0.48, acc_validation=0.9, f1_validation=0.9, adv_ce_validation=4.7, adv_acc_validation=0.0997, adv_f1_validation=0.0997, loss_train=4.55, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.04, ce_train=0.359, acc_train=0.936, f1_train=0.936, adv_ce_train=4.74, adv_acc_train=0.0979, adv_f1_train=0.0979] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00536: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 539/1000: 54%|█████▍ | 538/1000 [1:21:14<1:09:24, 9.01s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.18, ce_validation=0.252, acc_validation=0.969, f1_validation=0.969, adv_ce_validation=4.6, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.04, ce_train=0.351, acc_train=0.937, f1_train=0.937, adv_ce_train=4.64, adv_acc_train=0.103, adv_f1_train=0.103]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00538: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 542/1000: 54%|█████▍ | 541/1000 [1:21:43<1:13:59, 9.67s/it, v_num=1, loss_validation=4.61, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.55, ce_validation=0.416, acc_validation=0.924, f1_validation=0.924, adv_ce_validation=4.7, adv_acc_validation=0.0992, adv_f1_validation=0.0992, loss_train=4.55, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.04, ce_train=0.355, acc_train=0.935, f1_train=0.935, adv_ce_train=4.75, adv_acc_train=0.0975, adv_f1_train=0.0975]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00541: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 543/1000: 54%|█████▍ | 542/1000 [1:21:51<1:10:50, 9.28s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.21, ce_validation=0.241, acc_validation=0.972, f1_validation=0.972, adv_ce_validation=4.62, adv_acc_validation=0.102, adv_f1_validation=0.102, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.03, ce_train=0.343, acc_train=0.941, f1_train=0.941, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00542: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 547/1000: 55%|█████▍ | 546/1000 [1:22:28<1:13:05, 9.66s/it, v_num=1, loss_validation=4.6, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.43, ce_validation=0.369, acc_validation=0.938, f1_validation=0.938, adv_ce_validation=4.71, adv_acc_validation=0.0996, adv_f1_validation=0.0996, loss_train=4.55, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.06, ce_train=0.347, acc_train=0.937, f1_train=0.937, adv_ce_train=4.77, adv_acc_train=0.0961, adv_f1_train=0.0961]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00546: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 548/1000: 55%|█████▍ | 547/1000 [1:22:36<1:09:58, 9.27s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.22, ce_validation=0.237, acc_validation=0.973, f1_validation=0.973, adv_ce_validation=4.61, adv_acc_validation=0.103, adv_f1_validation=0.103, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.05, ce_train=0.342, acc_train=0.939, f1_train=0.939, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00547: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 549/1000: 55%|█████▍ | 548/1000 [1:22:44<1:07:27, 8.96s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.23, ce_validation=0.234, acc_validation=0.974, f1_validation=0.974, adv_ce_validation=4.57, adv_acc_validation=0.108, adv_f1_validation=0.108, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.06, ce_train=0.342, acc_train=0.938, f1_train=0.938, adv_ce_train=4.62, adv_acc_train=0.104, adv_f1_train=0.104]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00548: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 552/1000: 55%|█████▌ | 551/1000 [1:23:14<1:13:57, 9.88s/it, v_num=1, loss_validation=4.6, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.186, z_1_validation=7.68, ce_validation=0.382, acc_validation=0.932, f1_validation=0.932, adv_ce_validation=4.72, adv_acc_validation=0.0986, adv_f1_validation=0.0986, loss_train=4.54, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.07, ce_train=0.344, acc_train=0.937, f1_train=0.937, adv_ce_train=4.78, adv_acc_train=0.0951, adv_f1_train=0.0951]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00551: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 553/1000: 55%|█████▌ | 552/1000 [1:23:22<1:10:19, 9.42s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.22, ce_validation=0.232, acc_validation=0.973, f1_validation=0.973, adv_ce_validation=4.6, adv_acc_validation=0.106, adv_f1_validation=0.106, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.07, ce_train=0.336, acc_train=0.94, f1_train=0.94, adv_ce_train=4.68, adv_acc_train=0.101, adv_f1_train=0.101] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00552: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 554/1000: 55%|█████▌ | 553/1000 [1:23:30<1:07:43, 9.09s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.21, ce_validation=0.231, acc_validation=0.973, f1_validation=0.973, adv_ce_validation=4.54, adv_acc_validation=0.111, adv_f1_validation=0.111, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.06, ce_train=0.335, acc_train=0.941, f1_train=0.941, adv_ce_train=4.6, adv_acc_train=0.105, adv_f1_train=0.105]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00553: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 557/1000: 56%|█████▌ | 556/1000 [1:23:59<1:11:39, 9.68s/it, v_num=1, loss_validation=4.6, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.51, ce_validation=0.327, acc_validation=0.953, f1_validation=0.953, adv_ce_validation=4.72, adv_acc_validation=0.0987, adv_f1_validation=0.0987, loss_train=4.54, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.05, ce_train=0.338, acc_train=0.939, f1_train=0.939, adv_ce_train=4.8, adv_acc_train=0.095, adv_f1_train=0.095]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00556: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 558/1000: 56%|█████▌ | 557/1000 [1:24:07<1:08:40, 9.30s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.14, ce_validation=0.225, acc_validation=0.974, f1_validation=0.974, adv_ce_validation=4.6, adv_acc_validation=0.105, adv_f1_validation=0.105, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9, ce_train=0.332, acc_train=0.943, f1_train=0.943, adv_ce_train=4.68, adv_acc_train=0.0998, adv_f1_train=0.0998] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00557: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 562/1000: 56%|█████▌ | 561/1000 [1:24:44<1:10:38, 9.66s/it, v_num=1, loss_validation=4.61, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.187, z_1_validation=7.93, ce_validation=0.486, acc_validation=0.893, f1_validation=0.893, adv_ce_validation=4.71, adv_acc_validation=0.0989, adv_f1_validation=0.0989, loss_train=4.54, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.187, z_1_train=9.04, ce_train=0.329, acc_train=0.943, f1_train=0.943, adv_ce_train=4.78, adv_acc_train=0.0952, adv_f1_train=0.0952]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Epoch 00561: loss_validation reached. Module best state updated.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 568/1000: 57%|█████▋ | 567/1000 [1:25:38<1:06:48, 9.26s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.186, z_1_validation=7.2, ce_validation=0.217, acc_validation=0.976, f1_validation=0.976, adv_ce_validation=4.62, adv_acc_validation=0.104, adv_f1_validation=0.104, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.186, z_1_train=9.01, ce_train=0.317, acc_train=0.945, f1_train=0.945, adv_ce_train=4.68, adv_acc_train=0.1, adv_f1_train=0.1] Epoch 00568: reducing learning rate of group 0 to 1.5000e-03.\n",
"Epoch 568/1000: 57%|█████▋ | 568/1000 [1:25:46<1:05:14, 9.06s/it, v_num=1, loss_validation=4.59, x_0_validation=0.218, x_1_validation=0.223, rec_x_cf_validation=0.186, z_1_validation=7.18, ce_validation=0.217, acc_validation=0.977, f1_validation=0.977, adv_ce_validation=4.58, adv_acc_validation=0.107, adv_f1_validation=0.107, loss_train=4.61, x_0_train=0.219, x_1_train=0.223, rec_x_cf_train=0.186, z_1_train=9.03, ce_train=0.318, acc_train=0.945, f1_train=0.945, adv_ce_train=4.63, adv_acc_train=0.104, adv_f1_train=0.104]\n",
"Monitored metric loss_validation did not improve in the last 6 records. Best score: 4.587. Signaling Trainer to stop.\n"
]
}
],
"source": [
"model.train(**train_dict, plan_kwargs=plan_kwargs, )"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"norman_celldisect/\n"
]
}
],
"source": [
"model.save(f\"norman_celldisect/\", overwrite=True)\n",
"print(\"norman_celldisect/\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Predicting a Single Seen Perturbation\n",
"\n",
"First, let's predict a perturbation that the model has seen during training."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Predicting seen single-gene perturbation: 'TSC22D1'\n",
"Control shape: torch.Size([500, 5045])\n",
"True shape: torch.Size([376, 5045])\n",
"Predicted shape: torch.Size([500, 5045])\n"
]
}
],
"source": [
"seen_pert = train_single[0]\n",
"print(f\"Predicting seen single-gene perturbation: '{seen_pert}'\")\n",
"\n",
"x_ctrl, x_true, x_pred = model.predict_perturbation(\n",
" adata_eval,\n",
" perturbation=seen_pert,\n",
" source_perturbation=control_label,\n",
" cats=cats,\n",
" perturbation_key=perturbation_key,\n",
" n_samples_from_source=500,\n",
")\n",
"\n",
"print(f\"Control shape: {x_ctrl.shape}\")\n",
"print(f\"True shape: {x_true.shape}\")\n",
"print(f\"Predicted shape: {x_pred.shape}\")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Metrics for seen perturbation 'TSC22D1':\n",
" pearson_mean: 0.9927\n",
" pearson_delta: 0.0228\n",
" mse: 0.0038\n",
" top20_de_pearson: 0.9298\n",
" top20_de_cosine: 0.3240\n"
]
}
],
"source": [
"metrics_seen_single = perturbation_metrics(\n",
" x_pred.numpy(), x_true.numpy(), x_ctrl.numpy(), top_n_de=20\n",
")\n",
"print(f\"Metrics for seen perturbation '{seen_pert}':\")\n",
"for k, v in metrics_seen_single.items():\n",
" print(f\" {k}: {v:.4f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4. Predicting a Single Unseen Perturbation\n",
"\n",
"Now we predict one of the held-out perturbations that was **not** in the training data. We pass its GenePT embedding via `new_embeddings`."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Predicting unseen single-gene perturbation: 'FOXO4'\n",
"Metrics for unseen perturbation 'FOXO4':\n",
" pearson_mean: 0.9841\n",
" pearson_delta: -0.1067\n",
" mse: 0.0100\n",
" top20_de_pearson: 0.9567\n",
" top20_de_cosine: 0.3998\n"
]
}
],
"source": [
"unseen_pert = holdout_single[0]\n",
"print(f\"Predicting unseen single-gene perturbation: '{unseen_pert}'\")\n",
"\n",
"unseen_embs = {g: gene_embeddings[g] for g in unseen_pert.split(DELIMITER)}\n",
"\n",
"x_ctrl, x_true, x_pred = model.predict_perturbation(\n",
" adata_eval,\n",
" perturbation=unseen_pert,\n",
" source_perturbation=control_label,\n",
" cats=cats,\n",
" perturbation_key=perturbation_key,\n",
" new_embeddings=unseen_embs,\n",
" n_samples_from_source=500,\n",
")\n",
"\n",
"if x_true is not None:\n",
" metrics_unseen_single = perturbation_metrics(\n",
" x_pred.numpy(), x_true.numpy(), x_ctrl.numpy(), top_n_de=20\n",
" )\n",
" print(f\"Metrics for unseen perturbation '{unseen_pert}':\")\n",
" for k, v in metrics_unseen_single.items():\n",
" print(f\" {k}: {v:.4f}\")\n",
"else:\n",
" print(f\"No ground-truth cells for '{unseen_pert}' in evaluation data.\")\n",
" print(f\"Predicted shape: {x_pred.shape}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 5. Predicting an Unseen Combinatorial Perturbation\n",
"\n",
"CellDISECT handles combinatorial perturbations (e.g. `GeneA+GeneB`) by **summing** the atomic component embeddings. Here we predict a held-out combo."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Predicting unseen combinatorial perturbation: 'MAP2K6+IKZF3'\n",
" Components: ['MAP2K6', 'IKZF3']\n",
"Metrics for unseen combo 'MAP2K6+IKZF3':\n",
" pearson_mean: 0.9864\n",
" pearson_delta: 0.6255\n",
" mse: 0.0067\n",
" top20_de_pearson: 0.9028\n",
" top20_de_cosine: 0.9578\n"
]
}
],
"source": [
"unseen_combo = holdout_combo[0]\n",
"print(f\"Predicting unseen combinatorial perturbation: '{unseen_combo}'\")\n",
"print(f\" Components: {unseen_combo.split(DELIMITER)}\")\n",
"\n",
"combo_embs = {g: gene_embeddings[g] for g in unseen_combo.split(DELIMITER)}\n",
"\n",
"x_ctrl, x_true, x_pred = model.predict_perturbation(\n",
" adata_eval,\n",
" perturbation=unseen_combo,\n",
" source_perturbation=control_label,\n",
" cats=cats,\n",
" perturbation_key=perturbation_key,\n",
" new_embeddings=combo_embs,\n",
" n_samples_from_source=500,\n",
")\n",
"\n",
"if x_true is not None:\n",
" metrics_unseen_combo = perturbation_metrics(\n",
" x_pred.numpy(), x_true.numpy(), x_ctrl.numpy(), top_n_de=20\n",
" )\n",
" print(f\"Metrics for unseen combo '{unseen_combo}':\")\n",
" for k, v in metrics_unseen_combo.items():\n",
" print(f\" {k}: {v:.4f}\")\n",
"else:\n",
" print(f\"No ground-truth cells for '{unseen_combo}'.\")\n",
" print(f\"Predicted shape: {x_pred.shape}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 6. Batch Evaluation with `predict_perturbations`\n",
"\n",
"For systematic evaluation, we use `predict_perturbations` (plural) which processes multiple perturbations efficiently by sharing source cell encoding.\n",
"\n",
"We evaluate:\n",
"1. **All held-out (unseen) perturbations** — both single-gene and combinatorial\n",
"2. **A random subset of seen perturbations** — to assess reconstruction quality"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Evaluating 10 unseen + 20 seen = 30 total\n",
" (13 single-gene, 17 combinatorial)\n"
]
}
],
"source": [
"np.random.seed(42)\n",
"\n",
"N_SEEN_EVAL = min(20, len(train_perts))\n",
"seen_eval_perts = list(np.random.choice(train_perts, size=N_SEEN_EVAL, replace=False))\n",
"\n",
"all_eval_perts = holdout_perts + seen_eval_perts\n",
"\n",
"n_eval_single = sum(1 for p in all_eval_perts if DELIMITER not in p)\n",
"n_eval_combo = sum(1 for p in all_eval_perts if DELIMITER in p)\n",
"print(f\"Evaluating {len(holdout_perts)} unseen + {len(seen_eval_perts)} seen = {len(all_eval_perts)} total\")\n",
"print(f\" ({n_eval_single} single-gene, {n_eval_combo} combinatorial)\")"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"['FOXO4',\n",
" 'FOXL2',\n",
" 'ARRDC3',\n",
" 'C19orf26',\n",
" 'PTPN12',\n",
" 'MAP2K6+IKZF3',\n",
" 'FEV+ISL2',\n",
" 'FOXA3+FOXL2',\n",
" 'LHX1+ELMSAN1',\n",
" 'FOXA1+FOXL2']"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"holdout_perts"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"14460"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import gc\n",
"gc.collect()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Providing 13 atomic embeddings for unseen perturbations\n",
"Predictions returned for 30 perturbations\n"
]
}
],
"source": [
"# Collect atomic embeddings for all unseen perturbation components\n",
"new_embs = {}\n",
"for p in holdout_perts:\n",
" for g in p.split(DELIMITER):\n",
" if g not in new_embs:\n",
" new_embs[g] = gene_embeddings[g]\n",
"\n",
"print(f\"Providing {len(new_embs)} atomic embeddings for unseen perturbations\")\n",
"\n",
"results = model.predict_perturbations(\n",
" adata_eval,\n",
" perturbations=all_eval_perts,\n",
" source_perturbation=control_label,\n",
" cats=cats,\n",
" perturbation_key=perturbation_key,\n",
" new_embeddings=new_embs,\n",
" n_samples_from_source=500,\n",
" batch_size=256,\n",
")\n",
"\n",
"print(f\"Predictions returned for {len(results)} perturbations\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 6.1 Compute metrics for all evaluated perturbations"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Computed metrics for 30 perturbations\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" pearson_mean | \n",
" pearson_delta | \n",
" mse | \n",
" top20_de_pearson | \n",
" top20_de_cosine | \n",
" split | \n",
" type | \n",
"
\n",
" \n",
" | perturbation | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | FOXO4 | \n",
" 0.984066 | \n",
" -0.108509 | \n",
" 0.009984 | \n",
" 0.956673 | \n",
" 0.395618 | \n",
" unseen | \n",
" single | \n",
"
\n",
" \n",
" | FOXL2 | \n",
" 0.988258 | \n",
" -0.029363 | \n",
" 0.008701 | \n",
" 0.956343 | \n",
" 0.260015 | \n",
" unseen | \n",
" single | \n",
"
\n",
" \n",
" | ARRDC3 | \n",
" 0.991241 | \n",
" -0.181686 | \n",
" 0.005321 | \n",
" 0.996426 | \n",
" -0.137059 | \n",
" unseen | \n",
" single | \n",
"
\n",
" \n",
" | C19orf26 | \n",
" 0.992569 | \n",
" 0.168080 | \n",
" 0.003984 | \n",
" 0.972179 | \n",
" 0.712447 | \n",
" unseen | \n",
" single | \n",
"
\n",
" \n",
" | PTPN12 | \n",
" 0.991953 | \n",
" 0.432851 | \n",
" 0.004374 | \n",
" 0.984046 | \n",
" 0.895203 | \n",
" unseen | \n",
" single | \n",
"
\n",
" \n",
" | MAP2K6+IKZF3 | \n",
" 0.986456 | \n",
" 0.627291 | \n",
" 0.006720 | \n",
" 0.903662 | \n",
" 0.957571 | \n",
" unseen | \n",
" combo | \n",
"
\n",
" \n",
" | FEV+ISL2 | \n",
" 0.978671 | \n",
" 0.266620 | \n",
" 0.016061 | \n",
" 0.905176 | \n",
" 0.822309 | \n",
" unseen | \n",
" combo | \n",
"
\n",
" \n",
" | FOXA3+FOXL2 | \n",
" 0.973870 | \n",
" 0.179636 | \n",
" 0.019634 | \n",
" 0.978840 | \n",
" 0.831653 | \n",
" unseen | \n",
" combo | \n",
"
\n",
" \n",
" | LHX1+ELMSAN1 | \n",
" 0.984850 | \n",
" -0.008092 | \n",
" 0.008423 | \n",
" 0.716356 | \n",
" 0.480285 | \n",
" unseen | \n",
" combo | \n",
"
\n",
" \n",
" | FOXA1+FOXL2 | \n",
" 0.984429 | \n",
" 0.174049 | \n",
" 0.012851 | \n",
" 0.992558 | \n",
" 0.878325 | \n",
" unseen | \n",
" combo | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" pearson_mean pearson_delta mse top20_de_pearson \\\n",
"perturbation \n",
"FOXO4 0.984066 -0.108509 0.009984 0.956673 \n",
"FOXL2 0.988258 -0.029363 0.008701 0.956343 \n",
"ARRDC3 0.991241 -0.181686 0.005321 0.996426 \n",
"C19orf26 0.992569 0.168080 0.003984 0.972179 \n",
"PTPN12 0.991953 0.432851 0.004374 0.984046 \n",
"MAP2K6+IKZF3 0.986456 0.627291 0.006720 0.903662 \n",
"FEV+ISL2 0.978671 0.266620 0.016061 0.905176 \n",
"FOXA3+FOXL2 0.973870 0.179636 0.019634 0.978840 \n",
"LHX1+ELMSAN1 0.984850 -0.008092 0.008423 0.716356 \n",
"FOXA1+FOXL2 0.984429 0.174049 0.012851 0.992558 \n",
"\n",
" top20_de_cosine split type \n",
"perturbation \n",
"FOXO4 0.395618 unseen single \n",
"FOXL2 0.260015 unseen single \n",
"ARRDC3 -0.137059 unseen single \n",
"C19orf26 0.712447 unseen single \n",
"PTPN12 0.895203 unseen single \n",
"MAP2K6+IKZF3 0.957571 unseen combo \n",
"FEV+ISL2 0.822309 unseen combo \n",
"FOXA3+FOXL2 0.831653 unseen combo \n",
"LHX1+ELMSAN1 0.480285 unseen combo \n",
"FOXA1+FOXL2 0.878325 unseen combo "
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"records = []\n",
"\n",
"for pert, (x_ctrl_i, x_true_i, x_pred_i) in results.items():\n",
" if x_true_i is None:\n",
" continue\n",
" m = perturbation_metrics(\n",
" x_pred_i.numpy(), x_true_i.numpy(), x_ctrl_i.numpy(), top_n_de=20\n",
" )\n",
" m['perturbation'] = pert\n",
" m['split'] = 'unseen' if pert in holdout_perts else 'seen'\n",
" m['type'] = 'combo' if DELIMITER in pert else 'single'\n",
" records.append(m)\n",
"\n",
"metrics_df = pd.DataFrame(records)\n",
"metrics_df = metrics_df.set_index('perturbation')\n",
"\n",
"print(f\"Computed metrics for {len(metrics_df)} perturbations\")\n",
"metrics_df.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"============================================================\n",
"AGGREGATE METRICS\n",
"============================================================\n",
"\n",
"--- SEEN perturbations (n=20) ---\n",
" pearson_mean pearson_delta mse top20_de_pearson top20_de_cosine\n",
"mean 0.9869 0.3944 0.0083 0.9436 0.7186\n",
"std 0.0070 0.2689 0.0056 0.0629 0.4167\n",
"min 0.9649 -0.2056 0.0023 0.7382 -0.6895\n",
"max 0.9946 0.7890 0.0248 0.9968 0.9941\n",
"\n",
"--- UNSEEN perturbations (n=10) ---\n",
" pearson_mean pearson_delta mse top20_de_pearson top20_de_cosine\n",
"mean 0.9856 0.1521 0.0096 0.9362 0.6096\n",
"std 0.0059 0.2488 0.0052 0.0839 0.3531\n",
"min 0.9739 -0.1817 0.0040 0.7164 -0.1371\n",
"max 0.9926 0.6273 0.0196 0.9964 0.9576\n",
"\n",
"============================================================\n",
"BREAKDOWN BY TYPE\n",
"============================================================\n",
"\n",
"--- SEEN / COMBO (n=12) ---\n",
"pearson_mean 0.9839\n",
"pearson_delta 0.4859\n",
"mse 0.0107\n",
"top20_de_pearson 0.9476\n",
"top20_de_cosine 0.8531\n",
"\n",
"--- SEEN / SINGLE (n=8) ---\n",
"pearson_mean 0.9913\n",
"pearson_delta 0.2572\n",
"mse 0.0046\n",
"top20_de_pearson 0.9377\n",
"top20_de_cosine 0.5169\n",
"\n",
"--- UNSEEN / COMBO (n=5) ---\n",
"pearson_mean 0.9817\n",
"pearson_delta 0.2479\n",
"mse 0.0127\n",
"top20_de_pearson 0.8993\n",
"top20_de_cosine 0.7940\n",
"\n",
"--- UNSEEN / SINGLE (n=5) ---\n",
"pearson_mean 0.9896\n",
"pearson_delta 0.0563\n",
"mse 0.0065\n",
"top20_de_pearson 0.9731\n",
"top20_de_cosine 0.4252\n"
]
}
],
"source": [
"print(\"=\" * 60)\n",
"print(\"AGGREGATE METRICS\")\n",
"print(\"=\" * 60)\n",
"\n",
"numeric_cols = [c for c in metrics_df.columns if c not in ('split', 'type')]\n",
"\n",
"for split in ['seen', 'unseen']:\n",
" sub = metrics_df[metrics_df['split'] == split][numeric_cols]\n",
" if len(sub) == 0:\n",
" continue\n",
" print(f\"\\n--- {split.upper()} perturbations (n={len(sub)}) ---\")\n",
" print(sub.describe().loc[['mean', 'std', 'min', 'max']].round(4).to_string())\n",
"\n",
"print(\"\\n\" + \"=\" * 60)\n",
"print(\"BREAKDOWN BY TYPE\")\n",
"print(\"=\" * 60)\n",
"\n",
"for (split, ptype), sub in metrics_df.groupby(['split', 'type']):\n",
" sub_num = sub[numeric_cols]\n",
" print(f\"\\n--- {split.upper()} / {ptype.upper()} (n={len(sub_num)}) ---\")\n",
" print(sub_num.mean().round(4).to_string())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 7. Visualization"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"def plot_prediction_scatter(x_pred, x_true, x_ctrl, title='', top_n_de=20):\n",
" \"\"\"Scatter plot of predicted vs true mean expression.\"\"\"\n",
" pred_mean = x_pred.numpy().mean(0) if hasattr(x_pred, 'numpy') else np.asarray(x_pred).mean(0)\n",
" true_mean = x_true.numpy().mean(0) if hasattr(x_true, 'numpy') else np.asarray(x_true).mean(0)\n",
" ctrl_mean = x_ctrl.numpy().mean(0) if hasattr(x_ctrl, 'numpy') else np.asarray(x_ctrl).mean(0)\n",
"\n",
" delta_true = true_mean - ctrl_mean\n",
" de_idx = np.argsort(-np.abs(delta_true))[:top_n_de]\n",
"\n",
" fig, axes = plt.subplots(1, 2, figsize=(12, 5))\n",
"\n",
" r_all, _ = pearsonr(pred_mean, true_mean)\n",
" axes[0].scatter(true_mean, pred_mean, s=1, alpha=0.3)\n",
" axes[0].set_xlabel('True mean expression')\n",
" axes[0].set_ylabel('Predicted mean expression')\n",
" axes[0].set_title(f'{title} — All genes (r={r_all:.3f})')\n",
" lims = [min(axes[0].get_xlim()[0], axes[0].get_ylim()[0]),\n",
" max(axes[0].get_xlim()[1], axes[0].get_ylim()[1])]\n",
" axes[0].plot(lims, lims, 'r--', alpha=0.5)\n",
"\n",
" r_de, _ = pearsonr(pred_mean[de_idx], true_mean[de_idx])\n",
" axes[1].scatter(true_mean[de_idx], pred_mean[de_idx], s=20, alpha=0.7, c='coral')\n",
" axes[1].set_xlabel('True mean expression')\n",
" axes[1].set_ylabel('Predicted mean expression')\n",
" axes[1].set_title(f'{title} — Top {top_n_de} DE genes (r={r_de:.3f})')\n",
" lims = [min(axes[1].get_xlim()[0], axes[1].get_ylim()[0]),\n",
" max(axes[1].get_xlim()[1], axes[1].get_ylim()[1])]\n",
" axes[1].plot(lims, lims, 'r--', alpha=0.5)\n",
"\n",
" plt.tight_layout()\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 7.1 Scatter plots for example perturbations"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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s8fy9PS0HnnkkSve98cff7QA69FHH80x/te//tWy2WzWzp07r3j/77//3gKsZ555Jnvs7Nmz1q+//prr3MmTJ1uAFRUVlWM8Ojra8vT0tN57770rPpfkVDYue0ipd+DAAZo3b05wcHCu26pXr55r7JNPPqFdu3b4+flRuXJlxo0bx7Fjx3Kdt2XLFgYMGEBQUBD+/v507949Vx+brGna+/fvZ9KkSQQHBxMUFMTkyZNJTk6+auxRUVGMGjWK0NBQfH19qV27NuPGjSMhISH7nMv7MWT1F9qwYQP3339/9tTkESNG5FqHnJmZyRNPPEFYWBj+/v707NmT3377rcA9HgryHgDs3buXo0ePXvXxHP1elTVz584lJCSEwYMHM3r0aObOnev051i4cCHNmjXD19eXFi1asGTJEiZNmkS9evVynJeZmcmrr75K8+bN8fX1pUaNGkyfPp24uLgc59WrV48bb7yRH374geuvvx5fX18aNGjAnDlzcj13fHw89957L3Xq1MHHx4eGDRvy/PPPk5mZmeO8Tz/9lHbt2lGpUiUCAwNp2bIl//73v6/62pYuXUqHDh3yXeqwbds2unXrhr+/P3//+98L+I7lZrfbWblyJTfffDOBgYHZ47feeisBAQEsWLDgivf//vvvqVatGr169coe8/DwIDIyktOnT/Pdd98B8OuvvxIfH8/YsWOx2WzZ5954440EBATw6aefZo81b96cqlWr5ngeHx8fBg0axPHjxzl37lyO27Ku4C1btszBVy8iJUk5jHKY0i4pKYm//vWv2X/7GzduzIsvvohlWTnOs9ls3H333cydO5fGjRvj6+tLu3btWL9+/VWfw5G/gYsWLaJGjRo5ZqZVq1aNyMhIli1bRmpqaqFep6enJ6+99hrNmjXjv//9b46f86L65Zdf6N69O35+ftSuXZunn36aDz74IM9+ol9//TVdu3alYsWKVKpUicGDB7N79+4c52QtCz1x4gTDhw8nICCAatWq8cADD+RaNlbQfHDr1q3079+fqlWr4ufnR/369ZkyZcpVX9vSpUupUKEC3bp1yzGe9e/Pb7/9xk033URISAhdunRx4F3LbdGiRVx33XVcd9112WNNmjShd+/eBcrdAMaNG5djfNy4cViWxfz58694/3nz5mGz2XLMhq9atSrNmzfPde6IESMA2LNnT47x6tWr06pVK+VuDlJRStxCeHg427Zt49dff73quc888wy33norjRo14uWXX+bee+9l9erVdOvWjfj4+Ozz1qxZQ7du3bDb7Tz++OM8++yzxMfH06tXL3788cdcjxsZGcm5c+eYNWsWkZGRfPjhhzz55JNXjOXChQv079+fzZs3M3PmTF5//XWmTZvGwYMHc8SSn5kzZ7Jz504ef/xx7rzzTr744otca7UfeeQRnnzySdq3b8+//vUvGjVqRP/+/UlKSrrq4zvyHjRt2pRbb731qo/pyPeqLJo7dy4jR46kQoUKjB8/nqioKH766SenPf6XX37J2LFj8fb2ZtasWYwcOZKpU6eybdu2XOdOnz6dBx98kM6dO/Pvf/+byZMnM3fuXPr3709aWlqOc/fv38/o0aPp27cvL730EiEhIUyaNClHEpScnEz37t355JNPuPXWW3nttdfo3LkzjzzyCPfff3/2eStXrmT8+PGEhITw/PPP89xzz9GjR4+rNi5PS0vjp59+om3btnneHhMTw8CBA2ndujWvvvoqPXv2BMxU7j/++OOqH5cml7t27SI9PZ327dvneI4KFSrQunVrtm/ffsVYU1NT8fPzyzXu7+8PkP39yEqM8zrXz8+P7du35yroXe706dP4+/tnP3aWoKAgIiIi1BBexM0ph1EOU5pZlsXQoUN55ZVXGDBgAC+//DKNGzfmwQcfzPG3P8t3333Hvffey80338w///lPYmJiGDBgQKHf07z+Bm7fvp22bdvmWjZ6/fXXk5yczO+//16o5wJTmBo/fjzJycn88MMPOW5LS0vLM79ISUm54mOeOHGCnj17snv3bh555BHuu+8+5s6dm+fFuo8//pjBgwcTEBDA888/z6OPPspvv/1Gly5dchWvMjIy6N+/P1WqVOHFF1+ke/fuvPTSSzmWoUHB8sEzZ87Qr18/Dh8+zMMPP8x//vMfJkyYwObNm6/6nm3cuJEWLVrkWu6YZcyYMSQnJ/Pss89y++23AyY/Kkjudmn/zczMTH755ZdcuRuY7/2BAwdyXcC7VH452eW5W17S0tJYsGABN9xwQ66LwHk5ffo0QK5CK0C7du3YuHHjVR9DLuHimVoilmVZ1rfffmt5enpanp6eVqdOnayHHnrIWrFihXXhwoUc5x0+fNjy9PTMMa3Ssixr165dlpeXV/Z4Zmam1ahRI6t///45ltQkJydb9evXt/r27Zs99vjjj1uANWXKlByPOWLECKtKlSpXjHv79u25phfnJTw83Jo4cWL2cdZSrj59+uSI77777rM8PT2t+Ph4y7Is6/Tp05aXl5c1fPjwHI/3xBNPWECOx7x86rsj74FlmeVm3bt3v+LrsKyCf68uVVamvm/dutUCrJUrV1qWZd7j2rVrW/fcc0+ucy9/vQVdvteyZUurdu3aOZa3rVu3zgKs8PDw7LGsKcZz587Ncf9vvvkm13h4eLgFWOvXr88eO3PmjOXj42P99a9/zR576qmnrIoVK1q///57jsd8+OGHLU9PT+vo0aOWZVnWPffcYwUGBlrp6elXfC2X279/vwVY//nPf3Ld1r17dwuw3nzzzVy3TZw40QKu+nHpz+/ChQtzveYsY8aMsUJDQ68Y68yZMy0PDw/r8OHDOcbHjRtnAdbdd99tWZb52bbZbNbUqVNznLd3797suP744498nycqKsry9fW1brnlljxv79evn9W0adMrxioirqUcxlAOc5E75jBZLl++t3TpUguwnn766RznjR492rLZbNb+/fuzx7L+rm3dujV77MiRI5avr681YsQIh2PJ729gxYoVc/1MW5ZlffnllxZgffPNN1d83Ku9/0uWLLEA69///nf2WFaulNfHrFmzrvh8M2fOtGw2m7V9+/bssZiYGKty5co5cr9z585ZwcHB1u23357j/qdPn7aCgoJyjGflPv/85z9znNumTRurXbt22ccFzQezXvNPP/10xdeSl9q1a1ujRo3KNZ71709eSyqz/p0oyEeWrN+1y1+zZVnW66+/bgHW3r17843zs88+swDr448/zjH+5ptvWoDVokWLfO+b1XbhjTfeyPecLKmpqVazZs2s+vXrW2lpabluf/bZZy1Ay7cdoJlS4hb69u3Lpk2bGDp0KDt37uSFF16gf//+1KpVK8fuU4sXLyYzM5PIyMgcFfbQ0FAaNWrE2rVrAdPgOCoqiptuuomYmJjs85KSkujduzfr16/PNXvhjjvuyHHctWtXYmJisNvt+cad1exvxYoVBZomf7lp06blWPLTtWtXMjIyOHLkCACrV68mPT2du+66K8f9CtI01dH3wLKsAu28UtDvVVk0d+5catSokT2Dx2azMXbsWD799NNcU6kL4+TJk+zatSt7iVmW7t2707Jlyxzn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WuDl5cXWrVtzTMW+cOECO3bsKND0bLj4n5Ysq1atAsjzPapbt272zIH4+Hi2bduWfaXuUg8++CAffPABr7766lWXBBw6dIhrr722QLGKiHtRDqMcxhHFmcNcSXh4OKtWreLcuXM5Zg7t3bs3+/ZLZc32udTvv/+Ov79/gWZrFeRvYOvWrfn+++/JzMzM0ex8y5Yt+Pv7X/H352oyMjKYN28e/v7+Rd4pLkt4eHiBczcwF/ec9XPtaD7YsWNHOnbsyDPPPMO8efOYMGECn376Kbfddlu+92nSpInDudv8+fPzbMmQl6xCtoeHBy1btmTr1q25ztmyZQsNGjTINbstLzabLceOeV999RWZmZn5vudz584lICCAoUOH5vuYy5Yt47bbbmPkyJF5/l/gUocOHaJq1aqFnr1YHqkoJW5h7dq19OjRI9c0x6+++gqAxo0bAzBy5MjsnVw++eSTHOdblkVsbCxVqlShXbt2RERE8OKLL3LTTTflqv6fPXvWKf9Q2O12/P39c1zZaNmyJR4eHoXervZSvXv3xsvLi9mzZ9O3b9/s8f/+979Xva+j78HevXvx9/fPc5nXpQr6vXIFX1/fYkleU1JSWLx4MWPGjGH06NG5bg8LC+N///sfn3/+OWPHji3084SFhdGiRQvmzJnDI488kv09++6779i1a1eOxDAyMpI33niDp556imeffTbH46Snp5OYmJjnDJ0riYyM5IknnmDFihX0798/x23x8fEEBATg5eVFTExMjunNHh4etGrVCsh7ynUWb29v2rdvn2eycSUPPfQQN99881XPu3QZR1BQEH369OGTTz7h0UcfzU5iPv74YxITExkzZkz2ucnJyRw9epSqVate8apWVFQUb775JjfeeONVE+JHHnmE9PR07rvvvhzj//rXv3jxxRf5+9//zj333HPFx0hISODAgQPceeedVzxPRFxLOUzelMM4prhymKsZNGgQb7/9Nv/973955JFHssdfeeUVbDYbAwcOzHH+pk2b+Pnnn7N30j127BjLli1jwIABV53ZU9C/gaNHj2bRokUsXrw4O+/6448/WLhwIUOGDCnQcrO8ZGRk8Je//IU9e/bw8MMP57u01VH9+/fn9ddfZ8eOHdkz+2JjY3PNXurfvz+BgYE8++yz9OzZM9dudoX53S5oPhgXF0dwcHCOn/2sWK/2+96pUyeee+45UlNTC/zeZ/WUctTo0aN5+OGH2bp1a3axeN++faxZsya7RUKWgvzep6Sk8Oijj1KzZs08i6Bnz55l1apVjB8/PtcuyFnWr1/PuHHj6NatG3Pnzs21K+Tltm3bludyTsmfilLiFmbOnElycjIjRoygSZMmXLhwgY0bNzJ//nzq1auXXWmPiIjg6aef5pFHHuHw4cMMHz6cSpUqcejQIZYsWcK0adN44IEH8PDw4N1332XgwIE0b96cyZMnU6tWLU6cOMHatWsJDAzkiy++KHLca9as4e6772bMmDFcc801pKen8/HHH+Pp6ZnnDAlH1ahRg3vuuYeXXnqJoUOHMmDAAHbu3MnXX39N1apVr7hW2dH3oGnTpjlmmuSnoN8rZzh79myeV2rr169/1Sm2zvT5559z7ty5fK+gdOzYkWrVqjF37twiFaUAnn32WYYNG0bnzp2ZPHkycXFx/Pe//6VFixbZPRDAzAqaPn06s2bNYseOHfTr1w9vb2+ioqJYuHAh//73v/MsoF3Jgw8+yOeff86NN97IpEmTaNeuHUlJSezatYtFixZx+PBhqlatym233UZsbCy9evWidu3aHDlyhP/85z+0bt06uwdFfoYNG8Y//vEP7HZ7gZPBwvSUArP1+g033ED37t2ZNm0ax48f56WXXqJfv345+l/9+OOP9OzZk8cff5wnnngix/OOGTOGunXrcujQIWbPnk3lypV58803czzPc889x6+//kqHDh3w8vJi6dKlfPvttzz99NM5ZlktWbKEhx56iEaNGtG0aVM++eSTHI/Tt29fatSokX28atUqLMti2LBhDr92ESk5ymHyphzGPXKYqxkyZAg9e/bkH//4B4cPH+baa6/l22+/ZdmyZdx7773Zs3uytGjRgv79+/OXv/wFHx8f3njjDQCefPLJKz6PI38DR48eTceOHZk8eTK//fYbVatW5Y033iAjI+Oqz5MlISEh+zmSk5PZv38/ixcv5sCBA4wbN46nnnoq131OnDiRKy4wS0WHDx+e73M99NBDfPLJJ/Tt25eZM2dSsWJF3n33XerWrUtsbGz2z3pgYCCzZ8/mlltuoW3btowbN45q1apx9OhRvvzySzp37lygou2lCpoPfvTRR7zxxhuMGDGCiIgIzp07xzvvvENgYGC+vZGyDBs2jKeeeorvvvuuwK0qCtNTCkzf0nfeeYfBgwfzwAMP4O3tzcsvv0yNGjX461//muPcvH7vIyMjCQsLo1mzZtjtdt5//30OHjzIl19+mecsq/nz55Oenp7v7+SRI0cYOnQoNpuN0aNHs3Dhwhy3t2rVKvvCLJgeXr/88gszZsxw+LWXayW72Z9I3r7++mtrypQpVpMmTayAgACrQoUKVsOGDa2ZM2fmuZ3mZ599ZnXp0sWqWLGiVbFiRatJkybWjBkzrH379uU4b/v27dbIkSOtKlWqWD4+PlZ4eLgVGRlprV69OvucrO1Mz549m+O+WVuZZm3jmpeDBw9aU6ZMsSIiIixfX1+rcuXKVs+ePa1Vq1blOC+/7ZQv35b18i2RLcuy0tPTrUcffdQKDQ21/Pz8rF69ell79uyxqlSpYt1xxx1XvG9B3wPLKvh2yo5+ryyr8Nspk8/Wsb17975qnM40ZMgQy9fX10pKSsr3nEmTJlne3t7WH3/8YVmWlev1FuTnKcunn35qNWnSxPLx8bFatGhhff7559aoUaOsJk2a5Dr37bffttq1a2f5+flZlSpVslq2bGk99NBD1smTJ7PPCQ8PtwYPHpzrvt27d8/1PT937pz1yCOPWA0bNrQqVKhgVa1a1brhhhusF198MXvL7EWLFln9+vWzqlevblWoUMGqW7euNX36dOvUqVNXfW3R0dGWl5dXru16i2v77O+//9664YYbLF9fX6tatWrWjBkzLLvdnuOcrN+dy38+x40bZ9WpU8eqUKGCFRYWZt1xxx15/owvX77cuv76661KlSpZ/v7+VseOHa0FCxbkOi/r35r8Pi7/3R07dqzVpUuXIr8HIlK8lMMYymEucqcc5nIzZsywLv8v4Llz56z77rvPCgsLs7y9va1GjRpZ//rXv6zMzMwc5wHWjBkzrE8++cRq1KiR5ePjY7Vp0ybX9y0vjv4NjI2NtaZOnWpVqVLF8vf3t7p3757rZy4/l7//AQEBVqNGjaybb77Z+vbbb/O8T3h4eL6xhYeHX/U5t2/fbnXt2tXy8fGxateubc2aNct67bXXLMA6ffp0jnPXrl1r9e/f3woKCrJ8fX2tiIgIa9KkSdbWrVuzz8nr58qyLr6Pl7taPvjzzz9b48ePt+rWrWv5+PhY1atXt2688cYcz3klrVq1sqZOnZpnLJf/+1NUx44ds0aPHm0FBgZaAQEB1o033mhFRUXlOi+v3/vnn3/eatKkieXr62uFhIRYQ4cOtbZv357vc3Xs2NGqXr26lZ6enuftWf825fdx+b8Ls2fPtvz9/XPlmnJlNstyQjdCESlR8fHxhISE8PTTT/OPf/zD1eFICWjdujXVqlUrdL8JdzJ16lR+//13vv/+e1eH4rZOnz5N/fr1+fTTTzVTSkTKFOUwpZfNZmPGjBkOz+Ypr+69917eeustEhMTC9S03J19/PHHzJgxg6NHjzrcHqI8adOmDT169OCVV15xdSilypUXRIqIy+W169irr74KQI8ePUo2GCl2aWlppKen5xhbt24dO3fuLDPf78cff5yffvqJDRs2uDoUt/Xqq6/SsmVLFaREpFRTDiPlxeU/6zExMXz88cd06dKl1BekACZMmEDdunWv2uS7PPvmm2+IiorK0ZtNCkYzpUTc3IcffsiHH37IoEGDCAgI4IcffuB///sf/fr1Y8WKFa4OT5zs8OHD9OnTh5tvvpmwsDD27t3Lm2++SVBQEL/++muOBuMiIiLuTDlM2aKZUvlr3bo1PXr0oGnTpkRHR/Pee+9x8uRJVq9eTbdu3VwdnohbU6NzETfXqlUrvLy8eOGFF7Db7dmNQ4u6VbO4p5CQENq1a8e7777L2bNnqVixIoMHD+a5555TQUpEREoV5TBSXgwaNIhFixbx9ttvY7PZaNu2Le+9954KUiIFoJlSIiIiIiIiIiJS4tRTSkRERERERERESpyKUiIiIiIiIiIiUuLUUwrIzMzk5MmTVKpUCZvN5upwRERExI1YlsW5c+cICwvDw0PX87IofxIREZH8FDR/UlEKOHnyJHXq1HF1GCIiIuLGjh07Ru3atV0dhttQ/iQiIiJXc7X8SUUpoFKlSoB5swIDA10cjYiIiLgTu91OnTp1svMFMZQ/iYiISH4Kmj+pKAXZU84DAwOVVImIiEietEQtJ+VPIiIicjVXy5/UGEFEREREREREREqcilIiIiIiIiIiIlLiVJQSEREREREREZESp6KUiIiIiIiIiIiUOBWlRERERERERESkxKkoJSIiIiIiIiIiJU5FKRERERERERERKXEqSomIiIiIiIiISIlTUUpEREREREREREqcilIiIiIiIiIiIlLiVJQSEREREREREZESp6KUiIiIiIiIiIiUOBWlRERERERERESkxKkoJSIiIiIi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87PF2tBzf/bZZ+rRo0eDq/i4ubkpJiZGMTExmj9/viIiIrR69WrNnTtXkjR06FANHTpU8+bNU3R0tD766KNLEqqAgACFh4crISGhzvuYkJCgESNGNO5EAQAAG3IocihyKKDxaHQOoF533HGHkpKS9P777ys1NVULFiyok2D5+/vr+eef17PPPqtly5YpLS1Nu3fv1ttvv61ly5Y1aSwvvPCCtm/frjlz5ig5OVmpqan6+9//bmvS2b17d3l5eentt9/Wjz/+qLVr1+qVV1655uedPn26goODNWHCBG3dulXHjh1TfHy8nn76aWVmZkqSnnzySXXr1k1/+tOf9Oabb6qmpkbPP/98neNUVlbqscce06FDh/TFF19owYIFmjNnjtzdG/4Inj17tvLz8zVt2jR9//33SktL01dffaVHHnlENTU12rlzp/793/9dSUlJysjI0KpVq3Tq1CndcMMNOnbsmObNm6fExEQdP35cX3/9tVJTU3XDDTfU+1y///3v9dprr2n58uVKSUnRH/7wByUnJ+t3v/vdNZ9DAABaG3IocihyKKDxmCkFoF6xsbF66aWX9M///M8qLy/Xo48+qhkzZmj//v22fV555RWFhIRo0aJF+vHHHxUYGKhhw4bpj3/8Y5PGMmjQIG3ZskUvvviiRo4cKWOMevXqpalTp0qyvpFcunSp/vjHP+ovf/mLhg0bptdff1333HPPNT2vr6+vvv32W73wwguaNGmSioqK1KVLF40ePVoBAQF6//339cUXX2jPnj3y8PCQh4eH/u///k+33HKL7rrrLo0bN06SNHr0aPXu3Vu33nqrKioqNG3aNC1cuPCyz33um7cXXnhBY8eOVUVFhSIiIhQXFyd3d3cFBATo22+/1VtvvaXCwkJFRETojTfe0Lhx45STk6MjR45o2bJlysvLU+fOnTV79mw98cQT9T7X008/rbNnz+q5555Tbm6u+vfvr7Vr16p3797XdP4AAGiNyKHIocihgMZzMxdf8AwAaDKzZs3SmTNntGbNGkeHAgAA4DTIoYDWgcv3AAAAAAAAYHcUpQAAAAAAAGB3XL4HAAAAAAAAu2OmFAAAAAAAAOyOohQAAAAAAADsjqIUAAAAAAAA7I6iFAAAAAAAAOyOohQAAAAAAADsjqIUAAAAAAAA7I6iFAAAAAAAAOyOohQAAAAAAADsjqIUAAAAAAAA7O7/AYFb1so34uP1AAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Seen single-gene perturbation\n",
"seen_singles_eval = [p for p in seen_eval_perts if DELIMITER not in p]\n",
"if seen_singles_eval:\n",
" pert = seen_singles_eval[0]\n",
" x_c, x_t, x_p = results[pert]\n",
" if x_t is not None:\n",
" plot_prediction_scatter(x_p, x_t, x_c, title=f'Seen single: {pert}')"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHqCAYAAADVi/1VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC/GklEQVR4nOzdd3hU1dbH8e8khJAQ0oAQQjf0JgqISO9NugKKCoiACnavynvFiqJe9VovFrwiV1CQJqA0BUSKKCCoNOm9GUhCSEg97x/bDAxJIAOTnEny+zzPPMnZc2ZmTRqLdfZe22FZloWIiIiIiIiIiEg+8rE7ABERERERERERKXpUlBIRERERERERkXynopSIiIiIiIiIiOQ7FaVERERERERERCTfqSglIiIiIiIiIiL5TkUpERERERERERHJdypKiYiIiIiIiIhIvlNRSkRERERERERE8p2KUiIiIiIiIiIiku9UlBLxsBUrVuBwOJg5c6bdoUgR9Nxzz+FwOFzGqlatytChQ+0JyMvcf//9dOrUye4wvNbWrVspVqwYf/zxh92hiIhNlMeIiLeZMWMG4eHhJCQk2B2KV0pNTaVSpUr85z//sTuUK6KilLj4/fffueWWW6hSpQolSpSgQoUKdOrUiXfffdfu0CSXMosSmbfAwEDq1q3L008/TXx8vPO8yZMn43A4WL9+fY7PtW/fPhwOB6+//rrLuGVZjBo1CofDwXPPPZftY6dOnYrD4SAoKMgj7wsgJSWFt99+m+uuu47g4GBCQ0OpV68eI0eOZPv27QAu7/1StxUrVmT7/rw5GU9PTycqKgqHw8HChQvtDqfA2bt3L5MmTeL//u//8vy1kpOTefLJJ4mKiiIgIIBmzZqxdOnSXD/+yy+/5Prrr6dEiRKULVuW4cOH89dff2U5Ly4ujieeeIIaNWoQEBBAlSpVGD58OAcOHLjk83fq1AmHw8GYMWNcxuvWrUuPHj145plnch2riDdRHlPwKY8pPHnMxd/LnG5t27bN81hmz57NwIEDueaaawgMDKRWrVo89thjxMbGZnv+vHnznP8OV65cmWeffZa0tLTLvk7m1z/z5u/vT7ly5Wjbti0vv/wyJ0+ezPKYzJ/lnG4//fTT1b79Ai09PZ1nn32WBx54wKO/jzn55JNPqFOnDiVKlKBGjRpu/fuxYcMGunbtSnBwMKVKlaJz585s2rQpy3lt27bN9nvdtWtXl/Mu/nnK6efCz8+PRx99lJdeeolz585d8Xu3SzG7AxDvsWbNGtq1a0flypUZMWIEkZGRHDx4kJ9++om3336bBx54wO4QxQ0TJ04kKCiIhIQElixZwksvvcSyZctYvXp1lpk07rAsi/vvv5+PPvqIcePGZZvMJSQk8MQTT1CyZMmreAdZ9e/fn4ULF3LbbbcxYsQIUlNT2b59OwsWLOCmm26idu3a/O9//3N5zJQpU1i6dGmW8Tp16pCUlOTR+PLasmXLOHr0KFWrVmXq1Kl069bN7pAKlLfffptq1arRrl27PH+toUOHMnPmTB5++GFq1KjB5MmT6d69O8uXL6dly5aXfOzEiRO5//776dChA2+++SaHDh3i7bffZv369axbt44SJUoAkJGRQadOndi6dSv3338/NWvWZNeuXfznP/9h8eLFbNu2jVKlSmV5/tmzZ7N27docX//ee++le/fu7N69m+jo6Kv7QojkI+UxhYvyGKMg5zH9+vWjevXqzuOEhATuu+8++vbtS79+/Zzj5cqVy/NYRo4cSVRUFHfccQeVK1fm999/57333uPbb79l48aNBAQEOM9duHAhffr0oW3btrz77rv8/vvvjB8/nhMnTjBx4sRcvd6DDz5I06ZNSU9P5+TJk6xZs4Znn32WN998kxkzZtC+ffssj3nhhReoVq1alvELv4ZF0fz589mxYwcjR47M89f68MMPuffee+nfvz+PPvooP/74Iw8++CCJiYk8+eSTl3zsxo0badmyJZUqVeLZZ58lIyOD//znP7Rp04aff/6ZWrVquZxfsWJFJkyY4DIWFRWV7XNn/jxd6OKfi2HDhvHUU08xbdo07r777ty+Ze9gifyte/fuVtmyZa3Tp09nue/48eP5H1ABtXz5cguwvvrqK1te/9lnn7UA6+TJky7j/fr1swBrzZo1lmVZ1qeffmoB1i+//JLjc+3du9cCrH/961/OsdGjR1uA9c9//jPHxz355JNWrVq1rMGDB1slS5a8bMyZr7N8+fIcz/n5558twHrppZey3JeWlmb99ddf2T4uM95Lve6F78/u79+l3HXXXdb1119vvf3221bJkiWthISELOdkfv8vVKVKFWvIkCH5FKV3SklJscqUKWM9/fTTlz03KSnJSk9Pv+LXWrduXZafq6Sk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j/FO7v5cDxgwgHPnzjFhwgS6d+/OO++8c8XLuo4dOwZAmTJlnGO//vorYP6NvVBUVBQVK1Z03n+lbrnlFgICAliyZEmW++Li4rLkFzExMZd9zrFjx/L888/TpEkT/vWvf1GjRg26dOnC2bNnXc5LTEykTZs2fP7559x111288847tGjRgrFjx/Loo49med5p06bxr3/9i1GjRjF+/Hj27dtHv379XHKe3OaEzz33HM8//zzt2rXjvffe45///CeVK1dm48aNl3xvGzZsICUlheuvvz7b+5ctW8YjjzzCwIEDefvtt6latSoAp0+fzlX+duFFg5y+940bN8bHx+ey3/vk5ORs86vAwEBSUlKy/Nv0559/Oi/ERkZGMm7cOJev7YWGDRtGcHAwJUqUoF27djn20mvcuDGWZbFmzZpLxup17J2oJd5kyZIllq+vr+Xr62s1b97ceuKJJ6zFixdbKSkpLuft27fP8vX1zTL9+Pfff7eKFSvmHM/IyLBq1KhhdenSxWUZSmJiolWtWjWrU6dOzrHMqdp33323y3P27dvXKl269CXjTktLs6pVq2ZVqVIly5T9C1+3UaNGVkREhBUTE+Mc27x5s+Xj42PdddddWWIZOXKky2tUrFjRcjgc1iuvvOIcP336tBUQEOCyNCpzmmWFChWs+Ph45/iMGTMswHr77bctyzJLZCIiIqz69eu7TDVdsGCBBVjPPPOMcyxzenZulmBlxr9jxw7r5MmT1t69e60PP/zQ8vf3t8qVK2edPXvWsiz3pr1XqVLFAqx//OMfl3ztBQsWWMWKFbO2bNliWZZlDRkyxGPT3jMyMqw2bdpYgFWuXDnrtttus95//31r//79l3zuwjLt/eabb7ZatGjhPP7oo4+sYsWKWSdOnHA570qX782aNcsCrLfeess5lp6ebrVv394CrE8//dQ53qFDB6tBgwbWuXPnnGMZGRnWTTfdZNWoUcM5lvkz1rFjR5ffxUceecTy9fW1YmNjLcuyrDNnzlihoaHWiBEjXGI6duyYFRIS4hw/ffp0lu9Xbt1xxx3Z/i3J/H5fc801VmJiost9mT8fubld+LNbr149q3379llea8uWLRZgffDBBznGefLkScvhcFjDhw93Gd++fbvztS6cFr5gwQKrfPnyLrF06dLFOnPmTJbnvuWWW6ybbrrJeUwOy/csy7Km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++03ypYtm+1znThxwuX4cvmbOznhCy+8QO/evalZsyb169ena9eu3HnnnTRs2DBX7zOnHC67/A2y7912OQEBAaSkpGR7X26+9/feey8HDx7kX//6l/PvQ5MmTXjiiSd46aWXnPlbTh577DE+/vhjvvvuO2688cYcz6tevTq9e/dm9uzZpKen4+vr67yvoOZvKkpJtooXL07Tpk1p2rQpNWvWZNiwYXz11VfO7S0dDgcLFy50+SXIlPkLl3n18F//+heNGjXK9nUu/uXM7vng0v+ZzCvZxeJN8V1O69atsySeVyooKIiFCxfSunVrBg8eTHBwMJ07d3beHxcXx/jx47n//vuJj493XhFOSEjAsiz27dtHYGCgs9HsE088wR133OF8/PHjx7njjjt4/fXXXWacXGpmS/ny5Rk0aBD9+/enXr16zJgxg8mTJ3u0Kak7HnrooWwT1Nz49NNPszSivFBm76ic/oHds2cP11xzzRW9trsyf68ff/xxunTpku05FydGl/u9yXzO//3vf9kWly78nj788MP07NmTuXPnsnjxYsaNG8eECRNYtmxZjv2iwPQgudTsquwSjcxtnHMjPDzceXWtfPnyWWaLAc4rZTlt95spJCSEr7/+mgMHDrBv3z6qVKlClSpVuOmmmyhbtqxzJsXkyZM5d+4cN998s8vje/XqBcDq1avp1q0bU6ZMYceOHXz44YdZkvYzZ86wb98+IiIiXAqSmV8rT/0NEclvymOUx1xIeczl5WUek5fc/c/35s2b6dWrF/Xr12fmzJlZvt6Zm4UcPXqUSpUqudx39OhRZ3/IK5Wamsqff/55ySJ0XsnIyKBTp0488cQT2d5/8UzC3OZvuckJW7duze7du/n6669ZsmQJkyZN4t///jcffPCBy6zOi2X2kDt9+jQVK1bMcn9OhaKTJ0+Snp6e4/NmCgoKcv4dL1++POnp6Zw4ccJlc4yUlBRiYmIum7+B6cX3+OOPs2XLFkJCQmjQoAH/93//B1x6pibg/HnLTZPySpUqkZKSwtmzZ10ueBTU/E1FKbmszIp95n+ooqOjsSyLatWqXfKXK/OKVnBw8BXNNsitzNf5448/cnydzOaSO3bsyHLf9u3bKVOmjMtVGE+4eHqqZVns2rXLeUXgwpguniGyY8cO5/3eonTp0ixZsoQWLVrQr18/li5dSvPmzQHz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9pRq1qwZt956K2PHjuXEiRNUr16dzz77jH379vHJJ5+4nHvXXXfxww8/uCydeeWVV/jjjz9o1qwZxYoVY+7cuSxZsoTx48e79IQaOnQor7/+OqNGjeLXX3+lXr16bNy4kUmTJlGvXj369u0LmKuMORW9qlWrluX3MzU1lR9++CFL01QRb6c8xrOUxyiPyQ/u/lzv3buXXr160bVrV9auXcvnn3/O7bff7nJxKDtdu3Zlz549PPHEE6xatcql51m5cuVcCjr/+te/6NWrF507d2bQoEH88ccfvPfee9xzzz25noHy448/cu7cOdLT04mJiWH16tXMmzePkJAQ5syZk+2MuIULF2b7PbvppptybNNQrlw5HnroId544w3n12Xz5s0sXLiQMmXKuORv//jHP5g3bx4333wzQ4cOpXHjxpw9e5bff/+dmTNnsm/fPreXfeU2J6xbty5t27alcePGhIeHs379embOnMmYMWMu+fwlSpSgc+fOfPfdd7zwwgu5jutKe0q9+OKLjB49mltvvZUuXbrw448/8vnnn/PSSy+5NON/7733eP75511myq9cuZIXXniBzp07U7p0aX766Sc+/fRTunbt6vL3aOPGjdx2223cdtttVK9enaSkJObMmcPq1asZOXKkSz4/cOBAAgICuOmmm4iIiGDr1q189NFHBAYG8sorr2R5D0uXLqVFixYuBcACIc/395MCY+HChdbdd99t1a5d2woKCrKKFy9uVa9e3XrggQes48ePZzl/1qxZVsuWLa2SJUtaJUuWtGrXrm2NHj3a2rFjh8t5v/76q9WvXz+rdOnSlr+/v1WlShVrwIAB1vfff+88J3Ob15MnT7o8NnOL1L179142/lWrVlmdOnWySpUqZZUsWdJq2LCh9e6777qc891331ktWrSwAgICrODgYKtnz57W1q1bXc7JKZactgVu06aNVa9ePedx5lawX3zxhTV27FgrIiLCCggIsHr06JHttr/Tp0+3rrvuOsvf398KDw+3Bg8ebB06dMjlnCvZSvni+C92qe1nAevgwYPZbjWc6ccff7QCAgKsatWqWYcPH872NTy5lfLx48etV155xWrTpo1Vvnx5q1ixYlZYWJjVvn17ly1WL3alWynndPvxxx8v+348ZcOGDRZgjRs3Lsdz9u3bZwHWI488YlnW+e//hapUqZKrn52TJ09at99+u1WqVCkrJCTEGjp0qLV69WoLsL788kuXc3fv3m3dddddVmRkpOXn52dVqFDBuvnmm12+Fzlt1535Nb74+718+XKrS5cuVkhIiFWiRAkrOjraGjp0qLV+/XrLsizrr7/+skaPHm3Vrl3bKlmypBUSEmI1a9bMmjFjxmXfm2VZ1oMPPmhVr14921g8vXV2UlKS9fjjj1uRkZGWv7+/1bRpU2vRokVZzsvcHvxCCxYssG644QarVKlSVmBgoHXjjTfm+B4PHTpk3X333Va1atWs4sWLW+XLl7dGjBhx2d9/yzJbKY8ePTrL+MKFCy3A2rlzZy7frYh3UB5z6ViUx7hSHpP/Tp48aQHWs88+6zLuzs/11q1brVtuucUqVaqUFRYWZo0ZM8ZKSkq67Gtf6mvSpk2bLOfPmTPHatSokeXv729VrFjRevrpp62UlJTLvs7FX38/Pz+rbNmyVuvWra2XXnrJOnHiRJbHXO5n+dNPP73ka6alpVnjxo2zIiMjrYCAAKt9+/bWtm3brNKlS1v33nuvy7lnzpyxxo4da1WvXt0qXry4VaZMGeumm26yXn/9def7u9TvTXbfv9zkhOPHj7duuOEGKzQ01AoICLBq165tvfTSS7n6ms6ePdtyOBzWgQMHssSSXR5ztT766COrVq1aVvHixa3o6Gjr3//+t5WRkeFyTubP44W/87t27bI6d+5slSlTxvL397dq165tTZgwwUpOTnZ57J49e6xbb73Vqlq1qlWiRAkrMDDQaty4sfXBBx9keZ23337buuGGG6zw8HCrWLFiVvny5a077rgj2xwtNjbWKl68uDVp0iTPfTHyicOyvLCzoYiIeIW5c+fSt29fVq1adUVXnbzJnj17qF27NgsXLqRDhw52h+O1+vTpg8PhyHYpi4iIiB2ee+45nn/+eU6ePFngmjjbITY2lrCwMMaPH88///lPu8O5Kunp6dStW5cBAwbw4osv2h2O13rrrbd47bXX2L17t0d2icxPPpc/RUREioKL196np6fz7rvvEhwcfFVLA73FNddcw/Dhw7Od7izGtm3bWLBggZI+ERGRAiK73klvvfUWgNuN972Rr68vL7zwAu+//z4JCQl2h+OVUlNTefPNN3n66acLXEEK1FNKRET+9sADD5CUlETz5s1JTk5m9uzZrFmzhpdffrlA/gOXnYkTJ9odglerU6eOc9c+ERER8X7Tp09n8uTJdO/enaCgIFatWsUXX3xB586dC/ws90wDBw5k4MCBdofhtfz8/Dhw4IDdYVwxFaVERAQwu4688cYbLFiwgHPnzlG9enXefffdyzahFBERERF7NGzYkGLFivHaa68RHx/vbH6euZubiLdTTykREREREREREcl36iklIiIiIiIiIiL5TkUpERERERERERHJd+opBWRkZHDkyBFKlSqFw+GwOxwRERHxIpZlcebMGaKiovDx0fW8TMqfREREJCe5zZ9UlAKOHDlCpUqV7A5DREREvNjBgwepWLGi3WF4DeVPIiIicjmXy59UlAJKlSoFmC9WcHCwzdGIiIiIN4mPj6dSpUrOfEEM5U8iIiKSk9zmTypKgXPKeXBwsJIqERERyZaWqLlS/iQiIiKXc7n8SY0RREREREREREQk36koJSIiIiIiIiIi+U5FKRERERERERERyXcqSomIiIiIiIiISL5TUUpERERERERERPKdilIiIiIiIiIiIpLvVJQSEREREREREZF8p6KUiIiIiIiIiIjkOxWlREREREREREQk36koJSIiIiIiIiIi+U5FKRERERERERERyXcqSomIiIiIiIiISL5TUUpERERERERERPKdilIiIiIiIiIiIpLvVJQSERGRgsuyICPD7ihEREREChYvyZ9UlBIREZGCKTUV5s2D+fPtjkRERESk4Ni3D957D06etDsSFaVERESkADp9Gj75BH79FTZtguPH7Y4o30yYMIGmTZtSqlQpIiIi6NOnDzt27HA5p23btjgcDpfbvffe63LOgQMH6NGjB4GBgURERPCPf/yDtLS0/HwrIiIikp8sC9asgSlT4NQpWL7c7ojsLUopqRIREZEr8s03cOwYlCwJd94J5crZHVG++eGHHxg9ejQ//fQTS5cuJTU1lc6dO3P27FmX80aMGMHRo0edt9dee815X3p6Oj169CAlJYU1a9bw2WefMXnyZJ555pn8fjsiIiKSXw4fhiVLzNK9hg2hTx+7I6KYnS+emVQ1bdqUtLQ0/u///o/OnTuzdetWSpYs6TxvxIgRvPDCC87jwMBA5+eZSVVkZCRr1qzh6NGj3HXXXfj5+fHyyy/n6/sRERGRfNKzpylM3XwzBAfbHU2+WrRokcvx5MmTiYiIYMOGDbRu3do5HhgYSGRkZLbPsWTJErZu3cp3331HuXLlaNSoES+++CJPPvkkzz33HMWLF8/T9yAiIiI2qFgR2rSBoCBo0gQcDrsjsnem1KJFixg6dCj16tXj2muvZfLkyRw4cIANGza4nJeZVGXegi9IPjOTqs8//5xGjRrRrVs3XnzxRd5//31SUlLy+y2JiIhIXjh71izVyxQSArffXuQKUtmJi4sDIDw83GV86tSplClThvr16zN27FgSExOd961du5YGDRpQ7oIZZl26dCE+Pp4tW7bkT+AiIiKS937/Hf7OFQBo1w6aNvWKghR4WU8pJVUiIiKSxaFD8OGH8PXXsH273dF4lYyMDB5++GFatGhB/fr1neO33347n3/+OcuXL2fs2LH873//44477nDef+zYMZfcCXAeHzt2LNvXSk5OJj4+3uUmIiIiXiotzcwqnzULvvrKHHshW5fvXehSSVWVKlWIiorit99+48knn2THjh3Mnj0buPKkKjk52XmspEpERMQLWRb88gssXgzp6VC6NFx04aqoGz16NH/88QerVq1yGR85cqTz8wYNGlC+fHk6dOjA7t27iY6OvqLXmjBhAs8///xVxSsiIiL5IC7OFKIOHTLH0dHg41Vzkpy8piilpEpEREScUlJgwQL47TdzXLcu9O4N/v72xuVFxowZw4IFC1i5ciUVK1a85LnNmjUDYNeuXURHRxMZGcnPP//scs7xv3cwzKkP1dixY3n00Uedx/Hx8VSqVOlq3oKIiIh42p49MHMmJCZCiRLQrx/UrGl3VDnyilJZZlK1fPlyt5IqMInT8Yu2gc5NUhUXF+e8HTx48GrfgoiIiHhKTAxMmmQKUj4+0KUL3HqrClJ/syyLMWPGMGfOHJYtW0a1atUu+5hNmzYBUL58eQCaN2/O77//zokTJ5znLF26lODgYOrWrZvtc/j7+xMcHOxyExERES9hWbByJfzvf6YgVb48jBrl1QUpsHmmlGVZPPDAA8yZM4cVK1ZccVL10ksvceLECSIiIoDcJVX+SmxFRES805EjcOKE2Rnm1luhShW7I/Iqo0ePZtq0aXz99deUKlXK2a4gJCSEgIAAdu/ezbRp0+jevTulS5fmt99+45FHHqF169Y0bNgQgM6dO1O3bl3uvPNOXnvtNY4dO8bTTz/N6NGjlSOJiIgURGlpsHWrKU5dfz107w7FvGZxXI4c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S3fddZfqJnJmZmZq0qRJmjFjhnbv3q3ly5frs88+0/z5853PWVVVpaeeekq7du3SmjVrdPjwYc2dO7feaz/xxBP63e9+p23btsnX11f33HPPeeOsqqpScnKyQkJC9OmnnyolJUXBwcGaNGmSKisr1a9fP/32t7/VT3/6U2VlZSk7O1v333+/nnnmGQ0YMMD5POvXr9f+/fu1ceNGvf7661q1apWWLFni8lovv/yy/P39lZKSohdeeEEFBQW6/vrrNWzYMG3btk1r165Vbm6uZs6cKUk6fvy4Zs+erXvuucf53NOnT5dlWaqurtYtt9yi8ePHa/fu3UpNTdV999133iUIf/zjH/W73/1Ov/3tb7V7924lJyfr5ptvVkZGRr2xe/TRR5WWlqY+ffpo9uzZqq6uvuB7DQBAW0cOVR85FDkU0GgWgHblxRdftMLCwpzHGzZssCRZa9ascbluzpw51tSpU13OPfjgg9b48eMty7Ks8vJyKygoyPr8889drrn33nut2bNnn/f14+PjrTvvvNN5fPz4cUuS9atf/cp5LjU11ZJkHT9+3Pmc9913n8vzfPrpp5a3t7dVVlbW4Ot8+eWXliSruLjY5ef8+OOPnde89957lqTzPsc//vEPq2/fvlZtba3zXEVFhRUYGGh9+OGHznNTpkyxxo4da02YMMGaOHGiy/Vz5syxIiMjrdLSUue5559/3goODrZqamosy7Ks8ePHW8OGDXN57aeeesqaOHGiy7mjR49akqz09HRr+/btliTr8OHD9eLOy8uzJFkbN25s8OdatGiRNWTIEOdxXFyc9Z//+Z8u14waNcr66U9/almWZR06dMiSZP3f//2f8/69e/dakqz9+/c3+BoAALQ15FDkUORQQPNjwTMASdLIkSMv6fqDBw/q9OnTuuGGG1zOV1ZWatiwYRd87NmfIsbExEiSBg0aVO/ciRMnFBsbq127dmn37t169dVXnddYlqXa2lodOnRI/fv31/bt27V48WLt2rVL+fn5qq2tlSRlZWW5fOJ29mt37tzZ+Trdu3evF+euXbt08OBBhYSEuJwvLy9XZmam8/jvf/+7+vTpI29vb+3du7fep2lDhgxRUFCQ8zgxMVElJSU6evSo4uPjJUkjRoyo99obNmxw9qk4W2ZmpiZOnKgJEyZo0KBBSk5O1sSJE3XrrbcqIiJCkZGRmjt3rpKTk3XDDTcoKSlJM2fOdP68ZysqKtKxY8c0ZswYl/NjxozRrl27XM6db+z69etX73kBAGgvyKHIoc5GDgVcGopSACRJHTp0cDn29vZ2Tv2uU1VV5bxdUlIiSXrvvffUpUsXl+scDscFX8vPz895uy75aOhcXVJUUlKiH//4x3rggQfqPVf37t1VWlqq5ORkJScn69VXX1V0dLSysrKUnJzs0nfgYq9zrpKSEo0YMcIlkasTHR3tvL1r1y6VlpbK29tbx48fbzBxuZhzx7+kpEQ33XSTnnnmmXrXdu7cWT4+Plq3bp0+//xzffTRR3ruuef0xBNPaOvWrerZs6defPFFPfDAA1q7dq2WL1+uX/7yl1q3bp2uvvrqS46tzqWMHQAA7QU5VH3kUK7IoYDzoygFoEHR0dHas2ePy7m0tDTnP6oDBgyQw+FQVlaWxo8f36KxDB8+XPv27dOVV17Z4P1fffWV8vLy9PTTT6tbt26SVK/J5+W+7vLly9WpUyeFhoY2eM2pU6c0d+5cPfHEEzp+/LjuuOMO7dixQ4GBgc5rdu3apbKyMue5LVu2KDg42Bnr+V77rbfeUo8ePc67i4+Xl5fGjBmjMWPG6Mknn1R8fLxWr16tBQsWSJKGDRumYcOGaeHChUpMTNRrr71WL6EKDQ1VXFycUlJSXN7HlJQUjR49unEDBQAAnMihyKHIoYDGo9E5gAZdf/312rZtm1555RVlZGRo0aJFLglWSEiIHn30UT388MN6+eWXlZmZqR07dui5557Tyy+/3KyxPPbYY/r88881f/58paWlKSMjQ2+//bazSWf37t3l7++v5557Tl9//bXeeecdPfXUU01+3TvuuENRUVGaOnWqPv30Ux06dEgbN27UAw88oOzsbEnS/fffr27duumXv/ylfv/736umpkaPPvqoy/NUVlbq3nvv1b59+/T+++9r0aJFmj9/vry9z/8neN68eTp16pRmz56tL7/8UpmZmfrwww919913q6amRlu3btV//dd/adu2bcrKytKqVav07bffqn///jp06JAWLlyo1NRUHTlyRB999JEyMjLUv3//Bl/r5z//uZ555hktX75c6enpevzxx5WWlqYHH3ywyWMIAEB7Qw5FDkUOBTQeM6UANCg5OVm/+tWv9P/+3/9TeXm57rnnHt1111366quvnNc89dRTio6O1tKlS/X1118rPDxcw4cP1y9+8YtmjWXw4MHatGmTnnjiCY0dO1aWZalXr16aNWuWJPOJ5EsvvaRf/OIX+tOf/qThw4frt7/9rW6++eYmvW5QUJA2b96sxx57TNOnT1dxcbG6dOmiCRMmKDQ0VK+88oref/997dy5U76+vvL19dU///lPXXPNNbrxxhs1efJkSdKECRPUu3dvjRs3ThUVFZo9e7YWL158wdeu++Ttscce08SJE1VRUaH4+HhNmjRJ3t7eCg0N1ebNm/Xss8+qqKhI8fHx+t3vfqfJkycrNzdXBw4c0Msvv6y8vDx17txZ8+bN049//OMGX+uBBx5QYWGhHnnkEZ04cUIDBgzQO++8o969ezdp/AAAaI/IocihyKGAxvOyzl3wDABoNnPnzlVBQYHWrFljdygAAACtBjkU0D6wfA8AAAAAAABuR1EKAAAAAAAAbsfyPQAAAAAAALgdM6UAAAAAAADgdhSlAAAAAAAA4HYUpQAAAAAAAOB2FKUAAAAAAADgdhSlAAAAAAAA4HYUpQAAAAAAAOB2FKUAAAAAAADgdhSlAAAAAAAA4HYUpQAAAAAAAOB2/x8ltTxUFEJHJQAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Seen combinatorial perturbation\n",
"seen_combos_eval = [p for p in seen_eval_perts if DELIMITER in p]\n",
"if seen_combos_eval:\n",
" pert = seen_combos_eval[0]\n",
" x_c, x_t, x_p = results[pert]\n",
" if x_t is not None:\n",
" plot_prediction_scatter(x_p, x_t, x_c, title=f'Seen combo: {pert}')"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHqCAYAAADVi/1VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC6GUlEQVR4nOzdd3hUZdrH8e+k9wYkITQhdAGRIr1I71KkKBaKggpY0HV1116W17J2F1exCyuIgIIKIl2KCgLSe5UeUkghpJz3j8cMhISQgUlmkvw+1zVX5pw5M3PPMJPc3Od57sdmWZaFiIiIiIiIiIhIMfJwdQAiIiIiIiIiIlL2qCglIiIiIiIiIiLFTkUpEREREREREREpdipKiYiIiIiIiIhIsVNRSkREREREREREip2KUiIiIiIiIiIiUuxUlBIRERERERERkWKnopSIiIiIiIiIiBQ7FaVERERERERERKTYqSglUgyuueYaRowYUaTPsXTpUmw2G0uXLi3S5xHXeOaZZ7DZbLn2FcfnqqS477776Nq1q6vDcFtxcXEEBgby/fffuzoUESmBlMeISFGYMWMGERERJCcnuzoUt5SRkUGVKlX4z3/+4+pQipSKUuKwnP8cnzp1Kt/bGzRoQMeOHYs3KCk2n3zyCTabLd/LY489luvYjIwM3nrrLZo3b05wcDBBQUE0b96ct956i4yMDPtxW7duxcfHh5EjR+Z5voSEBCpWrEiLFi3Izs6271+5ciUDBgwgKioKX19frrnmGsaOHcvBgwcv+xruvvtubDYbffr0uYp3wnmysrKIiYnBZrPxww8/uDqcEmffvn1MmTKFf/zjH0X+XOnp6fz9738nJiYGf39/WrRowcKFCwt9/y+//JImTZrg5+dHhQoVGD16dL6/S48fP87IkSOJjIzE39+fJk2a8NVXX+U5bvbs2XTv3p2YmBh8fX2pXLkyN998M5s3b851XLly5bjrrrt48sknHX/RIqWM8piyTXnM1cv5Dl3uUhzfo1mzZjF06FBq1KhBQEAAderU4eGHHyYhISHf47/99lv73+GqVavy9NNPk5mZednnySma5lx8fX2JioqiY8eO/Otf/+LkyZN57lPQZ81ms7FmzZqrffklWlZWFk8//TQTJkwgKCioyJ/vww8/pF69evj5+VGrVi3efvvtQt933bp19OjRg5CQEIKDg+nWrRsbNmzIc1xGRgbPPvssNWrUwNfXlxo1avDCCy/k+Yxd/Hm61OfC29ubiRMn8uKLL3L27Nkrfu3uzsvVAYiUBTt27MDDo3TVgJ977jmqV6+ea1+DBg3s11NSUujduzfLli2jT58+jBgxAg8PD+bPn88DDzzArFmz+O677wgMDKR+/fr87W9/41//+hcjRoygQ4cO9sd57LHHOHnyJD/88IP9PXz77bd54IEHqFGjBhMmTKBixYps27aNKVOmMH36dL7//ntat26db9xr167lk08+wc/PrwjelSuzePFijh49yjXXXMPUqVPp2bOnq0MqUd58802qV6/OjTfeWOTPNWLECGbOnMmDDz5IrVq1+OSTT+jVqxdLliyhbdu2Bd538uTJ3HfffXTu3JnXXnuNw4cP8+abb7J27Vp++eUX+2cyKSmJtm3bcvz4cR544AGio6OZMWMGQ4YMYerUqdx66632x9y0aRPh4eE88MADlC9fnmPHjvHRRx9xww03sHr1aq677jr7sffccw9vvfUWixcvplOnTkXzBolIqaQ8RnnMhQYOHEjNmjXt28nJydx7770MGDCAgQMH2vdHRUUVeSxjxowhJiaG2267japVq7Jp0ybeeecdvv/+e37//Xf8/f3tx/7www/079+fjh078vbbb7Np0yZeeOEFTpw4weTJkwv1fPfffz/NmzcnKyuLkydPsmrVKp5++mlee+01ZsyYke/f1/w+a0Cu97Asmjt3Ljt27GDMmDFF/lz//e9/ueeeexg0aBATJ05kxYoV3H///aSmpvL3v/+9wPv+/vvvtG3blipVqvD000+TnZ3Nf/7zHzp06MCvv/5KnTp17MfedtttfPXVV4waNYpmzZqxZs0annzySQ4ePMj777+f57FzPk8XuvhzMXLkSB577DGmTZvGqFGjruJdcGOWiIOefvppC7BOnjyZ7+3XXnut1aFDh+INSqwlS5ZYgLVkyZIifZ6PP/7YAqzffvutwOPGjBljAdbbb7+d57Z33nnHAqx77rnHvi8tLc2KjY216tSpY6Wnp1uWZVmrVq2ybDabNXHiRPtxP//8s+Xh4WG1a9fOSklJyfW4u3fvtqKioqyKFStap0+fzvO82dnZVqtWraxRo0ZZ1apVs3r37u3Qay8qd9xxh9WkSRPrzTfftAIDA63k5OQ8x+R87y5UrVo168477yymKN3TuXPnrPLly1tPPPHEZY9NS0uzsrKyrvi5fvnlFwuwXnnllVyPGRsba7Vq1arA+6anp1thYWFW+/btrezsbPv+uXPnWoD11ltv2fe9/PLLFmAtWrTIvi8rK8tq3ry5FR0dbf9+XMqxY8csLy8va+zYsXlua9CggXX77bdf9rWKlGbKY9yT8piSm8ecPHnSAqynn3662J87v8/Lp59+agHWBx98kGt//fr1reuuu87KyMiw7/vnP/9p2Ww2a9u2bZd9HsD66quv8ty2YcMGKzIy0goLC7OOHDli31/Yz1pZ1a9fP6tt27aXPS4rK8tKS0u74udJTU21ypUrl+f7Mnz4cCswMDDf79qFevXqZYWHh1unTp2y7zty5IgVFBRkDRw40L7v119/tQDrySefzHX/hx9+2LLZbNbGjRvt+wr6POWnT58+Vrt27Qp1bElUuk55iFvKGZ44Y8YMXnzxRSpXroyfnx+dO3dm9+7duY7dtWsXgwYNIjo6Gj8/PypXrsywYcNITEzMddwXX3xB06ZN8ff3JyIigmHDhnHo0KE8z/3LL7/Qo0cPQkNDCQgIoEOHDqxcuTLXMTlDkHfv3s2IESMICwsjNDSUkSNHkpqaetnXV5iYL+7FkDOcd+XKlUycOJEKFSoQGBjIgAED8gz/zc7O5plnniEmJoaAgABuvPFGtm7dWuj+DoV5DwC2b99eqCHjhXH48GE+/PBDOnXqxPjx4/PcPm7cOG688UamTJnC4cOHAfDz82Py5Mns2LGDSZMmkZGRwZgxY6hSpQrPPfec/b7PP/88NpuNTz/9lICAgFyPGxsby8svv8zRo0f573//m+d5P//8czZv3syLL77olNfpDGlpacyePZthw4YxZMgQ0tLS+Oabb5z6HHFxcdx+++2EhIQQFhbGnXfeycaNG7HZbHzyySe5jt2+fTs333wzERER+Pn50axZM7799ttcxzjy+QVzZrJdu3YEBgYSHBxM79692bJlS65jjh07xsiRI6lcuTK+vr5UrFiRm266if379xf42n7++WdOnTpFly5dcu3P+b3z5Zdf8sQTT1CpUiUCAgJISkoq/Bt3kZkzZ+Lp6ZnrjJ6fnx+jR49m9erV+f4OyrF582YSEhIYOnRort5gffr0ISgoiC+//NK+b8WKFVSoUCHX2VYPDw+GDBnCsWPHWLZsWYFxRkZGEhAQkO/Uha5duzJ37lwsyyrMSxYRlMeA8piLKY8pnMWLF9v//oeFhXHTTTexbdu2XMfkfH63b9/OkCFDCAkJoVy5cjzwwAOFmq6U3xTBAQMGAOR6rq1bt7J161bGjBmDl9f5yUL33XcflmUxc+bMK3yVcN111/HGG2+QkJDAO++8c8WPczFHvjsJCQk8+OCDVKlSBV9fX2rWrMlLL72Ua8ro/v37sdlsvPrqq7z//vvExsbi6+tL8+bN+e233/I8f2FywpzparVq1cLPz49y5crRtm3by7Y2OHv2LPPnz8+TvwHYbDbGjx/P1KlTufbaa/H19WX+/PkOvHO5LVmyhLi4OO67775c+8eNG0dKSgrfffddgfdfsWIFXbp0oVy5cvZ9FStWpEOHDsybN8/eD2vFihUADBs2LNf9hw0bhmVZTJ8+Pd/HP3PmzGWnkHbt2pWff/6Z06dPF3hcSaWilBSb//u//2P27Nk88sgjPP7446xZs4bhw4fbbz937hzdu3dnzZo1TJgwgXfffZcxY8awd+/eXP+5evHFF7njjjuoVasWr732Gg8++CCLFi2iffv2uY5bvHgx7du3Jykpiaeffpp//etfJCQk0KlTJ3799dc88Q0ZMoQzZ84wadIkhgwZwieffMKzzz5b4GsqbMyXMmHCBDZu3MjTTz/Nvffey9y5c/MkP48//jjPPvsszZo145VXXqFWrVp0796dlJSUyz6+I+9BvXr1uOOOOy77mDkSExM5depUrkuOH374gaysrAIf74477iAzMzPXH5muXbtyyy23MGnSJMaPH8/mzZt5++23CQwMBCA1NZVFixbRrl27fIdBAwwdOhRfX1/mzZuXa/+ZM2f4+9//zj/+8Q+io6ML/TqL2rfffktycjLDhg0jOjqajh07MnXqVKc9fnZ2Nn379uV///sfd955Jy+++CJHjx7lzjvvzHPsli1baNmyJdu2beOxxx7j3//+N4GBgfTv35/Zs2fnOb4wn9/PP/+c3r17ExQUxEsvvcSTTz7J1q1badu2ba6C06BBg5g9ezYjR47kP//5D/fffz9nzpy57H8wVq1ahc1m4/rrr8/39ueff57vvvuORx55hH/961/4+PiQnZ2d57N7qcuFPUPWr19P7dq1CQkJyfUcN9xwA0C+vQVypKenA+SaRpDD39+f9evX2xPH9PT0fI/L+c/LunXr8tyWkJDAyZMn2bRpE3fddRdJSUl07tw5z3FNmzYlISEhT1FQRC5PeUxeymOUx1zKTz/9RPfu3Tlx4gTPPPMMEydOZNWqVbRp0ybfE05Dhgzh7NmzTJo0iV69evHWW29d8bSuY8eOAVC+fHn7vvXr1wPQrFmzXMfGxMRQuXJl++1X6uabb8bf358ff/wxz235fdbi4uIu+5iF/e6kpqbSoUMHvvjiC+644w7eeust2rRpw+OPP87EiRPzPO60adN45ZVXGDt2LC+88AL79+9n4MCBuXKewuaEzzzzDM8++yw33ngj77zzDv/85z+pWrUqv//+e4Gvbd26dZw7d44mTZrke/vixYt56KGHGDp0KG+++SbXXHMNAPHx8YXK3y4syF/q375p06Z4eHhc9t++oLzs3Llz9j6el8r1CsrfRo4cSUhICH5+ftx4442sXbs23xiaNm2KZVmsWrWqwFhLLNcO1JKSyNFh7znDE+vVq5dr2smbb75pAdamTZssy7Ks9evXX3YY4/79+y1PT0/rxRdfzLV/06ZNlpeXl31/dna2VatWLat79+65psqkpqZa1atXt7p27Zrn9YwaNSrXYw4YMMAqV65cge9FYWK2rLzTrHKG83bp0iVXfA899JDl6elpJSQkWJZ1fhpO//79cz3eM888YwG5HvPiYe+OvAeWZVlAoaYr5MSe3yXHgw8+aAHW+vXrL/k4v//+uwXkGtKe85rDw8MtIM/r3rBhgwVYDzzwQIExNmrUyIqIiMi175FHHrGqV69unT171rIsy22Gvffp08dq06aNffv999+3vLy8rBMnTuQ67kqn73399dcWYL3xxhv2fVlZWVanTp0swPr444/t+zt37mw1bNjQ/h5ZlvkctW7d2qpVq5Z9X2E/v2fOnLHCwsKsu+++O1dMx44ds0JDQ+374+Pj80yLK6zbbrst3+9pzvehRo0aVmpqaq7b9u3bd8nP8MWXC6cFXHvttVanTp3yPNeWLVsswHrvvfcuGefJkyctm81mjR49Otf+7du3258rZ1j4hAkTLA8PD2v//v25jh02bJgFWOPHj8/z+HXq1LE/TlBQkPXEE0/kO1Vx1apVFmBNnz79krGKlHbKY85THqM8xhnym77XuHFjKzIy0oqLi7Pv27hxo+Xh4WHdcccd9n05n99+/frlesz7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voRqzZo18fLyst83P+np6ezYscP+x3/x4sXMnz+fWbNm5UpsMjMzSUtLY//+/URERFwyYX/ggQfsf4Ac9fHHHxfYxDWnd9Sl/sDu3buXGjVqXNFzOyrn8/LII4/QvXv3fI+5ODG63Oc35zE///zzfItLFzYaffDBB+nbty9z5sxhwYIFPPnkk0yaNInFixdfsl8UQLly5QocXZVfopGzjHNhRERE2M+uVaxYMc9oMcB+piwmJqbAxwoNDeWbb77h4MGD7N+/n2rVqlGtWjVat25NhQoVCAsLsx978803069fPzZu3EhWVhZNmjSxjwCoXbt2gc8THh5Op06dmDp1ap6iVM57dWGfDZGyRnlMbspj8lIeY1wujylKjv7ne+PGjfTr148GDRowc+bMXDkGmL/hYP5mV6lSJddtR48etfeHvFIZGRns3LmTBg0aXNXjXIns7Gy6du3Ko48+mu/tF+cNhc3fCpMTtm/fnj179th/f0yZMoXXX3+d9957j7vuuuuSMec0DY+Pj8/398ylCkUnT57MdyT4xYKCguy/HypWrEhWVhYnTpwgMjLSfsy5c+eIi4u7bP4GphfgI488wpYtWwgNDaVhw4b84x//AHK/v9deey2bN29m69atxMfHU79+ffz9/XnooYfo0KHDZZ+nSpUqnDt3jpSUlFzf6dKev6koJQ6rVq0aADt27MjzSz01NZVDhw7lGa7siIYNG9KwYUOeeOIJe0PE9957jxdeeIHY2Fgsy6J69eoF/scsNjYWMCMxrmREhDNjvho57/Xu3btznTGIi4u77DSn4n4PLtSzZ088PT35/PPPL9kk9LPPPsPLy4sePXoAplAwZswYYmJieO655wgODuaBBx7gtddeY+TIkbRq1YrAwEBuvPFGFi9ezIEDB+zvz4VmzJhBeno6ffr0AbA3yh44cGCeY//880+qV6/O66+/zoMPPphvnI8++ii33XbblbwNXHvttZe8bd++faxatYrx48fn+SOVnZ3N7bffzrRp03jiiSeu6LlzVKtWjSVLlpCampprtNTFK0blFL+8vb2d9nnJ+QxGRkYW6jFjY2N5+OGHefjhh9m1axeNGzfm3//+N1988cUl71O3bl2mTp1KYmJioc7qAxw6dOiSZ+AutmTJEvvKPo0bN2bJkiUkJSXlShR++eUX++2FUbVqVftZyoSEBNatW5fv2W8fHx+aN29u3/7pp58ACvVepqWl5VntC8znDs7/h0ukLFIe41jMV0N5TOnNYwpy4XfsYtu3b6d8+fK5RkmBGe1z4Wdk9+7dZGdn2xtcF2TPnj306NGDyMhIvv/++3yLlTl/o9euXZurAHXkyBEOHz58xU3Vc8ycOZO0tLRLFnEc5ch3JzY2luTkZKd9TxzNCSMiIhg5ciQjR44kOTmZ9u3b88wzzxRYlKpbty5g8pKGDRsWOrbmzZvbR5EV5Omnn+aZZ54Bcv/b9+rVy37M2rVryc7OLnT+Fh4eTtu2be3bP/30E5UrV7a/lhw2my3Xd+f7778nOzu7UO/l3r178fPzy/MZLvX5W/G2sJLS4Pjx45aPj481cODAPI10X3/9dQuw5syZY993qcaAOc32chotJyYmWhkZGbmOSUpKsjw8PKxHHnnEsizL2r17t+Xp6WndeuutuZpeWpZpvpfTKDgrK8uKjY21atWqZZ05cybPa7iwifSlGp7mNCfct2/fJd+LwsRsWZduEPrbb7/luu/FTT5zmhwOGDAg13GFaRDqyHtgWZa1bds268CBA5d8rZeL/WJ33XWXBVj/+c9/8tw2efJkC7DGjh1r3/faa69ZgDVr1iz7vuTkZKtKlSpWo0aN7O/zsmXLLA8PD6tjx455Gljv3bvXio6OtipWrGhv4HjgwAFr9uzZeS4VKlSwmjVrZs2ePdvavXv3ZV+3sz3//POXbLhpWZbVtWtXq27duvbtK210PnPmTItCNjrv2LGjFRERYR05ciTP41z4eSns5zcxMdEKCQmxOnToYJ07d+6Sj5mSkmKlpaXlui0rK8uKioqybr755gJf36JFiyzAWrRoUb6x5NeQNC0tzVq4cGGhLhc2Al2zZo3FRQ3Zz549a9WsWdNq0aJFruc4cOCAtW3btgJjtyzLuueeeywPDw/r119/LfC4nTt3WsHBwVafPn1y7T9+/HieY/ft22cFBwdb7dq1y3PbQw89ZIWGhub5/SlSliiPOU95zKUpjym8SzU6j4qKsuLj4+37Nm3a5HCj8w0bNhT43EePHrVq1KhhxcTEFPhZtyzLqlu3rnXdddflalj9xBNPWDabzdq6dWuB9y0or9iwYYMVGRlphYeHW0ePHrXvL+xnLT+OfHdy9s2fPz/P48THx9s/ezm/s/JbWObif7/C5oQ5v7MuNHjwYKt8+fIFvr60tDTLx8fHevLJJ/ONZdy4cfne7+effy5U/rZnzx77fVJTU62IiIg8OdRtt91mBQQE5GrGf/LkSWvbtm1WSkpKgfF/+eWXFmC9+uqrBR6XmppqNWnSxKpYsaKVlJRk33/x7y/LMp8jb2/vPN8FyzILa9hstnzf79JAI6XEYZGRkTz11FM88cQTtG/fnn79+hEQEMCqVav43//+R7du3ejbt6/Dj7t48WLGjx/P4MGDqV27NpmZmXz++ed4enraRxHExsbywgsv8Pjjj7N//3769+9PcHAw+/btY/bs2YwZM4ZHHnkEDw8PpkyZQs+ePbn22msZOXIklSpV4s8//2TJkiWEhIQwd+7cq34vChPz1YiKiuKBBx7g3//+N/369aNHjx5s3LiRH374gfLlyxc4tNnR96BevXp06NDBoSahBXn99dfZvn079913H/Pnz7efSVywYAHffPMNHTp04N///jdgRq489dRT9O3blwEDBtgfIzAwkDfffJOBAwfy5ptv8vDDD9O+fXteffVVJk6cSKNGjRgxYgQVK1Zk+/btfPDBB2RnZ/P999/b58dfOCrlQg8++CBRUVH079/fKa/XUVOnTqVx48Z5ztLn6NevHxMmTOD333+/5HK5hdG/f39uuOEGHn74YXbv3k3dunX59ttvOX36NJB7ePy7775L27ZtadiwIXfffTc1atTg+PHjrF69msOHD7Nx40aHnjskJITJkydz++2306RJE4YNG0aFChU4ePAg3333HW3atOGdd95h586ddO7cmSFDhlC/fn28vLyYPXs2x48fZ9iwYQU+R9u2bSlXrhw//fTTJXtXXexKe0q1aNGCwYMH8/jjj3PixAlq1qzJp59+yv79+/nwww9zHXvHHXewbNmyXFNY/u///o/NmzfTokULvLy8mDNnDj/++CMvvPBCrhFRYKaDDB48mKpVq7Jv3z4mT55MREQE7733Xq7jGjZsSOfOnWncuDHh4eHs2rWLDz/8kIyMDP7v//4vz2tYuHAhffv2LbU9CUQKQ3mMYzFfDeUxpTePuZxXXnmFnj170qpVK0aPHk1aWhpvv/02oaGh9hEsF9q3b5/9M7J69Wq++OILbr311lwLjuSnR48e7N27l0cffZSff/6Zn3/+2X5bVFQUXbt2zRVTv3796NatG8OGDWPz5s2888473HXXXYUegbJixQrOnj1LVlYWcXFxrFy5km+//ZbQ0FBmz56db7uCH374ge3bt+fZ37p160u2aXDku/O3v/2Nb7/9lj59+jBixAiaNm1KSkoKmzZtYubMmezfv9/haV+FzQnr169Px44dadq0KREREaxdu5aZM2cyfvz4Ah/fz8+Pbt268dNPP/Hcc88VOq4r7Sn1/PPPM27cOAYPHkz37t1ZsWIFX3zxBS+++GKuZvzvvPMOzz77bK6R8suXL+e5556jW7dulCtXjjVr1vDxxx/To0cPHnjggVzPNWTIEGJiYqhfvz5JSUl89NFH7N27l++++y5Xv7GhQ4fi7+9P69atiYyMZOvWrbz//vsEBARcMn9r06aNfdpjqePqqpiUXF988YXVsmVLKzAw0PL19bXq1q1rPfvss7mWDrWswp9h3Lt3rzVq1CgrNjbW8vPzsyIiIqwbb7zR+umnn/I899dff221bdvWCgwMtAIDA626deta48aNs3bs2JHruPXr11sDBw60ypUrZ/n6+lrVqlWzhgwZkmtUxdWcYSxszFd6htGyLCszM9N68sknrejoaMvf39/q1KmTtW3bNqtcuXLWPffcU+B9C/seWJbjSykX5qxPenq69frrr1tNmza1AgMDrYCAAKtJkybWG2+8kWvkzE033WQFBgZe8gxnnz59rKCgoFyjipYvX27ddNNNVvny5S1vb2+ratWq1t13323t37//snFZlmuXUl63bp0F5Ht2KMf+/fstwHrooYcsy7rykVKWZc763HrrrVZwcLAVGhpqjRgxwlq5cqUFWF9++WWuY/fs2WPdcccdVnR0tOXt7W1VqlTJ6tOnj325W8ty7PObs7979+5WaGio5efnZ8XGxlojRoyw1q5da1mWOcs2btw4q27dulZgYKAVGhpqtWjRwpoxY8ZlX5tlWdb9999v1axZM99YLrfMuaPS0tKsRx55xIqOjrZ8fX2t5s2b53tmskOHDnn+vebNm2fdcMMNVnBwsBUQEGC1bNnykq9x2LBhVpUqVSwfHx8rJibGuueee/IdFfX0009bzZo1s8LDwy0vLy8rJibGGjZsmPXHH3/kOXbbtm0WkO/vVJGySHmM8pjLUR5TOPmNlLIsy/rpp5+sNm3aWP7+/lZISIjVt2/fPCOScj6/W7dutW6++WYrODjYCg8Pt8aPH59nFHV+gEte8vs8zJ4922rcuLHl6+trVa5c2XriiSfyHc19sZzPZ87F29vbqlChgtW+fXvrxRdfzHfkS85n7VKXC0er56ew3x3LsqwzZ85Yjz/+uFWzZk3Lx8fHKl++vNW6dWvr1Vdftb8+R0ZKWVbhcsIXXnjBuuGGG6ywsDDL39/fqlu3rvXiiy8W6j2dNWuWZbPZ8swaoICRUlfj/ffft+rUqWP5+PhYsbGx1uuvv55nxGrO5/HC30O7d++2unXrZpUvX97+t2LSpElWenp6nud46aWXrLp161p+fn5WeHi41a9fP2v9+vV5jnvzzTetG264wYqIiLC8vLysihUrWrfddpu1a9euPMcmJCRYPj4+1pQpU676PXBXNstyQidCESlWCQkJhIeH88ILL/DPf/7T1eFICTRnzhwGDBjAzz//fEVnndzJ3r17qVu3Lj/88AOdO3d2dThu68EHH2T58uWsW7dOI6VExKWUx0iOZ555hmeffZaTJ0+W2ibOzlSavjtZWVnUr1+fIUOG8Pzzz7s6HLf1xhtv8PLLL7Nnzx6nrBLpjjxcHYCIFCy/1YHeeOMNAPuwUpGCXPwZysrK4u233yYkJOSqpga6ixo1ajB69Oh8hzuLERcXx5QpU3jhhRdUkBKRYqU8RuTKlPbvjqenJ8899xzvvvsuycnJrg7HLWVkZPDaa6/xxBNPlNqCFGj1PRG3N336dD755BN69epFUFAQP//8s73nRUkf4SLFY8KECaSlpdGqVSvS09OZNWsWq1at4l//+lep+QM3efJkV4fg1sqVK6eET0RcQnmMyJUpC9+doUOHMnToUFeH4ba8vb3tK3CWZipKibi5Ro0a4eXlxcsvv0xSUpK98eHVLtMsZUenTp3497//zbx58zh79iw1a9bk7bffvmwTShERkaulPEbkyui7I2WFekqJiIiIiIiIiEixU08pEREREREREREpdipKiYiIiIiIiIhIsVNPKSA7O5sjR44QHBysVYlEREQkF8uyOHPmDDExMXh46HxeDuVPIiIicimFzZ9UlAKOHDlClSpVXB2GiIiIuLFDhw5RuXJlV4fhNpQ/iYiIyOVcLn9SUQoIDg4GzJsVEhLi4mhERETEnSQlJVGlShV7viCG8icRERG5lMLmTypKgX3IeUhIiJIqERERyZemqOWm/ElEREQu53L5kxojiIiIiIiIiIhIsVNRSkREREREREREip2KUiIiIiIiIiIiUuxUlBIRERERERERkWKnopSIiIiIiIiIiBQ7FaVERERERERERKTYqSglIiIiIiIiIiLFTkUpEREREREREREpdipKiYiIiIiIiIhIsVNRSkREREREREREip2KUiIiIiIiIiIiUuxUlBIRERERERERkWKnopSIiIiIiIiIiBQ7FaVERERERERERKTYqSglIiIiJZdlQXa2q6MQERERKVncJH9SUUpERERKpowM+PZbmDvX1ZGIiIiIlBz798M778DJk66OREUpERERKYHi4+HDD2H9etiwAY4fd3VEIiIiIu7NsmDVKvjsMzh9GpYscXVEeLk6ABERERGHffcdHDsGgYEwaBBERbk6IhERERH39uef8OOP5nqjRtCnj2vjQUUpERERKYn69jWFqT59ICTE1dGIiIiIuL/KlaFDBwgKgmbNwGZzdUSaviciIiIlQEqKmaqXIzQUbr1VBSkRERGRgmzaBImJ57dvvBGaN3eLghRopJSIiIi4u8OHYcYMSEoCf3+oW9fVEYmIiIi4t8xMWLAAfvvNjJAaMQK83K8E5H4RiYiIiIBpxvnbbyahysqCcuUgIsLVUYmIiIi4t8RE+Oorc2IPIDYWPNxzopyKUiIiIuJ+zp2DefPgjz/Mdv36cNNN4Ovr2rhERERE3NnevTBzJqSmgp8fDBwItWu7OqpLUlFKRERE3EtcHEyfDidOmLN6XbtCy5Zu0/tARERExO1YFqxYAUuWmOsVK8KQIRAe7urICqSilIiIiLiXI0dMQSooCAYPhmrVXB2RiIiIiHvLzIStW01BqkkT6NXLLXtIXcz9IxQREZGypWFDSEuDevUgONjV0YiIiIi4P29vMzLqwAG4/npXR1No7tnpSkRERMqO5GTT+yA5+fy+G25QQUpERESkIOvXw8qV57cjIkpUQQo0UkpERERc6eBBszrMmTOQkQG33OLqiERERETcW2Ym/PADrFtnem5ecw1UquTqqK6IilIiIiJS/CwL1qyBhQshOxsiI01DcxEREXEPSXGQnABB4RAS4epoJEd8PMyYAUePmoLUjTdCTIyro7piKkqJiIhI8UpPh2+/hS1bzHbDhtC3L/j4uDYuERERgfQ0WDkb9myAjHTw9oXYxtBmAPj6uzq6sm3XLpg1y/TeDAiAQYMgNtbV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379/P4899hgjRoygVatWAKxevZpPP/2USZMmFU2UIlJynTsH8+aZs3pglinu398sWywiUoopfxKRq7J3L8ycCamp4OcHAwdC7dqujkpExKlslmVZjtyhc+fO3HXXXdxyyy259k+bNo3333+fpUuXOjO+YpGUlERoaCiJiYkaPi/iTGlp8PHHcOKEGRXVpQu0aqXeByJSojgjT1D+JCIOWbsWvvvOjDavWBGGDIHwcFdHJSJSaIXNExyeO7N69WqaNWuWZ3+zZs34NWees4gImLN6kZEQFAR33gmtW6sgJSJlkvInEXFI5crg6QnXXw+jRqkgJSKllsNFqSpVqvDBBx/k2T9lyhSqVKnilKBEpATLzjZT9sAUoPr1g7FjoVo118YlIuJCyp9E5LLOnj1/PToa7r0XbrrJrLInIlJKFaqn1IVef/11Bg0axA8//ECLFi0A+PXXX9m1axdff/210wMUkRIkOdn0PvD3N8PMbTbw8TEXEZEyTPmTiBRowwazIMztt0OlSmZfuXIuDUlEpDg4PFKqV69e7Ny5k759+3L69GlOnz5N37592blzJ7169SqKGEWkJDh4EP77X9i/H/bsgbg4V0ckIuI2lD+JSL4yM2HuXJgzx4yU+v13V0ckIlKsHG50XhqpUafIVbAsWLMGFi40U/cqVIChQ6F8eVdHJiLiFMoT8qf3ReQqJSTAjBlw5IgZXX7jjdCunfpvikipUGSNzgFWrFjBbbfdRuvWrfnzzz8B+Pzzz/n555+vLFoRKZnS0810vQULTEGqYUO4+24VpERE8qH8SUTsdu0yI8yPHIGAALjtNmjfXgUpESlzHC5Kff3113Tv3h1/f39+//130tPTAUhMTORf//qX0wMUETc2YwZs2QIeHtCrFwwcqP5RIiL5UP4kInYHDsC0aZCWZvpHjR0LsbGujkpExCUcLkq98MILvPfee3zwwQd4X7ASRJs2bfhdc6BFypaOHc0SxSNHwg036OyeiMglKH8SEbuqVaF2bWje3ORQoaGujkhExGUcXn1vx44dtG/fPs/+0NBQEhISnBGTiLirrCw4ehQqVzbbVarA+PHg6enauERE3JzyJ5Ey7uhRs5qej485iTdkiPInERGuYKRUdHQ0u3fvzrP/559/pkaNGk4JSkTcUFISfPIJfPopHD9+fr8SKhGRy1L+JFJGWRasXQtT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6TAAAOj2yKF8CzkU4HuYvgd0A/Hx8a6viIgI+fn5ubYPHDig8PBwvffee0pKSpLNZtOWLVu0cOFCzZw5s8V5HnroIV133XWu7ebmZi1fvlwDBw5UaGioxowZozfeeOOisQwYMED//M//rLvvvlt2u12JiYl66623dOLECc2YMUN2u12jR4/W9u3bW7xuy5YtmjRpkkJDQ9WvXz89+OCDqqqqcj3/xz/+URMmTFB4eLji4+N1xx13qKSkxPX8xo0b5efnp4yMDE2YMEFhYWH69re/3SKxbM3Ro0c1d+5cRUZGKjo6WjNmzNDhw4clSQcOHFBYWJheffVV1/GrVq1SaGio9u3bJ0mu+/jkk08qNjZWDodDDzzwgOrr612vue6667R48WI99NBDiomJUXp6uiTp888/1/Tp02W32xUXF6fvfve7OnnypOt1b7zxhkaNGqXQ0FD17NlTaWlprnuyceNGTZw4UT169FBkZKRSU1N15MgRSecPPW9ubtY//dM/qW/fvrLZbBo7dqzWrVvnev7w4cPy8/PT6tWrdf311yssLExjxoxRVlbWRe8dAAC+jhyKHIocCuhcFKUASJIeffRRPf3009q/f79Gjx7dptcsX75cr7zyil544QXt3btXDz/8sO666y5t2rTpoq/7zW9+o9TUVO3cuVM33XSTvvvd7+ruu+/WXXfdpR07dmjQoEG6++67dWYgZ35+vqZNm6Y5c+Zo9+7dWrlypbZs2aLFixe7ztnQ0KCnnnpKu3bt0tq1a3X48GEtXLjwvGs//vjj+tWvfqXt27crMDBQ99577wXjbGhoUHp6usLDw/Xxxx8rMzNTdrtd06ZNU319vYYNG6Znn31WP/zhD1VQUKBjx47pgQce0DPPPKMRI0a4zpORkaH9+/dr48aNeu2117R69Wo9+eSTLa718ssvKzg4WJmZmXrhhRdUXl6uG264QePGjdP27du1bt06FRcXa+7cuZKkwsJCzZ8/X/fee6/r3LNnz5YxRo2NjZo5c6YmT56s3bt3KysrS/fff/8FpyD8x3/8h371q1/p2Wef1e7du5Wenq5bb71VeXl55927Rx55RDk5ORoyZIjmz5+vxsbGi77XAAB0deRQ5yOHIocC2swA6FZefPFFExER4dresGGDkWTWrl3b4rgFCxaYGTNmtNj34x//2EyePNkYY0xtba0JCwszn3zySYtj7rvvPjN//vwLXj8xMdHcddddru3CwkIjyfzyl7907cvKyjKSTGFhoeuc999/f4vzfPzxx8bf39/U1NS0ep3PPvvMSDKVlZUtfs4PP/zQdcw777xjJF3wHH/84x/N0KFDTXNzs2tfXV2dCQ0NNe+//75r30033WQmTZpkpkyZYqZOndri+AULFpjo6GhTVVXl2vf73//e2O1209TUZIwxZvLkyWbcuHEtrv3UU0+ZqVOntth39OhRI8nk5uaa7OxsI8kcPnz4vLhLS0uNJLNx48ZWf66lS5eaMWPGuLYTEhLMv/zLv7Q45uqrrzY//OEPjTHGHDp0yEgy//u//+t6fu/evUaS2b9/f6vXAACgqyGHIocihwI6HhOeAUiSJkyY8I2OP3jwoKqrq3XjjTe22F9fX69x48Zd9LXnfooYFxcnSRo1atR5+0pKShQfH69du3Zp9+7d+vOf/+w6xhij5uZmHTp0SMOHD1d2draWLVumXbt2qaysTM3NzZKkgoKCFp+4nXvt3r17u67Tv3//8+LctWuXDh48qPDw8Bb7a2trlZ+f79r+wx/+oCFDhsjf31979+4979O0MWPGKCwszLWdkpIip9Opo0ePKjExUZKUlJR03rU3bNjg6lNxrvz8fE2dOlVTpkzRqFGjlJ6erqlTp+q2225TVFSUoqOjtXDhQqWnp+vGG29UWlqa5s6d6/p5z1VRUaHjx48rNTW1xf7U1FTt2rWrxb4L3bthw4add14AALoLcihyqHORQwHfDEUpAJKkHj16tNj29/d3Df0+o6GhwfXY6XRKkt555x316dOnxXE2m+2i1woKCnI9PpN8tLbvTFLkdDr1/e9/Xw8++OB55+rfv7+qqqqUnp6u9PR0/fnPf1ZsbKwKCgqUnp7eou/Apa7zdU6nU0lJSS0SuTNiY2Ndj3ft2qWqqir5+/ursLCw1cTlUr5+/51Op2655RY988wz5x3bu3dvBQQEaP369frkk0/0wQcf6Pnnn9fjjz+ubdu2aeDAgXrxxRf14IMPat26dVq5cqV+8YtfaP369frWt771jWM745vcOwAAugtyqPORQ7VEDgVcGEUpAK2KjY3V559/3mJfTk6O6x/VESNGyGazqaCgQJMnT+7UWMaPH699+/bpyiuvbPX5PXv2qLS0VE8//bT69esnSec1+bzc665cuVK9evWSw+Fo9ZhTp05p4cKFevzxx1VYWKg777xTO3bsUGhoqOuYXbt2qaamxrVv69atstvtrlgvdO2//vWvGjBgwAVX8fHz81NqaqpSU1P1xBNPKDExUWvWrNGSJUskSePGjdO4ceP02GOPKSUlRa+++up5CZXD4VBCQoIyMzNbvI+ZmZmaOHFi224UAABwIYcihyKHAtqORucAWnXDDTdo+/bteuWVV5SXl6elS5e2SLDCw8P1yCOP6OGHH9bLL7+s/Px87dixQ88//7xefvnlDo3lZz/7mT755BMtXrxYOTk5ysvL05tvvulq0tm/f38FBwfr+eef1xdffKG33npLTz31VLuve+eddyomJkYzZszQxx9/rEOHDmnjxo168MEHdezYMUnSAw88oH79+ukXv/iFfv3rX6upqUmPPPJIi/PU19frvvvu0759+/Tuu+9q6dKlWrx4sfz9L/wreNGiRTp16pTmz5+vzz77TPn5+Xr//fd1zz33qKmpSdu2bdO//uu/avv27SooKNDq1at14sQJDR8+XIcOHdJjjz2mrKwsHTlyRB988IHy8vI0fPjwVq/105/+VM8884xWrlyp3NxcPfroo8rJydGPf/zjdt9DAAC6G3IocihyKKDtGCkFoFXp6en65S9/qX/8x39UbW2t7r33Xt19993as2eP65innnpKsbGxWr58ub744gtFRkZq/Pjx+vnPf96hsYwePVqbNm3S448/rkmTJskYo0GDBmnevHmSrE8kX3rpJf385z/Xb3/7W40fP17PPvusbr311nZdNywsTJs3b9bPfvYzzZ49W5WVlerTp4+mTJkih8OhV155Re+++6527typwMBABQYG6k9/+pOuueYa3XzzzZo+fbokacqUKRo8eLCuvfZa1dXVaf78+Vq2bNlFr33mk7ef/exnmjp1qurq6pSYmKhp06bJ399fDodDmzdv1nPPPaeKigolJibqV7/6laZPn67i4mIdOHBAL7/8skpLS9W7d28tWrRI3//+91u91oMPPqjTp0/rJz/5iUpKSjRixAi99dZbGjx4cLvuHwAA3RE5FDkUORTQdn7m6xOeAQAdZuHChSovL9fatWs9HQoAAIDPIIcCugem7wEAAAAAAMDtKEoBAAAAAADA7Zi+BwAAAAAAALdjpBQAAAAAAADcjqIUAAAAAAAA3I6iFAAAAAAAANyOohQAAAAAAADcjqIUAAAAAAAA3I6iFAAAAAAAANyOohQAAAAAAADcjqIUAAAAAAAA3I6iFAAAAAAAANzu/wNojDkAatvoCwAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Unseen single-gene perturbation\n",
"if holdout_single:\n",
" pert = holdout_single[0]\n",
" x_c, x_t, x_p = results[pert]\n",
" if x_t is not None:\n",
" plot_prediction_scatter(x_p, x_t, x_c, title=f'Unseen single: {pert}')"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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+++/z9NPP82IESP45ptvbGcXAfbt28eKFSt46qmnKFWqFFevXs336d/z589nxIgRtG/fnh9//BFPT88s909LS2P48OFER0czZ84cAgMDcyUO6xT6zC5RyC+zZ88mMDCQnj17MnDgQGbPnp3rz7FgwQLq1q2Lp6cn9evXZ/HixYwePdruMgIwf9ZTp06lXr16eHp6UrZsWSZMmEB0dLTdftZLGX7//XfuuOMOPD09qVatGjNnzkz33JcuXeLRRx+lYsWKeHh4UL16dd566y27SzEAvvvuO5o2bUrJkiXx8/OjQYMG6T6HMrJkyRJatGiBr6+v3bj1Eoxt27bRtm1bvL29ee6557L5E0svNjaWVatWMWLECPz8/GzjI0eOxNfXl/nz52f5+N9++40yZcpw11132cZcXFwYPHgwkZGRrFu3zjY+depUQkJCeOSRRzAMI9uXB1pl9t62nsH/4YcfHDqeFF7KYUzKYZTD5BblMNkTHx/PE088YfvbX6tWLd59910Mw7Dbz3rp5uzZs6lVqxaenp40bdqU9evX3/Q56tWrR+nSpe3GPDw86NGjB6dOneLy5cu28YULF1K2bFn69+9vGytTpgyDBw/mhx9+IDExMUev09XVlY8++oi6devy8ccfp/u8vBU7d+6kXbt2eHl5UaFCBV577TW++eabDPuJrlixwvYZV7JkSXr27Mnu3bvt9hk9ejS+vr6cPn2afv364evrS5kyZXjyySdJTU212ze7+eDWrVvp2rUrpUuXxsvLi6pVqzJ27NibvrYlS5bg7u5O27Zt7catn8N79uzhnnvuITAw0G6GUU4sXLiQ5s2b07x5c9tY7dq16dixY7ZyN4ChQ4fajQ8dOhTDMJg3b57d87i6ujJ+/HjbmKenJ+PGjWPTpk0Z/h24Xma/08HBwTRs2PCWcjcVpYqQN998k8WLF/Pkk08yefJkNm/ezPDhw233JyUl0bVrVzZv3sykSZP45JNPGD9+PEeOHLF7c73++uuMHDmSGjVq8P777/Poo4+yevVq2rZta7ffmjVraNu2LbGxsfz73//mjTfe4NKlS9x1110ZTlEePHgwly9fZsqUKQwePJjp06fz8ssv3/R1rVq1irZt27Jnzx4eeeQR3nvvPTp06MCyZcts+/z666907dqVs2fP8tJLL/H444+zceNGWrVqlWGT5SFDhpCWlsabb75JixYteO2115g6dSqdO3fmtttu46233qJ69eo8+eSTGf7Ref3111m+fDnPPPMMDz/8MKtWraJTp05cuXLFts/06dMZPHgwrq6uTJkyhfvvv59FixbRunVru5/j6dOnqVOnDpMnT77pz8Kqbdu2VKhQwW5K9Lx58/D19aVnz56ZPm727NmEhobSvHlzevfujbe3N3Pnzs328x45cgRXV1cCAgIy3ScyMhIg3R9hqw8//JAnnniCe+65h+nTp9slc4DtOvuyZcvSsWNHvLy88PLyonv37vnSMPv7779n+PDhtG3blqVLl950+j7Aq6++Snh4OC+//DJ33nlnhvucP3/e7pZRUpCUlMT58+c5efIkixcv5t1336Vy5cpOv1Ru9uzZ9O/fH3d3d4YNG8bBgwf5888/c+34y5cvZ8iQIbi5uTFlyhT69+/PuHHj2LZtW7p9J0yYwFNPPUWrVq348MMPGTNmDLNnz6Zr167pEv9Dhw4xcOBAOnfuzHvvvUdgYCCjR4+2S4ISEhJo164ds2bNYuTIkXz00Ue0atWKyZMn8/jjj9v2W7VqFcOGDSMwMJC33nqLN998k/bt29+0cXlycjJ//vknt99+e4b3X7hwge7du9O4cWOmTp1Khw4dAHMq943vmYxu17+Pdu3aRUpKCs2aNbN7Dnd3dxo3bszff/+dZayJiYkZvt+9vb0B7P49Vq9eTfPmzfnoo48oU6YMJUuWpFy5cnz88ccZHju7721/f39CQ0PVEL4YUg6jHEY5zK1TDpM9hmHQp08fPvjgA7p168b7779PrVq1eOqpp+z+9lutW7eORx99lBEjRvDKK69w4cIFunXrxj///JOj54+MjMTb29v29xXg77//5vbbb0/3nrrjjjtISEjgwIEDOXouMAtTw4YNIyEhgd9//93uvuTk5Azzi+s/DzJy+vRpOnTowO7du5k8eTKPPfYYs2fPzvBk3bfffkvPnj3x9fXlrbfe4oUXXmDPnj20bt063e9FamoqXbt2pVSpUrz77ru0a9eO9957L91laNnJB8+ePUuXLl04duwYzz77LP/5z38YPnw4mzdvvunPbOPGjdSvXz/d5Y5WgwYNIiEhgTfeeIP7778fMPOo7ORu1/dcTEtLY+fOnelyNzD/7Q8fPmxXvLyRtVh54+96Rrnb33//Tc2aNe1OXFqfB8wWENczDIPz588TGRnJb7/9xsMPP4yrq2uGBf2mTZuycePGTOO8qRzPsZI84+jUd+t07Dp16thdXvHhhx8agLFr1y7DMAzj77//vum07WPHjhmurq7G66+/bje+a9cuo0SJErbxtLQ0o0aNGkbXrl2NtLQ0234JCQlG1apVjc6dO6d7PWPHjrU75t13322UKlUqy59FSkqKUbVqVaNy5cpGdHS03X3XP2/jxo2N4OBg48KFC7axHTt2GC4uLsbIkSPTxTJ+/Hi756hQoYJhsViMN9980zYeHR1teHl5GaNGjbKNWX/Wt912mxEbG2sbnz9/vgEYH374oWEYhpGUlGQEBwcb9evXt5s2vWzZMgMwXnzxRdvY0aNHDcDueTJz/XvjySefNKpXr267r3nz5saYMWMMw0g/zdwaU6lSpYx//etftrF77rnHaNSoUbrnadeunVG7dm3j3Llzxrlz54y9e/caDz/8sAEYvXv3zjLGcePGGa6ursaBAwfsxgGjcuXKBmAMGzbMSElJyfDx1ucpVaqU0a1bN2PevHnGO++8Y/j6+hqhoaE3vbyJW5j6Xr58eaNEiRJG+/bts30Z1dq1aw1XV1ejY8eO6abwG4Y59R1Id8vo8pW5c+fa7dOsWTNj586d2Yojr2zdutUAjFWrVhmGYf7eVahQwXjkkUfS7UsOL99r0KCBUaFCBbvL29auXWt7z1j99ttvBmDMnj3b7vE///xzunHre239+vW2sbNnzxoeHh7GE088YRt79dVXDR8fn3Tv12effdZwdXU1Tpw4YRiGYTzyyCOGn59fpu/bzBw6dMgAjP/85z/p7mvXrp0BGJ9++mm6+zJ732T1PlqwYEG612w1aNAgIyQkJMtYJ02aZLi4uBjHjh2zGx86dKgBGA899JBhGIZx8eJF2++or6+v8c477xjz5s0zunXrlunrceS93aVLF6NOnTpZxioFl3KYa5TD2FMOoxzGWW68fG/JkiUGYLz22mt2+w0cONCwWCzGoUOHbGPW17N161bb2PHjxw1PT0/j7rvvdjiWgwcPGp6ensa9995rN+7j45Puc8YwDGP58uUGYPz8889ZHjezy/esFi9ebPd7bhjXcqWMblOmTMny+SZNmmRYLBbj77//to1duHDBCAoKssv9Ll++bAQEBBj333+/3eMjIyMNf39/u3Hr++2VV16x27dJ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Z4wfP96oXbu24ePjY7i7uxs1atQwHn300Qxf97Rp0wxvb+9sfcZlxvK/FyciIlKgNG7c2HY2urAbN24cBw4c4LfffnN2KAVWZGQkVatW5bvvvtNMKRERKRAsFgsTJ050eDZPcfXoo4/y2WefERcXl62m5QXZt99+y8SJEzlx4gQBAQHODqfAatKkCe3bt+eDDz7I8TEyXuZCREQknyQnJ5OSkmI3tnbtWnbs2EH79u2dE1Qu+/e//82ff/6Z6aUSAlOnTqVBgwYqSImIiBQCN66yeuHCBb799ltat25d6AtSAMOHD6dSpUoZLvgjpp9//pmDBw8yefLkWzqOZkqJiIhTHTt2jE6dOjFixAjKly/Pvn37+PTTT/H39+eff/6hVKlSzg5RREREiiHNlMpc48aNad++PXXq1CEqKoqvvvqKM2fOsHr1atq2bevs8KQQUaNzERFxqsDAQJo2bcqXX37JuXPn8PHxoWfPnrz55psqSImIiIgUQD169GDhwoV8/vnnWCwWbr/9dr766isVpMRhmiklIiIiIiIiIiL5Tj2lREREREREREQk36koJSIiIiIiIiIi+U49pYC0tDTOnDlDyZIlsVgszg5HREREChDDMLh8+TLly5fHxUXn86yUP4mIiEhmsps/qSgFnDlzhooVKzo7DBERESnATp48SYUKFZwdRoGh/ElERERu5mb5k4pSQMmSJQHzh+Xn5+fkaERERKQgiY2NpWLFirZ8QUzKn0RERCQz2c2fVJQC25RzPz8/JVUiIiKSIV2iZk/5k4iIiNzMzfInNUYQEREREREREZF8p6KUiIiIiIiIiIjkOxWlREREREREREQk36koJSIiIiIiIiIi+U5FKRERERERERERyXcqSomIiIiIiIiISL5TUUpERERERERERPKdilIiIiIiIiIiIpLvVJQSEREREREREZF8p6KUiIiIiIiIiIjkOxWlRERERAqRadOm0bBhQ/z8/PDz8yMsLIwVK1bY7m/fvj0Wi8Xu9sADD9gd48SJE/Ts2RNvb2+Cg4N56qmnSElJye+XIiIiIsWcU4tSSqpEREREHFOhQgXefPNNtm3bxtatW7nrrrvo27cvu3fvtu1z//33ExERYbu9/fbbtvtSU1Pp2bMnSUlJbNy4kRkzZjB9+nRefPFFZ7wcERERKcZKOPPJrUlVjRo1MAyDGTNm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7oCI/3xZGfGffCs70yzZ00woERGRBtfsZ0oBTJo0ieeee47HH3+cvn37kpmZydKlS2s1P29WDhyAv//dJFFgvq3r318FKREREWkwL7zwArfddhszZsygR48ezJ8/n4iICP72t7/5OrRzU1UFn30GJ872io8/fUEKTA+p8lLPZXpgjstLTb8oERERaXB+MVMKYNasWcyaNcvXYTSMTZvgo4+gogKWL4drrvF1RCIiIuJnysrK2LBhA3PmzHGfCwoKIjU1lYyMDB9Gdo5cLrMhzJ49EBwMXbtCVFT9HuuINj2kSotrZkiBOQ61mwbmIiIi0uD8pijlFyoq4JNPYMMGc3zRRTBihG9jEhEREb906NAhKisra80sj4+PZ/v27bWuLy0tpbS01H1cUFDQ6DHWW06OKUgVFpqeUWPH1r8gBeBsZZqab0s3x/ZwU5AqdkHPIVq6JyIi0khUlGoq8vNh4ULIzTVL9a68EoYONbdFREREfGzevHk8+eSTvg7Dk2XB2rWwbJlZute6tekhFRd39s815HrzOzsTCvPNDKmeQ2rOi4iISINTUaop2LsX3noLioshIgImTIAuXXwdlYiIiPixuLg4goODycvL8zifl5dHQkJCrevnzJnD7Nmz3ccFBQW0b9++0eM8JcuCxYth61Zz3KsXXHsthIWd2/PZw2H4FNPU3JVvluxphpSIiEij8otG581eq1YmgWrXDu64QwUpERERaXRhYWEMGDCAFStWuM9VVVWxYsUKUlJSal1vt9txOp0ePz5ls0FCgukfddVVMH78uRekTuSMhcQuKkiJiIh4gWZK+UpZWU3iFBEB06aZ3gchektERETEO2bPns306dMZOHAggwYN4sUXX+T48ePMmDHD16Gd2ok51M9+Znpwtm7t25hERETknKgC4gs//mj6R115JfTta861auXTkERERCTwTJo0iZ9++onHH3+cAwcO0LdvX5YuXVqr+XmTUFkJn30GP/wAt91mClM2mwpSIiIizZiKUt5kWWZnvU8+MYlVRgb07g1BWkUpIiIivjFr1ixmzZrl6zBOr6DA7K63d685zsqCnj19G5OIiIicNxWlvKW8HD78EDZvNsfdusG4cSpIiYiIiJzOrl3w7rtw/Di0aAHXXw9du/o6KhEREWkAKkp5w+HDZrleXp6ZZp6aanog2Gy+jkxERESkabIs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9ttvt6Kjoz264vuT++67z1q1apW1a9cuKz093UpNTbXi4uKsgwcPWpZlWXfeeafVoUMH69///re1fv16KyUlxUpJSfFx1OensLDQ2rRpk7Vp0yYLsF544QVr06ZN1p49eyzLsqxnnnnGio6Ott5//31ry5Yt1tixY63OnTtbxcXF7ucYPXq01a9fP2vdunXWF198YSUnJ1uTJ0/21Us6a6cbg8LCQuv++++3MjIyrF27dlnLly+3+vfvbyUnJ1slJSXu52jOY/DLX/7SioqKslatWmXl5ua6f4qKitzXnOmzX1FRYV188cXWqFGjrMzMTGvp0qVW69atrTlz5vjiJZ21M43Bzp07raeeespav369tWvXLuv999+3LrjgAuvyyy93P0dzHoOHH37YWr16tbVr1y5ry5Yt1sMPP2zZbDbrs88+syzL/99/yzr9GPj7+y9nL9DyI8sKzBzJspQnVQv0XKmaciYj0POmasqfajSnPEpFqWbopZdesjp06GCFhYVZgwYNstauXevrkBrNpEmTrLZt21phYWFWu3btrEmTJlk7d+50319cXGz96le/smJiYqyIiAjr+uuvt3Jzc30Y8flbuXKlBdT6mT59umVZZrvjxx57zIqPj7fsdrs1YsQIa8eOHR7PcfjwYWvy5MmWw+GwnE6nNWPGDKuwsNAHr+bcnG4MioqKrFGjRlmtW7e2QkNDrY4dO1q33XZbrf/xaM5jUNdrB6xXX33VfU19Pvu7d++2xowZY4WHh1txcXHWfffdZ5WXl3v51ZybM41BTk6Odfnll1uxsbGW3W63LrzwQuuBBx6wjh075vE8zXUMbrnlFqtjx45WWFiY1bp1a2vEiBHuhMqy/P/9t6zTj4G/v/9ybgIpP7KswMyRLEt5UrVAz5WqKWcyAj1vqqb8qUZzyqNslmVZDTv3SkRERERERERE5PTUU0pERERERERERLxORSkREREREREREfE6FaVERERERERERMTrVJQSERERERERERGvU1FKRERERERERES8TkUpERERERERERHxOhWlRERERERERETE61SUEhERERERERERr1NRSkQkwDzxxBP07dvX12GIiIiINCvKoUQans2yLMvXQYhI47LZbKe9f+7cuTzxxBPeCUZ8zuVyUVpaSqtWrXwdioiISJOmHEpOpBxKpOGpKCUSAA4cOOC+vWDBAh5//HF27NjhPudwOHA4HABYlkVlZSUhISFej1OMsrIywsLCfB2GiIhIwFMO1bwohxJpfrR8TyQAJCQkuH+ioqKw2Wzu4+3btxMZGcknn3zCgAEDsNvtfPHFF9x8882MGzfO43nuuecerrjiCvdxVVUV8+bNo3PnzoSHh9OnTx/efffd08bSqVMnfvOb3zBt2jQcDgcdO3bkgw8+4KeffmLs2LE4HA569+7N+vXrPR73xRdfMHToUMLDw2nfvj133XUXx48fd9//97//nYEDBxIZGUlCQgJTpkzh4MGD7vtXrVqFzWZjxYoVDBw4kIiICH72s595JJZ12bt3LxMnTiQ6OprY2FjGjh3L7t27Adi+fTsRERG89dZb7usXLlxIeHg43377LYB7HJ988klat26N0+nkzjvvpKyszP2YK664glmzZnHPPfcQFxdHWloaAN988w1jxozB4XAQHx/PL37xCw4dOuR+3LvvvkuvXr0IDw+nVatWpKamusdk1apVDBo0iJYtWxIdHc2QIUPYs2cPUHvqeVVVFU899RRJSUnY7Xb69u3L0qVL3ffv3r0bm83G4sWLufLKK4mIiKBPnz5kZGScduxERESaO+VQyqGUQ4k0LhWlRASAhx9+mGeeeYbvvvuO3r171+sx8+bN44033mD+/Pls27aNe++9l5tuuonVq1ef9nG///3vGTJkCJs2beLqq6/mF7/4BdOmTeOmm25i48aNdOnShWnTplE9kTM7O5vRo0czYcIEtmzZwoIFC/jiiy+YNWuW+znLy8t5+umn2bx5M++99x67d+/m5ptvrvW3H330UZ5//nnWr19PSEgIt9xyyynjLC8vJy0tjcjISD7//HPS09NxOByMHj2asrIyunXrxnPPPcevfvUrcnJy2LdvH3feeSfPPvssPXr0cD/PihUr+O6771i1ahVvv/02ixcv5sknn/T4W6+//jphYWGkp6czf/58jh49yvDhw+nXrx/r169n6dKl5OXlMXHiRAByc3OZPHkyt9xyi/u5x48fj2VZVFRUMG7cOIYNG8aWLVvIyMjg9ttvP+UShD/84Q88//zzPPfcc2zZsoW0tDSuu+46srKyao3d/fffT2ZmJhdddBGTJ0+moqLitO+1iIiIv1MOVZtyKOVQIvVmiUhAefXVV62oqCj38cqVKy3Aeu+99zyumz59ujV27FiPc3fffbc1bNgwy7Isq6SkxIqIiLC+/PJLj2tuvfVWa/Lkyaf8+x07drRuuukm93Fubq4FWI899pj7XEZGhgVYubm57ue8/fbbPZ7n888/t4KCgqzi4uI6/87XX39tAVZhYaHH61y+fLn7mo8++sgCTvkcf//7362uXbtaVVVV7nOlpaVWeHi49emnn7rPXX311dbQoUOtESNGWKNGjfK4fvr06VZsbKx1/Phx97k///nPlsPhsCorKy3Lsqxhw4ZZ/fr18/jbTz/9tDVq1CiPc3v37rUAa8eOHdaGDRsswNq9e3etuA8fPmwB1qpVq+p8XXPnzrX69OnjPk5MTLR++9vfelxzySWXWL/61a8sy7KsXbt2WYD1yiuvuO/ftm2bBVjfffddnX9DRETE3yiHUg6lHEqk4WnBs4gAMHDgwLO6fufOnRQVFTFy5EiP82VlZfTr1++0jz3xW8T4+HgAevXqVevcwYMHSUhIYPPmzWzZsoU333zTfY1lWVRVVbFr1y66d+/Ohg0beOKJJ9i8eTP5+flUVVUBkJOT4/GN24l/u23btu6/06FDh1pxbt68mZ07dxIZGelxvqSkhOzsbPfx3/72Ny666CKCgoLYtm1brW/T+vTpQ0REhPs4JSUFl8vF3r176dixIwADBgyo9bdXrlzp7lNxouzsbEaNGsWIESPo1asXaWlpjBo1ihtuuIGYmBhiY2O5+eabSUtLY+TIkaSmpjJx4kT36z1RQUEB+/fvZ8iQIR7nhwwZwubNmz3OnWrsunXrVut5RUREAoVyKOVQJ1IOJXJ2VJQSEQBatmzpcRwUFOSe+l2tvLzcfdvlcgHw0Ucf0a5dO4/r7Hb7af9WaGio+3Z18lHXueqkyOVycccdd3DXXXfVeq4OHTpw/Phx0tLSSEtL480336R169bk5OSQlpbm0XfgTH/nZC6XiwEDBngkctVat27tvr1582aOHz9OUFAQubm5dSYuZ3Ly+LtcLq699lqeffbZWte2bduW4OBgli1bxpdffslnn33GSy+9xKOPPsq6devo3Lkzr776KnfddRdLly5lwYIF/PrXv2bZsmVceumlZx1btbMZOxERkUChHKo25VCelEOJnJqKUiJSp9atW/PNN994nMvMzHT/R7VHjx7Y7XZycnIYNmxYo8bSv39/vv32Wy688MI679+6dSuHDx/mmWeeoX379gC1mnye699dsGABbdq0wel01nnNkSNHuPnmm3n00UfJzc1l6tSpbNy4kfDwcPc1mzdvpri42H1u7dq1OBwOd6yn+tv//Oc/6dSp0yl38bHZbAwZMoQhQ4bw+OOP07FjR5YsWcLs2bMB6NevH/369WPOnDmkpKTw1ltv1UqonE4niYmJpKene7yP6enpDBo0qH4DJSIiIm7KoZRDKYcSqT81OheROg0fPpz169fzxhtvkJWVxdy5cz0SrMjISO6//37uvfdeXn/9dbKzs9m4cSMvvfQSr7/+eoPG8tBDD/Hll18ya9YsMjMzycrK4v3333c36ezQoQNhYWG89NJL/PDDD3zwwQc8/fTT5/13p06dSlxcHGPHjuXzzz9n165drFq1irvuuot9+/YBcOedd9K+fXt+/etf88ILL1BZWcn999/v8TxlZWXceuutfPvtt3z88cfMnTuXWbNmERR06n8Fz5w5kyNHjjB58mS+/vprsrOz+fTTT5kxYwaVlZWsW7eO//7v/2b9+vXk5OSwePFifvrpJ7p3786uXbuYM2cOGRkZ7Nmzh88++4ysrCy6d+9e59964IEHePbZZ1mwYAE7duzg4YcfJjMzk7vvvvu8x1BERCTQKIdSDqUcSqT+NFNKROqUlpbGY489xoMPPkhJSQm33HIL06ZNY+vWre5rnn76aVq3bs28efP44YcfiI6Opn///jzyyCMNGkvv3r1ZvXo1jz76KEOHDsWyLLp06cKkSZMA843ka6+9xiOPPMIf//hH+vfvz3PPPcd11113Xn83IiKCNWvW8NBDDzF+/HgKCwtp164dI0aMwOl08sYbb/Dxxx+zadMmQkJCCAkJ4R//+AeXXXYZ11xzDWPGjAFgxIgRJCcnc/nll1NaWsrkyZN54oknTvu3q795e+ihhxg1ahSlpaV07NiR0aNHExQUhNPpZM2aNbz44osUFBTQsWNHnn/+ecaMGUNeXh7bt2/n9ddf5/Dhw7Rt25aZM2dyxx131Pm37rrrLo4dO8Z9993HwYMH6dGjBx988AHJycnnNX4iIiKBSDmUcijlUCL1Z7NOXvAsIiIN5uabb+bo0aO89957vg5FREREpNlQDiUSGLR8T0REREREREREvE5FKRERERERERER8Tot3xMREREREREREa/TTCkREREREREREfE6FaVERERERERERMTrVJQSERERERERERGvU1FKRERERERERES8TkUpERERERERERHxOhWlRERERERERETE61SUEhERERERERERr1NRSkREREREREREvE5FKRERERERERER8br/Dw1zgi4t3/kFAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Unseen combinatorial perturbation\n",
"if holdout_combo:\n",
" pert = holdout_combo[0]\n",
" x_c, x_t, x_p = results[pert]\n",
" if x_t is not None:\n",
" plot_prediction_scatter(x_p, x_t, x_c, title=f'Unseen combo: {pert}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 7.2 Compare seen vs unseen metric distributions"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAB8IAAAGdCAYAAABpdbkkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAACggElEQVR4nOzdd3gU5fr/8c/uJtlUEkqAIDFEQHoHG9IE6QqioogaFD0WiohyNColNmxwUBQEPILHBipiFwSULtKrdEEBQRAknU3Z+f3BL/tlSSFlN1vyfl0Xl87ss/PcMzube+a5d2ZMhmEYAgAAAAAAAAAAAADAT5g9HQAAAAAAAAAAAAAAAK5EIRwAAAAAAAAAAAAA4FcohAMAAAAAAAAAAAAA/AqFcAAAAAAAAAAAAACAX6EQDgAAAAAAAAAAAADwKxTCAQAAAAAAAAAAAAB+hUI4AAAAAAAAAAAAAMCvUAgHAAAAAAAAAAAAAPgVCuEAAAAAAAAAAAAAAL9CIRwAAAAAABRo2bJlMplMmjBhQoXs3x907txZJpPJ02EAAAAAQLmjEA4AAADAp6Snp+vFF19U69atFR4eLqvVqtq1a6tDhw5KTEzUgQMHPB2iT5gwYYJMJpPmzJlTpjYV0aFDh2QymZz+BQUFKTY2VnfccYe2bdvmtr79sTBsMpnUuXNnT4dRLHnb32QyqW3btoW2+/777x3tyrpuQ4YMkclk0qFDh8q0HAAAAACoaAI8HQAAAAAAFFdqaqquvfZabdu2TfXq1dOdd96pqlWr6u+//9a6dev00ksvqW7duqpbt66nQ0UFULduXd15552SpLS0NK1du1Yff/yxPv/8cy1dulTt27f3cIS+74orrtCuXbtUrVo1T4fiJCAgQBs3btS2bdvUvHnzfK//97//VUBAgHJycjwQnbP//e9/ysjI8HQYAAAAAFDuKIQDAAAA8BlTpkzRtm3bdN9992nmzJn5bvd78OBB2Ww2D0WHiqZevXr5rsx+5pln9MILL+jpp5/WsmXLPBKXPwkNDVXDhg09HUY+PXr00Pfff693331XU6ZMcXrt77//1tdff63evXvrq6++8kyA57n00ks9HQIAAAAAeAS3RgcAAADgM37++WdJ0rBhwwp85m18fHyBRbMTJ07o0UcfVb169WS1WlWtWjXdfPPN2rFjR4H9lKR9nTp1VKdOHaWlpemRRx5RrVq1ZLVa1bx5c3322WfFWq/3339fJpNJzz77bIGvb9q0SSaTSYMHD3bM27dvn+655x7Fx8fLarWqSpUqatGihUaNGiXDMIrVb2nk3RZ8yJAh2r9/v2666SZVrlxZYWFh6tatm7Zu3ZrvPSWJNTU1VePHj1eTJk0UEhKiqKgo9ejRQ6tWrSownpK0z3tWcnZ2tiZMmKA6derIarXq8ssv17Rp01yyfUaMGCFJWr9+vdP8L7/8Ul27dlXlypUVHByspk2b6rXXXlNubq5Tuzlz5jhuR//111+rffv2ioiIUJ06dTRhwgR16dJFkpSUlOR0a/a822YX9Tzogm6xXVR/F1q1apU6d+6siIgIRUVF6eabb9b+/fvztfvpp5907733qkGDBgoPD1d4eLjatm2rmTNnOrXLu824JC1fvtxpffJux1/UreB37NihgQMHqnr16rJarYqPj9eoUaN06tSpfG1d8T09X+3atXX99dfrww8/VFZWltNrH3zwgbKysnTvvfcW+v6srCxNnjxZrVu3VlhYmCIiItShQ4d8hfM6derovffek3Tu71tBt1vPmz569Kjuvvtu1axZU2az2fFDjKL2iS+//FLdu3dX1apVFRwcrDp16uiuu+5y+luXnJyscePGqXHjxgoPD1elSpVUr149JSQk6Pfffy/JZgMAAACAcsUV4QAAAAB8RtWqVSVJe/fuVcuWLYv1ngMHDqhz5846cuSIunfvrv79++vEiROaP3++Fi1apKVLl+rKK68sdXtJys7OVvfu3fXPP//o5ptvVkZGhubOnauBAwdq4cKF6t69e5ExDhgwQA899JA+/PBDjRs3Lt/r77//viTprrvukiT9+eefuuKKK5Senq4+ffrotttuU3p6uvbt26dp06bptddeU0CAe0/3Dh06pKuuukpNmjTRvffeqwMHDujLL79Uly5dtGvXLtWoUaPEsZ4+fVodO3bUzp071b59ez344INKSUlxLPfTTz9V//79HTGUtH2eQYMGad26derVq5csFos++eQTDRs2TIGBgbr//vtdsn3OLzwmJibqpZde0iWXXKIBAwYoMjJSK1eu1JgxY/TLL7/o008/zff+Tz/9VD/88IP69u2rhx9+WCkpKercubMOHTqk9957T506dXIqhkZFRZUp3oL6O9/atWs1ceJE9ezZUyNGjNDOnTu1YMECrVy5UmvXrtVll13maPvyyy9r//79uuqqq3TTTTfpzJkzWrhwoR544AHt2bNHkyZNknSuyDt+/HglJSUpLi5OQ4YMcSzjYt/vVatWqUePHsrKytItt9yiOnXq6Oeff9brr7+ub775RmvXrs13O/Wyfk8vdO+992rRokX6+uuvdfPNNzvmv/vuu2rSpEm+vxN5bDabevbsqWXLlqlly5YaOnSosrOz9e2336pfv36aOnWqhg8fLkkaNWqU5syZo61bt+qRRx5xfM4X/lDh1KlTuvrqq1WlShXdfvvtOnv2rCpVqlRk/I899pgmT56sKlWqqH///qpevboOHz6sJUuWqE2bNmratKkMw1CPHj30yy+/qH379urZs6fMZrN+//13ffXVV7rrrrsUFxdXou0GAAAAAOXGAAAAAAAf8eWXXxqSjIiICOOxxx4zFi1aZPz9999Fvueaa64xLBaLsXDhQqf5e/bsMSIiIoxmzZqVqX1cXJwhyejXr59hs9kc85csWWJIMnr06FGsdbvzzjsNScYvv/ziND8nJ8eoUaOGUbNmTSMnJ8cwDMN44403DEnGlClT8i3n1KlTxepv/PjxhiRj9uzZJWpz8OBBQ5IhyXjppZec2j/zzDOGJGPixImOeSWJ9Y477jAkGbNmzXKa/9dffxmxsbFGdHS0kZmZWer2nTp1MiQZV155pZGcnOyYv3v3biMgIMBo0KBBodvifHnboKDPdty4cYYko0uXLoZhGMYPP/zgaJuWluZoZ7fbjQcffNCQZHz22WeO+bNnzzYkGWaz2Vi8eHG+5f/000+GJGP8+PEFxpa3jgVJSEgwJBkHDx4scX+SjLffftvptbffftuQZPTt29dp/m+//ZZvOdnZ2cb1119vWCwW4/fff3d6TZLRqVOnAmMuaH1zc3ONunXrGpLyfU/HjBljSDLuvfdep/mu+p7mxfPAAw8YNpvNqFq1qtG7d2/H6+vWrTMkGZMmTTKOHTtW4Lo99dRThiRj7Nixht1ud8xPSUkx2rZtawQFBRlHjx51zC/ocztf3udzzz33OP5GnK+gfeLrr782JBnNmjXL9zc0OzvbOH78uGEYhrFt2zZDktG/f/98yz179qyRmppa8IYCAAAAAC/ArdEBAAAA+Iwbb7xRkyZNkmEYmjRpknr06KFq1aqpXr16Gj58uPbt2+fUfvPmzVqzZo0SEhLUo0cPp9cuv/xy3X///dq+fbvjNsAlbX++//znPwoKCnJMd+3aVXFxcflukV2YvKu9P/jgA6f5P/zwg/766y/dfvvtslgsTq+FhITkW06VKlWK1V9ZxcfHa8yYMU7zhg4dKin/bcGli8f6999/a968ebruuut03333ObWrXr26xowZo5MnT2rJkiWlan++iRMnOl0t26BBA7Vv31579uxRamrqxVbdYf/+/ZowYYImTJigMWPGqGPHjnr22WcVHBysF154QZL05ptvSpJmzpypsLAwx3tNJpNeeuklmUwmffzxx/mW3a9fP3Xr1q3YsZTVxfrL2//Pd//996t+/fr69ttvdfLkScf8+Pj4fO8PCAjQgw8+qNzcXP30009linX16tU6cOCAevXqle97Om7cOFWpUkUfffRRvluWS2X/np4vKChIgwcP1qJFi/Tnn39KOnc1eGBgoOP7fCG73a7p06erbt26jtvb54mIiNC4ceOUlZWlzz//vMSxvPLKK/n+RhQm71EAr7/+uuNOG3kCAgIcd3TIU9D312q1Kjw8vERxAgAAAEB54tboAAAAAHzK6NGjdf/992vhwoVas2aNNmzYoF9++UVvvfWW/vvf/2revHm68cYbJZ27nbMk/fXXXwU+Y3j37t2O/zZt2rTE7fNERUUVWPyrXbu247nmF9O1a1fFxMRo7ty5mjx5suN24XmF8fMLazfccIMSExM1bNgwLV26VD179lSnTp2cbk/tbi1btpTZ7Pzb6tq1a0uSzpw5U+JY169fr9zcXNlstgK3fd6PHHbv3q2+ffuWuP352rRpk6/9+bFHREQUvfL/34EDB5SUlCRJCgwMVI0aNXTHHXfoySefVLNmzSSd2wfDwsL07rvvFriMkJAQx351viuuuKJYMbjKxfpr3759vs/bbDarffv22rdvn7Zu3eoopKempuq1117TF198oQMHDig9Pd3pfXlF49LavHmzJDndGj5P3vPIf/jhB+3Zs8fxOUiu+Z5e6N5779Ubb7yh9957T48++qjmzp2rvn37Kjo6WsePH8/Xfs+ePfrnn39Uq1Ytx75zvrwfFBS0TxQlPj4+363gi7Ju3TpZrVZ16tSpyHaNGjVS8+bN9fHHH+vIkSPq37+/OnfuXOD3HwAAAAC8DYVwAAAAAD4nIiJCt956q2699VZJUnJysp566ilNmzZNQ4cO1dGjRxUUFKTTp09Lkr799lt9++23hS4vr1BX0vZ5IiMjC2wXEBAgu91erHWyWCy64447NGnSJC1atEh9+vRRWlqavvjiCzVu3FitW7d2tK1Tp47Wrl2rCRMm6LvvvtMnn3wiSWrYsKGeffZZx3YpSl4Rq6j48l4rqOBV0POH84r3ubm5JY41b9uvXr1aq1evLjSmCz+r4rYvTewX06NHDy1cuLDINqdPn1ZOTk6BRc+iYrzwilx3u1h/hb2eNz85OVmSlJWVpc6dO2vTpk1q1aqV7rrrLlWtWlUBAQGO55vbbLYyxZr3/PLCYoqJiXFql8cV39MLtWjRQq1bt9bs2bN16aWX6syZM7r33nsLbZ+33+7cuVM7d+4stF1B+0RRSrq/JCcn65JLLrloMTsgIEA//vijJkyYoPnz5+uxxx6TJEVHR2v48OF6+umni30VOgAAAACUN36+CwAAAMDnRUZG6s0331RcXJz+/vtvbd++XdL/FTynTp0qwzAK/ZeQkFCq9q524e3R58+fr4yMjAJvs9y0aVN99tlnOn36tH7++WeNGzdOx48f12233VZkYThPXlHw1KlThbb5+++/ndqWVnFizdv2jz32WJHbfvz48aVq7ymVKlVS1apVi4zx4MGD+d53/i2zSyKvsJmTk5PvtbxidUEu1t9ff/1V5Py8feTLL7/Upk2bNHToUG3atEnTp0/X888/rwkTJqhnz57FWoeLyfvsC4sp70rsgn7w4A5Dhw7Vvn379MQTT6hWrVrq1atXoW3zYrr55puL3Cdmz55dohhKur9ERUXp+PHjxfoBQNWqVTV16lQdPXpUv/76q958801VqVJF48eP1yuvvFKifgEAAACgPFEIBwAAAOAXTCaT0zOYJenKK6+UpGLf9rik7V2tRYsWatasmb788kulpqbqgw8+kMlk0uDBgwt9T2BgoK666iolJSXpjTfekGEY+uabby7aV94to4ta17zXmjdvXsI1KXms7dq1k8lkKva2L2l7T7nyyit16tSpfM+vL628q28Lu3K9cuXKkqSjR486zbfb7dq6dWup+129enW+oqndbteaNWtkMpnUokULSeduFy+de+b4hVauXFngss1mc4muxG/VqpUkadmyZfleS09P14YNGxQSEqIGDRoUe5llcccddyg4OFhHjx7V3XffXeQV0o0aNVKlSpW0YcMGZWdnF2v5F/vMS+OKK66QzWbT8uXLi/0ek8mkRo0aadiwYVq8eLEk6auvvnJZTAAAAADgahTCAQAAAPiMGTNmaP369QW+9sUXX2jXrl2KiopyPL/7iiuu0JVXXqmPP/5Y8+bNy/ceu93uVAgqaXt3uOuuu5SZmak33nhDP/74ozp16qTY2FinNhs3bsx322fp/66QDQ4Ovmg/HTt2VJ06dfTVV19p6dKl+V6fPXu2tmzZomuvvbbA5yoXV3FjrVmzpgYOHKg1a9bo1VdflWEY+d7zyy+/KCMjo1TtPWXkyJGSzj1LuqCr748fP65du3YVe3lVqlSRJB0+fLjA19u1aydJmjNnjtP8yZMnF3jleXHt3btXs2bNcpo3a9Ys7d27V3369FF0dLQkKS4uTpK0atUqp7bLly/P9/48VapU0ZEjR4odS/v27VW3bl19//33WrJkidNrzz//vE6dOqVBgwYpKCio2Mssi6ioKC1atEgLFizQo48+WmTbgIAAPfTQQ/r999/1+OOPF1gM37Fjh06cOOGYvthnXhrDhg2TJD3yyCOO27XnycnJcXw/Dx06pEOHDuV7f0n+1gAAAACAp/CMcAAAAAA+4/vvv9eDDz6oevXqqX379qpVq5bS09O1efNmrVy5UmazWdOmTZPVanW85+OPP1aXLl10++23a8qUKWrdurVCQkL0xx9/6Oeff9bJkyd19uzZUrd3tTvuuENPPvmkkpKSZLfbC7wt+vvvv68ZM2aoY8eOqlu3ripVqqRff/1V3333napUqaJ77rnnov0EBATof//7n3r37q3u3burZ8+eat68uXJzc7Vu3TotX75cNWrU0DvvvFOm9SlJrNOmTdOePXv073//W++//76uvvpqRUVF6fDhw9qwYYP27dunY8eOKTQ0tFTtPaFnz54aO3asnnvuOdWrV089e/ZUXFycTp06pf3792vlypV6/vnn1ahRo2Itr2HDhqpVq5bmzp0rq9Wq2rVry2QyacSIEYqMjNQ999yjV155RRMmTNCWLVtUt25dbdiwQTt27FCnTp1K/UOOHj16aOTIkfruu+/UpEkT7dy5U19//bWqVaum119/3dHuhhtuUJ06dfTKK69ox44datq0qfbs2aNvvvlGN910kz777LN8y77uuuv0ySefqH///mrVqpUsFotuvPHGQu9EYDabNWfOHPXo0UO9e/fWrbfeqri4OP38889atmyZ6tatq5deeqlU61laHTt2LHbbpKQkbdq0SW+88Ya+/fZbdezYUdWrV9fRo0e1fft2bd26VT///LOqV68u6dz2ee211/Svf/1LN998s8LCwhQXF1fg34bi6t27tx5//HG99tprql+/vm666SZHDEuXLtXjjz+uUaNGacuWLRowYICuuOIKNW7cWDVr1tTRo0f1xRdfyGw2X7TwDwAAAACeRCEcAAAAgM94+eWX1b59ey1evFgrVqzQsWPHJEmXXHKJEhISNGLECLVp08bpPfHx8dq8ebMmT56sL774QrNnz5bFYlFMTIw6duyoW265pUztXe2SSy7RddddpyVLlig4OLjA/gYNGqSzZ89q9erVWrdunWw2m2rXrq2HHnpIY8aM0aWXXlqsvjp06KDNmzfr1Vdf1ZIlS7R06VKZzWbFxcVp9OjRGjNmjGrWrFmm9SlJrFWqVNGaNWv05ptvat68efrwww9lt9tVs2ZNtWjRQmPHjlW1atVK3d5Tnn32WXXs2FFvvPGGli5dqjNnzqhq1aqKj4/XhAkTirz1/YUsFos+//xzPfHEE/r444+VmpoqSbrzzjsVGRmpGjVq6KefftJjjz2mH374QQEBAerSpYvWrl2r559/vtSF8KuuukrPPPOMnnnmGb3xxhuyWCzq37+/XnnlFV122WWOduHh4frxxx81ZswYrVixQsuWLVOTJk304YcfqkaNGgUWwvMK6T/++KO+/vpr2e121a5du8hb8l977bVau3atnn32Wf3www9KTk5WrVq19Mgjj+iZZ57xis+9MFarVd9//73++9//6n//+5/mz58vm82mGjVqqHHjxnrwwQcdjy6QpF69eumVV17RrFmzNGnSJGVnZ6tTp05lKoRL0quvvqqrr75ab775pj777DOdPXtWMTExuu6663T99ddLktq2basnnnhCy5Yt07fffqszZ86oZs2a6tatm8aMGaOrrrqqTDEAAAAAgDuZjILuHwcAAAAAAAAAAAAAgI/iGeEAAAAAAAAAAAAAAL9CIRwAAAAAAAAAAAAA4FcohAMAAAAAAAAAAAAA/AqFcAAAAAAAAAAAAACAX6EQDgAAAAAAAAAAAADwKxTCAQAAAAAAAAAAAAB+hUI4AAAAAAAAAAAAAMCvUAgHAAAAAAAAAAAAAPgVCuEAAAAAAAAAAAAAAL9CIRwAAAAAAAAAAAAA4FcohAMAAAAAAAAAAAAA/AqFcAAAAAAAAAAAAACAX6EQDgAAAAAAAAAAAADwKxTCAQAAAAAAAAAAAAB+hUI4AAAAAAAAAAAAAMCvUAgHAAAAAAAAAAAAAPgVCuEAAAAAAAAAAAAAAL9CIRwAAAAAAAAAAAAA4FcohAMAAAAAAAAAAAAA/AqFcAAAAAAAAAAAAACAX6EQDgAAAAAAAAAAAADwKxTCAQAAAAAAAAAAAAB+hUI4AAAAAAAAAAAAAMCvUAgHAAAAAAAAAAAAAPgVCuEAAAAAAAAAAAAAAL9CIRwAAAAAAAAAAAAA4FcohAMAAAAAAAAAAAAA/AqFcAAAAAAAAAAAAACAX6EQDgAAAAAAAAAAAADwKxTCAQAAAAAAAAAAAAB+hUI4AAAAAAAAAAAAAMCvUAgHAAAAAAAAAAAAAPgVCuEAAAAAAAAAAAAAAL9CIRwAAAAAAAAAAAAA4FcohAMAAAAAAAAAAAAA/AqFcAAAAAAAAAAAAACAX6EQDgAAAAAAAAAAAADwKxTCAQAAAAAAAAAAAAB+hUI4AAAAAAAAAAAAAMCvUAgHAAAAAAAAAAAAAPgVCuEAAAAAAAAAAAAAAL9CIRyAVzCZTJowYUKJ33fo0CGZTCbNmTPH5TEBAOBN6tSpoyFDhng6DAAA4AL+lNeHDBmiOnXqeDoMAAAAIB8K4QD8znfffVeqojoAwDesWbNGEyZM0JkzZ9zaz+7du/Xvf/9bLVu2VEREhGJiYtSnTx9t2LChwPZHjx7VwIEDFRUVpUqVKqlfv3767bff3BojAAC+jrwOAAAAwF0ohAPwO999952SkpI8HQYAwE3WrFmjpKQktw+Yv/POO5o1a5batm2rSZMmafTo0dqzZ4+uuuoqLVmyxKltWlqaunTpouXLl+upp55SUlKSNm/erE6dOunUqVNujRMAAF9GXvd9s2bN0p49ezwdBgAAAJBPgKcDAOBa6enpCgsL83QYAAD4vEGDBmnChAkKDw93zLv33nvVqFEjTZgwQd26dXPMnzZtmvbt26d169apXbt2kqRevXqpadOmmjRpkl588cVyj99XGYahs2fPKiQkxNOhAAD8CHndfQIDAz0dAgAAAFAgrggHXGDChAkymUzavXu3Bg4cqEqVKqlq1ap65JFHdPbsWae2H3zwgdq0aaOQkBBVqVJFt99+uw4fPuzUZuXKlbr11lt16aWXymq1KjY2Vo8++qgyMzOd2g0ZMkTh4eE6cOCAevfurYiICA0ePFiStG/fPt18882qWbOmgoODVbt2bd1+++1KTk52vD8nJ0fPPfec6tatK6vVqjp16uipp56SzWZz6qdOnTrq27evVq1apSuuuELBwcG67LLL9L///a/E28pms+nRRx9VdHS0IiIidOONN+rIkSMFtj169Kjuvfde1ahRQ1arVU2aNNG7775b5PKHDBmit956S9K5547n/cvz2muv6ZprrlHVqlUVEhKiNm3a6LPPPivxegAAPGPChAkaM2aMJCk+Pt7xd/7QoUMlzms//PCDWrZsqeDgYDVu3Fiff/65U7s2bdo4DZZLUtWqVdWhQwft2rXLaf5nn32mdu3aOQbLJalhw4bq2rWrPvnkkxKto2EYev7551W7dm2FhoaqS5cu2rlzZ4Ftz5w5o1GjRik2NlZWq1X16tXTyy+/LLvdXqI+O3furKZNm2rjxo265pprFBISovj4eL399tv52tpsNo0fP1716tVzHKf8+9//zredZ8+ereuuu07Vq1eX1WpV48aNNX369HzLy/s8Fi1apLZt2yokJEQzZsyQJC1evFjXXnutoqKiFB4ergYNGuipp55yev+JEyc0dOhQ1ahRQ8HBwWrRooXee+89pzaHDh2SyWTSa6+9ppkzZzr2kXbt2mn9+vUl2lYAANchrztzVV6XpF9++UW9e/dW5cqVFRYWpubNm+v11193avPjjz+qQ4cOCgsLU1RUlPr165dvW6SmpmrUqFGqU6eOrFarqlevruuvv16bNm1ytLnwGeElzbu7d+/WLbfcoipVqig4OFht27bVV199VeJ1BgCgtPLG9/fu3as777xTkZGRio6O1tixY2UYhg4fPqx+/fqpUqVKqlmzpiZNmuT0/qlTp6pJkyYKDQ1V5cqV1bZtW3300UdObUoz1g2g7LgiHHChgQMHqk6dOpo4caLWrl2rN954Q//884+jYPzCCy9o7NixGjhwoO677z6dPHlSU6dOVceOHbV582ZFRUVJkj799FNlZGTooYceUtWqVbVu3TpNnTpVR44c0aeffurUZ05Ojnr06KFrr71Wr732mkJDQ5WVlaUePXrIZrNpxIgRqlmzpo4ePapvvvlGZ86cUWRkpCTpvvvu03vvvadbbrlFjz32mH755RdNnDhRu3bt0oIFC5z62b9/v2655RYNHTpUCQkJevfddzVkyBC1adNGTZo0KfY2uu+++/TBBx/ojjvu0DXXXKMff/xRffr0ydfur7/+0lVXXSWTyaThw4crOjpa33//vYYOHaqUlBSNGjWqwOU/8MAD+vPPP7V48WK9//77+V5//fXXdeONN2rw4MHKysrS3Llzdeutt+qbb74pMA4AgHcZMGCA9u7dq48//lj/+c9/VK1aNUlSdHR0ifLavn37dNttt+nBBx9UQkKCZs+erVtvvVULFy7U9ddfX2QMx48fd/QrSXa7Xdu2bdO9996br+0VV1yhH374QampqYqIiCjWOo4bN07PP/+8evfurd69e2vTpk3q3r27srKynNplZGSoU6dOOnr0qB544AFdeumlWrNmjRITE3Xs2DFNmTKlWP3l+eeff9S7d28NHDhQgwYN0ieffKKHHnpIQUFBjnWz2+268cYbtWrVKv3rX/9So0aNtH37dv3nP//R3r179cUXXziWN336dDVp0kQ33nijAgIC9PXXX+vhhx+W3W7XsGHDnPres2ePBg0apAceeED333+/GjRooJ07d6pv375q3ry5nn32WVmtVu3fv1+rV692vC8zM1OdO3fW/v37NXz4cMXHx+vTTz/VkCFDdObMGT3yyCNO/Xz00UdKTU3VAw88IJPJpFdeeUUDBgzQb7/9xtVsAOAB5PX/48q8vnjxYvXt21cxMTF65JFHVLNmTe3atUvffPONIzcuWbJEvXr10mWXXaYJEyYoMzNTU6dOVfv27bVp0yZHYfvBBx/UZ599puHDh6tx48Y6deqUVq1apV27dql169ZFxlGcvLtz5061b99el1xyiZ588kmFhYXpk08+Uf/+/TV//nzddNNNxV5vAADK6rbbblOjRo300ksv6dtvv9Xzzz+vKlWqaMaMGbruuuv08ssv68MPP9Tjjz+udu3aqWPHjpo1a5ZGjhypW265xXFh3LZt2/TLL7/ojjvukFT6sW4ALmAAKLPx48cbkowbb7zRaf7DDz9sSDK2bt1qHDp0yLBYLMYLL7zg1Gb79u1GQECA0/yMjIx8fUycONEwmUzG77//7piXkJBgSDKefPJJp7abN282JBmffvppoTFv2bLFkGTcd999TvMff/xxQ5Lx448/OubFxcUZkowVK1Y45p04ccKwWq3GY489VmgfhfX58MMPO82/4447DEnG+PHjHfOGDh1qxMTEGH///bdT29tvv92IjIx0bKODBw8akozZs2c72gwbNswo7M/bhds2KyvLaNq0qXHdddcVez0AAJ716quvGpKMgwcPOuaVJq/Nnz/fMS85OdmIiYkxWrVqVWTfK1asMEwmkzF27FjHvJMnTxqSjGeffTZf+7feesuQZOzevbtY63bixAkjKCjI6NOnj2G32x3zn3rqKUOSkZCQ4Jj33HPPGWFhYcbevXudlvHkk08aFovF+OOPP4rVp2EYRqdOnQxJxqRJkxzzbDab0bJlS6N69epGVlaWYRiG8f777xtms9lYuXKl0/vffvttQ5KxevVqx7yCjmd69OhhXHbZZU7z8j6PhQsXOs3/z3/+Y0gyTp48WWjcU6ZMMSQZH3zwgWNeVlaWcfXVVxvh4eFGSkqKYRj/d7xQtWpV4/Tp0462X375pSHJ+PrrrwvtAwDgXuT1c1yV13Nycoz4+HgjLi7O+Oeff5xeOz+GvBx/6tQpx7ytW7caZrPZuPvuux3zIiMjjWHDhhXZZ0JCghEXF+eYLkne7dq1q9GsWTPj7NmzTnFec801Rv369Yu1zgAAlFXe+P6//vUvx7ycnByjdu3ahslkMl566SXH/H/++ccICQlx5PF+/foZTZo0KXL5xR3rBuB63BodcKELr24aMWKEJOm7777T559/LrvdroEDB+rvv/92/KtZs6bq16+vn376yfG+85+JmZ6err///lvXXHONDMPQ5s2b8/X70EMPOU3nXfG9aNEiZWRkFBjrd999J0kaPXq00/zHHntMkvTtt986zW/cuLE6dOjgmI6OjlaDBg3022+/Fbj8ovocOXKk0/wLf/FmGIbmz5+vG264QYZhOG2vHj16KDk52ek2bCVx/rb9559/lJycrA4dOpR6eQAA71DSvFarVi2nK4wqVaqku+++W5s3b9bx48cL7OPEiRO64447FB8fr3//+9+O+XmPLrFarfneExwc7NTmYpYsWaKsrCyNGDHC6dEeBf06/NNPP1WHDh1UuXJlp1zZrVs35ebmasWKFcXqM09AQIAeeOABx3RQUJAeeOABnThxQhs3bnT02ahRIzVs2NCpz+uuu06SCj2eSU5O1t9//61OnTrpt99+c3pUi3Tudrg9evRwmpd3p5wvv/yy0FvCfvfdd6pZs6YGDRrkmBcYGKiRI0cqLS1Ny5cvd2p/2223qXLlyo7pvGObkhzPAADcj7xe+ry+efNmHTx4UKNGjXLk0jx5MRw7dkxbtmzRkCFDVKVKFcfrzZs31/XXX+/Y/tK5fPzLL7/ozz//LFb/57tY3j19+rR+/PFHDRw4UKmpqY51PnXqlHr06KF9+/bp6NGjJe4XAIDSuu+++xz/b7FY1LZtWxmGoaFDhzrmR0VFOY2LR0VF6ciRI4U+dsudY90ALo5bowMuVL9+fafpunXrymw269ChQzKbzTIMI1+bPOffjvOPP/7QuHHj9NVXX+mff/5xanfhwHFAQIBq167tNC8+Pl6jR4/W5MmT9eGHH6pDhw668cYbHc83kaTff/9dZrNZ9erVc3pvzZo1FRUVpd9//91p/qWXXpov5sqVK+eLryh5fdatW9dpfoMGDZymT548qTNnzmjmzJmaOXNmgcs6ceJEsfs93zfffKPnn39eW7ZscXq23PmDEgAA31PSvFavXr18f/svv/xySeeea1mzZk2n19LT09W3b1+lpqZq1apVTs8YzSv4XvjMUkk6e/asU5virIeU/5giOjraaSBZOncb2G3btik6OrrAZZU0V9aqVUthYWFO887fJldddZX27dunXbt2FavP1atXa/z48fr555/z/TAvOTnZcUwinTt2udBtt92md955R/fdd5+efPJJde3aVQMGDNAtt9wis/nc73l///131a9f3zGdp1GjRo7Xz3fh8UzeNi3J8QwAwP3I6/kVN68fOHBAktS0adOLxnXhubh0LocuWrRI6enpCgsL0yuvvKKEhATFxsaqTZs26t27t+6++25ddtllF43lYnl3//79MgxDY8eO1dixYwtcxokTJ3TJJZdctC8AAFzhwtwVGRmp4OBgp8eo5M0/deqUJOmJJ57QkiVLdMUVV6hevXrq3r277rjjDrVv316Se8e6AVwchXDAjc4/Ebfb7TKZTPr+++9lsVjytc078c7NzdX111+v06dP64knnlDDhg0VFhamo0ePasiQIfmuiLJarfkGfyVp0qRJGjJkiL788kv98MMPGjlypOPZ5ecXzotbAC4oZuncL9pcLW8d77zzTiUkJBTYpnnz5iVe7sqVK3XjjTeqY8eOmjZtmmJiYhQYGKjZs2fro48+KlPMAADv4I4fNmVlZWnAgAHatm2bFi1alG9guUqVKrJarTp27Fi+9+bNq1Wrlsvjstvtuv76652uYjtfXgHA1X02a9ZMkydPLvD12NhYSecG4bt27aqGDRtq8uTJio2NVVBQkL777jv95z//yXc8U1BBISQkRCtWrNBPP/2kb7/9VgsXLtS8efN03XXX6Ycffij02KQo5Xk8AwAoO/L6/3FHXi+OgQMHqkOHDlqwYIF++OEHvfrqq3r55Zf1+eefq1evXkW+92J5N+944PHHH893Z5g8F/4YAgAAdyood10snzVq1Eh79uzRN998o4ULF2r+/PmaNm2axo0bp6SkJLeNdQMoHgrhgAvt27fP6Yqm/fv3y263q06dOrJYLDIMQ/Hx8UWewG7fvl179+7Ve++9p7vvvtsxf/HixSWOp1mzZmrWrJmeeeYZrVmzRu3bt9fbb7+t559/XnFxcbLb7dq3b5/jqilJ+uuvv3TmzBnFxcWVuL+LyevzwIEDTr8837Nnj1O76OhoRUREKDc3V926dStxP4UNlsyfP1/BwcFatGiR023uZs+eXeI+AACeU9Df+ZLmtbwrkM5f1t69eyVJderUccyz2+26++67tXTpUn3yySfq1KlTvr7NZrOaNWumDRs25Hvtl19+0WWXXaaIiIhirVtenPv27XO60urkyZP5rlquW7eu0tLSSpUrC/Lnn386rv7Kc+E2qVu3rrZu3aquXbsWWZz4+uuvZbPZ9NVXXzn9ov78W6cXh9lsVteuXdW1a1dNnjxZL774op5++mn99NNP6tatm+Li4rRt2zbZ7XanHwbu3r1bktxyPAMAcC3y+jmuyut5d2DbsWNHocvKi+vCc3HpXA6tVq2a0/FATEyMHn74YT388MM6ceKEWrdurRdeeOGihfCLydsmgYGBLjueAQDAE8LCwnTbbbfptttuc/zo7oUXXlBiYmKZx7oBlA3PCAdc6K233nKanjp1qiSpV69eGjBggCwWi5KSkvJddWQYhuNWKnm/MDu/jWEYev3114sdR0pKinJycpzmNWvWTGaz2XF7t969e0uSpkyZ4tQu7wqvPn36FLu/4so7SX7jjTec5l8Yg8Vi0c0336z58+drx44d+ZZz8uTJIvvJO2E/c+ZMvuWaTCbl5uY65h06dEhffPFFMdcAAOANCvo7X9K89ueff2rBggWO6ZSUFP3vf/9Ty5YtnW6fOmLECM2bN0/Tpk3TgAEDCo3plltu0fr1650Gzffs2aMff/xRt956a7HXrVu3bgoMDNTUqVOdjgUuXC/p3BVaP//8sxYtWpTvtTNnzuQ7FriYnJwczZgxwzGdlZWlGTNmKDo6Wm3atHH0efToUc2aNSvf+zMzM5Weni6p4OOZ5OTkEv347PTp0/nmtWzZUpKcjmeOHz+uefPmOa3H1KlTFR4eXmCBAwDgXcjr57gqr7du3Vrx8fGaMmVKvnPivBhiYmLUsmVLvffee05tduzYoR9++MGx/XNzc/M9nq169eqqVatWgbeOL6nq1aurc+fOmjFjRoFX4F/s3B8AAG+QN66fJygoSI0bN5ZhGMrOzi7zWDeAsuGKcMCFDh48qBtvvFE9e/bUzz//rA8++EB33HGHWrRoIUl6/vnnlZiYqEOHDql///6KiIjQwYMHtWDBAv3rX//S448/roYNG6pu3bp6/PHHdfToUVWqVEnz588v0bMrf/zxRw0fPly33nqrLr/8cuXk5Oj99993JF1JatGihRISEjRz5kydOXNGnTp10rp16/Tee++pf//+6tKli8u3T8uWLTVo0CBNmzZNycnJuuaaa7R06VLt378/X9uXXnpJP/30k6688krdf//9aty4sU6fPq1NmzZpyZIlBQ6O58kbrB85cqR69Oghi8Wi22+/XX369NHkyZPVs2dP3XHHHTpx4oTeeust1atXT9u2bXP5+gIA3CPv7/zTTz+t22+/XYGBgbrhhhtKlNcuv/xyDR06VOvXr1eNGjX07rvv6q+//nIq1E6ZMkXTpk3T1VdfrdDQUH3wwQdOy7jpppscg/cPP/ywZs2apT59+ujxxx9XYGCgJk+erBo1auixxx4r9rpFR0fr8ccf18SJE9W3b1/17t1bmzdv1vfff5/vmWRjxozRV199pb59+2rIkCFq06aN0tPTtX37dn322Wc6dOhQvvcUpVatWnr55Zd16NAhXX755Zo3b562bNmimTNnKjAwUJJ011136ZNPPtGDDz6on376Se3bt1dubq52796tTz75RIsWLVLbtm3VvXt3BQUF6YYbbtADDzygtLQ0zZo1S9WrVy9woLsgzz77rFasWKE+ffooLi5OJ06c0LRp01S7dm1de+21kqR//etfmjFjhoYMGaKNGzeqTp06+uyzz7R69WpNmTKl2FfsAQA8h7x+jqvyutls1vTp03XDDTeoZcuWuueeexQTE6Pdu3dr586djkL7q6++ql69eunqq6/W0KFDlZmZqalTpyoyMlITJkyQJKWmpqp27dq65ZZb1KJFC4WHh2vJkiVav369Jk2aVOztUJS33npL1157rZo1a6b7779fl112mf766y/9/PPPOnLkiLZu3eqSfgAAcJfu3burZs2aat++vWrUqKFdu3bpzTffVJ8+fRznpGUZ6wZQRgaAMhs/frwhyfj111+NW265xYiIiDAqV65sDB8+3MjMzHRqO3/+fOPaa681wsLCjLCwMKNhw4bGsGHDjD179jja/Prrr0a3bt2M8PBwo1q1asb9999vbN261ZBkzJ4929EuISHBCAsLyxfPb7/9Ztx7771G3bp1jeDgYKNKlSpGly5djCVLlji1y87ONpKSkoz4+HgjMDDQiI2NNRITE42zZ886tYuLizP69OmTr59OnToZnTp1KtG2yszMNEaOHGlUrVrVCAsLM2644Qbj8OHDhiRj/PjxTm3/+usvY9iwYUZsbKwRGBho1KxZ0+jatasxc+ZMR5uDBw/m2y45OTnGiBEjjOjoaMNkMhnn/6n773//a9SvX9+wWq1Gw4YNjdmzZzs+PwCA73juueeMSy65xDCbzYYk4+DBgyXOa4sWLTKaN2/uyAmffvqpU7uEhARDUqH/Dh486NT+8OHDxi233GJUqlTJCA8PN/r27Wvs27evxOuWm5trJCUlGTExMUZISIjRuXNnY8eOHUZcXJyRkJDg1DY1NdVITEw06tWrZwQFBRnVqlUzrrnmGuO1114zsrKyit1np06djCZNmhgbNmwwrr76aiM4ONiIi4sz3nzzzXxts7KyjJdfftlo0qSJYbVajcqVKxtt2rQxkpKSjOTkZEe7r776ymjevLkRHBxs1KlTx3j55ZeNd999N9+2K+w4Y+nSpUa/fv2MWrVqGUFBQUatWrWMQYMGGXv37nVq99dffxn33HOPUa1aNSMoKMho1qyZ03GBYfzf8cKrr76ar5+CjkEAAOWLvH6Oq/K6YRjGqlWrjOuvv96IiIgwwsLCjObNmxtTp051arNkyRKjffv2RkhIiFGpUiXjhhtuMH799VfH6zabzRgzZozRokUL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b57sdrveeecdmUwmSdLs2bMVFRWlZcuWqXv37ho/frwmTZqkAQMGSJLi4+P166+/asaMGUpISHAs6/HHH1efPn0knTvAaNKkifbv36+GDRuWxyaAj2BfBQB4wpo1a9SvXz/H3/86dero448/1rp16zwcmfcjdwMAAADwVZzPnEMhHADg05o3b+74/7CwMFWqVEknTpyQJD300EO6+eabtWnTJnXv3l39+/fXNddcI0naunWr9u/fr4iICKflnT17VgcOHFB6eroOHDigoUOH6v7773e8npOTo8jIyEJjiImJkSSdOHGCAUo4YV8FAHjCNddco5kzZ2rv3r26/PLLtXXrVq1atUqTJ0/2dGhej9wNAAAAwFdxPnMOhXAAgNcym835nl+ZnZ3tNB0YGOg0bTKZZLfbJUm9evXS77//ru+++06LFy9W165dNWzYML322mtKS0tTmzZt9OGHH+brNzo6WmlpaZKkWbNm6corr3R63WKxFBpD3q/k8mJAxcC+CgDwVk8++aRSUlLUsGFDWSwW5ebm6oUXXtDgwYMLfY/NZpPNZnNMp6SklEeo5YrcDQAAAMBXcT5TfBTCAQBeKzo6WseOHXNMp6Sk6ODBgyVeRkJCghISEtShQweNGTNGr732mlq3bq158+apevXqqlSpUr73RUZGqlatWvrtt9+KHCgGJPZVAID3+uSTT/Thhx/qo48+UpMmTbRlyxaNGjVKtWrVcrpl3fkmTpyopKSkco60fJG7AQAAAPgqzmeKz+zpAAAAKMx1112n999/XytXrtT27duVkJCQ71dlRRk3bpy+/PJL7d+/Xzt37tQ333yjRo0aSZIGDx6satWqqV+/flq5cqUOHjyoZcuWaeTIkTpy5Iikc88tmThxot544w3t3btX27dv1+zZs7mVKPJhXwUAeKsxY8boySef1O23365mzZrprrvu0qOPPqqJEycW+p7ExEQlJyc7/h0+fLgcIy4f5G4AAAAAvorzmeLjinAAqODM1lCv7ScxMVEHDx5U3759FRkZqeeee65Ev2wLCgpSYmKiDh06pJCQEHXo0EFz586VJIWGhmrFihV64oknNGDAAKWmpuqSSy5R165dHb90u++++xQaGqpXX31VY8aMUVhYmJo1a6ZRo0aVeF1Qduyr7KsAgJLLyMiQ2ez8G3iLxVLk7eisVqusVmuZ+yZ3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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_metrics = ['pearson_delta', 'top20_de_pearson', 'top20_de_cosine', 'mse']\n",
"available_metrics = [m for m in plot_metrics if m in metrics_df.columns]\n",
"\n",
"fig, axes = plt.subplots(1, len(available_metrics), figsize=(5 * len(available_metrics), 4))\n",
"if len(available_metrics) == 1:\n",
" axes = [axes]\n",
"\n",
"colors = {'seen': '#4C72B0', 'unseen': '#DD8452'}\n",
"\n",
"for ax, metric in zip(axes, available_metrics):\n",
" for split in ['seen', 'unseen']:\n",
" sub = metrics_df[metrics_df['split'] == split]\n",
" if len(sub) == 0:\n",
" continue\n",
" vals = sub[metric].dropna()\n",
" ax.hist(vals, bins=15, alpha=0.6, label=split, color=colors[split], edgecolor='white')\n",
" ax.set_xlabel(metric)\n",
" ax.set_ylabel('Count')\n",
" ax.legend()\n",
" ax.set_title(metric)\n",
"\n",
"plt.suptitle('Seen vs Unseen Perturbation Metrics', y=1.02, fontsize=14)\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 7.3 Compare single vs combinatorial perturbation metrics"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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y1Mte3v7W95NKkmXLl2SpDwfXZyTpUuXytHRUVOmTLF4XHPLli0VHBys2NhYrV27Ntt848aNU+3atc2f/f391aFDB8XFxem1116zeMfw3Xffrdq1a+f6iPdx48ZZxO3k5KR3331XkrI9zjovYWFhFndVBwYGqn379jp58qSuXbtmbvfx8ZGHh0e2+YcNGyYvLy9t2rQp32OuW7dOcXFxGjlypJo1a2Zut7Oz0/vvv5/jI7mlG+v4/vvv3/Iu1yze3t6qUKFCtvYuXbqocePGBYo5L5988okmTZqkiRMnatSoUWrYsKGio6M1YMAAdezYUQcOHNCOHTsUHBxs3n+z1K9fX48//riOHDmS4yPS33//fbm6ulolzvy41XhvvPGG+c5/6cY2fv3112UYhvlx+FntRb3ts8Z7//33LZ42UaNGDT333HNKT0/X//3f/2WbL79/H/Nr2LBhcnR01KeffirpxmsEwsPD9e9//zvXp2B89tlnio+PV1hYWLanEjz88MNq1aqVli9fXuBYnnjiCTVt2jRffX/++Wft3btXHTt2tHj6Q5ac/i7mtG/8828+AAAAgDsXj0YHAAAAkKMJEybo8ccf14YNG7Rjxw7t3btXu3fv1kcffaRFixaZH/ebH61bt87WllXUiI2NNbdlFVk7dOiQrf/NhaJb2bVrlySZH/H8T46Ojvl61LqdnZ0effRRvf/++/r+++81YMAASdLmzZsVFRWlsWPHysHhxmmVl5eX+vTpo++//16tWrXSkCFD1LlzZ7Vt21aOjo75jr2g4uPj9fvvv6thw4Y5Foq6dOmihQsX6uDBgxo2bJjFtJweXe3n55fntN27d+cYx7333putLSgoSA4ODjpw4EA+1uSGW+0rnp6e5vbVq1dr/vz52r9/v65evaqMjAzztD///DPfY2bFl9P752vUqKHatWvr119/1bVr1yzGDwgIUKVKlfI9jnTj3cgzZ87U7t279ddffyk9Pd08La9H9RfEokWLzP/28PBQw4YN9eijjyokJETS/34/oqOjc3xHc9bvxokTJ9SkSRNzu4uLS76LmtaQn/Fy2u+y2v653xX1tj9w4IDc3Nx01113ZZvWpUsXSdLBgwezTcvv38f88vHxUd++fbV8+XLNmDFDS5cuVUZGhkaOHJnrPFn7xO7du3N8X31ycrL++usv/fXXXwXa53PaFrn5+eefJUk9e/a8Zd+HH35Yq1ev1j333KNHHnlE3bp107333lvg30cAAAAAZRuFcAAAAAC58vT01JAhQ8zvl46Li9Orr76quXPnatSoUbp48WK+Ckg5vTc5q4B8c/EyPj5ekizuBs/yz3cD5+Xvv/+WJPMdybdj2LBhev/99/XFF1+YC+Gff/65edrNVqxYoffee0/Lli3Ta6+9JunGuj/22GN677335ObmludYvr6+kqSLFy/mO76sbZbb9skqbGf1u1le/y+5Tbu5eHiznMa3t7dXxYoVFRcXl0v02eV3X5k2bZpeeOEFVa5cWT179lT16tXNd4fOnDlTKSkp+R4zP9vw119/VXx8vEUhvCD7pHRj/3jooYfk4eGhXr16qVatWnJzc5PJZDK/Y9sadu7cqXvuuSfX6Vm/H999952+++67XPslJiZafPbx8bF44kBRy894Of0fZLXdvN8Vx7aPj4+Xv79/jtMK+3t48z5fECNHjtTatWu1atUqLV68WK1bt7Z42sE/Ze0TH330UZ7LTUxMLFCxuSC/I1n/X9WqVbtl3yFDhmjt2rWaPn26Pv74Y3300UcymUzq0qWLpk2bdtvvpwcAAABQNlAIBwAAAJBv3t7emjNnjr777judO3dOR44cyfFuxsLKKgjFxMRkezxvdHR0gZfzz8JlYTRp0kQtWrTQ+vXrFRcXJ0dHR61Zs0aBgYFq27atRV83Nze98847euedd3TmzBlt3bpVH3/8sWbNmqXr169r/vz5eY7Vvn17LVmyRJs3b87z7s2bZa1rbtsn63HrORXbrCk6OlqBgYEWbRkZGbpy5UqBC8a3kp6errffflt+fn46ePCgxRcnDMPQ+++/X6DlFXYbFrQoPGnSJLm4uGjfvn2qV6+exbTCPHa6sLLWY/bs2RozZky+5ytsETzrVQE5fYkiry9J5Ge86Oho1ahRI1ubJItHphfHtvfy8lJMTEyO04rr9zBLnz595Ofnp5dfflkXL17U3Llz8+yfFdeRI0csngJwuwqyz2S9PiK/XwQaMGCABgwYoGvXrumnn37S6tWrtWjRIt133306ceJEvl5HAQAAAKBs4x3hAAAAAArEZDLJ3d29SJbdvHlzSdJPP/2UbdqOHTvyvZy7775b0v8e93u7hg0bpuTkZK1cuVJr1qxRQkKC/v3vf+c5T0BAgEaOHKlt27bJw8ND33zzzS3HGTx4sLy8vLRq1apbPro9645nLy8v1a5dW6dOncqxgBQRESEp50edW9N///vfbG07d+5Uenq6WrZsadWx/vrrL8XFxSkoKCjb0wP27t2r69evZ5sn6z3eOd1hmxVf1ra62YULF3T69GnVrl37tr9Ucfr0aTVs2DBbITYqKkq///77bS27ILJ+P3bu3Gm1Zea1fcuXLy8p5wJnQR6bn5Oc9rustpv3u4Ju+7zWJzctW7ZUUlKS+RHfNyuu38Ms9vb2Gj58uC5evCgXFxcNHTo0z/4F3ScKs31uJesx6j/++GOB5vP09NR9992nBQsWaMSIEYqOjs71FQ4AAAAA7iwUwgEAAABkM3/+fO3ZsyfHaWvXrtXx48dVrlw5q945KN1476udnZ2mTZumv/76y9yemJhYoMecP/PMM3JwcNDYsWN1/vz5bNNjY2MLVIB75JFHZG9vr88//1yff/65TCZTtkL45cuXdfTo0WzzXr16VSkpKXJxcbnlOOXKldMHH3yglJQU9e3bN8f3CWdkZGjp0qV66qmnzG3BwcFKS0tTaGioDMMwtx8+fFhLliyRt7e3Bg4cmO/1LYxZs2bpjz/+MH9OTU01Px5+xIgRVh3Lx8dHrq6u2r9/v5KSksztV69e1dixY3Ocp0KFCpJuFLb/acCAAfL29tbixYt17Ngxc7thGHr55ZeVnp5ulXWoWbOmTp06ZXHneXJysp5++mmlpaXd9vLz66677tLdd9+tL7/8Ul999VW26ZmZmdq2bVuBlpnX9g0MDJSnp6e++eYb8yO4pRt3br/zzjsFjN7S22+/bXFXeVxcnN555x2ZTCYFBweb2wu67fNan9xkjRcaGmqxzAsXLmj69OlycHDQo48+mv+Vu00TJkzQmjVrFB4efsu7ox977DF5enrqtddes/gdyJKUlGTxxaLy5cvLZDIVaPvcStu2bdW2bVtFRkZq4cKF2abf/EWKyMjIHIvwWXfk5+fvLQAAAICyj0ejAwAAAMjmhx9+0FNPPaW6deuqffv2qlq1qhITE3XgwAH997//lZ2dnebOnStnZ2erjhsYGKhXXnlF7733npo2baoHH3xQDg4OWr16tZo2baqjR4+aH7OclyZNmmju3Ll6+umnFRgYqD59+qhOnTq6du2afv/9d23btk0jRozQxx9/nK+4fH191b17d/3444+ys7NThw4dVKtWLYs+Fy9eVMuWLdW8eXM1a9ZM1apV05UrV7Ru3TqlpaXphRdeyNdYTzzxhOLj4/XKK6+oVatW6tixo1q2bClXV1ddvHhRmzdv1sWLFzV69GjzPC+99JK+++47ff755zp+/Li6deummJgYffXVV0pPT9fChQtv+27mW7nnnnvUvHlzPfTQQ3J3d9e3336rkydPatCgQXrggQesOpadnZ2eeeYZTZs2Tc2bN1f//v0VHx+vH374QTVr1lTVqlWzzdO1a1d9+OGHeuKJJ/TAAw/I3d1dNWvW1LBhw+Tl5aWFCxdq6NChuvvuu/XQQw+pcuXK2rRpk/bt26e77rpLL7744m3HPXbsWI0dO1YtW7bU4MGDlZ6ero0bN8owDDVv3lyHDh267THy68svv1SXLl308MMPa+bMmWrVqpVcXV11/vx57dy5U5cvX1ZycnK+l9e1a1etXLlSDzzwgHr37i0XFxfz/42Tk5PGjh2r9957T61atTI/zvrbb79Vp06ddPr06UKvR/369dWkSRPzPrZq1Sr98ccfmjBhgtq0aWPuV9Bt36VLF5lMJr366qs6duyYvL29Va5cuTwfJT9s2DCtXr1a69atU7NmzdSvXz8lJibqq6++0t9//61p06apdu3ahV7XgvLx8cn3F2AqV66sL7/8UkOGDFHz5s113333qUGDBkpJSdHZs2e1bds2tWvXThs2bJAkeXh4mIvWw4YNU7169WRnZ6dhw4Zle61FQfzf//2fOnfurCeeeEKff/65goKClJycrGPHjunAgQO6cuWKJOnZZ5/Vn3/+af5bbDKZtH37dv3888+655571KFDh0LHAAAAAKDsoBAOAAAAIJupU6eqffv22rhxoyIjIxUVFSVJqlatmoKDgzV27Firvhv8Zu+++66qV6+u2bNn6+OPP5aPj48efvhhjRs3Tt9++22+37H7+OOPq0WLFpo+fboiIyP17bffytvbWzVq1NBzzz1ncbdofgwbNkzh4eHKyMjI8bHotWrV0qRJk7RlyxZt2rRJV65cUaVKldSqVSuNGzdO9913X77HeuGFF9S/f3/NmTNHW7Zs0SeffKKUlBT5+Piobdu2mjVrlgYNGmTu7+Lioi1btmjq1Kn66quvNGPGDLm5ualTp0569dVXi6UoNHPmTK1YsUKffPKJzp8/Lz8/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dKAY1atXz+JznTp1ZGdnp7Nnz8rOzk6GYWTrk+XmR3KeP39eb775pr755htdvXrVot8/Lx47ODioevXqFm0BAQGaMGGCpk+frv/7v//Tvffeq/vvv9/8rhNJOnfunOzs7FS3bl2LeX19fVWuXDmdO3fOor1GjRrZYi5fvny2+PKSNWadOnUs2gMDAy0+X758WbGxsVqwYIEWLFiQ47JiYmLyPe7N1q9fr3feeUcHDx60eMfczRcnAAClS0FzWt26dbP93a9fv76kG++29PX1tZiWmJiofv366dq1a9q+fbvFe0azCr7/fG+pJCUnJ1v0yc96SNmPJypXrmxxMVm68SjYw4cPq3Llyjkuq6B5smrVqnJ3d7dou3mb3HPPPfrtt990/PjxfI35008/aeLEidq5c2e2L+XFxcWZj0ekG8ct//TQQw/pk08+0ejRo/XKK6+oW7duGjRokAYPHiw7uxvf9T137pzq1atn/pylYcOG5uk3++exTNY2LcixDACgaJHTs8tvTj99+rQkqUmTJreM65/n4NKN/BkeHq7ExES5u7vr/fffV3BwsPz9/dW6dWv16dNHw4cPV+3atW8Zy61y7qlTp2QYht544w298cYbOS4jJiZG1apVu+VYAADcrn/mLW9vb7m4uFi8QiWr/cqVK5Kkl19+WZs2bdJdd92lunXrqmfPnnrkkUfUvn17SUV7fRuAJQrhgA3dfEKemZkpk8mkH374Qfb29tn6Zp2AZ2RkqEePHvr777/18ssvq0GDBnJ3d9fFixc1YsSIbHdFOTs7Z7sALEnTpk3TiBEjtG7dOv3444969tlnze8uv7lwnt8CcE4xSze+3WZtWev473//W8HBwTn2adasWYGX+9///lf333+/OnbsqLlz58rPz0+Ojo5avHixli1bdlsxAwBsryi+1JSamqpBgwbp8OHDCg8Pz3ZxuUKFCnJ2dlZUVFS2ebPaqlatavW4MjMz1aNHD4s72W6WVQSw9phNmzbV9OnTc5zu7+8v6caF+G7duqlBgwaaPn26/P395eTkpO+//14zZszIdiyTU1HB1dVVkZGR2rp1q7777jtt2LBBX331lbp27aoff/wx1+OSvBTnsQwA4PaQ0/+nKHJ6fjz44IO69957tWbNGv3444/64IMPNHXqVK1evVq9e/fOc95b5dysY4EXXngh21NhsvzzyxAAABSVnPLWrXJZw4YNdfLkSa1fv14bNmzQqlWrNHfuXL355puaPHlykV3fBpAdhXCgGP32228WdzWdOnVKmZmZqlWrluzt7WUYhgICAvI8kT1y5Ih+/fVXLV26VMOHDze3b9y4scDxNG3aVE2bNtXrr7+uHTt2qH379vr444/1zjvvqGbNmsrMzNRvv/1mvnNKkqKjoxUbG6uaNWsWeLxbyRrz9OnTFt9AP3nypEW/ypUry9PTUxkZGerevXuBx8ntosmqVavk4uKi8PBwi8fdLV68uMBjAABsI6e/8QXNaVl3Id28rF9//VWSVKtWLXNbZmamhg8frs2bN+vrr79Wp06dso1tZ2enpk2bau/evdmm7d69W7Vr15anp2e+1i0rzt9++83ibqvLly9nu2u5Tp06SkhIKFSezMmff/5pvgMsyz+3SZ06dXTo0CF169YtzwLFt99+q5SUFH3zzTcW36y/+dHp+WFnZ6du3bqpW7dumj59ut577z299tpr2rp1q7p3766aNWvq8OHDyszMtPhS4IkTJySpSI5lAADWQ06/wVo5PevJa0ePHs11WVlx/fMcXLqRPytVqmRxLODn56dnnnlGzzzzjGJiYtSqVSu9++67tyyE30rWNnF0dLTasQwAAMXN3d1dDz30kB566CHzF+7effddhYaG3vb1bQD5xzvCgWL00UcfWXyePXu2JKl3794aNGiQ7O3tNXny5Gx3HhmGYX6sSta3zW7uYxiGZs2ale844uPjlZ6ebtHWtGlT2dnZmR/z1qdPH0nSzJkzLfpl3eXVt2/ffI+XX1kny//5z38s2v8Zg729vR544AGtWrVKR48ezbacy5cv5zlO1ol7bGxstuWaTCZlZGSY286ePau1a9fmcw0AALaW09/4gua0P//8U2vWrDF/jo+P12effaYWLVpYPEJ17Nix+uqrrzR37lwNGjQo15gGDx6sPXv2WFw4P3nypLZs2aIhQ4bke926d+8uR0dHzZ492+I44J/rJd24S2vnzp0KDw/PNi02NjbbccCtpKena/78+ebPqampmj9/vipXrqzWrVubx7x48aIWLlyYbf7r168rMTFRUs7HMnFxcQX64tnff/+dra1FixaSZHEsc+nSJX311VcW6zF79mx5eHjkWOQAAJQc5PQbrJXTW7VqpYCAAM2cOTPbuXBWDH5+fmrRooWWLl1q0efo0aP68ccfzds/IyMj22vZfHx8VLVq1RwfHV9QPj4+6ty5s+bPn5/jHfi3OucHAMDWsq7lZ3FyclKjRo1kGIbS0tJu+/o2gPzjjnCgGJ05c0b333+/7rvvPu3cuVNffPGFHnnkETVv3lyS9M477yg0NFRnz57VwIED5enpqTNnzmjNmjV64okn9MILL6hBgwaqU6eOXnjhBV28eFFeXl5atWpVgd5fuWXLFo0ZM0ZDhgxR/fr1lZ6ers8//9ycgCWpefPmCg4O1oIFCxQbG6tOnTrp559/1tKlSzVw4EB16dLF6tunRYsWGjp0qObOnau4uDi1a9dOmzdv1qlTp7L1nTJlirZu3aq7775bjz/+uBo1aqS///5b+/fv16ZNm3K8QJ4l64L9s88+q169esne3l4PP/yw+vbtq+nTp+u+++7TI488opiYGH300UeqW7euDh8+bPX1BQBYX9bf+Ndee00PP/ywHB0d1b9//wLltPr162vUqFHas2ePqlSpok8//VTR0dEWhdqZM2dq7ty5CgoKkpubm7744guLZfzrX/8yX8B/5plntHDhQvXt21cvvPCCHB0dNX36dFWpUkXPP/98vtetcuXKeuGFFxQWFqZ+/fqpT58+OnDggH744Yds7yZ78cUX9c0336hfv34aMWKEWrdurcTERB05ckQrV67U2bNns82Tl6pVq2rq1Kk6e/as6tevr6+++koHDx7UggUL5OjoKEkaNmyYvv76az311FPaunWr2rdvr4yMDJ04cUJff/21wsPD1aZNG/Xs2VNOTk7q37+/nnzySSUkJGjhwoXy8fHJ8WJ3Tt566y1FRkaqb9++qlmzpmJiYjR37lxVr15dHTp0kCQ98cQTmj9/vkaMGKF9+/apVq1aWrlypX766SfNnDkz33ftAQBsg5x+g7Vyup2dnebNm6f+/furRYsWeuyxx+Tn56cTJ07o2LFj5kL7Bx98oN69eysoKEijRo3S9evXNXv2bHl7e2vSpEmSpGvXrql69eoaPHiwmjdvLg8PD23atEl79uzRtGnT8r0d8vLRRx+pQ4cOatq0qR5//HHVrl1b0dHR2rlzp/744w8dOnTIKuMAAFAUevbsKV9fX7Vv315VqlTR8ePHNWfOHPXt29d8Lno717cBFIABoMhNnDjRkGT88ssvxuDBgw1PT0+jfPny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rVZ16dLlrPys1jVvCxYssPUBbdq00b333qsTJ064KVp4o7rsQ4MHD5bFYqnyuvLKK21lbrnllirzhwwZ4o6mOI0rPlf17Ru8hbNzMn369Cr7Sbdu3VzdDKeqS05KS0s1c+ZMdezYUcHBwerVq5dWrFhxRnV6K2fnpaHvK19//bWGDx+uVq1ayWKxaNmyZTUuk56err59+8pqtapTp05KS0urUsYX9hVXqes18t69ex32bRaLRe+8846tnKP5S5cudUeTqqhrGyXHffj48ePtyuzfv19XXnmlQkND1bJlSz3wwAMqKytzZVNOy1X3Ozy9LZ19f8IYo6lTpyomJkYhISFKTEzUrl27XNmEWnH2/QRvPMesSxvT0tKqxB8cHGxXxhe2ZUO8XqCvhjN54hjfrl27Kp+pOXPmOL1tnubs3L7//vu64oor1Lx5c1ksFmVmZlap48SJE5o4caKaN2+uxo0b67rrrlNubq4zm+Vxnshrbc5LfYEzc1taWqqHHnpIPXr0UKNGjdSqVSuNHTtW//nPf+zqqM91QkPjibw65ThrUG9DhgwxvXr1Mt9++6355ptvTKdOncyoUaOqLb9161Zz7bXXmo8++shkZWWZVatWmc6dO5vrrrvOjVG719KlS01QUJBZvHix2bZtm0lJSTEREREmNzfXYfm1a9caf39/869//cv89NNP5h//+IcJDAw0W7dudXPknlXXvN10001m4cKFZsuWLWb79u3mlltuMU2aNDG//vqrmyP3rLrmrVJ2drZp3bq1ueiii8yIESPcE6wXqWveiouLTf/+/c2wYcPMmjVrTHZ2tklPTzeZmZlujtyz6pq3N954w1itVvPGG2+Y7Oxs89lnn5mYmBhz7733ujlyeIu67kOHDx82Bw4csL1+/PFH4+/vb5YsWWIrk5ycbIYMGWJX7o8//nBTi86cKz5X9e0bvIUrcjJt2jRz7rnn2u0nv//+u7uadMbqmpMHH3zQtGrVyixfvtzs3r3bPPvssyY4ONhs3ry53nV6I1fkpaHvK5988on5+9//bt5//30jyXzwwQenLb9nzx4TGhpqUlNTzU8//WSefvpp4+/vb1asWGEr4wv7iivV9Rq5rKzMbv86cOCAmTFjhmncuLHJz8+3lZNklixZYlfu+PHj7mhSFXVtozHGDBo0yKSkpNjFf+zYMdv8srIyc95555nExESzZcsW88knn5jIyEgzZcoUVzenWq663+HJbemK+xNz5swxTZo0McuWLTPff/+9ueqqq0z79u09tn8a45r7Cd52jlnXNi5ZssSEh4fbxZ+Tk2NXxhe2ZUO8XqCvhrN46hgfGxtrZs6cafeZKigocHl73ckVuX311VfNjBkzzEsvvWQkmS1btlSpZ/z48aZNmzZm1apVZuPGjeb88883AwcOdFUz3c5Tea3pvNQXODu3R48eNYmJieatt94yO3bsMBkZGWbAgAGmX79+dvXU5zqhIfFUXp1xnGUgvJ5++uknI8l89913tmmffvqpsVgs5rfffqt1PW+//bYJCgoypaWlrgjT4wYMGGAmTpxoe19eXm5atWplZs+e7bD8DTfcYK688kq7afHx8eaOO+5waZzepq55O1VZWZkJCwszr7zyiqtC9Er1yVtZWZkZOHCgefnll01ycvJZORBe17w999xzpkOHDqakpMRdIXqluuZt4sSJ5tJLL7Wblpqaai644AKXxgnvdabH+vnz55uwsDC7k7+GfhxzxefqTPPsaa7IybRp00yvXr1cEq871DUnMTEx5plnnrGbdu2115rRo0fXu05v5Iq8NPR95WS1ubn+4IMPmnPPPddu2siRI01SUpLtvS/sK67irGvk3r17m7/97W9202qz/dyhvm0cNGiQmTx5crXzP/nkE+Pn52c3MPfcc8+Z8PBwU1xc7JTY68KV9zs8uS2dfX+ioqLCREdHm7lz59rmHz161FitVvPmm2+6oAW144r7Cd52jlnXNi5ZssQ0adKk2vp8dVs2tOsF+mqcCU8d42NjY838+fOd2BLv48r7+9nZ2Q4HbI8ePWoCAwPNO++8Y5u2fft2I8lkZGScQWu8hyfyakzN56W+wB1jUhs2bDCSzL59+4wxzjt/9maeyKsxzjnO8mj0esrIyFBERIT69+9vm5aYmCg/Pz+tX7++1vUcO3ZM4eHhCggIcEWYHlVSUqJNmzYpMTHRNs3Pz0+JiYnKyMhwuExGRoZdeUlKSkqqtrwvqk/eTlVUVKTS0lI1a9bMVWF6nfrmbebMmWrZsqVuvfVWd4TpdeqTt48++kgJCQmaOHGioqKidN555+nxxx9XeXm5u8L2uPrkbeDAgdq0aZPtkTF79uzRJ598omHDhrklZngXZxzrFy1apBtvvFGNGjWym56e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q5T58MMP1bdvXwUHB6tDhw6aMWOGXVtOx2Kx6LnnntPQoUMVEhKiDh06VOl/f/nlF91www2KiIhQs2bNNGLECO3du9c2/7vvvtPll1+uyMhINWnSRIMGDdLmzZsdrueqq65So0aN9Nhjj+nIkSMaPXq0WrRooZCQEHXu3FlLliyxLbN161ZdeumlCgkJUfPmzXX77bfbffOu8mdW5s2bp5iYGDVv3lwTJ05kkB0AfBR9+ukdPXpUd9xxh6KiohQcHKzzzjtPH3/8sW3+e++9p3PPPVdWq1Xt2rXTE088Ybf8s88+q86dOys4OFhRUVH661//apfDk7+J365dOz3++OP629/+prCwMLVt21YvvviiXX01nT8AAOBtBg8erLvuukv33HOPmjZtqqioKL300ksqLCzUuHHjFBYWpk6dOunTTz+VpBqvaekLAfdhIBzwIq+88ooCAgK0YcMGPfXUU3ryySf18ssvS5ImTZqkjIwMLV26VD/88IOuv/56DRkyxDYofeLECfXr10/Lly/Xjz/+qNtvv11jxozRhg0bqqwjKChIa9eu1fPPP6/33ntP8+fP1wsvvKBdu3Zp2bJl6tGjh638Lbfcoo0bN+qjjz5SRkaGjDEaNmyY3Y3koqIizZs3T6+99pq+/vpr7d+/X/fff3+t2vzEE08oLS1Nixcv1po1a/THH3/ogw8+sCsze/Zsvfrqq3r++ee1bds23Xvvvbr55pv11VdfValv4MCBWrBggcLDw3XgwAEdOHDAFktpaalmzZql77//XsuWLdPevXt1yy231CpOAIDveeqpp5SQkKCUlBRbnxEYGKhhw4bpL3/5i77//ns999xzWrRokf75z3/aLXu6PtuRyj/QqvzpjoyMDEVERKh///62MomJifLz89P69etrjH39+vW69dZbNWnSJGVmZuqSSy6pEuM333yjsWPHavLkyfrpp5/0wgsvKC0tTY899litc/Too4/quuuu0/fff6/Ro0frxhtv1Pbt2yX92a8mJSUpLCxM33zzjdauXWv7g7jKp87k5+crOTlZa9as0bfffqvOnTtr2LBhys/Pt1vP9OnTdc0112jr1q3629/+pkcffVQ//fSTPv30U23fvl3PPfecIiMjJUmFhYVKSkpS06ZN9d133+mdd97RF198oUmTJtnVuXr1au3evVurV6/WK6+8orS0NKWlpdW67QCAhoM+vXoVFRUaOnSo1q5dq9dff10//fST5syZI39/f0nSpk2bdMMNN+jGG2/U1q1bNX36dD366KO2PnPjxo26++67NXPmTO3cuVMrVqzQxRdffNp1PvHEE+rfv7+2bNmiCRMm6M4779TOnTsl1e78AQAAb/TKK68oMjJSGzZs0F133aU777xT119/vQYOHKjNmzfriiuu0JgxY1RUVHTaa1r6QsDNDACvMGjQIBMXF2cqKips0x566CETFxdn9u3bZ/z9/c1vv/1mt8xll11mpkyZUm2dV155pbnvvvvs1tGnTx+7Mk888YTp0qWLKSkpqbL8zz//bCSZtWvX2qYdOnTIhISEmLffftsYY8ySJUuMJJOVlWUrs3DhQhMVFVWrdsfExJh//etftvelpaXmnHPOMSNGjDDGGHPixAkTGhpq1q1bZ7fcrbfeakaNGmWMMWb16tVGkjly5IgtpiZNmtS47u+++85IMvn5+bWKFQDgewYNGmQmT55se//II4+Yrl272vXHCxcuNI0bNzbl5eW2Zarrsx05fvy46du3r7npppts0x577DHTpUuXKmVbtGhhnn322RrjHjVqlBk2bJjdtJEjR9r1f5dddpl5/PHH7cq89tprJiYmpsb6jTFGkhk/frzdtPj4eHPnnXfa6jo1V8XFxSYkJMR89tlnDussLy83YWFh5v/9v/9nt5577rnHrtzw4cPNuHHjHNbx4osvmqZNm5qCggLbtOXLlxs/Pz+Tk5NjjDEmOTnZxMbGmrKyMluZ66+/3owcObI2TQcANED06Y599tlnxs/Pz+zcudPh/JtuuslcfvnldtMeeOAB0717d2OMMe+9954JDw83eXl5Dpc/Ne+xsbHm5ptvtr2vqKgwLVu2NM8995wt7rqePwAA4GmDBg0yF154oe19WVmZadSokRkzZoxt2oEDB4wkk5GRcdprWvpCwL34RjjgRc4//3xZLBbb+4SEBO3atUtbt25VeXm5unTposaNG9teX331lXbv3i3pz0eMz5o1Sz169FCzZs3UuHFjffbZZ7bHtVXq16+f3fvrr79ex48fV4cOHZSSkqIPPvjA9ni17du3KyAgQPHx8bbyzZs3V9euXW3fBpOk0NBQdezY0fY+JiamVo8cP3bsmA4cOGBXf0BAgN1f0mdlZamoqEiXX365XdtfffVVW9tra9OmTRo+fLjatm2rsLAwDRo0SJKq5AgAcPbavn27EhIS7PrjCy64QAUFBfr1119t06rrs8vLy+3qKy0t1Q033CBjjJ577jmnxnly/1kZw8m+//57zZw5067/rPymXFFRUa3Wc2qdCQkJtnOA77//XllZWQoLC7PV36xZM504ccLWR+fm5iolJUWdO3dWkyZNFB4eroKCgip978l9vyTdeeedWrp0qXr37q0HH3xQ69ats2t7r1691KhRI9u0Cy64QBUVFbZvm0nSueeea/u2m1T78xMAgG+gT/9TZmamzjnnHHXp0qXa9V9wwQV20y644AJbDi6//HLFxsaqQ4cOGjNmjN54440a19mzZ0/b/y0Wi6Kjo219cG3OHwAA8EYn92/+/v5q3ry53ZNVo6KiJEkHDx487TUtfSHgXgGeDgBAzQoKCuTv769NmzbZ3dCVpMaNG0uS5s6dq6eeekoLFixQjx491KhRI91zzz1VHqdy8k1jSWrTpo127typL774QitXrtSECRM0d+5ch48dr05gYKDde4vFUuV3vuur8vc+ly9frtatW9vNs1qtta6n8jGqSUlJeuONN9SiRQvt379fSUlJPHIGAOASlTfM9+3bpy+//FLh4eG2eSffEK5UVlamP/74Q9HR0U5Zf0FBgWbMmKFrr722yrzg4GCn1N+vXz+98cYbVea1aNFCkpScnKzDhw/rqaeeUmxsrKxWqxISEmo8Pxk6dKj27dunTz75RCtXrtRll12miRMnat68ebWOz9H5SUVFRa2XBwCgUkPu00NCQs5o3WFhYdq8ebPS09P1+eefa+rUqZo+fbq+++472+PhT3W6Prg25w8AAHgjR/3bydMq/7Cu8mdJqrumpS8E3IuBcMCLnPr7YZW/pdmnTx+Vl5fr4MGDuuiiixwuu3btWo0YMUI333yzpD873J9//lndu3evcb0hISEaPny4hg8frokTJ6pbt27aunWr4uLiVFZWpvXr12vgwIGSpMOHD2vnzp21qrcmTZo0UUxMjNavX2/7jbGysjJt2rRJffv2lSR1795dVqtV+/fvt32DuyZBQUFV/np/x44dOnz4sObMmaM2bdpI+vO3zgAAZ7dT+4y4uDi99957MsbYLmLXrl2rsLAwnXPOObZy1fXZlX+wVnnDfNeuXVq9erWaN29uVz4hIUFHjx7Vpk2bbE9r+fLLL1VRUVHlW2GOxMXFOYzhZH379tXOnTvVqVOnGuurzrfffquxY8fave/Tp4+t/rfeekstW7a0GxA42dq1a/Xss89q2LBhkqRffvlFhw4dqtW6W7RooeTkZCUnJ+uiiy7SAw88oHnz5ikuLk5paWkqLCy0DaCvXbtWfn5+6tq1a73bCgBo2OjTHevZs6d+/fVX/fzzzw6/FR4XF6e1a9faTVu7dq26dOliy0FAQIASExOVmJioadOmKSIiQl9++aXDgfma1Ob8AQAAX1DdNS19IeBePBod8CL79+9Xamqqdu7cqTfffFNPP/20Jk+erC5dumj06NEaO3as3n//fWVnZ2vDhg2aPXu2li9fLknq3LmzVq5cqXXr1mn79u264447lJubW+M609LStGjRIv3444/as2ePXn/9dYWEhCg2NladO3fWiBEjlJKSojVr1uj777/XzTffrNatW2vEiBFOafPkyZM1Z84cLVu2TDt27NCECRN09OhR2/ywsDDdf//9uvfee/XKK69o9+7d2rx5s55++mm98sorDuts166dCgoKtGrVKh06dEhFRUVq27atgoKC9PTTT2vPnj366KOPNGvWLKe0AQDQcLVr107r16/X3r17dejQIU2YMEG//PKL7rrrLu3YsUMffvihpk2bptTUVPn5/ffUubo+W/rzhvlf//pXbdy4UW+88YbKy8uVk5OjnJwc2zeh4+LiNGTIEKWkpGjDhg1au3atJk2apBtvvFGtWrWqMe67775bK1as0Lx587Rr1y4988wzWrFihV2ZqVOn6tVXX9WMGTO0bds2bd++XUuXLtU//vGPWufnnXfe0eLFi/Xzzz9r2rRp2rBhgyZNmiRJGj16tCIjIzVixAh98803ys7OVnp6uu6++27bI2c7d+6s1157Tdu3b9f69es1evToWn0zberUqfrwww+VlZWlbdu26eOPP1ZcXJxtvcHBwUpOTtaPP/6o1atX66677tKYMWNsj6IDAJx96NMdGzRokC6++GJdd911WrlypbKzs/Xpp5/a1nHfffdp1apVmjVrln7++We98soreuaZZ3T//fdLkj7++GP97//+rzIzM7Vv3z69+uqrqqioqPcfn9Xm/AEAgIaupmta+kLAjTz6C+UAbAYNGmQmTJhgxo8fb8LDw03Tpk3NI488YioqKowxxpSUlJipU6eadu3amcDAQBMTE2OuueYa88MPPxhjjDl8+LAZMWKEady4sWnZsqX5xz/+YcaOHWtGjBhht47JkyfbrfeDDz4w8fHxJjw83DRq1Micf/755osvvrDN/+OPP8yYMWNMkyZNTEhIiElKSjI///yzbf6SJUtMkyZNqtRZ28NLaWmpmTx5sgkPDzcREREmNTW1StwVFRVmwYIFpmvXriYwMNC0aNHCJCUlma+++soYY8zq1auNJHPkyBHbMuPHjzfNmzc3ksy0adOMMcb8+9//Nu3atTNWq9UkJCSYjz76yEgyW7ZsqVWsAADfs3PnTnP++eebkJAQI8lkZ2eb9PR085e//MUEBQWZ6Oho89BDD5nS0lLbMjX12dnZ2UaSw9fq1att9Rw+fNiMGjXKNG7c2ISHh5tx48aZ/Pz8Wse+aNEic84555iQkBAzfPhwM2/evCp98ooVK8zAgQNNSEiICQ8PNwMGDDAvvvhireqXZBYuXGguv/xyY7VaTbt27cxbb71lV+bAgQNm7NixJjIy0litVtOhQweTkpJijh07ZowxZvPmzaZ///4mODjYdO7c2bzzzjsmNjbWzJ8/3249H3zwgV29s2bNMnFxcSYkJMQ0a9bMjBgxwuzZs8c2/4cffjCXXHKJCQ4ONs2aNTMpKSl2uUtOTrY7lzDGmMmTJ5tBgwbVqu0AgIaHPr16hw8fNuPGjTPNmzc3wcHB5rzzzjMff/yxbf67775runfvbgIDA03btm3N3LlzbfO++eYbM2jQINO0aVMTEhJievbsaXc+cOp9hlP7eWOM6dWrl+263Jiazx8AAPA2ju6rO+rzKq9va7qmpS8E3MdijJN+yBfAGRk8eLB69+6tBQsWeDoUAABwGmdLn22xWPTBBx/o6quv9nQoAAC4xNnSpwMAAABnKx6NDgAAAAAAAAAAAADwKQyEA3Cpxo0bV/v65ptvPB0eAABeaejQodX2n48//vgZ1//GG29UW/+5557rhBYAAACJPh0AAADwJB6NDsClsrKyqp3XunVrhYSEuDEaAAAaht9++03Hjx93OK9Zs2Zq1qzZGdWfn5+v3Nxch/MCAwMVGxt7RvUDAIA/0acDAAAAnsNAOAAAAAAAAAAAAADAp/BodAAAAAAAAAAAAACAT2EgHAAAAAAAAAAAAADgUxgIBwAAAAAAAAAAAAD4FAbCAQAAAAAAAAAAAAA+hYFwAAAAAAAAAAAAAIBPYSAcAAAAAAAAAAAAAOBTGAgHAAAAAAAAAAAAAPgUBsIBAAAAAAAAAAAAAD7l/wOOacsIGJWEEgAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axes = plt.subplots(1, len(available_metrics), figsize=(5 * len(available_metrics), 4))\n",
"if len(available_metrics) == 1:\n",
" axes = [axes]\n",
"\n",
"type_colors = {'single': '#55A868', 'combo': '#C44E52'}\n",
"\n",
"for ax, metric in zip(axes, available_metrics):\n",
" for ptype in ['single', 'combo']:\n",
" sub = metrics_df[metrics_df['type'] == ptype]\n",
" if len(sub) == 0:\n",
" continue\n",
" vals = sub[metric].dropna()\n",
" ax.hist(vals, bins=15, alpha=0.6, label=ptype, color=type_colors[ptype], edgecolor='white')\n",
" ax.set_xlabel(metric)\n",
" ax.set_ylabel('Count')\n",
" ax.legend()\n",
" ax.set_title(metric)\n",
"\n",
"plt.suptitle('Single vs Combinatorial Perturbation Metrics', y=1.02, fontsize=14)\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 7.4 Per-perturbation metric bar plot"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHpCAYAAABTH4/7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC7MUlEQVR4nOzdd1zV5f//8SeggKLgFgcuNPcKR66onLlHkpUJ5Cr3SjNzW2apqaWZlVpZ31ylmaY5G2puTc2909wKuEDg+v3h75wPxwMKCG9QH/fbjZue61znfb3Oe533eZ3rfV0uxhgjAAAAAAAAwEKuaR0AAAAAAAAAHj8kpQAAAAAAAGA5klIAAAAAAACwHEkpAAAAAAAAWI6kFAAAAAAAACxHUgoAAAAAAACWIykFAAAAAAAAy5GUAgAAAAAAgOVISgEAAAAAAMByJKUAAMBjz8XFRSNGjEjy644fPy4XFxfNnj07xWNC6po9e7ZcXFy0devWVG+L/QQAgPiRlAIAAEhBy5YtS1aCC47OnDmjESNGaOfOnWkdSqJ99913mjRpUlqHAQDAQ4OkFAAAQApatmyZRo4cmdZhPPTOnDmjkSNHPhJJqcKFC+vmzZt69dVXrQ8KAIB0jKQUAABIMdevX0/rEPAAYmNjdevWrTSNITo6WlFRUam2/Fu3bik2NjbVlh8fFxcXeXp6ys3NzdJ2AQBI70hKAQDwEBsxYoRcXFy0f/9+BQUFydvbWzlz5lTv3r3jTS7MmTNHAQEBypQpk3LkyKF27drp1KlTDnX++OMPtW3bVoUKFZKHh4f8/PzUt29f3bx506FeSEiIsmTJoiNHjqhx48bKmjWrXnnlFUnSoUOH1KZNG/n6+srT01MFCxZUu3btFBYWZn99dHS0Ro8eLX9/f3l4eKhIkSJ6++23FRkZ6dBOkSJF1LRpU/3555+qVq2aPD09VaxYMX399ddJXl+RkZHq27evcufOraxZs6p58+b6999/4617+vRpvfbaa8qbN688PDxUtmxZzZw5857LDwkJ0dSpUyXdSUTY/mzGjx+vmjVrKmfOnMqUKZMCAgK0YMGCRMX+zDPPqFy5ctq2bZtq1qypTJkyqWjRopo+fXq873P48OEqXry4fRsOHDjQad26uLioR48e+vbbb1W2bFl5eHho+fLlCcZg2xa//vqrKlWqJE9PT5UpU0Y//PCDU92rV6+qT58+8vPzk4eHh4oXL65x48Y5JIRsYy2NHz9ekyZNsu8L06ZNU9WqVSVJoaGh9vVoG5OpSJEiCgkJiXcdPfPMM/bH69atk4uLi77//nu98847KlCggDJnzqzw8HB7nRs3bqhr167KmTOnvL291aFDB125csVhuYsXL1aTJk2UP39+eXh4yN/fX6NHj1ZMTIxD20uXLtWJEyfs8RYpUsThfd49ptSaNWtUp04deXl5KVu2bGrRooX27dvnUMd2jB8+fFghISHKli2bfHx8FBoaqhs3biS4rQAAeBhkSOsAAADAgwsKClKRIkU0duxY/fXXX5oyZYquXLnikLh59913NXToUAUFBalTp066cOGCPv74Yz399NPasWOHsmXLJkmaP3++bty4oTfeeEM5c+bU5s2b9fHHH+vff//V/PnzHdqNjo5Ww4YNVbt2bY0fP16ZM2dWVFSUGjZsqMjISPXs2VO+vr46ffq0fv75Z129elU+Pj6SpE6dOumrr77SCy+8oP79+2vTpk0aO3as9u3bpx9//NGhncOHD+uFF15Qx44dFRwcrJkzZyokJEQBAQEqW7ZsotdTp06dNGfOHL388suqWbOm1qxZoyZNmjjVO3funJ566il70iZ37tz65Zdf1LFjR4WHh6tPnz7xLr9r1646c+aMVq5cqW+++cbp+cmTJ6t58+Z65ZVXFBUVpe+//15t27bVzz//HG8cd7ty5YoaN26soKAgvfTSS5o3b57eeOMNubu767XXXpN0p7dT8+bN9eeff6pLly4qXbq0du/erY8++kgHDx7UokWLHJa5Zs0azZs3Tz169FCuXLnsiZSEHDp0SC+++KJef/11BQcHa9asWWrbtq2WL1+u+vXrS7qT6AkMDNTp06fVtWtXFSpUSBs2bNDgwYP133//Od3iNmvWLN26dUtdunSRh4eHWrVqpYiICA0bNkxdunRRnTp1JEk1a9a87zqKz+jRo+Xu7q4BAwYoMjJS7u7u9ud69OihbNmyacSIETpw4IA+/fRTnThxwp7Qku4Mip4lSxb169dPWbJk0Zo1azRs2DCFh4frww8/lCQNGTJEYWFh+vfff/XRRx9JkrJkyZJgTKtWrdLzzz+vYsWKacSIEbp586Y+/vhj1apVS9u3b3faDkFBQSpatKjGjh2r7du364svvlCePHk0bty4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+umn2rJli9avX+/QxpUrV9S0aVO1a9dObdu21aeffqp27drp22+/VZ8+ffT666/r5Zdf1ocffqgXXnhBp06dUtasWR3eT2L2p06dOumrr77SCy+8oP79+2vTpk0aO3as9u3bpx9//DFR2y+umzdv6plnntHhw4fVo0cPFS1aVPPnz1dISIiuXr2q3r17O9SfNWuWbt26pS5dusjDw0M5cuRQeHi4vvjiC7300kvq3LmzIiIi9OWXX6phw4bavHmzKlWqlOTttnTpUr344osqX768xo4dqytXrqhjx44qUKCA03vo2rWrZs+erdDQUPXq1UvHjh3TJ598oh07djhsp2vXrt33BwpJypgxo/1cmxz3O4/u3btXTZs2VYUKFTRq1Ch5eHjo8OHDDj8WxMbGqnnz5vrzzz/VpUsXlS5dWrt379ZHH32kgwcPatGiRfa6if08kO7sp40aNVLr1q0VFBSkBQsWaNCgQSpfvrz9RwabZcuWqWnTpvbHbdq00d69e9WzZ08VKVJE58+f18qVK3Xy5EmnROHd3n//fbm6umrAgAEKCwvTBx98oFdeeUWbNm2y1/n000/Vo0cP1alTR3379tXx48fVsmVLZc+eXQULFrzn8hN7jkmqS5cu6fnnn1e7du3Uvn175c2bN0nbplOnTpozZ45efvll1axZU2vWrIm3d8/t27edfnhKSI4cOeTqmrzf+BNz7CVmOyf2Oiip26Vnz57Knj27hg8fruPHj2vSpEnq0aOH5s6d61Bv2bJlypMnj6pUqSLpzudj06ZNtXr1arVr1069e/dWRESEVq5cqT179sjf31/GGDVv3lxr165Vx44dValSJa1YsUJvvvmmTp8+rY8++sihjT/++EM//fSTunfvLkkaO3asmjZtqoEDB2ratGnq1q2brly5og8++ECvvfaa1qxZ4/D6K1euqHHjxgoKCtJLL72kefPm6Y033pC7u7tee+01SUk//wJIQQYAUsHw4cONJNO8eXOH8m7duhlJZteuXfaywoULm+DgYKfX3m3WrFlGkjl27JgxxpiIiAiTLVs207lzZ4d6Z8+eNT4+Pg7lttcm5s9mx44dRpKZP39+gu/z+PHjxs3Nzbz77rsO5bt37zYZMmSwl8fGxpoSJUqYhg0bmtjYWHu9GzdumKJFi5r69es7vf/XXnvNYZmtWrUyOXPmdIqh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b6p48eJO9eIru9uhQ4f0999/J3ir3/nz5++7jISkxr5WtGjReMtdXV1VrFgxh7InnnhCkhJs78KFC7p69apmzJihGTNmxFsn7vuvV69ekuO937Y/fPiwjDEaOnSohg4dmmAMBQoUSPK2utf+anP27Flt377d4RbHI0eOyNXVVWXKlEnwfdm+BJUsWdKh3N3dXcWKFXP4kiRJBQsWdBrfzMfHR35+fk5ld8doc7/96cSJE3J1dXXa7319fZUtWzanmBLjxIkTKlGihFNyrnTp0vbn40po//zqq680YcIE7d+/X7dv375n/fttN1ubCR3zcRNdhw4dUlhYmPLkyRNvXHH3mTJlytxzm6eU+51HX3zxRX3xxRfq1KmT3nrrLdWtW1etW7fWCy+8YN8Ohw4d0r59++57LCT288Amvv00e/bs+vvvvx3KbLOr2hJEHh4eGjdunPr376+8efPqqaeeUtOmTdWhQ4dEJUmSu80zZMhw31sDk3KOSaoCBQo4Ddye2G1jO17j/ugiOZ9TpDvrIznn36S633ZIzHZO7HVQcrZLYs7pK1askCSHmVSPHDmikiVLOiQ073bixAnlz5/f6bbphM51d8diO3cn9pyeP39+eXl5OZTF/cx+6qmnknz+BZBySEoBsFRiBsJOqE5MTIzDY9uv2t988028F+JxL4hu3ryZ6DEi4i5rwoQJCgkJ0eLFi/Xrr7+qV69e9jFmChYsqNjYWLm4uOiXX36Rm5ub07JsPQtssX744YdOY7rcXdcmvuVJchjbaNmyZWrUqJHDOnv66ad15MgRe8xffPGFPvroI02fPl2dOnW653tPTJsPIjY2VvXr19fAgQPjfd52kZgS4hvIPT5371dxZcqUKcXise0D7du3TzA5GTdxePbs2UQt18fHxx7n/ba9LYYBAwY49LCKy/ZFNKnbKjH7zi+//CJPT089++yziXpvyZVQLA+yfye0/yTmnJZa4ts/58yZo5CQELVs2VJvvvmm8uTJIzc3N40dO9ZhkGGblDzmY2NjlSdPHn377bfxPh83cRAWFqabN2/ed5nu7u7KkSOHpOQdw/d7f5kyZdLvv/+utWvXaunSpVq+fLnmzp2r5557Tr/++qvc3NwUGxur8uXLa+LEifEuy/bFOLGfB4mNTbozttu6dev06aefOtTp06ePmjVrpkWLFmnFihUaOnSo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ateunX766ScdO3ZMc+bMSfUYJKly5cr68ssvFRYWpubNm2vNmjWqWrWqDh48qLZt26b5xVGhQoV08uRJS9pasGCB+vTpo1y5cik2Nlaff/65qlevLkl68skntX37dkvikKTjx4/r+++/19y5c5UhQwYdO3ZMW7ZsUdGiRS2LoVOnTrp165aqVKmi7777TjVq1NBHH30kV1dXS9dHgwYNNH78eFWoUEGSVLZsWU2bNk03btzQJ598YknydNq0afGWG2M0bNgwXbp0KdVjkKRmzZqpaNGiunbtmnbt2qXatWurcePG2rBhgzZv3qxffvnFkjiqVaummTNn6vr162rSpImWLVumatWqac+ePerSpYslF2mVKlXSzp07ZYxRgQIFHM7btues8sknn2jq1KkqWbKkdu/erfHjx6tVq1aSrD13pPUxW6FCBf3999+Kjo5Wvnz59N9//ylDhgyKiYlR5cqV9ffff6dq+4ll1edKhQoVtGPHDrm5uSkiIkKhoaHKmTOnpk2bpipVqmjHjh2pHoPNb7/9ptdee03Xr19XQECAPvnkE/vniVX76N69e9WtWzedOXNGDRo00JgxY5Q9e3ZJUo0aNSz7kSE9xFGuXDnt2bNHktSoUSP169dPDRo00ObNm9W7d+908YOLJPn5+enUqVNpHYZlx2x62Dfux8rr4mrVqjk8NsZoz549Kl++vCRp8+bNlsRx48aNeMuNMSpVqlSq76Pp4ZonMdLL8ZoeZUjrAJC+VKhQQU8//XSa/1KXHuI4cOCA5s6da/9CtWbNGklS1apVValSJUtisHnyyScl3fmgq1q1qiTpiSeekKurNZ0d7/7QszHGWNr7Y8yYMdq2bZvy5s2rbdu2KTg4WG+//bZefvllS29nrFatmiIjI/XSSy9p4cKFKlasmIoWLWppQkqStmzZYk9K9uzZUwMGDFDTpk01b948S9fHlStX7AkpSSpTpowCAwMl3dlmVujfv78GDBigDBmcP9ZiYmIsiUGSTpw4oSVLlsgYo4IFC9p7WzRs2FAVK1a0LI7bt2+rXLlykmT/dV+680Xr1q1blsRg2wddXFzUtm3beJ+zymeffaatW7fKy8tLp06dUrt27bR//34NHjzY0ljS+pi1fWZkyJBBzzzzjP14cXNzk4uLS6q3H9fAgQPjLTfGKCwszJIYoqKi5ObmJknKmjWr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WFiYsmXLZo/BxcXFknu1J06cmC6SUidOnFC2bNnk4+Mj6c4vIosXL1bhwoXVo0cPy7qRh4aG3nMsmpkzZ1oSx99//62RI0cqe/bsGjRokLp166YNGzbI399fn3/+uapXr25JHAsWLNDYsWMTvBixIimVHm75leLfJrYvuVZuk08++URTp05VyZIltXv3bo0fP16tWrWSJA0aNMiSpNSOHTv0+eefO5U3b97csskRbNLL728ff/yxU5mLi4v++usvnT59WjExManafvv27dW8eXNFREQoICBAPXv21IABA7R+/Xp17NjxvkmzlPT333/bB363DfSeJ08eSz/b0tP6GDJkiP766y9Jd4YP+P777/Xdd99p165d6tq1q1atWpXqMXh7e6tSpUoaMWKEXn75Zd24cUOjR4/WokWL9O6776Z6++kpDtsX2qNHj9rHNZWsH2NVujM+YXqQUA+P8+fPW3YnRXrYN9JTHLbk2DfffONQfvToUTVv3tyyZNCrr74qHx8f1apVS19++aXGjBkjFxcXLVy4UAEBAane/uXLl9W8eXOdPXtWFSpUkDFGu3fvVoECBbR48WL7dycr5MyZU2FhYU7fVQoVKqSePXsykUYC6CkFB/caaDM0NNSSi8T0Eoftl6ktW7YoODhYDRo00AcffCB3d/c0+9UqrbLv6eVXumrVqmnRokXKnz+/tm3bpgYNGujtt9/Wnj17ZIzR7NmzLYlj6dKl9v/37t3bPmiyjVXjf1SvXl2DBg1SWFiYBg4cqM8++0xNmjTR+vXrNWjQIG3ZssWSOFq0aGG/GFm5cqX+++8/ubi4aPLkyZZcjMTn4sWL+v3331WoUCFVqVLFsnbTyzYpX768/vrrL3l5eenUqVNq166dmjZtqsGDB1t2HilZsqT9F8u7lSpVSvv370/1GGzy5s17zy7zaXXbyS+//KKxY8cqY8aMGjx4cKrfamDr/SFJRYsW1bFjx+J97nGRntZH3PaCg4NVrlw5vfnmm5Ks/Qw+efKk+vXrp7Nnz+r8+fNq3769Bg4caOnttukljrNnz6px48b68ccfnZ6z9WizwvHjx5U9e/Z09SX38uXLWrhwoebOnavjx4+rWbNm+uijjyxpOz3sG+kljjFjxujrr7/WyJEj9dJLLzklx1q3bm1JHOXKldOePXskSTExMfL19dXJkycdemmnpjfe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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"metric_to_plot = 'pearson_delta'\n",
"if metric_to_plot in metrics_df.columns:\n",
" df_sorted = metrics_df.sort_values(metric_to_plot, ascending=False)\n",
"\n",
" bar_colors = []\n",
" for _, row in df_sorted.iterrows():\n",
" if row['split'] == 'unseen' and row['type'] == 'combo':\n",
" bar_colors.append('#E24A33') # red — unseen combo\n",
" elif row['split'] == 'unseen':\n",
" bar_colors.append('#DD8452') # orange — unseen single\n",
" elif row['type'] == 'combo':\n",
" bar_colors.append('#8172B2') # purple — seen combo\n",
" else:\n",
" bar_colors.append('#4C72B0') # blue — seen single\n",
"\n",
" fig, ax = plt.subplots(figsize=(max(10, len(df_sorted) * 0.4), 5))\n",
" ax.bar(range(len(df_sorted)), df_sorted[metric_to_plot], color=bar_colors)\n",
" ax.set_xticks(range(len(df_sorted)))\n",
" ax.set_xticklabels(df_sorted.index, rotation=90, fontsize=7)\n",
" ax.set_ylabel(metric_to_plot)\n",
" ax.set_title(f'{metric_to_plot} per perturbation\\n'\n",
" f'blue=seen/single, purple=seen/combo, orange=unseen/single, red=unseen/combo')\n",
" plt.tight_layout()\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 7.5 Inspect learned perturbation embeddings"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Perturbation embeddings: 223 perturbations, dim=1536\n",
"First 10: ['AHR', 'AHR+FEV', 'AHR+KLF1', 'ARID1A', 'ATL1', 'BAK1', 'BCL2L11', 'BCL2L11+BAK1', 'BCL2L11+TGFBR2', 'BCORL1']\n"
]
}
],
"source": [
"names, emb_matrix = model.get_perturbation_embeddings()\n",
"print(f\"Perturbation embeddings: {len(names)} perturbations, dim={emb_matrix.shape[1]}\")\n",
"print(f\"First 10: {names[:10]}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 8. Full metrics table"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"--- UNSEEN SINGLE perturbations ---\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" pearson_mean | \n",
" pearson_delta | \n",
" mse | \n",
" top20_de_pearson | \n",
" top20_de_cosine | \n",
"
\n",
" \n",
" | perturbation | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | FOXO4 | \n",
" 0.9841 | \n",
" -0.1085 | \n",
" 0.0100 | \n",
" 0.9567 | \n",
" 0.3956 | \n",
"
\n",
" \n",
" | FOXL2 | \n",
" 0.9883 | \n",
" -0.0294 | \n",
" 0.0087 | \n",
" 0.9563 | \n",
" 0.2600 | \n",
"
\n",
" \n",
" | ARRDC3 | \n",
" 0.9912 | \n",
" -0.1817 | \n",
" 0.0053 | \n",
" 0.9964 | \n",
" -0.1371 | \n",
"
\n",
" \n",
" | C19orf26 | \n",
" 0.9926 | \n",
" 0.1681 | \n",
" 0.0040 | \n",
" 0.9722 | \n",
" 0.7124 | \n",
"
\n",
" \n",
" | PTPN12 | \n",
" 0.9920 | \n",
" 0.4329 | \n",
" 0.0044 | \n",
" 0.9840 | \n",
" 0.8952 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" pearson_mean pearson_delta mse top20_de_pearson \\\n",
"perturbation \n",
"FOXO4 0.9841 -0.1085 0.0100 0.9567 \n",
"FOXL2 0.9883 -0.0294 0.0087 0.9563 \n",
"ARRDC3 0.9912 -0.1817 0.0053 0.9964 \n",
"C19orf26 0.9926 0.1681 0.0040 0.9722 \n",
"PTPN12 0.9920 0.4329 0.0044 0.9840 \n",
"\n",
" top20_de_cosine \n",
"perturbation \n",
"FOXO4 0.3956 \n",
"FOXL2 0.2600 \n",
"ARRDC3 -0.1371 \n",
"C19orf26 0.7124 \n",
"PTPN12 0.8952 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"--- UNSEEN COMBO perturbations ---\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" pearson_mean | \n",
" pearson_delta | \n",
" mse | \n",
" top20_de_pearson | \n",
" top20_de_cosine | \n",
"
\n",
" \n",
" | perturbation | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | MAP2K6+IKZF3 | \n",
" 0.9865 | \n",
" 0.6273 | \n",
" 0.0067 | \n",
" 0.9037 | \n",
" 0.9576 | \n",
"
\n",
" \n",
" | FEV+ISL2 | \n",
" 0.9787 | \n",
" 0.2666 | \n",
" 0.0161 | \n",
" 0.9052 | \n",
" 0.8223 | \n",
"
\n",
" \n",
" | FOXA3+FOXL2 | \n",
" 0.9739 | \n",
" 0.1796 | \n",
" 0.0196 | \n",
" 0.9788 | \n",
" 0.8317 | \n",
"
\n",
" \n",
" | LHX1+ELMSAN1 | \n",
" 0.9848 | \n",
" -0.0081 | \n",
" 0.0084 | \n",
" 0.7164 | \n",
" 0.4803 | \n",
"
\n",
" \n",
" | FOXA1+FOXL2 | \n",
" 0.9844 | \n",
" 0.1740 | \n",
" 0.0129 | \n",
" 0.9926 | \n",
" 0.8783 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" pearson_mean pearson_delta mse top20_de_pearson \\\n",
"perturbation \n",
"MAP2K6+IKZF3 0.9865 0.6273 0.0067 0.9037 \n",
"FEV+ISL2 0.9787 0.2666 0.0161 0.9052 \n",
"FOXA3+FOXL2 0.9739 0.1796 0.0196 0.9788 \n",
"LHX1+ELMSAN1 0.9848 -0.0081 0.0084 0.7164 \n",
"FOXA1+FOXL2 0.9844 0.1740 0.0129 0.9926 \n",
"\n",
" top20_de_cosine \n",
"perturbation \n",
"MAP2K6+IKZF3 0.9576 \n",
"FEV+ISL2 0.8223 \n",
"FOXA3+FOXL2 0.8317 \n",
"LHX1+ELMSAN1 0.4803 \n",
"FOXA1+FOXL2 0.8783 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"--- SEEN perturbations (random subset) ---\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" pearson_mean | \n",
" pearson_delta | \n",
" mse | \n",
" top20_de_pearson | \n",
" top20_de_cosine | \n",
"
\n",
" \n",
" | perturbation | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | STIL | \n",
" 0.9917 | \n",
" -0.2056 | \n",
" 0.0061 | \n",
" 0.9934 | \n",
" -0.6895 | \n",
"
\n",
" \n",
" | PLK4+STIL | \n",
" 0.9870 | \n",
" 0.1037 | \n",
" 0.0094 | \n",
" 0.9894 | \n",
" 0.7696 | \n",
"
\n",
" \n",
" | BCORL1 | \n",
" 0.9917 | \n",
" -0.1271 | \n",
" 0.0046 | \n",
" 0.9615 | \n",
" -0.0530 | \n",
"
\n",
" \n",
" | CEBPE+SPI1 | \n",
" 0.9649 | \n",
" 0.4972 | \n",
" 0.0248 | \n",
" 0.8512 | \n",
" 0.8028 | \n",
"
\n",
" \n",
" | CEBPB+OSR2 | \n",
" 0.9829 | \n",
" 0.5306 | \n",
" 0.0108 | \n",
" 0.9314 | \n",
" 0.8297 | \n",
"
\n",
" \n",
" | TGFBR2+IGDCC3 | \n",
" 0.9903 | \n",
" 0.4528 | \n",
" 0.0064 | \n",
" 0.9805 | \n",
" 0.8447 | \n",
"
\n",
" \n",
" | FOXF1 | \n",
" 0.9923 | \n",
" -0.0397 | \n",
" 0.0045 | \n",
" 0.9949 | \n",
" 0.2522 | \n",
"
\n",
" \n",
" | TBX3 | \n",
" 0.9880 | \n",
" 0.3738 | \n",
" 0.0055 | \n",
" 0.7382 | \n",
" 0.9405 | \n",
"
\n",
" \n",
" | MAP2K3 | \n",
" 0.9937 | \n",
" 0.4546 | \n",
" 0.0028 | \n",
" 0.9809 | \n",
" 0.8584 | \n",
"
\n",
" \n",
" | TBX2 | \n",
" 0.9886 | \n",
" 0.3252 | \n",
" 0.0055 | \n",
" 0.8577 | \n",
" 0.9242 | \n",
"
\n",
" \n",
" | SAMD1+ZBTB1 | \n",
" 0.9842 | \n",
" 0.5339 | \n",
" 0.0101 | \n",
" 0.9445 | \n",
" 0.8085 | \n",
"
\n",
" \n",
" | DUSP9+KLF1 | \n",
" 0.9898 | \n",
" 0.7890 | \n",
" 0.0053 | \n",
" 0.9671 | \n",
" 0.9663 | \n",
"
\n",
" \n",
" | CBL+UBASH3B | \n",
" 0.9854 | \n",
" 0.6265 | \n",
" 0.0099 | \n",
" 0.9429 | \n",
" 0.9174 | \n",
"
\n",
" \n",
" | FOSB+CEBPB | \n",
" 0.9729 | \n",
" 0.4638 | \n",
" 0.0213 | \n",
" 0.9698 | \n",
" 0.7062 | \n",
"
\n",
" \n",
" | DUSP9+ETS2 | \n",
" 0.9892 | \n",
" 0.4333 | \n",
" 0.0080 | \n",
" 0.9738 | \n",
" 0.8880 | \n",
"
\n",
" \n",
" | MAP2K6+SPI1 | \n",
" 0.9897 | \n",
" 0.3568 | \n",
" 0.0048 | \n",
" 0.9262 | \n",
" 0.8505 | \n",
"
\n",
" \n",
" | PRTG | \n",
" 0.9902 | \n",
" 0.4973 | \n",
" 0.0055 | \n",
" 0.9782 | \n",
" 0.9079 | \n",
"
\n",
" \n",
" | PTPN12+UBASH3A | \n",
" 0.9860 | \n",
" 0.5225 | \n",
" 0.0096 | \n",
" 0.9525 | \n",
" 0.9115 | \n",
"
\n",
" \n",
" | KLF1 | \n",
" 0.9946 | \n",
" 0.7791 | \n",
" 0.0023 | \n",
" 0.9968 | \n",
" 0.9941 | \n",
"
\n",
" \n",
" | SGK1+TBX2 | \n",
" 0.9845 | \n",
" 0.5202 | \n",
" 0.0083 | \n",
" 0.9416 | \n",
" 0.9422 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" pearson_mean pearson_delta mse top20_de_pearson \\\n",
"perturbation \n",
"STIL 0.9917 -0.2056 0.0061 0.9934 \n",
"PLK4+STIL 0.9870 0.1037 0.0094 0.9894 \n",
"BCORL1 0.9917 -0.1271 0.0046 0.9615 \n",
"CEBPE+SPI1 0.9649 0.4972 0.0248 0.8512 \n",
"CEBPB+OSR2 0.9829 0.5306 0.0108 0.9314 \n",
"TGFBR2+IGDCC3 0.9903 0.4528 0.0064 0.9805 \n",
"FOXF1 0.9923 -0.0397 0.0045 0.9949 \n",
"TBX3 0.9880 0.3738 0.0055 0.7382 \n",
"MAP2K3 0.9937 0.4546 0.0028 0.9809 \n",
"TBX2 0.9886 0.3252 0.0055 0.8577 \n",
"SAMD1+ZBTB1 0.9842 0.5339 0.0101 0.9445 \n",
"DUSP9+KLF1 0.9898 0.7890 0.0053 0.9671 \n",
"CBL+UBASH3B 0.9854 0.6265 0.0099 0.9429 \n",
"FOSB+CEBPB 0.9729 0.4638 0.0213 0.9698 \n",
"DUSP9+ETS2 0.9892 0.4333 0.0080 0.9738 \n",
"MAP2K6+SPI1 0.9897 0.3568 0.0048 0.9262 \n",
"PRTG 0.9902 0.4973 0.0055 0.9782 \n",
"PTPN12+UBASH3A 0.9860 0.5225 0.0096 0.9525 \n",
"KLF1 0.9946 0.7791 0.0023 0.9968 \n",
"SGK1+TBX2 0.9845 0.5202 0.0083 0.9416 \n",
"\n",
" top20_de_cosine \n",
"perturbation \n",
"STIL -0.6895 \n",
"PLK4+STIL 0.7696 \n",
"BCORL1 -0.0530 \n",
"CEBPE+SPI1 0.8028 \n",
"CEBPB+OSR2 0.8297 \n",
"TGFBR2+IGDCC3 0.8447 \n",
"FOXF1 0.2522 \n",
"TBX3 0.9405 \n",
"MAP2K3 0.8584 \n",
"TBX2 0.9242 \n",
"SAMD1+ZBTB1 0.8085 \n",
"DUSP9+KLF1 0.9663 \n",
"CBL+UBASH3B 0.9174 \n",
"FOSB+CEBPB 0.7062 \n",
"DUSP9+ETS2 0.8880 \n",
"MAP2K6+SPI1 0.8505 \n",
"PRTG 0.9079 \n",
"PTPN12+UBASH3A 0.9115 \n",
"KLF1 0.9941 \n",
"SGK1+TBX2 0.9422 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display_cols = [c for c in metrics_df.columns if c not in ('split', 'type')]\n",
"\n",
"print(\"\\n--- UNSEEN SINGLE perturbations ---\")\n",
"mask = (metrics_df['split'] == 'unseen') & (metrics_df['type'] == 'single')\n",
"display(metrics_df[mask][display_cols].round(4))\n",
"\n",
"print(\"\\n--- UNSEEN COMBO perturbations ---\")\n",
"mask = (metrics_df['split'] == 'unseen') & (metrics_df['type'] == 'combo')\n",
"display(metrics_df[mask][display_cols].round(4))\n",
"\n",
"print(\"\\n--- SEEN perturbations (random subset) ---\")\n",
"mask = metrics_df['split'] == 'seen'\n",
"display(metrics_df[mask][display_cols].round(4))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "disect",
"language": "python",
"name": "disect"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.19"
}
},
"nbformat": 4,
"nbformat_minor": 4
}