576 lines (575 with data), 132.9 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Time in seconds since beginning of run: 1682914735.2661824\n",
"Sun Apr 30 21:18:55 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": 6,
"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\n",
"# tensorrt not used"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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 = 6000 ## Size of the train dataset\n",
"n_test = 1000 # 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": 8,
"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": 9,
"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": 10,
"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": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Quantum pre-processing of train images:\n",
"6000/6000 \n",
"Quantum pre-processing of test images:\n",
"1000/1000 \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": 12,
"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": 13,
"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": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"1500/1500 - 1s - loss: 0.6196 - accuracy: 0.8093 - val_loss: 0.5201 - val_accuracy: 0.8330 - 1s/epoch - 723us/step\n",
"Epoch 2/30\n",
"1500/1500 - 1s - loss: 0.3796 - accuracy: 0.8852 - val_loss: 0.4394 - val_accuracy: 0.8670 - 819ms/epoch - 546us/step\n",
"Epoch 3/30\n",
"1500/1500 - 1s - loss: 0.3332 - accuracy: 0.8983 - val_loss: 0.4175 - val_accuracy: 0.8800 - 893ms/epoch - 595us/step\n",
"Epoch 4/30\n",
"1500/1500 - 1s - loss: 0.3153 - accuracy: 0.9075 - val_loss: 0.4995 - val_accuracy: 0.8580 - 811ms/epoch - 541us/step\n",
"Epoch 5/30\n",
"1500/1500 - 1s - loss: 0.2981 - accuracy: 0.9107 - val_loss: 0.4761 - val_accuracy: 0.8610 - 837ms/epoch - 558us/step\n",
"Epoch 6/30\n",
"1500/1500 - 1s - loss: 0.2849 - accuracy: 0.9130 - val_loss: 0.4804 - val_accuracy: 0.8730 - 839ms/epoch - 559us/step\n",
"Epoch 7/30\n",
"1500/1500 - 1s - loss: 0.2578 - accuracy: 0.9237 - val_loss: 0.4669 - val_accuracy: 0.8650 - 812ms/epoch - 541us/step\n",
"Epoch 8/30\n",
"1500/1500 - 1s - loss: 0.2589 - accuracy: 0.9198 - val_loss: 0.4733 - val_accuracy: 0.8770 - 744ms/epoch - 496us/step\n",
"Epoch 9/30\n",
"1500/1500 - 1s - loss: 0.2429 - accuracy: 0.9275 - val_loss: 0.4311 - val_accuracy: 0.8760 - 814ms/epoch - 543us/step\n",
"Epoch 10/30\n",
"1500/1500 - 1s - loss: 0.2416 - accuracy: 0.9228 - val_loss: 0.4622 - val_accuracy: 0.8720 - 832ms/epoch - 555us/step\n",
"Epoch 11/30\n",
"1500/1500 - 1s - loss: 0.2307 - accuracy: 0.9297 - val_loss: 0.4934 - val_accuracy: 0.8650 - 856ms/epoch - 571us/step\n",
"Epoch 12/30\n",
"1500/1500 - 1s - loss: 0.2166 - accuracy: 0.9307 - val_loss: 0.4687 - val_accuracy: 0.8760 - 793ms/epoch - 528us/step\n",
"Epoch 13/30\n",
"1500/1500 - 1s - loss: 0.2257 - accuracy: 0.9295 - val_loss: 0.5007 - val_accuracy: 0.8710 - 750ms/epoch - 500us/step\n",
"Epoch 14/30\n",
"1500/1500 - 1s - loss: 0.2026 - accuracy: 0.9368 - val_loss: 0.5053 - val_accuracy: 0.8760 - 799ms/epoch - 533us/step\n",
"Epoch 15/30\n",
"1500/1500 - 1s - loss: 0.2046 - accuracy: 0.9350 - val_loss: 0.4715 - val_accuracy: 0.8840 - 815ms/epoch - 544us/step\n",
"Epoch 16/30\n",
"1500/1500 - 1s - loss: 0.1868 - accuracy: 0.9445 - val_loss: 0.5332 - val_accuracy: 0.8710 - 827ms/epoch - 551us/step\n",
"Epoch 17/30\n",
"1500/1500 - 1s - loss: 0.1846 - accuracy: 0.9425 - val_loss: 0.6002 - val_accuracy: 0.8560 - 738ms/epoch - 492us/step\n",
"Epoch 18/30\n",
"1500/1500 - 1s - loss: 0.1899 - accuracy: 0.9392 - val_loss: 0.5937 - val_accuracy: 0.8540 - 811ms/epoch - 541us/step\n",
"Epoch 19/30\n",
"1500/1500 - 1s - loss: 0.1813 - accuracy: 0.9462 - val_loss: 0.5133 - val_accuracy: 0.8760 - 850ms/epoch - 566us/step\n",
"Epoch 20/30\n",
"1500/1500 - 1s - loss: 0.1770 - accuracy: 0.9443 - val_loss: 0.4916 - val_accuracy: 0.8800 - 821ms/epoch - 547us/step\n",
"Epoch 21/30\n",
"1500/1500 - 1s - loss: 0.1715 - accuracy: 0.9448 - val_loss: 0.5157 - val_accuracy: 0.8700 - 797ms/epoch - 531us/step\n",
"Epoch 22/30\n",
"1500/1500 - 1s - loss: 0.1636 - accuracy: 0.9495 - val_loss: 0.5362 - val_accuracy: 0.8820 - 802ms/epoch - 534us/step\n",
"Epoch 23/30\n",
"1500/1500 - 1s - loss: 0.1689 - accuracy: 0.9470 - val_loss: 0.5724 - val_accuracy: 0.8570 - 819ms/epoch - 546us/step\n",
"Epoch 24/30\n",
"1500/1500 - 1s - loss: 0.1686 - accuracy: 0.9470 - val_loss: 0.5002 - val_accuracy: 0.8780 - 889ms/epoch - 592us/step\n",
"Epoch 25/30\n",
"1500/1500 - 1s - loss: 0.1514 - accuracy: 0.9517 - val_loss: 0.5203 - val_accuracy: 0.8770 - 797ms/epoch - 531us/step\n",
"Epoch 26/30\n",
"1500/1500 - 1s - loss: 0.1589 - accuracy: 0.9508 - val_loss: 0.5381 - val_accuracy: 0.8710 - 830ms/epoch - 553us/step\n",
"Epoch 27/30\n",
"1500/1500 - 1s - loss: 0.1502 - accuracy: 0.9527 - val_loss: 0.5764 - val_accuracy: 0.8520 - 842ms/epoch - 562us/step\n",
"Epoch 28/30\n",
"1500/1500 - 1s - loss: 0.1526 - accuracy: 0.9530 - val_loss: 0.5411 - val_accuracy: 0.8830 - 748ms/epoch - 499us/step\n",
"Epoch 29/30\n",
"1500/1500 - 1s - loss: 0.1444 - accuracy: 0.9533 - val_loss: 0.5838 - val_accuracy: 0.8580 - 807ms/epoch - 538us/step\n",
"Epoch 30/30\n",
"1500/1500 - 1s - loss: 0.1399 - accuracy: 0.9578 - val_loss: 0.6521 - val_accuracy: 0.8520 - 789ms/epoch - 526us/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": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"1500/1500 - 1s - loss: 0.6404 - accuracy: 0.8380 - val_loss: 0.4657 - val_accuracy: 0.8770 - 983ms/epoch - 655us/step\n",
"Epoch 2/30\n",
"1500/1500 - 1s - loss: 0.3403 - accuracy: 0.9083 - val_loss: 0.3938 - val_accuracy: 0.8840 - 781ms/epoch - 521us/step\n",
"Epoch 3/30\n",
"1500/1500 - 1s - loss: 0.2869 - accuracy: 0.9217 - val_loss: 0.3653 - val_accuracy: 0.8900 - 756ms/epoch - 504us/step\n",
"Epoch 4/30\n",
"1500/1500 - 1s - loss: 0.2582 - accuracy: 0.9303 - val_loss: 0.3818 - val_accuracy: 0.8810 - 812ms/epoch - 542us/step\n",
"Epoch 5/30\n",
"1500/1500 - 1s - loss: 0.2378 - accuracy: 0.9343 - val_loss: 0.3531 - val_accuracy: 0.8960 - 849ms/epoch - 566us/step\n",
"Epoch 6/30\n",
"1500/1500 - 1s - loss: 0.2204 - accuracy: 0.9383 - val_loss: 0.3524 - val_accuracy: 0.8970 - 787ms/epoch - 525us/step\n",
"Epoch 7/30\n",
"1500/1500 - 1s - loss: 0.2080 - accuracy: 0.9433 - val_loss: 0.3402 - val_accuracy: 0.9020 - 775ms/epoch - 517us/step\n",
"Epoch 8/30\n",
"1500/1500 - 1s - loss: 0.1973 - accuracy: 0.9475 - val_loss: 0.3618 - val_accuracy: 0.8920 - 747ms/epoch - 498us/step\n",
"Epoch 9/30\n",
"1500/1500 - 1s - loss: 0.1879 - accuracy: 0.9470 - val_loss: 0.3491 - val_accuracy: 0.9020 - 800ms/epoch - 534us/step\n",
"Epoch 10/30\n",
"1500/1500 - 1s - loss: 0.1818 - accuracy: 0.9498 - val_loss: 0.3559 - val_accuracy: 0.8970 - 788ms/epoch - 525us/step\n",
"Epoch 11/30\n",
"1500/1500 - 1s - loss: 0.1734 - accuracy: 0.9548 - val_loss: 0.3599 - val_accuracy: 0.9000 - 746ms/epoch - 497us/step\n",
"Epoch 12/30\n",
"1500/1500 - 1s - loss: 0.1663 - accuracy: 0.9550 - val_loss: 0.3604 - val_accuracy: 0.8990 - 790ms/epoch - 527us/step\n",
"Epoch 13/30\n",
"1500/1500 - 1s - loss: 0.1615 - accuracy: 0.9580 - val_loss: 0.3741 - val_accuracy: 0.8960 - 734ms/epoch - 490us/step\n",
"Epoch 14/30\n",
"1500/1500 - 1s - loss: 0.1555 - accuracy: 0.9578 - val_loss: 0.3707 - val_accuracy: 0.8960 - 790ms/epoch - 526us/step\n",
"Epoch 15/30\n",
"1500/1500 - 1s - loss: 0.1496 - accuracy: 0.9605 - val_loss: 0.3778 - val_accuracy: 0.8980 - 774ms/epoch - 516us/step\n",
"Epoch 16/30\n",
"1500/1500 - 1s - loss: 0.1448 - accuracy: 0.9622 - val_loss: 0.3695 - val_accuracy: 0.8950 - 776ms/epoch - 517us/step\n",
"Epoch 17/30\n",
"1500/1500 - 1s - loss: 0.1391 - accuracy: 0.9645 - val_loss: 0.3864 - val_accuracy: 0.9040 - 736ms/epoch - 491us/step\n",
"Epoch 18/30\n",
"1500/1500 - 1s - loss: 0.1370 - accuracy: 0.9645 - val_loss: 0.3805 - val_accuracy: 0.8980 - 814ms/epoch - 542us/step\n",
"Epoch 19/30\n",
"1500/1500 - 1s - loss: 0.1333 - accuracy: 0.9642 - val_loss: 0.3734 - val_accuracy: 0.8980 - 812ms/epoch - 541us/step\n",
"Epoch 20/30\n",
"1500/1500 - 1s - loss: 0.1294 - accuracy: 0.9678 - val_loss: 0.3775 - val_accuracy: 0.8970 - 753ms/epoch - 502us/step\n",
"Epoch 21/30\n",
"1500/1500 - 1s - loss: 0.1263 - accuracy: 0.9647 - val_loss: 0.3944 - val_accuracy: 0.8940 - 777ms/epoch - 518us/step\n",
"Epoch 22/30\n",
"1500/1500 - 1s - loss: 0.1229 - accuracy: 0.9688 - val_loss: 0.3937 - val_accuracy: 0.8980 - 797ms/epoch - 531us/step\n",
"Epoch 23/30\n",
"1500/1500 - 1s - loss: 0.1189 - accuracy: 0.9705 - val_loss: 0.3971 - val_accuracy: 0.8980 - 769ms/epoch - 513us/step\n",
"Epoch 24/30\n",
"1500/1500 - 1s - loss: 0.1165 - accuracy: 0.9708 - val_loss: 0.3985 - val_accuracy: 0.8940 - 737ms/epoch - 491us/step\n",
"Epoch 25/30\n",
"1500/1500 - 1s - loss: 0.1134 - accuracy: 0.9710 - val_loss: 0.3976 - val_accuracy: 0.8910 - 763ms/epoch - 509us/step\n",
"Epoch 26/30\n",
"1500/1500 - 1s - loss: 0.1113 - accuracy: 0.9720 - val_loss: 0.4003 - val_accuracy: 0.8980 - 823ms/epoch - 549us/step\n",
"Epoch 27/30\n",
"1500/1500 - 1s - loss: 0.1077 - accuracy: 0.9732 - val_loss: 0.4085 - val_accuracy: 0.8910 - 805ms/epoch - 537us/step\n",
"Epoch 28/30\n",
"1500/1500 - 1s - loss: 0.1052 - accuracy: 0.9738 - val_loss: 0.4107 - val_accuracy: 0.8950 - 827ms/epoch - 551us/step\n",
"Epoch 29/30\n",
"1500/1500 - 1s - loss: 0.1019 - accuracy: 0.9720 - val_loss: 0.4117 - val_accuracy: 0.8910 - 791ms/epoch - 527us/step\n",
"Epoch 30/30\n",
"1500/1500 - 1s - loss: 0.1005 - accuracy: 0.9762 - val_loss: 0.4170 - val_accuracy: 0.8940 - 833ms/epoch - 555us/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": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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RERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYlg1aHpxo0bGD58OHx9fdG5c2fMnj0bWq22yGUvX76MN998Ey1btsRLL72EVatWlXFriYiIqDyz6tA0ZswYVK9eHbt370ZERAT27t2LiIiIQstlZ2fj3XffRUBAAI4dO4ZFixZh48aNuHz5ctk3moiIiMolqw1NsbGxuHDhAsLCwuDk5ARPT08MHToUkZGRhZbdsWMHKlasiJEjR8LBwQEtW7ZEVFQU6tWrZ4GWExERUXlktaEpLi4ONWvWhIuLi35a06ZNkZCQgPT0dINlT548iYYNG2Ly5Mnw8fFBcHAwtm3bVtZNJiIionJMaekGFCc1NRXOzs4G0woCVEpKCipWrKiffufOHcTExGDGjBmYNm0adu7cifHjx6NevXpo0qSJqO3J5TLI5TLT7cBjFAq5wXcqGdZPGtZPOtZQGtZPGtZPOlPV0GpDU1EEQQAAyGSyQtObNWuG3r17AwBCQ0Oxfv167Ny5U3RoqlTJsdB6Tc3Z2cGs6y/vWD9pWD/pWENpWD9pWD/ppNbQakNTpUqVkJKSYjAtLS0NMpkMKpXKYHrVqlWRmppqMK1GjRq4d++e6O0lJ2eYtafJ2dkBanUWtFqdWbZRnrF+0rB+0rGG0rB+0rB+0hmroUrlKGo9VhuavL29cevWLSQnJ6NSpUoA8geH169fH46OhjvXpEkT/PjjjxAEQd9blJiYiBdffFH09nQ6ATqdYLodKIJWq4NGwwO+tFg/aVg/6VhDaVg/aVg/6aTW0GpvkDZt2hQtWrTAvHnzkJ6ejsuXL2PVqlUYNGgQACA4OBgxMTEA8m/HpaamYunSpcjOzsa2bdsQFxeHPn36WHIXiIiIqByx2tAEAIsWLcKDBw8QGBiIESNGIDQ0FIMHDwYAJCQkIDMzE0D+APHly5dj586daNu2Lb777jssXrwYtWvXtmTziYiIqByRCQWjq59zSUkPzbZupVIOlcoRKSkZ7FotBdZPGtZPOtZQGtZPGtZPOmM1rFrVSdR6rLqniYiIiMhaMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCKYPDQdOnQIOh1H9xMREVH5YvJ3BB8zZgwcHR0REhKCPn36oHnz5qbeBBEREVGZM3loOn78OA4ePIg///wT7777LlQqFXr37o0+ffrAw8PD1JsjIiIiKhMmD022trbo2rUrunbtCq1Wi+PHj2PHjh3o168f6tWrhwEDBqBXr16wtbU19aaJiIiIzMasA8Hv3buHuLg4xMXFITc3F9WqVcPmzZsRHByMuLg4c26aiIiIyKRM3tOUlpaGnTt3YuvWrTh16hReeOEFDBw4ED169ICTU/7blK9btw6TJk3C1q1bTb15IiIiIrMweWjq0KED3N3d0adPH8yaNavIcUyDBw/G119/bepNExEREZmNyUNTREQEfHx8IAgCZDIZACAvLw82NjYGy505c8bUmyYiIiIyG5OPaXJ3d8egQYOwe/du/bSIiAgMHDgQt27dMvXmiIiIiMqEyUPTtGnT0LBhQ/j4+OinvfLKK/D29sa0adNMvTkiIiKiMmHy23OnT5/G0qVLoVQ+WnWlSpUwceJE+Pv7m3pzRERERGXC5D1Njo6OuHLlSqHp58+fh4ODg6k3R0RERFQmTN7T9NZbb2Ho0KHo1asXatasCZ1Oh4SEBGzfvh0ff/yxqTdHREREVCZMHpqGDRuG2rVrY9OmTThy5AgAoHbt2pg9ezYCAwNNvTkiIiKiMmHy0ARA/zEqT/rll18wYMAAc2ySiIiIyKzMEpoSEhLw77//Ijc3Vz/t7t27WLJkCUMTERERPZNMHpoiIyMxbdo0ODk5Qa1Ww9XVFSkpKahRowZGjRpl6s0RERERlQmTv3pu+fLlWL58OY4fPw4bGxscPXoUe/fuRfPmzdGuXTtTb46IiIioTJg8NN2/fx8BAQH5K5fLIQgCatSogfHjx/PNLYmIiOiZZfLQVKNGDRw9ehQAULlyZcTExAAAnJ2dcePGDVNvjoiIiKhMmHxM08iRI/Huu+/iyJEj6NevH0aNGgUfHx9cuXIFrVu3NvXmiIiIiMqEyUNTnz590Lp1a7i4uOD999+Hm5sbYmNj0bp1awwaNMjUmyMiIiIqEyYPTUuWLDF4ldyrr76KV1991dSbISIiIipTJh/TtG7dOiQnJ5t6tUREREQWZfKepnfeeQcfffQRevToAXd3dyiVhpsoeGUdERER0bPE5KHp66+/BgBER0cXmieTyfDvv/+aepNEREREZmfy0HT+/HlTr5KIiIjI4kwemh7/vLmi2NramnqTRERERGZn8tDUokULyGSyYufz9hwRERE9i0wemn766SeD37VaLa5fv47ffvsNw4cPN/XmiIiIiMqEyUNTUR/K2759e/j7+yMsLAydO3c29SaJiIiIzM7k79NUnKpVq+LixYtltTkiIiIikzJ5T9OGDRsKTcvOzsa+ffvg6elp6s0RERERlQmTh6Zly5YVmmZnZwdPT0/9ezgRERERPWtMHpr27t1r6lUSERERWZzJxzTl5eVhwYIFiImJ0U/bvHkz5s2bZ/Q9nIiIiIislclD04wZM3DkyBG4urrqpzVs2BDR0dGYNWuWqTdHREREVCZMHpr+/PNPrFixAvXr19dPa9asGZYsWYJdu3aZenNEREREZcLkoUmj0RQ5PS8vj7fniIiI6Jll8oHgQUFBeP/99/HOO++gRo0aEAQBCQkJ+OGHH9CrVy9Tb46IiIioTJg8NE2ZMgXz5s3DpEmToFarAQDOzs7o168fxo0bZ+rNEREREZUJk4cme3t7fPbZZ/jss8+QkpICmUxmMCiciIiI6Flk8jFNubm5+rccUKlUcHV15VsOEBER0TPP5KEpPDycbzlARERE5Q7fcoCIiIhIBL7lABEREZEIZfqWAz179jT15oiIiIjKRJm85YCLiwv69euH4cOHm3pzRERERGXC5LfnCt5y4MSJEzh69CiOHTuG+fPn4+7du+jcubOpN0dERERUJkze01QgMTERmzZtwubNm5GcnIwuXbpgyZIl5tocERERkVmZNDTl5uZi165d2LhxI2JiYtCiRQvcv38fmzdvRr169Uy5KSIiIqIyZbLQNH36dGzfvh0qlQq9e/dGeHg4PDw80LZtWzg4OJhqM0REREQWYbLQtH79evTo0QMfffQRPD09TbVaIiIiIqtg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4/LlywgPD0d4eLjBvJ07dyIhIQGZmZkAgI4dO+KTTz7BpEmTkJSUhGbNmmH58uWwt7cHAIwZMwaZmZkYOHAgNBoN/P39MW3atDLfJyIiIiq/ZIIgmHcgzzMiKemh2datVMqhUjkiJSWD96NLgfWThvWTjjWUhvWThvWTzlgNq1Z1ErUevukDERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJILS0g04dOgQJk6cCF9fXyxYsKDY5YYNG4bo6GiDaVqtFn379sWsWbMwceJEbN26FQqFQj/fy8sLv//+u9naTkRERM8Pi4amFStWYOPGjfD09DS67P/+9z+D37Ozs9GzZ0/06tULAKBWqzFmzBi89957ZmkrERERPd8senvOzs5OdGh60vfffw9vb2906NABQH5ocnFxMXUTiYiIiABYODQNGTIETk5OJX7crVu3sGbNGkyYMEE/Ta1WY8+ePQgKCoKvry9GjBiB69evm7K5RERE9Byz+Jim0lixYgVCQkJQs2ZN/bSaNWvC3d0ds2fPhkwmQ3h4ON59911s27YNtra2Rtcpl8sgl8vM0l6FQm7wnUqG9ZOG9ZOONZSG9ZOG9ZPOVDWUCYIgmKJBUkyaNAk5OTlPHQheQK1Wo0OHDvj111/RsGHDYpdLT09Hu3btsHLlSrRv397oegVBgExmntBEREREz75nrqdpz549cHd3f2pgAoCKFSvC1dUVd+/eFbXe5OQMs/Y0OTs7QK3OglarM8s2yjPWTxrWTzrWUBrWTxrWTzpjNVSpHEWt55kLTbt370bHjh0NpqWnp+Pbb7/FiBEj4ObmBgBITk5GcnIyPDw8RK1XpxOg05m3002r1UGj4QFfWqyfNKyfdKyhNKyfNKyfdFJraNU3SIODgxETE2Mw7dy5c4WCUMWKFXHy5EmEh4cjNTUVaWlpmDFjBpo0aYJWrVqVZZOJiIionLJoT1Pz5s0BABqNBkB+LxIAxMbGAgASEhKQmZlp8JikpCR9b9Ljvv/+e8ycORNBQUFQKBTw8fHBsmXLIJdbdS4kIiKiZ4RFQ1NBOCrOhQsXCk07e/ZskcvWqFED33//vUnaRURERPQkdsMQERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYnA0EREREQkAkMTERERkQgMTUREREQiMDQRERERicDQRERERCQCQxMRERGRCAxNRERERCIwNBERERGJwNBEREREJAJDExEREZEIDE1EREREIjA0EREREYlg8dB06NAh+Pv7Y+zYsU9d7tdff0Xjxo3RvHlzg6/79+8DAHJycjB16lR07NgRfn5++PDDD5GcnFwWu0BERETPAYuGphUrViA8PByenp5Gl3348CH8/f0RGxtr8FWlShUAwLx583Du3Dls2LABu3btgkwmw+TJk829C0RERPScsGhosrOzw8aNG0WFprS0NLi4uBQ5T6vVYtOmTRg9ejTc3d3h4uKCjz/+GAcOHMDdu3dN3WwiIiJ6DiktufEhQ4aIXlatVuPatWt49dVXkZCQAE9PT3zyySfo0KEDrl27hocPH6JZs2b65evWrQt7e3vExcWhWrVqRtcvl8sgl8tKtR/GKBRyg+9UMqyfNKyfdKyhNKyfNKyfdKaqoUVDU0m4urrCzc0NYWFhqFGjBjZs2ICRI0fit99+Q1paGgDA2dnZ4DHOzs5ISUkRtf5KlRwhk5knND1qj4NZ11/esX7SsH7SsYbSsH7SsH7SSa3hMxOaPvzwQ4Pfhw4diqioKGzduhUdO3Ys8jGCIIgOQsnJGWbtaXJ2doBanQWtVmeWbZRnrJ80rJ90rKE0rJ80rJ90xmqoUjmKWs8zE5qKUqtWLdy7dw+VKlUCAKSkpKBChQr6+Wq1Wj/PGJ1OgE4nmKWdBbRaHTQaHvClxfpJw/pJxxpKw/pJw/pJJ7WGz8wN0uXLl+P48eMG0y5fvgwPDw94eHjAxcUFcXFx+nkXL15Ebm4uvL29y7qpREREVA6VKjTl5uZi3bp1+t//+OMPjBo1CrNnz0ZGRobJGhccHIyYmBgAwP379/HFF18gISEBOTk5WLVqFW7cuIF+/fpBoVBgwIABWLp0KW7fvo2UlBTMnz8f3bp1078lAREREZEUpbo9Fx4ejvj4eAwePBiXLl3C2LFj0adPH8TGxuKrr77CzJkzRa2nefPmAACNRgMA2L17NwAgNjYWAJCQkIDMzEwAwLhx4yAIAoYMGYLMzEw0bNgQP/74o/6VcWPGjEFmZiYGDhwIjUYDf39/TJs2rTS7R0RERFSITBCEEg/kad++PaKiolCpUiXMnTsXFy9exIoVK5CSkoLevXvj8OHD5mirWSUlPTTbupVKOVQqR6SkZPB+dCmwftKwftKxhtKwftKwftIZq2HVqk6i1lOq23M5OTn6AdYHDx5E9+7dAeS/LYApb88RERERWYtS3Z6rX78+Fi9eDDs7O1y7dg1dunQBkB+g3N3dTdpAIiIiImtQqtD06aefYuLEiUhLS8Nnn32GSpUqISUlBR988AHmzJlj6jYSERERWVypQtMLL7yAXbt2GUxTqVTYvXu3qI8sISIiInrWlGpMk1qtxty5c/W///jjj+jTpw9mzpyJe/fumaxxRERERNaiVKFpypQpuHHjBgDg77//xty5c9G9e3coFAqEh4ebtIFERERE1qBUt+eOHz+OvXv3AgC2bduGLl264IMPPkBGRoZ+UDgRERFReVKqniatVgs7OzsA+a+Y69q1KwDA3t4eOTk5pmsdERERkZUoVU9Ts2bN8MUXX8DW1hYpKSno3LkzAGDTpk3w8vIyaQOJiIiIrEGpepqmTZuGxMREnD59GnPmzEHFihWRkpKCuXPnYuLEiaZuIxEREZHFlaqnqW7duvjf//5nME2lUuHQoUP623ZERERE5UmpQhMA/Pzzz/jzzz9x69Yt5OXloXbt2nj55ZfRp08fU7aPiIiIyCqUKjR9++232LBhA0JDQxESEgJBEJCQkICZM2ciMzMTr732mqnbSURERGRRpQpNO3fuxIoVK+Dt7W0wPSQkBBMnTmRoIiIionKnVAPBk5KS0Lhx40LTmzZtyncEJyIionKpVKGpfv362LhxY6Hpmzdvhqenp+RGEREREVmbUt2eGz9+PN59912sXr0a9erVAwAkJCTg+vXr+O6770zaQCIiIiJrUKrQ5OPjgz179mDbtm24efMmAKBt27bo0qULb88RERFRuVTqtxyoXLky3nrrrULTQ0JC8M8//0hqFBEREZG1KdWYpqcRBMHUqyQiIiKyOJOHJplMZupVEhEREVmcyUMTERERUXlUojFNGzZsMLqMVqstdWOIiIiIrFWJQtOyZcuMLuPm5lbqxhARERFZqxKFpr1795qrHURERERWjWOaiIiIiERgaCIiIiISgaGJiIiISASGJiIiIiIRGJqIiIiIRGBoIiIiIhKBoYmIiIhIBIuHpkOHDsHf3x9jx441uuzPP/+MoKAgtGrVCr1798bu3bv18yZOnIimTZuiefPm+q8+ffqYs+lERET0HCnRm1ua2ooVK7Bx40Z4enoaXXb37t2YN28eli1bhpYtW2Lr1q34+OOPsWPHDnh4eECtVmPMmDF47733yqDlRERE9LyxaE+TnZ2d6NCUmZmJTz75BG3atIFSqcTLL78MR0dHnD59GgCgVqvh4uJi5hYTERHR88qiPU1DhgwRveyTt9rUajUyMjJQrVo1/e979uxBREQEUlNT0bJlS0yZMgW1a9c2aZuJiIjo+WTR0FRagiBgypQpaNmyJdq1awcAqFmzJtzd3TF79mzIZDKEh4fj3XffxbZt22Bra2t0nXK5DHK5zCztVSjkBt+pZFg/aVg/6VhDaVg/aVg/6UxVQ5kgCIIpGiTFpEmTkJOTgwULFhhdNi8vD5MmTcK///6Ln376CVWqVClyufT0dLRr1w4rV65E+/btja5XEATIZOYJTURERPTse6Z6mrKzszF69GhkZWVh7dq1UKlUxS5bsWJFuLq64u7du6LWnZycYdaeJmdnB6jVWdBqdWbZRnnG+knD+knHGkrD+knD+klnrIYqlaOo9TwzoUkQBIwdOxZKpRIRERGws7PTz0tPT8e3336LESNGwM3NDQCQnJyM5ORkeHh4iFq/TidApzNvp5tWq4NGwwO+tFg/aVg/6VhDaVg/aVg/6aTW0KpvkAYHByMmJgYAsHXrVsTHx2PhwoUGgQnI71U6efIkwsPDkZqairS0NMyYMQNNmjRBq1atLNF0IiIiKmcs2tPUvHlzAIBGowEA/ZtVxsbGAgASEhKQmZkJAPj111+RmJioH/hdoG/fvggPD8f333+PmTNnIigoCAqFAj4+Pli2bBnkcqvOhURERPSMsIqB4NYgKemh2datVMqhUjkiJSWDXaulwPpJw/pJxxpKw/pJw/pJZ6yGVas6iVoPu2GIiIiIRGBoIiIiIhKBoYmIiIhIBIYmIiIiIhEYmoiIiIhEYGgiIiIiEoGhiYiIiEgEhiYiIiIiERiaiIj+v707D2+qSv8A/r3ZuqalpWUrUAoIAgWUrYCCCg4tO6Ky+VMEZkAZURwYRQctCoqOoAPKiMo2riAoinSAEUaRXSij1CKKUBZZ2kI3uiVN7vn9EVsobZPb3rT3pn4/z5OnkOTenPvmJPfNOeeeQ0SkAJMmIiIiIgWYNBEREREpwKSJiIiISAEmTUREREQKMGkiIiIiUoBJExEREZECTJqIiIiIFGDSRERERKQAkyYiIiIiBZg0ERERESnApImIiIhIASZNRERERAowaSIiIiJSgEkTERERkQJMmoiIiIgUYNJEREREpACTJiIiIiIFmDQRERERKcCkiYiIiEgBJk1ERERECjBpIiIiIlKASRMRERGRAkyaiIiIiBRg0kRERESkgOZJ065du9C3b188/vjjHp+7Zs0axMfHo3v37hg/fjyOHDlS9pjNZsMzzzyD/v37o3fv3pgxYwaysrJqs+hERET0O6Jp0vTOO+9gwYIFiI6O9vjc7du3Y9myZfj73/+OPXv2YODAgXj44YdRUFAAAFi8eDGOHj2KdevWYdu2bZAkCU899VRtHwIRERH9TmiaNPn5+WHDhg2Kkqb169dj9OjR6Nq1K/z9/TFlyhQYDAZ8/fXXcDqd+PTTTzF9+nQ0bdoUoaGhmDlzJnbu3In09PQ6OBIiIiKq70xavvgDDzyg+LmpqakYMmRI2f8lScKNN96IlJQUdOjQAVeuXEGnTp3KHm/dujX8/f2RmpqKxo0be9y/wSDBYJCqdwAKGY2Gcn+pehg/dRg/9RhDdRg/dRg/9bwVQ02TpurIyclBaGhouftCQ0ORnZ2NnJwcAEBISEi5x0NCQpCdna1o/+HhQZCk2kmarpYnoFb3X98xfuowfuoxhuowfuowfuqpjaHPJE2VEUK4TXQ8PX6trKyCWm1pCgkJQF5eEZxOuVZeoz5j/NRh/NRjDNVh/NRh/NTzFMOwsCBF+/GZpCksLKxCq1Fubi5uuOEGhIeHAwCys7MRGBhY9nheXl7ZY57IsoAsC+8VuBJOpwyHgxW+phg/dRg/9RhDdRg/dRg/9dTG0Gc6SGNjY5Gamlr2f6fTiaNHj6Jr165o0aIFQkNDyz3+888/w263IzY2VoviEhERUT2j66QpISEBhw4dAgCMHz8en332Gb777jsUFRXhzTffhMViwe233w6j0YgxY8Zg+fLluHDhArKzs/Hqq6/iD3/4AyIiIjQ+CiIiIqoPNO2e69y5MwDA4XAAcM3FBAApKSkAgLS0NBQWFgIA+vfvj7/85S+YM2cOMjMz0alTJ7z99tvw9/cHADz66KMoLCzE2LFj4XA40LdvXyQmJtb1IREREVE9JQkhancgj4/IzLxSa/s2mQwICwtCdnYB+6NrgPFTh/FTjzFUh/FTh/FTz1MMIyOtivaj6+45IiIiIr1g0kRERESkAJMmIiIiIgWYNBEREREpwKSJiIiISAEmTUREREQKMGkiIiIiUoBJExEREZECTJqIiIiIFGDSRERERKQAkyYiIiIiBZg0ERERESnApImIiIhIASZNRERERAowaSIiIiJSgEkTERERkQJMmoiIiIgUYNJEREREpACTJiIiIiIFmDQRERERKcCkiYiIiEgBJk1ERERECjBpIiIiIlKASRMRERGRAkyaiIiIiBRg0kRERESkAJMmIiIiIgWYNBEREREpwKSJiIiISAEmTUREREQKMGkiIiIiUoBJExEREZECJi1f/OzZs3j++edx5MgRBAYGIiEhAbNnz4bRaCz3vMmTJ+PgwYPl7nM6nRg5ciQWLlyIJ598El988UW57WJiYrBp06Y6OQ4iIiKq/zRNmh599FHExsbi1VdfRVZWFqZOnYqIiAhMmTKl3PNWrVpV7v/FxcUYOnQohg0bBgDIy8vDo48+ioceeqjOyk5ERES/L5p1z6WkpOCnn37C7NmzYbVaER0djUmTJmH9+vUet122bBliY2Nxyy23AHAlTaGhobVdZCIiIvod0yxpSk1NRVRUVLlkp2PHjkhLS0N+fn6V250/fx7vv/8+nnjiibL78vLysGPHDsTHxyMuLg5Tp07FmTNnarX8RERE9PuiWfdcTk4OQkJCyt1XmkBlZ2cjODi40u3eeecdDB48GFFRUWX3RUVFoWnTpnj55ZchSRIWLFiAP/7xj9i8eTMsFoui8hgMEgwGqYZH457RaCj3l6qH8VOH8VOPMVSH8VOH8VPPWzHUdEzT9YQQAABJqjx5ycvLw4YNG/DJJ5+Uu3/58uXl/v/888+jV69eSE5ORp8+fRS9dnh4UJWv6y0hIQG1uv/6jvFTh/FTjzFUh/FTh/FTT20MNUuawsPDkZ2dXe6+3NxcSJKEsLCwSrfZsWMHmjZtinbt2rndd3BwMBo0aID09HTF5cnKKqjVlqaQkADk5RXB6ZRr5TXqM8ZPHcZPPcZQHcZPHcZPPU8xDAsLUrQfzZKm2NhYnD9/HllZWQgPDwfgGhzetm1bBAVVXvjt27ejf//+5e7Lz8/HP/7xD0ydOhWNGjUCAGRlZSErKwstWrRQXB5ZFpBlUcOjUcbplOFwsMLXFOOnDuOnHmOoDuOnDuOnntoYatZB2rFjR3Tp0gWLFy9Gfn4+Tpw4gdWrV2P8+PEAgISEBBw6dKjcNkePHq2QCAUHByM5ORkLFixATk4OcnNzMX/+fHTo0AE333xznR0PERER1W+ajipbunQpLl++jAEDBmDq1KkYNWoUJkyYAABIS0tDYWFhuednZmaWtSZda9myZXA6nYiPj8fgwYPhdDrx1ltvwWDgoDkiIiLyDkmUjr7+ncvMvFJr+zaZDAgLC0J2dgGbVmuA8VOH8VOPMVSH8VOH8VPPUwwjI62K9sOmGCIiIiIFmDQRERERKcCkiYiIiEgBJk1ERERECjBpIiIiIlKASRMRERGRArpae46IiIjoWkIA+/cbcfGihCZNBHr3dqKWl4qtEpMmIiIi0qWkJBOee84Pp05d7Rhr1UpGYqINQ4c66rw87J4jIiIi3UlKMmHKFP9yCRMAnDplwJQp/khKqvt2HyZNREREpCtCAM895wdZrrwfTpYlPP+8H+p6TRMmTURERKQr+/cbK7QwXS8tzYADB4x1VCIXJk1ERESkK2fPKhvpffFi3Y4IZ9JEREREunHihIRFiyyKntukSd32zzFpIiIiIl1Yv96EgQODcOqU5263mBgZcXHOOijVVUyaiIiISFMFBcBjj/njz38OQGGhBLNZYNw4OwyGyluSDAaBZ5+11fl8TUyaiIhqkRDAvn1GbNxowr59xjq/2odI744eNSA+PhAffWQGALRsKeOLLwqxdKkNK1cWIyZGLvf8mBgZK1cWazJPEye3JCKqJd6YmE9PsyETeZMQwPvvm/G3v/mhuNhVqYcPL8GrrxYjNNT1nKFDHRgyxIH9+41IT3d9BuLiOCM4EVG9Ujox3/XzzJROzKfkl7LeZkMm8pYrV4DZs/2xcaOrdcnPT2D+fBsmTiypkBBJEtCnT92OXaoKu+eIiLxMycR8zzzjh6wswFnFuUCPsyETVVdl3dPff2/AwIFBZQlT27ZObNlSiAcfrJgw6Q0/dUREXqZkYr5ffzXgxhutkCSB0FCgQQOBsDCBBg1ct+3bTR5nQx4yxKH7kwxpS8vu3cpaSsPDZeTmSnA6XYUYM6YEL71UjODguimTWkyaiIi87Px55WclISTk5AA5ORJOnVL+GqWzIffurY9uC736PY8J07J7t6ru6awsV1ksFoFFi4oxbpxvdTMzaSIi8qLz5yW88YZZ0XMfe8yGiAiB7GwJOTmuW3a2hLQ0g8eWKqDuZ0P2Nb/nMWHeGFNXU566pwGgUSOBsWN97z1g0kRE5CVbtpgwc6Y/srM9JzMxMTKeftpeaavHvn1GjBwZ6HEfdT0bsi/RMmnQmtLFbmure1dp97QvtpRyIDgRkUpFRcCTT/ph4sQAZGdLkCSBYcNKajwxX+/eTrRqJVf+4G9CQgR69PCtE05dUZo01Nc5s7Rc7PbKFeDdd5W1x/hiSymTJiIiFY4dMyAhIRCrV7vWymrcWMaGDUVYtaq4xhPzSRKQmGirMukCgLw8CZMn+6Ow0DvHUZ/s2qVd0qC13Fzggw+UJS0ffGBCVpZ3Xjc9XcKCBRbcfHMwPvlEn+vGeQO754iIakAI4N13zXjmmasT8w0a5MCSJcVo2NB1MlAzMd/QoQ6sXFmM55/3Q1ra1QQgOlqGn5/Azz8bsXWrGaNHG/Dee0WIjPS9E5C3/fyzAR98YMZ779Xflo6qpKQYsHq1GZ9+akZhobLjWrfOgo0bzUhIcGDChBLcdpsTxuvySE8D6U+ckPDPf1qwbp0ZdvvVB/z8BGy2qsuhxbpx3sCkiYjIDSGAvXsNuHIFsFoN6NlTRk4O8Je/+CMpyTXg22IRmDfPhilTvDsxX1VJl83mWqdr40YzDh82YvDgQKxdW4i2betf4uTppF1YCGzaZML775vx7bfVO6U1aqT/eFVW/0qPv7gY+OILE1atsiA5uXy24ylpsVgE7HYJdruETZvM2LTJjKZNZYwdW4Jx40rQurVwO5C+SRMZr79uwZYtJghx9XUSEkrw5z+X4NIlqdIxZYB268Z5gyREfe3VrZ7MzCu1tm+TyYCwsCBkZxfA4XA/ToEqYvzUYfxqrrKTRpMmMuz2q5dO33CDE2+9VYzY2LqNrSwDL75owdKlfgBc8zy9+26RLgfW1rQOujtpt2gh4733XC0rV65cPfuaTALx8Q4cOmREerr7Lrr4+BK88cbVJTv0pqrjnz7dhrNnDfjwQzMuX776mL+/wOjRJXjwwRKcO2dwm7SUdh1/9JEZGzaYyu0HANq1c+L4cUO5hOgqAeDq/WazwL33lmD69BK0a3f1/U1KMlVoKY2JkfHss3V/9aKnOhgZaVW0HyZNv2HSpF+MnzqMX81UdfXVtf7v/+yYP9+GoKA6LNh1/vUvM5580jXo2WIReP31Ytx1l76uCqtJHXQf//InbQBo00bGfffZMWaMA40aCcXbx8TIWL26CB076uuzUZ3jj4mRMWmSHWPHliAsrPw+lCQtdjvwn/+Y8NFHZuzYYXRb568VFCTw4IMlmDrVjqZNK08lSlsKtV43jkmTl9VW0iQEcPCgCVeuBMBqLULPnpzBt7p40leH8as+IYC4uCC3g4kbNZKRklKgi8/z9u1G/PGPAWVjWebOtWHGjMqnM6hrNfkOVBJ/wNUFNWKEA/ffX1LpybiqpOGpp2z4+msjPvzQNWA5MFBg8eJi3H2395PNmkyuqez4BRISHJg8uQT9+zthqOKp1U1aLl6U8MorFrz3nufB3B99VIiBA/XXslkZbyVNHNNUiyo2rQb8biZWI/JlSi7ZzsjQzzwzd97pxKZNhZgwIQAZGQYsWOCHM2ckvPSSDUajnpbRcP8dKASQlibho4/Miib3XL26CHfeWXX83Q3EHzXKge7dZTz1lB8KCyU8/HAAkpPtmDfPBouyi788Ujq5ps3mugozJcWII0cM2LvXc/0DJEyfXuKx/lV3TF2TJgK33urEe+95fu613aK/F0yaasnveWI1Im/RagkMpVdV6enqqy5dZGzd6kqcjh0z4t13LfjuOyNycyWcPq2fZTSu/Q687TYH/vc/Iw4dct2Skw1lY8WUyM/3HH93ScP995cgNtaJyZMDcO6cAStWWHDkiAErVhSrvhze0/GPH18Cp1NCSooBP/1kgMNR/bpUW/VP6bH74pQBarF77jfe7J5T0rQaEyNj/359NO27o4d1m9i9pI6W8VNTf7RcAuOVVyx45RU/j8/btKlQFy1N18rNBSZNCsDu3VX/Ji4dCFyby2h4+g60WARKSlDFQGNlvBX/y5clTJvmj2++ccUsMlLGihXF6NPHWYvda5Vr0kRG8+YyDh3y3KZRW/WvPp3DStWLMU1nz57F888/jyNHjiAwMBAJCQmYPXs2jNdNFPHJJ5/gb3/7G8zm8us5ffXVV4iIiIDNZsOCBQuwc+dO2O129OzZE8899xzCw8MVl8WbSZPSJRD0+IV7Lb2s28Skqea0HFOnpv64GwRbmyf8zEwJc+b44YsvPK8dp+eThs0G3HhjMAoK3M+TU1vlV/odWMpkEoiNldGjhxM9ejjRvbsT994bWKcnbacTePllC/7xD1eybDS6rgjbv9+kqA4LAZw8KSE52YikJBO2bPFch5o2ldGzpxOdO8vo3Nn1NzJS6CJp0eozWFvqRdJ01113ITY2Fk888QSysrIwdepUjBkzBlOmTCn3vDVr1uCbb77BqlWrKt3Piy++iOTkZLzxxhsIDAzEM888A5vNhrfeektxWbyZNG3caMK0aQEen/f220UYNUqflU5PHxgmTTWjxxXOAc/1R6sTxqZNJjz5pF/ZpdcNG8rIzpZ08RmoLqVJy9q1hRgwwP0Pt+q0tJw+LWHXLhM++siEgwc9t5SUXh7fpYsTgdcVV6vvoC1bTHjkEX+343UMBoGlS4sRESGQnGzE4cOum5I1B6/l7hygh+9gPU0ZoJbPJ00pKSkYO3Ys9u3bh9DfJslYu3Yt1qxZg61bt5Z77pIlS3Dq1Cm89tprFfbjdDoRFxeHl19+GQMHDgQAnDx5EkOGDMHOnTvRuHFjReVhS9NVeviVcy0mTdWn5ReukvoTGSlj1iw7CgokFBQABQUS8vNdf8+elZCcXHddE5cuSXjqKT98/vnVloEHHnANCN650zdPGkp/uEmSQNeurpmZe/Vy3Ro3vnpK8JR4Z2RI2L3biN27jfjmGxPOnKled5Sn91Crk/aJExL69w9CSUnNvuBCQ2Xk5nqOhV6P/1p6mTJALZ+/ei41NRVRUVFlCRMAdOzYEWlpacjPz0dwcHDZ/Xl5eTh9+jTuvfdepKWlITo6Gn/5y19wyy234PTp07hy5Qo6depU9vzWrVvD398fqampipMmg0GCweCdmnDrrQIxMXK5in694GCBnj0FTCb9Lf+3d69B0bpNhw6Z0KeP+yRGCGDfPgMuXJDQtKlAnz5ytT5wrg+sCbm5QGioCXFxnLLBEyGA5593v1jp/Pl+GDGieu+FUkrqT2amAXPm+Kt6nf/9z4hbb1X3m2/TJiNmz/bDpUuuQDRvLmPpUhtuv10GYMDIkTJGjCjCgQMm5OX5ITTUhl69Suug/j67paKilD1PCAnffWfEd98ZUdow37q1K4kKCADWrDFVOpB58mR/NGsmcO5c5TGIjpaRlSW5ba1p3VrGLbcISFLVcSyN/759Bly86PoO6d1brvX4X75sUJwwWSwCXbrI6NGjtHtRRvPmAj17Brg9B1Tn+LWuf/36Cbjmhqrb1/Umo9FQ7m+NCY28+eabYvTo0eXuO3XqlGjXrp04c+ZMufuXLl0qpk2bJo4fPy4KCgrEqlWrRKdOncQvv/wikpOTRbt27URBQUG5bfr16yc2bNiguDyyLNf8YCrx6adCGAxCuE5hld8GDhQiJ8erL+sVH33kvtyltxEjhNi6VYj8/Mr38+mnQrRpU36bNm1c9yuhdntvkGUhdu50xWTnTtf/9W7nTmXv3zffePd1ZVmIw4eFGDZM2esDQpjNQoSHCxEdLUSnTkL07i1E9+7Kt7/pJiEWLxbiwgX35br+PczMFGLs2PL7mjpViNxc78ZEK7Jc8bNz/a15cyEWLnS9Xw0aKI95ZbfGjYWYMEGIFSuESEtzlcHdd6DBULef4+pS+h04f74QxcWV78OXj5+qpqspB8RvPYXSdT9/Z8yYUe7/kyZNQlJSEr744gv079+/yn1dvx93srIKvNbSBAC33w6sWWNE4jwz0px7AOt54EozREu3IMQKpKQYsWMH0KePjHXritG8uX4uYrRaDQA8N+1v2uS6mUwC3brJ6NfPiVtvdaJXLxk7dhjx4IMVWztOnADuuUdgzRobhg2rull682Z125dS09K1ebMRiYmWCk3jzz1nV/TaWrhyBXjvPTMAzxPNvPyyA9nZJejVS4ZfFReKKYnf8eMSPvnEhI0bTTh+XPmvuM8+K0L//hVbKoUAevRw/ysdv82I/N13wHffAX/9q8CAAU6MHevA4MFXx8dU9h42aiSjuFhCXp7rQKKiXK1Ld9whw+kEsrMrvprRaEBISADy8orgdPpGF3FiYuWfIcDVRfvii67P0LRpriVZjh2TcOCAEfv3G/H11wZkZnp+L6dOtWPiRAduvFGUqxfZ2Ve/A+fNs+Dkyav7at1axrx5dtx+u7PSWOuB0u/Abt2KUFgoo7Cw4mPePH5frH964ymGYWHKpvXXLGkKDw9H9nU1Jjc3F5IkIezaeeCr0Lx5c2RkZJRdIZednY3Aa0YS5uXlVevqOVkWkGXvJi7Odp9DPDIXyEsru08KicFjvRbg6+X34P33LfjxRwMGDfLHhx8W1fnaVZWRZWDTJs9XfQQEuK7wKC6W4HBI+PZbI7791ojFi13rEBkMcNs9NHeuBe3bF6Kw8OqYltLxLfn5Ev7+d/fdS4mJFsTHux9Tpf7qrYplSEsz4MEH/epsELCSQbgFBcCXX5rw+ecm7NhhQnGxsqwwKcmEpCQTAgJc++3f34HbbnOiY0cZBoP7+HXt6sTGjWZs3GjCDz+Uv9rVbBYwm+F2pfWYGBl9+jjgqCKEzz5rczsma8mSYhQUSFi/3ozkZNeyD9u3m7B9uwnBwQLDhzvQsqWMV16xVNhHRsbV47n/ftfYJasVVZblWk6n7DPj6hISZKxcKaocE5OQUD7+7dq51hu7/37lY6J69HDihhuccFbxGyIhQUZ8fAkOHjQhP991BWePHq7uJSXx1krPnjJatZI9juvs0aPqOgxcPf7KxgTV5Ph9qf7pldoYajYQ/OjRoxg9ejT27t1blty8//77WLt2LTZv3lzuuW+//Ta6du2KuLi4svuGDx+OIUOGYOrUqejTpw8WLFiAQYMGAQB+/vlnjBw5Ert27UJERISi8nh7GZWkk19gyrb7IYuKb45BMmDloPfw86a7sXCh6yd+cLDAypVFuOMO7VowbDbgkUf8rxkQ6/o1f73SgcR/+IMDhw8bsWeP63bwoNHtqtre1qqVE126yGjd+tqbQMOGAv/+d80GQsuya56bgQOD8Ouv2g6Ed5e0DBjgwPbtrkTpyy9NKCoqXxCTSbidLC8gQECWUen7FREho00bGd9+a6xiDp2K9cJgcM0iPHp0CYYOdWD3bvUD0ZUOgj1xwpU8bdhgrtZA5CZNZHz/vbL30JcvRqjJQF5vX8zii/HTw9VrpXwxfnrj81fPAcCYMWNwww034KmnnkJ6ejqmTp2KyZMn47777kNCQgIWLFiAHj164MUXX8Tu3buxbNkyNGvWDB9++CGWLFmCbdu2oXHjxli0aBH27t2LZcuWwd/fH0899RQsFguWLl2quCzendxSIO6Dm3Dqmham68WEtsb+Cf/Dhg1mzJzpj5ISCSaTa/2j8ePr/idYbi4wcWIA9u51NT527+7ExIl2vPaa8is3iouBw4eNWLHCjM2bPbdW1ZaQEIHiYsBur/rMYLUKDBzoQE6OhNxcCdnZ0m//Vj7ZXm1e/ehpsU6LpeLxNWsmY/hwB0aNKsHFi55XOB840IFvvzXim2+M2LnThCNHqlrRvGo9e7oSpeHDXYukXn8Maq/8qc4JX5aBAweM+PhjEz791FwhkaxMfT7pq+HtK2h9NX56uHoN8N346Um9SJouXryIefPm4fDhw7BarRg1ahQeeeQRSJKE9u3b45133kH//v1hs9mwaNEibN26FYWFhWjXrh3mzJmDrl27AgDsdjteeuklbN++HQ6HA3379kViYiKsVmVBALw85cD5PRj52WCPz9s0ait6N+uLXbuMmDQpoGyMxaxZNjzxRN0ttnnunITx411LLwBAQkIJli8vRmBg7f5KnTu3GN27ywgKEggMdK2YHRQkcOSIEffc43n7/v0dyMuTcOKEQZM1kJYsKaqVBLc6swk3bixjxAgHRo4sQY8ecrlFO6v7hZ+VBezebcLHH5vwn/94TnpXrCjEiBHK5vip68uV160zYcYM782V9ns8aXmzpcWX46eHS+59OX56US+SJj3x6uSWxzdg2peTPT7v7T+sxqgb7gYA/PijARMmBJRdwjt2bAkWLy6G2Vy7y5gcPWrA+PEBuHDB9boTJ9qxcKENJhWj3dT+Sq3u9kK45to5ccKAtDQJW7aYsHWr55N+q1auLr0GDUTZLSxM4NIlCUuWeF5CIyBA4MEHSzB1qh1RUd77GH3zjbKk8cUXizF5ckmVq5sDrthUNp7EnfowOSu7l7zDWy0tv9f4eQvjp57Pz9NUnzUJalrt53XoIGPLFtdimz/8YMS6dWakpBiQny+VG6fhzRmd9+wxYuLEqy1cTz9tw2OPqW/hkiQgMdH9QN5nn7VV+TrV3V6SgMhIgchIJ3r3Blq1EoqSpqVLiys9YQoBfP6551XWi4okvPmmBe+8Y8ZddzkwfbodnTqV/zAqnU3Z4QB27TJi0yYTNm5U1rUZESHcJkyAKzZ9+8oICwOys2VFg0/rw2KdvXs7FQ3kjYvT51WQejF0qANDhjg0b2kh0gvfnKVK53o37YtWITFunxNqCUX3xj3L3dekicCmTYUYMMB1Zjt61FhhYGvpCtlJSery3c8+M2HsWFfCZDIJLF1ahJkzvdclOHSoAytXFiMmpnwSERMjK2rWV7N96QnTHXcnzNKkzWCoPCkwGASeeaYYw4eXwGBwDbhev96MO+4IwpgxAdi50wghXL/S4+KCMHJkIKZNC8DIkYGIiwsqe+8cDler0qxZfoiNDcLYsYH44AOL26vOrlVbSYva+OmBkvfQXeJOV0kS0KePE6NGOTRZsJtIT9g995u6vHquVN9mt+KtQavROLD8rOV2u2uxzfz82lls8803zUhMdM3GHBgosGpVkcf1p2pK7XiAmnQvAd4Zj6GkayItTcLy5RasXVt+4HHLlk6cPVv5wGqDQeC22xxISTHi0qXySXFoqMDgwQ589ZUR6enaDcLV05VDarB7SR8YP3UYP/U4psnLvJ00Aa7E6fl9zyAt92TZfS2t0Qg0BeJY9o8AgMaBTbAi/l3ENe1d9hyl4zGqMxD34kUJjRoJbNliwttvuyY+jIyU8eGHRejaVd8fwpp+YdTl1VuXL0tYtcqMVavMZQu+KmW1uhKlkSNLcNttTlgs+hiEq5crh9TyxkBenrTUYfzU+b3HTwiB/Rf24mLBBTQJaoreTftWa/JqgEmT19VG0gS43uyDGfuQjxxYEYYejXrDKZx4Yf9zWPbdEgCAyWDCc31fwB87PwRJkhQPxAVcsxnHxTkRF+dE795OtG9/9Qqqyub5KdWmjYy1awsRHa3/t1/NF0ZdX/lSWAgsXGjBW295Hkh+220OTJnimhnYv5Jl2PTQSqKHK4f04Pd+0lKL8VNH3WdYXcKh9fZJJ7/Ac3vnlpvCp1VIDBL7LsDQ1sMV74dJk5fVVtIEVP1mfXHiczz23+nIL3G99ugb7sGi25ci5VCoopamyjRo4DqxhYQIfPJJxcU2XQSWLi3GuHG+0Vrga1+43rz6jK0k+sAYqsP4qVPj1mKVCYcetnc7SXT8e4oTJyZNXqZF0gQAv2Qfx6St9+Gn7GMAgBvDO2BV/PuYEH+T2yt/mjeXMWuWDd9+a8L+/UYP63RVVBczWnuLr33hevtyd7V8LX56xBiqo2X8tG4p8cb2BzP24QqyYUUYejbqo2h7tQlHXW1f4izBlZI85NnycMWehyv2K8iz5yHXloPEvX9DVvHlKl+jdJJoJfFg0uRlWiVNAJBfko9ZX83Axl8+AQAEm62Y2OAtvDljHGQZQPSusgV/cbofDAZUGNOSnu5abPPAASN27DDi5Eljhde5Xl2dtNXytROWt2dTVsvX4qdHjGHN1fSkf+32NU069NBSosX2SlalaBYchbf/sBoO2QG7bEeJ0w67XIISpx02pw3P7Z2LS8WXqtw+1K8B7rvxAciQIQsnnMIJp+yEU8hwyg5sOrER+SX5VW5vlIwwG8wodhZ7iIJ7pZNEe8Kkycu0TJoAVyVfkbIciXv/BofsSoZuDhiOlPRUOEKuDiQ35bXBQ20W4Nl7h1b5evVhcsJr+eIJS09Xn/li/PRGyzElvkzLpMNXWlpquv0bA99Ct0bdkVl0CZmFGcgsyvjtbyZ+uvwj9l/cW+W+65NrJ4l2h0mTl2mdNJXaf2Ef/rRtItILL1b5HE8fOG92D+nhC99XT/p6ufrMV+PnLXVx5U1VvDGIVQ+fwZrQMulQ0tISFdwcKwe9Cyeuto44ZAecwoESZwlm7XwMGYXpVW7fKLAxXuq3GCaDCQZJglEyQpIMrr+Q8Mh/p+FiwQW328+Nm4cSUQK70wab0w6boxg22Qabw4b3jq5Gnj2vyu31INSvAYLNwTBKRhgkA4wGI4ySEfn2fJwvOOdx+1Ft70Zc0z6wWqwIsYQixBICq18IrGYrfsr+Eff/e5zHfbClSSN6SZoA4GLBRfR8vwtsbpot3fXleqt7yFtXLajlyyd9PVx95svjSdSqqytvqnpttYNY9ZB01WR7IQR6fdAVp/NOVfkcq9mKkW1HwyAZYZAkSJIEg2SAAQZIkLD2pw/cJg2BpkB0a9wTxY4iFDuLUeQoRLHD9begpAA2p03xMdYXwWYrIgMj4Wf0x7Gsox6fv+i2f6Bb456wGCwwG82//bXg+4zDuO/fYzxuX1XCUt31VytTnYXvOaZJA3pKmrxR4dR2D3nzqgW1fDlp0gOt4qf1Cd9bdbgmY3K88YWvh6RLyfZCCPyafxapl35A6uUUpF76AYfSv3XbykIVGSUj/Iz+8DNaIAsZufZcj9v8+abHMLzNSEQGNkJEQCQCTK5hGWrrn9bbl+LVczqmp6RJ6YK/rUJaYfyN9yMhZihuDO9QofIlJZnw3PMWnJL3lA0kb2W4BYnP2t0mTN7O8NX6PbeUeIMW43G0PuF780tbaRlkISMt9wSOXk7FtrR/4+Of17otIwBEBjRCZGAjhPqFItQSilC/Bgj1C4XVHILVqe8gqzirxuWvze4xCRIGtLwThY5CHL2cilxbjsdjrUyzoCgEW4IhCxkCArKQIQsZ+fZ8XHYzCLlUl4iuiAltA3+TPwJMAfA3BSDQFICMwgy8/+O/PG7/Ur9XcVOjm2AymGCUTDAZTDAZjPg+43s8tN3zd/CKQe/ipkY3wymcEEKGLAScwon/pSfj0a8e9rj9B0PW45aofvAz+sFouHrxjld+OOt8TJbShKeySaJjQlvj2T7zOU+TlvSUNCn9wFwrOqQVBscMw+CYoejZJA4mg0nxF36JswQncn/B0cs/4OilVOw59w2SMw55fE2lfclq+XJLiVpaXa4M1O6VO9464ctCRq4tB9nFWbhcfBnZxVnIKs7C4fRkrEld4fEYX+7/Ku5oMRCRgY0QZA6qVhnm9JqLEL9QpF76AUcvp+DHy0dR6Cj0+Jre1Db0BrQMjUa4f0OE+4cj3L8hwvzDEe4Xjmf2PuW2tadZUBTeGPgWCh0FKCwpRKGjEIUlBSh0FKLAno+VP7xd7TE1fkY/tA/vgMiASOw486XH59dW947WLSVab19KbcKh9falSr8H0wsuoklQU8Q1rd4VmACTJq/TU9Kk5AMT7t8QNzRoh4PpByp8qYf7h6NDeCfsPb8bAhXfXgkG3NtuHARk/Jh1FD9nHYNdtlf7uG4M74iJnSYhodVQRFmbV3ksWp301fBm144vXi5d3eMXQuBiwQWcyP0F/0nbiuVH3vBYvmBzMIItVlcLgTEAASZ/BJgC4Wf0w/4Le90mIGaDGVazFTn2HLfrO1ZHoCkIkYGRaBTYGBH+kdh9fieu2Gv2veBn9Hc7JrHUiDZ3IdAciFxbLvJsuci15yLXloNLhZkochbV6LXrUrdG3XFLVH90bNgJnSI6o22DG2AymHSRNGjdUqL19qXUJhxab+8tTJq8TE9JE6D8A3Op6BK+PLUVW04lYefZ/6LIoe6LNthsRXNrC0WDCK/VJfImJLQagsExw9CxYSdIkqT5HCc1pUXXTmXb6vnKo8iARvi/Dg/gZO5JnMj9BSdzfqnzVhZ3DDBARt20SrawtkSnhrHoGBGLTg1dt+iQGPT5sFuN65DSlpb+zW+DBAOybdnIKrqMrOIsFDoKVB2Pv9EfRoMRBSWe9+Pucm89JA1at5RovT1dxaTJy/SWNAHV/8AUlhTim1+/xrupq7D9zH887r95cHN0b9wLHRt2QseIWHQI74gW1pYA4PGk2cAvDE2DmuHHrNQKj7W0RuPG8A7Yfvo/lZ64tPiVVZ2Wnt2/foPRm4Z53PfCWxdhaJvhaBzYpOJ4slpOWppbW+BfCR+hyFF0TfeK629BST5eS16EHFt2ldsHmYNwe/OBgOR6PRkyIAQEBC4XXcKh9IMej1+tse0noGFABIodRShyFLn+OotxOjcNPypI2ge3GorezW5BmH8YGpZ2SwU0REP/hgg2Wz0mLS2sLfHmnStwqejSNXPcZCCzMBPHso7il5zjHsvwjzvewIQOD1T6WG3XgaqSriJHEbaf3oYp2yovV/nyL0PvZn0RZApCoDkQgaYgGA1Gr4ypAfSRNGjdUuKN7a9fv9TXxlXqAZMmL9Nj0gTU7AOndCC5N34lns47ha1pSdia9m/su7BHcVdJQ/+GmNVjDowG1/wepZcaGyTXNAnz9yfiUlFmldt7s6WnyFGE7zIO48CFfThwYR/2nttdra6RQFMgokNaITo0BjEhrREd0gqvJb/idq6tltZovD/kY+TYspFVnOUai2Nz/T2W9SO2n96m+PW14mf0x43hHdCmQRu0Dm2LNg1ct5iQ1vjDhttqvZVFyQm7pkmLHpIGrZIub2x//b7UnPT10r2jJV5BrB6TJi/Ta9JUE1p94WcVX8aXp7bhg6Pv1slstIOiE9CjSS9XwhLSCtEhMQj3Dy/rGnR3wnnkpplwCicOXNiH7zP/hxK5pNbLqzdtG9yAiIBIGCTXvDiSJEGSDMi15eJI5v88bv/5yC3oE3VLpY9pecK/vhw1SVq8nTTU9KSvVdLlje2vxZO+OoyfekyavKw+JU1af+ErbemqDcFmK1pao3Eq72S1x9iYDCZ0ieiKnk16Y+MvG9zOBtzS2gpv3vkOTl85hVO5aUjLPYlTeWk4lZuGzKKMGpXdZDAhzC8cfkY//Jp/1uPz59/yEno26YVAcxACTYFlf7/LOIxRnw/xuH1tXXlUSssT/rVqmrToZa4yrZIub2xfiid9dRg/9Zg0eVl9SpoAbb/wlbZ0bRyZhF5Nev+24KPrJoSM/ef3YsK/7/W4fVRwc2QWZtToyj8A8DcGoHezPohr6rrd3Kh72WXnauL339NfYlyS57WQEvsswC1Rt7rG4viHI9hshSRJuuha0cOVO3oYBKuHMqil9ZgcgCd9tRg/9Zg0eVl9S5oA7b7w6/KkL+C61P103qmy2+5fv8GBi/s8lvPNO1fg7nZVLxWgZdeOHrpW9JAw6GE8CwfiqseTvjqMn3pMmrysPiZNgHYnHS1P+t4a0wVo27Wjh64VPSQtesCTljqMnzqMn3pMmrysviZNWtLqpK+XZWD0kLSwlcQ7fq+fYW9h/NRh/NRj0kQ+QQiBXWd24cKVC2hmbYZbW95a7ZN+Tbbf+ONG3LP+nipbejbcuwF3dbirWsdSE2qPn4iI9INJExEREZECBq0LQEREROQLmDQRERERKcCkiYiIiEgBJk1ERERECjBpIiIiIlKASRMRERGRAkyaiIiIiBRg0kRERESkAJOmWnT27Fn86U9/QlxcHO644w68/PLLcDqdWhfLp9xxxx2IjY1F586dy27z58/Xuli6tWvXLvTt2xePP/54hcf27NmDe+65B926dcPQoUPx2Wef1X0BfUBVMTx79izat29fri527twZW7Zs0aik+nTu3Dn8+c9/RlxcHHr37o0nnngCeXl5AFgHlagqfqx/yhw7dgwTJ05E9+7d0bdvX8ycOROZmZkAvFT/BNWaUaNGiblz54q8vDxx6tQpMWjQILFixQqti+VTunXrJpKTk7Uuhk94++23xaBBg8S4cePEzJkzyz128eJF0bVrV7F+/XpRXFws9u7dK7p06SK+//57jUqrT+5imJqaKjp16qRRyXzHiBEjxJw5c0R+fr7IyMgQd999t3j66adZBxWqKn6sf57ZbDbRp08f8cYbbwibzSYyMzPFhAkTxPTp071W/9jSVEtSUlLw008/Yfbs2bBarYiOjsakSZOwfv16rYvmM5xOJwoKChAaGqp1UXyCn58fNmzYgOjo6AqPbd68GTExMbjnnnvg5+eHPn36YODAgdiwYYMGJdUvdzHMzc1lXfQgLy8PHTt2xKxZsxAUFITIyEiMGjUKhw4dYh1UwF38WP88KyoqwuOPP45p06bBYrEgIiIC8fHxOH78uNfqH5OmWpKamoqoqKhylbxjx45IS0tDfn6+hiXzHXl5eRBC4PXXX0f//v3Rr18/JCYmoqCgQOui6dIDDzwAq7XylbpTU1PRsWPHcvd16NABP/zwQ10UzWe4i2FeXh5kWcZDDz2EuLg4xMfHY82aNRBcvrNMSEgIFi5ciIiIiLL7zp8/j0aNGrEOKuAufqx/noWGhuLee++FyWQCAJw+fRqfffYZhgwZ4rX6x6SpluTk5CAkJKTcfaUJVHZ2thZF8jl2ux2dOnVCt27dsG3bNqxevRqHDx/GvHnztC6az6msPjZo0IB1sRrMZjOio6Nx3333YdeuXZg7dy5ef/11tpS4kZKSgg8++AAPP/ww62ANXBs/1j/lzp07h9jYWMTHx6NLly549NFHvVb/mDTVodJfBJIkaVwS39C4cWN8+umneOCBBxAQEIC2bdti9uzZSEpKgt1u17p4Pk8IwbpYDQMGDMDatWvRr18/WCwW9OvXD2PHjsXGjRu1LpouJScnY8qUKZg1axb69u1b6XNYB6t2ffxY/5SLiopCSkoKtm7dipMnT+Kvf/1rpc+rSf1j0lRLwsPDK2Swubm5kCQJYWFhGpXK9zVv3hxOpxOXL1/Wuig+JSwsDDk5OeXuy8nJYV1UqXnz5sjIyNC6GLrz1VdfYerUqXj66afxwAMPAGAdrI7K4lcZ1r+qSZKEVq1a4fHHH8fmzZthMpm8Uv+YNNWS2NhYnD9/HllZWWX3paSkoG3btggKCtKwZL7j2LFjeOWVV8rdd+LECVgsFjRq1EijUvmmzp07V+i7/+GHH9C1a1eNSuR7tm3bhnXr1pW77+TJk2jRooVGJdKnw4cP44knnsCSJUswatSosvtZB5WpKn6sf57t2bMH8fHxkGW57D6DwZXm9O3b1yv1j0lTLenYsSO6dOmCxYsXIz8/HydOnMDq1asxfvx4rYvmM8LCwvDhhx9ixYoVsNvtSEtLw+uvv45x48bBaDRqXTyfMnz4cJw7dw7r16+HzWbDzp07sXPnTowZM0brovkMo9GIhQsXYu/evXA4HNi3bx8++eQT3HfffVoXTTccDgfmzp2L2bNn49Zbby33GOugZ+7ix/rnWWxsLPLy8rBo0SIUFRUhKysLr7/+Onr06OG1+icJDr2vNRcvXsS8efNw+PBhWK1WjBo1Co888gj78Kvh4MGDeOWVV3D8+HGEhYUhISEBM2fOhMVi0bpoutO5c2cAri9eAGVXkKSkpABwxfLvf/87Tpw4gebNm+ORRx7BoEGDtCmsTnmK4bp167Bq1SpkZGQgKioKkydPxujRo7UprA4dOnQI9913X6Wfz61bt+L8+fOsg254it/u3btZ/zw4duwYXnjhBRw5cgSBgYHo3bs35syZg8aNG3vlO5BJExEREZEC7J4jIiIiUoBJExEREZECTJqIiIiIFGDSRERERKQAkyYiIiIiBZg0ERERESnApImIiIhIASZNRERERAowaSIiqqYDBw6gffv2sNlsWheFiOqQSesCEBHV1IABA5Cenl62KOe1Fi5ciGHDhmlQKiKqr5g0EZFPmzt3LhfCJqI6we45Iqq3BgwYgDVr1mDSpEno0qUL7rzzThw6dKjs8YsXL+Lhhx9GXFwc+vfvj1mzZiEnJ6fs8d27d2P48OHo2rUrRowYgX379pXb/6FDhxAfH4+bb74ZDz30EK5cuVJXh0ZEGmDSRET12urVq/HYY4/h4MGDiI+Px4wZM+BwOAAA06dPh9VqxY4dO7Bhwwb8+uuvSExMBACkp6djxowZePjhh3Ho0CFMnjwZ06dPR3Z2dtm+k5KSsH79emzatAnff/89NmzYoMkxElHdYPccEfm0BQsW4MUXXyx3X2BgIA4cOADA1dp00003AQCmTZuGlStX4vvvv0dgYCBSU1Px1ltvITg4GMHBwZg2bRoeffRRyLKMLVu2oGXLlhgyZAgAYNSoUfDz84MQoux1pkyZgpCQEISEhOCmm25CWlpa3Rw0EWmCSRMR+TRPY5piYmLK/h0SEgKr1YqMjAyYTCaEhoYiMjKy7PHWrVujpKQEmZmZOHPmDKKiosrta/DgweX+f+3j/v7+sNvtag+HiHSM3XNEVK/Jslzu/0IISJIEAGV/r30MAEpKSiBJUoVtr3f99kRUvzFpIqJ67cyZM2X/zs3NRX5+Ppo0aYIWLVogJycHly9fLns8LS0Nfn5+aNy4MVq0aFGhu+1f//oXTp8+XWdlJyJ9YdJERPXaf//7Xxw5cgTFxcVYvnw5GjZsiM6dO6N9+/Zo06YNFi1ahMLCQqSnp2P58uUYOnQozGYzhg0bhgsXLuDjjz+G3W5HUlISlixZguDgYK0PiYg0wjFNROTTKhsIDqBsYst77rkHr732GpKTk9GkSRMsW7YMRqMRAPDPf/4T8+fPx+23346AgADceeedmD17NgAgIiICK1euRGJiIl544QXExMTgn//8Jxo2bIhffvml7g6QiHRDEtdeCkJEVI8MGDAAf/rTnzj5JRF5BbvniIiIiBRg0kRERESkALvniIiIiBRgSxMRERGRAkyaiIiIiBRg0kRERESkAJMmIiIiIgWYNBEREREpwKSJiIiISAEmTUREREQKMGkiIiIiUoBJExEREZEC/w8Nsj+m+SweXQAAAABJRU5ErkJggg==\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": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Time in seconds since beginning of run: 1682919947.5222092\n",
"Sun Apr 30 22:45:47 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
}