[404218]: / Code / PennyLane / QML Algorithm Search / Quanvolutional Neural Networks / 1RYeRandomLrsStd 1st 83.3% 145.71s.ipynb

Download this file

862 lines (861 with data), 166.2 kB

{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "A7xgHxPxd0J_",
        "outputId": "d4c03e0b-6385-42f7-ad8b-8d5368600eee"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Time in seconds since beginning of run: 1706118200.4969373\n",
            "Wed Jan 24 17:43:20 2024\n"
          ]
        }
      ],
      "source": [
        "# This cell is added by sphinx-gallery\n",
        "# It can be customized to whatever you like\n",
        "%matplotlib inline\n",
        "# from google.colab import drive\n",
        "# drive.mount('/content/drive')\n",
        "# !pip install pennylane\n",
        "import time\n",
        "seconds = time.time()\n",
        "print(\"Time in seconds since beginning of run:\", seconds)\n",
        "local_time = time.ctime(seconds)\n",
        "print(local_time)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "RWYw4Yy7d0KA"
      },
      "source": [
        "Quanvolutional Neural Networks {#quanvolution}\n",
        "==============================\n",
        "\n",
        "::: {.meta}\n",
        ":property=\\\"og:description\\\": Train a quantum convolutional neural\n",
        "network to classify MNIST images. :property=\\\"og:image\\\":\n",
        "<https://pennylane.ai/qml/_static/demonstration_assets//circuit.png>\n",
        ":::\n",
        "\n",
        "*Author: Andrea Mari --- Posted: 24 March 2020. Last updated: 15 January\n",
        "2021.*\n",
        "\n",
        "In this demo we implement the *Quanvolutional Neural Network*, a quantum\n",
        "machine learning model originally introduced in [Henderson et al.\n",
        "(2019)](https://arxiv.org/abs/1904.04767).\n",
        "\n",
        "![](../_static/demonstration_assets/quanvolution/circuit.png){.align-center\n",
        "width=\"90.0%\"}\n",
        "\n",
        "Introduction\n",
        "------------\n",
        "\n",
        "### Classical convolution\n",
        "\n",
        "The *convolutional neural network* (CNN) is a standard model in\n",
        "classical machine learning which is particularly suitable for processing\n",
        "images. The model is based on the idea of a *convolution layer* where,\n",
        "instead of processing the full input data with a global function, a\n",
        "local convolution is applied.\n",
        "\n",
        "If the input is an image, small local regions are sequentially processed\n",
        "with the same kernel. The results obtained for each region are usually\n",
        "associated to different channels of a single output pixel. The union of\n",
        "all the output pixels produces a new image-like object, which can be\n",
        "further processed by additional layers.\n",
        "\n",
        "### Quantum convolution\n",
        "\n",
        "One can extend the same idea also to the context of quantum variational\n",
        "circuits. A possible approach is given by the following procedure which\n",
        "is very similar to the one used in Ref. \\[1\\]. The scheme is also\n",
        "represented in the figure at the top of this tutorial.\n",
        "\n",
        "1.  A small region of the input image, in our example a $2 \\times 2$\n",
        "    square, is embedded into a quantum circuit. In this demo, this is\n",
        "    achieved with parametrized rotations applied to the qubits\n",
        "    initialized in the ground state.\n",
        "2.  A quantum computation, associated to a unitary $U$, is performed on\n",
        "    the system. The unitary could be generated by a variational quantum\n",
        "    circuit or, more simply, by a random circuit as proposed in Ref.\n",
        "    \\[1\\].\n",
        "3.  The quantum system is finally measured, obtaining a list of\n",
        "    classical expectation values. The measurement results could also be\n",
        "    classically post-processed as proposed in Ref. \\[1\\] but, for\n",
        "    simplicity, in this demo we directly use the raw expectation values.\n",
        "4.  Analogously to a classical convolution layer, each expectation value\n",
        "    is mapped to a different channel of a single output pixel.\n",
        "5.  Iterating the same procedure over different regions, one can scan\n",
        "    the full input image, producing an output object which will be\n",
        "    structured as a multi-channel image.\n",
        "6.  The quantum convolution can be followed by further quantum layers or\n",
        "    by classical layers.\n",
        "\n",
        "The main difference with respect to a classical convolution is that a\n",
        "quantum circuit can generate highly complex kernels whose computation\n",
        "could be, at least in principle, classically intractable.\n",
        "\n",
        "::: {.note}\n",
        "::: {.title}\n",
        "Note\n",
        ":::\n",
        "\n",
        "In this tutorial we follow the approach of Ref. \\[1\\] in which a fixed\n",
        "non-trainable quantum circuit is used as a \\\"quanvolution\\\" kernel,\n",
        "while the subsequent classical layers are trained for the classification\n",
        "problem of interest. However, by leveraging the ability of PennyLane to\n",
        "evaluate gradients of quantum circuits, the quantum kernel could also be\n",
        "trained.\n",
        ":::\n",
        "\n",
        "General setup\n",
        "-------------\n",
        "\n",
        "This Python code requires *PennyLane* with the *TensorFlow* interface\n",
        "and the plotting library *matplotlib*.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "id": "VPbcKloNd0KC"
      },
      "outputs": [],
      "source": [
        "import pennylane as qml\n",
        "from pennylane import numpy as np\n",
        "from pennylane.templates import RandomLayers\n",
        "import tensorflow as tf\n",
        "from tensorflow import keras\n",
        "import matplotlib.pyplot as plt"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ISZAWXDMd0KC"
      },
      "source": [
        "Setting of the main hyper-parameters of the model\n",
        "=================================================\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "id": "1D5V-v5Vd0KC"
      },
      "outputs": [],
      "source": [
        "n_epochs = 30   # Number of optimization epochs\n",
        "n_layers = 1    # Number of random layers\n",
        "n_train = 50    # Size of the train dataset\n",
        "n_test = 30     # Size of the test dataset\n",
        "\n",
        "SAVE_PATH = \"/content/drive/MyDrive/Colab Notebooks/data/quanvolution\"  # Data saving folder\n",
        "PREPROCESS = True           # If False, skip quantum processing and load data from SAVE_PATH\n",
        "np.random.seed(0)           # Seed for NumPy random number generator\n",
        "tf.random.set_seed(0)       # Seed for TensorFlow random number generator"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "avddR0atd0KC"
      },
      "source": [
        "Loading of the MNIST dataset\n",
        "============================\n",
        "\n",
        "We import the MNIST dataset from *Keras*. To speedup the evaluation of\n",
        "this demo we use only a small number of training and test images.\n",
        "Obviously, better results are achievable when using the full dataset.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "id": "xlhnv1hrd0KC",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "outputId": "eda4086a-09ae-48b1-fa08-59275a6172fd"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n",
            "11490434/11490434 [==============================] - 1s 0us/step\n"
          ]
        }
      ],
      "source": [
        "mnist_dataset = keras.datasets.mnist\n",
        "(train_images, train_labels), (test_images, test_labels) = mnist_dataset.load_data()\n",
        "\n",
        "# Reduce dataset size\n",
        "train_images = train_images[:n_train]\n",
        "train_labels = train_labels[:n_train]\n",
        "test_images = test_images[:n_test]\n",
        "test_labels = test_labels[:n_test]\n",
        "\n",
        "# Normalize pixel values within 0 and 1\n",
        "train_images = train_images / 255\n",
        "test_images = test_images / 255\n",
        "\n",
        "# Add extra dimension for convolution channels\n",
        "train_images = np.array(train_images[..., tf.newaxis], requires_grad=False)\n",
        "test_images = np.array(test_images[..., tf.newaxis], requires_grad=False)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "bDVPKQD8d0KD"
      },
      "source": [
        "Quantum circuit as a convolution kernel\n",
        "=======================================\n",
        "\n",
        "We follow the scheme described in the introduction and represented in\n",
        "the figure at the top of this demo.\n",
        "\n",
        "We initialize a PennyLane `default.qubit` device, simulating a system of\n",
        "$4$ qubits. The associated `qnode` represents the quantum circuit\n",
        "consisting of:\n",
        "\n",
        "1.  an embedding layer of local $R_y$ rotations (with angles scaled by a\n",
        "    factor of $\\pi$);\n",
        "2.  a random circuit of `n_layers`;\n",
        "3.  a final measurement in the computational basis, estimating $4$\n",
        "    expectation values.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "id": "rD5_3eztd0KD"
      },
      "outputs": [],
      "source": [
        "dev = qml.device(\"default.qubit\", wires=4)\n",
        "# Random circuit parameters\n",
        "rand_params = np.random.uniform(high=2 * np.pi, size=(n_layers, 4))\n",
        "\n",
        "@qml.qnode(dev)\n",
        "def circuit(phi):\n",
        "    # Encoding of 4 classical input values\n",
        "    for j in range(4):\n",
        "        qml.RY(np.pi * phi[j], wires=j)\n",
        "\n",
        "    # Random quantum circuit\n",
        "    RandomLayers(rand_params, wires=list(range(4)))\n",
        "\n",
        "    # Measurement producing 4 classical output values\n",
        "    return [qml.expval(qml.PauliZ(j)) for j in range(4)]"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "02g-DOe8d0KD"
      },
      "source": [
        "The next function defines the convolution scheme:\n",
        "\n",
        "1.  the image is divided into squares of $2 \\times 2$ pixels;\n",
        "2.  each square is processed by the quantum circuit;\n",
        "3.  the $4$ expectation values are mapped into $4$ different channels of\n",
        "    a single output pixel.\n",
        "\n",
        "::: {.note}\n",
        "::: {.title}\n",
        "Note\n",
        ":::\n",
        "\n",
        "This process halves the resolution of the input image. In the standard\n",
        "language of CNN, this would correspond to a convolution with a\n",
        "$2 \\times 2$ *kernel* and a *stride* equal to $2$.\n",
        ":::\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "id": "AEL9cTFEd0KD"
      },
      "outputs": [],
      "source": [
        "def quanv(image):\n",
        "    \"\"\"Convolves the input image with many applications of the same quantum circuit.\"\"\"\n",
        "    out = np.zeros((14, 14, 4))\n",
        "\n",
        "    # Loop over the coordinates of the top-left pixel of 2X2 squares\n",
        "    for j in range(0, 28, 2):\n",
        "        for k in range(0, 28, 2):\n",
        "            # Process a squared 2x2 region of the image with a quantum circuit\n",
        "            q_results = circuit(\n",
        "                [\n",
        "                    image[j, k, 0],\n",
        "                    image[j, k + 1, 0],\n",
        "                    image[j + 1, k, 0],\n",
        "                    image[j + 1, k + 1, 0]\n",
        "                ]\n",
        "            )\n",
        "            # Assign expectation values to different channels of the output pixel (j/2, k/2)\n",
        "            for c in range(4):\n",
        "                out[j // 2, k // 2, c] = q_results[c]\n",
        "    return out"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "N3MmyCQad0KD"
      },
      "source": [
        "Quantum pre-processing of the dataset\n",
        "=====================================\n",
        "\n",
        "Since we are not going to train the quantum convolution layer, it is\n",
        "more efficient to apply it as a \\\"pre-processing\\\" layer to all the\n",
        "images of our dataset. Later an entirely classical model will be\n",
        "directly trained and tested on the pre-processed dataset, avoiding\n",
        "unnecessary repetitions of quantum computations.\n",
        "\n",
        "The pre-processed images will be saved in the folder `SAVE_PATH`. Once\n",
        "saved, they can be directly loaded by setting `PREPROCESS = False`,\n",
        "otherwise the quantum convolution is evaluated at each run of the code.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "c3oexS3hd0KD",
        "outputId": "55962d6c-e11f-419e-b25e-de46371268b0"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Quantum pre-processing of train images:\n",
            "\n",
            "Quantum pre-processing of test images:\n"
          ]
        }
      ],
      "source": [
        "if PREPROCESS == True:\n",
        "    q_train_images = []\n",
        "    print(\"Quantum pre-processing of train images:\")\n",
        "    for idx, img in enumerate(train_images):\n",
        "        print(\"{}/{}        \".format(idx + 1, n_train), end=\"\\r\")\n",
        "        q_train_images.append(quanv(img))\n",
        "    q_train_images = np.asarray(q_train_images)\n",
        "\n",
        "    q_test_images = []\n",
        "    print(\"\\nQuantum pre-processing of test images:\")\n",
        "    for idx, img in enumerate(test_images):\n",
        "        print(\"{}/{}        \".format(idx + 1, n_test), end=\"\\r\")\n",
        "        q_test_images.append(quanv(img))\n",
        "    q_test_images = np.asarray(q_test_images)\n",
        "\n",
        "    # Save pre-processed images\n",
        "    np.save(SAVE_PATH + \"q_train_images.npy\", q_train_images)\n",
        "    np.save(SAVE_PATH + \"q_test_images.npy\", q_test_images)\n",
        "\n",
        "\n",
        "# Load pre-processed images\n",
        "q_train_images = np.load(SAVE_PATH + \"q_train_images.npy\")\n",
        "q_test_images = np.load(SAVE_PATH + \"q_test_images.npy\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kJYilWS1d0KE"
      },
      "source": [
        "Let us visualize the effect of the quantum convolution layer on a batch\n",
        "of samples:\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1006
        },
        "id": "2ckiL7srd0KE",
        "outputId": "d7543522-92af-4dc1-d014-177723adb412"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1000x1000 with 20 Axes>"
            ],
            "image/png": "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AAAANxndY1pbW6vdu3f7rpeVlWn79u3q3r27evfurbvuuksPPvig+vXrp6ysLM2cOVNpaWnNznUKAAAAAIhsQe0xLS4u1meffea3/vnnn6u4uNj2djZv3qxvfetb+ta3viVJKioq0re+9S3NmjVLknTvvffq9ttv16233qoLL7xQtbW1Wr9+vTp27BhMbAAAAABAGApqML3//vsDfo/ps88+0/333297O5dccoksy/K7rFy5UpLk8XhUXFysiooKnThxQq+++mqL3+MCAAAAAESmoAZTy7Lk8Xj81t977z1179691aEAAAAAALHD0XdMu3XrJo/HI4/Ho/79+zcbThsbG1VbW6uf/vSnrodEcObMmRNwffDgwX5r3/ve9wLW5uXlBVz/+9//HnQuIJK1dNTvRx55JOB6oCONHj9+PGDtxIkTA65v3rzZby2ajlTau3dv0xEQBs455xzbtf/85z9DmCR6BPp7KdCReiXpX//6l99aS39XAbEgMzMz4Przzz/f6m0vWbIk4Prrr7/e6m1HMkeD6aJFi2RZliZPnqz777+/2SkP4uPjlZmZyRFzAQAAAACOOBpMCwoKJH15KpeLLrpIHTp0CEkoAAAAAEDsCOp0MVlZWQFP+H4KH8sCAAAAANgV1GCamZkZ8OBHpzQ2NgYdCAAAAAAQW4IaTLdt29bs+smTJ7Vt2zY9+uijeuihh1wJhtarq6sLuH7LLbf4rW3dujVg7RNPPBFwPdCXswMdoEWSli5dGnDdsqyA60A4O3Xe5f8r0EGOWnLNNdcEXH/zzTeDygTEmnfffdd0hJBLSkryW7viiisC1t5www0B1y+//HLbP++BBx7wW6uqqrJ9fyDatNRvAwcOtL2NkpKSgOu//vWvg8oU7YIaTLOzs/3WhgwZorS0NM2fP19jx45tdTAAAAAAQGwI6jymLTnnnHNi4reYAAAAAAD3BLXHtKamptl1y7J08OBBzZkzR/369XMlGAAAAAAgNgQ1mHbt2tXv4EeWZSkjI0OrV692JRgAAAAAIDYENZj+3wPfxMXFqUePHjr77LPVvn1QmwQAAAAAxKigpsjvfe97budAG9qzZ4/f2k033RSwdsWKFQHXb7zxRltrktS5c+eA60899ZTf2tedHxcIB48++mjA9ZZOoRXoSLuxcPTduDj/Qxg0NTUZSIJo1L1795BtO9AB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O3bMd/n0009DkREAAAAAEMUcD6b79+/XHXfcoU6dOoUiTzNz5syRx+NpdhkwYEDIfy4AAAAAoO04/ihvfn6+Nm/erL59+4Yij5/zzz9fr776qu96+/auHUgYAAAAABAGbE1569at8/35yiuv1LRp07Rjxw5985vfVIcOHZrVXn311e4GbN9eqamprm4TAAAAABA+bA2mY8aM8VsrLi72W/N4PGpsbGx1qK/atWuX0tLS1LFjR+Xm5mru3Lnq3bt3i/X19fWqr6/3Xa+pqXE1DwAAAADAXba+Y9rU1GTr4vZQmpOTo5UrV2r9+vVatmyZysrKdPHFF3/toZfnzp0rr9fru2RkZLiaCQAAAADgLscHP2pLo0aN0vXXX6+BAwcqPz9ff/3rX1VVVaVnn322xftMnz5d1dXVvouTcw0BAAAAANqe48H0jjvu0OLFi/3WH3vsMd11111uZGpR165d1b9/f+3evbvFmoSEBCUlJTW7AAAAAADCl+PB9Pnnn9ewYcP81i+66CI999xzroRqSW1trfbs2aNevXqF9OcAAAAAANqO48H06NGj8nq9futJSUk6cuSIK6FOueeee/Tmm29q7969euedd3TttdeqXbt2Gj9+vKs/BwAAAABgjuOTgp599tlav369CgsLm62//PLLrp/b9JNPPtH48eN19OhR9ejRQ8OHD9eGDRvUo0cPV39OOHJyNOFzzz3X0bbLysps1/7iF79wtG0gmiQkJNiufeGFF2zXTp8+3VGOV155xXbt3r17HW07VL56dHTgq55//nlH9Zs2bQpRkuh3+PBh27XvvPNOCJMA4a1///62a5383+Cf//xnMHFiluPBtKioSIWFhTp8+LBGjBghSSopKdGCBQu0aNEiV8OtXr3a1e0BAAAAAMKP48F08uTJqq+v10MPPaQHHnhAkpSZmally5Zp4sSJrgcEAAAAAEQ3x4OpJE2ZMkVTpkzR4cOHlZiYqDPOOMPtXAAAAACAGBHUYHpKLHzXEwAAAAAQWraOyvvtb39bx44ds73R4cOHa//+/UGHAgAAAADEDlt7TLdv36733ntP3bt3t7XR7du3c0RGAAAAAIAttj/KO3LkSFmWZavW4/EEHQgAAAAAEFtsDaZOznt5Snp6uuP7AAAAAABij63BtE+fPqHOAQAAAACIUbYOfgQAAAAAQKi06nQxCA91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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "n_samples = 4\n",
        "n_channels = 4\n",
        "fig, axes = plt.subplots(1 + n_channels, n_samples, figsize=(10, 10))\n",
        "for k in range(n_samples):\n",
        "    axes[0, 0].set_ylabel(\"Input\")\n",
        "    if k != 0:\n",
        "        axes[0, k].yaxis.set_visible(False)\n",
        "    axes[0, k].imshow(train_images[k, :, :, 0], cmap=\"gray\")\n",
        "\n",
        "    # Plot all output channels\n",
        "    for c in range(n_channels):\n",
        "        axes[c + 1, 0].set_ylabel(\"Output [ch. {}]\".format(c))\n",
        "        if k != 0:\n",
        "            axes[c, k].yaxis.set_visible(False)\n",
        "        axes[c + 1, k].imshow(q_train_images[k, :, :, c], cmap=\"gray\")\n",
        "\n",
        "plt.tight_layout()\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rCnk_yy0d0KE"
      },
      "source": [
        "Below each input image, the $4$ output channels generated by the quantum\n",
        "convolution are visualized in gray scale.\n",
        "\n",
        "One can clearly notice the downsampling of the resolution and some local\n",
        "distortion introduced by the quantum kernel. On the other hand the\n",
        "global shape of the image is preserved, as expected for a convolution\n",
        "layer.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "vCjr6WvXd0KE"
      },
      "source": [
        "Hybrid quantum-classical model\n",
        "==============================\n",
        "\n",
        "After the application of the quantum convolution layer we feed the\n",
        "resulting features into a classical neural network that will be trained\n",
        "to classify the $10$ different digits of the MNIST dataset.\n",
        "\n",
        "We use a very simple model: just a fully connected layer with 10 output\n",
        "nodes with a final *softmax* activation function.\n",
        "\n",
        "The model is compiled with a *stochastic-gradient-descent* optimizer,\n",
        "and a *cross-entropy* loss function.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "id": "PHtPdynad0KE"
      },
      "outputs": [],
      "source": [
        "def MyModel():\n",
        "    \"\"\"Initializes and returns a custom Keras model\n",
        "    which is ready to be trained.\"\"\"\n",
        "    model = keras.models.Sequential([\n",
        "        keras.layers.Flatten(),\n",
        "        keras.layers.Dense(10, activation=\"softmax\")\n",
        "    ])\n",
        "\n",
        "    model.compile(\n",
        "        optimizer='adam',\n",
        "        loss=\"sparse_categorical_crossentropy\",\n",
        "        metrics=[\"accuracy\"],\n",
        "    )\n",
        "    return model"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WlOj9hwGd0KE"
      },
      "source": [
        "Training\n",
        "========\n",
        "\n",
        "We first initialize an instance of the model, then we train and validate\n",
        "it with the dataset that has been already pre-processed by a quantum\n",
        "convolution.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "Zj8fE8uhd0KF",
        "outputId": "c85e76bc-fe3d-47a7-e1ce-9541e65a7e6c"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch 1/30\n",
            "13/13 - 1s - loss: 2.8153 - accuracy: 0.1000 - val_loss: 1.9534 - val_accuracy: 0.3667 - 934ms/epoch - 72ms/step\n",
            "Epoch 2/30\n",
            "13/13 - 0s - loss: 2.0134 - accuracy: 0.3800 - val_loss: 1.8003 - val_accuracy: 0.3667 - 74ms/epoch - 6ms/step\n",
            "Epoch 3/30\n",
            "13/13 - 0s - loss: 1.6674 - accuracy: 0.5400 - val_loss: 1.6414 - val_accuracy: 0.6000 - 70ms/epoch - 5ms/step\n",
            "Epoch 4/30\n",
            "13/13 - 0s - loss: 1.3620 - accuracy: 0.6200 - val_loss: 1.5065 - val_accuracy: 0.6667 - 70ms/epoch - 5ms/step\n",
            "Epoch 5/30\n",
            "13/13 - 0s - loss: 1.1470 - accuracy: 0.7400 - val_loss: 1.4056 - val_accuracy: 0.7000 - 78ms/epoch - 6ms/step\n",
            "Epoch 6/30\n",
            "13/13 - 0s - loss: 0.9975 - accuracy: 0.8800 - val_loss: 1.3544 - val_accuracy: 0.7333 - 95ms/epoch - 7ms/step\n",
            "Epoch 7/30\n",
            "13/13 - 0s - loss: 0.8036 - accuracy: 0.9000 - val_loss: 1.2735 - val_accuracy: 0.7333 - 83ms/epoch - 6ms/step\n",
            "Epoch 8/30\n",
            "13/13 - 0s - loss: 0.6753 - accuracy: 0.9400 - val_loss: 1.2083 - val_accuracy: 0.7667 - 92ms/epoch - 7ms/step\n",
            "Epoch 9/30\n",
            "13/13 - 0s - loss: 0.5803 - accuracy: 0.9400 - val_loss: 1.1604 - val_accuracy: 0.7333 - 102ms/epoch - 8ms/step\n",
            "Epoch 10/30\n",
            "13/13 - 0s - loss: 0.4838 - accuracy: 0.9600 - val_loss: 1.1526 - val_accuracy: 0.7333 - 93ms/epoch - 7ms/step\n",
            "Epoch 11/30\n",
            "13/13 - 0s - loss: 0.4471 - accuracy: 0.9600 - val_loss: 1.1140 - val_accuracy: 0.7333 - 92ms/epoch - 7ms/step\n",
            "Epoch 12/30\n",
            "13/13 - 0s - loss: 0.3963 - accuracy: 0.9800 - val_loss: 1.1223 - val_accuracy: 0.7000 - 100ms/epoch - 8ms/step\n",
            "Epoch 13/30\n",
            "13/13 - 0s - loss: 0.3529 - accuracy: 1.0000 - val_loss: 1.0793 - val_accuracy: 0.7333 - 91ms/epoch - 7ms/step\n",
            "Epoch 14/30\n",
            "13/13 - 0s - loss: 0.3261 - accuracy: 0.9600 - val_loss: 1.0269 - val_accuracy: 0.7333 - 85ms/epoch - 7ms/step\n",
            "Epoch 15/30\n",
            "13/13 - 0s - loss: 0.2712 - accuracy: 0.9800 - val_loss: 1.0298 - val_accuracy: 0.8000 - 87ms/epoch - 7ms/step\n",
            "Epoch 16/30\n",
            "13/13 - 0s - loss: 0.2422 - accuracy: 1.0000 - val_loss: 1.0447 - val_accuracy: 0.7000 - 67ms/epoch - 5ms/step\n",
            "Epoch 17/30\n",
            "13/13 - 0s - loss: 0.2254 - accuracy: 1.0000 - val_loss: 0.9994 - val_accuracy: 0.7333 - 64ms/epoch - 5ms/step\n",
            "Epoch 18/30\n",
            "13/13 - 0s - loss: 0.2046 - accuracy: 1.0000 - val_loss: 0.9902 - val_accuracy: 0.7667 - 66ms/epoch - 5ms/step\n",
            "Epoch 19/30\n",
            "13/13 - 0s - loss: 0.1845 - accuracy: 1.0000 - val_loss: 1.0204 - val_accuracy: 0.7667 - 66ms/epoch - 5ms/step\n",
            "Epoch 20/30\n",
            "13/13 - 0s - loss: 0.1726 - accuracy: 1.0000 - val_loss: 0.9682 - val_accuracy: 0.7333 - 73ms/epoch - 6ms/step\n",
            "Epoch 21/30\n",
            "13/13 - 0s - loss: 0.1578 - accuracy: 1.0000 - val_loss: 0.9871 - val_accuracy: 0.8333 - 75ms/epoch - 6ms/step\n",
            "Epoch 22/30\n",
            "13/13 - 0s - loss: 0.1419 - accuracy: 1.0000 - val_loss: 0.9834 - val_accuracy: 0.7667 - 69ms/epoch - 5ms/step\n",
            "Epoch 23/30\n",
            "13/13 - 0s - loss: 0.1356 - accuracy: 1.0000 - val_loss: 0.9577 - val_accuracy: 0.8000 - 65ms/epoch - 5ms/step\n",
            "Epoch 24/30\n",
            "13/13 - 0s - loss: 0.1252 - accuracy: 1.0000 - val_loss: 0.9494 - val_accuracy: 0.8333 - 64ms/epoch - 5ms/step\n",
            "Epoch 25/30\n",
            "13/13 - 0s - loss: 0.1214 - accuracy: 1.0000 - val_loss: 0.9410 - val_accuracy: 0.8000 - 68ms/epoch - 5ms/step\n",
            "Epoch 26/30\n",
            "13/13 - 0s - loss: 0.1096 - accuracy: 1.0000 - val_loss: 0.9488 - val_accuracy: 0.7667 - 67ms/epoch - 5ms/step\n",
            "Epoch 27/30\n",
            "13/13 - 0s - loss: 0.1032 - accuracy: 1.0000 - val_loss: 0.9391 - val_accuracy: 0.8000 - 68ms/epoch - 5ms/step\n",
            "Epoch 28/30\n",
            "13/13 - 0s - loss: 0.1018 - accuracy: 1.0000 - val_loss: 0.9221 - val_accuracy: 0.8000 - 70ms/epoch - 5ms/step\n",
            "Epoch 29/30\n",
            "13/13 - 0s - loss: 0.0928 - accuracy: 1.0000 - val_loss: 0.9531 - val_accuracy: 0.7667 - 70ms/epoch - 5ms/step\n",
            "Epoch 30/30\n",
            "13/13 - 0s - loss: 0.0866 - accuracy: 1.0000 - val_loss: 0.9285 - val_accuracy: 0.8333 - 66ms/epoch - 5ms/step\n"
          ]
        }
      ],
      "source": [
        "q_model = MyModel()\n",
        "\n",
        "q_history = q_model.fit(\n",
        "    q_train_images,\n",
        "    train_labels,\n",
        "    validation_data=(q_test_images, test_labels),\n",
        "    batch_size=4,\n",
        "    epochs=n_epochs,\n",
        "    verbose=2,\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ZrgNg_sSd0KF"
      },
      "source": [
        "In order to compare the results achievable with and without the quantum\n",
        "convolution layer, we initialize also a \\\"classical\\\" instance of the\n",
        "model that will be directly trained and validated with the raw MNIST\n",
        "images (i.e., without quantum pre-processing).\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "xVJR8xXcd0KF",
        "outputId": "2462c2b6-9296-4a24-8e60-3f2fb1b5597a"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch 1/30\n",
            "13/13 - 1s - loss: 2.3260 - accuracy: 0.1400 - val_loss: 2.2121 - val_accuracy: 0.2000 - 691ms/epoch - 53ms/step\n",
            "Epoch 2/30\n",
            "13/13 - 0s - loss: 1.9384 - accuracy: 0.3800 - val_loss: 2.0520 - val_accuracy: 0.3000 - 65ms/epoch - 5ms/step\n",
            "Epoch 3/30\n",
            "13/13 - 0s - loss: 1.6333 - accuracy: 0.6600 - val_loss: 1.9246 - val_accuracy: 0.3333 - 69ms/epoch - 5ms/step\n",
            "Epoch 4/30\n",
            "13/13 - 0s - loss: 1.4090 - accuracy: 0.7400 - val_loss: 1.7984 - val_accuracy: 0.4333 - 63ms/epoch - 5ms/step\n",
            "Epoch 5/30\n",
            "13/13 - 0s - loss: 1.2138 - accuracy: 0.9000 - val_loss: 1.6808 - val_accuracy: 0.5333 - 64ms/epoch - 5ms/step\n",
            "Epoch 6/30\n",
            "13/13 - 0s - loss: 1.0600 - accuracy: 0.9400 - val_loss: 1.5908 - val_accuracy: 0.5667 - 64ms/epoch - 5ms/step\n",
            "Epoch 7/30\n",
            "13/13 - 0s - loss: 0.9255 - accuracy: 0.9400 - val_loss: 1.5239 - val_accuracy: 0.5667 - 81ms/epoch - 6ms/step\n",
            "Epoch 8/30\n",
            "13/13 - 0s - loss: 0.8124 - accuracy: 0.9400 - val_loss: 1.4565 - val_accuracy: 0.6000 - 73ms/epoch - 6ms/step\n",
            "Epoch 9/30\n",
            "13/13 - 0s - loss: 0.7197 - accuracy: 0.9400 - val_loss: 1.3998 - val_accuracy: 0.7000 - 68ms/epoch - 5ms/step\n",
            "Epoch 10/30\n",
            "13/13 - 0s - loss: 0.6393 - accuracy: 0.9400 - val_loss: 1.3613 - val_accuracy: 0.7333 - 72ms/epoch - 6ms/step\n",
            "Epoch 11/30\n",
            "13/13 - 0s - loss: 0.5776 - accuracy: 0.9800 - val_loss: 1.3183 - val_accuracy: 0.7333 - 65ms/epoch - 5ms/step\n",
            "Epoch 12/30\n",
            "13/13 - 0s - loss: 0.5210 - accuracy: 0.9800 - val_loss: 1.3056 - val_accuracy: 0.7000 - 66ms/epoch - 5ms/step\n",
            "Epoch 13/30\n",
            "13/13 - 0s - loss: 0.4714 - accuracy: 1.0000 - val_loss: 1.2736 - val_accuracy: 0.7333 - 81ms/epoch - 6ms/step\n",
            "Epoch 14/30\n",
            "13/13 - 0s - loss: 0.4259 - accuracy: 1.0000 - val_loss: 1.2372 - val_accuracy: 0.7333 - 70ms/epoch - 5ms/step\n",
            "Epoch 15/30\n",
            "13/13 - 0s - loss: 0.3874 - accuracy: 1.0000 - val_loss: 1.2121 - val_accuracy: 0.7333 - 78ms/epoch - 6ms/step\n",
            "Epoch 16/30\n",
            "13/13 - 0s - loss: 0.3546 - accuracy: 1.0000 - val_loss: 1.1939 - val_accuracy: 0.7333 - 70ms/epoch - 5ms/step\n",
            "Epoch 17/30\n",
            "13/13 - 0s - loss: 0.3270 - accuracy: 1.0000 - val_loss: 1.1780 - val_accuracy: 0.7333 - 62ms/epoch - 5ms/step\n",
            "Epoch 18/30\n",
            "13/13 - 0s - loss: 0.3015 - accuracy: 1.0000 - val_loss: 1.1553 - val_accuracy: 0.7667 - 66ms/epoch - 5ms/step\n",
            "Epoch 19/30\n",
            "13/13 - 0s - loss: 0.2769 - accuracy: 1.0000 - val_loss: 1.1488 - val_accuracy: 0.8000 - 71ms/epoch - 5ms/step\n",
            "Epoch 20/30\n",
            "13/13 - 0s - loss: 0.2575 - accuracy: 1.0000 - val_loss: 1.1280 - val_accuracy: 0.8000 - 70ms/epoch - 5ms/step\n",
            "Epoch 21/30\n",
            "13/13 - 0s - loss: 0.2391 - accuracy: 1.0000 - val_loss: 1.1243 - val_accuracy: 0.7667 - 84ms/epoch - 6ms/step\n",
            "Epoch 22/30\n",
            "13/13 - 0s - loss: 0.2224 - accuracy: 1.0000 - val_loss: 1.1104 - val_accuracy: 0.8000 - 70ms/epoch - 5ms/step\n",
            "Epoch 23/30\n",
            "13/13 - 0s - loss: 0.2073 - accuracy: 1.0000 - val_loss: 1.1004 - val_accuracy: 0.8000 - 65ms/epoch - 5ms/step\n",
            "Epoch 24/30\n",
            "13/13 - 0s - loss: 0.1939 - accuracy: 1.0000 - val_loss: 1.0905 - val_accuracy: 0.8000 - 71ms/epoch - 5ms/step\n",
            "Epoch 25/30\n",
            "13/13 - 0s - loss: 0.1832 - accuracy: 1.0000 - val_loss: 1.0842 - val_accuracy: 0.8000 - 63ms/epoch - 5ms/step\n",
            "Epoch 26/30\n",
            "13/13 - 0s - loss: 0.1711 - accuracy: 1.0000 - val_loss: 1.0767 - val_accuracy: 0.7667 - 68ms/epoch - 5ms/step\n",
            "Epoch 27/30\n",
            "13/13 - 0s - loss: 0.1619 - accuracy: 1.0000 - val_loss: 1.0655 - val_accuracy: 0.7667 - 66ms/epoch - 5ms/step\n",
            "Epoch 28/30\n",
            "13/13 - 0s - loss: 0.1534 - accuracy: 1.0000 - val_loss: 1.0592 - val_accuracy: 0.7667 - 61ms/epoch - 5ms/step\n",
            "Epoch 29/30\n",
            "13/13 - 0s - loss: 0.1443 - accuracy: 1.0000 - val_loss: 1.0558 - val_accuracy: 0.7667 - 58ms/epoch - 4ms/step\n",
            "Epoch 30/30\n",
            "13/13 - 0s - loss: 0.1361 - accuracy: 1.0000 - val_loss: 1.0515 - val_accuracy: 0.7333 - 63ms/epoch - 5ms/step\n"
          ]
        }
      ],
      "source": [
        "c_model = MyModel()\n",
        "\n",
        "c_history = c_model.fit(\n",
        "    train_images,\n",
        "    train_labels,\n",
        "    validation_data=(test_images, test_labels),\n",
        "    batch_size=4,\n",
        "    epochs=n_epochs,\n",
        "    verbose=2,\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "oXLGIhPJd0KF"
      },
      "source": [
        "Results\n",
        "=======\n",
        "\n",
        "We can finally plot the test accuracy and the test loss with respect to\n",
        "the number of training epochs.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 963
        },
        "id": "fwDEhq0Qd0KF",
        "outputId": "881c490d-7ed5-4739-f5a3-228b474fee45"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "<ipython-input-13-c3ef9ba498fb>:3: MatplotlibDeprecationWarning: The seaborn styles shipped by Matplotlib are deprecated since 3.6, as they no longer correspond to the styles shipped by seaborn. However, they will remain available as 'seaborn-v0_8-<style>'. Alternatively, directly use the seaborn API instead.\n",
            "  plt.style.use(\"seaborn\")\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x900 with 2 Axes>"
            ],
            "image/png": "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rYiIiJRkLk2ahgwZQvny5Vm3bh1z585l3bp1zJs376r91q9fz7Rp03jnnXfYunUrrVu3ZtCgQcTHx7sgahERESmJXJY0hYeHc/DgQUaMGIG/vz/VqlWjX79+LFy48Kp9Fy5cyH333Uf9+vXx8vLiiSeeAGDDhg2FHbaIiIiUUG6uuvC+ffuoXLkygYGB9m21a9fmxIkTxMbG4ufnl2HfTp062f9uNpu59dZbCQ8Pp3Pnzg5f02w2YTabnHMDV7BYzBn+L3mjdsw/taFzqB3zT23oHGrH/HNmG7osaYqOjiYgICDDtvQEKioqKkPSFB0dnSG5St83KioqV9e87jq/nHfKh4AA7wI9f0mhdsw/taFzqB3zT23oHGrH/HNGG7o0dTUMo0D2FREREXE2lyVNpUuXJjo6OsO26OhoTCYTpUuXzrA9KCgo033/u5+IiIhIQXFZ0lSnTh0iIyO5ePGifVt4eDg1a9bE19f3qn337dtn/3taWhr79++nfv36hRaviIiIlGwuS5pq1apF3bp1mTJlCrGxsRw7doy5c+fSp08fADp06EBYWBgAffr0YenSpezZs4eEhAQ+/vhjPDw8aNWqlavCFxERkRLGZRPBAT744APGjBlD8+bN8fPzo3fv3jz00EMAnDhxwr4O01133cWwYcN4/vnn+fvvv6lbty4zZszAy8vLleGLiIhICWIyNMNaREREJEda+EFERETEAUqaRERERBygpElERETEAUqaRERERBygpElERETEAUqa8ikiIoKnnnqKkJAQWrduzaRJk7Bara4Oq9i5+eabqVOnDnXr1rX/9/rrr7s6rCJv8+bNNGvWjKFDh1712o8//kjXrl25/fbbue+++9iyZYsLIiz6smrD7777jltuuSXDM1m3bl1+//13F0VadEVERPDss88SEhJCs2bNeOmll4iJiQHgwIEDPPLIIzRo0IB27doxZ84cF0dbdGXVjn/++Sc333zzVc/i7NmzXR1ykXPw4EEee+wxGjRoQLNmzXj++ec5f/48ANu2baNnz57ccccddO7cmR9++CH3FzAkX+69915j9OjRRkxMjHHixAmjXbt2xpw5c1wdVrFz0003GX/88YerwyhWZsyYYbRr187o3bu38fzzz2d4bf/+/UadOnWMjRs3GomJicb3339v1K9f34iMjHRRtEVTdm347bffGo888oiLIiteunTpYrz00ktGbGysERkZadx3333Gyy+/bCQkJBh33nmnMW3aNCMuLs7Yu3ev0bhxY2P16tWuDrlIyqod//jjD+Omm25ydXhFXlJSktG0aVPjww8/NJKSkoy///7beOSRR4xnnnnGOHfunHHbbbcZixYtMhITE41ffvnFqFevnvH777/n6hrqacqH8PBwDh48yIgRI/D396datWr069ePhQsXujo0KQE8PT1ZvHgxN9xww1WvLVq0iJYtW9KyZUs8PT3p1q0bN910U95+s7qGZdeG4piYmBjq1KnD8OHD8fX1pUKFCtx7772EhYWxceNGUlJSePrpp/Hx8aF27dr06tVLPyMzkV07imMSEhIYOnQoAwcOxMPDg9KlS9O2bVuOHDnCsmXLqFatGj179sTT05NmzZrRpk0bFi1alKtrKGnKh3379lG5cmUCAwPt22rXrs2JEyeIjY11YWTF05QpU2jVqhUNGzZkzJgxxMXFuTqkIu3RRx/F398/09f27dtHrVq1MmyrVasW4eHhhRFasZFdGwJERkbSv39/GjVqxN133833339fiNEVDwEBAbz55puUKVPGvi0yMpJy5cqxb98+br75ZiwWi/21WrVqsXfvXleEWqRl147pRo4cSYsWLWjSpAlTpkwhJSXFFaEWWYGBgfTq1Qs3N1uxk+PHj7NkyRI6duyY5c/E3D6LSpryITo6moCAgAzb0hOoqKgoV4RUbN122200a9aMNWvWsHDhQvbs2cP48eNdHVaxFR0dnSGZB9uzqefScaVLl6ZatWq88MIL/PLLLwwbNoyXX36Zbdu2uTq0Ii08PJwvvviCp59+OtOfkaVKlSI6OlpzP3NwZTt6eHhw++2307ZtWzZs2MCMGTP44YcfmD59uqvDLJIiIiKoU6cOnTp1om7dujz33HNZPou5/ZmopCmfDFWhcYqFCxfSq1cvPDw8qFGjBiNGjGD58uUkJye7OrRiS89m/rRq1YpZs2ZRq1YtPDw86Ny5M23btuW7775zdWhF1q5duxgwYADDhw+nWbNmWe5nMpkKMari57/tWK5cOb7++mvatm2Lu7s79erVY+DAgXoWs1C5cmXCw8NZtWoVJ0+eZOTIkU47t5KmfChdujTR0dEZtkVHR2MymShdurRrgrpGXH/99aSlpfH333+7OpRiKSgoKNNnU89l/lSu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OWvVCrZvh23bzJw9a6JiRYMmTayYTBAVVXBteNttjZgzZw59+jxCVFScfXv9+newceNGHn308QzbAWJjE4mKiqN9+8688cbrtG3bjh9/XEtampX4+GT7/rGxiQBXHQ9QvnwVnn9+OOPHv0ZcXBwdO3amSZNmJCWlEhUVxz33dGLTps20b9+eMmXKMnz4SNauXcfly4lcvpzECy+M4sMP3+e9996nXbv2TJjwNoMGPcE997Tlxx/XZogTIC4uCavVICYmgVtvvZV69erTs2dPBg16lgcffIjWre/mwQd74+vry6BBz1K+fAXi4pKIioojKSmV5ORU+7ni45NJS7Pa/x4TkwDApUsJ+PpmvNfLl/9tg2rVbqJnzwd5+OFH8Pb2ol+/JxgyZBgvvPA8zz47hIkT3wagXbuOfPDBVEJCWlzRdh688867fPDBVD755BNKlQqiY8dO3Hvvg0RFxZGQkExqalqmbe1sjjyLjiZvJsNw/cL3u3bt4umnn2bw4ME8+uijV73+999/06VLFz777DNuvvlmpk2bRkRERK4ngp8/n/veKUe4udky+KioOKeN3ZdEasf8Uxs6h9ox/0pCG7766ig8PDx55ZVxBXaN4tCOs2d/ypkzfzJmzOuuDiVTjrRh2bL+mW7/L5cP2K9fv56nnnqKl19+OdOECeCtt96iR48e3HzzzYUcnYiIiGRl795wFi36mj59Mv/8vta4dHhu9+7dvPjii7z//vu0aNEiy/1++OEHAgIC+O677wBITEzEarWyYcMGtm8vnnWEREREirNhw4Zw7NhhBg9+npo1b3R1OIXCZUlTamoqo0ePZsSIEZkmTI899hgPPvggnTp1YtOmjMurz507l7NnzzJq1KjCCldERCSD9JIpJdW7705zdQiFzmVJ0549ezh27BgTJkxgwoQJGV5btWoVf/zxB5cuXQKgQoUKGV738/PD29v7qu0iIiIiBcVlSVPDhg05dOhQlq+vX591LZohQ4YUREgiIiIiWXL5RHARERGR4kBJk4iIiIgDlDSJiIiIOEBJk4iIiIgDlDSJiEieGIbBtjO/sOTIYrad+YUiUGDiKm3aNGPnztBMX+vZsytLly4u5IhKlmutjZU0iYhIrq04voyQBbfRfWlHBq59nO5LOxKy4DZWHF9WINcbMKAv06e/n2HboUMHadGiIZs2Zfy29aJF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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "\n",
        "plt.style.use(\"seaborn\")\n",
        "fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(6, 9))\n",
        "\n",
        "ax1.plot(q_history.history[\"val_accuracy\"], \"-ob\", label=\"With quantum layer\")\n",
        "ax1.plot(c_history.history[\"val_accuracy\"], \"-og\", label=\"Without quantum layer\")\n",
        "ax1.set_ylabel(\"Accuracy\")\n",
        "ax1.set_ylim([0, 1])\n",
        "ax1.set_xlabel(\"Epoch\")\n",
        "ax1.legend()\n",
        "\n",
        "ax2.plot(q_history.history[\"val_loss\"], \"-ob\", label=\"With quantum layer\")\n",
        "ax2.plot(c_history.history[\"val_loss\"], \"-og\", label=\"Without quantum layer\")\n",
        "ax2.set_ylabel(\"Loss\")\n",
        "ax2.set_ylim(top=2.5)\n",
        "ax2.set_xlabel(\"Epoch\")\n",
        "ax2.legend()\n",
        "plt.tight_layout()\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "eFIiSMV9d0KF"
      },
      "source": [
        "References\n",
        "==========\n",
        "\n",
        "1.  Maxwell Henderson, Samriddhi Shakya, Shashindra Pradhan, Tristan\n",
        "    Cook. \\\"Quanvolutional Neural Networks: Powering Image Recognition\n",
        "    with Quantum Circuits.\\\"\n",
        "    [arXiv:1904.04767](https://arxiv.org/abs/1904.04767), 2019.\n",
        "\n",
        "About the author\n",
        "================\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "seconds = time.time()\n",
        "print(\"Time in seconds since end of run:\", seconds)\n",
        "local_time = time.ctime(seconds)\n",
        "print(local_time)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "DN7xl_1qggGu",
        "outputId": "4026bcae-8b01-4ecd-f425-7c4535c3cc54"
      },
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Time in seconds since end of run: 1706118346.2040026\n",
            "Wed Jan 24 17:45:46 2024\n"
          ]
        }
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "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.10.13"
    },
    "colab": {
      "provenance": [],
      "machine_shape": "hm"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}