wiusdy commited on
Commit
629822e
1 Parent(s): 5dde576

adding the finetuning code

Browse files
Files changed (1) hide show
  1. VQA_FineTuning_Fashion_Datasets.ipynb +1647 -0
VQA_FineTuning_Fashion_Datasets.ipynb ADDED
@@ -0,0 +1,1647 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {
6
+ "id": "rAmJ-WxxjSC6"
7
+ },
8
+ "source": [
9
+ "# **BLIP model finetuing**\n",
10
+ "\n",
11
+ "**Datasets used**\n",
12
+ "\n",
13
+ "\n",
14
+ "\n",
15
+ "* [Control Net Deep Fashion](https://huggingface.co/datasets/ldhnam/deepfashion_controlnet)\n",
16
+ "* [Deep Fashion with masks](https://huggingface.co/datasets/SaffalPoosh/deepFashion-with-masks)\n",
17
+ "\n"
18
+ ]
19
+ },
20
+ {
21
+ "cell_type": "markdown",
22
+ "metadata": {
23
+ "id": "1loyolj_jI_p"
24
+ },
25
+ "source": [
26
+ "# Install Dependences\n",
27
+ "\n"
28
+ ]
29
+ },
30
+ {
31
+ "cell_type": "code",
32
+ "source": [
33
+ "from huggingface_hub import notebook_login\n",
34
+ "notebook_login()"
35
+ ],
36
+ "metadata": {
37
+ "colab": {
38
+ "base_uri": "https://localhost:8080/",
39
+ "height": 145,
40
+ "referenced_widgets": [
41
+ "fd2d3aac84e747ef9fea550ec9a7386d",
42
+ "f46eec389a6e465d9da7fe9645c163da",
43
+ "4710c57f77414948a8edffa923180ace",
44
+ "58454cbb731748bfaee3db0c9d5cf5ba",
45
+ "d2217d70e0de4cffb85cf30a0ece1e20",
46
+ "27a2a696724240e48db9158c814987e2",
47
+ "14e6340f96a24a83940a9ca94f91761d",
48
+ "340c0254c799476bb777f06c13e0c476",
49
+ "370ca959de5a4feebb621526c9b76930",
50
+ "924ac284fa5a464aab90941d2de37d1d",
51
+ "dd7aa4800af947db98784af70affa906",
52
+ "2eae6964b0514deb8a986032cfa703a0",
53
+ "34e88b7e493e4d698756bece63d043a3",
54
+ "a51bf2e26c734146ae8fba179d2aa4aa",
55
+ "6272895bedcc4dab9594b030145a6e9d",
56
+ "585b25543d6d4971a19e5644b05d89dc",
57
+ "e648bf12632a4c078068d55134187b46",
58
+ "76f74f8572f84c3188ce30f1b9f308c5",
59
+ "b1c6914c9cff47e9908188a1744f7242",
60
+ "02ed82d4297d438f97b8d7481f519eee",
61
+ "076f54dc01d944dcb4b17420752870af",
62
+ "f866447196b749f884b03e648db8eded",
63
+ "696e1a134d374285817e46f42e03504d",
64
+ "4a13efd8cad04bfc971a48075fc9851e",
65
+ "a4e6776e1057449a8e525a499f88c784",
66
+ "77388a40adf04e0aa74542142c37c86b",
67
+ "e9f36b0a9578425b91af01e16b34fcf1",
68
+ "b07e98e4cc344be193a2da7e04f72bec",
69
+ "00245c5c3d9243b187b4e701e7557c5b",
70
+ "27a2b90344e54755a7cad4968ca8f350",
71
+ "8956f48644fc410c8707a6aef3dc3a86",
72
+ "318e896402ba44e0b73f45aa2d869592"
73
+ ]
74
+ },
75
+ "id": "IF2wU1arJRPk",
76
+ "outputId": "a507c47f-46d9-40eb-87c2-fe4a95b789f1"
77
+ },
78
+ "execution_count": 1,
79
+ "outputs": [
80
+ {
81
+ "output_type": "display_data",
82
+ "data": {
83
+ "text/plain": [
84
+ "VBox(children=(HTML(value='<center> <img\\nsrc=https://huggingface.co/front/assets/huggingface_logo-noborder.sv…"
85
+ ],
86
+ "application/vnd.jupyter.widget-view+json": {
87
+ "version_major": 2,
88
+ "version_minor": 0,
89
+ "model_id": "fd2d3aac84e747ef9fea550ec9a7386d"
90
+ }
91
+ },
92
+ "metadata": {}
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ "cell_type": "code",
98
+ "execution_count": null,
99
+ "metadata": {
100
+ "colab": {
101
+ "base_uri": "https://localhost:8080/"
102
+ },
103
+ "id": "n4UvOghEh7IZ",
104
+ "outputId": "49734576-beed-4d19-e837-b445fba4861c"
105
+ },
106
+ "outputs": [
107
+ {
108
+ "output_type": "stream",
109
+ "name": "stdout",
110
+ "text": [
111
+ "Requirement already satisfied: transformers in /usr/local/lib/python3.10/dist-packages (4.35.2)\n",
112
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.13.1)\n",
113
+ "Requirement already satisfied: huggingface-hub<1.0,>=0.16.4 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.20.3)\n",
114
+ "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.23.5)\n",
115
+ "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (23.2)\n",
116
+ "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0.1)\n",
117
+ "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2023.12.25)\n",
118
+ "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.31.0)\n",
119
+ "Requirement already satisfied: tokenizers<0.19,>=0.14 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.15.1)\n",
120
+ "Requirement already satisfied: safetensors>=0.3.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.4.2)\n",
121
+ "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers) (4.66.1)\n",
122
+ "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.16.4->transformers) (2023.6.0)\n",
123
+ "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.16.4->transformers) (4.9.0)\n",
124
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.3.2)\n",
125
+ "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.6)\n",
126
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.0.7)\n",
127
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2024.2.2)\n",
128
+ "Requirement already satisfied: datasets in /usr/local/lib/python3.10/dist-packages (2.17.0)\n",
129
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from datasets) (3.13.1)\n",
130
+ "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from datasets) (1.23.5)\n",
131
+ "Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (15.0.0)\n",
132
+ "Requirement already satisfied: pyarrow-hotfix in /usr/local/lib/python3.10/dist-packages (from datasets) (0.6)\n",
133
+ "Requirement already satisfied: dill<0.3.9,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (0.3.8)\n",
134
+ "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from datasets) (1.5.3)\n",
135
+ "Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (2.31.0)\n",
136
+ "Requirement already satisfied: tqdm>=4.62.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (4.66.1)\n",
137
+ "Requirement already satisfied: xxhash in /usr/local/lib/python3.10/dist-packages (from datasets) (3.4.1)\n",
138
+ "Requirement already satisfied: multiprocess in /usr/local/lib/python3.10/dist-packages (from datasets) (0.70.16)\n",
139
+ "Requirement already satisfied: fsspec[http]<=2023.10.0,>=2023.1.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (2023.6.0)\n",
140
+ "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from datasets) (3.9.3)\n",
141
+ "Requirement already satisfied: huggingface-hub>=0.19.4 in /usr/local/lib/python3.10/dist-packages (from datasets) (0.20.3)\n",
142
+ "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from datasets) (23.2)\n",
143
+ "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (6.0.1)\n",
144
+ "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.3.1)\n",
145
+ "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (23.2.0)\n",
146
+ "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.4.1)\n",
147
+ "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (6.0.5)\n",
148
+ "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.9.4)\n",
149
+ "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (4.0.3)\n",
150
+ "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.4->datasets) (4.9.0)\n",
151
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (3.3.2)\n",
152
+ "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (3.6)\n",
153
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (2.0.7)\n",
154
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (2024.2.2)\n",
155
+ "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2.8.2)\n",
156
+ "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2023.4)\n",
157
+ "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas->datasets) (1.16.0)\n"
158
+ ]
159
+ }
160
+ ],
161
+ "source": [
162
+ "!pip install transformers\n",
163
+ "!pip install datasets\n",
164
+ "!pip install 'transformers[torch]'\n",
165
+ "!pip install 'transformers[tf-cpu]'\n",
166
+ "!pip install 'transformers[flax]'"
167
+ ]
168
+ },
169
+ {
170
+ "cell_type": "markdown",
171
+ "metadata": {
172
+ "id": "LxSR-PEwDLkE"
173
+ },
174
+ "source": [
175
+ "**Testing the imports**"
176
+ ]
177
+ },
178
+ {
179
+ "cell_type": "markdown",
180
+ "metadata": {
181
+ "id": "Nt1jz4F-knoM"
182
+ },
183
+ "source": [
184
+ "**Loading the datasets**"
185
+ ]
186
+ },
187
+ {
188
+ "cell_type": "code",
189
+ "execution_count": null,
190
+ "metadata": {
191
+ "id": "RJDHNaqZkEqY"
192
+ },
193
+ "outputs": [],
194
+ "source": [
195
+ "from datasets import load_dataset"
196
+ ]
197
+ },
198
+ {
199
+ "cell_type": "code",
200
+ "execution_count": null,
201
+ "metadata": {
202
+ "id": "89tsRz5pj2fh"
203
+ },
204
+ "outputs": [],
205
+ "source": [
206
+ "saffal_possh_df = load_dataset(\"SaffalPoosh/deepFashion-with-masks\")"
207
+ ]
208
+ },
209
+ {
210
+ "cell_type": "code",
211
+ "execution_count": null,
212
+ "metadata": {
213
+ "id": "cP4KZxObk0Zk"
214
+ },
215
+ "outputs": [],
216
+ "source": [
217
+ "# Checking a simple sample from the dataset\n",
218
+ "for data in saffal_possh_df.items():\n",
219
+ " print(data[1][\"gender\"])\n",
220
+ " print(data[1][\"cloth_type\"])\n",
221
+ " print(data[1][\"caption\"])\n"
222
+ ]
223
+ },
224
+ {
225
+ "cell_type": "code",
226
+ "execution_count": null,
227
+ "metadata": {
228
+ "id": "7euwilYIkWl3"
229
+ },
230
+ "outputs": [],
231
+ "source": [
232
+ "control_net_deep_fashion = load_dataset(\"ldhnam/deepfashion_controlnet\")"
233
+ ]
234
+ },
235
+ {
236
+ "cell_type": "code",
237
+ "execution_count": null,
238
+ "metadata": {
239
+ "id": "wTHcR1LYk7Wq"
240
+ },
241
+ "outputs": [],
242
+ "source": [
243
+ "# Checking a simple sample from the dataset\n",
244
+ "for data in control_net_deep_fashion.items():\n",
245
+ " print(data[1][\"caption\"])\n"
246
+ ]
247
+ },
248
+ {
249
+ "cell_type": "markdown",
250
+ "metadata": {
251
+ "id": "qf8n3B5e2Hnb"
252
+ },
253
+ "source": [
254
+ "# **Pseudo-label and Pseudo-Questions**\n",
255
+ "\n"
256
+ ]
257
+ },
258
+ {
259
+ "cell_type": "code",
260
+ "execution_count": null,
261
+ "metadata": {
262
+ "id": "hjwwKCCiQLlZ"
263
+ },
264
+ "outputs": [],
265
+ "source": [
266
+ "from transformers import AutoTokenizer, AutoModelForSeq2SeqLM\n",
267
+ "\n",
268
+ "\n",
269
+ "tokenizer = AutoTokenizer.from_pretrained(\"potsawee/t5-large-generation-squad-QuestionAnswer\")\n",
270
+ "model = AutoModelForSeq2SeqLM.from_pretrained(\"potsawee/t5-large-generation-squad-QuestionAnswer\")"
271
+ ]
272
+ },
273
+ {
274
+ "cell_type": "code",
275
+ "execution_count": null,
276
+ "metadata": {
277
+ "id": "bygZiKk22T1V"
278
+ },
279
+ "outputs": [],
280
+ "source": [
281
+ "from tqdm import tqdm\n",
282
+ "import numpy as np\n",
283
+ "\n",
284
+ "action_key_words = [\"in\", \"wearing\", \"standing\", \"is wearing\",\n",
285
+ " \"posing\", \"sitting\", \"walking\", \"carrying\",\n",
286
+ " \"leaning\"]\n",
287
+ "\n",
288
+ "# creating pseudo questions\n",
289
+ "def create_pseudo_questions_for_saffal_possh(data, size=200):\n",
290
+ " dataset_selection = data[\"train\"][0: size]\n",
291
+ " questions = []\n",
292
+ " answers = []\n",
293
+ " images = []\n",
294
+ " input_ids = []\n",
295
+ "\n",
296
+ " print(\"Loading the dataset..\")\n",
297
+ "\n",
298
+ " sample_id = 0\n",
299
+ "\n",
300
+ " for key, sample in dataset_selection.items():\n",
301
+ " if key == \"caption\":\n",
302
+ " for caption in tqdm(sample):\n",
303
+ " caption_tokens = caption.split(\" \")\n",
304
+ " if caption_tokens[2] in action_key_words:\n",
305
+ "\n",
306
+ " inputs = tokenizer(caption, return_tensors=\"pt\")\n",
307
+ " outputs = model.generate(**inputs, max_length=100)\n",
308
+ " question_answer = tokenizer.decode(outputs[0], skip_special_tokens=False)\n",
309
+ " question_answer = question_answer.replace(tokenizer.pad_token, \"\").replace(tokenizer.eos_token, \"\")\n",
310
+ " question, answer = question_answer.split(tokenizer.sep_token)\n",
311
+ "\n",
312
+ " questions.append(question)\n",
313
+ " answers.append(answer)\n",
314
+ " input_ids.append(sample_id)\n",
315
+ " else:\n",
316
+ " questions.append(\"Is there a person in the image?\")\n",
317
+ " answers.append(\"Yes, there it is\")\n",
318
+ " input_ids.append(sample_id)\n",
319
+ " sample_id += 1\n",
320
+ "\n",
321
+ " dataset_selection[\"questions\"] = questions\n",
322
+ " dataset_selection[\"answers\"] = answers\n",
323
+ " dataset_selection[\"input_ids\"] = input_ids\n",
324
+ "\n",
325
+ "\n",
326
+ " return dataset_selection\n",
327
+ "\n",
328
+ "saffal_possh_df_processed = create_pseudo_questions_for_saffal_possh(saffal_possh_df)\n",
329
+ "print(saffal_possh_df_processed)\n",
330
+ "\n",
331
+ "control_net_deep_fashion_processed = create_pseudo_questions_for_saffal_possh(control_net_deep_fashion)\n",
332
+ "print(control_net_deep_fashion_processed)\n"
333
+ ]
334
+ },
335
+ {
336
+ "cell_type": "code",
337
+ "execution_count": null,
338
+ "metadata": {
339
+ "id": "P3dxkODty-Vl"
340
+ },
341
+ "outputs": [],
342
+ "source": [
343
+ "from datasets import Dataset\n",
344
+ "\n",
345
+ "saffal_dataset = Dataset.from_dict(saffal_possh_df_processed)\n",
346
+ "control_net_dataset = Dataset.from_dict(control_net_deep_fashion_processed)\n",
347
+ "\n",
348
+ "print(saffal_dataset)\n",
349
+ "print(control_net_dataset)"
350
+ ]
351
+ },
352
+ {
353
+ "cell_type": "code",
354
+ "execution_count": null,
355
+ "metadata": {
356
+ "id": "ak_doWyi8cZs"
357
+ },
358
+ "outputs": [],
359
+ "source": [
360
+ "saffal_dataset = saffal_dataset.remove_columns([\"gender\", \"pose\", \"cloth_type\", \"pid\", \"mask\", \"mask_overlay\", \"caption\"])\n",
361
+ "control_net_dataset = control_net_dataset.remove_columns([\"openpose\", \"cloth\", \"caption\"])"
362
+ ]
363
+ },
364
+ {
365
+ "cell_type": "code",
366
+ "execution_count": null,
367
+ "metadata": {
368
+ "id": "0tn4Sb0Z80Iz"
369
+ },
370
+ "outputs": [],
371
+ "source": [
372
+ "print(saffal_dataset)\n",
373
+ "print(control_net_dataset)"
374
+ ]
375
+ },
376
+ {
377
+ "cell_type": "code",
378
+ "execution_count": null,
379
+ "metadata": {
380
+ "id": "ao9xvSJM9PW6"
381
+ },
382
+ "outputs": [],
383
+ "source": [
384
+ "from PIL import Image\n",
385
+ "\n",
386
+ "image = saffal_dataset['images'][0]\n",
387
+ "image"
388
+ ]
389
+ },
390
+ {
391
+ "cell_type": "code",
392
+ "execution_count": null,
393
+ "metadata": {
394
+ "id": "x0jzKEAZ9T4b"
395
+ },
396
+ "outputs": [],
397
+ "source": [
398
+ "image = control_net_dataset['image'][0]\n",
399
+ "image"
400
+ ]
401
+ },
402
+ {
403
+ "cell_type": "markdown",
404
+ "metadata": {
405
+ "id": "NY64HtXa3xgz"
406
+ },
407
+ "source": [
408
+ "**Structuring the dataset for Pytorch model train**"
409
+ ]
410
+ },
411
+ {
412
+ "cell_type": "code",
413
+ "source": [
414
+ "import torch\n",
415
+ "\n",
416
+ "# creating the dataset structure and model train based in\n",
417
+ "# https://github.com/dino-chiio/blip-vqa-finetune/blob/main/finetuning.py\n",
418
+ "\n",
419
+ "class GenericFashionDataset(torch.utils.data.Dataset):\n",
420
+ " \"\"\"VQA (v2) dataset.\"\"\"\n",
421
+ "\n",
422
+ " def __init__(self, dataset, processor):\n",
423
+ " self.dataset = dataset\n",
424
+ " self.processor = processor\n",
425
+ "\n",
426
+ " def __len__(self):\n",
427
+ " return len(self.dataset)\n",
428
+ "\n",
429
+ " def __getitem__(self, idx):\n",
430
+ " question = self.dataset['questions'][idx]\n",
431
+ " answer = self.dataset['answers'][idx]\n",
432
+ " image_id = self.dataset['input_ids'][idx]\n",
433
+ " try:\n",
434
+ " image = self.dataset['images'][idx]\n",
435
+ " except:\n",
436
+ " image = self.dataset['image'][idx]\n",
437
+ " text = question\n",
438
+ "\n",
439
+ " encoding = self.processor(image, text, padding=\"max_length\", truncation=True, return_tensors=\"pt\")\n",
440
+ " labels = self.processor.tokenizer.encode(\n",
441
+ " answer, max_length= 8, pad_to_max_length=True, return_tensors='pt'\n",
442
+ " )\n",
443
+ " encoding[\"labels\"] = labels\n",
444
+ "\n",
445
+ " for k,v in encoding.items(): encoding[k] = v.squeeze()\n",
446
+ " return encoding"
447
+ ],
448
+ "metadata": {
449
+ "id": "3LEmVCwdrC_Q"
450
+ },
451
+ "execution_count": null,
452
+ "outputs": []
453
+ },
454
+ {
455
+ "cell_type": "code",
456
+ "source": [
457
+ "from transformers import BlipProcessor, BlipForQuestionAnswering\n",
458
+ "\n",
459
+ "model = BlipForQuestionAnswering.from_pretrained(\"Salesforce/blip-vqa-base\")\n",
460
+ "processor = BlipProcessor.from_pretrained(\"Salesforce/blip-vqa-base\")\n",
461
+ "\n",
462
+ "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
463
+ "model.to(device)"
464
+ ],
465
+ "metadata": {
466
+ "id": "_rusAJj3q7T9"
467
+ },
468
+ "execution_count": null,
469
+ "outputs": []
470
+ },
471
+ {
472
+ "cell_type": "code",
473
+ "source": [
474
+ "saffal_train_dataset = GenericFashionDataset(dataset=saffal_dataset, processor=processor)\n",
475
+ "control_net_train_dataset = GenericFashionDataset(dataset=control_net_dataset, processor=processor)"
476
+ ],
477
+ "metadata": {
478
+ "id": "s9NCVsHlWSi0"
479
+ },
480
+ "execution_count": null,
481
+ "outputs": []
482
+ },
483
+ {
484
+ "cell_type": "code",
485
+ "source": [
486
+ "from torch.utils.data import DataLoader\n",
487
+ "\n",
488
+ "batch_size = 2\n",
489
+ "\n",
490
+ "saffal_train_dataloader = DataLoader(saffal_train_dataset, batch_size=batch_size, shuffle=False, pin_memory=True)\n",
491
+ "control_net_train_dataloader = DataLoader(control_net_train_dataset, batch_size=batch_size, shuffle=False, pin_memory=True)"
492
+ ],
493
+ "metadata": {
494
+ "id": "iET_OYWQWqsR"
495
+ },
496
+ "execution_count": null,
497
+ "outputs": []
498
+ },
499
+ {
500
+ "cell_type": "markdown",
501
+ "metadata": {
502
+ "id": "lsL4fxFknYwG"
503
+ },
504
+ "source": [
505
+ "# **Model Train**\n",
506
+ "\n",
507
+ "\n",
508
+ "deepFashion-with-masks**"
509
+ ]
510
+ },
511
+ {
512
+ "cell_type": "code",
513
+ "source": [
514
+ "def train_model(data_loader, num_epochs=50, patience=5):\n",
515
+ " optimizer = torch.optim.AdamW(model.parameters(), lr=4e-5)\n",
516
+ " scheduler = torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma=0.9, last_epoch=-1, verbose=False)\n",
517
+ "\n",
518
+ " information = []\n",
519
+ " scaler = torch.cuda.amp.GradScaler()\n",
520
+ "\n",
521
+ " for epoch in range(num_epochs):\n",
522
+ " epoch_loss = 0\n",
523
+ " model.train()\n",
524
+ " for idx, batch in zip(tqdm(range(len(data_loader)), desc='Training batch: ...'), data_loader):\n",
525
+ " input_ids = batch.pop('input_ids').to(device)\n",
526
+ " pixel_values = batch.pop('pixel_values').to(device)\n",
527
+ " labels = batch.pop('labels').to(device)\n",
528
+ "\n",
529
+ " with torch.amp.autocast(device_type='cuda', dtype=torch.float16):\n",
530
+ " outputs = model(input_ids=input_ids,\n",
531
+ " pixel_values=pixel_values,\n",
532
+ " labels=labels)\n",
533
+ "\n",
534
+ " loss = outputs.loss\n",
535
+ " epoch_loss += loss.item()\n",
536
+ " optimizer.zero_grad()\n",
537
+ "\n",
538
+ " scaler.scale(loss).backward()\n",
539
+ " scaler.step(optimizer)\n",
540
+ " scaler.update()\n",
541
+ "\n",
542
+ " information.append((epoch_loss/len(saffal_train_dataloader), optimizer.param_groups[0][\"lr\"]))\n",
543
+ " print(\"Epoch: {} - Training loss: {} - LR: {}\".format(epoch+1, epoch_loss/len(saffal_train_dataloader), optimizer.param_groups[0][\"lr\"]))\n",
544
+ " scheduler.step()\n",
545
+ " return model, information\n"
546
+ ],
547
+ "metadata": {
548
+ "id": "Xllczl5lYAPk"
549
+ },
550
+ "execution_count": null,
551
+ "outputs": []
552
+ },
553
+ {
554
+ "cell_type": "markdown",
555
+ "source": [
556
+ "**Training a model for Saffal Dataset**"
557
+ ],
558
+ "metadata": {
559
+ "id": "VgNBleRlZlKi"
560
+ }
561
+ },
562
+ {
563
+ "cell_type": "code",
564
+ "source": [
565
+ "model, information = train_model(saffal_train_dataloader, num_epochs=1)"
566
+ ],
567
+ "metadata": {
568
+ "id": "eePu8scwZHn6"
569
+ },
570
+ "execution_count": null,
571
+ "outputs": []
572
+ },
573
+ {
574
+ "cell_type": "code",
575
+ "source": [
576
+ "import pickle as pk\n",
577
+ "\n",
578
+ "model_path = \"/content/drive/MyDrive/Hvar/saffal_fashion_model.pt\"\n",
579
+ "model.save_pretrained(model_path, from_pt=True) #saving in the drive\n",
580
+ "\n",
581
+ "results_path = \"/content/drive/MyDrive/Hvar/saffal_fashion_model_train.pkl\"\n",
582
+ "pk.dump(information, open(results_path, \"wb\"))"
583
+ ],
584
+ "metadata": {
585
+ "id": "PdbvNJ8CXXIJ"
586
+ },
587
+ "execution_count": null,
588
+ "outputs": []
589
+ },
590
+ {
591
+ "cell_type": "markdown",
592
+ "source": [
593
+ "**Pusing model to hugging face**"
594
+ ],
595
+ "metadata": {
596
+ "id": "IXNkTzVfaHZC"
597
+ }
598
+ },
599
+ {
600
+ "cell_type": "code",
601
+ "source": [
602
+ "model_repo_name = \"wiusdy/blip_pretrained_saffal_fashion_finetuning\"\n",
603
+ "model.push_to_hub(model_repo_name)"
604
+ ],
605
+ "metadata": {
606
+ "id": "eZ6_yM02aKoO"
607
+ },
608
+ "execution_count": null,
609
+ "outputs": []
610
+ },
611
+ {
612
+ "cell_type": "markdown",
613
+ "source": [
614
+ "**Training a dataset for Control Net dataset**"
615
+ ],
616
+ "metadata": {
617
+ "id": "vvsoYZdIZoj-"
618
+ }
619
+ },
620
+ {
621
+ "cell_type": "code",
622
+ "source": [
623
+ "model, information = train_model(control_net_train_dataloader, num_epochs=1)"
624
+ ],
625
+ "metadata": {
626
+ "id": "gNuRYjwyZr40"
627
+ },
628
+ "execution_count": null,
629
+ "outputs": []
630
+ },
631
+ {
632
+ "cell_type": "code",
633
+ "source": [
634
+ "model_path = \"/content/drive/MyDrive/Hvar/control_net_fashion_model.pt\"\n",
635
+ "model.save_pretrained(model_path, from_pt=True) #saving in the drive\n",
636
+ "\n",
637
+ "results_path = \"/content/drive/MyDrive/Hvar/control_net_fashion_model_train.pkl\"\n",
638
+ "pk.dump(information, open(results_path, \"wb\"))"
639
+ ],
640
+ "metadata": {
641
+ "id": "858Qld6fZt3U"
642
+ },
643
+ "execution_count": null,
644
+ "outputs": []
645
+ },
646
+ {
647
+ "cell_type": "markdown",
648
+ "source": [
649
+ "**Pushing model to hugging face**"
650
+ ],
651
+ "metadata": {
652
+ "id": "xyUZlTRmaMhl"
653
+ }
654
+ },
655
+ {
656
+ "cell_type": "code",
657
+ "source": [
658
+ "model_repo_name = \"wiusdy/blip_pretrained_control_net_fashion_finetuning\"\n",
659
+ "model.push_to_hub(model_repo_name)"
660
+ ],
661
+ "metadata": {
662
+ "id": "TFRuT5V8aOvm"
663
+ },
664
+ "execution_count": null,
665
+ "outputs": []
666
+ }
667
+ ],
668
+ "metadata": {
669
+ "accelerator": "GPU",
670
+ "colab": {
671
+ "provenance": []
672
+ },
673
+ "kernelspec": {
674
+ "display_name": "Python 3",
675
+ "name": "python3"
676
+ },
677
+ "language_info": {
678
+ "name": "python"
679
+ },
680
+ "widgets": {
681
+ "application/vnd.jupyter.widget-state+json": {
682
+ "fd2d3aac84e747ef9fea550ec9a7386d": {
683
+ "model_module": "@jupyter-widgets/controls",
684
+ "model_name": "VBoxModel",
685
+ "model_module_version": "1.5.0",
686
+ "state": {
687
+ "_dom_classes": [],
688
+ "_model_module": "@jupyter-widgets/controls",
689
+ "_model_module_version": "1.5.0",
690
+ "_model_name": "VBoxModel",
691
+ "_view_count": null,
692
+ "_view_module": "@jupyter-widgets/controls",
693
+ "_view_module_version": "1.5.0",
694
+ "_view_name": "VBoxView",
695
+ "box_style": "",
696
+ "children": [
697
+ "IPY_MODEL_076f54dc01d944dcb4b17420752870af",
698
+ "IPY_MODEL_f866447196b749f884b03e648db8eded",
699
+ "IPY_MODEL_696e1a134d374285817e46f42e03504d",
700
+ "IPY_MODEL_4a13efd8cad04bfc971a48075fc9851e"
701
+ ],
702
+ "layout": "IPY_MODEL_14e6340f96a24a83940a9ca94f91761d"
703
+ }
704
+ },
705
+ "f46eec389a6e465d9da7fe9645c163da": {
706
+ "model_module": "@jupyter-widgets/controls",
707
+ "model_name": "HTMLModel",
708
+ "model_module_version": "1.5.0",
709
+ "state": {
710
+ "_dom_classes": [],
711
+ "_model_module": "@jupyter-widgets/controls",
712
+ "_model_module_version": "1.5.0",
713
+ "_model_name": "HTMLModel",
714
+ "_view_count": null,
715
+ "_view_module": "@jupyter-widgets/controls",
716
+ "_view_module_version": "1.5.0",
717
+ "_view_name": "HTMLView",
718
+ "description": "",
719
+ "description_tooltip": null,
720
+ "layout": "IPY_MODEL_340c0254c799476bb777f06c13e0c476",
721
+ "placeholder": "​",
722
+ "style": "IPY_MODEL_370ca959de5a4feebb621526c9b76930",
723
+ "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>"
724
+ }
725
+ },
726
+ "4710c57f77414948a8edffa923180ace": {
727
+ "model_module": "@jupyter-widgets/controls",
728
+ "model_name": "PasswordModel",
729
+ "model_module_version": "1.5.0",
730
+ "state": {
731
+ "_dom_classes": [],
732
+ "_model_module": "@jupyter-widgets/controls",
733
+ "_model_module_version": "1.5.0",
734
+ "_model_name": "PasswordModel",
735
+ "_view_count": null,
736
+ "_view_module": "@jupyter-widgets/controls",
737
+ "_view_module_version": "1.5.0",
738
+ "_view_name": "PasswordView",
739
+ "continuous_update": true,
740
+ "description": "Token:",
741
+ "description_tooltip": null,
742
+ "disabled": false,
743
+ "layout": "IPY_MODEL_924ac284fa5a464aab90941d2de37d1d",
744
+ "placeholder": "​",
745
+ "style": "IPY_MODEL_dd7aa4800af947db98784af70affa906",
746
+ "value": ""
747
+ }
748
+ },
749
+ "58454cbb731748bfaee3db0c9d5cf5ba": {
750
+ "model_module": "@jupyter-widgets/controls",
751
+ "model_name": "CheckboxModel",
752
+ "model_module_version": "1.5.0",
753
+ "state": {
754
+ "_dom_classes": [],
755
+ "_model_module": "@jupyter-widgets/controls",
756
+ "_model_module_version": "1.5.0",
757
+ "_model_name": "CheckboxModel",
758
+ "_view_count": null,
759
+ "_view_module": "@jupyter-widgets/controls",
760
+ "_view_module_version": "1.5.0",
761
+ "_view_name": "CheckboxView",
762
+ "description": "Add token as git credential?",
763
+ "description_tooltip": null,
764
+ "disabled": false,
765
+ "indent": true,
766
+ "layout": "IPY_MODEL_2eae6964b0514deb8a986032cfa703a0",
767
+ "style": "IPY_MODEL_34e88b7e493e4d698756bece63d043a3",
768
+ "value": true
769
+ }
770
+ },
771
+ "d2217d70e0de4cffb85cf30a0ece1e20": {
772
+ "model_module": "@jupyter-widgets/controls",
773
+ "model_name": "ButtonModel",
774
+ "model_module_version": "1.5.0",
775
+ "state": {
776
+ "_dom_classes": [],
777
+ "_model_module": "@jupyter-widgets/controls",
778
+ "_model_module_version": "1.5.0",
779
+ "_model_name": "ButtonModel",
780
+ "_view_count": null,
781
+ "_view_module": "@jupyter-widgets/controls",
782
+ "_view_module_version": "1.5.0",
783
+ "_view_name": "ButtonView",
784
+ "button_style": "",
785
+ "description": "Login",
786
+ "disabled": false,
787
+ "icon": "",
788
+ "layout": "IPY_MODEL_a51bf2e26c734146ae8fba179d2aa4aa",
789
+ "style": "IPY_MODEL_6272895bedcc4dab9594b030145a6e9d",
790
+ "tooltip": ""
791
+ }
792
+ },
793
+ "27a2a696724240e48db9158c814987e2": {
794
+ "model_module": "@jupyter-widgets/controls",
795
+ "model_name": "HTMLModel",
796
+ "model_module_version": "1.5.0",
797
+ "state": {
798
+ "_dom_classes": [],
799
+ "_model_module": "@jupyter-widgets/controls",
800
+ "_model_module_version": "1.5.0",
801
+ "_model_name": "HTMLModel",
802
+ "_view_count": null,
803
+ "_view_module": "@jupyter-widgets/controls",
804
+ "_view_module_version": "1.5.0",
805
+ "_view_name": "HTMLView",
806
+ "description": "",
807
+ "description_tooltip": null,
808
+ "layout": "IPY_MODEL_585b25543d6d4971a19e5644b05d89dc",
809
+ "placeholder": "​",
810
+ "style": "IPY_MODEL_e648bf12632a4c078068d55134187b46",
811
+ "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>"
812
+ }
813
+ },
814
+ "14e6340f96a24a83940a9ca94f91761d": {
815
+ "model_module": "@jupyter-widgets/base",
816
+ "model_name": "LayoutModel",
817
+ "model_module_version": "1.2.0",
818
+ "state": {
819
+ "_model_module": "@jupyter-widgets/base",
820
+ "_model_module_version": "1.2.0",
821
+ "_model_name": "LayoutModel",
822
+ "_view_count": null,
823
+ "_view_module": "@jupyter-widgets/base",
824
+ "_view_module_version": "1.2.0",
825
+ "_view_name": "LayoutView",
826
+ "align_content": null,
827
+ "align_items": "center",
828
+ "align_self": null,
829
+ "border": null,
830
+ "bottom": null,
831
+ "display": "flex",
832
+ "flex": null,
833
+ "flex_flow": "column",
834
+ "grid_area": null,
835
+ "grid_auto_columns": null,
836
+ "grid_auto_flow": null,
837
+ "grid_auto_rows": null,
838
+ "grid_column": null,
839
+ "grid_gap": null,
840
+ "grid_row": null,
841
+ "grid_template_areas": null,
842
+ "grid_template_columns": null,
843
+ "grid_template_rows": null,
844
+ "height": null,
845
+ "justify_content": null,
846
+ "justify_items": null,
847
+ "left": null,
848
+ "margin": null,
849
+ "max_height": null,
850
+ "max_width": null,
851
+ "min_height": null,
852
+ "min_width": null,
853
+ "object_fit": null,
854
+ "object_position": null,
855
+ "order": null,
856
+ "overflow": null,
857
+ "overflow_x": null,
858
+ "overflow_y": null,
859
+ "padding": null,
860
+ "right": null,
861
+ "top": null,
862
+ "visibility": null,
863
+ "width": "50%"
864
+ }
865
+ },
866
+ "340c0254c799476bb777f06c13e0c476": {
867
+ "model_module": "@jupyter-widgets/base",
868
+ "model_name": "LayoutModel",
869
+ "model_module_version": "1.2.0",
870
+ "state": {
871
+ "_model_module": "@jupyter-widgets/base",
872
+ "_model_module_version": "1.2.0",
873
+ "_model_name": "LayoutModel",
874
+ "_view_count": null,
875
+ "_view_module": "@jupyter-widgets/base",
876
+ "_view_module_version": "1.2.0",
877
+ "_view_name": "LayoutView",
878
+ "align_content": null,
879
+ "align_items": null,
880
+ "align_self": null,
881
+ "border": null,
882
+ "bottom": null,
883
+ "display": null,
884
+ "flex": null,
885
+ "flex_flow": null,
886
+ "grid_area": null,
887
+ "grid_auto_columns": null,
888
+ "grid_auto_flow": null,
889
+ "grid_auto_rows": null,
890
+ "grid_column": null,
891
+ "grid_gap": null,
892
+ "grid_row": null,
893
+ "grid_template_areas": null,
894
+ "grid_template_columns": null,
895
+ "grid_template_rows": null,
896
+ "height": null,
897
+ "justify_content": null,
898
+ "justify_items": null,
899
+ "left": null,
900
+ "margin": null,
901
+ "max_height": null,
902
+ "max_width": null,
903
+ "min_height": null,
904
+ "min_width": null,
905
+ "object_fit": null,
906
+ "object_position": null,
907
+ "order": null,
908
+ "overflow": null,
909
+ "overflow_x": null,
910
+ "overflow_y": null,
911
+ "padding": null,
912
+ "right": null,
913
+ "top": null,
914
+ "visibility": null,
915
+ "width": null
916
+ }
917
+ },
918
+ "370ca959de5a4feebb621526c9b76930": {
919
+ "model_module": "@jupyter-widgets/controls",
920
+ "model_name": "DescriptionStyleModel",
921
+ "model_module_version": "1.5.0",
922
+ "state": {
923
+ "_model_module": "@jupyter-widgets/controls",
924
+ "_model_module_version": "1.5.0",
925
+ "_model_name": "DescriptionStyleModel",
926
+ "_view_count": null,
927
+ "_view_module": "@jupyter-widgets/base",
928
+ "_view_module_version": "1.2.0",
929
+ "_view_name": "StyleView",
930
+ "description_width": ""
931
+ }
932
+ },
933
+ "924ac284fa5a464aab90941d2de37d1d": {
934
+ "model_module": "@jupyter-widgets/base",
935
+ "model_name": "LayoutModel",
936
+ "model_module_version": "1.2.0",
937
+ "state": {
938
+ "_model_module": "@jupyter-widgets/base",
939
+ "_model_module_version": "1.2.0",
940
+ "_model_name": "LayoutModel",
941
+ "_view_count": null,
942
+ "_view_module": "@jupyter-widgets/base",
943
+ "_view_module_version": "1.2.0",
944
+ "_view_name": "LayoutView",
945
+ "align_content": null,
946
+ "align_items": null,
947
+ "align_self": null,
948
+ "border": null,
949
+ "bottom": null,
950
+ "display": null,
951
+ "flex": null,
952
+ "flex_flow": null,
953
+ "grid_area": null,
954
+ "grid_auto_columns": null,
955
+ "grid_auto_flow": null,
956
+ "grid_auto_rows": null,
957
+ "grid_column": null,
958
+ "grid_gap": null,
959
+ "grid_row": null,
960
+ "grid_template_areas": null,
961
+ "grid_template_columns": null,
962
+ "grid_template_rows": null,
963
+ "height": null,
964
+ "justify_content": null,
965
+ "justify_items": null,
966
+ "left": null,
967
+ "margin": null,
968
+ "max_height": null,
969
+ "max_width": null,
970
+ "min_height": null,
971
+ "min_width": null,
972
+ "object_fit": null,
973
+ "object_position": null,
974
+ "order": null,
975
+ "overflow": null,
976
+ "overflow_x": null,
977
+ "overflow_y": null,
978
+ "padding": null,
979
+ "right": null,
980
+ "top": null,
981
+ "visibility": null,
982
+ "width": null
983
+ }
984
+ },
985
+ "dd7aa4800af947db98784af70affa906": {
986
+ "model_module": "@jupyter-widgets/controls",
987
+ "model_name": "DescriptionStyleModel",
988
+ "model_module_version": "1.5.0",
989
+ "state": {
990
+ "_model_module": "@jupyter-widgets/controls",
991
+ "_model_module_version": "1.5.0",
992
+ "_model_name": "DescriptionStyleModel",
993
+ "_view_count": null,
994
+ "_view_module": "@jupyter-widgets/base",
995
+ "_view_module_version": "1.2.0",
996
+ "_view_name": "StyleView",
997
+ "description_width": ""
998
+ }
999
+ },
1000
+ "2eae6964b0514deb8a986032cfa703a0": {
1001
+ "model_module": "@jupyter-widgets/base",
1002
+ "model_name": "LayoutModel",
1003
+ "model_module_version": "1.2.0",
1004
+ "state": {
1005
+ "_model_module": "@jupyter-widgets/base",
1006
+ "_model_module_version": "1.2.0",
1007
+ "_model_name": "LayoutModel",
1008
+ "_view_count": null,
1009
+ "_view_module": "@jupyter-widgets/base",
1010
+ "_view_module_version": "1.2.0",
1011
+ "_view_name": "LayoutView",
1012
+ "align_content": null,
1013
+ "align_items": null,
1014
+ "align_self": null,
1015
+ "border": null,
1016
+ "bottom": null,
1017
+ "display": null,
1018
+ "flex": null,
1019
+ "flex_flow": null,
1020
+ "grid_area": null,
1021
+ "grid_auto_columns": null,
1022
+ "grid_auto_flow": null,
1023
+ "grid_auto_rows": null,
1024
+ "grid_column": null,
1025
+ "grid_gap": null,
1026
+ "grid_row": null,
1027
+ "grid_template_areas": null,
1028
+ "grid_template_columns": null,
1029
+ "grid_template_rows": null,
1030
+ "height": null,
1031
+ "justify_content": null,
1032
+ "justify_items": null,
1033
+ "left": null,
1034
+ "margin": null,
1035
+ "max_height": null,
1036
+ "max_width": null,
1037
+ "min_height": null,
1038
+ "min_width": null,
1039
+ "object_fit": null,
1040
+ "object_position": null,
1041
+ "order": null,
1042
+ "overflow": null,
1043
+ "overflow_x": null,
1044
+ "overflow_y": null,
1045
+ "padding": null,
1046
+ "right": null,
1047
+ "top": null,
1048
+ "visibility": null,
1049
+ "width": null
1050
+ }
1051
+ },
1052
+ "34e88b7e493e4d698756bece63d043a3": {
1053
+ "model_module": "@jupyter-widgets/controls",
1054
+ "model_name": "DescriptionStyleModel",
1055
+ "model_module_version": "1.5.0",
1056
+ "state": {
1057
+ "_model_module": "@jupyter-widgets/controls",
1058
+ "_model_module_version": "1.5.0",
1059
+ "_model_name": "DescriptionStyleModel",
1060
+ "_view_count": null,
1061
+ "_view_module": "@jupyter-widgets/base",
1062
+ "_view_module_version": "1.2.0",
1063
+ "_view_name": "StyleView",
1064
+ "description_width": ""
1065
+ }
1066
+ },
1067
+ "a51bf2e26c734146ae8fba179d2aa4aa": {
1068
+ "model_module": "@jupyter-widgets/base",
1069
+ "model_name": "LayoutModel",
1070
+ "model_module_version": "1.2.0",
1071
+ "state": {
1072
+ "_model_module": "@jupyter-widgets/base",
1073
+ "_model_module_version": "1.2.0",
1074
+ "_model_name": "LayoutModel",
1075
+ "_view_count": null,
1076
+ "_view_module": "@jupyter-widgets/base",
1077
+ "_view_module_version": "1.2.0",
1078
+ "_view_name": "LayoutView",
1079
+ "align_content": null,
1080
+ "align_items": null,
1081
+ "align_self": null,
1082
+ "border": null,
1083
+ "bottom": null,
1084
+ "display": null,
1085
+ "flex": null,
1086
+ "flex_flow": null,
1087
+ "grid_area": null,
1088
+ "grid_auto_columns": null,
1089
+ "grid_auto_flow": null,
1090
+ "grid_auto_rows": null,
1091
+ "grid_column": null,
1092
+ "grid_gap": null,
1093
+ "grid_row": null,
1094
+ "grid_template_areas": null,
1095
+ "grid_template_columns": null,
1096
+ "grid_template_rows": null,
1097
+ "height": null,
1098
+ "justify_content": null,
1099
+ "justify_items": null,
1100
+ "left": null,
1101
+ "margin": null,
1102
+ "max_height": null,
1103
+ "max_width": null,
1104
+ "min_height": null,
1105
+ "min_width": null,
1106
+ "object_fit": null,
1107
+ "object_position": null,
1108
+ "order": null,
1109
+ "overflow": null,
1110
+ "overflow_x": null,
1111
+ "overflow_y": null,
1112
+ "padding": null,
1113
+ "right": null,
1114
+ "top": null,
1115
+ "visibility": null,
1116
+ "width": null
1117
+ }
1118
+ },
1119
+ "6272895bedcc4dab9594b030145a6e9d": {
1120
+ "model_module": "@jupyter-widgets/controls",
1121
+ "model_name": "ButtonStyleModel",
1122
+ "model_module_version": "1.5.0",
1123
+ "state": {
1124
+ "_model_module": "@jupyter-widgets/controls",
1125
+ "_model_module_version": "1.5.0",
1126
+ "_model_name": "ButtonStyleModel",
1127
+ "_view_count": null,
1128
+ "_view_module": "@jupyter-widgets/base",
1129
+ "_view_module_version": "1.2.0",
1130
+ "_view_name": "StyleView",
1131
+ "button_color": null,
1132
+ "font_weight": ""
1133
+ }
1134
+ },
1135
+ "585b25543d6d4971a19e5644b05d89dc": {
1136
+ "model_module": "@jupyter-widgets/base",
1137
+ "model_name": "LayoutModel",
1138
+ "model_module_version": "1.2.0",
1139
+ "state": {
1140
+ "_model_module": "@jupyter-widgets/base",
1141
+ "_model_module_version": "1.2.0",
1142
+ "_model_name": "LayoutModel",
1143
+ "_view_count": null,
1144
+ "_view_module": "@jupyter-widgets/base",
1145
+ "_view_module_version": "1.2.0",
1146
+ "_view_name": "LayoutView",
1147
+ "align_content": null,
1148
+ "align_items": null,
1149
+ "align_self": null,
1150
+ "border": null,
1151
+ "bottom": null,
1152
+ "display": null,
1153
+ "flex": null,
1154
+ "flex_flow": null,
1155
+ "grid_area": null,
1156
+ "grid_auto_columns": null,
1157
+ "grid_auto_flow": null,
1158
+ "grid_auto_rows": null,
1159
+ "grid_column": null,
1160
+ "grid_gap": null,
1161
+ "grid_row": null,
1162
+ "grid_template_areas": null,
1163
+ "grid_template_columns": null,
1164
+ "grid_template_rows": null,
1165
+ "height": null,
1166
+ "justify_content": null,
1167
+ "justify_items": null,
1168
+ "left": null,
1169
+ "margin": null,
1170
+ "max_height": null,
1171
+ "max_width": null,
1172
+ "min_height": null,
1173
+ "min_width": null,
1174
+ "object_fit": null,
1175
+ "object_position": null,
1176
+ "order": null,
1177
+ "overflow": null,
1178
+ "overflow_x": null,
1179
+ "overflow_y": null,
1180
+ "padding": null,
1181
+ "right": null,
1182
+ "top": null,
1183
+ "visibility": null,
1184
+ "width": null
1185
+ }
1186
+ },
1187
+ "e648bf12632a4c078068d55134187b46": {
1188
+ "model_module": "@jupyter-widgets/controls",
1189
+ "model_name": "DescriptionStyleModel",
1190
+ "model_module_version": "1.5.0",
1191
+ "state": {
1192
+ "_model_module": "@jupyter-widgets/controls",
1193
+ "_model_module_version": "1.5.0",
1194
+ "_model_name": "DescriptionStyleModel",
1195
+ "_view_count": null,
1196
+ "_view_module": "@jupyter-widgets/base",
1197
+ "_view_module_version": "1.2.0",
1198
+ "_view_name": "StyleView",
1199
+ "description_width": ""
1200
+ }
1201
+ },
1202
+ "76f74f8572f84c3188ce30f1b9f308c5": {
1203
+ "model_module": "@jupyter-widgets/controls",
1204
+ "model_name": "LabelModel",
1205
+ "model_module_version": "1.5.0",
1206
+ "state": {
1207
+ "_dom_classes": [],
1208
+ "_model_module": "@jupyter-widgets/controls",
1209
+ "_model_module_version": "1.5.0",
1210
+ "_model_name": "LabelModel",
1211
+ "_view_count": null,
1212
+ "_view_module": "@jupyter-widgets/controls",
1213
+ "_view_module_version": "1.5.0",
1214
+ "_view_name": "LabelView",
1215
+ "description": "",
1216
+ "description_tooltip": null,
1217
+ "layout": "IPY_MODEL_b1c6914c9cff47e9908188a1744f7242",
1218
+ "placeholder": "​",
1219
+ "style": "IPY_MODEL_02ed82d4297d438f97b8d7481f519eee",
1220
+ "value": "Connecting..."
1221
+ }
1222
+ },
1223
+ "b1c6914c9cff47e9908188a1744f7242": {
1224
+ "model_module": "@jupyter-widgets/base",
1225
+ "model_name": "LayoutModel",
1226
+ "model_module_version": "1.2.0",
1227
+ "state": {
1228
+ "_model_module": "@jupyter-widgets/base",
1229
+ "_model_module_version": "1.2.0",
1230
+ "_model_name": "LayoutModel",
1231
+ "_view_count": null,
1232
+ "_view_module": "@jupyter-widgets/base",
1233
+ "_view_module_version": "1.2.0",
1234
+ "_view_name": "LayoutView",
1235
+ "align_content": null,
1236
+ "align_items": null,
1237
+ "align_self": null,
1238
+ "border": null,
1239
+ "bottom": null,
1240
+ "display": null,
1241
+ "flex": null,
1242
+ "flex_flow": null,
1243
+ "grid_area": null,
1244
+ "grid_auto_columns": null,
1245
+ "grid_auto_flow": null,
1246
+ "grid_auto_rows": null,
1247
+ "grid_column": null,
1248
+ "grid_gap": null,
1249
+ "grid_row": null,
1250
+ "grid_template_areas": null,
1251
+ "grid_template_columns": null,
1252
+ "grid_template_rows": null,
1253
+ "height": null,
1254
+ "justify_content": null,
1255
+ "justify_items": null,
1256
+ "left": null,
1257
+ "margin": null,
1258
+ "max_height": null,
1259
+ "max_width": null,
1260
+ "min_height": null,
1261
+ "min_width": null,
1262
+ "object_fit": null,
1263
+ "object_position": null,
1264
+ "order": null,
1265
+ "overflow": null,
1266
+ "overflow_x": null,
1267
+ "overflow_y": null,
1268
+ "padding": null,
1269
+ "right": null,
1270
+ "top": null,
1271
+ "visibility": null,
1272
+ "width": null
1273
+ }
1274
+ },
1275
+ "02ed82d4297d438f97b8d7481f519eee": {
1276
+ "model_module": "@jupyter-widgets/controls",
1277
+ "model_name": "DescriptionStyleModel",
1278
+ "model_module_version": "1.5.0",
1279
+ "state": {
1280
+ "_model_module": "@jupyter-widgets/controls",
1281
+ "_model_module_version": "1.5.0",
1282
+ "_model_name": "DescriptionStyleModel",
1283
+ "_view_count": null,
1284
+ "_view_module": "@jupyter-widgets/base",
1285
+ "_view_module_version": "1.2.0",
1286
+ "_view_name": "StyleView",
1287
+ "description_width": ""
1288
+ }
1289
+ },
1290
+ "076f54dc01d944dcb4b17420752870af": {
1291
+ "model_module": "@jupyter-widgets/controls",
1292
+ "model_name": "LabelModel",
1293
+ "model_module_version": "1.5.0",
1294
+ "state": {
1295
+ "_dom_classes": [],
1296
+ "_model_module": "@jupyter-widgets/controls",
1297
+ "_model_module_version": "1.5.0",
1298
+ "_model_name": "LabelModel",
1299
+ "_view_count": null,
1300
+ "_view_module": "@jupyter-widgets/controls",
1301
+ "_view_module_version": "1.5.0",
1302
+ "_view_name": "LabelView",
1303
+ "description": "",
1304
+ "description_tooltip": null,
1305
+ "layout": "IPY_MODEL_a4e6776e1057449a8e525a499f88c784",
1306
+ "placeholder": "​",
1307
+ "style": "IPY_MODEL_77388a40adf04e0aa74542142c37c86b",
1308
+ "value": "Token is valid (permission: write)."
1309
+ }
1310
+ },
1311
+ "f866447196b749f884b03e648db8eded": {
1312
+ "model_module": "@jupyter-widgets/controls",
1313
+ "model_name": "LabelModel",
1314
+ "model_module_version": "1.5.0",
1315
+ "state": {
1316
+ "_dom_classes": [],
1317
+ "_model_module": "@jupyter-widgets/controls",
1318
+ "_model_module_version": "1.5.0",
1319
+ "_model_name": "LabelModel",
1320
+ "_view_count": null,
1321
+ "_view_module": "@jupyter-widgets/controls",
1322
+ "_view_module_version": "1.5.0",
1323
+ "_view_name": "LabelView",
1324
+ "description": "",
1325
+ "description_tooltip": null,
1326
+ "layout": "IPY_MODEL_e9f36b0a9578425b91af01e16b34fcf1",
1327
+ "placeholder": "​",
1328
+ "style": "IPY_MODEL_b07e98e4cc344be193a2da7e04f72bec",
1329
+ "value": "Your token has been saved in your configured git credential helpers (store)."
1330
+ }
1331
+ },
1332
+ "696e1a134d374285817e46f42e03504d": {
1333
+ "model_module": "@jupyter-widgets/controls",
1334
+ "model_name": "LabelModel",
1335
+ "model_module_version": "1.5.0",
1336
+ "state": {
1337
+ "_dom_classes": [],
1338
+ "_model_module": "@jupyter-widgets/controls",
1339
+ "_model_module_version": "1.5.0",
1340
+ "_model_name": "LabelModel",
1341
+ "_view_count": null,
1342
+ "_view_module": "@jupyter-widgets/controls",
1343
+ "_view_module_version": "1.5.0",
1344
+ "_view_name": "LabelView",
1345
+ "description": "",
1346
+ "description_tooltip": null,
1347
+ "layout": "IPY_MODEL_00245c5c3d9243b187b4e701e7557c5b",
1348
+ "placeholder": "​",
1349
+ "style": "IPY_MODEL_27a2b90344e54755a7cad4968ca8f350",
1350
+ "value": "Your token has been saved to /root/.cache/huggingface/token"
1351
+ }
1352
+ },
1353
+ "4a13efd8cad04bfc971a48075fc9851e": {
1354
+ "model_module": "@jupyter-widgets/controls",
1355
+ "model_name": "LabelModel",
1356
+ "model_module_version": "1.5.0",
1357
+ "state": {
1358
+ "_dom_classes": [],
1359
+ "_model_module": "@jupyter-widgets/controls",
1360
+ "_model_module_version": "1.5.0",
1361
+ "_model_name": "LabelModel",
1362
+ "_view_count": null,
1363
+ "_view_module": "@jupyter-widgets/controls",
1364
+ "_view_module_version": "1.5.0",
1365
+ "_view_name": "LabelView",
1366
+ "description": "",
1367
+ "description_tooltip": null,
1368
+ "layout": "IPY_MODEL_8956f48644fc410c8707a6aef3dc3a86",
1369
+ "placeholder": "​",
1370
+ "style": "IPY_MODEL_318e896402ba44e0b73f45aa2d869592",
1371
+ "value": "Login successful"
1372
+ }
1373
+ },
1374
+ "a4e6776e1057449a8e525a499f88c784": {
1375
+ "model_module": "@jupyter-widgets/base",
1376
+ "model_name": "LayoutModel",
1377
+ "model_module_version": "1.2.0",
1378
+ "state": {
1379
+ "_model_module": "@jupyter-widgets/base",
1380
+ "_model_module_version": "1.2.0",
1381
+ "_model_name": "LayoutModel",
1382
+ "_view_count": null,
1383
+ "_view_module": "@jupyter-widgets/base",
1384
+ "_view_module_version": "1.2.0",
1385
+ "_view_name": "LayoutView",
1386
+ "align_content": null,
1387
+ "align_items": null,
1388
+ "align_self": null,
1389
+ "border": null,
1390
+ "bottom": null,
1391
+ "display": null,
1392
+ "flex": null,
1393
+ "flex_flow": null,
1394
+ "grid_area": null,
1395
+ "grid_auto_columns": null,
1396
+ "grid_auto_flow": null,
1397
+ "grid_auto_rows": null,
1398
+ "grid_column": null,
1399
+ "grid_gap": null,
1400
+ "grid_row": null,
1401
+ "grid_template_areas": null,
1402
+ "grid_template_columns": null,
1403
+ "grid_template_rows": null,
1404
+ "height": null,
1405
+ "justify_content": null,
1406
+ "justify_items": null,
1407
+ "left": null,
1408
+ "margin": null,
1409
+ "max_height": null,
1410
+ "max_width": null,
1411
+ "min_height": null,
1412
+ "min_width": null,
1413
+ "object_fit": null,
1414
+ "object_position": null,
1415
+ "order": null,
1416
+ "overflow": null,
1417
+ "overflow_x": null,
1418
+ "overflow_y": null,
1419
+ "padding": null,
1420
+ "right": null,
1421
+ "top": null,
1422
+ "visibility": null,
1423
+ "width": null
1424
+ }
1425
+ },
1426
+ "77388a40adf04e0aa74542142c37c86b": {
1427
+ "model_module": "@jupyter-widgets/controls",
1428
+ "model_name": "DescriptionStyleModel",
1429
+ "model_module_version": "1.5.0",
1430
+ "state": {
1431
+ "_model_module": "@jupyter-widgets/controls",
1432
+ "_model_module_version": "1.5.0",
1433
+ "_model_name": "DescriptionStyleModel",
1434
+ "_view_count": null,
1435
+ "_view_module": "@jupyter-widgets/base",
1436
+ "_view_module_version": "1.2.0",
1437
+ "_view_name": "StyleView",
1438
+ "description_width": ""
1439
+ }
1440
+ },
1441
+ "e9f36b0a9578425b91af01e16b34fcf1": {
1442
+ "model_module": "@jupyter-widgets/base",
1443
+ "model_name": "LayoutModel",
1444
+ "model_module_version": "1.2.0",
1445
+ "state": {
1446
+ "_model_module": "@jupyter-widgets/base",
1447
+ "_model_module_version": "1.2.0",
1448
+ "_model_name": "LayoutModel",
1449
+ "_view_count": null,
1450
+ "_view_module": "@jupyter-widgets/base",
1451
+ "_view_module_version": "1.2.0",
1452
+ "_view_name": "LayoutView",
1453
+ "align_content": null,
1454
+ "align_items": null,
1455
+ "align_self": null,
1456
+ "border": null,
1457
+ "bottom": null,
1458
+ "display": null,
1459
+ "flex": null,
1460
+ "flex_flow": null,
1461
+ "grid_area": null,
1462
+ "grid_auto_columns": null,
1463
+ "grid_auto_flow": null,
1464
+ "grid_auto_rows": null,
1465
+ "grid_column": null,
1466
+ "grid_gap": null,
1467
+ "grid_row": null,
1468
+ "grid_template_areas": null,
1469
+ "grid_template_columns": null,
1470
+ "grid_template_rows": null,
1471
+ "height": null,
1472
+ "justify_content": null,
1473
+ "justify_items": null,
1474
+ "left": null,
1475
+ "margin": null,
1476
+ "max_height": null,
1477
+ "max_width": null,
1478
+ "min_height": null,
1479
+ "min_width": null,
1480
+ "object_fit": null,
1481
+ "object_position": null,
1482
+ "order": null,
1483
+ "overflow": null,
1484
+ "overflow_x": null,
1485
+ "overflow_y": null,
1486
+ "padding": null,
1487
+ "right": null,
1488
+ "top": null,
1489
+ "visibility": null,
1490
+ "width": null
1491
+ }
1492
+ },
1493
+ "b07e98e4cc344be193a2da7e04f72bec": {
1494
+ "model_module": "@jupyter-widgets/controls",
1495
+ "model_name": "DescriptionStyleModel",
1496
+ "model_module_version": "1.5.0",
1497
+ "state": {
1498
+ "_model_module": "@jupyter-widgets/controls",
1499
+ "_model_module_version": "1.5.0",
1500
+ "_model_name": "DescriptionStyleModel",
1501
+ "_view_count": null,
1502
+ "_view_module": "@jupyter-widgets/base",
1503
+ "_view_module_version": "1.2.0",
1504
+ "_view_name": "StyleView",
1505
+ "description_width": ""
1506
+ }
1507
+ },
1508
+ "00245c5c3d9243b187b4e701e7557c5b": {
1509
+ "model_module": "@jupyter-widgets/base",
1510
+ "model_name": "LayoutModel",
1511
+ "model_module_version": "1.2.0",
1512
+ "state": {
1513
+ "_model_module": "@jupyter-widgets/base",
1514
+ "_model_module_version": "1.2.0",
1515
+ "_model_name": "LayoutModel",
1516
+ "_view_count": null,
1517
+ "_view_module": "@jupyter-widgets/base",
1518
+ "_view_module_version": "1.2.0",
1519
+ "_view_name": "LayoutView",
1520
+ "align_content": null,
1521
+ "align_items": null,
1522
+ "align_self": null,
1523
+ "border": null,
1524
+ "bottom": null,
1525
+ "display": null,
1526
+ "flex": null,
1527
+ "flex_flow": null,
1528
+ "grid_area": null,
1529
+ "grid_auto_columns": null,
1530
+ "grid_auto_flow": null,
1531
+ "grid_auto_rows": null,
1532
+ "grid_column": null,
1533
+ "grid_gap": null,
1534
+ "grid_row": null,
1535
+ "grid_template_areas": null,
1536
+ "grid_template_columns": null,
1537
+ "grid_template_rows": null,
1538
+ "height": null,
1539
+ "justify_content": null,
1540
+ "justify_items": null,
1541
+ "left": null,
1542
+ "margin": null,
1543
+ "max_height": null,
1544
+ "max_width": null,
1545
+ "min_height": null,
1546
+ "min_width": null,
1547
+ "object_fit": null,
1548
+ "object_position": null,
1549
+ "order": null,
1550
+ "overflow": null,
1551
+ "overflow_x": null,
1552
+ "overflow_y": null,
1553
+ "padding": null,
1554
+ "right": null,
1555
+ "top": null,
1556
+ "visibility": null,
1557
+ "width": null
1558
+ }
1559
+ },
1560
+ "27a2b90344e54755a7cad4968ca8f350": {
1561
+ "model_module": "@jupyter-widgets/controls",
1562
+ "model_name": "DescriptionStyleModel",
1563
+ "model_module_version": "1.5.0",
1564
+ "state": {
1565
+ "_model_module": "@jupyter-widgets/controls",
1566
+ "_model_module_version": "1.5.0",
1567
+ "_model_name": "DescriptionStyleModel",
1568
+ "_view_count": null,
1569
+ "_view_module": "@jupyter-widgets/base",
1570
+ "_view_module_version": "1.2.0",
1571
+ "_view_name": "StyleView",
1572
+ "description_width": ""
1573
+ }
1574
+ },
1575
+ "8956f48644fc410c8707a6aef3dc3a86": {
1576
+ "model_module": "@jupyter-widgets/base",
1577
+ "model_name": "LayoutModel",
1578
+ "model_module_version": "1.2.0",
1579
+ "state": {
1580
+ "_model_module": "@jupyter-widgets/base",
1581
+ "_model_module_version": "1.2.0",
1582
+ "_model_name": "LayoutModel",
1583
+ "_view_count": null,
1584
+ "_view_module": "@jupyter-widgets/base",
1585
+ "_view_module_version": "1.2.0",
1586
+ "_view_name": "LayoutView",
1587
+ "align_content": null,
1588
+ "align_items": null,
1589
+ "align_self": null,
1590
+ "border": null,
1591
+ "bottom": null,
1592
+ "display": null,
1593
+ "flex": null,
1594
+ "flex_flow": null,
1595
+ "grid_area": null,
1596
+ "grid_auto_columns": null,
1597
+ "grid_auto_flow": null,
1598
+ "grid_auto_rows": null,
1599
+ "grid_column": null,
1600
+ "grid_gap": null,
1601
+ "grid_row": null,
1602
+ "grid_template_areas": null,
1603
+ "grid_template_columns": null,
1604
+ "grid_template_rows": null,
1605
+ "height": null,
1606
+ "justify_content": null,
1607
+ "justify_items": null,
1608
+ "left": null,
1609
+ "margin": null,
1610
+ "max_height": null,
1611
+ "max_width": null,
1612
+ "min_height": null,
1613
+ "min_width": null,
1614
+ "object_fit": null,
1615
+ "object_position": null,
1616
+ "order": null,
1617
+ "overflow": null,
1618
+ "overflow_x": null,
1619
+ "overflow_y": null,
1620
+ "padding": null,
1621
+ "right": null,
1622
+ "top": null,
1623
+ "visibility": null,
1624
+ "width": null
1625
+ }
1626
+ },
1627
+ "318e896402ba44e0b73f45aa2d869592": {
1628
+ "model_module": "@jupyter-widgets/controls",
1629
+ "model_name": "DescriptionStyleModel",
1630
+ "model_module_version": "1.5.0",
1631
+ "state": {
1632
+ "_model_module": "@jupyter-widgets/controls",
1633
+ "_model_module_version": "1.5.0",
1634
+ "_model_name": "DescriptionStyleModel",
1635
+ "_view_count": null,
1636
+ "_view_module": "@jupyter-widgets/base",
1637
+ "_view_module_version": "1.2.0",
1638
+ "_view_name": "StyleView",
1639
+ "description_width": ""
1640
+ }
1641
+ }
1642
+ }
1643
+ }
1644
+ },
1645
+ "nbformat": 4,
1646
+ "nbformat_minor": 0
1647
+ }