{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"LOAD CSVs","metadata":{}},{"cell_type":"code","source":"import pandas as pd\ndata = pd.read_csv('/kaggle/input/intel-mobileodt-cervical-cancer-screening/fixed_labels_v2.csv')\nfilenames = data['filename'].values\nlabels = data['new_label'].values\ntargets =  {filenames[i]: labels[i] for i in range(len(filenames))}\n#print(targets)","metadata":{"execution":{"iopub.status.busy":"2021-09-07T01:13:41.938553Z","iopub.execute_input":"2021-09-07T01:13:41.93896Z","iopub.status.idle":"2021-09-07T01:13:41.954567Z","shell.execute_reply.started":"2021-09-07T01:13:41.938927Z","shell.execute_reply":"2021-09-07T01:13:41.953159Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import os\nfrom PIL import Image\nfrom torch.utils.data import Dataset\n\n\nclass LoadDataset(Dataset):\n    def __init__(self, directory, split = 'train', transform = None):\n        path = os.path.join(directory, '{}'.format(split))\n        files = os.listdir(path)\n\n        self.file_name = [os.path.join(path, name) for name in files]\n        self.target = [int(name[0]) for name in files]\n        self.transform = transform\n\n    def __len__(self):\n        return len(self.file_name)\n\n    def __getitem__(self, item):\n        image = Image.open(self.file_name[item])\n        file_name = self.file_name[item]\n        if self.transform:\n            image = self.transform(image)\n\n        return image, self.target[item], file_name","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**dataAugmentation**","metadata":{}},{"cell_type":"code","source":"import secrets\nimport torchvision.transforms as transforms\nimport PIL.Image as Image\nimport torch\n\n\ncontrast = [i/10 for i in range(3,7)]\nfactor = [i/100 for i in range(11, 23)]\nbrightness_factor = secrets.choice(factor)\ncontrast_factor = secrets.choice(contrast)\nsaturation_factor = secrets.choice(factor)\n\ntrain_transform = transforms.Compose([\n      transforms.RandomRotation(degrees= (-15, 15)),\n      transforms.ColorJitter(brightness= brightness_factor, contrast= contrast_factor, saturation=saturation_factor, hue=.1),\n      transforms.ToTensor(),\n      transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n      ])\n\nval_transforms = transforms.Compose([\n      transforms.ToTensor(),\n      transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n      ])","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Resnet.py\n","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\nclass ResNet():\n    \"\"\"This is a custom ResNet\"\"\"\n    def __init__(self, ):\n        pass\n    ","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def run(model, data, target, optimizer):\n    pass","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = Classifier()\ndata = Images()\ntarget = DataCSV()\nresults = run(model, data, target)\nprint_scores(results, train=False)\nprint_scores(results, train=True)","metadata":{},"execution_count":null,"outputs":[]}]}