636 lines (635 with data), 146.1 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Time in seconds since beginning of run: 1682489187.9320483\n",
"Tue Apr 25 23:06:27 2023\n"
]
}
],
"source": [
"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)\n",
"# Quanvolutional Neural Networks by Author: Andrea Mari \n",
"# https://pennylane.ai/qml/demos/tutorial_quanvolution.html\n",
"# This cell is added by sphinx-gallery\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"n_epochs = 30 # Number of optimization epochs\n",
"n_layers = 1 # Number of random layers\n",
"n_train = 120 # Size of the train dataset\n",
"n_test = 30 # Size of the test dataset\n",
"\n",
"SAVE_PATH = \"imageqnn/\" # 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": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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, interface=\"autograd\")\n",
"def circuit(phi):\n",
" # Encoding of 4 classical input values\n",
" for j in range(4):\n",
" qml.CZ(wires=[3, 2])\n",
" qml.CZ(wires=[2, 1])\n",
" qml.CZ(wires=[1, 0])\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": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Quantum pre-processing of train images:\n",
"120/120 \n",
"Quantum pre-processing of test images:\n",
"30/30 \r"
]
}
],
"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": {},
"source": [
"Let us visualize the effect of the quantum convolution layer on a batch\n",
"of samples:\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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L49JSAAAAACAd9keTIuKinTLLbfoo48+0qeffqpbb71Vl112mV566aVY5gMAAAAAeJzt08Vs3bpVTz75pCQpEAho5syZysrK0s9+9jM9/fTTOuecc2IWEgAAAADgXbYH02AwqKqqqmZr48aNU7t27XTVVVdp/vz5bmcDAAAAAPiA7cH0jDPO0GuvvaZBgwY1W7/yyivV0NCgiRMnuh4OAAAAAOB9tgfTKVOm6I033oh427hx4yRJjz32mDupoPvvv9927UcffeRo2w8//LDt2urqatu1n3zyiaMcp59+uqN6uxoaGmKyXcAtTnulb9++tmvbt7f9z7rq6+sd5Rg5cqTtWsuyHG0baMnNN99su/baa6+NYRJve+edd2zXHj58OIZJAO8IBAKO6pOTk23Xfvnll07jxD3bv8Fcfvnluvzyy1u8fdy4cU0DKgAAAAAAdjk6jykAAAAAAG5jMAUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCjXBtPnn39eK1ascGtzAAAAAACfcG0wve2223T99de7tTkAAAAAgE/YPxP7MXz88cdubQoAAAAA4CN8xhQAAAAAYFRUe0yrqqr07rvvau/evWpoaGh224QJE1wJ5ncTJ06M2baXLFliuzY5Odl27emnnx5NHMAT2re3/89p3759HW27Q4cOtmsPHjzoaNuxYlmW7drf/OY3tmvvvffeaOIggX379wzYV11dbToC4DmhUMh2rZPfoyXpyy+/dBrHUxwPpn/+8591zTXX6NChQ0pJSVEgEGi6LRAIMJgCAAAAABxx/FbeX//615o0aZJqa2tVVVWlAwcONF2++OILV8MVFRUpEAg0u2RkZLj6NQAAAAAAZjneY7p7927ddNNN6ty5cyzyhOnbt69effXVputJSUlt8nUBAAAAAG3D8WD64x//WBs3blTv3r1jkSdM+/bt2UsKAAAAAB5mazBds2ZN0/9ffPHFmjlzprZt26b+/fuHHZTjsssuczXgzp07lZmZqWAwqCFDhmjOnDnfORSHQqFmH0quqalxNQ8AAAAAwF22BtMxY8aErRUXF4etBQIB1dfXtzpUoyFDhmjFihU69dRT9a9//Ut33323hg0bpq1bt+qkk06KeJ+5c+fqzjvvdC0DAAAAACC2bB38qKGhwdbFzaFUkvLz83XFFVeof//+uvDCC/WX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bdemp6c72va+ffucxrHlD3/4g6P6q666KiY5ALcEAgHbtbt377Zdm5WV5SiHk561LMt27Q033OAox9KlSx3VAwDgls8++yxm2+bnW3xwfB7TSPr06aN77703bG8qAAAAAADH4spgKklJSUnas2ePo/u88cYbuvTSS5WZmalAIKDVq1c3u92yLBUVFSkzM1OdOnXSyJEjtXXrVrciAwAAAADigOO38q5Zs6bZdcuyVF5ersWLF2v48OGOtnXo0CENHDhQ119/va644oqw2+fNm6cFCxZo2bJlOvXUU3X33Xdr9OjR2rFjh1JSUpxGBwAAAADEIceD6ZgxY5pdDwQC6tatm0aNGqX58+c72lZ+fr7y8/Mj3mZZlhYuXKhZs2Zp7NixkqTly5crPT1dTz31lG688caI9wuFQgqFQk3Xa2pqHGUCAAAAALQtx2/lbWhoaHapr69XRUWFnnrqKfXo0cO1YKWlpaqoqFBeXl7TWjAY1IgRI7R+/foW7zd37lylpaU1XbKzs13LBAAAAABwX9SfMa2srNT+/fvdzNJMRUWFpPAjzqanpzfdFklhYaGqq6ubLmVlZTHLCAAAAABoPUeDaVVVlaZNm6auXbsqPT1d3bt3V9euXVVQUKCqqqqYBPz26Rosy/rOUzgEg0GlpqY2uwAAAAAA4pftz5h+8cUXGjp0qHbv3q1rrrlGp59+uizL0vbt27Vs2TKtXbtW69ev14knnuhKsIyMDElf7zn95luE9+7d6/i8nQAAAACA+GV7MC0uLlZycrL+8Y9/hA2GxcXFysvLU3FxsR588EFXguXm5iojI0MlJSU688wzJUl1dXVat26d7rvvPle+BgAAAADAPNtv5V29erUeeOCBiHsrMzIyNG/ePK1atcrRFz948KC2bNmiLVu2SPr6gEdbtmzRrl27FAgENH36dM2ZM0erVq3SRx99pOuuu06dO3fW1Vdf7ejrAAAAAADil+09puXl5erbt2+Lt/fr1+87D0oUycaNG/WjH/2o6fqMGTMkSRMnTtSyZct066236quvvtLUqVN14MABDRkyRK+88kpcncM0KSnJdm0wGIxhEvt++tOf2q59+umnY5gEiG9TpkyxXVtSUmK79i9/+YujHMOGDbNd+9prrznaNgAAiWDHjh0x2/b1118fs23DPtuDadeuXfXpp58qKysr4u2lpaU6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GMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUe1NB0DbS0pKisl2586d66j+9ttvt1178OBB27XFxcW2a++++27btUAi2LJli+3aM88809G2Q6GQ7drk5GRH2wZgVn19ve3aWP0eAfidk5+zP/jBD2zX/uMf/4gmTptjjykAAAAAwCgGUwAAAACAUQymAAAAAACjGEwBAAAAAEYxmAIAAAAAjGIwBQAAAAAYxWAKAAAAADCKwRQAAAAAYBSDKQAAAADAqPZ2ihYtWuR4w9dff71SUlIc3w8AAAAA4C+2BtPp06crKytLSUlJtjZaVlamSy65hMH0W7p37267tqKiwnbt7bff7ijH3LlzHdXbddtttzmqf+qpp2zX7t6923btunXrHOUA2logEHBU/84779iuPfPMM23X5ubmOsrRoUMH27VO/j2YN2+eoxzwlz/84Q+2aydNmhTDJN72k5/8xHQEwHOc/o7eqVMn27V9+vRxGifu2RpMJWnjxo22BysGUgAAAACAXbY+Yzp79mwdf/zxtjf629/+Vl26dIk6FAAAAADAP2ztMZ09e7ajjRYWFkYVBgAAAADgPxyVFwAAAABglKPB9Pe//70mTpyoJ554QpK0cuVKnX766erdu7fjvaoAAAAAAEgODn60cOFC3X777frxj3+sWbNmac+ePXrwwQf1q1/9Sg0NDZo/f76+973v6Ze//GUs8wIAAAAAPMb2YProo4/qscce09VXX63NmzfrnHPO0SOPPKIbbrhBkpSVlaWHH36YwRQAAAAA4Ijtt/J+9tlnOu+88yR9fZ68pKQknXvuuU23n3/++frHP/7hfkIAAAAAgKfZHkw7d+6sQ4cONV3v1q1b2Clkjh496l4yAAAAAIAv2B5MTzvtNH3wwQdN18vKytSrV6+m6x9//LFycnJcDQcAAAAA8D7bnzG97777dNxxx7V4+65du3TjjTe6EsqrvrnH+Vh+9rOf2a599tlnHeXIyMiwXfvNP0Ycy9SpUx3lGDdunKN6wCv69evnqH7IkCG2ax966CHbtbfccoujHK+99prt2r/85S+Otg205H//939NR0hYf//7323Xvvrqq7ZrX3755WjiAJ7wzR1zx7Jw4UJH2/7P//xP27W/+MUvHG07EdgeTIcPH/6dtzsdSgAAAAAAkByexxQAAAAAALcxmAIA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R/XvvPNOTHLceeedjuoPHjxou/b+++93Gsc4ejY6fvjdeMSIEY7q33zzTdu17drZP9umk98NvMzu78aOz2MaSWpqqoqLi3XHHXe4sTkAAAAAgI+4MphKUlVVlaqrq93aHAAAAADAJxx/xnTRokXNrluWpfLycj355JOO3poJAAAAAIAUxWD64IMPNrverl07devWTRMnTlRhYaFrwQAAAAAA/sB5TAEAAAAARrXqM6ZlZWX6/PPP3coCAAAAAPAhx4Pp0aNHdccddygtLU05OTnq1auX0tLSdPvtt+vIkSOxyAgAAAAA8DDHb+UtKCjQqlWrNG/ePA0dOlSS9NZbb6moqEiVlZV65JFHXA8JAAAAAPAux4Pp008/rWeeeUb5+flNawMGDFDPnj111VVXMZgCAAAAABxx/Fbejh07KicnJ2w9JydHycnJbmQCAAAAAPiI48F02rRpuuuuuxQKhZrWQqGQ7rnnHhUUFLgaDgAAAADgfY7fyrt582atXbtWWVlZGjhwoCTp/fffV11dnS644AKNHTu2qfa5555zLylc8/vf/952bVJSku3aSZMmOcrhZNtAvOvQoYPpCJKkqVOn2q61LMvRtkeOHGm79pJLLnG0baAlXbt2NR0hbmzevNlR/ZYtW2ITBIhzb775pqP6Rx991HbtL37xC6dxYJPjwfSEE07QFVdc0WwtOzvbtUAAAAAAAH9xPJg+8cQTscgBAAAAAPApx58xHTVqlKqqqsLWa2pqNGrUKDcyAQAAAAB8xPFg+vrrr6uuri5s/fDhw47fzw0AAAAAgO238n7wwQdN/79t2zZVVFQ0Xa+vr9dLL72k733ve+6mAwAAAAB4nu3B9IwzzlAgEFAgEIj4lt1OnTrpoYcecjUcAAAAAMD7bA+mpaWlsixLvXv31rvvvqtu3bo13ZacnKzu3btz+g8AAAAAgGO2B9NevXpJkhoaGmIWBgAAAADgP45PF7NixYrvvH3ChAlRhwEAAAAA+I/jwfTmm29udv3IkSP68ssvlZycrM6dOzOYAgAAAAAccTyYHjhwIGxt586dmjJlimbOnOlKKEjf//73bdfef//9jrb905/+1HZtdna27drKykpHOU466SRH9UA8u++++2zXTp061dG2r7/+etu1L774ou3aRx55xFGOH//4x47qAZg1YsQI27Wffvpp7IIALhg0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\n",
"text/plain": [
"<Figure size 1000x1000 with 20 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"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": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"30/30 - 0s - loss: 2.4043 - accuracy: 0.2250 - val_loss: 2.0926 - val_accuracy: 0.3667 - 311ms/epoch - 10ms/step\n",
"Epoch 2/30\n",
"30/30 - 0s - loss: 1.5279 - accuracy: 0.4917 - val_loss: 1.5435 - val_accuracy: 0.5667 - 40ms/epoch - 1ms/step\n",
"Epoch 3/30\n",
"30/30 - 0s - loss: 1.0406 - accuracy: 0.7667 - val_loss: 1.5862 - val_accuracy: 0.6333 - 44ms/epoch - 1ms/step\n",
"Epoch 4/30\n",
"30/30 - 0s - loss: 0.7992 - accuracy: 0.8333 - val_loss: 1.3202 - val_accuracy: 0.6333 - 48ms/epoch - 2ms/step\n",
"Epoch 5/30\n",
"30/30 - 0s - loss: 0.6110 - accuracy: 0.9000 - val_loss: 1.1488 - val_accuracy: 0.7000 - 42ms/epoch - 1ms/step\n",
"Epoch 6/30\n",
"30/30 - 0s - loss: 0.4718 - accuracy: 0.9250 - val_loss: 1.1476 - val_accuracy: 0.7333 - 43ms/epoch - 1ms/step\n",
"Epoch 7/30\n",
"30/30 - 0s - loss: 0.4156 - accuracy: 0.9500 - val_loss: 1.2148 - val_accuracy: 0.6667 - 38ms/epoch - 1ms/step\n",
"Epoch 8/30\n",
"30/30 - 0s - loss: 0.3162 - accuracy: 0.9583 - val_loss: 0.9683 - val_accuracy: 0.7333 - 49ms/epoch - 2ms/step\n",
"Epoch 9/30\n",
"30/30 - 0s - loss: 0.2726 - accuracy: 0.9667 - val_loss: 1.0067 - val_accuracy: 0.7333 - 48ms/epoch - 2ms/step\n",
"Epoch 10/30\n",
"30/30 - 0s - loss: 0.2139 - accuracy: 1.0000 - val_loss: 0.9673 - val_accuracy: 0.7333 - 43ms/epoch - 1ms/step\n",
"Epoch 11/30\n",
"30/30 - 0s - loss: 0.2020 - accuracy: 1.0000 - val_loss: 0.9852 - val_accuracy: 0.7667 - 37ms/epoch - 1ms/step\n",
"Epoch 12/30\n",
"30/30 - 0s - loss: 0.1779 - accuracy: 1.0000 - val_loss: 0.8754 - val_accuracy: 0.8000 - 42ms/epoch - 1ms/step\n",
"Epoch 13/30\n",
"30/30 - 0s - loss: 0.1463 - accuracy: 1.0000 - val_loss: 0.9218 - val_accuracy: 0.7667 - 51ms/epoch - 2ms/step\n",
"Epoch 14/30\n",
"30/30 - 0s - loss: 0.1356 - accuracy: 1.0000 - val_loss: 0.8807 - val_accuracy: 0.7333 - 36ms/epoch - 1ms/step\n",
"Epoch 15/30\n",
"30/30 - 0s - loss: 0.1134 - accuracy: 1.0000 - val_loss: 0.8707 - val_accuracy: 0.7667 - 42ms/epoch - 1ms/step\n",
"Epoch 16/30\n",
"30/30 - 0s - loss: 0.1069 - accuracy: 1.0000 - val_loss: 0.8698 - val_accuracy: 0.7667 - 42ms/epoch - 1ms/step\n",
"Epoch 17/30\n",
"30/30 - 0s - loss: 0.0940 - accuracy: 1.0000 - val_loss: 0.8750 - val_accuracy: 0.7667 - 35ms/epoch - 1ms/step\n",
"Epoch 18/30\n",
"30/30 - 0s - loss: 0.0890 - accuracy: 1.0000 - val_loss: 0.8656 - val_accuracy: 0.7667 - 36ms/epoch - 1ms/step\n",
"Epoch 19/30\n",
"30/30 - 0s - loss: 0.0817 - accuracy: 1.0000 - val_loss: 0.8606 - val_accuracy: 0.7667 - 37ms/epoch - 1ms/step\n",
"Epoch 20/30\n",
"30/30 - 0s - loss: 0.0707 - accuracy: 1.0000 - val_loss: 0.8191 - val_accuracy: 0.7667 - 39ms/epoch - 1ms/step\n",
"Epoch 21/30\n",
"30/30 - 0s - loss: 0.0654 - accuracy: 1.0000 - val_loss: 0.8878 - val_accuracy: 0.7667 - 40ms/epoch - 1ms/step\n",
"Epoch 22/30\n",
"30/30 - 0s - loss: 0.0608 - accuracy: 1.0000 - val_loss: 0.8297 - val_accuracy: 0.7667 - 48ms/epoch - 2ms/step\n",
"Epoch 23/30\n",
"30/30 - 0s - loss: 0.0593 - accuracy: 1.0000 - val_loss: 0.8792 - val_accuracy: 0.7667 - 38ms/epoch - 1ms/step\n",
"Epoch 24/30\n",
"30/30 - 0s - loss: 0.0532 - accuracy: 1.0000 - val_loss: 0.8447 - val_accuracy: 0.7333 - 46ms/epoch - 2ms/step\n",
"Epoch 25/30\n",
"30/30 - 0s - loss: 0.0498 - accuracy: 1.0000 - val_loss: 0.8560 - val_accuracy: 0.7667 - 43ms/epoch - 1ms/step\n",
"Epoch 26/30\n",
"30/30 - 0s - loss: 0.0451 - accuracy: 1.0000 - val_loss: 0.8463 - val_accuracy: 0.7667 - 39ms/epoch - 1ms/step\n",
"Epoch 27/30\n",
"30/30 - 0s - loss: 0.0442 - accuracy: 1.0000 - val_loss: 0.8453 - val_accuracy: 0.7667 - 36ms/epoch - 1ms/step\n",
"Epoch 28/30\n",
"30/30 - 0s - loss: 0.0405 - accuracy: 1.0000 - val_loss: 0.8344 - val_accuracy: 0.7667 - 42ms/epoch - 1ms/step\n",
"Epoch 29/30\n",
"30/30 - 0s - loss: 0.0388 - accuracy: 1.0000 - val_loss: 0.8511 - val_accuracy: 0.7667 - 33ms/epoch - 1ms/step\n",
"Epoch 30/30\n",
"30/30 - 0s - loss: 0.0375 - accuracy: 1.0000 - val_loss: 0.8304 - val_accuracy: 0.7333 - 45ms/epoch - 2ms/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": {},
"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": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"30/30 - 0s - loss: 2.1255 - accuracy: 0.2750 - val_loss: 1.8431 - val_accuracy: 0.5333 - 241ms/epoch - 8ms/step\n",
"Epoch 2/30\n",
"30/30 - 0s - loss: 1.5225 - accuracy: 0.6333 - val_loss: 1.5436 - val_accuracy: 0.6000 - 52ms/epoch - 2ms/step\n",
"Epoch 3/30\n",
"30/30 - 0s - loss: 1.1479 - accuracy: 0.8083 - val_loss: 1.3416 - val_accuracy: 0.6667 - 38ms/epoch - 1ms/step\n",
"Epoch 4/30\n",
"30/30 - 0s - loss: 0.8786 - accuracy: 0.9083 - val_loss: 1.2146 - val_accuracy: 0.7333 - 53ms/epoch - 2ms/step\n",
"Epoch 5/30\n",
"30/30 - 0s - loss: 0.7086 - accuracy: 0.9417 - val_loss: 1.1235 - val_accuracy: 0.7667 - 42ms/epoch - 1ms/step\n",
"Epoch 6/30\n",
"30/30 - 0s - loss: 0.5774 - accuracy: 0.9667 - val_loss: 1.0515 - val_accuracy: 0.8000 - 33ms/epoch - 1ms/step\n",
"Epoch 7/30\n",
"30/30 - 0s - loss: 0.4858 - accuracy: 0.9750 - val_loss: 0.9816 - val_accuracy: 0.8000 - 32ms/epoch - 1ms/step\n",
"Epoch 8/30\n",
"30/30 - 0s - loss: 0.4092 - accuracy: 0.9750 - val_loss: 0.9568 - val_accuracy: 0.8333 - 41ms/epoch - 1ms/step\n",
"Epoch 9/30\n",
"30/30 - 0s - loss: 0.3516 - accuracy: 0.9917 - val_loss: 0.9189 - val_accuracy: 0.7667 - 45ms/epoch - 1ms/step\n",
"Epoch 10/30\n",
"30/30 - 0s - loss: 0.3075 - accuracy: 1.0000 - val_loss: 0.8966 - val_accuracy: 0.8000 - 36ms/epoch - 1ms/step\n",
"Epoch 11/30\n",
"30/30 - 0s - loss: 0.2708 - accuracy: 1.0000 - val_loss: 0.8761 - val_accuracy: 0.7667 - 35ms/epoch - 1ms/step\n",
"Epoch 12/30\n",
"30/30 - 0s - loss: 0.2407 - accuracy: 1.0000 - val_loss: 0.8773 - val_accuracy: 0.8000 - 35ms/epoch - 1ms/step\n",
"Epoch 13/30\n",
"30/30 - 0s - loss: 0.2132 - accuracy: 1.0000 - val_loss: 0.8597 - val_accuracy: 0.7667 - 34ms/epoch - 1ms/step\n",
"Epoch 14/30\n",
"30/30 - 0s - loss: 0.1916 - accuracy: 1.0000 - val_loss: 0.8467 - val_accuracy: 0.8000 - 46ms/epoch - 2ms/step\n",
"Epoch 15/30\n",
"30/30 - 0s - loss: 0.1731 - accuracy: 1.0000 - val_loss: 0.8429 - val_accuracy: 0.8000 - 38ms/epoch - 1ms/step\n",
"Epoch 16/30\n",
"30/30 - 0s - loss: 0.1572 - accuracy: 1.0000 - val_loss: 0.8333 - val_accuracy: 0.8000 - 37ms/epoch - 1ms/step\n",
"Epoch 17/30\n",
"30/30 - 0s - loss: 0.1435 - accuracy: 1.0000 - val_loss: 0.8277 - val_accuracy: 0.8000 - 39ms/epoch - 1ms/step\n",
"Epoch 18/30\n",
"30/30 - 0s - loss: 0.1328 - accuracy: 1.0000 - val_loss: 0.8343 - val_accuracy: 0.8000 - 48ms/epoch - 2ms/step\n",
"Epoch 19/30\n",
"30/30 - 0s - loss: 0.1208 - accuracy: 1.0000 - val_loss: 0.8208 - val_accuracy: 0.8000 - 37ms/epoch - 1ms/step\n",
"Epoch 20/30\n",
"30/30 - 0s - loss: 0.1116 - accuracy: 1.0000 - val_loss: 0.8191 - val_accuracy: 0.8000 - 46ms/epoch - 2ms/step\n",
"Epoch 21/30\n",
"30/30 - 0s - loss: 0.1035 - accuracy: 1.0000 - val_loss: 0.8172 - val_accuracy: 0.8000 - 34ms/epoch - 1ms/step\n",
"Epoch 22/30\n",
"30/30 - 0s - loss: 0.0961 - accuracy: 1.0000 - val_loss: 0.8160 - val_accuracy: 0.8000 - 42ms/epoch - 1ms/step\n",
"Epoch 23/30\n",
"30/30 - 0s - loss: 0.0900 - accuracy: 1.0000 - val_loss: 0.8195 - val_accuracy: 0.8000 - 35ms/epoch - 1ms/step\n",
"Epoch 24/30\n",
"30/30 - 0s - loss: 0.0834 - accuracy: 1.0000 - val_loss: 0.8149 - val_accuracy: 0.8000 - 41ms/epoch - 1ms/step\n",
"Epoch 25/30\n",
"30/30 - 0s - loss: 0.0784 - accuracy: 1.0000 - val_loss: 0.8120 - val_accuracy: 0.8000 - 36ms/epoch - 1ms/step\n",
"Epoch 26/30\n",
"30/30 - 0s - loss: 0.0732 - accuracy: 1.0000 - val_loss: 0.8132 - val_accuracy: 0.8333 - 38ms/epoch - 1ms/step\n",
"Epoch 27/30\n",
"30/30 - 0s - loss: 0.0695 - accuracy: 1.0000 - val_loss: 0.8084 - val_accuracy: 0.8000 - 36ms/epoch - 1ms/step\n",
"Epoch 28/30\n",
"30/30 - 0s - loss: 0.0649 - accuracy: 1.0000 - val_loss: 0.8096 - val_accuracy: 0.8333 - 37ms/epoch - 1ms/step\n",
"Epoch 29/30\n",
"30/30 - 0s - loss: 0.0614 - accuracy: 1.0000 - val_loss: 0.8123 - val_accuracy: 0.8333 - 35ms/epoch - 1ms/step\n",
"Epoch 30/30\n",
"30/30 - 0s - loss: 0.0583 - accuracy: 1.0000 - val_loss: 0.8110 - val_accuracy: 0.8333 - 41ms/epoch - 1ms/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": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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l0fCG10xL1++hEQigfMb41qzZs3C6NGjUbFixZJsYpGkpQHXrqnL6e7OC5uIiKi0MVpPU+PGjfH48WPEx8ejfPnyANQ3h9etWxe2tq+6yWJjYxEREYHbt29j2bJlAIC0tDRIpVIcOXIE27dvN0r733TpEqBUqnuauHwKERFR6WO00NSwYUM0bdoUixcvxtSpU/H06VOsX78egwcPBgD4+fkhKCgILVq0wPHjx7WeO3/+fLi4uGDo0KHGaHqezp1T/18iEdC8OUMTERFRaWPUe5qWLVuGWbNmoUOHDrC3t0dAQAD69+8PAIiJiUFaWhpkMhlcXFy0nmdtbQ07OzuTGq7LCU1vv62Cvb1x20JERET6Z9TQ5OLigtWrV+f52M2bN/N93rfffmuoJhXb+fPq/3ORXiIiotKJs2XpSBCAPXukuHdP/T0X6SUiIiqdGJp0EBZmAU9PWwwY8GrCrCVLLBEWZlIzORAREZEeMDQVU1iYBYYMscK9e9olfPxYiiFDrBiciIiIShmGpmIQBGD2bDlUqrxnF1epJJgzRw7BcPNoEhERUQljaCqGs2dluXqY3hQTI8W5c7ISahEREREZGkNTMcTFiVu/Tux+REREZPoYmorBxUXcuJvY/YiIiMj0MTQVg5eXErVqFTwfk5ubCp6enH6AiIiotGBoKgaJBJg5MxNSad49SVKpgBkzMiHh6BwREVGpwdBUTP7+CqxblwE3N+0eJzc3Fdaty4C/v8JILSMiIiJD4GRCOvD3V6BrVwUiIiyQkmINe/t0eHgo2MNERERUCjE06UgiAby9VXB2BhISVFCwg4mIiKhU4vAcERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQR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i1MOEBERGZmXl3euobmypHNnP3Tu7GfsZhSKPU1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIRg1NsbGx+PLLL+Hp6QkvLy8EBgYiKSkpz31///13+Pr6okWLFujevTsOHTpUwq0lIiKissyooWnUqFFwcHDAkSNHsGvXLkRHRyM4ODjXfocOHcLixYvxv//9DxERERg8eDDGjRuHhw8fGqHVREREVBZZGOvESUlJaNiwISZOnAhbW1vY2toiICAAGzZsyLVvWloaJkyYAHd3dwDAhx9+iG+//RaXL19G9erVRZ9TKpVAKpXo7TXkkMmkWv+n4mEddcca6gfrqDvWUD9YR93ps4ZGC00ODg6YP3++1rbHjx+jUqVKufbt0aOH1vdJSUlITU1F5cqVi3TO8uVtIZHoPzTlcHCwNtixyxLWUXesoX6wjrpjDfWDddSdPmpotND0pqioKGzatAmrVq0qcD9BEDBt2jQ0a9YMrVu3LtI54uNTDdbT5OBgjaSkdCiVKr0fv6xgHXXHGuoH66g71lA/WEfdiamhs7OtqGOZRGi6cOECRo4ciYkTJ8Lb2zvf/bKzszFlyhTcuXMHv/76a5HPo1IJUKkEXZpaIKVSBYWCF7WuWEfdsYb6wTrqjjXUD9ZRd/qoodFD09GjRzFp0iRMnz4dAQEB+e6XkZGBUaNGIT09HZs2bYKzs3PJNZKIiIjKPKOGposXLyIwMBBLly6Fj49PvvsJgoDx48fDwsICISEhkMvlJdhKIiIiIiNOOaBQKDBt2jRMmjQpz8Dk5+eHyMhIAMCuXbtw584dLF26lIGJiIiIjMJoPU2XL1/G3bt3ERQUhKCgIK3H9u3bh5iYGKSlpQEAtm7ditjY2Fw3fvfs2TPXc4mIiIgMwWihycPDAzdv3sz38dcf++WXX0qiSURERET54mxZRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCSC0daeKy0EAQgPlyI5GbC3l6JVKxUkEmO3ioiIiPSNoUkHYWEWmD1bjnv3cjrsrFGrlgozZ2bC319h1LYR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\n",
"text/plain": [
"<Figure size 600x900 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.style.use(\"seaborn-v0_8\")\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": {},
"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",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"# Quanvolutional Neural Networks by Author: Andrea Mari \n",
"# https://pennylane.ai/qml/demos/tutorial_quanvolution.html"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'platform': 'Linux',\n",
" 'platform-release': '5.19.0-40-generic',\n",
" 'platform-version': '#41~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 31 16:00:14 UTC 2',\n",
" 'architecture': 'x86_64',\n",
" 'processor': 'x86_64',\n",
" 'ram': '15 GB'}"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import platform,socket,re,uuid,json,psutil,logging\n",
"\n",
"def getSystemInfo():\n",
" try:\n",
" info={}\n",
" info['platform']=platform.system()\n",
" info['platform-release']=platform.release()\n",
" info['platform-version']=platform.version()\n",
" info['architecture']=platform.machine()\n",
" info['processor']=platform.processor()\n",
" info['ram']=str(round(psutil.virtual_memory().total / (1024.0 **3)))+\" GB\"\n",
" return json.dumps(info)\n",
" except Exception as e:\n",
" logging.exception(e)\n",
"\n",
"json.loads(getSystemInfo())"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Time in seconds since beginning of run: 1682489306.256302\n",
"Tue Apr 25 23:08:26 2023\n"
]
}
],
"source": [
"seconds = time.time()\n",
"print(\"Time in seconds since beginning of run:\", seconds)\n",
"local_time = time.ctime(seconds)\n",
"print(local_time)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}