File size: 196,955 Bytes
fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 cc624a1 fb66491 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 |
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## How does a neural net really work\n",
"\n",
"In this notebook I'm exploring fast.ai's Kaggle notebook on [\"How does a neural net really work\"](https://www.kaggle.com/code/jhoward/how-does-a-neural-net-really-work). This relates to [Lesson 3 of the fast.ai Deep Learning course](https://course.fast.ai/Lessons/lesson3.html). While the video provides a solid explanation, the enigmatic imports and variables can be difficult to comprehend. I'm reimplementing some sections to see if if sticks. In a nutshell, this is what is happening in this notebook:\n",
"\n",
"1. Revising Regressions \n",
" - Plot a generic quadratic function ($ax^2 + bx + c$) \n",
" - Generate some random data points \n",
" - Learn the step-by-step process to find the values of `a`, `b`, and `c` that make our function represent the random data generated in `2` \n",
" - Use the [mean absolute error](https://docs.fast.ai/metrics.html#mae) to manually adjust `a`, `b`, and `c`. \n",
"2. Understand and break down the Gradient Descent algorithm\n",
"3. The Basics of a Neural-Network\n",
" - Understand what is a ReLU\n",
" - Create the simplest neural-network possible"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"# Installing the dependencies within the notebook to make it easier to run on colab\n",
"%pip install -Uqq fastai ipywidgets"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Revising Regressions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.1 Plot a generic quadratic function ($ax^2+bx+c$)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"from fastai.basics import torch, plt\n",
"\n",
"# Set the figure DPI to 90 for better resolution\n",
"plt.rc('figure', dpi=90)\n",
"\n",
"# Function to plot a mathematical function over a range\n",
"def plot_function(f, title=None, min=-2.1, max=2.1, color='r', ylim=None):\n",
" # Create evenly spaced x values as a column vector\n",
" x = torch.linspace(min,max, 100)[:,None]\n",
" # Set y-axis limits if specified\n",
" if ylim: plt.ylim(ylim)\n",
" # Plot the function\n",
" plt.plot(x, f(x), color)\n",
" # Add title if provided\n",
" if title is not None: plt.title(title)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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WWd5B4/Vrl1bEydOVLQhqOeCnSg3cOBArVu3TqtXr1bx4sXVrl07v4cVN/Lnz69rr71WM2fO9HsocWXo0KGaP3++Vq5cqRUrVmjevHnemQ2IDHsRO2jQIC+wIPLS09NVvnx5zZkzRzt37tSkSZN033336YMPPlA0YZ96GHz11Vdq2LCh90quQIGwttPHCVimvmzZMjVo0MDvoQSenaI4evRob2bKTJs2TQMGDNDatWv9HlpcSUpK8maneFHrv9atW+vcc8/VkCFDFC3I1MPg448/9g6mIaAjqLZt2+YtMR354snup6SkeDNXQLzZu3evFi9erHr16imaENSPcf3113vZX3bXmjVrjnq8ZYl24pxlMIj89x+RkZqa6t2WLFny0Psy7+/atcu3cQF+yMjI8I4KP/vss71sPZqQWh7jtddeU1paWrb/bgVCmb7++mu1bNnSK2C55pprIjTCYMvJ9x+Rk5iY6N1aVn766acfum+saAiIp4Deu3dvrVq1yltftxqfaEJQP4YVvYXCAvrVV1+t4cOHe2fBI7Lff0SWVbxXrFjRW8utXr269z67b+vsJUqU8Ht4QMQC+t13363PPvtMc+fOjcrf/eh6iREjrPLXArpVA3ft2tXv4cTtepZdxjJ7u3/w4EG/hxVo9ruenJysjRs3epdVvtsUJCJXfW2/53Zrv+t2/3izWgg/29K5YMECzZ4923uhG42ofs/lk9srr7yiIkWKHPV+2+pTuXJl38YVT2x9/VgffvihmjVr5st44mWf+j333OMtkRibobJaEgpEI1f1Pnjw4KPed/nll+ujjz7ybUzxZO3atapatarXJ+DI33n7Oxg/fryiBUEdAICAYPodAICAIKgDABAQBHUAAAKCoA4AQEAQ1AEACAiCOgAAAUFQBwAgIAjqAAAEBEEdAICAIKgDAKBg+D8ekl9LtSjtiwAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Function with quadratic expression ax^2 + bx + c\n",
"def quad(a, b, c, x): return a*x**2 + b*x + c\n",
"\n",
"from functools import partial\n",
"# Creates a new function with fixed a,b,c parameters, leaving only x variable\n",
"# This allows us to create specific quadratic functions by \"fixing\" the coefficients\n",
"def mk_quad(a,b,c): return partial(quad, a,b,c)\n",
"\n",
"def demo_plot_basic_quadratic():\n",
" a = 3\n",
" b = 2\n",
" c = 1\n",
" f = mk_quad(a, b ,c)\n",
" plot_function(f, title=f'${a}x^2 + {b}x + {c}$')\n",
"\n",
"demo_plot_basic_quadratic()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.2. Generate some random data points"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Add both multiplicative and additive noise to input x\n",
"def add_noise(x, mult, add): return x * (1+torch.randn(x.shape) * mult) + torch.randn(x.shape) * add\n",
"\n",
"def generate_noisy_data(f, x_start=-2, x_end=2, num_datapoints=20, noise_mult=0.15, noise_add=0.15, seed=42):\n",
" # Define a static seed, so that the random data is always the same every time we run this\n",
" torch.manual_seed(seed)\n",
" # Create evenly spaced x values and add a dimension of size 1 at position 1,\n",
" # transforming shape from (20,) to (20,1) to make it a column vector\n",
" # Example: tensor([1,2,3]) shape=(3,) -> tensor([[1],[2],[3]]) shape=(3,1)\n",
" x = torch.linspace(x_start, x_end, steps=num_datapoints).unsqueeze(1) \n",
" # Generate noisy y values by applying noise to function output\n",
" # mult=0.15 for multiplicative noise, add=1.5 for additive noise\n",
" y = add_noise(f(x), noise_mult, noise_add)\n",
" return x, y\n",
"\n",
"def demp_plot_random_data():\n",
" x,y = generate_noisy_data(mk_quad(3,2,1))\n",
" plt.scatter(x,y);\n",
"\n",
"demp_plot_random_data()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.3. Fit the function to the data\n",
"\n",
"In this section, we will explore the step-by-step process to find the values of `a`, `b`, and `c` that allow our function to accurately reflect the random data generated in `1.2`. The interactive plot below, shows how adjustments to `a`, `b`, and `c` influence the function's shape to better align with our data layout."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "374ca6dc04ab43db861a6b3e932e4884",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(FloatSlider(value=1.5, description='a', max=4.5, min=-1.5), FloatSlider(value=1.5, descr…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from ipywidgets import interact\n",
"@interact(a=1.5, b=1.5, c=1.5)\n",
"def demo_interactive_plot_quad(a, b, c):\n",
" plt.close('all') # Close all existing figures\n",
" plt.figure() # Create a new figure\n",
" x,y = generate_noisy_data(mk_quad(3,2,1))\n",
" \n",
" plt.scatter(x,y)\n",
" plot_function(mk_quad(a,b,c), ylim=(0,13))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.4 Measure the error\n",
"\n",
"This is cool and works, but we need to know how close we are to our ideal solution. In regression, we can use fun ways to estimate this, like the \"Mean Absolute Error,\" which averages the distance between predicted and actual values.\n",
"\n",
"The [fastai library has a wrapper for some of the most common methods](https://docs.fast.ai/metrics.html#regression) (from [scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_absolute_error.html)).\n",
"\n",
"Here's a quick demo where we can see how it is calculated."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean Absolute Error: 0.150\n",
"\n",
"Absolute differences between predictions and actuals:\n",
"Prediction: 1.0, Actual: 1.1, Absolute Difference: 0.100\n",
"Prediction: 2.0, Actual: 2.1, Absolute Difference: 0.100\n",
"Prediction: 3.0, Actual: 2.8, Absolute Difference: 0.200\n",
"Prediction: 4.0, Actual: 4.2, Absolute Difference: 0.200\n"
]
}
],
"source": [
"def mean_absolute_error(preds, acts): return (torch.abs(preds-acts)).mean()\n",
"\n",
"def demo_mean_absolute_error():\n",
" # Create some example predictions and actual values\n",
" preds = torch.tensor([1.0, 2.0, 3.0, 4.0])\n",
" actuals = torch.tensor([1.1, 2.1, 2.8, 4.2])\n",
"\n",
" # Calculate and print the mean absolute error\n",
" error = mean_absolute_error(preds, actuals)\n",
" print(f\"Mean Absolute Error: {error:.3f}\")\n",
"\n",
" # Let's break down what's happening:\n",
" print(\"\\nAbsolute differences between predictions and actuals:\")\n",
" abs_diffs = torch.abs(preds-actuals)\n",
" for i, (p, a, d) in enumerate(zip(preds, actuals, abs_diffs)):\n",
" print(f\"Prediction: {p:.1f}, Actual: {a:.1f}, Absolute Difference: {d:.3f}\")\n",
"\n",
"demo_mean_absolute_error()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6690b52c9e1b4a5dafaaf59f76340d16",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(FloatSlider(value=1.5, description='a', max=4.5, min=-1.5), FloatSlider(value=1.5, descr…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"@interact(a=1.5, b=1.5, c=1.5)\n",
"def plot_quad(a, b, c):\n",
" x,y = generate_noisy_data(mk_quad(3,2,1))\n",
"\n",
" f = mk_quad(a, b ,c)\n",
" plt.scatter(x,y)\n",
" loss = mean_absolute_error(f(x), y)\n",
" plot_function(f, ylim=(0,13), title=f\"MAE: {loss:.2f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Understand and break down the Gradient Descent algorithm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we can calculate the mean absolute error, the next step is to understand how to adjust our parameters `a`, `b`, and `c` to *reduce* this error. To do this, we can think about the *gradients* of the error with respect to each of the `a,b,c` parameters.\n",
"\n",
"👉 If you were walking on a hill (representing the error surface), the partial derivative with respect to one direction (say, the 'a' direction) tells you the slope of the hill in *that specific direction*. A steep *slope/gradient* means a large change in error for a small change in 'a'.\n",
"\n",
"For example, if we consider the partial derivative of the mean absolute error with respect to `a` (while keeping `b` and `c` fixed), a negative value would indicate that increasing `a` will lead to a *decrease* in the error (like walking forward-downhill in the 'a' direction). Conversely, a positive value would suggest that decreasing `a` would reduce the error (ackwardly walking backwards-downhill in the 'a' direction 😄). \n",
"\n",
"\n",
"---\n",
"\n",
"With PyTorch we can use the `require_grad=True` on tensors and it automatically handles the differentiation and the calculation of the *gradients* for us. Which tbh looks a bit like dark magic. Let's use AI to understand how it works by doing two Example on a function like $f(x) = m*x + b$ , and two different inputs (`x1` and `x2`)🕵️♂️"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Example 1 | x: tensor([1., 2., 3.]), m: 2.0, b: 1.0\n",
"Example 1 | Gradient with respect to m1 (m1.grad): tensor(6.)\n",
"Example 1 | Gradient with respect to b1 (b1.grad): tensor(3.)\n",
"--------------\n",
"Example 2 | x: tensor([1., 4.]), m: 2.0, b: 1.0\n",
"Example 2 | Gradient with respect to m2 (m2.grad): tensor(5.)\n",
"Example 2 | Gradient with respect to b2 (b2.grad): tensor(2.)\n",
"--------------\n",
"\n",
"Explanation:\n",
"- **Example 1:**\n",
" - We start with a list of numbers: x1 = [1.0, 2.0, 3.0].\n",
" - We plug each number into our function, which means we multiply it by m (let's say m = 2) and then add b (let's say b = 1):\n",
" - For 1.0: f(1.0) = 2 * 1 + 1 = 3\n",
" - For 2.0: f(2.0) = 2 * 2 + 1 = 5\n",
" - For 3.0: f(3.0) = 2 * 3 + 1 = 7\n",
" - So, we end up with y1 = [3.0, 5.0, 7.0].\n",
" - Then, we add these numbers together: 3 + 5 + 7 = 15.\n",
" - If we look at our equation, we can say: total1 = m1*(1.0+2.0+3.0) + b1*3 = 6 * m1 + 3 * b1.\n",
" - Now, when we want to see how changing m1 and b1 affects total1, we find:\n",
" - Changing m1 gives us a \"gradient\" of 6.\n",
" - Changing b1 gives us a \"gradient\" of 3.\n",
" - So, m1.grad = 6.0 and b1.grad = 3.\n",
"\n",
"- **Example 2:**\n",
" - Now we have a different list: x2 = [1.0, 4.0].\n",
" - We use the same m and b:\n",
" - For 1.0: f(1.0) = 3 (same as before).\n",
" - For 4.0: f(4.0) = 2 * 4 + 1 = 9.\n",
" - So, now we have y2 = [3.0, 9.0].\n",
" - We add these: 3 + 9 = 12.\n",
" - In terms of our equation, total2 = m2*(1.0+4.0) + b2*2 = 5 * m2 + 2 * b2.\n",
" - For the gradients:\n",
" - Changing m2 gives us a \"gradient\" of 5.\n",
" - Changing b2 gives us a \"gradient\" of 2.\n",
" - So, m2.grad = 5.0 and b2.grad = 2.\n",
"\n"
]
}
],
"source": [
"#########################################\n",
"# Example 1: Using x1 = [1.0, 2.0, 3.0]\n",
"#########################################\n",
"x1 = torch.tensor([1.0, 2.0, 3.0])\n",
"m1 = torch.tensor(2.0, requires_grad=True)\n",
"b1 = torch.tensor(1.0, requires_grad=True)\n",
"\n",
"# Compute f(x1) = m1 * x1 + b1\n",
"y1 = m1 * x1 + b1\n",
"total1 = y1.sum() # total1 = m1*(1+2+3) + b1*3 = 6*m1 + 3*b1\n",
"\n",
"# Compute gradients for m1 and b1.\n",
"total1.backward()\n",
"\n",
"print(f'Example 1 | x: {x1}, m: {m1}, b: {b1}')\n",
"print(\"Example 1 | Gradient with respect to m1 (m1.grad):\", m1.grad) # Expected: sum(x1) = 6.0\n",
"print(\"Example 1 | Gradient with respect to b1 (b1.grad):\", b1.grad) # Expected: len(x1) = 3\n",
"print(\"--------------\")\n",
"\n",
"#########################################\n",
"# Example 2: Using x2 = [1.0, 4.0] (different size and values)\n",
"#########################################\n",
"x2 = torch.tensor([1.0, 4.0])\n",
"m2 = torch.tensor(2.0, requires_grad=True)\n",
"b2 = torch.tensor(1.0, requires_grad=True)\n",
"\n",
"# Compute f(x2) = m2 * x2 + b2\n",
"y2 = m2 * x2 + b2\n",
"total2 = y2.sum() # total2 = m2*(1+4) + b2*2 = 5*m2 + 2*b2\n",
"\n",
"# Compute gradients for m2 and b2.\n",
"total2.backward()\n",
"\n",
"print(f'Example 2 | x: {x2}, m: {m2}, b: {b2}')\n",
"print(\"Example 2 | Gradient with respect to m2 (m2.grad):\", m2.grad) # Expected: sum(x2) = 5.0\n",
"print(\"Example 2 | Gradient with respect to b2 (b2.grad):\", b2.grad) # Expected: len(x2) = 2\n",
"print(\"--------------\")\n",
"\n",
"# Print an explanation that details the differentiation steps.\n",
"explanation = \"\"\"\n",
"Explanation:\n",
"- **Example 1:**\n",
" - We start with a list of numbers: x1 = [1.0, 2.0, 3.0].\n",
" - We plug each number into our function, which means we multiply it by m (let's say m = 2) and then add b (let's say b = 1):\n",
" - For 1.0: f(1.0) = 2 * 1 + 1 = 3\n",
" - For 2.0: f(2.0) = 2 * 2 + 1 = 5\n",
" - For 3.0: f(3.0) = 2 * 3 + 1 = 7\n",
" - So, we end up with y1 = [3.0, 5.0, 7.0].\n",
" - Then, we add these numbers together: 3 + 5 + 7 = 15.\n",
" - If we look at our equation, we can say: total1 = m1*(1.0+2.0+3.0) + b1*3 = 6 * m1 + 3 * b1.\n",
" - Now, when we want to see how changing m1 and b1 affects total1, we find:\n",
" - Changing m1 gives us a \"gradient\" of 6.\n",
" - Changing b1 gives us a \"gradient\" of 3.\n",
" - So, m1.grad = 6.0 and b1.grad = 3.\n",
"\n",
"- **Example 2:**\n",
" - Now we have a different list: x2 = [1.0, 4.0].\n",
" - We use the same m and b:\n",
" - For 1.0: f(1.0) = 3 (same as before).\n",
" - For 4.0: f(4.0) = 2 * 4 + 1 = 9.\n",
" - So, now we have y2 = [3.0, 9.0].\n",
" - We add these: 3 + 9 = 12.\n",
" - In terms of our equation, total2 = m2*(1.0+4.0) + b2*2 = 5 * m2 + 2 * b2.\n",
" - For the gradients:\n",
" - Changing m2 gives us a \"gradient\" of 5.\n",
" - Changing b2 gives us a \"gradient\" of 2.\n",
" - So, m2.grad = 5.0 and b2.grad = 2.\n",
"\"\"\"\n",
"print(explanation)\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can create an interactive plot where we show the gradient on `a`, `b` and `c`. \n",
"If the slope is negative we want to move forward (or downhill)."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "34197665b30c4a0cbb4d42d50c738809",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(FloatSlider(value=1.5, description='a', max=4.5, min=-1.5), FloatSlider(value=1.5, descr…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"@interact(a=1.5, b=1.5, c=1.5)\n",
"def demo_quadratic_plot_with_gradients(a, b, c):\n",
" x,y = generate_noisy_data(mk_quad(3,2,1))\n",
" plt.scatter(x,y)\n",
"\n",
" a_tensor = torch.tensor([float(a)], requires_grad=True)\n",
" b_tensor = torch.tensor([float(b)], requires_grad=True)\n",
" c_tensor = torch.tensor([float(c)], requires_grad=True)\n",
"\n",
" f = mk_quad(a_tensor, b_tensor, c_tensor)\n",
"\n",
" loss = torch.abs(f(x) - y).mean() \n",
" loss.backward()\n",
"\n",
" a_grad = a_tensor.grad.item()\n",
" b_grad = b_tensor.grad.item()\n",
" c_grad = c_tensor.grad.item()\n",
"\n",
" plot_function(lambda x: f(x).detach(), ylim=(0,13), title=f\"MAE: {loss:.2f}, dLoss/da: {a_grad:.2f}, dLoss/db: {b_grad:.2f}, dLoss/dc: {c_grad:.2f}\")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"step=0; loss=3.15; abc=tensor([1.1463, 1.0042, 1.0800], requires_grad=True)\n",
"step=1; loss=2.87; abc=tensor([1.2925, 1.0084, 1.1600], requires_grad=True)\n",
"step=2; loss=2.59; abc=tensor([1.4388, 1.0126, 1.2400], requires_grad=True)\n",
"step=3; loss=2.32; abc=tensor([1.5634, 1.0347, 1.2900], requires_grad=True)\n",
"step=4; loss=2.14; abc=tensor([1.6881, 1.0568, 1.3400], requires_grad=True)\n",
"step=5; loss=1.96; abc=tensor([1.7993, 1.0905, 1.3800], requires_grad=True)\n",
"step=6; loss=1.81; abc=tensor([1.9016, 1.1337, 1.4100], requires_grad=True)\n",
"step=7; loss=1.69; abc=tensor([1.9975, 1.1811, 1.4200], requires_grad=True)\n",
"step=8; loss=1.57; abc=tensor([2.0933, 1.2284, 1.4300], requires_grad=True)\n",
"step=9; loss=1.46; abc=tensor([2.1864, 1.2705, 1.4300], requires_grad=True)\n",
"step=10; loss=1.36; abc=tensor([2.2794, 1.3126, 1.4300], requires_grad=True)\n",
"step=11; loss=1.26; abc=tensor([2.3725, 1.3547, 1.4300], requires_grad=True)\n",
"step=12; loss=1.15; abc=tensor([2.4656, 1.3968, 1.4300], requires_grad=True)\n",
"step=13; loss=1.05; abc=tensor([2.5587, 1.4389, 1.4300], requires_grad=True)\n",
"step=14; loss=0.94; abc=tensor([2.6517, 1.4811, 1.4300], requires_grad=True)\n",
"step=15; loss=0.84; abc=tensor([2.7448, 1.5232, 1.4300], requires_grad=True)\n",
"step=16; loss=0.76; abc=tensor([2.7889, 1.5358, 1.4100], requires_grad=True)\n",
"step=17; loss=0.74; abc=tensor([2.8330, 1.5484, 1.3900], requires_grad=True)\n",
"step=18; loss=0.71; abc=tensor([2.8771, 1.5611, 1.3700], requires_grad=True)\n",
"step=19; loss=0.69; abc=tensor([2.9212, 1.5737, 1.3500], requires_grad=True)\n",
"step=20; loss=0.68; abc=tensor([2.9155, 1.5863, 1.3100], requires_grad=True)\n",
"step=21; loss=0.66; abc=tensor([2.9346, 1.5832, 1.2800], requires_grad=True)\n",
"step=22; loss=0.65; abc=tensor([2.9289, 1.5958, 1.2400], requires_grad=True)\n",
"step=23; loss=0.64; abc=tensor([2.9480, 1.5926, 1.2100], requires_grad=True)\n",
"step=24; loss=0.62; abc=tensor([2.9672, 1.5895, 1.1800], requires_grad=True)\n",
"step=25; loss=0.61; abc=tensor([2.9864, 1.5863, 1.1500], requires_grad=True)\n",
"step=26; loss=0.60; abc=tensor([2.9807, 1.6000, 1.1200], requires_grad=True)\n",
"step=27; loss=0.60; abc=tensor([3.0064, 1.5937, 1.1200], requires_grad=True)\n",
"step=28; loss=0.59; abc=tensor([3.0018, 1.6105, 1.1000], requires_grad=True)\n",
"step=29; loss=0.59; abc=tensor([3.0275, 1.6042, 1.1000], requires_grad=True)\n",
"step=30; loss=0.59; abc=tensor([3.0283, 1.6137, 1.0900], requires_grad=True)\n",
"step=31; loss=0.58; abc=tensor([3.0290, 1.6232, 1.0800], requires_grad=True)\n",
"step=32; loss=0.58; abc=tensor([3.0547, 1.6168, 1.0800], requires_grad=True)\n",
"step=33; loss=0.58; abc=tensor([3.0555, 1.6263, 1.0700], requires_grad=True)\n",
"step=34; loss=0.58; abc=tensor([3.0563, 1.6358, 1.0600], requires_grad=True)\n",
"step=35; loss=0.58; abc=tensor([3.0571, 1.6453, 1.0500], requires_grad=True)\n",
"step=36; loss=0.58; abc=tensor([3.0828, 1.6389, 1.0500], requires_grad=True)\n",
"step=37; loss=0.58; abc=tensor([3.0835, 1.6484, 1.0400], requires_grad=True)\n",
"step=38; loss=0.58; abc=tensor([3.0843, 1.6579, 1.0300], requires_grad=True)\n",
"step=39; loss=0.57; abc=tensor([3.0851, 1.6674, 1.0200], requires_grad=True)\n",
"step=40; loss=0.57; abc=tensor([3.1136, 1.6558, 1.0300], requires_grad=True)\n",
"step=41; loss=0.58; abc=tensor([3.0956, 1.6516, 1.0100], requires_grad=True)\n",
"step=42; loss=0.57; abc=tensor([3.0992, 1.6558, 1.0100], requires_grad=True)\n",
"step=43; loss=0.57; abc=tensor([3.1027, 1.6600, 1.0100], requires_grad=True)\n",
"step=44; loss=0.57; abc=tensor([3.1063, 1.6642, 1.0100], requires_grad=True)\n",
"step=45; loss=0.57; abc=tensor([3.0911, 1.6547, 1.0000], requires_grad=True)\n",
"step=46; loss=0.57; abc=tensor([3.0946, 1.6589, 1.0000], requires_grad=True)\n",
"step=47; loss=0.57; abc=tensor([3.0982, 1.6632, 1.0000], requires_grad=True)\n",
"step=48; loss=0.57; abc=tensor([3.1017, 1.6674, 1.0000], requires_grad=True)\n",
"step=49; loss=0.57; abc=tensor([3.1053, 1.6716, 1.0000], requires_grad=True)\n",
"Best abc parameters: tensor([3.1053, 1.6716, 1.0000])\n"
]
}
],
"source": [
"from fastai.metrics import mae\n",
"\n",
"def demo_auto_fit(steps=50):\n",
" x, y = generate_noisy_data(mk_quad(3,2,1))\n",
"\n",
" abc = torch.tensor([1.0,1.0,1.0], requires_grad=True)\n",
" min_loss = float('inf')\n",
" best_abc = abc.clone().detach() # Initialize best_abc with the initial abc\n",
"\n",
" for i in range(steps):\n",
" f = mk_quad(*abc)\n",
" loss = mae(f(x), y)\n",
" loss.backward()\n",
"\n",
" with torch.no_grad():\n",
" abc -= abc.grad*0.1\n",
" abc.grad.zero_() # Clear gradients after update\n",
"\n",
" print(f'step={i}; loss={loss.item():.2f}; abc={abc}')\n",
"\n",
" if loss < min_loss:\n",
" min_loss = loss\n",
" best_abc = abc.clone().detach() # Update best_abc when a lower loss is found\n",
"\n",
" return best_abc\n",
"\n",
"best_abc_params = demo_auto_fit()\n",
"print(f\"Best abc parameters: {best_abc_params}\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.16"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {
"0696762f8b6d40a4a9f83ccc89e6ad73": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"08bf4da24cbf44e3ba1a9e65b9a82920": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"0e077fa7bb9d4d65a2133937e203e1ff": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"15bcdbc851ed4bf29e29859357fbae52": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"185a9bd78ffc46609d01ca7c0e6c398d": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"2406bb8acaf24c31b23c88432252cc1c": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_0696762f8b6d40a4a9f83ccc89e6ad73",
"outputs": [
{
"data": {
"image/png": "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Hj9vt+eff97qWmCT36xZs6wvEJuv3X1ubEbiPh09ejS+++47qw8v7WfNJieeCN2fEYN269atrXyAL7/80joBeevXYrcHm5R4QmC5eMLiyYJfkLT9mp59duHAfdC/f3+rOZQnNm+479MeFzxZ8uLP13HhC5tRe/XqZQUwfmbVq1e3LmADxaZYNuV169bNurjjxR77aD2/W9wf2bJlw8SJE63n9OnTB0eOHLEeY7BiGcqXL28dM7xY6dixo3XBlvak7XlhxosZNjcOHjzYOp62bt1qNQl78+CDD6JGjRrW/3nXXXehR48emD59elD2ubd94v6+prdP+Bg/k7S5Nmn/Tvs8sH1+4sQJ1K9fH1OmTLGex3MFv1eelSPm3bAfPlCZPTd7/j+LFy/22W3h/ntvr79//37r/O4XlwN4Nr82bdrUau51Nz/cc8891u/emr47d+5sNSGdPHnSun/33XdbTTyezRXupjJvN88mVDZXZcuWLaByswmjfv36VrPJqVOnfD5v+/bt1vt99dVXqbazqYXb33zzTa9/x+aSYsWKuc6cOeMK1Lhx41zZs2d3bdu2LWXbggULrPcLpOm7devWrssvvzxVGT799FPrddhE6P7c2UXhS9WqVV2vv/56uuW99957rW4Mt5YtW1pdGZ778rnnnku36Zv7g59p5cqVUzU/zp0719q3/JkVgTbJDR482OqScf8P3pofuY9Gjx59wd+WKlXKNXDgwIDKd/XVV7saNWqUaluXLl0Cagbdt2+fK0+ePK7ExMRU2++8806rCY/27Nljvebq1au9vsYvv/xiPX748GGfZd2/f7+1T5YtW2bd37t3rytXrlyuF154IdX+5L701vTdtWvXVK/XsGFD67MOxj7na7nPO57YVHn99df7/Dsen+ymSuvtt9+2yuw+T2mfB7bPx48f74qLi3OtWLHC52szFlSoUMEVqMyem4n7k+dGnmt9dctMnDjR2sZuU0/sQuF2dp36w1E1amLtmFdjbBLhT1/N3mxW5RUkm1iZKez+W16RMQkrrf/9739WQojnjVeInleUrGUHYuDAgdZ7TZgwwarNBxP/PyausYmEV7GZyaBmdmHp0qVTtvEquVixYgG/Dj9jzzI0b97caiZyt3ywiYsJNy+99JLVwpB25VQ+zsQ7NtGxGSgtNnWxJu55pc33ZZeGZ83bW8sKuztY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ON4mPPH1P7nLzxPONddcY5WbtQN+vp5Xxi+99JL1uqxNMHDyuaztuj322GPWAH8+xv3CTPmffvrJeuzVV19N+bKnxZo7v3x8Xwb7pUuXXpD1zS83s8p54PMqlRcTPLl5Bmpf+8Nf3FcZjRrgZ8rnZfQ63mo1a9eudd1yyy3W/8ATOCdHSZvpz+OGmfD+1Pp5omOwYNYuT7reTtre/h93+fnezzzzjHXC58mbLRvMXnXbtWuXq0OHDlYg477hCZQtL1u3brUe/+OPP6zPn3/PY4/l4YnfXfOqVauW16xnfl95bPE44sVg7969rVYZb4GaF32sSfL/5Ou7M2+Dtc/53br//vut45UXsjyJM/PZk7d9zhoYW35YJu5PBvfly5df8Pra5/7vc3ftmy0FPP/w/VkD9jx/+vP9S48/52aWydukW27ptd6+9dZb1rmMn03t2rWtc2og4s4VQCII5xdncsf777+PSMdkME6AwMQM8Y55F5xAgsk86WUxRwL27XEkAvsvfc3tL9rnklrqabYkIjCJikkd0YAnIkkfZ1rjRBaRfsKmUqVKXTB8Ty6kfS6eVKMWERFxMMcNzxIREZHzFKhFREQcTIFaRETEwRSoRUREHMwxWd/hWLhARETESfzJ53ZMoCYloIuISKyI87OCqqZvERERB1OgFhERcTAFahEREQdToBYREXEwBWoREREHU6AWERFxMAVqERERB1OgFhERcTAFahEREQdToBYREXEwBWoREREHU6AWERFxMAVqERERB1OgFhERcTAFahEREQdToBYREXEwBWoREREHU6AWERFxMAVqERERB1OgFhERcTC/A/XYsWNRp04d5MyZE82aNUvZvnv3brRv3x6lS5dGgQIFULt2bUybNi1U5RUREYkpfgfqkiVLYtCgQejatWuq7UePHrWC8+LFi3Hw4EEMGzYMbdu2xbp160JRXhERkZgS53K5XIH8QWJiIlauXIkpU6b4fM6VV16J3r17o3Pnzv4XJC4OARZFREQkYvkb94LeR82m8N9//x01atTIMOCzkO6biIiIhDhQnzp1Cm3atEGrVq2s/uyMAjWvJNw3ERERCWGgZpBu0aIF8uTJg7fffjtYLysiIhLTsgcrSLds2dL6OXXqVFx00UXBeFkREZGY53egPnPmTMotOTkZSUlJiI+Pt/qX2dR97NgxTJ8+3Rq+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",
"text/plain": "<Figure size 576x432 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
}
},
"25e79fe1ca924b589ed8dd170d61a2f5": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "c",
"layout": "IPY_MODEL_f8ac14d57163468f85be0b2bc639bdcd",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_2e39410ed46741ce94bbc308ea9f45d8",
"value": 1.5
}
},
"27e6c8dd08624c409ca6bb8fc789aca0": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"28ff65c70ff948cc9ffa699bc02a825c": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "c",
"layout": "IPY_MODEL_d92e2193d6d24f1f9ceccf4ad0fd400f",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_b47137fb41eb4aaab5b761c3cbdfca6f",
"value": 1.5
}
},
"2ce4bc9b50464f5bbfad3b9101d6a5fc": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_27e6c8dd08624c409ca6bb8fc789aca0",
"outputs": [
{
"data": {
"image/png": "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gjQABJgds7Is7jzJScdm1HZvX9t1e95X5T/XrJGaN5euuEJBwBEsAAi4Y+ekZ64O7UHbErfNoH11Tnrz0fKfNptevFiqWlXxLpy4R5AGAPhfjx7SK69IPXtKL7+sRECQBgDEv2XLpBo1pEKFXPnPkiWVCChmAgCIf3/8o3TokPT44wkToMPFTBoA4F9ffik1aiSde660dKlUsKASBTNpAED8ysiQHn7YPX722YQK0OEiSAMA/OmDD1wjjUsvldq0URCx3B3kNm8A4Fd797ra3HYueupU6aqrlGjoJ+1Rm7dNO/dr/poFmrh4g3/bvAGAn734ogvQLVokZIAOFzPpXBozb616j14Qauv2c1ax54WWtdWsbnlPxgYAcWn9eles5OBBV7jEipgkIBLHYiAu27wBgJ/16yft2SM9+GDCBuhwsdwdtDZvAOJeQufBWIert9+WzjnneDONACNI55L9cdge9JF4afMGIK4ldB6MLf326uXuBw6UihdX0LHcHaQ2bwDins2gLUBbHkzm5MDu7Wu7bs/HrX/9S5oyxZUAve8+r0fjCwTpILV5AxD3EjYPJj1deuQR93joUCkvC72Gf4VcstmyLS/5vs0bgISQsHkw1it65Urp1lulG27wejS+QZCOAAvEdsyKo1YAoi0h82DsyNWgQVK+fNILL3g9Gl9huRsA4khC5sH07Svt3u16Rdv5aBxDMRMAiPPs7qSjAdryYOIuuzuzNrcduVq+PFAZ3UlhxD2CNADE6znpeM+Dsff8K6+UZsyQXn9d6tpVQZJEkAYA+Nb770sdOkh16khffy3lyaMgSYp1WdC1a9eqWbNmOuecc1SyZEm1atVKmzdvjuSvAAAkgl27pD/8wT0ePjxwATpcEQ3S3bt3D92vXr1aK1euVHp6uh602qsAAJzo6addVnfbtoHuchXTIL1ixYrQ7LlIkSIqWrSoWrdurYULF0byVwAA4t3337tWlIUKSc895/VoghOkH374YY0ePVo7duxQWlqaRo0apVvtYDoAAJkeflg6cMA10KhQwevRBCdIX3nlldq0aZNSUlJUokQJbd++XY899liW35uamhraNM+8AQACYMIE6dNPpSpVXLBGbIJ0RkaGbrjhhlCg3r17d+hmj2+88cZsg7RltWXeAAAJbv9+1yPa2HJ3gQJej8j3InYEa8uWLSpVqpR++ukn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",
"text/plain": "<Figure size 576x432 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
}
},
"2e39410ed46741ce94bbc308ea9f45d8": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"30a1784a79044164b683eccced94549a": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"316938c4aa6445cca12f17c2918d819f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"3258daf84db849b9b77d6e8ce3ef89ce": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "b",
"layout": "IPY_MODEL_548aecf4c6034956ac2378d91a055797",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_97e5810a1b5842b990440d836dcd64fd",
"value": 1.5
}
},
"34197665b30c4a0cbb4d42d50c738809": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_5b4db5490771464f8ceb851abbc08a23",
"IPY_MODEL_ff96ac57258c4689b7e3d3b676c25aa1",
"IPY_MODEL_28ff65c70ff948cc9ffa699bc02a825c",
"IPY_MODEL_36a6488e798e4e4ca9581731dd81ec3a"
],
"layout": "IPY_MODEL_8345805c47cc4bd48b241a56d6135eb1"
}
},
"350ca35211c54727b33b1928e575d6e3": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_7f46888aafef4ec0b93c99d285fb491a",
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": "<Figure size 576x432 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
}
},
"36a6488e798e4e4ca9581731dd81ec3a": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_e0b9eb9700674070b3e74d5640b90f20",
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAGHCAYAAAB/BxG+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAN1wAADdcBQiibeAAAQ5RJREFUeJzt3QeUU0X7BvBnF5COLFWKgCDFP12xo6CgogLySW+iSJGmCCqiIAsKFkRU4BN7AeVTLICgKKAgIEXpgoJIEVB6L0vb/M9zhyzZJdlNdpPcm+T5nZOzm5tsMpt7c987M+/MxLlcLhdERETEkeLtLoCIiIj4pkAtIiLiYArUIiIiDqZALSIi4mAK1CIiIg6mQC0iIuJgCtQiIiIOpkAtIiLiYI4I1ImJiYiLi0PFihW9Ps7tfJzP8+ayyy6zHt+4ceMFj82dO9d6zNutS5cuAZXz33//xeOPP46aNWsiX758uPTSS9GpUyf8888/fv39woULce211yJXrlxWmV9//fVUj3/wwQc+y9q9e3cEQ506dXD//fen3OdnWqRIETjB0qVLcdFFF+HQoUNeHz969Kj1WfBzCpdTp05Z+/ymm25C7ty5rffPjEcffdT628cee+yCx9atW4cGDRogT548KFmyJJ555hmcPXs2CKUHfvvtN+t9+T1wK1eunNdy2KFnz55o1aqVz8fHjh2b6jN3f5/5f4USj8EHHngACQkJuPjii9G+fXvs27cvw7/j/FEjRoywzg08Xm6++WasXLnygudpn/u/z8Mho3NzRo4dO2btc1/H5ttvv23FMb7+VVddhTlz5kReoCb+A5s3b8avv/6aavsvv/yCLVu2WI97s2jRIutxmjRpks/X//jjj63net6eeuqpgMq4bNkyfPXVV2jbti2+/vprjBw5EkuWLMENN9xgBZH08CLijjvusA6Cb775xgq8/fr1wzvvvJPynLvvvvuCMr766qvWY3feeSei3YwZM1C3bl3rxOgUx48ft/YRT6jcz5nBk/K7776LAgUKXPDYgQMH0LBhQ+sLPnXqVOuEPWrUKAwZMgSxgPu8cePGcBoGEgY67nteGPI81KxZswz/7oUXXsCzzz6LAQMGWOcIXtBz/+7cuTPlOdrnztrnG/04N2dk+PDhOH36tNfHGJceeugh3Hffffj2229RtWpV6/8P6GLT5QBDhgxxFS5c2HXbbbe5+vfvn+qxfv36uW6//XbrcT4vrT59+rjy5s3ruvbaa11XXHHFBY//+OOPnCLVtWbNmiyX88CBA67Tp0+n2rZ+/Xrr9T/44IN0/7Zbt26uihUrpvr7Hj16uEqXLu1KTk72+Xc9e/Z0XXzxxa6kpCRXMFx11VWuTp06XfDZOwHL9vLLL/t8/MiRI9Zn/f7774e1XO79M2bMGOv9A3Xrrbe6Bg0a5CpbtuwFx/eIESNcBQsWdB06dChl24svvujKnTt3qm2ZxeOeZeb3wM1bOezAssXHx7t2797t8zlpP/Ngfp99+fnnn633mDdvXsq2JUuWWNtmzZrl8+9OnDjhKlCggGvo0KEp244ePeoqUqSI6+mnn07Zpn0e2D4Ptcyem93+/PNPKwa98cYbXo/NSpUquR544IGU+2fPnnVVq1bN1b59e7/L6JgaNbVp0wafffaZ1XxE/Mn73O4Nm4r4eNOmTdG5c2f8/vvvWLVqVcjKV7BgQWTPnj3VtkqVKlm1rYyav3klde+996b6e/5f27dv93llxf9v8uTJ1t/lzJkz4PLydW+88UarNeKKK67AtGnTkBk//PBDSrNQ8eLFraYrzxYEXkmyWa1MmTJWOdmU95///MdqNqaDBw9a3Qzcztfg87p27ZrqPVjjWL58udWq4PbFF19Yn6+7CfGPP/64oGwfffSRVQsvVKiQ1Ux5yy23XNAqk1VZaYb7/PPPrXI/+eSTPo8LXs171rZ5XJw4cQLz5s0L+P3++9//Wk1wefPmRZMmTazumkDxuGOXiHt/sgbwySefpHrO2rVr0ahRI+tz53vx+Bo3blzK4wsWLLC6C/h/8VarVi3rWE5bs7r66qtRtGhR6/7JkyfRu3dv63vG12V3ga9aCr9vrJXwvVnO8ePHI1i4T3ic85hzu+aaa6waFx/z5eeff8bhw4dTNeu694Pn32mfB77P9+3bZ9V0S5QoYZ1DKleunNLamFWZOTd76tu3r3V+q1KlygWPbdq0CRs2bEh1TMTHx6Nly5bpHktpOSpQ88PatWuXtcNp/vz52LNnj7Xdmx9//NF6Pj/UFi1aIEeOHD6bv3kgnjlzJtXNcz0Sdz95oFavXm01jzKgpNd/sW3btgt2JA908haAiP0Y/P/Z1B4oful5MmBA5Rdu0KBB1gH1999/B/Q67i8n+7EZOIcOHWq9Hj9vt+eff97qWmCT36xZs6wvEJuv3X1ubEbiPh09ejS+++47qw8v7WfNJieeCN2fEYN269atrXyAL7/80joBeevXYrcHm5R4QmC5eMLiyYJfkLT9mp59duHAfdC/f3+rOZQnNm+479MeFzxZ8uLP13HhC5tRe/XqZQUwfmbVq1e3LmADxaZYNuV169bNurjjxR77aD2/W9wf2bJlw8SJE63n9OnTB0eOHLEeY7BiGcqXL28dM7xY6dixo3XBlvak7XlhxosZNjcOHjzYOp62bt1qNQl78+CDD6JGjRrW/3nXXXehR48emD59elD2ubd94v6+prdP+Bg/k7S5Nmn/Tvs8sH1+4sQJ1K9fH1OmTLGex3MFv1eelSPm3bAfPlCZPTd7/j+LFy/22W3h/ntvr79//37r/O4XlwN4Nr82bdrUau51Nz/cc8891u/emr47d+5sNSGdPHnSun/33XdbTTyezRXupjJvN88mVDZXZcuWLaByswmjfv36VrPJqVOnfD5v+/bt1vt99dVXqbazqYXb33zzTa9/x+aSYsWKuc6cOeMK1Lhx41zZs2d3bdu2LWXbggULrPcLpOm7devWrssvvzxVGT799FPrddhE6P7c2UXhS9WqVV2vv/56uuW99957rW4Mt5YtW1pdGZ778rnnnku36Zv7g59p5cqVUzU/zp0719q3/JkVgTbJDR482OqScf8P3pofuY9Gjx59wd+WKlXKNXDgwIDKd/XVV7saNWqUaluXLl0Cagbdt2+fK0+ePK7ExMRU2++8806rCY/27Nljvebq1au9vsYvv/xiPX748GGfZd2/f7+1T5YtW2bd37t3rytXrlyuF154IdX+5L701vTdtWvXVK/XsGFD67MOxj7na7nPO57YVHn99df7/Dsen+ymSuvtt9+2yuw+T2mfB7bPx48f74qLi3OtWLHC52szFlSoUMEVqMyem4n7k+dGnmt9dctMnDjR2sZuU0/sQuF2dp36w1E1amLtmFdjbBLhT1/N3mxW5RUkm1iZKez+W16RMQkrrf/9739WQojnjVeInleUrGUHYuDAgdZ7TZgwwarNBxP/PyausYmEV7GZyaBmdmHp0qVTtvEquVixYgG/Dj9jzzI0b97caiZyt3ywiYsJNy+99JLVwpB25VQ+zsQ7NtGxGSgtNnWxJu55pc33ZZeGZ83bW8sKuztY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ON4mPPH1P7nLzxPONddcY5WbtQN+vp5Xxi+99JL1uqxNMHDyuaztuj322GPWAH8+xv3CTPmffvrJeuzVV19N+bKnxZo7v3x8Xwb7pUuXXpD1zS83s8p54PMqlRcTPLl5Bmpf+8Nf3FcZjRrgZ8rnZfQ63mo1a9eudd1yyy3W/8ATOCdHSZvpz+OGmfD+1Pp5omOwYNYuT7reTtre/h93+fnezzzzjHXC58mbLRvMXnXbtWuXq0OHDlYg477hCZQtL1u3brUe/+OPP6zPn3/PY4/l4YnfXfOqVauW16xnfl95bPE44sVg7969rVYZb4GaF32sSfL/5Ou7M2+Dtc/53br//vut45UXsjyJM/PZk7d9zhoYW35YJu5PBvfly5df8Pra5/7vc3ftmy0FPP/w/VkD9jx/+vP9S48/52aWydukW27ptd6+9dZb1rmMn03t2rWtc2og4s4VQCII5xdncsf777+PSMdkME6AwMQM8Y55F5xAgsk86WUxRwL27XEkAvsvfc3tL9rnklrqabYkIjCJikkd0YAnIkkfZ1rjRBaRfsKmUqVKXTB8Ty6kfS6eVKMWERFxMMcNzxIREZHzFKhFREQcTIFaRETEwRSoRUREHMwxWd/hWLhARETESfzJ53ZMoCYloIuISKyI87OCqqZvERERB1OgFhERcTAFahEREQdToBYREXEwBWoREREHU6AWERFxMAVqERERB1OgFhERcTAFahEREQdToBYREXEwBWoREREHU6AWERFxMAVqERERB1OgFhERcTAFahEREQdToBYREXEwBWoREREHU6AWERFxMAVqERERB1OgFhERcTC/A/XYsWNRp04d5MyZE82aNUvZvnv3brRv3x6lS5dGgQIFULt2bUybNi1U5RUREYkpfgfqkiVLYtCgQejatWuq7UePHrWC8+LFi3Hw4EEMGzYMbdu2xbp160JRXhERkZgS53K5XIH8QWJiIlauXIkpU6b4fM6VV16J3r17o3Pnzv4XJC4OARZFREQkYvkb94LeR82m8N9//x01atTIMOCzkO6biIiIhDhQnzp1Cm3atEGrVq2s/uyMAjWvJNw3ERERCWGgZpBu0aIF8uTJg7fffjtYLysiIhLTsgcrSLds2dL6OXXqVFx00UXBeFkREZGY53egPnPmTMotOTkZSUlJiI+Pt/qX2dR97NgxTJ8+3Rq+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",
"text/plain": "<Figure size 576x432 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
}
},
"36bd0c4eeaec4568bd8c9436a320316e": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_f8640cee3fb641738efbd6e09e1b54c6",
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": "<Figure size 576x432 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
}
},
"374ca6dc04ab43db861a6b3e932e4884": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_ad0f3706e1f74d19a7cbec651215682f",
"IPY_MODEL_a65c30d5971549e1a0daba3a4b5ae674",
"IPY_MODEL_99c5bfa0fe18489fb89f47571b8a287e",
"IPY_MODEL_2ce4bc9b50464f5bbfad3b9101d6a5fc"
],
"layout": "IPY_MODEL_e3dd283a85af4053b59b9dedea365904"
}
},
"3bb08a02c7bc4f8f8c539007021a56c5": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "c",
"layout": "IPY_MODEL_08bf4da24cbf44e3ba1a9e65b9a82920",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_b3c6f40d2b594fcb9d7ca986d4a32249",
"value": 1.5
}
},
"3d969f68133741eaa7978450a73a2cee": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"4720941fe36a4d8b95bb115a4885a0fc": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_7d4712f69aeb458f995c96752430f2c8",
"IPY_MODEL_8710e3a69df14fc8a41983a948d82be7",
"IPY_MODEL_621fc0e1f1b9469fb053b7fb2dac204b",
"IPY_MODEL_350ca35211c54727b33b1928e575d6e3"
],
"layout": "IPY_MODEL_9bf4506bae2843eda2285af9aa6d82ac"
}
},
"4ab1f330a54444a1b2111255524a8ca0": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"548aecf4c6034956ac2378d91a055797": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"56e6699f7a4a49eb91d7d964dc13c98a": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"5b44c3af392549cd8231b0ca48081a9d": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "a",
"layout": "IPY_MODEL_b550fdc3181147fbb02d5bf3f6cb4877",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_316938c4aa6445cca12f17c2918d819f",
"value": 1.5
}
},
"5b4db5490771464f8ceb851abbc08a23": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "a",
"layout": "IPY_MODEL_8293e909dca24fbabf708dc40f81a684",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_8b49bed9422546c3803ac7ec3e184261",
"value": 1.5
}
},
"621fc0e1f1b9469fb053b7fb2dac204b": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "c",
"layout": "IPY_MODEL_9e3b2e06a200472c9a7d30425b03fdbb",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_c1c7feb349fb4fd19fbaa67ba9b3d191",
"value": 1.5
}
},
"62906d48b3664eecbb158c3259ad917d": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "a",
"layout": "IPY_MODEL_185a9bd78ffc46609d01ca7c0e6c398d",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_f362a9df407c4e33b2774107e5e816bf",
"value": 1.5
}
},
"63a8d9abb5c341df95644a00c577fb7c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"6690b52c9e1b4a5dafaaf59f76340d16": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_5b44c3af392549cd8231b0ca48081a9d",
"IPY_MODEL_eba36e6595f74306b538c1309ba45c0a",
"IPY_MODEL_3bb08a02c7bc4f8f8c539007021a56c5",
"IPY_MODEL_36bd0c4eeaec4568bd8c9436a320316e"
],
"layout": "IPY_MODEL_15bcdbc851ed4bf29e29859357fbae52"
}
},
"68047da4b685425fade4f1849d5f6b28": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"7126631048804a59b7e9e83773504fd5": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"71c2b3908e3d4ac9a701a9ebff3885a5": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_62906d48b3664eecbb158c3259ad917d",
"IPY_MODEL_841a47dd8f4a4377a7eeed11975f4aef",
"IPY_MODEL_25e79fe1ca924b589ed8dd170d61a2f5",
"IPY_MODEL_2406bb8acaf24c31b23c88432252cc1c"
],
"layout": "IPY_MODEL_63a8d9abb5c341df95644a00c577fb7c"
}
},
"72e9ca110b3b40f9843ce5b67e008445": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"76928ef54d994d60af1240ed80f7a039": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"7c6dc3e3fa5546559c61785be2e0482c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"7d4712f69aeb458f995c96752430f2c8": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "a",
"layout": "IPY_MODEL_d634f945f1a74a62ab6c4598a0e7cd80",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_4ab1f330a54444a1b2111255524a8ca0",
"value": 1.5
}
},
"7f46888aafef4ec0b93c99d285fb491a": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"8293e909dca24fbabf708dc40f81a684": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"8345805c47cc4bd48b241a56d6135eb1": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"841a47dd8f4a4377a7eeed11975f4aef": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "b",
"layout": "IPY_MODEL_d755eac0cae34013be645ad989352d93",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_3d969f68133741eaa7978450a73a2cee",
"value": 1.5
}
},
"8710e3a69df14fc8a41983a948d82be7": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "b",
"layout": "IPY_MODEL_a520a84b888e45a08edd579508318aab",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_c26696bac28b47bbbda065703b1145e9",
"value": 1.5
}
},
"8716fb0022064cb481faecc7254c9aa3": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"890b1a7bbca84bb5abff84c42eeacf06": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"8b49bed9422546c3803ac7ec3e184261": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"97e5810a1b5842b990440d836dcd64fd": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"99c5bfa0fe18489fb89f47571b8a287e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "c",
"layout": "IPY_MODEL_f571a3052aaf49218d4cc0e41b3625ce",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_7126631048804a59b7e9e83773504fd5",
"value": 1.5
}
},
"9bf4506bae2843eda2285af9aa6d82ac": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"9e3b2e06a200472c9a7d30425b03fdbb": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"a0db6666d23c436f803b3d232112686e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "c",
"layout": "IPY_MODEL_aed1673c65ad429abab13658fad86bb9",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_aa4fbec3eba841f39e4e3351df708262",
"value": 1.5
}
},
"a520a84b888e45a08edd579508318aab": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"a65c30d5971549e1a0daba3a4b5ae674": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "b",
"layout": "IPY_MODEL_c6aed350142142e58e527266bd71d02f",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_30a1784a79044164b683eccced94549a",
"value": 1.5
}
},
"aa4f6823c0a54d26b0243ff56fd6a618": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"aa4fbec3eba841f39e4e3351df708262": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"ad0f3706e1f74d19a7cbec651215682f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "a",
"layout": "IPY_MODEL_68047da4b685425fade4f1849d5f6b28",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_aa4f6823c0a54d26b0243ff56fd6a618",
"value": 1.5
}
},
"aed1673c65ad429abab13658fad86bb9": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"b3c6f40d2b594fcb9d7ca986d4a32249": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"b47137fb41eb4aaab5b761c3cbdfca6f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"b550fdc3181147fbb02d5bf3f6cb4877": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"b81183c85ccb4d18bd9c52fd4c1b4bb8": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_eb7818f0f09443eda1f5d66f14e39370",
"IPY_MODEL_3258daf84db849b9b77d6e8ce3ef89ce",
"IPY_MODEL_a0db6666d23c436f803b3d232112686e",
"IPY_MODEL_f376bb226310468a8de1a66fb0e94538"
],
"layout": "IPY_MODEL_dc9e81d7ce6a4b3d9f50cf78df703ebb"
}
},
"c1c7feb349fb4fd19fbaa67ba9b3d191": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"c26696bac28b47bbbda065703b1145e9": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"c6aed350142142e58e527266bd71d02f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"d634f945f1a74a62ab6c4598a0e7cd80": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"d755eac0cae34013be645ad989352d93": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"d92e2193d6d24f1f9ceccf4ad0fd400f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"dc9e81d7ce6a4b3d9f50cf78df703ebb": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"e0b9eb9700674070b3e74d5640b90f20": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"e3dd283a85af4053b59b9dedea365904": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"eb7818f0f09443eda1f5d66f14e39370": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "a",
"layout": "IPY_MODEL_76928ef54d994d60af1240ed80f7a039",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_8716fb0022064cb481faecc7254c9aa3",
"value": 1.5
}
},
"eba36e6595f74306b538c1309ba45c0a": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "b",
"layout": "IPY_MODEL_7c6dc3e3fa5546559c61785be2e0482c",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_890b1a7bbca84bb5abff84c42eeacf06",
"value": 1.5
}
},
"f362a9df407c4e33b2774107e5e816bf": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"f376bb226310468a8de1a66fb0e94538": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_72e9ca110b3b40f9843ce5b67e008445",
"outputs": [
{
"data": {
"image/png": "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gjQABJgds7Is7jzJScdm1HZvX9t1e95X5T/XrJGaN5euuEJBwBEsAAi4Y+ekZ64O7UHbErfNoH11Tnrz0fKfNptevFiqWlXxLpy4R5AGAPhfjx7SK69IPXtKL7+sRECQBgDEv2XLpBo1pEKFXPnPkiWVCChmAgCIf3/8o3TokPT44wkToMPFTBoA4F9ffik1aiSde660dKlUsKASBTNpAED8ysiQHn7YPX722YQK0OEiSAMA/OmDD1wjjUsvldq0URCx3B3kNm8A4Fd797ra3HYueupU6aqrlGjoJ+1Rm7dNO/dr/poFmrh4g3/bvAGAn734ogvQLVokZIAOFzPpXBozb616j14Qauv2c1ax54WWtdWsbnlPxgYAcWn9eles5OBBV7jEipgkIBLHYiAu27wBgJ/16yft2SM9+GDCBuhwsdwdtDZvAOJeQufBWIert9+WzjnneDONACNI55L9cdge9JF4afMGIK4ldB6MLf326uXuBw6UihdX0LHcHaQ2bwDins2gLUBbHkzm5MDu7Wu7bs/HrX/9S5oyxZUAve8+r0fjCwTpILV5AxD3EjYPJj1deuQR93joUCkvC72Gf4VcstmyLS/5vs0bgISQsHkw1it65Urp1lulG27wejS+QZCOAAvEdsyKo1YAoi0h82DsyNWgQVK+fNILL3g9Gl9huRsA4khC5sH07Svt3u16Rdv5aBxDMRMAiPPs7qSjAdryYOIuuzuzNrcduVq+PFAZ3UlhxD2CNADE6znpeM+Dsff8K6+UZsyQXn9d6tpVQZJEkAYA+Nb770sdOkh16khffy3lyaMgSYp1WdC1a9eqWbNmOuecc1SyZEm1atVKmzdvjuSvAAAkgl27pD/8wT0ePjxwATpcEQ3S3bt3D92vXr1aK1euVHp6uh602qsAAJzo6addVnfbtoHuchXTIL1ixYrQ7LlIkSIqWrSoWrdurYULF0byVwAA4t3337tWlIUKSc895/VoghOkH374YY0ePVo7duxQWlqaRo0apVvtYDoAAJkeflg6cMA10KhQwevRBCdIX3nlldq0aZNSUlJUokQJbd++XY899liW35uamhraNM+8AQACYMIE6dNPpSpVXLBGbIJ0RkaGbrjhhlCg3r17d+hmj2+88cZsg7RltWXeAAAJbv9+1yPa2HJ3gQJej8j3InYEa8uWLSpVqpR++ukn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",
"text/plain": "<Figure size 576x432 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
}
},
"f571a3052aaf49218d4cc0e41b3625ce": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"f8640cee3fb641738efbd6e09e1b54c6": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"f8ac14d57163468f85be0b2bc639bdcd": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"ff96ac57258c4689b7e3d3b676c25aa1": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatSliderModel",
"state": {
"behavior": "drag-tap",
"description": "b",
"layout": "IPY_MODEL_0e077fa7bb9d4d65a2133937e203e1ff",
"max": 4.5,
"min": -1.5,
"step": 0.1,
"style": "IPY_MODEL_56e6699f7a4a49eb91d7d964dc13c98a",
"value": 1.5
}
}
},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
|