{ "cells": [ { "cell_type": "markdown", "id": "9e4f8654", "metadata": {}, "source": [ "# The ANI-1ccx dataset: coupled-cluster labels and transfer learning with the `ani-1ccx` preset\n", "\n", "The **ANI-1ccx dataset** (Smith *et al.*, *Nat. Commun.* **10**, 2903, 2019;\n", "released in *Sci. Data* **7**, 134, 2020) is the training set behind the\n", "**ANI-1ccx** potential. It is an intelligently selected ~10 % subset of the\n", "ANI-1x set, **recomputed at an approximate CCSD(T)/CBS level**: the\n", "CCSD(T)\\*/CBS composite scheme (DLPNO-CCSD(T) plus MP2/HF basis-set\n", "extrapolation), ~50× cheaper than full CCSD(T)/CBS for an aspirin-size\n", "molecule. Two things matter here:\n", "\n", "- **Coupled-cluster energies, no forces.** CCSD(T)\\*/CBS is the \"gold\n", " standard\" target; only energies were computed (~500 k of them).\n", "- **Transfer learning.** The published ANI-1ccx model is the ANI-1x\n", " *architecture*, pre-trained on the ~5 M DFT energies+forces of ANI-1x and\n", " then fine-tuned on the ~500 k coupled-cluster energies.\n", "\n", "Same one-line hub as every other dataset, and since ANI-1ccx lives inside the\n", "same `ani1x-release.h5` file as ANI-1x (a conformation \"is in\" ANI-1ccx when\n", "its `ccsd(t)_cbs.energy` was computed), the 5.6 GB download and cache are\n", "**shared** with `load_dataset(\"ani1x\")`:\n", "\n", "```python\n", "from xnn.common.data import load_dataset\n", "cc = load_dataset(\"ani1ccx\", split=\"train\") # CCSD(T)*/CBS energies, in eV\n", "```\n", "\n", "Here we load a small subset, pair every coupled-cluster conformation with its\n", "DFT twin from `ani1x`, and mimic the paper's recipe in miniature: pre-train the\n", "**`ani-1ccx` preset** on DFT energies+forces, fine-tune on the CCSD(T)\\*/CBS\n", "energies, and compare against training on the coupled-cluster data from\n", "scratch. This completes the series `ani1_dataset.ipynb` →\n", "`ani1x_dataset.ipynb` → this notebook.\n", "\n", "Run with the **`xnn`** kernel." ] }, { "cell_type": "markdown", "id": "331dc8e3", "metadata": {}, "source": [ "## 0. Load the coupled-cluster subset, and its DFT twin\n", "\n", "`ani1ccx` returns energy-only structures. Because it is a subset of the same\n", "release file, every one of its conformations also appears in\n", "`load_dataset(\"ani1x\", level=\"wb97x_dz\")` with DFT energy **and forces**; the\n", "coordinates are bit-identical, so we can pair the two levels of theory exactly\n", "and look at the gap the transfer learning has to close." ] }, { "cell_type": "code", "execution_count": 1, "id": "55390367", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T05:23:52.157818Z", "iopub.status.busy": "2026-07-20T05:23:52.157589Z", "iopub.status.idle": "2026-07-20T05:24:12.006665Z", "shell.execute_reply": "2026-07-20T05:24:12.005678Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d61de5366e654d8a9e4e496e41d83af9", "version_major": 2, "version_minor": 0 }, "text/plain": [ "ani1ccx:ccsd(t)_cbs.energy: 0%| | 0/150 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import time, warnings\n", "warnings.filterwarnings(\"ignore\")\n", "import numpy as np\n", "import torch\n", "import matplotlib.pyplot as plt\n", "\n", "torch.set_default_dtype(torch.float64)\n", "torch.manual_seed(0)\n", "\n", "from xnn.common.data import load_dataset\n", "\n", "N_MOL = 150\n", "# coupled-cluster subset: energy-only (CCSD(T)*/CBS has no forces), eV\n", "cc = load_dataset(\"ani1ccx\", max_molecules=N_MOL, units=\"eV\")[\"all\"]\n", "# the same molecules at the DFT level ANI-1x was trained on, with forces\n", "dft = load_dataset(\"ani1x\", max_molecules=N_MOL, level=\"wb97x_dz\",\n", " units=\"eV\")[\"all\"]\n", "print(f\"CCSD(T)*/CBS conformations: {len(cc):,} DFT conformations: {len(dft):,}\")\n", "\n", "# pair each coupled-cluster conformation with its DFT twin (identical coords)\n", "by_pos = {s[\"pos\"].tobytes(): s for s in dft}\n", "pairs = [(c, by_pos[c[\"pos\"].tobytes()]) for c in cc]\n", "assert len(pairs) == len(cc) # ANI-1ccx is a strict subset of ANI-1x\n", "\n", "dE = np.array([(c[\"energy\"] - d[\"energy\"]) / len(c[\"atomic_numbers\"])\n", " for c, d in pairs])\n", "print(f\"E_CC - E_DFT per atom: {dE.mean():.3f} +- {dE.std():.3f} eV\")\n", "print(f\"keys per CC structure: {sorted(cc[0])} # no forces\")\n", "\n", "plt.figure(figsize=(5.2, 3.4))\n", "plt.hist(dE * 1e3, bins=60)\n", "plt.xlabel(r\"$E_{\\mathrm{CCSD(T)*/CBS}} - E_{\\mathrm{DFT}}$ per atom (meV)\")\n", "plt.ylabel(\"count\"); plt.title(\"what transfer learning has to relearn\")\n", "plt.tight_layout(); plt.show()" ] }, { "cell_type": "markdown", "id": "fb91340e", "metadata": {}, "source": [ "## 1. Self atomic energies and splits\n", "\n", "The constant ~0.5 eV/atom offset between the two levels of theory is exactly\n", "what per-element **self atomic energies** absorb, so we fit one set per level,\n", "following the paper's linear-fitting procedure (its SI), which published separate\n", "DFT and CCSD(T)\\*/CBS parameters (the ones behind `ANI.ani1x()` and\n", "`ANI.ani1ccx()`), and hand them to the model as `atomic_energies`. What is left for the fine-tuning to learn is the\n", "*conformation-dependent* part of the CC-DFT difference (the ~60 meV/atom\n", "spread above). We split the paired conformations 90/10; the coupled-cluster\n", "**test** conformations are held out of *both* training stages." ] }, { "cell_type": "code", "execution_count": 2, "id": "86944f25", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T05:24:12.010060Z", "iopub.status.busy": "2026-07-20T05:24:12.009737Z", "iopub.status.idle": "2026-07-20T05:24:12.200232Z", "shell.execute_reply": "2026-07-20T05:24:12.199488Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SAE DFT (eV): {1: -16.42, 6: -1036.0, 7: -1490.07, 8: -2047.0}\n", "SAE CC (eV): {1: -16.68, 6: -1034.47, 7: -1489.3, 8: -2046.13}\n", "DFT pre-train 8,000 CC fine-tune 2,210 CC test 246\n" ] } ], "source": [ "SPECIES = [1, 6, 7, 8]\n", "\n", "def fit_sae(structs):\n", " counts = np.array([[np.sum(s[\"atomic_numbers\"] == z) for z in SPECIES]\n", " for s in structs], float)\n", " E = np.array([s[\"energy\"] for s in structs])\n", " return np.linalg.lstsq(counts, E, rcond=None)[0]\n", "\n", "rng = np.random.default_rng(0)\n", "idx = rng.permutation(len(pairs)); ncut = int(0.9 * len(pairs))\n", "cc_train = [pairs[i][0] for i in idx[:ncut]]\n", "cc_test = [pairs[i][0] for i in idx[ncut:]]\n", "test_keys = {s[\"pos\"].tobytes() for s in cc_test}\n", "\n", "# DFT pre-training pool: everything ani1x gave us for these molecules, minus\n", "# the held-out coupled-cluster test conformations, subsampled for the demo\n", "pool = [d for d in dft if d[\"pos\"].tobytes() not in test_keys]\n", "dft_train = [pool[i] for i in rng.permutation(len(pool))[:8000]]\n", "\n", "sae_dft, sae_cc = fit_sae(dft_train), fit_sae(cc_train)\n", "print(\"SAE DFT (eV):\", {z: round(float(e), 2) for z, e in zip(SPECIES, sae_dft)})\n", "print(\"SAE CC (eV):\", {z: round(float(e), 2) for z, e in zip(SPECIES, sae_cc)})\n", "print(f\"DFT pre-train {len(dft_train):,} CC fine-tune {len(cc_train):,} CC test {len(cc_test):,}\")" ] }, { "cell_type": "markdown", "id": "655c84fd", "metadata": {}, "source": [ "## 2. Transfer learning: DFT pre-training, coupled-cluster retraining\n", "\n", "The **`ani-1ccx` preset** is the ANI-1x architecture (384-length AEV,\n", "per-element widths, `CELU`); the two published models differ only in training\n", "data and self energies, and `ANI.ani1ccx()` simply reuses `ANI.ani1x()` with\n", "the coupled-cluster self energies. We follow the paper's recipe (its Fig. 4)\n", "in miniature:\n", "\n", "1. **Pre-train** on DFT energies *and forces* (`force_weight > 0`; the force\n", " labels are why the DFT stage teaches so much more per conformation);\n", "2. **Retrain** the same weights on the CCSD(T)\\*/CBS energies with part of\n", " each element network **held fixed** to avoid overfitting the smaller\n", " coupled-cluster set, and the coupled-cluster self energies swapped in. The\n", " paper's Methods pin this down precisely: \"65,280 of the 325,248 optimizable\n", " neural network parameters held constant\". Decomposing those counts against\n", " the Table-S2 architecture, 325,248 is the total *weight* count (biases\n", " excluded) and 65,280 is **exactly the weight matrix joining hidden layers\n", " 1 and 2** of each element network, the unique layer combination that\n", " matches, and the paper's \"two fixed hidden layers\". That is what we freeze.\n", "3. and, for contrast, train an identical model on the coupled-cluster\n", " energies only, the paper's **ANI-1ccx-R** control.\n", "\n", "As in the paper's SI, every stage uses the same optimizer settings: Adam,\n", "initial learning rate 1e-3, annealed on plateau. (The paper also evaluates\n", "Δ-learning, a second network trained on the CC−DFT difference, which\n", "matches transfer learning's accuracy but costs two evaluations.)" ] }, { "cell_type": "code", "execution_count": 3, "id": "eaa54585", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T05:24:12.202173Z", "iopub.status.busy": "2026-07-20T05:24:12.201957Z", "iopub.status.idle": "2026-07-20T05:56:06.317624Z", "shell.execute_reply": "2026-07-20T05:56:06.316954Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "parameters: 326,660 device cuda\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 0 | train loss 1.2438e+01 | val loss 4.0926e+00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 1 | train loss 2.6904e+00 | val loss 2.0254e+00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 2 | train loss 1.6905e+00 | val loss 1.6604e+00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 3 | train loss 1.3294e+00 | val loss 1.2725e+00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 4 | train loss 1.1713e+00 | val loss 1.1402e+00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 5 | train loss 9.7834e-01 | val loss 1.0424e+00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 6 | train loss 9.2896e-01 | val loss 1.1019e+00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 7 | train loss 8.5252e-01 | val loss 9.7635e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 8 | train loss 7.8725e-01 | val loss 9.8223e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 9 | train loss 7.8359e-01 | val loss 9.4670e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 10 | train loss 7.0863e-01 | val loss 8.5174e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 11 | train loss 6.9095e-01 | val loss 8.2331e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 12 | train loss 6.4029e-01 | val loss 7.6784e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 13 | train loss 6.0600e-01 | val loss 7.6909e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 14 | train loss 8.3453e-01 | val loss 1.0233e+00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 15 | train loss 6.5868e-01 | val loss 7.4861e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 16 | train loss 5.9577e-01 | val loss 7.8281e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 17 | train loss 6.0525e-01 | val loss 7.6344e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 18 | train loss 5.3586e-01 | val loss 6.6983e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 19 | train loss 5.0312e-01 | val loss 7.1127e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 20 | train loss 4.9283e-01 | val loss 6.7734e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 21 | train loss 4.7643e-01 | val loss 6.2983e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 22 | train loss 5.2775e-01 | val loss 6.8522e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 23 | train loss 4.9748e-01 | val loss 7.0533e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 24 | train loss 4.8723e-01 | val loss 8.6528e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 25 | train loss 8.8367e-01 | val loss 1.1221e+00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 26 | train loss 6.1676e-01 | val loss 7.1610e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 27 | train loss 4.9103e-01 | val loss 6.3421e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 28 | train loss 4.5245e-01 | val loss 6.1336e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 29 | train loss 4.4291e-01 | val loss 6.0830e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 30 | train loss 4.1744e-01 | val loss 5.8764e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 31 | train loss 4.0041e-01 | val loss 5.6291e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 32 | train loss 4.5442e-01 | val loss 6.8258e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 33 | train loss 4.2370e-01 | val loss 5.8424e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 34 | train loss 4.8801e-01 | val loss 7.9223e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 35 | train loss 4.4265e-01 | val loss 7.4505e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 36 | train loss 4.5893e-01 | val loss 6.8157e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 37 | train loss 4.7516e-01 | val loss 7.3784e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 38 | train loss 4.4793e-01 | val loss 6.6264e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 39 | train loss 5.2843e-01 | val loss 6.9340e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 40 | train loss 4.0953e-01 | val loss 5.9817e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 41 | train loss 4.1611e-01 | val loss 6.0859e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 42 | train loss 3.6088e-01 | val loss 5.7765e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 43 | train loss 2.9906e-01 | val loss 5.3084e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 44 | train loss 2.9031e-01 | val loss 5.3018e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 45 | train loss 2.8840e-01 | val loss 5.2769e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 46 | train loss 2.8655e-01 | val loss 5.2557e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 47 | train loss 2.8539e-01 | val loss 5.2141e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 48 | train loss 2.8487e-01 | val loss 5.2260e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 49 | train loss 2.8403e-01 | val loss 5.2102e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 50 | train loss 2.8251e-01 | val loss 5.2077e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 51 | train loss 2.8174e-01 | val loss 5.1859e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 52 | train loss 2.8085e-01 | val loss 5.1586e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 53 | train loss 2.7991e-01 | val loss 5.1597e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 54 | train loss 2.7929e-01 | val loss 5.1263e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 55 | train loss 2.7785e-01 | val loss 5.1060e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 56 | train loss 2.7741e-01 | val loss 5.1187e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 57 | train loss 2.7704e-01 | val loss 5.0729e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 58 | train loss 2.7524e-01 | val loss 5.0707e-01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 59 | train loss 2.7504e-01 | val loss 5.0687e-01\n", "pre-trained on DFT in 1541s\n", "held fixed: 65,280 of 325,248 weights (paper: 65,280 of 325,248)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 0 | train loss 4.1396e-02 | val loss 2.4672e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 1 | train loss 2.1106e-03 | val loss 6.7884e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 2 | train loss 6.4169e-04 | val loss 4.1016e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 3 | train loss 4.8975e-04 | val loss 4.3289e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 4 | train loss 3.6812e-04 | val loss 2.9128e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 5 | train loss 2.3114e-04 | val loss 3.1363e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 6 | train loss 2.2278e-04 | val loss 2.4599e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 7 | train loss 1.6275e-04 | val loss 1.5223e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 8 | train loss 1.2958e-04 | val loss 1.2849e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 9 | train loss 1.2903e-04 | val loss 1.3009e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 10 | train loss 1.0172e-04 | val loss 1.3479e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 11 | train loss 9.6376e-05 | val loss 1.4116e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 12 | train loss 9.4926e-05 | val loss 1.2027e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 13 | train loss 7.9624e-05 | val loss 1.1960e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 14 | train loss 7.4427e-05 | val loss 9.3855e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 15 | train loss 6.6238e-05 | val loss 1.2157e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 16 | train loss 6.5968e-05 | val loss 9.1179e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 17 | train loss 7.6416e-05 | val loss 8.3015e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 18 | train loss 6.6458e-05 | val loss 8.8245e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 19 | train loss 5.6283e-05 | val loss 8.9250e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 20 | train loss 5.3744e-05 | val loss 8.2295e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 21 | train loss 4.9935e-05 | val loss 9.6941e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 22 | train loss 5.6173e-05 | val loss 9.2812e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 23 | train loss 5.6209e-05 | val loss 9.2173e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 24 | train loss 5.4093e-05 | val loss 7.7516e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 25 | train loss 4.2020e-05 | val loss 7.4890e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 26 | train loss 4.7060e-05 | val loss 9.5024e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 27 | train loss 4.2635e-05 | val loss 1.1198e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 28 | train loss 4.6484e-05 | val loss 8.2886e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 29 | train loss 4.2837e-05 | val loss 1.2594e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 30 | train loss 4.9020e-05 | val loss 7.5948e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 31 | train loss 3.5123e-05 | val loss 7.6224e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 32 | train loss 3.9914e-05 | val loss 8.1843e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 33 | train loss 4.1620e-05 | val loss 7.5390e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 34 | train loss 3.4392e-05 | val loss 7.1726e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 35 | train loss 3.4586e-05 | val loss 7.5376e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 36 | train loss 5.0575e-05 | val loss 8.7403e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 37 | train loss 3.5152e-05 | val loss 7.3908e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 38 | train loss 3.4998e-05 | val loss 7.5889e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 39 | train loss 5.3791e-05 | val loss 1.2229e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 40 | train loss 5.3641e-05 | val loss 9.5575e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 41 | train loss 3.6085e-05 | val loss 7.3422e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 42 | train loss 4.5756e-05 | val loss 7.1118e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 43 | train loss 5.9775e-05 | val loss 7.4973e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 44 | train loss 5.5218e-05 | val loss 1.8896e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 45 | train loss 6.5280e-05 | val loss 1.2788e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 46 | train loss 7.2667e-05 | val loss 2.4871e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 47 | train loss 6.1568e-05 | val loss 6.9086e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 48 | train loss 3.4997e-05 | val loss 7.9301e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 49 | train loss 4.3373e-05 | val loss 8.4304e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 50 | train loss 3.3896e-05 | val loss 1.6841e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 51 | train loss 4.3730e-05 | val loss 1.9728e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 52 | train loss 6.0804e-05 | val loss 2.6287e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 53 | train loss 6.3224e-05 | val loss 9.0502e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 54 | train loss 3.3943e-05 | val loss 6.9562e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 55 | train loss 3.3370e-05 | val loss 1.2347e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 56 | train loss 3.3649e-05 | val loss 8.6434e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 57 | train loss 5.3048e-05 | val loss 2.1232e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 58 | train loss 8.7603e-05 | val loss 8.9468e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 59 | train loss 2.6126e-05 | val loss 6.3830e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 60 | train loss 1.7611e-05 | val loss 6.3757e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 61 | train loss 1.8440e-05 | val loss 6.5321e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 62 | train loss 1.6492e-05 | val loss 6.4164e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 63 | train loss 1.5679e-05 | val loss 6.2918e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 64 | train loss 1.5055e-05 | val loss 6.2641e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 65 | train loss 1.4905e-05 | val loss 6.6041e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 66 | train loss 1.4968e-05 | val loss 6.2770e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 67 | train loss 1.5179e-05 | val loss 6.2778e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 68 | train loss 1.4331e-05 | val loss 6.2790e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 69 | train loss 1.5333e-05 | val loss 6.2793e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 70 | train loss 1.5204e-05 | val loss 6.2361e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 71 | train loss 1.4379e-05 | val loss 6.1594e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 72 | train loss 1.3738e-05 | val loss 6.3994e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 73 | train loss 1.3945e-05 | val loss 6.2149e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 74 | train loss 1.4075e-05 | val loss 6.3445e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 75 | train loss 1.5480e-05 | val loss 6.1768e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 76 | train loss 1.5261e-05 | val loss 6.1049e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 77 | train loss 1.4544e-05 | val loss 6.5583e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 78 | train loss 1.5586e-05 | val loss 6.1454e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 79 | train loss 1.3626e-05 | val loss 6.1328e-05\n", "retrained on CC in 149s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 0 | train loss 1.7699e-02 | val loss 1.4554e-02\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 1 | train loss 9.7817e-03 | val loss 4.6059e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 2 | train loss 3.6900e-03 | val loss 3.4432e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 3 | train loss 2.9725e-03 | val loss 6.0810e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 4 | train loss 3.2924e-03 | val loss 2.0417e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 5 | train loss 2.3469e-03 | val loss 2.7521e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 6 | train loss 2.1448e-03 | val loss 1.7277e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 7 | train loss 1.7884e-03 | val loss 1.9184e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 8 | train loss 1.8999e-03 | val loss 1.9449e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 9 | train loss 1.8694e-03 | val loss 1.6535e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 10 | train loss 1.5620e-03 | val loss 3.5811e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 11 | train loss 1.9642e-03 | val loss 1.3113e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 12 | train loss 1.2507e-03 | val loss 1.9917e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 13 | train loss 1.2876e-03 | val loss 1.2713e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 14 | train loss 1.1322e-03 | val loss 1.2399e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 15 | train loss 1.1964e-03 | val loss 2.1958e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 16 | train loss 1.3258e-03 | val loss 1.5538e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 17 | train loss 9.9817e-04 | val loss 1.1752e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 18 | train loss 9.5691e-04 | val loss 1.2629e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 19 | train loss 9.3690e-04 | val loss 1.2075e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 20 | train loss 1.0505e-03 | val loss 1.2526e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 21 | train loss 8.3546e-04 | val loss 1.0399e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 22 | train loss 7.8488e-04 | val loss 9.1359e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 23 | train loss 7.8536e-04 | val loss 1.3819e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 24 | train loss 1.0235e-03 | val loss 9.8387e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 25 | train loss 8.7827e-04 | val loss 1.6385e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 26 | train loss 8.7085e-04 | val loss 9.6707e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 27 | train loss 7.4644e-04 | val loss 1.4962e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 28 | train loss 8.3714e-04 | val loss 9.0478e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 29 | train loss 6.2574e-04 | val loss 8.9635e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 30 | train loss 6.4467e-04 | val loss 1.1025e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 31 | train loss 5.9620e-04 | val loss 1.3300e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 32 | train loss 7.8016e-04 | val loss 1.2128e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 33 | train loss 8.3658e-04 | val loss 9.0089e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 34 | train loss 5.6219e-04 | val loss 9.3522e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 35 | train loss 6.4547e-04 | val loss 1.1695e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 36 | train loss 5.1936e-04 | val loss 9.0015e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 37 | train loss 5.2918e-04 | val loss 1.6505e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 38 | train loss 7.4145e-04 | val loss 1.6295e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 39 | train loss 7.2743e-04 | val loss 8.5125e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 40 | train loss 5.1751e-04 | val loss 8.4220e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 41 | train loss 6.8155e-04 | val loss 9.2653e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 42 | train loss 5.5102e-04 | val loss 8.8811e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 43 | train loss 4.1737e-04 | val loss 1.0708e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 44 | train loss 4.1089e-04 | val loss 1.1332e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 45 | train loss 4.6918e-04 | val loss 9.9670e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 46 | train loss 4.3298e-04 | val loss 8.0448e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 47 | train loss 4.0670e-04 | val loss 7.5189e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 48 | train loss 3.8891e-04 | val loss 7.6168e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 49 | train loss 4.1890e-04 | val loss 6.9957e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 50 | train loss 4.5239e-04 | val loss 8.0927e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 51 | train loss 3.4424e-04 | val loss 7.2472e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 52 | train loss 3.0920e-04 | val loss 6.9325e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 53 | train loss 4.6385e-04 | val loss 8.1706e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 54 | train loss 4.0084e-04 | val loss 8.3938e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 55 | train loss 3.4552e-04 | val loss 7.2220e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 56 | train loss 3.1820e-04 | val loss 7.7759e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 57 | train loss 2.9654e-04 | val loss 9.8698e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 58 | train loss 3.4949e-04 | val loss 1.0978e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 59 | train loss 3.0588e-04 | val loss 7.9954e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 60 | train loss 3.6310e-04 | val loss 7.3267e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 61 | train loss 2.6141e-04 | val loss 7.0009e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 62 | train loss 3.0736e-04 | val loss 8.0784e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 63 | train loss 2.6078e-04 | val loss 7.1937e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 64 | train loss 1.8289e-04 | val loss 6.6009e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 65 | train loss 1.7123e-04 | val loss 6.7883e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 66 | train loss 1.7112e-04 | val loss 6.9622e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 67 | train loss 1.6710e-04 | val loss 6.5630e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 68 | train loss 1.6775e-04 | val loss 6.5462e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 69 | train loss 1.6393e-04 | val loss 6.4954e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 70 | train loss 1.6382e-04 | val loss 6.5810e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 71 | train loss 1.6078e-04 | val loss 6.8245e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 72 | train loss 1.6055e-04 | val loss 6.4546e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 73 | train loss 1.5795e-04 | val loss 6.5735e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 74 | train loss 1.5751e-04 | val loss 6.4215e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 75 | train loss 1.5514e-04 | val loss 6.4634e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 76 | train loss 1.5993e-04 | val loss 6.5953e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 77 | train loss 1.5739e-04 | val loss 6.6471e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 78 | train loss 1.5667e-04 | val loss 6.4976e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 79 | train loss 1.6309e-04 | val loss 6.8015e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 80 | train loss 1.6052e-04 | val loss 6.4677e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 81 | train loss 1.5088e-04 | val loss 6.8503e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 82 | train loss 1.5996e-04 | val loss 6.4958e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 83 | train loss 1.5123e-04 | val loss 6.6833e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 84 | train loss 1.5379e-04 | val loss 6.4146e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 85 | train loss 1.6081e-04 | val loss 6.5237e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 86 | train loss 1.5283e-04 | val loss 6.5443e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 87 | train loss 1.4783e-04 | val loss 6.4886e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 88 | train loss 1.4607e-04 | val loss 6.4066e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 89 | train loss 1.4592e-04 | val loss 6.4608e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 90 | train loss 1.4982e-04 | val loss 6.2996e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 91 | train loss 1.4571e-04 | val loss 6.9953e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 92 | train loss 1.4531e-04 | val loss 6.4302e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 93 | train loss 1.4291e-04 | val loss 6.5593e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 94 | train loss 1.4364e-04 | val loss 6.4027e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 95 | train loss 1.4510e-04 | val loss 6.4827e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 96 | train loss 1.4179e-04 | val loss 6.3677e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 97 | train loss 1.3831e-04 | val loss 6.5244e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 98 | train loss 1.3704e-04 | val loss 6.3765e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 99 | train loss 1.3524e-04 | val loss 6.4394e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 100 | train loss 1.4190e-04 | val loss 6.3986e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 101 | train loss 1.3635e-04 | val loss 6.5749e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 102 | train loss 1.3097e-04 | val loss 6.3083e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 103 | train loss 1.3231e-04 | val loss 6.3323e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 104 | train loss 1.2809e-04 | val loss 6.3214e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 105 | train loss 1.2669e-04 | val loss 6.3100e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 106 | train loss 1.2701e-04 | val loss 6.3808e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 107 | train loss 2.3252e-04 | val loss 6.3280e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 108 | train loss 1.4900e-04 | val loss 6.4413e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 109 | train loss 1.2971e-04 | val loss 6.3162e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 110 | train loss 1.2727e-04 | val loss 6.3910e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 111 | train loss 1.2919e-04 | val loss 6.3195e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 112 | train loss 1.2568e-04 | val loss 6.3205e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 113 | train loss 1.3046e-04 | val loss 6.3232e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 114 | train loss 1.2767e-04 | val loss 6.3357e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 115 | train loss 1.2537e-04 | val loss 6.3373e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 116 | train loss 1.2752e-04 | val loss 6.3419e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 117 | train loss 1.3743e-04 | val loss 6.3336e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 118 | train loss 1.2521e-04 | val loss 6.3361e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 119 | train loss 1.2607e-04 | val loss 6.3307e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 120 | train loss 1.2508e-04 | val loss 6.3393e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 121 | train loss 1.2649e-04 | val loss 6.3351e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 122 | train loss 1.2760e-04 | val loss 6.3491e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 123 | train loss 1.2782e-04 | val loss 6.3533e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 124 | train loss 1.2912e-04 | val loss 6.3520e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 125 | train loss 1.2865e-04 | val loss 6.3531e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 126 | train loss 1.2484e-04 | val loss 6.3506e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 127 | train loss 1.2639e-04 | val loss 6.3485e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 128 | train loss 1.2708e-04 | val loss 6.3477e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 129 | train loss 1.2531e-04 | val loss 6.3482e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 130 | train loss 1.2587e-04 | val loss 6.3477e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 131 | train loss 1.3041e-04 | val loss 6.3462e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 132 | train loss 1.2642e-04 | val loss 6.3472e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 133 | train loss 1.2443e-04 | val loss 6.3471e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 134 | train loss 1.2693e-04 | val loss 6.3451e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 135 | train loss 1.2538e-04 | val loss 6.3451e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 136 | train loss 1.2529e-04 | val loss 6.3449e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 137 | train loss 1.2518e-04 | val loss 6.3448e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 138 | train loss 1.2821e-04 | val loss 6.3447e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 139 | train loss 1.2584e-04 | val loss 6.3445e-04\n", "ANI-1ccx-R (CC only, no transfer) trained in 223s\n" ] } ], "source": [ "from xnn.common.data import AtomicDataset\n", "from xnn.common.config import Config, ModelConfig, DataConfig, OptimConfig\n", "from xnn.common.train import Trainer\n", "\n", "CUTOFF, BS = 5.2, 64\n", "\n", "def make_trainer(structs, sae, out, lr, epochs, force_weight):\n", " cfg = Config(\n", " model=ModelConfig(name=\"ani\", cutoff=CUTOFF,\n", " extra={\"preset\": \"ani-1ccx\", \"species\": SPECIES,\n", " \"atomic_energies\": sae.tolist()}),\n", " data=DataConfig(cutoff=CUTOFF, batch_size=BS), # val_fraction 0.1 carves val\n", " optim=OptimConfig(lr=lr, epochs=epochs, energy_weight=1.0,\n", " force_weight=force_weight, scheduler=\"plateau\"),\n", " output_dir=f\"runs/{out}\",\n", " )\n", " return Trainer(cfg, AtomicDataset(structs, CUTOFF))\n", "\n", "# stage 1: pre-train on DFT energies + forces\n", "pre = make_trainer(dft_train, sae_dft, \"ani1ccx_pretrain\", 1e-3, 60, 10.0)\n", "print(f\"parameters: {sum(p.numel() for p in pre.module.parameters()):,} device {pre.device}\")\n", "t0 = time.time(); pre.fit()\n", "print(f\"pre-trained on DFT in {time.time()-t0:.0f}s\")\n", "\n", "# stage 2: retrain on CCSD(T)*/CBS energies -- transplant everything except\n", "# the self-energy buffer, which switches from the DFT to the CC linear fit\n", "tune = make_trainer(cc_train, sae_cc, \"ani1ccx_transfer\", 1e-3, 80, 0.0)\n", "weights = {k: v for k, v in pre.module.state_dict().items()\n", " if \"_self_energies\" not in k}\n", "tune.module.load_state_dict(weights, strict=False)\n", "zero_shot = make_trainer(cc_train, sae_cc, \"ani1ccx_zeroshot\", 1e-3, 1, 0.0)\n", "zero_shot.module.load_state_dict(tune.module.state_dict()) # pre-retrain copy\n", "\n", "# hold constant what the paper holds constant: 65,280 of the 325,248 network\n", "# weights -- exactly the matrix joining hidden layers 1 and 2 of each element\n", "# network (see the markdown above for the derivation)\n", "n_frozen = n_weights = 0\n", "for net in tune.module.model.element_nets.nets.values():\n", " linears = [l for l in net if isinstance(l, torch.nn.Linear)]\n", " n_weights += sum(l.weight.numel() for l in linears)\n", " l2 = linears[1]\n", " l2.weight.requires_grad_(False); l2.bias.requires_grad_(False)\n", " n_frozen += l2.weight.numel()\n", "print(f\"held fixed: {n_frozen:,} of {n_weights:,} weights (paper: 65,280 of 325,248)\")\n", "assert (n_frozen, n_weights) == (65280, 325248)\n", "t0 = time.time(); tune.fit()\n", "print(f\"retrained on CC in {time.time()-t0:.0f}s\")\n", "\n", "# ANI-1ccx-R control: same architecture trained on the CC energies only\n", "ccx_r = make_trainer(cc_train, sae_cc, \"ani1ccx_r\", 1e-3, 140, 0.0)\n", "t0 = time.time(); ccx_r.fit()\n", "print(f\"ANI-1ccx-R (CC only, no transfer) trained in {time.time()-t0:.0f}s\")" ] }, { "cell_type": "markdown", "id": "b16381b0", "metadata": {}, "source": [ "## 3. Parity against CCSD(T)\\*/CBS on held-out conformations\n", "\n", "Three models, one test set of coupled-cluster energies: the DFT-pre-trained\n", "model *before* retraining (\"zero-shot\", only the self energies adjusted, the\n", "analogue of evaluating ANI-1x against coupled-cluster references), the\n", "CC-only **ANI-1ccx-R** control, and the transfer-learned **ANI-1ccx**-style\n", "model. The paper's point in miniature, and the same ordering as its Table 1\n", "(ANI-1ccx 2.07 < ANI-1ccx-R 2.54 < ANI-1x 2.79 kcal/mol RMSD on\n", "GDB-10to13): the coupled-cluster data alone is too scarce, but a model that\n", "already knows the DFT potential-energy surface only needs a small\n", "correction." ] }, { "cell_type": "code", "execution_count": 4, "id": "e41cf8f8", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T05:56:06.319619Z", "iopub.status.busy": "2026-07-20T05:56:06.319490Z", "iopub.status.idle": "2026-07-20T05:56:07.197755Z", "shell.execute_reply": "2026-07-20T05:56:07.197138Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "zero-shot (DFT weights) CC test energy RMSE: 1489.4 meV = 34.35 kcal/mol\n", "ANI-1ccx-R (CC only) CC test energy RMSE: 555.6 meV = 12.81 kcal/mol\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "transfer-learned CC test energy RMSE: 216.8 meV = 5.00 kcal/mol\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from torch.utils.data import DataLoader\n", "from xnn.common.data import collate\n", "\n", "EV2KCAL = 23.060541945329334\n", "test_ds = AtomicDataset(cc_test, CUTOFF)\n", "\n", "def energies(trainer):\n", " model = trainer.model.eval(); device = trainer.device\n", " pred, ref = [], []\n", " for batch in DataLoader(test_ds, batch_size=64, collate_fn=collate):\n", " batch = batch.to(device)\n", " pred.append(model(batch)[\"energy\"].detach().cpu().numpy())\n", " ref.append(batch.energy.cpu().numpy())\n", " return np.concatenate(pred), np.concatenate(ref)\n", "\n", "results = {}\n", "for name, tr in [(\"zero-shot (DFT weights)\", zero_shot),\n", " (\"ANI-1ccx-R (CC only)\", ccx_r),\n", " (\"transfer-learned\", tune)]:\n", " pred, ref = energies(tr)\n", " rmse = np.sqrt(np.mean((pred - ref) ** 2))\n", " results[name] = (pred, ref, rmse)\n", " print(f\"{name:26s} CC test energy RMSE: {rmse*1e3:7.1f} meV = {rmse*EV2KCAL:6.2f} kcal/mol\")\n", "\n", "fig, axes = plt.subplots(1, 3, figsize=(12.6, 4.0), sharex=True, sharey=True)\n", "for ax, (name, (pred, ref, rmse)) in zip(axes, results.items()):\n", " ax.scatter(ref, pred, s=8, alpha=0.5)\n", " lim = [ref.min(), ref.max()]\n", " ax.plot(lim, lim, \"k--\", lw=1)\n", " ax.set_xlabel(\"CCSD(T)*/CBS energy (eV)\")\n", " ax.set_title(f\"{name}\\n{rmse*EV2KCAL:.2f} kcal/mol\")\n", "axes[0].set_ylabel(\"predicted energy (eV)\")\n", "fig.tight_layout(); fig.savefig(\"ani1ccx_transfer.png\", dpi=110); plt.show()" ] }, { "cell_type": "markdown", "id": "d63770af", "metadata": {}, "source": [ "## Summary\n", "\n", "`load_dataset(\"ani1ccx\", ...)` brings the ~500 k-conformation coupled-cluster\n", "training set into the hub under its own name: a strict subset of the ANI-1x\n", "release, so the 5.6 GB file is downloaded and cached **once** for both. Paired\n", "with the **`ani-1ccx` preset** (`ANI.ani1ccx()`, the ANI-1x architecture with\n", "coupled-cluster self energies), it reproduces the published model's setup:\n", "DFT pre-training on `ani1x`, coupled-cluster fine-tuning on `ani1ccx`.\n", "\n", "The full family, side by side:\n", "\n", "| | ANI-1 (`ani1`) | ANI-1x (`ani1x`) | ANI-1ccx (`ani1ccx`) |\n", "|---|---|---|---|\n", "| labels | DFT energies | DFT energies **+ forces** | **CCSD(T)\\*/CBS** energies |\n", "| size | ~20 M | ~5 M | ~500 k |\n", "| sampling | dense Normal-Mode | active learning | active sub-sampling of ANI-1x |\n", "| preset | `ANI.ani1()` | `ANI.ani1x()` | `ANI.ani1ccx()` (= ANI-1x arch.) |\n", "| training | direct | direct | **transfer learning** from ANI-1x |\n", "\n", "The relative ordering above (transfer-learned best, the CC-only ANI-1ccx-R\n", "control worse, the DFT model worst against coupled-cluster references)\n", "reproduces the paper's central result (its Table 1), here at demo scale. For the **pretrained** ANI-1x/ANI-1ccx weights transplanted from\n", "torchani (rather than trained here), see\n", "`examples/fidelity_checks/ani_verification.ipynb` and the parity tests in\n", "`tests/test_ani.py`." ] } ], "metadata": { "kernelspec": { "display_name": "xnn (.venv)", "language": "python", "name": "xnn" }, "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.13.12" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "0c2c18cb38784597aa63899105d00f43": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "1d7d95e51fe749e089182d4728aa3f84": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "2833e64a61a842819fcbbd80ddf9732f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "4689e9a3fcf749b58755556d33d03f4c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_2833e64a61a842819fcbbd80ddf9732f", "max": 150.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_c4f36b561f0445e293ac8ba7cc50c6ea", "tabbable": null, "tooltip": null, "value": 150.0 } }, "477da18a25a944f09cfcdff002096ad8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "5d2d37a67a1a40e2a1220558953f61a0": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "6dbdbfd7ff684c9caacb7186629cf7b8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_d1c4ae6cb23045ccb46ab83c521b4a82", "IPY_MODEL_94bbd2da218c454aa2e3cf9eebf48542", "IPY_MODEL_b2218e2cc3e24a039948415673579289" ], "layout": "IPY_MODEL_1d7d95e51fe749e089182d4728aa3f84", "tabbable": null, "tooltip": null } }, "72ebe3daca7b4d1fb70786611a11978e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_ef433a109c334f0f9e2f3308103423d6", "placeholder": "​", "style": "IPY_MODEL_f06976f84c964c4cbe2471978870c6b3", "tabbable": null, "tooltip": null, "value": "ani1ccx:ccsd(t)_cbs.energy:  71%" } }, "79c44b95100249fda9994fa25bc6a257": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "8aa0ca9888e248678d545eced908b1c2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_e4748275804c4d1bb565e9b6ab8a9ec5", "placeholder": "​", "style": "IPY_MODEL_477da18a25a944f09cfcdff002096ad8", "tabbable": null, "tooltip": null, "value": " 106/150 [00:00<00:00, 1054.49 mol/s]" } }, "8f448a6966a04723a7a12452f2e98034": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "90633b2a4b4f4867a5fa61333390e999": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "94bbd2da218c454aa2e3cf9eebf48542": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_79c44b95100249fda9994fa25bc6a257", "max": 150.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_0c2c18cb38784597aa63899105d00f43", "tabbable": null, "tooltip": null, "value": 150.0 } }, "b2218e2cc3e24a039948415673579289": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_5d2d37a67a1a40e2a1220558953f61a0", "placeholder": "​", "style": "IPY_MODEL_8f448a6966a04723a7a12452f2e98034", "tabbable": null, "tooltip": null, "value": " 116/150 [00:00<00:00, 382.70 mol/s]" } }, "c4f36b561f0445e293ac8ba7cc50c6ea": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "d1c4ae6cb23045ccb46ab83c521b4a82": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_90633b2a4b4f4867a5fa61333390e999", "placeholder": "​", "style": "IPY_MODEL_e61230c8a9c04906b186748e6d7e694f", "tabbable": null, "tooltip": null, "value": "ani1x:wb97x_dz.energy:  77%" } }, "d61de5366e654d8a9e4e496e41d83af9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_72ebe3daca7b4d1fb70786611a11978e", "IPY_MODEL_4689e9a3fcf749b58755556d33d03f4c", "IPY_MODEL_8aa0ca9888e248678d545eced908b1c2" ], "layout": "IPY_MODEL_e72fe3647a054fad99a9bb2eb07e9161", "tabbable": null, "tooltip": null } }, "e4748275804c4d1bb565e9b6ab8a9ec5": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e61230c8a9c04906b186748e6d7e694f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "e72fe3647a054fad99a9bb2eb07e9161": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "ef433a109c334f0f9e2f3308103423d6": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f06976f84c964c4cbe2471978870c6b3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }