862 lines (861 with data), 171.2 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 0
},
"id": "A7xgHxPxd0J_",
"outputId": "6304be03-a586-436d-8b48-761e5470f5de"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Time in seconds since beginning of run: 1706119575.9207304\n",
"Wed Jan 24 18:06:15 2024\n"
]
}
],
"source": [
"# This cell is added by sphinx-gallery\n",
"# It can be customized to whatever you like\n",
"%matplotlib inline\n",
"# from google.colab import drive\n",
"# drive.mount('/content/drive')\n",
"# !pip install pennylane\n",
"import time\n",
"seconds = time.time()\n",
"print(\"Time in seconds since beginning of run:\", seconds)\n",
"local_time = time.ctime(seconds)\n",
"print(local_time)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RWYw4Yy7d0KA"
},
"source": [
"Quanvolutional Neural Networks {#quanvolution}\n",
"==============================\n",
"\n",
"::: {.meta}\n",
":property=\\\"og:description\\\": Train a quantum convolutional neural\n",
"network to classify MNIST images. :property=\\\"og:image\\\":\n",
"<https://pennylane.ai/qml/_static/demonstration_assets//circuit.png>\n",
":::\n",
"\n",
"*Author: Andrea Mari --- Posted: 24 March 2020. Last updated: 15 January\n",
"2021.*\n",
"\n",
"In this demo we implement the *Quanvolutional Neural Network*, a quantum\n",
"machine learning model originally introduced in [Henderson et al.\n",
"(2019)](https://arxiv.org/abs/1904.04767).\n",
"\n",
"{.align-center\n",
"width=\"90.0%\"}\n",
"\n",
"Introduction\n",
"------------\n",
"\n",
"### Classical convolution\n",
"\n",
"The *convolutional neural network* (CNN) is a standard model in\n",
"classical machine learning which is particularly suitable for processing\n",
"images. The model is based on the idea of a *convolution layer* where,\n",
"instead of processing the full input data with a global function, a\n",
"local convolution is applied.\n",
"\n",
"If the input is an image, small local regions are sequentially processed\n",
"with the same kernel. The results obtained for each region are usually\n",
"associated to different channels of a single output pixel. The union of\n",
"all the output pixels produces a new image-like object, which can be\n",
"further processed by additional layers.\n",
"\n",
"### Quantum convolution\n",
"\n",
"One can extend the same idea also to the context of quantum variational\n",
"circuits. A possible approach is given by the following procedure which\n",
"is very similar to the one used in Ref. \\[1\\]. The scheme is also\n",
"represented in the figure at the top of this tutorial.\n",
"\n",
"1. A small region of the input image, in our example a $2 \\times 2$\n",
" square, is embedded into a quantum circuit. In this demo, this is\n",
" achieved with parametrized rotations applied to the qubits\n",
" initialized in the ground state.\n",
"2. A quantum computation, associated to a unitary $U$, is performed on\n",
" the system. The unitary could be generated by a variational quantum\n",
" circuit or, more simply, by a random circuit as proposed in Ref.\n",
" \\[1\\].\n",
"3. The quantum system is finally measured, obtaining a list of\n",
" classical expectation values. The measurement results could also be\n",
" classically post-processed as proposed in Ref. \\[1\\] but, for\n",
" simplicity, in this demo we directly use the raw expectation values.\n",
"4. Analogously to a classical convolution layer, each expectation value\n",
" is mapped to a different channel of a single output pixel.\n",
"5. Iterating the same procedure over different regions, one can scan\n",
" the full input image, producing an output object which will be\n",
" structured as a multi-channel image.\n",
"6. The quantum convolution can be followed by further quantum layers or\n",
" by classical layers.\n",
"\n",
"The main difference with respect to a classical convolution is that a\n",
"quantum circuit can generate highly complex kernels whose computation\n",
"could be, at least in principle, classically intractable.\n",
"\n",
"::: {.note}\n",
"::: {.title}\n",
"Note\n",
":::\n",
"\n",
"In this tutorial we follow the approach of Ref. \\[1\\] in which a fixed\n",
"non-trainable quantum circuit is used as a \\\"quanvolution\\\" kernel,\n",
"while the subsequent classical layers are trained for the classification\n",
"problem of interest. However, by leveraging the ability of PennyLane to\n",
"evaluate gradients of quantum circuits, the quantum kernel could also be\n",
"trained.\n",
":::\n",
"\n",
"General setup\n",
"-------------\n",
"\n",
"This Python code requires *PennyLane* with the *TensorFlow* interface\n",
"and the plotting library *matplotlib*.\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"id": "VPbcKloNd0KC"
},
"outputs": [],
"source": [
"import pennylane as qml\n",
"from pennylane import numpy as np\n",
"from pennylane.templates import RandomLayers\n",
"import tensorflow as tf\n",
"from tensorflow import keras\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ISZAWXDMd0KC"
},
"source": [
"Setting of the main hyper-parameters of the model\n",
"=================================================\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"id": "1D5V-v5Vd0KC"
},
"outputs": [],
"source": [
"n_epochs = 30 # Number of optimization epochs\n",
"n_layers = 1 # Number of random layers\n",
"n_train = 50 # Size of the train dataset\n",
"n_test = 30 # Size of the test dataset\n",
"\n",
"SAVE_PATH = \"/content/drive/MyDrive/Colab Notebooks/data/quanvolution\" # Data saving folder\n",
"PREPROCESS = True # If False, skip quantum processing and load data from SAVE_PATH\n",
"np.random.seed(0) # Seed for NumPy random number generator\n",
"tf.random.set_seed(0) # Seed for TensorFlow random number generator"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "avddR0atd0KC"
},
"source": [
"Loading of the MNIST dataset\n",
"============================\n",
"\n",
"We import the MNIST dataset from *Keras*. To speedup the evaluation of\n",
"this demo we use only a small number of training and test images.\n",
"Obviously, better results are achievable when using the full dataset.\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"id": "xlhnv1hrd0KC",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 0
},
"outputId": "955f37b4-8b4d-4175-a389-1dfe9b754deb"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n",
"11490434/11490434 [==============================] - 1s 0us/step\n"
]
}
],
"source": [
"mnist_dataset = keras.datasets.mnist\n",
"(train_images, train_labels), (test_images, test_labels) = mnist_dataset.load_data()\n",
"\n",
"# Reduce dataset size\n",
"train_images = train_images[:n_train]\n",
"train_labels = train_labels[:n_train]\n",
"test_images = test_images[:n_test]\n",
"test_labels = test_labels[:n_test]\n",
"\n",
"# Normalize pixel values within 0 and 1\n",
"train_images = train_images / 255\n",
"test_images = test_images / 255\n",
"\n",
"# Add extra dimension for convolution channels\n",
"train_images = np.array(train_images[..., tf.newaxis], requires_grad=False)\n",
"test_images = np.array(test_images[..., tf.newaxis], requires_grad=False)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "bDVPKQD8d0KD"
},
"source": [
"Quantum circuit as a convolution kernel\n",
"=======================================\n",
"\n",
"We follow the scheme described in the introduction and represented in\n",
"the figure at the top of this demo.\n",
"\n",
"We initialize a PennyLane `default.qubit` device, simulating a system of\n",
"$4$ qubits. The associated `qnode` represents the quantum circuit\n",
"consisting of:\n",
"\n",
"1. an embedding layer of local $R_y$ rotations (with angles scaled by a\n",
" factor of $\\pi$);\n",
"2. a random circuit of `n_layers`;\n",
"3. a final measurement in the computational basis, estimating $4$\n",
" expectation values.\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"id": "rD5_3eztd0KD"
},
"outputs": [],
"source": [
"dev = qml.device(\"default.qubit\", wires=4)\n",
"# Random circuit parameters\n",
"rand_params = np.random.uniform(high=2 * np.pi, size=(n_layers, 4))\n",
"\n",
"@qml.qnode(dev)\n",
"def circuit(phi):\n",
" # Encoding of 4 classical input values\n",
" for j in range(4):\n",
" qml.RY(np.pi * phi[j], wires=j)\n",
"\n",
" # Random quantum circuit\n",
" RandomLayers(rand_params, wires=list(range(4)), ratio_imprim=0, rotations=[qml.RY], seed=42)\n",
"\n",
" # Measurement producing 4 classical output values\n",
" return [qml.expval(qml.PauliZ(j)) for j in range(4)]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "02g-DOe8d0KD"
},
"source": [
"The next function defines the convolution scheme:\n",
"\n",
"1. the image is divided into squares of $2 \\times 2$ pixels;\n",
"2. each square is processed by the quantum circuit;\n",
"3. the $4$ expectation values are mapped into $4$ different channels of\n",
" a single output pixel.\n",
"\n",
"::: {.note}\n",
"::: {.title}\n",
"Note\n",
":::\n",
"\n",
"This process halves the resolution of the input image. In the standard\n",
"language of CNN, this would correspond to a convolution with a\n",
"$2 \\times 2$ *kernel* and a *stride* equal to $2$.\n",
":::\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"id": "AEL9cTFEd0KD"
},
"outputs": [],
"source": [
"def quanv(image):\n",
" \"\"\"Convolves the input image with many applications of the same quantum circuit.\"\"\"\n",
" out = np.zeros((14, 14, 4))\n",
"\n",
" # Loop over the coordinates of the top-left pixel of 2X2 squares\n",
" for j in range(0, 28, 2):\n",
" for k in range(0, 28, 2):\n",
" # Process a squared 2x2 region of the image with a quantum circuit\n",
" q_results = circuit(\n",
" [\n",
" image[j, k, 0],\n",
" image[j, k + 1, 0],\n",
" image[j + 1, k, 0],\n",
" image[j + 1, k + 1, 0]\n",
" ]\n",
" )\n",
" # Assign expectation values to different channels of the output pixel (j/2, k/2)\n",
" for c in range(4):\n",
" out[j // 2, k // 2, c] = q_results[c]\n",
" return out"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "N3MmyCQad0KD"
},
"source": [
"Quantum pre-processing of the dataset\n",
"=====================================\n",
"\n",
"Since we are not going to train the quantum convolution layer, it is\n",
"more efficient to apply it as a \\\"pre-processing\\\" layer to all the\n",
"images of our dataset. Later an entirely classical model will be\n",
"directly trained and tested on the pre-processed dataset, avoiding\n",
"unnecessary repetitions of quantum computations.\n",
"\n",
"The pre-processed images will be saved in the folder `SAVE_PATH`. Once\n",
"saved, they can be directly loaded by setting `PREPROCESS = False`,\n",
"otherwise the quantum convolution is evaluated at each run of the code.\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 0
},
"id": "c3oexS3hd0KD",
"outputId": "4b6abcee-6030-4ad8-91f1-835676583325"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Quantum pre-processing of train images:\n",
"\n",
"Quantum pre-processing of test images:\n"
]
}
],
"source": [
"if PREPROCESS == True:\n",
" q_train_images = []\n",
" print(\"Quantum pre-processing of train images:\")\n",
" for idx, img in enumerate(train_images):\n",
" print(\"{}/{} \".format(idx + 1, n_train), end=\"\\r\")\n",
" q_train_images.append(quanv(img))\n",
" q_train_images = np.asarray(q_train_images)\n",
"\n",
" q_test_images = []\n",
" print(\"\\nQuantum pre-processing of test images:\")\n",
" for idx, img in enumerate(test_images):\n",
" print(\"{}/{} \".format(idx + 1, n_test), end=\"\\r\")\n",
" q_test_images.append(quanv(img))\n",
" q_test_images = np.asarray(q_test_images)\n",
"\n",
" # Save pre-processed images\n",
" np.save(SAVE_PATH + \"q_train_images.npy\", q_train_images)\n",
" np.save(SAVE_PATH + \"q_test_images.npy\", q_test_images)\n",
"\n",
"\n",
"# Load pre-processed images\n",
"q_train_images = np.load(SAVE_PATH + \"q_train_images.npy\")\n",
"q_test_images = np.load(SAVE_PATH + \"q_test_images.npy\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kJYilWS1d0KE"
},
"source": [
"Let us visualize the effect of the quantum convolution layer on a batch\n",
"of samples:\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1006
},
"id": "2ckiL7srd0KE",
"outputId": "4f7228e6-15a8-414f-d638-05bb58081cd8"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1000x1000 with 20 Axes>"
],
"image/png": "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AAAAAICbjO4xraqq0t69exuuFxcXa9euXercubN69OihyZMn66GHHlLv3r2VlpammTNnKikpqdG5TgEAAAAA4S2gPab5+fk6deqUz/qXX36p/Px829vZtm2bvv/97+v73/++JGnKlCn6/ve/r1mzZkmS7r//ft1999268847dcUVV6iqqkoFBQVq27ZtILEBAAAAACEooMF07ty5fr/HdOrUKc2dO9f2dq655hpZluVzWblypSTJ4/EoPz9fpaWlOn36tN58880mv8cFAAAAAAhPAQ2mlmXJ4/H4rH/44Yfq3Llzs0MBAAAAAKKHo++YdurUSR6PRx6PRxdddFGj4bSurk5VVVX65S9/6XpIBGbOnDl+1wcMGOCzdvXVV/utzc7O9rv+xhtvBJwLCGdNHfX7scce87vu70ijJ0+e9Fs7btw4v+vbtm3zWYukI5X26NHDdASEgO9973u2a//3f/83iEkih7+/l/wdqVeS/v73v/usNfV3FRANUlNT/a6/9NJLzd72kiVL/K6//fbbzd52OHM0mC5atEiWZWnChAmaO3duo1MexMbGKjU1lSPmAgAAAAAccTSY5ubmSvr6VC5XXnml2rRpE5RQAAAAAIDoEdDpYtLS0vye8P0sPpYFAAAAALAroME0NTXV78GPzqqrqws4EAAAAAAgugQ0mO7cubPR9TNnzmjnzp16/PHH9fDDD7sSDM1XXV3td/2OO+7wWduxY4ff2t/97nd+1/19OdvfAVokaenSpX7XLcvyuw6EsrPnXf6//B3kqCk33nij3/V33303oExAtPnggw9MRwi6+Ph4n7Uf//jHfmtvueUWv+vXXXed7Z/34IMP+qyVl5fbvj8QaZrqt379+tneRmFhod/13/zmNwFlinQBDabp6ek+awMHDlRSUpIWLFigUaNGNTsYAAAAACA6BHQe06Z873vfi4rfYgIAAAAA3BPQHtPKyspG1y3L0uHDhzVnzhz17t3blWAAAAAAgOgQ0GDasWNHn4MfWZallJQUrV692pVgAAAAAIDoENBg+n8PfBMTE6OuXbvqwgsvVOvWAW0SAAAAABClApoir776ardzoAXt27fPZ+22227zW7tixQq/67feequtNUk677zz/K4/99xzPmvfdn5cIBQ8/vjjftebOoWWvyPtRsPRd2NifA9hUF9fbyAJIlHnzp2Dtm1/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el1dnQoKCnTBBRe4mw4AAAAAEPFsD6b9+/eXx+ORx+Px+5Hddu3aacmSJa6GAwAAAABEPtuDaXFxsSzLUq9evbR161Z17dq14bbY2Fh169ZNrVq1CkpIAAAAAEDksj2Y9uzZU5JUX18ftDAAAAAAgOjj+HQxzz333LfePm7cuIDDAAAAAACij+PB9N577210/cyZMzp16pRiY2PVvn17BlMAAAAAgCOOTxdz4sSJRpeqqirt2bNHgwcP1gsvvBCMjAAAAACACOZ4j6k/vXv31iOPPKJbbrlFn376qRubhAODBg1yVD9nzhzbtW+88Ybt2gcffNBRDn9Hd27KggULHG0baGmzZs2yXTt16lRH277hhhts1544ccJ2bevWzv4J+OZpwwCEPo4Lgmi1bds2R/WxsbG2az/77DOncWCT4z2mTWndurUOHTrk1uYAAAAAAFHC8R7T9evXN7puWZYOHz6sJ5980vGeu40bN2rBggXavn27Dh8+rLVr12rEiBGNtj179mz97ne/U3l5uQYNGqRly5apd+/eTmMDAAAAAEKU48H0m4OjJHk8HnXt2lVDhgzRwoULHW2rurpa6enpmjBhgkaNGuVz+/z587V48WI9++yzSktL08yZM5WTk6Pdu3erbdu2TqMDAAAAAEKQ48HUze8rDBs2TMOGDfN7m2VZWrRokWbMmKEbb7xR0tenqklISNC6det08803+71fTU2NampqGq5XVla6lhcAAAAA4L6Av2N67NgxHTt2zM0sjRQXF6u0tFTZ2dkNa16vV5mZmdq0aVOT95s3b568Xm/DJSUlJWgZAQAAAADN52gwLS8v16RJk9SlSxclJCQoISFBXbp0UV5ensrLy10NVlpaKklKSEhotJ6QkNBwmz/Tp09XRUVFw6WkpMTVXAAAAAAAd9n+KO8XX3yhrKwsHTx4UGPHjtXFF18sSdq9e7dWrlypwsJCvf/+++rUqVPQwtoRFxenuLg4oxkAAAAAAPbZHkzz8/MVGxurffv2+ezFzM/P13XXXaf8/Hw98cQTrgRLTEyUJJWVlal79+4N62VlZerfv78rPwMAAAAAYJ7tj/KuW7dOjz32mM9QKn09RM6fP19r1651LVhaWpoSExNVWFjYsFZZWaktW7YoKyvLtZ8DAAAAADDL9h7Tw4cPq2/fvk3efumll37rdz/9qaqq0t69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AAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUQymAAAAAACjWtspWr9+veMNX3vttWrXrp3j+wEAAAAAooutwXTEiBGONurxeFRUVKRevXoFkiliHTlyxHZtQkJCEJOEhlGjRtmuPXDggO3alJSUQOIAIat9+/a2a+vr623XJiUlOcpx6NAh27WPPvqo7doHHnjAUQ5El+uvv9527WuvvRbEJJEtPj7edAQg4sydOzdo2/Z4PEHbtim2P8pbWlqq+vp6Wxcn/4kCAAAAAEQ3W4Npbm6uo4/l3nLLLfzmDQAAAABgi62P8q5YscLRRpctWxZQGAAAAABA9OGovAAAAAAAoxwNpr///e+Vm5vbsAd1zZo1uvjii9WrVy/Nnj07KAEBAAAAAJHN1kd5JWnRokWaMWOGcnJy9Otf/1qHDh3SE088ofvuu091dXVauHChLrjgAt15553BzAsAAAAAiDC2B9Onn35av/3tb/Xzn/9cO3fuVEZGhpYvX67bb79dknTBBRdo2bJlDKYAAAAAAEdsf5T3s88+0+DBgyVJ3//+99WqVSv94Ac/aLj96quv1r59+9xPCAAAAACIaLYH0/bt26u6urrheteuXXX++ec3qvnqq6/cSwYAAAAAiAq2B9M+ffroo48+arheUlKinj17Nlz/9NNPlZqa6mo4AAAAAEDks/0d00cffVTnnXdek7cfOHBAv/jFL1wJFam6detmu/amm26yXfvSSy85ypGQkGC7trS01Hbt6NGjHeU4+9FwINq0atXKUX19fb3t2qVLl9quve+++xzl2Lx5s+3a6dOn26594IEHHOUAYE///v1t106ePDloOYBIUlxcbLt2zpw5jrb96quv2q797ne/62jb4cD2YDpo0KBvvf2uu+5qdhgAAAAAQPRxdB5TAAAAAADcxmAKAAAAADCKwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRrg2mr7zyip577jm3NgcAAAAAiBKuDaYPPPCAxo8f79bmAAAAAABRwvZ5TM/l008/dWtTAAAAAIAowndMAQAAAABGBbTHtLy8XFu3btWRI0dUX1/f6LZx48a5Eizavfjii7Zr77nnHkfbfv31153GsWXNmjVB2S4QDnJycmzXxsQ4+53g22+/bbv2hz/8oe3au+66y1EOJ5xkRnR57LHHTEeIGrt3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\n"
},
"metadata": {}
}
],
"source": [
"n_samples = 4\n",
"n_channels = 4\n",
"fig, axes = plt.subplots(1 + n_channels, n_samples, figsize=(10, 10))\n",
"for k in range(n_samples):\n",
" axes[0, 0].set_ylabel(\"Input\")\n",
" if k != 0:\n",
" axes[0, k].yaxis.set_visible(False)\n",
" axes[0, k].imshow(train_images[k, :, :, 0], cmap=\"gray\")\n",
"\n",
" # Plot all output channels\n",
" for c in range(n_channels):\n",
" axes[c + 1, 0].set_ylabel(\"Output [ch. {}]\".format(c))\n",
" if k != 0:\n",
" axes[c, k].yaxis.set_visible(False)\n",
" axes[c + 1, k].imshow(q_train_images[k, :, :, c], cmap=\"gray\")\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rCnk_yy0d0KE"
},
"source": [
"Below each input image, the $4$ output channels generated by the quantum\n",
"convolution are visualized in gray scale.\n",
"\n",
"One can clearly notice the downsampling of the resolution and some local\n",
"distortion introduced by the quantum kernel. On the other hand the\n",
"global shape of the image is preserved, as expected for a convolution\n",
"layer.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "vCjr6WvXd0KE"
},
"source": [
"Hybrid quantum-classical model\n",
"==============================\n",
"\n",
"After the application of the quantum convolution layer we feed the\n",
"resulting features into a classical neural network that will be trained\n",
"to classify the $10$ different digits of the MNIST dataset.\n",
"\n",
"We use a very simple model: just a fully connected layer with 10 output\n",
"nodes with a final *softmax* activation function.\n",
"\n",
"The model is compiled with a *stochastic-gradient-descent* optimizer,\n",
"and a *cross-entropy* loss function.\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"id": "PHtPdynad0KE"
},
"outputs": [],
"source": [
"def MyModel():\n",
" \"\"\"Initializes and returns a custom Keras model\n",
" which is ready to be trained.\"\"\"\n",
" model = keras.models.Sequential([\n",
" keras.layers.Flatten(),\n",
" keras.layers.Dense(10, activation=\"softmax\")\n",
" ])\n",
"\n",
" model.compile(\n",
" optimizer='adam',\n",
" loss=\"sparse_categorical_crossentropy\",\n",
" metrics=[\"accuracy\"],\n",
" )\n",
" return model"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WlOj9hwGd0KE"
},
"source": [
"Training\n",
"========\n",
"\n",
"We first initialize an instance of the model, then we train and validate\n",
"it with the dataset that has been already pre-processed by a quantum\n",
"convolution.\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 0
},
"id": "Zj8fE8uhd0KF",
"outputId": "7bf3457a-4b27-4e49-cba0-f4458f32c4fe"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/30\n",
"13/13 - 1s - loss: 2.8073 - accuracy: 0.0800 - val_loss: 2.5165 - val_accuracy: 0.2333 - 778ms/epoch - 60ms/step\n",
"Epoch 2/30\n",
"13/13 - 0s - loss: 2.1305 - accuracy: 0.1600 - val_loss: 2.2279 - val_accuracy: 0.3000 - 54ms/epoch - 4ms/step\n",
"Epoch 3/30\n",
"13/13 - 0s - loss: 1.7244 - accuracy: 0.4400 - val_loss: 2.1085 - val_accuracy: 0.3667 - 55ms/epoch - 4ms/step\n",
"Epoch 4/30\n",
"13/13 - 0s - loss: 1.3672 - accuracy: 0.7200 - val_loss: 1.8773 - val_accuracy: 0.4667 - 52ms/epoch - 4ms/step\n",
"Epoch 5/30\n",
"13/13 - 0s - loss: 1.1179 - accuracy: 0.8800 - val_loss: 1.7355 - val_accuracy: 0.5333 - 55ms/epoch - 4ms/step\n",
"Epoch 6/30\n",
"13/13 - 0s - loss: 0.9599 - accuracy: 0.8800 - val_loss: 1.6829 - val_accuracy: 0.5000 - 54ms/epoch - 4ms/step\n",
"Epoch 7/30\n",
"13/13 - 0s - loss: 0.7668 - accuracy: 0.9000 - val_loss: 1.5912 - val_accuracy: 0.4667 - 55ms/epoch - 4ms/step\n",
"Epoch 8/30\n",
"13/13 - 0s - loss: 0.6261 - accuracy: 0.9600 - val_loss: 1.4810 - val_accuracy: 0.6000 - 56ms/epoch - 4ms/step\n",
"Epoch 9/30\n",
"13/13 - 0s - loss: 0.5437 - accuracy: 0.9800 - val_loss: 1.4158 - val_accuracy: 0.6000 - 54ms/epoch - 4ms/step\n",
"Epoch 10/30\n",
"13/13 - 0s - loss: 0.4455 - accuracy: 1.0000 - val_loss: 1.4101 - val_accuracy: 0.6000 - 66ms/epoch - 5ms/step\n",
"Epoch 11/30\n",
"13/13 - 0s - loss: 0.4078 - accuracy: 1.0000 - val_loss: 1.3758 - val_accuracy: 0.5000 - 56ms/epoch - 4ms/step\n",
"Epoch 12/30\n",
"13/13 - 0s - loss: 0.3628 - accuracy: 1.0000 - val_loss: 1.3485 - val_accuracy: 0.6333 - 58ms/epoch - 4ms/step\n",
"Epoch 13/30\n",
"13/13 - 0s - loss: 0.3229 - accuracy: 1.0000 - val_loss: 1.2970 - val_accuracy: 0.6667 - 57ms/epoch - 4ms/step\n",
"Epoch 14/30\n",
"13/13 - 0s - loss: 0.2898 - accuracy: 1.0000 - val_loss: 1.2776 - val_accuracy: 0.5667 - 58ms/epoch - 4ms/step\n",
"Epoch 15/30\n",
"13/13 - 0s - loss: 0.2495 - accuracy: 1.0000 - val_loss: 1.2415 - val_accuracy: 0.7000 - 57ms/epoch - 4ms/step\n",
"Epoch 16/30\n",
"13/13 - 0s - loss: 0.2197 - accuracy: 1.0000 - val_loss: 1.2395 - val_accuracy: 0.7000 - 59ms/epoch - 5ms/step\n",
"Epoch 17/30\n",
"13/13 - 0s - loss: 0.2063 - accuracy: 1.0000 - val_loss: 1.2221 - val_accuracy: 0.6333 - 55ms/epoch - 4ms/step\n",
"Epoch 18/30\n",
"13/13 - 0s - loss: 0.1845 - accuracy: 1.0000 - val_loss: 1.1993 - val_accuracy: 0.7000 - 56ms/epoch - 4ms/step\n",
"Epoch 19/30\n",
"13/13 - 0s - loss: 0.1685 - accuracy: 1.0000 - val_loss: 1.2017 - val_accuracy: 0.6333 - 55ms/epoch - 4ms/step\n",
"Epoch 20/30\n",
"13/13 - 0s - loss: 0.1573 - accuracy: 1.0000 - val_loss: 1.1707 - val_accuracy: 0.7000 - 54ms/epoch - 4ms/step\n",
"Epoch 21/30\n",
"13/13 - 0s - loss: 0.1427 - accuracy: 1.0000 - val_loss: 1.1933 - val_accuracy: 0.6333 - 60ms/epoch - 5ms/step\n",
"Epoch 22/30\n",
"13/13 - 0s - loss: 0.1305 - accuracy: 1.0000 - val_loss: 1.1455 - val_accuracy: 0.7333 - 54ms/epoch - 4ms/step\n",
"Epoch 23/30\n",
"13/13 - 0s - loss: 0.1240 - accuracy: 1.0000 - val_loss: 1.1298 - val_accuracy: 0.7000 - 54ms/epoch - 4ms/step\n",
"Epoch 24/30\n",
"13/13 - 0s - loss: 0.1149 - accuracy: 1.0000 - val_loss: 1.1292 - val_accuracy: 0.6667 - 53ms/epoch - 4ms/step\n",
"Epoch 25/30\n",
"13/13 - 0s - loss: 0.1106 - accuracy: 1.0000 - val_loss: 1.1301 - val_accuracy: 0.7000 - 55ms/epoch - 4ms/step\n",
"Epoch 26/30\n",
"13/13 - 0s - loss: 0.1000 - accuracy: 1.0000 - val_loss: 1.1257 - val_accuracy: 0.6667 - 54ms/epoch - 4ms/step\n",
"Epoch 27/30\n",
"13/13 - 0s - loss: 0.0948 - accuracy: 1.0000 - val_loss: 1.1034 - val_accuracy: 0.7000 - 55ms/epoch - 4ms/step\n",
"Epoch 28/30\n",
"13/13 - 0s - loss: 0.0921 - accuracy: 1.0000 - val_loss: 1.1134 - val_accuracy: 0.7000 - 59ms/epoch - 5ms/step\n",
"Epoch 29/30\n",
"13/13 - 0s - loss: 0.0852 - accuracy: 1.0000 - val_loss: 1.1164 - val_accuracy: 0.6667 - 52ms/epoch - 4ms/step\n",
"Epoch 30/30\n",
"13/13 - 0s - loss: 0.0798 - accuracy: 1.0000 - val_loss: 1.1050 - val_accuracy: 0.6667 - 52ms/epoch - 4ms/step\n"
]
}
],
"source": [
"q_model = MyModel()\n",
"\n",
"q_history = q_model.fit(\n",
" q_train_images,\n",
" train_labels,\n",
" validation_data=(q_test_images, test_labels),\n",
" batch_size=4,\n",
" epochs=n_epochs,\n",
" verbose=2,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ZrgNg_sSd0KF"
},
"source": [
"In order to compare the results achievable with and without the quantum\n",
"convolution layer, we initialize also a \\\"classical\\\" instance of the\n",
"model that will be directly trained and validated with the raw MNIST\n",
"images (i.e., without quantum pre-processing).\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 0
},
"id": "xVJR8xXcd0KF",
"outputId": "e3e232a7-8ca2-44c5-abd3-c4e92c539f48"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/30\n",
"13/13 - 1s - loss: 2.4088 - accuracy: 0.1000 - val_loss: 2.2742 - val_accuracy: 0.0667 - 557ms/epoch - 43ms/step\n",
"Epoch 2/30\n",
"13/13 - 0s - loss: 2.0447 - accuracy: 0.3200 - val_loss: 2.1243 - val_accuracy: 0.1333 - 53ms/epoch - 4ms/step\n",
"Epoch 3/30\n",
"13/13 - 0s - loss: 1.7379 - accuracy: 0.5600 - val_loss: 1.9788 - val_accuracy: 0.3000 - 54ms/epoch - 4ms/step\n",
"Epoch 4/30\n",
"13/13 - 0s - loss: 1.4931 - accuracy: 0.7000 - val_loss: 1.8370 - val_accuracy: 0.3667 - 53ms/epoch - 4ms/step\n",
"Epoch 5/30\n",
"13/13 - 0s - loss: 1.2784 - accuracy: 0.7800 - val_loss: 1.7118 - val_accuracy: 0.4667 - 55ms/epoch - 4ms/step\n",
"Epoch 6/30\n",
"13/13 - 0s - loss: 1.1051 - accuracy: 0.8600 - val_loss: 1.6148 - val_accuracy: 0.5333 - 52ms/epoch - 4ms/step\n",
"Epoch 7/30\n",
"13/13 - 0s - loss: 0.9611 - accuracy: 0.9200 - val_loss: 1.5410 - val_accuracy: 0.5333 - 54ms/epoch - 4ms/step\n",
"Epoch 8/30\n",
"13/13 - 0s - loss: 0.8383 - accuracy: 0.9200 - val_loss: 1.4676 - val_accuracy: 0.6333 - 57ms/epoch - 4ms/step\n",
"Epoch 9/30\n",
"13/13 - 0s - loss: 0.7386 - accuracy: 0.9600 - val_loss: 1.4067 - val_accuracy: 0.6000 - 55ms/epoch - 4ms/step\n",
"Epoch 10/30\n",
"13/13 - 0s - loss: 0.6529 - accuracy: 0.9600 - val_loss: 1.3641 - val_accuracy: 0.6667 - 54ms/epoch - 4ms/step\n",
"Epoch 11/30\n",
"13/13 - 0s - loss: 0.5889 - accuracy: 0.9600 - val_loss: 1.3144 - val_accuracy: 0.6667 - 53ms/epoch - 4ms/step\n",
"Epoch 12/30\n",
"13/13 - 0s - loss: 0.5294 - accuracy: 0.9600 - val_loss: 1.3048 - val_accuracy: 0.6667 - 56ms/epoch - 4ms/step\n",
"Epoch 13/30\n",
"13/13 - 0s - loss: 0.4774 - accuracy: 1.0000 - val_loss: 1.2699 - val_accuracy: 0.7000 - 51ms/epoch - 4ms/step\n",
"Epoch 14/30\n",
"13/13 - 0s - loss: 0.4312 - accuracy: 1.0000 - val_loss: 1.2246 - val_accuracy: 0.7000 - 55ms/epoch - 4ms/step\n",
"Epoch 15/30\n",
"13/13 - 0s - loss: 0.3910 - accuracy: 1.0000 - val_loss: 1.1975 - val_accuracy: 0.6667 - 54ms/epoch - 4ms/step\n",
"Epoch 16/30\n",
"13/13 - 0s - loss: 0.3584 - accuracy: 1.0000 - val_loss: 1.1806 - val_accuracy: 0.6667 - 59ms/epoch - 5ms/step\n",
"Epoch 17/30\n",
"13/13 - 0s - loss: 0.3300 - accuracy: 1.0000 - val_loss: 1.1628 - val_accuracy: 0.6667 - 57ms/epoch - 4ms/step\n",
"Epoch 18/30\n",
"13/13 - 0s - loss: 0.3042 - accuracy: 1.0000 - val_loss: 1.1387 - val_accuracy: 0.7333 - 53ms/epoch - 4ms/step\n",
"Epoch 19/30\n",
"13/13 - 0s - loss: 0.2791 - accuracy: 1.0000 - val_loss: 1.1320 - val_accuracy: 0.7333 - 54ms/epoch - 4ms/step\n",
"Epoch 20/30\n",
"13/13 - 0s - loss: 0.2593 - accuracy: 1.0000 - val_loss: 1.1106 - val_accuracy: 0.7000 - 53ms/epoch - 4ms/step\n",
"Epoch 21/30\n",
"13/13 - 0s - loss: 0.2410 - accuracy: 1.0000 - val_loss: 1.1067 - val_accuracy: 0.7000 - 52ms/epoch - 4ms/step\n",
"Epoch 22/30\n",
"13/13 - 0s - loss: 0.2236 - accuracy: 1.0000 - val_loss: 1.0932 - val_accuracy: 0.7667 - 55ms/epoch - 4ms/step\n",
"Epoch 23/30\n",
"13/13 - 0s - loss: 0.2085 - accuracy: 1.0000 - val_loss: 1.0805 - val_accuracy: 0.7667 - 51ms/epoch - 4ms/step\n",
"Epoch 24/30\n",
"13/13 - 0s - loss: 0.1950 - accuracy: 1.0000 - val_loss: 1.0707 - val_accuracy: 0.7667 - 52ms/epoch - 4ms/step\n",
"Epoch 25/30\n",
"13/13 - 0s - loss: 0.1841 - accuracy: 1.0000 - val_loss: 1.0642 - val_accuracy: 0.7667 - 61ms/epoch - 5ms/step\n",
"Epoch 26/30\n",
"13/13 - 0s - loss: 0.1720 - accuracy: 1.0000 - val_loss: 1.0569 - val_accuracy: 0.7667 - 51ms/epoch - 4ms/step\n",
"Epoch 27/30\n",
"13/13 - 0s - loss: 0.1626 - accuracy: 1.0000 - val_loss: 1.0449 - val_accuracy: 0.7667 - 53ms/epoch - 4ms/step\n",
"Epoch 28/30\n",
"13/13 - 0s - loss: 0.1541 - accuracy: 1.0000 - val_loss: 1.0387 - val_accuracy: 0.8000 - 53ms/epoch - 4ms/step\n",
"Epoch 29/30\n",
"13/13 - 0s - loss: 0.1452 - accuracy: 1.0000 - val_loss: 1.0370 - val_accuracy: 0.7667 - 54ms/epoch - 4ms/step\n",
"Epoch 30/30\n",
"13/13 - 0s - loss: 0.1368 - accuracy: 1.0000 - val_loss: 1.0311 - val_accuracy: 0.7667 - 52ms/epoch - 4ms/step\n"
]
}
],
"source": [
"c_model = MyModel()\n",
"\n",
"c_history = c_model.fit(\n",
" train_images,\n",
" train_labels,\n",
" validation_data=(test_images, test_labels),\n",
" batch_size=4,\n",
" epochs=n_epochs,\n",
" verbose=2,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "oXLGIhPJd0KF"
},
"source": [
"Results\n",
"=======\n",
"\n",
"We can finally plot the test accuracy and the test loss with respect to\n",
"the number of training epochs.\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 963
},
"id": "fwDEhq0Qd0KF",
"outputId": "78e7b847-e1c2-4433-90da-f9e99653d18b"
},
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-13-c3ef9ba498fb>:3: MatplotlibDeprecationWarning: The seaborn styles shipped by Matplotlib are deprecated since 3.6, as they no longer correspond to the styles shipped by seaborn. However, they will remain available as 'seaborn-v0_8-<style>'. Alternatively, directly use the seaborn API instead.\n",
" plt.style.use(\"seaborn\")\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x900 with 2 Axes>"
],
"image/png": "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7Nkz1++JBX0vStJkhfj4eDw9PbMcy0ig7ty5Y48ulVgtWrQgODiY7du3s2LFCo4fP8706dPt3a0SKz4+PksyD+b3prwvLVexYkX8/Px44403+P3333n99dd56623CAsLs3fXHFpERARLly5l1KhROX6PrFChAvHx8bL2Mx/3x9HZ2ZmWLVvStWtXfvvtNxYsWMD69euZN2+evbvpkKKjo2natCm9evWiWbNmvPLKK7m+Fwv6PVGSJiupqmrvLpQKK1as4IknnsDZ2Zm6desyYcIENm7cSFpamr27VmLJe9M6jzzyCN988w2NGzfG2dmZkJAQunbtypo1a+zdNYd19OhRhg8fzvjx4wkODs61naIoxdirkuffcaxatSrLly+na9euODk50bx5c0aMGCHvxVzUqFGDiIgItm7dSlRUFG+++abN7i1JkxUqVqxIfHx8lmPx8fEoikLFihXt06lSombNmhiNRm7dumXvrpRI3t7eOb435X1pnRo1anD9+nV7d8Mh7dq1i5dffpm33nqLoUOHAubvkf/+TT4+Pp4KFSqg0ciPn5zkFMec1KhRg5s3b8ovR7lQFAU/Pz/GjRvHxo0b0el02b4n3rlzp8DfE+Vda4WmTZsSExPD7du3M49FRERQr149PDw87NizkuXUqVN88MEHWY5duHABZ2fnLPP5wnJNmzbNNlcfERHBgw8+aKcelTzLli1j8+bNWY5duHCBWrVq2alHjuvYsWNMnDiRzz77jH79+mUeb9q0KWfPnsVgMGQek/dh7nKLY1hYGPPnz8/S9uLFi9SoUUNG7e4TFhZG9+7ds0z9ZiTnzZs3z/Y98a+//irwe1GSJis0btyYZs2a8cknn5CYmMiFCxf47rvvGDRokL27VqJUqlSJFStWsGDBAtLS0oiMjOSzzz7jqaeeyrKAVFjuySef5MCBA+zevRu9Xs+qVauIioqib9++9u5aiZGWlsa7775LREQE6enpbNy4kb179/L000/bu2sOxWAw8M477zBhwgQ6dOiQ5VynTp0oV64c8+fPJyUlhT///JNVq1bJ98gc5BXH8uXLM3fuXNatW0d6ejoREREsWrRI4vgvTZs2JTExkdmzZ5OSksLt27f54osvaNOmDYMGDSI6OpqVK1ei1+vZs2cPYRrziAAABN1JREFUe/bs4cknnyzQayiqjO1ZJTY2lsmTJ3Po0CHKlSvH008/zdixYyX7L6DDhw/zySefcPbsWZydnenfvz/jxo3DxcXF3l1zWM2aNQPI/C0+44mRjCfktm/fzieffEJ0dDT16tXj7bffpm3btvbprIPKK4aqqjJ//nxWrVrFjRs3qFmzJm+++SadO3e2W38d0ZEjR3jmmWdwdnbOdm7r1q0kJSUxdepU/vrrLypXrsxLL73E4MGD7dBTx5ZfHE+dOsWXX35JVFQU5cuXZ8iQIbz00ksyzfkvZ8+eZebMmZw4cQJ3d3eCgoKYNGkS1apV4/Dhw8ycOZMLFy5Qo0YNxo8fT7du3Qp0f0mahBBCCCEsICmqEEIIIYQFJGkSQgghhLCAJE1CCCGEEBaQpEkIIYQQwgKSNAkhhBBCWECSJiGEEEIIC0jSJIQQQghhAUmahBBCCCEsIEmTEEJYYM2aNTzwwAP27oYQwo509u6AEELkZ8iQIRw5ciRzm5N/W758OU2aNCnmXgkhyhpJmoQQJUKPHj2YM2eOvbshhCjDZHpOCFEqdOnShTlz5vB///d/tG3blpYtW/L222+TlpaW2ebIkSMMGjSItm3b0rp1a0aNGsXly5czz9+6dYs33niDwMBAAgMDGTNmDNHR0VleJyIigscff5zmzZvzyCOP8Ouvvxbb5yiEsC9JmoQQpcZPP/1Eu3btOHDgAIsXL+bXX39l7ty5AFy6dIlhw4bxyCOPsHfvXrZv3056ejovvvgiRqMRgLFjx3L37l22bNnCzp070Wq1jBw5kvv3NV+8eDHz5s3j0KFDtGnThrfeeitLYiaEKL1kek4IUSJs3bo1x1Gdtm3b8u233wLQrFkz+vbtC0Dz5s3p3bs327dvZ9y4cSxfvpwaNWrw8ssvoygKbm5uTJgwgdDQUI4dO0b58uU5duwYa9asoWLFigC8/fbbHD16NEtS9NJLL1GtWjUA+vTpw4YNG7h+/To1a9Ys6hAIIexMkiYhRIlgyZqmevXqZfm4Vq1axMbGAuaRpvr166MoSub5unXrAnD58mU8PDwyr8lQrVo1evXqleWetWvXzvy3q6srAHq9vqCfjhCiBJLpOSFEqZExzZZBVdXMJCmnxCZj2k1RFLRaLQAmkynP19Bo5NumEGWVfPULIUqNqKioLB9fvnyZ6tWrA+Dv78/ff/+dZX3S33//nXnOz88PgAsXLmSev3HjBosWLeLevXtF23EhRIkgSZMQotT4888/2bJlC2lpaZw4cYLNmzfTo0cPAAYOHEh0dDQLFiwgLS2N69evM3v2bBo2bEiLFi2oX78+bdu2Zc6cOcTFxZGUlMQnn3zC6tWrKVeunJ0/MyGEI5A1TUKIEiG3heAAo0aNAqB///7s3buXKVOmYDAY6NOnDyNGjACgYcOGzJs3j7lz57JgwQI8PDwIDg5mzpw5mVN4c+fOZcaMGfTq1QutVkvr1q35+uuvs6yDEkKUXYp6/1i1EEKUUF26dKFXr15MmDDB3l0RQpRSMj0nhBBCCGEBSZqEEEIIISwg03NCCCGEEBaQkSYhhBBCCAtI0iSEEEIIYQFJmoQQQgghLCBJkxBCCCGEBSRpEkIIIYSwgCRNQgghhBAWkKRJCCGEEMICkjQJIYQQQljg/wGNLZKCZ0TdTQAAAABJRU5ErkJggg==\n"
},
"metadata": {}
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.style.use(\"seaborn\")\n",
"fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(6, 9))\n",
"\n",
"ax1.plot(q_history.history[\"val_accuracy\"], \"-ob\", label=\"With quantum layer\")\n",
"ax1.plot(c_history.history[\"val_accuracy\"], \"-og\", label=\"Without quantum layer\")\n",
"ax1.set_ylabel(\"Accuracy\")\n",
"ax1.set_ylim([0, 1])\n",
"ax1.set_xlabel(\"Epoch\")\n",
"ax1.legend()\n",
"\n",
"ax2.plot(q_history.history[\"val_loss\"], \"-ob\", label=\"With quantum layer\")\n",
"ax2.plot(c_history.history[\"val_loss\"], \"-og\", label=\"Without quantum layer\")\n",
"ax2.set_ylabel(\"Loss\")\n",
"ax2.set_ylim(top=2.5)\n",
"ax2.set_xlabel(\"Epoch\")\n",
"ax2.legend()\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "eFIiSMV9d0KF"
},
"source": [
"References\n",
"==========\n",
"\n",
"1. Maxwell Henderson, Samriddhi Shakya, Shashindra Pradhan, Tristan\n",
" Cook. \\\"Quanvolutional Neural Networks: Powering Image Recognition\n",
" with Quantum Circuits.\\\"\n",
" [arXiv:1904.04767](https://arxiv.org/abs/1904.04767), 2019.\n",
"\n",
"About the author\n",
"================\n"
]
},
{
"cell_type": "code",
"source": [
"seconds = time.time()\n",
"print(\"Time in seconds since end of run:\", seconds)\n",
"local_time = time.ctime(seconds)\n",
"print(local_time)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 0
},
"id": "DN7xl_1qggGu",
"outputId": "ad560007-ba6e-46f3-a656-458cc650439e"
},
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Time in seconds since end of run: 1706119704.7335792\n",
"Wed Jan 24 18:08:24 2024\n"
]
}
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.13"
},
"colab": {
"provenance": [],
"machine_shape": "hm"
}
},
"nbformat": 4,
"nbformat_minor": 0
}