From 9b4471bf73808c4e41e032df61c6a3325c7c090c Mon Sep 17 00:00:00 2001 From: lospiri Date: Sat, 7 Feb 2026 14:58:52 +0100 Subject: [PATCH] Add example for neural gru-ode --- docs/examples/neural_gru_ode.ipynb | 309 +++++++++++++++++++ imgs/trajectories_and_alpha_distribution.png | Bin 0 -> 102682 bytes mkdocs.yml | 1 + 3 files changed, 310 insertions(+) create mode 100644 docs/examples/neural_gru_ode.ipynb create mode 100644 imgs/trajectories_and_alpha_distribution.png diff --git a/docs/examples/neural_gru_ode.ipynb b/docs/examples/neural_gru_ode.ipynb new file mode 100644 index 00000000..4ef1372f --- /dev/null +++ b/docs/examples/neural_gru_ode.ipynb @@ -0,0 +1,309 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3f91f38f", + "metadata": {}, + "source": [ + "# GRU-ODE" + ] + }, + { + "cell_type": "markdown", + "id": "9dc4b631", + "metadata": {}, + "source": [ + "This example trains a [GRU-ODE](https://arxiv.org/abs/1905.12374) (a continuous time GRU-cells network) to predict a global parameter in a synthetic spirals dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "694f0f7e", + "metadata": {}, + "outputs": [], + "source": [ + "import jax\n", + "import jax.numpy as jnp\n", + "import jax.random as jrandom\n", + "import equinox as eqx # https://github.com/patrick-kidger/equinox\n", + "import diffrax\n", + "import optax # https://github.com/deepmind/optax\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "8ec45d1b", + "metadata": {}, + "source": [ + "We use [Equinox](https://github.com/patrick-kidger/equinox) to build neural networks. We use [Optax](https://github.com/deepmind/optax) for optimisers (Adam etc.)" + ] + }, + { + "cell_type": "markdown", + "id": "92207626", + "metadata": {}, + "source": [ + "The dataset contains 10_000 spirals, which were generated using a parameter alpha and some noise. We are trying to predict the alpha for each spiral.\n", + "\n", + "![Spirals Dataset](../imgs/trajectories_and_alpha_distribution.png)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "5e216be2", + "metadata": {}, + "outputs": [], + "source": [ + "spirals = jnp.load(\"spirals.npz\")\n", + "\n", + "data_train = spirals[\"xy_train\"]\n", + "data_test = spirals[\"xy_test\"]\n", + "alpha_train = spirals[\"alpha_train\"]\n", + "\n", + "# z-score transform\n", + "data_mean = jnp.mean(data_train, axis=(0, 1), keepdims=True)\n", + "data_std = jnp.std(data_train, axis=(0, 1), keepdims=True)\n", + "alpha_mean = jnp.mean(alpha_train, axis=0, keepdims=True)\n", + "alpha_std = jnp.std(alpha_train, axis=0, keepdims=True)\n", + "\n", + "ts_train = jnp.repeat(jnp.linspace(0, 1, data_train.shape[1])[None, :], data_train.shape[0], axis=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1d3d75d1", + "metadata": {}, + "outputs": [], + "source": [ + "class ContinuousGRUField(eqx.Module):\n", + " lin_z: eqx.nn.Linear\n", + " lin_r: eqx.nn.Linear\n", + " lin_g: eqx.nn.Linear\n", + "\n", + " def __init__(self, hidden_size, key):\n", + " k1, k2, k3 = jrandom.split(key, 3)\n", + " self.lin_z = eqx.nn.Linear(hidden_size, hidden_size, key=k1)\n", + " self.lin_r = eqx.nn.Linear(hidden_size, hidden_size, key=k2)\n", + " self.lin_g = eqx.nn.Linear(hidden_size, hidden_size, key=k3)\n", + "\n", + " def __call__(self, t, h, args):\n", + " z = jax.nn.sigmoid(self.lin_z(h))\n", + " r = jax.nn.sigmoid(self.lin_r(h))\n", + " g = jax.nn.tanh(self.lin_g(r * h))\n", + " return (1 - z) * (g - h)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "7757c484", + "metadata": {}, + "outputs": [], + "source": [ + "class GRU_ODE(eqx.Module):\n", + " vector_field: ContinuousGRUField\n", + " observation_update: eqx.nn.GRUCell\n", + " linear_out: eqx.nn.Linear\n", + " hidden_size: int\n", + "\n", + " def __init__(self, in_size, hidden_size, out_size, key):\n", + " k1, k2, k3 = jrandom.split(key, 3)\n", + " self.hidden_size = hidden_size\n", + " \n", + " self.vector_field = ContinuousGRUField(hidden_size, key=k1)\n", + " self.observation_update = eqx.nn.GRUCell(in_size, hidden_size, key=k2)\n", + " self.linear_out = eqx.nn.Linear(hidden_size, out_size, key=k3)\n", + "\n", + " def __call__(self, ts, obs):\n", + " h0 = jnp.zeros(self.hidden_size)\n", + " \n", + " init_carry = (h0, ts[0])\n", + " xs = (ts[1:], obs[1:])\n", + "\n", + " def scan_fn(carry, x):\n", + " h_prev, t_prev = carry\n", + " t_curr, obs_curr = x\n", + " \n", + " sol = diffrax.diffeqsolve(\n", + " diffrax.ODETerm(self.vector_field),\n", + " diffrax.Tsit5(),\n", + " t0=t_prev,\n", + " t1=t_curr,\n", + " dt0=t_curr - t_prev,\n", + " y0=h_prev\n", + " )\n", + " h_ode_evolved = sol.ys[0]\n", + "\n", + " h_next = self.observation_update(obs_curr, h_ode_evolved)\n", + "\n", + " return (h_next, t_curr), h_next\n", + "\n", + " (h_final, _), _ = jax.lax.scan(scan_fn, init_carry, xs)\n", + "\n", + " return self.linear_out(h_final)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "16b86157", + "metadata": {}, + "outputs": [], + "source": [ + "BATCH_SIZE = 64\n", + "\n", + "key = jrandom.PRNGKey(567)\n", + "model = GRU_ODE(in_size=2, hidden_size=16, out_size=1, key=key)\n", + "\n", + "optimizer = optax.adamw(1e-3)\n", + "opt_state = optimizer.init(eqx.filter(model, eqx.is_array))\n", + "\n", + "@eqx.filter_value_and_grad\n", + "def loss_fn(model, batch_ts, batch_obs, batch_y):\n", + " pred_y = jax.vmap(model)(batch_ts, batch_obs)\n", + " return jnp.mean((pred_y - batch_y) ** 2)\n", + "\n", + "@eqx.filter_jit\n", + "def make_step(model, opt_state, batch_ts, batch_obs, batch_y):\n", + " loss, grads = loss_fn(model, batch_ts, batch_obs, batch_y)\n", + " updates, opt_state = optimizer.update(grads, opt_state, model)\n", + " model = eqx.apply_updates(model, updates)\n", + " return model, opt_state, loss\n", + "\n", + "loss_history = []" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "f5fc47fa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1, Loss: 0.5017\n", + "Epoch 2, Loss: 0.1869\n", + "Epoch 3, Loss: 0.1166\n", + "Epoch 4, Loss: 0.0840\n", + "Epoch 5, Loss: 0.0655\n", + "Epoch 6, Loss: 0.0525\n", + "Epoch 7, Loss: 0.0429\n", + "Epoch 8, Loss: 0.0356\n", + "Epoch 9, Loss: 0.0296\n", + "Epoch 10, Loss: 0.0252\n" + ] + } + ], + "source": [ + "for epoch in range(10):\n", + " key, subkey = jrandom.split(key)\n", + " perm = jrandom.permutation(subkey, data_train.shape[0])\n", + " epoch_loss = 0.0\n", + " for start in range(0, data_train.shape[0], BATCH_SIZE):\n", + " batch_idx = perm[start : start + BATCH_SIZE]\n", + " batch_ts = ts_train[batch_idx]\n", + " batch_obs = data_train[batch_idx, :, :]\n", + " batch_y = alpha_train[batch_idx]\n", + " \n", + " batch_obs = (batch_obs - data_mean) / data_std\n", + " batch_y = (batch_y - alpha_mean) / alpha_std\n", + "\n", + " model, opt_state, loss = make_step(model, opt_state, batch_ts, batch_obs, batch_y)\n", + " loss_history.append(loss)\n", + " epoch_loss += loss.item() * batch_idx.shape[0]\n", + " epoch_loss /= data_train.shape[0]\n", + " print(f\"Epoch {epoch + 1}, Loss: {epoch_loss:.4f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ee2b775f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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E48cOSJ++OGHor+/v/jBBx9IZV544QUxJCRE/PLLL8U9e/aIN910U6tLQMeNGydu375d3LZtmzh48OAetcy1ublz54pxcXHS0t41a9aI4eHh4l/+8hepjDe0uaamRty1a5e4a9cuEYC4dOlScdeuXdLKka5oY1VVlRgVFSXOnj1b3Ldvn7hq1SrR39/fY8s922uzyWQSb7zxRjE+Pl7Mz893+ret+QqR3tZmUbzw7/p856+mEcXe2e72+GwYEUVR/Mc//iH27dtXVKlU4oQJE8RffvnF01XqFACt3v79739LZerr68UHHnhADA0NFf39/cVbbrlFPHv2rNP7nDx5Urz22mtFPz8/MTw8XHzkkUdEs9ncza25OOeHEW9s99dffy2OGjVKVKvV4rBhw8S3337b6XmbzSY++eSTYlRUlKhWq8WrrrpKLCgocCpTUVEhzpw5UwwMDBSDg4PFjIwMsaampjub0WF6vV5csGCB2LdvX1Gj0YgDBgwQn3jiCacvJG9o86ZNm1r9ezx37lxRFLuujbt37xYvvfRSUa1Wi3FxceILL7zQXU1sob02nzhxos1/2zZt2iS9R29rsyhe+Hd9vtbCSG9sd3sEUWy2jSERERFRN/PJOSNERETUczCMEBERkUcxjBAREZFHMYwQERGRRzGMEBERkUcxjBAREZFHMYwQERGRRzGMEBERkUcxjBAREZFHMYwQERGRRzGMEBERkUcxjBAREZFH/T/SbD0wifDYbAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot loss history moving average\n", + "window_size = 100\n", + "loss_history_ma = jnp.convolve(jnp.array(loss_history), jnp.ones(window_size)/window_size, mode='valid')\n", + "plt.plot(loss_history_ma)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d740c03b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGdCAYAAAAMm0nCAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAONtJREFUeJzt3X1cFWXi//83oOcoyo2ocMBFJEu8w9uSpc9qurIiuZab25Za6sZqGtYmrhltKdqumJZlrqv1WW/qk5q161qrflS0vEs0xVgVjVUXJQ1wv5me0OR2fn/0Yz6duFHwoAy+no/HPB7MXNc1c80ZD7yduWbGwzAMQwAAABbiebM7AAAAUFMEGAAAYDkEGAAAYDkEGAAAYDkEGAAAYDkEGAAAYDkEGAAAYDkEGAAAYDmNbnYH6kpZWZm+/PJL+fj4yMPD42Z3BwAAXAPDMPTNN98oJCREnp5Vn2dpsAHmyy+/VGho6M3uBgAAqIUvvvhCP/rRj6osb7ABxsfHR9J3H4Cvr+9N7g0AALgWTqdToaGh5t/xqjTYAFN+2cjX15cAAwCAxVxt+AeDeAEAgOUQYAAAgOUQYAAAgOU02DEwAGAVhmGopKREpaWlN7srQJ3z8vJSo0aNrvsRJwQYALiJioqKlJubq8uXL9/srgA3jLe3t4KDg2Wz2Wq9DgIMANwkZWVlys7OlpeXl0JCQmSz2XjwJho0wzBUVFSk//znP8rOztYdd9xR7cPqqkOAAYCbpKioSGVlZQoNDZW3t/fN7g5wQzRt2lSNGzfW6dOnVVRUpCZNmtRqPQziBYCbrLb/AwWsyh3/5vnWAAAAyyHAAADqrbFjx2rYsGHmfP/+/fX000/f8H5s375dHh4eunDhwnWtJzk5WT169KhRm5u1z/UdY2AAoJ5ZsmStzp4tvGHba9PGrgkTHrjm+mPHjtVbb70lSWrcuLHatm2r0aNH67nnnlOjRnX7Z2Xt2rVq3LjxNdXdvn27BgwYoK+//lr+/v512q/vS0lJ0fPPP685c+Zo6tSpN2y716r8c6nOxx9/rP79+9d63TfiMyfAAEA9c/Zsoby8RtzA7a2ucZvBgwdr+fLlKiws1MaNG5WQkKDGjRsrKSmpQt2ioqLrul32+wICAtyynrq0bNkyPfPMM1q2bFm9DDB33323cnNzzfnf/va3cjqdWr58ubnMCp8zl5AAADVmt9vlcDgUFhamiRMnKiYmRh9++KGk/7vs88c//lEhISGKiIiQJH3xxRf61a9+JX9/fwUEBOj+++/XqVOnzHWWlpYqMTFR/v7+atmypZ555hkZhuGy3R9eTiksLNS0adMUGhoqu92u22+/XUuXLtWpU6fMswwtWrSQh4eHxo4dK+m729dTUlIUHh6upk2bqnv37vrrX//qsp2NGzeqQ4cOatq0qQYMGODSz+rs2LFD3377rWbNmiWn06k9e/ZUW7/8s5o5c6Zat24tX19fTZgwQUVFRS71ysrK9MwzzyggIEAOh0PJycku5fPnz1dkZKSaNWum0NBQPfHEEyooKKh0mzabTQ6Hw5yaNm1qHk+Hw6EWLVroueeeU5s2bdSsWTNFRUVp+/btZvvTp09r6NChatGihZo1a6YuXbpo48aN1X7mdYEAAwC4bk2bNnX5o7tt2zZlZWUpNTVV69evV3FxsWJjY+Xj46Ndu3bpk08+UfPmzTV48GCz3SuvvKIVK1Zo2bJl2r17t86fP6+///3v1W539OjRWr16tV5//XUdO3ZMb7zxhpo3b67Q0FD97W9/kyRlZWUpNzdXCxYskPTdJZ63335bS5YsUWZmpiZPnqxHHnlEO3bskPRd0HrggQc0dOhQZWRk6De/+Y2effbZa/ocli5dqhEjRqhx48YaMWKEli5detU227Zt07Fjx7R9+3atXr1aa9eu1cyZM13qvPXWW2rWrJn27dunuXPnatasWUpNTTXLPT099frrryszM1NvvfWWPvroIz3zzDPX1OcfmjRpktLS0vTuu+/q0KFDevDBBzV48GAdP35ckpSQkKDCwkLt3LlThw8f1ksvvXTVz7wucAkJgCVdzziRmo75QNUMw9C2bdu0efNmPfnkk+byZs2a6S9/+Yt56eidd95RWVmZ/vKXv5gP61u+fLn8/f21fft2DRo0SK+99pqSkpL0wAPfHZslS5Zo8+bNVW77X//6l9577z2lpqYqJiZGknTbbbeZ5eWXQQIDA83xGIWFhZo9e7a2bt2q6Ohos83u3bv1xhtv6J577tHixYvVvn17vfLKK5KkiIgI8w91dZxOp/76178qLS1NkvTII4+ob9++WrBggZo3b15lO5vNpmXLlsnb21tdunTRrFmzNHXqVL344ovm7cbdunXTjBkzJEl33HGH/vSnP2nb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3W6Xw+GotOzYsWPatGmT9u/frzvvvFOStHDhQt177716+eWXFRISopUrV6qoqEjLli2TzWZTly5dlJGRofnz57sEHQAAcGuqkzEw27dvV2BgoCIiIjRx4kR99dVXZllaWpr8/f3N8CJJMTEx8vT01L59+8w6/fr1k81mM+vExsYqKytLX3/9daXbLCwslNPpdJkAAEDD5PYAM3jwYL399tvatm2bXnrpJe3YsUNxcXEqLS2VJOXl5SkwMNClTaNGjRQQEKC8vDyzTlBQkEud8vnyOj+UkpIiPz8/cwoNDXX3rgEAgHqixpeQrubhhx82f46MjFS3bt3Uvn17bd++XQMHDnT35kxJSUlKTEw0551OJyEGAIAGqs5vo77tttvUqlUrnThxQpLkcDh07tw5lzolJSU6f/68OW7G4XAoPz/fpU75fFVja+x2u3x9fV0mAADQMNV5gDlz5oy++uorBQcHS5Kio6N14cIFpaenm3U++ugjlZWVKSoqyqyzc+dOFRcXm3VSU1MVERGhFi1a1HWXAQBAPVfjAFNQUKCMjAxlZGRIkrKzs5WRkaGcnBwVFBRo6tSp2rt3r06dOqVt27bp/vvv1+23367Y2FhJUqdOnTR48GCNGzdOn376qT755BNNmjRJDz/8sEJCQiRJI0eOlM1mU3x8vDIzM7VmzRotWLDA5RIRAAC4ddU4wBw4cEA9e/ZUz549JUmJiYnq2bOnpk+fLi8vLx06dEj33XefOnTooPj4ePXu3Vu7du2S3W4317Fy5Up17NhRAwcO1L333quf/OQnLs948fPz05YtW5Sdna3evXtrypQpmj59OrdQAwAASbUYxNu/f38ZhlFl+ebNm6+6joCAAK1ataraOt26ddOuXbtq2j0AAHAL4F1IAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcmr8MkcA+L4lS9bq7NnCWrVNTz+mPn3c3CEAtwQCDIDrcvZsoby8RtSqrdP5ezf3BsCtgktIAADAcggwAADAcggwAADAcggwAADAchjEC+CWk55+SC+8ULu2bdrYNWHCA+7tEIAaI8AAuOU4nZ61vnPq7NnVbu4NgNrgEhIAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAcAgwA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6aef6pNPPtGkSZP08MMPKyQkRJI0cuRI2Ww2xcfHKzMzU2vWrNGCBQuUmJjoth0HAADWVeNBvAcOHNCAAQPM+fJQMWbMGK1YsULPPPOMLl26pPHjx+vChQv6yU9+ok2bNqlJkyZmm5UrV2rSpEkaOHCgPD09NXz4cL3++utmuZ+fn7Zs2aKEhAT17t1brVq10vTp07mFGgAASKpFgOnfv78Mw6iy3MPDQ7NmzdKsWbOqrBMQEKBVq1ZVu51u3bpp165dNe0eAAC4BTSYu5AAAMCtgwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAsx+0Bpl27dvLw8KgwJSQkSJL69+9foWzChAku68jJydGQIUPk7e2twMBATZ06VSUlJe7uKgAAsKhG7l7h/v37VVpaas4fOXJEP/vZz/Tggw+ay8aNG6dZs2aZ897e3ubPpaWlGjJkiBwOh/bs2aPc3FyNHj1ajRs31uzZs93dXQAAYEFuDzCtW7d2mZ8zZ47at2+ve+65x1zm7e0th8NRafstW7bo6NGj2rp1q4KCgtSjRw+9+OKLmjZtmpKTk2Wz2dzdZQAAYDF1OgamqKhI77zzjh577DF5eHiYy1euXKlWrVqpa9euSkpK0uXLl82ytLQ0RUZGKigoyFwWGxsrp9OpzMzMKrdVWFgop9PpMgEAgIbJ7Wdgvm/dunW6cOGCxo4day4bOXKkwsLCFBISokOHDmnatGnKysrS2rVrJUl5eXku4UWSOZ+Xl1fltlJSUjRz5kz37wQAAKh36jTALF26VHFxcQoJCTGXjR8/3vw5MjJSwcHBGjhwoE6ePKn27dvXeltJSUlKTEw0551Op0JDQ2u9PgAAUH/VWYA5ffq0tm7dap5ZqUpUVJQk6cSJE2rfvr0cDoc+/fRTlzr5+fmSVOW4GUmy2+2y2+3X2WsAAGAFdTYGZvny5QoMDNSQIUOqrZeRkSFJCg4OliRFR0fr8OHDOnfunFknNTVVvr6+6ty5c111FwAAWEidnIEpKyvT8uXLNWbMGDVq9H+bOHnypFatWqV7771XLVu21KFDhzR58mT169dP3bp1kyQNGjRInTt31qOPPqq5c+cqLy9Pzz//vBISEjjDAgAAJNVRgNm6datycnL02GOPuSy32WzaunWrXnvtNV26dEmhoaEaPny4nn/+ebOOl5eX1q9fr4kTJyo6OlrNmjXTmDFjXJ4bAwAAbm11EmAGDRokwzAqLA8NDdWOHTuu2j4sLEwbN26si64BAIAGgHchAQAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAy6nTdyEBQEOTnn5IL7xQu7Zt2tg1YcID7u0QcIsiwABADTidnvLyGlGrtmfPrnZzb4BbFwEGgJYsWauzZwtr1TY9/Zj69HFzhwDgKggwAHT2bGGtzyo4nb93c28A4OoYxAsAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACyHAAMAACzH7QEmOTlZHh4eLlPHjh3N8itXrighIUEtW7ZU8+bNNXz4cOXn57usIycnR0OGDJG3t7cCAwM1depUlZSUuLurAADAohrVxUq7dOmirVu3/t9GGv3fZiZPnqwNGzbo/fffl5+fnyZNmqQHHnhAn3zyiSSptLRUQ4YMkcPh0J49e5Sbm6vRo0ercePGmj17dl10FwAAWEydBJhGjRrJ4XBUWH7x4kUtXbpUq1at0k9/+lNJ0vLly9WpUyft3btXP/7xj7VlyxYdPXpUW7duVVBQkHr06KEXX3xR06ZNU3Jysmw2W110GQAAWEidjIE5fvy4QkJCdNttt2nUqFHKycmRJKWnp6u4uFgxMTFm3Y4dO6pt27ZKS0uTJKWlpSkyMlJBQUFmndjYWDmdTmVmZla5zcLCQjmdTpcJAAA0TG4PMFFRUVqxYoU2bdqkxYsXKzs7W3379tU333yjvLw82Ww2+fv7u7QJCgpSXl6eJCkvL88lvJSXl5dVJSUlRX5+fuYUGhrq3h0DAAD1htsvIcXFxZk/d+vWTVFRUQoLC9N7772npk2buntzpqSkJCUmJprzTqeTEAMAQANV57dR+/v7q0OHDjpx4oQcDoeKiop04cIFlzr5+fnmmBmHw1HhrqTy+crG1ZSz2+3y9fV1mQAAQMNU5wGmoKBAJ0+eVHBwsHr37q3GjRtr27ZtZnlWVpZycnIUHR0tSYqOjtbhw4d17tw5s05qaqp8fX3VuXPnuu4uAACwALdfQvrd736noUOHKiwsTF9++aVmzJghLy8vjRgxQn5+foqPj1diYqICAgLk6+urJ598UtHR0frxj38sSRo0aJA6d+6sRx99VHPnzlVeXp6ef/55JSQkyG63u7u7AADAgtweYM6cOaMRI0boq6++UuvWrfWTn/xEe/fuVevWrSVJr776qjw9PTV8+HAVFhYqNjZWf/7zn832Xl5eWr9+vSZOnKjo6Gg1a9ZMY8aM0axZs9zdVQAAYFFuDzDvvvtuteVNmjTRokWLtGjRoirrhIWFaePGje7uGgAAaCB4FxIAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAcAgwAALAct7+NGsDNsWTJWp09W1irtunpx9Snj5s7BAB1iAADNBBnzxbKy2tErdo6nb93c28AoG5xCQkAAFgOZ2AA4AZJTz+kF16oXds2beyaMOEB93YIsDACDADcIE6nZ60v8509u9rNvQGsjUtIAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADActweYFJSUnTXXXfJx8dHgYGBGjZsmLKyslzq9O/fXx4eHi7ThAkTXOrk5ORoyJAh8vb2VmBgoKZOnaqSkhJ3dxcAAFhQI3evcMeOHUpISNBdd92lkpISPffccxo0aJCOHj2qZs2amfXGjRunWbNmmfPe3t7mz6WlpRoyZIgcDof27Nmj3NxcjR49Wo0bN9bs2bPd3WUAAGAxbg8wmzZtcplfsWKFAgMDlZ6ern79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7du314wZM1RUVFRtu/p+DBctWqR27dqpSZMmioqK0qefflpt/ffff18dO3ZUkyZNFBkZqY0bN96gntZMSkqK7rrrLvn4+CgwMFDDhg1TVlZWtW1WrFhR4Vg1adLkBvW45pKTkyv0t2PHjtW2scrxkyr/feLh4aGEhIRK69f347dz504NHTpUISEh8vDw0Lp161zKDcPQ9OnTFRwcrKZNmyomJkbHjx+/6npr+h2uKQJMJYqKivTggw9q4sSJlZaXlpZqyJAhKioq0p49e/TWW29pxYoVmj59erXrHTVqlDIzM5Wamqr169dr586dGj9+fF3swjW7++67lZub6zL95je/UXh4uO68885q244bN86l3dy5c29Qr2tn1qxZLv198sknq60/efJk/eMf/9D777+vHTt26Msvv9QDD9S/t7Z+/vnnKisr0xtvvKHMzEy9+uqrWrJkiZ577rmrtq2vx3DNmjVKTEzUjBkzdPDgQXXv3l2xsbE6d+5cpfX37NmjESNGKD4+Xp999pmGDRumYcOG6ciRIze451e3Y8cOJSQkaO/evUpNTVVxcbEGDRqkS5cuVdvO19fX5VidPn36BvW4drp06eLS3927d1dZ10rHT5L279/vsm+pqamSpAcffLDKNvX5+F26dEndu3fXokWLKi2fO3euXn/9dS1ZskT79u1Ts2bNFBsbqytXrlS5zpp+h2vFLW9fbKCWL19u+Pn5VVi+ceNGw9PT08jLyzOXLV682PD19TUKCwsrXdfRo0cNScb+/fvNZf/7v/9reHh4GGfPnnV732urqKjIaN26tTFr1qxq691zzz3Gb3/72xvTKTcICwszXn311Wuuf+HCBaNx48bG+++/by47duyYIclIS0urgx6619y5c43w8PBq69TnY9inTx8jISHBnC8tLTVCQkKMlJSUSuv/6le/MoYMGeKyLCoqynj88cfrtJ/ucO7cOUOSsWPHjirrVPW7qL6aMWOG0b1792uub+XjZxiG8dvf/tZo3769UVZWVmm5lY6fJOPvf/+7OV9WVmY4HA5j3rx55rILFy4YdrvdWL16dZXrqel3uDY4A1MLaWlpioyMdHmoXmxsrJxOpzIzM6ts4+/v73JWIyYmRp6entq3b1+d9/laffjhh/rqq6+u6YnHK1euVKtWrdS1a1clJSXp8uXLN6CHtTdnzhy1bNlS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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# predict alpha test\n", + "data_test_normalized = (data_test - data_mean) / data_std\n", + "pred_alpha_test_normalized = jax.vmap(model)(ts_train[:data_test.shape[0]], data_test_normalized)\n", + "pred_alpha_test = pred_alpha_test_normalized * alpha_std + alpha_mean\n", + "\n", + "# plot in hist\n", + "plt.hist(pred_alpha_test.flatten(), bins=30, alpha=0.5, label='Predicted Alpha Test', color='blue', range=(-10, 10), edgecolor='black', linewidth=0.5)\n", + "plt.legend()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "jax-neural-odes", + "language": "python", + "name": "python3" + }, + "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.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/imgs/trajectories_and_alpha_distribution.png b/imgs/trajectories_and_alpha_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..5882b1242f9eba88c510e146eb0b6af5aa4dc75d GIT binary patch literal 102682 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

4l8!a0qj?W@fNIYslb`qZf;sYrS`qSWl#7 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

-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 literal 0 HcmV?d00001 diff --git a/mkdocs.yml b/mkdocs.yml index 25ce7aa8..26601e7f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -115,6 +115,7 @@ nav: - Neural ODE: 'examples/neural_ode.ipynb' - Neural CDE: 'examples/neural_cde.ipynb' - Neural SDE: 'examples/neural_sde.ipynb' + - Neural GRU-ODE: 'examples/neural_gru_ode.ipynb' - Latent ODE: 'examples/latent_ode.ipynb' - Continuous normalising flow: 'examples/continuous_normalising_flow.ipynb' - Symbolic regression: 'examples/symbolic_regression.ipynb'