From c63cf730029717465b8374c9967adf2c45f6c11a Mon Sep 17 00:00:00 2001 From: Samuel Donkor <56901167+samadon1@users.noreply.github.com> Date: Mon, 31 Jul 2023 16:50:17 +0000 Subject: [PATCH] training models scripts --- Untitled.ipynb | 483 +++ bard_code.ipynb | 133 + convert_to_gif.ipynb | 372 ++ new.ipynb | 25 + new_data_train.ipynb | 3597 +++++++++++++++++ preprocess.ipynb | 19 + ...bert-with-huggingface-tensorflow-2-1.ipynb | 1485 +++++++ train.ipynb | 316 ++ video_to_keypoints.ipynb | 2625 ++++++++++++ 9 files changed, 9055 insertions(+) create mode 100644 Untitled.ipynb create mode 100644 bard_code.ipynb create mode 100644 convert_to_gif.ipynb create mode 100644 new.ipynb create mode 100644 new_data_train.ipynb create mode 100644 preprocess.ipynb create mode 100644 pretrained-bert-with-huggingface-tensorflow-2-1.ipynb create mode 100644 train.ipynb create mode 100644 video_to_keypoints.ipynb diff --git a/Untitled.ipynb b/Untitled.ipynb new file mode 100644 index 0000000..8e28323 --- /dev/null +++ b/Untitled.ipynb @@ -0,0 +1,483 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 7, + "id": "af60c9ce", + "metadata": {}, + "outputs": [], + "source": [ + "# !pip install tensorflow" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8db77413", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2ce9309d", + "metadata": {}, + "outputs": [], + "source": [ + "X = np.load(\"X.npy\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7d9af9c4", + "metadata": {}, + "outputs": [], + "source": [ + "# new_x = []" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "c450a2ce", + "metadata": {}, + "outputs": [], + "source": [ + "# for i in range(10):\n", + "# new_x.append(X[i][:79776])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "11973e15", + "metadata": {}, + "outputs": [], + "source": [ + "# new_x = np.array(new_x)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "21855ebf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0,)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# new_x.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "95379b45", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071, 618264)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "d460010e", + "metadata": {}, + "outputs": [], + "source": [ + "new_x = X.reshape((1071, 1662, 372))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "01bcefd6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071, 1662, 372)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_x.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "9f1aa304", + "metadata": {}, + "outputs": [], + "source": [ + "new_y = np.load(\"Y.npy\", allow_pickle=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "dcfe864b", + "metadata": {}, + "outputs": [], + "source": [ + "# new_y = new_y[:10]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "9db85c9d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071,)" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_y.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "bb0476bd", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import LabelEncoder\n", + "\n", + "code = np.array(new_y)\n", + "\n", + "label_encoder = LabelEncoder()\n", + "vec = label_encoder.fit_transform(code)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "8e6c6ebd", + "metadata": {}, + "outputs": [], + "source": [ + "from keras.utils import to_categorical\n", + "\n", + "y = to_categorical(vec)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "e6582ba4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071, 878)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "30636ea3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1071, 1662, 372)\n", + "(1071, 878)\n" + ] + } + ], + "source": [ + "print(new_x.shape)\n", + "print(y.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "c037afbc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"model_2\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " input_3 (InputLayer) [(None, 1662, 372)] 0 \n", + " \n", + " dense_6 (Dense) (None, 1662, 512) 190976 \n", + " \n", + " layer_normalization_4 (Laye (None, 1662, 512) 1024 \n", + " rNormalization) \n", + " \n", + " activation_4 (Activation) (None, 1662, 512) 0 \n", + " \n", + " dropout_4 (Dropout) (None, 1662, 512) 0 \n", + " \n", + " dense_7 (Dense) (None, 1662, 256) 131328 \n", + " \n", + " layer_normalization_5 (Laye (None, 1662, 256) 512 \n", + " rNormalization) \n", + " \n", + " activation_5 (Activation) (None, 1662, 256) 0 \n", + " \n", + " dropout_5 (Dropout) (None, 1662, 256) 0 \n", + " \n", + " lstm_2 (LSTM) (None, 50) 61400 \n", + " \n", + " dense_8 (Dense) (None, 878) 44778 \n", + " \n", + "=================================================================\n", + "Total params: 430,018\n", + "Trainable params: 430,018\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "import tensorflow as tf\n", + "from tensorflow.keras import layers, optimizers\n", + "# include early stopping and reducelr\n", + "def get_callbacks():\n", + " return [\n", + " tf.keras.callbacks.EarlyStopping(\n", + " monitor=\"val_accuracy\",\n", + " patience = 10,\n", + " restore_best_weights=True\n", + " ),\n", + " tf.keras.callbacks.ReduceLROnPlateau(\n", + " monitor = \"val_accuracy\",\n", + " factor = 0.5,\n", + " patience = 3\n", + " ),\n", + " ]\n", + "\n", + "# a single dense block followed by a normalization block and relu activation\n", + "def dense_block(units, name):\n", + " fc = layers.Dense(units)\n", + " norm = layers.LayerNormalization()\n", + " act = layers.Activation(\"relu\")\n", + " drop = layers.Dropout(0.1)\n", + " return lambda x: drop(act(norm(fc(x))))\n", + "\n", + "# the lstm block with the final dense block for the classification\n", + "def classifier(lstm_units):\n", + " lstm = layers.LSTM(lstm_units)\n", + " out = layers.Dense(878, activation=\"softmax\")\n", + " return lambda x: out(lstm(x))\n", + "# choose the number of nodes per layer\n", + "encoder_units = [512, 256] # tune this\n", + "lstm_units = 50 # tune this\n", + "\n", + "#define the inputs (ragged batches of time series of landmark coordinates)\n", + "inputs = tf.keras.Input(shape=((1662, 372)), ragged=False)\n", + "\n", + "# dense encoder model\n", + "x = inputs\n", + "for i, n in enumerate(encoder_units):\n", + " x = dense_block(n, f\"encoder_{i}\")(x)\n", + "\n", + "# classifier model\n", + "out = classifier(lstm_units)(x)\n", + "\n", + "model = tf.keras.Model(inputs=inputs, outputs=out)\n", + "model.summary()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a92cb3f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/2000\n", + "34/34 [==============================] - 143s 4s/step - loss: 6.8096 - accuracy: 0.0000e+00\n", + "Epoch 2/2000\n", + "34/34 [==============================] - 182s 5s/step - loss: 6.7811 - accuracy: 9.3371e-04\n", + "Epoch 3/2000\n", + "34/34 [==============================] - 184s 5s/step - loss: 6.7751 - accuracy: 0.0028\n", + "Epoch 4/2000\n", + "34/34 [==============================] - 191s 6s/step - loss: 6.7732 - accuracy: 0.0019\n", + "Epoch 5/2000\n", + "34/34 [==============================] - 180s 5s/step - loss: 6.7714 - accuracy: 0.0056\n", + "Epoch 6/2000\n", + "34/34 [==============================] - 184s 5s/step - loss: 6.7681 - accuracy: 0.0056\n", + "Epoch 7/2000\n", + "34/34 [==============================] - 186s 5s/step - loss: 6.7629 - accuracy: 0.0056\n", + "Epoch 8/2000\n", + "34/34 [==============================] - 184s 5s/step - loss: 6.7602 - accuracy: 0.0056\n", + "Epoch 9/2000\n", + "34/34 [==============================] - 189s 6s/step - loss: 6.7568 - accuracy: 0.0056\n", + "Epoch 10/2000\n", + "34/34 [==============================] - 184s 5s/step - loss: 6.7520 - accuracy: 0.0056\n", + "Epoch 11/2000\n", + "34/34 [==============================] - 188s 6s/step - loss: 6.7478 - accuracy: 0.0056\n", + "Epoch 12/2000\n", + "34/34 [==============================] - 249s 7s/step - loss: 6.7471 - accuracy: 0.0056\n", + "Epoch 13/2000\n", + "34/34 [==============================] - 239s 7s/step - loss: 6.7422 - accuracy: 0.0056\n", + "Epoch 14/2000\n", + "34/34 [==============================] - 220s 6s/step - loss: 6.7418 - accuracy: 0.0056\n", + "Epoch 15/2000\n", + "34/34 [==============================] - 225s 7s/step - loss: 6.7391 - accuracy: 0.0056\n", + "Epoch 16/2000\n", + "34/34 [==============================] - 236s 7s/step - loss: 6.7372 - accuracy: 0.0056\n", + "Epoch 17/2000\n", + "34/34 [==============================] - 226s 7s/step - loss: 6.7357 - accuracy: 0.0056\n", + "Epoch 18/2000\n", + "34/34 [==============================] - 229s 7s/step - loss: 6.7340 - accuracy: 0.0056\n", + "Epoch 19/2000\n", + "34/34 [==============================] - 228s 7s/step - loss: 6.7331 - accuracy: 0.0056\n", + "Epoch 20/2000\n", + "34/34 [==============================] - 209s 6s/step - loss: 6.7325 - accuracy: 0.0056\n", + "Epoch 21/2000\n", + "34/34 [==============================] - 204s 6s/step - loss: 6.7319 - accuracy: 0.0056\n", + "Epoch 22/2000\n", + "34/34 [==============================] - 190s 6s/step - loss: 6.7309 - accuracy: 0.0056\n", + "Epoch 23/2000\n", + "34/34 [==============================] - 185s 5s/step - loss: 6.7300 - accuracy: 0.0056\n", + "Epoch 24/2000\n", + "34/34 [==============================] - 185s 5s/step - loss: 6.7297 - accuracy: 0.0056\n", + "Epoch 25/2000\n", + "34/34 [==============================] - 200s 6s/step - loss: 6.7295 - accuracy: 0.0056\n", + "Epoch 26/2000\n", + "34/34 [==============================] - 205s 6s/step - loss: 6.7285 - accuracy: 0.0056\n", + "Epoch 27/2000\n", + "34/34 [==============================] - 202s 6s/step - loss: 6.7285 - accuracy: 0.0056\n", + "Epoch 28/2000\n", + "34/34 [==============================] - 205s 6s/step - loss: 6.7279 - accuracy: 0.0056\n", + "Epoch 29/2000\n", + "34/34 [==============================] - 199s 6s/step - loss: 6.7279 - accuracy: 0.0056\n", + "Epoch 30/2000\n", + "34/34 [==============================] - 200s 6s/step - loss: 6.7273 - accuracy: 0.0056\n", + "Epoch 31/2000\n", + "34/34 [==============================] - 200s 6s/step - loss: 6.7282 - accuracy: 0.0056\n", + "Epoch 32/2000\n", + "34/34 [==============================] - 196s 6s/step - loss: 6.7268 - accuracy: 0.0056\n", + "Epoch 33/2000\n", + "34/34 [==============================] - 199s 6s/step - loss: 6.7263 - accuracy: 0.0056\n", + "Epoch 34/2000\n", + "34/34 [==============================] - 198s 6s/step - loss: 6.7259 - accuracy: 0.0056\n", + "Epoch 35/2000\n", + "34/34 [==============================] - 195s 6s/step - loss: 6.7258 - accuracy: 0.0056\n", + "Epoch 36/2000\n", + "34/34 [==============================] - 288s 9s/step - loss: 6.7253 - accuracy: 0.0056\n", + "Epoch 37/2000\n", + "34/34 [==============================] - 373s 11s/step - loss: 6.7257 - accuracy: 0.0056\n", + "Epoch 38/2000\n", + " 9/34 [======>.......................] - ETA: 4:08 - loss: 6.7426 - accuracy: 0.0069" + ] + } + ], + "source": [ + "# optimizer = optimizers.RMSprop(learning_rate = 0.000001)\n", + "\n", + "model.compile(optimizer=\"Adam\",\n", + " loss=\"categorical_crossentropy\",\n", + " metrics=[\"accuracy\"])\n", + "# fit the model with 100 epochs iteration\n", + "model.fit(new_x,\n", + " y,\n", + " verbose = 1,\n", + " # callbacks = get_callbacks(),\n", + " epochs = 2000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee921451", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3eaa7eef", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/bard_code.ipynb b/bard_code.ipynb new file mode 100644 index 0000000..8690d71 --- /dev/null +++ b/bard_code.ipynb @@ -0,0 +1,133 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'mediapipe.framework.packet_pb2'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[3], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mmediapipe\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mmp\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mmediapipe\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mframework\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mformats\u001b[39;00m \u001b[39mimport\u001b[39;00m landmark_pb2\n\u001b[1;32m----> 3\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mmediapipe\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mframework\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpacket_pb2\u001b[39;00m \u001b[39mimport\u001b[39;00m Packet\n\u001b[0;32m 5\u001b[0m \u001b[39m# Define list of values\u001b[39;00m\n\u001b[0;32m 6\u001b[0m values \u001b[39m=\u001b[39m [\u001b[39m0.1\u001b[39m, \u001b[39m0.2\u001b[39m, \u001b[39m0.3\u001b[39m, \u001b[39m0.4\u001b[39m, \u001b[39m0.5\u001b[39m, \u001b[39m0.6\u001b[39m]\n", + "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'mediapipe.framework.packet_pb2'" + ] + } + ], + "source": [ + "import mediapipe as mp\n", + "from mediapipe.framework.formats import landmark_pb2\n", + "from mediapipe.framework.packet_pb2 import Packet\n", + "\n", + "# Define list of values\n", + "values = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]\n", + "\n", + "# Create NormalizedLandmarkList proto object\n", + "landmark_list = landmark_pb2.NormalizedLandmarkList()\n", + "for i in range(len(values)//2):\n", + " landmark = landmark_list.landmark.add()\n", + " landmark.x = values[2*i]\n", + " landmark.y = values[2*i+1]\n", + "\n", + "# Create Packet object with NormalizedLandmarkList proto\n", + "packet = Packet()\n", + "packet.Set(landmark_list.SerializeToString())\n", + "\n", + "# Create MediaPipe result object\n", + "result = mp.Results()\n", + "result.multi_hand_landmarks.append(packet)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "module 'mediapipe.python.solutions' has no attribute 'holistic_avatar'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[2], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mcv2\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[39m# Import the MediaPipe Holistic Avatar model.\u001b[39;00m\n\u001b[1;32m----> 3\u001b[0m holistic_avatar \u001b[39m=\u001b[39m mp\u001b[39m.\u001b[39;49msolutions\u001b[39m.\u001b[39;49mholistic_avatar\u001b[39m.\u001b[39mHolisticAvatar()\n\u001b[0;32m 5\u001b[0m \u001b[39m# Create a video capture object.\u001b[39;00m\n\u001b[0;32m 6\u001b[0m cap \u001b[39m=\u001b[39m cv2\u001b[39m.\u001b[39mVideoCapture(\u001b[39m0\u001b[39m)\n", + "\u001b[1;31mAttributeError\u001b[0m: module 'mediapipe.python.solutions' has no attribute 'holistic_avatar'" + ] + } + ], + "source": [ + "import cv2\n", + "# Import the MediaPipe Holistic Avatar model.\n", + "holistic_avatar = mp.solutions.holistic_avatar.HolisticAvatar()\n", + "\n", + "# Create a video capture object.\n", + "cap = cv2.VideoCapture(0)\n", + "\n", + "# Start the MediaPipe Holistic Avatar model.\n", + "holistic_avatar.start()\n", + "\n", + "# Get the pose estimates from the model.\n", + "while True:\n", + " # Get a frame from the video capture object.\n", + " ret, frame = cap.read()\n", + "\n", + " # Get the pose estimates from the MediaPipe Holistic Avatar model.\n", + " pose = holistic_avatar.process(frame)\n", + "\n", + " # Pose the avatar using the pose estimates.\n", + " holistic_avatar.pose(pose)\n", + "\n", + " # Render the avatar.\n", + " holistic_avatar.render()\n", + "\n", + " # Display the frame.\n", + " cv2.imshow(\"MediaPipe Holistic Avatar\", frame)\n", + "\n", + " # If the user presses the \"q\" key, stop the program.\n", + " if cv2.waitKey(1) & 0xFF == ord(\"q\"):\n", + " break\n", + "\n", + "# Stop the MediaPipe Holistic Avatar model.\n", + "holistic_avatar.stop()\n", + "\n", + "# Close the video capture object.\n", + "cap.release()\n", + "\n", + "# Destroy all windows.\n", + "cv2.destroyAllWindows()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/convert_to_gif.ipynb b/convert_to_gif.ipynb new file mode 100644 index 0000000..2e28a54 --- /dev/null +++ b/convert_to_gif.ipynb @@ -0,0 +1,372 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import cv2\n", + "import time\n", + "import numpy as np\n", + "import pandas as pd\n", + "from PIL import Image\n", + "import mediapipe as mp\n", + "from array2gif import write_gif\n", + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Grabbing the Holistic Model from Mediapipe and\n", + "# Initializing the Model\n", + "\n", + "mp_holistic = mp.solutions.holistic\n", + "holistic_model = mp_holistic.Holistic(\n", + "\tmin_detection_confidence=0.2,\n", + "\tmin_tracking_confidence=0.2\n", + ")\n", + "\n", + "# Initializing the drawing utils for drawing the facial landmarks on image\n", + "mp_drawing = mp.solutions.drawing_utils\n" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Good morning\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Sam\\AppData\\Local\\Temp\\ipykernel_6600\\1275729567.py:47: DeprecationWarning: `np.float` is a deprecated alias for the builtin `float`. To silence this warning, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.\n", + "Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n", + " image = np.zeros((512,512,3), np.float)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Are you experiencing any pain\n", + "Can you tell me more about your symptoms\n", + "A\n", + "MVI_4405\n", + "MVI_4393\n", + "MVI_4394\n", + "MVI_4396\n", + "MVI_4397\n", + "MVI_4400\n", + "MVI_4401\n", + "MVI_4402\n", + "MVI_4403\n", + "MVI_4404\n" + ] + } + ], + "source": [ + "video_path = \"G:/SentencesViz/\"\n", + "video_folder = os.listdir(video_path)\n", + "\n", + "for video in video_folder:\n", + " filename = video.split(\".\")[0]\n", + " print(filename) \n", + "\n", + " video_dir = video_path + video\n", + " capture = cv2.VideoCapture(video_dir)\n", + " previousTime = 0\n", + " currentTime = 0\n", + "\n", + " vid_array = []\n", + "\n", + " while capture.isOpened():\n", + "\t # capture frame by frame\n", + " ret, frame = capture.read()\n", + " if not ret:\n", + " break\n", + "\n", + "\t # resizing the frame for better view\n", + " frame = cv2.resize(frame, (800, 600))\n", + " \n", + " # Converting the from BGR to RGB\n", + " image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\n", + "\n", + "\t # Making predictions using holistic model\n", + "\t # To improve performance, optionally mark the image as not writeable to\n", + "\t # pass by reference.\n", + " \n", + " image.flags.writeable = False\n", + " results = holistic_model.process(image)\n", + " image.flags.writeable = True\n", + "\n", + "\t # Converting back the RGB image to BGR\n", + " image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)\n", + " \n", + "\t\t\t# Process pose\n", + " pose = list(np.array([[res.x, res.y, res.z, res.visibility] for res in results.pose_landmarks.landmark]).flatten()) if results.pose_landmarks else list(np.zeros(33*4).flatten())\n", + " face = list(np.array([[res.x, res.y, res.z] for res in results.face_landmarks.landmark]).flatten()) if results.face_landmarks else list(np.zeros(468*3).flatten())\n", + " lh = list(np.array([[res.x, res.y, res.z] for res in results.left_hand_landmarks.landmark]).flatten()) if results.left_hand_landmarks else list(np.zeros(21*3).flatten())\n", + " rh = list(np.array([[res.x, res.y, res.z] for res in results.right_hand_landmarks.landmark]).flatten()) if results.right_hand_landmarks else list(np.zeros(21*3).flatten())\n", + " \n", + " frame_pose = pose+face+lh+rh\n", + " # frame_pose = np.concatenate([pose, face, lh, rh])\n", + " # curr_landmarks.append(frame_pose) \n", + " image = np.zeros((512,512,3), np.float)\n", + "\n", + "\t # Drawing the Facial Landmarks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.face_landmarks,\n", + "\t mp_holistic.FACEMESH_CONTOURS,\n", + "\t mp_drawing.DrawingSpec(\n", + "\t\t color=(255,0,255),\n", + "\t\t thickness=1,\n", + "\t\t circle_radius=0\n", + "\t ),\n", + "\t\n", + " mp_drawing.DrawingSpec(\n", + "\t\t color=(0,255,255),\n", + "\t\t thickness=1,\n", + "\t\t circle_radius=0\n", + "\t )\n", + "\t )\n", + "\n", + "\t # Drawing Right hand Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.right_hand_landmarks,\n", + "\t mp_holistic.HAND_CONNECTIONS\n", + "\t )\n", + "\n", + "\t # Drawing Left hand Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.left_hand_landmarks,\n", + "\t mp_holistic.HAND_CONNECTIONS\n", + "\t )\n", + "\n", + "\t # Drawing pose Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.pose_landmarks,\n", + "\t mp_holistic.POSE_CONNECTIONS\n", + "\t )\n", + "\t\n", + "\t # Calculating the FPS\n", + " currentTime = time.time()\n", + " fps = 1 / (currentTime-previousTime)\n", + " previousTime = currentTime\n", + "\t\n", + "\t # Displaying FPS on the image\n", + " # cv2.putText(image, str(int(fps))+\" FPS\", (10, 70), cv2.FONT_HERSHEY_COMPLEX, 1, (0,255,0), 2)\n", + "\n", + "\t # Display the resulting image\n", + " cv2.imshow(\"Facial and Hand Landmarks\", image)\n", + "\n", + " # image = Image.fromarray(image, 'RGB')\n", + " vid_array.append(image)\n", + "\n", + "\n", + "\n", + "\t # Enter key 'q' to break the loop\n", + " if cv2.waitKey(5) & 0xFF == ord('q'):\n", + " break\n", + "\n", + " # When all the process is done\n", + " # Release the capture and destroy all windows\n", + " \n", + " \n", + "\n", + " vid_array = [Image.fromarray(img.astype(np.uint8)) for img in vid_array]\n", + " vid_array[0].save(\"{filename}.gif\".format(filename = filename), save_all=True, append_images=vid_array[1:], duration=50, loop=0)\n", + "\n", + "\n", + " capture.release()\n", + " cv2.destroyAllWindows()\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[WinError 3] The system cannot find the path specified: 'G:/DCIM/Sentences Viz/'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[6], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m video_path \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mG:/DCIM/Sentences Viz/\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m----> 2\u001b[0m video_folder \u001b[39m=\u001b[39m os\u001b[39m.\u001b[39;49mlistdir(video_path)\n\u001b[0;32m 4\u001b[0m \u001b[39mfor\u001b[39;00m video \u001b[39min\u001b[39;00m video_folder:\n\u001b[0;32m 5\u001b[0m video_id, sign \u001b[39m=\u001b[39m row[\u001b[39m'\u001b[39m\u001b[39mVIDEO_ID\u001b[39m\u001b[39m'\u001b[39m], row[\u001b[39m'\u001b[39m\u001b[39mSIGN\u001b[39m\u001b[39m'\u001b[39m]\n", + "\u001b[1;31mFileNotFoundError\u001b[0m: [WinError 3] The system cannot find the path specified: 'G:/DCIM/Sentences Viz/'" + ] + } + ], + "source": [ + "video_path = \"G:/DCIM/Sentences Viz/\"\n", + "video_folder = os.listdir(video_path)\n", + "\n", + "for video in video_folder:\n", + " video_id, sign = row['VIDEO_ID'], row['SIGN']\n", + " video = video_id + \".MOV\"\n", + "\n", + " if video in video_folder: # and count <= max_video_count:\n", + " # count += 1\n", + "\n", + " curr_landmarks = [] \n", + "\n", + " video_dir = video_path + video\n", + " capture = cv2.VideoCapture(video_dir)\n", + "\n", + " # Initializing current time and precious time for calculating the FPS\n", + " previousTime = 0\n", + " currentTime = 0\n", + "\n", + " while capture.isOpened():\n", + "\t # capture frame by frame\n", + " ret, frame = capture.read()\n", + " if not ret:\n", + " break\n", + "\n", + "\t # resizing the frame for better view\n", + " frame = cv2.resize(frame, (800, 600))\n", + " \n", + " # Converting the from BGR to RGB\n", + " image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\n", + "\n", + "\t # Making predictions using holistic model\n", + "\t # To improve performance, optionally mark the image as not writeable to\n", + "\t # pass by reference.\n", + " \n", + " image.flags.writeable = False\n", + " results = holistic_model.process(image)\n", + " image.flags.writeable = True\n", + "\n", + "\t # Converting back the RGB image to BGR\n", + " image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)\n", + " \n", + "\t\t\t# Process pose\n", + " pose = list(np.array([[res.x, res.y, res.z, res.visibility] for res in results.pose_landmarks.landmark]).flatten()) if results.pose_landmarks else list(np.zeros(33*4).flatten())\n", + " face = list(np.array([[res.x, res.y, res.z] for res in results.face_landmarks.landmark]).flatten()) if results.face_landmarks else list(np.zeros(468*3).flatten())\n", + " lh = list(np.array([[res.x, res.y, res.z] for res in results.left_hand_landmarks.landmark]).flatten()) if results.left_hand_landmarks else list(np.zeros(21*3).flatten())\n", + " rh = list(np.array([[res.x, res.y, res.z] for res in results.right_hand_landmarks.landmark]).flatten()) if results.right_hand_landmarks else list(np.zeros(21*3).flatten())\n", + " \n", + " frame_pose = pose+face+lh+rh\n", + " # frame_pose = np.concatenate([pose, face, lh, rh])\n", + " curr_landmarks.append(frame_pose) \n", + " \n", + "\t\t\t\n", + "\n", + "\t # Drawing the Facial Landmarks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.face_landmarks,\n", + "\t mp_holistic.FACEMESH_CONTOURS,\n", + "\t mp_drawing.DrawingSpec(\n", + "\t\t color=(255,0,255),\n", + "\t\t thickness=1,\n", + "\t\t circle_radius=1\n", + "\t ),\n", + "\t\n", + " mp_drawing.DrawingSpec(\n", + "\t\t color=(0,255,255),\n", + "\t\t thickness=1,\n", + "\t\t circle_radius=1\n", + "\t )\n", + "\t )\n", + "\n", + "\t # Drawing Right hand Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.right_hand_landmarks,\n", + "\t mp_holistic.HAND_CONNECTIONS\n", + "\t )\n", + "\n", + "\t # Drawing Left hand Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.left_hand_landmarks,\n", + "\t mp_holistic.HAND_CONNECTIONS\n", + "\t )\n", + "\n", + "\t # Drawing pose Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.pose_landmarks,\n", + "\t mp_holistic.POSE_CONNECTIONS\n", + "\t )\n", + "\t\n", + "\t # Calculating the FPS\n", + " currentTime = time.time()\n", + " fps = 1 / (currentTime-previousTime)\n", + " previousTime = currentTime\n", + "\t\n", + "\t # Displaying FPS on the image\n", + " cv2.putText(image, str(int(fps))+\" FPS\", (10, 70), cv2.FONT_HERSHEY_COMPLEX, 1, (0,255,0), 2)\n", + "\n", + "\t # Display the resulting image\n", + " cv2.imshow(\"Facial and Hand Landmarks\", image)\n", + "\n", + "\t # Enter key 'q' to break the loop\n", + " if cv2.waitKey(5) & 0xFF == ord('q'):\n", + " break\n", + "\n", + " # When all the process is done\n", + " # Release the capture and destroy all windows\n", + " \n", + " y.append(sign)\n", + " X.append(list(np.array(curr_landmarks).flatten()))\n", + " \n", + "\n", + " capture.release()\n", + " cv2.destroyAllWindows()\n", + "\n", + " print(X)\n", + " # print(y)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/new.ipynb b/new.ipynb new file mode 100644 index 0000000..e64e17e --- /dev/null +++ b/new.ipynb @@ -0,0 +1,25 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.10.7" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/new_data_train.ipynb b/new_data_train.ipynb new file mode 100644 index 0000000..d682db5 --- /dev/null +++ b/new_data_train.ipynb @@ -0,0 +1,3597 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import cv2\n", + "import time\n", + "import numpy as np\n", + "import pandas as pd\n", + "import mediapipe as mp\n", + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Grabbing the Holistic Model from Mediapipe and\n", + "# Initializing the Model\n", + "\n", + "mp_holistic = mp.solutions.holistic\n", + "holistic_model = mp_holistic.Holistic(\n", + "\tmin_detection_confidence=0.2,\n", + "\tmin_tracking_confidence=0.2\n", + ")\n", + "\n", + "# Initializing the drawing utils for drawing the facial landmarks on image\n", + "mp_drawing = mp.solutions.drawing_utils\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Miscarriage\n", + "Breast\n", + "Breastfeed\n", + "Health\n", + "Labor\n", + "Medicine\n", + "Cold\n", + "Diarrhea\n", + "Headache\n", + "Malaria\n", + "Tuberclosis\n", + "STI\n", + "Ebola\n", + "Cancer\n", + "HIV\n", + "AIDS\n", + "Transmit\n", + "Nurse\n", + "Doctor\n", + "Blood\n", + "I am\n", + "Have\n", + "22\n" + ] + } + ], + "source": [ + "video_path = \"G:/Train/\"\n", + "video_folder = os.listdir(video_path)\n", + "\n", + "X = []\n", + "y = []\n", + "\n", + "for video in video_folder:\n", + " filename = video.split(\".\")[0]\n", + " print(filename) \n", + "\n", + " video_dir = video_path + video\n", + " capture = cv2.VideoCapture(video_dir)\n", + " previousTime = 0\n", + " currentTime = 0\n", + "\n", + " curr_landmarks = [] \n", + "\n", + " while capture.isOpened():\n", + "\t # capture frame by frame\n", + " ret, frame = capture.read()\n", + " if not ret:\n", + " break\n", + "\n", + "\t # resizing the frame for better view\n", + " frame = cv2.resize(frame, (800, 600))\n", + " \n", + " # Converting the from BGR to RGB\n", + " image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\n", + "\n", + "\t # Making predictions using holistic model\n", + "\t # To improve performance, optionally mark the image as not writeable to\n", + "\t # pass by reference.\n", + " \n", + " image.flags.writeable = False\n", + " results = holistic_model.process(image)\n", + " image.flags.writeable = True\n", + "\n", + "\t # Converting back the RGB image to BGR\n", + " image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)\n", + " \n", + "\t\t\t# Process pose\n", + " pose = np.array([[res.x, res.y, res.z, res.visibility] for res in results.pose_landmarks.landmark]).flatten() if results.pose_landmarks else np.zeros(33*4)\n", + " face = np.array([[res.x, res.y, res.z] for res in results.face_landmarks.landmark]).flatten() if results.face_landmarks else np.zeros(468*3)\n", + " lh = np.array([[res.x, res.y, res.z] for res in results.left_hand_landmarks.landmark]).flatten() if results.left_hand_landmarks else np.zeros(21*3)\n", + " rh = np.array([[res.x, res.y, res.z] for res in results.right_hand_landmarks.landmark]).flatten() if results.right_hand_landmarks else np.zeros(21*3)\n", + " frame_pose = np.concatenate([pose, face, lh, rh])\n", + " curr_landmarks.append(frame_pose)\n", + " \n", + " # frame_pose = pose+face+lh+rh\n", + " # frame_pose = np.concatenate([pose, face, lh, rh])\n", + " # curr_landmarks.append(frame_pose) \n", + " # image = np.zeros((512,512,3), np.float)\n", + "\n", + "\t # Drawing the Facial Landmarks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.face_landmarks,\n", + "\t mp_holistic.FACEMESH_CONTOURS,\n", + "\t mp_drawing.DrawingSpec(\n", + "\t\t color=(255,0,255),\n", + "\t\t thickness=1,\n", + "\t\t circle_radius=0\n", + "\t ),\n", + "\t\n", + " mp_drawing.DrawingSpec(\n", + "\t\t color=(0,255,255),\n", + "\t\t thickness=1,\n", + "\t\t circle_radius=0\n", + "\t )\n", + "\t )\n", + "\n", + "\t # Drawing Right hand Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.right_hand_landmarks,\n", + "\t mp_holistic.HAND_CONNECTIONS\n", + "\t )\n", + "\n", + "\t # Drawing Left hand Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.left_hand_landmarks,\n", + "\t mp_holistic.HAND_CONNECTIONS\n", + "\t )\n", + "\n", + "\t # Drawing pose Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.pose_landmarks,\n", + "\t mp_holistic.POSE_CONNECTIONS\n", + "\t )\n", + "\t\n", + "\t # Calculating the FPS\n", + " currentTime = time.time()\n", + " fps = 1 / (currentTime-previousTime)\n", + " previousTime = currentTime\n", + "\t\n", + "\t # Displaying FPS on the image\n", + " cv2.putText(image, str(int(fps))+\" FPS\", (10, 70), cv2.FONT_HERSHEY_COMPLEX, 1, (0,255,0), 2)\n", + "\n", + "\t # Display the resulting image\n", + " cv2.imshow(\"Facial and Hand Landmarks\", image)\n", + "\n", + "\t # Enter key 'q' to break the loop\n", + " if cv2.waitKey(5) & 0xFF == ord('q'):\n", + " break\n", + "\n", + " # When all the process is done\n", + " # Release the capture and destroy all windows\n", + " \n", + " y.append(filename)\n", + " X.append(curr_landmarks)\n", + " \n", + " capture.release()\n", + " cv2.destroyAllWindows()\n", + "print(len(X))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "new_x = []\n", + "for marks in X:\n", + " new_points = []\n", + " for points in marks:\n", + " \n", + " new_points = np.concatenate([np.array(new_points), points])\n", + " new_x.append(new_points)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "new_x = np.array(new_x)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[array([ 0.49754351, 0.24339849, -1.08699799, ..., 0.56387973,\n", + " 0.81214786, -0.06409286]),\n", + " array([ 0.50140274, 0.22510312, -1.14679539, ..., 0.56702536,\n", + " 0.7974847 , -0.05792229]),\n", + " array([ 0.50218242, 0.22310859, -1.09232247, ..., 0.58099371,\n", + " 0.78162855, -0.06402194]),\n", + " array([ 0.50289309, 0.22206062, -1.04607236, ..., 0.58566338,\n", + " 0.765661 , -0.05230395]),\n", + " array([ 0.5056904 , 0.22306211, -1.03055346, ..., 0.59331363,\n", + " 0.75803286, -0.04416928]),\n", + " array([ 0.50634187, 0.22382456, -1.02342212, ..., 0.59573269,\n", + " 0.75176668, -0.05096801]),\n", + " array([ 0.50659418, 0.22351061, -1.03173161, ..., 0.5977847 ,\n", + " 0.74525541, -0.04650658]),\n", + " array([ 0.50776273, 0.22376004, -1.01507246, ..., 0.59961247,\n", + " 0.7428661 , -0.0409477 ]),\n", + " array([ 0.50814116, 0.22205846, -1.04543638, ..., 0.60100031,\n", + " 0.74513137, -0.03930411]),\n", + " array([ 0.50881273, 0.22143379, -1.02986002, ..., 0.60081518,\n", + " 0.74882114, -0.02853723]),\n", + " array([ 0.50906229, 0.2197261 , -1.0851289 , ..., 0.59968054,\n", + " 0.7611444 , -0.01534268]),\n", + " array([ 0.50944519, 0.21987091, -1.06162107, ..., 0.59601241,\n", + " 0.77499878, -0.01661504]),\n", + " array([ 0.50950426, 0.21973625, -1.14126194, ..., 0.59378052,\n", + " 0.78160387, -0.01695132]),\n", + " array([ 0.50980562, 0.21923324, -1.06067669, ..., 0.58806276,\n", + " 0.79683489, -0.02256071]),\n", + " array([ 0.51002848, 0.21930519, -1.0834738 , ..., 0.58255225,\n", + " 0.80828905, -0.04354405]),\n", + " array([ 0.51021051, 0.21903892, -1.07379699, ..., 0.58123583,\n", + " 0.81606877, -0.0401038 ]),\n", + " array([ 0.51026255, 0.21734764, -1.04365122, ..., 0.57543868,\n", + " 0.82538337, -0.04388299]),\n", + " array([ 0.51039428, 0.2157844 , -1.03938568, ..., 0.57764369,\n", + " 0.8348797 , -0.05472424]),\n", + " array([ 0.51032865, 0.21552524, -1.02298808, ..., 0.59067231,\n", + " 0.84928411, -0.05064941]),\n", + " array([ 0.51025116, 0.21327902, -1.04271388, ..., 0.61168021,\n", + " 0.78619707, -0.06029784]),\n", + " array([ 0.51022065, 0.21200931, -1.03360808, ..., 0.60302001,\n", + " 0.77215087, -0.04772865]),\n", + " array([ 0.50889033, 0.21332088, -1.02098739, ..., 0.63269025,\n", + " 0.75852543, -0.01669782]),\n", + " array([ 0.50821596, 0.21351537, -0.95702481, ..., 0.62636077,\n", + " 0.77842695, -0.03672252]),\n", + " array([ 0.50762296, 0.21347389, -0.90814131, ..., 0.6287244 ,\n", + " 0.78251535, -0.0442997 ]),\n", + " array([ 0.50742817, 0.2135656 , -0.89055163, ..., 0.43262994,\n", + " 0.59598112, -0.05797866]),\n", + " array([ 0.50640386, 0.21363759, -0.85810125, ..., 0.44005722,\n", + " 0.61222839, -0.04425444]),\n", + " array([ 0.50588506, 0.21366102, -0.83844513, ..., 0.46557418,\n", + " 0.61485267, -0.02479582]),\n", + " array([ 0.50553256, 0.21301146, -0.85183436, ..., 0.63433146,\n", + " 0.73229796, -0.05057419]),\n", + " array([ 0.50456721, 0.21217778, -0.91399866, ..., 0.63343608,\n", + " 0.73313069, -0.02949059]),\n", + " array([ 0.50306845, 0.21179046, -0.91550523, ..., 0.60603297,\n", + " 0.73946315, -0.03592744]),\n", + " array([ 0.50210416, 0.211128 , -0.97494769, ..., 0.59833246,\n", + " 0.7849381 , -0.04110523]),\n", + " array([ 0.50165945, 0.2109959 , -1.1628828 , ..., 0.5903396 ,\n", + " 0.79387188, -0.04216287]),\n", + " array([ 0.50092429, 0.21094665, -1.35484481, ..., 0.58360219,\n", + " 0.80910289, -0.04623444]),\n", + " array([ 0.50068516, 0.20754637, -1.20708811, ..., 0.57846147,\n", + " 0.82279563, -0.0449436 ]),\n", + " array([ 0.50036544, 0.20473598, -1.31472433, ..., 0.5807507 ,\n", + " 0.83651102, -0.04459666]),\n", + " array([ 0.5003528 , 0.20079918, -1.27245831, ..., 0.57693714,\n", + " 0.86169469, -0.04239299]),\n", + " array([ 0.50032872, 0.19434468, -1.21526754, ..., 0.57430446,\n", + " 0.88679755, -0.04079402]),\n", + " array([ 0.50104588, 0.18964797, -1.09175014, ..., 0.56878543,\n", + " 0.92470789, -0.04397873]),\n", + " array([ 0.501831 , 0.18757704, -1.04068196, ..., 0.55511922,\n", + " 0.98041958, -0.03603596]),\n", + " array([ 0.5065788 , 0.18062301, -1.06331718, ..., 0.5345211 ,\n", + " 1.03515291, -0.04243436]),\n", + " array([ 0.50770873, 0.17036489, -0.99372792, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50767344, 0.16147664, -0.91726655, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50785172, 0.15729433, -0.95481646, ..., 0.58032453,\n", + " 1.04988158, -0.02627283]),\n", + " array([ 0.50802541, 0.15401559, -0.97956908, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5082494 , 0.15173173, -0.98845589, ..., 0.52449101,\n", + " 0.90582788, -0.03202652]),\n", + " array([ 0.50884813, 0.15115204, -0.92173243, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51057279, 0.15217248, -0.86924326, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51193994, 0.15309556, -0.88023239, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51306105, 0.15351214, -0.80614686, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51572657, 0.15367843, -0.800062 , ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.49850938, 0.28069136, -1.11861336, ..., 0.43796438,\n", + " 0.81297433, -0.03808457]),\n", + " array([ 0.49244317, 0.29304266, -1.10829091, ..., 0.43692532,\n", + " 0.80418807, -0.04230013]),\n", + " array([ 0.48891166, 0.28770006, -1.09948826, ..., 0.43978643,\n", + " 0.78852993, -0.0412821 ]),\n", + " array([ 0.48342395, 0.29439136, -1.09188533, ..., 0.4391599 ,\n", + " 0.77636802, -0.03286506]),\n", + " array([ 0.48366073, 0.29753014, -1.01071191, ..., 0.43869489,\n", + " 0.77092576, -0.02788339]),\n", + " array([ 0.48340166, 0.29349601, -1.07618392, ..., 0.43346798,\n", + " 0.76495355, -0.02709441]),\n", + " array([ 0.48418313, 0.300183 , -1.09558523, ..., 0.42955029,\n", + " 0.76624709, -0.02641788]),\n", + " array([ 0.48457649, 0.3010591 , -1.11679578, ..., 0.43104571,\n", + " 0.76948196, -0.03201844]),\n", + " array([ 0.48533303, 0.30590302, -1.15756214, ..., 0.433126 ,\n", + " 0.77915782, -0.03907744]),\n", + " array([ 0.48578838, 0.30806637, -1.08079135, ..., 0.43451425,\n", + " 0.78194499, -0.04077244]),\n", + " array([ 0.48613662, 0.30627048, -1.12893426, ..., 0.4349786 ,\n", + " 0.77920216, -0.0352406 ]),\n", + " array([ 0.48598111, 0.30618069, -1.05661845, ..., 0.4362191 ,\n", + " 0.77584618, -0.03137314]),\n", + " array([ 0.48614526, 0.30662665, -1.07332766, ..., 0.43519026,\n", + " 0.7775932 , -0.02676558]),\n", + " array([ 0.48633122, 0.30952749, -1.09273577, ..., 0.43636185,\n", + " 0.77720964, -0.02910499]),\n", + " array([ 0.48647815, 0.30867615, -1.12216401, ..., 0.43540066,\n", + " 0.77865094, -0.03342284]),\n", + " array([ 0.48638278, 0.30854502, -1.11486399, ..., 0.43638811,\n", + " 0.77774674, -0.02835668]),\n", + " array([ 0.48569295, 0.30795506, -1.12081039, ..., 0.43690467,\n", + " 0.7778883 , -0.03133822]),\n", + " array([ 0.48506862, 0.30743608, -1.12022138, ..., 0.43656662,\n", + " 0.78037542, -0.03107811]),\n", + " array([ 0.48414731, 0.30599082, -1.12432325, ..., 0.43681613,\n", + " 0.77949673, -0.03010358]),\n", + " array([ 0.48375413, 0.30451381, -1.11677325, ..., 0.43666202,\n", + " 0.7801609 , -0.03022109]),\n", + " array([ 0.48362571, 0.30463022, -1.13349235, ..., 0.43635482,\n", + " 0.78104562, -0.03159691]),\n", + " array([ 0.4834449 , 0.30523631, -1.14372981, ..., 0.43608212,\n", + " 0.78119099, -0.03171387]),\n", + " array([ 0.48317477, 0.30518281, -1.14093459, ..., 0.4363448 ,\n", + " 0.78128046, -0.03134046]),\n", + " array([ 0.48317188, 0.30284345, -1.10243785, ..., 0.4373112 ,\n", + " 0.78129584, -0.0326469 ]),\n", + " array([ 0.48468363, 0.30280566, -1.10367787, ..., 0.4367786 ,\n", + " 0.78450787, -0.02799089]),\n", + " array([ 0.48665115, 0.29522946, -1.11224151, ..., 0.43823689,\n", + " 0.78629005, -0.02823511]),\n", + " array([ 0.48711309, 0.29030076, -1.1689316 , ..., 0.43930942,\n", + " 0.78973341, -0.02217629]),\n", + " array([ 0.48690322, 0.27748382, -1.16222429, ..., 0.44103914,\n", + " 0.79952842, -0.02062384]),\n", + " array([ 0.48684224, 0.25191835, -1.14193511, ..., 0.44317046,\n", + " 0.84362477, -0.03290524]),\n", + " array([ 0.48672307, 0.23871763, -1.14069331, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48496592, 0.22910424, -1.15812671, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4849351 , 0.22217642, -1.1577183 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48285392, 0.21394452, -1.04371941, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48106873, 0.21145846, -1.05868781, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47814414, 0.20597397, -0.99984765, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47819546, 0.20502976, -0.9221853 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47824183, 0.19859469, -0.82200968, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47811279, 0.19112279, -0.899266 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47809216, 0.18825689, -0.83127576, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47746739, 0.18521425, -0.88714379, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47758016, 0.18261714, -0.88255882, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4775461 , 0.18144837, -0.82681602, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4770945 , 0.18014938, -0.84671706, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47702003, 0.18078578, -0.8558526 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4768565 , 0.18139517, -0.84220314, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47685754, 0.18184257, -0.83854735, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47691578, 0.1820547 , -0.82347989, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.51380807, 0.27981892, -1.06515372, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.52249837, 0.30788049, -1.12839818, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51823533, 0.33086661, -1.12456965, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51533788, 0.33181411, -1.2038517 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.513156 , 0.33000872, -1.30155146, ..., 0.55281174,\n", + " 0.90941322, -0.03928166]),\n", + " array([ 0.51503569, 0.32408008, -1.34848666, ..., 0.56126642,\n", + " 0.89303774, -0.04286357]),\n", + " array([ 0.51231569, 0.33710822, -1.40085781, ..., 0.56087506,\n", + " 0.88649923, -0.03880109]),\n", + " array([ 0.50697809, 0.34884393, -1.46802568, ..., 0.56526566,\n", + " 0.87194359, -0.04736297]),\n", + " array([ 0.50351238, 0.34785107, -1.54133749, ..., 0.56530696,\n", + " 0.8691594 , -0.04640225]),\n", + " array([ 0.49799454, 0.35475427, -1.63330317, ..., 0.56649268,\n", + " 0.8628428 , -0.04459769]),\n", + " array([ 0.48354927, 0.36689091, -1.48310745, ..., 0.56659287,\n", + " 0.86180824, -0.04557779]),\n", + " array([ 0.47587079, 0.36277381, -1.43693531, ..., 0.56322843,\n", + " 0.86378431, -0.04163259]),\n", + " array([ 0.47419769, 0.36025721, -1.41803849, ..., 0.56479377,\n", + " 0.85702312, -0.04130012]),\n", + " array([ 0.4739466 , 0.35747606, -1.39663088, ..., 0.56301343,\n", + " 0.86190915, -0.04339963]),\n", + " array([ 0.47183362, 0.35646752, -1.40466595, ..., 0.56589997,\n", + " 0.8574844 , -0.05032261]),\n", + " array([ 0.47064632, 0.35632658, -1.43932068, ..., 0.56176448,\n", + " 0.85811037, -0.03995663]),\n", + " array([ 0.46930692, 0.35544875, -1.43141878, ..., 0.56138808,\n", + " 0.86109465, -0.03896492]),\n", + " array([ 0.4679651 , 0.35571 , -1.38997602, ..., 0.56431425,\n", + " 0.85623682, -0.04402731]),\n", + " array([ 0.46771413, 0.35535926, -1.36897564, ..., 0.5650934 ,\n", + " 0.8528105 , -0.04349152]),\n", + " array([ 0.46739751, 0.35528153, -1.37165773, ..., 0.56485802,\n", + " 0.85478139, -0.04382541]),\n", + " array([ 0.46766803, 0.35496581, -1.32757342, ..., 0.56777465,\n", + " 0.85165572, -0.03960776]),\n", + " array([ 0.46784836, 0.35489196, -1.33659601, ..., 0.56417739,\n", + " 0.85099173, -0.04191573]),\n", + " array([ 0.46800122, 0.35525954, -1.30829787, ..., 0.5621618 ,\n", + " 0.84115887, -0.04378064]),\n", + " array([ 0.46804267, 0.35590106, -1.31416523, ..., 0.56813717,\n", + " 0.84375453, -0.04477142]),\n", + " array([ 0.46810445, 0.35700858, -1.32267761, ..., 0.56586236,\n", + " 0.84562874, -0.04349282]),\n", + " array([ 0.46816877, 0.35900697, -1.39665115, ..., 0.57200944,\n", + " 0.8470934 , -0.0434238 ]),\n", + " array([ 0.4682698 , 0.35886025, -1.38784778, ..., 0.57501829,\n", + " 0.85043901, -0.0464768 ]),\n", + " array([ 0.4683395 , 0.35838419, -1.41195667, ..., 0.57580775,\n", + " 0.85114497, -0.04829318]),\n", + " array([ 0.46840519, 0.35692397, -1.38248944, ..., 0.57618505,\n", + " 0.85179871, -0.04613378]),\n", + " array([ 0.46844417, 0.35687864, -1.34675229, ..., 0.57153922,\n", + " 0.84706384, -0.04483048]),\n", + " array([ 0.46845481, 0.35494965, -1.33664167, ..., 0.57369494,\n", + " 0.84824008, -0.04370001]),\n", + " array([ 0.46848682, 0.35495797, -1.32393169, ..., 0.56808025,\n", + " 0.84801567, -0.04409035]),\n", + " array([ 0.46866032, 0.35493165, -1.31221282, ..., 0.57043475,\n", + " 0.84512872, -0.04636636]),\n", + " array([ 0.46868724, 0.35511771, -1.31169498, ..., 0.57075644,\n", + " 0.84553635, -0.04488566]),\n", + " array([ 0.46865955, 0.35520673, -1.30367601, ..., 0.56918061,\n", + " 0.84708381, -0.04446396]),\n", + " array([ 0.46829131, 0.35489759, -1.30874097, ..., 0.57384425,\n", + " 0.84693605, -0.04140965]),\n", + " array([ 0.46934521, 0.35513389, -1.30934143, ..., 0.56769884,\n", + " 0.84969461, -0.04131256]),\n", + " array([ 0.46993041, 0.35505944, -1.30892074, ..., 0.57433236,\n", + " 0.84768486, -0.04634078]),\n", + " array([ 0.47035944, 0.35503379, -1.26639116, ..., 0.56852823,\n", + " 0.85044676, -0.04296914]),\n", + " array([ 0.47054565, 0.35558015, -1.27711785, ..., 0.56889695,\n", + " 0.85228008, -0.04468312]),\n", + " array([ 0.46967056, 0.35637119, -1.27798879, ..., 0.57234156,\n", + " 0.85954571, -0.04971934]),\n", + " array([ 0.47075835, 0.35853395, -1.3227576 , ..., 0.56820655,\n", + " 0.86247897, -0.04590964]),\n", + " array([ 0.47329316, 0.35832813, -1.32646906, ..., 0.56257421,\n", + " 0.8764962 , -0.04531514]),\n", + " array([ 0.47543404, 0.34395951, -1.30929303, ..., 0.56878811,\n", + " 0.88893205, -0.04618366]),\n", + " array([ 0.48291084, 0.31950608, -1.24695492, ..., 0.56085509,\n", + " 0.91718227, -0.05468424]),\n", + " array([ 0.48963454, 0.29574192, -1.25821948, ..., 0.56712049,\n", + " 0.91913861, -0.05706834])],\n", + " [array([ 0.47888213, 0.30324084, -1.05505931, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47373036, 0.30606237, -1.13125336, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46869931, 0.30659297, -1.16118193, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46712044, 0.30704463, -1.18550348, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46510395, 0.30412993, -1.19617021, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46497995, 0.3055743 , -1.21128261, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46471947, 0.3059451 , -1.21484387, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46457261, 0.30675995, -1.2174542 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46423206, 0.30667666, -1.31379747, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46427077, 0.30611283, -1.31659389, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46427307, 0.30551863, -1.30521894, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46428752, 0.30493772, -1.25358605, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46441361, 0.30405459, -1.25438678, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46474767, 0.30216208, -1.29081714, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46484047, 0.30188861, -1.29034102, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46486333, 0.30193347, -1.27684343, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46512359, 0.30225468, -1.26633513, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46596169, 0.30285984, -1.30639446, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46670666, 0.30356714, -1.3236115 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46711895, 0.30443877, -1.17570424, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4671402 , 0.30473804, -1.15919185, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46715862, 0.30497441, -1.13996816, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46713009, 0.30571198, -1.05968499, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46724835, 0.30728513, -1.06465554, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46742272, 0.30808768, -0.99526811, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46743846, 0.31038207, -1.05167735, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46744969, 0.31248119, -1.07303166, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46752018, 0.31414288, -1.07075703, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46740809, 0.31453109, -1.01117015, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46718365, 0.31488082, -1.00392389, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46713981, 0.3149392 , -1.0782522 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46708614, 0.31505957, -1.1636405 , ..., 0.22798489,\n", + " 0.91944838, -0.04538161]),\n", + " array([ 0.46711284, 0.31517246, -1.22601092, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46776253, 0.31699905, -1.28151 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46854332, 0.31841248, -1.2680279 , ..., 0.2331363 ,\n", + " 0.88908952, -0.06182029]),\n", + " array([ 0.46903321, 0.31841946, -1.31849456, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46913183, 0.31842983, -1.30865026, ..., 0.22366706,\n", + " 0.84793675, -0.06004978]),\n", + " array([ 0.46924809, 0.31834128, -1.29734981, ..., 0.23687892,\n", + " 0.86799473, -0.0604594 ]),\n", + " array([ 0.47013414, 0.31697941, -1.28876698, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47015727, 0.31579113, -1.29893076, ..., 0.22309326,\n", + " 0.83896506, -0.06013445]),\n", + " array([ 0.47024667, 0.31577444, -1.27213025, ..., 0.21988946,\n", + " 0.84526658, -0.05557904]),\n", + " array([ 0.46911326, 0.31565961, -1.28283107, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46897954, 0.3146866 , -1.26866865, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46861726, 0.31376103, -1.21722031, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46828789, 0.31336299, -1.20353305, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46809846, 0.3133024 , -1.19678032, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46753174, 0.31362623, -1.13852739, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46740097, 0.31409696, -1.12733579, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46789145, 0.31498137, -1.10711873, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46971637, 0.31649768, -1.09807956, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46976379, 0.31579304, -1.1058929 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47074577, 0.31537983, -1.2244221 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4709917 , 0.31548509, -1.25915623, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47313926, 0.31677738, -1.36468005, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4755806 , 0.31847298, -1.37265849, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47556782, 0.31788921, -1.32149184, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47523761, 0.31718567, -1.33931017, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47521132, 0.31617561, -1.35233998, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.49607763, 0.26843935, -1.06704605, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50634539, 0.26657239, -0.98428965, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50929374, 0.26518902, -1.01055753, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51064062, 0.25731018, -1.09893596, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50995564, 0.25396013, -1.16656399, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51041794, 0.25687203, -1.21056604, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51364213, 0.257063 , -1.17973423, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51669616, 0.26427755, -1.27225995, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51899534, 0.26534489, -1.16401255, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51871562, 0.26495838, -0.8086428 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51854575, 0.26507604, -0.74355948, ..., 0.47496131,\n", + " 1.01137829, -0.03918207]),\n", + " array([ 0.51825064, 0.26560271, -0.74975723, ..., 0.48995215,\n", + " 0.95636892, -0.04660275]),\n", + " array([ 0.51808929, 0.26676473, -0.79038501, ..., 0.49857414,\n", + " 0.90089774, -0.08823781]),\n", + " array([ 0.51782221, 0.26711878, -0.7489987 , ..., 0.50762922,\n", + " 0.86124378, -0.09421802]),\n", + " array([ 0.51763606, 0.26921281, -0.82430267, ..., 0.51413196,\n", + " 0.84036535, -0.088376 ]),\n", + " array([ 0.51747888, 0.27555385, -0.81358916, ..., 0.51304018,\n", + " 0.82289714, -0.09484456]),\n", + " array([ 0.51655078, 0.28078076, -0.79131627, ..., 0.50893939,\n", + " 0.81801224, -0.08337374]),\n", + " array([ 0.51646692, 0.28178418, -0.77625489, ..., 0.51383686,\n", + " 0.81683552, -0.08599428]),\n", + " array([ 0.51730448, 0.28534719, -0.80014402, ..., 0.51921827,\n", + " 0.81905913, -0.07876439]),\n", + " array([ 0.51836324, 0.28531662, -0.84814334, ..., 0.52803254,\n", + " 0.82479602, -0.07110307]),\n", + " array([ 0.5196659 , 0.28527156, -0.79349375, ..., 0.5317229 ,\n", + " 0.82994163, -0.06883413]),\n", + " array([ 0.51960689, 0.28548878, -0.70286995, ..., 0.55312955,\n", + " 0.83373159, -0.06063864]),\n", + " array([ 0.51841462, 0.28979978, -0.73977417, ..., 0.55400884,\n", + " 0.81849414, -0.05203724]),\n", + " array([ 0.51780248, 0.29303938, -0.7296502 , ..., 0.55361658,\n", + " 0.78775066, -0.04845728]),\n", + " array([ 0.51776826, 0.29997212, -0.7445904 , ..., 0.54751337,\n", + " 0.76693964, -0.05085897]),\n", + " array([ 0.51773322, 0.30291015, -0.75809789, ..., 0.53703892,\n", + " 0.7481572 , -0.05134092]),\n", + " array([ 0.5173611 , 0.30658615, -0.90171587, ..., 0.5351187 ,\n", + " 0.73466605, -0.05121187]),\n", + " array([ 0.51733905, 0.30828285, -0.94028342, ..., 0.53103232,\n", + " 0.73548102, -0.05312466]),\n", + " array([ 0.51749688, 0.31207645, -0.92022759, ..., 0.53357065,\n", + " 0.73919356, -0.05474621]),\n", + " array([ 0.51749086, 0.31512219, -0.89737433, ..., 0.54273325,\n", + " 0.74955755, -0.05030938]),\n", + " array([ 0.51748943, 0.31943694, -0.89107275, ..., 0.54986179,\n", + " 0.76648933, -0.04343869]),\n", + " array([ 0.51782209, 0.32031098, -0.93923032, ..., 0.55422813,\n", + " 0.78450632, -0.04268493]),\n", + " array([ 0.51793832, 0.32005236, -0.94104385, ..., 0.5557977 ,\n", + " 0.78774095, -0.0440413 ]),\n", + " array([ 0.51784474, 0.31972155, -0.94136542, ..., 0.55279166,\n", + " 0.77941036, -0.04216328]),\n", + " array([ 0.51776934, 0.31957042, -0.9359408 , ..., 0.54583776,\n", + " 0.7625879 , -0.04242557]),\n", + " array([ 0.51765144, 0.32604909, -0.92914498, ..., 0.54780924,\n", + " 0.73778176, -0.05086134]),\n", + " array([ 0.51708555, 0.33216852, -0.92669225, ..., 0.54969478,\n", + " 0.7139529 , -0.04946084]),\n", + " array([ 0.51690513, 0.33761466, -1.06150711, ..., 0.55090827,\n", + " 0.68917507, -0.04493549]),\n", + " array([ 0.51698953, 0.33600622, -1.06610548, ..., 0.56147259,\n", + " 0.67910421, -0.04178116]),\n", + " array([ 0.51685339, 0.33517268, -1.04499197, ..., 0.57089341,\n", + " 0.68177742, -0.03664095]),\n", + " array([ 0.51770878, 0.34289294, -1.1985085 , ..., 0.57587194,\n", + " 0.6983301 , -0.026327 ]),\n", + " array([ 0.51883727, 0.35053498, -1.15749705, ..., 0.58260465,\n", + " 0.72249329, -0.02094937]),\n", + " array([ 0.51878613, 0.35338748, -1.18692541, ..., 0.58603966,\n", + " 0.74958813, -0.01985847]),\n", + " array([ 0.5187521 , 0.356121 , -1.13733733, ..., 0.58920032,\n", + " 0.77220488, -0.01998558]),\n", + " array([ 0.51854247, 0.35905313, -1.12459767, ..., 0.59041655,\n", + " 0.78787851, -0.0160324 ]),\n", + " array([ 0.51904207, 0.36025494, -1.11661458, ..., 0.5908584 ,\n", + " 0.79912794, -0.01312519]),\n", + " array([ 0.51903576, 0.36193344, -1.04734111, ..., 0.59039038,\n", + " 0.80554974, -0.01409415]),\n", + " array([ 0.51902819, 0.3616454 , -1.04451942, ..., 0.58980793,\n", + " 0.81079692, -0.01565228]),\n", + " array([ 0.5192014 , 0.36353585, -1.04682577, ..., 0.58937085,\n", + " 0.81330395, -0.02043728]),\n", + " array([ 0.5192917 , 0.3631475 , -0.99024719, ..., 0.58844829,\n", + " 0.81480044, -0.02035092]),\n", + " array([ 0.52030343, 0.35903814, -0.99741751, ..., 0.58760697,\n", + " 0.81918079, -0.0197386 ]),\n", + " array([ 0.52007025, 0.35699651, -1.00280261, ..., 0.58620512,\n", + " 0.82256269, -0.01996381]),\n", + " array([ 0.51856482, 0.35567915, -1.02016521, ..., 0.58529204,\n", + " 0.82793415, -0.02029555]),\n", + " array([ 0.51608622, 0.34126705, -1.07290149, ..., 0.57882506,\n", + " 0.84277827, -0.02584776]),\n", + " array([ 0.51135629, 0.32347119, -1.14925182, ..., 0.56930947,\n", + " 0.86455321, -0.03587076]),\n", + " array([ 0.50569379, 0.31298056, -1.21238399, ..., 0.54949039,\n", + " 0.88766783, -0.04101562]),\n", + " array([ 0.50312346, 0.30229828, -1.18795526, ..., 0.52931017,\n", + " 0.92673659, -0.04891473]),\n", + " array([ 0.50178987, 0.29139036, -1.2070564 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49901798, 0.28442875, -1.24754405, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49672684, 0.27824771, -1.2189703 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49537086, 0.27564502, -1.21384025, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49391636, 0.27474999, -1.22976506, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49327418, 0.27389488, -1.10923672, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.49242127, 0.27433497, -0.96361041, ..., 0.50330544,\n", + " 0.50028837, -0.06712847]),\n", + " array([ 0.49261132, 0.27622646, -0.99475807, ..., 0.51151186,\n", + " 0.50896841, -0.08028422]),\n", + " array([ 0.49273065, 0.28050652, -0.95100671, ..., 0.48917305,\n", + " 0.49204388, -0.06352261]),\n", + " array([ 0.49284551, 0.28274179, -0.96797991, ..., 0.50095576,\n", + " 0.59419358, -0.06181526]),\n", + " array([ 0.49306506, 0.28288904, -0.98462868, ..., 0.50627047,\n", + " 0.60760713, -0.05097761]),\n", + " array([ 0.49315166, 0.28469512, -1.00465667, ..., 0.50799662,\n", + " 0.60947627, -0.05349172]),\n", + " array([ 0.49331391, 0.28523716, -0.97612464, ..., 0.51220798,\n", + " 0.61261392, -0.05704261]),\n", + " array([ 0.49427199, 0.28562692, -0.94065195, ..., 0.51288164,\n", + " 0.61000156, -0.05141519]),\n", + " array([ 0.49434564, 0.28559425, -0.90379524, ..., 0.51636791,\n", + " 0.61781865, -0.05358206]),\n", + " array([ 0.49452019, 0.2856701 , -0.87867337, ..., 0.51593578,\n", + " 0.6162008 , -0.05000283]),\n", + " array([ 0.49481094, 0.28594014, -0.90751112, ..., 0.51641136,\n", + " 0.62168825, -0.05297771]),\n", + " array([ 0.49527895, 0.28555393, -0.95951813, ..., 0.51334739,\n", + " 0.62324995, -0.05581012]),\n", + " array([ 0.49574867, 0.28489479, -0.91581392, ..., 0.51229137,\n", + " 0.62505054, -0.05695539]),\n", + " array([ 0.49586883, 0.28427222, -0.86895472, ..., 0.51126319,\n", + " 0.62592649, -0.05970831]),\n", + " array([ 0.49596727, 0.2843512 , -0.8852703 , ..., 0.51221538,\n", + " 0.62909871, -0.05383813]),\n", + " array([ 0.49603412, 0.28336492, -0.87445277, ..., 0.51374286,\n", + " 0.6320284 , -0.0503666 ]),\n", + " array([ 0.49608079, 0.28297573, -0.98703575, ..., 0.51788169,\n", + " 0.63626868, -0.05019029]),\n", + " array([ 0.49611107, 0.28232479, -0.96823126, ..., 0.52058041,\n", + " 0.63721079, -0.05455971]),\n", + " array([ 0.49614388, 0.28181744, -0.96445608, ..., 0.52600384,\n", + " 0.63830984, -0.05381842]),\n", + " array([ 0.49638832, 0.28055188, -0.96101987, ..., 0.52453017,\n", + " 0.6315046 , -0.05854524]),\n", + " array([ 0.49759892, 0.28063989, -0.96297699, ..., 0.52633816,\n", + " 0.6382888 , -0.05307493]),\n", + " array([ 0.49794582, 0.28157142, -0.9082495 , ..., 0.52703577,\n", + " 0.64100349, -0.05028264]),\n", + " array([ 0.49850461, 0.2813946 , -0.90531015, ..., 0.52014679,\n", + " 0.63601702, -0.04853222]),\n", + " array([ 0.49983144, 0.28129232, -0.89195967, ..., 0.5198245 ,\n", + " 0.64133388, -0.04515851]),\n", + " array([ 0.50002486, 0.28129971, -0.88585585, ..., 0.51577085,\n", + " 0.63832414, -0.04278899]),\n", + " array([ 0.50031793, 0.28144622, -0.89016199, ..., 0.51829147,\n", + " 0.64328283, -0.0430784 ]),\n", + " array([ 0.50063431, 0.28288162, -0.90105414, ..., 0.52166557,\n", + " 0.64546639, -0.04892978]),\n", + " array([ 0.50079286, 0.28333026, -0.93574882, ..., 0.52306861,\n", + " 0.64672852, -0.0451636 ]),\n", + " array([ 0.50080597, 0.28324986, -0.97314042, ..., 0.52121413,\n", + " 0.64290595, -0.04021681]),\n", + " array([ 0.50090718, 0.28341371, -0.96604681, ..., 0.52358353,\n", + " 0.64388818, -0.04152251]),\n", + " array([ 0.50093579, 0.28328568, -0.95780945, ..., 0.52347225,\n", + " 0.64637285, -0.04155302]),\n", + " array([ 0.50089049, 0.28328899, -0.93913096, ..., 0.52180791,\n", + " 0.65344274, -0.04572803]),\n", + " array([ 0.5009014 , 0.2830258 , -0.92587507, ..., 0.52330959,\n", + " 0.66327089, -0.04582822]),\n", + " array([ 0.50091588, 0.28247726, -0.96311539, ..., 0.51718593,\n", + " 0.67415684, -0.0297691 ]),\n", + " array([ 0.50092149, 0.28074107, -1.01082385, ..., 0.51397395,\n", + " 0.75730431, -0.01432851]),\n", + " array([ 0.50024134, 0.27521607, -1.14359176, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4999873 , 0.27393267, -1.1916492 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49996632, 0.26716441, -1.27096045, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.50285256, 0.26578805, -0.54825848, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50402141, 0.25823849, -0.40917134, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50420237, 0.25640622, -0.50288934, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50435907, 0.25680375, -0.47923389, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50530905, 0.25688773, -0.4685362 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50531036, 0.25696743, -0.49733397, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50637347, 0.25718057, -0.46561128, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50705123, 0.2608768 , -0.45745772, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5078212 , 0.26084283, -0.48492008, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50827599, 0.26154852, -0.50081676, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50836921, 0.26271451, -0.51688421, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50840992, 0.26280087, -0.50834298, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50833684, 0.26537195, -0.51614565, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50909704, 0.26439887, -0.48855549, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50909597, 0.26357338, -0.50100839, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50905055, 0.2632165 , -0.49361905, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50888556, 0.26313055, -0.49435192, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50860053, 0.26312914, -0.49503097, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50849074, 0.26195258, -0.47221157, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5085023 , 0.26202783, -0.48203868, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50827652, 0.26270545, -0.48522565, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50798887, 0.26325366, -0.47569683, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50781369, 0.26318246, -0.46973982, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50794601, 0.26206824, -0.44845971, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50749934, 0.26513925, -0.49375877, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50710142, 0.26732993, -0.47923011, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50609583, 0.26921523, -0.47957247, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50560462, 0.27038205, -0.48494607, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50538898, 0.27041954, -0.4857794 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50338936, 0.27055755, -0.4923951 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50247145, 0.27219763, -0.49928033, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50199699, 0.27379343, -0.52685648, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50113589, 0.27377507, -0.59075987, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50057817, 0.27182379, -0.58339936, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50006104, 0.27181327, -0.59087008, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.50002211, 0.27196816, -0.73949575, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49998429, 0.27383578, -0.66100746, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49870259, 0.27981642, -0.81048095, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49593085, 0.28214988, -0.86449212, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49594909, 0.28150392, -0.77101272, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4955906 , 0.28092483, -0.72695577, ..., 0.50969648,\n", + " 0.94000208, -0.07225253]),\n", + " array([ 0.49593446, 0.2782855 , -0.58179337, ..., 0.51363641,\n", + " 0.92510915, -0.06338665]),\n", + " array([ 0.49580997, 0.27296686, -0.54585814, ..., 0.51171511,\n", + " 0.9284085 , -0.05146958]),\n", + " array([ 0.49355271, 0.26169351, -0.50097013, ..., 0.51496917,\n", + " 0.92977715, -0.04557586]),\n", + " array([ 0.49341232, 0.26215515, -0.48726806, ..., 0.51610267,\n", + " 0.93257576, -0.04153694]),\n", + " array([ 0.49409595, 0.26081058, -0.47233245, ..., 0.51635003,\n", + " 0.93283272, -0.05350738]),\n", + " array([ 0.4954311 , 0.25811735, -0.45363519, ..., 0.51886672,\n", + " 0.93872464, -0.04276075]),\n", + " array([ 0.49960336, 0.25846732, -0.4212698 , ..., 0.51613659,\n", + " 0.94168842, -0.04441126]),\n", + " array([ 0.50114381, 0.2571387 , -0.38638127, ..., 0.51614463,\n", + " 0.94608456, -0.04099968]),\n", + " array([ 0.50757813, 0.25305897, -0.37947142, ..., 0.51411539,\n", + " 0.94715494, -0.04128669]),\n", + " array([ 0.50820363, 0.25324675, -0.36990982, ..., 0.51659429,\n", + " 0.94665045, -0.03235119]),\n", + " array([ 0.50953984, 0.25625837, -0.36361071, ..., 0.5177182 ,\n", + " 0.94904017, -0.03120391]),\n", + " array([ 0.50960279, 0.25689924, -0.37711456, ..., 0.51731557,\n", + " 0.95468295, -0.04316434]),\n", + " array([ 0.50941288, 0.2585552 , -0.38840112, ..., 0.51748174,\n", + " 0.95358247, -0.04088106]),\n", + " array([ 0.51439279, 0.2596705 , -0.37949342, ..., 0.51683658,\n", + " 0.95921028, -0.03880828]),\n", + " array([ 0.51563054, 0.25969046, -0.3890321 , ..., 0.51772684,\n", + " 0.95963383, -0.04237017]),\n", + " array([ 0.51534063, 0.25970644, -0.38867843, ..., 0.51637799,\n", + " 0.95992637, -0.04635535]),\n", + " array([ 0.51484227, 0.26156619, -0.39016154, ..., 0.51693368,\n", + " 0.96086299, -0.04264619]),\n", + " array([ 0.51491266, 0.26217923, -0.39629367, ..., 0.51598716,\n", + " 0.96150857, -0.03976013]),\n", + " array([ 0.51377767, 0.26899436, -0.41431513, ..., 0.51459533,\n", + " 0.96199584, -0.05618227]),\n", + " array([ 0.51424772, 0.26905552, -0.39902812, ..., 0.51479858,\n", + " 0.95883894, -0.0484821 ]),\n", + " array([ 0.50981164, 0.27348232, -0.3976692 , ..., 0.5144968 ,\n", + " 0.95483577, -0.05117323]),\n", + " array([ 0.50945818, 0.28294912, -0.39570126, ..., 0.51534963,\n", + " 0.95198148, -0.04385057]),\n", + " array([ 0.50961274, 0.2896986 , -0.40197903, ..., 0.51520151,\n", + " 0.95121646, -0.03556505]),\n", + " array([ 0.50991797, 0.28844813, -0.42271549, ..., 0.51445025,\n", + " 0.94452769, -0.03869712]),\n", + " array([ 0.50953805, 0.28765646, -0.42921832, ..., 0.51726466,\n", + " 0.9448812 , -0.03333815]),\n", + " array([ 0.50951898, 0.28702185, -0.44786063, ..., 0.51689017,\n", + " 0.94510102, -0.03451329]),\n", + " array([ 0.51047248, 0.28661191, -0.46311253, ..., 0.51746374,\n", + " 0.94498289, -0.03713525]),\n", + " array([ 0.51091254, 0.28639364, -0.46595708, ..., 0.51738238,\n", + " 0.94647056, -0.04083397]),\n", + " array([ 0.51327562, 0.2860775 , -0.46571264, ..., 0.51838791,\n", + " 0.9472717 , -0.03704243]),\n", + " array([ 0.51326334, 0.28585896, -0.48217529, ..., 0.51625973,\n", + " 0.94739461, -0.03666982]),\n", + " array([ 0.50985169, 0.28586084, -0.47392571, ..., 0.51938355,\n", + " 0.94660527, -0.04140561]),\n", + " array([ 0.50929755, 0.28573555, -0.49236691, ..., 0.51674145,\n", + " 0.94669461, -0.0320458 ]),\n", + " array([ 0.50785273, 0.28292578, -0.48167324, ..., 0.51841778,\n", + " 0.94712102, -0.03473882]),\n", + " array([ 0.50749379, 0.28016099, -0.48398918, ..., 0.51892602,\n", + " 0.94887877, -0.03748934]),\n", + " array([ 0.5066936 , 0.28260514, -0.47041979, ..., 0.52020013,\n", + " 0.94875568, -0.04129332]),\n", + " array([ 0.50658453, 0.28429121, -0.46400246, ..., 0.51792026,\n", + " 0.94869781, -0.03906154]),\n", + " array([ 0.50672477, 0.28431493, -0.46412683, ..., 0.52003068,\n", + " 0.94874734, -0.03505644]),\n", + " array([ 0.50787771, 0.28675306, -0.46458954, ..., 0.52059168,\n", + " 0.95129746, -0.03629423]),\n", + " array([ 0.50837427, 0.28753862, -0.47081766, ..., 0.52131402,\n", + " 0.94912452, -0.03974093]),\n", + " array([ 0.50842154, 0.29247311, -0.4772546 , ..., 0.52004409,\n", + " 0.9474619 , -0.04197415]),\n", + " array([ 0.50856966, 0.2919341 , -0.49215898, ..., 0.52137715,\n", + " 0.94852954, -0.03766172]),\n", + " array([ 0.50866777, 0.28315449, -0.49408856, ..., 0.52054644,\n", + " 0.94825053, -0.04158682]),\n", + " array([ 0.50952399, 0.2802428 , -0.49167043, ..., 0.52152127,\n", + " 0.94914269, -0.03941717]),\n", + " array([ 0.50884795, 0.27718484, -0.5153451 , ..., 0.51961309,\n", + " 0.95081478, -0.04727964]),\n", + " array([ 0.50877607, 0.27619269, -0.52023101, ..., 0.51879746,\n", + " 0.95105171, -0.03947347]),\n", + " array([ 0.50878233, 0.2747865 , -0.530689 , ..., 0.51913702,\n", + " 0.94873184, -0.04416655]),\n", + " array([ 0.50838339, 0.27647802, -0.52321649, ..., 0.51754373,\n", + " 0.94600517, -0.06523423]),\n", + " array([ 0.50372827, 0.27624917, -0.52195495, ..., 0.51912802,\n", + " 0.94104075, -0.04370194]),\n", + " array([ 0.50058782, 0.27651796, -0.52325857, ..., 0.51339906,\n", + " 0.93358421, -0.07738061]),\n", + " array([ 0.49967873, 0.27796334, -0.54171336, ..., 0.51409888,\n", + " 0.92848587, -0.04882712]),\n", + " array([ 0.49794698, 0.27969873, -0.62125939, ..., 0.51308131,\n", + " 0.91952366, -0.04580581]),\n", + " array([ 0.49416366, 0.27992252, -0.64165926, ..., 0.51296741,\n", + " 0.91150635, -0.05319474]),\n", + " array([ 0.49296093, 0.27989277, -0.71106416, ..., 0.51058483,\n", + " 0.90591002, -0.06103532]),\n", + " array([ 0.4920688 , 0.27992707, -0.72006488, ..., 0.51411033,\n", + " 0.90192831, -0.05662284]),\n", + " array([ 0.49063751, 0.27824116, -0.77102286, ..., 0.51512063,\n", + " 0.90579885, -0.06222206]),\n", + " array([ 0.49061307, 0.27825028, -0.76612961, ..., 0.51712447,\n", + " 0.92097688, -0.07308301]),\n", + " array([ 0.49024087, 0.2781336 , -0.71689224, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49023163, 0.27830237, -0.6988681 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48943019, 0.27842036, -0.69483232, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48810321, 0.27819729, -0.82887352, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48757201, 0.27785859, -0.60215139, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48727572, 0.27640021, -0.70974153, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48727462, 0.27567086, -0.66898 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48730424, 0.27270997, -0.55686474, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48738912, 0.2701447 , -0.60173875, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.487295 , 0.26951572, -0.5338701 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48604158, 0.26887462, -0.52004313, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48528939, 0.26747113, -0.55193633, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.47951171, 0.26350006, -0.51668882, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47596565, 0.26099077, -0.50654209, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47423038, 0.25695878, -0.520419 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47331098, 0.25546244, -0.52686548, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47260636, 0.25370714, -0.54894513, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4718492 , 0.25391933, -0.53723311, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47182748, 0.25407073, -0.52151412, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47189444, 0.2541835 , -0.51872045, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47142419, 0.25484923, -0.52228808, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47133559, 0.25592557, -0.53485179, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47111332, 0.25941461, -0.53497201, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47030568, 0.26206017, -0.55695856, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47024831, 0.26217583, -0.59107709, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46947205, 0.26235771, -0.59053826, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46623352, 0.26232606, -0.58186138, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46522868, 0.26293296, -0.55504751, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46515331, 0.26465404, -0.50005144, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46522143, 0.26529145, -0.56756568, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46483245, 0.26579925, -0.58320844, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46336663, 0.26639387, -0.58221066, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46284074, 0.26671523, -0.59444886, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46213615, 0.26818469, -0.57932037, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46108657, 0.27082938, -0.68261445, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46042305, 0.27348173, -0.67010915, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45973834, 0.27390805, -0.67406201, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45847294, 0.2746954 , -0.52926546, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45843029, 0.27773058, -0.48213604, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45776901, 0.28376403, -0.46398872, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45792863, 0.28441012, -0.49256989, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45824218, 0.28486103, -0.49901307, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45801833, 0.28520104, -0.45983428, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4575935 , 0.29020214, -0.4698368 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45706326, 0.29656836, -0.48249623, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45690274, 0.29598626, -0.52426404, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45683289, 0.29653183, -0.57071328, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45501846, 0.28836828, -0.5614422 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45376432, 0.28424668, -0.52430022, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45236 , 0.28927714, -0.52471125, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44726598, 0.28719085, -0.51128983, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44523719, 0.28768802, -0.48658508, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4437834 , 0.29364654, -0.49343249, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44304138, 0.29566374, -0.46839711, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44290081, 0.29549754, -0.46894524, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44289631, 0.29172754, -0.46839824, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44186649, 0.29210275, -0.45792186, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44122514, 0.29300824, -0.46703514, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44131133, 0.2934604 , -0.4679181 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44128621, 0.29152724, -0.47019187, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44131339, 0.29151368, -0.45653239, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44134894, 0.29430273, -0.44575173, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4398526 , 0.29437724, -0.40913555, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43623343, 0.29437515, -0.39254484, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43418425, 0.29488984, -0.41145375, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43415225, 0.29434845, -0.40135953, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43411073, 0.29334003, -0.50111306, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43368214, 0.29305312, -0.49144614, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.42893556, 0.29103917, -0.48425996, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.42882565, 0.28998026, -0.44015738, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.42888576, 0.279798 , -0.38367146, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.42895359, 0.28009665, -0.39682758, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.42901367, 0.28017801, -0.38532546, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43029815, 0.28049213, -0.38158539, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43042251, 0.28070024, -0.38190719, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43056676, 0.27909377, -0.38767749, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43193567, 0.2792156 , -0.42210987, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43251771, 0.27904025, -0.43137759, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43293548, 0.2791329 , -0.45070031, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43337086, 0.27923143, -0.44454464, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43364567, 0.27899918, -0.44070876, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43546319, 0.27965954, -0.42994365, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.43697321, 0.27970207, -0.41476098, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.438324 , 0.28193235, -0.40894523, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44258258, 0.28709263, -0.44418415, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44666135, 0.28734231, -0.44017747, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44999555, 0.29129446, -0.45229703, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45360318, 0.29132581, -0.44881302, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45729703, 0.29036072, -0.44813988, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45917979, 0.2902644 , -0.52078962, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46023285, 0.2853837 , -0.56872785, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45982933, 0.28607568, -0.52725738, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45946339, 0.28942806, -0.54736662, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45924938, 0.30007583, -0.54424441, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45884433, 0.30536258, -0.5353725 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45838496, 0.31362998, -0.52620703, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45348632, 0.3194223 , -0.52184683, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45013037, 0.3179985 , -0.51207155, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44753373, 0.31712154, -0.53504503, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44744956, 0.3175554 , -0.53334653, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44865468, 0.31583729, -0.54143077, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.44907171, 0.31576145, -0.53923559, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45022956, 0.29988763, -0.51322556, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45182401, 0.29829651, -0.51054609, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45528564, 0.29756537, -0.51774234, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45670959, 0.28765753, -0.5533343 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45662481, 0.2885581 , -0.548783 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45696682, 0.28911486, -0.575459 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45634082, 0.28924736, -0.52720881, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45567116, 0.28830618, -0.52622557, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45451093, 0.28734973, -0.53288269, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45443475, 0.28689376, -0.54227984, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45430034, 0.28636277, -0.53199369, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45429403, 0.28559694, -0.51734293, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45440301, 0.28538465, -0.52092856, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45534489, 0.28541613, -0.5495072 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4564631 , 0.28544661, -0.52015239, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45827788, 0.28550017, -0.52354503, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4582634 , 0.28315908, -0.57893652, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45823953, 0.27805513, -0.62297988, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.45937288, 0.27604505, -0.60206974, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46003306, 0.27137348, -0.61799669, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46036434, 0.26905918, -0.61426133, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46110824, 0.26574224, -0.67021561, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46179828, 0.26315638, -0.66873831, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46215752, 0.26034278, -0.61255991, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46307841, 0.25788832, -0.62035692, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4649924 , 0.25295126, -0.64284509, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46662423, 0.25098345, -0.56649828, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46879116, 0.25116611, -0.56349391, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47041085, 0.2520003 , -0.63858414, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47156924, 0.25243121, -0.57025695, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4721804 , 0.25274852, -0.50050467, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47349334, 0.25297466, -0.52141559, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47425267, 0.2528013 , -0.56510657, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47619697, 0.25404125, -0.58012718, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47666267, 0.25361139, -0.65845549, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47707719, 0.25333205, -0.63771212, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47819415, 0.25331163, -0.63416481, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47871453, 0.25124767, -0.64089495, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47972825, 0.25130966, -0.66587591, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48027614, 0.25182056, -0.65317148, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48079562, 0.25187695, -0.63518798, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.48060387, 0.25236189, -0.67949051, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48025176, 0.25641507, -0.67827857, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47963113, 0.25762519, -0.66793221, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4796094 , 0.25869304, -0.66842413, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47846055, 0.25940064, -0.66337657, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47834599, 0.26055515, -0.6748628 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47773266, 0.26076934, -0.69702011, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47725925, 0.26091081, -0.69583517, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47627622, 0.26105544, -0.72188681, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47560284, 0.26253882, -0.56471711, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47526017, 0.26347277, -0.59668165, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47512448, 0.26341006, -0.67024171, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47324565, 0.26289615, -0.57089537, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47180164, 0.26289541, -0.68555802, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47175506, 0.26331869, -0.72302407, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47207808, 0.26516369, -0.80093187, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47272813, 0.26779565, -0.81033498, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47286189, 0.27223614, -0.89566064, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47421715, 0.27297375, -0.7577545 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47526628, 0.27368206, -0.56207067, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47601062, 0.27950245, -0.43139753, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47436687, 0.27976844, -0.39426938, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47442561, 0.27970991, -0.38304538, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47436851, 0.27857971, -0.33434841, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47142765, 0.2780306 , -0.33694258, ..., 0.36766526,\n", + " 0.41863245, -0.02061662]),\n", + " array([ 0.47120857, 0.278319 , -0.35430232, ..., 0.3618291 ,\n", + " 0.39430171, -0.01891869]),\n", + " array([ 0.47124967, 0.2783322 , -0.34679443, ..., 0.36075565,\n", + " 0.36531994, -0.01647881]),\n", + " array([ 0.47126794, 0.27829206, -0.37672856, ..., 0.35881275,\n", + " 0.34692484, -0.0200352 ]),\n", + " array([ 0.47129405, 0.27494922, -0.37940896, ..., 0.35977313,\n", + " 0.33490813, -0.01915318]),\n", + " array([ 0.47131932, 0.27135342, -0.34715369, ..., 0.36672169,\n", + " 0.3269448 , -0.01856946]),\n", + " array([ 0.4708842 , 0.26850474, -0.33631524, ..., 0.37335843,\n", + " 0.31481776, -0.01851866]),\n", + " array([ 0.47072747, 0.26551765, -0.32198849, ..., 0.37896129,\n", + " 0.31302446, -0.01811345]),\n", + " array([ 0.46866035, 0.26207596, -0.29470405, ..., 0.38897547,\n", + " 0.31120393, -0.01965821]),\n", + " array([ 0.46663353, 0.26189813, -0.29625684, ..., 0.39607784,\n", + " 0.31353912, -0.01624761]),\n", + " array([ 0.46528912, 0.26030427, -0.31771648, ..., 0.39912143,\n", + " 0.31351623, -0.01867953]),\n", + " array([ 0.46446073, 0.26042339, -0.31705981, ..., 0.39845479,\n", + " 0.31268698, -0.01754711]),\n", + " array([ 0.46470618, 0.25977954, -0.30139661, ..., 0.39271811,\n", + " 0.31262738, -0.01859561]),\n", + " array([ 0.46460122, 0.25074318, -0.3089886 , ..., 0.38563654,\n", + " 0.30850843, -0.01877114]),\n", + " array([ 0.46437564, 0.25114292, -0.31417477, ..., 0.38354325,\n", + " 0.31269461, -0.01831477]),\n", + " array([ 0.46444279, 0.25047061, -0.32446444, ..., 0.37635031,\n", + " 0.31243354, -0.01947797]),\n", + " array([ 0.46449429, 0.25149801, -0.33570644, ..., 0.3761673 ,\n", + " 0.31521523, -0.01970568]),\n", + " array([ 0.46494418, 0.25037006, -0.31535608, ..., 0.37837687,\n", + " 0.3130703 , -0.01712815]),\n", + " array([ 0.46494234, 0.25050548, -0.31545117, ..., 0.38241374,\n", + " 0.31559747, -0.01754734]),\n", + " array([ 0.46496156, 0.25056031, -0.30969453, ..., 0.38864252,\n", + " 0.31682214, -0.01705824]),\n", + " array([ 0.46460289, 0.24412343, -0.31201622, ..., 0.39407033,\n", + " 0.31544095, -0.01802814]),\n", + " array([ 0.46398526, 0.24463226, -0.31287736, ..., 0.40010568,\n", + " 0.32036731, -0.01737972]),\n", + " array([ 0.46297976, 0.24489 , -0.31343356, ..., 0.40247706,\n", + " 0.32138032, -0.01915768]),\n", + " array([ 0.46225208, 0.24586904, -0.31621614, ..., 0.401315 ,\n", + " 0.31808841, -0.01809884]),\n", + " array([ 0.46154922, 0.25098088, -0.30532724, ..., 0.39879966,\n", + " 0.3211751 , -0.01669731]),\n", + " array([ 0.46109581, 0.25136927, -0.31706029, ..., 0.3985928 ,\n", + " 0.32292411, -0.01866666]),\n", + " array([ 0.46230778, 0.25155285, -0.30099392, ..., 0.39824879,\n", + " 0.32049304, -0.01941712]),\n", + " array([ 0.46619919, 0.25157157, -0.30215198, ..., 0.39881039,\n", + " 0.32324493, -0.01765657]),\n", + " array([ 0.4682101 , 0.24934164, -0.31676129, ..., 0.39803922,\n", + " 0.32668549, -0.01854916]),\n", + " array([ 0.46872494, 0.24922404, -0.31553924, ..., 0.39903986,\n", + " 0.33003655, -0.01840466]),\n", + " array([ 0.46891057, 0.24506727, -0.31601337, ..., 0.39952019,\n", + " 0.33277795, -0.01875862]),\n", + " array([ 0.46968329, 0.24737211, -0.31496531, ..., 0.3990058 ,\n", + " 0.34090397, -0.01877011]),\n", + " array([ 0.47220922, 0.24862531, -0.34625369, ..., 0.40099895,\n", + " 0.35543901, -0.01835849]),\n", + " array([ 0.4737896 , 0.25133908, -0.34131214, ..., 0.40594801,\n", + " 0.36853006, -0.01835987]),\n", + " array([ 0.47376958, 0.26523119, -0.33849254, ..., 0.4117097 ,\n", + " 0.38445023, -0.02573793]),\n", + " array([ 0.47383499, 0.27334568, -0.34302607, ..., 0.42573589,\n", + " 0.4039948 , -0.0435474 ]),\n", + " array([ 0.47377399, 0.28185108, -0.34127578, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47440499, 0.27963859, -0.34881607, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4749319 , 0.27857283, -0.37158367, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4755598 , 0.27763829, -0.40634811, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47553116, 0.27725059, -0.47345689, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47562641, 0.27850905, -0.64596313, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47560814, 0.27815348, -0.77000296, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47570029, 0.27745926, -0.78898191, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47571498, 0.27688825, -0.86010718, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47566521, 0.27671036, -0.80439538, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47624972, 0.27013966, -0.82132202, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47639596, 0.26546156, -0.8409276 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47654179, 0.26461783, -0.85137522, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47639951, 0.26304027, -0.82531488, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47576523, 0.26118699, -0.75288057, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47584441, 0.26072979, -0.59865767, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47583622, 0.25998634, -0.58533716, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47579831, 0.25903094, -0.56070065, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47525179, 0.25864962, -0.52228659, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.47908306, 0.2581116 , -0.51578349, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48304465, 0.25812465, -0.53237748, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48567075, 0.25801611, -0.54887885, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48867702, 0.25722167, -0.55597794, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48905274, 0.25634012, -0.51471323, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48938692, 0.25537115, -0.50142574, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48933804, 0.25545505, -0.51107931, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48921072, 0.2553663 , -0.51454967, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48905206, 0.25538039, -0.50897956, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48893985, 0.25522646, -0.49583286, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48884714, 0.25417128, -0.49754456, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48876631, 0.25417128, -0.51758909, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48873726, 0.25415877, -0.49684751, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48872843, 0.25416654, -0.49268693, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48925346, 0.25408569, -0.49426451, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48928168, 0.25325412, -0.48948011, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48934719, 0.25345144, -0.49021229, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48932621, 0.25371906, -0.4922705 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48942134, 0.2538186 , -0.49344707, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48941705, 0.25399581, -0.49414986, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48903897, 0.25365895, -0.49032918, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48905045, 0.25380445, -0.48800683, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48915976, 0.25377795, -0.48754352, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48940834, 0.25361288, -0.48601055, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4891423 , 0.25373453, -0.50488013, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48901829, 0.25379518, -0.50173563, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48899287, 0.25402522, -0.49769276, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48901427, 0.25519526, -0.49761459, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48913711, 0.25521031, -0.50209379, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48927966, 0.25535065, -0.49864465, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48871803, 0.25534686, -0.49060968, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48851368, 0.25603256, -0.49107102, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4875671 , 0.25608066, -0.48804083, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4875676 , 0.25605372, -0.48804212, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48753619, 0.25666109, -0.50587898, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48755834, 0.25599229, -0.50922316, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.487499 , 0.2560032 , -0.52007043, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48802507, 0.25618228, -0.51833189, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48835567, 0.25701758, -0.5661785 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48860472, 0.25739765, -0.56367266, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49003801, 0.25729904, -0.63215441, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4901455 , 0.25671995, -0.6278559 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49033383, 0.25732702, -0.61416513, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4898738 , 0.26076666, -0.73777962, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48965415, 0.26251465, -0.76294255, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48962814, 0.26364738, -0.77838171, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48965755, 0.26620272, -0.74423403, ..., 0.4778643 ,\n", + " 0.9957788 , -0.05480912]),\n", + " array([ 0.48964679, 0.26696584, -0.61742282, ..., 0.48812899,\n", + " 0.99222797, -0.0554974 ]),\n", + " array([ 0.49036658, 0.26721513, -0.54167205, ..., 0.49092552,\n", + " 0.97899926, -0.04383259]),\n", + " array([ 0.49232233, 0.26654124, -0.54275316, ..., 0.49379432,\n", + " 0.97036451, -0.04865517]),\n", + " array([ 0.49347401, 0.26413581, -0.56149507, ..., 0.49970371,\n", + " 0.95731688, -0.04103517]),\n", + " array([ 0.49323025, 0.26450861, -0.48626098, ..., 0.50883412,\n", + " 0.94834042, -0.03981496]),\n", + " array([ 0.49322677, 0.26714942, -0.51365769, ..., 0.51216507,\n", + " 0.93959075, -0.03366651]),\n", + " array([ 0.49335375, 0.27202418, -0.52640474, ..., 0.51459521,\n", + " 0.92974025, -0.03292248]),\n", + " array([ 0.4976531 , 0.26796514, -0.53263307, ..., 0.51971167,\n", + " 0.9233532 , -0.03800413]),\n", + " array([ 0.50009245, 0.25970986, -0.53670591, ..., 0.51841635,\n", + " 0.91646528, -0.04642519]),\n", + " array([ 0.4999125 , 0.26182523, -0.54064941, ..., 0.52276659,\n", + " 0.9021014 , -0.03412518]),\n", + " array([ 0.50095141, 0.27062321, -0.53255272, ..., 0.52797252,\n", + " 0.89128006, -0.03869063]),\n", + " array([ 0.50178683, 0.27561638, -0.522838 , ..., 0.52637118,\n", + " 0.89045876, -0.03764332]),\n", + " array([ 0.50581872, 0.2849122 , -0.50787121, ..., 0.53143656,\n", + " 0.88658714, -0.03679733]),\n", + " array([ 0.51013327, 0.28450033, -0.51231158, ..., 0.52760708,\n", + " 0.88828075, -0.03581496]),\n", + " array([ 0.51099366, 0.28363502, -0.51304293, ..., 0.53125656,\n", + " 0.88855422, -0.03799395]),\n", + " array([ 0.51300669, 0.28259152, -0.51821536, ..., 0.53078067,\n", + " 0.88522488, -0.0308997 ]),\n", + " array([ 0.51480746, 0.28316525, -0.51226026, ..., 0.53111541,\n", + " 0.88432074, -0.03973842]),\n", + " array([ 0.5169338 , 0.28302044, -0.51511997, ..., 0.53047061,\n", + " 0.88391101, -0.03817438]),\n", + " array([ 0.51842922, 0.27798426, -0.51564813, ..., 0.52737308,\n", + " 0.88632482, -0.04232207]),\n", + " array([ 0.5179981 , 0.2781226 , -0.51454091, ..., 0.52783656,\n", + " 0.88317323, -0.03678039]),\n", + " array([ 0.517735 , 0.27943093, -0.50060529, ..., 0.5293538 ,\n", + " 0.8810308 , -0.03440806]),\n", + " array([ 0.51724565, 0.2831389 , -0.50877768, ..., 0.53145367,\n", + " 0.87804657, -0.03056539]),\n", + " array([ 0.5169819 , 0.28059709, -0.51589954, ..., 0.53125864,\n", + " 0.87663937, -0.02952126]),\n", + " array([ 0.51578647, 0.28015867, -0.54716611, ..., 0.53031605,\n", + " 0.87786567, -0.03225785]),\n", + " array([ 0.51496619, 0.28031987, -0.50973439, ..., 0.53028518,\n", + " 0.8770045 , -0.03480442]),\n", + " array([ 0.51486182, 0.27732754, -0.53169328, ..., 0.52415621,\n", + " 0.88266915, -0.03766644]),\n", + " array([ 0.51235628, 0.27305633, -0.50262415, ..., 0.5181585 ,\n", + " 0.89446527, -0.03825136]),\n", + " array([ 0.50685942, 0.27601129, -0.50510728, ..., 0.50781125,\n", + " 0.9026866 , -0.03550222]),\n", + " array([ 0.5088346 , 0.27344549, -0.39849973, ..., 0.50230175,\n", + " 0.90623319, -0.03786584]),\n", + " array([ 0.50805634, 0.27038586, -0.43811893, ..., 0.50000548,\n", + " 0.91367942, -0.03970379]),\n", + " array([ 0.5038749 , 0.27793509, -0.51131958, ..., 0.49595603,\n", + " 0.92491472, -0.04227617]),\n", + " array([ 0.50020349, 0.28626686, -0.51570249, ..., 0.49780154,\n", + " 0.93546027, -0.04302909]),\n", + " array([ 0.49776474, 0.28747022, -0.51067734, ..., 0.49609265,\n", + " 0.94872391, -0.03724841]),\n", + " array([ 0.49539793, 0.2870537 , -0.53264445, ..., 0.498523 ,\n", + " 0.95714688, -0.04590253]),\n", + " array([ 0.49413952, 0.28681293, -0.60272938, ..., 0.4982301 ,\n", + " 0.93145519, -0.04283399]),\n", + " array([ 0.49320707, 0.28643259, -0.57994181, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49153441, 0.28608245, -0.59881526, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4905048 , 0.28593999, -0.5958156 , ..., 0.50206614,\n", + " 0.78086549, -0.07043753]),\n", + " array([ 0.48903111, 0.28637153, -0.65974188, ..., 0.49434468,\n", + " 0.748438 , -0.07563202]),\n", + " array([ 0.48879677, 0.29153797, -0.63364542, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48898974, 0.29199782, -0.65895599, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48900267, 0.29126555, -0.58249897, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48865852, 0.2896497 , -0.54674196, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48880047, 0.28142679, -0.54416198, ..., 0.50660098,\n", + " 0.95400846, -0.02957754]),\n", + " array([ 0.4888089 , 0.27714202, -0.53124732, ..., 0.51046056,\n", + " 0.96365821, -0.02928381]),\n", + " array([ 0.48885471, 0.27481511, -0.53988284, ..., 0.51210672,\n", + " 0.96398258, -0.03914963]),\n", + " array([ 0.4908129 , 0.2714285 , -0.566616 , ..., 0.519454 ,\n", + " 0.95000684, -0.03359681]),\n", + " array([ 0.49148014, 0.27168906, -0.63189292, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49132878, 0.27028933, -0.58827561, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4913213 , 0.27110767, -0.63595068, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49011779, 0.27127239, -0.70068556, ..., 0.55612546,\n", + " 0.72272569, -0.08118242]),\n", + " array([ 0.48888791, 0.27136934, -0.68005508, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48855537, 0.2714636 , -0.68809772, ..., 0.48892432,\n", + " 0.76372015, -0.05215869]),\n", + " array([ 0.4877772 , 0.27131224, -0.69071507, ..., 0.49478981,\n", + " 0.76581746, -0.06015702]),\n", + " array([ 0.4879528 , 0.27126876, -0.67616343, ..., 0.48304528,\n", + " 0.7711677 , -0.06912053]),\n", + " array([ 0.48796672, 0.27208719, -0.6698823 , ..., 0.48463911,\n", + " 0.77038836, -0.06362005]),\n", + " array([ 0.48783979, 0.2717914 , -0.70128304, ..., 0.48393348,\n", + " 0.77232718, -0.06777307]),\n", + " array([ 0.48791435, 0.27162173, -0.7030645 , ..., 0.48808709,\n", + " 0.77639866, -0.06774482]),\n", + " array([ 0.48810956, 0.2702933 , -0.6821686 , ..., 0.49032274,\n", + " 0.78144437, -0.07687403]),\n", + " array([ 0.48917037, 0.26784515, -0.70005298, ..., 0.49867603,\n", + " 0.79246515, -0.07609403]),\n", + " array([ 0.49116194, 0.26761568, -0.76554495, ..., 0.5050441 ,\n", + " 0.80013114, -0.06570067]),\n", + " array([ 0.49121717, 0.26747525, -0.74990761, ..., 0.50918967,\n", + " 0.80982858, -0.07430252]),\n", + " array([ 0.49139512, 0.26644412, -0.77179259, ..., 0.51566565,\n", + " 0.82578665, -0.0777637 ]),\n", + " array([ 0.49140519, 0.26534826, -0.7958557 , ..., 0.52447677,\n", + " 0.8358373 , -0.08657127]),\n", + " array([ 0.49155301, 0.26107416, -0.79339117, ..., 0.5380168 ,\n", + " 0.84549308, -0.07520331]),\n", + " array([ 0.49185714, 0.2602627 , -0.76867378, ..., 0.54653794,\n", + " 0.85792756, -0.06247336]),\n", + " array([ 0.49189958, 0.2599287 , -0.65270585, ..., 0.54306108,\n", + " 0.92039883, -0.05190482]),\n", + " array([ 0.49185956, 0.25932676, -0.66257674, ..., 0.5401817 ,\n", + " 0.95811152, -0.07952033]),\n", + " array([ 0.49152315, 0.25868863, -0.66513753, ..., 0.53222108,\n", + " 0.97442174, -0.06354425]),\n", + " array([ 0.48991108, 0.25872898, -0.73537064, ..., 0.48292151,\n", + " 0.97375536, -0.03905286]),\n", + " array([ 0.48570535, 0.2595205 , -0.69204974, ..., 0.47960916,\n", + " 0.99144733, -0.03646065]),\n", + " array([ 0.48407489, 0.25988981, -0.62985432, ..., 0.48564994,\n", + " 1.00653696, -0.02820699]),\n", + " array([ 0.48384503, 0.25997588, -0.64688993, ..., 0.47541744,\n", + " 1.01832247, -0.02495508]),\n", + " array([ 0.48294753, 0.25931191, -0.63606787, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48224002, 0.25911894, -0.67880476, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48100361, 0.25859997, -0.65670222, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48092097, 0.25837311, -0.69722742, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47997007, 0.25784656, -0.62912691, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47983229, 0.25705057, -0.64127785, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47916231, 0.25657529, -0.64882696, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47878206, 0.25635466, -0.69990724, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47866303, 0.25453165, -0.69745034, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47848779, 0.25371161, -0.64345628, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47840557, 0.25346562, -0.57667738, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47837052, 0.2530905 , -0.60322094, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47800264, 0.25309107, -0.57576758, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47780761, 0.25326151, -0.59638935, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47717744, 0.25298354, -0.57968706, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.47746181, 0.25321865, -0.62130851, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47782531, 0.25318938, -0.62990344, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47805893, 0.25319862, -0.62543279, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47808611, 0.25333551, -0.61018056, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47821817, 0.25392228, -0.62507832, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47822228, 0.25495389, -0.62063128, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47823057, 0.25546378, -0.62884951, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47823638, 0.25584823, -0.57858795, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47854775, 0.25698355, -0.5776462 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47882515, 0.25724354, -0.58489007, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4788788 , 0.25743476, -0.57524157, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47897694, 0.25801173, -0.58254564, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47817963, 0.258012 , -0.57696086, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47825748, 0.25853151, -0.5780018 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47835863, 0.2586239 , -0.56768656, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47841921, 0.25876766, -0.57227218, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47815284, 0.25862792, -0.57821637, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47808212, 0.25820997, -0.57987547, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47808769, 0.25822061, -0.58580786, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47814059, 0.2580964 , -0.61207187, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47818616, 0.25809789, -0.60202098, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47819763, 0.25809556, -0.60167766, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47751346, 0.25798887, -0.61846101, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47778311, 0.2579942 , -0.5887574 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47786513, 0.25799495, -0.61624104, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47788528, 0.25808948, -0.58836019, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47833771, 0.25812709, -0.62608045, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4780674 , 0.25805163, -0.62249666, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47807315, 0.25861844, -0.61924791, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47811234, 0.25867388, -0.59052271, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47817925, 0.2587432 , -0.58323455, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47841999, 0.25911742, -0.56474364, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47833392, 0.25912493, -0.57035232, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47839862, 0.2591441 , -0.57141155, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47839299, 0.25952801, -0.66436011, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47785553, 0.26097527, -0.64512706, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47774741, 0.26096594, -0.66699678, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47757417, 0.25947464, -0.65343291, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47728607, 0.25898516, -0.65527368, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47575471, 0.25879019, -0.65616536, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4743481 , 0.25879505, -0.69484001, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47180691, 0.25918448, -0.63487548, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47122642, 0.25902328, -0.61537737, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47035152, 0.25975531, -0.65226209, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47014928, 0.26104799, -0.65942389, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46928975, 0.26233312, -0.78223193, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46649897, 0.26447067, -0.8560546 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46646053, 0.26500961, -0.60948461, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46656197, 0.26696804, -0.58434361, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46664739, 0.26743841, -0.5648272 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46741667, 0.26826057, -0.55638146, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46654809, 0.26747853, -0.53589475, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46671382, 0.26916003, -0.52377939, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47425675, 0.26913822, -0.46607903, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47647294, 0.26803434, -0.39250126, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47626823, 0.26876646, -0.38165954, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47616047, 0.27069676, -0.37741494, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47575909, 0.27154419, -0.40022007, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47498032, 0.27535042, -0.41434625, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47442815, 0.27574047, -0.43119863, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47434849, 0.28383392, -0.43686938, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47346923, 0.28457209, -0.44109797, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47311732, 0.28418115, -0.44802475, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47305644, 0.28410554, -0.44837916, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47298026, 0.27886522, -0.4449521 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47142678, 0.27378049, -0.43814799, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47140625, 0.27244422, -0.43604085, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47313485, 0.26995343, -0.43407103, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47322342, 0.26992494, -0.47243559, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47428718, 0.26869228, -0.47315609, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47507325, 0.26874724, -0.47273648, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47673061, 0.26985344, -0.45756394, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47668073, 0.27462077, -0.44637764, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47665843, 0.27574012, -0.44792935, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47661224, 0.27594528, -0.46760273, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47656846, 0.27677944, -0.49259949, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4767209 , 0.27674031, -0.52066779, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4767347 , 0.27598551, -0.49089736, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47722262, 0.27604997, -0.47409484, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47756213, 0.27601233, -0.44632199, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47763732, 0.27603051, -0.44784915, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47771874, 0.27620828, -0.44521019, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47831479, 0.27603969, -0.43085983, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47961053, 0.27607048, -0.43450928, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48006055, 0.27612767, -0.43640479, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48005277, 0.27657241, -0.44567925, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48048717, 0.27680406, -0.44936383, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48121452, 0.2760376 , -0.45281276, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48153687, 0.27954474, -0.47286758, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48153239, 0.28082389, -0.51277328, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48088744, 0.28341511, -0.5190289 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47822642, 0.28474396, -0.51693696, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47538367, 0.28287023, -0.50954831, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47207686, 0.28272879, -0.56483954, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4678427 , 0.27948615, -0.5850212 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46622199, 0.27853239, -0.65982032, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46617091, 0.27846792, -0.84856194, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46557865, 0.27753788, -0.70519686, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46550038, 0.27510098, -0.67697889, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46566597, 0.26863718, -0.78509629, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46604261, 0.26511908, -0.73935312, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46622491, 0.26204464, -0.71909195, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46633887, 0.26069009, -0.6535731 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46691471, 0.25873268, -0.55036253, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46793565, 0.25588998, -0.52519202, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46823177, 0.25429031, -0.56219035, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46880597, 0.25464976, -0.52730566, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.46920842, 0.25591043, -0.47913781, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46968573, 0.25926366, -0.42552176, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47027871, 0.26541954, -0.40800229, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47030708, 0.26746821, -0.42131424, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46974841, 0.26987362, -0.39608836, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47010255, 0.27051899, -0.40431404, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47009248, 0.27180207, -0.37783623, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47010598, 0.27445439, -0.39991435, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47184357, 0.27759784, -0.40625602, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47413686, 0.27794874, -0.41528678, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47588882, 0.28207457, -0.41737559, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47708485, 0.28253564, -0.42054909, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47746533, 0.2823146 , -0.42350337, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47744954, 0.27940595, -0.42245179, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47743404, 0.27933446, -0.42396814, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4772892 , 0.27928942, -0.43370879, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47698516, 0.28022605, -0.43375075, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47721702, 0.28148809, -0.44127509, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4791519 , 0.28417143, -0.44491771, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47986206, 0.28410989, -0.51566297, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48352855, 0.28206122, -0.49766037, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48448804, 0.28014249, -0.51187563, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48433295, 0.28001747, -0.50261939, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48248333, 0.27978906, -0.49481165, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4820092 , 0.2805196 , -0.49885413, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48179051, 0.28003156, -0.49711898, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48053727, 0.27725342, -0.49458876, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47908318, 0.27566704, -0.48203442, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47862172, 0.27691388, -0.48350871, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47810659, 0.27768871, -0.47973034, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47796586, 0.27783802, -0.47945994, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47795087, 0.27784956, -0.48391917, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47789341, 0.27825686, -0.48741922, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47741956, 0.27828544, -0.48756018, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47731033, 0.27845004, -0.48777461, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47725922, 0.27887136, -0.48739088, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47698429, 0.27886695, -0.48848206, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47697082, 0.27876815, -0.48318881, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47644982, 0.2787455 , -0.51534122, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47645053, 0.27873859, -0.51765466, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47742993, 0.27993888, -0.51497597, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48071221, 0.28263977, -0.51904482, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48134664, 0.28327045, -0.59189963, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48119059, 0.28325519, -0.57854003, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47982895, 0.27841613, -0.59084326, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47856551, 0.27852672, -0.59279943, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47722417, 0.2780841 , -0.56607771, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47518384, 0.27683464, -0.53098696, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47362128, 0.27461466, -0.53950042, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47045806, 0.27426833, -0.55643958, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46936181, 0.27412668, -0.61987478, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46917945, 0.27415323, -0.67976224, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46923664, 0.27417257, -0.85613382, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46874124, 0.27331439, -0.77949005, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46873361, 0.27333546, -0.75558126, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46901581, 0.27333355, -0.86468452, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46866405, 0.27307189, -0.79456115, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46796218, 0.27186355, -0.76490486, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46797898, 0.26555523, -0.70892173, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46823397, 0.26174751, -0.66007859, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46896565, 0.25834787, -0.62115717, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46918628, 0.25519237, -0.58441693, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46923491, 0.25498772, -0.59331644, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46928403, 0.25424987, -0.58808374, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46814799, 0.25432882, -0.66026652, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.46821463, 0.2545771 , -0.6426723 , ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.471609 , 0.254675 , -0.60530281, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47220942, 0.25486764, -0.57112914, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47303653, 0.25508299, -0.58606136, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47359699, 0.25515583, -0.5957821 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47393116, 0.25598565, -0.59739369, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47457635, 0.2567344 , -0.60076886, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47468582, 0.25731596, -0.64945406, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47480628, 0.2578139 , -0.64609587, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47480676, 0.25790632, -0.59889239, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47490925, 0.25825268, -0.61377203, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47468731, 0.25857422, -0.61116838, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47447112, 0.25892919, -0.59593421, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47450602, 0.25930944, -0.60094601, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47437918, 0.25953707, -0.58600438, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47432318, 0.25973412, -0.56528723, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47432312, 0.25970542, -0.53619623, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47433418, 0.25985312, -0.64571089, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47409523, 0.25990453, -0.68686646, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47322732, 0.25989607, -0.73483926, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47230104, 0.2603524 , -0.8435638 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47227222, 0.2616801 , -0.8523128 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47180229, 0.26185328, -0.81505704, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47080216, 0.26221877, -0.60607445, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47066405, 0.26262748, -0.55243599, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47042683, 0.26302624, -0.5314905 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47065437, 0.26432964, -0.49308056, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47078189, 0.26445103, -0.53482789, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47114554, 0.26595086, -0.48728141, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47180122, 0.26635921, -0.46169558, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4721553 , 0.26627377, -0.47208047, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47235227, 0.26626873, -0.4895404 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47240934, 0.26632556, -0.49272555, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47299004, 0.26833478, -0.49196464, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47436604, 0.27081573, -0.50030518, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47411159, 0.27077568, -0.46546879, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47314373, 0.2708104 , -0.44330415, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4719162 , 0.27061379, -0.46197617, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47193217, 0.27126384, -0.46233881, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47195819, 0.27221614, -0.46631959, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47194245, 0.27213761, -0.47271806, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47249976, 0.27175158, -0.44881162, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47401634, 0.27365822, -0.46647525, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47547567, 0.27446538, -0.51032245, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47689313, 0.27449495, -0.51988715, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47720987, 0.27505174, -0.50126785, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47731867, 0.27367511, -0.47603446, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47731158, 0.27316841, -0.47863933, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47728261, 0.27309594, -0.47952902, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47661704, 0.2729252 , -0.51941127, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47657108, 0.27303791, -0.51450831, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47656405, 0.27309027, -0.505849 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47652218, 0.27347118, -0.50515735, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47645232, 0.2756092 , -0.50483751, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47566795, 0.2756311 , -0.51026738, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47491798, 0.27777737, -0.51762599, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47469968, 0.2796019 , -0.51744801, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47421849, 0.27864432, -0.48165405, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47421759, 0.27656686, -0.47510323, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47431424, 0.27642936, -0.4780269 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47427863, 0.27641994, -0.5242092 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47462478, 0.27646205, -0.51898777, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47480705, 0.27649823, -0.51872945, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47475219, 0.27448153, -0.56379724, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47395709, 0.27278313, -0.62220722, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47297725, 0.27081755, -0.62563711, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47264564, 0.26957414, -0.61755979, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4720062 , 0.26995224, -0.6258024 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47208115, 0.26938763, -0.77593917, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47337297, 0.26824874, -0.82960647, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4744049, 0.2679947, -0.73565 , ..., 0. , 0. ,\n", + " 0. ]),\n", + " array([ 0.47446305, 0.26791319, -0.77531761, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4743993 , 0.26715294, -0.7448104 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47414014, 0.26712987, -0.78476644, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47415841, 0.26733258, -0.88337547, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4735477 , 0.26663694, -0.82759458, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47250178, 0.26394853, -0.66028094, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47173211, 0.26318088, -0.64334404, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47132409, 0.26224506, -0.59378511, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47122714, 0.26156861, -0.6251601 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47115916, 0.26157874, -0.5788216 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47079191, 0.25973433, -0.57959187, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47079554, 0.25725514, -0.56448483, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.4723317 , 0.25706232, -0.58366513, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47323418, 0.25733501, -0.59111267, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47431472, 0.2573992 , -0.59189039, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47436306, 0.25784016, -0.56227744, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47435302, 0.25787511, -0.54069239, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47437152, 0.2579065 , -0.53644598, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47446007, 0.25819454, -0.53490084, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47410312, 0.25787935, -0.54540658, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47406971, 0.25789893, -0.5498454 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47406766, 0.25809795, -0.55199534, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47406292, 0.25803268, -0.55422527, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47376651, 0.25811139, -0.55537373, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47322986, 0.25808471, -0.56112677, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47259438, 0.25811636, -0.5513072 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47258472, 0.25812662, -0.55642408, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.472588 , 0.25760028, -0.55554438, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4720608 , 0.2576662 , -0.56688899, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47204435, 0.25766656, -0.57631868, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47191343, 0.2577582 , -0.58918089, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.471903 , 0.25761443, -0.6006555 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47190094, 0.25752813, -0.53743666, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47155154, 0.25751996, -0.54485273, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47157463, 0.25765896, -0.59059656, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47276276, 0.26023102, -0.66865271, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47367111, 0.26145718, -0.6594494 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47512791, 0.26496798, -0.76353401, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47603986, 0.26818633, -0.75561166, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47660896, 0.26989806, -0.7915619 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4770126 , 0.27052054, -0.67127764, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47719651, 0.27054647, -0.5981257 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47746453, 0.27046508, -0.60983735, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47746241, 0.27057466, -0.53888226, ..., 0.36437255,\n", + " 0.54356241, -0.09503873]),\n", + " array([ 0.4776386 , 0.2716355 , -0.51692927, ..., 0.35333467,\n", + " 0.52497387, -0.01207625]),\n", + " array([ 0.47804728, 0.27159625, -0.46621951, ..., 0.36750531,\n", + " 0.52295858, -0.07228982]),\n", + " array([ 0.47804686, 0.27125692, -0.37168869, ..., 0.36715904,\n", + " 0.50402635, -0.06180419]),\n", + " array([ 0.47821766, 0.27150306, -0.37497708, ..., 0.36924788,\n", + " 0.45789453, -0.08046772]),\n", + " array([ 0.47867352, 0.27226323, -0.38541308, ..., 0.37029874,\n", + " 0.43838856, -0.08079348]),\n", + " array([ 0.47889984, 0.27200603, -0.39144546, ..., 0.36330765,\n", + " 0.42911175, -0.10004727]),\n", + " array([ 0.47907984, 0.27199501, -0.42679811, ..., 0.36030671,\n", + " 0.42436853, -0.1154156 ]),\n", + " array([ 0.47917449, 0.27197883, -0.43689692, ..., 0.35813728,\n", + " 0.42247319, -0.09357964]),\n", + " array([ 0.47917941, 0.27172402, -0.43980134, ..., 0.35771301,\n", + " 0.42011741, -0.09322094]),\n", + " array([ 0.479599 , 0.27170825, -0.41975126, ..., 0.35836443,\n", + " 0.42158306, -0.08184504]),\n", + " array([ 0.48032254, 0.27147388, -0.42768189, ..., 0.35849342,\n", + " 0.42192665, -0.07895787]),\n", + " array([ 0.48032477, 0.27062303, -0.42856243, ..., 0.35797703,\n", + " 0.4241271 , -0.06917346]),\n", + " array([ 0.48050976, 0.26801872, -0.42115021, ..., 0.34935907,\n", + " 0.42326418, -0.05291656]),\n", + " array([ 0.48058569, 0.26814324, -0.42562756, ..., 0.34196886,\n", + " 0.41902184, -0.0529591 ]),\n", + " array([ 0.48120484, 0.2673932 , -0.42974347, ..., 0.33810076,\n", + " 0.41580814, -0.0483755 ]),\n", + " array([ 0.48151073, 0.26718259, -0.44416413, ..., 0.33628061,\n", + " 0.41164339, -0.04965335]),\n", + " array([ 0.48230276, 0.26719081, -0.44429162, ..., 0.33455965,\n", + " 0.40799797, -0.04510409]),\n", + " array([ 0.48346779, 0.26743197, -0.44335991, ..., 0.3340736 ,\n", + " 0.40666217, -0.04761481]),\n", + " array([ 0.48352414, 0.26793092, -0.45423049, ..., 0.33429679,\n", + " 0.40482417, -0.04589552]),\n", + " array([ 0.48403075, 0.26791787, -0.45400774, ..., 0.33630255,\n", + " 0.4051908 , -0.0571705 ]),\n", + " array([ 0.48505807, 0.26871884, -0.44988343, ..., 0.33598885,\n", + " 0.40886438, -0.05698571]),\n", + " array([ 0.48522061, 0.2686961 , -0.43437374, ..., 0.3384667 ,\n", + " 0.407408 , -0.06082262]),\n", + " array([ 0.48566326, 0.26904988, -0.42781085, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48571855, 0.26975411, -0.42799744, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48623005, 0.27079657, -0.41928172, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4868511 , 0.27137053, -0.4176476 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48712209, 0.27213272, -0.42041838, ..., 0.33510137,\n", + " 0.3738102 , -0.01730227]),\n", + " array([ 0.48714092, 0.27229109, -0.41884029, ..., 0.33439159,\n", + " 0.38587603, -0.02062768]),\n", + " array([ 0.48723993, 0.27168128, -0.41860059, ..., 0.3342298 ,\n", + " 0.39454451, -0.00959076]),\n", + " array([ 0.48891935, 0.26820683, -0.39365101, ..., 0.33795592,\n", + " 0.37204278, -0.01380707]),\n", + " array([ 0.49095467, 0.26726282, -0.38457328, ..., 0.33509547,\n", + " 0.39754543, -0.01254603]),\n", + " array([ 0.49210098, 0.26715285, -0.39162856, ..., 0.33511978,\n", + " 0.38535285, -0.01838598]),\n", + " array([ 0.49270698, 0.2663182 , -0.3928875 , ..., 0.33613408,\n", + " 0.40182561, -0.02309536]),\n", + " array([ 0.49256051, 0.26632655, -0.40590963, ..., 0.33695468,\n", + " 0.40078044, -0.00948306]),\n", + " array([ 0.49359047, 0.26605204, -0.38225979, ..., 0.33930808,\n", + " 0.40260774, -0.02590982]),\n", + " array([ 0.49398193, 0.26602983, -0.38610673, ..., 0.33862942,\n", + " 0.3821941 , -0.03165511]),\n", + " array([ 0.49552083, 0.26511875, -0.38711274, ..., 0.33969286,\n", + " 0.39766401, -0.03754462]),\n", + " array([ 0.49659276, 0.26408118, -0.38860416, ..., 0.33830428,\n", + " 0.40415582, -0.04342416]),\n", + " array([ 0.49723157, 0.26409072, -0.39179656, ..., 0.33762664,\n", + " 0.39670375, -0.04713723]),\n", + " array([ 0.49742028, 0.26409996, -0.40516245, ..., 0.33744541,\n", + " 0.4003852 , -0.04806191]),\n", + " array([ 0.49784821, 0.26391143, -0.40476462, ..., 0.33401996,\n", + " 0.39302987, -0.04240389]),\n", + " array([ 0.49796277, 0.26340684, -0.37755096, ..., 0.33136889,\n", + " 0.39765751, -0.0348761 ]),\n", + " array([ 0.49815673, 0.26268247, -0.37574846, ..., 0.33013532,\n", + " 0.39521393, -0.03746943]),\n", + " array([ 0.49821353, 0.26281804, -0.39570192, ..., 0.32989699,\n", + " 0.40141505, -0.0274776 ]),\n", + " array([ 0.4982965 , 0.26231176, -0.40424174, ..., 0.32779858,\n", + " 0.4026143 , -0.02939279]),\n", + " array([ 0.49819359, 0.26256505, -0.40833333, ..., 0.32650557,\n", + " 0.40257761, -0.03279897]),\n", + " array([ 0.4981944 , 0.26248521, -0.42909676, ..., 0.32525811,\n", + " 0.39895794, -0.03062333]),\n", + " array([ 0.49816948, 0.26248404, -0.43093854, ..., 0.32428691,\n", + " 0.40136987, -0.04367369]),\n", + " array([ 0.49731252, 0.26254806, -0.44170395, ..., 0.32267329,\n", + " 0.4015862 , -0.03902319]),\n", + " array([ 0.49751407, 0.26239854, -0.45318213, ..., 0.36259177,\n", + " 0.3726325 , -0.04368976]),\n", + " array([ 0.49763885, 0.26237354, -0.44830242, ..., 0.32738143,\n", + " 0.38677928, -0.04942116]),\n", + " array([ 0.49760589, 0.2628355 , -0.42902547, ..., 0.32712951,\n", + " 0.39291275, -0.04854342]),\n", + " array([ 0.49758968, 0.26306817, -0.44439971, ..., 0.32994869,\n", + " 0.39144382, -0.04892563]),\n", + " array([ 0.49764988, 0.26333508, -0.45838583, ..., 0.33098507,\n", + " 0.39257938, -0.04373607]),\n", + " array([ 0.49771899, 0.26368177, -0.4632304 , ..., 0.33082524,\n", + " 0.39197463, -0.05902062]),\n", + " array([ 0.49785987, 0.26313937, -0.46924219, ..., 0.33041927,\n", + " 0.39240435, -0.0544655 ]),\n", + " array([ 0.49807724, 0.26318216, -0.47585955, ..., 0.33086112,\n", + " 0.39497155, -0.05612337]),\n", + " array([ 0.49808109, 0.26295829, -0.48357654, ..., 0.3307924 ,\n", + " 0.39762816, -0.05525174]),\n", + " array([ 0.49740872, 0.2633377 , -0.4882153 , ..., 0.33310694,\n", + " 0.39880899, -0.06458937]),\n", + " array([ 0.49748525, 0.26331294, -0.47760814, ..., 0.33628821,\n", + " 0.40122584, -0.06784391]),\n", + " array([ 0.49762318, 0.26343036, -0.44394743, ..., 0.33802468,\n", + " 0.40348741, -0.06071239]),\n", + " array([ 0.49776039, 0.26348442, -0.44387877, ..., 0.3384248 ,\n", + " 0.40561274, -0.07193273]),\n", + " array([ 0.49776787, 0.26377028, -0.4368023 , ..., 0.35229579,\n", + " 0.38027409, -0.03580699]),\n", + " array([ 0.49758175, 0.26357827, -0.45912501, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49745697, 0.26354295, -0.41694415, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49747276, 0.26354507, -0.41975284, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49816442, 0.26330522, -0.4167577 , ..., 0.41238663,\n", + " 0.46369511, -0.00735404]),\n", + " array([ 0.49948189, 0.26271752, -0.43071648, ..., 0.34449676,\n", + " 0.43126222, -0.01236718]),\n", + " array([ 0.49956149, 0.26252741, -0.4364343 , ..., 0.35103413,\n", + " 0.40022111, -0.01256726]),\n", + " array([ 0.49969414, 0.26252547, -0.43238354, ..., 0.34707528,\n", + " 0.39402449, -0.01382091]),\n", + " array([ 0.49953526, 0.26325801, -0.42419076, ..., 0.3457801 ,\n", + " 0.40402198, -0.01709659]),\n", + " array([ 0.49889758, 0.26545358, -0.41183421, ..., 0.34281051,\n", + " 0.41531253, -0.0336047 ]),\n", + " array([ 0.49842075, 0.26597115, -0.4136332 , ..., 0.3439703 ,\n", + " 0.42741507, -0.03760356]),\n", + " array([ 0.49811625, 0.26648521, -0.42860299, ..., 0.34322876,\n", + " 0.43665507, -0.02355188]),\n", + " array([ 0.49754745, 0.26777914, -0.42464867, ..., 0.34380332,\n", + " 0.4115836 , -0.03302532]),\n", + " array([ 0.49616286, 0.2673839 , -0.42257744, ..., 0.34214449,\n", + " 0.43093675, -0.03077414]),\n", + " array([ 0.4949913 , 0.26687634, -0.46524325, ..., 0.35059744,\n", + " 0.42175803, -0.02545928]),\n", + " array([ 0.4946962 , 0.2659308 , -0.46032047, ..., 0.35724133,\n", + " 0.44327632, -0.04231329]),\n", + " array([ 0.49399775, 0.26548338, -0.55786479, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49307719, 0.26508668, -0.67783856, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49298894, 0.26351541, -0.62089801, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49202538, 0.26315975, -0.70007139, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49146149, 0.26313302, -0.77139139, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48947605, 0.26315513, -0.73745316, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48916954, 0.2634829 , -1.00715733, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48912045, 0.26347533, -0.80306298, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.489104 , 0.26300949, -0.93144387, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48896781, 0.26193681, -0.88736868, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48851901, 0.26105136, -0.82794511, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48791596, 0.26098123, -0.87723076, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4879148 , 0.26075858, -0.82335663, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48733366, 0.25915441, -0.6819737 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48656589, 0.2576943 , -0.70177007, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48415288, 0.25647467, -0.64180529, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48317593, 0.25636381, -0.62538069, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4825134 , 0.25617212, -0.62499064, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48130319, 0.25595653, -0.64064306, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.48205099, 0.25718799, -0.65576571, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48192516, 0.25741199, -0.58177274, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4819392 , 0.25758952, -0.60729212, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48194569, 0.25782904, -0.61543936, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48168823, 0.25796765, -0.59415269, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48198146, 0.25802797, -0.60907412, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4819912 , 0.25801995, -0.60059398, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48291934, 0.25804913, -0.62133139, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48302138, 0.25804949, -0.61945796, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48310149, 0.25806448, -0.61005414, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48304066, 0.25817576, -0.60710424, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48286256, 0.25823611, -0.59818178, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48297226, 0.25806814, -0.5982793 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48370716, 0.25840873, -0.64560628, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48396516, 0.25850427, -0.64139414, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48420453, 0.25854892, -0.62569934, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48369998, 0.25854546, -0.62546307, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48369908, 0.2585685 , -0.65968704, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48392543, 0.25884753, -0.63075709, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4839046 , 0.25885507, -0.65234357, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48394048, 0.25888187, -0.63633311, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48379302, 0.25886217, -0.58393586, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48371616, 0.25873643, -0.58681494, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48418573, 0.25885803, -0.59490412, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4845463 , 0.25894824, -0.57619572, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48668197, 0.25902411, -0.6756472 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48762569, 0.25792781, -0.66213363, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48915622, 0.25840846, -0.71399635, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48948574, 0.25923535, -0.68801558, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4899002 , 0.25961486, -0.67740214, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49010852, 0.26227865, -0.84009218, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49012512, 0.26252884, -0.80874872, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49011213, 0.26424831, -0.85399252, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48917106, 0.26637983, -0.83156341, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48876357, 0.26710597, -0.88416719, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48875931, 0.26774782, -0.72442073, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4892115 , 0.2666325 , -0.67129731, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48984408, 0.26685533, -0.87530935, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.490641 , 0.26685116, -0.86340028, ..., 0.46260193,\n", + " 0.92643934, -0.06177913]),\n", + " array([ 0.49063379, 0.26704925, -0.84166908, ..., 0.4569599 ,\n", + " 0.89903563, -0.06160435]),\n", + " array([ 0.49035132, 0.26645374, -0.82611603, ..., 0.44624534,\n", + " 0.86545807, -0.04555074]),\n", + " array([ 0.49036992, 0.26806736, -0.77303565, ..., 0.42964104,\n", + " 0.8384428 , -0.05911611]),\n", + " array([ 0.49034852, 0.26798505, -0.6997869 , ..., 0.41894943,\n", + " 0.81631219, -0.0645979 ]),\n", + " array([ 0.49032483, 0.26800159, -0.65760362, ..., 0.40948164,\n", + " 0.78752834, -0.05043852]),\n", + " array([ 0.49060154, 0.26769006, -0.5566054 , ..., 0.40508649,\n", + " 0.77001256, -0.05533597]),\n", + " array([ 0.49058467, 0.26736638, -0.49839112, ..., 0.40518194,\n", + " 0.76421624, -0.06316946]),\n", + " array([ 0.49026778, 0.2663331 , -0.55219525, ..., 0.40063912,\n", + " 0.73841399, -0.05808854]),\n", + " array([ 0.48898986, 0.2667563 , -0.50310779, ..., 0.39846838,\n", + " 0.72408938, -0.05668702]),\n", + " array([ 0.48803243, 0.26666364, -0.53672302, ..., 0.4000898 ,\n", + " 0.72744763, -0.06856033]),\n", + " array([ 0.48747194, 0.26696563, -0.56797719, ..., 0.4001146 ,\n", + " 0.72170508, -0.06203782]),\n", + " array([ 0.48673832, 0.26744756, -0.49866313, ..., 0.40061387,\n", + " 0.72170913, -0.0573029 ]),\n", + " array([ 0.48632699, 0.26896992, -0.45593974, ..., 0.4033531 ,\n", + " 0.72649705, -0.06501444]),\n", + " array([ 0.48572627, 0.26951364, -0.47846437, ..., 0.4018687 ,\n", + " 0.727422 , -0.06216195]),\n", + " array([ 0.48553002, 0.26987648, -0.47747773, ..., 0.39851806,\n", + " 0.71946579, -0.0631537 ]),\n", + " array([ 0.48552278, 0.26997614, -0.46101296, ..., 0.40108058,\n", + " 0.71726757, -0.06028771]),\n", + " array([ 0.48544827, 0.27007735, -0.45884213, ..., 0.40300822,\n", + " 0.71654397, -0.06110654]),\n", + " array([ 0.48535746, 0.27007672, -0.52129263, ..., 0.40389061,\n", + " 0.72098631, -0.06055115]),\n", + " array([ 0.48568684, 0.26978081, -0.52344292, ..., 0.40121287,\n", + " 0.72103095, -0.05495526]),\n", + " array([ 0.48664269, 0.26966849, -0.48206651, ..., 0.40415731,\n", + " 0.72896808, -0.06468952]),\n", + " array([ 0.48713294, 0.27025503, -0.4792555 , ..., 0.40532857,\n", + " 0.72772771, -0.06671546]),\n", + " array([ 0.48776656, 0.26901436, -0.484752 , ..., 0.40541884,\n", + " 0.72253865, -0.06013902]),\n", + " array([ 0.48864409, 0.26669624, -0.49672273, ..., 0.40483937,\n", + " 0.71382123, -0.05777582]),\n", + " array([ 0.48899433, 0.26648593, -0.48478124, ..., 0.40443316,\n", + " 0.71024579, -0.05562728]),\n", + " array([ 0.48929968, 0.26645225, -0.48466495, ..., 0.40475923,\n", + " 0.70996737, -0.05397521]),\n", + " array([ 0.48990354, 0.26620632, -0.4716056 , ..., 0.40635976,\n", + " 0.71358919, -0.06317813]),\n", + " array([ 0.4907361 , 0.26617074, -0.47197303, ..., 0.40792951,\n", + " 0.71672583, -0.05695208]),\n", + " array([ 0.49129909, 0.26539767, -0.5021742 , ..., 0.40699685,\n", + " 0.71242797, -0.05690839]),\n", + " array([ 0.49143243, 0.2653743 , -0.50224698, ..., 0.40708634,\n", + " 0.71278197, -0.0584843 ]),\n", + " array([ 0.49202183, 0.26538131, -0.52065337, ..., 0.40693131,\n", + " 0.71370012, -0.05231261]),\n", + " array([ 0.49228135, 0.26430658, -0.51706463, ..., 0.40657207,\n", + " 0.71245593, -0.05147713]),\n", + " array([ 0.49228469, 0.26336116, -0.50526887, ..., 0.40288493,\n", + " 0.71116495, -0.04963234]),\n", + " array([ 0.49235848, 0.26324543, -0.52151358, ..., 0.40476662,\n", + " 0.71096003, -0.03590985]),\n", + " array([ 0.49244428, 0.26257512, -0.5287922 , ..., 0.40604404,\n", + " 0.71063411, -0.04810645]),\n", + " array([ 0.49249306, 0.26258135, -0.52850008, ..., 0.40806285,\n", + " 0.72070998, -0.05472061]),\n", + " array([ 0.4923718 , 0.26201153, -0.51525831, ..., 0.40345109,\n", + " 0.70512408, -0.04856277]),\n", + " array([ 0.49231184, 0.262288 , -0.52349806, ..., 0.40918237,\n", + " 0.71600366, -0.05769864]),\n", + " array([ 0.49231172, 0.26203606, -0.50622857, ..., 0.4070147 ,\n", + " 0.70884663, -0.05721235]),\n", + " array([ 0.49230251, 0.26204103, -0.49618596, ..., 0.40590242,\n", + " 0.7091977 , -0.0579851 ]),\n", + " array([ 0.49217999, 0.26207793, -0.47887653, ..., 0.40343583,\n", + " 0.70640028, -0.0573482 ]),\n", + " array([ 0.49217758, 0.26222423, -0.48026007, ..., 0.40547124,\n", + " 0.729545 , -0.06809337]),\n", + " array([ 0.49228305, 0.26222688, -0.47181568, ..., 0.40685835,\n", + " 0.73523271, -0.06132562]),\n", + " array([ 0.49189842, 0.2626912 , -0.58117354, ..., 0.41861075,\n", + " 0.74429393, -0.05680098]),\n", + " array([ 0.49157697, 0.26309058, -0.56845003, ..., 0.42065173,\n", + " 0.75929701, -0.06321527]),\n", + " array([ 0.49170822, 0.26484746, -0.73800421, ..., 0.42413294,\n", + " 0.77203125, -0.05779907]),\n", + " array([ 0.4917073 , 0.26472744, -0.81242579, ..., 0.4327549 ,\n", + " 0.7901389 , -0.05549284]),\n", + " array([ 0.49170867, 0.26570225, -0.8165679 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49165902, 0.26574105, -0.83074623, ..., 0.43917364,\n", + " 0.82905746, -0.08611904]),\n", + " array([ 0.49155635, 0.26620057, -0.834158 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49142644, 0.26627323, -0.85896063, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49137345, 0.26535377, -0.92914182, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49079117, 0.2640444 , -0.85574567, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49066317, 0.26398972, -0.82539368, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49057022, 0.26384744, -0.70173913, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49045578, 0.26383445, -0.73220694, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49027443, 0.26362249, -0.68229532, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49059933, 0.26319343, -0.69981873, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48859471, 0.26315662, -0.71269137, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4880667 , 0.26319635, -0.65839708, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48800704, 0.26280701, -0.62536108, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48795632, 0.26237887, -0.59415758, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48767158, 0.26079154, -0.5389691 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48780152, 0.25969276, -0.55515969, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4878588 , 0.25893828, -0.53620249, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48786068, 0.25796804, -0.52502596, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4882209 , 0.25690383, -0.54730231, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48820275, 0.2561062 , -0.5421831 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4877103 , 0.25586846, -0.54325181, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48723465, 0.25421089, -0.53604949, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48637426, 0.25467813, -0.54499775, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.4863517 , 0.2549822 , -0.50459725, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48625261, 0.25496188, -0.51761895, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48604217, 0.25511271, -0.52094382, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48592198, 0.25545076, -0.52720398, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48573831, 0.25612953, -0.53283912, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48569834, 0.2565622 , -0.53301734, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48550197, 0.25647148, -0.53351712, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48547354, 0.2564784 , -0.5259161 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48531693, 0.25646868, -0.52011818, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48485562, 0.25648612, -0.53493381, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48440936, 0.25636092, -0.53391492, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48418206, 0.25636378, -0.53269827, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48401332, 0.2563301 , -0.52169073, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48399952, 0.2565693 , -0.53678918, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48402593, 0.25673613, -0.51926374, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48401803, 0.25756094, -0.52003926, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48402116, 0.25715241, -0.51406145, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4840157 , 0.25761628, -0.51151186, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48415565, 0.25764602, -0.51221424, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48399001, 0.2576912 , -0.51292825, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48398742, 0.25828552, -0.52790105, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48395589, 0.25830048, -0.51868707, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48377436, 0.25830632, -0.51893979, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48393762, 0.25837353, -0.52087647, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48377743, 0.25825885, -0.53443575, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48353928, 0.2582168 , -0.53152865, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48354262, 0.25821725, -0.53114963, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48359638, 0.25840163, -0.53163493, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48352128, 0.25843075, -0.53951275, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48355114, 0.25861585, -0.54701215, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48320743, 0.25862268, -0.53537714, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48283619, 0.25858852, -0.53544486, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48246205, 0.25860366, -0.53538251, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48246002, 0.25856259, -0.51263559, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4828212 , 0.25856513, -0.50958419, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48369309, 0.25856632, -0.50983202, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48447144, 0.25847349, -0.52115077, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48555976, 0.2582005 , -0.50922221, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48697808, 0.25804222, -0.5342375 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48768863, 0.25792408, -0.55444479, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48821008, 0.25776169, -0.56168413, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48846218, 0.25742573, -0.52708077, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48860949, 0.25730532, -0.52087224, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48858017, 0.25719357, -0.51292098, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48881179, 0.25764406, -0.49921429, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48874035, 0.25774905, -0.47790405, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48866498, 0.25759792, -0.48560929, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48820022, 0.25767681, -0.49602056, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48743659, 0.25792012, -0.49680001, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48743448, 0.25799307, -0.5073747 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48714447, 0.25820145, -0.48734057, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48652107, 0.25854537, -0.48894969, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48640099, 0.25889444, -0.54251844, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48609579, 0.25951478, -0.60026556, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48663193, 0.25964516, -0.69964486, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48660454, 0.26026052, -0.65060538, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48641044, 0.26272815, -0.7237078 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48638839, 0.26404876, -0.70890409, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48615274, 0.26430175, -0.67793649, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48614803, 0.26532203, -0.7422815 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48615241, 0.26626638, -0.74288523, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48737115, 0.26654205, -0.7799381 , ..., 0.58314341,\n", + " 0.94943714, -0.084726 ]),\n", + " array([ 0.48761889, 0.26662368, -0.78617215, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48758662, 0.26739022, -0.89771479, ..., 0.53056091,\n", + " 0.91206276, -0.05346069]),\n", + " array([ 0.48788449, 0.26787883, -0.81797349, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48939443, 0.26787719, -0.90371078, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49002239, 0.2678133 , -0.8774597 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49053556, 0.26774213, -0.86665457, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49309772, 0.26771262, -0.84521979, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49316856, 0.26771629, -0.85274726, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49314359, 0.26772618, -0.85433763, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49272701, 0.2678104 , -0.85858893, ..., 0.51027715,\n", + " 0.82069063, -0.07250652]),\n", + " array([ 0.49256036, 0.26794285, -0.85185647, ..., 0.51069123,\n", + " 0.83039224, -0.07593985]),\n", + " array([ 0.49226534, 0.26793817, -0.86377871, ..., 0.50521445,\n", + " 0.81824273, -0.08995098]),\n", + " array([ 0.49223712, 0.26809856, -0.86618418, ..., 0.49950489,\n", + " 0.81565613, -0.07177491]),\n", + " array([ 0.49221703, 0.26809818, -0.85526627, ..., 0.50760549,\n", + " 0.81979769, -0.07573365]),\n", + " array([ 0.49219579, 0.26819527, -0.84194839, ..., 0.51229185,\n", + " 0.81458962, -0.0929422 ]),\n", + " array([ 0.49210975, 0.26823542, -0.87449229, ..., 0.50977999,\n", + " 0.80465364, -0.07892409]),\n", + " array([ 0.49216485, 0.26839733, -0.87469399, ..., 0.52307427,\n", + " 0.79600674, -0.04527723]),\n", + " array([ 0.49215099, 0.26887077, -0.84502333, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.49181274, 0.26877373, -0.82060587, ..., 0.50760579,\n", + " 0.78754711, -0.08178868]),\n", + " array([ 0.4916378 , 0.26878831, -0.84648764, ..., 0.49967623,\n", + " 0.79795063, -0.07419677]),\n", + " array([ 0.4913882 , 0.26863787, -0.86500442, ..., 0.49767762,\n", + " 0.79560971, -0.06218983]),\n", + " array([ 0.49075314, 0.26844704, -0.90272933, ..., 0.49554616,\n", + " 0.79045892, -0.07682597]),\n", + " array([ 0.49061489, 0.26829836, -0.89022726, ..., 0.49711916,\n", + " 0.78793621, -0.05927184]),\n", + " array([ 0.49014014, 0.26818785, -0.88439959, ..., 0.49576205,\n", + " 0.78373039, -0.07150855]),\n", + " array([ 0.48968849, 0.26781884, -0.88201421, ..., 0.49457219,\n", + " 0.78246075, -0.06179524]),\n", + " array([ 0.48966494, 0.26738203, -0.85171396, ..., 0.49202967,\n", + " 0.7725386 , -0.06778429]),\n", + " array([ 0.48974496, 0.26688975, -0.83409029, ..., 0.49161899,\n", + " 0.77266234, -0.06355738]),\n", + " array([ 0.48976216, 0.26579255, -0.82711035, ..., 0.49122554,\n", + " 0.76465082, -0.06540543]),\n", + " array([ 0.48975793, 0.2649641 , -0.73339361, ..., 0.4931477 ,\n", + " 0.76339185, -0.05884827]),\n", + " array([ 0.48969772, 0.26385385, -0.76877075, ..., 0.49195316,\n", + " 0.76010835, -0.06329853]),\n", + " array([ 0.48975968, 0.26357931, -0.75436109, ..., 0.49028319,\n", + " 0.75507158, -0.06253301]),\n", + " array([ 0.48969582, 0.26289403, -0.7656787 , ..., 0.49299181,\n", + " 0.7517122 , -0.05907631]),\n", + " array([ 0.48930481, 0.26284835, -0.78162789, ..., 0.48564631,\n", + " 0.75353235, -0.08351705]),\n", + " array([ 0.48486844, 0.26615191, -0.78763986, ..., 0.4835977 ,\n", + " 0.76246679, -0.0560991 ]),\n", + " array([ 0.48387313, 0.26832989, -0.78856224, ..., 0.47240588,\n", + " 0.77117079, -0.05912756]),\n", + " array([ 0.48329085, 0.27100572, -0.70401603, ..., 0.46286115,\n", + " 0.79006851, -0.05204909]),\n", + " array([ 0.48290092, 0.27133304, -0.73626906, ..., 0.45872062,\n", + " 0.79030645, -0.04516104]),\n", + " array([ 0.48288772, 0.27130571, -0.6949116 , ..., 0.45408195,\n", + " 0.7886436 , -0.04711529]),\n", + " array([ 0.48330298, 0.27127966, -0.6641525 , ..., 0.45290101,\n", + " 0.78059953, -0.05708485]),\n", + " array([ 0.48401803, 0.27088776, -0.66646689, ..., 0.44697055,\n", + " 0.75395423, -0.05618435]),\n", + " array([ 0.48466086, 0.27083459, -0.64484656, ..., 0.44955403,\n", + " 0.74117786, -0.07066467]),\n", + " array([ 0.48480946, 0.2699129 , -0.63555646, ..., 0.44364119,\n", + " 0.71536553, -0.05856837]),\n", + " array([ 0.48483971, 0.26957276, -0.59443921, ..., 0.44483319,\n", + " 0.69775778, -0.05781532]),\n", + " array([ 0.48481369, 0.27028179, -0.58258653, ..., 0.44248265,\n", + " 0.68481469, -0.05936354]),\n", + " array([ 0.48494178, 0.26869449, -0.53164786, ..., 0.44103003,\n", + " 0.66278011, -0.06437955]),\n", + " array([ 0.48487133, 0.26799864, -0.5103581 , ..., 0.43973029,\n", + " 0.65772784, -0.06020155]),\n", + " array([ 0.4845795 , 0.26749724, -0.46503913, ..., 0.43947122,\n", + " 0.65685546, -0.05903313]),\n", + " array([ 0.48390186, 0.26801226, -0.46553215, ..., 0.43524718,\n", + " 0.65136909, -0.05672875]),\n", + " array([ 0.48366764, 0.26812479, -0.50446826, ..., 0.43387595,\n", + " 0.65280217, -0.05656162]),\n", + " array([ 0.48274934, 0.26814678, -0.45107192, ..., 0.43469498,\n", + " 0.65138 , -0.05436288]),\n", + " array([ 0.48257038, 0.26782003, -0.4658615 , ..., 0.43599257,\n", + " 0.65219355, -0.05884799]),\n", + " array([ 0.48156291, 0.26755583, -0.47594285, ..., 0.43573272,\n", + " 0.64663607, -0.06087948]),\n", + " array([ 0.48096249, 0.26747906, -0.48560897, ..., 0.43629205,\n", + " 0.64939094, -0.06125407]),\n", + " array([ 0.48073637, 0.26745698, -0.49237731, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4803243 , 0.26740217, -0.4436481 , ..., 0.43300524,\n", + " 0.64091063, -0.03799104]),\n", + " array([ 0.48018166, 0.26710266, -0.45830974, ..., 0.43483442,\n", + " 0.65507108, -0.04638443]),\n", + " array([ 0.47999841, 0.26682216, -0.43294483, ..., 0.43269125,\n", + " 0.65582424, -0.05093016]),\n", + " array([ 0.47988275, 0.26672596, -0.43523327, ..., 0.43420598,\n", + " 0.65384966, -0.05525136]),\n", + " array([ 0.47887194, 0.2667281 , -0.53777581, ..., 0.43195751,\n", + " 0.65598905, -0.0535404 ]),\n", + " array([ 0.47822285, 0.26634935, -0.52095693, ..., 0.43726686,\n", + " 0.65748525, -0.06595727]),\n", + " array([ 0.47807762, 0.26623246, -0.49431583, ..., 0.43530852,\n", + " 0.65447623, -0.06016143]),\n", + " array([ 0.47805116, 0.26589876, -0.48556367, ..., 0.43360075,\n", + " 0.65719104, -0.05524058]),\n", + " array([ 0.47805187, 0.26589197, -0.47372955, ..., 0.43423745,\n", + " 0.66305202, -0.05294994]),\n", + " array([ 0.47808892, 0.26587647, -0.45219335, ..., 0.4351638 ,\n", + " 0.66642421, -0.05252383]),\n", + " array([ 0.47807372, 0.26644474, -0.45594037, ..., 0.43665773,\n", + " 0.67345095, -0.05819099]),\n", + " array([ 0.47866806, 0.266435 , -0.45668533, ..., 0.43753237,\n", + " 0.66993654, -0.0540189 ]),\n", + " array([ 0.47872293, 0.2664285 , -0.46195129, ..., 0.44306618,\n", + " 0.68349576, -0.05888558]),\n", + " array([ 0.47879413, 0.26771852, -0.45821786, ..., 0.45310041,\n", + " 0.68849778, -0.06799852]),\n", + " array([ 0.47870895, 0.26889336, -0.473728 , ..., 0.46577707,\n", + " 0.69962329, -0.07292362]),\n", + " array([ 0.47846887, 0.26887748, -0.5627228 , ..., 0.47678784,\n", + " 0.7037195 , -0.07707056]),\n", + " array([ 0.47846177, 0.26982442, -0.64234298, ..., 0.48570561,\n", + " 0.71710128, -0.08232857]),\n", + " array([ 0.47837186, 0.26941726, -0.79809111, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4783673 , 0.26770359, -0.80211401, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47841606, 0.26657429, -0.80990863, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47842443, 0.2661975 , -0.92650765, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47842911, 0.26612464, -0.87262779, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47785482, 0.26612958, -0.79666007, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47736871, 0.26398739, -0.78231585, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47725406, 0.26163542, -0.79033631, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47714859, 0.26011813, -0.79313844, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47693291, 0.25843114, -0.84320813, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47691524, 0.25757971, -0.68987679, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47686881, 0.25677407, -0.68948102, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47686371, 0.25562885, -0.63033319, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47662777, 0.25375745, -0.55076289, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47654274, 0.25374663, -0.56981587, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47650674, 0.25385016, -0.58145022, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47638917, 0.25304309, -0.55435669, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47644937, 0.25239369, -0.5615505 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4764528 , 0.25097036, -0.50442576, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47593659, 0.25178698, -0.53961295, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4756231 , 0.25186101, -0.54542315, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.47507203, 0.26512805, -0.75464171, ..., 0.58677059,\n", + " 0.76866651, -0.0788573 ]),\n", + " array([ 0.47507697, 0.26448497, -0.74863046, ..., 0.58765346,\n", + " 0.76171494, -0.09952471]),\n", + " array([ 0.47507355, 0.26490721, -0.79360682, ..., 0.58271879,\n", + " 0.77319366, -0.0681769 ]),\n", + " array([ 0.47507051, 0.2652896 , -0.73928118, ..., 0.53190738,\n", + " 0.75130057, -0.08825178]),\n", + " array([ 0.47517887, 0.26505738, -0.73514503, ..., 0.52164108,\n", + " 0.73830134, -0.10234967]),\n", + " array([ 0.47535145, 0.26669869, -0.7134549 , ..., 0.51502079,\n", + " 0.72852981, -0.09706118]),\n", + " array([ 0.47599763, 0.26932085, -0.70712602, ..., 0.52048576,\n", + " 0.72465104, -0.10457619]),\n", + " array([ 0.47681096, 0.27534169, -0.70927215, ..., 0.51837772,\n", + " 0.72114837, -0.11371556]),\n", + " array([ 0.47680777, 0.27579927, -0.68286479, ..., 0.51818883,\n", + " 0.73630226, -0.1191192 ]),\n", + " array([ 0.47681278, 0.27619138, -0.64988524, ..., 0.51910722,\n", + " 0.74008489, -0.09996862]),\n", + " array([ 0.47688296, 0.27612349, -0.66654456, ..., 0.51756161,\n", + " 0.73126 , -0.10718242]),\n", + " array([ 0.47688353, 0.27374509, -0.66063601, ..., 0.51505303,\n", + " 0.73758656, -0.10221571]),\n", + " array([ 0.47692841, 0.27217448, -0.66182792, ..., 0.5156101 ,\n", + " 0.74275327, -0.09000954]),\n", + " array([ 0.47772992, 0.27022639, -0.66280931, ..., 0.5146305 ,\n", + " 0.74248093, -0.12525117]),\n", + " array([ 0.47805947, 0.26963392, -0.66908568, ..., 0.51546139,\n", + " 0.74275249, -0.12679724]),\n", + " array([ 0.47808236, 0.2683492 , -0.66165245, ..., 0.51398414,\n", + " 0.74450696, -0.1086614 ]),\n", + " array([ 0.47804916, 0.26845208, -0.71299475, ..., 0.51402849,\n", + " 0.74530339, -0.12266928]),\n", + " array([ 0.47807983, 0.26841602, -0.7059716 , ..., 0.51488292,\n", + " 0.74545699, -0.10572869]),\n", + " array([ 0.47798821, 0.26792812, -0.7108584 , ..., 0.51500779,\n", + " 0.74662465, -0.09630693]),\n", + " array([ 0.47802636, 0.26770034, -0.70620453, ..., 0.51607108,\n", + " 0.746445 , -0.10358904]),\n", + " array([ 0.4778448 , 0.26786277, -0.70906466, ..., 0.51531082,\n", + " 0.74767834, -0.11996127]),\n", + " array([ 0.47777 , 0.26841217, -0.75146323, ..., 0.5154078 ,\n", + " 0.74780798, -0.09132943]),\n", + " array([ 0.47678447, 0.26779318, -0.74142992, ..., 0.51554757,\n", + " 0.74598044, -0.10571942]),\n", + " array([ 0.47659492, 0.2678194 , -0.74646169, ..., 0.51662195,\n", + " 0.74502987, -0.093477 ]),\n", + " array([ 0.47658303, 0.26738179, -0.74219704, ..., 0.51501566,\n", + " 0.74283534, -0.08707318]),\n", + " array([ 0.47663525, 0.26737097, -0.72845322, ..., 0.51656204,\n", + " 0.74574339, -0.0988048 ]),\n", + " array([ 0.47719392, 0.26744187, -0.73044068, ..., 0.51418799,\n", + " 0.74977845, -0.09157646]),\n", + " array([ 0.47775972, 0.26772955, -0.65111214, ..., 0.51352513,\n", + " 0.75180024, -0.10029721]),\n", + " array([ 0.47771731, 0.26769522, -0.66244489, ..., 0.51413363,\n", + " 0.75634843, -0.11608469]),\n", + " array([ 0.47771931, 0.267472 , -0.71718103, ..., 0.51234031,\n", + " 0.75839555, -0.11868503]),\n", + " array([ 0.47695872, 0.26665452, -0.73100019, ..., 0.51275021,\n", + " 0.76124096, -0.08834673]),\n", + " array([ 0.47679007, 0.26665002, -0.75271708, ..., 0.51418847,\n", + " 0.75474155, -0.06778301]),\n", + " array([ 0.4761686 , 0.26512203, -0.6864357 , ..., 0.51007771,\n", + " 0.74816453, -0.07049649]),\n", + " array([ 0.47615048, 0.26490125, -0.69024527, ..., 0.50179857,\n", + " 0.6424939 , -0.06558792]),\n", + " array([ 0.47605217, 0.26323554, -0.67427754, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4758524 , 0.26235569, -0.66911703, ..., 0.5901776 ,\n", + " 0.71128064, -0.0955454 ]),\n", + " array([ 0.47617602, 0.26235938, -0.67031568, ..., 0.60277742,\n", + " 0.7087245 , -0.11495724]),\n", + " array([ 0.4762072 , 0.26240325, -0.67426974, ..., 0.61268282,\n", + " 0.70999229, -0.08174025]),\n", + " array([ 0.47627372, 0.26258406, -0.65446055, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47614938, 0.26418787, -0.67957085, ..., 0.51655245,\n", + " 0.73484695, -0.08737763]),\n", + " array([ 0.47614849, 0.26619568, -0.70010668, ..., 0.51550412,\n", + " 0.73223895, -0.10527447]),\n", + " array([ 0.4762069 , 0.26736009, -0.69943589, ..., 0.51492894,\n", + " 0.72912145, -0.09222779]),\n", + " array([ 0.47608787, 0.27038386, -0.69511396, ..., 0.51337183,\n", + " 0.72817659, -0.08302541]),\n", + " array([ 0.47591785, 0.27059337, -0.69445729, ..., 0.5122996 ,\n", + " 0.73258287, -0.08449241]),\n", + " array([ 0.47581539, 0.27143455, -0.71890968, ..., 0.51305795,\n", + " 0.73304749, -0.08859257]),\n", + " array([ 0.47581369, 0.27163625, -0.66644377, ..., 0.50947666,\n", + " 0.72896355, -0.08770847]),\n", + " array([ 0.47593462, 0.27193609, -0.68933219, ..., 0.51251972,\n", + " 0.74039161, -0.10615437]),\n", + " array([ 0.47593442, 0.27141172, -0.68586469, ..., 0.50934517,\n", + " 0.7484529 , -0.0877852 ]),\n", + " array([ 0.47593364, 0.27047715, -0.7258355 , ..., 0.50826865,\n", + " 0.75948709, -0.09348059]),\n", + " array([ 0.47611055, 0.27028677, -0.76416898, ..., 0.50677741,\n", + " 0.77214032, -0.09046079]),\n", + " array([ 0.47603467, 0.26831764, -0.77150869, ..., 0.50393844,\n", + " 0.78969789, -0.08724608]),\n", + " array([ 0.47615936, 0.26775584, -0.81017148, ..., 0.50629932,\n", + " 0.81482399, -0.0687368 ]),\n", + " array([ 0.47629279, 0.26601797, -0.78609383, ..., 0.50324267,\n", + " 0.8361975 , -0.05628827]),\n", + " array([ 0.47642684, 0.26586926, -0.84794563, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47643298, 0.26542786, -0.84805864, ..., 0.55992264,\n", + " 0.89126027, -0.06594866]),\n", + " array([ 0.47705224, 0.26541954, -0.8609671 , ..., 0.54527146,\n", + " 0.90525711, -0.08152671]),\n", + " array([ 0.47705227, 0.26521769, -0.91632819, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47709426, 0.26407769, -0.87081444, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47718963, 0.26227921, -0.82383639, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47842556, 0.26094863, -0.68035281, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47860035, 0.26095316, -0.73088282, ..., 0.5235635 ,\n", + " 1.01013744, -0.06086068]),\n", + " array([ 0.47855312, 0.25782883, -0.66470838, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47973251, 0.25732091, -0.70230246, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4798671 , 0.25747827, -0.79561424, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4799163 , 0.25890568, -0.79795188, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47987628, 0.25894308, -0.77735716, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47974873, 0.25884855, -0.64697134, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47973561, 0.25855815, -0.64982253, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47937885, 0.25782898, -0.54409069, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47876927, 0.25785199, -0.61549228, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47835729, 0.25785971, -0.64037627, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47748348, 0.25790575, -0.57969898, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.4769699 , 0.25807279, -0.5256539 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47693288, 0.25796768, -0.51726687, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.47693026, 0.2575784 , -0.53992361, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.52353036, 0.25163135, -0.56220508, ..., 0.3865779 ,\n", + " 0.5714795 , -0.06043639]),\n", + " array([ 0.5411669 , 0.2510477 , -0.69134176, ..., 0.37302408,\n", + " 0.52813166, -0.05657468]),\n", + " array([ 0.54499984, 0.25225726, -0.66429085, ..., 0.36294538,\n", + " 0.50926393, -0.06599456]),\n", + " array([ 0.54525346, 0.25457227, -0.59701002, ..., 0.35650566,\n", + " 0.50195402, -0.08975297]),\n", + " array([ 0.5425747 , 0.2545141 , -0.56094015, ..., 0.35568637,\n", + " 0.48717311, -0.07713515]),\n", + " array([ 0.53985018, 0.25661302, -0.5125488 , ..., 0.35481942,\n", + " 0.47942021, -0.07501093]),\n", + " array([ 0.54334766, 0.25743839, -0.52503824, ..., 0.35582167,\n", + " 0.47422081, -0.08419804]),\n", + " array([ 0.54366899, 0.25843507, -0.51926267, ..., 0.35692635,\n", + " 0.46775705, -0.07273577]),\n", + " array([ 0.54325449, 0.26043892, -0.52824867, ..., 0.36144412,\n", + " 0.46564466, -0.06735843]),\n", + " array([ 0.54291934, 0.26044193, -0.5310629 , ..., 0.36726663,\n", + " 0.46358067, -0.07101819]),\n", + " array([ 0.54262847, 0.2603122 , -0.5165391 , ..., 0.3694962 ,\n", + " 0.45788452, -0.07612424]),\n", + " array([ 0.54218203, 0.26055878, -0.55342013, ..., 0.36977637,\n", + " 0.45972574, -0.0750237 ]),\n", + " array([ 0.54251707, 0.26059344, -0.55056304, ..., 0.3698377 ,\n", + " 0.45562994, -0.07049213]),\n", + " array([ 0.54246575, 0.26158983, -0.55170351, ..., 0.36983171,\n", + " 0.45523235, -0.0709198 ]),\n", + " array([ 0.54240394, 0.26164019, -0.54995596, ..., 0.36945876,\n", + " 0.45803601, -0.09518153]),\n", + " array([ 0.54239881, 0.2616545 , -0.56404018, ..., 0.3689605 ,\n", + " 0.45127371, -0.10688203]),\n", + " array([ 0.54227155, 0.26165324, -0.5923776 , ..., 0.36691529,\n", + " 0.44762236, -0.11285109]),\n", + " array([ 0.5425846 , 0.26177472, -0.59028542, ..., 0.36839974,\n", + " 0.45147622, -0.12284134]),\n", + " array([ 0.54259741, 0.26142246, -0.59336233, ..., 0.36843711,\n", + " 0.44866565, -0.0946566 ]),\n", + " array([ 0.54250979, 0.26132223, -0.58840746, ..., 0.37008977,\n", + " 0.44850615, -0.09861351]),\n", + " array([ 0.54243141, 0.26109239, -0.56749052, ..., 0.37141937,\n", + " 0.44318712, -0.10939531]),\n", + " array([ 0.54189742, 0.2604045 , -0.55493104, ..., 0.37626305,\n", + " 0.44079325, -0.08130906]),\n", + " array([ 0.54185879, 0.26042008, -0.55766439, ..., 0.3822901 ,\n", + " 0.4428986 , -0.10553183]),\n", + " array([ 0.54182422, 0.26055637, -0.55774724, ..., 0.37992013,\n", + " 0.43524292, -0.10951273]),\n", + " array([ 0.54184705, 0.26159689, -0.57244295, ..., 0.38229844,\n", + " 0.43722135, -0.09761292]),\n", + " array([ 0.54181892, 0.26162314, -0.57550561, ..., 0.38049057,\n", + " 0.44023529, -0.1077792 ]),\n", + " array([ 0.54180461, 0.26164576, -0.56153101, ..., 0.37741068,\n", + " 0.43111813, -0.06418991]),\n", + " array([ 0.54162621, 0.26260215, -0.56180632, ..., 0.37893394,\n", + " 0.4379096 , -0.09366012]),\n", + " array([ 0.5416342 , 0.2626023 , -0.57319236, ..., 0.37924901,\n", + " 0.43524101, -0.1004063 ]),\n", + " array([ 0.54181367, 0.2626023 , -0.62564743, ..., 0.38400862,\n", + " 0.44470134, -0.09219474]),\n", + " array([ 0.54225695, 0.26082924, -0.63640493, ..., 0.39296272,\n", + " 0.46480969, -0.07584249]),\n", + " array([ 0.54291391, 0.25982109, -0.65781808, ..., 0.39360014,\n", + " 0.50188023, -0.13988864]),\n", + " array([ 0.54424012, 0.25467393, -0.64212179, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54423881, 0.24996276, -0.69719923, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54469198, 0.24646217, -0.943088 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54509693, 0.24335882, -0.93874711, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54566038, 0.23986374, -0.88430613, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54592222, 0.23508911, -0.8874926 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54614943, 0.23299578, -0.89964449, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54609579, 0.23180933, -0.88594145, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54632097, 0.23094822, -0.93800217, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54945397, 0.23045652, -0.90116853, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.54375088, 0.2343913 , -0.65474725, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.54350054, 0.23719029, -0.59561574, ..., 0.44644162,\n", + " 0.65564984, 0.01072941]),\n", + " array([ 0.5434193 , 0.24069124, -0.57755762, ..., 0.42419344,\n", + " 0.5889647 , -0.06825864]),\n", + " array([ 0.54328692, 0.2444883 , -0.57325274, ..., 0.43283987,\n", + " 0.54098177, -0.04601772]),\n", + " array([ 0.54331023, 0.24569814, -0.53213495, ..., 0.42950207,\n", + " 0.5329774 , -0.05120129]),\n", + " array([ 0.54133165, 0.24663033, -0.55412322, ..., 0.42776763,\n", + " 0.52226412, -0.06077316]),\n", + " array([ 0.54041982, 0.24814336, -0.53007007, ..., 0.43086901,\n", + " 0.52090353, -0.04881165]),\n", + " array([ 0.53897333, 0.2480966 , -0.54724222, ..., 0.42986557,\n", + " 0.51985794, -0.06028583]),\n", + " array([ 0.53899288, 0.2477963 , -0.50776112, ..., 0.43900585,\n", + " 0.52243876, -0.03714855]),\n", + " array([ 0.53915602, 0.24773443, -0.50761145, ..., 0.43791974,\n", + " 0.51499408, -0.05000104]),\n", + " array([ 0.53732902, 0.24652095, -0.49448916, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53689134, 0.244565 , -0.51173139, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5366593 , 0.24445498, -0.50178528, ..., 0.43504292,\n", + " 0.5246684 , -0.05855787]),\n", + " array([ 0.53623098, 0.24406932, -0.51239109, ..., 0.43455839,\n", + " 0.51334417, -0.08742729]),\n", + " array([ 0.53543413, 0.2436997 , -0.51793122, ..., 0.43762666,\n", + " 0.51640755, -0.06007724]),\n", + " array([ 0.53523064, 0.24431355, -0.52351564, ..., 0.43188936,\n", + " 0.51450199, -0.06842234]),\n", + " array([ 0.53524363, 0.24518977, -0.52565694, ..., 0.43431395,\n", + " 0.51911372, -0.06066293]),\n", + " array([ 0.53526217, 0.24525869, -0.51244074, ..., 0.4328883 ,\n", + " 0.51197231, -0.06217303]),\n", + " array([ 0.53526491, 0.24505028, -0.525796 , ..., 0.44079381,\n", + " 0.51373899, -0.04362962]),\n", + " array([ 0.53527266, 0.24146558, -0.52084595, ..., 0.44422841,\n", + " 0.50620377, -0.06102467]),\n", + " array([ 0.53533465, 0.24278949, -0.54325747, ..., 0.45213217,\n", + " 0.50411248, -0.04975291]),\n", + " array([ 0.53534198, 0.24484436, -0.54897732, ..., 0.44756418,\n", + " 0.50749153, -0.06002649]),\n", + " array([ 0.535335 , 0.24759148, -0.56671274, ..., 0.4513267 ,\n", + " 0.50645971, -0.05275312]),\n", + " array([ 0.53533059, 0.24889007, -0.57357419, ..., 0.44687402,\n", + " 0.50671959, -0.07106249]),\n", + " array([ 0.53553796, 0.24976598, -0.57408488, ..., 0.45141378,\n", + " 0.50563073, -0.0674478 ]),\n", + " array([ 0.53561974, 0.25012276, -0.5915122 , ..., 0.44724399,\n", + " 0.50848144, -0.05972309]),\n", + " array([ 0.53562754, 0.25104409, -0.60033864, ..., 0.45570067,\n", + " 0.5171783 , -0.08030938]),\n", + " array([ 0.53569531, 0.25109333, -0.62499207, ..., 0.45092559,\n", + " 0.51070368, -0.06530464]),\n", + " array([ 0.53607196, 0.25109351, -0.61603534, ..., 0.45597526,\n", + " 0.51098347, -0.06537374]),\n", + " array([ 0.53646243, 0.25109214, -0.61469895, ..., 0.44951054,\n", + " 0.5148316 , -0.05789034]),\n", + " array([ 0.53701699, 0.25157905, -0.626508 , ..., 0.45506066,\n", + " 0.52101481, -0.06514641]),\n", + " array([ 0.53707814, 0.25273207, -0.62140805, ..., 0.46183041,\n", + " 0.53371179, -0.06376785]),\n", + " array([ 0.53708804, 0.25270054, -0.61485928, ..., 0.47297078,\n", + " 0.55549717, -0.04165816]),\n", + " array([ 0.53645724, 0.25007895, -0.68692476, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53640878, 0.24592644, -0.76781386, ..., 0.48796973,\n", + " 0.6250239 , -0.01394924]),\n", + " array([ 0.53681922, 0.24330378, -0.83026916, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53851581, 0.24284679, -0.94007546, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.5486936 , 0.22982532, -0.50328767, ..., 0.50283545,\n", + " 0.29912773, -0.03381661]),\n", + " array([ 0.55647218, 0.22134601, -0.47661185, ..., 0.50613642,\n", + " 0.27932101, -0.05335232]),\n", + " array([ 0.55893177, 0.21140563, -0.44463998, ..., 0.50782031,\n", + " 0.27218619, -0.05990686]),\n", + " array([ 0.56348157, 0.21127857, -0.46128237, ..., 0.51050764,\n", + " 0.26888663, -0.05814158]),\n", + " array([ 0.56696159, 0.21054913, -0.42300043, ..., 0.51579821,\n", + " 0.27441612, -0.07032872]),\n", + " array([ 0.56875974, 0.21195415, -0.41921097, ..., 0.51679313,\n", + " 0.28076994, -0.07272136]),\n", + " array([ 0.57103854, 0.21292816, -0.42107618, ..., 0.5144788 ,\n", + " 0.31461143, -0.06241113]),\n", + " array([ 0.57607555, 0.22351542, -0.4469341 , ..., 0.51026362,\n", + " 0.34357768, -0.06054021]),\n", + " array([ 0.57533944, 0.22824478, -0.42981488, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.57436252, 0.22991595, -0.44469193, ..., 0.60268474,\n", + " 0.36082476, -0.03825179]),\n", + " array([ 0.57578802, 0.23188962, -0.44065419, ..., 0.60911208,\n", + " 0.33832502, -0.04397777]),\n", + " array([ 0.57540059, 0.23483536, -0.49651131, ..., 0.60135698,\n", + " 0.35084304, -0.03954295]),\n", + " array([ 0.578044 , 0.2420816 , -0.52706438, ..., 0.60100138,\n", + " 0.41196895, -0.05907314]),\n", + " array([ 0.57810414, 0.24662551, -0.5207724 , ..., 0.60430765,\n", + " 0.42146903, -0.05255203]),\n", + " array([ 0.57838243, 0.24604873, -0.53639627, ..., 0.60637724,\n", + " 0.4219667 , -0.04456661]),\n", + " array([ 0.57809275, 0.24727462, -0.55853361, ..., 0.60848671,\n", + " 0.43485555, -0.06247078]),\n", + " array([ 0.57789022, 0.24819204, -0.58207381, ..., 0.60778332,\n", + " 0.44202688, -0.05923748]),\n", + " array([ 0.57832849, 0.24959917, -0.60282385, ..., 0.60811472,\n", + " 0.44387653, -0.0486016 ]),\n", + " array([ 0.57886511, 0.24909142, -0.58316487, ..., 0.60853982,\n", + " 0.45558891, -0.06361675]),\n", + " array([ 0.57905871, 0.24901073, -0.53403383, ..., 0.60856831,\n", + " 0.46060696, -0.05995061]),\n", + " array([ 0.57978904, 0.2487763 , -0.53224093, ..., 0.60822469,\n", + " 0.46823704, -0.0537367 ]),\n", + " array([ 0.58003229, 0.24720787, -0.5232414 , ..., 0.60823768,\n", + " 0.47244984, -0.05960651]),\n", + " array([ 0.57998687, 0.24607897, -0.5328179 , ..., 0.60753518,\n", + " 0.48956591, -0.06615084]),\n", + " array([ 0.579615 , 0.24599464, -0.53442323, ..., 0.60480869,\n", + " 0.50250411, -0.06833943]),\n", + " array([ 0.57945406, 0.24592976, -0.4986119 , ..., 0.6023553 ,\n", + " 0.52112526, -0.06065684]),\n", + " array([ 0.57928443, 0.24537177, -0.54335749, ..., 0.5816164 ,\n", + " 0.56336975, -0.06154573]),\n", + " array([ 0.57903093, 0.24412493, -0.56770968, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5787003 , 0.24407603, -0.82473159, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.57799923, 0.24295163, -0.72702926, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.57643598, 0.23885289, -0.67669493, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.57410765, 0.23742896, -0.65769309, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.57150167, 0.23640226, -0.58210111, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.56872636, 0.22968875, -0.58592504, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.56787169, 0.22685264, -0.57162291, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.56680197, 0.22290158, -0.54685092, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.56674457, 0.22189072, -0.55898595, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.56511587, 0.21839693, -0.61486876, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.56322265, 0.21836486, -0.60146749, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.52824545, 0.24964112, -0.57581234, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.52199054, 0.26331756, -0.58929914, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51838088, 0.2709963 , -0.62274384, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5178417 , 0.26889929, -0.6037488 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51875287, 0.26718974, -0.52200079, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5190919 , 0.26787964, -0.51221955, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51883876, 0.26658404, -0.53081191, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51817477, 0.26706594, -0.52837187, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5175156 , 0.2662729 , -0.50501323, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51481968, 0.26554447, -0.55512583, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51351184, 0.26663756, -0.58176577, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51287347, 0.26670906, -0.57904303, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51185644, 0.26677358, -0.55546755, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5109064 , 0.26684728, -0.55634767, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51096302, 0.26671246, -0.53494513, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5111087 , 0.26659465, -0.5137198 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5112747 , 0.26648596, -0.50316799, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5114224 , 0.26642936, -0.50189477, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51148677, 0.26636684, -0.53226161, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51151663, 0.26562726, -0.53308856, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51159596, 0.26728654, -0.54089588, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51149184, 0.27201489, -0.5408445 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5114696 , 0.27414748, -0.55081582, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51150984, 0.27628523, -0.62133098, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51104283, 0.27571705, -0.80607951, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51110363, 0.27553132, -0.73436928, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51134223, 0.27478334, -0.75789893, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51163411, 0.27341738, -0.73004287, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51165956, 0.26965323, -0.74012625, ..., 0. ,\n", + " 0. , 0. ])],\n", + " [array([ 0.53195328, 0.26400366, -0.61336547, ..., 0.49956056,\n", + " 0.64198351, 0.00367959]),\n", + " array([ 0.53664887, 0.26120979, -0.54290867, ..., 0.50082546,\n", + " 0.63671416, 0.01280629]),\n", + " array([ 0.53761315, 0.26101199, -0.51413685, ..., 0.50035042,\n", + " 0.63956136, 0.01150617]),\n", + " array([ 0.53879398, 0.25918031, -0.48172322, ..., 0.49473965,\n", + " 0.64776212, 0.00573742]),\n", + " array([ 0.53909701, 0.25554487, -0.4682436 , ..., 0.49756843,\n", + " 0.65053999, 0.00458942]),\n", + " array([ 0.5386402 , 0.25202215, -0.45623547, ..., 0.49770921,\n", + " 0.65322983, 0.00171596]),\n", + " array([ 0.53814 , 0.24997586, -0.49476382, ..., 0.49692434,\n", + " 0.6515246 , 0.00293153]),\n", + " array([ 0.53777939, 0.2500163 , -0.51128775, ..., 0.49638063,\n", + " 0.65479952, 0.00360618]),\n", + " array([ 0.5379582 , 0.24960817, -0.50558805, ..., 0.49741784,\n", + " 0.65507454, 0.00442083]),\n", + " array([ 0.53805494, 0.24795736, -0.49719554, ..., 0.49824905,\n", + " 0.65272528, 0.00567797]),\n", + " array([ 0.53798175, 0.24517179, -0.49825603, ..., 0.49828273,\n", + " 0.65571046, 0.00373811]),\n", + " array([ 0.53815717, 0.23776029, -0.5014593 , ..., 0.50165975,\n", + " 0.65029603, 0.01093932]),\n", + " array([ 0.53809583, 0.23470324, -0.50476873, ..., 0.50043947,\n", + " 0.65452278, 0.00760866]),\n", + " array([ 0.53803504, 0.23342316, -0.50442964, ..., 0.50185078,\n", + " 0.65611064, 0.01151451]),\n", + " array([ 0.53791636, 0.23389907, -0.55065608, ..., 0.50115234,\n", + " 0.65485877, 0.01339326]),\n", + " array([ 0.53723359, 0.23447403, -0.54401058, ..., 0.50465232,\n", + " 0.6547361 , 0.01499333]),\n", + " array([ 0.53682309, 0.23498762, -0.54301363, ..., 0.51023984,\n", + " 0.66206139, 0.01498063]),\n", + " array([ 0.53649819, 0.23443949, -0.56620055, ..., 0.518682 ,\n", + " 0.67732471, 0.01372728]),\n", + " array([ 5.36265731e-01, 2.34683484e-01, -6.37739062e-01, ...,\n", + " 5.24109840e-01, 6.97395325e-01, -3.14295001e-04]),\n", + " array([ 0.53621203, 0.23482636, -0.78275055, ..., 0.52258331,\n", + " 0.7289378 , -0.01581247]),\n", + " array([ 0.53617537, 0.23489125, -0.83035827, ..., 0.52232671,\n", + " 0.76236784, -0.02424829]),\n", + " array([ 0.53590095, 0.2350166 , -0.87342733, ..., 0.50027263,\n", + " 0.85296136, -0.01377865]),\n", + " array([ 0.53588808, 0.23544995, -0.7931627 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53591776, 0.23550689, -0.61618906, ..., 0.51528877,\n", + " 0.9670009 , -0.04047937]),\n", + " array([ 0.53596574, 0.2354552 , -0.57170159, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53632581, 0.23138547, -0.58789963, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53615993, 0.23086718, -0.59778905, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53614604, 0.23020029, -0.80285245, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5364325 , 0.22937983, -0.75145447, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53672212, 0.22830783, -0.68263811, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53689259, 0.22671901, -0.67078674, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53705424, 0.22406322, -0.66260254, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53708422, 0.22365479, -0.6647464 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5367651 , 0.22341998, -0.66439962, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5367716 , 0.22302175, -0.67676598, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53611213, 0.22245915, -0.66600287, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53542578, 0.2215745 , -0.66026574, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53546041, 0.22137278, -0.68304825, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53550488, 0.22136469, -0.68313223, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53556544, 0.22137411, -0.68650681, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.53556502, 0.22203985, -0.67870593, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5350619 , 0.22251539, -0.65856558, ..., 0. ,\n", + " 0. , 0. ])]]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/preprocess.ipynb b/preprocess.ipynb new file mode 100644 index 0000000..a610084 --- /dev/null +++ b/preprocess.ipynb @@ -0,0 +1,19 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pretrained-bert-with-huggingface-tensorflow-2-1.ipynb b/pretrained-bert-with-huggingface-tensorflow-2-1.ipynb new file mode 100644 index 0000000..f58660f --- /dev/null +++ b/pretrained-bert-with-huggingface-tensorflow-2-1.ipynb @@ -0,0 +1,1485 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting transformers\r\n", + " Downloading transformers-2.5.1-py3-none-any.whl (499 kB)\r\n", + "\u001b[K |████████████████████████████████| 499 kB 4.1 MB/s \r\n", + "\u001b[?25hRequirement already satisfied, skipping upgrade: boto3 in /opt/conda/lib/python3.6/site-packages (from transformers) (1.11.15)\r\n", + "Requirement already satisfied, skipping upgrade: regex!=2019.12.17 in /opt/conda/lib/python3.6/site-packages (from transformers) (2020.1.8)\r\n", + "Requirement already satisfied, skipping upgrade: tqdm>=4.27 in /opt/conda/lib/python3.6/site-packages (from transformers) (4.42.1)\r\n", + "Requirement already satisfied, skipping upgrade: numpy in /opt/conda/lib/python3.6/site-packages (from transformers) (1.18.1)\r\n", + "Requirement already satisfied, skipping upgrade: sacremoses in /opt/conda/lib/python3.6/site-packages (from transformers) (0.0.38)\r\n", + "Requirement already satisfied, skipping upgrade: sentencepiece in /opt/conda/lib/python3.6/site-packages (from transformers) (0.1.85)\r\n", + "Requirement already satisfied, skipping upgrade: requests in /opt/conda/lib/python3.6/site-packages (from transformers) (2.22.0)\r\n", + "Collecting tokenizers==0.5.2\r\n", + " Downloading tokenizers-0.5.2-cp36-cp36m-manylinux1_x86_64.whl (3.7 MB)\r\n", + "\u001b[K |████████████████████████████████| 3.7 MB 7.3 MB/s \r\n", + "\u001b[?25hRequirement already satisfied, skipping upgrade: filelock in /opt/conda/lib/python3.6/site-packages (from transformers) (3.0.12)\r\n", + "Requirement already satisfied, skipping upgrade: botocore<1.15.0,>=1.14.15 in /opt/conda/lib/python3.6/site-packages (from boto3->transformers) (1.14.15)\r\n", + "Requirement already satisfied, skipping upgrade: s3transfer<0.4.0,>=0.3.0 in /opt/conda/lib/python3.6/site-packages (from boto3->transformers) (0.3.3)\r\n", + "Requirement already satisfied, skipping upgrade: jmespath<1.0.0,>=0.7.1 in /opt/conda/lib/python3.6/site-packages (from boto3->transformers) (0.9.4)\r\n", + "Requirement already satisfied, skipping upgrade: joblib in /opt/conda/lib/python3.6/site-packages (from sacremoses->transformers) (0.14.1)\r\n", + "Requirement already satisfied, skipping upgrade: click in /opt/conda/lib/python3.6/site-packages (from sacremoses->transformers) (7.0)\r\n", + "Requirement already satisfied, skipping upgrade: six in /opt/conda/lib/python3.6/site-packages (from sacremoses->transformers) (1.14.0)\r\n", + "Requirement already satisfied, skipping upgrade: idna<2.9,>=2.5 in /opt/conda/lib/python3.6/site-packages (from requests->transformers) (2.8)\r\n", + "Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /opt/conda/lib/python3.6/site-packages (from requests->transformers) (2019.11.28)\r\n", + "Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.6/site-packages (from requests->transformers) (1.25.8)\r\n", + "Requirement already satisfied, skipping upgrade: chardet<3.1.0,>=3.0.2 in /opt/conda/lib/python3.6/site-packages (from requests->transformers) (3.0.4)\r\n", + "Requirement already satisfied, skipping upgrade: python-dateutil<3.0.0,>=2.1 in /opt/conda/lib/python3.6/site-packages (from botocore<1.15.0,>=1.14.15->boto3->transformers) (2.8.1)\r\n", + "Requirement already satisfied, skipping upgrade: docutils<0.16,>=0.10 in /opt/conda/lib/python3.6/site-packages (from botocore<1.15.0,>=1.14.15->boto3->transformers) (0.15.2)\r\n", + "Installing collected packages: tokenizers, transformers\r\n", + " Attempting uninstall: tokenizers\r\n", + " Found existing installation: tokenizers 0.0.11\r\n", + " Uninstalling tokenizers-0.0.11:\r\n", + " Successfully uninstalled tokenizers-0.0.11\r\n", + " Attempting uninstall: transformers\r\n", + " Found existing installation: transformers 2.4.1\r\n", + " Uninstalling transformers-2.4.1:\r\n", + " Successfully uninstalled transformers-2.4.1\r\n", + "Successfully installed tokenizers-0.5.2 transformers-2.5.1\r\n" + ] + } + ], + "source": [ + "!pip install --upgrade transformers" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/kaggle/input/nlp-getting-started/train.csv\n", + "/kaggle/input/nlp-getting-started/test.csv\n", + "/kaggle/input/nlp-getting-started/sample_submission.csv\n" + ] + } + ], + "source": [ + "# This Python 3 environment comes with many helpful analytics libraries installed\n", + "# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n", + "# For example, here's several helpful packages to load in \n", + "\n", + "import numpy as np # linear algebra\n", + "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n", + "\n", + "# Input data files are available in the \"../input/\" directory.\n", + "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n", + "\n", + "import os\n", + "for dirname, _, filenames in os.walk('/kaggle/input'):\n", + " for filename in filenames:\n", + " print(os.path.join(dirname, filename))\n", + "\n", + "# Any results you write to the current directory are saved as output." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'2.1.0'" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import classification_report\n", + "from tqdm.notebook import tqdm\n", + "\n", + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "import tensorflow.keras.backend as K\n", + "from tensorflow.keras import layers\n", + "from tensorflow.keras.utils import plot_model\n", + "from transformers import (\n", + " BertTokenizer,\n", + " TFBertForSequenceClassification,\n", + " TFBertModel,\n", + " BertConfig,\n", + ")\n", + "tf.__version__" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "MAX_SEQUENCE_LENGTH = 255\n", + "PRETRAINED_MODEL_NAME = 'bert-base-uncased'\n", + "BATCH_SIZE = 32" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df = pd.read_csv('/kaggle/input/nlp-getting-started/train.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idkeywordlocationtexttarget
01NaNNaNOur Deeds are the Reason of this #earthquake M...1
14NaNNaNForest fire near La Ronge Sask. Canada1
25NaNNaNAll residents asked to 'shelter in place' are ...1
36NaNNaN13,000 people receive #wildfires evacuation or...1
47NaNNaNJust got sent this photo from Ruby #Alaska as ...1
\n", + "
" + ], + "text/plain": [ + " id keyword location text \\\n", + "0 1 NaN NaN Our Deeds are the Reason of this #earthquake M... \n", + "1 4 NaN NaN Forest fire near La Ronge Sask. Canada \n", + "2 5 NaN NaN All residents asked to 'shelter in place' are ... \n", + "3 6 NaN NaN 13,000 people receive #wildfires evacuation or... \n", + "4 7 NaN NaN Just got sent this photo from Ruby #Alaska as ... \n", + "\n", + " target \n", + "0 1 \n", + "1 1 \n", + "2 1 \n", + "3 1 \n", + "4 1 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 4342\n", + "1 3271\n", + "Name: target, dtype: int64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['target'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "id 0\n", + "keyword 61\n", + "location 2533\n", + "text 0\n", + "target 0\n", + "dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "data = df['text'].values\n", + "targets = df['target'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def create_model():\n", + " bert_model = TFBertModel.from_pretrained(PRETRAINED_MODEL_NAME)\n", + " \n", + " input_ids = layers.Input(shape=(MAX_SEQUENCE_LENGTH,), dtype=tf.int32, name='input_ids')\n", + " token_type_ids = layers.Input((MAX_SEQUENCE_LENGTH,), dtype=tf.int32, name='token_type_ids')\n", + " attention_mask = layers.Input((MAX_SEQUENCE_LENGTH,), dtype=tf.int32, name='attention_mask')\n", + " \n", + " # Use pooled_output(hidden states of [CLS]) as sentence level embedding\n", + " pooled_output = bert_model({'input_ids': input_ids, 'attention_mask': attention_mask, 'token_type_ids': token_type_ids})[1]\n", + " x = layers.Dropout(rate=0.1)(pooled_output)\n", + " x = layers.Dense(1, activation='sigmoid')(x)\n", + " model = keras.models.Model(inputs={'input_ids': input_ids, 'attention_mask': attention_mask, 'token_type_ids': token_type_ids}, outputs=x)\n", + " return model" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "29a9d1418562479288ee1300a25367ba", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Downloading', max=231508.0, style=ProgressStyle(descripti…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d0316e4f02fb4195aafc037de3d09497", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Downloading', max=361.0, style=ProgressStyle(description_…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4df880fe110f48be9ea132ed4b3965ab", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Downloading', max=536063208.0, style=ProgressStyle(descri…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "tokenizer = BertTokenizer.from_pretrained(PRETRAINED_MODEL_NAME)\n", + "model = create_model()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"model\"\n", + "__________________________________________________________________________________________________\n", + "Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + "attention_mask (InputLayer) [(None, 255)] 0 \n", + "__________________________________________________________________________________________________\n", + "input_ids (InputLayer) [(None, 255)] 0 \n", + "__________________________________________________________________________________________________\n", + "token_type_ids (InputLayer) [(None, 255)] 0 \n", + "__________________________________________________________________________________________________\n", + "tf_bert_model (TFBertModel) ((None, 255, 768), ( 109482240 attention_mask[0][0] \n", + " input_ids[0][0] \n", + " token_type_ids[0][0] \n", + "__________________________________________________________________________________________________\n", + "dropout_37 (Dropout) (None, 768) 0 tf_bert_model[0][1] \n", + "__________________________________________________________________________________________________\n", + "dense (Dense) (None, 1) 769 dropout_37[0][0] \n", + "==================================================================================================\n", + "Total params: 109,483,009\n", + "Trainable params: 109,483,009\n", + "Non-trainable params: 0\n", + "__________________________________________________________________________________________________\n" + ] + } + ], + "source": [ + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot_model(model, to_file='model.png', expand_nested=True, show_shapes=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "opt = tf.keras.optimizers.Adam(learning_rate=3e-5)\n", + "model.compile(optimizer=opt, loss='binary_crossentropy', metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_val, y_train, y_val = train_test_split(data, targets, test_size=0.33, random_state=42, stratify=targets)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "X_train = tokenizer.batch_encode_plus(X_train, max_length=MAX_SEQUENCE_LENGTH, pad_to_max_length=True, return_tensors='tf')\n", + "X_val = tokenizer.batch_encode_plus(X_val, max_length=MAX_SEQUENCE_LENGTH, pad_to_max_length=True, return_tensors='tf')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train on 5100 samples, validate on 2513 samples\n", + "Epoch 1/3\n", + "5100/5100 [==============================] - 197s 39ms/sample - loss: 0.4626 - accuracy: 0.7871 - val_loss: 0.3980 - val_accuracy: 0.8309\n", + "Epoch 2/3\n", + "5100/5100 [==============================] - 177s 35ms/sample - loss: 0.3088 - accuracy: 0.8757 - val_loss: 0.3882 - val_accuracy: 0.8404\n", + "Epoch 3/3\n", + "5100/5100 [==============================] - 177s 35ms/sample - loss: 0.1967 - accuracy: 0.9265 - val_loss: 0.4644 - val_accuracy: 0.8166\n" + ] + } + ], + "source": [ + "history = model.fit(\n", + " x=X_train,\n", + " y=y_train,\n", + " validation_data=(X_val, y_val),\n", + " epochs=3,\n", + " batch_size=BATCH_SIZE\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = model.predict(x=X_val, batch_size=BATCH_SIZE)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred_bin = (y_pred > 0.5).astype(int).reshape(-1)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.83 0.86 0.84 1433\n", + " 1 0.80 0.76 0.78 1080\n", + "\n", + " accuracy 0.82 2513\n", + " macro avg 0.81 0.81 0.81 2513\n", + "weighted avg 0.82 0.82 0.82 2513\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_val, y_pred_bin))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "df_test = pd.read_csv('/kaggle/input/nlp-getting-started/test.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idkeywordlocationtext
00NaNNaNJust happened a terrible car crash
12NaNNaNHeard about #earthquake is different cities, s...
23NaNNaNthere is a forest fire at spot pond, geese are...
39NaNNaNApocalypse lighting. #Spokane #wildfires
411NaNNaNTyphoon Soudelor kills 28 in China and Taiwan
\n", + "
" + ], + "text/plain": [ + " id keyword location text\n", + "0 0 NaN NaN Just happened a terrible car crash\n", + "1 2 NaN NaN Heard about #earthquake is different cities, s...\n", + "2 3 NaN NaN there is a forest fire at spot pond, geese are...\n", + "3 9 NaN NaN Apocalypse lighting. #Spokane #wildfires\n", + "4 11 NaN NaN Typhoon Soudelor kills 28 in China and Taiwan" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_test.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "X_test = df_test['text'].values\n", + "X_test = tokenizer.batch_encode_plus(X_test, max_length=MAX_SEQUENCE_LENGTH, pad_to_max_length=True, return_tensors='tf')\n", + "y_pred = model.predict(x=X_test, batch_size=BATCH_SIZE)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred_bin = (y_pred > 0.5).astype(int).reshape(-1)\n", + "df_test['target'] = y_pred_bin\n", + "df_test[['id', 'target']].to_csv('submission.csv', index=False)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.6.6" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "03be012493254014b62feee3d3d4b7df": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_79d038d5294340cdb689dade557456e6", + "placeholder": "​", + "style": "IPY_MODEL_dd71e09e86484807b3edaca293ca5f41", + "value": " 232k/232k [00:00<00:00, 634kB/s]" + } + }, + "100a3541a4514cae90bb145e12c51865": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "29a9d1418562479288ee1300a25367ba": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_33d1a8113c674c6fbc9e5b44c898f1fa", + "IPY_MODEL_03be012493254014b62feee3d3d4b7df" + ], + "layout": "IPY_MODEL_c10b76211f264aa7b43eca06347284e9" + } + }, + "2c31038e37304960a65194f16a79fe43": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2d2f53be74a141deab1a95ae7ec25297": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "initial" + } + }, + "2db28fe684334b968f198feceb5bf09a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "33d1a8113c674c6fbc9e5b44c898f1fa": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "Downloading: 100%", + "description_tooltip": null, + "layout": "IPY_MODEL_2c31038e37304960a65194f16a79fe43", + "max": 231508.0, + "min": 0.0, + "orientation": "horizontal", + "style": "IPY_MODEL_779a13cab55d4381bd4543b91117c0a3", + "value": 231508.0 + } + }, + "4df880fe110f48be9ea132ed4b3965ab": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_8d3a901737364aaca11091802f4f8f22", + "IPY_MODEL_a8994979391842d58035b1626ea25f56" + ], + "layout": "IPY_MODEL_cbc30c2e14694945a41d941b9cce6bf4" + } + }, + "778fac3631704dc092df0d9b04b00e60": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "779a13cab55d4381bd4543b91117c0a3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "initial" + } + }, + "793767b2084a43f991f2c7a25690393c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "79d038d5294340cdb689dade557456e6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "80a7d90167df4d768b0e3c2657f178f4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "Downloading: 100%", + "description_tooltip": null, + "layout": "IPY_MODEL_2db28fe684334b968f198feceb5bf09a", + "max": 361.0, + "min": 0.0, + "orientation": "horizontal", + "style": "IPY_MODEL_2d2f53be74a141deab1a95ae7ec25297", + "value": 361.0 + } + }, + "82f42de7f1264f8e90c29f28a550800a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "8d3a901737364aaca11091802f4f8f22": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "Downloading: 100%", + "description_tooltip": null, + "layout": "IPY_MODEL_778fac3631704dc092df0d9b04b00e60", + "max": 536063208.0, + "min": 0.0, + "orientation": "horizontal", + "style": "IPY_MODEL_ba466ce17d5f41338cb2379dfda6ea2c", + "value": 536063208.0 + } + }, + "95d4b2c9de444550b50ccc36dbeca6de": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9d0b02fbc377440b871ed65ad007d497": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a04a087e25654f22af8438ac0f140971": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_95d4b2c9de444550b50ccc36dbeca6de", + "placeholder": "​", + "style": "IPY_MODEL_82f42de7f1264f8e90c29f28a550800a", + "value": " 361/361 [00:00<00:00, 1.50kB/s]" + } + }, + "a8994979391842d58035b1626ea25f56": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_100a3541a4514cae90bb145e12c51865", + "placeholder": "​", + "style": "IPY_MODEL_793767b2084a43f991f2c7a25690393c", + "value": " 536M/536M [01:59<00:00, 4.49MB/s]" + } + }, + "ba466ce17d5f41338cb2379dfda6ea2c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "initial" + } + }, + "c10b76211f264aa7b43eca06347284e9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cbc30c2e14694945a41d941b9cce6bf4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d0316e4f02fb4195aafc037de3d09497": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_80a7d90167df4d768b0e3c2657f178f4", + "IPY_MODEL_a04a087e25654f22af8438ac0f140971" + ], + "layout": "IPY_MODEL_9d0b02fbc377440b871ed65ad007d497" + } + }, + "dd71e09e86484807b3edaca293ca5f41": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/train.ipynb b/train.ipynb new file mode 100644 index 0000000..1fd7c83 --- /dev/null +++ b/train.ipynb @@ -0,0 +1,316 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "X = np.load(\"X.npy\", mmap_mode='r+')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071, 618264)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "Y = np.load(\"Y.npy\", allow_pickle=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1071" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(Y)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "618264" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(X[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from sklearn.model_selection import train_test_split\n", + "from keras.preprocessing.sequence import TimeseriesGenerator\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "n_features = X_train.shape[1]\n", + "X_train = X_train.reshape((-1, 1, n_features))\n", + "X_test = X_test.reshape((-1, 1, n_features))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "878" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(np.unique(Y))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071, 618264)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "cannot reshape array of size 1324090152 into shape (1071,231,2676)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[30], line 16\u001b[0m\n\u001b[0;32m 13\u001b[0m X_padded \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mpad(X, ((\u001b[39m0\u001b[39m, \u001b[39m0\u001b[39m), (\u001b[39m0\u001b[39m, num_features_to_pad)), mode\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mconstant\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 15\u001b[0m \u001b[39m# Reshape the padded array\u001b[39;00m\n\u001b[1;32m---> 16\u001b[0m X_3d \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39;49mreshape(X_padded, (X\u001b[39m.\u001b[39;49mshape[\u001b[39m0\u001b[39;49m], num_time_steps, num_features_per_step))\n\u001b[0;32m 18\u001b[0m \u001b[39m# The resulting shape will be (1071, 231, 2676)\u001b[39;00m\n\u001b[0;32m 19\u001b[0m \u001b[39mprint\u001b[39m(X_3d\u001b[39m.\u001b[39mshape)\n", + "File \u001b[1;32m<__array_function__ internals>:180\u001b[0m, in \u001b[0;36mreshape\u001b[1;34m(*args, **kwargs)\u001b[0m\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\numpy\\core\\fromnumeric.py:298\u001b[0m, in \u001b[0;36mreshape\u001b[1;34m(a, newshape, order)\u001b[0m\n\u001b[0;32m 198\u001b[0m \u001b[39m@array_function_dispatch\u001b[39m(_reshape_dispatcher)\n\u001b[0;32m 199\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mreshape\u001b[39m(a, newshape, order\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mC\u001b[39m\u001b[39m'\u001b[39m):\n\u001b[0;32m 200\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 201\u001b[0m \u001b[39m Gives a new shape to an array without changing its data.\u001b[39;00m\n\u001b[0;32m 202\u001b[0m \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 296\u001b[0m \u001b[39m [5, 6]])\u001b[39;00m\n\u001b[0;32m 297\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 298\u001b[0m \u001b[39mreturn\u001b[39;00m _wrapfunc(a, \u001b[39m'\u001b[39;49m\u001b[39mreshape\u001b[39;49m\u001b[39m'\u001b[39;49m, newshape, order\u001b[39m=\u001b[39;49morder)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\numpy\\core\\fromnumeric.py:57\u001b[0m, in \u001b[0;36m_wrapfunc\u001b[1;34m(obj, method, *args, **kwds)\u001b[0m\n\u001b[0;32m 54\u001b[0m \u001b[39mreturn\u001b[39;00m _wrapit(obj, method, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds)\n\u001b[0;32m 56\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m---> 57\u001b[0m \u001b[39mreturn\u001b[39;00m bound(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds)\n\u001b[0;32m 58\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mTypeError\u001b[39;00m:\n\u001b[0;32m 59\u001b[0m \u001b[39m# A TypeError occurs if the object does have such a method in its\u001b[39;00m\n\u001b[0;32m 60\u001b[0m \u001b[39m# class, but its signature is not identical to that of NumPy's. This\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 64\u001b[0m \u001b[39m# Call _wrapit from within the except clause to ensure a potential\u001b[39;00m\n\u001b[0;32m 65\u001b[0m \u001b[39m# exception has a traceback chain.\u001b[39;00m\n\u001b[0;32m 66\u001b[0m \u001b[39mreturn\u001b[39;00m _wrapit(obj, method, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds)\n", + "\u001b[1;31mValueError\u001b[0m: cannot reshape array of size 1324090152 into shape (1071,231,2676)" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "num_time_steps = 231\n", + "num_features_per_step = 2676\n", + "\n", + "# Calculate the required number of total features\n", + "required_total_features = num_time_steps * num_features_per_step\n", + "\n", + "# Determine the number of features to pad on the right side\n", + "num_features_to_pad = required_total_features - (X.shape[1] % required_total_features)\n", + "\n", + "# Pad the input array with zeros on the right side\n", + "X_padded = np.pad(X, ((0, 0), (0, num_features_to_pad)), mode='constant')\n", + "\n", + "# Reshape the padded array\n", + "X_3d = np.reshape(X_padded, (X.shape[0], num_time_steps, num_features_per_step))\n", + "\n", + "# The resulting shape will be (1071, 231, 2676)\n", + "print(X_3d.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "cannot reshape array of size 662160744 into shape (1071,231,2676)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[24], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m X \u001b[39m=\u001b[39m X\u001b[39m.\u001b[39;49mreshape((\u001b[39m1071\u001b[39;49m, \u001b[39m231\u001b[39;49m, \u001b[39m2676\u001b[39;49m))\n", + "\u001b[1;31mValueError\u001b[0m: cannot reshape array of size 662160744 into shape (1071,231,2676)" + ] + } + ], + "source": [ + "X = X.reshape((1, 231, 2676))" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "ename": "ResourceExhaustedError", + "evalue": "{{function_node __wrapped__Mul_device_/job:localhost/replica:0/task:0/device:CPU:0}} OOM when allocating tensor with shape[618264,512] and type float on /job:localhost/replica:0/task:0/device:CPU:0 by allocator cpu [Op:Mul]", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mResourceExhaustedError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[56], line 5\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mkeras\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mlayers\u001b[39;00m \u001b[39mimport\u001b[39;00m LSTM, Dense\n\u001b[0;32m 4\u001b[0m model \u001b[39m=\u001b[39m Sequential()\n\u001b[1;32m----> 5\u001b[0m model\u001b[39m.\u001b[39;49madd(LSTM(\u001b[39m128\u001b[39;49m, input_shape\u001b[39m=\u001b[39;49m(\u001b[39m1\u001b[39;49m, \u001b[39m618264\u001b[39;49m)))\n\u001b[0;32m 6\u001b[0m model\u001b[39m.\u001b[39madd(Dense(\u001b[39m1\u001b[39m))\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\trackable\\base.py:205\u001b[0m, in \u001b[0;36mno_automatic_dependency_tracking.._method_wrapper\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 203\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_self_setattr_tracking \u001b[39m=\u001b[39m \u001b[39mFalse\u001b[39;00m \u001b[39m# pylint: disable=protected-access\u001b[39;00m\n\u001b[0;32m 204\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m--> 205\u001b[0m result \u001b[39m=\u001b[39m method(\u001b[39mself\u001b[39m, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m 206\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 207\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_self_setattr_tracking \u001b[39m=\u001b[39m previous_value \u001b[39m# pylint: disable=protected-access\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\utils\\traceback_utils.py:70\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 67\u001b[0m filtered_tb \u001b[39m=\u001b[39m _process_traceback_frames(e\u001b[39m.\u001b[39m__traceback__)\n\u001b[0;32m 68\u001b[0m \u001b[39m# To get the full stack trace, call:\u001b[39;00m\n\u001b[0;32m 69\u001b[0m \u001b[39m# `tf.debugging.disable_traceback_filtering()`\u001b[39;00m\n\u001b[1;32m---> 70\u001b[0m \u001b[39mraise\u001b[39;00m e\u001b[39m.\u001b[39mwith_traceback(filtered_tb) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 71\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 72\u001b[0m \u001b[39mdel\u001b[39;00m filtered_tb\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\backend.py:2101\u001b[0m, in \u001b[0;36mRandomGenerator.random_uniform\u001b[1;34m(self, shape, minval, maxval, dtype, nonce)\u001b[0m\n\u001b[0;32m 2099\u001b[0m \u001b[39mif\u001b[39;00m nonce:\n\u001b[0;32m 2100\u001b[0m seed \u001b[39m=\u001b[39m tf\u001b[39m.\u001b[39mrandom\u001b[39m.\u001b[39mexperimental\u001b[39m.\u001b[39mstateless_fold_in(seed, nonce)\n\u001b[1;32m-> 2101\u001b[0m \u001b[39mreturn\u001b[39;00m tf\u001b[39m.\u001b[39;49mrandom\u001b[39m.\u001b[39;49mstateless_uniform(\n\u001b[0;32m 2102\u001b[0m shape\u001b[39m=\u001b[39;49mshape,\n\u001b[0;32m 2103\u001b[0m minval\u001b[39m=\u001b[39;49mminval,\n\u001b[0;32m 2104\u001b[0m maxval\u001b[39m=\u001b[39;49mmaxval,\n\u001b[0;32m 2105\u001b[0m dtype\u001b[39m=\u001b[39;49mdtype,\n\u001b[0;32m 2106\u001b[0m seed\u001b[39m=\u001b[39;49mseed,\n\u001b[0;32m 2107\u001b[0m )\n\u001b[0;32m 2108\u001b[0m \u001b[39mreturn\u001b[39;00m tf\u001b[39m.\u001b[39mrandom\u001b[39m.\u001b[39muniform(\n\u001b[0;32m 2109\u001b[0m shape\u001b[39m=\u001b[39mshape,\n\u001b[0;32m 2110\u001b[0m minval\u001b[39m=\u001b[39mminval,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 2113\u001b[0m seed\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmake_legacy_seed(),\n\u001b[0;32m 2114\u001b[0m )\n", + "\u001b[1;31mResourceExhaustedError\u001b[0m: {{function_node __wrapped__Mul_device_/job:localhost/replica:0/task:0/device:CPU:0}} OOM when allocating tensor with shape[618264,512] and type float on /job:localhost/replica:0/task:0/device:CPU:0 by allocator cpu [Op:Mul]" + ] + } + ], + "source": [ + "from keras.models import Sequential\n", + "from keras.layers import LSTM, Dense\n", + "\n", + "model = Sequential()\n", + "model.add(LSTM(128, input_shape=(1, 618264)))\n", + "model.add(Dense(1))" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "ename": "MemoryError", + "evalue": "Unable to allocate 1.97 GiB for an array with shape (856, 1, 618264) and data type float32", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mMemoryError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[55], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m model\u001b[39m.\u001b[39;49mfit(X_train, y_train, epochs\u001b[39m=\u001b[39;49m\u001b[39m10\u001b[39;49m, batch_size\u001b[39m=\u001b[39;49m\u001b[39m32\u001b[39;49m, validation_data\u001b[39m=\u001b[39;49m(X_test, y_test))\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\utils\\traceback_utils.py:70\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 67\u001b[0m filtered_tb \u001b[39m=\u001b[39m _process_traceback_frames(e\u001b[39m.\u001b[39m__traceback__)\n\u001b[0;32m 68\u001b[0m \u001b[39m# To get the full stack trace, call:\u001b[39;00m\n\u001b[0;32m 69\u001b[0m \u001b[39m# `tf.debugging.disable_traceback_filtering()`\u001b[39;00m\n\u001b[1;32m---> 70\u001b[0m \u001b[39mraise\u001b[39;00m e\u001b[39m.\u001b[39mwith_traceback(filtered_tb) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 71\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 72\u001b[0m \u001b[39mdel\u001b[39;00m filtered_tb\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\framework\\constant_op.py:103\u001b[0m, in \u001b[0;36mconvert_to_eager_tensor\u001b[1;34m(value, ctx, dtype)\u001b[0m\n\u001b[0;32m 101\u001b[0m dtype \u001b[39m=\u001b[39m dtypes\u001b[39m.\u001b[39mas_dtype(dtype)\u001b[39m.\u001b[39mas_datatype_enum\n\u001b[0;32m 102\u001b[0m ctx\u001b[39m.\u001b[39mensure_initialized()\n\u001b[1;32m--> 103\u001b[0m \u001b[39mreturn\u001b[39;00m ops\u001b[39m.\u001b[39;49mEagerTensor(value, ctx\u001b[39m.\u001b[39;49mdevice_name, dtype)\n", + "\u001b[1;31mMemoryError\u001b[0m: Unable to allocate 1.97 GiB for an array with shape (856, 1, 618264) and data type float32" + ] + } + ], + "source": [ + "model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/video_to_keypoints.ipynb b/video_to_keypoints.ipynb new file mode 100644 index 0000000..400bc08 --- /dev/null +++ b/video_to_keypoints.ipynb @@ -0,0 +1,2625 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import cv2\n", + "import time\n", + "import numpy as np\n", + "import pandas as pd\n", + "import mediapipe as mp\n", + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VIDEO_IDSIGNER_IDIS_SENTENCESIGN
0MVI_394910Health
1MVI_395010Human
2MVI_395110Head
3MVI_395210Mind
4MVI_395310Brain
...............
1066MVI_526411Yes, make sure you're getting plenty of rest a...
1067MVI_526611Try to eat a balanced diet and get some light ...
1068MVI_526711Try to eat a balanced diet and get some light ...
1069MVI_526811Okay, I'll do my best. Thanks, doctor.
1070MVI_527011Okay, I'll do my best. Thanks, doctor.
\n", + "

1071 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " VIDEO_ID SIGNER_ID IS_SENTENCE \n", + "0 MVI_3949 1 0 \\\n", + "1 MVI_3950 1 0 \n", + "2 MVI_3951 1 0 \n", + "3 MVI_3952 1 0 \n", + "4 MVI_3953 1 0 \n", + "... ... ... ... \n", + "1066 MVI_5264 1 1 \n", + "1067 MVI_5266 1 1 \n", + "1068 MVI_5267 1 1 \n", + "1069 MVI_5268 1 1 \n", + "1070 MVI_5270 1 1 \n", + "\n", + " SIGN \n", + "0 Health \n", + "1 Human \n", + "2 Head \n", + "3 Mind \n", + "4 Brain \n", + "... ... \n", + "1066 Yes, make sure you're getting plenty of rest a... \n", + "1067 Try to eat a balanced diet and get some light ... \n", + "1068 Try to eat a balanced diet and get some light ... \n", + "1069 Okay, I'll do my best. Thanks, doctor. \n", + "1070 Okay, I'll do my best. Thanks, doctor. \n", + "\n", + "[1071 rows x 4 columns]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_excel(\"SignTlak Dataset - Copy.xlsx\")\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Grabbing the Holistic Model from Mediapipe and\n", + "# Initializing the Model\n", + "\n", + "mp_holistic = mp.solutions.holistic\n", + "holistic_model = mp_holistic.Holistic(\n", + "\tmin_detection_confidence=0.5,\n", + "\tmin_tracking_confidence=0.5\n", + ")\n", + "\n", + "# Initializing the drawing utils for drawing the facial landmarks on image\n", + "mp_drawing = mp.solutions.drawing_utils\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "X = []\n", + "y = []" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "video_path = \"G:/DCIM/100CANON/\"\n", + "video_folder = os.listdir(video_path)\n", + "for index, row in df.iterrows():\n", + " video_id, sign = row['VIDEO_ID'], row['SIGN']\n", + " video = video_id + \".MOV\"\n", + "\n", + " if video in video_folder:\n", + "\n", + " curr_landmarks = [] \n", + "\n", + " video_dir = video_path + video\n", + " capture = cv2.VideoCapture(video_dir)\n", + "\n", + " # Initializing current time and precious time for calculating the FPS\n", + " previousTime = 0\n", + " currentTime = 0\n", + "\n", + " while capture.isOpened():\n", + "\t # capture frame by frame\n", + " ret, frame = capture.read()\n", + " if not ret:\n", + " break\n", + "\n", + "\t # resizing the frame for better view\n", + " frame = cv2.resize(frame, (800, 600))\n", + " \n", + " # Converting the from BGR to RGB\n", + " image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\n", + "\n", + "\t # Making predictions using holistic model\n", + "\t # To improve performance, optionally mark the image as not writeable to\n", + "\t # pass by reference.\n", + " \n", + " image.flags.writeable = False\n", + " results = holistic_model.process(image)\n", + " image.flags.writeable = True\n", + "\n", + "\t # Converting back the RGB image to BGR\n", + " image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)\n", + " \n", + "\t\t\t# Process pose\n", + " pose = np.array([[res.x, res.y, res.z, res.visibility] for res in results.pose_landmarks.landmark]).flatten() if results.pose_landmarks else np.zeros(33*4)\n", + " face = np.array([[res.x, res.y, res.z] for res in results.face_landmarks.landmark]).flatten() if results.face_landmarks else np.zeros(468*3)\n", + " lh = np.array([[res.x, res.y, res.z] for res in results.left_hand_landmarks.landmark]).flatten() if results.left_hand_landmarks else np.zeros(21*3)\n", + " rh = np.array([[res.x, res.y, res.z] for res in results.right_hand_landmarks.landmark]).flatten() if results.right_hand_landmarks else np.zeros(21*3)\n", + " frame_pose = np.concatenate([pose, face, lh, rh])\n", + " curr_landmarks.append(frame_pose)\n", + " \n", + "\t\t\t\n", + "\n", + "\t # Drawing the Facial Landmarks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.face_landmarks,\n", + "\t mp_holistic.FACEMESH_CONTOURS,\n", + "\t mp_drawing.DrawingSpec(\n", + "\t\t color=(255,0,255),\n", + "\t\t thickness=1,\n", + "\t\t circle_radius=1\n", + "\t ),\n", + "\t\n", + " mp_drawing.DrawingSpec(\n", + "\t\t color=(0,255,255),\n", + "\t\t thickness=1,\n", + "\t\t circle_radius=1\n", + "\t )\n", + "\t )\n", + "\n", + "\t # Drawing Right hand Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.right_hand_landmarks,\n", + "\t mp_holistic.HAND_CONNECTIONS\n", + "\t )\n", + "\n", + "\t # Drawing Left hand Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.left_hand_landmarks,\n", + "\t mp_holistic.HAND_CONNECTIONS\n", + "\t )\n", + "\n", + "\t # Drawing pose Land Marks\n", + " mp_drawing.draw_landmarks(\n", + "\t image,\n", + "\t results.pose_landmarks,\n", + "\t mp_holistic.POSE_CONNECTIONS\n", + "\t )\n", + "\t\n", + "\t # Calculating the FPS\n", + " currentTime = time.time()\n", + " fps = 1 / (currentTime-previousTime)\n", + " previousTime = currentTime\n", + "\t\n", + "\t # Displaying FPS on the image\n", + " cv2.putText(image, str(int(fps))+\" FPS\", (10, 70), cv2.FONT_HERSHEY_COMPLEX, 1, (0,255,0), 2)\n", + "\n", + "\t # Display the resulting image\n", + " cv2.imshow(\"Facial and Hand Landmarks\", image)\n", + "\n", + "\t # Enter key 'q' to break the loop\n", + " if cv2.waitKey(5) & 0xFF == ord('q'):\n", + " break\n", + "\n", + " # When all the process is done\n", + " # Release the capture and destroy all windows\n", + " \n", + " y.append(sign)\n", + " X.append(curr_landmarks)\n", + "\n", + " capture.release()\n", + " cv2.destroyAllWindows()\n", + "\n", + " # print(X)\n", + " # print(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1059\n", + "1059\n" + ] + } + ], + "source": [ + "print(len(X))\n", + "print(len(y))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Sam\\AppData\\Local\\Temp\\ipykernel_9984\\55319187.py:1: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", + " X = np.array(X)\n" + ] + } + ], + "source": [ + "X = np.array(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "np.save(\"wed_X.npy\", X)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "np.save(\"wed_y.npy\", y)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "372\n" + ] + } + ], + "source": [ + "max_length = max(len(subarray) for subarray in X)\n", + "print(max_length)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "wed_X = np.load(\"wed_X.npy\", allow_pickle=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "372\n" + ] + } + ], + "source": [ + "max_length = max(len(subarray) for subarray in wed_X)\n", + "print(max_length)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1662" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(wed_X[0][2])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "x= wed_X[:100]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "setting an array element with a sequence.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;31mTypeError\u001b[0m: float() argument must be a string or a real number, not 'list'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[6], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m x \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39;49masarray(x)\u001b[39m.\u001b[39;49mastype(\u001b[39m'\u001b[39;49m\u001b[39mfloat32\u001b[39;49m\u001b[39m'\u001b[39;49m)\n", + "\u001b[1;31mValueError\u001b[0m: setting an array element with a sequence." + ] + } + ], + "source": [ + "x = np.asarray(x).astype('float32')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# Step 2 and 3: Pad sublists with arrays of zeros to match the maximum length\n", + "for sublist in wed_X:\n", + " \n", + " while len(sublist) < max_length:\n", + " sublist.append(np.array([0] * 1662))\n", + " sublist = np.array(sublist)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "new_X = wed_X[:200]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "from tensorflow.keras import layers, optimizers" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "list" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(wed_X[-2])" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "870\n" + ] + } + ], + "source": [ + "print(len(set(y)))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"model\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " input_1 (InputLayer) [(None, 1059, 372)] 0 \n", + " \n", + " dense (Dense) (None, 1059, 512) 190976 \n", + " \n", + " layer_normalization (LayerN (None, 1059, 512) 1024 \n", + " ormalization) \n", + " \n", + " activation (Activation) (None, 1059, 512) 0 \n", + " \n", + " dropout (Dropout) (None, 1059, 512) 0 \n", + " \n", + " dense_1 (Dense) (None, 1059, 256) 131328 \n", + " \n", + " layer_normalization_1 (Laye (None, 1059, 256) 512 \n", + " rNormalization) \n", + " \n", + " activation_1 (Activation) (None, 1059, 256) 0 \n", + " \n", + " dropout_1 (Dropout) (None, 1059, 256) 0 \n", + " \n", + " lstm (LSTM) (None, 250) 507000 \n", + " \n", + " dense_2 (Dense) (None, 870) 218370 \n", + " \n", + "=================================================================\n", + "Total params: 1,049,210\n", + "Trainable params: 1,049,210\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "# include early stopping and reducelr\n", + "def get_callbacks():\n", + " return [\n", + " tf.keras.callbacks.EarlyStopping(\n", + " monitor=\"val_accuracy\",\n", + " patience = 10,\n", + " restore_best_weights=True\n", + " ),\n", + " tf.keras.callbacks.ReduceLROnPlateau(\n", + " monitor = \"val_accuracy\",\n", + " factor = 0.5,\n", + " patience = 3\n", + " ),\n", + " ]\n", + "\n", + "# a single dense block followed by a normalization block and relu activation\n", + "def dense_block(units, name):\n", + " fc = layers.Dense(units)\n", + " norm = layers.LayerNormalization()\n", + " act = layers.Activation(\"relu\")\n", + " drop = layers.Dropout(0.1)\n", + " return lambda x: drop(act(norm(fc(x))))\n", + "\n", + "# the lstm block with the final dense block for the classification\n", + "def classifier(lstm_units):\n", + " lstm = layers.LSTM(lstm_units)\n", + " out = layers.Dense(870, activation=\"softmax\")\n", + " return lambda x: out(lstm(x))\n", + "# choose the number of nodes per layer\n", + "encoder_units = [512, 256] # tune this\n", + "lstm_units = 250 # tune this\n", + "\n", + "#define the inputs (ragged batches of time series of landmark coordinates)\n", + "inputs = tf.keras.Input(shape=((1059, 372)), ragged=True)\n", + "\n", + "# dense encoder model\n", + "x = inputs\n", + "for i, n in enumerate(encoder_units):\n", + " x = dense_block(n, f\"encoder_{i}\")(x)\n", + "\n", + "# classifier model\n", + "out = classifier(lstm_units)(x)\n", + "\n", + "model = tf.keras.Model(inputs=inputs, outputs=out)\n", + "model.summary()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'y' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[10], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39msklearn\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpreprocessing\u001b[39;00m \u001b[39mimport\u001b[39;00m OneHotEncoder\n\u001b[0;32m 2\u001b[0m encoder \u001b[39m=\u001b[39m OneHotEncoder(sparse\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m)\n\u001b[1;32m----> 3\u001b[0m y_encoded \u001b[39m=\u001b[39m encoder\u001b[39m.\u001b[39mfit_transform(np\u001b[39m.\u001b[39marray(y)\u001b[39m.\u001b[39mreshape(\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m, \u001b[39m1\u001b[39m))\n", + "\u001b[1;31mNameError\u001b[0m: name 'y' is not defined" + ] + } + ], + "source": [ + "from sklearn.preprocessing import OneHotEncoder\n", + "encoder = OneHotEncoder(sparse=False)\n", + "y_encoded = encoder.fit_transform(np.array(y).reshape(-1, 1))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# X_padded = tf.keras.preprocessing.sequence.pad_sequences(wed_X, padding='post')\n", + "\n", + "# Convert X and y datasets to TensorFlow tensors\n", + "# X_dataset = tf.convert_to_tensor(X_padded, dtype=tf.float32)\n", + "# y_encoded = tf.convert_to_tensor(y_encoded, dtype=tf.float32)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "setting an array element with a sequence.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;31mTypeError\u001b[0m: int() argument must be a string, a bytes-like object or a real number, not 'list'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[15], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m X_train \u001b[39m=\u001b[39m wed_X\u001b[39m.\u001b[39;49mastype(np\u001b[39m.\u001b[39;49muint8)\n", + "\u001b[1;31mValueError\u001b[0m: setting an array element with a sequence." + ] + } + ], + "source": [ + "X_train = wed_X.astype(np.uint8)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "ename": "MemoryError", + "evalue": "Unable to allocate 4.88 GiB for an array with shape (1059, 372, 1662) and data type float64", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mMemoryError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[12], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m x_train \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39;49marray([np\u001b[39m.\u001b[39;49marray(val) \u001b[39mfor\u001b[39;49;00m val \u001b[39min\u001b[39;49;00m wed_X])\n\u001b[0;32m 2\u001b[0m \u001b[39m# y_train = np.array([np.array(val) for val in y_train])\u001b[39;00m\n", + "\u001b[1;31mMemoryError\u001b[0m: Unable to allocate 4.88 GiB for an array with shape (1059, 372, 1662) and data type float64" + ] + } + ], + "source": [ + "x_train = np.array([np.array(val) for val in wed_X])\n", + "# y_train = np.array([np.array(val) for val in y_train])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "Failed to convert a NumPy array to a Tensor (Unsupported object type list).", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[13], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m x_train \u001b[39m=\u001b[39m tf\u001b[39m.\u001b[39;49mcast(wed_X , dtype\u001b[39m=\u001b[39;49mtf\u001b[39m.\u001b[39;49mfloat32)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\util\\traceback_utils.py:153\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 151\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[0;32m 152\u001b[0m filtered_tb \u001b[39m=\u001b[39m _process_traceback_frames(e\u001b[39m.\u001b[39m__traceback__)\n\u001b[1;32m--> 153\u001b[0m \u001b[39mraise\u001b[39;00m e\u001b[39m.\u001b[39mwith_traceback(filtered_tb) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 154\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 155\u001b[0m \u001b[39mdel\u001b[39;00m filtered_tb\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\framework\\constant_op.py:103\u001b[0m, in \u001b[0;36mconvert_to_eager_tensor\u001b[1;34m(value, ctx, dtype)\u001b[0m\n\u001b[0;32m 101\u001b[0m dtype \u001b[39m=\u001b[39m dtypes\u001b[39m.\u001b[39mas_dtype(dtype)\u001b[39m.\u001b[39mas_datatype_enum\n\u001b[0;32m 102\u001b[0m ctx\u001b[39m.\u001b[39mensure_initialized()\n\u001b[1;32m--> 103\u001b[0m \u001b[39mreturn\u001b[39;00m ops\u001b[39m.\u001b[39;49mEagerTensor(value, ctx\u001b[39m.\u001b[39;49mdevice_name, dtype)\n", + "\u001b[1;31mValueError\u001b[0m: Failed to convert a NumPy array to a Tensor (Unsupported object type list)." + ] + } + ], + "source": [ + "x_train = tf.cast(wed_X , dtype=tf.float32)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "Failed to convert a NumPy array to a Tensor (Unsupported object type list).", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[60], line 7\u001b[0m\n\u001b[0;32m 3\u001b[0m model\u001b[39m.\u001b[39mcompile(optimizer\u001b[39m=\u001b[39moptimizer,\n\u001b[0;32m 4\u001b[0m loss\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39msparse_categorical_crossentropy\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 5\u001b[0m metrics\u001b[39m=\u001b[39m[\u001b[39m\"\u001b[39m\u001b[39maccuracy\u001b[39m\u001b[39m\"\u001b[39m,\u001b[39m\"\u001b[39m\u001b[39msparse_top_k_categorical_accuracy\u001b[39m\u001b[39m\"\u001b[39m])\n\u001b[0;32m 6\u001b[0m \u001b[39m# fit the model with 100 epochs iteration\u001b[39;00m\n\u001b[1;32m----> 7\u001b[0m model\u001b[39m.\u001b[39;49mfit(wed_X,\n\u001b[0;32m 8\u001b[0m y_encoded,\n\u001b[0;32m 9\u001b[0m callbacks \u001b[39m=\u001b[39;49m get_callbacks(),\n\u001b[0;32m 10\u001b[0m epochs \u001b[39m=\u001b[39;49m \u001b[39m10\u001b[39;49m)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\utils\\traceback_utils.py:70\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 67\u001b[0m filtered_tb \u001b[39m=\u001b[39m _process_traceback_frames(e\u001b[39m.\u001b[39m__traceback__)\n\u001b[0;32m 68\u001b[0m \u001b[39m# To get the full stack trace, call:\u001b[39;00m\n\u001b[0;32m 69\u001b[0m \u001b[39m# `tf.debugging.disable_traceback_filtering()`\u001b[39;00m\n\u001b[1;32m---> 70\u001b[0m \u001b[39mraise\u001b[39;00m e\u001b[39m.\u001b[39mwith_traceback(filtered_tb) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 71\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 72\u001b[0m \u001b[39mdel\u001b[39;00m filtered_tb\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\framework\\constant_op.py:103\u001b[0m, in \u001b[0;36mconvert_to_eager_tensor\u001b[1;34m(value, ctx, dtype)\u001b[0m\n\u001b[0;32m 101\u001b[0m dtype \u001b[39m=\u001b[39m dtypes\u001b[39m.\u001b[39mas_dtype(dtype)\u001b[39m.\u001b[39mas_datatype_enum\n\u001b[0;32m 102\u001b[0m ctx\u001b[39m.\u001b[39mensure_initialized()\n\u001b[1;32m--> 103\u001b[0m \u001b[39mreturn\u001b[39;00m ops\u001b[39m.\u001b[39;49mEagerTensor(value, ctx\u001b[39m.\u001b[39;49mdevice_name, dtype)\n", + "\u001b[1;31mValueError\u001b[0m: Failed to convert a NumPy array to a Tensor (Unsupported object type list)." + ] + } + ], + "source": [ + "optimizer = optimizers.Adam()\n", + "\n", + "model.compile(optimizer=optimizer,\n", + " loss=\"sparse_categorical_crossentropy\",\n", + " metrics=[\"accuracy\",\"sparse_top_k_categorical_accuracy\"])\n", + "# fit the model with 100 epochs iteration\n", + "model.fit(wed_X,\n", + " y_encoded,\n", + " callbacks = get_callbacks(),\n", + " epochs = 10)" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [], + "source": [ + "from tensorflow.keras.models import Sequential\n", + "from tensorflow.keras.layers import LSTM, Dense\n", + "from tensorflow.keras.callbacks import TensorBoard" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [], + "source": [ + "log_dir = os.path.join('Logs')\n", + "tb_callback = TensorBoard(log_dir=log_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": {}, + "outputs": [], + "source": [ + "model = Sequential()\n", + "model.add(LSTM(64, return_sequences=True, activation='relu', input_shape=(1059, 372)))\n", + "model.add(LSTM(128, return_sequences=True, activation='relu'))\n", + "model.add(LSTM(64, return_sequences=False, activation='relu'))\n", + "model.add(Dense(64, activation='relu'))\n", + "model.add(Dense(32, activation='relu'))\n", + "model.add(Dense(870, activation='softmax'))" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": {}, + "outputs": [], + "source": [ + "model.compile(optimizer='Adam', loss='categorical_crossentropy', metrics=['categorical_accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Health': 0, 'Human': 1, 'Head': 639, 'Mind': 3, 'Brain': 4, 'Live': 5, 'Face': 640, 'Eye': 643, 'Ear': 8, 'Nose': 9, 'Mouth': 10, 'Teeth': 11, 'Beard': 12, 'Hand': 13, 'Feet': 14, 'Blood': 758, 'Breast': 726, 'Penis': 714, 'Anus': 711, 'Flatulence': 19, 'Spit': 20, 'Sweat': 21, 'Sleep': 22, 'Lie down': 790, 'Bath': 952, 'Smell': 25, 'Hear': 26, 'Blind': 27, 'Sick': 798, 'Infection': 664, 'Deaf': 661, 'Cut': 716, 'Sore': 32, 'Diarrhea': 723, 'Cold': 689, 'Convulsion': 36, 'Headache': 37, 'Chicken pox': 38, 'Malaria': 39, 'Tuberclosis': 40, 'Ebola': 41, 'Cancer': 42, 'HIV': 702, 'AIDS': 663, 'Transmit': 45, 'STI': 701, 'Mental': 47, 'Disabled': 48, 'Crippled': 49, 'Hospital': 803, 'Surgery ': 51, 'Sex': 667, 'gender': 53, 'Lesbian': 54, 'Semen': 56, 'Erection': 57, 'Condom': 669, 'Vaginal fluid': 59, 'Menstruation': 60, 'Pregnant': 717, 'Birth': 715, 'Breastfeed': 63, 'Female circumcision': 64, 'Female masturbation ': 65, 'Female masturbation': 66, 'Abortion': 67, 'Smoking': 68, 'Wee': 69, 'Medicine': 731, 'Danger': 72, 'Emergency': 73, 'Challenge Authority ': 74, 'Curious': 75, 'Being idle': 76, \"You're funny\": 79, 'Let down': 78, 'Low intelligence': 80, 'Drunk': 81, 'Difficult to change': 82, 'Heart beating fast': 83, 'Hearing is dead': 84, 'Toothless': 85, 'Shaved head': 86, 'Big butt': 87, 'Locality': 88, 'Face to face': 89, 'Flirting': 90, 'I love you': 91, 'Easy talk': 92, 'Relieved': 93, 'Smelling something good': 94, 'Variety of things': 95, 'Pick somebody': 96, 'force to join': 97, 'Spread information': 98, 'Thinking hard': 99, 'keep in mind': 100, 'evict': 101, 'Suspend': 102, 'Backbiting': 103, \"Don't bother me\": 104, 'Refusing': 105, 'Out of here': 106, 'Getting away': 107, 'Peeping': 108, 'Copying someone': 109, 'Not interested': 110, 'you are Interfering': 111, 'Not my problem': 112, \"Don't like you\": 113, 'Sick of you': 114, 'Hard stare': 115, 'Gazing': 116, 'Fed up': 117, 'I told you so': 118, 'What did I tell you': 119, 'Keep for revenge': 120, 'Fifty fifty': 121, 'Idea': 122, 'Experience ': 123, 'Like': 124, 'Favourite ': 125, 'Know': 671, 'Misunderstand': 127, 'Obey': 128, 'Before': 598, 'Forget': 130, 'Doubt': 131, 'Lie': 132, 'Confident': 133, 'Dream': 134, 'Wish': 135, 'Focus': 136, 'Consider': 137, 'Believe': 138, 'Agree': 139, 'Inform': 140, 'Want': 777, 'Reason': 142, 'Sure': 143, 'So': 144, 'Very': 145, 'Pressure': 146, 'Cause': 147, 'Happen': 788, 'Memory': 149, 'Remind': 150, 'Meaning': 151, 'Scream': 152, 'Emotion': 153, 'Sad': 154, 'Angry': 155, 'Fear': 156, 'Disappointed ': 157, 'Frustrate ': 158, 'Jealous': 159, 'Lonely': 161, 'Nervous': 749, 'Worry': 163, 'Hate': 164, 'Desire': 166, 'Hurt': 646, 'Character': 168, 'Best': 169, 'Important': 170, 'Boast': 171, 'Fair': 172, 'Funny': 174, 'Humble': 175, 'Kind': 176, 'Lucky': 177, 'Lazy': 178, 'Patient': 179, 'Proud': 180, 'Respect': 181, 'Selfish': 182, 'Stubborn': 183, 'Stupid': 184, 'Wicked': 185, 'Vain': 186, 'Wise': 187, 'Strict': 188, 'Embarrased': 189, 'Creative': 190, 'Apologize': 191, 'Why are you here': 193, 'Show me where the pain begins and where it ends': 195, 'How long have you had the pain': 197, 'Why do you think you have the pain': 199, 'I have a terrible pain right here': 201, 'I have had the pain for about fifteen minutes': 203, 'About three days': 205, 'It has been coming and going for five weeks': 207, 'I think it is an old injury coming back': 209, 'I bumped myself but not very hard': 210, 'You are the doctor you tell me': 212, 'What were you doing when the pain began': 214, 'Is the pain dull or sharp': 216, 'How long does your pain last': 218, 'Do you have cramping to abdominal pain': 220, 'I was bending over to pick up something': 222, 'I woke up and the pain was there': 224, 'I was standing when the pain came': 226, 'I was sitting down at work and the pain came': 228, 'I was walking and the pain began when I started running ': 230, 'No this is the first time': 232, 'Yes but it was different. It hurts more this time': 234, 'The pain is very sharp when I move my arm or breathe deeply': 236, 'The pain is throbbing, heavy and constant': 238, 'Several seconds': 240, 'Thirty minutes': 242, 'What relieves your pain': 244, 'Does bowel movement relieve your pain': 246, 'Do specific foods cause your pain': 248, 'Do acidic foods cause discomfort': 250, 'Standing is better': 252, 'No matter what position I am in it still hurts': 254, 'It is much worse': 256, 'If I don’t eat anything I feel better': 258, 'Yes orange juice causes me pain': 260, 'After I eat a meal it hurts': 262, 'The pain is much worse in the morning': 264, 'If I stand it hurts': 266, 'Yes my father and mother': 268, 'Yes both my brother and sister': 270, 'Yes my aunt and uncle': 272, 'I hurt my neck in a car accident last month': 274, 'I fell about two weeks ago': 276, 'How did your car accident happen': 278, 'What is the last thing you remember': 280, 'Where were you sitting in the car': 282, 'Did you strike your head': 284, 'I cannot remember': 286, 'I lost control of the car and hit an animal': 288, 'I fell asleep at the wheel': 290, 'Yes I was wearing a seatbelt': 292, 'I was sitting infront beside the driver': 294, 'Do you have a headache now': 296, 'Does it hurt when I touch you here': 298, 'Tell me if it hurts': 300, 'If I take a deep breath I feel a sudden pain': 302, 'Yes it hurts': 304, 'When did you fall': 306, 'Did you land on a soft or hard surface': 308, 'Which part of your body hit first': 310, 'Can you walk around': 312, 'Can you move your fingers and toes': 314, 'Hard concrete': 316, 'I landed on my elbow first': 318, 'Yes I can walk around but it hurts': 320, 'What caused your pain': 322, 'Since when': 324, 'Yes I have been coughing every morning': 326, 'Yes hay fever': 328, 'Are there any medcines you cannot take': 330, 'I get stomach cramps and vomit': 332, 'What is your name': 334, 'Can you call a doctor': 336, 'Can you call my family': 338, 'Can I have more pain medications': 340, 'When can I go home': 342, 'Can you tell me where it hurts': 344, 'How long have you been experiencing these symptoms': 346, 'The results of your tests are in. I need to discuss them with you': 348, 'We recommend you stay overnight for observation': 350, 'You need to take this medication in the morning afternoon and evening': 352, 'I am a professional doctor': 354, 'Please take a deep breath': 356, 'I have a change in the size of my breast ': 357, 'Fluids discharge from my nipples': 358, 'I have a rash on my skin': 359, 'I have a runny nose': 360, 'I cough a lot': 361, 'My head aches': 362, 'I feel pain when I pee': 363, 'There is unusual discharge from my private parts': 364, 'My eye itches': 365, 'My body itches': 366, 'I have been sneezing persistently ': 367, 'I feel very thirsty ': 368, 'I urinate frequently ': 369, 'I feel tired': 370, 'My wounds heal slowly': 371, 'I have blurred vision': 372, 'I feel nausea': 373, 'I experience lack of appetite': 374, 'I cough out blood': 375, 'I feel very hot': 376, 'I sweat profusely ': 377, 'I feel very cold': 378, 'I have pains in my muscle': 379, 'I have been vomitting ': 380, 'I keep forgetting things': 381, 'My heart beats rapidly': 382, 'Feeling of general uneasiness': 383, 'I have chest pain': 384, 'Patchy hair loss': 385, 'Weight loss': 386, 'I have pain in my joints': 387, 'I have a backache': 388, 'I have a stiff neck': 389, 'I have difficulty in breathing': 390, 'I have a sore in my throat': 391, 'I have a burning sensation': 392, 'Can you point to where it hurts': 393, 'I need to take your blood pressure': 394, 'Open your mouth and say ah': 395, 'Can you follow my finger with your eyes': 396, 'Please lie down on the examination table': 397, 'I need to check your pulse': 398, 'Can you show me where the pain is on this board': 399, 'Do you have any medical condition': 400, 'I need to examine your ears nose and throat': 401, 'Please remove your shirt for a chest examination': 402, 'Can you sign your name on this form': 403, 'Please drink this water before te test ': 404, 'I need to measure your temperature': 405, 'Can you show me how you take your medications': 406, 'Please put on this hospital gown': 407, 'I need to listen to your heart rate': 408, 'Can you show me how you move your injured limb': 409, 'Please read the letters on this eye chart': 410, 'I need to perform a physical examination': 411, 'Can you show me your previous medical records': 413, 'Please remove your shoes and socks for a foot examination': 414, 'Can you show me how you use this device': 415, 'Please tilt your head back for a throat examination': 416, 'I need to take a urine sample for testing': 417, 'Can you show mehow you do your breathing exercises': 418, 'Please close your eyes and tell me what you feel': 419, 'I need to perform a skin examination': 420, 'Can you show me your medication schedule': 421, 'Please stand up and walk towards me': 422, 'I need to measure your height and weight': 423, 'Please hold still while I examine your wound': 424, 'Do you have any questions or concerns': 425, 'Can you write that down please': 426, \"I am allergic to this medication don't give it to me\": 427, 'Can I have an interpreter during my appointment': 428, \"I don't understand can you explain it to me again\": 429, 'How long will it take for me to recover.': 430, 'Can you sign slowly': 431, 'Can you talk slowly': 432, 'Thank you for your help': 433, 'Okay I will try my best to follow your instructions ': 434, 'Sure I can show you where it hurts': 435, 'I have never had any allergiesto medications before': 436, 'I am a bit nervous about getting a shot but I understand it Is necessary ': 437, 'I do not feel comfortable taking off my clothes for an exam': 438, 'I am having trouble seeing your finger, can you please move it slower': 439, 'I am feeling a bit dizzy lying down is that normal': 440, 'I have a fast heart is that something to worry about': 441, 'The pain is around here': 442, 'I am scared of needles can you please be gentle': 443, 'Yes I have diabetes and high blood pressure': 444, 'I am having trouble hearing you can you please speak louder': 445, 'I am feeling cold can you put my shirt back on': 446, 'I am sorry I do not know how to sign my name': 447, 'Why do I need to drink waterbefore the test': 448, 'I usually take my medication after breakfast': 449, 'I do not remember all the details of my medical history can you help me': 450, 'Can I look away when you give me the shot': 451, 'How old are you': 452, 'What symptoms are you experiencing': 453, 'Have you had a fever recently': 454, 'Are you experiencing any pain': 455, 'Have you noticed any lumps or bumps': 456, 'Are you experiencing any difficulty breathing': 457, 'Are you experiencing any chest pain': 458, 'Are you experiencing any changes in your vision': 461, 'Have you noticed any changes in your skin': 460, 'Have you noticed any changes in your hearing': 462, 'Are you experiencing any dizziness or lightheadedness': 463, 'Are you experiencing any headaches': 464, 'Are you experiencing any digestive issues': 465, 'Have you noticed any changes in your appetite': 466, 'Are you experiencing any difficulty swallowing': 467, 'Have you noticed any changes in your urine or bowel movements': 468, 'Are you experiencing any difficulty with your balance or coordination': 469, 'Are you experiencing any numbness or tingling': 470, 'Have you noticed any changes in your menstrual cycle': 471, 'Are you experiencing any problems with your sexual function': 472, 'Are there any vaccines or preventative measures I should consider to avoid future illness': 473, 'What re the possible lon-term effects of my condition': 474, 'Are there any potential interactions with my current medications and other supplements': 475, 'How can I manage my symptoms while I wait for my appointment': 476, 'Are there any self-care techniques that can help me feel better during my recovery process': 477, 'I have a headache': 478, 'How long have you had the headache. Have you taken anything for it': 479, 'I have a sore throat.': 480, 'Do you have any other symptoms, such as a fever or cough': 481, 'How long have you had the cough? Is it productive or dry?': 482, 'I have a fever': 483, 'Have you taken your temperature. What other symptoms do you have': 484, 'I have a rash': 485, 'How long have you had diarrhea? Have you been eating or drinking anything unusual?': 486, 'I have constipation': 487, 'How long have you been constipated? Have you made any changes to your diet or routine?': 488, 'I have a stomachache': 520, 'Where is the pain located? Does it come and go, or is it constant': 490, 'I have a sprained ankle.': 491, 'How did you injure your ankle? Have you tried icing and elevating it?': 492, 'I have high blood pressure': 493, 'How long have you known about your high blood pressure? Are you taking any medication for it?': 494, 'I have diabetes': 495, 'Are you experiencing any symptoms related to your diabetes, such as increased thirst or frequent urination': 496, 'I have asthma': 497, 'How often do you experience asthma symptoms? Are you using an inhaler regularly': 498, 'What are you allergic to? Have you tried any over-the-counter allergy medication': 499, 'How long have you had the back pain? Is it a sharp or dull pain?': 502, 'I have back pain': 501, 'How long have you had the cold? Are you experiencing any other symptoms, such as a sore throat or fever': 504, 'Have you been experiencing symptoms such as pain or burning when you urinate, or an urgent need to urinate?': 505, 'Are you experiencing symptoms such as itching, burning, or discharge?': 506, 'I have a sore back': 507, 'Are you experiencing any pain or discomfort from the cold sore? Have you tried any over-the-counter treatments': 508, 'I have an ear infection': 509, 'Have you been experiencing symptoms such as ear pain or discharge': 510, 'I have an upset stomach': 511, 'I have a toothache': 512, 'Are you experiencing any swelling or sensitivity to hot or cold temperatures': 513, 'I have a migraine': 514, 'I have a sprained wrist.': 515, 'I have a cold and a cough.': 516, \"I've been having a headache for a few days now\": 517, 'I think I have a cold.': 518, 'What symptoms are you experiencing? Have you had a fever or cough?': 519, 'I think I have the flu': 521, 'What symptoms are you experiencing? Have you had a fever or body aches?': 522, 'I have a rash on my arm.': 523, 'When did the rash appear? Does it itch or hurt?': 524, 'I have been feeling tired all the time': 525, 'Have you been sleeping well? Have you made any recent changes to your diet or routine?': 526, 'I have a cough and a runny nose': 527, 'I have an earache.': 528, 'Is the pain in one or both ears? ': 530, 'Last night': 531, 'Yesterday': 532, 'Today': 793, 'Last week': 534, 'This week': 535, 'This morning': 536, 'This afternoon': 537, 'This evening': 538, 'Three days ago': 539, 'Six weeks ago': 540, 'A long time ago': 541, 'A while ago': 542, 'Monday': 543, 'Tuesday': 544, 'Wednesday': 545, 'Thursday': 546, 'Saturday ': 547, 'Sunday': 548, 'One': 549, 'Two': 550, 'Three': 551, 'Four': 552, 'Five': 553, 'Six ': 554, 'Seven': 555, 'Eight': 556, 'Nine': 557, 'Ten': 558, 'A': 559, 'B': 560, 'C': 561, 'D': 562, 'E ': 563, 'F': 564, 'G': 565, 'H': 566, 'I': 905, 'J': 568, 'K': 569, 'L': 570, 'M': 571, 'N': 572, 'O': 573, 'P': 574, 'Q': 575, 'R': 576, 'S': 577, 'T': 578, 'U': 579, 'V': 580, 'W': 581, 'X': 582, 'Y': 583, 'Z': 584, 'About': 585, 'Almost': 586, 'Years': 587, 'Months': 588, 'Weeks': 589, 'Days': 590, 'Hours': 591, 'Minutes': 592, 'Injury': 594, 'Doctor': 691, 'Every': 596, 'Do': 597, 'You': 910, 'Your': 911, 'Abdomen': 601, 'Sit': 602, 'Work': 603, 'Wake': 604, 'Bend': 605, 'Walk': 606, 'Run': 607, 'First': 608, 'Second': 609, 'Third': 610, 'Time': 611, 'No': 612, 'Yes': 613, 'Now': 792, 'But': 615, 'Different': 616, 'Breathe': 617, 'Move': 618, 'Sometimes': 628, 'Often': 620, 'Constant': 621, 'Several': 622, 'Around': 623, 'Appear': 624, 'Relieve': 625, 'Comfort': 626, 'Eat': 994, 'Feel': 649, 'Food': 993, 'Down': 631, 'Help': 633, 'Take': 634, 'Stand': 636, 'Better': 757, 'Little': 638, 'Body': 641, 'Skin': 642, 'Stomach': 644, 'Where': 780, 'Allergy': 648, 'Medical': 651, 'History': 652, 'Calm': 653, 'Ambulance': 654, 'Reception': 655, 'Medical history': 656, 'Hello': 657, 'Good-bye': 658, 'Welcome': 659, 'Hearing': 660, 'Hard of hearing': 662, 'Family planning': 666, 'Vagina': 668, 'Monthly bleeding': 670, 'Love': 672, 'Please': 796, 'Smart': 674, 'Sorry': 675, 'Thank you': 771, 'Think': 677, 'Understand': 774, 'Bathroom': 755, 'Call': 680, 'Drink': 995, 'Water': 1013, 'More': 684, 'When': 685, 'Bad': 686, 'Good': 787, 'Breathing': 733, 'Hot': 690, 'Nurse': 692, 'Family': 856, 'Husband': 878, 'Wife': 879, 'Hungry': 996, 'Nausea': 743, 'Pain': 699, 'Tired': 773, 'Chills': 703, 'Numb': 704, 'Urinate': 705, 'Abuse': 706, 'Clean': 707, 'Wash': 951, 'Fever': 709, 'Pelvis': 710, 'Cramps': 712, 'Growth': 713, 'Depression': 719, 'Itchy': 720, 'Rape': 721, 'Blurred vision': 722, 'Labor': 724, 'Sleeping problems': 725, 'Discharge': 727, 'Sweating': 728, 'Breastfeeding': 729, 'Dizzy': 730, 'Swollen': 732, 'Drugs': 734, 'Miscarriage': 735, 'Tenderness': 736, 'Problems': 737, 'Dry': 738, 'Vomit': 775, 'Burn': 741, 'Medical examination': 742, 'Weak': 744, 'Changes in color': 745, 'Womb': 746, 'Contractions': 747, 'Exercise': 748, 'Cough': 768, 'Faint': 751, 'Pass by': 752, 'Stool': 753, 'Back': 754, 'Bed': 944, 'Breath': 759, 'Calm down': 760, 'Can': 761, 'Cannot': 762, 'Change': 763, 'Chest': 764, 'Ear infection': 765, \"Don't know\": 766, 'Write': 767, 'Dizziness': 769, 'Stay': 770, 'Thirst': 772, 'Wait': 776, 'Well': 779, 'Who': 781, 'Feeling': 783, 'Fine': 784, 'Friend': 897, 'Get up': 786, 'Hard': 789, 'Need': 791, 'Phone': 794, 'Pills': 795, 'Put on': 797, 'Sleepy': 799, 'Injection': 800, 'Interpret': 801, 'Improve': 802, 'Home': 930, 'Have': 805, 'Eleven': 806, 'Twelve': 807, 'Thirteen': 808, 'Fourteen': 809, 'Fifteen': 810, 'Sixteen': 811, 'Seventeen': 812, 'Eighteen': 813, 'Nineteen': 814, 'Twenty': 815, 'Twenty one': 816, 'Twenty two': 817, 'Twenty three': 818, 'Twenty four': 819, 'Twenty five': 820, 'Twenty six': 821, 'Twenty eight': 822, 'Twenty nine': 823, 'Thirty': 824, 'Thirty one': 825, 'Thirty two': 826, 'Thirty three': 827, 'Thirty four': 828, 'Thirty five': 829, 'Thirty six': 830, 'Thirty seven': 831, 'Thirty eight': 832, 'Thirty nine': 833, 'Forty': 834, 'Fifty': 835, 'Sixty': 836, 'Seventy': 837, 'Eighty': 838, 'Ninety': 839, 'Hundred': 840, 'Thousand': 841, 'One Million': 842, 'One Billion': 843, 'Colour': 844, 'Red': 845, 'Blue': 846, 'Yellow': 847, 'Green': 848, 'Orange': 849, 'Purple': 850, 'Violet': 851, 'Pink': 852, 'Brown': 853, 'Black': 854, 'White': 855, 'Father': 857, 'Mother': 858, 'Grandfather': 859, 'Grandmother': 860, 'Boy': 861, 'Girl': 862, 'Daughter': 863, 'Son': 864, 'Sister': 865, 'Brother': 866, 'Aunt': 869, 'Uncle': 868, 'Nephew': 870, 'Niece': 871, 'Cousin': 872, 'Relationship': 873, 'Sweatheart': 874, 'Engaged': 875, 'Marriage': 876, 'Wedding': 877, 'Baby': 880, 'Child': 881, 'Children': 882, 'Young': 883, 'Kid': 884, 'Twins': 885, 'In-law': 886, 'Divorced': 887, 'Adult': 888, 'Man': 889, 'Woman': 890, 'Gentleman': 891, 'Lady': 892, 'Person': 893, 'People': 894, 'Individual': 895, 'Name': 896, 'Enemy': 898, 'Group': 899, 'Neighbor': 900, 'Gang': 901, 'Robber': 902, 'Rasta': 903, 'White man': 904, 'My': 906, 'Mine': 907, 'Myself': 909, 'Yourself': 912, 'We': 913, 'Our': 915, 'He': 916, 'His': 917, 'Her': 918, 'Hers': 919, 'Someone': 920, 'Everyone': 921, 'Other': 922, 'This': 923, 'That': 924, 'There': 925, 'They': 926, 'Those': 927, 'Them': 928, 'These': 929, 'House': 931, 'Dormitory': 932, 'Roof': 933, 'Floor': 934, 'Wall': 935, 'Gate': 936, 'Room': 937, 'Door': 938, 'Window': 939, 'Glass': 940, 'Fan': 941, 'Table': 942, 'Chair': 943, 'Mat': 945, 'Mirror': 946, 'Refrigerator': 947, 'Basket': 948, 'Bucket': 949, 'Borehole': 950, 'Sponge': 953, 'Toilet': 954, 'Haircut': 955, 'Shave': 956, 'Iron': 957, 'Sewing': 958, 'Needle': 959, 'Tie knot': 960, 'Zip': 961, 'Soap': 962, 'Candle': 963, 'Thread': 964, 'Chain': 965, 'Blade': 966, 'Scissors': 967, 'Telephone': 968, 'Key': 969, 'Umbrella': 970, 'Wear': 971, 'Clothes': 972, 'Shirt': 973, 'Trousers': 974, 'Dress': 975, 'Skirt': 976, 'Coat': 977, 'Hat': 978, 'Gloves': 979, 'Necktie': 980, 'Socks': 981, 'Shoes': 982, 'Sandals': 983, 'Purse': 984, 'Bag': 985, 'Jewelry': 986, 'Cap': 987, 'Things': 988, 'Materials': 989, 'Breakfast': 990, 'Lunch': 991, 'Supper': 992, 'Starving': 997, 'Satisfied': 998, 'Bitter': 999, 'Sweet': 1000, 'Restaurant': 1001, 'Bowl': 1002, 'Plate': 1003, 'Cup': 1004, 'Spoon': 1005, 'Fork': 1006, 'Knife': 1007, 'Cook': 1008, 'Kitchen': 1009, 'Market': 1010, 'Coal pot': 1011, 'Grind': 1012, \"Hi, Doctor. I've been having some chest pains lately.\": 1014, \"Hello there. I'm sorry to hear that. \": 1015, 'Can you tell me more about your symptoms?': 1016, 'The pain is usually in the center of my chest. ': 1018, \"Okay, that's good information. \": 1019, 'Have you noticed any other symptoms.': 1020, \"Yes. I've been feeling a lightheaded and short of breath.\": 1021, 'I see. It sounds like we should do some tests.': 1022, 'That sounds a bit scary. Is it serious? ': 1024, \"It's too early to say.\": 1026, 'I understand. What else can I do to?': 1028, 'If you smoke or drink, now is a good time to quit. ': 1030, 'Try to eat a healthy diet and get some exercise if you can': 1031, \"If your symptoms worsen, don't hesitate to contact me.\": 1033, 'Thank you, Doctor. I appreciate your help.': 1034, \"Take care and I'll be in touch as soon as we have the results.\": 1036, \"Good morning, doctor. I've been feeling really tired lately \": 1038, \"Good morning. Let's start by getting some more information\": 1039, 'When did you first start feeling tired?': 1040, \"I've been sleeping more than usual\": 1042, 'I still feel exhausted.': 1044, 'Have you been experiencing any other symptoms?': 1046, 'No, just some headaches.': 1048, \"Okay, I'd like to do some tests \": 1050, 'Okay. Is there anything I should be doing in the meantime': 1052, \"Yes, make sure you're getting plenty of rest and staying hydrated. \": 1054, 'Try to eat a balanced diet and get some light exercise as well.': 1056, \"Okay, I'll do my best. Thanks, doctor.\": 1058}\n" + ] + } + ], + "source": [ + "label_map = {label:num for num, label in enumerate(y)}\n", + "print(label_map)" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1059,)" + ] + }, + "execution_count": 129, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array(y).shape" + ] + }, + { + "cell_type": "code", + "execution_count": 130, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Sam\\AppData\\Local\\Temp\\ipykernel_508\\2745492590.py:1: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", + " X_train = np.array(padded_arr)\n" + ] + } + ], + "source": [ + "X_train = np.array(padded_arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1059, 372)" + ] + }, + "execution_count": 131, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 196, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1662" + ] + }, + "execution_count": 196, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(X[6][1])" + ] + }, + { + "cell_type": "code", + "execution_count": 198, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "operands could not be broadcast together with remapped shapes [original->remapped]: (2,2) and requested shape (1,2)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[198], line 16\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[39mreturn\u001b[39;00m padded_arrays\n\u001b[0;32m 14\u001b[0m \u001b[39m# Example usage\u001b[39;00m\n\u001b[0;32m 15\u001b[0m \u001b[39m# Assuming array_list is your list containing the 2D arrays\u001b[39;00m\n\u001b[1;32m---> 16\u001b[0m padded_list \u001b[39m=\u001b[39m pad_2d_arrays(X)\n", + "Cell \u001b[1;32mIn[198], line 9\u001b[0m, in \u001b[0;36mpad_2d_arrays\u001b[1;34m(array_list)\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[39mfor\u001b[39;00m arr \u001b[39min\u001b[39;00m array_list:\n\u001b[0;32m 8\u001b[0m pad_width \u001b[39m=\u001b[39m ((\u001b[39m0\u001b[39m, max_length \u001b[39m-\u001b[39m \u001b[39mlen\u001b[39m(arr)), (\u001b[39m0\u001b[39m, \u001b[39m1662\u001b[39m)) \u001b[39m# Calculate the padding width\u001b[39;00m\n\u001b[1;32m----> 9\u001b[0m padded_arr \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39;49mpad(arr, pad_width, mode\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39mconstant\u001b[39;49m\u001b[39m'\u001b[39;49m) \u001b[39m# Pad the array\u001b[39;00m\n\u001b[0;32m 10\u001b[0m padded_arrays\u001b[39m.\u001b[39mappend(padded_arr)\n\u001b[0;32m 12\u001b[0m \u001b[39mreturn\u001b[39;00m padded_arrays\n", + "File \u001b[1;32m<__array_function__ internals>:180\u001b[0m, in \u001b[0;36mpad\u001b[1;34m(*args, **kwargs)\u001b[0m\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\numpy\\lib\\arraypad.py:743\u001b[0m, in \u001b[0;36mpad\u001b[1;34m(array, pad_width, mode, **kwargs)\u001b[0m\n\u001b[0;32m 740\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mTypeError\u001b[39;00m(\u001b[39m'\u001b[39m\u001b[39m`pad_width` must be of integral type.\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 742\u001b[0m \u001b[39m# Broadcast to shape (array.ndim, 2)\u001b[39;00m\n\u001b[1;32m--> 743\u001b[0m pad_width \u001b[39m=\u001b[39m _as_pairs(pad_width, array\u001b[39m.\u001b[39;49mndim, as_index\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m)\n\u001b[0;32m 745\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mcallable\u001b[39m(mode):\n\u001b[0;32m 746\u001b[0m \u001b[39m# Old behavior: Use user-supplied function with np.apply_along_axis\u001b[39;00m\n\u001b[0;32m 747\u001b[0m function \u001b[39m=\u001b[39m mode\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\numpy\\lib\\arraypad.py:518\u001b[0m, in \u001b[0;36m_as_pairs\u001b[1;34m(x, ndim, as_index)\u001b[0m\n\u001b[0;32m 514\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\u001b[39m\"\u001b[39m\u001b[39mindex can\u001b[39m\u001b[39m'\u001b[39m\u001b[39mt contain negative values\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m 516\u001b[0m \u001b[39m# Converting the array with `tolist` seems to improve performance\u001b[39;00m\n\u001b[0;32m 517\u001b[0m \u001b[39m# when iterating and indexing the result (see usage in `pad`)\u001b[39;00m\n\u001b[1;32m--> 518\u001b[0m \u001b[39mreturn\u001b[39;00m np\u001b[39m.\u001b[39;49mbroadcast_to(x, (ndim, \u001b[39m2\u001b[39;49m))\u001b[39m.\u001b[39mtolist()\n", + "File \u001b[1;32m<__array_function__ internals>:180\u001b[0m, in \u001b[0;36mbroadcast_to\u001b[1;34m(*args, **kwargs)\u001b[0m\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\numpy\\lib\\stride_tricks.py:413\u001b[0m, in \u001b[0;36mbroadcast_to\u001b[1;34m(array, shape, subok)\u001b[0m\n\u001b[0;32m 367\u001b[0m \u001b[39m@array_function_dispatch\u001b[39m(_broadcast_to_dispatcher, module\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mnumpy\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 368\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mbroadcast_to\u001b[39m(array, shape, subok\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m):\n\u001b[0;32m 369\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"Broadcast an array to a new shape.\u001b[39;00m\n\u001b[0;32m 370\u001b[0m \n\u001b[0;32m 371\u001b[0m \u001b[39m Parameters\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 411\u001b[0m \u001b[39m [1, 2, 3]])\u001b[39;00m\n\u001b[0;32m 412\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 413\u001b[0m \u001b[39mreturn\u001b[39;00m _broadcast_to(array, shape, subok\u001b[39m=\u001b[39;49msubok, readonly\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\numpy\\lib\\stride_tricks.py:349\u001b[0m, in \u001b[0;36m_broadcast_to\u001b[1;34m(array, shape, subok, readonly)\u001b[0m\n\u001b[0;32m 346\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\u001b[39m'\u001b[39m\u001b[39mall elements of broadcast shape must be non-\u001b[39m\u001b[39m'\u001b[39m\n\u001b[0;32m 347\u001b[0m \u001b[39m'\u001b[39m\u001b[39mnegative\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 348\u001b[0m extras \u001b[39m=\u001b[39m []\n\u001b[1;32m--> 349\u001b[0m it \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39;49mnditer(\n\u001b[0;32m 350\u001b[0m (array,), flags\u001b[39m=\u001b[39;49m[\u001b[39m'\u001b[39;49m\u001b[39mmulti_index\u001b[39;49m\u001b[39m'\u001b[39;49m, \u001b[39m'\u001b[39;49m\u001b[39mrefs_ok\u001b[39;49m\u001b[39m'\u001b[39;49m, \u001b[39m'\u001b[39;49m\u001b[39mzerosize_ok\u001b[39;49m\u001b[39m'\u001b[39;49m] \u001b[39m+\u001b[39;49m extras,\n\u001b[0;32m 351\u001b[0m op_flags\u001b[39m=\u001b[39;49m[\u001b[39m'\u001b[39;49m\u001b[39mreadonly\u001b[39;49m\u001b[39m'\u001b[39;49m], itershape\u001b[39m=\u001b[39;49mshape, order\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39mC\u001b[39;49m\u001b[39m'\u001b[39;49m)\n\u001b[0;32m 352\u001b[0m \u001b[39mwith\u001b[39;00m it:\n\u001b[0;32m 353\u001b[0m \u001b[39m# never really has writebackifcopy semantics\u001b[39;00m\n\u001b[0;32m 354\u001b[0m broadcast \u001b[39m=\u001b[39m it\u001b[39m.\u001b[39mitviews[\u001b[39m0\u001b[39m]\n", + "\u001b[1;31mValueError\u001b[0m: operands could not be broadcast together with remapped shapes [original->remapped]: (2,2) and requested shape (1,2)" + ] + } + ], + "source": [ + "import numpy as np\n", + "padded_arrays = []\n", + "def pad_2d_arrays(array_list):\n", + " max_length = max(len(arr) for arr in array_list) # Find the maximum length of 2D arrays\n", + "\n", + " \n", + " for arr in array_list:\n", + " pad_width = ((0, max_length - len(arr)), (0, 1662)) # Calculate the padding width\n", + " padded_arr = np.pad(arr, pad_width, mode='constant') # Pad the array\n", + " padded_arrays.append(padded_arr)\n", + "\n", + " return padded_arrays\n", + "\n", + "# Example usage\n", + "# Assuming array_list is your list containing the 2D arrays\n", + "padded_list = pad_2d_arrays(X)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 134, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:868: FutureWarning: `sparse` was renamed to `sparse_output` in version 1.2 and will be removed in 1.4. `sparse_output` is ignored unless you leave `sparse` to its default value.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import OneHotEncoder\n", + "\n", + "# Create an instance of the OneHotEncoder\n", + "encoder = OneHotEncoder(sparse=False)\n", + "\n", + "# Reshape the word list to a 2D array (n_samples, 1)\n", + "word_list_2d = [[word] for word in y]\n", + "\n", + "# Perform one-hot encoding\n", + "one_hot_encoded = encoder.fit_transform(word_list_2d)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Sam\\AppData\\Local\\Temp\\ipykernel_508\\1045748640.py:1: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", + " model.fit(np.array(X), y, epochs=2000, callbacks=[tb_callback])\n" + ] + }, + { + "ename": "ValueError", + "evalue": "Failed to find data adapter that can handle input: , ( containing values of types {\"\"})", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[181], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m model\u001b[39m.\u001b[39;49mfit(np\u001b[39m.\u001b[39;49marray(X), y, epochs\u001b[39m=\u001b[39;49m\u001b[39m2000\u001b[39;49m, callbacks\u001b[39m=\u001b[39;49m[tb_callback])\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\utils\\traceback_utils.py:70\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 67\u001b[0m filtered_tb \u001b[39m=\u001b[39m _process_traceback_frames(e\u001b[39m.\u001b[39m__traceback__)\n\u001b[0;32m 68\u001b[0m \u001b[39m# To get the full stack trace, call:\u001b[39;00m\n\u001b[0;32m 69\u001b[0m \u001b[39m# `tf.debugging.disable_traceback_filtering()`\u001b[39;00m\n\u001b[1;32m---> 70\u001b[0m \u001b[39mraise\u001b[39;00m e\u001b[39m.\u001b[39mwith_traceback(filtered_tb) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 71\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 72\u001b[0m \u001b[39mdel\u001b[39;00m filtered_tb\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\engine\\data_adapter.py:1082\u001b[0m, in \u001b[0;36mselect_data_adapter\u001b[1;34m(x, y)\u001b[0m\n\u001b[0;32m 1079\u001b[0m adapter_cls \u001b[39m=\u001b[39m [\u001b[39mcls\u001b[39m \u001b[39mfor\u001b[39;00m \u001b[39mcls\u001b[39m \u001b[39min\u001b[39;00m ALL_ADAPTER_CLS \u001b[39mif\u001b[39;00m \u001b[39mcls\u001b[39m\u001b[39m.\u001b[39mcan_handle(x, y)]\n\u001b[0;32m 1080\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m adapter_cls:\n\u001b[0;32m 1081\u001b[0m \u001b[39m# TODO(scottzhu): This should be a less implementation-specific error.\u001b[39;00m\n\u001b[1;32m-> 1082\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\n\u001b[0;32m 1083\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mFailed to find data adapter that can handle input: \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m, \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m\"\u001b[39m\u001b[39m.\u001b[39mformat(\n\u001b[0;32m 1084\u001b[0m _type_name(x), _type_name(y)\n\u001b[0;32m 1085\u001b[0m )\n\u001b[0;32m 1086\u001b[0m )\n\u001b[0;32m 1087\u001b[0m \u001b[39melif\u001b[39;00m \u001b[39mlen\u001b[39m(adapter_cls) \u001b[39m>\u001b[39m \u001b[39m1\u001b[39m:\n\u001b[0;32m 1088\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m(\n\u001b[0;32m 1089\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mData adapters should be mutually exclusive for \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 1090\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mhandling inputs. Found multiple adapters \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m to handle \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 1091\u001b[0m \u001b[39m\"\u001b[39m\u001b[39minput: \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m, \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m\"\u001b[39m\u001b[39m.\u001b[39mformat(adapter_cls, _type_name(x), _type_name(y))\n\u001b[0;32m 1092\u001b[0m )\n", + "\u001b[1;31mValueError\u001b[0m: Failed to find data adapter that can handle input: , ( containing values of types {\"\"})" + ] + } + ], + "source": [ + "model.fit(np.array(X), y, epochs=2000, callbacks=[tb_callback])" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "object\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Sam\\AppData\\Local\\Temp\\ipykernel_508\\2318462743.py:1: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", + " print(np.array(X).dtype)\n" + ] + } + ], + "source": [ + "print(np.array(X).dtype)" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "False\n" + ] + } + ], + "source": [ + "def check_nested_array(nested_array):\n", + " # Check the structure of the nested array\n", + " nested_array_length = len(nested_array[0]) # Assuming all nested arrays have the same length\n", + " for nested in nested_array:\n", + " if len(nested) != nested_array_length:\n", + " print(len(nested))\n", + " return False\n", + " \n", + " # Check the data types within the nested array\n", + " expected_type = type(nested_array[0][0]) # Assuming all elements have the same type\n", + " for nested in nested_array:\n", + " for element in nested:\n", + " print(type(element))\n", + " if type(element) != expected_type:\n", + " print(type(element))\n", + " return False\n", + " \n", + " return True\n", + "\n", + "# Example usage\n", + "is_valid = check_nested_array(padded_arr)\n", + "print(is_valid) # Output: True\n" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[array([ 0.50286561, 0.24282664, -0.52643996, ..., 0.52174175,\n", + " 0.91284168, -0.04412461]),\n", + " array([ 0.49220952, 0.26368633, -0.52138311, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48695838, 0.26897791, -0.50165528, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48648584, 0.26829833, -0.46982089, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.48951045, 0.26551896, -0.46566802, ..., 0.51998889,\n", + " 0.75455689, -0.0337056 ]),\n", + " array([ 0.49124673, 0.26485133, -0.45838943, ..., 0.52111924,\n", + " 0.72124308, -0.03975023]),\n", + " array([ 0.49239612, 0.26692066, -0.42371807, ..., 0.52017283,\n", + " 0.69272232, -0.03785754]),\n", + " array([ 0.49176252, 0.2659457 , -0.40783477, ..., 0.51705527,\n", + " 0.66946453, -0.03609408]),\n", + " array([ 0.49232879, 0.26530331, -0.41583815, ..., 0.51378584,\n", + " 0.65177101, -0.03582725]),\n", + " array([ 0.48999047, 0.26471007, -0.41455132, ..., 0.51432335,\n", + " 0.6380294 , -0.03463049]),\n", + " array([ 0.48994496, 0.2642093 , -0.40592614, ..., 0.51457918,\n", + " 0.62381035, -0.03644062]),\n", + " array([ 0.48852977, 0.26479253, -0.43017522, ..., 0.51668316,\n", + " 0.61259669, -0.03939164]),\n", + " array([ 0.48844093, 0.26449344, -0.44166479, ..., 0.51814711,\n", + " 0.60111845, -0.04095148]),\n", + " array([ 0.48822004, 0.26357958, -0.42260551, ..., 0.52030909,\n", + " 0.5949465 , -0.03961254]),\n", + " array([ 0.48715633, 0.26088372, -0.40024194, ..., 0.52155316,\n", + " 0.58985734, -0.04441011]),\n", + " array([ 0.48730373, 0.26143742, -0.36018649, ..., 0.52265835,\n", + " 0.58591789, -0.03916302]),\n", + " array([ 0.48734969, 0.26197001, -0.35248756, ..., 0.521357 ,\n", + " 0.58555073, -0.04147872]),\n", + " array([ 0.48742759, 0.26516569, -0.35527024, ..., 0.52183658,\n", + " 0.58660173, -0.04468952]),\n", + " array([ 0.48794138, 0.2662141 , -0.36724517, ..., 0.52061439,\n", + " 0.58782125, -0.04451484]),\n", + " array([ 0.4881067 , 0.26763907, -0.37712196, ..., 0.52291751,\n", + " 0.59346139, -0.04036581]),\n", + " array([ 0.48836818, 0.26774472, -0.38086951, ..., 0.52593488,\n", + " 0.59611285, -0.03959511]),\n", + " array([ 0.48884156, 0.26758602, -0.3848595 , ..., 0.52477324,\n", + " 0.60037702, -0.04092208]),\n", + " array([ 0.48889908, 0.26702544, -0.49950421, ..., 0.52784204,\n", + " 0.60344368, -0.03743892]),\n", + " array([ 0.48891807, 0.26768085, -0.48729447, ..., 0.52805591,\n", + " 0.60762423, -0.03460733]),\n", + " array([ 0.48886716, 0.26764914, -0.47029796, ..., 0.52864873,\n", + " 0.61345923, -0.03368434]),\n", + " array([ 0.48891747, 0.26815897, -0.48279446, ..., 0.5262723 ,\n", + " 0.61974895, -0.03467602]),\n", + " array([ 0.48891708, 0.26845089, -0.4804799 , ..., 0.52728051,\n", + " 0.62914586, -0.03306761]),\n", + " array([ 0.48919851, 0.26834947, -0.47184947, ..., 0.52566075,\n", + " 0.63377392, -0.03343812]),\n", + " array([ 0.48949748, 0.26830995, -0.4670707 , ..., 0.52502549,\n", + " 0.64144087, -0.03051178]),\n", + " array([ 0.48941717, 0.26829064, -0.47784632, ..., 0.51883292,\n", + " 0.65119767, -0.02928502]),\n", + " array([ 0.48976594, 0.26718965, -0.47609696, ..., 0.51856112,\n", + " 0.65954721, -0.02945811]),\n", + " array([ 0.48983902, 0.26730284, -0.47330582, ..., 0.51817811,\n", + " 0.66799432, -0.02564378]),\n", + " array([ 0.4902823 , 0.26735827, -0.52154493, ..., 0.51669288,\n", + " 0.67648929, -0.02774048]),\n", + " array([ 0.49029636, 0.2677016 , -0.52661711, ..., 0.51441044,\n", + " 0.67941737, -0.03132696]),\n", + " array([ 0.49029389, 0.26712057, -0.51776171, ..., 0.51132399,\n", + " 0.68081868, -0.03225373]),\n", + " array([ 0.49032918, 0.26445773, -0.54681039, ..., 0.51230568,\n", + " 0.67936867, -0.03596767]),\n", + " array([ 0.49057105, 0.26414746, -0.55459726, ..., 0.51204044,\n", + " 0.67609859, -0.04006481]),\n", + " array([ 0.4906325 , 0.26138303, -0.54286367, ..., 0.51110679,\n", + " 0.67482573, -0.03772407]),\n", + " array([ 0.49088043, 0.25782302, -0.53765213, ..., 0.51021862,\n", + " 0.67285955, -0.04197389]),\n", + " array([ 0.49077234, 0.25539434, -0.53360903, ..., 0.50874007,\n", + " 0.67051667, -0.03880079]),\n", + " array([ 0.49069178, 0.25396183, -0.54354489, ..., 0.50977904,\n", + " 0.67095315, -0.03715565]),\n", + " array([ 0.49069428, 0.25368953, -0.55027366, ..., 0.51178318,\n", + " 0.67210221, -0.03878614]),\n", + " array([ 0.49068782, 0.2521548 , -0.56562638, ..., 0.51086289,\n", + " 0.67406404, -0.03593095]),\n", + " array([ 0.49167034, 0.25147107, -0.57384717, ..., 0.51153934,\n", + " 0.67794681, -0.03627169]),\n", + " array([ 0.49177161, 0.24816196, -0.56666213, ..., 0.51129532,\n", + " 0.6782099 , -0.03817024]),\n", + " array([ 0.49182016, 0.24810806, -0.57058656, ..., 0.51215732,\n", + " 0.6778211 , -0.04051951]),\n", + " array([ 0.49258393, 0.24821329, -0.56786019, ..., 0.51297027,\n", + " 0.68213743, -0.03965223]),\n", + " array([ 0.4926241 , 0.24828219, -0.55166852, ..., 0.51971871,\n", + " 0.68899769, -0.04046725]),\n", + " array([ 0.49284047, 0.24834663, -0.55140519, ..., 0.52578044,\n", + " 0.70688093, -0.02798592]),\n", + " array([ 0.49267715, 0.24721992, -0.52080923, ..., 0.53470546,\n", + " 0.72755075, -0.0308293 ]),\n", + " array([ 0.49331763, 0.24923824, -0.46283558, ..., 0.53700584,\n", + " 0.74137217, -0.03909526]),\n", + " array([ 0.49370012, 0.24970947, -0.45397162, ..., 0.53902882,\n", + " 0.75568789, -0.04722588]),\n", + " array([ 0.49385107, 0.25054967, -0.4542402 , ..., 0.54071367,\n", + " 0.7590518 , -0.05706033]),\n", + " array([ 0.49430659, 0.25160947, -0.4530836 , ..., 0.54347384,\n", + " 0.7654233 , -0.06049604]),\n", + " array([ 0.49426475, 0.25281969, -0.45746964, ..., 0.54398102,\n", + " 0.76528931, -0.0627111 ]),\n", + " array([ 0.49426681, 0.25363964, -0.47148842, ..., 0.54809493,\n", + " 0.76250482, -0.0614121 ]),\n", + " array([ 0.49358904, 0.25232387, -0.4760991 , ..., 0.55095696,\n", + " 0.75006056, -0.06282569]),\n", + " array([ 0.49381596, 0.25240594, -0.51594073, ..., 0.55444121,\n", + " 0.74232686, -0.06240462]),\n", + " array([ 0.49396256, 0.25248739, -0.50752062, ..., 0.56078708,\n", + " 0.74285978, -0.06676839]),\n", + " array([ 0.49377826, 0.2524952 , -0.48860756, ..., 0.56107068,\n", + " 0.74015427, -0.064096 ]),\n", + " array([ 0.49380878, 0.2529375 , -0.4923293 , ..., 0.56435138,\n", + " 0.73736787, -0.06536952]),\n", + " array([ 0.49526268, 0.25273052, -0.55155307, ..., 0.57059026,\n", + " 0.74801433, -0.0604864 ]),\n", + " array([ 0.4960207 , 0.25270206, -0.54816133, ..., 0.56921709,\n", + " 0.7545439 , -0.06552035]),\n", + " array([ 0.49639893, 0.25286013, -0.50025773, ..., 0.57048595,\n", + " 0.75078017, -0.06347004]),\n", + " array([ 0.49731049, 0.25288779, -0.53049421, ..., 0.5702883 ,\n", + " 0.74614227, -0.06393344]),\n", + " array([ 0.49752015, 0.25305802, -0.57290608, ..., 0.57179993,\n", + " 0.7403273 , -0.06763154]),\n", + " array([ 0.49751899, 0.253672 , -0.56932467, ..., 0.57149529,\n", + " 0.74600714, -0.05962027]),\n", + " array([ 0.49756381, 0.25481528, -0.56003106, ..., 0.57174754,\n", + " 0.73977351, -0.0558197 ]),\n", + " array([ 0.4978978 , 0.25546974, -0.55425477, ..., 0.56989098,\n", + " 0.71830761, -0.05120908]),\n", + " array([ 0.49785084, 0.25624612, -0.53311193, ..., 0.56067115,\n", + " 0.69691044, -0.04323442]),\n", + " array([ 0.49785846, 0.25693816, -0.53405714, ..., 0.5225929 ,\n", + " 0.64597124, -0.03169343]),\n", + " array([ 0.49789357, 0.25958347, -0.49361503, ..., 0.46583444,\n", + " 0.6352793 , -0.03239816]),\n", + " array([ 0.49842462, 0.26287681, -0.45201543, ..., 0.43640494,\n", + " 0.62264109, -0.03319005]),\n", + " array([ 0.49843007, 0.26368442, -0.4647429 , ..., 0.41749844,\n", + " 0.61898506, -0.03798899]),\n", + " array([ 0.49785352, 0.26365143, -0.46272182, ..., 0.407803 ,\n", + " 0.61788923, -0.03939207]),\n", + " array([ 0.49781191, 0.26460713, -0.45015562, ..., 0.41377437,\n", + " 0.61364108, -0.03861213]),\n", + " array([ 0.49860653, 0.26548642, -0.45388016, ..., 0.42866081,\n", + " 0.61194932, -0.03949456]),\n", + " array([ 0.50046378, 0.26705143, -0.45614338, ..., 0.45150003,\n", + " 0.61416763, -0.03578043]),\n", + " array([ 0.50119257, 0.26756573, -0.47339439, ..., 0.47239617,\n", + " 0.62186885, -0.03700746]),\n", + " array([ 0.50160056, 0.26777908, -0.47515923, ..., 0.47669038,\n", + " 0.6212433 , -0.03131057]),\n", + " array([ 0.50186884, 0.26886261, -0.50637782, ..., 0.46679226,\n", + " 0.61157537, -0.03061223]),\n", + " array([ 0.50300986, 0.27059865, -0.49752429, ..., 0.45049727,\n", + " 0.61168504, -0.03545896]),\n", + " array([ 0.5030058 , 0.27379254, -0.47978932, ..., 0.44020146,\n", + " 0.61848062, -0.03989222]),\n", + " array([ 0.50291365, 0.27486843, -0.47988072, ..., 0.44121566,\n", + " 0.62495452, -0.03882124]),\n", + " array([ 0.50309336, 0.27482751, -0.50518703, ..., 0.45184737,\n", + " 0.63158727, -0.03590808]),\n", + " array([ 0.5036431 , 0.27527004, -0.50317013, ..., 0.4558531 ,\n", + " 0.63431025, -0.03540577]),\n", + " array([ 0.50382173, 0.27532762, -0.4981426 , ..., 0.45756841,\n", + " 0.63400602, -0.03057628]),\n", + " array([ 0.50434911, 0.27534455, -0.48110947, ..., 0.49066103,\n", + " 0.63768482, -0.03912008]),\n", + " array([ 0.50481528, 0.27498335, -0.47622603, ..., 0.50747502,\n", + " 0.63035578, -0.04957717]),\n", + " array([ 0.50524193, 0.2738764 , -0.46136844, ..., 0.530707 ,\n", + " 0.60761362, -0.04766876]),\n", + " array([ 0.50524348, 0.27375457, -0.44459012, ..., 0.5397253 ,\n", + " 0.60350066, -0.05336345]),\n", + " array([ 0.50564349, 0.27174512, -0.49843326, ..., 0.55339319,\n", + " 0.59660208, -0.05580446]),\n", + " array([ 0.50577581, 0.27066204, -0.50379395, ..., 0.56948787,\n", + " 0.59109312, -0.06383712]),\n", + " array([ 0.50605494, 0.27011904, -0.50405884, ..., 0.57857174,\n", + " 0.58506811, -0.05300621]),\n", + " array([ 0.50605905, 0.2695691 , -0.49526197, ..., 0.59723318,\n", + " 0.57749814, -0.04870913]),\n", + " array([ 0.50603801, 0.27116027, -0.49595693, ..., 0.60519719,\n", + " 0.57352448, -0.04162116]),\n", + " array([ 0.50623775, 0.27246532, -0.48288545, ..., 0.60574591,\n", + " 0.57789016, -0.05839422]),\n", + " array([ 0.50626838, 0.27106836, -0.48826051, ..., 0.59259003,\n", + " 0.54179734, -0.04255831]),\n", + " array([ 0.50628871, 0.26842314, -0.47239599, ..., 0.56871092,\n", + " 0.5219568 , -0.04883599]),\n", + " array([ 0.50654787, 0.26869509, -0.47268033, ..., 0.56819183,\n", + " 0.51247567, -0.07418593]),\n", + " array([ 0.50770408, 0.27224332, -0.4473246 , ..., 0.57202828,\n", + " 0.53574157, -0.06964069]),\n", + " array([ 0.5080049 , 0.27782863, -0.45293954, ..., 0.55866593,\n", + " 0.5710516 , -0.06715025]),\n", + " array([ 0.50788057, 0.27811971, -0.45524415, ..., 0.5565477 ,\n", + " 0.58840191, -0.05867797]),\n", + " array([ 0.50816745, 0.28014624, -0.48522514, ..., 0.55535877,\n", + " 0.59714252, -0.04399236]),\n", + " array([ 0.50825709, 0.27949306, -0.50974673, ..., 0.56080949,\n", + " 0.61525297, -0.06486171]),\n", + " array([ 0.50824213, 0.2767897 , -0.54199106, ..., 0.54813129,\n", + " 0.62816918, -0.04305071]),\n", + " array([ 0.50824553, 0.27673748, -0.56436396, ..., 0.54069674,\n", + " 0.63052082, -0.04972328]),\n", + " array([ 0.50898081, 0.27760762, -0.60674304, ..., 0.56694156,\n", + " 0.57059705, -0.03501999]),\n", + " array([ 0.50915831, 0.27910954, -0.69513351, ..., 0.57355279,\n", + " 0.56642276, -0.03529144]),\n", + " array([ 0.50947404, 0.28047007, -0.70463365, ..., 0.51839143,\n", + " 0.64533973, -0.03885463]),\n", + " array([ 0.51027071, 0.28012609, -0.65721834, ..., 0.48989183,\n", + " 0.67120439, -0.03282905]),\n", + " array([ 0.51002502, 0.2800853 , -0.64135015, ..., 0.4611671 ,\n", + " 0.67961401, -0.04317597]),\n", + " array([ 0.5100767 , 0.27664837, -0.61195558, ..., 0.44093722,\n", + " 0.66974455, -0.0276239 ]),\n", + " array([ 0.51007891, 0.27585945, -0.61028898, ..., 0.43386182,\n", + " 0.67351693, -0.02761051]),\n", + " array([ 0.51007259, 0.27478054, -0.57086813, ..., 0.43288705,\n", + " 0.67556679, -0.03306793]),\n", + " array([ 0.51006478, 0.27478272, -0.74043632, ..., 0.44182813,\n", + " 0.68196219, -0.03476254]),\n", + " array([ 0.50991893, 0.27497515, -0.60558558, ..., 0.44332516,\n", + " 0.6694802 , -0.02572278]),\n", + " array([ 0.51037675, 0.27876472, -0.68302816, ..., 0.45612341,\n", + " 0.6871478 , -0.02719439]),\n", + " array([ 0.51049429, 0.2827552 , -0.73145109, ..., 0.47290635,\n", + " 0.67677778, -0.03068117]),\n", + " array([ 0.51045573, 0.28326267, -0.70642251, ..., 0.49801916,\n", + " 0.69223309, -0.03213074]),\n", + " array([ 0.51027101, 0.28773984, -0.74684644, ..., 0.50719088,\n", + " 0.69366664, -0.04144498]),\n", + " array([ 0.50981992, 0.28754809, -0.74905199, ..., 0.5008021 ,\n", + " 0.69684184, -0.03709566]),\n", + " array([ 0.50968844, 0.2874606 , -0.7023192 , ..., 0.49166223,\n", + " 0.70412332, -0.0501541 ]),\n", + " array([ 0.50971854, 0.28349885, -0.68209708, ..., 0.48739475,\n", + " 0.71609843, -0.06970871]),\n", + " array([ 0.51039654, 0.28347802, -0.62980819, ..., 0.51919675,\n", + " 0.62472641, -0.04681268]),\n", + " array([ 0.51068997, 0.2833201 , -0.63668573, ..., 0.50483507,\n", + " 0.64887911, -0.04804717]),\n", + " array([ 0.51139742, 0.28226921, -0.64214879, ..., 0.51561558,\n", + " 0.63200766, -0.05220798]),\n", + " array([ 0.51226377, 0.28129414, -0.63258421, ..., 0.53038055,\n", + " 0.61987168, -0.08433496]),\n", + " array([ 0.51360536, 0.2803652 , -0.59240812, ..., 0.54591179,\n", + " 0.62770593, -0.06268053]),\n", + " array([ 0.51373297, 0.28005061, -0.59307313, ..., 0.56371009,\n", + " 0.62426376, -0.05422341]),\n", + " array([ 0.5140413 , 0.27883443, -0.60419363, ..., 0.57234925,\n", + " 0.6257931 , -0.05486523]),\n", + " array([ 0.51424819, 0.27861038, -0.62225813, ..., 0.57433385,\n", + " 0.62559551, -0.0598428 ]),\n", + " array([ 0.51402634, 0.27835628, -0.57450593, ..., 0.57412469,\n", + " 0.63583899, -0.05692325]),\n", + " array([ 0.51399797, 0.27767023, -0.60868001, ..., 0.57433909,\n", + " 0.64140952, -0.06165574]),\n", + " array([ 0.51393557, 0.2736648 , -0.60333794, ..., 0.57554162,\n", + " 0.64856637, -0.06245983]),\n", + " array([ 0.51425987, 0.26530901, -0.61601943, ..., 0.57814801,\n", + " 0.65300679, -0.05784723]),\n", + " array([ 0.51446128, 0.26141039, -0.65290558, ..., 0.5728339 ,\n", + " 0.6612668 , -0.06700038]),\n", + " array([ 0.51479268, 0.25448111, -0.671673 , ..., 0.57144445,\n", + " 0.67029065, -0.0604974 ]),\n", + " array([ 0.51479566, 0.25212801, -0.72588956, ..., 0.56948763,\n", + " 0.69908065, -0.05096473]),\n", + " array([ 0.51471621, 0.24880864, -0.77086663, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51376778, 0.24434364, -0.82009745, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5140416, 0.2353652, -0.8888191, ..., 0. , 0. ,\n", + " 0. ]),\n", + " array([ 0.51413357, 0.23024012, -0.83480859, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51413757, 0.22208948, -0.81766015, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51409197, 0.21819514, -0.67856431, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51372862, 0.21343747, -0.59909421, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51390767, 0.20980224, -0.61511183, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5138942 , 0.21010374, -0.61806124, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51534557, 0.20991328, -0.53565389, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51559877, 0.20763463, -0.53571337, ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.5155533 , 0.20662586, -0.5399456 , ..., 0. ,\n", + " 0. , 0. ]),\n", + " array([ 0.51637828, 0.20712331, -0.56946743, ..., 0. ,\n", + " 0. , 0. ]),\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0]" + ] + }, + "execution_count": 174, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "padded_arr[-650]" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1058\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "def count_int_subarrays(nested_array):\n", + " count = 0\n", + " for subarray in nested_array:\n", + " if any(isinstance(element, int) for element in subarray):\n", + " count += 1\n", + " return count\n", + "\n", + "# Example usage\n", + "nested_array = padded_arr\n", + "int_subarray_count = count_int_subarrays(nested_array)\n", + "print(int_subarray_count) # Output: 2\n" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.4571802 , 0.22804336, -0.527282 , ..., 0. ,\n", + " 0. , 0. ])" + ] + }, + "execution_count": 188, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "padded_arr[0][2]" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [], + "source": [ + "for i in padded_arr:\n", + " for y in \n", + " if len(i) != 372:\n", + " print(False)\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": {}, + "outputs": [ + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[208], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m X_processed \u001b[39m=\u001b[39m []\n\u001b[0;32m 2\u001b[0m \u001b[39mfor\u001b[39;00m sublist \u001b[39min\u001b[39;00m X:\n\u001b[1;32m----> 3\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(sublist[\u001b[39m0\u001b[39;49m], \u001b[39mlist\u001b[39m):\n\u001b[0;32m 4\u001b[0m X_processed\u001b[39m.\u001b[39mextend(sublist)\n\u001b[0;32m 5\u001b[0m \u001b[39melse\u001b[39;00m:\n", + "\u001b[1;31mIndexError\u001b[0m: list index out of range" + ] + } + ], + "source": [ + "X_processed = []\n", + "for sublist in X:\n", + " if isinstance(sublist[0], list):\n", + " X_processed.extend(sublist)\n", + " else:\n", + " X_processed.append(sublist)\n", + "X_processed = np.array(X_processed)" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import LabelEncoder\n", + "\n", + "label_encoder = LabelEncoder()\n", + "y_encoded = label_encoder.fit_transform(y)\n", + "num_classes = len(label_encoder.classes_)" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [], + "source": [ + "X_train = np.reshape(X_processed, (X_processed.shape[0], 1, X_processed.shape[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 214, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "Failed to find data adapter that can handle input: ( containing values of types {'( containing values of types {\"\"})', '( containing values of types {\"\"})', '( containing values of types {\"\", \"\"})'}), ", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[214], line 7\u001b[0m\n\u001b[0;32m 3\u001b[0m model\u001b[39m.\u001b[39madd(Dense(num_classes, activation\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39msoftmax\u001b[39m\u001b[39m'\u001b[39m))\n\u001b[0;32m 5\u001b[0m model\u001b[39m.\u001b[39mcompile(loss\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39msparse_categorical_crossentropy\u001b[39m\u001b[39m'\u001b[39m, optimizer\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39madam\u001b[39m\u001b[39m'\u001b[39m, metrics\u001b[39m=\u001b[39m[\u001b[39m'\u001b[39m\u001b[39maccuracy\u001b[39m\u001b[39m'\u001b[39m])\n\u001b[1;32m----> 7\u001b[0m model\u001b[39m.\u001b[39;49mfit(padded_arr, y_encoded, epochs\u001b[39m=\u001b[39;49m\u001b[39m10\u001b[39;49m, batch_size\u001b[39m=\u001b[39;49m\u001b[39m32\u001b[39;49m,)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\utils\\traceback_utils.py:70\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 67\u001b[0m filtered_tb \u001b[39m=\u001b[39m _process_traceback_frames(e\u001b[39m.\u001b[39m__traceback__)\n\u001b[0;32m 68\u001b[0m \u001b[39m# To get the full stack trace, call:\u001b[39;00m\n\u001b[0;32m 69\u001b[0m \u001b[39m# `tf.debugging.disable_traceback_filtering()`\u001b[39;00m\n\u001b[1;32m---> 70\u001b[0m \u001b[39mraise\u001b[39;00m e\u001b[39m.\u001b[39mwith_traceback(filtered_tb) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 71\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 72\u001b[0m \u001b[39mdel\u001b[39;00m filtered_tb\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\engine\\data_adapter.py:1082\u001b[0m, in \u001b[0;36mselect_data_adapter\u001b[1;34m(x, y)\u001b[0m\n\u001b[0;32m 1079\u001b[0m adapter_cls \u001b[39m=\u001b[39m [\u001b[39mcls\u001b[39m \u001b[39mfor\u001b[39;00m \u001b[39mcls\u001b[39m \u001b[39min\u001b[39;00m ALL_ADAPTER_CLS \u001b[39mif\u001b[39;00m \u001b[39mcls\u001b[39m\u001b[39m.\u001b[39mcan_handle(x, y)]\n\u001b[0;32m 1080\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m adapter_cls:\n\u001b[0;32m 1081\u001b[0m \u001b[39m# TODO(scottzhu): This should be a less implementation-specific error.\u001b[39;00m\n\u001b[1;32m-> 1082\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\n\u001b[0;32m 1083\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mFailed to find data adapter that can handle input: \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m, \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m\"\u001b[39m\u001b[39m.\u001b[39mformat(\n\u001b[0;32m 1084\u001b[0m _type_name(x), _type_name(y)\n\u001b[0;32m 1085\u001b[0m )\n\u001b[0;32m 1086\u001b[0m )\n\u001b[0;32m 1087\u001b[0m \u001b[39melif\u001b[39;00m \u001b[39mlen\u001b[39m(adapter_cls) \u001b[39m>\u001b[39m \u001b[39m1\u001b[39m:\n\u001b[0;32m 1088\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m(\n\u001b[0;32m 1089\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mData adapters should be mutually exclusive for \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 1090\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mhandling inputs. Found multiple adapters \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m to handle \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 1091\u001b[0m \u001b[39m\"\u001b[39m\u001b[39minput: \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m, \u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m\"\u001b[39m\u001b[39m.\u001b[39mformat(adapter_cls, _type_name(x), _type_name(y))\n\u001b[0;32m 1092\u001b[0m )\n", + "\u001b[1;31mValueError\u001b[0m: Failed to find data adapter that can handle input: ( containing values of types {'( containing values of types {\"\"})', '( containing values of types {\"\"})', '( containing values of types {\"\", \"\"})'}), " + ] + } + ], + "source": [ + "model = Sequential()\n", + "model.add(LSTM(64, input_shape=(X_train.shape[1], X_train.shape[2])))\n", + "model.add(Dense(num_classes, activation='softmax'))\n", + "\n", + "model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n", + "\n", + "model.fit(padded_arr, y_encoded, epochs=10, batch_size=32,)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 213, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Sam\\AppData\\Local\\Temp\\ipykernel_508\\1273227418.py:1: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", + " np.array(padded_arr).shape\n" + ] + }, + { + "data": { + "text/plain": [ + "(1059, 372)" + ] + }, + "execution_count": 213, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array(padded_arr).shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 228, + "metadata": {}, + "outputs": [], + "source": [ + "t = np.load(\"X.npy\", allow_pickle=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 229, + "metadata": {}, + "outputs": [], + "source": [ + "t = np.array(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 230, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071, 618264)" + ] + }, + "execution_count": 230, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 231, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 231, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t[34][-1]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "X = np.load(\"X.npy\")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 0.45600423, 0.2333079 , -0.506378 , ..., 0. ,\n", + " 0. , 0. ],\n", + " [ 0.47096324, 0.23414364, -0.81818223, ..., 0. ,\n", + " 0. , 0. ],\n", + " [ 0.46856007, 0.21675549, -0.70816606, ..., 0. ,\n", + " 0. , 0. ],\n", + " ...,\n", + " [ 0.49104264, 0.27044585, -0.60848659, ..., 0. ,\n", + " 0. , 0. ],\n", + " [ 0.48748872, 0.28047171, -0.56018519, ..., 0. ,\n", + " 0. , 0. ],\n", + " [ 0.51354039, 0.24837087, -0.83206671, ..., 0. ,\n", + " 0. , 0. ]])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 4.56004232e-01, 2.33307898e-01, -5.06377995e-01, 9.99777853e-01,\n", + " 4.75985676e-01, 1.90068424e-01, -4.78294104e-01, 9.99634504e-01,\n", + " 4.89453167e-01, 1.89619482e-01, -4.78280246e-01, 9.99605238e-01,\n", + " 5.00471950e-01, 1.89701259e-01, -4.78520215e-01, 9.99657869e-01,\n", + " 4.34933573e-01, 1.94741786e-01, -4.77371871e-01, 9.99725521e-01,\n", + " 4.23198521e-01, 1.97234690e-01, -4.77218747e-01, 9.99715626e-01,\n", + " 4.14740801e-01, 2.00044155e-01, -4.77521986e-01, 9.99781072e-01,\n", + " 5.21495759e-01, 2.15462804e-01, -2.81138867e-01, 9.99603331e-01,\n", + " 4.07695651e-01, 2.25192621e-01, -2.63448089e-01, 9.99781907e-01,\n", + " 4.89424437e-01, 2.78147221e-01, -4.31510329e-01, 9.99895573e-01,\n", + " 4.39041227e-01, 2.79931903e-01, -4.26113307e-01, 9.99925017e-01,\n", + " 6.26905918e-01, 4.99994755e-01, -1.98663011e-01, 9.99234319e-01,\n", + " 3.38460505e-01, 5.08986771e-01, -1.92352444e-01, 9.99715507e-01,\n", + " 6.60757363e-01, 8.09577167e-01, -1.41313776e-01, 8.68441641e-01,\n", + " 3.05986226e-01, 8.11105132e-01, -1.31488681e-01, 8.53444695e-01,\n", + " 6.29363775e-01, 1.00580847e+00, -2.71018773e-01, 1.66407704e-01,\n", + " 2.98675358e-01, 1.05661798e+00, -3.16090852e-01, 2.40749002e-01,\n", + " 6.50310695e-01, 1.10309231e+00, -3.26103181e-01, 1.33836925e-01,\n", + " 2.91207850e-01, 1.13987768e+00, -3.70159805e-01, 1.92648649e-01,\n", + " 6.25999868e-01, 1.08845639e+00, -3.64097327e-01, 1.73462003e-01,\n", + " 3.09358925e-01, 1.12380934e+00, -4.26250845e-01, 2.36336738e-01,\n", + " 6.18420780e-01, 1.05457580e+00, -2.90854037e-01, 1.98525414e-01,\n", + " 3.21339697e-01, 1.09084952e+00, -3.45197946e-01, 2.65793532e-01,\n", + " 5.75740993e-01, 1.03524816e+00, -8.21938086e-03, 5.44710994e-01,\n", + " 4.00978595e-01, 1.02815175e+00, 9.97023936e-03, 5.61884642e-01,\n", + " 5.71955860e-01, 1.44728374e+00, 8.45307857e-02, 1.51199950e-02,\n", + " 3.87231231e-01, 1.44835043e+00, 1.03656232e-01, 9.03910026e-03,\n", + " 5.67765594e-01, 1.79283464e+00, 5.02276540e-01, 1.15059805e-03,\n", + " 3.91411275e-01, 1.79156029e+00, 4.01470780e-01, 6.06993970e-04,\n", + " 5.73268890e-01, 1.84536374e+00, 5.29104769e-01, 1.18097698e-03,\n", + " 3.90227914e-01, 1.84524572e+00, 4.22955632e-01, 9.99787822e-04,\n", + " 5.42449296e-01, 1.92097592e+00, 2.39132449e-01, 6.87353779e-04,\n", + " 4.09124643e-01, 1.91977251e+00, 9.86383855e-02, 6.96827075e-04,\n", + " 4.65274811e-01, 2.81435728e-01, -1.69907846e-02, 4.62782383e-01,\n", + " 2.46254459e-01, -3.00604645e-02, 4.63442534e-01, 2.56376058e-01,\n", + " -1.62976645e-02, 4.55984384e-01, 2.14196309e-01, -2.19164230e-02,\n", + " 4.62244898e-01, 2.36330256e-01, -3.17773819e-02, 4.61473376e-01,\n", + " 2.23135307e-01, -2.92668976e-02, 4.59843248e-01, 1.90543130e-01,\n", + " -1.29489098e-02, 4.18691248e-01, 1.93387285e-01, 7.80414045e-03,\n", + " 4.58332896e-01, 1.63136765e-01, -8.14513303e-03, 4.57590908e-01,\n", + " 1.49407834e-01, -8.68884288e-03, 4.54647362e-01, 1.07888564e-01,\n", + " -1.18392671e-03, 4.65633124e-01, 2.86331058e-01, -1.62134767e-02,\n", + " 4.65939432e-01, 2.90205121e-01, -1.43237105e-02, 4.66124505e-01,\n", + " 2.91876346e-01, -1.18275275e-02, 4.66275990e-01, 2.96653748e-01,\n", + " -1.06529109e-02, 4.66571540e-01, 3.00947547e-01, -1.16336923e-02,\n", + " 4.66917723e-01, 3.06191742e-01, -1.30411955e-02, 4.67313319e-01,\n", + " 3.11140060e-01, -1.25636775e-02, 4.67825741e-01, 3.16500545e-01,\n", + " -8.07247683e-03, 4.63050336e-01, 2.51239568e-01, -2.72847991e-02,\n", + " 4.57140595e-01, 2.51453847e-01, -1.97322071e-02, 3.94587845e-01,\n", + " 1.58866480e-01, 3.55857834e-02, 4.36005354e-01, 2.00475216e-01,\n", + " 1.98514597e-03, 4.30233568e-01, 2.02032894e-01, 2.31579295e-03,\n", + " 4.24574643e-01, 2.02110082e-01, 3.82151594e-03, 4.16979730e-01,\n", + " 1.96756929e-01, 8.54409020e-03, 4.40672487e-01, 1.97140425e-01,\n", + " 2.87820119e-03, 4.25948888e-01, 1.72081292e-01, 5.29228826e-04,\n", + " 4.32655364e-01, 1.72182500e-01, 7.44532270e-04, 4.20030087e-01,\n", + " 1.74823269e-01, 2.20921915e-03, 4.16377425e-01, 1.79555967e-01,\n", + " 4.35298029e-03, 4.12726313e-01, 2.04003990e-01, 1.12129897e-02,\n", + " 4.48161304e-01, 3.27981204e-01, -1.76185230e-03, 4.16411847e-01,\n", + " 1.90592140e-01, 9.67308693e-03, 3.94921780e-01, 2.00058907e-01,\n", + " 3.61029170e-02, 4.05629218e-01, 1.97165459e-01, 1.70564372e-02,\n", + " 4.34015274e-01, 2.41309673e-01, -4.39635664e-03, 4.58083600e-01,\n", + " 2.80875236e-01, -1.63358003e-02, 4.60229963e-01, 2.90990144e-01,\n", + " -1.35339219e-02, 4.51288044e-01])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X[0][: 250]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "new_x = X.reshape(X.shape[0], 372, 1662)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'np' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[2], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m new_y \u001b[38;5;241m=\u001b[39m \u001b[43mnp\u001b[49m\u001b[38;5;241m.\u001b[39mload(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mY.npy\u001b[39m\u001b[38;5;124m\"\u001b[39m, allow_pickle\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n", + "\u001b[1;31mNameError\u001b[0m: name 'np' is not defined" + ] + } + ], + "source": [ + "new_y = np.load(\"Y.npy\", allow_pickle=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071, 372, 1662)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(new_x).shape" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# new_x = new_x[:200]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071, 372, 1662)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_x.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1662" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(new_x[0][-2])" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# new_y = Y[:200]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1071,)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_y.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import LabelEncoder\n", + "\n", + "code = np.array(new_y)\n", + "\n", + "label_encoder = LabelEncoder()\n", + "vec = label_encoder.fit_transform(code)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "from keras.utils import to_categorical\n", + "\n", + "y = to_categorical(vec)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# from tensorflow.keras.models import Sequential\n", + "# from tensorflow.keras.layers import LSTM, Dense, BatchNormalization\n", + "# from tensorflow.keras.callbacks import TensorBoard\n", + "\n", + "# model = Sequential()\n", + "# model.add(LSTM(64, activation='relu', input_shape=(372,1662)))\n", + "# model.add(BatchNormalization())\n", + "# # model.add(LSTM(128, return_sequences=True, activation='relu'))\n", + "# # model.add(LSTM(64, return_sequences=False, activation='relu'))\n", + "# model.add(Dense(64, activation='relu'))\n", + "# model.add(Dense(32, activation='relu'))\n", + "# model.add(Dense(189, activation='softmax'))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"model_4\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " input_6 (InputLayer) [(None, 372, 1662)] 0 \n", + " \n", + " dense_14 (Dense) (None, 372, 512) 851456 \n", + " \n", + " layer_normalization_10 (Lay (None, 372, 512) 1024 \n", + " erNormalization) \n", + " \n", + " activation_10 (Activation) (None, 372, 512) 0 \n", + " \n", + " dropout_10 (Dropout) (None, 372, 512) 0 \n", + " \n", + " dense_15 (Dense) (None, 372, 256) 131328 \n", + " \n", + " layer_normalization_11 (Lay (None, 372, 256) 512 \n", + " erNormalization) \n", + " \n", + " activation_11 (Activation) (None, 372, 256) 0 \n", + " \n", + " dropout_11 (Dropout) (None, 372, 256) 0 \n", + " \n", + " lstm_4 (LSTM) (None, 250) 507000 \n", + " \n", + " dense_16 (Dense) (None, 878) 220378 \n", + " \n", + "=================================================================\n", + "Total params: 1,711,698\n", + "Trainable params: 1,711,698\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "import tensorflow as tf\n", + "from tensorflow.keras import layers, optimizers\n", + "\n", + "# include early stopping and reducelr\n", + "def get_callbacks():\n", + " return [\n", + " tf.keras.callbacks.EarlyStopping(\n", + " # monitor=\"val_accuracy\",\n", + " patience = 10,\n", + " restore_best_weights=True\n", + " ),\n", + " tf.keras.callbacks.ReduceLROnPlateau(\n", + " # monitor = \"val_accuracy\",\n", + " factor = 0.5,\n", + " patience = 3\n", + " ),\n", + " ]\n", + "\n", + "# a single dense block followed by a normalization block and relu activation\n", + "def dense_block(units, name):\n", + " fc = layers.Dense(units)\n", + " norm = layers.LayerNormalization()\n", + " act = layers.Activation(\"relu\")\n", + " drop = layers.Dropout(0.5)\n", + " return lambda x: drop(act(norm(fc(x))))\n", + "\n", + "# the lstm block with the final dense block for the classification\n", + "def classifier(lstm_units):\n", + " lstm = layers.LSTM(lstm_units)\n", + " out = layers.Dense(878, activation=\"softmax\")\n", + " return lambda x: out(lstm(x))\n", + "# choose the number of nodes per layer\n", + "encoder_units = [512, 256] # tune this\n", + "lstm_units = 250 # tune this\n", + "\n", + "#define the inputs (ragged batches of time series of landmark coordinates)\n", + "inputs = tf.keras.Input(shape=((372,1662)), ragged=True)\n", + "\n", + "# dense encoder model\n", + "x = inputs\n", + "for i, n in enumerate(encoder_units):\n", + " x = dense_block(n, f\"encoder_{i}\")(x)\n", + "\n", + "# classifier model\n", + "out = classifier(lstm_units)(x)\n", + "\n", + "model = tf.keras.Model(inputs=inputs, outputs=out)\n", + "model.summary()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/500\n", + "34/34 [==============================] - 149s 4s/step - loss: 6.7691 - accuracy: 0.0056\n", + "Epoch 2/500\n", + "34/34 [==============================] - 161s 5s/step - loss: 6.7334 - accuracy: 0.0056\n", + "Epoch 3/500\n", + "34/34 [==============================] - 148s 4s/step - loss: 6.7333 - accuracy: 0.0056\n", + "Epoch 4/500\n", + "34/34 [==============================] - 141s 4s/step - loss: 6.7306 - accuracy: 0.0056\n", + "Epoch 5/500\n", + "34/34 [==============================] - 137s 4s/step - loss: 6.7280 - accuracy: 0.0056\n", + "Epoch 6/500\n", + "34/34 [==============================] - 129s 4s/step - loss: 6.7289 - accuracy: 0.0065\n", + "Epoch 7/500\n", + "34/34 [==============================] - 144s 4s/step - loss: 6.7272 - accuracy: 0.0056\n", + "Epoch 8/500\n", + "34/34 [==============================] - 147s 4s/step - loss: 6.7274 - accuracy: 0.0065\n", + "Epoch 9/500\n", + "34/34 [==============================] - 161s 5s/step - loss: 6.7287 - accuracy: 0.0065\n", + "Epoch 10/500\n", + "34/34 [==============================] - 170s 5s/step - loss: 6.7286 - accuracy: 0.0056\n", + "Epoch 11/500\n", + "34/34 [==============================] - 171s 5s/step - loss: 6.7283 - accuracy: 0.0065\n", + "Epoch 12/500\n", + "34/34 [==============================] - 168s 5s/step - loss: 6.7260 - accuracy: 0.0056\n", + "Epoch 13/500\n", + "34/34 [==============================] - 160s 5s/step - loss: 6.7273 - accuracy: 0.0056\n", + "Epoch 14/500\n", + "34/34 [==============================] - 171s 5s/step - loss: 6.7278 - accuracy: 0.0056\n", + "Epoch 15/500\n", + "34/34 [==============================] - 164s 5s/step - loss: 6.7250 - accuracy: 0.0056\n", + "Epoch 16/500\n", + "34/34 [==============================] - 190s 6s/step - loss: 6.7248 - accuracy: 0.0056\n", + "Epoch 17/500\n", + "34/34 [==============================] - 136s 4s/step - loss: 6.7258 - accuracy: 0.0056\n", + "Epoch 18/500\n", + "34/34 [==============================] - 158s 5s/step - loss: 6.7237 - accuracy: 0.0056\n", + "Epoch 19/500\n", + "34/34 [==============================] - 154s 5s/step - loss: 6.7244 - accuracy: 0.0056\n", + "Epoch 20/500\n", + "34/34 [==============================] - 159s 5s/step - loss: 6.7246 - accuracy: 0.0056\n", + "Epoch 21/500\n", + "34/34 [==============================] - 162s 5s/step - loss: 6.7240 - accuracy: 0.0056\n", + "Epoch 22/500\n", + "34/34 [==============================] - 173s 5s/step - loss: 6.7262 - accuracy: 0.0056\n", + "Epoch 23/500\n", + "34/34 [==============================] - 182s 5s/step - loss: 6.7248 - accuracy: 0.0065\n", + "Epoch 24/500\n", + "34/34 [==============================] - 200s 6s/step - loss: 6.7238 - accuracy: 0.0065\n", + "Epoch 25/500\n", + "34/34 [==============================] - 195s 6s/step - loss: 6.7213 - accuracy: 0.0065\n", + "Epoch 26/500\n", + "34/34 [==============================] - 185s 5s/step - loss: 6.7247 - accuracy: 0.0065\n", + "Epoch 27/500\n", + "34/34 [==============================] - 196s 6s/step - loss: 6.7239 - accuracy: 0.0065\n", + "Epoch 28/500\n", + "34/34 [==============================] - 199s 6s/step - loss: 6.7252 - accuracy: 0.0065\n", + "Epoch 29/500\n", + "34/34 [==============================] - 184s 5s/step - loss: 6.7252 - accuracy: 0.0065\n", + "Epoch 30/500\n", + "34/34 [==============================] - 193s 6s/step - loss: 6.7228 - accuracy: 0.0065\n", + "Epoch 31/500\n", + "34/34 [==============================] - 197s 6s/step - loss: 6.7220 - accuracy: 0.0065\n", + "Epoch 32/500\n", + "34/34 [==============================] - 202s 6s/step - loss: 6.7246 - accuracy: 0.0065\n", + "Epoch 33/500\n", + "34/34 [==============================] - 202s 6s/step - loss: 6.7206 - accuracy: 0.0065\n", + "Epoch 34/500\n", + "34/34 [==============================] - 198s 6s/step - loss: 6.7181 - accuracy: 0.0065\n", + "Epoch 35/500\n", + "34/34 [==============================] - 183s 5s/step - loss: 6.7328 - accuracy: 0.0065\n", + "Epoch 36/500\n", + "34/34 [==============================] - 198s 6s/step - loss: 6.7251 - accuracy: 0.0065\n", + "Epoch 37/500\n", + "34/34 [==============================] - 198s 6s/step - loss: 6.7201 - accuracy: 0.0065\n", + "Epoch 38/500\n", + "34/34 [==============================] - 196s 6s/step - loss: 6.7101 - accuracy: 0.0075\n", + "Epoch 39/500\n", + "34/34 [==============================] - 198s 6s/step - loss: 6.7179 - accuracy: 0.0065\n", + "Epoch 40/500\n", + "34/34 [==============================] - 185s 5s/step - loss: 6.7174 - accuracy: 0.0084\n", + "Epoch 41/500\n", + "34/34 [==============================] - 198s 6s/step - loss: 6.7282 - accuracy: 0.0084\n", + "Epoch 42/500\n", + "34/34 [==============================] - 197s 6s/step - loss: 6.7099 - accuracy: 0.0075\n", + "Epoch 43/500\n", + "11/34 [========>.....................] - ETA: 1:28 - loss: 6.7067 - accuracy: 0.0057" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[35], line 7\u001b[0m\n\u001b[0;32m 3\u001b[0m model\u001b[39m.\u001b[39mcompile(optimizer\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mAdam\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 4\u001b[0m loss\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mcategorical_crossentropy\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 5\u001b[0m metrics\u001b[39m=\u001b[39m[\u001b[39m\"\u001b[39m\u001b[39maccuracy\u001b[39m\u001b[39m\"\u001b[39m])\n\u001b[0;32m 6\u001b[0m \u001b[39m# fit the model with 100 epochs iteration\u001b[39;00m\n\u001b[1;32m----> 7\u001b[0m model\u001b[39m.\u001b[39;49mfit(new_x,\n\u001b[0;32m 8\u001b[0m y,\n\u001b[0;32m 9\u001b[0m \u001b[39m# callbacks = get_callbacks(),\u001b[39;49;00m\n\u001b[0;32m 10\u001b[0m epochs \u001b[39m=\u001b[39;49m \u001b[39m500\u001b[39;49m)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\utils\\traceback_utils.py:65\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 63\u001b[0m filtered_tb \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 64\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m---> 65\u001b[0m \u001b[39mreturn\u001b[39;00m fn(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m 66\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[0;32m 67\u001b[0m filtered_tb \u001b[39m=\u001b[39m _process_traceback_frames(e\u001b[39m.\u001b[39m__traceback__)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\keras\\engine\\training.py:1685\u001b[0m, in \u001b[0;36mModel.fit\u001b[1;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)\u001b[0m\n\u001b[0;32m 1677\u001b[0m \u001b[39mwith\u001b[39;00m tf\u001b[39m.\u001b[39mprofiler\u001b[39m.\u001b[39mexperimental\u001b[39m.\u001b[39mTrace(\n\u001b[0;32m 1678\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mtrain\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 1679\u001b[0m epoch_num\u001b[39m=\u001b[39mepoch,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 1682\u001b[0m _r\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m,\n\u001b[0;32m 1683\u001b[0m ):\n\u001b[0;32m 1684\u001b[0m callbacks\u001b[39m.\u001b[39mon_train_batch_begin(step)\n\u001b[1;32m-> 1685\u001b[0m tmp_logs \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mtrain_function(iterator)\n\u001b[0;32m 1686\u001b[0m \u001b[39mif\u001b[39;00m data_handler\u001b[39m.\u001b[39mshould_sync:\n\u001b[0;32m 1687\u001b[0m context\u001b[39m.\u001b[39masync_wait()\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\util\\traceback_utils.py:150\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 148\u001b[0m filtered_tb \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 149\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m--> 150\u001b[0m \u001b[39mreturn\u001b[39;00m fn(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m 151\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[0;32m 152\u001b[0m filtered_tb \u001b[39m=\u001b[39m _process_traceback_frames(e\u001b[39m.\u001b[39m__traceback__)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\eager\\polymorphic_function\\polymorphic_function.py:894\u001b[0m, in \u001b[0;36mFunction.__call__\u001b[1;34m(self, *args, **kwds)\u001b[0m\n\u001b[0;32m 891\u001b[0m compiler \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mxla\u001b[39m\u001b[39m\"\u001b[39m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_jit_compile \u001b[39melse\u001b[39;00m \u001b[39m\"\u001b[39m\u001b[39mnonXla\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 893\u001b[0m \u001b[39mwith\u001b[39;00m OptionalXlaContext(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_jit_compile):\n\u001b[1;32m--> 894\u001b[0m result \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_call(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds)\n\u001b[0;32m 896\u001b[0m new_tracing_count \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mexperimental_get_tracing_count()\n\u001b[0;32m 897\u001b[0m without_tracing \u001b[39m=\u001b[39m (tracing_count \u001b[39m==\u001b[39m new_tracing_count)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\eager\\polymorphic_function\\polymorphic_function.py:926\u001b[0m, in \u001b[0;36mFunction._call\u001b[1;34m(self, *args, **kwds)\u001b[0m\n\u001b[0;32m 923\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_lock\u001b[39m.\u001b[39mrelease()\n\u001b[0;32m 924\u001b[0m \u001b[39m# In this case we have created variables on the first call, so we run the\u001b[39;00m\n\u001b[0;32m 925\u001b[0m \u001b[39m# defunned version which is guaranteed to never create variables.\u001b[39;00m\n\u001b[1;32m--> 926\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_no_variable_creation_fn(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds) \u001b[39m# pylint: disable=not-callable\u001b[39;00m\n\u001b[0;32m 927\u001b[0m \u001b[39melif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_variable_creation_fn \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 928\u001b[0m \u001b[39m# Release the lock early so that multiple threads can perform the call\u001b[39;00m\n\u001b[0;32m 929\u001b[0m \u001b[39m# in parallel.\u001b[39;00m\n\u001b[0;32m 930\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_lock\u001b[39m.\u001b[39mrelease()\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\eager\\polymorphic_function\\tracing_compiler.py:143\u001b[0m, in \u001b[0;36mTracingCompiler.__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 140\u001b[0m \u001b[39mwith\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_lock:\n\u001b[0;32m 141\u001b[0m (concrete_function,\n\u001b[0;32m 142\u001b[0m filtered_flat_args) \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_maybe_define_function(args, kwargs)\n\u001b[1;32m--> 143\u001b[0m \u001b[39mreturn\u001b[39;00m concrete_function\u001b[39m.\u001b[39;49m_call_flat(\n\u001b[0;32m 144\u001b[0m filtered_flat_args, captured_inputs\u001b[39m=\u001b[39;49mconcrete_function\u001b[39m.\u001b[39;49mcaptured_inputs)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\eager\\polymorphic_function\\monomorphic_function.py:1757\u001b[0m, in \u001b[0;36mConcreteFunction._call_flat\u001b[1;34m(self, args, captured_inputs, cancellation_manager)\u001b[0m\n\u001b[0;32m 1753\u001b[0m possible_gradient_type \u001b[39m=\u001b[39m gradients_util\u001b[39m.\u001b[39mPossibleTapeGradientTypes(args)\n\u001b[0;32m 1754\u001b[0m \u001b[39mif\u001b[39;00m (possible_gradient_type \u001b[39m==\u001b[39m gradients_util\u001b[39m.\u001b[39mPOSSIBLE_GRADIENT_TYPES_NONE\n\u001b[0;32m 1755\u001b[0m \u001b[39mand\u001b[39;00m executing_eagerly):\n\u001b[0;32m 1756\u001b[0m \u001b[39m# No tape is watching; skip to running the function.\u001b[39;00m\n\u001b[1;32m-> 1757\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_build_call_outputs(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_inference_function\u001b[39m.\u001b[39;49mcall(\n\u001b[0;32m 1758\u001b[0m ctx, args, cancellation_manager\u001b[39m=\u001b[39;49mcancellation_manager))\n\u001b[0;32m 1759\u001b[0m forward_backward \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_select_forward_and_backward_functions(\n\u001b[0;32m 1760\u001b[0m args,\n\u001b[0;32m 1761\u001b[0m possible_gradient_type,\n\u001b[0;32m 1762\u001b[0m executing_eagerly)\n\u001b[0;32m 1763\u001b[0m forward_function, args_with_tangents \u001b[39m=\u001b[39m forward_backward\u001b[39m.\u001b[39mforward()\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\eager\\polymorphic_function\\monomorphic_function.py:381\u001b[0m, in \u001b[0;36m_EagerDefinedFunction.call\u001b[1;34m(self, ctx, args, cancellation_manager)\u001b[0m\n\u001b[0;32m 379\u001b[0m \u001b[39mwith\u001b[39;00m _InterpolateFunctionError(\u001b[39mself\u001b[39m):\n\u001b[0;32m 380\u001b[0m \u001b[39mif\u001b[39;00m cancellation_manager \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m--> 381\u001b[0m outputs \u001b[39m=\u001b[39m execute\u001b[39m.\u001b[39;49mexecute(\n\u001b[0;32m 382\u001b[0m \u001b[39mstr\u001b[39;49m(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49msignature\u001b[39m.\u001b[39;49mname),\n\u001b[0;32m 383\u001b[0m num_outputs\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_num_outputs,\n\u001b[0;32m 384\u001b[0m inputs\u001b[39m=\u001b[39;49margs,\n\u001b[0;32m 385\u001b[0m attrs\u001b[39m=\u001b[39;49mattrs,\n\u001b[0;32m 386\u001b[0m ctx\u001b[39m=\u001b[39;49mctx)\n\u001b[0;32m 387\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m 388\u001b[0m outputs \u001b[39m=\u001b[39m execute\u001b[39m.\u001b[39mexecute_with_cancellation(\n\u001b[0;32m 389\u001b[0m \u001b[39mstr\u001b[39m(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39msignature\u001b[39m.\u001b[39mname),\n\u001b[0;32m 390\u001b[0m num_outputs\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_num_outputs,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 393\u001b[0m ctx\u001b[39m=\u001b[39mctx,\n\u001b[0;32m 394\u001b[0m cancellation_manager\u001b[39m=\u001b[39mcancellation_manager)\n", + "File \u001b[1;32mc:\\Users\\Sam\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tensorflow\\python\\eager\\execute.py:52\u001b[0m, in \u001b[0;36mquick_execute\u001b[1;34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[0m\n\u001b[0;32m 50\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m 51\u001b[0m ctx\u001b[39m.\u001b[39mensure_initialized()\n\u001b[1;32m---> 52\u001b[0m tensors \u001b[39m=\u001b[39m pywrap_tfe\u001b[39m.\u001b[39;49mTFE_Py_Execute(ctx\u001b[39m.\u001b[39;49m_handle, device_name, op_name,\n\u001b[0;32m 53\u001b[0m inputs, attrs, num_outputs)\n\u001b[0;32m 54\u001b[0m \u001b[39mexcept\u001b[39;00m core\u001b[39m.\u001b[39m_NotOkStatusException \u001b[39mas\u001b[39;00m e:\n\u001b[0;32m 55\u001b[0m \u001b[39mif\u001b[39;00m name \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n", + "\u001b[1;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "# optimizer = optimizers.RMSprop(learning_rate = 0.000001)\n", + "\n", + "model.compile(optimizer=\"Adam\",\n", + " loss=\"categorical_crossentropy\",\n", + " metrics=[\"accuracy\"])\n", + "# fit the model with 100 epochs iteration\n", + "model.fit(new_x,\n", + " y,\n", + " # callbacks = get_callbacks(),\n", + " epochs = 500)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "model.compile(optimizer='Adam', loss='categorical_crossentropy', metrics=['categorical_accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + "7/7 [==============================] - 17s 1s/step - loss: 5.2433 - categorical_accuracy: 0.0000e+00\n", + "Epoch 2/10\n", + "7/7 [==============================] - 10s 1s/step - loss: 5.2421 - categorical_accuracy: 0.0050\n", + "Epoch 3/10\n", + "7/7 [==============================] - 10s 1s/step - loss: 5.2418 - categorical_accuracy: 0.0100\n", + "Epoch 4/10\n", + "7/7 [==============================] - 11s 1s/step - loss: 5.2416 - categorical_accuracy: 0.0100\n", + "Epoch 5/10\n", + "7/7 [==============================] - 11s 2s/step - loss: 5.2415 - categorical_accuracy: 0.0100\n", + "Epoch 6/10\n", + "7/7 [==============================] - 11s 2s/step - loss: 5.2414 - categorical_accuracy: 0.0100\n", + "Epoch 7/10\n", + "7/7 [==============================] - 11s 2s/step - loss: 5.2412 - categorical_accuracy: 0.0100\n", + "Epoch 8/10\n", + "7/7 [==============================] - 12s 2s/step - loss: 5.2411 - categorical_accuracy: 0.0100\n", + "Epoch 9/10\n", + "7/7 [==============================] - 13s 2s/step - loss: 5.2410 - categorical_accuracy: 0.0050\n", + "Epoch 10/10\n", + "7/7 [==============================] - 13s 2s/step - loss: 5.2409 - categorical_accuracy: 0.0100\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# model.fit(new_x, y, epochs=10)" + ] + } + ], + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}