{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# [Damped Oscillator - CDE](https://github.com/Ziaeemehr/vbi_paper/blob/main/docs/examples/damp_oscillator_cde.ipynb)\n", "\n", "- Inference without torch dependency:\n", " - DMN\n", " - MAF\n", "\n", "\"Open" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# # Install VBI package in Google Colab (lightweight, CPU-only version)\n", "# print(\"Setting up VBI for Google Colab...\")\n", "\n", "# # Skip C++ compilation for faster installation in Colab\n", "# %env SKIP_CPP=1\n", "\n", "# # Install the package\n", "# !pip install vbi\n", "\n", "# print(\"VBI package installed successfully! Ready to proceed.\")" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pickle\n", "import corner\n", "import numpy as np\n", "from vbi import BoxUniform\n", "import autograd.numpy as anp\n", "import matplotlib.pyplot as plt\n", "from multiprocessing import Pool\n", "from vbi.cde import MDNEstimator, MAFEstimator\n", "from sklearn.preprocessing import StandardScaler\n", "from vbi.models.numba.damp_oscillator import DO\n", "from vbi.utils import posterior_shrinkage_numpy, posterior_zscore_numpy\n", "# switch to C++ implementation\n", "# from vbi.models.cpp.damp_oscillator import DO" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from vbi import report_cfg\n", "from vbi import extract_features\n", "from vbi import get_features_by_domain, get_features_by_given_names" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "seed = 2\n", "np.random.seed(seed)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "parameters = {\n", " \"a\": 0.1,\n", " \"b\": 0.05,\n", " \"dt\": 0.01,\n", " \"t_start\": 0,\n", " \"method\": \"rk4\",\n", " \"t_end\": 100.0,\n", " \"t_cut\": 20,\n", " \"output\": \"output\",\n", " \"initial_state\": [0.5, 1.0],\n", "}" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Damped Oscillator Model (Numba)\n", "-------------------------------\n", "a = 0.1\n", "b = 0.05\n", "dt = 0.01\n", "t_start = 0.0\n", "t_end = 100.0\n", "t_cut = 20.0\n", "method = rk4\n", "output = output\n", "initial_state = [0.5 1. ]\n", "\n" ] } ], "source": [ "ode = DO(parameters)\n", "print(ode())" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sol = ode.run()\n", "t = sol[\"t\"]\n", "x = sol[\"x\"]\n", "plt.figure(figsize=(4, 3))\n", "plt.plot(t, x[:, 0], label=\"$\\\\theta$\")\n", "plt.plot(t, x[:, 1], label=\"$\\omega$\")\n", "plt.xlabel(\"t\")\n", "plt.ylabel(\"x\")\n", "plt.legend()\n", "plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Selected features:\n", "------------------\n", "■ Domain: statistical\n", " ▢ Function: calc_std\n", " ▫ description: Computes the standard deviation of the signal.\n", " ▫ function : vbi.feature_extraction.features.calc_std\n", " ▫ parameters : {'indices': None, 'verbose': False}\n", " ▫ tag : all\n", " ▫ use : yes\n", " ▢ Function: calc_mean\n", " ▫ description: Computes the mean of the signal.\n", " ▫ function : vbi.feature_extraction.features.calc_mean\n", " ▫ parameters : {'indices': None, 'verbose': False}\n", " ▫ tag : all\n", " ▫ use : yes\n" ] } ], "source": [ "cfg = get_features_by_domain(domain=\"statistical\")\n", "cfg = get_features_by_given_names(cfg, names=[\"calc_std\", \"calc_mean\"])\n", "report_cfg(cfg)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def wrapper(par, control, cfg, verbose=False):\n", " ode = DO(par)\n", " sol = ode.run(control)\n", "\n", " # extract features\n", " fs = 1.0 / par[\"dt\"] * 1000 # [Hz]\n", " stat_vec = extract_features(\n", " ts=[sol[\"x\"].T], cfg=cfg, fs=fs, n_workers=1, verbose=verbose\n", " ).values\n", " return stat_vec[0]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def batch_run(par, control_list, cfg, n_workers=1):\n", " stat_vec = []\n", " with Pool(processes=n_workers) as pool:\n", " stat_vec = pool.starmap(\n", " wrapper, [(par, control, cfg) for control in control_list]\n", " )\n", " return stat_vec" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.02651486 0.02314122 1.0525634 0.88261193]\n" ] } ], "source": [ "control = {\"a\": 0.11, \"b\": 0.06}\n", "x_ = wrapper(parameters, control, cfg)\n", "print(x_)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "num_sim = 2000\n", "num_workers = 10\n", "a_min, a_max = 0.0, 1.0\n", "b_min, b_max = 0.0, 1.0\n", "prior_min = [a_min, b_min]\n", "prior_max = [a_max, b_max]\n", "prior = BoxUniform(low=prior_min, high=prior_max, seed=seed)\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "theta = prior.sample(num_sim)\n", "control_list = [{\"a\": theta[i, 0], \"b\": theta[i, 1]} for i in range(num_sim)]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "stat_vec = batch_run(parameters, control_list, cfg, n_workers=4)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "scaler = StandardScaler()\n", "stat_vec = scaler.fit_transform(np.array(stat_vec))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((2000, 2), (2000, 4))" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# stat_vec = np.array(stat_vec)\n", "theta.shape, stat_vec.shape" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Inferred dimensions: param_dim=2, feature_dim=4\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9661b2dd3e514f35961d1d8384a1fb53", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Training: 0%| | 0/500 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"Plotting posterior marginals for MDN ...\")\n", "\n", "param_labels = [\"a\", \"b\"]\n", "\n", "fig = corner.corner(\n", " samples,\n", " labels=param_labels,\n", " truths=theta_true_np,\n", " quantiles=[0.16, 0.5, 0.84],\n", " show_titles=True,\n", " title_kwargs={\"fontsize\": 12},\n", " truth_color=\"red\",\n", " bins=50, # Increase number of bins for better resolution\n", " range=[(0.08, 0.12), (0.08, 0.12)], # Adjust ranges\n", " fig=plt.figure(figsize=(6, 6)),\n", ")\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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duzYEdddd10sWLAgNmzYELt37069pCzN5X3cuXNnFEUx6duCBQs6uNru8Oqrr8bdd98dK1eujKIo4qWXXprzzyGAIJEXXnghBgcHY9u2bfHGG2/E2rVr46677orDhw+nXlpW5vM+DgwMxMcffzz+bd++fR1ccXcYHh6OtWvXxo4dO+b9cxjDhkQ2bNgQt912Wzz99NMREdFsNmPVqlXx8MMPx9atWxOvLh9zfR937twZjz76aBw9erTDK+1eRVHEiy++GPfee++cfpwKCBIYGRmJvXv3xubNm8dfq9VqsXnz5nj99dcTriwv830fT5w4EatXr45Vq1bFPffcE2+//XYnlssUAggSGBoaikajEcuXL5/0+vLly+PgwYOJVpWf+byPN9xwQzz33HPx8ssvx/PPPx/NZjM2bdoUBw4c6MSSmcBp2EClbNy4MTZu3Dj+8aZNm+LGG2+MZ555Jp544omEK6seFRAksGzZsqjX63Ho0KFJrx86dCiuuuqqRKvKz4V4H3t7e+OWW26J999//2IskXMQQJBAX19frFu3Lnbt2jX+WrPZjF27dk361znndiHex0ajEW+99VasWLHiYi2TWWjBQSKDg4OxZcuWuPXWW2P9+vXx1FNPxfDwcDzwwAOpl5aVL3of77///rj66qtj+/btERHx+OOPx+233x7XX399HD16NJ588snYt29fPPjggyl/G9k5ceLEpKrxww8/jDfffDOWLl0a11577Xn9HAIIErnvvvvik08+icceeywOHjwYN998c7zyyivTHqhzbl/0Pu7fvz9qtbPNniNHjsRDDz0UBw8ejCVLlsS6devitddeizVr1qT6LWRpz549ceedd45/PDg4GBERW7ZsiZ07d57Xz2EfEABJeAYEQBICCIAkBBAASQggAJIQQAAkIYAASEIAAZCEAAIgCQEEdKU77rgjHn300dTL4BwEEABJCCAAkhBAQNcaGxuL73znO/GlL30pli1bFt/73vfC8ZflIYCArvWTn/wkenp6Yvfu3fGDH/wgvv/978ePf/zj1MviDKdhA13pjjvuiMOHD8fbb78dRVFERMTWrVvj5z//ebzzzjuJV0eECgjoYrfffvt4+EREbNy4Md57771oNBoJV0WbAAIgCQEEdK1f//rXkz7+1a9+FV/96lejXq8nWhETCSCga+3fvz8GBwfj3XffjZ/+9Kfxwx/+MB555JHUy+KMntQLALhY7r///vj8889j/fr1Ua/X45FHHolvf/vbqZfFGabgAEhCCw6AJAQQAEkIIACSEEAAJCGAAEhCAAGQhAACIAkBBEASAgiAJAQQAEkIIACS+P9nwQEHcYqaiQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from vbi.plot import pairplot_numpy\n", "\n", "limits = [(0.0, 1.0), (0.0, 1.0)]\n", "\n", "fig, ax = pairplot_numpy(\n", " samples,\n", " points=theta_true_np.reshape(1, -1),\n", " figsize=(5, 5),\n", " limits=limits,\n", " labels=[\"a\", \"b\"],\n", " upper=\"kde\",\n", " diag=\"kde\",\n", " fig_kwargs=dict(\n", " points_offdiag=dict(marker=\"*\", markersize=10),\n", " points_colors=[\"g\"],\n", " ),\n", ")\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Inferred dimensions: param_dim=2, feature_dim=4\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Training: 88%|████████▊ | 442/500 [01:31<00:11, 4.84it/s, patience=20/20, train=-5.3835, val=-5.7185]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "best epoch: 422 best val: -5.740458732024926\n", "True parameters: [0.1 0.1]\n", "MAF mean estimate: [0.1008262 0.10208973]\n", "Posterior shrinkage: [1., 1.]\n", "Posterior z-score: [0.132, 0.538]\n" ] } ], "source": [ "maf_estimator = MAFEstimator(n_flows=8, hidden_units=128)\n", "maf_estimator.train(theta, stat_vec, n_iter=500, learning_rate=5e-4)\n", "print(\"best epoch:\", maf_estimator.best_epoch, \"best val:\", maf_estimator.best_val_loss)\n", "samples = maf_estimator.sample(xo, n_samples=5000, rng=rng)[0]\n", "shrinkage = posterior_shrinkage_numpy(theta, samples)\n", "zscore = posterior_zscore_numpy(theta_true_np, samples)\n", "print(\"True parameters: \", theta_true_np)\n", "print(\"MAF mean estimate: \", np.mean(samples, axis=0))\n", "print(\"Posterior shrinkage: \", np.array2string(shrinkage, precision=3, separator=\", \"))\n", "print(\"Posterior z-score: \", np.array2string(zscore, precision=3, separator=\", \"))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(5000, 2)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "samples = maf_estimator.sample(xo, n_samples=5000, rng=rng)[0]\n", "samples.shape" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Plotting posterior marginals for MAF ...\n" ] }, { "data": { "image/png": "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WCykpqby3nvvYbfb6dWrF9u2bePrr79Wj1cKQSoCAgKAnJYzCxcuLFINL7vdnqsoa162bt2aZwDVoEEDoqKiXHbKKby9vZkyZQqff/65y+yNssyoBHLJyckuAdTw4cM5cuQIp06dYtGiRdx5550u5+qed5bX68tsNl8zH7B169Zs3bqV2rVrc/bsWV599dViXxZzThw3GAy5Njrkp6Cvb+eekKJ8cV6Kd265JERJKVIQNXLkSL744otc18+ZM4cHH3zwuk+qtOj1es6ePYuPj4/6wde2bVteeuklunbtyty5c1m9erV6vMPhIDk5md27d3sMIktaSe88KmiQdq0PI2UJB3JqDsXExACuTYqNRiOhoaEAaqClNKjNzMzEz8+PhQsX8tBDD2E2m+ndu7ca1Dp75ZVXqF69OufPn+fTTz9l7ty5JCYmUq9ePVauXEm7du3Ytm0bAPXq1SMqKkq9rU6nY9q0adSuXZuEhAQWLVrE4sWL+e677zh8+HCBi2t6e3vTsGFD9fujR496bBickJCg7tS75557eO655xg4cCDPPfcczz//PCNGjFArrdvtdq5evXrNIKRLly5qMVIlF2nx4sXccsstACxdupRmzZqxYsUK7r33Xv73v/+pz0FoaCiffvopkDMD9c0331ClShUOHjzI+PHjCQgIwGAw8OSTT3Lo0KECveYbN27M999/j16v54cffuCbb75Rf6bUg7qePwKMRmOhAidnBX19K+8zUb7ExMS4/GH76KOPYjQa1Znuiio6OpqDBw+q37vndIqSVeA6UePHj1cv22w25s+fT0REhLoMtmvXLmJiYnjooYf4/PPPS+Zsi5HysMeNG0dcXBxffvmlmvAKcPjwYV566SVq1KjB119/jU6n4+DBgwQHB7vk3hRFQetRFCTRuzgVpFCh3W7HZDLlWopzLkCalZWFxWIhMTGRxMREAgMD8ff3d8lHgpylrcTERGw2G1lZWWRmZqp5ZytXruSNN94A4L777uPLL79Uc3LS09NdGtjOnTuXF198EY1Gg5eXF1lZWUydOpUxY8bw22+/8cADD6DRaJgyZQp2u50VK1YwaNAgqlSpQvXq1cnKymLXrl1s3brVpSGyTqejTp06VKtWjQ4dOqi5UpmZmeprwC8+Ht+0NFZ+9x2Lzp4FoANgAby9vLAFB3PZ25vs7Gz1eWvSpIma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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"Plotting posterior marginals for MAF ...\")\n", "\n", "param_labels = [\"a\", \"b\"]\n", "\n", "fig = corner.corner(\n", " samples,\n", " labels=param_labels,\n", " truths=theta_true_np,\n", " quantiles=[0.16, 0.5, 0.84],\n", " show_titles=True,\n", " title_kwargs={\"fontsize\": 12},\n", " truth_color=\"red\",\n", " bins=50, \n", " fig=plt.figure(figsize=(6, 6)),\n", ")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAHNCAYAAABYXK/dAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAGx5JREFUeJzt3X+M1WW+H/DPmTkzgwjjoig/FGGtG1eXFi0KQnZzNaGxvXetbpvGbNJITHXvP2t055+yaVcSTUNTk42blTauG8MmJrumSf2R9MbblqaxW90l4LXXi/ca9bogvcKICwsMLjNzzukfcObHmRlgZpnzfJ/zfb0SInOYgYcT8M3n8/08z1NpNBqNAIA260q9AADKSQABkIQAAiAJAQRAEgIIgCQEEABJCCAAkhBAACRRTb0AIOIfdf2L1EuAP8h/r//nWX+NCgiAJAQQAEkIIACSEEAAJCGAAEgi2RRco9GI0yOnIyJiYc/CqFQqqZYCQALJKqDTI6dj0Y5FsWjHorEgAqA8tOAASEIAAZCEAAIgCQEEQBICCIAkBBAASRQigL4YrqVeAgBtVogA2v03R1IvAYA2K0QAnfxiJPUSAGizQgTQmVo99RIAaLNCBNBIrZF6CQC0WUECSAUEUDbFCKBRAQRQNsUIIBUQQOkUIoCGBRBA6QggAJIoRACZggMon0IE0KgAAiidQgTQsCk4gNJJFkCNxnjV4xkQQPkkC6CJz32MYQOUT7IAmlj12IgKUD7pKqAJoTNSF0AAZZMugCaEzrApOIDSSdeCm1ABmYIDKJ+EQwjjoTNqCAGgdAoxBacCAiifQrTgjGEDlE8hWnACCKB8CrEPyBQcQPmogABIoiABpAICKJuEJyGMh06t3ohaXQgBlEkhngFFaMMBlE0hxrAjXMkAUDaF2IgaYTMqQNkkC6DRuhYcQJkVpgU3cSgBgM5XmCGE4Vot0UoASKEwFdCwCgigVNI9AzKGDVBqhTgJIcIYNkDZFKYFN2IMG6BU0gVQy9E7KiCAckn4DMhGVIAyK04LzonYAKVSmCEEU3AA5VKYCkgLDqBcClMBGUIAKJfCBJAWHEC5FOcsOC04gFIpzH1AKiCAcinOEIIxbIBSKcxhpFpwAOVSmGdAWnAA5VKYFpwAAiiXwgwhaMEBlEth9gHZiApQLoWpgBxGClAuSQKo0WhMsxG1lmIpACSSJICmq3ZUQADlkiiApj7vMQUHUC6FCaAzpuAASiVJAE03cq0CAiiXNAE0TdjYBwRQLiogAJIwBQdAEoUZQtCCAyiXJAE03cSbo3gAyqUwFZBnQADlUpghBC04gHJRAQGQRIECqBGNhkk4gLIozBBChEEEgDIpzD6g870OQOcpzBBCRMSIQQSA0ijEM6DurkpEaMEBlEkhAqin+1wAqYAASqMQQwg93WeXYRQboDwKUQH1dmvBAZRNIYYQxiqgUVNwAGVRiAqoGUAqIIDyKMQ+oN7quQAyhABQGoUYQqgaQgAonUK04JoVkAACKI9iBJB9QAClU4wpuC5DCABlU4gKqGesBWcMG6AsCjGEMDaGrQUHUBqFqIB6TcEBlE6h9gEJIIDyKMQQQvXcFNxMN6UC0HkK0YJrXsegAgIoj0JUQJ4BAZRPmgCaYQjBFBxAeRSkBWcfEEDZFKIF19yI6iQEgPIoxBi2jagA5VOMCsgUHEDptD2AGo3GlFZbnyk4gNJpewCN1qcOGlS14ABKp+0BNF3IjF3JbQoOoDTaHkDTtdnGxrBVQACl0f4K6FwAVSrjr41NwXkGBFAayVpwzdMPIiJ6q6bgAMomQQvu7HOeiQFkHxBA+SSrgJp7fyIierrOfl8LDqA8kg0h9ExqwdkHBFA2yYYQeqrjFZB9QADlU5AhBKdhA5RNshZcdWIA2QcEUDrJKqC+6oQpuHPfP+MZEEBpFGIIoTrhNOxGQxsOoAwSDCGcDZiervFfuq+rOyIiGo2I2jSHlQLQedLtA5rUghufiLMXCKAcCtGCm/j9kVEVEEAZpBvDnrgPqKsydjipCgigHJJVQBP3AVUqFSdiA5RMspMQJu4DirAXCKBsCtGCO/ux8+AAyiTdEELX5F+6eTr2GRUQQCmkuw+o2tKCUwEBlEohDiONGB/FdiApQDkUbgjBlQwA5ZBwCEELDqDMEp6EMHkKzj4ggHIpxEbUiPFA0oIDKId0h5G2PgOqnj0RWwsOoBzSXccwZQhh/E4gADpfggqoFhFThxB6TMEBlEqyjahTW3DNIQT7gADKIN0UXHXy6+MbUVVAAGWQ8CSE7kmva8EBlEuykxB6uibvA+qzERWgVApzEsLYPiABBFAKyZ4BtZ4FpwUHUC6uYwAgieJdxzBqDBugDNINIbRUQH1Vh5EClElbA6jRaIxVQFWnYQOUWlsDaLQ+3l7r65p+H9CIIQSAUmhrAE0cMOipTq6AerXgAEqlrQE0ccR6pvuATMEBlEN7A+hcuFQqEd0tJyH02gcEUCptbsGNn4RdqczUgjOGDbN1/Lqjsedf/c84ft3R1EuBi5akBdfXPfWXNYQAc/fJho/ixHW/jU82fJR6KXDRkgwhtO4BijCGDXM1fNmZGLzlUEREDN5yKIYvO5N4RXBxklRArQMIEY7igbn69NYD0aicbV1XuhvxT19+M/78795Juyi4CNULf8qlM34KQmXKj/VqwcEF/X7xFzF8+e8nvXbo9o8izv2VakTEf/yr38UfrbgsTiw/NvY5vUMLYsHJy9q4UriwtgZQM1xar+OOGA8lLTiY2V/981/H8dUtgwaNmBRAf3tyNO74L4ci/vTQ2Kd86TdL4/af3dWmVcLFaWsL7tjpkYiYoQVnDBsuaOXbX46uka6zSdM0taEwrhHRNdIVK//iy/O9NJi1OVdAjcbFjUs3GhF7fvPb2PV/fhP/7b3DERGxeMHUX7ZZFX0xUotX3/l/ceM1i+KGpYtiQU/bz0ulJFq3AuRg5V+ujv6/WxJ/+cCbcfrKU+f/J2Q9YuFvF8c/eGlTLDra37Y1wsWacwB9+ft/Nqev+/qNS+Nf/+OvTnm9f0FPdFXO7hV67BfvzHVZcNF+8+//JPUS5mTR0f7Y+JMt8d69e+PI3z804+ct278qbnltfXSPtrXTDhetLX8yF/R0xT/7h9fFQ5vXxFeWLY6IiKHhoUmfc8XCnvhP/3J9/K/3B+PDwVPxweCpOH6uZQdM1j1SjSUHr44jaw9N34JrRCw5sFT4UGhz/tO5799uuejPvbyvGgt6ui/4efd8bXnc87XlEXG2xXfii9EYrXsmBNM5seJYVOqVaHQ3xgcRzv23Uq/EiZXHI/alXSOcz5wD6KpFfZdyHVNUKpW4YmHPvP4akLPfXffbaHQ3olKrRKVeiev2/r04dPtH0ehqRKO7Eb+77vPUS4TzUp9DhmrdtRhaejIiIi47tmhs0GDl218+O6Cw9FQMLT0Zte5adNcu3H2AFAQQZKjeU4tFg/2x+NMl8dU/u3XsWU9zQOFv/slfxMnlx6NeFUAUlwCCDPX8vjc2PrclKtNMIHSPVONrr90RjWhM++NQFDbZQKYuFC7Ch6ITQAAkkawFt7BnYZz6/qmx7wNQLskCqFKpxOW9l6f65QFITAsOgCQEEABJCCAAkhBAACQhgABIotK42JvlAOASUgEBkIQAAiAJAQRAEgIIgCQEEABJzOksuEajESdPnrzUa4G2W7x4cVQqri2AFOYUQEePHo1rrrnmUq8F2m5wcDCuvvrq1MuAUppTAPX29kZExCeffBL9/f2XdEFEnDhxIlatWuX9nUfN97j5ZxlovzkFULNl0d/f73+Q88j7O/+03yAdQwgAJCGAAEhiTgHU19cX27dvj76+vku9HsL72w7eY0jPYaQAJKEFB0ASAgiAJAQQAEkIIACSEEAAJDGnANq5c2esWbMmFixYEBs3bow9e/Zc6nV1vNm8h7t27YpKpTLp24IFC9q42s7xxhtvxL333hsrV66MSqUSr7zySuolQWnNOoBeeumlGBgYiO3bt8fbb78d69ati3vuuScGBwfnY30daS7vYX9/f3z66adj3w4cONDGFXeOoaGhWLduXezcuTP1UqD0Zr0PaOPGjXHHHXfEs88+GxER9Xo9Vq1aFY8++mhs27ZtXhbZaWb7Hu7atSsef/zxOH78eJtX2tkqlUq8/PLLcf/996deCpTSrCqg4eHh2LdvX2zZsmX8J+jqii1btsRbb711yRfXieb6Hp46dSpWr14dq1ativvuuy/279/fjuUCzJtZBdDRo0ejVqvFsmXLJr2+bNmyOHz48CVdWKeay3t40003xQsvvBCvvvpqvPjii1Gv12Pz5s1x6NChdiwZYF7M6ToG2mvTpk2xadOmsY83b94cN998czz33HPx1FNPJVwZwNzNqgJaunRpdHd3x5EjRya9fuTIkVi+fPklXVinuhTvYU9PT9x2223x4YcfzscSAdpiVgHU29sb69evj927d4+9Vq/XY/fu3ZP+hc7MLsV7WKvV4t13340VK1bM1zIB5t2sW3ADAwOxdevWuP3222PDhg3xzDPPxNDQUDz00EPzsb6OdKH38MEHH4xrr702duzYERERTz75ZNx5551x4403xvHjx+Ppp5+OAwcOxMMPP5zyt5GlU6dOTaocP/7443jnnXfiyiuvjOuvvz7hyqB8Zh1ADzzwQHz22WfxxBNPxOHDh+PWW2+N119/fcpDdWZ2offw4MGD0dU1XpweO3YsHnnkkTh8+HAsWbIk1q9fH2+++WbccsstqX4L2dq7d2/cfffdYx8P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mev7eOrUqVi9enWsWrUq7rvvvti/f387lksLAQQJHD16NGq1WixbtmzS68uWLYvDhw8nWlV+5vI+3nTTTfHCCy/Eq6++Gi+++GLU6/XYvHlzHDp0qB1LZgKnYQOlsmnTpti0adPYx5s3b46bb745nnvuuXjqqacSrqx8VECQwNKlS6O7uzuOHDky6fUjR47E8uXLE60qP5fifezp6YnbbrstPvzww/lYIuchgCCB3t7eWL9+fezevXvstXq9Hrt37570r3PO71K8j7VaLd59991YsWLFfC2TGWjBQSIDAwOxdevWuP3222PDhg3xzDPPxNDQUDz00EOpl5aVC72PDz74YFx77bWxY8eOiIh48skn484774wbb7wxjh8/Hk8//XQcOHAgHn744ZS/jeycOnVqUtX48ccfxzvvvBNXXnllXH/99Rf1cwggSOSBBx6Izz77LJ544ok4fPhw3HrrrfH6669PeaDO+V3ofTx48GB0dY03e44dOxaPPPJIHD58OJYsWRLr16+PN998M2655ZZUv4Us7d27N+6+++6xjwcGBiIiYuvWrbFr166L+jnsAwIgCc+AAEhCAAGQhAACIAkBBEASAgiAJAQQAEkIIACSEEAAJCGAgI501113xeOPP556GZyHAAIgCQEEQBICCOhYo6Oj8d3vfjeuuOKKWLp0afzgBz8Ix18WhwACOtbPfvazqFarsWfPnvjRj34UP/zhD+OnP/1p6mVxjtOwgY501113xeDgYOzfvz8qlUpERGzbti1ee+21eO+99xKvjggVENDB7rzzzrHwiYjYtGlTfPDBB1Gr1RKuiiYBBEASAgjoWL/+9a8nffyrX/0qvvKVr0R3d3eiFTGRAAI61sGDB2NgYCDef//9+PnPfx4//vGP47HHHku9LM6ppl4AwHx58MEH44svvogNGzZEd3d3PPbYY/Gd73wn9bI4xxQcAElowQGQhAACIAkBBEASAgiAJAQQAEkIIACSEEAAJCGAAEhCAAGQhAACIAkBBEAS/x9KjJXh8/RwMAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from vbi.plot import pairplot_numpy\n", "\n", "limits = [(0.0, 1.0), (0.0, 1.0)]\n", "\n", "fig, ax = pairplot_numpy(\n", " samples,\n", " points=theta_true_np.reshape(1, -1),\n", " figsize=(5, 5),\n", " limits=limits,\n", " labels=[\"a\", \"b\"],\n", " upper=\"kde\",\n", " diag=\"kde\",\n", " fig_kwargs=dict(\n", " points_offdiag=dict(marker=\"*\", markersize=10),\n", " points_colors=[\"g\"],\n", " ),\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 2 }