diff --git a/fork-of-fork-of-bmsv2-tfrecords.ipynb b/fork-of-fork-of-bmsv2-tfrecords.ipynb
new file mode 100644
index 0000000..303b117
--- /dev/null
+++ b/fork-of-fork-of-bmsv2-tfrecords.ipynb
@@ -0,0 +1,2715 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "everyday-animal",
+ "metadata": {
+ "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
+ "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:12:31.687369Z",
+ "iopub.status.busy": "2021-05-09T04:12:31.686806Z",
+ "iopub.status.idle": "2021-05-09T04:12:37.646584Z",
+ "shell.execute_reply": "2021-05-09T04:12:37.645877Z"
+ },
+ "papermill": {
+ "duration": 5.974683,
+ "end_time": "2021-05-09T04:12:37.646756",
+ "exception": false,
+ "start_time": "2021-05-09T04:12:31.672073",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "import tensorflow as tf\n",
+ "from tqdm.notebook import tqdm\n",
+ "\n",
+ "import cv2, os, pickle\n",
+ "\n",
+ "\n",
+ "import joblib\n",
+ "from multiprocessing import cpu_count"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "acute-figure",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:12:37.669563Z",
+ "iopub.status.busy": "2021-05-09T04:12:37.668838Z",
+ "iopub.status.idle": "2021-05-09T04:12:37.671800Z",
+ "shell.execute_reply": "2021-05-09T04:12:37.671190Z"
+ },
+ "papermill": {
+ "duration": 0.016004,
+ "end_time": "2021-05-09T04:12:37.671972",
+ "exception": false,
+ "start_time": "2021-05-09T04:12:37.655968",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "DEBUG = False\n",
+ "IMG_HEIGHT = 300\n",
+ "IMG_WIDTH = 480\n",
+ "VAL_SIZE = int(100) if DEBUG else int(100e3) # 100K validation molecules\n",
+ "CHUNK_SIZE = 40000 # to get ~100MB TFRecords\n",
+ "\n",
+ "MAX_INCHI_LEN = 200 # maximum InChI length to prevent to much padding"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "cognitive-stereo",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:12:37.695962Z",
+ "iopub.status.busy": "2021-05-09T04:12:37.695337Z",
+ "iopub.status.idle": "2021-05-09T04:12:47.631323Z",
+ "shell.execute_reply": "2021-05-09T04:12:47.631811Z"
+ },
+ "papermill": {
+ "duration": 9.951307,
+ "end_time": "2021-05-09T04:12:47.631991",
+ "exception": false,
+ "start_time": "2021-05-09T04:12:37.680684",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " image_id | \n",
+ " InChI | \n",
+ " InChI_len | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 000011a64c74 | \n",
+ " InChI=1S/C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12... | \n",
+ " 81 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 000019cc0cd2 | \n",
+ " InChI=1S/C21H30O4/c1-12(22)25-14-6-8-20(2)13(1... | \n",
+ " 155 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 0000252b6d2b | \n",
+ " InChI=1S/C24H23N5O4/c1-14-13-15(7-8-17(14)28-1... | \n",
+ " 158 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " image_id InChI InChI_len\n",
+ "0 000011a64c74 InChI=1S/C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12... 81\n",
+ "1 000019cc0cd2 InChI=1S/C21H30O4/c1-12(22)25-14-6-8-20(2)13(1... 155\n",
+ "2 0000252b6d2b InChI=1S/C24H23N5O4/c1-14-13-15(7-8-17(14)28-1... 158"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "if DEBUG:\n",
+ " train = pd.read_csv('/kaggle/input/bms-molecular-translation/train_labels.csv', dtype={ 'image_id': 'string', 'InChI': 'string' }).head(int(1e3))\n",
+ "else:\n",
+ " train = pd.read_csv('/kaggle/input/bms-molecular-translation/train_labels.csv', dtype={ 'image_id': 'string', 'InChI': 'string' })\n",
+ "\n",
+ "# Drop all InChI longer than MAX_INCHI_LEN - 2, InChI , remove 'InChI=1S/' at start\n",
+ "train['InChI_len'] = train['InChI'].apply(len).astype(np.uint16)\n",
+ "train = train.loc[train['InChI_len'] <= MAX_INCHI_LEN - 2 + 9].reset_index(drop=True)\n",
+ "train.head(3)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "expanded-earth",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:12:47.657525Z",
+ "iopub.status.busy": "2021-05-09T04:12:47.656851Z",
+ "iopub.status.idle": "2021-05-09T04:12:49.197244Z",
+ "shell.execute_reply": "2021-05-09T04:12:49.197679Z"
+ },
+ "papermill": {
+ "duration": 1.555816,
+ "end_time": "2021-05-09T04:12:49.197854",
+ "exception": false,
+ "start_time": "2021-05-09T04:12:47.642038",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " image_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 00000d2a601c | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 00001f7fc849 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 000037687605 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " image_id\n",
+ "0 00000d2a601c\n",
+ "1 00001f7fc849\n",
+ "2 000037687605"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "if DEBUG:\n",
+ " test = pd.read_csv('/kaggle/input/bms-molecular-translation/sample_submission.csv', usecols=['image_id'], dtype={ 'image_id': 'string' }).head(int(1e3))\n",
+ "else:\n",
+ " test = pd.read_csv('/kaggle/input/bms-molecular-translation/sample_submission.csv', usecols=['image_id'], dtype={ 'image_id': 'string' })\n",
+ "test.head(3)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "qualified-marking",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:12:49.243864Z",
+ "iopub.status.busy": "2021-05-09T04:12:49.222696Z",
+ "iopub.status.idle": "2021-05-09T04:12:55.373165Z",
+ "shell.execute_reply": "2021-05-09T04:12:55.373597Z"
+ },
+ "papermill": {
+ "duration": 6.16619,
+ "end_time": "2021-05-09T04:12:55.373760",
+ "exception": false,
+ "start_time": "2021-05-09T04:12:49.207570",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "0651cb95f8a744568a612c2fb79bb367",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/2371184 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def get_vocabulary():\n",
+ " tokens = ['', '', '']\n",
+ " vocabulary = set()\n",
+ " for s in tqdm(train['InChI'].values):\n",
+ " vocabulary.update(s)\n",
+ " return tokens + list(vocabulary)\n",
+ "\n",
+ "vocabulary = get_vocabulary()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "polyphonic-absorption",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:12:55.399739Z",
+ "iopub.status.busy": "2021-05-09T04:12:55.399132Z",
+ "iopub.status.idle": "2021-05-09T04:12:55.405239Z",
+ "shell.execute_reply": "2021-05-09T04:12:55.404734Z"
+ },
+ "papermill": {
+ "duration": 0.02122,
+ "end_time": "2021-05-09T04:12:55.405421",
+ "exception": false,
+ "start_time": "2021-05-09T04:12:55.384201",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Save vocabulary mappings\n",
+ "# character -> integer\n",
+ "vocabulary_to_int = dict(zip(vocabulary, np.arange(len(vocabulary), dtype=np.int8)))\n",
+ "with open('vocabulary_to_int.pkl', 'wb') as handle:\n",
+ " pickle.dump(vocabulary_to_int, handle)\n",
+ "\n",
+ "# integer -> character\n",
+ "int_to_vocabulary = dict(zip(np.arange(len(vocabulary), dtype=np.int8), vocabulary))\n",
+ "with open('int_to_vocabulary.pkl', 'wb') as handle:\n",
+ " pickle.dump(int_to_vocabulary, handle)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "drawn-syndrome",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:12:55.431014Z",
+ "iopub.status.busy": "2021-05-09T04:12:55.430441Z",
+ "iopub.status.idle": "2021-05-09T04:12:58.267030Z",
+ "shell.execute_reply": "2021-05-09T04:12:58.266540Z"
+ },
+ "papermill": {
+ "duration": 2.851482,
+ "end_time": "2021-05-09T04:12:58.267156",
+ "exception": false,
+ "start_time": "2021-05-09T04:12:55.415674",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " image_id | \n",
+ " InChI | \n",
+ " InChI_len | \n",
+ " InChIClean | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 000011a64c74 | \n",
+ " InChI=1S/C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12... | \n",
+ " 81 | \n",
+ " C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12(13)11(4)... | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 000019cc0cd2 | \n",
+ " InChI=1S/C21H30O4/c1-12(22)25-14-6-8-20(2)13(1... | \n",
+ " 155 | \n",
+ " C21H30O4/c1-12(22)25-14-6-8-20(2)13(10-14)11-1... | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 0000252b6d2b | \n",
+ " InChI=1S/C24H23N5O4/c1-14-13-15(7-8-17(14)28-1... | \n",
+ " 158 | \n",
+ " C24H23N5O4/c1-14-13-15(7-8-17(14)28-12-10-20(2... | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 000026b49b7e | \n",
+ " InChI=1S/C17H24N2O4S/c1-12(20)18-13(14-7-6-10-... | \n",
+ " 147 | \n",
+ " C17H24N2O4S/c1-12(20)18-13(14-7-6-10-24-14)11-... | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 000026fc6c36 | \n",
+ " InChI=1S/C10H19N3O2S/c1-15-10(14)12-8-4-6-13(7... | \n",
+ " 96 | \n",
+ " C10H19N3O2S/c1-15-10(14)12-8-4-6-13(7-8)5-2-3-... | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " image_id InChI InChI_len \\\n",
+ "0 000011a64c74 InChI=1S/C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12... 81 \n",
+ "1 000019cc0cd2 InChI=1S/C21H30O4/c1-12(22)25-14-6-8-20(2)13(1... 155 \n",
+ "2 0000252b6d2b InChI=1S/C24H23N5O4/c1-14-13-15(7-8-17(14)28-1... 158 \n",
+ "3 000026b49b7e InChI=1S/C17H24N2O4S/c1-12(20)18-13(14-7-6-10-... 147 \n",
+ "4 000026fc6c36 InChI=1S/C10H19N3O2S/c1-15-10(14)12-8-4-6-13(7... 96 \n",
+ "\n",
+ " InChIClean \n",
+ "0 C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12(13)11(4)... \n",
+ "1 C21H30O4/c1-12(22)25-14-6-8-20(2)13(10-14)11-1... \n",
+ "2 C24H23N5O4/c1-14-13-15(7-8-17(14)28-12-10-20(2... \n",
+ "3 C17H24N2O4S/c1-12(20)18-13(14-7-6-10-24-14)11-... \n",
+ "4 C10H19N3O2S/c1-15-10(14)12-8-4-6-13(7-8)5-2-3-... "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train['InChIClean'] = train['InChI'].apply(lambda InChI: '/'.join(InChI.split('=')[1].split('/')[1:]))\n",
+ "train.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "international-houston",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:12:58.316134Z",
+ "iopub.status.busy": "2021-05-09T04:12:58.315205Z",
+ "iopub.status.idle": "2021-05-09T04:15:10.397878Z",
+ "shell.execute_reply": "2021-05-09T04:15:10.398412Z"
+ },
+ "papermill": {
+ "duration": 132.120817,
+ "end_time": "2021-05-09T04:15:10.398741",
+ "exception": false,
+ "start_time": "2021-05-09T04:12:58.277924",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "339b335740854da7b7f220ab6e1a5796",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/2371184 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " image_id | \n",
+ " InChI | \n",
+ " InChI_len | \n",
+ " InChIClean | \n",
+ " InChI_int | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 000011a64c74 | \n",
+ " InChI=1S/C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12... | \n",
+ " 81 | \n",
+ " C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12(13)11(4)... | \n",
+ " [0, 24, 20, 11, 32, 18, 35, 38, 9, 22, 31, 20,... | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 000019cc0cd2 | \n",
+ " InChI=1S/C21H30O4/c1-12(22)25-14-6-8-20(2)13(1... | \n",
+ " 155 | \n",
+ " C21H30O4/c1-12(22)25-14-6-8-20(2)13(10-14)11-1... | \n",
+ " [0, 24, 18, 20, 32, 11, 35, 38, 6, 22, 31, 20,... | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 0000252b6d2b | \n",
+ " InChI=1S/C24H23N5O4/c1-14-13-15(7-8-17(14)28-1... | \n",
+ " 158 | \n",
+ " C24H23N5O4/c1-14-13-15(7-8-17(14)28-12-10-20(2... | \n",
+ " [0, 24, 18, 6, 32, 18, 11, 36, 15, 38, 6, 22, ... | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 000026b49b7e | \n",
+ " InChI=1S/C17H24N2O4S/c1-12(20)18-13(14-7-6-10-... | \n",
+ " 147 | \n",
+ " C17H24N2O4S/c1-12(20)18-13(14-7-6-10-24-14)11-... | \n",
+ " [0, 24, 20, 10, 32, 18, 6, 36, 18, 38, 6, 9, 2... | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 000026fc6c36 | \n",
+ " InChI=1S/C10H19N3O2S/c1-15-10(14)12-8-4-6-13(7... | \n",
+ " 96 | \n",
+ " C10H19N3O2S/c1-15-10(14)12-8-4-6-13(7-8)5-2-3-... | \n",
+ " [0, 24, 20, 35, 32, 20, 14, 36, 11, 38, 18, 9,... | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " image_id InChI InChI_len \\\n",
+ "0 000011a64c74 InChI=1S/C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12... 81 \n",
+ "1 000019cc0cd2 InChI=1S/C21H30O4/c1-12(22)25-14-6-8-20(2)13(1... 155 \n",
+ "2 0000252b6d2b InChI=1S/C24H23N5O4/c1-14-13-15(7-8-17(14)28-1... 158 \n",
+ "3 000026b49b7e InChI=1S/C17H24N2O4S/c1-12(20)18-13(14-7-6-10-... 147 \n",
+ "4 000026fc6c36 InChI=1S/C10H19N3O2S/c1-15-10(14)12-8-4-6-13(7... 96 \n",
+ "\n",
+ " InChIClean \\\n",
+ "0 C13H20OS/c1-9(2)8-15-13-6-5-10(3)7-12(13)11(4)... \n",
+ "1 C21H30O4/c1-12(22)25-14-6-8-20(2)13(10-14)11-1... \n",
+ "2 C24H23N5O4/c1-14-13-15(7-8-17(14)28-12-10-20(2... \n",
+ "3 C17H24N2O4S/c1-12(20)18-13(14-7-6-10-24-14)11-... \n",
+ "4 C10H19N3O2S/c1-15-10(14)12-8-4-6-13(7-8)5-2-3-... \n",
+ "\n",
+ " InChI_int \n",
+ "0 [0, 24, 20, 11, 32, 18, 35, 38, 9, 22, 31, 20,... \n",
+ "1 [0, 24, 18, 20, 32, 11, 35, 38, 6, 22, 31, 20,... \n",
+ "2 [0, 24, 18, 6, 32, 18, 11, 36, 15, 38, 6, 22, ... \n",
+ "3 [0, 24, 20, 10, 32, 18, 6, 36, 18, 38, 6, 9, 2... \n",
+ "4 [0, 24, 20, 35, 32, 20, 14, 36, 11, 38, 18, 9,... "
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# convert the InChI strings to integer lists\n",
+ "# start/end/pad tokens are used\n",
+ "def inchi_str2int(InChI):\n",
+ " res = []\n",
+ " res.append(vocabulary_to_int.get(''))\n",
+ " for c in InChI:\n",
+ " res.append(vocabulary_to_int.get(c))\n",
+ " \n",
+ " res.append(vocabulary_to_int.get(''))\n",
+ " while len(res) < MAX_INCHI_LEN: \n",
+ " res.append(vocabulary_to_int.get(''))\n",
+ " \n",
+ " return np.array(res, dtype=np.uint8)\n",
+ "\n",
+ "tqdm.pandas() # progress_apply\n",
+ "train['InChI_int'] = train['InChIClean'].progress_apply(inchi_str2int)\n",
+ "train.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "written-content",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:15:10.426102Z",
+ "iopub.status.busy": "2021-05-09T04:15:10.425164Z",
+ "iopub.status.idle": "2021-05-09T04:15:10.948802Z",
+ "shell.execute_reply": "2021-05-09T04:15:10.949210Z"
+ },
+ "papermill": {
+ "duration": 0.539162,
+ "end_time": "2021-05-09T04:15:10.949414",
+ "exception": false,
+ "start_time": "2021-05-09T04:15:10.410252",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "val = train.iloc[-VAL_SIZE:].reset_index(drop=True)\n",
+ "train = train.iloc[:-VAL_SIZE].reset_index(drop=True)\n",
+ "N_IMGS = len(train)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "other-thanks",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:15:10.976293Z",
+ "iopub.status.busy": "2021-05-09T04:15:10.975379Z",
+ "iopub.status.idle": "2021-05-09T04:15:10.978773Z",
+ "shell.execute_reply": "2021-05-09T04:15:10.979156Z"
+ },
+ "papermill": {
+ "duration": 0.018107,
+ "end_time": "2021-05-09T04:15:10.979337",
+ "exception": false,
+ "start_time": "2021-05-09T04:15:10.961230",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# plt.figure(figsize=(14, 14))\n",
+ "# img= cv2.imread('../input/bms-molecular-translation/train/d/9/e/d9e032a94a24.png', 0)\n",
+ "# plt.imshow(img)\n",
+ "# plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "cellular-exception",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:15:11.006413Z",
+ "iopub.status.busy": "2021-05-09T04:15:11.005449Z",
+ "iopub.status.idle": "2021-05-09T04:15:11.013702Z",
+ "shell.execute_reply": "2021-05-09T04:15:11.013187Z"
+ },
+ "papermill": {
+ "duration": 0.023094,
+ "end_time": "2021-05-09T04:15:11.013844",
+ "exception": false,
+ "start_time": "2021-05-09T04:15:10.990750",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def process_img(image_id, folder='train', debug=False):\n",
+ " # read image and invert colors to get black background and white molecule\n",
+ " file_path = f'/kaggle/input/bms-molecular-translation/{folder}/{image_id[0]}/{image_id[1]}/{image_id[2]}/{image_id}.png'\n",
+ " img0 = 255 - cv2.imread(file_path, cv2.IMREAD_GRAYSCALE)\n",
+ " \n",
+ " # rotate counter clockwise to get horizontal images\n",
+ " h, w = img0.shape\n",
+ " if h > w:\n",
+ " img0 = np.rot90(img0)\n",
+ " \n",
+ " img = cv2.resize(img0,(IMG_WIDTH, IMG_HEIGHT), interpolation=cv2.INTER_NEAREST)\n",
+ " if debug:\n",
+ " fig, ax = plt.subplots(1, 2, figsize=(20,10))\n",
+ " ax[0].imshow(img0)\n",
+ " ax[0].set_title('Original image', size=16)\n",
+ " ax[1].imshow(img)\n",
+ " ax[1].set_title('Fully processed image', size=16)\n",
+ " \n",
+ " # normalize to range 0-255 and encode as png\n",
+ " img = (img / img.max() * 255).astype(np.uint8)\n",
+ " img = cv2.imencode('.png', img)[1].tobytes()\n",
+ "\n",
+ " return img"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "facial-former",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:15:11.051404Z",
+ "iopub.status.busy": "2021-05-09T04:15:11.050773Z",
+ "iopub.status.idle": "2021-05-09T04:15:11.130548Z",
+ "shell.execute_reply": "2021-05-09T04:15:11.131011Z"
+ },
+ "papermill": {
+ "duration": 0.104905,
+ "end_time": "2021-05-09T04:15:11.131200",
+ "exception": false,
+ "start_time": "2021-05-09T04:15:11.026295",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def split_in_chunks(data):\n",
+ " return [data[i:i + CHUNK_SIZE] for i in range(0, len(data), CHUNK_SIZE)]\n",
+ "\n",
+ "train_data_chunks = {\n",
+ " 'train': {\n",
+ " 'image_id': split_in_chunks(train['image_id'].values),\n",
+ " 'InChI': split_in_chunks(train['InChI_int'].values),\n",
+ " },\n",
+ " 'val': {\n",
+ " 'image_id': split_in_chunks(val['image_id'].values),\n",
+ " 'InChI': split_in_chunks(val['InChI_int'].values),\n",
+ " }\n",
+ "}\n",
+ "\n",
+ "test_data_chunks = {\n",
+ " 'test': {\n",
+ " 'image_id': split_in_chunks(test['image_id'].values),\n",
+ " }\n",
+ "}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "welsh-reward",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T04:15:11.169680Z",
+ "iopub.status.busy": "2021-05-09T04:15:11.169039Z",
+ "iopub.status.idle": "2021-05-09T06:42:33.705617Z",
+ "shell.execute_reply": "2021-05-09T06:42:33.703747Z"
+ },
+ "papermill": {
+ "duration": 8842.561381,
+ "end_time": "2021-05-09T06:42:33.705870",
+ "exception": false,
+ "start_time": "2021-05-09T04:15:11.144489",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "6814406f146c4e0ebe46ea35e7db62fc",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/57 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "19bee8fc10ba45099833d01d4e7fe165",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/3 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "folders already created\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "82338d05c9d04522880d8179e593047f",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/41 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def make_tfrecords(data_chunks, folder='train'):\n",
+ " # Try to make output folder\n",
+ " try:\n",
+ " os.makedirs(f'./train')\n",
+ " os.makedirs(f'./val')\n",
+ " os.makedirs(f'./test')\n",
+ " except:\n",
+ " print(f'folders already created')\n",
+ "\n",
+ " for k, v in data_chunks.items():\n",
+ " for chunk_idx, image_id_chunk in tqdm(enumerate(v['image_id']), total=len(v['image_id'])):\n",
+ " # process images in parallel\n",
+ " jobs = [joblib.delayed(process_img)(fp, folder) for fp in image_id_chunk]\n",
+ " bs = 10\n",
+ " processed_images_chunk = joblib.Parallel(\n",
+ " n_jobs=cpu_count(),\n",
+ " verbose=0,\n",
+ " require='sharedmem',\n",
+ " batch_size=bs,\n",
+ " backend='threading',\n",
+ " )(jobs)\n",
+ "\n",
+ " # Create the TFRecords from the processed images\n",
+ " with tf.io.TFRecordWriter(f'./{k}/batch_{chunk_idx}.tfrecords') as file_writer:\n",
+ " if 'InChI' in v.keys(): # TRAIN/VAL, InChI included\n",
+ " for image, InChI in zip(processed_images_chunk, v['InChI'][chunk_idx]):\n",
+ " record_bytes = tf.train.Example(features=tf.train.Features(feature={\n",
+ " 'image': tf.train.Feature(bytes_list=tf.train.BytesList(value=[image])),\n",
+ " 'InChI': tf.train.Feature(int64_list=tf.train.Int64List(value=InChI)),\n",
+ " })).SerializeToString()\n",
+ " file_writer.write(record_bytes)\n",
+ " else: # TEST, image_id included for submission file\n",
+ " for image, image_id in zip(processed_images_chunk, image_id_chunk):\n",
+ " record_bytes = tf.train.Example(features=tf.train.Features(feature={\n",
+ " 'image': tf.train.Feature(bytes_list=tf.train.BytesList(value=[image])),\n",
+ " 'image_id': tf.train.Feature(bytes_list=tf.train.BytesList(value=[str.encode(image_id)])),\n",
+ " })).SerializeToString()\n",
+ " file_writer.write(record_bytes)\n",
+ "\n",
+ "make_tfrecords(train_data_chunks)\n",
+ "make_tfrecords(test_data_chunks, 'test')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "blessed-battle",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T06:42:33.748665Z",
+ "iopub.status.busy": "2021-05-09T06:42:33.747867Z",
+ "iopub.status.idle": "2021-05-09T06:42:33.751753Z",
+ "shell.execute_reply": "2021-05-09T06:42:33.752352Z"
+ },
+ "papermill": {
+ "duration": 0.027546,
+ "end_time": "2021-05-09T06:42:33.752538",
+ "exception": false,
+ "start_time": "2021-05-09T06:42:33.724992",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# convert in int encoded InChI to string\n",
+ "def inchi_int2char(InChI):\n",
+ " res = []\n",
+ " for i in InChI:\n",
+ " c = int_to_vocabulary.get(i)\n",
+ " if c not in ['', '', '']:\n",
+ " res.append(c)\n",
+ " return ''.join(res)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "ahead-platform",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-05-09T06:42:33.788744Z",
+ "iopub.status.busy": "2021-05-09T06:42:33.788136Z",
+ "iopub.status.idle": "2021-05-09T06:42:33.791058Z",
+ "shell.execute_reply": "2021-05-09T06:42:33.791524Z"
+ },
+ "papermill": {
+ "duration": 0.025812,
+ "end_time": "2021-05-09T06:42:33.791686",
+ "exception": false,
+ "start_time": "2021-05-09T06:42:33.765874",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Check train TFRecords\n",
+ "def decode_tfrecord(record_bytes):\n",
+ " fea_dict= {\n",
+ " 'image': tf.io.FixedLenFeature([], tf.string),\n",
+ " 'InChI': tf.io.FixedLenFeature([MAX_INCHI_LEN], tf.int64),}\n",
+ " \n",
+ " features = tf.io.parse_single_example(record_bytes, fea_dict)\n",
+ "\n",
+ " image = tf.io.decode_jpeg(features['image']) \n",
+ " image = tf.reshape(image, [IMG_HEIGHT, IMG_WIDTH, 1])\n",
+ " image = tf.cast(image, tf.float32) / 255.0\n",
+ " \n",
+ " InChI = features['InChI']\n",
+ " InChI = tf.reshape(InChI, [MAX_INCHI_LEN])\n",
+ " \n",
+ " return image, InChI\n",
+ "\n",
+ "\n",
+ "# Check test TFRecords\n",
+ "def decode_test_tfrecord(record_bytes):\n",
+ " features = tf.io.parse_single_example(record_bytes, {\n",
+ " 'image': tf.io.FixedLenFeature([], tf.string),\n",
+ " 'image_id': tf.io.FixedLenFeature([], tf.string),\n",
+ " })\n",
+ "\n",
+ " image = tf.io.decode_jpeg(features['image'])\n",
+ " image = tf.reshape(image, [IMG_HEIGHT, IMG_WIDTH, 1])\n",
+ " image = tf.cast(image, tf.float32) / 255.0\n",
+ " \n",
+ " image_id = features['image_id']\n",
+ " \n",
+ " return image, image_id\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "extra-think",
+ "metadata": {
+ "papermill": {
+ "duration": 0.012974,
+ "end_time": "2021-05-09T06:42:33.818004",
+ "exception": false,
+ "start_time": "2021-05-09T06:42:33.805030",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.9"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": 9011.445292,
+ "end_time": "2021-05-09T06:42:37.564258",
+ "environment_variables": {},
+ "exception": null,
+ "input_path": "__notebook__.ipynb",
+ "output_path": "__notebook__.ipynb",
+ "parameters": {},
+ "start_time": "2021-05-09T04:12:26.118966",
+ "version": "2.3.2"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "state": {
+ "0388327a21634e3db34e20093a6803e6": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "0651cb95f8a744568a612c2fb79bb367": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_5123c5cee13b47c5996c4377123130e9",
+ "IPY_MODEL_adce1b831ae24bb88f91cb779cac4984",
+ "IPY_MODEL_e7616820ecd340a7b927e9b17d2be1a2"
+ ],
+ "layout": "IPY_MODEL_89c976310ad3444d88918619861abc1e"
+ }
+ },
+ "0a250402bbbc4ba7a0612c30d936f9f1": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "10b75c1a7bd4436280e87bc9cc5d06db": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "14d721ed0a4c431abb0e2faa9967c788": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "19bee8fc10ba45099833d01d4e7fe165": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_dffe6ec922994842bd3a3481431a783c",
+ "IPY_MODEL_3a491a0248a84311b4ef004e297d7c02",
+ "IPY_MODEL_483bb4e51ce540388802fa0dd7516575"
+ ],
+ "layout": "IPY_MODEL_fa82f4dbf8be4c4e9a3062f75a812c14"
+ }
+ },
+ "1de57ed4c7a04556a8e3084fb39b66c6": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "1fb26f74e8af47d4aed4d0e94ddf5bfa": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "237d75c7f7e3473aab9b5a612a612c64": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "278a8ff39d014345883ba539653e37ff": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "339b335740854da7b7f220ab6e1a5796": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_781dd176c69b4591a63696a2c502862c",
+ "IPY_MODEL_36c3232bd847430e9da316c1f385949c",
+ "IPY_MODEL_4cfe106b2e3a47979dab54cfc819de02"
+ ],
+ "layout": "IPY_MODEL_6451a679cf3144c1934ab2e3af2b4958"
+ }
+ },
+ "36c3232bd847430e9da316c1f385949c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_0a250402bbbc4ba7a0612c30d936f9f1",
+ "max": 2371184.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_c3ff48a648d6462a8cf39bd7d1a96a4b",
+ "value": 2371184.0
+ }
+ },
+ "3a491a0248a84311b4ef004e297d7c02": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_ab34f1b1f4f7453382c83349f9d4abbe",
+ "max": 3.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_f2f0a6f40adb405ca2b518450fb34328",
+ "value": 3.0
+ }
+ },
+ "4366b40c437c4fa59d4f5140bda3a0f0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_10b75c1a7bd4436280e87bc9cc5d06db",
+ "placeholder": "",
+ "style": "IPY_MODEL_e744f916f3054772b0965b733c2dc033",
+ "value": "100%"
+ }
+ },
+ "483bb4e51ce540388802fa0dd7516575": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_73b0675def5c411a8445c1ffc6a0b221",
+ "placeholder": "",
+ "style": "IPY_MODEL_237d75c7f7e3473aab9b5a612a612c64",
+ "value": " 3/3 [03:53<00:00, 72.04s/it]"
+ }
+ },
+ "4cfe106b2e3a47979dab54cfc819de02": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_8f47b46a133f41d099fc79cb508aa050",
+ "placeholder": "",
+ "style": "IPY_MODEL_1fb26f74e8af47d4aed4d0e94ddf5bfa",
+ "value": " 2371184/2371184 [02:12<00:00, 18771.60it/s]"
+ }
+ },
+ "4dc99969c0a446f6936c549cd6105fff": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "5123c5cee13b47c5996c4377123130e9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_1de57ed4c7a04556a8e3084fb39b66c6",
+ "placeholder": "",
+ "style": "IPY_MODEL_a430f7c21d6e42d4a624777b77c0a49b",
+ "value": "100%"
+ }
+ },
+ "6451a679cf3144c1934ab2e3af2b4958": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "6814406f146c4e0ebe46ea35e7db62fc": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_4366b40c437c4fa59d4f5140bda3a0f0",
+ "IPY_MODEL_98500b606c544582b4eb941475bcd961",
+ "IPY_MODEL_afc88cd7b2fd419eaa4ad20608acd4f7"
+ ],
+ "layout": "IPY_MODEL_d75063bdd08e4ee183eb3a61f627c5a3"
+ }
+ },
+ "6d69663cc6e24904917646ccda8f3cd9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "6e68d0e007424d209708bc22cfde8815": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "73b0675def5c411a8445c1ffc6a0b221": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "781dd176c69b4591a63696a2c502862c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_e4c5470c204f465881d6c9b00964920d",
+ "placeholder": "",
+ "style": "IPY_MODEL_14d721ed0a4c431abb0e2faa9967c788",
+ "value": "100%"
+ }
+ },
+ "7b4ec246aa4647c082546c04e65f487d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "82338d05c9d04522880d8179e593047f": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_eb4d115f03604f6aad9e674e646fcb2c",
+ "IPY_MODEL_b0df656c67ce440bb201bafa8c44d349",
+ "IPY_MODEL_fc95f1fbd70441d1bcf9d30ecaf9bb16"
+ ],
+ "layout": "IPY_MODEL_abb00edc8a874870b7f5fec7379f37d2"
+ }
+ },
+ "87a059df8023474ebb30aa7b7856f0c6": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "89c976310ad3444d88918619861abc1e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "8f47b46a133f41d099fc79cb508aa050": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "911ef79ed6394006a9c014033d6235d6": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "924e753ee1984b52a6013e8468dec88f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "98500b606c544582b4eb941475bcd961": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_6e68d0e007424d209708bc22cfde8815",
+ "max": 57.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_4dc99969c0a446f6936c549cd6105fff",
+ "value": 57.0
+ }
+ },
+ "a430f7c21d6e42d4a624777b77c0a49b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "ab34f1b1f4f7453382c83349f9d4abbe": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "abb00edc8a874870b7f5fec7379f37d2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "ac09a5a13469465ea5e18aee5dc9f0f1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "adce1b831ae24bb88f91cb779cac4984": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_d7eb86f3f37c4574ad855a481df74ee7",
+ "max": 2371184.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_0388327a21634e3db34e20093a6803e6",
+ "value": 2371184.0
+ }
+ },
+ "aec03230478e4a518758f9863ea8c99b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "afc88cd7b2fd419eaa4ad20608acd4f7": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_278a8ff39d014345883ba539653e37ff",
+ "placeholder": "",
+ "style": "IPY_MODEL_f95e952b0cdc4653904f40d8dec91cff",
+ "value": " 57/57 [1:27:02<00:00, 88.09s/it]"
+ }
+ },
+ "b0df656c67ce440bb201bafa8c44d349": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_aec03230478e4a518758f9863ea8c99b",
+ "max": 41.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_911ef79ed6394006a9c014033d6235d6",
+ "value": 41.0
+ }
+ },
+ "c3ff48a648d6462a8cf39bd7d1a96a4b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "cac5a3a1b32445109662eef49f9a71f6": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "d4d93695dbf44041887531262294b08f": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "d75063bdd08e4ee183eb3a61f627c5a3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "d7eb86f3f37c4574ad855a481df74ee7": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "dffe6ec922994842bd3a3481431a783c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_7b4ec246aa4647c082546c04e65f487d",
+ "placeholder": "",
+ "style": "IPY_MODEL_6d69663cc6e24904917646ccda8f3cd9",
+ "value": "100%"
+ }
+ },
+ "e4c5470c204f465881d6c9b00964920d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "e744f916f3054772b0965b733c2dc033": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "e7616820ecd340a7b927e9b17d2be1a2": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_cac5a3a1b32445109662eef49f9a71f6",
+ "placeholder": "",
+ "style": "IPY_MODEL_d4d93695dbf44041887531262294b08f",
+ "value": " 2371184/2371184 [00:06<00:00, 393717.10it/s]"
+ }
+ },
+ "eb4d115f03604f6aad9e674e646fcb2c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_924e753ee1984b52a6013e8468dec88f",
+ "placeholder": "",
+ "style": "IPY_MODEL_f1da1a2b870e433983ee7b213aaba09a",
+ "value": "100%"
+ }
+ },
+ "f1da1a2b870e433983ee7b213aaba09a": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "f2f0a6f40adb405ca2b518450fb34328": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "f95e952b0cdc4653904f40d8dec91cff": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "fa82f4dbf8be4c4e9a3062f75a812c14": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "fc95f1fbd70441d1bcf9d30ecaf9bb16": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_87a059df8023474ebb30aa7b7856f0c6",
+ "placeholder": "",
+ "style": "IPY_MODEL_ac09a5a13469465ea5e18aee5dc9f0f1",
+ "value": " 41/41 [56:26<00:00, 74.31s/it]"
+ }
+ }
+ },
+ "version_major": 2,
+ "version_minor": 0
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}