From 5843f6bf0ed545075399b7bbb929516845cb2a85 Mon Sep 17 00:00:00 2001
From: Sucio <esteban.cosserat@gmail.com>
Date: Fri, 10 Nov 2023 15:55:02 +0100
Subject: [PATCH] importation TP2

---
 TD2 Deep Learning.ipynb     |  953 +++++++++++++++++++++++++++++++++
 dog.png                     |  Bin 0 -> 86387 bytes
 imagenet-simple-labels.json | 1000 +++++++++++++++++++++++++++++++++++
 3 files changed, 1953 insertions(+)
 create mode 100644 TD2 Deep Learning.ipynb
 create mode 100644 dog.png
 create mode 100644 imagenet-simple-labels.json

diff --git a/TD2 Deep Learning.ipynb b/TD2 Deep Learning.ipynb
new file mode 100644
index 0000000..2ecfce9
--- /dev/null
+++ b/TD2 Deep Learning.ipynb	
@@ -0,0 +1,953 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "7edf7168",
+   "metadata": {},
+   "source": [
+    "# TD2: Deep learning"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "fbb8c8df",
+   "metadata": {},
+   "source": [
+    "In this TD, you must modify this notebook to answer the questions. To do this,\n",
+    "\n",
+    "1. Fork this repository\n",
+    "2. Clone your forked repository on your local computer\n",
+    "3. Answer the questions\n",
+    "4. Commit and push regularly\n",
+    "\n",
+    "The last commit is due on Sunday, December 1, 11:59 PM. Later commits will not be taken into account."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "3d167a29",
+   "metadata": {},
+   "source": [
+    "Install and test PyTorch from  https://pytorch.org/get-started/locally."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "330a42f5",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%pip install torch torchvision"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0882a636",
+   "metadata": {},
+   "source": [
+    "\n",
+    "To test run the following code"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b1950f0a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import torch\n",
+    "\n",
+    "N, D = 14, 10\n",
+    "x = torch.randn(N, D).type(torch.FloatTensor)\n",
+    "print(x)\n",
+    "\n",
+    "from torchvision import models\n",
+    "\n",
+    "alexnet = models.alexnet()\n",
+    "print(alexnet)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "23f266da",
+   "metadata": {},
+   "source": [
+    "## Exercise 1: CNN on CIFAR10\n",
+    "\n",
+    "The goal is to apply a Convolutional Neural Net (CNN) model on the CIFAR10 image dataset and test the accuracy of the model on the basis of image classification. Compare the Accuracy VS the neural network implemented during TD1.\n",
+    "\n",
+    "Have a look at the following documentation to be familiar with PyTorch.\n",
+    "\n",
+    "https://pytorch.org/tutorials/beginner/pytorch_with_examples.html\n",
+    "\n",
+    "https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4ba1c82d",
+   "metadata": {},
+   "source": [
+    "You can test if GPU is available on your machine and thus train on it to speed up the process"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "6e18f2fd",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import torch\n",
+    "\n",
+    "# check if CUDA is available\n",
+    "train_on_gpu = torch.cuda.is_available()\n",
+    "\n",
+    "if not train_on_gpu:\n",
+    "    print(\"CUDA is not available.  Training on CPU ...\")\n",
+    "else:\n",
+    "    print(\"CUDA is available!  Training on GPU ...\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "5cf214eb",
+   "metadata": {},
+   "source": [
+    "Next we load the CIFAR10 dataset"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "462666a2",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "from torchvision import datasets, transforms\n",
+    "from torch.utils.data.sampler import SubsetRandomSampler\n",
+    "\n",
+    "# number of subprocesses to use for data loading\n",
+    "num_workers = 0\n",
+    "# how many samples per batch to load\n",
+    "batch_size = 20\n",
+    "# percentage of training set to use as validation\n",
+    "valid_size = 0.2\n",
+    "\n",
+    "# convert data to a normalized torch.FloatTensor\n",
+    "transform = transforms.Compose(\n",
+    "    [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]\n",
+    ")\n",
+    "\n",
+    "# choose the training and test datasets\n",
+    "train_data = datasets.CIFAR10(\"data\", train=True, download=True, transform=transform)\n",
+    "test_data = datasets.CIFAR10(\"data\", train=False, download=True, transform=transform)\n",
+    "\n",
+    "# obtain training indices that will be used for validation\n",
+    "num_train = len(train_data)\n",
+    "indices = list(range(num_train))\n",
+    "np.random.shuffle(indices)\n",
+    "split = int(np.floor(valid_size * num_train))\n",
+    "train_idx, valid_idx = indices[split:], indices[:split]\n",
+    "\n",
+    "# define samplers for obtaining training and validation batches\n",
+    "train_sampler = SubsetRandomSampler(train_idx)\n",
+    "valid_sampler = SubsetRandomSampler(valid_idx)\n",
+    "\n",
+    "# prepare data loaders (combine dataset and sampler)\n",
+    "train_loader = torch.utils.data.DataLoader(\n",
+    "    train_data, batch_size=batch_size, sampler=train_sampler, num_workers=num_workers\n",
+    ")\n",
+    "valid_loader = torch.utils.data.DataLoader(\n",
+    "    train_data, batch_size=batch_size, sampler=valid_sampler, num_workers=num_workers\n",
+    ")\n",
+    "test_loader = torch.utils.data.DataLoader(\n",
+    "    test_data, batch_size=batch_size, num_workers=num_workers\n",
+    ")\n",
+    "\n",
+    "# specify the image classes\n",
+    "classes = [\n",
+    "    \"airplane\",\n",
+    "    \"automobile\",\n",
+    "    \"bird\",\n",
+    "    \"cat\",\n",
+    "    \"deer\",\n",
+    "    \"dog\",\n",
+    "    \"frog\",\n",
+    "    \"horse\",\n",
+    "    \"ship\",\n",
+    "    \"truck\",\n",
+    "]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "58ec3903",
+   "metadata": {},
+   "source": [
+    "CNN definition (this one is an example)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "317bf070",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import torch.nn as nn\n",
+    "import torch.nn.functional as F\n",
+    "\n",
+    "# define the CNN architecture\n",
+    "\n",
+    "\n",
+    "class Net(nn.Module):\n",
+    "    def __init__(self):\n",
+    "        super(Net, self).__init__()\n",
+    "        self.conv1 = nn.Conv2d(3, 6, 5)\n",
+    "        self.pool = nn.MaxPool2d(2, 2)\n",
+    "        self.conv2 = nn.Conv2d(6, 16, 5)\n",
+    "        self.fc1 = nn.Linear(16 * 5 * 5, 120)\n",
+    "        self.fc2 = nn.Linear(120, 84)\n",
+    "        self.fc3 = nn.Linear(84, 10)\n",
+    "\n",
+    "    def forward(self, x):\n",
+    "        x = self.pool(F.relu(self.conv1(x)))\n",
+    "        x = self.pool(F.relu(self.conv2(x)))\n",
+    "        x = x.view(-1, 16 * 5 * 5)\n",
+    "        x = F.relu(self.fc1(x))\n",
+    "        x = F.relu(self.fc2(x))\n",
+    "        x = self.fc3(x)\n",
+    "        return x\n",
+    "\n",
+    "\n",
+    "# create a complete CNN\n",
+    "model = Net()\n",
+    "print(model)\n",
+    "# move tensors to GPU if CUDA is available\n",
+    "if train_on_gpu:\n",
+    "    model.cuda()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "a2dc4974",
+   "metadata": {},
+   "source": [
+    "Loss function and training using SGD (Stochastic Gradient Descent) optimizer"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4b53f229",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import torch.optim as optim\n",
+    "\n",
+    "criterion = nn.CrossEntropyLoss()  # specify loss function\n",
+    "optimizer = optim.SGD(model.parameters(), lr=0.01)  # specify optimizer\n",
+    "\n",
+    "n_epochs = 30  # number of epochs to train the model\n",
+    "train_loss_list = []  # list to store loss to visualize\n",
+    "valid_loss_min = np.Inf  # track change in validation loss\n",
+    "\n",
+    "for epoch in range(n_epochs):\n",
+    "    # Keep track of training and validation loss\n",
+    "    train_loss = 0.0\n",
+    "    valid_loss = 0.0\n",
+    "\n",
+    "    # Train the model\n",
+    "    model.train()\n",
+    "    for data, target in train_loader:\n",
+    "        # Move tensors to GPU if CUDA is available\n",
+    "        if train_on_gpu:\n",
+    "            data, target = data.cuda(), target.cuda()\n",
+    "        # Clear the gradients of all optimized variables\n",
+    "        optimizer.zero_grad()\n",
+    "        # Forward pass: compute predicted outputs by passing inputs to the model\n",
+    "        output = model(data)\n",
+    "        # Calculate the batch loss\n",
+    "        loss = criterion(output, target)\n",
+    "        # Backward pass: compute gradient of the loss with respect to model parameters\n",
+    "        loss.backward()\n",
+    "        # Perform a single optimization step (parameter update)\n",
+    "        optimizer.step()\n",
+    "        # Update training loss\n",
+    "        train_loss += loss.item() * data.size(0)\n",
+    "\n",
+    "    # Validate the model\n",
+    "    model.eval()\n",
+    "    for data, target in valid_loader:\n",
+    "        # Move tensors to GPU if CUDA is available\n",
+    "        if train_on_gpu:\n",
+    "            data, target = data.cuda(), target.cuda()\n",
+    "        # Forward pass: compute predicted outputs by passing inputs to the model\n",
+    "        output = model(data)\n",
+    "        # Calculate the batch loss\n",
+    "        loss = criterion(output, target)\n",
+    "        # Update average validation loss\n",
+    "        valid_loss += loss.item() * data.size(0)\n",
+    "\n",
+    "    # Calculate average losses\n",
+    "    train_loss = train_loss / len(train_loader)\n",
+    "    valid_loss = valid_loss / len(valid_loader)\n",
+    "    train_loss_list.append(train_loss)\n",
+    "\n",
+    "    # Print training/validation statistics\n",
+    "    print(\n",
+    "        \"Epoch: {} \\tTraining Loss: {:.6f} \\tValidation Loss: {:.6f}\".format(\n",
+    "            epoch, train_loss, valid_loss\n",
+    "        )\n",
+    "    )\n",
+    "\n",
+    "    # Save model if validation loss has decreased\n",
+    "    if valid_loss <= valid_loss_min:\n",
+    "        print(\n",
+    "            \"Validation loss decreased ({:.6f} --> {:.6f}).  Saving model ...\".format(\n",
+    "                valid_loss_min, valid_loss\n",
+    "            )\n",
+    "        )\n",
+    "        torch.save(model.state_dict(), \"model_cifar.pt\")\n",
+    "        valid_loss_min = valid_loss"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "13e1df74",
+   "metadata": {},
+   "source": [
+    "Does overfit occur? If so, do an early stopping."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "d39df818",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import matplotlib.pyplot as plt\n",
+    "\n",
+    "plt.plot(range(n_epochs), train_loss_list)\n",
+    "plt.xlabel(\"Epoch\")\n",
+    "plt.ylabel(\"Loss\")\n",
+    "plt.title(\"Performance of Model 1\")\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "11df8fd4",
+   "metadata": {},
+   "source": [
+    "Now loading the model with the lowest validation loss value\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e93efdfc",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "model.load_state_dict(torch.load(\"./model_cifar.pt\"))\n",
+    "\n",
+    "# track test loss\n",
+    "test_loss = 0.0\n",
+    "class_correct = list(0.0 for i in range(10))\n",
+    "class_total = list(0.0 for i in range(10))\n",
+    "\n",
+    "model.eval()\n",
+    "# iterate over test data\n",
+    "for data, target in test_loader:\n",
+    "    # move tensors to GPU if CUDA is available\n",
+    "    if train_on_gpu:\n",
+    "        data, target = data.cuda(), target.cuda()\n",
+    "    # forward pass: compute predicted outputs by passing inputs to the model\n",
+    "    output = model(data)\n",
+    "    # calculate the batch loss\n",
+    "    loss = criterion(output, target)\n",
+    "    # update test loss\n",
+    "    test_loss += loss.item() * data.size(0)\n",
+    "    # convert output probabilities to predicted class\n",
+    "    _, pred = torch.max(output, 1)\n",
+    "    # compare predictions to true label\n",
+    "    correct_tensor = pred.eq(target.data.view_as(pred))\n",
+    "    correct = (\n",
+    "        np.squeeze(correct_tensor.numpy())\n",
+    "        if not train_on_gpu\n",
+    "        else np.squeeze(correct_tensor.cpu().numpy())\n",
+    "    )\n",
+    "    # calculate test accuracy for each object class\n",
+    "    for i in range(batch_size):\n",
+    "        label = target.data[i]\n",
+    "        class_correct[label] += correct[i].item()\n",
+    "        class_total[label] += 1\n",
+    "\n",
+    "# average test loss\n",
+    "test_loss = test_loss / len(test_loader)\n",
+    "print(\"Test Loss: {:.6f}\\n\".format(test_loss))\n",
+    "\n",
+    "for i in range(10):\n",
+    "    if class_total[i] > 0:\n",
+    "        print(\n",
+    "            \"Test Accuracy of %5s: %2d%% (%2d/%2d)\"\n",
+    "            % (\n",
+    "                classes[i],\n",
+    "                100 * class_correct[i] / class_total[i],\n",
+    "                np.sum(class_correct[i]),\n",
+    "                np.sum(class_total[i]),\n",
+    "            )\n",
+    "        )\n",
+    "    else:\n",
+    "        print(\"Test Accuracy of %5s: N/A (no training examples)\" % (classes[i]))\n",
+    "\n",
+    "print(\n",
+    "    \"\\nTest Accuracy (Overall): %2d%% (%2d/%2d)\"\n",
+    "    % (\n",
+    "        100.0 * np.sum(class_correct) / np.sum(class_total),\n",
+    "        np.sum(class_correct),\n",
+    "        np.sum(class_total),\n",
+    "    )\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "944991a2",
+   "metadata": {},
+   "source": [
+    "Build a new network with the following structure.\n",
+    "\n",
+    "- It has 3 convolutional layers of kernel size 3 and padding of 1.\n",
+    "- The first convolutional layer must output 16 channels, the second 32 and the third 64.\n",
+    "- At each convolutional layer output, we apply a ReLU activation then a MaxPool with kernel size of 2.\n",
+    "- Then, three fully connected layers, the first two being followed by a ReLU activation and a dropout whose value you will suggest.\n",
+    "- The first fully connected layer will have an output size of 512.\n",
+    "- The second fully connected layer will have an output size of 64.\n",
+    "\n",
+    "Compare the results obtained with this new network to those obtained previously."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bc381cf4",
+   "metadata": {},
+   "source": [
+    "## Exercise 2: Quantization: try to compress the CNN to save space\n",
+    "\n",
+    "Quantization doc is available from https://pytorch.org/docs/stable/quantization.html#torch.quantization.quantize_dynamic\n",
+    "        \n",
+    "The Exercise is to quantize post training the above CNN model. Compare the size reduction and the impact on the classification accuracy \n",
+    "\n",
+    "\n",
+    "The size of the model is simply the size of the file."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "ef623c26",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "\n",
+    "\n",
+    "def print_size_of_model(model, label=\"\"):\n",
+    "    torch.save(model.state_dict(), \"temp.p\")\n",
+    "    size = os.path.getsize(\"temp.p\")\n",
+    "    print(\"model: \", label, \" \\t\", \"Size (KB):\", size / 1e3)\n",
+    "    os.remove(\"temp.p\")\n",
+    "    return size\n",
+    "\n",
+    "\n",
+    "print_size_of_model(model, \"fp32\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "05c4e9ad",
+   "metadata": {},
+   "source": [
+    "Post training quantization example"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "c4c65d4b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import torch.quantization\n",
+    "\n",
+    "\n",
+    "quantized_model = torch.quantization.quantize_dynamic(model, dtype=torch.qint8)\n",
+    "print_size_of_model(quantized_model, \"int8\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7b108e17",
+   "metadata": {},
+   "source": [
+    "For each class, compare the classification test accuracy of the initial model and the quantized model. Also give the overall test accuracy for both models."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "a0a34b90",
+   "metadata": {},
+   "source": [
+    "Try training aware quantization to mitigate the impact on the accuracy (doc available here https://pytorch.org/docs/stable/quantization.html#torch.quantization.quantize_dynamic)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "201470f9",
+   "metadata": {},
+   "source": [
+    "## Exercise 3: working with pre-trained models.\n",
+    "\n",
+    "PyTorch offers several pre-trained models https://pytorch.org/vision/0.8/models.html        \n",
+    "We will use ResNet50 trained on ImageNet dataset (https://www.image-net.org/index.php). Use the following code with the files `imagenet-simple-labels.json` that contains the imagenet labels and the image dog.png that we will use as test.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b4d13080",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import json\n",
+    "from PIL import Image\n",
+    "\n",
+    "# Choose an image to pass through the model\n",
+    "test_image = \"dog.png\"\n",
+    "\n",
+    "# Configure matplotlib for pretty inline plots\n",
+    "#%matplotlib inline\n",
+    "#%config InlineBackend.figure_format = 'retina'\n",
+    "\n",
+    "# Prepare the labels\n",
+    "with open(\"imagenet-simple-labels.json\") as f:\n",
+    "    labels = json.load(f)\n",
+    "\n",
+    "# First prepare the transformations: resize the image to what the model was trained on and convert it to a tensor\n",
+    "data_transform = transforms.Compose(\n",
+    "    [\n",
+    "        transforms.Resize((224, 224)),\n",
+    "        transforms.ToTensor(),\n",
+    "        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),\n",
+    "    ]\n",
+    ")\n",
+    "# Load the image\n",
+    "\n",
+    "image = Image.open(test_image)\n",
+    "plt.imshow(image), plt.xticks([]), plt.yticks([])\n",
+    "\n",
+    "# Now apply the transformation, expand the batch dimension, and send the image to the GPU\n",
+    "# image = data_transform(image).unsqueeze(0).cuda()\n",
+    "image = data_transform(image).unsqueeze(0)\n",
+    "\n",
+    "# Download the model if it's not there already. It will take a bit on the first run, after that it's fast\n",
+    "model = models.resnet50(pretrained=True)\n",
+    "# Send the model to the GPU\n",
+    "# model.cuda()\n",
+    "# Set layers such as dropout and batchnorm in evaluation mode\n",
+    "model.eval()\n",
+    "\n",
+    "# Get the 1000-dimensional model output\n",
+    "out = model(image)\n",
+    "# Find the predicted class\n",
+    "print(\"Predicted class is: {}\".format(labels[out.argmax()]))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "184cfceb",
+   "metadata": {},
+   "source": [
+    "Experiments:\n",
+    "\n",
+    "Study the code and the results obtained. Possibly add other images downloaded from the internet.\n",
+    "\n",
+    "What is the size of the model? Quantize it and then check if the model is still able to correctly classify the other images.\n",
+    "\n",
+    "Experiment with other pre-trained CNN models.\n",
+    "\n",
+    "    \n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "5d57da4b",
+   "metadata": {},
+   "source": [
+    "## Exercise 4: Transfer Learning\n",
+    "    \n",
+    "    \n",
+    "For this work, we will use a pre-trained model (ResNet18) as a descriptor extractor and will refine the classification by training only the last fully connected layer of the network. Thus, the output layer of the pre-trained network will be replaced by a layer adapted to the new classes to be recognized which will be in our case ants and bees.\n",
+    "Download and unzip in your working directory the dataset available at the address :\n",
+    "    \n",
+    "https://download.pytorch.org/tutorial/hymenoptera_data.zip\n",
+    "    \n",
+    "Execute the following code in order to display some images of the dataset."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "be2d31f5",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "\n",
+    "import matplotlib.pyplot as plt\n",
+    "import numpy as np\n",
+    "import torch\n",
+    "import torchvision\n",
+    "from torchvision import datasets, transforms\n",
+    "\n",
+    "# Data augmentation and normalization for training\n",
+    "# Just normalization for validation\n",
+    "data_transforms = {\n",
+    "    \"train\": transforms.Compose(\n",
+    "        [\n",
+    "            transforms.RandomResizedCrop(\n",
+    "                224\n",
+    "            ),  # ImageNet models were trained on 224x224 images\n",
+    "            transforms.RandomHorizontalFlip(),  # flip horizontally 50% of the time - increases train set variability\n",
+    "            transforms.ToTensor(),  # convert it to a PyTorch tensor\n",
+    "            transforms.Normalize(\n",
+    "                [0.485, 0.456, 0.406], [0.229, 0.224, 0.225]\n",
+    "            ),  # ImageNet models expect this norm\n",
+    "        ]\n",
+    "    ),\n",
+    "    \"val\": transforms.Compose(\n",
+    "        [\n",
+    "            transforms.Resize(256),\n",
+    "            transforms.CenterCrop(224),\n",
+    "            transforms.ToTensor(),\n",
+    "            transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),\n",
+    "        ]\n",
+    "    ),\n",
+    "}\n",
+    "\n",
+    "data_dir = \"hymenoptera_data\"\n",
+    "# Create train and validation datasets and loaders\n",
+    "image_datasets = {\n",
+    "    x: datasets.ImageFolder(os.path.join(data_dir, x), data_transforms[x])\n",
+    "    for x in [\"train\", \"val\"]\n",
+    "}\n",
+    "dataloaders = {\n",
+    "    x: torch.utils.data.DataLoader(\n",
+    "        image_datasets[x], batch_size=4, shuffle=True, num_workers=0\n",
+    "    )\n",
+    "    for x in [\"train\", \"val\"]\n",
+    "}\n",
+    "dataset_sizes = {x: len(image_datasets[x]) for x in [\"train\", \"val\"]}\n",
+    "class_names = image_datasets[\"train\"].classes\n",
+    "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
+    "\n",
+    "# Helper function for displaying images\n",
+    "def imshow(inp, title=None):\n",
+    "    \"\"\"Imshow for Tensor.\"\"\"\n",
+    "    inp = inp.numpy().transpose((1, 2, 0))\n",
+    "    mean = np.array([0.485, 0.456, 0.406])\n",
+    "    std = np.array([0.229, 0.224, 0.225])\n",
+    "\n",
+    "    # Un-normalize the images\n",
+    "    inp = std * inp + mean\n",
+    "    # Clip just in case\n",
+    "    inp = np.clip(inp, 0, 1)\n",
+    "    plt.imshow(inp)\n",
+    "    if title is not None:\n",
+    "        plt.title(title)\n",
+    "    plt.pause(0.001)  # pause a bit so that plots are updated\n",
+    "    plt.show()\n",
+    "\n",
+    "\n",
+    "# Get a batch of training data\n",
+    "inputs, classes = next(iter(dataloaders[\"train\"]))\n",
+    "\n",
+    "# Make a grid from batch\n",
+    "out = torchvision.utils.make_grid(inputs)\n",
+    "\n",
+    "imshow(out, title=[class_names[x] for x in classes])\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bbd48800",
+   "metadata": {},
+   "source": [
+    "Now, execute the following code which uses a pre-trained model ResNet18 having replaced the output layer for the ants/bees classification and performs the model training by only changing the weights of this output layer."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "572d824c",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import copy\n",
+    "import os\n",
+    "import time\n",
+    "\n",
+    "import matplotlib.pyplot as plt\n",
+    "import numpy as np\n",
+    "import torch\n",
+    "import torch.nn as nn\n",
+    "import torch.optim as optim\n",
+    "import torchvision\n",
+    "from torch.optim import lr_scheduler\n",
+    "from torchvision import datasets, transforms\n",
+    "\n",
+    "# Data augmentation and normalization for training\n",
+    "# Just normalization for validation\n",
+    "data_transforms = {\n",
+    "    \"train\": transforms.Compose(\n",
+    "        [\n",
+    "            transforms.RandomResizedCrop(\n",
+    "                224\n",
+    "            ),  # ImageNet models were trained on 224x224 images\n",
+    "            transforms.RandomHorizontalFlip(),  # flip horizontally 50% of the time - increases train set variability\n",
+    "            transforms.ToTensor(),  # convert it to a PyTorch tensor\n",
+    "            transforms.Normalize(\n",
+    "                [0.485, 0.456, 0.406], [0.229, 0.224, 0.225]\n",
+    "            ),  # ImageNet models expect this norm\n",
+    "        ]\n",
+    "    ),\n",
+    "    \"val\": transforms.Compose(\n",
+    "        [\n",
+    "            transforms.Resize(256),\n",
+    "            transforms.CenterCrop(224),\n",
+    "            transforms.ToTensor(),\n",
+    "            transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),\n",
+    "        ]\n",
+    "    ),\n",
+    "}\n",
+    "\n",
+    "data_dir = \"hymenoptera_data\"\n",
+    "# Create train and validation datasets and loaders\n",
+    "image_datasets = {\n",
+    "    x: datasets.ImageFolder(os.path.join(data_dir, x), data_transforms[x])\n",
+    "    for x in [\"train\", \"val\"]\n",
+    "}\n",
+    "dataloaders = {\n",
+    "    x: torch.utils.data.DataLoader(\n",
+    "        image_datasets[x], batch_size=4, shuffle=True, num_workers=4\n",
+    "    )\n",
+    "    for x in [\"train\", \"val\"]\n",
+    "}\n",
+    "dataset_sizes = {x: len(image_datasets[x]) for x in [\"train\", \"val\"]}\n",
+    "class_names = image_datasets[\"train\"].classes\n",
+    "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
+    "\n",
+    "# Helper function for displaying images\n",
+    "def imshow(inp, title=None):\n",
+    "    \"\"\"Imshow for Tensor.\"\"\"\n",
+    "    inp = inp.numpy().transpose((1, 2, 0))\n",
+    "    mean = np.array([0.485, 0.456, 0.406])\n",
+    "    std = np.array([0.229, 0.224, 0.225])\n",
+    "\n",
+    "    # Un-normalize the images\n",
+    "    inp = std * inp + mean\n",
+    "    # Clip just in case\n",
+    "    inp = np.clip(inp, 0, 1)\n",
+    "    plt.imshow(inp)\n",
+    "    if title is not None:\n",
+    "        plt.title(title)\n",
+    "    plt.pause(0.001)  # pause a bit so that plots are updated\n",
+    "    plt.show()\n",
+    "\n",
+    "\n",
+    "# Get a batch of training data\n",
+    "# inputs, classes = next(iter(dataloaders['train']))\n",
+    "\n",
+    "# Make a grid from batch\n",
+    "# out = torchvision.utils.make_grid(inputs)\n",
+    "\n",
+    "# imshow(out, title=[class_names[x] for x in classes])\n",
+    "# training\n",
+    "\n",
+    "\n",
+    "def train_model(model, criterion, optimizer, scheduler, num_epochs=25):\n",
+    "    since = time.time()\n",
+    "\n",
+    "    best_model_wts = copy.deepcopy(model.state_dict())\n",
+    "    best_acc = 0.0\n",
+    "\n",
+    "    epoch_time = []  # we'll keep track of the time needed for each epoch\n",
+    "\n",
+    "    for epoch in range(num_epochs):\n",
+    "        epoch_start = time.time()\n",
+    "        print(\"Epoch {}/{}\".format(epoch + 1, num_epochs))\n",
+    "        print(\"-\" * 10)\n",
+    "\n",
+    "        # Each epoch has a training and validation phase\n",
+    "        for phase in [\"train\", \"val\"]:\n",
+    "            if phase == \"train\":\n",
+    "                scheduler.step()\n",
+    "                model.train()  # Set model to training mode\n",
+    "            else:\n",
+    "                model.eval()  # Set model to evaluate mode\n",
+    "\n",
+    "            running_loss = 0.0\n",
+    "            running_corrects = 0\n",
+    "\n",
+    "            # Iterate over data.\n",
+    "            for inputs, labels in dataloaders[phase]:\n",
+    "                inputs = inputs.to(device)\n",
+    "                labels = labels.to(device)\n",
+    "\n",
+    "                # zero the parameter gradients\n",
+    "                optimizer.zero_grad()\n",
+    "\n",
+    "                # Forward\n",
+    "                # Track history if only in training phase\n",
+    "                with torch.set_grad_enabled(phase == \"train\"):\n",
+    "                    outputs = model(inputs)\n",
+    "                    _, preds = torch.max(outputs, 1)\n",
+    "                    loss = criterion(outputs, labels)\n",
+    "\n",
+    "                    # backward + optimize only if in training phase\n",
+    "                    if phase == \"train\":\n",
+    "                        loss.backward()\n",
+    "                        optimizer.step()\n",
+    "\n",
+    "                # Statistics\n",
+    "                running_loss += loss.item() * inputs.size(0)\n",
+    "                running_corrects += torch.sum(preds == labels.data)\n",
+    "\n",
+    "            epoch_loss = running_loss / dataset_sizes[phase]\n",
+    "            epoch_acc = running_corrects.double() / dataset_sizes[phase]\n",
+    "\n",
+    "            print(\"{} Loss: {:.4f} Acc: {:.4f}\".format(phase, epoch_loss, epoch_acc))\n",
+    "\n",
+    "            # Deep copy the model\n",
+    "            if phase == \"val\" and epoch_acc > best_acc:\n",
+    "                best_acc = epoch_acc\n",
+    "                best_model_wts = copy.deepcopy(model.state_dict())\n",
+    "\n",
+    "        # Add the epoch time\n",
+    "        t_epoch = time.time() - epoch_start\n",
+    "        epoch_time.append(t_epoch)\n",
+    "        print()\n",
+    "\n",
+    "    time_elapsed = time.time() - since\n",
+    "    print(\n",
+    "        \"Training complete in {:.0f}m {:.0f}s\".format(\n",
+    "            time_elapsed // 60, time_elapsed % 60\n",
+    "        )\n",
+    "    )\n",
+    "    print(\"Best val Acc: {:4f}\".format(best_acc))\n",
+    "\n",
+    "    # Load best model weights\n",
+    "    model.load_state_dict(best_model_wts)\n",
+    "    return model, epoch_time\n",
+    "\n",
+    "\n",
+    "# Download a pre-trained ResNet18 model and freeze its weights\n",
+    "model = torchvision.models.resnet18(pretrained=True)\n",
+    "for param in model.parameters():\n",
+    "    param.requires_grad = False\n",
+    "\n",
+    "# Replace the final fully connected layer\n",
+    "# Parameters of newly constructed modules have requires_grad=True by default\n",
+    "num_ftrs = model.fc.in_features\n",
+    "model.fc = nn.Linear(num_ftrs, 2)\n",
+    "# Send the model to the GPU\n",
+    "model = model.to(device)\n",
+    "# Set the loss function\n",
+    "criterion = nn.CrossEntropyLoss()\n",
+    "\n",
+    "# Observe that only the parameters of the final layer are being optimized\n",
+    "optimizer_conv = optim.SGD(model.fc.parameters(), lr=0.001, momentum=0.9)\n",
+    "exp_lr_scheduler = lr_scheduler.StepLR(optimizer_conv, step_size=7, gamma=0.1)\n",
+    "model, epoch_time = train_model(\n",
+    "    model, criterion, optimizer_conv, exp_lr_scheduler, num_epochs=10\n",
+    ")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bbd48800",
+   "metadata": {},
+   "source": [
+    "Experiments:\n",
+    "Study the code and the results obtained.\n",
+    "\n",
+    "Modify the code and add an \"eval_model\" function to allow\n",
+    "the evaluation of the model on a test set (different from the learning and validation sets used during the learning phase). Study the results obtained.\n",
+    "\n",
+    "Now modify the code to replace the current classification layer with a set of two layers using a \"relu\" activation function for the middle layer, and the \"dropout\" mechanism for both layers. Renew the experiments and study the results obtained.\n",
+    "\n",
+    "Apply ther quantization (post and quantization aware) and evaluate impact on model size and accuracy."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "04a263f0",
+   "metadata": {},
+   "source": [
+    "## Optional\n",
+    "    \n",
+    "Try this at home!! \n",
+    "\n",
+    "\n",
+    "Pytorch offers a framework to export a given CNN to your selfphone (either android or iOS). Have a look at the tutorial https://pytorch.org/mobile/home/\n",
+    "\n",
+    "The Exercise consists in deploying the CNN of Exercise 4 in your phone and then test it on live.\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "fe954ce4",
+   "metadata": {},
+   "source": [
+    "## Author\n",
+    "\n",
+    "Alberto BOSIO - Ph. D."
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3.8.5 ('base')",
+   "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.8.5"
+  },
+  "vscode": {
+   "interpreter": {
+    "hash": "9e3efbebb05da2d4a1968abe9a0645745f54b63feb7a85a514e4da0495be97eb"
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/dog.png b/dog.png
new file mode 100644
index 0000000000000000000000000000000000000000..786dc161c6d8981020d04d7a7082ab1d4fcb1bef
GIT binary patch
literal 86387
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%0DLU4Ze;$oZ2Kd
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%0Dly<lFFgR569OLHFoE5ibsb%2z2|HV_
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

literal 0
HcmV?d00001

diff --git a/imagenet-simple-labels.json b/imagenet-simple-labels.json
new file mode 100644
index 0000000..4528298
--- /dev/null
+++ b/imagenet-simple-labels.json
@@ -0,0 +1,1000 @@
+["tench",
+"goldfish",
+"great white shark",
+"tiger shark",
+"hammerhead shark",
+"electric ray",
+"stingray",
+"cock",
+"hen",
+"ostrich",
+"brambling",
+"goldfinch",
+"house finch",
+"junco",
+"indigo bunting",
+"American robin",
+"bulbul",
+"jay",
+"magpie",
+"chickadee",
+"American dipper",
+"kite",
+"bald eagle",
+"vulture",
+"great grey owl",
+"fire salamander",
+"smooth newt",
+"newt",
+"spotted salamander",
+"axolotl",
+"American bullfrog",
+"tree frog",
+"tailed frog",
+"loggerhead sea turtle",
+"leatherback sea turtle",
+"mud turtle",
+"terrapin",
+"box turtle",
+"banded gecko",
+"green iguana",
+"Carolina anole",
+"desert grassland whiptail lizard",
+"agama",
+"frilled-necked lizard",
+"alligator lizard",
+"Gila monster",
+"European green lizard",
+"chameleon",
+"Komodo dragon",
+"Nile crocodile",
+"American alligator",
+"triceratops",
+"worm snake",
+"ring-necked snake",
+"eastern hog-nosed snake",
+"smooth green snake",
+"kingsnake",
+"garter snake",
+"water snake",
+"vine snake",
+"night snake",
+"boa constrictor",
+"African rock python",
+"Indian cobra",
+"green mamba",
+"sea snake",
+"Saharan horned viper",
+"eastern diamondback rattlesnake",
+"sidewinder",
+"trilobite",
+"harvestman",
+"scorpion",
+"yellow garden spider",
+"barn spider",
+"European garden spider",
+"southern black widow",
+"tarantula",
+"wolf spider",
+"tick",
+"centipede",
+"black grouse",
+"ptarmigan",
+"ruffed grouse",
+"prairie grouse",
+"peacock",
+"quail",
+"partridge",
+"grey parrot",
+"macaw",
+"sulphur-crested cockatoo",
+"lorikeet",
+"coucal",
+"bee eater",
+"hornbill",
+"hummingbird",
+"jacamar",
+"toucan",
+"duck",
+"red-breasted merganser",
+"goose",
+"black swan",
+"tusker",
+"echidna",
+"platypus",
+"wallaby",
+"koala",
+"wombat",
+"jellyfish",
+"sea anemone",
+"brain coral",
+"flatworm",
+"nematode",
+"conch",
+"snail",
+"slug",
+"sea slug",
+"chiton",
+"chambered nautilus",
+"Dungeness crab",
+"rock crab",
+"fiddler crab",
+"red king crab",
+"American lobster",
+"spiny lobster",
+"crayfish",
+"hermit crab",
+"isopod",
+"white stork",
+"black stork",
+"spoonbill",
+"flamingo",
+"little blue heron",
+"great egret",
+"bittern",
+"crane",
+"limpkin",
+"common gallinule",
+"American coot",
+"bustard",
+"ruddy turnstone",
+"dunlin",
+"common redshank",
+"dowitcher",
+"oystercatcher",
+"pelican",
+"king penguin",
+"albatross",
+"grey whale",
+"killer whale",
+"dugong",
+"sea lion",
+"Chihuahua",
+"Japanese Chin",
+"Maltese",
+"Pekingese",
+"Shih Tzu",
+"King Charles Spaniel",
+"Papillon",
+"toy terrier",
+"Rhodesian Ridgeback",
+"Afghan Hound",
+"Basset Hound",
+"Beagle",
+"Bloodhound",
+"Bluetick Coonhound",
+"Black and Tan Coonhound",
+"Treeing Walker Coonhound",
+"English foxhound",
+"Redbone Coonhound",
+"borzoi",
+"Irish Wolfhound",
+"Italian Greyhound",
+"Whippet",
+"Ibizan Hound",
+"Norwegian Elkhound",
+"Otterhound",
+"Saluki",
+"Scottish Deerhound",
+"Weimaraner",
+"Staffordshire Bull Terrier",
+"American Staffordshire Terrier",
+"Bedlington Terrier",
+"Border Terrier",
+"Kerry Blue Terrier",
+"Irish Terrier",
+"Norfolk Terrier",
+"Norwich Terrier",
+"Yorkshire Terrier",
+"Wire Fox Terrier",
+"Lakeland Terrier",
+"Sealyham Terrier",
+"Airedale Terrier",
+"Cairn Terrier",
+"Australian Terrier",
+"Dandie Dinmont Terrier",
+"Boston Terrier",
+"Miniature Schnauzer",
+"Giant Schnauzer",
+"Standard Schnauzer",
+"Scottish Terrier",
+"Tibetan Terrier",
+"Australian Silky Terrier",
+"Soft-coated Wheaten Terrier",
+"West Highland White Terrier",
+"Lhasa Apso",
+"Flat-Coated Retriever",
+"Curly-coated Retriever",
+"Golden Retriever",
+"Labrador Retriever",
+"Chesapeake Bay Retriever",
+"German Shorthaired Pointer",
+"Vizsla",
+"English Setter",
+"Irish Setter",
+"Gordon Setter",
+"Brittany",
+"Clumber Spaniel",
+"English Springer Spaniel",
+"Welsh Springer Spaniel",
+"Cocker Spaniels",
+"Sussex Spaniel",
+"Irish Water Spaniel",
+"Kuvasz",
+"Schipperke",
+"Groenendael",
+"Malinois",
+"Briard",
+"Australian Kelpie",
+"Komondor",
+"Old English Sheepdog",
+"Shetland Sheepdog",
+"collie",
+"Border Collie",
+"Bouvier des Flandres",
+"Rottweiler",
+"German Shepherd Dog",
+"Dobermann",
+"Miniature Pinscher",
+"Greater Swiss Mountain Dog",
+"Bernese Mountain Dog",
+"Appenzeller Sennenhund",
+"Entlebucher Sennenhund",
+"Boxer",
+"Bullmastiff",
+"Tibetan Mastiff",
+"French Bulldog",
+"Great Dane",
+"St. Bernard",
+"husky",
+"Alaskan Malamute",
+"Siberian Husky",
+"Dalmatian",
+"Affenpinscher",
+"Basenji",
+"pug",
+"Leonberger",
+"Newfoundland",
+"Pyrenean Mountain Dog",
+"Samoyed",
+"Pomeranian",
+"Chow Chow",
+"Keeshond",
+"Griffon Bruxellois",
+"Pembroke Welsh Corgi",
+"Cardigan Welsh Corgi",
+"Toy Poodle",
+"Miniature Poodle",
+"Standard Poodle",
+"Mexican hairless dog",
+"grey wolf",
+"Alaskan tundra wolf",
+"red wolf",
+"coyote",
+"dingo",
+"dhole",
+"African wild dog",
+"hyena",
+"red fox",
+"kit fox",
+"Arctic fox",
+"grey fox",
+"tabby cat",
+"tiger cat",
+"Persian cat",
+"Siamese cat",
+"Egyptian Mau",
+"cougar",
+"lynx",
+"leopard",
+"snow leopard",
+"jaguar",
+"lion",
+"tiger",
+"cheetah",
+"brown bear",
+"American black bear",
+"polar bear",
+"sloth bear",
+"mongoose",
+"meerkat",
+"tiger beetle",
+"ladybug",
+"ground beetle",
+"longhorn beetle",
+"leaf beetle",
+"dung beetle",
+"rhinoceros beetle",
+"weevil",
+"fly",
+"bee",
+"ant",
+"grasshopper",
+"cricket",
+"stick insect",
+"cockroach",
+"mantis",
+"cicada",
+"leafhopper",
+"lacewing",
+"dragonfly",
+"damselfly",
+"red admiral",
+"ringlet",
+"monarch butterfly",
+"small white",
+"sulphur butterfly",
+"gossamer-winged butterfly",
+"starfish",
+"sea urchin",
+"sea cucumber",
+"cottontail rabbit",
+"hare",
+"Angora rabbit",
+"hamster",
+"porcupine",
+"fox squirrel",
+"marmot",
+"beaver",
+"guinea pig",
+"common sorrel",
+"zebra",
+"pig",
+"wild boar",
+"warthog",
+"hippopotamus",
+"ox",
+"water buffalo",
+"bison",
+"ram",
+"bighorn sheep",
+"Alpine ibex",
+"hartebeest",
+"impala",
+"gazelle",
+"dromedary",
+"llama",
+"weasel",
+"mink",
+"European polecat",
+"black-footed ferret",
+"otter",
+"skunk",
+"badger",
+"armadillo",
+"three-toed sloth",
+"orangutan",
+"gorilla",
+"chimpanzee",
+"gibbon",
+"siamang",
+"guenon",
+"patas monkey",
+"baboon",
+"macaque",
+"langur",
+"black-and-white colobus",
+"proboscis monkey",
+"marmoset",
+"white-headed capuchin",
+"howler monkey",
+"titi",
+"Geoffroy's spider monkey",
+"common squirrel monkey",
+"ring-tailed lemur",
+"indri",
+"Asian elephant",
+"African bush elephant",
+"red panda",
+"giant panda",
+"snoek",
+"eel",
+"coho salmon",
+"rock beauty",
+"clownfish",
+"sturgeon",
+"garfish",
+"lionfish",
+"pufferfish",
+"abacus",
+"abaya",
+"academic gown",
+"accordion",
+"acoustic guitar",
+"aircraft carrier",
+"airliner",
+"airship",
+"altar",
+"ambulance",
+"amphibious vehicle",
+"analog clock",
+"apiary",
+"apron",
+"waste container",
+"assault rifle",
+"backpack",
+"bakery",
+"balance beam",
+"balloon",
+"ballpoint pen",
+"Band-Aid",
+"banjo",
+"baluster",
+"barbell",
+"barber chair",
+"barbershop",
+"barn",
+"barometer",
+"barrel",
+"wheelbarrow",
+"baseball",
+"basketball",
+"bassinet",
+"bassoon",
+"swimming cap",
+"bath towel",
+"bathtub",
+"station wagon",
+"lighthouse",
+"beaker",
+"military cap",
+"beer bottle",
+"beer glass",
+"bell-cot",
+"bib",
+"tandem bicycle",
+"bikini",
+"ring binder",
+"binoculars",
+"birdhouse",
+"boathouse",
+"bobsleigh",
+"bolo tie",
+"poke bonnet",
+"bookcase",
+"bookstore",
+"bottle cap",
+"bow",
+"bow tie",
+"brass",
+"bra",
+"breakwater",
+"breastplate",
+"broom",
+"bucket",
+"buckle",
+"bulletproof vest",
+"high-speed train",
+"butcher shop",
+"taxicab",
+"cauldron",
+"candle",
+"cannon",
+"canoe",
+"can opener",
+"cardigan",
+"car mirror",
+"carousel",
+"tool kit",
+"carton",
+"car wheel",
+"automated teller machine",
+"cassette",
+"cassette player",
+"castle",
+"catamaran",
+"CD player",
+"cello",
+"mobile phone",
+"chain",
+"chain-link fence",
+"chain mail",
+"chainsaw",
+"chest",
+"chiffonier",
+"chime",
+"china cabinet",
+"Christmas stocking",
+"church",
+"movie theater",
+"cleaver",
+"cliff dwelling",
+"cloak",
+"clogs",
+"cocktail shaker",
+"coffee mug",
+"coffeemaker",
+"coil",
+"combination lock",
+"computer keyboard",
+"confectionery store",
+"container ship",
+"convertible",
+"corkscrew",
+"cornet",
+"cowboy boot",
+"cowboy hat",
+"cradle",
+"crane",
+"crash helmet",
+"crate",
+"infant bed",
+"Crock Pot",
+"croquet ball",
+"crutch",
+"cuirass",
+"dam",
+"desk",
+"desktop computer",
+"rotary dial telephone",
+"diaper",
+"digital clock",
+"digital watch",
+"dining table",
+"dishcloth",
+"dishwasher",
+"disc brake",
+"dock",
+"dog sled",
+"dome",
+"doormat",
+"drilling rig",
+"drum",
+"drumstick",
+"dumbbell",
+"Dutch oven",
+"electric fan",
+"electric guitar",
+"electric locomotive",
+"entertainment center",
+"envelope",
+"espresso machine",
+"face powder",
+"feather boa",
+"filing cabinet",
+"fireboat",
+"fire engine",
+"fire screen sheet",
+"flagpole",
+"flute",
+"folding chair",
+"football helmet",
+"forklift",
+"fountain",
+"fountain pen",
+"four-poster bed",
+"freight car",
+"French horn",
+"frying pan",
+"fur coat",
+"garbage truck",
+"gas mask",
+"gas pump",
+"goblet",
+"go-kart",
+"golf ball",
+"golf cart",
+"gondola",
+"gong",
+"gown",
+"grand piano",
+"greenhouse",
+"grille",
+"grocery store",
+"guillotine",
+"barrette",
+"hair spray",
+"half-track",
+"hammer",
+"hamper",
+"hair dryer",
+"hand-held computer",
+"handkerchief",
+"hard disk drive",
+"harmonica",
+"harp",
+"harvester",
+"hatchet",
+"holster",
+"home theater",
+"honeycomb",
+"hook",
+"hoop skirt",
+"horizontal bar",
+"horse-drawn vehicle",
+"hourglass",
+"iPod",
+"clothes iron",
+"jack-o'-lantern",
+"jeans",
+"jeep",
+"T-shirt",
+"jigsaw puzzle",
+"pulled rickshaw",
+"joystick",
+"kimono",
+"knee pad",
+"knot",
+"lab coat",
+"ladle",
+"lampshade",
+"laptop computer",
+"lawn mower",
+"lens cap",
+"paper knife",
+"library",
+"lifeboat",
+"lighter",
+"limousine",
+"ocean liner",
+"lipstick",
+"slip-on shoe",
+"lotion",
+"speaker",
+"loupe",
+"sawmill",
+"magnetic compass",
+"mail bag",
+"mailbox",
+"tights",
+"tank suit",
+"manhole cover",
+"maraca",
+"marimba",
+"mask",
+"match",
+"maypole",
+"maze",
+"measuring cup",
+"medicine chest",
+"megalith",
+"microphone",
+"microwave oven",
+"military uniform",
+"milk can",
+"minibus",
+"miniskirt",
+"minivan",
+"missile",
+"mitten",
+"mixing bowl",
+"mobile home",
+"Model T",
+"modem",
+"monastery",
+"monitor",
+"moped",
+"mortar",
+"square academic cap",
+"mosque",
+"mosquito net",
+"scooter",
+"mountain bike",
+"tent",
+"computer mouse",
+"mousetrap",
+"moving van",
+"muzzle",
+"nail",
+"neck brace",
+"necklace",
+"nipple",
+"notebook computer",
+"obelisk",
+"oboe",
+"ocarina",
+"odometer",
+"oil filter",
+"organ",
+"oscilloscope",
+"overskirt",
+"bullock cart",
+"oxygen mask",
+"packet",
+"paddle",
+"paddle wheel",
+"padlock",
+"paintbrush",
+"pajamas",
+"palace",
+"pan flute",
+"paper towel",
+"parachute",
+"parallel bars",
+"park bench",
+"parking meter",
+"passenger car",
+"patio",
+"payphone",
+"pedestal",
+"pencil case",
+"pencil sharpener",
+"perfume",
+"Petri dish",
+"photocopier",
+"plectrum",
+"Pickelhaube",
+"picket fence",
+"pickup truck",
+"pier",
+"piggy bank",
+"pill bottle",
+"pillow",
+"ping-pong ball",
+"pinwheel",
+"pirate ship",
+"pitcher",
+"hand plane",
+"planetarium",
+"plastic bag",
+"plate rack",
+"plow",
+"plunger",
+"Polaroid camera",
+"pole",
+"police van",
+"poncho",
+"billiard table",
+"soda bottle",
+"pot",
+"potter's wheel",
+"power drill",
+"prayer rug",
+"printer",
+"prison",
+"projectile",
+"projector",
+"hockey puck",
+"punching bag",
+"purse",
+"quill",
+"quilt",
+"race car",
+"racket",
+"radiator",
+"radio",
+"radio telescope",
+"rain barrel",
+"recreational vehicle",
+"reel",
+"reflex camera",
+"refrigerator",
+"remote control",
+"restaurant",
+"revolver",
+"rifle",
+"rocking chair",
+"rotisserie",
+"eraser",
+"rugby ball",
+"ruler",
+"running shoe",
+"safe",
+"safety pin",
+"salt shaker",
+"sandal",
+"sarong",
+"saxophone",
+"scabbard",
+"weighing scale",
+"school bus",
+"schooner",
+"scoreboard",
+"CRT screen",
+"screw",
+"screwdriver",
+"seat belt",
+"sewing machine",
+"shield",
+"shoe store",
+"shoji",
+"shopping basket",
+"shopping cart",
+"shovel",
+"shower cap",
+"shower curtain",
+"ski",
+"ski mask",
+"sleeping bag",
+"slide rule",
+"sliding door",
+"slot machine",
+"snorkel",
+"snowmobile",
+"snowplow",
+"soap dispenser",
+"soccer ball",
+"sock",
+"solar thermal collector",
+"sombrero",
+"soup bowl",
+"space bar",
+"space heater",
+"space shuttle",
+"spatula",
+"motorboat",
+"spider web",
+"spindle",
+"sports car",
+"spotlight",
+"stage",
+"steam locomotive",
+"through arch bridge",
+"steel drum",
+"stethoscope",
+"scarf",
+"stone wall",
+"stopwatch",
+"stove",
+"strainer",
+"tram",
+"stretcher",
+"couch",
+"stupa",
+"submarine",
+"suit",
+"sundial",
+"sunglass",
+"sunglasses",
+"sunscreen",
+"suspension bridge",
+"mop",
+"sweatshirt",
+"swimsuit",
+"swing",
+"switch",
+"syringe",
+"table lamp",
+"tank",
+"tape player",
+"teapot",
+"teddy bear",
+"television",
+"tennis ball",
+"thatched roof",
+"front curtain",
+"thimble",
+"threshing machine",
+"throne",
+"tile roof",
+"toaster",
+"tobacco shop",
+"toilet seat",
+"torch",
+"totem pole",
+"tow truck",
+"toy store",
+"tractor",
+"semi-trailer truck",
+"tray",
+"trench coat",
+"tricycle",
+"trimaran",
+"tripod",
+"triumphal arch",
+"trolleybus",
+"trombone",
+"tub",
+"turnstile",
+"typewriter keyboard",
+"umbrella",
+"unicycle",
+"upright piano",
+"vacuum cleaner",
+"vase",
+"vault",
+"velvet",
+"vending machine",
+"vestment",
+"viaduct",
+"violin",
+"volleyball",
+"waffle iron",
+"wall clock",
+"wallet",
+"wardrobe",
+"military aircraft",
+"sink",
+"washing machine",
+"water bottle",
+"water jug",
+"water tower",
+"whiskey jug",
+"whistle",
+"wig",
+"window screen",
+"window shade",
+"Windsor tie",
+"wine bottle",
+"wing",
+"wok",
+"wooden spoon",
+"wool",
+"split-rail fence",
+"shipwreck",
+"yawl",
+"yurt",
+"website",
+"comic book",
+"crossword",
+"traffic sign",
+"traffic light",
+"dust jacket",
+"menu",
+"plate",
+"guacamole",
+"consomme",
+"hot pot",
+"trifle",
+"ice cream",
+"ice pop",
+"baguette",
+"bagel",
+"pretzel",
+"cheeseburger",
+"hot dog",
+"mashed potato",
+"cabbage",
+"broccoli",
+"cauliflower",
+"zucchini",
+"spaghetti squash",
+"acorn squash",
+"butternut squash",
+"cucumber",
+"artichoke",
+"bell pepper",
+"cardoon",
+"mushroom",
+"Granny Smith",
+"strawberry",
+"orange",
+"lemon",
+"fig",
+"pineapple",
+"banana",
+"jackfruit",
+"custard apple",
+"pomegranate",
+"hay",
+"carbonara",
+"chocolate syrup",
+"dough",
+"meatloaf",
+"pizza",
+"pot pie",
+"burrito",
+"red wine",
+"espresso",
+"cup",
+"eggnog",
+"alp",
+"bubble",
+"cliff",
+"coral reef",
+"geyser",
+"lakeshore",
+"promontory",
+"shoal",
+"seashore",
+"valley",
+"volcano",
+"baseball player",
+"bridegroom",
+"scuba diver",
+"rapeseed",
+"daisy",
+"yellow lady's slipper",
+"corn",
+"acorn",
+"rose hip",
+"horse chestnut seed",
+"coral fungus",
+"agaric",
+"gyromitra",
+"stinkhorn mushroom",
+"earth star",
+"hen-of-the-woods",
+"bolete",
+"ear",
+"toilet paper"]
-- 
GitLab