|
7 | 7 | "(howto_debugging)=\n",
|
8 | 8 | "# How to debug a model\n",
|
9 | 9 | "\n",
|
10 |
| - ":::{post} July 11, 2016\n", |
11 |
| - ":tags: \n", |
| 10 | + ":::{post} August 2, 2022\n", |
| 11 | + ":tags: debugging, aesara\n", |
12 | 12 | ":category: beginner\n",
|
13 |
| - ":author: Thomas Wiecki\n", |
| 13 | + ":author: Thomas Wiecki, Igor Kuvychko\n", |
14 | 14 | ":::"
|
15 | 15 | ]
|
16 | 16 | },
|
|
54 | 54 | "metadata": {},
|
55 | 55 | "source": [
|
56 | 56 | "### How to print intermediate values of `Aesara` functions\n",
|
57 |
| - "Since `Aesara` functions are compiled to C, you have to use `aesara.printing.Print` class to print intermediate values (imported below as `Print`). Python `print` function will not work. Below is a simple example of using `Print`." |
| 57 | + "Since `Aesara` functions are compiled to C, you have to use `aesara.printing.Print` class to print intermediate values (imported below as `Print`). Python `print` function will not work. Below is a simple example of using `Print`. For more information, see {ref}`Debugging Aesara <aesara:debug_faq>`." |
58 | 58 | ]
|
59 | 59 | },
|
60 | 60 | {
|
|
233 | 233 | "<path fill=\"none\" stroke=\"black\" d=\"M54.0122,-8C54.0122,-8 128.012,-8 128.012,-8 134.012,-8 140.012,-14 140.012,-20 140.012,-20 140.012,-109.953 140.012,-109.953 140.012,-115.953 134.012,-121.953 128.012,-121.953 128.012,-121.953 54.0122,-121.953 54.0122,-121.953 48.0122,-121.953 42.0122,-115.953 42.0122,-109.953 42.0122,-109.953 42.0122,-20 42.0122,-20 42.0122,-14 48.0122,-8 54.0122,-8\"/>\r\n",
|
234 | 234 | "<text text-anchor=\"middle\" x=\"121.512\" y=\"-15.8\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">100</text>\r\n",
|
235 | 235 | "</g>\r\n",
|
236 |
| - "<!-- mu -->\r\n", |
237 |
| - "<g id=\"node1\" class=\"node\"><title>mu</title>\r\n", |
| 236 | + "<!-- sd -->\r\n", |
| 237 | + "<g id=\"node1\" class=\"node\"><title>sd</title>\r\n", |
238 | 238 | "<ellipse fill=\"none\" stroke=\"black\" cx=\"41.0122\" cy=\"-187.43\" rx=\"41.0244\" ry=\"37.4533\"/>\r\n",
|
239 |
| - "<text text-anchor=\"middle\" x=\"41.0122\" y=\"-198.73\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">mu</text>\r\n", |
| 239 | + "<text text-anchor=\"middle\" x=\"41.0122\" y=\"-198.73\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">sd</text>\r\n", |
240 | 240 | "<text text-anchor=\"middle\" x=\"41.0122\" y=\"-183.73\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">~</text>\r\n",
|
241 | 241 | "<text text-anchor=\"middle\" x=\"41.0122\" y=\"-168.73\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Normal</text>\r\n",
|
242 | 242 | "</g>\r\n",
|
|
247 | 247 | "<text text-anchor=\"middle\" x=\"91.0122\" y=\"-72.7767\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">~</text>\r\n",
|
248 | 248 | "<text text-anchor=\"middle\" x=\"91.0122\" y=\"-57.7767\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Normal</text>\r\n",
|
249 | 249 | "</g>\r\n",
|
250 |
| - "<!-- mu->obs -->\r\n", |
251 |
| - "<g id=\"edge1\" class=\"edge\"><title>mu->obs</title>\r\n", |
| 250 | + "<!-- sd->obs -->\r\n", |
| 251 | + "<g id=\"edge1\" class=\"edge\"><title>sd->obs</title>\r\n", |
252 | 252 | "<path fill=\"none\" stroke=\"black\" d=\"M56.5584,-152.554C61.2146,-142.408 66.3839,-131.143 71.2721,-120.492\"/>\r\n",
|
253 | 253 | "<polygon fill=\"black\" stroke=\"black\" points=\"74.4857,-121.88 75.4756,-111.332 68.1236,-118.961 74.4857,-121.88\"/>\r\n",
|
254 | 254 | "</g>\r\n",
|
255 |
| - "<!-- sd -->\r\n", |
256 |
| - "<g id=\"node2\" class=\"node\"><title>sd</title>\r\n", |
| 255 | + "<!-- mu -->\r\n", |
| 256 | + "<g id=\"node2\" class=\"node\"><title>mu</title>\r\n", |
257 | 257 | "<ellipse fill=\"none\" stroke=\"black\" cx=\"141.012\" cy=\"-187.43\" rx=\"41.0244\" ry=\"37.4533\"/>\r\n",
|
258 |
| - "<text text-anchor=\"middle\" x=\"141.012\" y=\"-198.73\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">sd</text>\r\n", |
| 258 | + "<text text-anchor=\"middle\" x=\"141.012\" y=\"-198.73\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">mu</text>\r\n", |
259 | 259 | "<text text-anchor=\"middle\" x=\"141.012\" y=\"-183.73\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">~</text>\r\n",
|
260 | 260 | "<text text-anchor=\"middle\" x=\"141.012\" y=\"-168.73\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Normal</text>\r\n",
|
261 | 261 | "</g>\r\n",
|
262 |
| - "<!-- sd->obs -->\r\n", |
263 |
| - "<g id=\"edge2\" class=\"edge\"><title>sd->obs</title>\r\n", |
| 262 | + "<!-- mu->obs -->\r\n", |
| 263 | + "<g id=\"edge2\" class=\"edge\"><title>mu->obs</title>\r\n", |
264 | 264 | "<path fill=\"none\" stroke=\"black\" d=\"M125.466,-152.554C120.81,-142.408 115.641,-131.143 110.752,-120.492\"/>\r\n",
|
265 | 265 | "<polygon fill=\"black\" stroke=\"black\" points=\"113.901,-118.961 106.549,-111.332 107.539,-121.88 113.901,-118.961\"/>\r\n",
|
266 | 266 | "</g>\r\n",
|
267 | 267 | "</g>\r\n",
|
268 | 268 | "</svg>\r\n"
|
269 | 269 | ],
|
270 | 270 | "text/plain": [
|
271 |
| - "<graphviz.dot.Digraph at 0x283dd8b7a60>" |
| 271 | + "<graphviz.dot.Digraph at 0x1c8897bb7c0>" |
272 | 272 | ]
|
273 | 273 | },
|
274 | 274 | "execution_count": 8,
|
|
307 | 307 | "traceback": [
|
308 | 308 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
309 | 309 | "\u001b[1;31mSamplingError\u001b[0m Traceback (most recent call last)",
|
310 |
| - "Input \u001b[1;32mIn [9]\u001b[0m, in \u001b[0;36m<cell line: 1>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m model:\n\u001b[0;32m 2\u001b[0m step \u001b[38;5;241m=\u001b[39m pm\u001b[38;5;241m.\u001b[39mMetropolis()\n\u001b[1;32m----> 3\u001b[0m trace \u001b[38;5;241m=\u001b[39m \u001b[43mpm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msample\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m5\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstep\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtune\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchains\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprogressbar\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n", |
| 310 | + "Input \u001b[1;32mIn [9]\u001b[0m, in \u001b[0;36m<cell line: 1>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m model:\n\u001b[0;32m 2\u001b[0m step \u001b[38;5;241m=\u001b[39m pm\u001b[38;5;241m.\u001b[39mMetropolis()\n\u001b[1;32m----> 3\u001b[0m trace \u001b[38;5;241m=\u001b[39m \u001b[43mpm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msample\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m5\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstep\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtune\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchains\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprogressbar\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrandom_seed\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mRANDOM_SEED\u001b[49m\u001b[43m)\u001b[49m\n", |
311 | 311 | "File \u001b[1;32mc:\\users\\igork\\pycharmprojects\\pymc\\pymc\\sampling.py:558\u001b[0m, in \u001b[0;36msample\u001b[1;34m(draws, step, init, n_init, initvals, trace, chain_idx, chains, cores, tune, progressbar, model, random_seed, discard_tuned_samples, compute_convergence_checks, callback, jitter_max_retries, return_inferencedata, idata_kwargs, mp_ctx, **kwargs)\u001b[0m\n\u001b[0;32m 556\u001b[0m \u001b[38;5;66;03m# One final check that shapes and logps at the starting points are okay.\u001b[39;00m\n\u001b[0;32m 557\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m ip \u001b[38;5;129;01min\u001b[39;00m initial_points:\n\u001b[1;32m--> 558\u001b[0m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck_start_vals\u001b[49m\u001b[43m(\u001b[49m\u001b[43mip\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 559\u001b[0m _check_start_shape(model, ip)\n\u001b[0;32m 561\u001b[0m sample_args \u001b[38;5;241m=\u001b[39m {\n\u001b[0;32m 562\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdraws\u001b[39m\u001b[38;5;124m\"\u001b[39m: draws,\n\u001b[0;32m 563\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstep\u001b[39m\u001b[38;5;124m\"\u001b[39m: step,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 573\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdiscard_tuned_samples\u001b[39m\u001b[38;5;124m\"\u001b[39m: discard_tuned_samples,\n\u001b[0;32m 574\u001b[0m }\n",
|
312 | 312 | "File \u001b[1;32mc:\\users\\igork\\pycharmprojects\\pymc\\pymc\\model.py:1794\u001b[0m, in \u001b[0;36mModel.check_start_vals\u001b[1;34m(self, start)\u001b[0m\n\u001b[0;32m 1791\u001b[0m initial_eval \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpoint_logps(point\u001b[38;5;241m=\u001b[39melem)\n\u001b[0;32m 1793\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mall\u001b[39m(np\u001b[38;5;241m.\u001b[39misfinite(v) \u001b[38;5;28;01mfor\u001b[39;00m v \u001b[38;5;129;01min\u001b[39;00m initial_eval\u001b[38;5;241m.\u001b[39mvalues()):\n\u001b[1;32m-> 1794\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m SamplingError(\n\u001b[0;32m 1795\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInitial evaluation of model at starting point failed!\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 1796\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mStarting values:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00melem\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 1797\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInitial evaluation results:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00minitial_eval\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 1798\u001b[0m )\n",
|
313 | 313 | "\u001b[1;31mSamplingError\u001b[0m: Initial evaluation of model at starting point failed!\nStarting values:\n{'mu': array(0.), 'sd': array(0.)}\n\nInitial evaluation results:\n{'mu': -0.92, 'sd': -0.92, 'obs': -inf}"
|
|
317 | 317 | "source": [
|
318 | 318 | "with model:\n",
|
319 | 319 | " step = pm.Metropolis()\n",
|
320 |
| - " trace = pm.sample(5, step, tune=0, chains=1, progressbar=False)" |
| 320 | + " trace = pm.sample(5, step, tune=0, chains=1, progressbar=False, random_seed=RANDOM_SEED)" |
321 | 321 | ]
|
322 | 322 | },
|
323 | 323 | {
|
|
353 | 353 | "Sampling 1 chain for 0 tune and 10 draw iterations (0 + 10 draws total) took 1 seconds.\n",
|
354 | 354 | "The chain contains only diverging samples. The model is probably misspecified.\n",
|
355 | 355 | "The acceptance probability does not match the target. It is 0, but should be close to 0.8. Try to increase the number of tuning steps.\n",
|
356 |
| - "C:\\Users\\igork\\AppData\\Local\\Temp\\ipykernel_12548\\4125900813.py:15: UserWarning: The number of samples is too small to check convergence reliably.\n", |
357 |
| - " trace = pm.sample(draws=10, tune=0, chains=1, progressbar=False)\n" |
| 356 | + "C:\\Users\\igork\\AppData\\Local\\Temp\\ipykernel_14804\\1992602661.py:15: UserWarning: The number of samples is too small to check convergence reliably.\n", |
| 357 | + " trace = pm.sample(draws=10, tune=0, chains=1, progressbar=False, random_seed=RANDOM_SEED)\n" |
358 | 358 | ]
|
359 | 359 | }
|
360 | 360 | ],
|
|
373 | 373 | " obs = pm.Normal(\"obs\", mu=mu, sigma=sd_print, observed=y)\n",
|
374 | 374 | "\n",
|
375 | 375 | " # limiting number of samples and chains to simplify output\n",
|
376 |
| - " trace = pm.sample(draws=10, tune=0, chains=1, progressbar=False)\n", |
| 376 | + " trace = pm.sample(draws=10, tune=0, chains=1, progressbar=False, random_seed=RANDOM_SEED)\n", |
377 | 377 | "\n",
|
378 | 378 | "output = mystdout.getvalue()\n",
|
379 | 379 | "sys.stdout = old_stdout # setting sys.stdout back"
|
|
389 | 389 | {
|
390 | 390 | "data": {
|
391 | 391 | "text/plain": [
|
392 |
| - "'Delta __str__ = -54.43199718112248\\nDelta __str__ = -1.1969066124438048\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.1620686409762864\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.1443040735926475\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.1590583329992397\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.144378279326371\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.155458856808919\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.1737988603166447\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.148830433726576\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.1600681329922873\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.13866055296973\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = -2.159313289903775\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\nDelta __str__ = 0.4722068705115302\\n'" |
| 392 | + "'Delta __str__ = -85.74093608165128\\nDelta __str__ = -9.182002291671038\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.315734173890055\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.312485782438435\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.314669656412736\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.31581619157038\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.315114719133609\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.31511040479387\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.314077394936474\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.313673830463395\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.31561025339713\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = -9.31526569370057\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\nDelta __str__ = 0.10737295473067673\\n'" |
393 | 393 | ]
|
394 | 394 | },
|
395 | 395 | "execution_count": 11,
|
|
438 | 438 | {
|
439 | 439 | "data": {
|
440 | 440 | "text/plain": [
|
441 |
| - "array([-54.43199718, -1.19690661, 0.47220687, 0.47220687,\n", |
442 |
| - " 0.47220687, -2.16206864, 0.47220687, -2.14430407,\n", |
443 |
| - " 0.47220687, -2.15905833, 0.47220687, -2.14437828,\n", |
444 |
| - " 0.47220687, -2.15545886, 0.47220687, -2.17379886,\n", |
445 |
| - " 0.47220687, -2.14883043, 0.47220687, -2.16006813,\n", |
446 |
| - " 0.47220687, -2.13866055, 0.47220687, -2.15931329,\n", |
447 |
| - " 0.47220687, 0.47220687, 0.47220687, 0.47220687,\n", |
448 |
| - " 0.47220687, 0.47220687, 0.47220687, 0.47220687,\n", |
449 |
| - " 0.47220687, 0.47220687])" |
| 441 | + "array([-85.74093608, -9.18200229, 0.10737295, 0.10737295,\n", |
| 442 | + " 0.10737295, -9.31573417, 0.10737295, -9.31248578,\n", |
| 443 | + " 0.10737295, -9.31466966, 0.10737295, -9.31581619,\n", |
| 444 | + " 0.10737295, -9.31511472, 0.10737295, -9.3151104 ,\n", |
| 445 | + " 0.10737295, -9.31407739, 0.10737295, -9.31367383,\n", |
| 446 | + " 0.10737295, -9.31561025, 0.10737295, -9.31526569,\n", |
| 447 | + " 0.10737295, 0.10737295, 0.10737295, 0.10737295,\n", |
| 448 | + " 0.10737295, 0.10737295, 0.10737295, 0.10737295,\n", |
| 449 | + " 0.10737295, 0.10737295])" |
450 | 450 | ]
|
451 | 451 | },
|
452 | 452 | "execution_count": 13,
|
|
485 | 485 | "output.shape"
|
486 | 486 | ]
|
487 | 487 | },
|
| 488 | + { |
| 489 | + "cell_type": "markdown", |
| 490 | + "metadata": {}, |
| 491 | + "source": [ |
| 492 | + "## Authors\n", |
| 493 | + "\n", |
| 494 | + "* Authored by Thomas Wiecki in July, 2016\n", |
| 495 | + "* Updated by Igor Kuvychko in August, 2022 ([pymc#406] (https://github.com/pymc-devs/pymc-examples/pull/406))" |
| 496 | + ] |
| 497 | + }, |
| 498 | + { |
| 499 | + "cell_type": "markdown", |
| 500 | + "metadata": {}, |
| 501 | + "source": [ |
| 502 | + "## Watermark" |
| 503 | + ] |
| 504 | + }, |
488 | 505 | {
|
489 | 506 | "cell_type": "code",
|
490 | 507 | "execution_count": 15,
|
|
494 | 511 | "name": "stdout",
|
495 | 512 | "output_type": "stream",
|
496 | 513 | "text": [
|
497 |
| - "Last updated: Sat Jul 30 2022\n", |
| 514 | + "Last updated: Tue Aug 02 2022\n", |
498 | 515 | "\n",
|
499 | 516 | "Python implementation: CPython\n",
|
500 | 517 | "Python version : 3.10.5\n",
|
501 | 518 | "IPython version : 8.4.0\n",
|
502 | 519 | "\n",
|
503 | 520 | "aesara: 2.7.5\n",
|
504 | 521 | "xarray: 2022.3.0\n",
|
505 |
| - "patsy : 0.5.2\n", |
506 | 522 | "\n",
|
| 523 | + "matplotlib: 3.5.2\n", |
507 | 524 | "aesara : 2.7.5\n",
|
508 |
| - "pandas : 1.4.3\n", |
509 | 525 | "numpy : 1.23.0\n",
|
510 |
| - "pymc : 4.1.2\n", |
511 |
| - "sys : 3.10.5 | packaged by conda-forge | (main, Jun 14 2022, 06:57:19) [MSC v.1929 64 bit (AMD64)]\n", |
512 |
| - "matplotlib: 3.5.2\n", |
513 | 526 | "arviz : 0.12.1\n",
|
| 527 | + "sys : 3.10.5 | packaged by conda-forge | (main, Jun 14 2022, 06:57:19) [MSC v.1929 64 bit (AMD64)]\n", |
514 | 528 | "re : 2.2.1\n",
|
| 529 | + "pandas : 1.4.3\n", |
| 530 | + "pymc : 4.1.2\n", |
515 | 531 | "\n",
|
516 | 532 | "Watermark: 2.3.1\n",
|
517 | 533 | "\n"
|
|
520 | 536 | ],
|
521 | 537 | "source": [
|
522 | 538 | "%load_ext watermark\n",
|
523 |
| - "%watermark -n -u -v -iv -w -p aesara,xarray,patsy" |
| 539 | + "%watermark -n -u -v -iv -w -p aesara,xarray" |
524 | 540 | ]
|
525 | 541 | },
|
526 | 542 | {
|
|
0 commit comments