{"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)\nimport torch\n\n# Variable initializations\ndataroot = '../input/gan-getting-started/monet_jpg'\nimage_size=64\nbatch_size=128\n\n# Torch init configuration\ndevice = torch.device(\"cuda:0\" if (torch.cuda.is_available()) else \"cpu\")\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2021-08-09T13:13:27.704895Z","iopub.execute_input":"2021-08-09T13:13:27.705215Z","iopub.status.idle":"2021-08-09T13:13:27.764421Z","shell.execute_reply.started":"2021-08-09T13:13:27.705185Z","shell.execute_reply":"2021-08-09T13:13:27.763487Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import os\nimport torchvision.datasets as dset\nimport torchvision.transforms as transforms\nimport matplotlib.pyplot as plt\nimport torchvision.utils as vutils\n\nfrom PIL import Image\nfrom torch.utils.data import Dataset, DataLoader\n\n# Monet Dataset\nclass MonetDataset(Dataset):\n    def __init__(self, root_dir, transform=None):\n        self.root_dir = root_dir\n        self.all_imgs = os.listdir(root_dir)\n        self.transform = transform\n        \n    def __len__(self):\n        return len(self.all_imgs)\n    \n    def __getitem__(self, idx):\n        img_loc = os.path.join(self.root_dir, self.all_imgs[idx])\n        image = Image.open(img_loc).convert(\"RGB\")\n        tensor_image = self.transform(image)\n        return tensor_image\n\n# Load images\ndataset = MonetDataset(root_dir=dataroot, transform=transforms.Compose([\n    transforms.Resize(image_size),\n    transforms.ToTensor(),\n    transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))\n]))\n\n# Load the image iterator\ndataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True)\n\n# Let's display some images\nreal_batch = next(iter(dataloader)) # Get first batch\nplt.figure(figsize=(8,8))\nplt.axis(\"off\")\nplt.title(\"Training Images\")\nplt.imshow(np.transpose(vutils.make_grid(real_batch.to(device)[:64], padding=2, normalize=True).cpu(), (1,2,0)))","metadata":{"execution":{"iopub.status.busy":"2021-08-09T13:25:34.860626Z","iopub.execute_input":"2021-08-09T13:25:34.860956Z","iopub.status.idle":"2021-08-09T13:25:35.444962Z","shell.execute_reply.started":"2021-08-09T13:25:34.860926Z","shell.execute_reply":"2021-08-09T13:25:35.444042Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}