555 lines (554 with data), 142.9 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"# This cell is added by sphinx-gallery\n",
"# It can be customized to whatever you like\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-04-24 21:03:35.902167: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n"
]
}
],
"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": 3,
"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": 4,
"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": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"dev = qml.device(\"default.qubit\", wires=8)\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.RY(np.pi * phi[j-2], wires=j)\n",
"\n",
" # Random quantum circuit\n",
" RandomLayers(rand_params, wires=list(range(8)))\n",
"\n",
" # Measurement producing 4 classical output values\n",
" return [qml.expval(qml.PauliZ(j)) for j in range(8)]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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": 7,
"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": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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RUWFJCk9Pb1Jbnp6euNjPzRnzhylpaU13rKzs2NbOAAAAACgReJmMC0sLNRHH32kZ555JuyxH35HwrKsiN+bkKRp06apurq68VZWVhaTegEAAAAA7jD6HdNj/uM//kOrV6/W22+/3eQEHcdOJlJRUaFu3bo1xvfu3Ru2F/WYYDCoYDAY24JbQXPb98///M9hscWLF0fM7du3r6s1fd/7778fFrv//vsj5r744osR4w0NDa7WBJiUlJQUMT5p0qSw2FVXXRUxt7mvHvTu3Tv6wv7/In394c0334yY+/vf/77FPw+AeZFO1ubGSWEAEwYNGhQxfvHFF4fFmvs/Zl1dXcT4ww8/HBb7+9//br84uMLo306WZamwsFAvvPCC3njjDfXo0aPJ4z169FBGRobWrFnTGKurq9O6deuUl5fX2uUCAAAAAGLA6B7TyZMn6+mnn9aLL76olJSUxu+NpqWlqUOHDgoEAioqKtLs2bPVu3dv9e7dW7Nnz1bHjh113XXXmSwdAAAAAOASo4PpI488IkkaMWJEk/jSpUt1ww03SJLuuOMOffvtt5o0aZIOHDigoUOH6vXXX+capgAAAADgEUYH0+YuVP99gUBAxcXFKi4ujn1BAAAAAIBWxzfgAQAAAABGxcVZef2iU6dOYbHHHnssYm5zZx7r2bOnmyU1inTGTkmaP39+xPhrr70WFvv2229drQkw7d133w2LbdiwIWLuOeecY3vdY2cc/6HmzsYdyf79+yPGn3322YjxW2+91fbaALxr2LBhEePLli1r3UIAh0466aSI8eb+TY1k9+7dEeO33357NCXBZewxBQAAAAAYxWAKAAAAADCKwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRnJW3hYYOHRoWmzp1asTcIUOGhMVOPfVU12s65ptvvokYX7RoUVhs9uzZEXMPHTrkak1AItm1a1dYbMyYMRFzb7755ojxu+66q8V1/OEPfwiLPfLIIxFzP//88xb/PADeEAgETJcAALaxxxQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKM4+VELXXnllbZiTm3bti1i/H//93/DYkePHo2YO3/+/IjxqqqqqOsC/K68vDxivLi42FEcANzyyiuvRIz/67/+aytXAsTOp59+GjG+fv36sNj5558f63IQA+wxBQAAAAAYxWAKAAAA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OC0n7tkeTK+88kpdeeWVzT5+7bXXNg6oAAAAAADY5eg6pgAAAAAAuI3BFAAAAABgFIMpAAAAAMAoBlMAAAAAgFEMpgAAAAAAo1wbTF988UUtX77creUAAAAAAD7h2mB655136sYbb3RrOQAAAACAT9i+junxfPrpp24tBQAAAADwEb5jCgAAAAAwKqo9plVVVfrggw+0d+9eNTQ0NHls3LhxrhTmd7W1tTFbOxAI2M796quvYlYH4FdJSUkxW/uHfyf/mAceeMDR2j/72c+clmPL3//+d9u56enpMakB8evQoUOmSwCAqPTr189Rft++fW3ndujQwWk5cc/xYPrSSy/p+uuv16FDh5SSktJkyAkEAgymAAAAAABHHB/K+5vf/EY33XSTamtrVVVVpQMHDjTevv76a1eLKy4uViAQaHLLyMhw9WcAAAAAAMxyvMd09+7duuWWW9SxY8dY1BOmX79++vOf/9x4P5aHwAEAAAAAWp/jwfSSSy7Rxo0b1bNnz1jUE6Zt27bsJQUAAAAAD7M1mK5evbrxzz/96U81depUbdu2TQMGDFC7du2a5F5xxRWuFrhjxw5lZmYqGAxq6NChmj179o8OxaFQSKFQqPF+TU2Nq/UAAAAAANxlazAdPXp0WKykpCQsFggEVF9f3+Kijhk6dKiWL1+uPn366O9//7vuuece5eXlaevWrTrllFMiPmfOnDmaNWuWazUAAAAAAGLL1smPGhoabN3cHEolqaCgQFdddZUGDBigiy++WH/6058kSU8++WSzz5k2bZqqq6sbb2VlZa7WBAAAAABwV1TXMTXlhBNO0IABA7Rjx45mc4LBoILBYCtWBQAAAABoCceXi7nlllu0aNGisPjixYtVVFTkRk3NCoVC2r59u7p16xbTnwMAAAAAaD2OB9Pnn39e5513Xlg8Ly9Pzz33nCtFHXP77bdr3bp1Ki0t1fvvv6+f//znqqmp0fjx4139OQAAAAAAcxwfyrt//36lpaWFxVNTU1VZWelKUcfs2rVL1157rSorK9WlSxede+65eu+995STk+PqzwEAAAAAmON4MO3Vq5deffVVFRYWNom/8sorrl/b9Nlnn3V1PXynT58+tnM/+eQT27n9+/ePphzAE84555yYrX306FHbuYFAwHbu1KlToynHdeeee67t3NLS0hhWAnjLv/zLv9jOTU1NjWElgHdkZGTEbO3t27fHbO1E4HgwnTJligoLC7Vv3z6NHDlSkrR27VrNnz9fCxcudLs+AAAAAIDHOR5Mb7rpJoVCId177726++67JUm5ubl65JFHNG7cONcLBAAAAAB4W1SXi5k4caImTpyoffv2qUOHDjrxxBPdrgsAAAAA4BMtuo5ply5d3KoDAAAAAOBTti4Xc9ZZZ+nAgQO2Fz3//PO1e/fuqIsCAAAAAPiHrT2mW7Zs0YcffqhOnTrZWnTLli0KhUItKgwAAAAA4A+2D+W96KKLZFmWrVwnlysAAAAAAPibrcE0muvGZWVlOX4OAAAAAMB/bA2mOTk5sa4DAAAAAOBTtk5+BAAAAABArLTocjFITJ999pnt3KSkJNu5DQ0NjupwcoKs5ORkR2sDrW3jxo22c+1+Xx9AfNi7d6+j/BkzZtjOfeKJJ2znOvk3WZLq6+tt5zq5+gLgNe+++67t3L///e+2c+vq6qIpx7fYYwoAAAAAMIrBFAAAAABglOPBtGfPntq/f39YvKqqSj179nSlKAAAAACAfzgeTL/88suI31kIhULavXu3K0UBAAAAAPzD9smPVq9e3fjn1157TWlpaY336+vrtXbtWuXm5rpaHAAAAADA+2wPpqNHj5YkBQIBjR8/vslj7dq1U25urubPn+9qcQAAAAAA77M9mB67FEiPHj20YcMGde7cOWZFAQAAAAD8w/F1TEtLS2NRBwAAAADApxwPpiUlJT/6+O9///uoiwEAAAAA+I/jwXTlypVN7h85ckSlpaVq27atTjvtNAZTAAAAAIAjjgfTzZs3h8Vqamp0ww036Morr3SlKMSPSJcGas7//u//Olo7GAzazrUsy9HagBvWrVtnOzc5OTmGlXjb3/72N9MlII45ObHi0KFDY1LDnXfe6Sj/sccei0muU4FAwHbu96+2APhNXl5eTNZt165dTNb1KsfXMY0kNTVVJSUlmjFjhhvLAQAAAAB8xJXBVJKqqqpUXV3t1nIAAAAAAJ9wfCjvokWLmty3LEvl5eV66qmndOmll7pWGAAAAADAHxwPpg8++GCT+23atFGXLl00fvx4TZs2zbXCAAAAAAD+wHVMAQAAAABGteg7pmVlZdq1a5dbtQAAAAAAfMjxYHr06FHNmDFDaWlpys3NVU5OjtLS0nTXXXfpyJEjsagRAAAAAOBhjg/lLSws1MqVKzVv3jwNGzZMkvTuu++quLhYlZWVevTRR10vEgAAAADgXY4H02eeeUbPPvusCgoKGmNnnHGGunfvrmuuuYbBFAAAAADgiONDedu3b6/c3NyweG5urpKTk92oCQAAAADgI44H08mTJ+vuu+9WKBRqjIVCId17770qLCx0tTgAAAAAgPc5PpR38+bNWrt2rbKysjRw4EBJ0ocffqi6ujpddNFFGjNmTGPuCy+84F6lMKKystJ27l133RXDSoD4Nm7cONMlOLZv3z5H+V27drWda1mW03KAiKZMmRKTXADe1a5du5it3dDQELO1/c7xYHrSSSfpqquuahLLzs52rSAAAAAAgL84HkyXLl0aizoAAAAAAD7l+DumI0eOVFVVVVi8pqZGI0eOdKMmAAAAAICPOB5M33rrLdXV1YXFDx8+rHfeeceVogAAAAAA/mH7UN6PPvqo8c/btm1TRUVF4/36+nq9+uqrOvXUU92tDgAAAADgebYH00GDBikQCCgQCEQ8ZLdDhw566KGHXC0OAAAAAOB9tgfT0tJSWZalnj176oMPPlCXLl0aH0tOTlbXrl2VlJQUkyIBAAAAAN5lezDNycmRxLV7AAAAAADucny5mOXLl//o44l4kXkAAAAAgDmOB9Nbb721yf0jR47om2++UXJysjp27MhgCgAAAABwxPFgeuDAgbDYjh07NHHiRE2dOtWVouDMkSNHHOWffPLJtnMPHTrktBzb3n///ZitDbS2P/7xj7ZzZ8+e7WjtrVu32s4tKCiwnRsIBBzVsXPnTkf5AACYcPTo0Zit7fTfTtjn+DqmkfTu3Vtz584N25sKAAAAAMDxuDKYSlJSUpL27Nnj6Dlvv/22Lr/8cmVmZioQCGjVqlVNHrcsS8XFxcrMzFSHDh00YsQIR3sOAAAAAADxz/GhvKtXr25y37IslZeXa/HixTrvvPMcrXXo0CENHDhQN954o6666qqwx+fNm6cFCxZo2bJl6tOnj+655x6NGjVKn332mVJSUpyWDgAAAACIQ44H09GjRze5HwgE1KVLF40cOVLz5893tFZBQUGz34eyLEsLFy7U9OnTNWbMGEnSk08+qfT0dD399NO6+eabIz4vFAopFAo13q+pqXFUEwAAAACgdTk+lLehoaHJrb6+XhUVFXr66afVrVs31worLS1VRUWF8vPzG2PBYFDDhw/X+vXrm33enDlzlJaW1njLzs52rSYAAAAAgPui/o5pZWWl9u/f72YtTVRUVEiS0tPTm8TT09MbH4tk2rRpqq6ubryVlZXFrEYAAAAAQMs5Gkyrqqo0efJkde7cWenp6eratas6d+6swsJCVVVVxaTAH56S2bKsHz1NczAYVGpqapMbAAAAACB+2f6O6ddff61hw4Zp9+7duv7663X66afLsixt375dy5Yt09q1a7V+/XpH18j8MRkZGZK+23P6/UOE9+7dG7YXFQAAAACQuGwPpiUlJUpOTtYXX3wRNhiWlJQoPz9fJSUlevDBB10prEePHsrIyNCaNWt05plnSpLq6uq0bt063Xfffa78DAAAAACAebYP5V21apUeeOCBiHsrMzIyNG/ePK1cudLRDz948KC2bNmiLVu2SPruhEdbtmzRzp07FQgEVFRUpNmzZ2vlypX65JNPdMMNN6hjx4667rrrHP0cAAAAAED8sr3HtLy8XP369Wv28f79+//oSYki2bhxo37yk5803p8yZYokafz48Vq2bJnuuOMOffvtt5o0aZIOHDigoUOH6vXXX0/Ya5jW19fbzj3ppJNs5x48eDCKauz5sTMg/9CwYcNiVgdgwrnnnhuTdbt27RqTdSXpl7/8pe3cJ554ImZ1AADgph07dsRsbcuyYrY27LM9mHbu3FlffvmlsrKyIj5eWlqqU045xdEPHzFixI++EQKBgIqLi1VcXOxoXQAAAABA4rB9KO+ll16q6dOnq66uLuyxUCikGTNm6NJLL3W1OAAAAACA99neYzpr1iydffbZ6t27tyZPnqy+fftKkrZt26YlS5YoFArpqaeeilmhAAAAAABvsj2YZmVl6d1339WkSZM0bdq0xkNwA4GARo0apcWLFys7OztmhQIAAAAAvMn2YCp9dwmXV155RQcOHGj8AnKvXr3UqVOnmBQHAAAAAPA+R4PpMSeffLKGDBnidi0AAAAAAB+yffIjAAAAAABigcEUAAAAAGAUgykAAAAAwCgGUwAAAACAUVGd/Aj/MGXKFNu5Dz74oO3ck08+2Xbub3/7W9u5kjRnzhxH+YBfBYNB27nHLqEFAADcl5uba7oExBh7TAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFEMpgAA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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": 9,
"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": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"30/30 - 0s - loss: 2.5894 - accuracy: 0.1667 - val_loss: 1.7940 - val_accuracy: 0.3667 - 287ms/epoch - 10ms/step\n",
"Epoch 2/30\n",
"30/30 - 0s - loss: 1.2938 - accuracy: 0.6500 - val_loss: 1.0923 - val_accuracy: 0.7333 - 34ms/epoch - 1ms/step\n",
"Epoch 3/30\n",
"30/30 - 0s - loss: 0.8001 - accuracy: 0.8583 - val_loss: 1.1144 - val_accuracy: 0.6333 - 41ms/epoch - 1ms/step\n",
"Epoch 4/30\n",
"30/30 - 0s - loss: 0.6001 - accuracy: 0.8917 - val_loss: 0.9034 - val_accuracy: 0.7000 - 42ms/epoch - 1ms/step\n",
"Epoch 5/30\n",
"30/30 - 0s - loss: 0.4429 - accuracy: 0.9500 - val_loss: 0.7523 - val_accuracy: 0.8333 - 33ms/epoch - 1ms/step\n",
"Epoch 6/30\n",
"30/30 - 0s - loss: 0.3364 - accuracy: 0.9500 - val_loss: 0.7607 - val_accuracy: 0.7333 - 30ms/epoch - 1ms/step\n",
"Epoch 7/30\n",
"30/30 - 0s - loss: 0.2863 - accuracy: 0.9917 - val_loss: 0.8407 - val_accuracy: 0.7000 - 29ms/epoch - 958us/step\n",
"Epoch 8/30\n",
"30/30 - 0s - loss: 0.2273 - accuracy: 0.9750 - val_loss: 0.6446 - val_accuracy: 0.8000 - 36ms/epoch - 1ms/step\n",
"Epoch 9/30\n",
"30/30 - 0s - loss: 0.1888 - accuracy: 1.0000 - val_loss: 0.6699 - val_accuracy: 0.8000 - 36ms/epoch - 1ms/step\n",
"Epoch 10/30\n",
"30/30 - 0s - loss: 0.1452 - accuracy: 1.0000 - val_loss: 0.6482 - val_accuracy: 0.7667 - 35ms/epoch - 1ms/step\n",
"Epoch 11/30\n",
"30/30 - 0s - loss: 0.1359 - accuracy: 1.0000 - val_loss: 0.6472 - val_accuracy: 0.8333 - 38ms/epoch - 1ms/step\n",
"Epoch 12/30\n",
"30/30 - 0s - loss: 0.1166 - accuracy: 1.0000 - val_loss: 0.5889 - val_accuracy: 0.8667 - 34ms/epoch - 1ms/step\n",
"Epoch 13/30\n",
"30/30 - 0s - loss: 0.0979 - accuracy: 1.0000 - val_loss: 0.6223 - val_accuracy: 0.8333 - 33ms/epoch - 1ms/step\n",
"Epoch 14/30\n",
"30/30 - 0s - loss: 0.0880 - accuracy: 1.0000 - val_loss: 0.5853 - val_accuracy: 0.8333 - 32ms/epoch - 1ms/step\n",
"Epoch 15/30\n",
"30/30 - 0s - loss: 0.0759 - accuracy: 1.0000 - val_loss: 0.5859 - val_accuracy: 0.8667 - 37ms/epoch - 1ms/step\n",
"Epoch 16/30\n",
"30/30 - 0s - loss: 0.0692 - accuracy: 1.0000 - val_loss: 0.5701 - val_accuracy: 0.8667 - 40ms/epoch - 1ms/step\n",
"Epoch 17/30\n",
"30/30 - 0s - loss: 0.0632 - accuracy: 1.0000 - val_loss: 0.5871 - val_accuracy: 0.8667 - 29ms/epoch - 974us/step\n",
"Epoch 18/30\n",
"30/30 - 0s - loss: 0.0588 - accuracy: 1.0000 - val_loss: 0.5865 - val_accuracy: 0.8667 - 33ms/epoch - 1ms/step\n",
"Epoch 19/30\n",
"30/30 - 0s - loss: 0.0534 - accuracy: 1.0000 - val_loss: 0.5786 - val_accuracy: 0.8667 - 36ms/epoch - 1ms/step\n",
"Epoch 20/30\n",
"30/30 - 0s - loss: 0.0466 - accuracy: 1.0000 - val_loss: 0.5446 - val_accuracy: 0.8667 - 34ms/epoch - 1ms/step\n",
"Epoch 21/30\n",
"30/30 - 0s - loss: 0.0431 - accuracy: 1.0000 - val_loss: 0.5908 - val_accuracy: 0.8333 - 33ms/epoch - 1ms/step\n",
"Epoch 22/30\n",
"30/30 - 0s - loss: 0.0404 - accuracy: 1.0000 - val_loss: 0.5508 - val_accuracy: 0.8667 - 31ms/epoch - 1ms/step\n",
"Epoch 23/30\n",
"30/30 - 0s - loss: 0.0387 - accuracy: 1.0000 - val_loss: 0.5870 - val_accuracy: 0.8667 - 37ms/epoch - 1ms/step\n",
"Epoch 24/30\n",
"30/30 - 0s - loss: 0.0352 - accuracy: 1.0000 - val_loss: 0.5644 - val_accuracy: 0.8667 - 28ms/epoch - 947us/step\n",
"Epoch 25/30\n",
"30/30 - 0s - loss: 0.0332 - accuracy: 1.0000 - val_loss: 0.5703 - val_accuracy: 0.8667 - 43ms/epoch - 1ms/step\n",
"Epoch 26/30\n",
"30/30 - 0s - loss: 0.0298 - accuracy: 1.0000 - val_loss: 0.5657 - val_accuracy: 0.8667 - 32ms/epoch - 1ms/step\n",
"Epoch 27/30\n",
"30/30 - 0s - loss: 0.0293 - accuracy: 1.0000 - val_loss: 0.5601 - val_accuracy: 0.8667 - 38ms/epoch - 1ms/step\n",
"Epoch 28/30\n",
"30/30 - 0s - loss: 0.0266 - accuracy: 1.0000 - val_loss: 0.5534 - val_accuracy: 0.8667 - 39ms/epoch - 1ms/step\n",
"Epoch 29/30\n",
"30/30 - 0s - loss: 0.0257 - accuracy: 1.0000 - val_loss: 0.5642 - val_accuracy: 0.8667 - 35ms/epoch - 1ms/step\n",
"Epoch 30/30\n",
"30/30 - 0s - loss: 0.0245 - accuracy: 1.0000 - val_loss: 0.5518 - val_accuracy: 0.8333 - 35ms/epoch - 1ms/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": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"30/30 - 0s - loss: 2.0532 - accuracy: 0.3333 - val_loss: 1.7685 - val_accuracy: 0.6000 - 226ms/epoch - 8ms/step\n",
"Epoch 2/30\n",
"30/30 - 0s - loss: 1.4447 - accuracy: 0.7000 - val_loss: 1.5036 - val_accuracy: 0.6333 - 31ms/epoch - 1ms/step\n",
"Epoch 3/30\n",
"30/30 - 0s - loss: 1.0936 - accuracy: 0.8250 - val_loss: 1.3194 - val_accuracy: 0.7333 - 33ms/epoch - 1ms/step\n",
"Epoch 4/30\n",
"30/30 - 0s - loss: 0.8408 - accuracy: 0.9000 - val_loss: 1.1975 - val_accuracy: 0.7000 - 36ms/epoch - 1ms/step\n",
"Epoch 5/30\n",
"30/30 - 0s - loss: 0.6841 - accuracy: 0.9417 - val_loss: 1.1064 - val_accuracy: 0.7667 - 31ms/epoch - 1ms/step\n",
"Epoch 6/30\n",
"30/30 - 0s - loss: 0.5592 - accuracy: 0.9500 - val_loss: 1.0445 - val_accuracy: 0.7667 - 34ms/epoch - 1ms/step\n",
"Epoch 7/30\n",
"30/30 - 0s - loss: 0.4735 - accuracy: 0.9667 - val_loss: 0.9829 - val_accuracy: 0.8000 - 30ms/epoch - 990us/step\n",
"Epoch 8/30\n",
"30/30 - 0s - loss: 0.3998 - accuracy: 0.9667 - val_loss: 0.9613 - val_accuracy: 0.7667 - 30ms/epoch - 995us/step\n",
"Epoch 9/30\n",
"30/30 - 0s - loss: 0.3446 - accuracy: 0.9750 - val_loss: 0.9228 - val_accuracy: 0.8000 - 28ms/epoch - 950us/step\n",
"Epoch 10/30\n",
"30/30 - 0s - loss: 0.3028 - accuracy: 0.9750 - val_loss: 0.9023 - val_accuracy: 0.8333 - 31ms/epoch - 1ms/step\n",
"Epoch 11/30\n",
"30/30 - 0s - loss: 0.2673 - accuracy: 0.9917 - val_loss: 0.8837 - val_accuracy: 0.8333 - 34ms/epoch - 1ms/step\n",
"Epoch 12/30\n",
"30/30 - 0s - loss: 0.2379 - accuracy: 0.9917 - val_loss: 0.8903 - val_accuracy: 0.8333 - 43ms/epoch - 1ms/step\n",
"Epoch 13/30\n",
"30/30 - 0s - loss: 0.2110 - accuracy: 1.0000 - val_loss: 0.8729 - val_accuracy: 0.8333 - 37ms/epoch - 1ms/step\n",
"Epoch 14/30\n",
"30/30 - 0s - loss: 0.1895 - accuracy: 1.0000 - val_loss: 0.8628 - val_accuracy: 0.8333 - 34ms/epoch - 1ms/step\n",
"Epoch 15/30\n",
"30/30 - 0s - loss: 0.1714 - accuracy: 1.0000 - val_loss: 0.8596 - val_accuracy: 0.8333 - 28ms/epoch - 946us/step\n",
"Epoch 16/30\n",
"30/30 - 0s - loss: 0.1559 - accuracy: 1.0000 - val_loss: 0.8526 - val_accuracy: 0.8333 - 34ms/epoch - 1ms/step\n",
"Epoch 17/30\n",
"30/30 - 0s - loss: 0.1423 - accuracy: 1.0000 - val_loss: 0.8493 - val_accuracy: 0.8333 - 28ms/epoch - 921us/step\n",
"Epoch 18/30\n",
"30/30 - 0s - loss: 0.1317 - accuracy: 1.0000 - val_loss: 0.8549 - val_accuracy: 0.8333 - 41ms/epoch - 1ms/step\n",
"Epoch 19/30\n",
"30/30 - 0s - loss: 0.1199 - accuracy: 1.0000 - val_loss: 0.8441 - val_accuracy: 0.8333 - 32ms/epoch - 1ms/step\n",
"Epoch 20/30\n",
"30/30 - 0s - loss: 0.1108 - accuracy: 1.0000 - val_loss: 0.8417 - val_accuracy: 0.8333 - 36ms/epoch - 1ms/step\n",
"Epoch 21/30\n",
"30/30 - 0s - loss: 0.1028 - accuracy: 1.0000 - val_loss: 0.8432 - val_accuracy: 0.8333 - 36ms/epoch - 1ms/step\n",
"Epoch 22/30\n",
"30/30 - 0s - loss: 0.0957 - accuracy: 1.0000 - val_loss: 0.8431 - val_accuracy: 0.8333 - 32ms/epoch - 1ms/step\n",
"Epoch 23/30\n",
"30/30 - 0s - loss: 0.0896 - accuracy: 1.0000 - val_loss: 0.8489 - val_accuracy: 0.8333 - 32ms/epoch - 1ms/step\n",
"Epoch 24/30\n",
"30/30 - 0s - loss: 0.0829 - accuracy: 1.0000 - val_loss: 0.8428 - val_accuracy: 0.8333 - 33ms/epoch - 1ms/step\n",
"Epoch 25/30\n",
"30/30 - 0s - loss: 0.0781 - accuracy: 1.0000 - val_loss: 0.8420 - val_accuracy: 0.8333 - 31ms/epoch - 1ms/step\n",
"Epoch 26/30\n",
"30/30 - 0s - loss: 0.0728 - accuracy: 1.0000 - val_loss: 0.8444 - val_accuracy: 0.8333 - 36ms/epoch - 1ms/step\n",
"Epoch 27/30\n",
"30/30 - 0s - loss: 0.0692 - accuracy: 1.0000 - val_loss: 0.8406 - val_accuracy: 0.8333 - 36ms/epoch - 1ms/step\n",
"Epoch 28/30\n",
"30/30 - 0s - loss: 0.0646 - accuracy: 1.0000 - val_loss: 0.8426 - val_accuracy: 0.8333 - 32ms/epoch - 1ms/step\n",
"Epoch 29/30\n",
"30/30 - 0s - loss: 0.0612 - accuracy: 1.0000 - val_loss: 0.8467 - val_accuracy: 0.8333 - 33ms/epoch - 1ms/step\n",
"Epoch 30/30\n",
"30/30 - 0s - loss: 0.0580 - accuracy: 1.0000 - val_loss: 0.8447 - val_accuracy: 0.8333 - 33ms/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": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_25904/925943430.py: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"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAN5CAYAAAAVZg9XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAADdFklEQVR4nOzdeVxUVePH8c8MyCICYm64o7a55hZoZuYG7vzMFq0slxatfDLN9MlSSzMtW5+sLJPKytLU3NJybXFFM8lyR1PcE0RlZ+b3x8ToyHZhBhj0+369egl37nLu8QZfzzn3HJPVarUiIiIiInkyl3QBREREREoDhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQPcOjT9/PPPtGnThhEjRuS7b1RUFOHh4bRo0YJ+/fqxc+fOYiihiIiIXCvcNjR99NFHTJo0idq1a+e776pVq3jvvfeYNm0av/76Kx07dmTo0KFcvHixGEoqIiIi1wK3DU3e3t7Mnz/fUGiaN28effr0oWnTpvj4+DB48GDMZjPr1q0r+oKKiIjINcFtQ9OAAQPw9/c3tO+uXbto0KCB/XuTycRNN91ETExMURVPRERErjFuG5oKIiEhgcDAQIdtgYGBxMfHGz6H1Wp1dbFERETkKuJZ0gUoKlarFZPJZHj/s2cvYjYb378gPDzMBAT4kpiYTGampUiucTVT/TlH9ec81aFzVH/OUf05L786DAryM3SeqyI0BQUFZWtVOnfuHNdff73hc1gsViyWom1tysy0kJGhB76wVH/OUf05T3XoHNWfc1R/znO2Dq+K7rlGjRqxa9cu+/eZmZn8+eefNG3atARLJSIiIleTUhuaIiIiiI6OBqBfv34sWrSIHTt2kJyczPvvv4+Xlxft27cv2UKKiIjIVcNtu+caN24MQEZGBmCbiwmwvxEXGxtLUlISAO3ateOZZ55hzJgxnD59moYNGzJz5kx8fHxKoOQiIiJyNXLb0JTfdAF79uxx+L5///7079+/KIskIiIi17BS2z0nIiIiUpwUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaCpGVits3OjBwoWebNzogTuuEdyhQxu2bt2U42d9+/Zk0aL5xVwi97Z9ezRt27Yk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9LRSqZJCk4iISGng8pamr7/+Otu2lJQU1q5dS+3atV19uVIpq6WpWjUrHh4lXBgRERExxOWh6cMPP8y2zdvbm9q1a9vncLrWHTumN+dERERKG5eHpjVr1rj6lFedrIHg1aqpa05ERKS0cPmYpvT0dN58802io6Pt2xYuXMj06dPzncPpWpE1pqlGDbU0iYiIlBYuD00vv/wyGzZsoHz58vZtN9xwA1u3bmXKlCmuvlypc/EixMdndc+ppUlERKS0cHlo+vHHH/noo4+oX7++fVvDhg15//33WblypasvV+ocO3apyjWmSUREpPRweWjKyMjIcXt6erq654CjRy/N0aSWJhERkdLD5QPBw8PDeeKJJxg8eDDVqlXDarUSGxvLxx9/TI8ePVx9uVJHLU0iIiKlk8tD07hx45g+fTpjxowhMTERgICAAPr06cPIkSNdfblSJ6ulqVw5KwEBJVwYERERMczlocnHx4fnn3+e559/nvj4eEwmk8Og8GtdVktTjRoW8ljXWERERNyMy8c0paWl2accCAoKonz58ppy4DJZLU2ao0lERKR0cXlomjRpkqYcyEPWHE0azyQiIlK6aMqBYmS1XlpCpUYNtTSJiIiUJppyoBj98w+kpGR1z6mlSUREpDQp1ikHunfv7urLlSpZXXOgliYREZHSplimHAgMDKRPnz488sgjrr5cqXL5xJZqaRIRESldXN49lzXlwJYtW9i4cSObNm3ijTfe4OTJk9x5552uvlyp4hia1NIkIiJSmri8pSlLXFwcCxYsYOHChZw9e5aOHTvy/vvvF9XlSoW4OFtoqlzZgrd3CRdGRERECsSloSktLY2VK1cyf/58oqOjadKkCWfOnGHhwoXUq1fPlZcqlY4ezZpuQK1MIiIipY3LQtOECRNYvnw5QUFB9OzZk0mTJlGzZk1atWqFr6+vqy5TqmV1z2mOJhERkdLHZaFp7ty5dOvWjf/85z/Url3bVae9qmR1z6mlSUREpPRx2UDwjz/+GIvFQs+ePbn33nv58ssvSUhIwKQF1gBIT4cTJ9TSJCIiUlq5LDS1bduWt956i/Xr19O1a1e++uor2rZty8WLF9m0aVOuk15eK44dA6tVLU0iIiKllcunHAgKCuLhhx9myZIlzJkzh8jISCZNmkS7du149dVXXX25UuPvvy99rZYmERGR0qfIphwA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7uPjQ1pamrO3IyJuTN1zInJVs1gsDt9brVZMJhOA/c/LPwNIT0/HZDJlO/ZKVx4vIlc3hSYRuar9/fff9q/PnTvHhQsXqFq1KjVr1iQhIYF//vnH/nlsbCze3t5UqVKFmjVrZutu+/TTTzl8+HCxlV1E3ItCk4hc1dasWcPOnTtJSUnhgw8+4LrrrqNx48bceOON1KtXj9dff52kpCROnjzJBx98QPfu3SlTpgw9evTg+PHjfPPNN6SlpbFs2TLefvttypUrV9K3JCIlRGOaRKRUy2kgOGCf2LJv3768+eabbNu2japVq/Lee+/h4eEBwIwZM3j55Zdp3749vr6+dOrUiVGjRgFQsWJFZs2axfjx45k8eTIhISHMmDGD6667jv379xffDYqI2zBZL38VRETkKtKhQwceeeQRTX4pIi6h7jkRERERAxSaRERERAxQ95yIiIiIAWppEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEgBINTXFxcTzxxBOEhoYSFhbG6NGjSUxMzLbft99+y0033UTjxo0d/jtz5gwAqampvPDCC7Rr146wsDCeeuopzp49W9y3IyIiIlexEg1Nw4YNIyAggDVr1rBkyRIOHjzI1KlTs+13/vx52rRpQ0xMjMN/FStWBGD69On8+eeffP3116xcuRKTycTYsWOL+3ZERETkKlZioSkxMZEGDRowcuRI/Pz8qFSpEpGRkURHR2fb99y5cwQGBuZ4nszMTBYsWMCwYcMIDg4mMDCQp59+mvXr13Py5Mmivg0RERG5RpRYaAoICGDKlCn21iKAY8eOUbly5Wz7JiYmcvjwYe6++25atmzJXXfdxa+//grA4cOHOX/+PA0bNrTvX7duXXx8fNi1a1fR34iIiIhcE9xmIHhMTAxffPEFQ4cOzfZZ+fLlqVy5MlOmTOGnn36iR48ePPbYYxw4cICEhATAFsIuFxAQQHx8vOHrW61Wp8ovIiIiVzfPki4AwLZt2xg6dCgjR46kTZs22T5/6qmnHL4fOHAgy5YtY8mSJbRr1y7Hc1qtVkwmk+EynD17EbPZ+P4F4eFhJiDAl8TEZDIzLUVyjauZ6s85qj/n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uYcnn3yUhx66j1q16vDEE0/z559/MHHiOPt+ERHdSU9Pp337TvZtgYHlefXV6fz00zq6du3AU089xm23teO++x5weTmLk8lqLco5XEuP06fPF9m5PT3NBAX5ER9/0amm6WuV6s85qj/nqQ5zZrXCpk0enDxpompVK6GhmTm2MF2t9Td+/Fi8vLx5/vkJRXodd6+/WbM+5Nixo7zwwsslXZRc5VeHlSr5GzuPqwsmIiLXBpMJWrfWLNXXsj/+iGHevLn8738zS7ooxUKhSURERArsmWee4sCBvTz55NPUr399SRenWCg0iYiIFMLEiVNKuggl6o033i3pIhQ7DQQXERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhERuWp16NCGrVs35fhZ3749WbRofjGX6NpytdWxQpOIiBSK1Wpl47FfWbhvPhuP/UpRrso1aNADzJjxtsO2ffv20rZtS9avX+uwfcGCefTs2QWr1cqaNRto1SoMgD17drN16+YiK+Pl4uKOsnbtqmK5VkFt27aV3bv/LOlilEoKTSIiUmDLDi4h9Itb6L2oK4/9OIjei7oS+sUtLDu4pEiuFxraOlvgiY7egq9v2Ry333prKKYrFsJbtuw7oqO3FEn5rrR+/VrWrVtdLNcqqK+//kKhqZAUmkREpECWHVzC4JUPcigx1mH7ocRYBq98sEiCU1hYG/bv30d8/Fn7tq1bNxMe3tUhCFksFn77bRuhoW0AaNu2JZs2beDNN6excOF85s6dw733Rtr3T0pKYuzYUXTq1JZ+/fqwfXu0/bODBw8wfPjjRETcSd++PXn99SmkpqYCtkVqH330YYcyZnVFffnl53zwwbusXbuaDh3akJmZfX2+ffv28vDD/enQ4TYeffRhlixZRNu2LQHYvj2atm1b2q8FMGbMGMaNG2P//uuvv+Cee3rTufPt3H9/X37+eZ39s8mTJ/Dmm9N499036Nq1Az16dGLOnCgAnntuBBs2/MKbb77Gf/4zlOPHj9G2bUsOHz5kP/7ye9u+PZouXe7gl1/W07dvTzp3bsfMmTPYvftPHnqoH507385///ssGRkZuf7dZUlNTWXq1En07h1Oly538OSTjxIbexCAKVNe4vnnn3XY//vvl9K7dwSZmZkkJp7jpZdeoHfvcDp3bse4caNJTDwH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VH/Oy68O8wqrlyvxlqa1a9cyatQoXnjhBSIjI3PdLyUlhWHDhpGcnMwXX3yR52yv5cqVo3z58pw8edJwOSwWKxZL0ebHzEzLVd8fXZRUf85R/TlPdegc1Z9zVH/Oc7YOS7SDdPv27YwePZq33347z8BktVoZMWIEnp6eREVFOQSmCxcuMGnSJE6duvTK4tmzZzl79qzDmwwiIiIiziix0JSRkcG4ceMYNWoUbdu2zfZ5REQE0dG2twiWLFnC/v37efvtt+0TfWUpV64c27ZtY9KkSSQkJHDu3Dlefvllbr75Zpo1a1Ys9yIiIiJXvxILTTt27ODAgQNMmjTJYVLKxo0bExcXR2xsLElJSQB8++23xMXFceuttzrsN27cOADee+89MjMzCQ8Pp2vXrmRmZvLhhx9iNl/dbxqIiIhI8XGLgeDuQPM0uS/Vn3NUf85THTpH9ecc1Z/zXDVPk5piRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERA0o0NMXFxfHEE08QGhpKWFgYo0ePJjExMcd9o6KiCA8Pp0WLFvTr14+dO3faP0tNTeWFF16gXbt2hIWF8dRTT3H27Nniug0RERG5BpRoaBo2bBgBAQGsWbOGJUuWcPDgQaZOnZptv1WrVvHee+8xbdo0fv31Vzp27MjQoUO5ePEiANOnT+fPP//k66+/ZuXKlZhMJsaOHVvctyMiIiJXsRILTYmJiTRo0ICRI0fi5+dHpUqViIyMJDo6Otu+8+bNo0+fPjRt2hQfHx8GDx6M2Wxm3bp1ZGZmsmDBAoYNG0ZwcDCBgYE8/fTTrF+/npMnT5bAnYmIiMjVyLOkLhwQEMCUKVMcth07dozKlStn23fXrl1069bN/r3JZOKmm24iJiaG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8juQSRMRERGRBOyeIyIiIpKASRMRERGRBEyaiIiIiCRg0kREREQkAZMmIiIiIgmYNBERERFJwKSJiIiISAImTUREREQSMGkiImqkvXv34uabb0ZVVZWzm0JEDqRydgOIiKzVv39/5Obm1izKea23334bgwYNckKriKipYtJERG5t+vTpXAibiByC3XNE1GT1798fS5cuxdixY9G1a1fce++92LdvX83rFy9exIQJExAfH49+/frhhRdeQGFhYc3rO3fuxODBg9GtWzcMGTIEGRkZZufft28fEhMT0b17d4wfPx4lJSWOemtE5ARMmoioSVuyZAmee+45/PHHH0hMTMSkSZOg0+kAABMnTkRAQAC2bduGlStX4uzZs5gxYwYAIDc3F5MmTcKECROwb98+PPnkk5g4cSI0Gk3NudPT0/HDDz9g3bp1OHjwIFauXOmU90hEjsHuOSJya2lpaXjrrbfMtvn6+mLv3r0AjNWmW2+9FQAwbtw4LFq0CAcPHoSvry+ysrLwxRdfwN/fH/7+/hg3bhwmT54Mg8GAjRs3ol27dkhKSgIApKSkwMvLC6Io1lwnNTUVgYGBCAwMxK233gq1Wu2YN01ETsGkiYjcmqUxTdHR0TV/DgwMREBAAPLy8qBSqRAUFIRWrVrVvB4TEwOtVov8/HxkZ2cjMjLS7FwDBw40+/na1729vVFdXS337RCRC2P3HBE1aQaDwexnURQhCAIA1Hy/9jUA0Gq1EASh1rHXu/54ImramDQRUZOWnZ1d8+eioiKUlpYiPDwcUVFRKCwsxOXLl2teV6vV8PLyQlhYGKKiomp1t3311Vc4c+aMw9pORK6FSRMRNWnbt2/HoUOHUFlZifnz56NFixaIi4vDzTffjBtuuAHvvfceysvLkZubi/nz5yM5ORkeHh4YNGgQLly4gP/+97+orq5Geno6Pv74Y/j7+zv7LRGRk3BMExG5tboGggOomdjywQcfxIcffoj9+/cjPDwc8+bNg1KpBAB89tlnmD17Nu666y74+Pjg3nvvxbRp0wAALVu2xKJFizBjxgy8+eabiI6OxmeffYYWLVrgxIkTjnuDROQyBPHaR0GIiJqQ/v374+mnn+bkl0RkE+yeIyIiIpKASRMRERGRBOyeIyIiIpKAlSYiIiIiCZg0EREREUnApImIiIhIAiZNRERERBIwaSIiIiKSgEkTERERkQRMmoiIiIgkYNJEREREJMH/B8qw95PS5FhTAAAAAElFTkSuQmCC\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\")\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"
]
}
],
"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
}