539 lines (538 with data), 141.5 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": [],
"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 = 80 # 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], 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",
"80/80 \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": "iVBORw0KGgoAAAANSUhEUgAAA6YAAAPdCAYAAACZZ3XpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACG/klEQVR4nOzde3xU9bX///cQyAiaRBFIiAkJYCgeQFBQJKhQlEha9SD2HG8VvLVyq6ZUtBQpISogClJEVGyPgKcK36OC9NRbShW0eAEKXgA5aKMESIQguYAygWT//vBH2jgT2XuyJ5+ZPa/n4zGPB7NmzSdrM7MIa/aevX2WZVkCAAAAAMCQVqYLAAAAAADENwZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFGtTRdgx6JFi/TQQw+prKxMvXr10vz583XRRRfZem59fb327t2rpKQk+Xy+CFcKSJZlqaamRunp6WrVis9+nKJn0dLo2eahZ9HS6NnmoWfR0uz2bNQPpitWrFBBQYEWLVqkwYMH68knn1R+fr62bdumLl26nPD5e/fuVWZmZgtUCjRWWlqqjIwM02XEHHoWptCz4aFnYQo9Gx56FqacqGd9lmVZLViPYwMHDtS5556rxx9/vCF21llnaeTIkZo1a9YJn19VVaVTTz01ghUCoVVWViolJcV0GTGHnoUp9Gx46FmYQs+Gh56FKSfq2ag+/qG2tlabNm1SXl5eo3heXp7Wr18f8jmBQEDV1dUNt5qampYoFQjC4THh4e8NpvDeCw9/bzCF9154+HuDKSd670X1YFpRUaG6ujqlpqY2iqempqq8vDzkc2bNmqWUlJSGG4cqAAAAAEB0i+rB9LjvTteWZTU5cU+ZMkVVVVUNt9LS0pYoEQAAAAAQpqg++VGHDh2UkJAQtHd03759QXtRj/P7/fL7/S1RHgAAAADABVG9xzQxMVH9+/dXcXFxo3hxcbFyc3MNVQUAAAAAcFNU7zGVpEmTJunGG2/UgAEDNGjQIC1evFi7du3S2LFjTZcGAAAAAHBB1A+m11xzjQ4cOKCioiKVlZWpd+/eevnll5WVlWW6NAAAAACAC6J+MJWk8ePHa/z48abLAAAAAABEQFR/xxQAAAAA4H0MpgAAAAAAoxhMAQAAAABGMZgCAAAAAIxiMAUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUQymAAAAAACjGEwBAAAAAEYxmAIAAAAAjGptugAAQOT1798/KDZx4sSQuaNHjw4ZX7ZsWVDs0UcfDZn797//3UF1AAAg3rHHFAAAAABgFIMpAAAAAMAoBlMAAAAAgFEMpgAAAAAAozj5URxKSEgIiqWkpDR73aZOpNKuXbuQ8R/84AdBsQkTJoTMffjhh4Ni1113XcjcI0eOhIzPnj07KDZjxoyQuUCs6tevX8h4cXFxUCw5OTlkrmVZIeM33nhjUOzKK68MmXv66ac3USGAaHTJJZcExf74xz+GzB0yZEjI+I4dO1ytCYg39957b1Csqf+rtmoVvH9x6NChIXPXrl3brLpaCntMAQAAAABGMZgCAAAAAIxiMAUAAAAAGMVgCgAAAAAwisEUAAAAAGAUZ+WNUl26dAkZT0xMDIrl5uaGzL3wwgtDxk899dSg2NVXX22/OJfs3r07KLZgwYKQuVdddVVQrKamJmTuBx98EDIeK2ckA+w4//zzQ8ZfeOGFkPFQZ95u6uy7TfVWbW1tUKyps+9ecMEFQbG///3vttcFjrv44ouDYk2971auXBnpcjzrvPPOC4pt2LDBQCWA9910000h4/fcc09QrL6+3va6Tf1ejxXsMQUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwChOfmRYv379Qsb/+te/hoyHOoFJtGvqS9v33ntvUOzQoUMhc//4xz8GxcrKykLmHjx4MGR8x44dTZUIRIV27dqFjJ977rlBsf/+7/8Omdu5c+dm17Fz586Q8Tlz5gTFli9fHjL3b3/7W1AsVM9L0qxZsxxUh3gzdOjQoFhOTk7IXE5+dGKtWoXeJ9G1a9egWFZWVshcn8/nak1AvGmqt0466aQWriS6sMcUAAAAAGAUgykAAAAAwCgGUwAAAACAUQymAAAAAACjGEwBAAAAAEZxVl7Ddu3aFTJ+4MCBkPGWPivve++9FzJeWVkZFPvhD38YMre2tjZk/Jlnngm7LsCLnnzyyZDx6667rkXrCHUWYEk65ZRTgmJr164NmRvqTKpnn312s+pCfBo9enRQ7J133jFQiTc0debun/3sZ0Gxps7+/cknn7haE+BVl156acj4L37xC9trNNVvl19+eVDsyy+/tL1uNGKPKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACM4qy8hn311Vch45MnTw4ZD3UGrs2bN4fMXbBgge06tmzZEjI+fPjwkPHDhw8HxXr16hUy984777RdBxAP+vfvHzL+4x//OGTc5/PZXrups+T+6U9/Coo9/PDDIXP37t0bMh7q35qDBw+GzB02bFhQzMl2AMe1asVn6G76/e9/bzt3586dEawE8JYLL7wwKPb000+HzHVylY2HHnooZPyLL76wvUas4F97AAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMMnryo3Xr1umhhx7Spk2bVFZWppUrV2rkyJENj1uWpRkzZmjx4sU6ePCgBg4cqMcee6zJk+x4yapVq0LG//rXvwbFampqQub27ds3ZPzWW28NijV1EpRQJzlqytatW0PGf/7zn9teA/Cafv36BcWKi4tD5iYnJ4eMW5YVFHvllVdC5l533XUh40OGDAmK3XvvvSFzmzo5yv79+4NiH3zwQcjc+vr6oFhTJ3c699xzQ8b//ve/h4zDm84+++yQ8dTU1BauxNucnHSlqX+rAAQbM2ZMUCw9Pd3RGm+++WZQbNmyZeGWFHOM7jE9fPiw+vbtq4ULF4Z8fM6cOZo3b54WLlyoDRs2KC0tTcOHD29yEAMAAAAAxB6je0zz8/OVn58f8jHLsjR//nxNnTpVo0aNkiQtXbpUqampevbZZ3X77be3ZKkAAAAAgAiJ2u+YlpSUqLy8XHl5eQ0xv9+vIUOGaP369U0+LxAIqLq6utENAAAAABC9onYwLS8vlxT83ZLU1NSGx0KZNWuWUlJSGm6ZmZkRrRMAAAAA0DxRO5ge5/P5Gt23LCso9q+mTJmiqqqqhltpaWmkSwQAAAAANIPR75h+n7S0NEnf7jnt3LlzQ3zfvn3fe4Y+v98vv98f8fpMcXJoclVVle3cn/3sZyHjK1asCBkPdcZNIJ716NEjZHzy5MlBsabOillRUREyXlZWFhRbunRpyNxDhw6FjP/5z3+2FYuktm3bhoz/6le/Chm/4YYbIlkOosyPfvSjkPGm3jc4sVD/X+ratavt5+/Zs8fNcgBP6NChQ8j4LbfcEhRr6v/LlZWVIeP3339/2HV5QdTuMe3atavS0tIanaq8trZWa9euVW5ursHKAAAAAABuMrrH9NChQ/r0008b7peUlGjLli1q3769unTpooKCAs2cOVM5OTnKycnRzJkz1a5dO11//fUGqwYAAAAAuCmsPaZFRUX6+uuvg+LffPONioqKbK+zceNGnXPOOTrnnHMkSZMmTdI555yj3/72t5Kku+++WwUFBRo/frwGDBigPXv26PXXX1dSUlI4ZQMAAAAAolBYg+mMGTNCfo/p66+/1owZM2yvM3ToUFmWFXRbsmSJpG9PfFRYWKiysjIdOXJEa9euVe/evcMpGQAAAAAQpcIaTJs6M+4HH3yg9u3bN7soAAAAAED8cPQd09NOO00+n08+n089evRoNJzW1dXp0KFDGjt2rOtFIjyFhYUh4/379w+KDRkyJGTupZdeGjL++uuvh10XEMuaOuv3ww8/HDIe6kyjNTU1IXNHjx4dMr5x48agmJfOVNqlSxfTJSAK/OAHP7Cdu3Xr1ghW4h2h/l1q6soG//d//xcUa+rfKiAeZGdnh4y/8MILzV770UcfDRl/4403mr12LHM0mM6fP1+WZemWW27RjBkzGl3yIDExUdnZ2Ro0aJDrRQIAAAAAvMvRYDpmzBhJ317KJTc3V23atIlIUQAAAACA+BHW5WK6du0a8oLvx3FYFgAAAADArrAG0+zs7JAnPzqurq4u7IIAAAAAAPElrMF08+bNje4fPXpUmzdv1rx58/TAAw+4Uhia7/DhwyHjP/vZz4Jif//730PmPvXUUyHjob6cHeoELZL02GOPhYxblhUyDkSz49dd/q5QJzlqyr//+7+HjK9duzasmoB4s2HDBtMlRFxycnJQbMSIESFzf/rTn4aM5+Xl2f559913X1CssrLS9vMBr2mq384++2zba6xZsyZk/He/+11YNXldWINp3759g2IDBgxQenq6HnroIY0aNarZhQEAAAAA4kNY1zFtSo8ePeLiU0wAAAAAgHvC2mNaXV3d6L5lWSorK1NhYaFycnJcKQwAAAAAEB/CGkxPPfXUoJMfWZalzMxMLV++3JXCAAAAAADxIazB9LsnvmnVqpU6duyoM888U61bh7UkAAAAACBOhTVFDhkyxO060II+++yzoNhNN90UMvfpp58OGb/xxhttxSTp5JNPDhlftmxZUOz7ro8LRIN58+aFjDd1Ca1QZ9qNh7PvtmoVfAqD+vp6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1+iWlpYW8Z8LAAAAAGg5jg/lveyyy7Rx40Z169YtEvUE6dWrl/7yl7803HfyPU0AAAAAQPSzNZiuXr264c8//vGPNXnyZG3btk19+vRRmzZtGuVeeeWV7hbYujV7SQEAAADAw2wNpiNHjgyKFRUVBcV8Pp/js0+dyM6dO5Weni6/36+BAwdq5syZ37u3NhAIKBAINNyvrq52tR4AAAAAgLtsfce0vr7e1s3toXTgwIFatmyZXnvtNT311FMqLy9Xbm7u955KedasWUpJSWm4ZWZmuloTAAAAAMBdUX2hufz8fF199dXq06ePLr30Uv35z3+WJC1durTJ50yZMkVVVVUNt9LS0pYqFwAAAAAQBseD6R133KEFCxYExRcuXKiCggI3amrSySefrD59+mjnzp1N5vj9fiUnJze6AQAAAACil+PB9IUXXtDgwYOD4rm5uXr++eddKaopgUBA27dvV+fOnSP6cwAAAAAALcfxYHrgwAGlpKQExZOTk1VRUeFKUcfdddddWrt2rUpKSvTee+/pJz/5iaqrqzVmzBhXfw4AAAAAwBzH1zE988wz9eqrr2rixImN4q+88orr1zbdvXu3rrvuOlVUVKhjx4664IIL9O677yorK8vVnxONfD6f7dzly5c7WrtVK/ufR1iW5WhtIF516tTJdu6HH37oaO0ePXrYzvX7/Y7WjhT+7UBTbrvtNkf5w4YNi1Al3rdr1y7buWeccUYEKwGi2zfffGM793/+539s54a6igma5ngwnTRpkiZOnKj9+/c3/LJYs2aN5s6dq/nz57tanNOBCwAAAAAQexwPprfccosCgYAeeOAB3XfffZKk7OxsPf744xo9erTrBQIAAAAAvM3xYCpJ48aN07hx47R//361bdtWp5xyitt1AQAAAADiRFiD6XEdO3Z0qw4AAAAAQJyydRacc889VwcPHrS96IUXXqg9e/aEXRQAAAAAIH7Y2mO6ZcsWffDBB2rfvr2tRbds2aJAINCswgAAAAAA8cH2obyXXHKJ7dP/O7nUCQAAAAAgvtkaTEtKShwvnJGR4fg5AAAAAID4Y2swzcrKinQdAAAAAIA4ZevkRwAAAAAAREqzLheD6OD0O71/+9vfIrL23LlzHdUxadIkR/lAS3NytEiPHj1s5/bp0yeccoC4NGDAgIisW1FRYTv3ueeec7T2+++/bzv3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6j2mkjRp0iTdeOONGjBggAYNGqTFixdr165dGjt2rOnSAAAAAAAuiPrB9JprrtGBAwdUVFSksrIy9e7dWy+//LKysrJMlwYAAAAAcEHUD6aSNH78eI0fP950GQAAAACACIjq75gCAAAAALyPwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMIrBFAAAAABgVGvTBSC61dXV2c6dOXOmo7Vffvll27lJSUm2c4uLi23nWpZlOxeIBfv377ed26lTp4jVQW8BsWX79u22c8844wzbucnJyeGUA8QlJ/+Xnjp1qu3cWPmdzB5TAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFGt7SQtWLDA8cI333yzkpKSHD8PAAAAABBfbA2mBQUFysjIUEJCgq1FS0tLdfnllzOYNoPdv2tJqq+vj2AlkfOnP/3Jdu6pp55qO/f5558PoxogepWUlNjO7datW8TqWLt2re1cn89nO9eyrHDKQZy47777bOdOmzYtgpV4W1FRke3cJ554IoKVAPFr6tSppkswytZgKkkbN25Up06dbOUykAIAAAAA7LL1HdPp06frlFNOsb3ob37zG7Vv3z7sogAAAAAA8cPWHtPp06c7WnTKlClhFQMAAAAAiD+clRcAAAAAYJSjwfSDDz7Q/fffr0WLFqmioqLRY9XV1brllltcLQ4AAAAA4H22B9PXX39d559/vpYvX64HH3xQZ511lt54442Gx7/55hstXbo0IkUCAAAAALzL9mBaWFiou+66Sx9//LE+//xz3X333bryyiv16quvRrI+AAAAAIDH2b5czNatW/XMM89I+vb6dJMnT1ZGRoZ+8pOf6LnnntP5558fsSIBAAAAAN5lezD1+/2qrKxsFLvuuuvUqlUrXXvttZo7d67btQEAAAAA4oDtwbRfv35644031L9//0bxa665RvX19RozZozrxQEAAAAAvM/2YDpu3DitW7cu5GPXXXedJGnx4sXuVAW9/fbbtnN37NjhaO2bb77Zdm59fb3t3O/uUT+R0047zVE+4BXl5eWO8rt162Y7t0ePHrZz/+///s9RHf/2b//mKB9ww+zZs23nTps2LYKVeNvy5ctt5z733HMRrATwjpNOOilia1uWFbG1TbE9mF511VW66qqrmnz8uuuuaxhQAQAAAACwy9F1TAEAAAAAcBuDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARrk2mL700ktatmyZW8sBAAAAAOKEa4PpPffc4+j6mAAAAAAASA6uY3oin3zyiVtLAQAAAADiCN8xBQAAAAAYFdYe08rKSr3//vvat2+f6uvrGz02evRoVwqLd4MGDYpIriRHh1z7fD7buaeddpqjOgAvqampsZ3buXNnR2t36NDBdu6OHTscrR0NLrvsMtu5r732WgQrQTT6+uuvTZcQs44ePWq6BMBz6urqbOcGAgFHa2/fvt1pOZ7ieDD905/+pBtuuEGHDx9WUlJSo8HF5/MxmAIAAAAAHHF8KO+vfvUr3XLLLaqpqVFlZaUOHjzYcPvqq69cLa6wsFA+n6/RLS0tzdWfAQAAAAAwy/Ee0z179uiOO+5Qu3btIlFPkF69eukvf/lLw/2EhIQW+bkAAAAAgJbheDC97LLLtHHjRnXr1i0S9QRp3bo1e0kBAAAAwMNsDaarV69u+POPf/xjTZ48Wdu2bVOfPn3Upk2bRrlXXnmlqwXu3LlT6enp8vv9GjhwoGbOnPm9Q3EgEGj0RePq6mpX6wEAAAAAuMvWYDpy5MigWFFRUVDM5/M5OlPViQwcOFDLli1Tjx499OWXX+r+++9Xbm6utm7dqtNPPz3kc2bNmqUZM2a4VgMAAAAAILJsnfyovr7e1s3NoVSS8vPzdfXVV6tPnz669NJL9ec//1mStHTp0iafM2XKFFVVVTXcSktLXa0JAAAAAOCusK5jasrJJ5+sPn36aOfOnU3m+P1++f3+FqwKAAAAANAcji8Xc8cdd2jBggVB8YULF6qgoMCNmpoUCAS0fft2xxenBwAAAABEL8eD6QsvvKDBgwcHxXNzc/X888+7UtRxd911l9auXauSkhK99957+slPfqLq6mqNGTPG1Z8DAAAAADDH8aG8Bw4cUEpKSlA8OTlZFRUVrhR13O7du3XdddepoqJCHTt21AUXXKB3331XWVlZrv4cAAAAAIA5jgfTM888U6+++qomTpzYKP7KK6+4fm3T5cuXu7oevlVTU2M7t23btrZzFy1a5KiOm2++2VE+EM2Sk5Nt537f9+RDOfPMM52WE1P+7//+z3QJQEx44403HOUPGzbMdu4rr7zitBwgLrVubX986t27t6O1e/bs6bQcT3E8mE6aNEkTJ07U/v37G/7BW7NmjebOnav58+e7XR8AAAAAwOMcD6a33HKLAoGAHnjgAd13332SpOzsbD3++OMaPXq06wUCAAAAALwtrMvFjBs3TuPGjdP+/fvVtm1bnXLKKW7XBQAAAACIE826jmnHjh3dqgMAAAAAEKdsXS7m3HPP1cGDB20veuGFF2rPnj1hFwUAAAAAiB+29phu2bJFH3zwgdq3b29r0S1btigQCDSrMAAAAABAfLB9KO8ll1wiy7Js5fp8vrALAgAAAADEF1uDaUlJieOFMzIyHD8HAAAAABB/bA2mWVlZka4DAAAAABCnbJ38CAAAAACASGnW5WIQm5xcd3b37t22czt06OCojr/+9a+2c5955hlHawNu2LhxY0TWPfPMMyOybqwaOnSo6RLgEZ06dYrIuvv373eU36qV/c/9f/azn9nO/d3vfueojtat7f83b8SIEY7WBrwkUufH+eijjyKyrlexxxQAAAAAYBSDKQAAAADAKMeDabdu3XTgwIGgeGVlpbp16+ZKUQAAAACA+OF4MP38889VV1cXFA8EAtqzZ48rRQEAAAAA4oftb8WvXr264c+vvfaaUlJSGu7X1dVpzZo1ys7OdrU4AAAAAID32R5MR44cKenbs1aNGTOm0WNt2rRRdna25s6d62pxAAAAAADvsz2Y1tfXS5K6du2qDRs2OL40CAAAAAAAoTi+jmlJSUkk6gAAAAAAxCnHg2lRUdH3Pv7b3/427GIAAAAAAPHH8WC6cuXKRvePHj2qkpIStW7dWt27d2cwBQAAAAA44ngw3bx5c1CsurpaN910k6666ipXikL0OP30023nWpblaG2fz2c718kHHjk5OY7qAJpy+PBh27lt27aNYCXR4Te/+Y3t3JNOOsl27tNPPx1OOYgTTn+34J+OHTtmugTAiP3790ds7QsvvDBia8c7x9cxDSU5OVlFRUWaNm2aG8sBAAAAAOKIK4OpJFVWVqqqqsqt5QAAAAAAccLxobwLFixodN+yLJWVlemZZ57RiBEjXCsMAAAAABAfHA+mjzzySKP7rVq1UseOHTVmzBhNmTLFtcIAAAAAAPGB65gCAAAAAIxq1ndMS0tLtXv3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lctACgAAAACwy9Z3TKdPn65TTjnF9qK/+c1v1L59+7CLAgAAAADED1t7TKdPn+5o0SlTpoRVDAAAAAAg/nBWXgAAAACAUY4G09///vcaM2aMnn76aUnSihUrdNZZZ6lbt26O96oCAAAAACA5OPnR/Pnzde+99+qyyy7T1KlTtXfvXj3yyCP65S9/qfr6es2dO1dnnHGGfv7zn0eyXgAAAACAx9geTJ988kktXrxY119/vTZv3qzzzz9fTzzxhG699VZJUkZGhh577DEGUwAAAACAI7YP5f3iiy904YUXSpLOOeccJSQk6IILLmh4/KKLLtJnn33mfoUAAAAAAE+zPZi2a9dOhw8fbrjfsWPHoEvIHDt2zL3KAAAAAABxwfZg2rNnT3344YcN90tLS5WVldVw/5NPPlF2drarxQEAAAAAvM/2d0wffPBBnXzyyU0+vmvXLt1+++2uFOVVH3/8se3cjz76yHZunz59HNVhWZbt3MTERNu5GzZscFTHf//3fzvKB7yitrbWUf7Ro0dt5z722GO2cwsKChzVce2119rOvf/++x2tDcB9X375pe1cficD9gwePNh2rpPfm5J011132c5dt26do7Vjge3B9EQvwvjx45tdDAAAAAAg/ji6jikAAAAAAG5jMAUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCjXBtOXXnpJy5Ytc2s5AAAAAECccG0wveeee3TzzTe7tRwAAAAAIE7Yvo7piXzyySduLQUAAAAAiCN8xxQAAAAAYJTPsizL6ZMqKyv1/vvva9++faqvr2/02OjRo10rzg3V1dVKSUkxXUZEvfzyy47yBw8ebDvX6393kVRVVaXk5GTTZcScWO1ZJ0eN/OAHP3C09k033WQ7d+nSpY7WjpSjR4/azm3Tpk0EK7GPng2P05594oknHK1/0UUX2c7t1auXo7W9zsl/8Tp16mQ7d//+/eGU4zp6Njyx+ns2WtTW1trOdfr7zefzOS0nppyoZx0fyvunP/1JN9xwgw4fPqykpKRGf4E+ny/qBlMAAAAAQHRzfCjvr371K91yyy2qqalRZWWlDh482HD76quvIlEjAAAAAMDDHA+me/bs0R133KF27dpFop5GCgsL5fP5Gt3S0tIi/nMBhIeeBWILPQvEFnoWXub4UN7LLrtMGzduVLdu3SJRT5BevXrp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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",
"20/20 - 1s - loss: 2.5095 - accuracy: 0.1875 - val_loss: 1.8785 - val_accuracy: 0.4000 - 898ms/epoch - 45ms/step\n",
"Epoch 2/30\n",
"20/20 - 0s - loss: 1.5710 - accuracy: 0.4750 - val_loss: 1.2719 - val_accuracy: 0.6667 - 82ms/epoch - 4ms/step\n",
"Epoch 3/30\n",
"20/20 - 0s - loss: 1.0986 - accuracy: 0.7000 - val_loss: 1.2664 - val_accuracy: 0.5667 - 77ms/epoch - 4ms/step\n",
"Epoch 4/30\n",
"20/20 - 0s - loss: 0.7487 - accuracy: 0.9000 - val_loss: 1.0522 - val_accuracy: 0.6667 - 79ms/epoch - 4ms/step\n",
"Epoch 5/30\n",
"20/20 - 0s - loss: 0.5725 - accuracy: 0.9375 - val_loss: 0.9975 - val_accuracy: 0.7000 - 82ms/epoch - 4ms/step\n",
"Epoch 6/30\n",
"20/20 - 0s - loss: 0.4391 - accuracy: 0.9375 - val_loss: 0.9179 - val_accuracy: 0.6667 - 82ms/epoch - 4ms/step\n",
"Epoch 7/30\n",
"20/20 - 0s - loss: 0.3878 - accuracy: 0.9500 - val_loss: 0.9334 - val_accuracy: 0.7000 - 80ms/epoch - 4ms/step\n",
"Epoch 8/30\n",
"20/20 - 0s - loss: 0.2862 - accuracy: 0.9750 - val_loss: 0.8330 - val_accuracy: 0.7000 - 79ms/epoch - 4ms/step\n",
"Epoch 9/30\n",
"20/20 - 0s - loss: 0.2358 - accuracy: 1.0000 - val_loss: 0.8507 - val_accuracy: 0.7000 - 84ms/epoch - 4ms/step\n",
"Epoch 10/30\n",
"20/20 - 0s - loss: 0.2057 - accuracy: 1.0000 - val_loss: 0.8112 - val_accuracy: 0.8000 - 82ms/epoch - 4ms/step\n",
"Epoch 11/30\n",
"20/20 - 0s - loss: 0.1678 - accuracy: 1.0000 - val_loss: 0.8264 - val_accuracy: 0.7333 - 80ms/epoch - 4ms/step\n",
"Epoch 12/30\n",
"20/20 - 0s - loss: 0.1401 - accuracy: 1.0000 - val_loss: 0.7813 - val_accuracy: 0.7667 - 80ms/epoch - 4ms/step\n",
"Epoch 13/30\n",
"20/20 - 0s - loss: 0.1245 - accuracy: 1.0000 - val_loss: 0.7808 - val_accuracy: 0.7667 - 79ms/epoch - 4ms/step\n",
"Epoch 14/30\n",
"20/20 - 0s - loss: 0.1133 - accuracy: 1.0000 - val_loss: 0.7697 - val_accuracy: 0.7667 - 81ms/epoch - 4ms/step\n",
"Epoch 15/30\n",
"20/20 - 0s - loss: 0.1022 - accuracy: 1.0000 - val_loss: 0.7728 - val_accuracy: 0.7667 - 86ms/epoch - 4ms/step\n",
"Epoch 16/30\n",
"20/20 - 0s - loss: 0.0897 - accuracy: 1.0000 - val_loss: 0.7881 - val_accuracy: 0.7667 - 84ms/epoch - 4ms/step\n",
"Epoch 17/30\n",
"20/20 - 0s - loss: 0.0801 - accuracy: 1.0000 - val_loss: 0.7716 - val_accuracy: 0.7667 - 86ms/epoch - 4ms/step\n",
"Epoch 18/30\n",
"20/20 - 0s - loss: 0.0743 - accuracy: 1.0000 - val_loss: 0.7669 - val_accuracy: 0.7667 - 80ms/epoch - 4ms/step\n",
"Epoch 19/30\n",
"20/20 - 0s - loss: 0.0708 - accuracy: 1.0000 - val_loss: 0.7707 - val_accuracy: 0.7667 - 91ms/epoch - 5ms/step\n",
"Epoch 20/30\n",
"20/20 - 0s - loss: 0.0638 - accuracy: 1.0000 - val_loss: 0.7473 - val_accuracy: 0.7667 - 93ms/epoch - 5ms/step\n",
"Epoch 21/30\n",
"20/20 - 0s - loss: 0.0557 - accuracy: 1.0000 - val_loss: 0.7695 - val_accuracy: 0.7667 - 92ms/epoch - 5ms/step\n",
"Epoch 22/30\n",
"20/20 - 0s - loss: 0.0524 - accuracy: 1.0000 - val_loss: 0.7613 - val_accuracy: 0.7667 - 77ms/epoch - 4ms/step\n",
"Epoch 23/30\n",
"20/20 - 0s - loss: 0.0497 - accuracy: 1.0000 - val_loss: 0.7360 - val_accuracy: 0.7667 - 77ms/epoch - 4ms/step\n",
"Epoch 24/30\n",
"20/20 - 0s - loss: 0.0458 - accuracy: 1.0000 - val_loss: 0.7655 - val_accuracy: 0.7667 - 82ms/epoch - 4ms/step\n",
"Epoch 25/30\n",
"20/20 - 0s - loss: 0.0435 - accuracy: 1.0000 - val_loss: 0.7671 - val_accuracy: 0.7667 - 74ms/epoch - 4ms/step\n",
"Epoch 26/30\n",
"20/20 - 0s - loss: 0.0400 - accuracy: 1.0000 - val_loss: 0.7431 - val_accuracy: 0.7667 - 80ms/epoch - 4ms/step\n",
"Epoch 27/30\n",
"20/20 - 0s - loss: 0.0375 - accuracy: 1.0000 - val_loss: 0.7550 - val_accuracy: 0.7667 - 67ms/epoch - 3ms/step\n",
"Epoch 28/30\n",
"20/20 - 0s - loss: 0.0378 - accuracy: 1.0000 - val_loss: 0.7481 - val_accuracy: 0.7667 - 81ms/epoch - 4ms/step\n",
"Epoch 29/30\n",
"20/20 - 0s - loss: 0.0357 - accuracy: 1.0000 - val_loss: 0.7479 - val_accuracy: 0.7667 - 86ms/epoch - 4ms/step\n",
"Epoch 30/30\n",
"20/20 - 0s - loss: 0.0308 - accuracy: 1.0000 - val_loss: 0.7723 - val_accuracy: 0.7667 - 81ms/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": {},
"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",
"20/20 - 1s - loss: 2.3542 - accuracy: 0.0750 - val_loss: 2.0196 - val_accuracy: 0.4000 - 622ms/epoch - 31ms/step\n",
"Epoch 2/30\n",
"20/20 - 0s - loss: 1.8150 - accuracy: 0.4125 - val_loss: 1.8015 - val_accuracy: 0.4000 - 79ms/epoch - 4ms/step\n",
"Epoch 3/30\n",
"20/20 - 0s - loss: 1.4430 - accuracy: 0.6750 - val_loss: 1.6082 - val_accuracy: 0.5000 - 87ms/epoch - 4ms/step\n",
"Epoch 4/30\n",
"20/20 - 0s - loss: 1.1575 - accuracy: 0.8750 - val_loss: 1.4777 - val_accuracy: 0.6333 - 66ms/epoch - 3ms/step\n",
"Epoch 5/30\n",
"20/20 - 0s - loss: 0.9502 - accuracy: 0.9250 - val_loss: 1.3755 - val_accuracy: 0.6333 - 79ms/epoch - 4ms/step\n",
"Epoch 6/30\n",
"20/20 - 0s - loss: 0.7898 - accuracy: 0.9750 - val_loss: 1.3008 - val_accuracy: 0.6333 - 78ms/epoch - 4ms/step\n",
"Epoch 7/30\n",
"20/20 - 0s - loss: 0.6728 - accuracy: 0.9750 - val_loss: 1.2261 - val_accuracy: 0.6667 - 87ms/epoch - 4ms/step\n",
"Epoch 8/30\n",
"20/20 - 0s - loss: 0.5742 - accuracy: 0.9625 - val_loss: 1.1770 - val_accuracy: 0.6667 - 78ms/epoch - 4ms/step\n",
"Epoch 9/30\n",
"20/20 - 0s - loss: 0.4974 - accuracy: 0.9750 - val_loss: 1.1491 - val_accuracy: 0.7000 - 81ms/epoch - 4ms/step\n",
"Epoch 10/30\n",
"20/20 - 0s - loss: 0.4377 - accuracy: 0.9875 - val_loss: 1.1274 - val_accuracy: 0.7333 - 82ms/epoch - 4ms/step\n",
"Epoch 11/30\n",
"20/20 - 0s - loss: 0.3856 - accuracy: 0.9875 - val_loss: 1.0919 - val_accuracy: 0.7000 - 72ms/epoch - 4ms/step\n",
"Epoch 12/30\n",
"20/20 - 0s - loss: 0.3412 - accuracy: 0.9875 - val_loss: 1.0781 - val_accuracy: 0.7000 - 72ms/epoch - 4ms/step\n",
"Epoch 13/30\n",
"20/20 - 0s - loss: 0.3065 - accuracy: 1.0000 - val_loss: 1.0731 - val_accuracy: 0.7000 - 86ms/epoch - 4ms/step\n",
"Epoch 14/30\n",
"20/20 - 0s - loss: 0.2767 - accuracy: 1.0000 - val_loss: 1.0545 - val_accuracy: 0.7333 - 79ms/epoch - 4ms/step\n",
"Epoch 15/30\n",
"20/20 - 0s - loss: 0.2489 - accuracy: 1.0000 - val_loss: 1.0441 - val_accuracy: 0.7333 - 77ms/epoch - 4ms/step\n",
"Epoch 16/30\n",
"20/20 - 0s - loss: 0.2266 - accuracy: 1.0000 - val_loss: 1.0344 - val_accuracy: 0.7000 - 77ms/epoch - 4ms/step\n",
"Epoch 17/30\n",
"20/20 - 0s - loss: 0.2081 - accuracy: 1.0000 - val_loss: 1.0345 - val_accuracy: 0.7000 - 78ms/epoch - 4ms/step\n",
"Epoch 18/30\n",
"20/20 - 0s - loss: 0.1914 - accuracy: 1.0000 - val_loss: 1.0276 - val_accuracy: 0.7000 - 78ms/epoch - 4ms/step\n",
"Epoch 19/30\n",
"20/20 - 0s - loss: 0.1756 - accuracy: 1.0000 - val_loss: 1.0233 - val_accuracy: 0.7000 - 69ms/epoch - 3ms/step\n",
"Epoch 20/30\n",
"20/20 - 0s - loss: 0.1627 - accuracy: 1.0000 - val_loss: 1.0122 - val_accuracy: 0.7000 - 90ms/epoch - 5ms/step\n",
"Epoch 21/30\n",
"20/20 - 0s - loss: 0.1501 - accuracy: 1.0000 - val_loss: 1.0125 - val_accuracy: 0.7333 - 78ms/epoch - 4ms/step\n",
"Epoch 22/30\n",
"20/20 - 0s - loss: 0.1392 - accuracy: 1.0000 - val_loss: 1.0121 - val_accuracy: 0.7000 - 87ms/epoch - 4ms/step\n",
"Epoch 23/30\n",
"20/20 - 0s - loss: 0.1303 - accuracy: 1.0000 - val_loss: 1.0065 - val_accuracy: 0.7333 - 74ms/epoch - 4ms/step\n",
"Epoch 24/30\n",
"20/20 - 0s - loss: 0.1216 - accuracy: 1.0000 - val_loss: 1.0073 - val_accuracy: 0.7000 - 68ms/epoch - 3ms/step\n",
"Epoch 25/30\n",
"20/20 - 0s - loss: 0.1145 - accuracy: 1.0000 - val_loss: 1.0113 - val_accuracy: 0.7333 - 79ms/epoch - 4ms/step\n",
"Epoch 26/30\n",
"20/20 - 0s - loss: 0.1069 - accuracy: 1.0000 - val_loss: 1.0044 - val_accuracy: 0.7000 - 78ms/epoch - 4ms/step\n",
"Epoch 27/30\n",
"20/20 - 0s - loss: 0.1009 - accuracy: 1.0000 - val_loss: 1.0039 - val_accuracy: 0.7333 - 62ms/epoch - 3ms/step\n",
"Epoch 28/30\n",
"20/20 - 0s - loss: 0.0956 - accuracy: 1.0000 - val_loss: 1.0061 - val_accuracy: 0.7333 - 81ms/epoch - 4ms/step\n",
"Epoch 29/30\n",
"20/20 - 0s - loss: 0.0900 - accuracy: 1.0000 - val_loss: 1.0018 - val_accuracy: 0.7333 - 75ms/epoch - 4ms/step\n",
"Epoch 30/30\n",
"20/20 - 0s - loss: 0.0847 - accuracy: 1.0000 - val_loss: 1.0041 - val_accuracy: 0.7333 - 72ms/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": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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BPwd2AIDg2jZMpw33niZRo0aOy4ltm4dTnJyMp99tpArV65w+fJlXnjhWaZOnVxoYSmTQpOIiBhmMpl4ttV/MZty/vFhNpmZ2vKFAvth1rJlOLGxpxyjFZnCw9tx9uyZq97P1LFjF/bu/YX+/Xvm2U7lylV4/fV3WL/+e3r37szIkRE0axbGE09MAOz3P3Xp0p0xY0bSr193Ll2Kp1Gjxo7jW7duw6VLl+jatT2XL1/Ocm6TycSLL75GcnIyd93Vi0mTnqBx41DH48HBwTz++DgWLPiILl3asWTJF/Tv39/x+Jgx4zl48ADdu9/BPffcRXJyEmFhrbJ88u9qunXrSWTkCkaOHI6HhwcTJ07h++/X0KVLO95550369LnT0Hny4+abqzNy5ONMm/Y0Xbu245lnJtGzZx/c3d05fPjvfvfs2ZsDB/6gZ88+jm1+fmWYOXM2u3btpH//Hgwc2Bez2cTLL7/h8n7mxWQrrhNJFLJz5y7nvdM1cnc3ExjoR1xcEhZLwd3VX1qpfs5R/ZynGmYXeWQl07Y8w9FLRxzbQsrWYGrLF7LN06T65S0qaiXz5s1hyZLs0zVcT/U7dOggjz76sOPSo6vkVcMKFfyNncdlPRIRketGzxq96RHSi62nN3M26QyV/CoTVrlloV8ukdIhOTmJM2dOM2fObHr27O3SwORKCk0iInJNTCYTLau0LupuSClw9uxZRox4kFq16vDAA8OLuju5UmgSEREpYj169KZHD9cvP1NShITUyLLkTXGlG8FFREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETGgWIemCxcuMHLkSJo1a0ZYWBjTp0/HYrHkuO/HH39Mhw4daNKkCb179yY6OrqQeyviejYbbNnixrJl7mzZ4obNVtQ9EhG5fhXr0DRmzBh8fX3ZuHEjS5YsYcuWLSxYsCDbfhs2bOCDDz7go48+YteuXTz66KOMGTOGkydPFn6nRVwkMtKd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avFA+9uxWLL/5zW/oSXVA0Ky3QT+TyFla9DshhY5Hl9aZWRYr6vn62qqn/NUQ+eofs5R/ZznbA2L9QXSWbNmYbFY6NixIwMHDqRNmzaMHDkSgNDQUFasWFHEPcyZ2WzikZr/BWsu5bWaeaTmC7mObJlMJp5t9V/MppyPN5vMTG35gm4CFxERKUQmm83mmuGVEu7cucsuP+e0ryJ5//AzWAIOOba5J9TikZovMPXunnkeH3lkJdO2PMPRS0cc20LK1mBqyxfoWaO3y/tbXLm7mwkM9CMuLkm/ZV0D1c95qqFzVD/nqH7Oy6uGFSr453BUdgpNfymI0AT2y34L1m0j9vJFbgwozwPtb8/XvVM2m42tpzdzNukMlfwqE1a55XU3wqRvGM5R/ZynGjpH9XOO6uc8V4WmYntPU2lhNpt4uGura37Bm0wmWlYp/dMKiIiIFHfF+p4mERERkeJCoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMKNah6cKFC4wcOZJmzZoRFhbG9OnTsVgsOe77+eef07VrV0JDQ+natSuLFi0q5N6KiIhIaVasQ9OYMWPw9fVl48aNLFmyhC1btrBgwYJs+61du5Y33niDl19+mV27dvHS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3Xef7cknn7QlJyfbjh8/buvZs6ftww8/LOpulSgvvfSSbdKkSUXdjRJl586dtk6dOtnq1Klj27p1q81ms9ni4+Ntt99+u+3TTz+1paen2zZv3mwLDQ21/fLLL0Xc2+Inp/rZbDbbnXfeaVu6dGkR9qz4S0lJsbVu3dr21ltv2dLS0mwXL160PfTQQ7YRI0boNWjA1epns+k1mJcLFy7Ybr31VtvXX39ty8jIsJ09e9bWq1cv21tvveWy159GmgrIsWPH2L59O+PHj8fHx4eqVasycuRIFi1aVNRdK1H27t1Lw4YNi7obJcayZcsYN24cY8eOzbJ99erVlCtXjsGDB+Pu7k7Lli3p3bu3Xo//klv9rly5woEDB/RazENsbCz16tVj1KhReHp6EhgYyKBBg9ixY4degwZcrX56DeYtKCiIzZs3079/f0wmE/Hx8aSlpREUFOSy159CUwE5ePAg5cqVo2LFio5tNWvWJDY2loSEhCLsWclhtVr59ddfWb9+PXfccQdt27blmWee4dKlS0XdtWIrPDycNWvW0KNHjyzbDx48SJ06dbJsq1WrFvv37y/M7hV7udVv//79WCwWZs2aRatWrejatStz5szBarUWUU+Lpxo1avDRRx/h5ubm2BYdHU2DBg30GjTgavXTa9CYMmXKANCuXTt69+5NhQoV6N+/v8tefwpNBSQpKQkfn6yrKWd+nZycXBRdKnEuXrxI/fr16dq1K1FRUSxevJiYmBjd03QVFSpUwN3dPdv2nF6P3t7eei3+S271u3z5MrfffjtDhgxhw4YNvPrqq3zyySfMmzevCHpZMthsNt58803WrVvHlClT9BrMp3/XT6/B/Fm9ejU//PADZrOZ0aNHu+z1l/27g7iEr68vKSkpWbZlfu3n51cUXSpxgoODswyd+vj4MH78eAYOHEhiYqLjNwrJm4+PD5cvX86yLTU1Va9Fg1q3bk3r1q0dXzdq1IgHHniAqKgohg8fXoQ9K54SExOZPHkyv/76K59++il169bVazAfcqpf3bp19RrMB29vb7y9vRk/fjx33303Q4YMccnrTyNNBaR27drEx8dz/vx5x7bDhw9TqVIl/P39i7BnJcf+/ft57bXXsP1jpZ8rV65gNpvx9PQswp6VPHXq1OHgwYNZth06dIjatWsXUY9KlrVr17J48eIs265cuYK3t3cR9aj4On78OHfddReJiYksWbKEunXrAnoNGpVb/fQazNuuXbvo1q0bV65ccWy7cuUKHh4e1KpVyyWvP4WmAlK9enWaNm3KjBkzSExM5MSJE8yePZsBAwYUdddKjHLlyrFo0SI++ugjLBYLsbGxvPrqq9x5550KTfnUuXNnzp8/z4IFC0hPT2fr1q2sXLmSu+66q6i7ViLYbDZefPFFtmzZgs1mY/fu3SxcuJBBgwYVddeKlUuXLvHAAw/QpEkT5s6dS1BQkOMxvQbzdrX66TWYt7p165Kamsrrr7/OlStXOHXqFC+//DIDBgyga9euLnn9acHeAnT+/HmmTZvGtm3bMJvN9OvXj3HjxmW5yU+ubvv27bzxxhscOHAALy8vevbsyfjx4/Hy8irqrhV7devWZeHChYSFhQH2TyJOnz6dAwcOEBQUxMiRI+nfv38R97L4+nf9Fi9ezPz58zl79izBwcE8+OCDDB48uIh7WbzMnz+fl156CR8fH0wmU5bHdu/erddgHvKqn16DeTt06BAzZsxg7969+Pv707t3b8enEV3x+lNoEhERETFAl+dEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERA7Rgr4iUOEOGDGH79u25Pv7jjz9SoUKFAu3Dtm3buP/++/n++++56aabCrQtESkeFJpEpETq3r07U6ZMyfGx8uXLF3JvROR6oNAkIiWSt7d3gY8miYj8k+5pEpFSqUOHDrz//vuMGDGCRo0a0blzZ7766qss++zevZv777+fpk2bEhYWxlNPPcWlS5ccj1ssFt5++206dOjAbbfdRv/+/fnhhx+ynGPDhg307t2bhg0b0rNnT9avX18YT09EioBCk4iUWu+++y633nor33zzDYMHD2bq1KlERUUBsGfPHoYMGUKtWrX44osvmDVrFnv27GHYsGFYrVYAZsyYwaJFixg3bhwrV66kXbt2jBw5kkOHDjnaWLhwIU8//TQrV66kevXqjBkzhqSkpCJ5viJSsHR5TkRKpJUrVxIdHZ1t+x133MEbb7wBQOvWrXn00UcBqFGjBr/88gsff/wxPXr0YN68edStW5epU6cCUKtWLV5//XX69OnDxo0badq0KV9++SVPP/00PXr0AODxxx/HarVmCUVPPfUUYWFhAIwaNYq1a9dy+PBhGjVqVKDPX0QKn0KTiJRIHTp0YNy4cdm2+/r6Ov6dGWYyNW7c2HH57MCBA7Ru3TrL43Xr1iUgIIA//viDoKAg0tPTady4cZZ9xo4dC9g/PQcQEhLieCwgIACA1NTUa3tSIlKsKTSJSInk5+dHtWrVrrqPu3vWb3E2mw2z2ez4t8lkynaM1WrFw8MDDw8PQ/3IPN+/2xGR0kf3NIlIqbV3794sX+/atYv69esDUKdOHXbu3Jnl8f3795OYmEjNmjWpVq0aHh4e2c4xYMAAPvroo4LtuIgUSxppEpESKTU1lXPnzuX4WOZlssjISBo1akR4eDhr165lzZo1vP/++wAMHTqUwYMHM23aNAYPHsyFCxeYNm0a9evXp2XLlnh4eHDffffx1ltvERQURO3atfn66685dOgQd9xxB+fPny+05yoixYNCk4iUSKtWrWLVqlU5PpZ5I3i/fv1YvXo1L7/8MtWrV2fmzJm0a9cOgNDQUD788EPeeust+vXrR5kyZejUqRNPPvmk49LcE088gbu7O8899xwJCQnUrVuXOXPmULNmTYUmkeuQyaaL7yJSCnXo0IE777yTxx57rKi7IiKlhO5pEhERETFAoUlERETEAF2eExERETFAI00iIiIiBig0iYiIiBig0CQiIiJigEKTiIiIiAEKTSIiIiIGKDSJiIiIGKDQJCIiImKAQpOIiIiIAQpNIiIiIgYoNImIiIgYoNAkIiIiYoBCk4iIiIgBCk0iIiIiBig0iYiIiBhQpKFp//79PPjgg9x+++20bt2aCRMmcPHixRz3HT58OLfeeiuhoaGOPz/88IPj8Q8//JC2bdvSuHFjhgwZwpEjRwrraYiIiMh1oMhCU2pqKsOHDyc0NJQff/yRb7/9lvj4eJ566qkc99+3bx9z585l9+7djj9t27YFYNmyZXzyySfMnTuXbdu20aBBA0aPHo3NZivMpyQiIiKlWJGFptjYWOrVq8eoUaPw9PQkMDCQQYMGsWPHjmz7njhxgkuXLlG/fv0cz/Xll19y7733Urt2bby8vHjyySeJjY1l27ZtBf00RERE5DpRZKGpRo0afPTRR7i5uTm2RUdH06BBg2z77t27Fz8/P8aOHUuLFi3o1asXS5YscTx+6NAh6tSp4/jaw8OD6tWrs3///oJ9EiIiInLdcC/qDgDYbDZmzpzJunXr+PTTT7M9fuXKFRo3bszYsWOpXbs227Zt47HHHsPPz4/u3buTlJSEj49PlmO8vb1JTk7OVx9MJpPTz0VERERKpyIPTYmJiUyePJlff/2VTz/9lLp162bbp1+/fvTr18/xdXh4OP369WPVqlV0794dHx8fUlNTsxyTmpqKn5+f4X5cvJiE2VwwocnNzUxAgA8JCSlkZFgLpI3STPVzjurnPNXQOaqfc1Q/5+VVw8BAY3mhSEPT8ePHeeihh6hSpQpLliwhKCgox/2WLFniGFXKdOXKFby8vACoXbs2Bw8e5I477gAgPT2dmJiYLJfs8mK12rBaC/bG8YwMKxaLXvDXSvVzjurnPNXQOaqfc1Q/5zlbwyK7p+nSpUs88MADNGnShLlz5+YamMA+GvXCCy/w22+/YbVaWb9+Pd9++y2DBg0C4K677uLTTz9l//79pKWl8frrrxMcHEyzZs0K6+mIiIhIKVdkI01Lly4lNjaWVatW8d1332V5bPfu3YSGhvL888/Tp08fHnjgAZKTk3n00Ue5cOECVatW5eWXX3aEogEDBnD58mVGjRrFxYsXufXWW/nggw/w8PAoiqcmIiIipZDJpsmMADh37nKBndvd3UxgoB9xcUkaWr0Gqp9zVD/nqYbOUf2co/o5L68aVqjgb+g8WkZFRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkRE5JrYbLBlixvLlrmzZYsbJWECm5MnTxR1F67Jn3/+SUpKSlF347qn0CQiIvkWGelOWJgfffv6MmKED337+hIW5kdkZMHMmTx58jimTXsmy7bo6CjCw5vx/vvvZNn+4YfvERExBIDOndvwyy+7AXj33bf4+OO5jv3Cw5uxa9fOAumvK124cIGuXbsSFxdX4G1FRa1kwIDeBd5OSaXQJCIi+RIZ6U5EhDcxMVl/hMTEmImI8C6Q4NS6dXi2gLNx43puvbURP/ywLsv2nTu307p1GwDWrNnIbbeFAhAfX/ChoyCkpaWRnJxc1N0QinjBXhERKR4SEuDgwbx/j7bZ4KmnvLBaTTk+brWamDLFi4oVrZj+2sW+wjwkJJjJyPh739q1rQQEGOtfixbhvPzydI4di6FatepcuXKFbdu2MnPmbEaNGu7YnpiYyP79v/HEExMB+2jSrFnvs2fPz6xevQqAAwf+4OOPPwdgx45tzJr1BqdOnaB69RAmT55KjRq1cuzDypXfsHDhfOLjL9KyZThWq5WQkBpERIxg+vTnAJgy5TnH/pltN2nSjJiYo8ye/RaHDh0kPj6eKlWq8H//N5rWrdtw+nQsd9/dh0mTnmbBgrlcvpzALbc04KmnnqV8+WDuvXcAAPfeO4DJk6cSE3OU3bt/4p135jjaGjCgN8OGPUyPHr159NGHCQ1tys6d2zl48A9uvLEqEydO4auvFrNp00YCAgJ44omJtGoVnmfdv/12OUuXfsWZM6dJT08nNLQJkyc/i6+vL337duOJJybSpUs3ANLT0+nbtxsvvPASTZs2Z+3aaD75ZD5nzpzmxhur8sgjj3L77S0AePTRh6lcuQq7du3EZrPx6adf4uvrZ+zFUIQ00iQicp1LSICmTcvQvbtfnn969PDj9Omr/+iIjTXTo8ffx3Tp4kOLFtCli0+WczVtWoaEBGN9DA4Opnbtuvz00w7AHnaCg4Np0KAhjRs34Ycf1gOwa9dOgoLKU7duvSzHDx06nC5dutOlS3dHYAL4+eefeOONt/n22zWULVuOd96ZmWP7O3Zs4803X2HChKdYtWodDRs2YsOG/xnrPPD00xOoUaMWX365nOjo9dx+ewtef/2lLPts2vQj8+d/xuefLyUu7iIffzwXNzc3PvtsCQCffbaEjh27GGpv+fKlTJgwhaio/+Hv78/IkcO5445OREV9T/v2HXnzzVfzPMdvv+1j5sxXGTduElFR37No0VecOHGcJUsW4+XlRadOXYmOjvpH/3/Az8+PJk2asWXLj7z22ouMHTuBqKj/ERExgilTJnDkyGHH/jt3buf99+fx8ceLS0RgAoUmEREpIVq1CmfXLnto2rhxPW3atAMgPLwtP/64AbCHm8xLc0YMGjSYoKDyeHl506ZNe06dOpnjftHRUbRr14HmzcNwd3dn4MB7qFWrtuF2XnllJsOGPYzVauX06Vj8/QM4d+7PLPsMHvwA/v7+BAWVp1WrNpw4cdzw+f+tffsOhITUwNPTk9tuC6VatRDatm2Pu7s7LVu25syZ2DzPUbNmLT755Evq129IQkIC58+fo1y5QEe/e/Xqw86d27hw4TwAq1Z9S/fuvTCZTHz99Zf06zeAxo2b4ObmRuvWbWjdug3Ll3/tOH+LFq2oUOEG/P2NrftWHOjynIjIdS4gAH76KdHQ5bm9e81MmOCT536vvppCw4b2hVHtl+d8SEhIISPj78VS83N5DqBly3CWLfsKi8XCpk0bmT79FQDCw9vx9ttvculSPDt3bmP06CcMnzMgoKzj3x4eHmT88/rhP8TFxVG7dp0s226+uZrhdg4ePMCkSU9w8eIFqlULoVy5ctj+9XHD8uXLO/7t7u6O1Xrti/OWLVvO8W+z2ZwlmJhMpmxt58RsduOrrz5n9erv8PHxpVatWiQnJzmOrVevPtWrh7B2bTRdunRn+/atjBkzHoAzZ06ze/dPfPPNEsf5MjIyaNq0uePr4OAK1/z8iopCk4iIEBAATZvm/UO6SRMrs2dbs90E/k8hIVbuv9/iuKfJ3R0CAyEuzprjCvNG3XJLfUwmM999F4nNZqNhw0YAVKpUmZCQmkRHR3H+/DmaNGmex5nyr0qVG4mNPZVl259//snNN1cH7MEkLS3N8Vh8fLzj3+fPn2Pq1ElMn/4q4eFtAVi//ns2bMh6A7tRbm5uWCwWx9dWq5UEo9c58+GLLxaxffs2Fi5cTFCQPdBNmDA2yz49evRm7drVeHh40qhRKJUrVwGgQoUb6Nq1J0OGDHXse+bMGby8vFzez8Kky3MiImKYyQTPPpuG2ZzzSIXZbGPq1DRHYHIls9lMixatWLhwHq1bt8Fs/vtHWHh4W7744jOaNQvL9Qezp6cniYmJ19R237792bTpB3788QcsFgvR0VHs3fuL4/Fq1ULYs+dnzp37k7S0VObPn4PpryIkJyeRkZGBj499hO7o0SPMn/8RYL95Oi9eXp4AJCUl/tVWdQ4fPsiRI4exWCwsWrSQlBTXf7ouKSkJd3d33N09HM9527bNWfrcpUsPDh8+yMqVy+jZ8++pCvr0uZMlSxbz+++/ArB//28MH34fa9dGu7yfhUmhSURE8qVnTwtz56YSEpJ11CgkxMrcuan07GnJ5UjntWwZTmzsKceITabw8HacPXvmqvczdezYhb17f6F//575brdWrdpMn/4qH374Hr16dWbjxg3UqVPX8Xi/fv1p2LARQ4few6BBd1KxYiUqVqwEwM03V2fkyMeZNu1punZtxzPPTKJnzz64u7tz+PChPNsOCipP586dGT58KN98s4Q2bdrTpUt3xowZSb9+3bl0KZ5GjRrn+znl5Z577uOGGyoyYEBv+vXrTnT0Kvr3H8iRI3/3OTAwkBYtWnP6dCzt2t3h2H7HHZ0YMWIUM2Y8T5cu7Xj66YkMHHgvAwYMcnk/C5PJZuTC5nXg3LnLBXZud3czgYF+xMUlOTU0fb1S/Zyj+jlPNcyZzQZbt7px9qyJSpVshIVl5DjCVFrrl/nR/oiIEQXaTnGv39tvv0FaWhrjxk0u6q7kKq8aVqhg7GZ03dMkIiLXxGSCli1zvnFaSr+zZ89w8uQJVq2K5K23Zhd1dwqFQpOIiIjk28qV3/DFF4sYPPgBateum/cBpYAuz/1Fl+eKL9XPOaqf81RD56h+zlH9nOeqy3O6EVxERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRETkmthsNrbEbmLZwSVsid1ESZjB5uTJE4XW1okTxwutrfzIyMjItviwGKPQJCIi+RZ5ZCVhixrT95vujFgzjL7fdCdsUWMij6wskPYmTx7HtGnPZNkWHR1FeHgz3n//nSzbP/zwPSIihgDQuXMbfvllNwDvvvsWH38817FfeHgzdu3aWSD9/frrL3nllekFcm5nPfvsU6xa9W2htFWQNS4KCk0iIpIvkUdWEhE9hJiEo1m2xyQcJSJ6SIEEp9atw7P98N24cT233tqIH35Yl2X7zp3bHQv3rlmzkdtuCwUgPj7O5f3KTXx8XLEdeSvMOpQ2WkZFRERISLvEwfgDee5ns9l4auN4rLacZ6a22qxM2TiBir4VMf21eq+bm5mAJB8SLqeQkfH3cbXL1SHAq6yh/rVoEc7LL0/n2LEYqlWrzpUrV9i2bSszZ85m1Kjhju2JiYns3/8bTzwxEbCPdMya9T579vzM6tWrADhw4A8+/vhzAHbs2MasWW9w6tQJqlcPYfLkqdSoUQuAX37ZzZw5szl8+CD+/gF06dKdBx6IwNPTk7lzP2D37p945505jj4OGNCbYcMexmQy8ckn87FarXTr1p7vvluf7fkcOxbDa6+9yP79v1GxYmW6du3O8uVLWbJkJbt27WT06Ef48ce/Q+KkSZNIS7Pw1FPPkp6ezpw5s9m8eSN//vknXl5edOzYmTFjxmMymXj00Ydp2LARe/f+woED+7nhhooMGzaCjh0789JLL7Bnz8/s27eHP/7Yz9ix47n77j589dUKKleuApDluUVFreTbb5dTv35DIiNX4OZmZujQ4Xh6evHxx3NJTLxMp05dGT/+qTz/D2NijjJ79lscOnSQ+Ph4qlSpwv/932hat27Dq6/OIDb2FG+++a5j/zfeeJmkpCSeeWYap06d5K23XufXX/fg7e1Dly7dGTbsYTw8PIiKWsnXX39JQEAAv//+K088MYkuXboZel3ll0KTiMh1LiHtEk0/vZVLafEuOV9s0il6LO2U535lvcrx0317DQWn4OBgateuy08/7aBaters2LGN4OBgGjRoSOPGTfjhh/UMGTKUXbt2EhRUnrp162U5fujQ4Zw6dRKAKVOec2z/+eefeOONt/Hz82PKlAm8885M3njjHY4fj2Hs2FE88shjzJw5m7NnzzBlygSSkpIYM2bcVfvavXsvYmNPZQtVmSwWC+PGPU6LFq147bVZHD9+jIkTx2I2G7v48+WXn7F16ybeeut9goOD2bdvD6NGPUSbNu1p1ux2AFasWMbMme8SElKT+fM/5NVXpxMe3pZJk57h5MkThIY2JSJiBKdPx+bZ3p49P9Ou3R1ERq5l+fKlzJz5Kh06dGbRoiXExBxhxIgH6dy5G40bN7nqeZ5+egLh4e2YMeM1bDYb7703i9dff4nWrdvQs2cfHnlkGOfPnyM4uALp6el8//1qXnjhZVJSUnj88f+jU6euvPDCS8THx/H00xOx2Ww88sijAPzxx+9MmfIcL7/8JrZcAr0r6PKciIiUCK1ahbNr1w7AfmmuTZt2AISHt+XHHzcA9pGjzEtzRgwaNJigoPJ4eXnTpk17R7Bavfo7atasxcCB9+Dh4cFNN1XlkUdGsXLlMqxW534o79nzM3/+eYZHH30cLy8vateuw3/+c5/h43v3vpO33nqP8uXLc/78edLS0vD19ePcuT8d+9xxR0fq1KmHh4cH3bv3IjExkbi4a7ss5+Pjy8CB92I2m7n99hZkZGRwzz334e3tTb169SlfPthQ+HrllZkMG/YwVquV06dj8fcPcPS5fv2GVKtWndWrvwNg8+aN+PqWITS0KZs3/0h6ejojRozCy8uLihUr8dBD/8fSpV85zu3h4UHXrj3w9PTEy8v7mp6nERppEhG5zgV4leWn+/Yaujy399weJvwwNs/9Xm33Jg2DGwF/XZ7zd+7yHEDLluEsW/YVFouFTZs2Mn36KwCEh7fj7bff5NKleHbu3Mbo0U8YPmdAwN/te3h4kJGRAcDFixeoUuXGLPtWrnwjaWlpxMVdNHz+nMTFXaRcuXJZfrjffHM1w8enpqbw5puvsHv3Lm644Qbq1KmHzWbLcg9VUFB5x7/d3e0/6q91BCYgIMBxqTVzNMzfP8DxuNlsNnT/1sGDB5g06QkuXrxAtWohlCtXLstxPXr04bvvIrn33iFERa2kR49emEwmzpyJJT4+ju7d73Dsa7PZsFjSHf8XQUHlDY/UOUOhSURECPAqS9OKzfPcr8kNzZj986xsN4H/U0jZGtxff5jjB21eK8wbdcst9TGZzHz3XSQ2m42GDe2hrFKlyoSE1CQ6Oorz58/RpEnezyMvlStXYcOGrDeYnzp1Ek9PTwICyuLm5obFYnE8ZrVaSUhIMHTuKlVuJD4+nuTkZHx9fQGyjBK5ubkBkJ6ejoeHBwBxcXH4+voD8PLL0wkICGD58u/w8vLCarVmCRT5kRk00tPTHdsuXYrPsk/m/6Mzzp8/x9Spk5g+/VXCw9sCsH7991lq3K1bDz744B327dvDjh3bGDvWfl9ahQoVufHGm/jss68d+yYnJ3Hx4kXKlQt0WR+N0OU5ERExzGQy8Wyr/2I25fzjw2wyM7XlCwXyQ8xsNtOiRSsWLpxH69ZtsowshIe35YsvPqNZszC8vLxyPN7T05PExERDbXXq1JWYmCN8+eXnpKenc+rUSebMeZfOnbvh4eFBtWrVOXz4IEeOHMZisbBo0UJSUpL/0ZYXyclJOY7A1KtXn7p1b2HmzFdJSUnh1KmTLFq00PH4jTdWxc3NjbVrowHYvn0bW7dudTyelJSIp6cnbm5uJCcn8e67b5GUlJQl+FyNp6cXSUn2OgQFlcffP4Dvv1+NzWbjjz/2s27d94bOkx/JyUlkZGTg4+MDwNGjR5g//yPg78AWGBhEy5bhvPHGyzRq1JhKlSoB9k9OJicn89lnC7ly5QqXL1/mhReeZerUyYUWljIpNImISL70rNGbuV0/IaRsjSzbQ8rWYG7XT+hZo3eBtd2yZTixsaccoxWZwsPbcfbsmavez9SxYxf27v2F/v175tlO5cpVeP31d1i//nt69+7MyJERNGsWxhNPTACgTZv2dOnSnTFjRtKvX3cuXYqnUaPGjuNbt27DpUuX6Nq1PZcvX85ybpPJxIsvvkZycjJ33dWLSZOeoHHjUMfjwcHBPP74OBYs+IguXdqxZMkX9O/f3/H4mDHjOXjwAN2738E999xFcnISYWGtOHLkUJ7PC6Bbt55ERq5g5MjheHh4MHHiFL7/fg1durTjnXfepE+fOw2dJz9uvrk6I0c+zrRpT9O1azueeWYSPXv2wd3dncOH/+53z569OXDgD3r27OPY5udXhpkzZ7Nr10769+/BwIF9MZtNvPzyGy7vZ15MtuI6kUQhO3fuct47XSNXDU1fr1Q/56h+zlMNc2az2dh6ejNnk85Qya8yYZVb5vibv+qXt6iolcybN4clS7LPcXU91e/QoYM8+ujDjkuPrpJXDStU8Dd2Hpf1SERErismk4mWVVoXdTekFEhOTuLMmdPMmTObnj17uzQwuZIuz4mIiEiROnv2LCNGPMjlywk88MDwou5OrjTSJCIiUsR69OhNjx4Fdy9YcRcSUoM1azYWdTfypJEmEREREQMUmkREREQMKNLLc/v37+fll1/m119/xcPDg9atWzNp0iSCgoKy7fv555+zYMEC/vzzT2644Qbuv/9+Bg8eDNgnFWvatCk2my3LJzc2bdrkmDhMRERExBlFFppSU1MZPnw4AwcO5IMPPiApKYmJEyfy1FNP8f7772fZd+3atbzxxht8+OGH3Hbbbfz88888/PDDBAcH07VrVw4dOkR6ejq7du3C09OziJ6RiIiIlGZFdnkuNjaWevXqMWrUKDw9PQkMDGTQoEHs2LEj275nz57loYceonHjxphMJkJDQwkLC3Psu3fvXurWravAJCIiIgWmyEaaatSowUcffZRlW3R0NA0aNMi2b+ZluEwXLlxgx44dTJ48GbCHprS0NO666y5OnTpFzZo1efLJJ2nSpInh/pjNJszmgpmO3c3NnOVvyR/Vzzmqn/NUQ+eofs5R/ZznqhoWiykHbDYbM2fOZN26dXz66adX3ffcuXOMGDGChg0b0qtXLwC8vb1p1KgRjz/+OGXLlmXRokVERESwYsUKqlataqgPQUF+Bb6GTUCAT4Gev7RT/Zyj+jlPNXSO6ucc1c95ztawyJdRSUxMZPLkyfz666+899571K1bN9d9f/75Zx5//HGaNWvGiy++eNXLcT179uSee+7hvvvuM9SPCxcSC3SkKSDAh4SEFDIySvcU+AVB9XOO6uc81dA5qp9zVD/n5VXDwEA/Q+cp0pGm48eP89BDD1GlShWWLFmS46fmMi1ZsoT//ve/jB49mmHDhmV57M0336Rr167Ur1/fse3KlSv5mobdarVhtRZsfszIsJb6dYMKkurnHNXPeaqhc1Q/56h+znO2hkUWmi5dusQDDzxAixYtmD59OmZz7tcZo6Ojee6553jvvfdo0yb7CtYHDhxg586dzJw5k7JlyzJnzhwSExPp3LlzQT4FERERuY4U2V1lS5cuJTY2llWrVtG0aVNCQ0MdfwBCQ0NZsWIFAO+88w4ZGRmMHj06y35Tp04F4MUXX+Tmm2+mb9++hIWFsX37dubPn0+5cuWK6umJiIhIKVPk9zQVF+fOXS6wc7u7mwkM9CMuLklDq9dA9XOO6uc81dA5qp9zVD/n5VXDChX8DZ1Hn18UERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMUChSURERMQAhSYRERERAxSaRERERAxQaBIRERExQKFJRERExACFJhEREREDFJpEREREDFBoEhERETFAoUlERETEAIUmEREREQMUmkREREQMUGgSERERMcC9qDtQ2tlsNjaf+pHLp+LwJ5DmN7TEZDIVdbdEREQknxSaClDkkZU8v/lpYhKOOrZVDwjh2Vb/pWeN3kXYMxEREckvXZ4rIJFHVhIRPSRLYAKISThKRPQQIo+sLKKeiYiIyLVQaCoANpuN5zc/jdVmzfFxq83KtC3PYLPZCrlnIiIicq0UmgrA1tObs40w/dvRS0fYdnpLIfVIREREnFWkoWn//v08+OCD3H777bRu3ZoJEyZw8eLFHPfdsGEDvXv3pnHjxnTv3p1169ZlefzDDz+kbdu2NG7cmCFDhnDkyJHCeAo5OpN02qX7iYiISNErstCUmprK8OHDCQ0N5ccff+Tbb78lPj6ep556Ktu+MTExPPbYYzz++OPs3LmTxx57jDFjxnD27FkAli1bxieffMLcuXPZtm0bDRo0YPTo0UV2+auSX2WX7iciIiJFr8hCU2xsLPXq1WPUqFF4enoS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30VWVhYSExPx2WefYcSIEdZumt3w9PTE+vXrsXLlSuh0Oly/fh2LFi3C0KFDmTSVU58+fZCcnIw1a9agoKAAMTEx2L59O4YPH27tptkFSZKwcOFCREdHQ5IkHD9+HGvXrsXIkSOt3TSbkp6ejqeeegodOnRAZGQkatWqVfgez0HTyoofz0HTgoKCkJeXhw8//BD5+fm4du0a3n//fYwYMQJ9+/Y1y/knSPf+GU9mlZycjHnz5iE2NhYqlQoRERGYMmVKkUl+VLZDhw5hyZIlOH/+PJycnBAeHo6pU6fCycnJ2k2zeUFBQVi7di1CQkIAGO5EfOedd3D+/HnUqlULkyZNwrBhw6zcStt1f/w2bNiA1atX4+bNm6hTpw6efvppjB492sqttC2rV6/Ge++9BxcXFwiCUOS948eP8xw0wVT8eA6advHiRbz77rs4deoU3NzcMGjQoMK7Ec1x/jFpIiIiIpKBw3NEREREMjBpIiIiIpKBSRMRERGRDEyaiIiIiGRg0kREREQkA5MmIiIiIhmYNBERERHJwKSJiIiISAY+sJeI7M7YsWNx6NChUt/fv38/vL29LdqG2NhYPPnkk9izZw8aNWpk0WMRkW1g0kREdql///6YPn16ie/Vrl27kltDRNUBkyYiskvOzs4W700iIroX5zQRUZXUu3dvfPHFF5g4cSLatm2LPn36YOPGjUXWOX78OJ588kl07NgRISEhePvtt5Genl74vk6nwyeffILevXujXbt2GDZsGPbu3VtkH3/99RcGDRqE1q1bIzw8HH/++WdlfDwisgImTURUZS1fvhxt2rTBjz/+iNGjR2PWrFnYsWMHAODkyZMYO3YsmjZtiu+//x4ff/wxTp48ifHjx0MURQDAu+++i/Xr12PKlCnYvn07evTogUmTJuHixYuFx1i7di1mzJiB7du3w9/fH6+++iqys7Ot8nmJyLI4PEdEdmn79u347bffii3v1asXlixZAgDo2rUrXnzxRQBAYGAgTpw4ga+//hoDBgzAqlWrEBQUhFmzZgEAmjZtig8//BCDBw/Gvn370LFjR/zwww+YMWMGBgwYAAB45ZVXIIpikaTo7bffRkhICADghRdewO7du3Hp0iW0bdvWop+fiCofkyYisku9e/fGlClTii2vUaNG4b+NyYxR+/btC4fPzp8/j65duxZ5PygoCO7u7jh37hxq1aqFgoICtG/fvsg6kydPBmC4ew4AAgICCt9zd3cHAOTl5VXsQxGRTWPSRER2ydXVFY0bNy5zHY2m6K84SZKgUqkK/y0IQrFtRFGEg4MDHBwcZLXDuL/7j0NEVQ/nNBFRlXXq1Kki/z927BhatmwJAGjevDmOHDlS5P2zZ88iKysLTZo0QePGjeHg4FBsHyNGjMDKlSst23AisknsaSIiu5SXl4fbt2+X+J5xmCwqKgpt27ZFt27dsHv3buzatQtffPEFAGDcuHEYPXo05s2bh9GjRyMlJQXz5s1Dy5YtERYWBgcHB4wZMwYfffQRatWqhWbNmmHz5s24ePEievXqheTk5Er7rERkG5g0EZFd+uWXX/DLL7+U+J5xInhERAR27tyJ999/H/7+/li2bBl69OgBAAgODsZXX32Fjz76CBEREahZsyYefvhhvP7664VDc6+99ho0Gg3mzJmDjIwMBAUFYcWKFWjSpAmTJqJqSJA4+E5EVVDv3r0xdOhQvPTSS9ZuChFVEZzTRERERCQDkyYiIiIiGTg8R0RERCQDe5qIiIiIZGDSRERERCQDkyYiIiIiGZg0EREREcnApImIiIhIBiZNRERERDIwaSIiIiKSgUkTERERkQxMmoiIiIhk+H/dEcTszfLHowAAAABJRU5ErkJggg==\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.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 4
}