{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "b9b5254c", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-12-08 14:41:19.256866: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "2022-12-08 14:41:19.373399: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\n", "2022-12-08 14:41:19.373421: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\n", "2022-12-08 14:41:19.400498: E tensorflow/stream_executor/cuda/cuda_blas.cc:2981] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", "2022-12-08 14:41:19.997927: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory\n", "2022-12-08 14:41:19.997995: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory\n", "2022-12-08 14:41:19.998005: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.\n" ] } ], "source": [ "from library.analysis import loadDataset, testSets\n", "from library.generators.XConvGeN import XConvGeN, GeneratorConfig\n", "from library.timing import timing\n", "from fdc.fdc import FDC\n", "#from matplotlib import pyplot as plt\n", "import numpy as np\n", "import tensorflow as tf" ] }, { "cell_type": "code", "execution_count": 2, "id": "6bfec0a2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Load 'folding_abalone_17_vs_7_8_9_10'\n", "from pickle file\n", "Data loaded.\n" ] } ], "source": [ "data = loadDataset(testSets[0])" ] }, { "cell_type": "code", "execution_count": 3, "id": "6d686da5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2338, 2280, 58)\n" ] } ], "source": [ "print((len(data.data), len(data.data0), len(data.data1)))" ] }, { "cell_type": "code", "execution_count": 4, "id": "9e3e3806", "metadata": {}, "outputs": [], "source": [ "fdc = FDC()\n", "fdc.nom_list = [0]\n", "fdc.cont_list = list(range(data.data0.shape[1]))[1:]" ] }, { "cell_type": "code", "execution_count": 5, "id": "01d71d6a", "metadata": {}, "outputs": [], "source": [ "config = GeneratorConfig(n_feat=data.data0.shape[1], neb=5)\n", "gen = XConvGeN(config=config, fdc=fdc, debug=True)" ] }, { "cell_type": "code", "execution_count": 6, "id": "ad01be2b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-12-08 14:41:25.957085: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory\n", "2022-12-08 14:41:25.957108: W tensorflow/stream_executor/cuda/cuda_driver.cc:263] failed call to cuInit: UNKNOWN ERROR (303)\n", "2022-12-08 14:41:25.957126: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (f689f5a8be0b): /proc/driver/nvidia/version does not exist\n", "2022-12-08 14:41:25.957308: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "neb=5, gen=5\n", "Model: \"model\"\n", "__________________________________________________________________________________________________\n", " Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", " input_1 (InputLayer) [(None, 5, 8)] 0 [] \n", " \n", " UnsharpenInput (Conv1D) (None, 3, 8) 200 ['input_1[0][0]'] \n", " \n", " InputMatrixToVector (Flatten) (None, 24) 0 ['UnsharpenInput[0][0]'] \n", " \n", " P5_dense (Dense) (None, 25) 625 ['InputMatrixToVector[0][0]'] \n", " \n", " P5_reshape (Reshape) (None, 5, 5) 0 ['P5_dense[0][0]'] \n", " \n", " tf.math.reduce_sum (TFOpLambda (None, 5) 0 ['P5_reshape[0][0]'] \n", " ) \n", " \n", " P5_make_non_zero (Lambda) (None, 5) 0 ['tf.math.reduce_sum[0][0]'] \n", " \n", " tf.math.reciprocal (TFOpLambda (None, 5) 0 ['P5_make_non_zero[0][0]'] \n", " ) \n", " \n", " P5_normalize (Multiply) (None, 5, 5) 0 ['tf.math.reciprocal[0][0]', \n", " 'P5_reshape[0][0]'] \n", " \n", " tf.__operators__.getitem (Slic (5, 5) 0 ['P5_normalize[0][0]'] \n", " ingOpLambda) \n", " \n", " tf.compat.v1.transpose (TFOpLa (5, 5) 0 ['tf.__operators__.getitem[0][0]'\n", " mbda) ] \n", " \n", " tf.linalg.matmul (TFOpLambda) (None, 5, 8) 0 ['tf.compat.v1.transpose[0][0]', \n", " 'input_1[0][0]'] \n", " \n", " tf.identity (TFOpLambda) (None, 5, 8) 0 ['tf.linalg.matmul[0][0]'] \n", " \n", " RandomNoise (Sequential) (None, 40) 3280 ['tf.identity[0][0]'] \n", " \n", " ReshapeNoise (Reshape) (None, 5, 8) 0 ['RandomNoise[0][0]'] \n", " \n", " AddNoise (Add) (None, 5, 8) 0 ['tf.identity[0][0]', \n", " 'ReshapeNoise[0][0]'] \n", " \n", "==================================================================================================\n", "Total params: 4,105\n", "Trainable params: 4,105\n", "Non-trainable params: 0\n", "__________________________________________________________________________________________________\n", "None\n", "\n", "\n", "Model: \"model_1\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " input_3 (InputLayer) [(None, 8)] 0 \n", " \n", " dense_1 (Dense) (None, 250) 2250 \n", " \n", " dense_2 (Dense) (None, 125) 31375 \n", " \n", " dense_3 (Dense) (None, 75) 9450 \n", " \n", " dense_4 (Dense) (None, 2) 152 \n", " \n", "=================================================================\n", "Total params: 43,227\n", "Trainable params: 0\n", "Non-trainable params: 43,227\n", "_________________________________________________________________\n", "None\n", "\n", "\n", "Model: \"model_2\"\n", "__________________________________________________________________________________________________\n", " Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", " input_4 (InputLayer) [(None, 2, 5, 8)] 0 [] \n", " \n", " SplitForGen (Lambda) (None, 5, 8) 0 ['input_4[0][0]'] \n", " \n", " model (Functional) (None, 5, 8) 4105 ['SplitForGen[0][0]'] \n", " \n", " SplitForDisc (Lambda) (None, 5, 8) 0 ['input_4[0][0]'] \n", " \n", " tf.reshape_1 (TFOpLambda) (None, 8) 0 ['model[0][0]'] \n", " \n", " tf.reshape (TFOpLambda) (None, 8) 0 ['SplitForDisc[0][0]'] \n", " \n", " model_1 (Functional) (None, 2) 43227 ['tf.reshape_1[0][0]', \n", " 'tf.reshape[0][0]'] \n", " \n", " tf.reshape_2 (TFOpLambda) (None, 5, 2) 0 ['model_1[0][0]'] \n", " \n", " tf.reshape_3 (TFOpLambda) (None, 5, 2) 0 ['model_1[1][0]'] \n", " \n", " tf.concat (TFOpLambda) (None, 10, 2) 0 ['tf.reshape_2[0][0]', \n", " 'tf.reshape_3[0][0]'] \n", " \n", "==================================================================================================\n", "Total params: 47,332\n", "Trainable params: 4,105\n", "Non-trainable params: 43,227\n", "__________________________________________________________________________________________________\n", "None\n", "\n", "\n" ] } ], "source": [ "gen.reset(data.data1)" ] }, { "cell_type": "code", "execution_count": 7, "id": "4698522c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FDC.normalize (init): 0.00003 / 0.000s\n", "|data| = (58, 8)\n", "umap with metric 'euclidean'\n", "|part| = (58, 7)\n", "|emb_A| = (58, 2)\n", "|emb_A| = (58, 2)\n", "FDC.normalize (clustering CONT): 6.00453 / 6.005s\n", "FDC.normalize (clustering ORD): 0.00002 / 6.005s\n", "umap with metric 'hamming'\n", "|part| = (58, 1)\n", "|emb_A| = (58, 1)\n", "|emb_A| = (58, 1)\n", "FDC.normalize (clustering NOM): 1.08310 / 7.088s\n", "FDC.normalize (concat): 0.00004 / 7.088s\n", "|fdc| = (58, 3)\n", "FDC.normalize (total): 0.00002 / 7.088s\n", "[==========] [====== ] [====== ]\r" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABVsAAAOGCAYAAADyKUC3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAADjY0lEQVR4nOzdd3RU1f7+8WfSeyEk1EAgIfQmvYYgojQrF1GRoiJiQ64V9ApeCyp2BRVFig2vHQRBxNBBivQeSiC0UNPbZM7vD36cbwIpE0iYlPdrrVnrzMw++3xm5syZyZM9+1gMwzAEAAAAAAAAALgqTo4uAAAAAAAAAAAqAsJWAAAAAAAAACgBhK0AAAAAAAAAUAIIWwEAAAAAAACgBBC2AgAAAAAAAEAJIGwFAAAAAAAAgBJA2AoAAAAAAAAAJYCwFQAAAAAAAABKAGErAAAAAAAAAJQAwlYAACopi8ViXg4dOuSQGsLCwswali5d6pAaKrLK/vwuXbrUfPxhYWGOLqdciouL09NPP602bdooICBAzs7O5nM6ceJER5fnED169DCfg5kzZ+bbprLue2Xhc8Vew4cPr/T7MgCgdLg4ugAAAAoyfPhwzZo1q8D7XV1d5e/vr9q1a6tNmza69dZb1adPHzk7O1/DKgGgYvrzzz912223KSUlxdGlAAAAlBuErQCAcis7O1unT5/W6dOntXnzZk2fPl2NGjXS7Nmz1a5dO0eXBwDlVnp6uu655x4zaHV2dlbLli1VtWpVWSwWSVJERIQjSwRwibCwMMXFxUmSYmJi1KNHD8cWBACVFGErAKBcCAwMVPv27fPclpmZqfj4eMXGxpq37d69W9HR0YqJiSFwBYArNG/ePCUkJEiSfHx8tGHDBjVs2NDBVQEAAJR9hK0AgHKhRYsWWrhwYb73HThwQM8884x+/PFHSVJqaqpGjBihrVu3ysmJ6clReZX1ORNRdm3cuNFcvuOOOwhai6lHjx4yDMPRZVxz5ekxz5w5s8A5dwEAuBr8BQoAKPfq16+v77//XgMGDDBv27FjhxYtWuTAqgCg/Dp79qy5HBoa6sBKAAAAyhfCVgBAhWCxWPTSSy/lue2vv/5yUDUAUL5lZ2eby5x0EAAAwH6ErQCACqNVq1by9vY2rx88eNCu9ZYuXaqHHnpITZo0UWBgoDw9PVW3bl317dtXH3/8sVJTU4vs49ChQ7JYLObFHjNnzjTb23MSC8Mw9P333+vmm29W7dq15eHhodDQUF1//fWaOXOmMjMzr6jf3JKSkvTBBx+oc+fOqlatmrmNwYMHl5nwOi4uTq+99pq6d++u2rVry93dXUFBQWrVqpWeeuop7dy50+6+EhMT9d1332nUqFHq2LGjgoOD5ebmJl9fX9WrV08DBw7UF198oaysLLv669Gjh/ncX/x5alZWlr7++mv1799f9evXl6enZ577JeXZdy7+9L8kXouwsDCz36VLl+bbpqD9ZceOHXr00UfVuHFj+fj4yM/PTy1atNAzzzyjEydO2LX9i86cOaNXXnlFbdu2VZUqVeTt7a2GDRtqxIgRWrt2rdkuv+fvWjt37pzeffddXX/99eb7LCgoSM2bN9eYMWO0bt26YvW3bt06Pfroo7ruuutUpUoVubi4yMvLSzVr1lSXLl30yCOP6H//+1+Rx5mdO3fq6aefVseOHVW1alW5ubnJ09NT1apVU/v27fXAAw9o5syZeUakFtfw4cPN53/WrFnm7S+99FKefdRisWj48OEF9rN37149//zzateunapVqyZ3d3fVqFFDnTt31ssvv6wjR47YVc+Vvp+uVFJSkiZPnqwOHTooKChI3t7eioyM1LBhw7Rq1api9bV06VKz9rCwsELb2mw2/fzzz7r77rvVsGFD+fn5ycXFxTwO3XDDDRo3bpyWLFminJwcu7a/efNmjR8/Xh06dFDNmjXl7u4uHx8fNWjQQHfccYc+/vhjnTp1Kt91J06cmO/r/Ndff2n48OFq1KiR/P39890P8juW2dv/okWLNGjQIIWHh8vDw0OBgYHq1auXOUXQpXbs2KFRo0YpMjJSHh4e8vf3V9u2bfXmm2+an4eFyb2/T5w4Md82BX22JyQk6LXXXlPbtm0VFBQkT09P1a9fXyNGjNA///xT5LZz9zNr1iwNHz7cPEa4uroqICBAkZGRGjJkiL7//nvZbLYC+8hd48WTY0lSdHT0Ze9be74XlMR3Iin/feHUqVN655131LVrV9WuXVuurq6F7isAUG4ZAACUUcOGDTMkGZKMqKgou9apVauWuU6vXr0KbXvq1Cmjf//+ZvuCLrVq1TLmz59faF8HDx7Ms449ZsyYYffjO3XqlBEdHV1ona1btzYOHDhgd7+51z148KCxfv16IywsrNBtPProo4bNZrPr8dmjbt26Zt8xMTGFts3OzjbGjRtnuLu7F1qjs7OzMXbsWMNqtRba3+TJk4vs6+IlNDTUWLNmTZGPJyoqylxnxowZxt69e43WrVvn2+eMGTPM9UrrtbDn+c1vf3n99dcNFxeXArft6+trLFmypMjnwzAMY8GCBUZwcHChj+XJJ580rFbrZc/f1YqJiTH7q1u3bpHtv/rqKyMoKKjI/eGee+4xUlJSCu0rIyPDGDp0qF37lySjT58++fZjs9mMp59+2nBycrKrn8aNG1/JU2UYRt5jblGXYcOGXba+1Wo1nnnmGcPV1bXQdT09PY1JkyYVWc+Vvp+uxMqVK43Q0NBC637iiSeM7Oxsu/ZTe/e9uLg4o127dnY/72+88UahjyMhIcEYOHCgYbFYiuzLzc3N2L1792V9TJgwIc/rnJSUZAwePNiu/eDSY1l+Lu0/LS3NuPfeewut9eGHH87Tx2uvvWY4OzsX2L5FixbG6dOnC32ucu/vEyZMyLdNfp/tCxcuNKpWrVrgtp2cnIzXX3+90G0bhmGMGTOm0MeQ+9KsWTNjz549dtVY1KWg7wUl+Z3IMC7fFwr7LChoXwGA8ooTZAEAKgzDMHTu3Dnzuq+vb4FtT548qZ49e+YZBenu7q5mzZrJ29tb+/bt0/HjxyVJR48e1S233KIvv/xSgwcPLr0HUIDk5GT17t1bmzZtMm9zcXFR8+bN5e/vr8OHD+vAgQPatGmTbrjhBo0ZM6bY29i5c6cGDx6s5ORkWSwWNW3aVMHBwTp16pR27NhhnvTko48+Ut26dfXUU0+V2OOzR0ZGhgYOHKj58+ebtzk5OalJkyYKDg5WSkqKtm7dqszMTOXk5Ojdd9/VkSNH9L///a/Akca7d+/OM/opNDRUtWrVkre3t1JSUrR7924lJiZKko4cOaLo6GitXLlSbdq0savmM2fO6PrrrzdH8dWpU0f16tVTamqqdu/eXeB6jn4tXn75Zb344ouSLryHmjRpIg8PD+3evVsnT56UdGGfvPnmm7Vjxw7VrVu3wL6WLFmi2267Lc/zHBQUpMaNG8tqtWrXrl1KTEzU22+/7fCT2X3wwQeXvXdCQ0NVv359JSUladu2bbJarZKkr7/+WgcOHNCiRYsKPM6MGDFC3377rXndxcVFDRs2VEhIiAzD0NmzZ7V3715lZGRIUoEj155//nlNnjzZvG6xWNSgQQPVrFlTTk5OOnfunPbt26eUlJRC+7FH8+bNdeONN0qStm3bpmPHjkmSwsPDFRERcVnb3Gw2m+666y59//33eWpt3LixQkJCdOzYMe3du1eSlJ6ernHjxik+Pl4fffSRXbVd6fvJHhs2bFCfPn2UnJxs3hYYGKgmTZrIarVq586dSk5O1nvvvSdXV9er2lZuaWlpuv766xUbG2ve5u3trUaNGikwMFAZGRk6efKk9u/fb76uhb2+sbGxuvHGG3XgwIE8t0dGRqpGjRqyWq06fPiw+RxmZWUpPT290BoNw9Bdd91lHnsDAwPVqFEjOTk55an7aowYMULfffedJKl27doKDw9XWlqaNm/ebE5nMXXqVIWGhuq5557TpEmTNH78eEmSv7+/mjRpIhcXF23btk3nz5+XJG3dulV33313ic/dHhMTo/79+8tqtZqfwwEBAYqPj9e+ffskXXiNnnvuOYWHh2vgwIEF9rV9+3ZzpLLFYlG9evVUvXp1eXp66vz589q1a5fS0tLMtp06ddKmTZtUp06dPP14enqa79tly5aZx5R27dqpSpUql223RYsWl91W2t+JVq9erWHDhslqtZrHhWrVqun06dPF+jUKAJQbDo16AQAoRHFHtq5bty7PSIn//Oc/Bbbt16+f2c5isRhPPfWUce7cOfN+m81mzJs3z6hZs2ae0Vj2jiyxh70jUEePHp2n7/vvv984derUZY+9ZcuWhqQ8I27sHdl6cTTf/fffbxw7dixPu127dhnNmzc323p7exuJiYl2Pcai2DuyddSoUXlGY7300kvGmTNn8rRJSUkxXn755Twjhd57770C+xw5cqTRp08f46uvvsp3BFROTo4xf/58o2HDhmZ/jRs3NnJycgrsM/eIN19fX0OS0aZNG2Pt2rV52qWmphrHjx83r5fWa1Hcka1VqlQxLBaLERAQYMyYMcPIysoy29lsNmPmzJmGm5ub2X7IkCEFbvv8+fNGjRo1zLYBAQHG7NmzjezsbLNNZmamMXXqVMPLy8uwWCx5RpVey5Gta9asybPfNGjQwFi6dGmeNgkJCcZ9992X57W677778u1vw4YNedq98MILeY4vF1mtVmPVqlXG448/bvzrX/+67P7jx4/nGSU6cuTIPPvNRTabzdi0aZPx/PPPG127di38SbGTPaP+cnvzzTfzPOabbrrJ2L9/f54227ZtMzp27Jin3ezZswvs80rfT8WRkZFhREREmNvx8vIyPv74YyMzM9Nsk5aWZkyaNMlwcXGxez+1Z9976623zDZ+fn7Gl19+mec9l/vx/frrr8bAgQONN998M9++UlNTjSZNmpj9OTk5GWPGjDHi4+MvaxsfH2+89957Rnh4uLFp06bL7s898vTi8x4SEmLMmTMnz/s3JyfHOHDgQJ51c7+29oxsrVKliiHJiIiIuGy0/IkTJ4yePXuabf39/Y2FCxcaTk5Ohre3tzFt2rQ8z1dGRobxxBNP5Klh8eLF+dZgGFc2sjUoKMiwWCzGc889d9l7eu3atUbt2rXNtnXq1Cn08+Kmm24yBg0aZPz0009GUlLSZfdnZmYa33zzTZ7vIb179y6wP8Mo3q9Fcivp70SGkXdfuLgf3XXXXcbhw4fztDt27JiRlpZmd60AUB4QtgIAyqzihK02m83o06dPni/3+f0RaRiG8euvv+ZpV9jPWffs2WP+MXgxQMhPaYWtu3fvzvNz0Et/Spnb2bNnjcjIyDx12Bu2SjKee+65AtsePnzY8PLyMttOnz7drsdYFHv+MPzrr7/MNu7u7peFYJf66quv8vxxnpycnG+7on4GftGZM2eM+vXrm33+9ttvBbbNHQ5JF6Z2KGj7uZXWa1HcsPXiH9AFvXcMwzDefvvtPG0Leh7Hjx9vtnNxcTFWrVpVYJ+//fbbZc/BtQxbc/80vW7dusaJEycKbPvII4/kqfPS4M8wDOO///2veX9hgXRu+U17MXv2bLMfe0PUoqbPsFdxwtaTJ08aHh4eZvu+ffsWWEdqaqrRvn37PGFbQUHLlb6fimPy5Ml5QqZ58+YV2Pbzzz+3ez+1Z9/LHSR+/vnndtVb0PP69NNP5wlav/vuuyL7ys7ONtLT0y+7PXcYejEo27Vrl131FTdslS78LL2g99y5c+fyfAa7ubkZzs7OhX4O9OjRw2w/dOjQAttdSdgqyfjkk08K7HP9+vV5PrMLm27F3s+ggwcPGgEBAWaf27ZtK7DtlYStpfGdyDAu/1wbOXKkXfUAQEXACbIAAOXegQMHdMcdd+j33383b7vrrrvUqlWrfNtPmTLFXG7Tpo2effbZAvuOjIzUK6+8Yl5ftGiR+VPBa+Hzzz83fzZevXp1vfnmmwW2DQwM1Pvvv39F24mMjNTLL79c4P2hoaF5fg5Z3JPFXI3cj/n5559XVFRUoe3vuece9enTR9KFE2B9/fXX+bbLfTK1wlSpUkXPP/+8ef3XX3+1az1JmjZtmnx8fOxuLzn+tRg3blyB7x1JGjVqlDw9PSVd+Dl4fieDsVqt+uKLL8zro0ePVufOnQvss1+/frrzzjuvvOirsGbNmjxTdHzwwQeqVq1age3feuutPFMn5Pcz+Pj4eHO5S5cudtXh7Oxcav2UtunTp5s/Xfb29tZnn31WYB1eXl6aPn26ef/Zs2f1zTff2LWdK3k/2dPnRYMHD1b//v0LbHv//fcrOjq6xLZdUq9vYmKiPvnkE/P6448/rkGDBhXZl4uLizw8PIps9+KLL6pRo0Z21Xcl3n777QLfcwEBAfrXv/5lXs/KytLIkSML/Rx48MEHzeWSPj727NlTo0aNKvD+tm3bqlu3bnZt397PoLCwMD322GPm9blz59q1nr2uxXeiatWq6d133726QgGgHCFsBQCUC1u3btVNN92U59KzZ09FRkYqPDxcP//8s9m2V69e+uyzz/LtJyUlRX/++ad5/bHHHitwTs+LRowYIX9/f0mSYRgl/odOYRYsWGAuDxkypMg/zm688cYiz3ydn/vuu08uLoVP5d61a1dz+WrnSLTXqVOnzDn3XF1d9cgjj9i13j333GMu//XXX1ddR4cOHczl9evX27VO69at1bZt22Jvy9GvxciRIwu939vbW61bty50+5s2bdKJEyfM64WFExc99NBDxaiy5Pzyyy/mcr169XTzzTcX2t7DwyNPrXPnzr1sHs3cAdbWrVuvuLaS6qe05X4O//Wvf6lmzZqFtm/WrJl69eqV7/oFudL3U2F27NiRJyiy5/jy6KOPltj2S+r1/e2338z5Zl1dXfXcc89ddW0Xubi4aMSIESXW36X8/f11xx13FNqmffv2ea7ff//9hbbPfbw+cOCAsrKyrrzAS+QOcgtSGsfnK/kMsse1+k5099132x0uA0BFwAmyAADlwrlz54o80UWDBg30n//8R/fcc0+BJ9vZsGFDnmDk4gjIwnh4eKhXr1768ccfJUl///13MSq/chdP0nSRPSOqLBaLoqKidOjQoWJtq1OnTkW2qVWrlrl88SQkpW3lypXmyN6WLVvme7KP/DRr1sxczm/k5aV27NihZcuWafv27Tpz5oxSUlLME5dIynMSmaNHj9pVQ+4/uIvDka/FxRO0XO32c4cBwcHBatq0aZF9dunSRa6uruYJca6V3O/nm266ya51+vfvr3HjxkmSkpKStHv3bjVp0sS8P/dJ1D799FNFRkbmGRFsr9z9/P777xo/fryeffZZM+goCzIzM7V582bzuj3HVOnCc3jxmG7PMfVK30+Fyb2f+vr6Fjr6+qIbb7xRFovFPC5djTZt2pgh62OPPSZvb2/17du3yLDrUitWrDCXu3TpUujI7OJq3LixgoKCSqy/S7Vp06bIfy7lPia5u7sXOvL+0vaGYSgxMVHBwcFXVedFpXV8Xr9+vVatWqWdO3fq3LlzSk1NzfNd5ezZs+ayvZ9B9rhW34lK4/0LAGUZYSsAoMI4ePCgdu3aVehZzXOfPTkkJEQhISF29d28eXPzD4uSOgNzUeLj4/P8EWTvzzgbN25c7G3ZE7B5eXmZyxfPkFzatm/fbi4fPnzY7jAsdzh6+vTpAtutXbtWY8aM0bp16+yuKTEx0a524eHhdveZmyNfC3u2bc/2Dx8+bC7bu9+6uroqPDz8mo2avij3+7l58+Z2rdOoUSO5uLjIarWafeQOWwcOHKjx48fr6NGjstlsGjt2rCZMmKDevXurR48e6tatm5o3b15kqNatWzddd9115j8MJk2apHfffVfXX3+9evbsqa5du6pNmzYOmTrgoiNHjuQZOWjvc5i73alTp5SUlCQ/P78C21/p+6kwuV/7Jk2a2BVyent7KywsTAcPHrzq7T/66KOaPXu2cnJylJCQoP79+6t27drq06ePoqKi1K1bt8vOPJ+fXbt2mcu5A/qSUBrPe272BMO5jzdVqlQpMpzN3V669sfI4hyfFyxYoCeffLJYxz17P4Psca2+E5X2fgQAZQ1hKwCgXIiKitLSpUvN61arVUePHtXmzZv11ltvaeXKlbJarZo0aZKysrL01ltv5dtP7lEmxRmtU7VqVXP53Llzxa7/Slw6IiYgIMCu9a5k1Jubm1ux2pfEqC57nDlzxlxOSEgocnRzfgr6w/S7777TPffck2cEqz3s/Umqr69vsfq9yJGvRXG3XdD2c++79u630pXtu1frSo4JLi4uCggIMIP8S48JXl5emjdvnvr3769jx45JujAC9ocfftAPP/wg6cIxpV+/frr//vvzzPGYm8Vi0Y8//qi+ffuagVpGRobmz5+v+fPnS5L8/PzUu3dvDR8+XP369bP/gZeQS49T9j6HuY+p0oXnsLCw9UrfT4XJ/boV5/MgKCioRMLW6667Tl988YUefPBBZWZmSrrwT7bPPvvMnAonIiJCt99+ux588MECA6vcox5LagTnRaXxvOdW3GNOSR2jrlRJHp/feustPf3008Wu4eK+UhKu1Xei0t6PAKCsYc5WAEC55OLiorp16+qWW27R8uXL88wz+fbbb+c5WVZuuf9IKc4fTbnbluQfOqWhsJG95U1qaupV95HfH7uHDh3S8OHDzaA1ODhY48eP159//qmDBw+a0wgYhiHDMK4oWKlIr8O14ojnrLSOCa1bt9auXbv0yiuvKCIi4rL7T58+rVmzZql79+7q379/gSOww8LCtGnTJn3wwQdq0aLFZfdfDHH79++vTp06lUgIWByXPnZ7n8NL2xV1XC2NfSP3P06K89q7u7uXWA1Dhw7Vzp07NXr06HzDrtjYWL355ptq1KiRnn32WXM0dW65n7uSrE3iOFZa1q5dmydorVu3rl599VUtX75cR44cUWpqap7PoJiYmFKp41p9J2I/AlDZcNQDAJR7FotFU6ZMyRNEPPzww/mOQMw9cu7iCUXskbttcUbqFaaoEZWXjvKz96eD12rk7bWQ+zno16+f+YdncS+Xeu+998yzp9evX1/btm3Tq6++quuvv15hYWHy9vbO88dhcfYV5H3divOTV0fsu6V5TPDz89Pzzz+vffv2af/+/Zo+fbqGDh2aZ05HSZo/f75uuummfIM06UKA9thjj2nLli06evSovvrqK40cOfKykY5r165VdHT0NX0eLz1O2fscXtqupI6rxZF7JO2VvvYloX79+po6daoSEhK0ceNGvf3227r55pvzjAa0Wq1688039eSTT162fu7nriR/Yo7S8/rrr5vLHTt21Pbt2zV+/Hh169ZNtWvXlpeX1zX5DCpL34kAoCIhbAUAVAiurq56//33zeuHDh3Sxx9/fFm73D+xjI+PLzDcuNT+/fvz7eOiS0eE2HOSn6JOnFG7du08cwjaO6fbtZ7zsjTlns8vISGhxPpdvHixufziiy8WOW9gSZ6QpDLIPc+kvftjdna2Dhw4UFolFSj3+9neUaGnTp3KEzbY89Pt+vXr67777tOsWbN05MgRrVixQlFR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S8d63759JiYB4Cz9+/fXxYsX1b17dzVv3tzsOACcZNmyZdqzZ4+kS4ffcScb4HpSU1Md6woVKlxzX8WKFbN8DoC8z263a/78+ZKk0NBQNWzYMMt9DRs2VOXKlSVJ8+fPlyu98Z6yFUCelpKS4lhf6w5YAHnHd999p0WLFqlQoUL68MMPzY4DwIm+//57SZcO3rh8V5sknT9/Xnv27NH58+fNigbASS4XJ5K0f//+a+67fJOEYRiqVKlStucCkHMOHDjgOH/lRjdOXH782LFjOnjwYHZHyzGUrQDytD///NOxrlKliolJANypmJgYDR48WJI0atQoFSlSxOREAJxp7dq1kqS77rpLfn5++uabb1S9enUVLlxYISEhKly4sCpXrqwPP/ww0z+mAsg7unTpIn9/f0mX/izPyMi4ak9UVJQWL14sSXryyScd+wG4hp07dzrWoaGh19175eOuNFKEshVAnmWz2fTf//7X8fljjz1mYhoAd+qVV17RyZMnFR4ert69e5sdB4AT2Ww2RUdHS7o0c33w4MF66qmntH379kz7du/erZdffln33HOPYmJiTEgK4E4UKVJEX375pXx8fBQZGamwsDDNmjVLa9eu1W+//aa33npLzZs3V2pqqurUqZPp/AUAruHo0aOOdenSpa+7t0yZMo71kSNHsi1TTqNsBZBnffzxx1q/fr0k6aGHHlLdunVNTgTgdkVERGjatGmyWq2aMmWKDMMwOxIAJ4qNjZXNZpMk/fXXX/rkk09UokQJffXVVzp//rwSExP1559/Oua6rV69Wr169TIzMoDb1KFDB23atEnPPPOMtmzZou7du6tRo0a67777NGLECPn4+Gjs2LGKiIi4owN4AORO8fHxjnWBAgWuu9fX19exvnjxYrZlymmUrQDypD///FOvvvqqJCkoKEiTJ082ORGA25Wamqpnn31WdrtdL7zwgu6++26zIwFwsoSEBMc6OTlZPj4+Wr58uZ566ikVLFhQ3t7eatasmf744w/VrFlTkjR37lytW7fOrMgAblNqaqpmzZp1zQNvTp06pa+++kq//fabCekAZLfk5GTH2sPD47p7PT09HeukpKRsy5TTKFsB5Dk7duxQ586dlZ6eLi8vL33//fcKCgoyOxaA2/T+++8rOjpaZcuW1fDhw82OAyAbeHl5Zfr8mWeeyXSQzmXe3t567733HJ/PmTMn27MBcJ6EhAS1atVKI0eO1Pnz5/XKK69o165dSklJUWxsrJYtW6YmTZpo48aN6tSpkz766COzIwNwsiv/zE9NTb3u3itntHt7e2dbppxG2QogTzlw4IBat26tCxcuyM3NTbNnz1azZs3MjgXgNkVHR2vkyJGSpPHjx2d6KxEA1+Hn55fp89atW19z77333iur1SpJ2rBhQ7bmAuBcI0aMUEREhCRp+vTpGjVqlEJDQ+Xh4SF/f3/dd999Wr58uVq2bCm73a6XX35ZW7duNTk1AGe68s/8G40GuPKdLzcaOZCXWM0OAAA36/jx42rVqpWOHz8uwzD0+eefq2PHjmbHAnAHPv74Y6WmpqpChQpKTEzU7Nmzr9pz5QE6f/zxh06ePClJat++PeUskEd4enqqaNGiOnPmjKTMB2L8m5eXl4oUKaKTJ0869gPI/ex2uz7//HNJUkhIiLp3757lPqvVqnfeeUdNmjSRzWbTzJkz9fHHH+dkVADZ6MpDsa48LCsrVx6Kdb3fDfIaylYAecLZs2d13333af/+/ZIu3QHXrVs3k1MBuFOX3zq0f/9+denS5Yb733nnHcf6wIEDlK1AHlKtWjWtWLFCkpSRkXHdvZcfv3yHK4Dc79SpUzp//rwkqXbt2tfde+XBttHR0dmaC0DOqlq1qmN9o5/vKx+vUqVKtmXKaYwRAJDrxcbG6v7779fOnTslSf/973/Vv39/k1MBAIBbceXYn8v/eJqVuLg4nT17VpJUqlSpbM8FwDmu/MeR9PT06+5NS0vL8nkA8r7y5curZMmSki4dbH09K1eulHTpz/u77roru6PlGMpWALlaYmKi2rZtq82bN0uS3njjDQ0bNszkVACcZebMmbLb7df9uPLQrOXLlzu+7kq/kAH5wcMPP+xYz50795r75s6d6zjBvGnTptmeC4BzFCpUSP7+/pKkNWvWXLdwvbKAKV++fLZnA5BzDMNwjPuLjo7W2rVrs9y3du1ax52tHTt2lGEYOZYxu1G2Asi1UlNT1blzZ0VGRkqSBg8erHfffdfkVAAA4HbUqFFDDzzwgCTp22+/1e+//37VnpMnT+rNN9+UJHl4eKhnz545mhHA7bNYLGrbtq2kS2ctvPfee1nuu3DhQqabJ9q1a5cj+QDknCFDhsjNzU2SNHDgQCUlJWV6PCkpSQMHDpR06e72IUOG5HTEbMX9+gByrS5dumjZsmWSpHvuuUe9e/fOdFDOv3l4eCgkJCSn4gEAgFs0duxYrVmzRjExMWrXrp2GDBmiBx98UN7e3lq/fr1GjhzpOEzjnXfeYYwAkMf85z//0fz585WYmKgRI0Zo06ZN6t69uypUqKDk5GStXbtWY8eO1eHDhyVJ9957r1q3bm1yagBXWrVqlfbu3ev4/PJoH0nau3evZs6cmWl/jx49rrpGSEiIXn75Zf33v//Vxo0bFR4ermHDhqlixYrat2+fRo0apaioKEnSyy+/rEqVKmXL92IWw375PToAkMvc6tsIypUrp4MHD2ZPGACmGTFihN566y1Jl8YItGjRwtxAAO7IqlWr9Mgjj+jUqVNZPm4Yht54441MB+IByDt+++03denSJVNBk5V77rlHP/zwgwoWLJhDyQDcjB49euiLL7646f3XqhVtNpv69Omjzz///JrP7d27t6ZOnSqLxbXeeM+drQAAAAByTJMmTbRjxw6NHz9e8+bN04EDB5SamqoSJUqoRYsWGjhw4A1PMgeQe7Vq1UrR0dGaPn26lixZoh07digmJkZWq1XFixdXWFiYnnzySXXo0MGlZjQCyMxisWj69Ol6+OGHNXXqVG3YsEFnz55VkSJFFBYWpueee84xXsjVcGcrAAAAAAAAADiBa92nCwAAAAAAAAAmoWwFAAAAAAAAACegbAUAAAAAAAAAJ6BsBQAAAAAAAAAnoGwFAAAAAAAAACegbAUAAAAAAAAAJ6BsBQAAAAAAAAAnoGwFAAAAAAAAACegbAUAAAAAAAAAJ6BsBQAAAAAAAAAnoGwFAAAAAAAAACegbAUAAAAAAAAAJ6BsBQAAAAAAAAAnoGwFAAAAAAAAACegbAUAAAAAAAAAJ6BsBQAAAAAAAAAnoGwFAAAAAAAAACegbAUAAAAAAAAAJ6BsBQAAQL501113yTAMGYahFStWSJLi4+P16aefqlWrVipXrpw8PT0zPd6jRw/Hc0aMGHHbr/NvI0aMcOzp0aOH4+tr165Vjx49FBISIh8fHxUsWFBhYWF6++23FRsbe9Pf6/r16zVgwADVqVNHhQoVktVqlY+Pj0qWLKnw8HD1799f3333nRISEm76mgAAALia1ewAAAAAQG6wYcMGPf744zpw4IDZUZSWlqZXXnlFY8eOzfT1pKQkbdy4URs3btTkyZO1bNkyVa9e/ZrXSUlJ0bPPPqtZs2Zd9VhSUpKSkpJ04sQJrV69WpMmTdIDDzygn3/+2dnfDgAAQL5B2QoAAIB8b+/evRo6dKji4uIkScHBwSpdurRiYmIUHR2d43n69u2r6dOnS5IKFy6sypUry83NTdu3b9eFCxckSSdPnlSbNm20a9cu+fv7Z3mdnj176ttvv3V8brVaVblyZQUFBclut+v8+fPavXu3kpOTJUk2my2bvzMAAADXRtkKAACAfO/FF19UfHy87rvvPn3yyScKDQ11PHa53MwpixYt0rlz51S6dGlNmDBB7du3l8VyafpXenq6xowZo9dee012u13Hjx/X6NGj9c4771x1nU2bNmUqWt98800NHTpUgYGBmfZlZGRo3bp1mjNnjk6cOJGt3xsAAICro2wFAABAvhcfH68HHnhACxYskNWa+VfkggUL5miWc+fOKSgoSJGRkSpbtmymx6xWq4YNG6Zjx45p/PjxkqQvvvgiy7L1ynEAXbt2zXKPJLm5ualx48Zq3LixMjIynPidAAAA5D8ckAUAAIB8z8PDQ5999tlVRatZPvzww6uK1isNGTLEsT5y5IiOHDly1Z6jR4861uHh4Tf1um5ubjcfEgAAAFehbAUAAEC+17ZtW5UqVcrsGJIkf39/PfHEE9fdU6FCBZUsWdLxeVZzZb28vBzrbdu2OS8gAAAAromyFQAAAPlekyZNzI7gULduXbm7u99w35XlcExMTJbXuezTTz/V2LFjlZSU5JSMAAAAyBplKwAAAPK9ihUrmh3BoXjx4je1z8fHx7FOTEy86vFHHnnEUcjabDa98MILKl68uB599FFNnDhR27Ztk91ud05oAAAASKJsBQAAAOTn52d2BAcPD49bfk5WpamPj48WLlyYadxAXFycfvjhBw0YMEA1a9ZUUFCQevTooYiIiDvKDAAAgEsoWwEAAJDvWSyu+Wtx7dq1tWvXLr377rsKDg6+6vGzZ8/qiy++ULNmzdSuXTudPXvWhJQAAACuwzV/qwQAAAByiYyMDFNf39/fX2+88Yb27Nmjffv2afr06erWrdtVB4ItXrxYbdq0UXp6uklJAQAA8j7KVgAAAOAmXfkW/7S0tJt6TlaHV5mlQoUK6tWrl7744gsdOXJEERERat68uePxTZs26dtvvzUxIQAAQN5G2QoAAADcpCtnu164cOGG+w8dOqSLFy9mZ6TbZhiGmjRpoqVLlyo0NNTx9WXLlpmYCgAAIG+jbAUAAABuUtmyZR3rbdu23XD//PnzszOOU3h5een+++93fH7q1CkT0wAAAORtlK0AAADATapdu7ZjvXbtWh09evSae2NjYzV69OiciJUlu91+03vj4+Md60KFCmVHHAAAgHyBshUAAAC4SY0bN1axYsUkXTr4qm/fvlkegBUbG6vOnTtft4zNbl26dNGoUaN05syZ6+7btGmTZs+e7fi8WbNm2R0NAADAZVnNDgAAAADkFVarVYMHD9brr78uSVq0aJEaNWqk559/XsHBwbp48aLWrFmjqVOn6vTp02rRooX27NmjY8eO5XjWkydP6tVXX9Wbb76pli1bqkmTJrr77rtVuHBhGYahY8eO6ddff9XXX3+t1NRUSZfGJDz99NM5nhUAAMBVULYCAAAAt2Do0KFasmSJIiIiJEkbNmzQhg0brtpXpUoVfffddwoLC8vpiJmkp6fr119/1a+//nrdfUFBQZo/f36mQ8AAAABwaxgjAAAAANwCDw8PLVmyRM8995zc3NyuetzT01O9e/fW+vXrVbRoURMSXjJs2DB16dLlhhn8/Pz0/PPPa/v27apVq1bOhAMAAHBRhv1WJucDAAAAcDhz5ox+//13HTlyRG5ubipbtqxatmypwoULmx0tkz179mjnzp06fPiw4uPjZbFYVLBgQVWtWlX16tWTt7e32REBAABcAmUrAAAAAAAAADgBYwQAAAAAAAAAwAkoWwEAAAAAAADACShbAQAAAAAAAMAJKFsBAAAAAAAAwAkoWwEAAAAAAADACShbAQAAAAAAAMAJKFsBAAAAAAAAwAkoWwEAAAAAAADACShbAQAAAAAAAMAJKFsBAAAAAAAAwAkoWwEAAAAAAADACShbAQAAAAAAAMAJKFsBAAAAAAAAwAkoWwEAAAAAAADACf4fpCD27OhpydQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "train: #1 50.0964s\n" ] } ], "source": [ "t = timing(\"train\")\n", "t.start()\n", "gen.train(data.data1)\n", "t.stop()\n", "print(t)\n", "\n", "# train: #1 225.9655s" ] }, { "cell_type": "code", "execution_count": 8, "id": "cda17654", "metadata": {}, "outputs": [], "source": [ "syntheticPoints = gen.generateData(10)" ] }, { "cell_type": "code", "execution_count": 9, "id": "41853bd3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0. , -0.06636405, 1.3279585 , 1.4733657 , 0.90865797,\n", " -0.43312013, 2.4704597 , -0.42489225],\n", " [ 0. , -1.456949 , -0.48369884, -0.09778006, 3.5743659 ,\n", " -1.0106735 , -0.02194706, 0.53599316],\n", " [ 0. , -0.52985007, 2.4406679 , -0.98233044, 2.0865443 ,\n", " 0.56968963, 1.8624911 , 1.363903 ],\n", " [ 2. , 0.89097553, 0.658306 , 1.674309 , 1.9232278 ,\n", " 0.3368508 , 2.0055938 , 1.2363098 ],\n", " [ 0. , 2.722359 , 1.9604979 , -0.31740105, 2.5740647 ,\n", " 0.40653497, -0.33743092, 2.0918524 ],\n", " [ 0. , 0.28232256, 0.80021316, 0.88338476, 1.4002919 ,\n", " -0.6236236 , 1.8901508 , 0.80954325],\n", " [ 0. , 0.43074182, -0.37357864, 0.56461775, 1.6505785 ,\n", " -1.55544 , -0.0200977 , -1.7506938 ],\n", " [ 0. , 1.2463036 , 1.3569247 , -0.1775922 , 1.9138896 ,\n", " 0.80423295, -1.2606189 , -0.28117785],\n", " [ 0. , 0.3279094 , 0.8703 , 0.9985129 , 1.4571114 ,\n", " 0.35573384, -0.42962444, 0.91724783],\n", " [ 0. , 0.93769747, 1.1144733 , -0.20133553, 1.1220677 ,\n", " -0.7231822 , 0.08787507, -0.01293045]], dtype=float32)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "syntheticPoints" ] }, { "cell_type": "code", "execution_count": 10, "id": "da5ebdb9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2. , 0.565 , 0.425 , 0.16 , 0.9425, 0.3495, 0.2185, 0.275 ],\n", " [0. , 0.495 , 0.4 , 0.155 , 0.6445, 0.242 , 0.1325, 0.205 ],\n", " [2. , 0.54 , 0.435 , 0.18 , 0.996 , 0.3835, 0.226 , 0.325 ],\n", " [0. , 0.69 , 0.56 , 0.215 , 1.719 , 0.68 , 0.299 , 0.47 ],\n", " [0. , 0.68 , 0.55 , 0.21 , 1.7445, 0.5975, 0.305 , 0.625 ]])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.data1[:5]" ] }, { "cell_type": "code", "execution_count": 11, "id": "4043256c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.992247036190034\n", "3.3453301123778862\n", "2.9632630962942397\n", "2.231965112809029\n", "2.9375821328026706\n", "2.1358391369947514\n", "2.9678915248496063\n", "2.036856976491887\n", "1.2415772323249057\n", "1.339130540138162\n" ] } ], "source": [ "import math\n", "for p in syntheticPoints:\n", " print(min([math.sqrt(sum(y*y)) for y in (data.data1 - p) ]))" ] }, { "cell_type": "code", "execution_count": 12, "id": "3bcc8cb7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2/2 [==============================] - 0s 2ms/step\n" ] }, { "data": { "text/plain": [ "(0.3009875, 0.48095304, 0.3903650888081255)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v = gen.predictReal(data.data1)\n", "(min(v), max(v), sum(v) / len(v))" ] } ], "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.8.15" } }, "nbformat": 4, "nbformat_minor": 5 }