{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 19730, "status": "ok", "timestamp": 1744098140927, "user": { "displayName": "Lan Hoang", "userId": "15367629887304430933" }, "user_tz": -420 }, "id": "Vnowuw1FWR6Y", "outputId": "18eb608c-528b-4a68-84c1-f83e2d1b5091" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: gradio in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (5.23.3)\n", "Requirement already satisfied: aiofiles<24.0,>=22.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (23.2.1)\n", "Requirement already satisfied: anyio<5.0,>=3.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (4.4.0)\n", "Requirement already satisfied: fastapi<1.0,>=0.115.2 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.115.12)\n", "Requirement already satisfied: ffmpy in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.5.0)\n", "Requirement already satisfied: gradio-client==1.8.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (1.8.0)\n", "Requirement already satisfied: groovy~=0.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.1.2)\n", "Requirement already satisfied: httpx>=0.24.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.27.0)\n", "Requirement already satisfied: huggingface-hub>=0.28.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.30.2)\n", "Requirement already satisfied: jinja2<4.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (3.1.4)\n", "Requirement already satisfied: markupsafe<4.0,>=2.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (2.1.5)\n", "Requirement already satisfied: numpy<3.0,>=1.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (1.26.4)\n", "Requirement already satisfied: orjson~=3.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (3.10.16)\n", "Requirement already satisfied: packaging in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (24.1)\n", "Requirement already satisfied: pandas<3.0,>=1.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (2.2.2)\n", "Requirement already satisfied: pillow<12.0,>=8.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (10.4.0)\n", "Requirement already satisfied: pydantic<2.12,>=2.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (2.11.2)\n", "Requirement already satisfied: pydub in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.25.1)\n", "Requirement already satisfied: python-multipart>=0.0.18 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.0.20)\n", "Requirement already satisfied: pyyaml<7.0,>=5.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (6.0.2)\n", "Requirement already satisfied: ruff>=0.9.3 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.11.4)\n", "Requirement already satisfied: safehttpx<0.2.0,>=0.1.6 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.1.6)\n", "Requirement already satisfied: semantic-version~=2.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (2.10.0)\n", "Requirement already satisfied: starlette<1.0,>=0.40.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.46.1)\n", "Requirement already satisfied: tomlkit<0.14.0,>=0.12.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.13.2)\n", "Requirement already satisfied: typer<1.0,>=0.12 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.15.2)\n", "Requirement already satisfied: typing-extensions~=4.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (4.12.2)\n", "Requirement already satisfied: uvicorn>=0.14.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio) (0.34.0)\n", "Requirement already satisfied: fsspec in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio-client==1.8.0->gradio) (2025.2.0)\n", "Requirement already satisfied: websockets<16.0,>=10.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from gradio-client==1.8.0->gradio) (15.0.1)\n", "Requirement already satisfied: idna>=2.8 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from anyio<5.0,>=3.0->gradio) (3.7)\n", "Requirement already satisfied: sniffio>=1.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from anyio<5.0,>=3.0->gradio) (1.3.1)\n", "Requirement already satisfied: exceptiongroup>=1.0.2 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from anyio<5.0,>=3.0->gradio) (1.2.2)\n", "Requirement already satisfied: certifi in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from httpx>=0.24.1->gradio) (2024.7.4)\n", "Requirement already satisfied: httpcore==1.* in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from httpx>=0.24.1->gradio) (1.0.5)\n", "Requirement already satisfied: h11<0.15,>=0.13 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from httpcore==1.*->httpx>=0.24.1->gradio) (0.14.0)\n", "Requirement already satisfied: filelock in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from huggingface-hub>=0.28.1->gradio) (3.17.0)\n", "Requirement already satisfied: requests in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from huggingface-hub>=0.28.1->gradio) (2.32.3)\n", "Requirement already satisfied: tqdm>=4.42.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from huggingface-hub>=0.28.1->gradio) (4.67.1)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas<3.0,>=1.0->gradio) (2.9.0.post0)\n", "Requirement already satisfied: pytz>=2020.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas<3.0,>=1.0->gradio) (2024.1)\n", "Requirement already satisfied: tzdata>=2022.7 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas<3.0,>=1.0->gradio) (2024.1)\n", "Requirement already satisfied: annotated-types>=0.6.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pydantic<2.12,>=2.0->gradio) (0.7.0)\n", "Requirement already satisfied: pydantic-core==2.33.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pydantic<2.12,>=2.0->gradio) (2.33.1)\n", "Requirement already satisfied: typing-inspection>=0.4.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pydantic<2.12,>=2.0->gradio) (0.4.0)\n", "Requirement already satisfied: click>=8.0.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from typer<1.0,>=0.12->gradio) (8.1.8)\n", "Requirement already satisfied: shellingham>=1.3.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from typer<1.0,>=0.12->gradio) (1.5.4)\n", "Requirement already satisfied: rich>=10.11.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from typer<1.0,>=0.12->gradio) (13.9.2)\n", "Requirement already satisfied: colorama in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from click>=8.0.0->typer<1.0,>=0.12->gradio) (0.4.6)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from python-dateutil>=2.8.2->pandas<3.0,>=1.0->gradio) (1.16.0)\n", "Requirement already satisfied: markdown-it-py>=2.2.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio) (3.0.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio) (2.18.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests->huggingface-hub>=0.28.1->gradio) (3.3.2)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests->huggingface-hub>=0.28.1->gradio) (2.2.2)\n", "Requirement already satisfied: mdurl~=0.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio) (0.1.2)\n", "Collecting git+https://github.com/tensorflow/docs\n", " Cloning https://github.com/tensorflow/docs to c:\\users\\pc\\appdata\\local\\temp\\pip-req-build-cktlp7ez\n", " Resolved https://github.com/tensorflow/docs to commit 18c3a45517af27c8513e165b8a52e6bbc1204b99\n", " Preparing metadata (setup.py): started\n", " Preparing metadata (setup.py): finished with status 'done'\n", "Requirement already satisfied: astor in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-docs==2025.3.6.10029) (0.8.1)\n", "Requirement already satisfied: absl-py in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-docs==2025.3.6.10029) (2.1.0)\n", "Requirement already satisfied: jinja2 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-docs==2025.3.6.10029) (3.1.4)\n", "Requirement already satisfied: nbformat in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-docs==2025.3.6.10029) (5.10.4)\n", "Requirement already satisfied: protobuf>=3.12 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-docs==2025.3.6.10029) (4.25.5)\n", "Requirement already satisfied: pyyaml in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-docs==2025.3.6.10029) (6.0.2)\n", "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from jinja2->tensorflow-docs==2025.3.6.10029) (2.1.5)\n", "Requirement already satisfied: fastjsonschema>=2.15 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from nbformat->tensorflow-docs==2025.3.6.10029) (2.20.0)\n", "Requirement already satisfied: jsonschema>=2.6 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from nbformat->tensorflow-docs==2025.3.6.10029) (4.23.0)\n", "Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from nbformat->tensorflow-docs==2025.3.6.10029) (5.7.2)\n", "Requirement already satisfied: traitlets>=5.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from nbformat->tensorflow-docs==2025.3.6.10029) (5.14.3)\n", "Requirement already satisfied: attrs>=22.2.0 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from jsonschema>=2.6->nbformat->tensorflow-docs==2025.3.6.10029) (24.2.0)\n", "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from jsonschema>=2.6->nbformat->tensorflow-docs==2025.3.6.10029) (2023.12.1)\n", "Requirement already satisfied: referencing>=0.28.4 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from jsonschema>=2.6->nbformat->tensorflow-docs==2025.3.6.10029) (0.35.1)\n", "Requirement already satisfied: rpds-py>=0.7.1 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from jsonschema>=2.6->nbformat->tensorflow-docs==2025.3.6.10029) (0.20.0)\n", "Requirement already satisfied: platformdirs>=2.5 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from jupyter-core!=5.0.*,>=4.12->nbformat->tensorflow-docs==2025.3.6.10029) (4.2.2)\n", "Requirement already satisfied: pywin32>=300 in c:\\users\\pc\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from jupyter-core!=5.0.*,>=4.12->nbformat->tensorflow-docs==2025.3.6.10029) (306)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " Running command git clone --filter=blob:none --quiet https://github.com/tensorflow/docs 'C:\\Users\\PC\\AppData\\Local\\Temp\\pip-req-build-cktlp7ez'\n" ] } ], "source": [ "%pip install gradio\n", "%pip install git+https://github.com/tensorflow/docs" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "executionInfo": { "elapsed": 18553, "status": "ok", "timestamp": 1744098159483, "user": { "displayName": "Lan Hoang", "userId": "15367629887304430933" }, "user_tz": -420 }, "id": "nBrcqD-WktG-" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n" ] } ], "source": [ "# -*- coding: utf-8 -*-\n", "\"\"\"🎬 Keras Video Classification CNN-RNN model\n", "\n", "Spaces for showing the model usage.\n", "\n", "Author:\n", " - Thomas Chaigneau @ChainYo\n", "\"\"\"\n", "import os\n", "import cv2\n", "\n", "import gradio as gr\n", "import numpy as np\n", "\n", "from tensorflow import keras\n", "\n", "from tensorflow_docs.vis import embed\n", "\n", "from huggingface_hub import from_pretrained_keras" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "executionInfo": { "elapsed": 109, "status": "ok", "timestamp": 1744098315598, "user": { "displayName": "Lan Hoang", "userId": "15367629887304430933" }, "user_tz": -420 }, "id": "2l8ZXA4-XD_-" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "A subdirectory or file Samples already exists.\n" ] } ], "source": [ "%mkdir Samples" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 677, "referenced_widgets": [ "7953decbcc66485d9e477a9d45777f99", "f8709807dedf4e349dd9d463db6abac7", "53a737a6c2794edcbd2d454273753b8b", "5b22eb49678f44c09cf7e5a6007133de", "32364e76989b40b39659c3f93e727fde", "cb23ba857ca548e88967a0ef2d3f32e4", "70331cb723934c37abd7a1815a969841", "7c618cdc320f4cb3909fe11d4124cd85", "d9fb30527f9a4bed9896bf89cbd4eb54", "fd8b65aab251427bac9380d843ad02e1", "9a3b710001334adc8684c2227e2b556b" ] }, "executionInfo": { "elapsed": 9546, "status": "ok", "timestamp": 1744103445447, "user": { "displayName": "Lan Hoang", "userId": "15367629887304430933" }, "user_tz": -420 }, "id": "G_1_pfzxlXSo", "outputId": "f1b2fb37-45b1-450b-ff8e-09fcb6f8ee55" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7953decbcc66485d9e477a9d45777f99", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Fetching 11 files: 0%| | 0/11 [00:00" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Kích thước ảnh đầu vào và số lượng đặc trưng\n", "IMG_SIZE = 224\n", "NUM_FEATURES = 2048\n", "\n", "# Tải mô hình CNN-RNN từ HuggingFace\n", "model = from_pretrained_keras(\"keras-io/video-classification-cnn-rnn\")\n", "\n", "# Tạo danh sách video ví dụ từ thư mục Samples\n", "samples = []\n", "for file in os.listdir(\"Samples\"):\n", " tag = file.split(\"_\")[1]\n", " samples.append([f\"samples/{file}\"])\n", "\n", "# Cắt phần hình vuông ở trung tâm frame\n", "def crop_center_square(frame):\n", " y, x = frame.shape[0:2]\n", " min_dim = min(y, x)\n", " start_x = (x // 2) - (min_dim // 2)\n", " start_y = (y // 2) - (min_dim // 2)\n", " return frame[start_y : start_y + min_dim, start_x : start_x + min_dim]\n", "\n", "# Đọc video và xử lý từng frame\n", "def load_video(path, max_frames=0, resize=(IMG_SIZE, IMG_SIZE)):\n", " cap = cv2.VideoCapture(path)\n", " frames = []\n", " try:\n", " while True:\n", " ret, frame = cap.read()\n", " if not ret:\n", " break\n", " frame = crop_center_square(frame)\n", " frame = cv2.resize(frame, resize)\n", " frame = frame[:, :, [2, 1, 0]]\n", " frames.append(frame)\n", "\n", " if len(frames) == max_frames:\n", " break\n", " finally:\n", " cap.release()\n", " return np.array(frames)\n", "\n", "# Xây dựng mô hình trích xuất đặc trưng (InceptionV3)\n", "def build_feature_extractor():\n", " feature_extractor = keras.applications.InceptionV3(\n", " weights=\"imagenet\",\n", " include_top=False,\n", " pooling=\"avg\",\n", " input_shape=(IMG_SIZE, IMG_SIZE, 3),\n", " )\n", " preprocess_input = keras.applications.inception_v3.preprocess_input\n", "\n", " inputs = keras.Input((IMG_SIZE, IMG_SIZE, 3))\n", " preprocessed = preprocess_input(inputs)\n", "\n", " outputs = feature_extractor(preprocessed)\n", " return keras.Model(inputs, outputs, name=\"feature_extractor\")\n", "\n", "# Tạo feature extractor 1 lần\n", "feature_extractor = build_feature_extractor()\n", "\n", "# Trích xuất đặc trưng cho từng frame của video\n", "def prepare_video(frames, max_seq_length: int = 20):\n", " frames = frames[None, ...]\n", " frame_mask = np.zeros(shape=(1, max_seq_length,), dtype=\"bool\")\n", " frame_features = np.zeros(shape=(1, max_seq_length, NUM_FEATURES), dtype=\"float32\")\n", "\n", " for i, batch in enumerate(frames):\n", " video_length = batch.shape[0]\n", " length = min(max_seq_length, video_length)\n", " for j in range(length):\n", " frame_features[i, j, :] = feature_extractor.predict(batch[None, j, :])\n", " frame_mask[i, :length] = 1 # 1 = not masked, 0 = masked\n", "\n", " return frame_features, frame_mask\n", "\n", "# Dự đoán hành động từ video\n", "def sequence_prediction(path):\n", " class_vocab = [\"CricketShot\", \"PlayingCello\", \"Punch\", \"ShavingBeard\", \"TennisSwing\"]\n", "\n", " frames = load_video(path)\n", " frame_features, frame_mask = prepare_video(frames)\n", " probabilities = model.predict([frame_features, frame_mask])[0]\n", "\n", " preds = {}\n", " for i in np.argsort(probabilities)[::-1]:\n", " preds[class_vocab[i]] = float(probabilities[i])\n", " return preds\n", "\n", "# HTML mô tả bên dưới app\n", "article = article = \"
Space by Thomas Chaigneau
Keras example by Sayak Paul
\"\n", "\n", "# Tạo giao diện Gradio\n", "app = gr.Interface(\n", " fn=sequence_prediction,\n", " inputs=[gr.Video(label=\"Video\")],\n", " outputs=gr.Label(label=\"Prediction\"),\n", " title=\"Keras Video Classification with CNN-RNN\",\n", " description=\"Video classification demo using CNN-RNN based model.\",\n", " article=article,\n", " examples=samples\n", ")\n", "\n", "# Khởi chạy ứng dụng\n", "app.launch()\n", "\n" ] } ], "metadata": { "colab": { "authorship_tag": "ABX9TyNo8ELbXbt4Di76kKEeSLhJ", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.5" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "32364e76989b40b39659c3f93e727fde": { "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 } }, "53a737a6c2794edcbd2d454273753b8b": { "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": "", "description_tooltip": null, "layout": "IPY_MODEL_7c618cdc320f4cb3909fe11d4124cd85", "max": 11, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_d9fb30527f9a4bed9896bf89cbd4eb54", "value": 11 } }, "5b22eb49678f44c09cf7e5a6007133de": { "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_fd8b65aab251427bac9380d843ad02e1", "placeholder": "​", "style": "IPY_MODEL_9a3b710001334adc8684c2227e2b556b", "value": " 11/11 [00:00<00:00, 569.14it/s]" } }, "70331cb723934c37abd7a1815a969841": { "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": "" } }, "7953decbcc66485d9e477a9d45777f99": { "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_f8709807dedf4e349dd9d463db6abac7", "IPY_MODEL_53a737a6c2794edcbd2d454273753b8b", "IPY_MODEL_5b22eb49678f44c09cf7e5a6007133de" ], "layout": "IPY_MODEL_32364e76989b40b39659c3f93e727fde" } }, "7c618cdc320f4cb3909fe11d4124cd85": { "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 } }, "9a3b710001334adc8684c2227e2b556b": { "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": "" } }, "cb23ba857ca548e88967a0ef2d3f32e4": { "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 } }, "d9fb30527f9a4bed9896bf89cbd4eb54": { "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": "" } }, "f8709807dedf4e349dd9d463db6abac7": { "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_cb23ba857ca548e88967a0ef2d3f32e4", "placeholder": "​", "style": "IPY_MODEL_70331cb723934c37abd7a1815a969841", "value": "Fetching 11 files: 100%" } }, "fd8b65aab251427bac9380d843ad02e1": { "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 } } } } }, "nbformat": 4, "nbformat_minor": 0 }