{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "0yweK-IBsyCw" }, "source": [ "
\n", "\n", "# Inmas Machine Learning Workshop January 2023\n", "Instructor: Christian Kuemmerle - kuemmerle@uncc.edu
\n", "Teaching Assistants: Emily Shinkle, Yuxuan Li, Derek Kielty, Yashil Sukurdeep, Tim Wang, Ben Brindle.\n", "\n", "**This version of the notebook is more suitable for students with more experience in machine learning / who are more familiar with coding/ some of the covered context. It contains fewer hints compared to the version ``session3b_PCA.ipynb``.**\n", "\n", "## Session III - Principal Component Analysis" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "1-X-AqD6syC6" }, "outputs": [], "source": [ "import warnings\n", "warnings.filterwarnings(\"ignore\")\n", "import numpy as np; \n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from sklearn import datasets" ] }, { "cell_type": "markdown", "metadata": { "id": "n2XGBhMzsyC9" }, "source": [ "## Iris Dataset" ] }, { "cell_type": "markdown", "metadata": { "id": "Or4GYlJJsyC_" }, "source": [ "We start by loading the [Iris dataset](https://en.wikipedia.org/wiki/Iris_flower_data_set) which is a well-known example dataset for classification problems (introduced by the statistician [Robert Fisher](https://en.wikipedia.org/wiki/Ronald_Fisher)). The dataset, which is [available in scikit-learn](https://scikit-learn.org/stable/auto_examples/datasets/plot_iris_dataset.html), consists of three different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length and width, stored in a 150x4 numpy.ndarray." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "JExc0BiSsyDA" }, "outputs": [], "source": [ "iris = datasets.load_iris()\n", "X = iris.data\n", "y = iris.target\n", "print(\"Dimensions of X:\",X.shape)\n", "print(\"Dimensions of y:\",y.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's understand the dataset a little bit. First, we read the names of the categories (\"targets\")." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print (iris['target_names'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Also, a detailed description of the dataset is provided." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(iris.DESCR)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We further explore that data a bit." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(iris.feature_names) \n", "# have a peek at feature variables\n", "print (iris.data[:5])\n", "# have a peek at target variables\n", "print (iris.target[:5])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We check that indeed, the three classes are balanced in the sense that they each have 50 data samples:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(\"Number of samples in first iris class: %i\" % (iris.target==0).sum())\n", "print(\"Number of samples in second iris class: %i\" % (iris.target==1).sum())\n", "print(\"Number of samples in thrid iris class: %i\" % (iris.target==2).sum())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using seaborn and the visualization techniques we learnt in the December workshop (revisit notebook `02a_data_visualization_with_seaborn.ipynb` from that workshop), we can visualize pairwise scatter plots of the features. We use the class labels to color the data points." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# this is a small loop for creating a list with the category names \n", "iris.target_class = []\n", "for k in range(len(iris.target)):\n", " iris.target_class.append(iris.target_names[iris.target[k]])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# here, we create a pandas.DataFrame from the data has this facilities a nice interfacing with seaborn\n", "df_iris = pd.DataFrame(iris.data,columns=iris['feature_names'])\n", "df_iris = df_iris.assign(iris_class=iris.target_class)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A seaborn pairplot is the tool we would like to use for that purpose." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", "sns.pairplot(df_iris, hue= \"iris_class\", palette=\"tab10\", )\n", "fig = plt.gcf()\n", "fig.set_size_inches(20, 20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While this \"matrix\" of pairwise scatterplots gives us accurate representations and visualizations of all the details of the dataset, it necessitates a lot of different plots to represent accurately the relationships of the four different feature variables (petal length, petal width, sepal length and sepal width).
\n", "\n", "However, it is possible to visualize the data samples in their entirety with one plot?" ] }, { "cell_type": "markdown", "metadata": { "id": "uW1kl0CJsyDC" }, "source": [ "Using the concept of _dimensionality reduction_ there is something we can do. We want to know, can we summarize the data in a way that dropping some of the dimensions only incurs a small inaccuracies, while enabling us to visualize the data?\n", "\n", "Recall from linear algebra that the rank-$d$ singular value decomposition of a matrix M is the rank $d$ matrix $\\hat M_d$ such that $\\|M - \\hat M_d \\|_F$ is minimized. The corresponding singular vectors in $\\mathbb{R}^D$ are called the (principal) components, while the singular vectors in $\\mathbb{R}^N$ are called the loadings---the process of generating and analyzing this data is called Principal Component Analysis (PCA, for mathematicians, [Chapter 10 of this book](https://mml-book.github.io/book/mml-book.pdf) is a great resource).\n", "\n", "Let's call the [PCA functionalities of scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html) and see how well we can do in just two or three dimensions." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "uBDCAvTEsyDD", "outputId": "b89b5b29-36ba-466a-849f-eb77f41e47b9" }, "outputs": [], "source": [ "from sklearn.decomposition import PCA\n", "\n", "pca = PCA()\n", "X_pca = pca.fit_transform(X.reshape(len(X),-1))\n", "print('Explained variance of top 3 components: ',pca.explained_variance_ratio_[:3])\n", "cumulative_variance_ratio = 100*np.cumsum(pca.explained_variance_ratio_)\n", "print('2 components captures %.4g%% of total variation.' % cumulative_variance_ratio[1])\n", "print('3 components captures %.4g%% of total variation.' % cumulative_variance_ratio[2])\n", "#print('99%% variance with %d components.'% 1+np.argmax(np.cumsum(pca.explained_variance_ratio_)>0.99))" ] }, { "cell_type": "markdown", "metadata": { "id": "7AZsSJHFsyDG" }, "source": [ "Now we can project the data on the first two coordinates." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "d6KSHBYNsyDI", "outputId": "b5099ab4-17bf-487d-9bcc-cbbc2f58bf62" }, "outputs": [], "source": [ "plt.title('Projection of data onto first two principal components')\n", "plt.scatter(*X_pca.T[:2])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "oo8DN3fIsyDJ" }, "source": [ "Now let's color the points by class." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "PITWnTBLsyDK", "outputId": "41a44808-6a4f-4b80-9459-ba3d83aa1941" }, "outputs": [], "source": [ "plt.title('Projection of data onto first two principal components')\n", "for lbl,i in [(\"Setosa\", 0), (\"Versicolour\", 1), (\"Virginica\", 2)]:\n", " plt.scatter(*X_pca.T[:2,y==i], label=lbl, s=10, alpha=1)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this point, please go back to the pairwise scatterplot visualizations we made above using seaborn.\n", "\n", "**_In which sense is this visualization fundamentally more powerful and generalizable_ than what we did above?**
**Discuss with your group.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer:" ] }, { "cell_type": "markdown", "metadata": { "id": "NMoBOH_JsyDM" }, "source": [ "We have seen that the first 3 principal components capture more than 99% of the variance. Using a 3D plot, we can also visualize the projection of the data onto the first 3 principal components." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 607 }, "id": "wmUUA7MrsyDN", "outputId": "15e2d489-18eb-4989-f69b-b11e1c9f9a31" }, "outputs": [], "source": [ "from mpl_toolkits.mplot3d import Axes3D\n", "fig = plt.figure(1, figsize=(8, 8))\n", "ax = Axes3D(fig, rect=[0, 0, 0.95, 1], elev=48, azim=134)\n", "plt.axes(ax)\n", "ax.set_title('Projection of data onto first three principal components')\n", "for lbl,i in [(\"Setosa\", 0), (\"Versicolour\", 1), (\"Virginica\", 2)]:\n", " ax.scatter(*X_pca.T[:3,y==i], label=lbl)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "-RRw1v85syDO" }, "source": [ "## Fashion MNIST\n", "\n", "Now we will consider the fashion MNIST dataset which we have also worked with in [Session 2](https://webpages.charlotte.edu/~ckuemme1/teaching/machinelearningworkshop2023/02-classification-nlp.html). We start by loading the data and visualising some examples." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 764, "referenced_widgets": [ "23713efad93f49a9a48a4a7ebc2972f5", "b45359ad77a84423a5df526937fa404d", "f60b26e8886e45f9be0da53a12ec8bd6", "d10c4b34eead4a259b48bf608c0d9c4b", "bfb53353189144bc8998649a5d1ad66a", "0b8906b9b93f4dacb9a473fe88920b94", "eb47cea4bb10466dbc7b736084605b25", "11015db19f904401b341d23fd8415a0c", "f6b10a859a2d4a168b191c71b086d9de", "0ad1c1547a934c5c9a2ef2c914128c88", "47e7874e8c4940fdb2472d6f846e0957", "e9eae25c9bb041ebbd0595536fa76073", "c809aa58146b48f4a7e6488a7958f471", "19cc976d64d542dcbb1d61f3a96cf261", "d6d919b59a9b458a84c6b2cb6c284855", "bdb6a0842ec24157b9f13425aaca30b4", "ef9eec5bafc34731b6198a3b7de009f3", "c1c3ae8a8804435f813cb39f39cd31a7", "8a438c5515d34c66846be20b5cdba2aa", "cef7ccf42faa47c6b1d1df520f3209ab", "a4461de6d3ed462c954b13192c25a633", "21e4a2a996d54e4c9fd8953edac6517c", "d428917077ed4c21a0ecce8b06aa1554", "bec54872e22d458c95041f086397260b", "cc76cdc8f8aa4c209d7bf030f432ddfa", "5e66b75c2f5d42fcba4d2feda463f275", "4173540a5c83433cbda35a360852df97", "037a0fd5f443457e9d3ce5bf6a808ed5", "6390914847484249b2873aafb77e9cfd", "8eb956db016d4f61bf979c6396fea2f0", "b2c0934e99964f31ba9e328d68c96e3d", "b397bfd056684c678e712e441da3dc7f", "fe4221019d3e4102afebd8d981b07035", "39a9dc477114491bb3096248fe86efc5", "74583a0f10054e84baff8cc7a25aaef8", "9cdea58f84e64069b43c361a7d920a65", "b9ae167330434477a4618b0609174595", "afe672ed49214ec9a6cfdf15d33f888f", "15a51e9b9e4c4a59bce7fe33a0888457", "f043581b899a4b5d821d85db722ecd3f", "c2c2b52652064817821e53241c45051b", "c65cb34a28c24e339459726d33e20bbc", "229221fa954340b2b717b51622903925", "a080568160b64753885d8fc6ca2479b0" ] }, "id": "Vwgk7iRKsyDO", "outputId": "e8164857-133d-4679-e148-73d670d42621" }, "outputs": [], "source": [ "import torchvision\n", "import torch\n", "import torchvision.transforms as transforms\n", "train_set = torchvision.datasets.FashionMNIST(root=\"./\", download=True, \n", " train=True,\n", " transform=transforms.Compose([transforms.ToTensor()]))\n", "\n", "test_set = torchvision.datasets.FashionMNIST(root=\"./\", download=True, \n", " train=False,\n", " transform=transforms.Compose([transforms.ToTensor()]))\n", "\n", "X_train = train_set.data.numpy()\n", "Y_train = train_set.targets.numpy()\n", "\n", "X_test = test_set.data.numpy()\n", "Y_test = test_set.targets.numpy()\n", "\n", "label_dict= {\n", "0 : \"tshirt\",\n", "1 : \"pants\",\n", "2 : \"sweater\",\n", "3 : \"dress\",\n", "4 : \"long sleeve\",\n", "5 : \"sandal\",\n", "6 : \"jacket\",\n", "7 : \"sneaker\",\n", "8 : \"bag\",\n", "9 : \"shoe\"}\n", "\n", "\n", "n_row = 3\n", "n_col = 5\n", "fsize = (12,10)\n", "\n", "fig, axs = plt.subplots(n_row, n_col, figsize=fsize)\n", "imgs = [ np.random.choice(np.argwhere(Y_train == i).flatten()) for i in range(10)]\n", "for i, ax, img in zip(label_dict, axs.ravel(), imgs):\n", " ax.set_title('%d: %s' % (i, label_dict[i]))\n", " ax.set_xticks([])\n", " ax.set_yticks([])\n", " ax.imshow(X_train[img], cmap='gray' )\n", "\n", "for ax in axs.ravel()[len(label_dict):]:\n", " ax.set_visible(False)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "-maslH6zsyDQ" }, "source": [ "In the previous classification tasks, we've had two main concerns with our datasets:\n", "* The dimension was a little too big, making running the algorithms (particularly K-NN) somewhat tedious\n", "* The class labels were a little iffy, particularly in the fashion dataset (are jackets and sweaters really distinguishable in these images?)\n", "\n", "Let's see if we can use PCA to throw away some number of dimensions without loss of classification accuracy. \n", "\n", "**Task: Implement PCA (using scikit-learn) on this dataset and compute:**\n", "- The explained variance of the top 5 components \n", "- The number of components that capture more than 99% of the variance" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "hJp7HocosyDR", "outputId": "19475e6d-9ceb-4d4f-befa-9c414763f52f" }, "outputs": [], "source": [ "### Write your code here\n", "pca = \n", "X_pca =" ] }, { "cell_type": "markdown", "metadata": { "id": "-LGP7z7OsyDS" }, "source": [ "When you have done that, you will see that we can certainly explain much more than $\\frac{2}{784}$ of the variance in the data by looking at the top two principal components (this is what we would expect by just dropping all but 2 of the $784=28*28$ features). \n", "\n", "Moreover, there we will see that there is a matrix with rank signficantly less than 784 that approximates our data matrix to within 1% in norm.\n", "\n", "Now let's look at the projection of the data onto the first two components." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "qpQ9yAtusyDS", "outputId": "b5d61361-acb5-4f47-8768-69380e1eb737" }, "outputs": [], "source": [ "plt.title('Projection of data onto first two coordinates')\n", "plt.scatter(*X_pca.T[:2])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "2losBZKjsyDT" }, "source": [ "Of course, it looks somewhat like a blob right now, so let's color the points by class." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "DnXCfRCvsyDU", "outputId": "8d5ba546-b784-4cce-9dcf-968485995acf" }, "outputs": [], "source": [ "plt.title('Projection of data onto first two coordinates')\n", "for i,lbl in label_dict.items():\n", " plt.scatter(*X_pca.T[:2,Y_train==i], label=lbl, s=10, alpha=0.5)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "3BquMcl0syDU" }, "source": [ "We can see that the points corresponding to each class do seem to be grouped together in this representation, but it's still a little difficult to see. Let's focus on two classes:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "YVOaINRHsyDV", "outputId": "05e98ab3-9eb9-44c3-d76f-97874aa7bf55" }, "outputs": [], "source": [ "class1 = 0 # Change these to view different classes\n", "class2 = 1\n", "plt.title('Projection of data onto first two coordinates')\n", "plt.scatter(*X_pca.T[:2,Y_train==class1], label=label_dict[class1])\n", "plt.scatter(*X_pca.T[:2,Y_train==class2], label=label_dict[class2])\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "CszQBLngsyDW" }, "source": [ "Depending on the classes you're looking at, you might see a clear difference in where the samples of the two classes lie in this 2D representation." ] }, { "cell_type": "markdown", "metadata": { "id": "xP4hQjfgsyDW" }, "source": [ "## Exercise\n", "\n", "Now let's see if we can revisit what we did yesterday and combine with our newly learnt technique for dimension reduction. We recall that when we tried to fit the classification models to this Fashion MNIST data, computational challenges arose and it took a considerable amount of time to work with some of the classifiers (even after subsampling of the pixels etc.).\n", "\n", "We intend explore whether we can obtain accurate predictions using features obtained by the projection provided by PCA on only few principal components. In this exercise, the goal is to implement the following: \n", "- Pick your favorite classification method among k-nearest neighbors, logistic regression and a support vector classifier (we did not cover the latter in the workshop; however, it is another popular supervised learning method, see for example [the explanations in the scikit-learn documentation](https://scikit-learn.org/stable/modules/svm.html)).\n", "- Run this classifier on the first 2, 5, 10 and 20 components of the data. \n", "- Compute the total variance captured by each number of components and plot the training and validation accuracies as a function of the number of components. \n", "- Make sure to compute the time it takes to run each model. If you have time left, you can run the classifier without dimensionality reduction to compare the running times of all implementations.\n", "- (Optional/Homework) Try the two other classification methods, and compare which result in the best prediction accuracy for a dimensionality reduction of fixed dimension." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "QKXt8n3hsyDX" }, "outputs": [], "source": [ "### Write your code here" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6hB6mTFSsyDf" }, "outputs": [], "source": [] } ], "metadata": { "colab": { "name": "PCA_sol.ipynb", "provenance": [] }, "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.9.13" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "037a0fd5f443457e9d3ce5bf6a808ed5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "0ad1c1547a934c5c9a2ef2c914128c88": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "0b8906b9b93f4dacb9a473fe88920b94": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "11015db19f904401b341d23fd8415a0c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "15a51e9b9e4c4a59bce7fe33a0888457": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "19cc976d64d542dcbb1d61f3a96cf261": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_c1c3ae8a8804435f813cb39f39cd31a7", "placeholder": "​", "style": "IPY_MODEL_ef9eec5bafc34731b6198a3b7de009f3", "value": "" } }, "21e4a2a996d54e4c9fd8953edac6517c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "229221fa954340b2b717b51622903925": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "23713efad93f49a9a48a4a7ebc2972f5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_f60b26e8886e45f9be0da53a12ec8bd6", "IPY_MODEL_d10c4b34eead4a259b48bf608c0d9c4b", "IPY_MODEL_bfb53353189144bc8998649a5d1ad66a" ], "layout": "IPY_MODEL_b45359ad77a84423a5df526937fa404d" } }, "39a9dc477114491bb3096248fe86efc5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_9cdea58f84e64069b43c361a7d920a65", "IPY_MODEL_b9ae167330434477a4618b0609174595", "IPY_MODEL_afe672ed49214ec9a6cfdf15d33f888f" ], "layout": "IPY_MODEL_74583a0f10054e84baff8cc7a25aaef8" } }, "4173540a5c83433cbda35a360852df97": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_fe4221019d3e4102afebd8d981b07035", "placeholder": "​", "style": "IPY_MODEL_b397bfd056684c678e712e441da3dc7f", "value": " 4422656/? [00:00<00:00, 7835305.30it/s]" } }, "47e7874e8c4940fdb2472d6f846e0957": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "5e66b75c2f5d42fcba4d2feda463f275": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_b2c0934e99964f31ba9e328d68c96e3d", "max": 4422102, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_8eb956db016d4f61bf979c6396fea2f0", "value": 4422102 } }, "6390914847484249b2873aafb77e9cfd": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "74583a0f10054e84baff8cc7a25aaef8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "8a438c5515d34c66846be20b5cdba2aa": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "8eb956db016d4f61bf979c6396fea2f0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "9cdea58f84e64069b43c361a7d920a65": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_f043581b899a4b5d821d85db722ecd3f", "placeholder": "​", "style": "IPY_MODEL_15a51e9b9e4c4a59bce7fe33a0888457", "value": "" } }, "a080568160b64753885d8fc6ca2479b0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "a4461de6d3ed462c954b13192c25a633": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "afe672ed49214ec9a6cfdf15d33f888f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_a080568160b64753885d8fc6ca2479b0", "placeholder": "​", "style": "IPY_MODEL_229221fa954340b2b717b51622903925", "value": " 6144/? [00:00<00:00, 104541.12it/s]" } }, "b2c0934e99964f31ba9e328d68c96e3d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "b397bfd056684c678e712e441da3dc7f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "b45359ad77a84423a5df526937fa404d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "b9ae167330434477a4618b0609174595": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_c65cb34a28c24e339459726d33e20bbc", "max": 5148, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_c2c2b52652064817821e53241c45051b", "value": 5148 } }, "bdb6a0842ec24157b9f13425aaca30b4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_21e4a2a996d54e4c9fd8953edac6517c", "placeholder": "​", "style": "IPY_MODEL_a4461de6d3ed462c954b13192c25a633", "value": " 29696/? [00:00<00:00, 87488.13it/s]" } }, "bec54872e22d458c95041f086397260b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "bfb53353189144bc8998649a5d1ad66a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_47e7874e8c4940fdb2472d6f846e0957", "placeholder": "​", "style": "IPY_MODEL_0ad1c1547a934c5c9a2ef2c914128c88", "value": " 26422272/? [00:01<00:00, 22508982.43it/s]" } }, "c1c3ae8a8804435f813cb39f39cd31a7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "c2c2b52652064817821e53241c45051b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "c65cb34a28c24e339459726d33e20bbc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "c809aa58146b48f4a7e6488a7958f471": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "cc76cdc8f8aa4c209d7bf030f432ddfa": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_6390914847484249b2873aafb77e9cfd", "placeholder": "​", "style": "IPY_MODEL_037a0fd5f443457e9d3ce5bf6a808ed5", "value": "" } }, "cef7ccf42faa47c6b1d1df520f3209ab": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "d10c4b34eead4a259b48bf608c0d9c4b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_f6b10a859a2d4a168b191c71b086d9de", "max": 26421880, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_11015db19f904401b341d23fd8415a0c", "value": 26421880 } }, "d428917077ed4c21a0ecce8b06aa1554": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_cc76cdc8f8aa4c209d7bf030f432ddfa", "IPY_MODEL_5e66b75c2f5d42fcba4d2feda463f275", "IPY_MODEL_4173540a5c83433cbda35a360852df97" ], "layout": "IPY_MODEL_bec54872e22d458c95041f086397260b" } }, "d6d919b59a9b458a84c6b2cb6c284855": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_cef7ccf42faa47c6b1d1df520f3209ab", "max": 29515, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_8a438c5515d34c66846be20b5cdba2aa", "value": 29515 } }, "e9eae25c9bb041ebbd0595536fa76073": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_19cc976d64d542dcbb1d61f3a96cf261", "IPY_MODEL_d6d919b59a9b458a84c6b2cb6c284855", "IPY_MODEL_bdb6a0842ec24157b9f13425aaca30b4" ], "layout": "IPY_MODEL_c809aa58146b48f4a7e6488a7958f471" } }, "eb47cea4bb10466dbc7b736084605b25": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "ef9eec5bafc34731b6198a3b7de009f3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "f043581b899a4b5d821d85db722ecd3f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "f60b26e8886e45f9be0da53a12ec8bd6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_eb47cea4bb10466dbc7b736084605b25", "placeholder": "​", "style": "IPY_MODEL_0b8906b9b93f4dacb9a473fe88920b94", "value": "" } }, "f6b10a859a2d4a168b191c71b086d9de": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "fe4221019d3e4102afebd8d981b07035": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } } } } }, "nbformat": 4, "nbformat_minor": 1 }