{"cells":[{"metadata":{"id":"tcqZTpsPdn-v","trusted":false},"cell_type":"code","source":"import torch\nimport torch.nn as nn\nimport torch.optim as optim\nimport torchvision.transforms as transforms\nfrom torch.utils.data import Dataset, SubsetRandomSampler\nfrom torch.utils.tensorboard import SummaryWriter\nimport pandas as pd\nimport numpy as np\nfrom tqdm.notebook import tqdm\nfrom sklearn.model_selection import train_test_split\nfrom datetime import datetime, date\n\ntorch.manual_seed(0)\nnp.random.seed(0)\n\n# TRAIN_PATH = 'train.csv'\n# TEST_PATH = 'test.csv'\n# SUBMISSION_PATH = 'submission.csv'\n# DIG_PATH = 'Dig-MNIST.csv'\nTRAIN_PATH = '../input/Kannada-MNIST/train.csv'\nTEST_PATH = '../input/Kannada-MNIST/test.csv'\nSUBMISSION_PATH = '/kaggle/working/submission.csv'\nDIG_PATH = '../input/Kannada-MNIST/Dig-MNIST.csv'","execution_count":null,"outputs":[]},{"metadata":{"id":"wbDMugN2d61R","outputId":"a870b1e1-0bba-41be-b1d4-d605318755e4","trusted":false},"cell_type":"code","source":"# !kaggle competitions download -c Kannada-MNIST\n# !unzip Kannada-MNIST.zip","execution_count":null,"outputs":[]},{"metadata":{"id":"4m9dODEzhUvK","trusted":false},"cell_type":"code","source":"class KannadaMNISTDataset(Dataset):\n    def __init__(self, csv_path, transform):\n        data = pd.read_csv(csv_path).to_numpy()\n        self.y = data[:, 0]\n        self.X = data[:, 1:].reshape(-1, 28, 28).astype(np.uint8)\n        assert self.y.shape[0] == self.X.shape[0]\n        self.transform = transform\n\n    def __len__(self):\n        return self.X.shape[0]\n\n    def __getitem__(self, idx):\n        return self.transform(self.X[idx]), self.y[idx]\n    \n    def asPIL(self, idx):\n        return transforms.ToPILImage()(self.X[idx]), self.y[idx]\n    \n    def merge(self, other):\n        self.X = np.concatenate((self.X, other.X))\n        self.y = np.concatenate((self.y, other.y))","execution_count":null,"outputs":[]},{"metadata":{"id":"gxXjWd8dk6rB","trusted":false},"cell_type":"code","source":"transform = transforms.Compose([\n    transforms.ToPILImage(),\n    transforms.Resize((32, 32)),\n    transforms.RandomAffine(degrees=10, translate=(0.25, 0.25), scale=(0.75, 1.25), shear=0.1),\n    transforms.ToTensor()\n])\ndataset = KannadaMNISTDataset(TRAIN_PATH, transform)\ndataset.merge(KannadaMNISTDataset(DIG_PATH, transform))\n\ntrain_idx, test_idx = train_test_split(range(len(dataset)), train_size=0.85)\ntrain_sampler = SubsetRandomSampler(train_idx)\ntest_sampler = SubsetRandomSampler(test_idx)\n\nBATCH_SIZE = 512\ntrain_loader = torch.utils.data.DataLoader(dataset, batch_size=BATCH_SIZE, sampler=train_sampler, num_workers=8, pin_memory=True)\ntest_loader = torch.utils.data.DataLoader(dataset, batch_size=BATCH_SIZE, sampler=test_sampler, num_workers=8, pin_memory=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"class SimpleNet(nn.Module):\n    def __init__(self):\n        super(SimpleNet, self).__init__()\n        def make_conv_group(in_, out_):\n            return nn.Sequential(\n                nn.Conv2d(in_, out_, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)),\n                nn.BatchNorm2d(out_, momentum=0.05),\n                nn.ReLU(inplace=True)\n            )\n        \n        self.layers = nn.Sequential(\n            make_conv_group(1, 64),\n            make_conv_group(64, 128),\n            make_conv_group(128, 128),\n            make_conv_group(128, 128),\n            nn.MaxPool2d(kernel_size=(2, 2), stride=(2, 2)),\n            nn.Dropout2d(p=0.1),\n            make_conv_group(128, 128),\n            make_conv_group(128, 128),\n            make_conv_group(128, 256),\n            nn.MaxPool2d(kernel_size=(2, 2), stride=(2, 2)),\n            nn.Dropout2d(p=0.1),\n            make_conv_group(256, 256),\n            make_conv_group(256, 256),\n            nn.MaxPool2d(kernel_size=(2, 2), stride=(2, 2)),\n            nn.Dropout2d(p=0.1),\n            make_conv_group(256, 512),\n            nn.MaxPool2d(kernel_size=(2, 2), stride=(2, 2)),\n            nn.Dropout2d(p=0.1),\n            make_conv_group(512, 2048),\n            make_conv_group(2048, 256),\n            nn.MaxPool2d(kernel_size=(2, 2), stride=(2, 2)),\n            nn.Dropout2d(p=0.1),\n            make_conv_group(256, 256)\n        )\n        self.head = nn.Linear(256, 10)\n        \n        for layer in self.layers.modules():\n          if isinstance(layer, nn.Conv2d):\n            nn.init.xavier_uniform_(layer.weight.data, gain=nn.init.calculate_gain('relu'))\n            \n    def forward(self, x):\n        x = self.layers(x)\n        x = x.view(x.size(0), -1)\n        x = self.head(x)\n        x = nn.Softmax(dim=1)(x)\n        return x","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"net = SimpleNet().cuda()\ncriterion = nn.CrossEntropyLoss()\noptimizer = optim.Adam(net.parameters())\nscheduler = optim.lr_scheduler.ReduceLROnPlateau(optimizer, 'min', threshold=1e-5, verbose=True)\nEPOCH = 0","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"for epoch in tqdm(range(EPOCH, EPOCH + 100), leave=False):\n    net.train()\n    for batch_x, batch_y in tqdm(train_loader, leave=False):\n        optimizer.zero_grad()\n\n        outputs = net(batch_x.cuda())\n        loss = criterion(outputs, batch_y.cuda())\n        loss.backward()\n        optimizer.step()\n  \n    test_loss = 0.0\n    net.eval()\n    for batch_x, batch_y in tqdm(test_loader, leave=False):\n        outputs = net(batch_x.cuda())\n        loss = criterion(outputs, batch_y.cuda())\n\n        test_loss += loss.item()\n    test_loss /= len(test_idx)\n    \n    scheduler.step(test_loss)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"test_dataset = KannadaMNISTDataset(TEST_PATH, transform)\nloader = torch.utils.data.DataLoader(test_dataset, batch_size=BATCH_SIZE, num_workers=8, pin_memory=True)\ntest_answers = None\nnet.eval()\nfor batch_x, _ in tqdm(loader):\n    outputs = net(batch_x.cuda()).cpu().detach().numpy()\n    if test_answers is not None:\n        test_answers = np.concatenate((test_answers, outputs))\n    else:\n        test_answers = outputs\ngood_ind = test_answers.max(axis=1) >= 0.95\ngood_labels = test_answers[good_ind].argmax(axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"pseudo_dataset = KannadaMNISTDataset(TEST_PATH, transform)\npseudo_dataset.X = pseudo_dataset.X[good_ind]\npseudo_dataset.y = good_labels\npseudo_loader = torch.utils.data.DataLoader(pseudo_dataset, batch_size=BATCH_SIZE, num_workers=8, pin_memory=True)\n\nfor lr in [1e-4, 1e-5, 1e-6]:\n    for g in optimizer.param_groups:\n        g['lr'] = lr\n    for epoch in tqdm(range(EPOCH, EPOCH + 100), leave=False):\n        net.train()\n        for batch_x, batch_y in tqdm(pseudo_loader, leave=False):\n            optimizer.zero_grad()\n\n            outputs = net(batch_x.cuda())\n            loss = criterion(outputs, batch_y.cuda())\n            loss.backward()\n            optimizer.step()\n\n        EPOCH += 1","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"test_transform = transforms.Compose([\n    transforms.ToPILImage(),\n    transforms.Resize((32, 32)),\n    transforms.ToTensor()\n])\ntest_dataset = KannadaMNISTDataset(TEST_PATH, test_transform)\nloader = torch.utils.data.DataLoader(test_dataset, batch_size=BATCH_SIZE)\n\nresults = []\nnet.eval()\nfor batch_x, _ in tqdm(loader):\n    outputs = net(batch_x.cuda())\n    results.extend(map(lambda x: x.item(), outputs.argmax(dim=1)))\n\nsubmission = pd.DataFrame({\n    'id': range(len(test_dataset)),\n    'label': results\n})\nsubmission.to_csv(SUBMISSION_PATH, index=False)","execution_count":null,"outputs":[]}],"metadata":{"accelerator":"GPU","colab":{"name":"Untitled7.ipynb","provenance":[]},"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.7"},"widgets":{"application/vnd.jupyter.widget-state+json":{"02737cd7315e4869a1ba44947c43bee4":{"model_module":"@jupyter-widgets/controls","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_b967d60f15fb4a1ab8e6990ba567e6f1","IPY_MODEL_da55bb67812a4b0ead95817bbd79efa2"],"layout":"IPY_MODEL_22e93caa84024f60a64bf7bbfaeb86d8"}},"089d242fb1e9416ba978655b308f2f7b":{"model_module":"@jupyter-widgets/base","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}},"12e87e913e5442939f6cb6bc489d1ac4":{"model_module":"@jupyter-widgets/controls","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":"initial"}},"132ebceca3144aea9141428d84feaee8":{"model_module":"@jupyter-widgets/controls","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":""}},"22e93caa84024f60a64bf7bbfaeb86d8":{"model_module":"@jupyter-widgets/base","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}},"2cdd7973b1174c2e900f76dac7ee4628":{"model_module":"@jupyter-widgets/controls","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_c414e698450b470f9fc76d39fdb46391","IPY_MODEL_eb57127f27dc4f6d8cac7372d9bab0b5"],"layout":"IPY_MODEL_8d4d5189c8044db39ebf4184073e389c"}},"5ea95936aac44dda9be63d1225fbc0db":{"model_module":"@jupyter-widgets/controls","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":""}},"6d81409183ce4c548dbf8f75038b4818":{"model_module":"@jupyter-widgets/controls","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_763b85be94f347118438b6d2f3b82403","IPY_MODEL_94817de676d148ac8d10578adaefef50"],"layout":"IPY_MODEL_859cb680737a45b589624ba45c922797"}},"763b85be94f347118438b6d2f3b82403":{"model_module":"@jupyter-widgets/controls","model_name":"IntProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"IntProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"danger","description":" 61%","description_tooltip":null,"layout":"IPY_MODEL_a3651b14269b4097a0be73d13b17cda3","max":3750,"min":0,"orientation":"horizontal","style":"IPY_MODEL_9d2af649239b4db0a145ec6c7821bcbe","value":2299}},"859cb680737a45b589624ba45c922797":{"model_module":"@jupyter-widgets/base","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}},"8d4d5189c8044db39ebf4184073e389c":{"model_module":"@jupyter-widgets/base","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}},"94817de676d148ac8d10578adaefef50":{"model_module":"@jupyter-widgets/controls","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_e8573ad9bfd84e0c9924d029414c3339","placeholder":"​","style":"IPY_MODEL_c3c95a06294b477b8ce3a6c4d09026d9","value":" 2299/3750 [00:41&lt;00:18, 78.90it/s]"}},"9d2af649239b4db0a145ec6c7821bcbe":{"model_module":"@jupyter-widgets/controls","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":"initial"}},"a3651b14269b4097a0be73d13b17cda3":{"model_module":"@jupyter-widgets/base","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}},"b967d60f15fb4a1ab8e6990ba567e6f1":{"model_module":"@jupyter-widgets/controls","model_name":"IntProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"IntProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"100%","description_tooltip":null,"layout":"IPY_MODEL_089d242fb1e9416ba978655b308f2f7b","max":3750,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e7ff049ebbc240388ef146262e4d3841","value":3750}},"c3c95a06294b477b8ce3a6c4d09026d9":{"model_module":"@jupyter-widgets/controls","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":""}},"c4067087e40e4993b310e930f8dd024b":{"model_module":"@jupyter-widgets/base","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}},"c414e698450b470f9fc76d39fdb46391":{"model_module":"@jupyter-widgets/controls","model_name":"IntProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"IntProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"danger","description":"  3%","description_tooltip":null,"layout":"IPY_MODEL_f6838e61fbac47ada77aed4a5726f1bf","max":30,"min":0,"orientation":"horizontal","style":"IPY_MODEL_12e87e913e5442939f6cb6bc489d1ac4","value":1}},"da55bb67812a4b0ead95817bbd79efa2":{"model_module":"@jupyter-widgets/controls","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_e4560e5554fd4d33ae0126d3c8edb7ef","placeholder":"​","style":"IPY_MODEL_5ea95936aac44dda9be63d1225fbc0db","value":" 3750/3750 [01:14&lt;00:00, 50.20it/s]"}},"e4560e5554fd4d33ae0126d3c8edb7ef":{"model_module":"@jupyter-widgets/base","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}},"e7ff049ebbc240388ef146262e4d3841":{"model_module":"@jupyter-widgets/controls","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":"initial"}},"e8573ad9bfd84e0c9924d029414c3339":{"model_module":"@jupyter-widgets/base","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}},"eb57127f27dc4f6d8cac7372d9bab0b5":{"model_module":"@jupyter-widgets/controls","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_c4067087e40e4993b310e930f8dd024b","placeholder":"​","style":"IPY_MODEL_132ebceca3144aea9141428d84feaee8","value":" 1/30 [01:14&lt;22:27, 46.45s/it]"}},"f6838e61fbac47ada77aed4a5726f1bf":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}}}}},"nbformat":4,"nbformat_minor":4}