859 lines (858 with data), 165.4 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 0
},
"id": "A7xgHxPxd0J_",
"outputId": "30221bb4-0dbf-45df-ec0c-ca5f82d65056"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Time in seconds since beginning of run: 1706116859.1580615\n",
"Wed Jan 24 17:20:59 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",
"{.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": "653a7a79-dca8-4f01-fbe5-2d90ea6bde9e"
},
"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",
" # 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": "a197f87f-b7dc-4733-c145-6f79f30e0134"
},
"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": "7bf399f9-373d-4306-8c92-42684e2bb9f4"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1000x1000 with 20 Axes>"
],
"image/png": "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UkKC/U9ZWpYVllyTbL36oqIiR6flXn/99fxFBAAAAACwxdavv1esWOFo0WXLloVUDAAAAAAg/oS8K6/P53N8GhgAAAAAAP/O0WD6yiuv6PLLL1f37t3VpUsXdenSRd27d9fll1/u+HOOAAAAAABIDgbTP/zhD7r88suVkpKihx56SH/+85/15z//WQ899JC6deumyy+/XKtWrQpnrQAAAACAGGR7i8X77rtPixYt0pQpUwIeu/HGGzVixAiVlpbqhhtucLVAAAAAAEBss33EdO/evSooKGj18VGjRunTTz91pSgAAAAAQPywPZgOHjxYv//971t9/LHHHtM555zjSlEAAAAAgPhh+1TehQsX6vvf/77Wr1+vgoICpaamSpKqqqpUVlam//u//9N///d/h61QAAAAAEBssj2YXnLJJfrwww+1bNkybdq0SZWVlZKktLQ0jR49Wj/5yU+UlZUVrjoBAAAAADHK9mAqSVlZWfrVr34VrlrwL3r16mU7t76+Pmx19O3b13bu3r17Ha39xRdfOC0HiEsej8d0CZKkZ555xnZuv379bOdalhVKOYgTOTk5tnPD+e9hrJs2bZrt3DvvvDOMlQCxY8eOHY7ynfx7+PnnnzstJ+I5uo4pAAAAAABuYzAFAAAAABjFYAoAAAAAMIrBFAAAAABgFIMpAAAAAMAo1wbT559/Xo8//rhbywEAAAAA4oRrg+ndd9+tiRMnurUcAAAAACBOOLqO6Vf5+OOP3VoKAAAAABBH+IwpAAAAAMCokI6YVldX65133tHBgwfV3Nzc4rEJEya4UhgAAAAAID44HkxfeOEFXXfddaqvr1dycrI8Ho//MY/Hw2Dqkrq6urCt/a/v2an84x//CFsdQLxKTEwM29r//svCr/LAAw84Wvuqq65yWo4tVVVVtnNTU1PDUgMiV0NDg+kSACAkgwcPdpQ/aNAg27mdO3d2Wk7Ec3wq789+9jNNmjRJ9fX1qq6u1tGjR/23zz77LBw1AgAAAABimOPBdN++fbr99tvVpUuXcNTTwpw5c+TxeFrcnPwmAQAAAAAQ+RyfyltYWKgtW7aof//+4agnwODBg/Xqq6/673fo4NpGwgAAAACACGBrylu3bp3/z9/73vc0bdo07dixQ+edd546duzYIvfKK690t8AOHZSWlubqmgAAAACAyGFrMB0zZkxArLS0NCDm8XjU1NTU5qL+1a5du5Senq5OnTopPz9f8+bNU9++fVvN9/l88vl8/vu1tbWu1gMAAAAAcJetz5g2Nzfburk9lObl5WnlypVav369li1bpvLycl100UVfuWPtvHnzlJKS4r9lZma6WhMAAAAAwF2ONz9qT6NHj9YPfvADDRkyRIWFhXrxxRdVXV2tp59+utXnTJ8+XTU1Nf5bRUVFO1YMAAAAAHDK8WB6++23a/HixQHxhx9+WFOnTnWjplZ169ZNAwcO1O7du1vN8Xq9Sk5ObnEDAAAAAEQux4Pps88+qwsvvDAgfsEFF+iZZ55xpajW1NfXa8+ePerTp09Yvw4AAAAAoP04HkyPHDmilJSUgHhycrIOHz7sSlEn3XnnndqwYYM++eQTvf3227r66quVmJio8ePHu/p1AAAAAADmOB5MzzrrLK1fvz4g/tJLL7l+bdNPP/1U48eP19e//nX953/+p772ta9p06ZN6tWrl6tfBwAAAABgjq3LxfyrkpISFRcX69ChQxo5cqQkqaysTAsXLtSiRYtcLW716tWurocTBg4caDv3ww8/tJ177rnnhlIOEBPOP//8sK395Zdf2s71eDy2c6dNmxZKOa771re+ZTu3vLw8jJUAseXyyy+3ncueHIA9aWlpYVv7o48+Ctva0cDxYDpp0iT5fD7dd999uueeeyRJWVlZWrZsmSZMmOB6gQAAAACA2OZ4MJWkyZMna/LkyTp06JA6d+6s008/3e26AAAAAABxIqTB9CQ+6wkAAAAAaCtbmx9985vf1NGjR20vOmLECO3bty/kogAAAAAA8cPWEdPt27fr/fffV48ePWwtun37dvl8vjYVBgAAAACID7ZP5R01apQsy7KV62RXSAAAAABAfLM1mIayPX9GRobj5wAAAAAA4o+twbRfv37hrgMAAAAAEKdsbX4EAAAAAEC4MJgCAAAAAIxq03VMEZ127txpOzcxMdF2bnNzs6M6nOzcnJSU5GhtoL1t2bLFdq7djeQARIaDBw86yp85c6bt3N/+9re2c538myxJTU1NtnOdXBYQiDUbN260nVtVVWU7t7GxMZRy4hZHTAEAAAAARjkeTPv3768jR44ExKurq9W/f39XigIAAAAAxA/Hg+knn3wS9NQQn8+nffv2uVIUAAAAACB+2P6M6bp16/x/fvnll5WSkuK/39TUpLKyMmVlZblaHAAAAAAg9tkeTMeMGSNJ8ng8KioqavFYx44dlZWVpYULF7paHAAAAAAg9tkeTE/uuJqdna13331XPXv2DFtRAAAAAID44fhyMeXl5eGoAwAAAAAQpxwPpqWlpV/5+KxZs0IuBgAAAAAQfxwPpmvWrGlx//jx4yovL1eHDh105plnMpgCAAAAABxxPJhu27YtIFZbW6sbb7xRV199tStFAQAAAADih+PBNJjk5GTNnTtXV1xxhW644QY3lkSECHbN2tb8+c9/drS21+u1nWtZlqO1ATds2LDBdm5SUlIYK4lt//d//2e6BEQwJzv+5+XlhaWGu+++21H+o48+GpZcpzwej+3cf70MIBBvLrjggrCs27Fjx7CsG6sS3FqopqZGNTU1bi0HAAAAAIgTjo+YLl68uMV9y7J04MABrVq1SqNHj3atMAAAAABAfHA8mD700EMt7ickJKhXr14qKirS9OnTXSsMAAAAABAfuI4pAAAAAMCoNn3GtKKiQhUVFW7VAgAAAACIQ44H0y+//FIzZ85USkqKsrKylJWVpZSUFM2YMUPHjx8PR40AAAAAgBjm+FTe2267Tc8995zmz5+v/Px8SdLGjRs1Z84cHTlyRMuWLXO9SAAAAABA7HI8mD7xxBNavXp1ix14hwwZoszMTI0fP57BFAAAAADgiONTeb1er7KysgLi2dnZXGAeAAAAAOCY48G0uLhY99xzj3w+nz/m8/l03333qbi42NXiAAAAAACxz/GpvNu2bVNZWZkyMjKUk5MjSXr//ffV2NioUaNGaezYsf7c5557zr1KAQAAAAAxyfFg2q1bN11zzTUtYpmZma4VhMhy+PBh27kzZswIYyVAZJswYYLpEhw7dOiQo/zevXvbzrUsy2k5QFAlJSVhyQUQuzp27Bi2tZubm8O2drxzPJiuWLEiHHUAAAAAAOKU48+Yjhw5UtXV1QHx2tpajRw50o2aAAAAAABxxPFg+sYbb6ixsTEgfuzYMf31r391pSgAAAAAQPywfSrvBx984P/zjh07VFlZ6b/f1NSk9evX64wzznC3OgAAAABAzLM9mA4dOlQej0cejyfoKbudO3fWkiVLXC0OAAAAABD7bA+m5eXlsixL/fv31zvvvKNevXr5H0tKSlLv3r2VmJgYliIBAAAAALHL9mDar18/SWyRDAAAAABwl+PLxTz++ONf+Xg0XssPAAAAAGCO48H0jjvuaHH/+PHj+vzzz5WUlKQuXbowmAIAAAAAHHF8uZijR4+2uNXX12vnzp0aMWKEnnzyyXDUCAAAAACIYY6PmAYzYMAA3X///br++uv18ccfu7EkHDh+/Lij/O7du9vObWhocFqObZs3bw7b2kB7+93vfmc795e//KWjtXfs2GE797vf/a7tXI/H46iOvXv3OsoHAMCEL7/8MmxrO/23E/Y5PmLamg4dOmj//v1uLQcAAAAAiBOOj5iuW7euxX3LsnTgwAE9/PDDuvDCCx2t9eabb2rBggXaunWrDhw4oDVr1mjMmDEt1p49e7Z++9vfqrq6WhdeeKGWLVumAQMGOC0bAAAAABChHA+m/zo4SicOZ/fq1UsjR47UwoULHa3V0NCgnJwcTZo0SWPHjg14fP78+Vq8eLH+8Ic/KDs7WzNnzlRhYaF27NihTp06OS0dAAAAABCBHA+mbl7HdPTo0Ro9enTQxyzL0qJFizRjxgxdddVVkk5cqiY1NVVr167VtddeG/R5Pp9PPp/Pf7+2tta1egEAAAAA7gv5M6aHDx/W4cOH3aylhfLyclVWVqqgoMAfS0lJUV5enjZu3Njq8+bNm6eUlBT/LTMzM2w1AgAAAADaztFgWl1drSlTpqhnz55KTU1VamqqevbsqeLiYlVXV7taWGVlpSQpNTW1RTw1NdX/WDDTp09XTU2N/1ZRUeFqXQAAAAAAd9k+lfezzz5Tfn6+9u3bp+uuu05nn322pBOXMVi5cqXKysr09ttvO7oUSTh4vV55vV6jNQAAAAAA7LM9mJaWliopKUl79uwJOIpZWlqqyy67TKWlpXrooYdcKSwtLU2SVFVVpT59+vjjVVVVGjp0qCtfAwAAAABgnu1TedeuXasHHnggYCiVTgyR8+fP15o1a1wrLDs7W2lpaSorK/PHamtrtXnzZuXn57v2dQAAAAAAZtk+YnrgwAENHjy41cfPPffcr/zsZzD19fXavXu3/355ebm2b9+uHj16qG/fvpo6daruvfdeDRgwwH+5mPT09IBL1gAAAAAAopftwbRnz5765JNPlJGREfTx8vJy9ejRw9EX37Jli77zne/475eUlEiSioqKtHLlSt11111qaGjQLbfcourqao0YMULr16+P2muYNjU12c7t1q2b7dz6+voQqrHn7bfftp3LkWzEmm9961thWbd3795hWVeSfvSjH9nO/e1vfxu2OgAAcNOuXbvCtrZlWWFbG/bZHkwLCwv1i1/8Qq+88oqSkpJaPObz+TRz5kx997vfdfTFL7nkkq/8QfB4PCotLVVpaamjdQEAAAAA0cPR5kfDhw/XgAEDNGXKFA0aNEiWZemjjz7SI488Ip/Pp1WrVoWzVgAAAABADLI9mGZkZGjjxo269dZbNX36dP+RTo/Ho0svvVQPP/ywMjMzw1YoAAAAACA22R5MpRM75b700ks6evSo/zzvs846y/FnSwEAAAAAOMnRYHpS9+7dlZub63YtAAAAAIA4ZPs6pgAAAAAAhAODKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARoW0Ky/+qaSkxHbuQw89ZDu3e/futnP/3//7f7ZzJWnevHmO8oF45fV6beeevLYzAABwX1ZWlukSEGYcMQUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUQymAAAAAACjGEwBAAAAAEYxmAIAAAAAjGIwBQAAAAAYxWAKAAAAADCKwRQAAAAAYFQH0wVEuwcffDAsuQAAAG1hWZbpEgDXdOzY0XYuP/vRiSOmAAAAAACjGEwBAAAAAEYxmAIAAAAAjGIwBQAAAAAYxWAKAAAAADCKwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKM6mC4g3CzLkiTV1tYargTx4uTP2smfPThDz6K90bNtQ8+ivdGzbUPPor3Z7dmYH0zr6uokSZmZmYYrQbypq6tTSkqK6TKiDj0LU+jZ0NCzMIWeDQ09C1NO1bMeK8Z/3dTc3Kz9+/era9eu8ng8/nhtba0yMzNVUVGh5ORkgxWGB6/PHMuyVFdXp/T0dCUkcLa8U8F6NpLfbzfE+uuTIvs10rNtQ8/y+tobPds29Cyvr73Z7dmYP2KakJCgjIyMVh9PTk6OyDfQLbw+M/gNbui+qmcj9f12S6y/PilyXyM9Gzp6ltdnAj0bOnqW12eCnZ7l10wAAAAAAKMYTAEAAAAARsXtYOr1ejV79mx5vV7TpYQFrw+xJNbf71h/fVJ8vEb8U6y/37w+xJpYf895fdEh5jc/AgAAAABEtrg9YgoAAAAAiAwMpgAAAAAAoxhMAQAAAABGMZgCAAAAAIyKy8F06dKlysrKUqdOnZSXl6d33nnHdEmumDNnjjweT4vboEGDTJcVsjfffFNXXHGF0tPT5fF4tHbt2haPW5alWbNmqU+fPurcubMKCgq0a9cuM8UirOjZ6EDP4iR6NjrQsziJno0Osd6zcTeYPvXUUyopKdHs2bP13nvvKScnR4WFhTp48KDp0lwxePBgHThwwH976623TJcUsoaGBuXk5Gjp0qVBH58/f74WL16s5cuXa/PmzTrttNNUWFioY8eOtXOlCCd6NnrQs5Do2WhCz0KiZ6NJzPesFWdyc3OtKVOm+O83NTVZ6enp1rx58wxW5Y7Zs2dbOTk5pssIC0nWmjVr/Pebm5uttLQ0a8GCBf5YdXW15fV6rSeffNJAhQgXejY60bPxi56NTvRs/KJno1Ms9mxcHTFtbGzU1q1bVVBQ4I8lJCSooKBAGzduNFiZe3bt2qX09HT1799f1113nfbu3Wu6pLAoLy9XZWVli/cyJSVFeXl5MfNegp6NJfRsfKBnYwc9Gx/o2dgRCz0bV4Pp4cOH1dTUpNTU1Bbx1NRUVVZWGqrKPXl5eVq5cqXWr1+vZcuWqby8XBdddJHq6upMl+a6k+9XrL6XOIGejR30bHygZ2MHPRsf6NnYEQs928F0AXDP6NGj/X8eMmSI8vLy1K9fPz399NO66aabDFYGIBh6Fogu9CwQXejZ6BJXR0x79uypxMREVVVVtYhXVVUpLS3NUFXh061bNw0cOFC7d+82XYrrTr5f8fJexit6NnbQs/GBno0d9Gx8oGdjRyz0bFwNpklJSRo2bJjKysr8sebmZpWVlSk/P99gZeFRX1+vPXv2qE+fPqZLcV12drbS0tJavJe1tbXavHlzTL6X8YqejR30bHygZ2MHPRsf6NnYEQs9G3en8paUlKioqEjDhw9Xbm6uFi1apIaGBk2cONF0aW1255136oorrlC/fv20f/9+zZ49W4mJiRo/frzp0kJSX1/f4jda5eXl2r59u3r06KG+fftq6tSpuvfeezVgwABlZ2dr5syZSk9P15gxY8wVDdfRs9GDnoVEz0YTehYSPRtNYr5nTW8LbMKSJUusvn37WklJSVZubq61adMm0yW5Yty4cVafPn2spKQk64wzzrDGjRtn7d6923RZIXv99dctSQG3oqIiy7JObIs9c+ZMKzU11fJ6vdaoUaOsnTt3mi0aYUHPRgd6FifRs9GBnsVJ9Gx0iPWe9ViWZbXvKAwAAAAAwD/F1WdMAQAAAACRh8EUAAAAAGAUgykAAAAAwCgGUwAAAACAUQymAAAAAACjGEwBAAAAAEYxmAIAAAAAjGIwBQAAAAAYxWAKAAAAADCKwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjVwXQB4dbc3Kz9+/era9eu8ng8pstBHLAsS3V1dUpPT1dCAr/7cYqeRXujZ9uGnkV7o2fbhp5Fe7PbszE/mO7fv1+ZmZmmy0AcqqioUEZGhukyog49C1Po2dDQszCFng0NPQtTTtWzMT+Ydu3aVdKJb0RycrLhahAPamtrlZmZ6f/ZgzP0LNobPds29CzaGz3bNvQs2pvdno2KwXTp0qVasGCBKisrlZOToyVLlig3N9fWc0+eopCcnEzzoV1xekxo6FmYQs+Ghp6FKfRsaOhZmHKqno34E/OfeuoplZSUaPbs2XrvvfeUk5OjwsJCHTx40HRpAAAAAAAXRPxg+uCDD+rmm2/WxIkTdc4552j58uXq0qWLHnvsMdOlAQAAAABcENGDaWNjo7Zu3aqCggJ/LCEhQQUFBdq4cWPQ5/h8PtXW1ra4AQAAAAAiV0QPpocPH1ZTU5NSU1NbxFNTU1VZWRn0OfPmzVNKSor/xq5jAAAAABDZInowDcX06dNVU1Pjv1VUVJguCQAAAADwFSJ6V96ePXsqMTFRVVVVLeJVVVVKS0sL+hyv1yuv19se5QEAAAAAXBDRR0yTkpI0bNgwlZWV+WPNzc0qKytTfn6+wcoAAAAAAG6J6COmklRSUqKioiINHz5cubm5WrRokRoaGjRx4kTTpQEAAAAAXBDxg+m4ceN06NAhzZo1S5WVlRo6dKjWr18fsCESAAAAACA6RfxgKknFxcUqLi42XQYAAAAAIAwi+jOmAAAAAIDYx2AKAAAAADCKwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjVwXQBAAD3VFZW2s7t06dP2NZOTU11tDYAAIhvHDEFAAAAABjFYAoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFEMpgAAAAAAoxhMAQAAAABGMZgCAAAAAIxiMAUAAAAAGNXBTtLixYsdLzxx4kR17drV8fMAAAAAAPHF1mA6depUZWRkKDEx0daiFRUV+v73v89g2gb19fW2c2+66SZHaz/99NNOywmLESNG2M7929/+Zjt3586dtnMHDBhgOxcw5dNPP7Wdm5mZaTs3IcHZSTNpaWm2cy3LcrQ20Jq3337bdu4FF1wQxkpi27Bhw2znbt26NYyVALHj+eefd5Q/ZswY27m7d++2nXvmmWc6qsMUW4OpJG3ZskW9e/e2lctACgAAAACwy9avy2fPnq3TTz/d9qI///nP1aNHj5CLAgAAAADED1tHTGfPnu1o0enTp4dUDAAAAAAg/rArLwAAAADAKNcG048++kj9+/d3azkAAAAAQJxwbTBtbGzUP/7xD7eWAwAAAADECdu78paUlHzl44cOHWpzMQAAAACA+GN7MP31r3+toUOHKjk5OejjTq67CQAAAADASbYH07POOks//elPdf311wd9fPv27Y4uzgwAAAAAgOTgM6bDhw/X1q1bW33c4/HIsixXigIAAAAAxA/bR0wXLlwon8/X6uM5OTlqbm52pahY1dTUZDu3a9euYazEvqFDh9rOff/99x2t/de//tVhNUBsuPzyyx3lv/TSS2Gpw+nf2YMGDbKde+mll9rOfeWVVxzVgfhy77332s598cUXw1hJ9Pmq/7f9uz59+oSxEiA+XXPNNY7ye/ToYTv3zDPPdFpOxLM9mKalpYWzDgAAAABAnHLtcjEAAAAAAISCwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKNcG0yff/55Pf74424tBwAAAACIE64NpnfffbcmTpzo1nIAAAAAgDhh+zqmp/Lxxx+7tRQAAAAAII7wGVMAAAAAgFEhHTGtrq7WO++8o4MHD6q5ubnFYxMmTHClsFiUmJhoO/ffv69f5dprr3VUx0033WQ797LLLnO0NhCvDh06ZDv3pZdecrT28OHDbec++uijtnOHDBniqI4OHez/k5GQwO89Edzhw4dNlxA3Bg4caDv3rbfeCmMlQOz4z//8T9u5TU1NjtY+cuSI03JiiuPB9IUXXtB1112n+vp6JScny+Px+B/zeDwMpgAAAAAARxz/SvtnP/uZJk2apPr6elVXV+vo0aP+22effRaOGgEAAAAAMczxYLpv3z7dfvvt6tKlSzjq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M3TLLbeEs14AAAAAQIyxPZg++uij+s1vfqMf/vCH2rZtm3Jzc7V8+XLddNNNkqQzzjhDy5YtYzAFAAAAADhi+1Tef/zjHxoxYoQk6Rvf+IYSExP1rW99y//4xRdfrD179rhfIQAAAAAgptkeTLt06aKGhgb//V69eun0009vkfPll1+6VxkAAAAAIC7YHkwHDRqkDz74wH+/oqJC/fr189//+OOPlZWV5WpxAAAAAIDYZ/szpr/61a902mmntfr43r179eMf/9iVomJV7969bedec801tnOfffZZR3Wkpqbazq2srLSdO27cOEd1nDw1HIg3iYmJjvKbm5tt5y5dutR27k9/+lNHdWzatMl27vTp023n3n333Y7qAGDP0KFDbedOnTo1bHUAsaS8vNx27pw5cxyt/cILL9jOPfPMMx2tHQ1sD6YXXnjhVz5+6623trkYAAAAAED8cXQdUwAAAAAA3MZgCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUa4Nps8//7wef/xxt5YDAAAAAMQJ1wbTu+++WxMnTnRrOQAAAABAnLB9HdNT+fjjj91aCgAAAAAQR/iMKQAAAADAqJCOmFZXV+udd97RwYMH1dzc3OKxCRMmuFJYvHvmmWds595+++2O1n755ZedlmPLU089FZZ1gWhQWFhoOzchwdnvBF9//XXbud/+9rdt5956662O6nDCSc2ILw888IDpEuLGjh07bOfeeeedYawEiB39+/e3nZuYmOho7e9///tOy4kpjgfTF154Qdddd53q6+uVnJwsj8fjf8zj8TCYAgAAAAAccXwq789+9jNNmjRJ9fX1qq6u1tGjR/23zz77LBw1AgAAAABimOPBdN++fbr99tvVpUuXcNTTwpw5c+TxeFrcBg0aFPavCyA09CwQXehZILrQs4hljk/lLSws1JYtWxydX90WgwcP1quvvuq/36GDaxsJAwgDehaILvQsEF3oWcQqWz/J69at8//5e9/7nqZNm6YdO3bovPPOU8eOHVvkXnnlle4W2KGD0tLSXF0TQPjQs0B0oWeB6ELPIlbZGkzHjBkTECstLQ2IeTweNTU1tbmof7Vr1y6lp6erU6dOys/P17x589S3b99W830+n3w+n/9+bW2tq/UA+Gr0LBBd6FkgutCziFW2PmPa3Nxs6+b2UJqXl6eVK1dq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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": "9a8e0c3e-4930-4cbd-e8bf-1b043c9b6cad"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/30\n",
"13/13 - 1s - loss: 2.8798 - accuracy: 0.1600 - val_loss: 2.3660 - val_accuracy: 0.2667 - 819ms/epoch - 63ms/step\n",
"Epoch 2/30\n",
"13/13 - 0s - loss: 1.9172 - accuracy: 0.3400 - val_loss: 2.0124 - val_accuracy: 0.2667 - 58ms/epoch - 4ms/step\n",
"Epoch 3/30\n",
"13/13 - 0s - loss: 1.5138 - accuracy: 0.5000 - val_loss: 1.9474 - val_accuracy: 0.3667 - 61ms/epoch - 5ms/step\n",
"Epoch 4/30\n",
"13/13 - 0s - loss: 1.0796 - accuracy: 0.6400 - val_loss: 1.5677 - val_accuracy: 0.4333 - 59ms/epoch - 5ms/step\n",
"Epoch 5/30\n",
"13/13 - 0s - loss: 0.8987 - accuracy: 0.7800 - val_loss: 1.4303 - val_accuracy: 0.5333 - 61ms/epoch - 5ms/step\n",
"Epoch 6/30\n",
"13/13 - 0s - loss: 0.7427 - accuracy: 0.8400 - val_loss: 1.4379 - val_accuracy: 0.4333 - 60ms/epoch - 5ms/step\n",
"Epoch 7/30\n",
"13/13 - 0s - loss: 0.5623 - accuracy: 0.8800 - val_loss: 1.3349 - val_accuracy: 0.5000 - 64ms/epoch - 5ms/step\n",
"Epoch 8/30\n",
"13/13 - 0s - loss: 0.4528 - accuracy: 0.9200 - val_loss: 1.2126 - val_accuracy: 0.5667 - 57ms/epoch - 4ms/step\n",
"Epoch 9/30\n",
"13/13 - 0s - loss: 0.4057 - accuracy: 0.9200 - val_loss: 1.1489 - val_accuracy: 0.6333 - 56ms/epoch - 4ms/step\n",
"Epoch 10/30\n",
"13/13 - 0s - loss: 0.3157 - accuracy: 0.9800 - val_loss: 1.1563 - val_accuracy: 0.6667 - 55ms/epoch - 4ms/step\n",
"Epoch 11/30\n",
"13/13 - 0s - loss: 0.2952 - accuracy: 1.0000 - val_loss: 1.1359 - val_accuracy: 0.6000 - 56ms/epoch - 4ms/step\n",
"Epoch 12/30\n",
"13/13 - 0s - loss: 0.2545 - accuracy: 0.9800 - val_loss: 1.1022 - val_accuracy: 0.6333 - 60ms/epoch - 5ms/step\n",
"Epoch 13/30\n",
"13/13 - 0s - loss: 0.2183 - accuracy: 1.0000 - val_loss: 1.0509 - val_accuracy: 0.6667 - 58ms/epoch - 4ms/step\n",
"Epoch 14/30\n",
"13/13 - 0s - loss: 0.2006 - accuracy: 1.0000 - val_loss: 1.0288 - val_accuracy: 0.7000 - 57ms/epoch - 4ms/step\n",
"Epoch 15/30\n",
"13/13 - 0s - loss: 0.1640 - accuracy: 1.0000 - val_loss: 0.9956 - val_accuracy: 0.7667 - 53ms/epoch - 4ms/step\n",
"Epoch 16/30\n",
"13/13 - 0s - loss: 0.1467 - accuracy: 1.0000 - val_loss: 0.9891 - val_accuracy: 0.7333 - 65ms/epoch - 5ms/step\n",
"Epoch 17/30\n",
"13/13 - 0s - loss: 0.1396 - accuracy: 1.0000 - val_loss: 0.9835 - val_accuracy: 0.6667 - 54ms/epoch - 4ms/step\n",
"Epoch 18/30\n",
"13/13 - 0s - loss: 0.1210 - accuracy: 1.0000 - val_loss: 0.9744 - val_accuracy: 0.6667 - 55ms/epoch - 4ms/step\n",
"Epoch 19/30\n",
"13/13 - 0s - loss: 0.1125 - accuracy: 1.0000 - val_loss: 0.9600 - val_accuracy: 0.7333 - 55ms/epoch - 4ms/step\n",
"Epoch 20/30\n",
"13/13 - 0s - loss: 0.1028 - accuracy: 1.0000 - val_loss: 0.9344 - val_accuracy: 0.7667 - 59ms/epoch - 5ms/step\n",
"Epoch 21/30\n",
"13/13 - 0s - loss: 0.0940 - accuracy: 1.0000 - val_loss: 0.9572 - val_accuracy: 0.7333 - 56ms/epoch - 4ms/step\n",
"Epoch 22/30\n",
"13/13 - 0s - loss: 0.0861 - accuracy: 1.0000 - val_loss: 0.8978 - val_accuracy: 0.8000 - 58ms/epoch - 4ms/step\n",
"Epoch 23/30\n",
"13/13 - 0s - loss: 0.0822 - accuracy: 1.0000 - val_loss: 0.8886 - val_accuracy: 0.7667 - 56ms/epoch - 4ms/step\n",
"Epoch 24/30\n",
"13/13 - 0s - loss: 0.0755 - accuracy: 1.0000 - val_loss: 0.8918 - val_accuracy: 0.7667 - 56ms/epoch - 4ms/step\n",
"Epoch 25/30\n",
"13/13 - 0s - loss: 0.0738 - accuracy: 1.0000 - val_loss: 0.8928 - val_accuracy: 0.7333 - 58ms/epoch - 4ms/step\n",
"Epoch 26/30\n",
"13/13 - 0s - loss: 0.0654 - accuracy: 1.0000 - val_loss: 0.8879 - val_accuracy: 0.7667 - 55ms/epoch - 4ms/step\n",
"Epoch 27/30\n",
"13/13 - 0s - loss: 0.0625 - accuracy: 1.0000 - val_loss: 0.8661 - val_accuracy: 0.7667 - 55ms/epoch - 4ms/step\n",
"Epoch 28/30\n",
"13/13 - 0s - loss: 0.0609 - accuracy: 1.0000 - val_loss: 0.8785 - val_accuracy: 0.7333 - 53ms/epoch - 4ms/step\n",
"Epoch 29/30\n",
"13/13 - 0s - loss: 0.0564 - accuracy: 1.0000 - val_loss: 0.8828 - val_accuracy: 0.7667 - 54ms/epoch - 4ms/step\n",
"Epoch 30/30\n",
"13/13 - 0s - loss: 0.0528 - accuracy: 1.0000 - val_loss: 0.8617 - val_accuracy: 0.7667 - 53ms/epoch - 4ms/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": "ef150bd9-6990-4959-8a5e-9e335b3c2652"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/30\n",
"13/13 - 1s - loss: 2.2997 - accuracy: 0.1400 - val_loss: 2.2434 - val_accuracy: 0.2667 - 604ms/epoch - 46ms/step\n",
"Epoch 2/30\n",
"13/13 - 0s - loss: 1.9325 - accuracy: 0.5000 - val_loss: 2.0922 - val_accuracy: 0.3000 - 58ms/epoch - 4ms/step\n",
"Epoch 3/30\n",
"13/13 - 0s - loss: 1.6513 - accuracy: 0.6200 - val_loss: 1.9608 - val_accuracy: 0.3333 - 57ms/epoch - 4ms/step\n",
"Epoch 4/30\n",
"13/13 - 0s - loss: 1.4200 - accuracy: 0.7000 - val_loss: 1.8265 - val_accuracy: 0.3667 - 59ms/epoch - 5ms/step\n",
"Epoch 5/30\n",
"13/13 - 0s - loss: 1.2254 - accuracy: 0.7800 - val_loss: 1.7046 - val_accuracy: 0.5000 - 59ms/epoch - 5ms/step\n",
"Epoch 6/30\n",
"13/13 - 0s - loss: 1.0638 - accuracy: 0.8200 - val_loss: 1.6162 - val_accuracy: 0.5667 - 58ms/epoch - 4ms/step\n",
"Epoch 7/30\n",
"13/13 - 0s - loss: 0.9265 - accuracy: 0.9200 - val_loss: 1.5517 - val_accuracy: 0.5667 - 56ms/epoch - 4ms/step\n",
"Epoch 8/30\n",
"13/13 - 0s - loss: 0.8105 - accuracy: 0.9400 - val_loss: 1.4836 - val_accuracy: 0.6000 - 60ms/epoch - 5ms/step\n",
"Epoch 9/30\n",
"13/13 - 0s - loss: 0.7161 - accuracy: 0.9400 - val_loss: 1.4272 - val_accuracy: 0.6333 - 60ms/epoch - 5ms/step\n",
"Epoch 10/30\n",
"13/13 - 0s - loss: 0.6337 - accuracy: 0.9600 - val_loss: 1.3877 - val_accuracy: 0.6667 - 57ms/epoch - 4ms/step\n",
"Epoch 11/30\n",
"13/13 - 0s - loss: 0.5712 - accuracy: 0.9800 - val_loss: 1.3435 - val_accuracy: 0.6667 - 55ms/epoch - 4ms/step\n",
"Epoch 12/30\n",
"13/13 - 0s - loss: 0.5153 - accuracy: 1.0000 - val_loss: 1.3374 - val_accuracy: 0.6667 - 56ms/epoch - 4ms/step\n",
"Epoch 13/30\n",
"13/13 - 0s - loss: 0.4640 - accuracy: 1.0000 - val_loss: 1.3068 - val_accuracy: 0.6667 - 57ms/epoch - 4ms/step\n",
"Epoch 14/30\n",
"13/13 - 0s - loss: 0.4188 - accuracy: 1.0000 - val_loss: 1.2626 - val_accuracy: 0.6667 - 57ms/epoch - 4ms/step\n",
"Epoch 15/30\n",
"13/13 - 0s - loss: 0.3792 - accuracy: 1.0000 - val_loss: 1.2351 - val_accuracy: 0.6667 - 59ms/epoch - 5ms/step\n",
"Epoch 16/30\n",
"13/13 - 0s - loss: 0.3478 - accuracy: 1.0000 - val_loss: 1.2192 - val_accuracy: 0.6667 - 58ms/epoch - 4ms/step\n",
"Epoch 17/30\n",
"13/13 - 0s - loss: 0.3203 - accuracy: 1.0000 - val_loss: 1.2041 - val_accuracy: 0.6667 - 57ms/epoch - 4ms/step\n",
"Epoch 18/30\n",
"13/13 - 0s - loss: 0.2950 - accuracy: 1.0000 - val_loss: 1.1833 - val_accuracy: 0.7000 - 60ms/epoch - 5ms/step\n",
"Epoch 19/30\n",
"13/13 - 0s - loss: 0.2708 - accuracy: 1.0000 - val_loss: 1.1790 - val_accuracy: 0.7000 - 58ms/epoch - 4ms/step\n",
"Epoch 20/30\n",
"13/13 - 0s - loss: 0.2517 - accuracy: 1.0000 - val_loss: 1.1581 - val_accuracy: 0.7000 - 59ms/epoch - 5ms/step\n",
"Epoch 21/30\n",
"13/13 - 0s - loss: 0.2337 - accuracy: 1.0000 - val_loss: 1.1556 - val_accuracy: 0.7000 - 61ms/epoch - 5ms/step\n",
"Epoch 22/30\n",
"13/13 - 0s - loss: 0.2172 - accuracy: 1.0000 - val_loss: 1.1409 - val_accuracy: 0.7000 - 58ms/epoch - 4ms/step\n",
"Epoch 23/30\n",
"13/13 - 0s - loss: 0.2024 - accuracy: 1.0000 - val_loss: 1.1279 - val_accuracy: 0.7000 - 61ms/epoch - 5ms/step\n",
"Epoch 24/30\n",
"13/13 - 0s - loss: 0.1893 - accuracy: 1.0000 - val_loss: 1.1188 - val_accuracy: 0.7000 - 59ms/epoch - 5ms/step\n",
"Epoch 25/30\n",
"13/13 - 0s - loss: 0.1791 - accuracy: 1.0000 - val_loss: 1.1130 - val_accuracy: 0.7000 - 60ms/epoch - 5ms/step\n",
"Epoch 26/30\n",
"13/13 - 0s - loss: 0.1671 - accuracy: 1.0000 - val_loss: 1.1069 - val_accuracy: 0.7000 - 55ms/epoch - 4ms/step\n",
"Epoch 27/30\n",
"13/13 - 0s - loss: 0.1580 - accuracy: 1.0000 - val_loss: 1.0969 - val_accuracy: 0.6667 - 55ms/epoch - 4ms/step\n",
"Epoch 28/30\n",
"13/13 - 0s - loss: 0.1498 - accuracy: 1.0000 - val_loss: 1.0905 - val_accuracy: 0.7000 - 56ms/epoch - 4ms/step\n",
"Epoch 29/30\n",
"13/13 - 0s - loss: 0.1409 - accuracy: 1.0000 - val_loss: 1.0883 - val_accuracy: 0.7000 - 56ms/epoch - 4ms/step\n",
"Epoch 30/30\n",
"13/13 - 0s - loss: 0.1331 - accuracy: 1.0000 - val_loss: 1.0821 - val_accuracy: 0.7000 - 57ms/epoch - 4ms/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": "3bfa193e-7dce-4025-a9de-0c0eaa594eac"
},
"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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j4ZjDo2DeTScMXJotqIJ0BZAOZGamooJEybg33//xc8//5zj60VHJ5ispcnJyRZxcUlQqzMeyE7ZYx4NxxwaB/NoOObQOJhHw4nJoYuLvahzma1ocnV1RWxsrN622NhYSCQSuLq6pts/OTkZX375JZKSkrB582a4uLjk+JoajQCNJmeFWk6o1RqoVHxTG4p5NBxzaBzMo+GYQ+NgHg1njByarZPU09MTkZGRiI6O1m0LDQ2Fh4cH7O31Kz5BEDBy5EjI5XJs2LAhVwUTERERkSHMVjTVqFEDtWrVwqJFixAfH4+wsDCsX78evXv3BgD4+fkhJCQEALBnzx78+++/WLp0KRQKhblCJiIiokLMrGOali1bhqlTp6Jp06ZwcHBAr1690KdPHwBAeHg4EhMTAQB//PEHIiIi0g387tKlC+bMmZPncRMREVHhY9aiyc3NDWvWrMnwtdu3b+v+ndGEl0RERER5iRM/EBEREYnAoomIiIhIBBZNRERERCKwaCIiIiISgUUTERERkQgsmoiIiIhEYNFEREREJAKLJiIiIiIRWDQRERERicCiiYiIiEgEFk1EREREIrBoIiIiIhKBRRMRERGRCCyaiIiIiERg0UREREQkAosmIiIiIhFYNBERERGJwKKJiIiISAQWTUREREQisGgiIiIiEoFFExEREZEILJqIiIiIRGDRRERERCQCiyYiIiIiEVg0EREREYnAoomIiIhIBBZNRERERCKwaCIiIiISgUUTERERkQgsmoiIiIhEYNFEREREJAKLJiIiIiIRWDQRERERicCiiYiIiEgEFk1EREREIrBoIiIiIhKBRRMRERGRCCyaiIiIiERg0UREREQkAosmIiIiIhFYNBERERGJwKKJiIiISAQWTUREREQisGgiIiIiEoFFExEREZEILJqIiIiIRGDRRERERCQCiyYiIiIiEVg0EREREYnAoomIiIhIBBZNRERERCKwaCIiIiISgUUTERERkQgsmoiIiIhEYNFEREREJAKLJiIiIiIRWDQRERERicCiiYiIiEgEFk1EREREIrBoIiIiIhKBRRMRERGRCCyaiIiIiERg0UREREQkAosmIiIiIhFYNBERERGJYNaiKSIiAoMGDYKXlxdat26NBQsWQKPRZLjvzz//DF9fX9SvXx+9e/fGtWvX8jhaIiIiKszMWjSNGDECJUuWxJEjR7B+/XocOXIEGzduTLffsWPHsHz5cnz33Xc4d+4cWrdujSFDhiAxMdEMURMREVFhZLaiKTQ0FLdu3cKYMWPg6OiIihUrol+/fti6dWu6fbdu3Yru3bujTp06sLGxweeffw4AOH78eF6HTURERIWU3FwXvn79OsqUKQNnZ2fdtpo1ayI8PBzx8fFwcHDQ29ff31/3tVQqRfXq1REaGoqAgADR15RKJZBKJca5gbfIZFK9/1PuMI+GYw6Ng3k0HHNoHMyj4YyZQ7MVTbGxsXByctLbllZAxcTE6BVNsbGxesVV2r4xMTE5umbRog7Z72QAJydbk56/sGAeDcccGgfzaDjm0DiYR8MZI4dmLV0FQTDJvkRERETGZraiydXVFbGxsXrbYmNjIZFI4OrqqrfdxcUlw33f3Y+IiIjIVMxWNHl6eiIyMhLR0dG6baGhofDw8IC9vX26fa9fv677Wq1W48aNG6hTp06exUtERESFm9mKpho1aqBWrVpYtGgR4uPjERYWhvXr16N3794AAD8/P4SEhAAAevfujV27duHq1atISkrCqlWrYG1tjVatWpkrfCIiIipkzDYQHACWLVuGqVOnomnTpnBwcECvXr3Qp08fAEB4eLhuHqYWLVpg1KhR+Prrr/Hy5UvUqlULq1evho2NjTnDJyIiokJEInCENREREVG2OPEDERERkQgsmoiIiIhEYNFEREREJAKLJiIiIiIRWDQRERERicCiyUAREREYNGgQvLy80Lp1ayxYsAAajcbcYeU77733Hjw9PVGrVi3df7NnzzZ3WBbv9OnT8PHxwciRI9O9tm/fPnTq1An16tVD9+7dcebMGTNEaPkyy+GOHTtQrVo1vfdkrVq18M8//5gpUssVERGBYcOGwcvLCz4+PpgwYQLi4uIAADdv3sQnn3yCBg0aoH379li3bp2Zo7VcmeXx8ePHeO+999K9FwMDA80dssW5desWPvvsMzRo0AA+Pj74+uuv8fz5cwDA+fPn0aNHD9SvXx8BAQHYvXt3zi8gkEG6desmTJkyRYiLixPCw8OF9u3bC+vWrTN3WPlO1apVhUePHpk7jHxl9erVQvv27YVevXoJX3/9td5rN27cEDw9PYUTJ04IycnJwp9//inUqVNHiIyMNFO0limrHP7xxx/CJ598YqbI8peOHTsKEyZMEOLj44XIyEih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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": "6277e3be-4a69-45dd-ca60-783a8c8b0b91"
},
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Time in seconds since end of run: 1706116953.6466222\n",
"Wed Jan 24 17:22:33 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
}