├── LICENSE └── Completion.ipynb /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /Completion.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [], 7 | "gpuType": "T4" 8 | }, 9 | "kernelspec": { 10 | "name": "python3", 11 | "display_name": "Python 3" 12 | }, 13 | "language_info": { 14 | "name": "python" 15 | }, 16 | "accelerator": "GPU" 17 | }, 18 | "cells": [ 19 | { 20 | "cell_type": "code", 21 | "execution_count": null, 22 | "metadata": { 23 | "colab": { 24 | "base_uri": "https://localhost:8080/" 25 | }, 26 | "id": "l7s9A7B6zcWt", 27 | "outputId": "aca26d7d-8b3e-4408-c0ea-c315123d7551" 28 | }, 29 | "outputs": [ 30 | { 31 | "output_type": "stream", 32 | "name": "stdout", 33 | "text": [ 34 | "Requirement already satisfied: tensorflow in /usr/local/lib/python3.10/dist-packages (2.17.0)\n", 35 | "Requirement already satisfied: opencv-python-headless in /usr/local/lib/python3.10/dist-packages (4.10.0.84)\n", 36 | "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (3.7.1)\n", 37 | "Requirement already satisfied: absl-py>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.4.0)\n", 38 | "Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.6.3)\n", 39 | "Requirement already satisfied: flatbuffers>=24.3.25 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (24.3.25)\n", 40 | "Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.6.0)\n", 41 | "Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.2.0)\n", 42 | "Requirement already satisfied: h5py>=3.10.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.11.0)\n", 43 | "Requirement already satisfied: libclang>=13.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (18.1.1)\n", 44 | "Requirement already satisfied: ml-dtypes<0.5.0,>=0.3.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.4.0)\n", 45 | "Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.3.0)\n", 46 | "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from tensorflow) (24.1)\n", 47 | "Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.20.3)\n", 48 | "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.32.3)\n", 49 | "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from tensorflow) (71.0.4)\n", 50 | "Requirement already satisfied: six>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.16.0)\n", 51 | "Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.4.0)\n", 52 | "Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (4.12.2)\n", 53 | "Requirement already satisfied: wrapt>=1.11.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.16.0)\n", 54 | "Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.64.1)\n", 55 | "Requirement already satisfied: tensorboard<2.18,>=2.17 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.17.0)\n", 56 | "Requirement already satisfied: keras>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.4.1)\n", 57 | "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.37.1)\n", 58 | "Requirement already satisfied: numpy<2.0.0,>=1.23.5 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.26.4)\n", 59 | "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.2.1)\n", 60 | "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (0.12.1)\n", 61 | "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (4.53.1)\n", 62 | "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.4.5)\n", 63 | "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (9.4.0)\n", 64 | "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (3.1.2)\n", 65 | "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (2.8.2)\n", 66 | "Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from astunparse>=1.6.0->tensorflow) (0.44.0)\n", 67 | "Requirement already satisfied: rich in /usr/local/lib/python3.10/dist-packages (from keras>=3.2.0->tensorflow) (13.7.1)\n", 68 | "Requirement already satisfied: namex in /usr/local/lib/python3.10/dist-packages (from keras>=3.2.0->tensorflow) (0.0.8)\n", 69 | "Requirement already satisfied: optree in /usr/local/lib/python3.10/dist-packages (from keras>=3.2.0->tensorflow) (0.12.1)\n", 70 | "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorflow) (3.3.2)\n", 71 | "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorflow) (3.7)\n", 72 | "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorflow) (2.0.7)\n", 73 | "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorflow) (2024.7.4)\n", 74 | "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.18,>=2.17->tensorflow) (3.6)\n", 75 | "Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.18,>=2.17->tensorflow) (0.7.2)\n", 76 | "Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.18,>=2.17->tensorflow) (3.0.3)\n", 77 | "Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.10/dist-packages (from werkzeug>=1.0.1->tensorboard<2.18,>=2.17->tensorflow) (2.1.5)\n", 78 | "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich->keras>=3.2.0->tensorflow) (3.0.0)\n", 79 | "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich->keras>=3.2.0->tensorflow) (2.16.1)\n", 80 | "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich->keras>=3.2.0->tensorflow) (0.1.2)\n" 81 | ] 82 | } 83 | ], 84 | "source": [ 85 | "!pip install tensorflow opencv-python-headless matplotlib\n" 86 | ] 87 | }, 88 | { 89 | "cell_type": "code", 90 | "source": [ 91 | "from google.colab import files\n", 92 | "files.upload() # Upload kaggle.json\n", 93 | "\n", 94 | "!mkdir -p ~/.kaggle\n", 95 | "!cp kaggle.json ~/.kaggle/\n", 96 | "!chmod 600 ~/.kaggle/kaggle.json\n", 97 | "\n", 98 | "# Download the dataset\n", 99 | "!kaggle datasets download -d google/tinyquickdraw\n", 100 | "!unzip tinyquickdraw.zip -d quickdraw_data\n" 101 | ], 102 | "metadata": { 103 | "colab": { 104 | "base_uri": "https://localhost:8080/", 105 | "height": 1000 106 | }, 107 | "id": "juRiI8kIzfn0", 108 | "outputId": "907553b0-0610-4167-f513-09cbb1949bba" 109 | }, 110 | "execution_count": null, 111 | "outputs": [ 112 | { 113 | "output_type": "display_data", 114 | "data": { 115 | "text/plain": [ 116 | "" 117 | ], 118 | "text/html": [ 119 | "\n", 120 | " \n", 122 | " \n", 123 | " Upload widget is only available when the cell has been executed in the\n", 124 | " current browser session. Please rerun this cell to enable.\n", 125 | " \n", 126 | " " 302 | ] 303 | }, 304 | "metadata": {} 305 | }, 306 | { 307 | "output_type": "stream", 308 | "name": "stdout", 309 | "text": [ 310 | "Saving kaggle.json to kaggle.json\n", 311 | "Dataset URL: https://www.kaggle.com/datasets/google/tinyquickdraw\n", 312 | "License(s): other\n", 313 | "Downloading tinyquickdraw.zip to /content\n", 314 | "100% 11.1G/11.1G [11:44<00:00, 20.2MB/s]\n", 315 | "100% 11.1G/11.1G [11:44<00:00, 16.9MB/s]\n", 316 | "Archive: tinyquickdraw.zip\n", 317 | " inflating: quickdraw_data/baseball bat.ndjson \n", 318 | " inflating: quickdraw_data/finger.ndjson \n", 319 | " inflating: quickdraw_data/helmet.ndjson \n", 320 | " inflating: quickdraw_data/hexagon.ndjson \n", 321 | " inflating: quickdraw_data/hockey stick.ndjson \n", 322 | " inflating: quickdraw_data/quickdraw_simplified/The Eiffel Tower.ndjson \n", 323 | " inflating: quickdraw_data/quickdraw_simplified/The Great Wall of China.ndjson \n", 324 | " inflating: quickdraw_data/quickdraw_simplified/The Mona Lisa.ndjson \n", 325 | " inflating: quickdraw_data/quickdraw_simplified/aircraft carrier.ndjson \n", 326 | " inflating: quickdraw_data/quickdraw_simplified/airplane.ndjson \n", 327 | " inflating: quickdraw_data/quickdraw_simplified/alarm clock.ndjson \n", 328 | " inflating: quickdraw_data/quickdraw_simplified/ambulance.ndjson \n", 329 | " inflating: quickdraw_data/quickdraw_simplified/angel.ndjson \n", 330 | " inflating: quickdraw_data/quickdraw_simplified/animal migration.ndjson \n", 331 | " inflating: quickdraw_data/quickdraw_simplified/ant.ndjson \n", 332 | " inflating: quickdraw_data/quickdraw_simplified/anvil.ndjson \n", 333 | " inflating: quickdraw_data/quickdraw_simplified/apple.ndjson \n", 334 | " inflating: quickdraw_data/quickdraw_simplified/arm.ndjson \n", 335 | " inflating: quickdraw_data/quickdraw_simplified/asparagus.ndjson \n", 336 | " inflating: quickdraw_data/quickdraw_simplified/axe.ndjson \n", 337 | " inflating: quickdraw_data/quickdraw_simplified/backpack.ndjson \n", 338 | " inflating: quickdraw_data/quickdraw_simplified/banana.ndjson \n", 339 | " inflating: quickdraw_data/quickdraw_simplified/bandage.ndjson \n", 340 | " inflating: quickdraw_data/quickdraw_simplified/barn.ndjson \n", 341 | " inflating: quickdraw_data/quickdraw_simplified/baseball bat.ndjson \n", 342 | " inflating: quickdraw_data/quickdraw_simplified/baseball.ndjson \n", 343 | " inflating: quickdraw_data/quickdraw_simplified/basket.ndjson \n", 344 | " inflating: quickdraw_data/quickdraw_simplified/basketball.ndjson \n", 345 | " inflating: quickdraw_data/quickdraw_simplified/bat.ndjson \n", 346 | " inflating: quickdraw_data/quickdraw_simplified/bathtub.ndjson \n", 347 | " inflating: quickdraw_data/quickdraw_simplified/beach.ndjson \n", 348 | " inflating: quickdraw_data/quickdraw_simplified/bear.ndjson \n", 349 | " inflating: quickdraw_data/quickdraw_simplified/beard.ndjson \n", 350 | " inflating: quickdraw_data/quickdraw_simplified/bed.ndjson \n", 351 | " inflating: quickdraw_data/quickdraw_simplified/bee.ndjson \n", 352 | " inflating: quickdraw_data/quickdraw_simplified/belt.ndjson \n", 353 | " inflating: quickdraw_data/quickdraw_simplified/bench.ndjson \n", 354 | " inflating: quickdraw_data/quickdraw_simplified/bicycle.ndjson \n", 355 | " inflating: quickdraw_data/quickdraw_simplified/binoculars.ndjson \n", 356 | " inflating: quickdraw_data/quickdraw_simplified/bird.ndjson \n", 357 | " inflating: quickdraw_data/quickdraw_simplified/birthday cake.ndjson \n", 358 | " inflating: quickdraw_data/quickdraw_simplified/blackberry.ndjson \n", 359 | " inflating: quickdraw_data/quickdraw_simplified/blueberry.ndjson \n", 360 | " inflating: quickdraw_data/quickdraw_simplified/book.ndjson \n", 361 | " inflating: quickdraw_data/quickdraw_simplified/boomerang.ndjson \n", 362 | " inflating: quickdraw_data/quickdraw_simplified/bottlecap.ndjson \n", 363 | " inflating: quickdraw_data/quickdraw_simplified/bowtie.ndjson \n", 364 | " inflating: quickdraw_data/quickdraw_simplified/bracelet.ndjson \n", 365 | " inflating: quickdraw_data/quickdraw_simplified/brain.ndjson \n", 366 | " inflating: quickdraw_data/quickdraw_simplified/bread.ndjson \n", 367 | " inflating: quickdraw_data/quickdraw_simplified/bridge.ndjson \n", 368 | " inflating: quickdraw_data/quickdraw_simplified/broccoli.ndjson \n", 369 | " inflating: quickdraw_data/quickdraw_simplified/broom.ndjson \n", 370 | " inflating: quickdraw_data/quickdraw_simplified/bucket.ndjson \n", 371 | " inflating: quickdraw_data/quickdraw_simplified/bulldozer.ndjson \n", 372 | " inflating: quickdraw_data/quickdraw_simplified/bus.ndjson \n", 373 | " inflating: quickdraw_data/quickdraw_simplified/bush.ndjson \n", 374 | " inflating: quickdraw_data/quickdraw_simplified/butterfly.ndjson \n", 375 | " inflating: quickdraw_data/quickdraw_simplified/cactus.ndjson \n", 376 | " inflating: quickdraw_data/quickdraw_simplified/cake.ndjson \n", 377 | " inflating: quickdraw_data/quickdraw_simplified/calculator.ndjson \n", 378 | " inflating: quickdraw_data/quickdraw_simplified/calendar.ndjson \n", 379 | " inflating: quickdraw_data/quickdraw_simplified/camel.ndjson \n", 380 | " inflating: quickdraw_data/quickdraw_simplified/camera.ndjson \n", 381 | " inflating: quickdraw_data/quickdraw_simplified/camouflage.ndjson \n", 382 | " inflating: quickdraw_data/quickdraw_simplified/campfire.ndjson \n", 383 | " inflating: quickdraw_data/quickdraw_simplified/candle.ndjson \n", 384 | " inflating: quickdraw_data/quickdraw_simplified/cannon.ndjson \n", 385 | " inflating: quickdraw_data/quickdraw_simplified/canoe.ndjson \n", 386 | " inflating: quickdraw_data/quickdraw_simplified/car.ndjson \n", 387 | " inflating: quickdraw_data/quickdraw_simplified/carrot.ndjson \n", 388 | " inflating: quickdraw_data/quickdraw_simplified/castle.ndjson \n", 389 | " inflating: quickdraw_data/quickdraw_simplified/cat.ndjson \n", 390 | " inflating: quickdraw_data/quickdraw_simplified/ceiling fan.ndjson \n", 391 | " inflating: quickdraw_data/quickdraw_simplified/cell phone.ndjson \n", 392 | " inflating: quickdraw_data/quickdraw_simplified/cello.ndjson \n", 393 | " inflating: quickdraw_data/quickdraw_simplified/chair.ndjson \n", 394 | " inflating: quickdraw_data/quickdraw_simplified/chandelier.ndjson \n", 395 | " inflating: quickdraw_data/quickdraw_simplified/church.ndjson \n", 396 | " inflating: quickdraw_data/quickdraw_simplified/circle.ndjson \n", 397 | " inflating: quickdraw_data/quickdraw_simplified/clarinet.ndjson \n", 398 | " inflating: quickdraw_data/quickdraw_simplified/clock.ndjson \n", 399 | " inflating: quickdraw_data/quickdraw_simplified/cloud.ndjson \n", 400 | " inflating: quickdraw_data/quickdraw_simplified/coffee cup.ndjson \n", 401 | " inflating: quickdraw_data/quickdraw_simplified/compass.ndjson \n", 402 | " inflating: quickdraw_data/quickdraw_simplified/cooler.ndjson \n", 403 | " inflating: quickdraw_data/quickdraw_simplified/couch.ndjson \n", 404 | " inflating: quickdraw_data/quickdraw_simplified/cow.ndjson \n", 405 | " inflating: quickdraw_data/quickdraw_simplified/crab.ndjson \n", 406 | " inflating: quickdraw_data/quickdraw_simplified/crayon.ndjson \n", 407 | " inflating: quickdraw_data/quickdraw_simplified/crocodile.ndjson \n", 408 | " inflating: quickdraw_data/quickdraw_simplified/crown.ndjson \n", 409 | " inflating: quickdraw_data/quickdraw_simplified/cruise ship.ndjson \n", 410 | " inflating: quickdraw_data/quickdraw_simplified/cup.ndjson \n", 411 | " inflating: quickdraw_data/quickdraw_simplified/diamond.ndjson \n", 412 | " inflating: quickdraw_data/quickdraw_simplified/dishwasher.ndjson \n", 413 | " inflating: quickdraw_data/quickdraw_simplified/diving board.ndjson \n", 414 | " inflating: quickdraw_data/quickdraw_simplified/dog.ndjson \n", 415 | " inflating: quickdraw_data/quickdraw_simplified/dolphin.ndjson \n", 416 | " inflating: quickdraw_data/quickdraw_simplified/donut.ndjson \n", 417 | " inflating: quickdraw_data/quickdraw_simplified/door.ndjson \n", 418 | " inflating: quickdraw_data/quickdraw_simplified/dragon.ndjson \n", 419 | " inflating: quickdraw_data/quickdraw_simplified/dresser.ndjson \n", 420 | " inflating: quickdraw_data/quickdraw_simplified/drill.ndjson \n", 421 | " inflating: quickdraw_data/quickdraw_simplified/drums.ndjson \n", 422 | " inflating: quickdraw_data/quickdraw_simplified/duck.ndjson \n", 423 | " inflating: quickdraw_data/quickdraw_simplified/dumbbell.ndjson \n", 424 | " inflating: quickdraw_data/quickdraw_simplified/ear.ndjson \n", 425 | " inflating: quickdraw_data/quickdraw_simplified/elbow.ndjson \n", 426 | " inflating: quickdraw_data/quickdraw_simplified/elephant.ndjson \n", 427 | " inflating: quickdraw_data/quickdraw_simplified/envelope.ndjson \n", 428 | " inflating: quickdraw_data/quickdraw_simplified/eraser.ndjson \n", 429 | " inflating: quickdraw_data/quickdraw_simplified/eye.ndjson \n", 430 | " inflating: quickdraw_data/quickdraw_simplified/eyeglasses.ndjson \n", 431 | " inflating: quickdraw_data/quickdraw_simplified/face.ndjson \n", 432 | " inflating: quickdraw_data/quickdraw_simplified/fan.ndjson \n", 433 | " inflating: quickdraw_data/quickdraw_simplified/feather.ndjson \n", 434 | " inflating: quickdraw_data/quickdraw_simplified/fence.ndjson \n", 435 | " inflating: quickdraw_data/quickdraw_simplified/finger.ndjson \n", 436 | " inflating: quickdraw_data/quickdraw_simplified/fire hydrant.ndjson \n", 437 | " inflating: quickdraw_data/quickdraw_simplified/fireplace.ndjson \n", 438 | " inflating: quickdraw_data/quickdraw_simplified/firetruck.ndjson \n", 439 | " inflating: quickdraw_data/quickdraw_simplified/fish.ndjson \n", 440 | " inflating: quickdraw_data/quickdraw_simplified/flamingo.ndjson \n", 441 | " inflating: quickdraw_data/quickdraw_simplified/flashlight.ndjson \n", 442 | " inflating: quickdraw_data/quickdraw_simplified/flip flops.ndjson \n", 443 | " inflating: quickdraw_data/quickdraw_simplified/floor lamp.ndjson \n", 444 | " inflating: quickdraw_data/quickdraw_simplified/flower.ndjson \n", 445 | " inflating: quickdraw_data/quickdraw_simplified/flying saucer.ndjson \n", 446 | " inflating: quickdraw_data/quickdraw_simplified/foot.ndjson \n", 447 | " inflating: quickdraw_data/quickdraw_simplified/fork.ndjson \n", 448 | " inflating: quickdraw_data/quickdraw_simplified/frog.ndjson \n", 449 | " inflating: quickdraw_data/quickdraw_simplified/frying pan.ndjson \n", 450 | " inflating: quickdraw_data/quickdraw_simplified/garden hose.ndjson \n", 451 | " inflating: quickdraw_data/quickdraw_simplified/garden.ndjson \n", 452 | " inflating: quickdraw_data/quickdraw_simplified/giraffe.ndjson \n", 453 | " inflating: quickdraw_data/quickdraw_simplified/goatee.ndjson \n", 454 | " inflating: quickdraw_data/quickdraw_simplified/golf club.ndjson \n", 455 | " inflating: quickdraw_data/quickdraw_simplified/grapes.ndjson \n", 456 | " inflating: quickdraw_data/quickdraw_simplified/grass.ndjson \n", 457 | " inflating: quickdraw_data/quickdraw_simplified/guitar.ndjson \n", 458 | " inflating: quickdraw_data/quickdraw_simplified/hamburger.ndjson \n", 459 | " inflating: quickdraw_data/quickdraw_simplified/hammer.ndjson \n", 460 | " inflating: quickdraw_data/quickdraw_simplified/hand.ndjson \n", 461 | " inflating: quickdraw_data/quickdraw_simplified/harp.ndjson \n", 462 | " inflating: quickdraw_data/quickdraw_simplified/hat.ndjson \n", 463 | " inflating: quickdraw_data/quickdraw_simplified/headphones.ndjson \n", 464 | " inflating: quickdraw_data/quickdraw_simplified/hedgehog.ndjson \n", 465 | " inflating: quickdraw_data/quickdraw_simplified/helicopter.ndjson \n", 466 | " inflating: quickdraw_data/quickdraw_simplified/helmet.ndjson \n", 467 | " inflating: quickdraw_data/quickdraw_simplified/hexagon.ndjson \n", 468 | " inflating: quickdraw_data/quickdraw_simplified/hockey puck.ndjson \n", 469 | " inflating: quickdraw_data/quickdraw_simplified/hockey stick.ndjson \n", 470 | " inflating: quickdraw_data/quickdraw_simplified/horse.ndjson \n", 471 | " inflating: quickdraw_data/quickdraw_simplified/hospital.ndjson \n", 472 | " inflating: quickdraw_data/quickdraw_simplified/hot air balloon.ndjson \n", 473 | " inflating: quickdraw_data/quickdraw_simplified/hot dog.ndjson \n", 474 | " inflating: quickdraw_data/quickdraw_simplified/hot tub.ndjson \n", 475 | " inflating: quickdraw_data/quickdraw_simplified/hourglass.ndjson \n", 476 | " inflating: quickdraw_data/quickdraw_simplified/house plant.ndjson \n", 477 | " inflating: quickdraw_data/quickdraw_simplified/house.ndjson \n", 478 | " inflating: quickdraw_data/quickdraw_simplified/hurricane.ndjson \n", 479 | " inflating: quickdraw_data/quickdraw_simplified/ice cream.ndjson \n", 480 | " inflating: quickdraw_data/quickdraw_simplified/jacket.ndjson \n", 481 | " inflating: quickdraw_data/quickdraw_simplified/jail.ndjson \n", 482 | " inflating: quickdraw_data/quickdraw_simplified/kangaroo.ndjson \n", 483 | " inflating: quickdraw_data/quickdraw_simplified/key.ndjson \n", 484 | " inflating: quickdraw_data/quickdraw_simplified/keyboard.ndjson \n", 485 | " inflating: quickdraw_data/quickdraw_simplified/knee.ndjson \n", 486 | " inflating: quickdraw_data/quickdraw_simplified/knife.ndjson \n", 487 | " inflating: quickdraw_data/quickdraw_simplified/ladder.ndjson \n", 488 | " inflating: quickdraw_data/quickdraw_simplified/lantern.ndjson \n", 489 | " inflating: quickdraw_data/quickdraw_simplified/laptop.ndjson \n", 490 | " inflating: quickdraw_data/quickdraw_simplified/leaf.ndjson \n", 491 | " inflating: quickdraw_data/quickdraw_simplified/leg.ndjson \n", 492 | " inflating: quickdraw_data/quickdraw_simplified/light bulb.ndjson \n", 493 | " inflating: quickdraw_data/quickdraw_simplified/lighter.ndjson \n", 494 | " inflating: quickdraw_data/quickdraw_simplified/lighthouse.ndjson \n", 495 | " inflating: quickdraw_data/quickdraw_simplified/lightning.ndjson \n", 496 | " inflating: quickdraw_data/quickdraw_simplified/line.ndjson \n", 497 | " inflating: quickdraw_data/quickdraw_simplified/lion.ndjson \n", 498 | " inflating: quickdraw_data/quickdraw_simplified/lipstick.ndjson \n", 499 | " inflating: quickdraw_data/quickdraw_simplified/lobster.ndjson \n", 500 | " inflating: quickdraw_data/quickdraw_simplified/lollipop.ndjson \n", 501 | " inflating: quickdraw_data/quickdraw_simplified/mailbox.ndjson \n", 502 | " inflating: quickdraw_data/quickdraw_simplified/map.ndjson \n", 503 | " inflating: quickdraw_data/quickdraw_simplified/marker.ndjson \n", 504 | " inflating: quickdraw_data/quickdraw_simplified/matches.ndjson \n", 505 | " inflating: quickdraw_data/quickdraw_simplified/megaphone.ndjson \n", 506 | " inflating: quickdraw_data/quickdraw_simplified/mermaid.ndjson \n", 507 | " inflating: quickdraw_data/quickdraw_simplified/microphone.ndjson \n", 508 | " inflating: quickdraw_data/quickdraw_simplified/microwave.ndjson \n", 509 | " inflating: quickdraw_data/quickdraw_simplified/monkey.ndjson \n", 510 | " inflating: quickdraw_data/quickdraw_simplified/moon.ndjson \n", 511 | " inflating: quickdraw_data/quickdraw_simplified/mosquito.ndjson \n", 512 | " inflating: quickdraw_data/quickdraw_simplified/motorbike.ndjson \n", 513 | " inflating: quickdraw_data/quickdraw_simplified/mountain.ndjson \n", 514 | " inflating: quickdraw_data/quickdraw_simplified/mouse.ndjson \n", 515 | " inflating: quickdraw_data/quickdraw_simplified/moustache.ndjson \n", 516 | " inflating: quickdraw_data/quickdraw_simplified/mouth.ndjson \n", 517 | " inflating: quickdraw_data/quickdraw_simplified/mug.ndjson \n", 518 | " inflating: quickdraw_data/quickdraw_simplified/mushroom.ndjson \n", 519 | " inflating: quickdraw_data/quickdraw_simplified/nail.ndjson \n", 520 | " inflating: quickdraw_data/quickdraw_simplified/necklace.ndjson \n", 521 | " inflating: quickdraw_data/quickdraw_simplified/nose.ndjson \n", 522 | " inflating: quickdraw_data/quickdraw_simplified/ocean.ndjson \n", 523 | " inflating: quickdraw_data/quickdraw_simplified/octagon.ndjson \n", 524 | " inflating: quickdraw_data/quickdraw_simplified/octopus.ndjson \n", 525 | " inflating: quickdraw_data/quickdraw_simplified/onion.ndjson \n", 526 | " inflating: quickdraw_data/quickdraw_simplified/oven.ndjson \n", 527 | " inflating: quickdraw_data/quickdraw_simplified/owl.ndjson \n", 528 | " inflating: quickdraw_data/quickdraw_simplified/paint can.ndjson \n", 529 | " inflating: quickdraw_data/quickdraw_simplified/paintbrush.ndjson \n", 530 | " inflating: quickdraw_data/quickdraw_simplified/palm tree.ndjson \n", 531 | " inflating: quickdraw_data/quickdraw_simplified/panda.ndjson \n", 532 | " inflating: quickdraw_data/quickdraw_simplified/pants.ndjson \n", 533 | " inflating: quickdraw_data/quickdraw_simplified/paper clip.ndjson \n", 534 | " inflating: quickdraw_data/quickdraw_simplified/parachute.ndjson \n", 535 | " inflating: quickdraw_data/quickdraw_simplified/parrot.ndjson \n", 536 | " inflating: quickdraw_data/quickdraw_simplified/passport.ndjson \n", 537 | " inflating: quickdraw_data/quickdraw_simplified/peanut.ndjson \n", 538 | " inflating: quickdraw_data/quickdraw_simplified/pear.ndjson \n", 539 | " inflating: quickdraw_data/quickdraw_simplified/peas.ndjson \n", 540 | " inflating: quickdraw_data/quickdraw_simplified/pencil.ndjson \n", 541 | " inflating: quickdraw_data/quickdraw_simplified/penguin.ndjson \n", 542 | " inflating: quickdraw_data/quickdraw_simplified/piano.ndjson \n", 543 | " inflating: quickdraw_data/quickdraw_simplified/pickup truck.ndjson \n", 544 | " inflating: quickdraw_data/quickdraw_simplified/picture frame.ndjson \n", 545 | " inflating: quickdraw_data/quickdraw_simplified/pig.ndjson \n", 546 | " inflating: quickdraw_data/quickdraw_simplified/pillow.ndjson \n", 547 | " inflating: quickdraw_data/quickdraw_simplified/pineapple.ndjson \n", 548 | " inflating: quickdraw_data/quickdraw_simplified/pizza.ndjson \n", 549 | " inflating: quickdraw_data/quickdraw_simplified/pliers.ndjson \n", 550 | " inflating: quickdraw_data/quickdraw_simplified/police car.ndjson \n", 551 | " inflating: quickdraw_data/quickdraw_simplified/pond.ndjson \n", 552 | " inflating: quickdraw_data/quickdraw_simplified/pool.ndjson \n", 553 | " inflating: quickdraw_data/quickdraw_simplified/popsicle.ndjson \n", 554 | " inflating: quickdraw_data/quickdraw_simplified/postcard.ndjson \n", 555 | " inflating: quickdraw_data/quickdraw_simplified/potato.ndjson \n", 556 | " inflating: quickdraw_data/quickdraw_simplified/power outlet.ndjson \n", 557 | " inflating: quickdraw_data/quickdraw_simplified/purse.ndjson \n", 558 | " inflating: quickdraw_data/quickdraw_simplified/rabbit.ndjson \n", 559 | " inflating: quickdraw_data/quickdraw_simplified/raccoon.ndjson \n", 560 | " inflating: quickdraw_data/quickdraw_simplified/radio.ndjson \n", 561 | " inflating: quickdraw_data/quickdraw_simplified/rain.ndjson \n", 562 | " inflating: quickdraw_data/quickdraw_simplified/rainbow.ndjson \n", 563 | " inflating: quickdraw_data/quickdraw_simplified/rake.ndjson \n", 564 | " inflating: quickdraw_data/quickdraw_simplified/remote control.ndjson \n", 565 | " inflating: quickdraw_data/quickdraw_simplified/rhinoceros.ndjson \n", 566 | " inflating: quickdraw_data/quickdraw_simplified/rifle.ndjson \n", 567 | " inflating: quickdraw_data/quickdraw_simplified/river.ndjson \n", 568 | " inflating: quickdraw_data/quickdraw_simplified/roller coaster.ndjson \n", 569 | " inflating: quickdraw_data/quickdraw_simplified/rollerskates.ndjson \n", 570 | " inflating: quickdraw_data/quickdraw_simplified/sailboat.ndjson \n", 571 | " inflating: quickdraw_data/quickdraw_simplified/sandwich.ndjson \n", 572 | " inflating: quickdraw_data/quickdraw_simplified/saw.ndjson \n", 573 | " inflating: quickdraw_data/quickdraw_simplified/saxophone.ndjson \n", 574 | " inflating: quickdraw_data/quickdraw_simplified/school bus.ndjson \n", 575 | " inflating: quickdraw_data/quickdraw_simplified/scissors.ndjson \n", 576 | " inflating: quickdraw_data/quickdraw_simplified/scorpion.ndjson \n", 577 | " inflating: quickdraw_data/quickdraw_simplified/screwdriver.ndjson \n", 578 | " inflating: quickdraw_data/quickdraw_simplified/sea turtle.ndjson \n", 579 | " inflating: quickdraw_data/quickdraw_simplified/see saw.ndjson \n", 580 | " inflating: quickdraw_data/quickdraw_simplified/shark.ndjson \n", 581 | " inflating: quickdraw_data/quickdraw_simplified/sheep.ndjson \n", 582 | " inflating: quickdraw_data/quickdraw_simplified/shoe.ndjson \n", 583 | " inflating: quickdraw_data/quickdraw_simplified/shorts.ndjson \n", 584 | " inflating: quickdraw_data/quickdraw_simplified/shovel.ndjson \n", 585 | " inflating: quickdraw_data/quickdraw_simplified/sink.ndjson \n", 586 | " inflating: quickdraw_data/quickdraw_simplified/skateboard.ndjson \n", 587 | " inflating: quickdraw_data/quickdraw_simplified/skull.ndjson \n", 588 | " inflating: quickdraw_data/quickdraw_simplified/skyscraper.ndjson \n", 589 | " inflating: quickdraw_data/quickdraw_simplified/sleeping bag.ndjson \n", 590 | " inflating: quickdraw_data/quickdraw_simplified/smiley face.ndjson \n", 591 | " inflating: quickdraw_data/quickdraw_simplified/snail.ndjson \n", 592 | " inflating: quickdraw_data/quickdraw_simplified/snake.ndjson \n", 593 | " inflating: quickdraw_data/quickdraw_simplified/snorkel.ndjson \n", 594 | " inflating: quickdraw_data/quickdraw_simplified/snowflake.ndjson \n", 595 | " inflating: quickdraw_data/quickdraw_simplified/snowman.ndjson \n", 596 | " inflating: quickdraw_data/quickdraw_simplified/soccer ball.ndjson \n", 597 | " inflating: quickdraw_data/quickdraw_simplified/sock.ndjson \n", 598 | " inflating: quickdraw_data/quickdraw_simplified/speedboat.ndjson \n", 599 | " inflating: quickdraw_data/quickdraw_simplified/spider.ndjson \n", 600 | " inflating: quickdraw_data/quickdraw_simplified/spoon.ndjson \n", 601 | " inflating: quickdraw_data/quickdraw_simplified/spreadsheet.ndjson \n", 602 | " inflating: quickdraw_data/quickdraw_simplified/square.ndjson \n", 603 | " inflating: quickdraw_data/quickdraw_simplified/squiggle.ndjson \n", 604 | " inflating: quickdraw_data/quickdraw_simplified/squirrel.ndjson \n", 605 | " inflating: quickdraw_data/quickdraw_simplified/stairs.ndjson \n", 606 | " inflating: quickdraw_data/quickdraw_simplified/star.ndjson \n", 607 | " inflating: quickdraw_data/quickdraw_simplified/steak.ndjson \n", 608 | " inflating: quickdraw_data/quickdraw_simplified/stereo.ndjson \n", 609 | " inflating: quickdraw_data/quickdraw_simplified/stethoscope.ndjson \n", 610 | " inflating: quickdraw_data/quickdraw_simplified/stitches.ndjson \n", 611 | " inflating: quickdraw_data/quickdraw_simplified/stop sign.ndjson \n", 612 | " inflating: quickdraw_data/quickdraw_simplified/stove.ndjson \n", 613 | " inflating: quickdraw_data/quickdraw_simplified/strawberry.ndjson \n", 614 | " inflating: quickdraw_data/quickdraw_simplified/streetlight.ndjson \n", 615 | " inflating: quickdraw_data/quickdraw_simplified/string bean.ndjson \n", 616 | " inflating: quickdraw_data/quickdraw_simplified/submarine.ndjson \n", 617 | " inflating: quickdraw_data/quickdraw_simplified/suitcase.ndjson \n", 618 | " inflating: quickdraw_data/quickdraw_simplified/sun.ndjson \n", 619 | " inflating: quickdraw_data/quickdraw_simplified/swan.ndjson \n", 620 | " inflating: quickdraw_data/quickdraw_simplified/sweater.ndjson \n", 621 | " inflating: quickdraw_data/quickdraw_simplified/swing set.ndjson \n", 622 | " inflating: quickdraw_data/quickdraw_simplified/sword.ndjson \n", 623 | " inflating: quickdraw_data/quickdraw_simplified/syringe.ndjson \n", 624 | " inflating: quickdraw_data/quickdraw_simplified/t-shirt.ndjson \n", 625 | " inflating: quickdraw_data/quickdraw_simplified/table.ndjson \n", 626 | " inflating: quickdraw_data/quickdraw_simplified/teapot.ndjson \n", 627 | " inflating: quickdraw_data/quickdraw_simplified/teddy-bear.ndjson \n", 628 | " inflating: quickdraw_data/quickdraw_simplified/telephone.ndjson \n", 629 | " inflating: quickdraw_data/quickdraw_simplified/television.ndjson \n", 630 | " inflating: quickdraw_data/quickdraw_simplified/tennis racquet.ndjson \n", 631 | " inflating: quickdraw_data/quickdraw_simplified/tent.ndjson \n", 632 | " inflating: quickdraw_data/quickdraw_simplified/tiger.ndjson \n", 633 | " inflating: quickdraw_data/quickdraw_simplified/toaster.ndjson \n", 634 | " inflating: quickdraw_data/quickdraw_simplified/toe.ndjson \n", 635 | " inflating: quickdraw_data/quickdraw_simplified/toilet.ndjson \n", 636 | " inflating: quickdraw_data/quickdraw_simplified/tooth.ndjson \n", 637 | " inflating: quickdraw_data/quickdraw_simplified/toothbrush.ndjson \n", 638 | " inflating: quickdraw_data/quickdraw_simplified/toothpaste.ndjson \n", 639 | " inflating: quickdraw_data/quickdraw_simplified/tornado.ndjson \n", 640 | " inflating: quickdraw_data/quickdraw_simplified/tractor.ndjson \n", 641 | " inflating: quickdraw_data/quickdraw_simplified/traffic light.ndjson \n", 642 | " inflating: quickdraw_data/quickdraw_simplified/train.ndjson \n", 643 | " inflating: quickdraw_data/quickdraw_simplified/tree.ndjson \n", 644 | " inflating: quickdraw_data/quickdraw_simplified/triangle.ndjson \n", 645 | " inflating: quickdraw_data/quickdraw_simplified/trombone.ndjson \n", 646 | " inflating: quickdraw_data/quickdraw_simplified/truck.ndjson \n", 647 | " inflating: quickdraw_data/quickdraw_simplified/trumpet.ndjson \n", 648 | " inflating: quickdraw_data/quickdraw_simplified/umbrella.ndjson \n", 649 | " inflating: quickdraw_data/quickdraw_simplified/underwear.ndjson \n", 650 | " inflating: quickdraw_data/quickdraw_simplified/van.ndjson \n", 651 | " inflating: quickdraw_data/quickdraw_simplified/vase.ndjson \n", 652 | " inflating: quickdraw_data/quickdraw_simplified/violin.ndjson \n", 653 | " inflating: quickdraw_data/quickdraw_simplified/washing machine.ndjson \n", 654 | " inflating: quickdraw_data/quickdraw_simplified/watermelon.ndjson \n", 655 | " inflating: quickdraw_data/quickdraw_simplified/waterslide.ndjson \n", 656 | " inflating: quickdraw_data/quickdraw_simplified/whale.ndjson \n", 657 | " inflating: quickdraw_data/quickdraw_simplified/wheel.ndjson \n", 658 | " inflating: quickdraw_data/quickdraw_simplified/windmill.ndjson \n", 659 | " inflating: quickdraw_data/quickdraw_simplified/wine bottle.ndjson \n", 660 | " inflating: quickdraw_data/quickdraw_simplified/wine glass.ndjson \n", 661 | " inflating: quickdraw_data/quickdraw_simplified/wristwatch.ndjson \n", 662 | " inflating: quickdraw_data/quickdraw_simplified/yoga.ndjson \n", 663 | " inflating: quickdraw_data/quickdraw_simplified/zebra.ndjson \n", 664 | " inflating: quickdraw_data/quickdraw_simplified/zigzag.ndjson \n", 665 | " inflating: quickdraw_data/sketches/sketches/The Eiffel Tower.npz \n", 666 | " inflating: quickdraw_data/sketches/sketches/The Great Wall of China.npz \n", 667 | " inflating: quickdraw_data/sketches/sketches/The Mona Lisa.npz \n", 668 | " inflating: quickdraw_data/sketches/sketches/aircraft carrier.npz \n", 669 | " inflating: quickdraw_data/sketches/sketches/airplane.npz \n", 670 | " inflating: quickdraw_data/sketches/sketches/alarm clock.npz \n", 671 | " inflating: quickdraw_data/sketches/sketches/ambulance.npz \n", 672 | " inflating: quickdraw_data/sketches/sketches/angel.npz \n", 673 | " inflating: quickdraw_data/sketches/sketches/animal migration.npz \n", 674 | " inflating: quickdraw_data/sketches/sketches/ant.npz \n", 675 | " inflating: quickdraw_data/sketches/sketches/anvil.npz \n", 676 | " inflating: quickdraw_data/sketches/sketches/apple.npz \n", 677 | " inflating: quickdraw_data/sketches/sketches/arm.npz \n", 678 | " inflating: quickdraw_data/sketches/sketches/asparagus.npz \n", 679 | " inflating: quickdraw_data/sketches/sketches/axe.npz \n", 680 | " inflating: quickdraw_data/sketches/sketches/backpack.npz \n", 681 | " inflating: quickdraw_data/sketches/sketches/banana.npz \n", 682 | " inflating: quickdraw_data/sketches/sketches/bandage.npz \n", 683 | " inflating: quickdraw_data/sketches/sketches/barn.npz \n", 684 | " inflating: quickdraw_data/sketches/sketches/baseball bat.npz \n", 685 | " inflating: quickdraw_data/sketches/sketches/baseball.npz \n", 686 | " inflating: quickdraw_data/sketches/sketches/basket.npz \n", 687 | " inflating: quickdraw_data/sketches/sketches/basketball.npz \n", 688 | " inflating: quickdraw_data/sketches/sketches/bat.npz \n", 689 | " inflating: quickdraw_data/sketches/sketches/bathtub.npz \n", 690 | " inflating: quickdraw_data/sketches/sketches/beach.npz \n", 691 | " inflating: quickdraw_data/sketches/sketches/bear.npz \n", 692 | " inflating: quickdraw_data/sketches/sketches/beard.npz \n", 693 | " inflating: quickdraw_data/sketches/sketches/bed.npz \n", 694 | " inflating: quickdraw_data/sketches/sketches/bee.npz \n", 695 | " inflating: quickdraw_data/sketches/sketches/belt.npz \n", 696 | " inflating: quickdraw_data/sketches/sketches/bench.npz \n", 697 | " inflating: quickdraw_data/sketches/sketches/bicycle.npz \n", 698 | " inflating: quickdraw_data/sketches/sketches/binoculars.npz \n", 699 | " inflating: quickdraw_data/sketches/sketches/bird.npz \n", 700 | " inflating: quickdraw_data/sketches/sketches/birthday cake.npz \n", 701 | " inflating: quickdraw_data/sketches/sketches/blackberry.npz \n", 702 | " inflating: quickdraw_data/sketches/sketches/blueberry.npz \n", 703 | " inflating: quickdraw_data/sketches/sketches/book.npz \n", 704 | " inflating: quickdraw_data/sketches/sketches/boomerang.npz \n", 705 | " inflating: quickdraw_data/sketches/sketches/bottlecap.npz \n", 706 | " inflating: quickdraw_data/sketches/sketches/bowtie.npz \n", 707 | " inflating: quickdraw_data/sketches/sketches/bracelet.npz \n", 708 | " inflating: quickdraw_data/sketches/sketches/brain.npz \n", 709 | " inflating: quickdraw_data/sketches/sketches/bread.npz \n", 710 | " inflating: quickdraw_data/sketches/sketches/bridge.npz \n", 711 | " inflating: quickdraw_data/sketches/sketches/broccoli.npz \n", 712 | " inflating: quickdraw_data/sketches/sketches/broom.npz \n", 713 | " inflating: quickdraw_data/sketches/sketches/bucket.npz \n", 714 | " inflating: quickdraw_data/sketches/sketches/bulldozer.npz \n", 715 | " inflating: quickdraw_data/sketches/sketches/bus.npz \n", 716 | " inflating: quickdraw_data/sketches/sketches/bush.npz \n", 717 | " inflating: quickdraw_data/sketches/sketches/butterfly.npz \n", 718 | " inflating: quickdraw_data/sketches/sketches/cactus.npz \n", 719 | " inflating: quickdraw_data/sketches/sketches/cake.npz \n", 720 | " inflating: quickdraw_data/sketches/sketches/calculator.npz \n", 721 | " inflating: quickdraw_data/sketches/sketches/calendar.npz \n", 722 | " inflating: quickdraw_data/sketches/sketches/camel.npz \n", 723 | " inflating: quickdraw_data/sketches/sketches/camera.npz \n", 724 | " inflating: quickdraw_data/sketches/sketches/camouflage.npz \n", 725 | " inflating: quickdraw_data/sketches/sketches/campfire.npz \n", 726 | " inflating: quickdraw_data/sketches/sketches/candle.npz \n", 727 | " inflating: quickdraw_data/sketches/sketches/cannon.npz \n", 728 | " inflating: quickdraw_data/sketches/sketches/canoe.npz \n", 729 | " inflating: quickdraw_data/sketches/sketches/car.npz \n", 730 | " inflating: quickdraw_data/sketches/sketches/carrot.npz \n", 731 | " inflating: quickdraw_data/sketches/sketches/castle.npz \n", 732 | " inflating: quickdraw_data/sketches/sketches/cat.npz \n", 733 | " inflating: quickdraw_data/sketches/sketches/ceiling fan.npz \n", 734 | " inflating: quickdraw_data/sketches/sketches/cell phone.npz \n", 735 | " inflating: quickdraw_data/sketches/sketches/cello.npz \n", 736 | " inflating: quickdraw_data/sketches/sketches/chair.npz \n", 737 | " inflating: quickdraw_data/sketches/sketches/chandelier.npz \n", 738 | " inflating: quickdraw_data/sketches/sketches/church.npz \n", 739 | " inflating: quickdraw_data/sketches/sketches/circle.npz \n", 740 | " inflating: quickdraw_data/sketches/sketches/clarinet.npz \n", 741 | " inflating: quickdraw_data/sketches/sketches/clock.npz \n", 742 | " inflating: quickdraw_data/sketches/sketches/cloud.npz \n", 743 | " inflating: quickdraw_data/sketches/sketches/coffee cup.npz \n", 744 | " inflating: quickdraw_data/sketches/sketches/compass.npz \n", 745 | " inflating: quickdraw_data/sketches/sketches/computer.npz \n", 746 | " inflating: quickdraw_data/sketches/sketches/cookie.npz \n", 747 | " inflating: quickdraw_data/sketches/sketches/cooler.npz \n", 748 | " inflating: quickdraw_data/sketches/sketches/couch.npz \n", 749 | " inflating: quickdraw_data/sketches/sketches/cow.npz \n", 750 | " inflating: quickdraw_data/sketches/sketches/crab.npz \n", 751 | " inflating: quickdraw_data/sketches/sketches/crayon.npz \n", 752 | " inflating: quickdraw_data/sketches/sketches/crocodile.npz \n", 753 | " inflating: quickdraw_data/sketches/sketches/crown.npz \n", 754 | " inflating: quickdraw_data/sketches/sketches/cruise ship.npz \n", 755 | " inflating: quickdraw_data/sketches/sketches/cup.npz \n", 756 | " inflating: quickdraw_data/sketches/sketches/diamond.npz \n", 757 | " inflating: quickdraw_data/sketches/sketches/dishwasher.npz \n", 758 | " inflating: quickdraw_data/sketches/sketches/diving board.npz \n", 759 | " inflating: quickdraw_data/sketches/sketches/dog.npz \n", 760 | " inflating: quickdraw_data/sketches/sketches/dolphin.npz \n", 761 | " inflating: quickdraw_data/sketches/sketches/donut.npz \n", 762 | " inflating: quickdraw_data/sketches/sketches/door.npz \n", 763 | " inflating: quickdraw_data/sketches/sketches/dragon.npz \n", 764 | " inflating: quickdraw_data/sketches/sketches/dresser.npz \n", 765 | " inflating: quickdraw_data/sketches/sketches/drill.npz \n", 766 | " inflating: quickdraw_data/sketches/sketches/drums.npz \n", 767 | " inflating: quickdraw_data/sketches/sketches/duck.npz \n", 768 | " inflating: quickdraw_data/sketches/sketches/dumbbell.npz \n", 769 | " inflating: quickdraw_data/sketches/sketches/ear.npz \n", 770 | " inflating: quickdraw_data/sketches/sketches/elbow.npz \n", 771 | " inflating: quickdraw_data/sketches/sketches/elephant.npz \n", 772 | " inflating: quickdraw_data/sketches/sketches/envelope.npz \n", 773 | " inflating: quickdraw_data/sketches/sketches/eraser.npz \n", 774 | " inflating: quickdraw_data/sketches/sketches/eye.npz \n", 775 | " inflating: quickdraw_data/sketches/sketches/eyeglasses.npz \n", 776 | " inflating: quickdraw_data/sketches/sketches/face.npz \n", 777 | " inflating: quickdraw_data/sketches/sketches/fan.npz \n", 778 | " inflating: quickdraw_data/sketches/sketches/feather.npz \n", 779 | " inflating: quickdraw_data/sketches/sketches/fence.npz \n", 780 | " inflating: quickdraw_data/sketches/sketches/finger.npz \n", 781 | " inflating: quickdraw_data/sketches/sketches/fire hydrant.npz \n", 782 | " inflating: quickdraw_data/sketches/sketches/fireplace.npz \n", 783 | " inflating: quickdraw_data/sketches/sketches/firetruck.npz \n", 784 | " inflating: quickdraw_data/sketches/sketches/fish.npz \n", 785 | " inflating: quickdraw_data/sketches/sketches/flamingo.npz \n", 786 | " inflating: quickdraw_data/sketches/sketches/flashlight.npz \n", 787 | " inflating: quickdraw_data/sketches/sketches/flip flops.npz \n", 788 | " inflating: quickdraw_data/sketches/sketches/floor lamp.npz \n", 789 | " inflating: quickdraw_data/sketches/sketches/flower.npz \n", 790 | " inflating: quickdraw_data/sketches/sketches/flying saucer.npz \n", 791 | " inflating: quickdraw_data/sketches/sketches/foot.npz \n", 792 | " inflating: quickdraw_data/sketches/sketches/fork.npz \n", 793 | " inflating: quickdraw_data/sketches/sketches/frog.npz \n", 794 | " inflating: quickdraw_data/sketches/sketches/frying pan.npz \n", 795 | " inflating: quickdraw_data/sketches/sketches/garden hose.npz \n", 796 | " inflating: quickdraw_data/sketches/sketches/garden.npz \n", 797 | " inflating: quickdraw_data/sketches/sketches/giraffe.npz \n", 798 | " inflating: quickdraw_data/sketches/sketches/goatee.npz \n", 799 | " inflating: quickdraw_data/sketches/sketches/golf club.npz \n", 800 | " inflating: quickdraw_data/sketches/sketches/grapes.npz \n", 801 | " inflating: quickdraw_data/sketches/sketches/grass.npz \n", 802 | " inflating: quickdraw_data/sketches/sketches/guitar.npz \n", 803 | " inflating: quickdraw_data/sketches/sketches/hamburger.npz \n", 804 | " inflating: quickdraw_data/sketches/sketches/hammer.npz \n", 805 | " inflating: quickdraw_data/sketches/sketches/hand.npz \n", 806 | " inflating: quickdraw_data/sketches/sketches/harp.npz \n", 807 | " inflating: quickdraw_data/sketches/sketches/hat.npz \n", 808 | " inflating: quickdraw_data/sketches/sketches/headphones.npz \n", 809 | " inflating: quickdraw_data/sketches/sketches/hedgehog.npz \n", 810 | " inflating: quickdraw_data/sketches/sketches/helicopter.npz \n", 811 | " inflating: quickdraw_data/sketches/sketches/helmet.npz \n", 812 | " inflating: quickdraw_data/sketches/sketches/hexagon.npz \n", 813 | " inflating: quickdraw_data/sketches/sketches/hockey puck.npz \n", 814 | " inflating: quickdraw_data/sketches/sketches/hockey stick.npz \n", 815 | " inflating: quickdraw_data/sketches/sketches/horse.npz \n", 816 | " inflating: quickdraw_data/sketches/sketches/hospital.npz \n", 817 | " inflating: quickdraw_data/sketches/sketches/hot air balloon.npz \n", 818 | " inflating: quickdraw_data/sketches/sketches/hot dog.npz \n", 819 | " inflating: quickdraw_data/sketches/sketches/hot tub.npz \n", 820 | " inflating: quickdraw_data/sketches/sketches/hourglass.npz \n", 821 | " inflating: quickdraw_data/sketches/sketches/house plant.npz \n", 822 | " inflating: quickdraw_data/sketches/sketches/house.npz \n", 823 | " inflating: quickdraw_data/sketches/sketches/hurricane.npz \n", 824 | " inflating: quickdraw_data/sketches/sketches/ice cream.npz \n", 825 | " inflating: quickdraw_data/sketches/sketches/jacket.npz \n", 826 | " inflating: quickdraw_data/sketches/sketches/jail.npz \n", 827 | " inflating: quickdraw_data/sketches/sketches/kangaroo.npz \n", 828 | " inflating: quickdraw_data/sketches/sketches/key.npz \n", 829 | " inflating: quickdraw_data/sketches/sketches/keyboard.npz \n", 830 | " inflating: quickdraw_data/sketches/sketches/knee.npz \n", 831 | " inflating: quickdraw_data/sketches/sketches/knife.npz \n", 832 | " inflating: quickdraw_data/sketches/sketches/ladder.npz \n", 833 | " inflating: quickdraw_data/sketches/sketches/lantern.npz \n", 834 | " inflating: quickdraw_data/sketches/sketches/laptop.npz \n", 835 | " inflating: quickdraw_data/sketches/sketches/leaf.npz \n", 836 | " inflating: quickdraw_data/sketches/sketches/leg.npz \n", 837 | " inflating: quickdraw_data/sketches/sketches/light bulb.npz \n", 838 | " inflating: quickdraw_data/sketches/sketches/lighter.npz \n", 839 | " inflating: quickdraw_data/sketches/sketches/lighthouse.npz \n", 840 | " inflating: quickdraw_data/sketches/sketches/lightning.npz \n", 841 | " inflating: quickdraw_data/sketches/sketches/line.npz \n", 842 | " inflating: quickdraw_data/sketches/sketches/lion.npz \n", 843 | " inflating: quickdraw_data/sketches/sketches/lipstick.npz \n", 844 | " inflating: quickdraw_data/sketches/sketches/lobster.npz \n", 845 | " inflating: quickdraw_data/sketches/sketches/lollipop.npz \n", 846 | " inflating: quickdraw_data/sketches/sketches/mailbox.npz \n", 847 | " inflating: quickdraw_data/sketches/sketches/map.npz \n", 848 | " inflating: quickdraw_data/sketches/sketches/marker.npz \n", 849 | " inflating: quickdraw_data/sketches/sketches/matches.npz \n", 850 | " inflating: quickdraw_data/sketches/sketches/megaphone.npz \n", 851 | " inflating: quickdraw_data/sketches/sketches/mermaid.npz \n", 852 | " inflating: quickdraw_data/sketches/sketches/microphone.npz \n", 853 | " inflating: quickdraw_data/sketches/sketches/microwave.npz \n", 854 | " inflating: quickdraw_data/sketches/sketches/monkey.npz \n", 855 | " inflating: quickdraw_data/sketches/sketches/moon.npz \n", 856 | " inflating: quickdraw_data/sketches/sketches/mosquito.npz \n", 857 | " inflating: quickdraw_data/sketches/sketches/motorbike.npz \n", 858 | " inflating: quickdraw_data/sketches/sketches/mountain.npz \n", 859 | " inflating: quickdraw_data/sketches/sketches/mouse.npz \n", 860 | " inflating: quickdraw_data/sketches/sketches/moustache.npz \n", 861 | " inflating: quickdraw_data/sketches/sketches/mouth.npz \n", 862 | " inflating: quickdraw_data/sketches/sketches/mug.npz \n", 863 | " inflating: quickdraw_data/sketches/sketches/mushroom.npz \n", 864 | " inflating: quickdraw_data/sketches/sketches/nail.npz \n", 865 | " inflating: quickdraw_data/sketches/sketches/necklace.npz \n", 866 | " inflating: quickdraw_data/sketches/sketches/nose.npz \n", 867 | " inflating: quickdraw_data/sketches/sketches/ocean.npz \n", 868 | " inflating: quickdraw_data/sketches/sketches/octagon.npz \n", 869 | " inflating: quickdraw_data/sketches/sketches/octopus.npz \n", 870 | " inflating: quickdraw_data/sketches/sketches/onion.npz \n", 871 | " inflating: quickdraw_data/sketches/sketches/oven.npz \n", 872 | " inflating: quickdraw_data/sketches/sketches/owl.npz \n", 873 | " inflating: quickdraw_data/sketches/sketches/paint can.npz \n", 874 | " inflating: quickdraw_data/sketches/sketches/paintbrush.npz \n", 875 | " inflating: quickdraw_data/sketches/sketches/palm tree.npz \n", 876 | " inflating: quickdraw_data/sketches/sketches/panda.npz \n", 877 | " inflating: quickdraw_data/sketches/sketches/pants.npz \n", 878 | " inflating: quickdraw_data/sketches/sketches/paper clip.npz \n", 879 | " inflating: quickdraw_data/sketches/sketches/parachute.npz \n", 880 | " inflating: quickdraw_data/sketches/sketches/parrot.npz \n", 881 | " inflating: quickdraw_data/sketches/sketches/passport.npz \n", 882 | " inflating: quickdraw_data/sketches/sketches/peanut.npz \n", 883 | " inflating: quickdraw_data/sketches/sketches/pear.npz \n", 884 | " inflating: quickdraw_data/sketches/sketches/peas.npz \n", 885 | " inflating: quickdraw_data/sketches/sketches/pencil.npz \n", 886 | " inflating: quickdraw_data/sketches/sketches/penguin.npz \n", 887 | " inflating: quickdraw_data/sketches/sketches/piano.npz \n", 888 | " inflating: quickdraw_data/sketches/sketches/pickup truck.npz \n", 889 | " inflating: quickdraw_data/sketches/sketches/picture frame.npz \n", 890 | " inflating: quickdraw_data/sketches/sketches/pig.npz \n", 891 | " inflating: quickdraw_data/sketches/sketches/pillow.npz \n", 892 | " inflating: quickdraw_data/sketches/sketches/pineapple.npz \n", 893 | " inflating: quickdraw_data/sketches/sketches/pizza.npz \n", 894 | " inflating: quickdraw_data/sketches/sketches/pliers.npz \n", 895 | " inflating: quickdraw_data/sketches/sketches/police car.npz \n", 896 | " inflating: quickdraw_data/sketches/sketches/pond.npz \n", 897 | " inflating: quickdraw_data/sketches/sketches/pool.npz \n", 898 | " inflating: quickdraw_data/sketches/sketches/popsicle.npz \n", 899 | " inflating: quickdraw_data/sketches/sketches/postcard.npz \n", 900 | " inflating: quickdraw_data/sketches/sketches/potato.npz \n", 901 | " inflating: quickdraw_data/sketches/sketches/power outlet.npz \n", 902 | " inflating: quickdraw_data/sketches/sketches/purse.npz \n", 903 | " inflating: quickdraw_data/sketches/sketches/rabbit.npz \n", 904 | " inflating: quickdraw_data/sketches/sketches/raccoon.npz \n", 905 | " inflating: quickdraw_data/sketches/sketches/radio.npz \n", 906 | " inflating: quickdraw_data/sketches/sketches/rain.npz \n", 907 | " inflating: quickdraw_data/sketches/sketches/rainbow.npz \n", 908 | " inflating: quickdraw_data/sketches/sketches/rake.npz \n", 909 | " inflating: quickdraw_data/sketches/sketches/remote control.npz \n", 910 | " inflating: quickdraw_data/sketches/sketches/rhinoceros.npz \n", 911 | " inflating: quickdraw_data/sketches/sketches/rifle.npz \n", 912 | " inflating: quickdraw_data/sketches/sketches/river.npz \n", 913 | " inflating: quickdraw_data/sketches/sketches/roller coaster.npz \n", 914 | " inflating: quickdraw_data/sketches/sketches/rollerskates.npz \n", 915 | " inflating: quickdraw_data/sketches/sketches/sailboat.npz \n", 916 | " inflating: quickdraw_data/sketches/sketches/sandwich.npz \n", 917 | " inflating: quickdraw_data/sketches/sketches/saw.npz \n", 918 | " inflating: quickdraw_data/sketches/sketches/saxophone.npz \n", 919 | " inflating: quickdraw_data/sketches/sketches/school bus.npz \n", 920 | " inflating: quickdraw_data/sketches/sketches/scissors.npz \n", 921 | " inflating: quickdraw_data/sketches/sketches/scorpion.npz \n", 922 | " inflating: quickdraw_data/sketches/sketches/screwdriver.npz \n", 923 | " inflating: quickdraw_data/sketches/sketches/sea turtle.npz \n", 924 | " inflating: quickdraw_data/sketches/sketches/see saw.npz \n", 925 | " inflating: quickdraw_data/sketches/sketches/shark.npz \n", 926 | " inflating: quickdraw_data/sketches/sketches/sheep.npz \n", 927 | " inflating: quickdraw_data/sketches/sketches/shoe.npz \n", 928 | " inflating: quickdraw_data/sketches/sketches/shorts.npz \n", 929 | " inflating: quickdraw_data/sketches/sketches/shovel.npz \n", 930 | " inflating: quickdraw_data/sketches/sketches/sink.npz \n", 931 | " inflating: quickdraw_data/sketches/sketches/skateboard.npz \n", 932 | " inflating: quickdraw_data/sketches/sketches/skull.npz \n", 933 | " inflating: quickdraw_data/sketches/sketches/skyscraper.npz \n", 934 | " inflating: quickdraw_data/sketches/sketches/sleeping bag.npz \n", 935 | " inflating: quickdraw_data/sketches/sketches/smiley face.npz \n", 936 | " inflating: quickdraw_data/sketches/sketches/snail.npz \n", 937 | " inflating: quickdraw_data/sketches/sketches/snake.npz \n", 938 | " inflating: quickdraw_data/sketches/sketches/snorkel.npz \n", 939 | " inflating: quickdraw_data/sketches/sketches/snowflake.npz \n", 940 | " inflating: quickdraw_data/sketches/sketches/snowman.npz \n", 941 | " inflating: quickdraw_data/sketches/sketches/soccer ball.npz \n", 942 | " inflating: quickdraw_data/sketches/sketches/sock.npz \n", 943 | " inflating: quickdraw_data/sketches/sketches/speedboat.npz \n", 944 | " inflating: quickdraw_data/sketches/sketches/spider.npz \n", 945 | " inflating: quickdraw_data/sketches/sketches/spoon.npz \n", 946 | " inflating: quickdraw_data/sketches/sketches/spreadsheet.npz \n", 947 | " inflating: quickdraw_data/sketches/sketches/square.npz \n", 948 | " inflating: quickdraw_data/sketches/sketches/squiggle.npz \n", 949 | " inflating: quickdraw_data/sketches/sketches/squirrel.npz \n", 950 | " inflating: quickdraw_data/sketches/sketches/stairs.npz \n", 951 | " inflating: quickdraw_data/sketches/sketches/star.npz \n", 952 | " inflating: quickdraw_data/sketches/sketches/steak.npz \n", 953 | " inflating: quickdraw_data/sketches/sketches/stereo.npz \n", 954 | " inflating: quickdraw_data/sketches/sketches/stethoscope.npz \n", 955 | " inflating: quickdraw_data/sketches/sketches/stitches.npz \n", 956 | " inflating: quickdraw_data/sketches/sketches/stop sign.npz \n", 957 | " inflating: quickdraw_data/sketches/sketches/stove.npz \n", 958 | " inflating: quickdraw_data/sketches/sketches/strawberry.npz \n", 959 | " inflating: quickdraw_data/sketches/sketches/streetlight.npz \n", 960 | " inflating: quickdraw_data/sketches/sketches/string bean.npz \n", 961 | " inflating: quickdraw_data/sketches/sketches/submarine.npz \n", 962 | " inflating: quickdraw_data/sketches/sketches/suitcase.npz \n", 963 | " inflating: quickdraw_data/sketches/sketches/sun.npz \n", 964 | " inflating: quickdraw_data/sketches/sketches/swan.npz \n", 965 | " inflating: quickdraw_data/sketches/sketches/sweater.npz \n", 966 | " inflating: quickdraw_data/sketches/sketches/swing set.npz \n", 967 | " inflating: quickdraw_data/sketches/sketches/sword.npz \n", 968 | " inflating: quickdraw_data/sketches/sketches/syringe.npz \n", 969 | " inflating: quickdraw_data/sketches/sketches/t-shirt.npz \n", 970 | " inflating: quickdraw_data/sketches/sketches/table.npz \n", 971 | " inflating: quickdraw_data/sketches/sketches/teapot.npz \n", 972 | " inflating: quickdraw_data/sketches/sketches/teddy-bear.npz \n", 973 | " inflating: quickdraw_data/sketches/sketches/telephone.npz \n", 974 | " inflating: quickdraw_data/sketches/sketches/television.npz \n", 975 | " inflating: quickdraw_data/sketches/sketches/tennis racquet.npz \n", 976 | " inflating: quickdraw_data/sketches/sketches/tent.npz \n", 977 | " inflating: quickdraw_data/sketches/sketches/tiger.npz \n", 978 | " inflating: quickdraw_data/sketches/sketches/toaster.npz \n", 979 | " inflating: quickdraw_data/sketches/sketches/toe.npz \n", 980 | " inflating: quickdraw_data/sketches/sketches/toilet.npz \n", 981 | " inflating: quickdraw_data/sketches/sketches/tooth.npz \n", 982 | " inflating: quickdraw_data/sketches/sketches/toothbrush.npz \n", 983 | " inflating: quickdraw_data/sketches/sketches/toothpaste.npz \n", 984 | " inflating: quickdraw_data/sketches/sketches/tornado.npz \n", 985 | " inflating: quickdraw_data/sketches/sketches/tractor.npz \n", 986 | " inflating: quickdraw_data/sketches/sketches/traffic light.npz \n", 987 | " inflating: quickdraw_data/sketches/sketches/train.npz \n", 988 | " inflating: quickdraw_data/sketches/sketches/tree.npz \n", 989 | " inflating: quickdraw_data/sketches/sketches/triangle.npz \n", 990 | " inflating: quickdraw_data/sketches/sketches/trombone.npz \n", 991 | " inflating: quickdraw_data/sketches/sketches/truck.npz \n", 992 | " inflating: quickdraw_data/sketches/sketches/trumpet.npz \n", 993 | " inflating: quickdraw_data/sketches/sketches/umbrella.npz \n", 994 | " inflating: quickdraw_data/sketches/sketches/underwear.npz \n", 995 | " inflating: quickdraw_data/sketches/sketches/van.npz \n", 996 | " inflating: quickdraw_data/sketches/sketches/vase.npz \n", 997 | " inflating: quickdraw_data/sketches/sketches/violin.npz \n", 998 | " inflating: quickdraw_data/sketches/sketches/washing machine.npz \n", 999 | " inflating: quickdraw_data/sketches/sketches/watermelon.npz \n", 1000 | " inflating: quickdraw_data/sketches/sketches/waterslide.npz \n", 1001 | " inflating: quickdraw_data/sketches/sketches/whale.npz \n", 1002 | " inflating: quickdraw_data/sketches/sketches/wheel.npz \n", 1003 | " inflating: quickdraw_data/sketches/sketches/windmill.npz \n", 1004 | " inflating: quickdraw_data/sketches/sketches/wine bottle.npz \n", 1005 | " inflating: quickdraw_data/sketches/sketches/wine glass.npz \n", 1006 | " inflating: quickdraw_data/sketches/sketches/wristwatch.npz \n", 1007 | " inflating: quickdraw_data/sketches/sketches/yoga.npz \n", 1008 | " inflating: quickdraw_data/sketches/sketches/zebra.npz \n", 1009 | " inflating: quickdraw_data/sketches/sketches/zigzag.npz \n" 1010 | ] 1011 | } 1012 | ] 1013 | }, 1014 | { 1015 | "cell_type": "code", 1016 | "source": [ 1017 | "!pip install ndjson" 1018 | ], 1019 | "metadata": { 1020 | "colab": { 1021 | "base_uri": "https://localhost:8080/" 1022 | }, 1023 | "id": "mzhgXnBN4Z6g", 1024 | "outputId": "b3025db4-d6f4-4b3a-e480-8eb45209637d" 1025 | }, 1026 | "execution_count": null, 1027 | "outputs": [ 1028 | { 1029 | "output_type": "stream", 1030 | "name": "stdout", 1031 | "text": [ 1032 | "Collecting ndjson\n", 1033 | " Downloading ndjson-0.3.1-py2.py3-none-any.whl.metadata (3.2 kB)\n", 1034 | "Downloading ndjson-0.3.1-py2.py3-none-any.whl (5.3 kB)\n", 1035 | "Installing collected packages: ndjson\n", 1036 | "Successfully installed ndjson-0.3.1\n" 1037 | ] 1038 | } 1039 | ] 1040 | }, 1041 | { 1042 | "cell_type": "code", 1043 | "source": [ 1044 | "import os\n", 1045 | "import numpy as np\n", 1046 | "import cv2\n", 1047 | "import ndjson\n", 1048 | "\n", 1049 | "def preprocess_quickdraw_ndjson(data_path, output_path, occlusion_probability=0.3):\n", 1050 | " incomplete_dir = os.path.join(output_path, \"incomplete\")\n", 1051 | " complete_dir = os.path.join(output_path, \"complete\")\n", 1052 | "\n", 1053 | " os.makedirs(incomplete_dir, exist_ok=True)\n", 1054 | " os.makedirs(complete_dir, exist_ok=True)\n", 1055 | "\n", 1056 | " for filename in os.listdir(data_path):\n", 1057 | " if filename.endswith('.ndjson'):\n", 1058 | " with open(os.path.join(data_path, filename)) as f:\n", 1059 | " sketches = ndjson.load(f)\n", 1060 | " for i, sketch_data in enumerate(sketches):\n", 1061 | " sketch = sketch_data['drawing']\n", 1062 | " img = np.zeros((256, 256), dtype=np.uint8)\n", 1063 | "\n", 1064 | " # Convert sketch to a numpy array and draw it\n", 1065 | " for stroke in sketch:\n", 1066 | " points = np.array(list(zip(stroke[0], stroke[1])), dtype=np.int32)\n", 1067 | " cv2.polylines(img, [points], False, 255, 2)\n", 1068 | "\n", 1069 | " # Apply random occlusion\n", 1070 | " if np.random.rand() < occlusion_probability:\n", 1071 | " occlusion_mask = np.random.randint(0, 2, img.shape).astype(np.uint8)\n", 1072 | " incomplete_img = img * occlusion_mask\n", 1073 | " else:\n", 1074 | " incomplete_img = img\n", 1075 | "\n", 1076 | " # Save complete and incomplete images\n", 1077 | " complete_path = os.path.join(complete_dir, f\"{filename.split('.')[0]}_{i}.png\")\n", 1078 | " incomplete_path = os.path.join(incomplete_dir, f\"{filename.split('.')[0]}_{i}.png\")\n", 1079 | " cv2.imwrite(complete_path, img)\n", 1080 | " cv2.imwrite(incomplete_path, incomplete_img)\n", 1081 | "\n", 1082 | "# Example usage\n", 1083 | "data_path = \"quickdraw_data\" # Path to your .ndjson files\n", 1084 | "output_path = \"preprocessed_data\"\n", 1085 | "preprocess_quickdraw_ndjson(data_path, output_path)\n" 1086 | ], 1087 | "metadata": { 1088 | "id": "nbEGnZWazjBv" 1089 | }, 1090 | "execution_count": null, 1091 | "outputs": [] 1092 | }, 1093 | { 1094 | "cell_type": "code", 1095 | "source": [ 1096 | "import tensorflow as tf\n", 1097 | "from tensorflow.keras import layers, Model\n", 1098 | "\n", 1099 | "def unet_model(input_shape=(256, 256, 1)):\n", 1100 | " inputs = layers.Input(shape=input_shape)\n", 1101 | "\n", 1102 | " c1 = layers.Conv2D(64, (3, 3), activation='relu', padding='same')(inputs)\n", 1103 | " c1 = layers.Conv2D(64, (3, 3), activation='relu', padding='same')(c1)\n", 1104 | " p1 = layers.MaxPooling2D((2, 2))(c1)\n", 1105 | "\n", 1106 | " c2 = layers.Conv2D(128, (3, 3), activation='relu', padding='same')(p1)\n", 1107 | " c2 = layers.Conv2D(128, (3, 3), activation='relu', padding='same')(c2)\n", 1108 | " p2 = layers.MaxPooling2D((2, 2))(c2)\n", 1109 | "\n", 1110 | " c3 = layers.Conv2D(256, (3, 3), activation='relu', padding='same')(p2)\n", 1111 | " c3 = layers.Conv2D(256, (3, 3), activation='relu', padding='same')(c3)\n", 1112 | " p3 = layers.MaxPooling2D((2, 2))(c3)\n", 1113 | "\n", 1114 | " c4 = layers.Conv2D(512, (3, 3), activation='relu', padding='same')(p3)\n", 1115 | " c4 = layers.Conv2D(512, (3, 3), activation='relu', padding='same')(c4)\n", 1116 | "\n", 1117 | " u5 = layers.Conv2DTranspose(256, (2, 2), strides=(2, 2), padding='same')(c4)\n", 1118 | " u5 = layers.concatenate([u5, c3])\n", 1119 | " c5 = layers.Conv2D(256, (3, 3), activation='relu', padding='same')(u5)\n", 1120 | " c5 = layers.Conv2D(256, (3, 3), activation='relu', padding='same')(c5)\n", 1121 | "\n", 1122 | " u6 = layers.Conv2DTranspose(128, (2, 2), strides=(2, 2), padding='same')(c5)\n", 1123 | " u6 = layers.concatenate([u6, c2])\n", 1124 | " c6 = layers.Conv2D(128, (3, 3), activation='relu', padding='same')(u6)\n", 1125 | " c6 = layers.Conv2D(128, (3, 3), activation='relu', padding='same')(c6)\n", 1126 | "\n", 1127 | " u7 = layers.Conv2DTranspose(64, (2, 2), strides=(2, 2), padding='same')(c6)\n", 1128 | " u7 = layers.concatenate([u7, c1])\n", 1129 | " c7 = layers.Conv2D(64, (3, 3), activation='relu', padding='same')(u7)\n", 1130 | " c7 = layers.Conv2D(64, (3, 3), activation='relu', padding='same')(c7)\n", 1131 | "\n", 1132 | " outputs = layers.Conv2D(1, (1, 1), activation='sigmoid')(c7)\n", 1133 | "\n", 1134 | " model = Model(inputs=[inputs], outputs=[outputs])\n", 1135 | "\n", 1136 | " model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])\n", 1137 | "\n", 1138 | " return model\n", 1139 | "\n", 1140 | "# Instantiate the model\n", 1141 | "model = unet_model()\n", 1142 | "\n", 1143 | "# Summary of the model\n", 1144 | "model.summary()\n" 1145 | ], 1146 | "metadata": { 1147 | "colab": { 1148 | "base_uri": "https://localhost:8080/", 1149 | "height": 1000 1150 | }, 1151 | "id": "A_nPK3fRzlPl", 1152 | "outputId": "3bc2b76d-b70f-494d-cf0d-19acd793991e" 1153 | }, 1154 | "execution_count": null, 1155 | "outputs": [ 1156 | { 1157 | "output_type": "display_data", 1158 | "data": { 1159 | "text/plain": [ 1160 | "\u001b[1mModel: \"functional\"\u001b[0m\n" 1161 | ], 1162 | "text/html": [ 1163 | "
Model: \"functional\"\n",
1164 |               "
\n" 1165 | ] 1166 | }, 1167 | "metadata": {} 1168 | }, 1169 | { 1170 | "output_type": "display_data", 1171 | "data": { 1172 | "text/plain": [ 1173 | "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n", 1174 | "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mConnected to \u001b[0m\u001b[1m \u001b[0m┃\n", 1175 | "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n", 1176 | "│ input_layer (\u001b[38;5;33mInputLayer\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m1\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │ - │\n", 1177 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1178 | "│ conv2d (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m640\u001b[0m │ input_layer[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1179 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1180 | "│ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m36,928\u001b[0m │ conv2d[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1181 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1182 | "│ max_pooling2d │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │ conv2d_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1183 | "│ (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ │ │ │\n", 1184 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1185 | "│ conv2d_2 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m73,856\u001b[0m │ max_pooling2d[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1186 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1187 | "│ conv2d_3 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m147,584\u001b[0m │ conv2d_2[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1188 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1189 | "│ max_pooling2d_1 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │ conv2d_3[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1190 | "│ (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ │ │ │\n", 1191 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1192 | "│ conv2d_4 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m295,168\u001b[0m │ max_pooling2d_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1193 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1194 | "│ conv2d_5 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m590,080\u001b[0m │ conv2d_4[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1195 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1196 | "│ max_pooling2d_2 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │ conv2d_5[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1197 | "│ (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ │ │ │\n", 1198 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1199 | "│ conv2d_6 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m1,180,160\u001b[0m │ max_pooling2d_2[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1200 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1201 | "│ conv2d_7 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m2,359,808\u001b[0m │ conv2d_6[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1202 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1203 | "│ conv2d_transpose │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m524,544\u001b[0m │ conv2d_7[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1204 | "│ (\u001b[38;5;33mConv2DTranspose\u001b[0m) │ │ │ │\n", 1205 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1206 | "│ concatenate (\u001b[38;5;33mConcatenate\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │ conv2d_transpose[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m… │\n", 1207 | "│ │ │ │ conv2d_5[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1208 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1209 | "│ conv2d_8 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m1,179,904\u001b[0m │ concatenate[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1210 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1211 | "│ conv2d_9 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m64\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m590,080\u001b[0m │ conv2d_8[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1212 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1213 | "│ conv2d_transpose_1 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m131,200\u001b[0m │ conv2d_9[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1214 | "│ (\u001b[38;5;33mConv2DTranspose\u001b[0m) │ │ │ │\n", 1215 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1216 | "│ concatenate_1 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │ conv2d_transpose_1[\u001b[38;5;34m0\u001b[0m]… │\n", 1217 | "│ (\u001b[38;5;33mConcatenate\u001b[0m) │ │ │ conv2d_3[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1218 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1219 | "│ conv2d_10 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m295,040\u001b[0m │ concatenate_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1220 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1221 | "│ conv2d_11 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m147,584\u001b[0m │ conv2d_10[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1222 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1223 | "│ conv2d_transpose_2 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m32,832\u001b[0m │ conv2d_11[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1224 | "│ (\u001b[38;5;33mConv2DTranspose\u001b[0m) │ │ │ │\n", 1225 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1226 | "│ concatenate_2 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │ conv2d_transpose_2[\u001b[38;5;34m0\u001b[0m]… │\n", 1227 | "│ (\u001b[38;5;33mConcatenate\u001b[0m) │ │ │ conv2d_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1228 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1229 | "│ conv2d_12 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m73,792\u001b[0m │ concatenate_2[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1230 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1231 | "│ conv2d_13 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m36,928\u001b[0m │ conv2d_12[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1232 | "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n", 1233 | "│ conv2d_14 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m256\u001b[0m, \u001b[38;5;34m1\u001b[0m) │ \u001b[38;5;34m65\u001b[0m │ conv2d_13[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", 1234 | "└───────────────────────────┴────────────────────────┴────────────────┴────────────────────────┘\n" 1235 | ], 1236 | "text/html": [ 1237 | "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
1238 |               "┃ Layer (type)               Output Shape                   Param #  Connected to           ┃\n",
1239 |               "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
1240 |               "│ input_layer (InputLayer)  │ (None, 256, 256, 1)    │              0 │ -                      │\n",
1241 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1242 |               "│ conv2d (Conv2D)           │ (None, 256, 256, 64)   │            640 │ input_layer[0][0]      │\n",
1243 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1244 |               "│ conv2d_1 (Conv2D)         │ (None, 256, 256, 64)   │         36,928 │ conv2d[0][0]           │\n",
1245 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1246 |               "│ max_pooling2d             │ (None, 128, 128, 64)   │              0 │ conv2d_1[0][0]         │\n",
1247 |               "│ (MaxPooling2D)            │                        │                │                        │\n",
1248 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1249 |               "│ conv2d_2 (Conv2D)         │ (None, 128, 128, 128)  │         73,856 │ max_pooling2d[0][0]    │\n",
1250 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1251 |               "│ conv2d_3 (Conv2D)         │ (None, 128, 128, 128)  │        147,584 │ conv2d_2[0][0]         │\n",
1252 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1253 |               "│ max_pooling2d_1           │ (None, 64, 64, 128)    │              0 │ conv2d_3[0][0]         │\n",
1254 |               "│ (MaxPooling2D)            │                        │                │                        │\n",
1255 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1256 |               "│ conv2d_4 (Conv2D)         │ (None, 64, 64, 256)    │        295,168 │ max_pooling2d_1[0][0]  │\n",
1257 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1258 |               "│ conv2d_5 (Conv2D)         │ (None, 64, 64, 256)    │        590,080 │ conv2d_4[0][0]         │\n",
1259 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1260 |               "│ max_pooling2d_2           │ (None, 32, 32, 256)    │              0 │ conv2d_5[0][0]         │\n",
1261 |               "│ (MaxPooling2D)            │                        │                │                        │\n",
1262 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1263 |               "│ conv2d_6 (Conv2D)         │ (None, 32, 32, 512)    │      1,180,160 │ max_pooling2d_2[0][0]  │\n",
1264 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1265 |               "│ conv2d_7 (Conv2D)         │ (None, 32, 32, 512)    │      2,359,808 │ conv2d_6[0][0]         │\n",
1266 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1267 |               "│ conv2d_transpose          │ (None, 64, 64, 256)    │        524,544 │ conv2d_7[0][0]         │\n",
1268 |               "│ (Conv2DTranspose)         │                        │                │                        │\n",
1269 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1270 |               "│ concatenate (Concatenate) │ (None, 64, 64, 512)    │              0 │ conv2d_transpose[0][0… │\n",
1271 |               "│                           │                        │                │ conv2d_5[0][0]         │\n",
1272 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1273 |               "│ conv2d_8 (Conv2D)         │ (None, 64, 64, 256)    │      1,179,904 │ concatenate[0][0]      │\n",
1274 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1275 |               "│ conv2d_9 (Conv2D)         │ (None, 64, 64, 256)    │        590,080 │ conv2d_8[0][0]         │\n",
1276 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1277 |               "│ conv2d_transpose_1        │ (None, 128, 128, 128)  │        131,200 │ conv2d_9[0][0]         │\n",
1278 |               "│ (Conv2DTranspose)         │                        │                │                        │\n",
1279 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1280 |               "│ concatenate_1             │ (None, 128, 128, 256)  │              0 │ conv2d_transpose_1[0]… │\n",
1281 |               "│ (Concatenate)             │                        │                │ conv2d_3[0][0]         │\n",
1282 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1283 |               "│ conv2d_10 (Conv2D)        │ (None, 128, 128, 128)  │        295,040 │ concatenate_1[0][0]    │\n",
1284 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1285 |               "│ conv2d_11 (Conv2D)        │ (None, 128, 128, 128)  │        147,584 │ conv2d_10[0][0]        │\n",
1286 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1287 |               "│ conv2d_transpose_2        │ (None, 256, 256, 64)   │         32,832 │ conv2d_11[0][0]        │\n",
1288 |               "│ (Conv2DTranspose)         │                        │                │                        │\n",
1289 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1290 |               "│ concatenate_2             │ (None, 256, 256, 128)  │              0 │ conv2d_transpose_2[0]… │\n",
1291 |               "│ (Concatenate)             │                        │                │ conv2d_1[0][0]         │\n",
1292 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1293 |               "│ conv2d_12 (Conv2D)        │ (None, 256, 256, 64)   │         73,792 │ concatenate_2[0][0]    │\n",
1294 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1295 |               "│ conv2d_13 (Conv2D)        │ (None, 256, 256, 64)   │         36,928 │ conv2d_12[0][0]        │\n",
1296 |               "├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤\n",
1297 |               "│ conv2d_14 (Conv2D)        │ (None, 256, 256, 1)    │             65 │ conv2d_13[0][0]        │\n",
1298 |               "└───────────────────────────┴────────────────────────┴────────────────┴────────────────────────┘\n",
1299 |               "
\n" 1300 | ] 1301 | }, 1302 | "metadata": {} 1303 | }, 1304 | { 1305 | "output_type": "display_data", 1306 | "data": { 1307 | "text/plain": [ 1308 | "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m7,696,193\u001b[0m (29.36 MB)\n" 1309 | ], 1310 | "text/html": [ 1311 | "
 Total params: 7,696,193 (29.36 MB)\n",
1312 |               "
\n" 1313 | ] 1314 | }, 1315 | "metadata": {} 1316 | }, 1317 | { 1318 | "output_type": "display_data", 1319 | "data": { 1320 | "text/plain": [ 1321 | "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m7,696,193\u001b[0m (29.36 MB)\n" 1322 | ], 1323 | "text/html": [ 1324 | "
 Trainable params: 7,696,193 (29.36 MB)\n",
1325 |               "
\n" 1326 | ] 1327 | }, 1328 | "metadata": {} 1329 | }, 1330 | { 1331 | "output_type": "display_data", 1332 | "data": { 1333 | "text/plain": [ 1334 | "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" 1335 | ], 1336 | "text/html": [ 1337 | "
 Non-trainable params: 0 (0.00 B)\n",
1338 |               "
\n" 1339 | ] 1340 | }, 1341 | "metadata": {} 1342 | } 1343 | ] 1344 | }, 1345 | { 1346 | "cell_type": "code", 1347 | "source": [ 1348 | "import os\n", 1349 | "\n", 1350 | "complete_dir = \"preprocessed_data/complete\"\n", 1351 | "incomplete_dir = \"preprocessed_data/incomplete\"\n", 1352 | "\n", 1353 | "print(f\"Number of images in 'complete': {len(os.listdir(complete_dir))}\")\n", 1354 | "print(f\"Number of images in 'incomplete': {len(os.listdir(incomplete_dir))}\")\n" 1355 | ], 1356 | "metadata": { 1357 | "colab": { 1358 | "base_uri": "https://localhost:8080/" 1359 | }, 1360 | "id": "EP3ykTJu8vlP", 1361 | "outputId": "409f2533-12af-4097-900e-2248c8daa7df" 1362 | }, 1363 | "execution_count": null, 1364 | "outputs": [ 1365 | { 1366 | "output_type": "stream", 1367 | "name": "stdout", 1368 | "text": [ 1369 | "Number of images in 'complete': 686210\n", 1370 | "Number of images in 'incomplete': 686210\n" 1371 | ] 1372 | } 1373 | ] 1374 | }, 1375 | { 1376 | "cell_type": "code", 1377 | "source": [ 1378 | "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", 1379 | "from tensorflow.keras.callbacks import ModelCheckpoint\n", 1380 | "\n", 1381 | "# Data augmentation configuration\n", 1382 | "datagen = ImageDataGenerator(\n", 1383 | " rotation_range=20,\n", 1384 | " width_shift_range=0.1,\n", 1385 | " height_shift_range=0.1,\n", 1386 | " shear_range=0.1,\n", 1387 | " zoom_range=0.2,\n", 1388 | " horizontal_flip=True,\n", 1389 | " fill_mode='nearest',\n", 1390 | " validation_split=0.2 # 20% of the data used for validation\n", 1391 | ")\n", 1392 | "\n", 1393 | "def train_model(model, data_dir, batch_size=32, epochs=50):\n", 1394 | " # Training data generator\n", 1395 | " train_gen = datagen.flow_from_directory(\n", 1396 | " data_dir,\n", 1397 | " target_size=(256, 256),\n", 1398 | " batch_size=batch_size,\n", 1399 | " class_mode='input', # The input and output are the same type\n", 1400 | " color_mode='grayscale',\n", 1401 | " subset='training',\n", 1402 | " classes=['incomplete'] # Only look in the 'incomplete' folder\n", 1403 | " )\n", 1404 | "\n", 1405 | " # Validation data generator\n", 1406 | " val_gen = datagen.flow_from_directory(\n", 1407 | " data_dir,\n", 1408 | " target_size=(256, 256),\n", 1409 | " batch_size=batch_size,\n", 1410 | " class_mode='input', # The input and output are the same type\n", 1411 | " color_mode='grayscale',\n", 1412 | " subset='validation',\n", 1413 | " classes=['incomplete'] # Only look in the 'incomplete' folder\n", 1414 | " )\n", 1415 | "\n", 1416 | " # Checkpoint to save the best model\n", 1417 | " checkpoint = ModelCheckpoint(\"unet_model.keras\", monitor='val_loss', verbose=1, save_best_only=True)\n", 1418 | "\n", 1419 | " # Training the model\n", 1420 | " model.fit(\n", 1421 | " train_gen,\n", 1422 | " steps_per_epoch=len(train_gen),\n", 1423 | " validation_data=val_gen,\n", 1424 | " validation_steps=len(val_gen),\n", 1425 | " epochs=epochs,\n", 1426 | " callbacks=[checkpoint]\n", 1427 | " )\n", 1428 | "\n", 1429 | "# Assuming 'model' is your U-Net model already defined\n", 1430 | "data_dir = \"preprocessed_data\" # Directory containing 'complete' and 'incomplete' folders\n", 1431 | "train_model(model, data_dir)\n" 1432 | ], 1433 | "metadata": { 1434 | "colab": { 1435 | "base_uri": "https://localhost:8080/" 1436 | }, 1437 | "id": "3JiV_5jwznCg", 1438 | "outputId": "c01a1dd2-a3f8-4f30-8d95-e106ce2ffb78" 1439 | }, 1440 | "execution_count": null, 1441 | "outputs": [ 1442 | { 1443 | "metadata": { 1444 | "tags": null 1445 | }, 1446 | "name": "stdout", 1447 | "output_type": "stream", 1448 | "text": [ 1449 | "Found 548968 images belonging to 1 classes.\n", 1450 | "Found 137242 images belonging to 1 classes.\n", 1451 | "Epoch 1/50\n" 1452 | ] 1453 | }, 1454 | { 1455 | "metadata": { 1456 | "tags": null 1457 | }, 1458 | "name": "stderr", 1459 | "output_type": "stream", 1460 | "text": [ 1461 | "/usr/local/lib/python3.10/dist-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:121: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.\n", 1462 | " self._warn_if_super_not_called()\n" 1463 | ] 1464 | }, 1465 | { 1466 | "output_type": "stream", 1467 | "name": "stdout", 1468 | "text": [ 1469 | "\u001b[1m 175/17156\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m5:17:26\u001b[0m 1s/step - accuracy: 0.5484 - loss: nan" 1470 | ] 1471 | } 1472 | ] 1473 | }, 1474 | { 1475 | "cell_type": "code", 1476 | "source": [ 1477 | "import cv2\n", 1478 | "import numpy as np\n", 1479 | "import matplotlib.pyplot as plt\n", 1480 | "from tensorflow.keras.models import load_model\n", 1481 | "\n", 1482 | "def complete_curve_with_model(image_path, model_path=\"unet_model.h5\"):\n", 1483 | " model = load_model(model_path)\n", 1484 | " image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)\n", 1485 | " image = cv2.resize(image, (256, 256))\n", 1486 | " image = np.expand_dims(image, axis=-1)\n", 1487 | " image = np.expand_dims(image, axis=0)\n", 1488 | "\n", 1489 | " completed_image = model.predict(image)\n", 1490 | " completed_image = completed_image.squeeze()\n", 1491 | "\n", 1492 | " plt.figure(figsize=(10, 5))\n", 1493 | " plt.subplot(1, 2, 1)\n", 1494 | " plt.title(\"Incomplete Image\")\n", 1495 | " plt.imshow(image.squeeze(), cmap='gray')\n", 1496 | "\n", 1497 | " plt.subplot(1, 2, 2)\n", 1498 | " plt.title(\"Completed Image\")\n", 1499 | " plt.imshow(completed_image, cmap='gray')\n", 1500 | "\n", 1501 | " plt.show()\n", 1502 | "\n", 1503 | "# Example usage\n", 1504 | "image_path = \"path_to_your_incomplete_image.png\" # Replace with your image file path\n", 1505 | "complete_curve_with_model(image_path)\n" 1506 | ], 1507 | "metadata": { 1508 | "id": "fUccGyjRzquK" 1509 | }, 1510 | "execution_count": null, 1511 | "outputs": [] 1512 | } 1513 | ] 1514 | } --------------------------------------------------------------------------------