File size: 120,153 Bytes
e027e55 |
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 |
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "nwaAZRu1NTiI"
},
"source": [
"# This is what we learned on HF RL Unit1 adjusted to use crypto market data\n",
"\n",
"#### This code is based on the article \n",
"https://www.section.io/engineering-education/leveraging-openai-gym-and-the-anytrading-environment-for-trading/"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "DDf1gLC2NTiK"
},
"outputs": [],
"source": [
"# !pip install -r ./requirements.txt\n",
"!pip install gym_anytrading\n",
"!pip install stable_baselines3[extra]\n",
"!pip install yfinance\n",
"!pip install huggingface_sb3"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"id": "LNXxxKojNTiL"
},
"outputs": [],
"source": [
"import gym\n",
"import gym_anytrading\n",
"\n",
"from stable_baselines3 import PPO, A2C\n",
"from stable_baselines3.common.evaluation import evaluate_policy\n",
"from stable_baselines3.common.vec_env import DummyVecEnv\n",
"\n",
"from huggingface_sb3 import load_from_hub, package_to_hub, push_to_hub\n",
"from huggingface_hub import notebook_login # To log to our Hugging Face account to be able to upload models to the Hub.\n",
"\n",
"import yfinance as yf\n",
"import pandas as pd\n",
"import numpy as np\n",
"from matplotlib import pyplot as plt\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"id": "dmAuEhZZNTiL"
},
"outputs": [],
"source": [
"# Get data\n",
"eth_usd = yf.Ticker(\"ETH-USD\")\n",
"eth = eth_usd.history(period=\"max\")\n",
"eth_train = eth[-300:-200]\n",
"eth_test = eth[-200:]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 680
},
"id": "SKru9lslNTiM",
"outputId": "9d523f36-999a-4499-a81e-3a7878506671"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"info {'total_reward': 174.176025390625, 'total_profit': 1.0512848550152105, 'position': 0}\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1440x720 with 1 Axes>"
],
"image/png": "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owAAAABroShio3jZjlvkqN23yVeumJWnlixvOw4AAACwBooiNppTpkzKgsXL8/Ur7207CgAAALAGiiI2mpeMGZVX7bVdvnHVvZn/9LK24wAAAACrURSxUX16yqQsWrYiX7lyVttRAAAAgNUoitiodttuZF730h3yratn57FFS9uOAwAAAHShKGKj+9QxE7N0xcp86bKZbUcBAAAAulAUsdHtOnpE3vyysfnOtfflkaeWtB0HAAAAaCiKaMXJR0/MylU1Z106o+0oAAAAQENRRCt23GpY3jZ5XH5w/QOZ++TituMAAAAAURTRok8eNX5dUwUAACAASURBVCFJcuYl01tOAgAAACSKIlq0w+ab5l37j8uPps7JfY8/3XYcAAAA6PcURbTqhCMnZNCAktMvNlUEAAAAbVMU0aptNhua4w7aKT///dzMeHRR23EAAACgX1MU0bqPHb5rhg4emC9cNK3tKAAAANCvKYpo3VYjNskHDhmf8299KHc//FTbcQAAAKDfUhTRI3z4sF0ycpNBOe1CU0UAAADQFkURPcLmw4bkQ4ftnN/c8Uhum7Og7TgAAADQLymK6DE+eOjO2XzY4Hz+wnvajgIAAAD9kqKIHmOzoYPzkVfukkvvmZcb75vfdhwAAADodxRF9CjHHzQ+Ww0fYqoIAAAAWqAookcZvsmgfPyIXXP1jMdz7azH244DAAAA/YqiiB7nvQfulG032ySf/+201FrbjgMAAAD9hqKIHmfo4IE54cgJuX72E7ly+mNtxwEAAIB+Q1FEj/SOV4zLmM03zecuNFUEAAAAG4uiiB5pk0ED88mjJuSWB57MJXc/2nYcAAAA6BcURfRYb3352Oy45bB87rfTsmqVqSIAAADY0BRF9FiDBw7Ip46ZmDsfeiq/uePhtuMAAABAn6cookd7475jsuvo4TntomlZaaoIAAAANihFET3awAElnzpmUqY9sijn3/pg23EAAACgT1MU0eO9du/ts/t2I/OFi6ZnxcpVbccBAACAPktRRI83YEDJp6dMyr2PPZ2f/X5u23EAAACgz1IU0Sscu+e22XvMqJx+8fQsW2GqCAAAADYERRG9Qiklpxw7KXPmL86Pb3yg7TgAAADQJymK6DWOmDQ6++24ec68ZEaWLF/ZdhwAAADocxRF9BqllJx67G55aMGSfP/6+9uOAwAAAH2Ooohe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\n"
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"# do a simple test\n",
"env = gym.make('stocks-v0', df=eth_train, frame_bound=(5,10), window_size=5)\n",
"state = env.reset()\n",
"while True: \n",
" action = env.action_space.sample()\n",
" n_state, reward, done, info = env.step(action)\n",
" if done: \n",
" print(\"info\", info)\n",
" break\n",
"\n",
"plt.figure(figsize=(20,10))\n",
"plt.cla()\n",
"env.render_all()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"id": "peIu387WNTiN"
},
"outputs": [],
"source": [
"# create env\n",
"env_build = lambda: gym.make('stocks-v0', df=eth_train, frame_bound=(30,90), window_size=30)\n",
"env = DummyVecEnv([env_build])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "wlC-EdLENTiN"
},
"outputs": [],
"source": [
"# model_train = A2C('MlpPolicy', env, verbose=1) \n",
"\n",
"model_train = PPO(\n",
" policy = 'MlpPolicy',\n",
" env = env,\n",
" n_steps = 1024,\n",
" batch_size = 64,\n",
" n_epochs = 4,\n",
" gamma = 0.999,\n",
" gae_lambda = 0.98,\n",
" ent_coef = 0.01,\n",
" verbose=1)\n",
"\n",
"# model_train.learn(total_timesteps=10)\n",
"model_train.learn(total_timesteps=100000)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "REhmfLkYNTiN",
"outputId": "cf676f6d-83df-43f5-89fe-3258e0041d9d"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"info {'total_reward': 557.3472900390625, 'total_profit': 0.9569615163491025, 'position': 0}\n"
]
}
],
"source": [
"#testing\n",
"env = gym.make('stocks-v0', df=eth_test, frame_bound=(30,len(eth_test)), window_size=30)\n",
"env.trade_fee_ask_percent=0.0005 \n",
"env.trade_fee_bid_percent=0.0005\n",
"obs = env.reset()\n",
"while True: \n",
" obs = obs[np.newaxis, ...]\n",
" action, _states = model_train.predict(obs)\n",
" obs, rewards, done, info = env.step(action)\n",
" if done:\n",
" print(\"info\", info)\n",
" break"
]
},
{
"cell_type": "code",
"source": [
"plt.figure(figsize=(15,6))\n",
"plt.cla()\n",
"env.render_all()\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 417
},
"id": "FIQ0OqtsO3jo",
"outputId": "f98374ad-c7de-4dc4-80b1-25f018ad96eb"
},
"execution_count": 30,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1080x432 with 1 Axes>"
],
"image/png": "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ExERERERyUIK5kRERERERLKQgjkREREREZEspGBOREREREQkCymYExERERERyUIK5kRERERERLKQgjkREREREZEspGBOREREREQkCymYExERERERyUIK5kRERERERLKQgjkREREREZEspGBOREREREQkCymYExERERERyUIK5kRERERERLKQgjkREREREZEspGBOREREREQkCymYExERERERyUIK5kRERERERLKQgjkREREREZEspGBOREREREQkCymYExERERERyUIK5kRERERERLKQgjkREREREZEspGBOREREREQkCymYExERERERyUIK5kRERERERLKQgjkREREREZEspGBOREREREQkCymYExERERERyUIK5kRERERERLKQgjkREREREZEspGBOREREREQkC+Uv9gCms2LFCtfU1LTYwxAREREREVkUDz300DHnXG2i25Z0MNfU1MTOnTsXexgiIiIiIiKLwszakt2maZYiIiIiIiJZSMGciIiIiIhIFlIwJyIiIiIikoUUzImIiIiIiGQhBXMiIiIiIiJZSMGciIiIiIhIFlIwJyIiIiIikoUUzImIiIiIiGShGYM5M1tnZv9jZk+Y2eNm9v/87dVm9gsze9b/d7m/3czsi2b2nJk9ambPjzvWtf7+z5rZtZl7WiIiIiIiIrltNpm5UeB9zrmNwMXA/zWzjcCHgO3OudOB7f7PAFcDp/tfW4Gvghf8ATcBLwQuAm6KBYAiIiIiIiKSmhmDOefcYefcH/zve4EngTXANcBt/m63AX/if38N8G3n+R1QZWargKuAXzjnupxzx4FfAK9M67MRERERERE5SaS0Zs7MmoDzgd8D9c65w/5N7UC9//0aYH/c3Q7425Jtn/wYW81sp5ntPHr0aCrDW5KO9A7S1T+82MMQEREREZEcM+tgzszKgB8BNzjneuJvc845wKVjQM65bc65C5xzF9TW1qbjkIvqvbc/zA3ff2SxhyEiIiIiIjlmVsGcmRXgBXIh59yP/c0d/vRJ/H+P+NsPAuvi7r7W35Zse047HB7k93s6GR6NLvZQREREREQkh8ymmqUB3wSedM59Nu6mnwKxipTXAj+J2/42v6rlxUDYn455D/AKM1vuFz55hb8tp3VHRhgajbLrYHixhyIiJ4tQCJqaIBDw/g2FFntEIiIikgH5s9jnUuCtwC4z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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"# Total profit > 1 win money, < 1 lost money"
],
"metadata": {
"id": "1saafi5hO93y"
},
"execution_count": 26,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# save to HF\n",
"notebook_login()\n",
"!git config --global credential.helper store"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 331,
"referenced_widgets": [
"270cbb5d6e9c4b1e9e2f39c8b3b0c15f",
"a02224a43d8d4af3bd31d326540d25da",
"20b0f38ec3234ff28a62a286cd57b933",
"f6c845330d6743c0b35c2c7ad834de77",
"f1675c09d16a4251b403f9c56255f168",
"c1a82965ae26479a98e4fdbde1e64ec2",
"3fa248114ac24656ba74923936a94d2d",
"caef095934ec47bbb8b64eab22049284",
"2dc5fa9aa3334dfcbdee9c238f2ef60b",
"01a2dbcb714e40148b41c761fcf43147",
"90c874e91b304ee1a7ef147767ac00ce",
"3e753b0212644990b558c68853ff2041",
"eaba3f1de4444aabadfea2a3dadb1d80",
"a2cfb91cf66447d7899292854bd64a07",
"ee4a21bedc504171ad09d205d634b528",
"9d847f9a7d47458d8cd57d9b599e47c6",
"42d140b838b844819bc127afc1b7bc84"
]
},
"id": "nZepO2_fWMt_",
"outputId": "14a68584-bf16-445c-f167-14432ff323fd"
},
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Token is valid.\n",
"Your token has been saved in your configured git credential helpers (store).\n",
"Your token has been saved to /root/.huggingface/token\n",
"Login successful\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"push_to_hub(\n",
" repo_id=\"bonadio/rl-fin\",\n",
" filename=\"./fin_rl_PPO_v1.ipynb\",\n",
" commit_message=\"Added Notebook trained using ETH with PPO\",\n",
")"
],
"metadata": {
"id": "COIHQ0Myeuhq"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "AcXD04v2h8i1"
},
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.8.13 ('rl2')",
"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.8.13"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "cd60ab8388a66026f336166410d6a8a46ddf65ece2e85ad2d46c8b98d87580d1"
}
},
"colab": {
"provenance": []
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"270cbb5d6e9c4b1e9e2f39c8b3b0c15f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "VBoxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "VBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "VBoxView",
"box_style": "",
"children": [
"IPY_MODEL_a02224a43d8d4af3bd31d326540d25da",
"IPY_MODEL_20b0f38ec3234ff28a62a286cd57b933",
"IPY_MODEL_f6c845330d6743c0b35c2c7ad834de77",
"IPY_MODEL_f1675c09d16a4251b403f9c56255f168",
"IPY_MODEL_c1a82965ae26479a98e4fdbde1e64ec2"
],
"layout": "IPY_MODEL_3fa248114ac24656ba74923936a94d2d"
}
},
"a02224a43d8d4af3bd31d326540d25da": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_caef095934ec47bbb8b64eab22049284",
"placeholder": "",
"style": "IPY_MODEL_2dc5fa9aa3334dfcbdee9c238f2ef60b",
"value": "<center> <img\nsrc=https://huggingface.co/front/assets/huggingface_logo-noborder.svg\nalt='Hugging Face'> <br> Copy a token from <a\nhref=\"https://huggingface.co/settings/tokens\" target=\"_blank\">your Hugging Face\ntokens page</a> and paste it below. <br> Immediately click login after copying\nyour token or it might be stored in plain text in this notebook file. </center>"
}
},
"20b0f38ec3234ff28a62a286cd57b933": {
"model_module": "@jupyter-widgets/controls",
"model_name": "PasswordModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "PasswordModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "PasswordView",
"continuous_update": true,
"description": "Token:",
"description_tooltip": null,
"disabled": false,
"layout": "IPY_MODEL_01a2dbcb714e40148b41c761fcf43147",
"placeholder": "",
"style": "IPY_MODEL_90c874e91b304ee1a7ef147767ac00ce",
"value": ""
}
},
"f6c845330d6743c0b35c2c7ad834de77": {
"model_module": "@jupyter-widgets/controls",
"model_name": "CheckboxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "CheckboxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "CheckboxView",
"description": "Add token as git credential?",
"description_tooltip": null,
"disabled": false,
"indent": true,
"layout": "IPY_MODEL_3e753b0212644990b558c68853ff2041",
"style": "IPY_MODEL_eaba3f1de4444aabadfea2a3dadb1d80",
"value": true
}
},
"f1675c09d16a4251b403f9c56255f168": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ButtonModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ButtonModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "ButtonView",
"button_style": "",
"description": "Login",
"disabled": false,
"icon": "",
"layout": "IPY_MODEL_a2cfb91cf66447d7899292854bd64a07",
"style": "IPY_MODEL_ee4a21bedc504171ad09d205d634b528",
"tooltip": ""
}
},
"c1a82965ae26479a98e4fdbde1e64ec2": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_9d847f9a7d47458d8cd57d9b599e47c6",
"placeholder": "",
"style": "IPY_MODEL_42d140b838b844819bc127afc1b7bc84",
"value": "\n<b>Pro Tip:</b> If you don't already have one, you can create a dedicated\n'notebooks' token with 'write' access, that you can then easily reuse for all\nnotebooks. </center>"
}
},
"3fa248114ac24656ba74923936a94d2d": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": "center",
"align_self": null,
"border": null,
"bottom": null,
"display": "flex",
"flex": null,
"flex_flow": "column",
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": "50%"
}
},
"caef095934ec47bbb8b64eab22049284": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"2dc5fa9aa3334dfcbdee9c238f2ef60b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"01a2dbcb714e40148b41c761fcf43147": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"90c874e91b304ee1a7ef147767ac00ce": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"3e753b0212644990b558c68853ff2041": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"eaba3f1de4444aabadfea2a3dadb1d80": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"a2cfb91cf66447d7899292854bd64a07": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"ee4a21bedc504171ad09d205d634b528": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ButtonStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ButtonStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"button_color": null,
"font_weight": ""
}
},
"9d847f9a7d47458d8cd57d9b599e47c6": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"42d140b838b844819bc127afc1b7bc84": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
}
}
}
},
"nbformat": 4,
"nbformat_minor": 0
} |