{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import torch\nimport torchvision\nimport torchvision.transforms as transforms\nimport matplotlib.pyplot as plt\nimport os\nimport torch\nimport torch.nn as nn","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Data Preprocessing","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"transform_train = transforms.Compose([\n#     transforms.RandomCrop(32, padding=4),\n#     transforms.RandomHorizontalFlip(),\n    transforms.ToTensor(),\n    transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n])\n\n# Normalize the test set same as training set without augmentation\ntransform_test = transforms.Compose([\n    transforms.ToTensor(),\n    transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n])\n\ninv_transform = transforms.Compose([ transforms.Normalize(mean = [ 0., 0., 0. ],\n                                                     std = [ 1/0.2023, 1/0.1994, 1/0.2010 ]),\n                                transforms.Normalize(mean = [ -0.4914, -0.4822, -0.4465 ],\n                                                     std = [ 1., 1., 1. ]),\n                               ])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"dataroot = \"/kaggle/working/\"\ntrainset = torchvision.datasets.CIFAR10(\n    root=dataroot, train=True, download=True, transform=transform_train)\ntestset = torchvision.datasets.CIFAR10(\n    root=dataroot, train=False, download=True, transform=transform_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"trainloader = torch.utils.data.DataLoader(\n    trainset, batch_size=5, shuffle=True, num_workers=2)\ntestloader = torch.utils.data.DataLoader(\n    testset, batch_size=5, shuffle=True, num_workers=2)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"num_images_to_show = 10\nimages = {}\nfor img in (trainset):\n    label = img[1]\n    img = inv_transform(img[0]).permute(1,2,0)\n    if(label not in images.keys()):\n        images[label] = []\n    if(len(images[label]) < num_images_to_show):\n        images[label].append(img)\n\nf, axarr = plt.subplots(len(images.keys()),num_images_to_show)\nfor i in range(len(images.keys())):\n    for j in range(num_images_to_show):\n        axarr[i][j].imshow(images[i][j])\nf.set_figheight(8)\nf.set_figwidth(8)\nplt.show()\ndel images , axarr , f","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Build Model","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"class TreeCNN(nn.Module):\n    \"\"\"TreeCNN.\"\"\"\n\n    def __init__(self):\n        super(TreeCNN, self).__init__()\n\n\n    def forward(self, x):\n        \"\"\"Perform forward.\"\"\"\n        return x\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}