{"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":"import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport torch.optim as optim\nimport torch.utils.data as data\n\nimport torchvision.transforms as transforms\nimport torchvision.datasets as datasets\n\nfrom sklearn import metrics\nfrom sklearn import decomposition\nfrom sklearn import manifold\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport pandas as pd\nimport copy,os,PIL\nimport random\nimport time","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-08-05T06:54:35.135990Z","iopub.execute_input":"2022-08-05T06:54:35.137141Z","iopub.status.idle":"2022-08-05T06:54:37.527775Z","shell.execute_reply.started":"2022-08-05T06:54:35.137013Z","shell.execute_reply":"2022-08-05T06:54:37.526784Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Seed everything here. Since there is no actual randomization for computer we need to set a random state in order to produce identical results \n# no matter how many times we run the code.\nSEED = 2021\nrandom.seed(SEED)\nnp.random.seed(SEED)\ntorch.manual_seed(SEED)\ntorch.cuda.manual_seed(SEED)\ntorch.backends.cudnn.deterministic = True","metadata":{"execution":{"iopub.status.busy":"2022-08-05T06:54:37.529652Z","iopub.execute_input":"2022-08-05T06:54:37.530490Z","iopub.status.idle":"2022-08-05T06:54:37.538415Z","shell.execute_reply.started":"2022-08-05T06:54:37.530452Z","shell.execute_reply":"2022-08-05T06:54:37.537363Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"num_workers = 0\n# how many samples per batch to load\nbatch_size = 8\n# percentage of training set to use as testing and validation\n\n# convert data to a normalized torch.FloatTensor\ntrainTransform = transforms.Compose([\n    transforms.Resize((32, 32)),\n    transforms.ToTensor(),\n    transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) # third dim for RGB\n    ])","metadata":{"execution":{"iopub.status.busy":"2022-08-05T06:54:37.541524Z","iopub.execute_input":"2022-08-05T06:54:37.541876Z","iopub.status.idle":"2022-08-05T06:54:37.547791Z","shell.execute_reply.started":"2022-08-05T06:54:37.541843Z","shell.execute_reply":"2022-08-05T06:54:37.546807Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# creating a custom_dataset class for loading.\nclass Custom_Dataset(torch.utils.data.Dataset):\n\n    def __init__(self, image_dir, csv_file, transform=None):\n        self.image_dir = image_dir\n        self.image_files = os.listdir(image_dir)\n        self.data = pd.read_csv(csv_file).iloc[:, 1]\n        self.transform = transform\n\n    def __len__(self):\n        return len(self.data)\n\n    def __getitem__(self, index):\n        image_name = os.path.join(self.image_dir, self.image_files[index])  \n        image = PIL.Image.open(image_name).convert('RGB')\n        label = self.data[index]\n        if self.transform:\n            image = self.transform(image)\n        return image, label","metadata":{"execution":{"iopub.status.busy":"2022-08-05T06:54:37.551388Z","iopub.execute_input":"2022-08-05T06:54:37.551671Z","iopub.status.idle":"2022-08-05T06:54:37.559547Z","shell.execute_reply.started":"2022-08-05T06:54:37.551647Z","shell.execute_reply":"2022-08-05T06:54:37.558450Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"image_dir = '../input/pokemon-techx/train/'\ncsv_file = '../input/pokemon-techx/train.csv'\n\ntrain_ds = Custom_Dataset(image_dir, csv_file, transform= trainTransform)\nvalid_ds = Custom_Dataset(image_dir, csv_file, transform= trainTransform)\n\n\nbatch_size=2\ntrain_loader = data.DataLoader(train_ds, batch_size, shuffle=True, num_workers=num_workers, pin_memory=True)\nvalid_loader = data.DataLoader(valid_ds, batch_size, num_workers=num_workers, pin_memory=True)\n","metadata":{"execution":{"iopub.status.busy":"2022-08-05T06:54:37.561057Z","iopub.execute_input":"2022-08-05T06:54:37.561674Z","iopub.status.idle":"2022-08-05T06:54:37.783820Z","shell.execute_reply.started":"2022-08-05T06:54:37.561634Z","shell.execute_reply":"2022-08-05T06:54:37.782780Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}