{"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# 0. Install and Import Dependencies","metadata":{"tags":[]}},{"cell_type":"code","source":"# !pip list","metadata":{"scrolled":true,"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:19.578487Z","iopub.execute_input":"2023-11-04T20:00:19.579320Z","iopub.status.idle":"2023-11-04T20:00:19.584264Z","shell.execute_reply.started":"2023-11-04T20:00:19.579285Z","shell.execute_reply":"2023-11-04T20:00:19.583411Z"},"trusted":true},"execution_count":1,"outputs":[]},{"cell_type":"code","source":"%pip install opencv-python matplotlib imageio gdown tensorflow","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:19.585946Z","iopub.execute_input":"2023-11-04T20:00:19.586196Z","iopub.status.idle":"2023-11-04T20:00:31.620285Z","shell.execute_reply.started":"2023-11-04T20:00:19.586174Z","shell.execute_reply":"2023-11-04T20:00:31.619227Z"},"trusted":true},"execution_count":2,"outputs":[{"name":"stdout","text":"Requirement already satisfied: opencv-python in /opt/conda/lib/python3.10/site-packages (4.8.0.76)\nRequirement already satisfied: matplotlib in /opt/conda/lib/python3.10/site-packages (3.7.2)\nRequirement already satisfied: imageio in /opt/conda/lib/python3.10/site-packages (2.31.1)\nRequirement already satisfied: gdown in /opt/conda/lib/python3.10/site-packages (4.7.1)\nRequirement already satisfied: tensorflow in /opt/conda/lib/python3.10/site-packages (2.12.0)\nRequirement already satisfied: numpy>=1.21.2 in /opt/conda/lib/python3.10/site-packages (from opencv-python) (1.23.5)\nRequirement already satisfied: contourpy>=1.0.1 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (1.1.0)\nRequirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (0.11.0)\nRequirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (4.40.0)\nRequirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (1.4.4)\nRequirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (21.3)\nRequirement already satisfied: pillow>=6.2.0 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (9.5.0)\nRequirement already satisfied: pyparsing<3.1,>=2.3.1 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (3.0.9)\nRequirement already satisfied: python-dateutil>=2.7 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (2.8.2)\nRequirement already satisfied: filelock in /opt/conda/lib/python3.10/site-packages (from gdown) (3.12.2)\nRequirement already satisfied: requests[socks] in /opt/conda/lib/python3.10/site-packages (from gdown) (2.31.0)\nRequirement already satisfied: six in /opt/conda/lib/python3.10/site-packages (from gdown) (1.16.0)\nRequirement already satisfied: tqdm in /opt/conda/lib/python3.10/site-packages (from gdown) (4.66.1)\nRequirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.10/site-packages (from gdown) (4.12.2)\nRequirement already satisfied: absl-py>=1.0.0 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (1.4.0)\nRequirement already satisfied: astunparse>=1.6.0 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (1.6.3)\nRequirement already satisfied: flatbuffers>=2.0 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (23.5.26)\nRequirement already satisfied: gast<=0.4.0,>=0.2.1 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (0.4.0)\nRequirement already satisfied: google-pasta>=0.1.1 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (0.2.0)\nRequirement already satisfied: grpcio<2.0,>=1.24.3 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (1.51.1)\nRequirement already satisfied: h5py>=2.9.0 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (3.9.0)\nRequirement already satisfied: jax>=0.3.15 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (0.4.13)\nRequirement already satisfied: keras<2.13,>=2.12.0 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (2.12.0)\nRequirement already satisfied: libclang>=13.0.0 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (16.0.0)\nRequirement already satisfied: opt-einsum>=2.3.2 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (3.3.0)\nRequirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (3.20.3)\nRequirement already satisfied: setuptools in /opt/conda/lib/python3.10/site-packages (from tensorflow) (68.0.0)\nRequirement already satisfied: tensorboard<2.13,>=2.12 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (2.12.3)\nRequirement already satisfied: tensorflow-estimator<2.13,>=2.12.0 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (2.12.0)\nRequirement already satisfied: termcolor>=1.1.0 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (2.3.0)\nRequirement already satisfied: typing-extensions>=3.6.6 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (4.6.3)\nRequirement already satisfied: wrapt<1.15,>=1.11.0 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (1.14.1)\nRequirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /opt/conda/lib/python3.10/site-packages (from tensorflow) (0.32.0)\nRequirement already satisfied: wheel<1.0,>=0.23.0 in /opt/conda/lib/python3.10/site-packages (from astunparse>=1.6.0->tensorflow) (0.40.0)\nRequirement already satisfied: ml-dtypes>=0.1.0 in /opt/conda/lib/python3.10/site-packages (from jax>=0.3.15->tensorflow) (0.2.0)\nRequirement already satisfied: scipy>=1.7 in /opt/conda/lib/python3.10/site-packages (from jax>=0.3.15->tensorflow) (1.11.2)\nRequirement already satisfied: google-auth<3,>=1.6.3 in /opt/conda/lib/python3.10/site-packages (from tensorboard<2.13,>=2.12->tensorflow) (2.20.0)\nRequirement already satisfied: google-auth-oauthlib<1.1,>=0.5 in /opt/conda/lib/python3.10/site-packages (from tensorboard<2.13,>=2.12->tensorflow) (1.0.0)\nRequirement already satisfied: markdown>=2.6.8 in /opt/conda/lib/python3.10/site-packages (from tensorboard<2.13,>=2.12->tensorflow) (3.4.3)\nRequirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /opt/conda/lib/python3.10/site-packages (from tensorboard<2.13,>=2.12->tensorflow) (0.7.1)\nRequirement already satisfied: werkzeug>=1.0.1 in /opt/conda/lib/python3.10/site-packages (from tensorboard<2.13,>=2.12->tensorflow) (2.3.7)\nRequirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.10/site-packages (from beautifulsoup4->gdown) (2.3.2.post1)\nRequirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/lib/python3.10/site-packages (from requests[socks]->gdown) (3.1.0)\nRequirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.10/site-packages (from requests[socks]->gdown) (3.4)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /opt/conda/lib/python3.10/site-packages (from requests[socks]->gdown) (1.26.15)\nRequirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.10/site-packages (from requests[socks]->gdown) (2023.7.22)\nRequirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /opt/conda/lib/python3.10/site-packages (from requests[socks]->gdown) (1.7.1)\nRequirement already satisfied: cachetools<6.0,>=2.0.0 in /opt/conda/lib/python3.10/site-packages (from google-auth<3,>=1.6.3->tensorboard<2.13,>=2.12->tensorflow) (4.2.4)\nRequirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.10/site-packages (from google-auth<3,>=1.6.3->tensorboard<2.13,>=2.12->tensorflow) (0.2.7)\nRequirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.10/site-packages (from google-auth<3,>=1.6.3->tensorboard<2.13,>=2.12->tensorflow) (4.9)\nRequirement already satisfied: requests-oauthlib>=0.7.0 in /opt/conda/lib/python3.10/site-packages (from google-auth-oauthlib<1.1,>=0.5->tensorboard<2.13,>=2.12->tensorflow) (1.3.1)\nRequirement already satisfied: MarkupSafe>=2.1.1 in /opt/conda/lib/python3.10/site-packages (from werkzeug>=1.0.1->tensorboard<2.13,>=2.12->tensorflow) (2.1.3)\nRequirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.10/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.13,>=2.12->tensorflow) (0.4.8)\nRequirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.10/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<1.1,>=0.5->tensorboard<2.13,>=2.12->tensorflow) (3.2.2)\nNote: you may need to restart the kernel to use updated packages.\n","output_type":"stream"}]},{"cell_type":"code","source":"import os\nimport cv2\nimport tensorflow as tf\nimport numpy as np\nfrom typing import List\nfrom matplotlib import pyplot as plt\n","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:31.621563Z","iopub.execute_input":"2023-11-04T20:00:31.621851Z","iopub.status.idle":"2023-11-04T20:00:35.167577Z","shell.execute_reply.started":"2023-11-04T20:00:31.621827Z","shell.execute_reply":"2023-11-04T20:00:35.166208Z"},"trusted":true},"execution_count":3,"outputs":[{"name":"stderr","text":"/opt/conda/lib/python3.10/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\n warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n","output_type":"stream"}]},{"cell_type":"code","source":"import imageio","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:35.169573Z","iopub.execute_input":"2023-11-04T20:00:35.170794Z","iopub.status.idle":"2023-11-04T20:00:35.205446Z","shell.execute_reply.started":"2023-11-04T20:00:35.170724Z","shell.execute_reply":"2023-11-04T20:00:35.204769Z"},"trusted":true},"execution_count":4,"outputs":[]},{"cell_type":"code","source":"tf.config.list_physical_devices('GPU')","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:35.208811Z","iopub.execute_input":"2023-11-04T20:00:35.209060Z","iopub.status.idle":"2023-11-04T20:00:35.282538Z","shell.execute_reply.started":"2023-11-04T20:00:35.209039Z","shell.execute_reply":"2023-11-04T20:00:35.281580Z"},"trusted":true},"execution_count":5,"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":"[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]"},"metadata":{}}]},{"cell_type":"code","source":"physical_devices = tf.config.list_physical_devices('GPU')\ntry:\n tf.config.experimental.set_memory_growth(physical_devices[0], True)\nexcept:\n pass","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:35.283924Z","iopub.execute_input":"2023-11-04T20:00:35.284357Z","iopub.status.idle":"2023-11-04T20:00:35.292408Z","shell.execute_reply.started":"2023-11-04T20:00:35.284323Z","shell.execute_reply":"2023-11-04T20:00:35.291489Z"},"trusted":true},"execution_count":6,"outputs":[]},{"cell_type":"markdown","source":"# 1. Build Data Loading Functions","metadata":{"tags":[]}},{"cell_type":"code","source":"import gdown","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:35.294033Z","iopub.execute_input":"2023-11-04T20:00:35.294315Z","iopub.status.idle":"2023-11-04T20:00:35.419842Z","shell.execute_reply.started":"2023-11-04T20:00:35.294283Z","shell.execute_reply":"2023-11-04T20:00:35.419068Z"},"trusted":true},"execution_count":7,"outputs":[]},{"cell_type":"code","source":"url = 'https://drive.google.com/uc?id=1YlvpDLix3S-U8fd-gqRwPcWXAXm8JwjL'\noutput = 'data.zip'\ngdown.download(url, output, quiet=False)\ngdown.extractall('data.zip')","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:35.420909Z","iopub.execute_input":"2023-11-04T20:00:35.421406Z","iopub.status.idle":"2023-11-04T20:00:45.232065Z","shell.execute_reply.started":"2023-11-04T20:00:35.421379Z","shell.execute_reply":"2023-11-04T20:00:45.231152Z"},"trusted":true},"execution_count":8,"outputs":[{"name":"stderr","text":"Downloading...\nFrom (uriginal): https://drive.google.com/uc?id=1YlvpDLix3S-U8fd-gqRwPcWXAXm8JwjL\nFrom (redirected): https://drive.google.com/uc?id=1YlvpDLix3S-U8fd-gqRwPcWXAXm8JwjL&confirm=t&uuid=287568f3-bc5a-43f5-a634-e82d54f84f57\nTo: /kaggle/working/data.zip\n100%|██████████| 423M/423M [00:04<00:00, 96.4MB/s] \n","output_type":"stream"},{"execution_count":8,"output_type":"execute_result","data":{"text/plain":"['data/',\n 'data/alignments/',\n 'data/alignments/s1/',\n 'data/alignments/s1/bbaf2n.align',\n 'data/alignments/s1/bbaf3s.align',\n 'data/alignments/s1/bbaf4p.align',\n 'data/alignments/s1/bbaf5a.align',\n 'data/alignments/s1/bbal6n.align',\n 'data/alignments/s1/bbal7s.align',\n 'data/alignments/s1/bbal8p.align',\n 'data/alignments/s1/bbal9a.align',\n 'data/alignments/s1/bbas1s.align',\n 'data/alignments/s1/bbas2p.align',\n 'data/alignments/s1/bbas3a.align',\n 'data/alignments/s1/bbaszn.align',\n 'data/alignments/s1/bbaz4n.align',\n 'data/alignments/s1/bbaz5s.align',\n 'data/alignments/s1/bbaz6p.align',\n 'data/alignments/s1/bbaz7a.align',\n 'data/alignments/s1/bbbf6n.align',\n 'data/alignments/s1/bbbf7s.align',\n 'data/alignments/s1/bbbf8p.align',\n 'data/alignments/s1/bbbf9a.align',\n 'data/alignments/s1/bbbm1s.align',\n 'data/alignments/s1/bbbm2p.align',\n 'data/alignments/s1/bbbm3a.align',\n 'data/alignments/s1/bbbmzn.align',\n 'data/alignments/s1/bbbs4n.align',\n 'data/alignments/s1/bbbs5s.align',\n 'data/alignments/s1/bbbs6p.align',\n 'data/alignments/s1/bbbs7a.align',\n 'data/alignments/s1/bbbz8n.align',\n 'data/alignments/s1/bbbz9s.align',\n 'data/alignments/s1/bbie8n.align',\n 'data/alignments/s1/bbie9s.align',\n 'data/alignments/s1/bbif1a.align',\n 'data/alignments/s1/bbifzp.align',\n 'data/alignments/s1/bbil2n.align',\n 'data/alignments/s1/bbil3s.align',\n 'data/alignments/s1/bbil4p.align',\n 'data/alignments/s1/bbil5a.align',\n 'data/alignments/s1/bbir6n.align',\n 'data/alignments/s1/bbir7s.align',\n 'data/alignments/s1/bbir8p.align',\n 'data/alignments/s1/bbir9a.align',\n 'data/alignments/s1/bbiz1s.align',\n 'data/alignments/s1/bbiz2p.align',\n 'data/alignments/s1/bbiz3a.align',\n 'data/alignments/s1/bbizzn.align',\n 'data/alignments/s1/bbwg1s.align',\n 'data/alignments/s1/bbwg2p.align',\n 'data/alignments/s1/bbwg3a.align',\n 'data/alignments/s1/bbwgzn.align',\n 'data/alignments/s1/bbwm4n.align',\n 'data/alignments/s1/bbwm5s.align',\n 'data/alignments/s1/bbwm6p.align',\n 'data/alignments/s1/bbwm7a.align',\n 'data/alignments/s1/bbws8n.align',\n 'data/alignments/s1/bbws9s.align',\n 'data/alignments/s1/bbwt1a.align',\n 'data/alignments/s1/bbwtzp.align',\n 'data/alignments/s1/bgaa6n.align',\n 'data/alignments/s1/bgaa7s.align',\n 'data/alignments/s1/bgaa8p.align',\n 'data/alignments/s1/bgaa9a.align',\n 'data/alignments/s1/bgah1s.align',\n 'data/alignments/s1/bgah2p.align',\n 'data/alignments/s1/bgah3a.align',\n 'data/alignments/s1/bgahzn.align',\n 'data/alignments/s1/bgan4n.align',\n 'data/alignments/s1/bgan5s.align',\n 'data/alignments/s1/bgan6p.align',\n 'data/alignments/s1/bgan7a.align',\n 'data/alignments/s1/bgat8n.align',\n 'data/alignments/s1/bgat9s.align',\n 'data/alignments/s1/bgau1a.align',\n 'data/alignments/s1/bgauzp.align',\n 'data/alignments/s1/bgbb1s.align',\n 'data/alignments/s1/bgbb2p.align',\n 'data/alignments/s1/bgbb3a.align',\n 'data/alignments/s1/bgbbzn.align',\n 'data/alignments/s1/bgbh4n.align',\n 'data/alignments/s1/bgbh5s.align',\n 'data/alignments/s1/bgbh6p.align',\n 'data/alignments/s1/bgbh7a.align',\n 'data/alignments/s1/bgbn8n.align',\n 'data/alignments/s1/bgbn9s.align',\n 'data/alignments/s1/bgbo1a.align',\n 'data/alignments/s1/bgbozp.align',\n 'data/alignments/s1/bgbu2n.align',\n 'data/alignments/s1/bgbu3s.align',\n 'data/alignments/s1/bgbu4p.align',\n 'data/alignments/s1/bgbu5a.align',\n 'data/alignments/s1/bgia2n.align',\n 'data/alignments/s1/bgia3s.align',\n 'data/alignments/s1/bgia4p.align',\n 'data/alignments/s1/bgia5a.align',\n 'data/alignments/s1/bgig6n.align',\n 'data/alignments/s1/bgig7s.align',\n 'data/alignments/s1/bgig8p.align',\n 'data/alignments/s1/bgig9a.align',\n 'data/alignments/s1/bgin1s.align',\n 'data/alignments/s1/bgin2p.align',\n 'data/alignments/s1/bgin3a.align',\n 'data/alignments/s1/bginzn.align',\n 'data/alignments/s1/bgit4n.align',\n 'data/alignments/s1/bgit5s.align',\n 'data/alignments/s1/bgit6p.align',\n 'data/alignments/s1/bgit7a.align',\n 'data/alignments/s1/bgwb4n.align',\n 'data/alignments/s1/bgwb5s.align',\n 'data/alignments/s1/bgwb6p.align',\n 'data/alignments/s1/bgwb7a.align',\n 'data/alignments/s1/bgwh8n.align',\n 'data/alignments/s1/bgwh9s.align',\n 'data/alignments/s1/bgwi1a.align',\n 'data/alignments/s1/bgwizp.align',\n 'data/alignments/s1/bgwo2n.align',\n 'data/alignments/s1/bgwo3s.align',\n 'data/alignments/s1/bgwo4p.align',\n 'data/alignments/s1/bgwo5a.align',\n 'data/alignments/s1/bgwu6n.align',\n 'data/alignments/s1/bgwu7s.align',\n 'data/alignments/s1/bgwu8p.align',\n 'data/alignments/s1/bgwu9a.align',\n 'data/alignments/s1/braf8n.align',\n 'data/alignments/s1/braf9s.align',\n 'data/alignments/s1/brag1a.align',\n 'data/alignments/s1/bragzp.align',\n 'data/alignments/s1/bram2n.align',\n 'data/alignments/s1/bram3s.align',\n 'data/alignments/s1/bram4p.align',\n 'data/alignments/s1/bram5a.align',\n 'data/alignments/s1/bras6n.align',\n 'data/alignments/s1/bras7s.align',\n 'data/alignments/s1/bras8p.align',\n 'data/alignments/s1/bras9a.align',\n 'data/alignments/s1/brba1a.align',\n 'data/alignments/s1/brbazp.align',\n 'data/alignments/s1/brbg2n.align',\n 'data/alignments/s1/brbg3s.align',\n 'data/alignments/s1/brbg4p.align',\n 'data/alignments/s1/brbg5a.align',\n 'data/alignments/s1/brbm6n.align',\n 'data/alignments/s1/brbm7s.align',\n 'data/alignments/s1/brbm8p.align',\n 'data/alignments/s1/brbm9a.align',\n 'data/alignments/s1/brbt1s.align',\n 'data/alignments/s1/brbt2p.align',\n 'data/alignments/s1/brbt3a.align',\n 'data/alignments/s1/brbtzn.align',\n 'data/alignments/s1/brif4n.align',\n 'data/alignments/s1/brif5s.align',\n 'data/alignments/s1/brif6p.align',\n 'data/alignments/s1/brif7a.align',\n 'data/alignments/s1/bril8n.align',\n 'data/alignments/s1/bril9s.align',\n 'data/alignments/s1/brim1a.align',\n 'data/alignments/s1/brimzp.align',\n 'data/alignments/s1/bris2n.align',\n 'data/alignments/s1/bris3s.align',\n 'data/alignments/s1/bris4p.align',\n 'data/alignments/s1/bris5a.align',\n 'data/alignments/s1/briz6n.align',\n 'data/alignments/s1/briz7s.align',\n 'data/alignments/s1/briz8p.align',\n 'data/alignments/s1/briz9a.align',\n 'data/alignments/s1/brwa2n.align',\n 'data/alignments/s1/brwa3s.align',\n 'data/alignments/s1/brwa4p.align',\n 'data/alignments/s1/brwa5a.align',\n 'data/alignments/s1/brwg6n.align',\n 'data/alignments/s1/brwg7s.align',\n 'data/alignments/s1/brwg8p.align',\n 'data/alignments/s1/brwg9a.align',\n 'data/alignments/s1/brwn1s.align',\n 'data/alignments/s1/brwn2p.align',\n 'data/alignments/s1/brwn3a.align',\n 'data/alignments/s1/brwnzn.align',\n 'data/alignments/s1/brwt4n.align',\n 'data/alignments/s1/brwt5s.align',\n 'data/alignments/s1/brwt6p.align',\n 'data/alignments/s1/brwt7a.align',\n 'data/alignments/s1/bwaa1s.align',\n 'data/alignments/s1/bwaa2p.align',\n 'data/alignments/s1/bwaa3a.align',\n 'data/alignments/s1/bwaazn.align',\n 'data/alignments/s1/bwag4n.align',\n 'data/alignments/s1/bwag5s.align',\n 'data/alignments/s1/bwag6p.align',\n 'data/alignments/s1/bwag7a.align',\n 'data/alignments/s1/bwam8n.align',\n 'data/alignments/s1/bwam9s.align',\n 'data/alignments/s1/bwan1a.align',\n 'data/alignments/s1/bwanzp.align',\n 'data/alignments/s1/bwat2n.align',\n 'data/alignments/s1/bwat3s.align',\n 'data/alignments/s1/bwat4p.align',\n 'data/alignments/s1/bwat5a.align',\n 'data/alignments/s1/bwba4n.align',\n 'data/alignments/s1/bwba5s.align',\n 'data/alignments/s1/bwba6p.align',\n 'data/alignments/s1/bwba7a.align',\n 'data/alignments/s1/bwbg8n.align',\n 'data/alignments/s1/bwbg9s.align',\n 'data/alignments/s1/bwbh1a.align',\n 'data/alignments/s1/bwbhzp.align',\n 'data/alignments/s1/bwbn2n.align',\n 'data/alignments/s1/bwbn3s.align',\n 'data/alignments/s1/bwbn4p.align',\n 'data/alignments/s1/bwbn5a.align',\n 'data/alignments/s1/bwbt6n.align',\n 'data/alignments/s1/bwbt7s.align',\n 'data/alignments/s1/bwbt8p.align',\n 'data/alignments/s1/bwbt9a.align',\n 'data/alignments/s1/bwig1s.align',\n 'data/alignments/s1/bwig2p.align',\n 'data/alignments/s1/bwig3a.align',\n 'data/alignments/s1/bwigzn.align',\n 'data/alignments/s1/bwim4n.align',\n 'data/alignments/s1/bwim5s.align',\n 'data/alignments/s1/bwim6p.align',\n 'data/alignments/s1/bwim7a.align',\n 'data/alignments/s1/bwis8n.align',\n 'data/alignments/s1/bwis9s.align',\n 'data/alignments/s1/bwit1a.align',\n 'data/alignments/s1/bwitzp.align',\n 'data/alignments/s1/bwwa8n.align',\n 'data/alignments/s1/bwwa9s.align',\n 'data/alignments/s1/bwwb1a.align',\n 'data/alignments/s1/bwwbzp.align',\n 'data/alignments/s1/bwwh2n.align',\n 'data/alignments/s1/bwwh3s.align',\n 'data/alignments/s1/bwwh4p.align',\n 'data/alignments/s1/bwwh5a.align',\n 'data/alignments/s1/bwwn6n.align',\n 'data/alignments/s1/bwwn7s.align',\n 'data/alignments/s1/bwwn8p.align',\n 'data/alignments/s1/bwwn9a.align',\n 'data/alignments/s1/bwwu1s.align',\n 'data/alignments/s1/bwwu2p.align',\n 'data/alignments/s1/bwwu3a.align',\n 'data/alignments/s1/bwwuzn.align',\n 'data/alignments/s1/lbad6n.align',\n 'data/alignments/s1/lbad7s.align',\n 'data/alignments/s1/lbad8p.align',\n 'data/alignments/s1/lbad9a.align',\n 'data/alignments/s1/lbak1s.align',\n 'data/alignments/s1/lbak2p.align',\n 'data/alignments/s1/lbak3a.align',\n 'data/alignments/s1/lbakzn.align',\n 'data/alignments/s1/lbaq4n.align',\n 'data/alignments/s1/lbaq5s.align',\n 'data/alignments/s1/lbaq6p.align',\n 'data/alignments/s1/lbaq7a.align',\n 'data/alignments/s1/lbax8n.align',\n 'data/alignments/s1/lbax9s.align',\n 'data/alignments/s1/lbay1a.align',\n 'data/alignments/s1/lbayzp.align',\n 'data/alignments/s1/lbbe1s.align',\n 'data/alignments/s1/lbbe2p.align',\n 'data/alignments/s1/lbbe3a.align',\n 'data/alignments/s1/lbbezn.align',\n 'data/alignments/s1/lbbk4n.align',\n 'data/alignments/s1/lbbk5s.align',\n 'data/alignments/s1/lbbk6p.align',\n 'data/alignments/s1/lbbk7a.align',\n 'data/alignments/s1/lbbq8n.align',\n 'data/alignments/s1/lbbq9s.align',\n 'data/alignments/s1/lbbr1a.align',\n 'data/alignments/s1/lbbrzp.align',\n 'data/alignments/s1/lbby2n.align',\n 'data/alignments/s1/lbby3s.align',\n 'data/alignments/s1/lbby4p.align',\n 'data/alignments/s1/lbby5a.align',\n 'data/alignments/s1/lbid2n.align',\n 'data/alignments/s1/lbid3s.align',\n 'data/alignments/s1/lbid4p.align',\n 'data/alignments/s1/lbid5a.align',\n 'data/alignments/s1/lbij6n.align',\n 'data/alignments/s1/lbij7s.align',\n 'data/alignments/s1/lbij8p.align',\n 'data/alignments/s1/lbij9a.align',\n 'data/alignments/s1/lbiq1s.align',\n 'data/alignments/s1/lbiq2p.align',\n 'data/alignments/s1/lbiq3a.align',\n 'data/alignments/s1/lbiqzn.align',\n 'data/alignments/s1/lbix4n.align',\n 'data/alignments/s1/lbix5s.align',\n 'data/alignments/s1/lbix6p.align',\n 'data/alignments/s1/lbix7a.align',\n 'data/alignments/s1/lbwe4n.align',\n 'data/alignments/s1/lbwe5s.align',\n 'data/alignments/s1/lbwe6p.align',\n 'data/alignments/s1/lbwe7a.align',\n 'data/alignments/s1/lbwk8n.align',\n 'data/alignments/s1/lbwk9s.align',\n 'data/alignments/s1/lbwl1a.align',\n 'data/alignments/s1/lbwlzp.align',\n 'data/alignments/s1/lbwr2n.align',\n 'data/alignments/s1/lbwr3s.align',\n 'data/alignments/s1/lbwr4p.align',\n 'data/alignments/s1/lbwr5a.align',\n 'data/alignments/s1/lbwy6n.align',\n 'data/alignments/s1/lbwy7s.align',\n 'data/alignments/s1/lbwy8p.align',\n 'data/alignments/s1/lbwy9a.align',\n 'data/alignments/s1/lgaf4n.align',\n 'data/alignments/s1/lgaf5s.align',\n 'data/alignments/s1/lgaf6p.align',\n 'data/alignments/s1/lgaf7a.align',\n 'data/alignments/s1/lgal8n.align',\n 'data/alignments/s1/lgal9s.align',\n 'data/alignments/s1/lgam1a.align',\n 'data/alignments/s1/lgamzp.align',\n 'data/alignments/s1/lgas2n.align',\n 'data/alignments/s1/lgas3s.align',\n 'data/alignments/s1/lgas4p.align',\n 'data/alignments/s1/lgas5a.align',\n 'data/alignments/s1/lgaz6n.align',\n 'data/alignments/s1/lgaz7s.align',\n 'data/alignments/s1/lgaz8p.align',\n 'data/alignments/s1/lgaz9a.align',\n 'data/alignments/s1/lgbf8n.align',\n 'data/alignments/s1/lgbf9s.align',\n 'data/alignments/s1/lgbg1a.align',\n 'data/alignments/s1/lgbgzp.align',\n 'data/alignments/s1/lgbm2n.align',\n 'data/alignments/s1/lgbm3s.align',\n 'data/alignments/s1/lgbm4p.align',\n 'data/alignments/s1/lgbm5a.align',\n 'data/alignments/s1/lgbs6n.align',\n 'data/alignments/s1/lgbs7s.align',\n 'data/alignments/s1/lgbs8p.align',\n 'data/alignments/s1/lgbs9a.align',\n 'data/alignments/s1/lgif1s.align',\n 'data/alignments/s1/lgif2p.align',\n 'data/alignments/s1/lgif3a.align',\n 'data/alignments/s1/lgifzn.align',\n 'data/alignments/s1/lgil4n.align',\n 'data/alignments/s1/lgil5s.align',\n 'data/alignments/s1/lgil6p.align',\n 'data/alignments/s1/lgil7a.align',\n 'data/alignments/s1/lgir8n.align',\n 'data/alignments/s1/lgir9s.align',\n 'data/alignments/s1/lgis1a.align',\n 'data/alignments/s1/lgiszp.align',\n 'data/alignments/s1/lgiz2n.align',\n 'data/alignments/s1/lgiz3s.align',\n 'data/alignments/s1/lgiz4p.align',\n 'data/alignments/s1/lgiz5a.align',\n 'data/alignments/s1/lgwa1a.align',\n 'data/alignments/s1/lgwazp.align',\n 'data/alignments/s1/lgwg2n.align',\n 'data/alignments/s1/lgwg3s.align',\n 'data/alignments/s1/lgwg4p.align',\n 'data/alignments/s1/lgwg5a.align',\n 'data/alignments/s1/lgwm6n.align',\n 'data/alignments/s1/lgwm7s.align',\n 'data/alignments/s1/lgwm8p.align',\n 'data/alignments/s1/lgwm9a.align',\n 'data/alignments/s1/lgwt1s.align',\n 'data/alignments/s1/lgwt2p.align',\n 'data/alignments/s1/lgwt3a.align',\n 'data/alignments/s1/lgwtzn.align',\n 'data/alignments/s1/lrae2n.align',\n 'data/alignments/s1/lrae3s.align',\n 'data/alignments/s1/lrae4p.align',\n 'data/alignments/s1/lrae5a.align',\n 'data/alignments/s1/lrak6n.align',\n 'data/alignments/s1/lrak7s.align',\n 'data/alignments/s1/lrak8p.align',\n 'data/alignments/s1/lrak9a.align',\n 'data/alignments/s1/lrar1s.align',\n 'data/alignments/s1/lrar2p.align',\n 'data/alignments/s1/lrar3a.align',\n 'data/alignments/s1/lrarzn.align',\n 'data/alignments/s1/lray4n.align',\n 'data/alignments/s1/lray5s.align',\n 'data/alignments/s1/lray6p.align',\n 'data/alignments/s1/lray7a.align',\n 'data/alignments/s1/lrbe6n.align',\n 'data/alignments/s1/lrbe7s.align',\n 'data/alignments/s1/lrbe8p.align',\n 'data/alignments/s1/lrbe9a.align',\n 'data/alignments/s1/lrbl1s.align',\n 'data/alignments/s1/lrbl2p.align',\n 'data/alignments/s1/lrbl3a.align',\n 'data/alignments/s1/lrblzn.align',\n 'data/alignments/s1/lrbr4n.align',\n 'data/alignments/s1/lrbr5s.align',\n 'data/alignments/s1/lrbr6p.align',\n 'data/alignments/s1/lrbr7a.align',\n 'data/alignments/s1/lrby8n.align',\n 'data/alignments/s1/lrby9s.align',\n 'data/alignments/s1/lrbz1a.align',\n 'data/alignments/s1/lrbzzp.align',\n 'data/alignments/s1/lrid8n.align',\n 'data/alignments/s1/lrid9s.align',\n 'data/alignments/s1/lrie1a.align',\n 'data/alignments/s1/lriezp.align',\n 'data/alignments/s1/lrik2n.align',\n 'data/alignments/s1/lrik3s.align',\n 'data/alignments/s1/lrik4p.align',\n 'data/alignments/s1/lrik5a.align',\n 'data/alignments/s1/lriq6n.align',\n 'data/alignments/s1/lriq7s.align',\n 'data/alignments/s1/lriq8p.align',\n 'data/alignments/s1/lriq9a.align',\n 'data/alignments/s1/lriy1s.align',\n 'data/alignments/s1/lriy2p.align',\n 'data/alignments/s1/lriy3a.align',\n 'data/alignments/s1/lriyzn.align',\n 'data/alignments/s1/lrwf1s.align',\n 'data/alignments/s1/lrwf2p.align',\n 'data/alignments/s1/lrwf3a.align',\n 'data/alignments/s1/lrwfzn.align',\n 'data/alignments/s1/lrwl4n.align',\n 'data/alignments/s1/lrwl5s.align',\n 'data/alignments/s1/lrwl6p.align',\n 'data/alignments/s1/lrwl7a.align',\n 'data/alignments/s1/lrwr8n.align',\n 'data/alignments/s1/lrwr9s.align',\n 'data/alignments/s1/lrws1a.align',\n 'data/alignments/s1/lrwszp.align',\n 'data/alignments/s1/lrwz2n.align',\n 'data/alignments/s1/lrwz3s.align',\n 'data/alignments/s1/lrwz4p.align',\n 'data/alignments/s1/lrwz5a.align',\n 'data/alignments/s1/lwae8n.align',\n 'data/alignments/s1/lwae9s.align',\n 'data/alignments/s1/lwaf1a.align',\n 'data/alignments/s1/lwafzp.align',\n 'data/alignments/s1/lwal2n.align',\n 'data/alignments/s1/lwal3s.align',\n 'data/alignments/s1/lwal4p.align',\n 'data/alignments/s1/lwal5a.align',\n 'data/alignments/s1/lwar6n.align',\n 'data/alignments/s1/lwar7s.align',\n 'data/alignments/s1/lwar8p.align',\n 'data/alignments/s1/lwar9a.align',\n 'data/alignments/s1/lwaz1s.align',\n 'data/alignments/s1/lwaz2p.align',\n 'data/alignments/s1/lwaz3a.align',\n 'data/alignments/s1/lwazzn.align',\n 'data/alignments/s1/lwbf2n.align',\n 'data/alignments/s1/lwbf3s.align',\n 'data/alignments/s1/lwbf4p.align',\n 'data/alignments/s1/lwbf5a.align',\n 'data/alignments/s1/lwbl6n.align',\n 'data/alignments/s1/lwbl7s.align',\n 'data/alignments/s1/lwbl8p.align',\n 'data/alignments/s1/lwbl9a.align',\n 'data/alignments/s1/lwbs1s.align',\n 'data/alignments/s1/lwbs2p.align',\n 'data/alignments/s1/lwbs3a.align',\n 'data/alignments/s1/lwbszn.align',\n 'data/alignments/s1/lwbz4n.align',\n 'data/alignments/s1/lwbz5s.align',\n 'data/alignments/s1/lwbz6p.align',\n 'data/alignments/s1/lwbz7a.align',\n 'data/alignments/s1/lwie4n.align',\n 'data/alignments/s1/lwie5s.align',\n 'data/alignments/s1/lwie6p.align',\n 'data/alignments/s1/lwie7a.align',\n 'data/alignments/s1/lwik8n.align',\n 'data/alignments/s1/lwik9s.align',\n 'data/alignments/s1/lwil1a.align',\n 'data/alignments/s1/lwilzp.align',\n 'data/alignments/s1/lwir2n.align',\n 'data/alignments/s1/lwir3s.align',\n 'data/alignments/s1/lwir4p.align',\n 'data/alignments/s1/lwir5a.align',\n 'data/alignments/s1/lwiy6n.align',\n 'data/alignments/s1/lwiy7s.align',\n 'data/alignments/s1/lwiy8p.align',\n 'data/alignments/s1/lwiy9a.align',\n 'data/alignments/s1/lwwf6n.align',\n 'data/alignments/s1/lwwf7s.align',\n 'data/alignments/s1/lwwf8p.align',\n 'data/alignments/s1/lwwf9a.align',\n 'data/alignments/s1/lwwm1s.align',\n 'data/alignments/s1/lwwm2p.align',\n 'data/alignments/s1/lwwm3a.align',\n 'data/alignments/s1/lwwmzn.align',\n 'data/alignments/s1/lwws4n.align',\n 'data/alignments/s1/lwws5s.align',\n 'data/alignments/s1/lwws6p.align',\n 'data/alignments/s1/lwws7a.align',\n 'data/alignments/s1/lwwz8n.align',\n 'data/alignments/s1/lwwz9s.align',\n 'data/alignments/s1/pbac1s.align',\n 'data/alignments/s1/pbac2p.align',\n 'data/alignments/s1/pbac3a.align',\n 'data/alignments/s1/pbaczn.align',\n 'data/alignments/s1/pbai4n.align',\n 'data/alignments/s1/pbai5s.align',\n 'data/alignments/s1/pbai6p.align',\n 'data/alignments/s1/pbai7a.align',\n 'data/alignments/s1/pbao8n.align',\n 'data/alignments/s1/pbao9s.align',\n 'data/alignments/s1/pbap1a.align',\n 'data/alignments/s1/pbapzp.align',\n 'data/alignments/s1/pbav2n.align',\n 'data/alignments/s1/pbav3s.align',\n 'data/alignments/s1/pbav4p.align',\n 'data/alignments/s1/pbav5a.align',\n 'data/alignments/s1/pbbc4n.align',\n 'data/alignments/s1/pbbc5s.align',\n 'data/alignments/s1/pbbc6p.align',\n 'data/alignments/s1/pbbc7a.align',\n 'data/alignments/s1/pbbi8n.align',\n 'data/alignments/s1/pbbi9s.align',\n 'data/alignments/s1/pbbj1a.align',\n 'data/alignments/s1/pbbjzp.align',\n 'data/alignments/s1/pbbp2n.align',\n 'data/alignments/s1/pbbp3s.align',\n 'data/alignments/s1/pbbp4p.align',\n 'data/alignments/s1/pbbp5a.align',\n 'data/alignments/s1/pbbv6n.align',\n 'data/alignments/s1/pbbv7s.align',\n 'data/alignments/s1/pbbv8p.align',\n 'data/alignments/s1/pbbv9a.align',\n 'data/alignments/s1/pbib6n.align',\n 'data/alignments/s1/pbib7s.align',\n 'data/alignments/s1/pbib8p.align',\n 'data/alignments/s1/pbib9a.align',\n 'data/alignments/s1/pbii1s.align',\n 'data/alignments/s1/pbii2p.align',\n 'data/alignments/s1/pbii3a.align',\n 'data/alignments/s1/pbiizn.align',\n 'data/alignments/s1/pbio4n.align',\n 'data/alignments/s1/pbio5s.align',\n 'data/alignments/s1/pbio6p.align',\n 'data/alignments/s1/pbio7a.align',\n 'data/alignments/s1/pbiu8n.align',\n 'data/alignments/s1/pbiu9s.align',\n 'data/alignments/s1/pbiv1a.align',\n 'data/alignments/s1/pbivzp.align',\n 'data/alignments/s1/pbwc8n.align',\n 'data/alignments/s1/pbwc9s.align',\n 'data/alignments/s1/pbwd1a.align',\n 'data/alignments/s1/pbwdzp.align',\n 'data/alignments/s1/pbwj2n.align',\n 'data/alignments/s1/pbwj3s.align',\n 'data/alignments/s1/pbwj4p.align',\n 'data/alignments/s1/pbwj5a.align',\n 'data/alignments/s1/pbwp6n.align',\n 'data/alignments/s1/pbwp7s.align',\n 'data/alignments/s1/pbwp8p.align',\n 'data/alignments/s1/pbwp9a.align',\n 'data/alignments/s1/pbwx1s.align',\n 'data/alignments/s1/pbwx2p.align',\n 'data/alignments/s1/pbwx3a.align',\n 'data/alignments/s1/pbwxzn.align',\n 'data/alignments/s1/pgad8n.align',\n 'data/alignments/s1/pgad9s.align',\n 'data/alignments/s1/pgae1a.align',\n 'data/alignments/s1/pgaezp.align',\n 'data/alignments/s1/pgak2n.align',\n 'data/alignments/s1/pgak3s.align',\n 'data/alignments/s1/pgak4p.align',\n 'data/alignments/s1/pgak5a.align',\n 'data/alignments/s1/pgaq6n.align',\n 'data/alignments/s1/pgaq7s.align',\n 'data/alignments/s1/pgaq8p.align',\n 'data/alignments/s1/pgaq9a.align',\n 'data/alignments/s1/pgay1s.align',\n 'data/alignments/s1/pgay2p.align',\n 'data/alignments/s1/pgay3a.align',\n 'data/alignments/s1/pgayzn.align',\n 'data/alignments/s1/pgbe2n.align',\n 'data/alignments/s1/pgbe3s.align',\n 'data/alignments/s1/pgbe4p.align',\n 'data/alignments/s1/pgbe5a.align',\n 'data/alignments/s1/pgbk6n.align',\n 'data/alignments/s1/pgbk7s.align',\n 'data/alignments/s1/pgbk8p.align',\n 'data/alignments/s1/pgbk9a.align',\n 'data/alignments/s1/pgbr1s.align',\n 'data/alignments/s1/pgbr2p.align',\n 'data/alignments/s1/pgbr3a.align',\n 'data/alignments/s1/pgbrzn.align',\n 'data/alignments/s1/pgby4n.align',\n 'data/alignments/s1/pgby5s.align',\n 'data/alignments/s1/pgby6p.align',\n 'data/alignments/s1/pgby7a.align',\n 'data/alignments/s1/pgid4n.align',\n 'data/alignments/s1/pgid5s.align',\n 'data/alignments/s1/pgid6p.align',\n 'data/alignments/s1/pgid7a.align',\n 'data/alignments/s1/pgij8n.align',\n 'data/alignments/s1/pgij9s.align',\n 'data/alignments/s1/pgik1a.align',\n 'data/alignments/s1/pgikzp.align',\n 'data/alignments/s1/pgiq2n.align',\n 'data/alignments/s1/pgiq3s.align',\n 'data/alignments/s1/pgiq4p.align',\n 'data/alignments/s1/pgiq5a.align',\n 'data/alignments/s1/pgix6n.align',\n 'data/alignments/s1/pgix7s.align',\n 'data/alignments/s1/pgix8p.align',\n 'data/alignments/s1/pgix9a.align',\n 'data/alignments/s1/pgwe6n.align',\n 'data/alignments/s1/pgwe7s.align',\n 'data/alignments/s1/pgwe8p.align',\n 'data/alignments/s1/pgwe9a.align',\n 'data/alignments/s1/pgwl1s.align',\n 'data/alignments/s1/pgwl2p.align',\n 'data/alignments/s1/pgwl3a.align',\n 'data/alignments/s1/pgwlzn.align',\n 'data/alignments/s1/pgwr4n.align',\n 'data/alignments/s1/pgwr5s.align',\n 'data/alignments/s1/pgwr6p.align',\n 'data/alignments/s1/pgwr7a.align',\n 'data/alignments/s1/pgwy8n.align',\n 'data/alignments/s1/pgwy9s.align',\n 'data/alignments/s1/pgwz1a.align',\n 'data/alignments/s1/pgwzzp.align',\n 'data/alignments/s1/prac6n.align',\n 'data/alignments/s1/prac7s.align',\n 'data/alignments/s1/prac8p.align',\n 'data/alignments/s1/prac9a.align',\n 'data/alignments/s1/praj1s.align',\n 'data/alignments/s1/praj2p.align',\n 'data/alignments/s1/praj3a.align',\n 'data/alignments/s1/prajzn.align',\n 'data/alignments/s1/prap4n.align',\n 'data/alignments/s1/prap5s.align',\n 'data/alignments/s1/prap6p.align',\n 'data/alignments/s1/prap7a.align',\n 'data/alignments/s1/prav8n.align',\n 'data/alignments/s1/prav9s.align',\n 'data/alignments/s1/prax1a.align',\n 'data/alignments/s1/praxzp.align',\n 'data/alignments/s1/prbd1s.align',\n 'data/alignments/s1/prbd2p.align',\n 'data/alignments/s1/prbd3a.align',\n 'data/alignments/s1/prbdzn.align',\n 'data/alignments/s1/prbj4n.align',\n 'data/alignments/s1/prbj5s.align',\n 'data/alignments/s1/prbj6p.align',\n 'data/alignments/s1/prbj7a.align',\n 'data/alignments/s1/prbp8n.align',\n 'data/alignments/s1/prbp9s.align',\n 'data/alignments/s1/prbq1a.align',\n 'data/alignments/s1/prbqzp.align',\n 'data/alignments/s1/prbx2n.align',\n 'data/alignments/s1/prbx3s.align',\n 'data/alignments/s1/prbx4p.align',\n 'data/alignments/s1/prbx5a.align',\n 'data/alignments/s1/pric2n.align',\n 'data/alignments/s1/pric3s.align',\n 'data/alignments/s1/pric4p.align',\n 'data/alignments/s1/pric5a.align',\n 'data/alignments/s1/prii6n.align',\n 'data/alignments/s1/prii7s.align',\n 'data/alignments/s1/prii8p.align',\n 'data/alignments/s1/prii9a.align',\n 'data/alignments/s1/prip1s.align',\n 'data/alignments/s1/prip2p.align',\n 'data/alignments/s1/prip3a.align',\n 'data/alignments/s1/pripzn.align',\n 'data/alignments/s1/priv4n.align',\n 'data/alignments/s1/priv5s.align',\n 'data/alignments/s1/priv6p.align',\n 'data/alignments/s1/priv7a.align',\n 'data/alignments/s1/prwd4n.align',\n 'data/alignments/s1/prwd5s.align',\n 'data/alignments/s1/prwd6p.align',\n 'data/alignments/s1/prwd7a.align',\n 'data/alignments/s1/prwj8n.align',\n 'data/alignments/s1/prwj9s.align',\n 'data/alignments/s1/prwk1a.align',\n 'data/alignments/s1/prwkzp.align',\n 'data/alignments/s1/prwq2n.align',\n 'data/alignments/s1/prwq3s.align',\n 'data/alignments/s1/prwq4p.align',\n 'data/alignments/s1/prwq5a.align',\n 'data/alignments/s1/prwx6n.align',\n 'data/alignments/s1/prwx7s.align',\n 'data/alignments/s1/prwx8p.align',\n 'data/alignments/s1/prwx9a.align',\n 'data/alignments/s1/pwad2n.align',\n 'data/alignments/s1/pwad3s.align',\n 'data/alignments/s1/pwad4p.align',\n 'data/alignments/s1/pwad5a.align',\n 'data/alignments/s1/pwaj6n.align',\n 'data/alignments/s1/pwaj7s.align',\n 'data/alignments/s1/pwaj8p.align',\n 'data/alignments/s1/pwaj9a.align',\n 'data/alignments/s1/pwaq1s.align',\n 'data/alignments/s1/pwaq2p.align',\n 'data/alignments/s1/pwaq3a.align',\n 'data/alignments/s1/pwaqzn.align',\n 'data/alignments/s1/pwax4n.align',\n 'data/alignments/s1/pwax5s.align',\n 'data/alignments/s1/pwax6p.align',\n 'data/alignments/s1/pwax7a.align',\n 'data/alignments/s1/pwbd6n.align',\n 'data/alignments/s1/pwbd7s.align',\n 'data/alignments/s1/pwbd8p.align',\n 'data/alignments/s1/pwbd9a.align',\n 'data/alignments/s1/pwbk1s.align',\n 'data/alignments/s1/pwbk2p.align',\n 'data/alignments/s1/pwbk3a.align',\n 'data/alignments/s1/pwbkzn.align',\n 'data/alignments/s1/pwbq4n.align',\n 'data/alignments/s1/pwbq5s.align',\n 'data/alignments/s1/pwbq6p.align',\n 'data/alignments/s1/pwbq7a.align',\n 'data/alignments/s1/pwbx8n.align',\n 'data/alignments/s1/pwbx9s.align',\n 'data/alignments/s1/pwby1a.align',\n 'data/alignments/s1/pwbyzp.align',\n 'data/alignments/s1/pwic8n.align',\n 'data/alignments/s1/pwic9s.align',\n 'data/alignments/s1/pwid1a.align',\n 'data/alignments/s1/pwidzp.align',\n 'data/alignments/s1/pwij2n.align',\n 'data/alignments/s1/pwij3s.align',\n 'data/alignments/s1/pwij4p.align',\n 'data/alignments/s1/pwij5a.align',\n 'data/alignments/s1/pwip6n.align',\n 'data/alignments/s1/pwip7s.align',\n 'data/alignments/s1/pwip8p.align',\n 'data/alignments/s1/pwip9a.align',\n 'data/alignments/s1/pwix1s.align',\n 'data/alignments/s1/pwix2p.align',\n 'data/alignments/s1/pwix3a.align',\n 'data/alignments/s1/pwixzn.align',\n 'data/alignments/s1/pwwe1s.align',\n 'data/alignments/s1/pwwe2p.align',\n 'data/alignments/s1/pwwe3a.align',\n 'data/alignments/s1/pwwezn.align',\n 'data/alignments/s1/pwwk4n.align',\n 'data/alignments/s1/pwwk5s.align',\n 'data/alignments/s1/pwwk6p.align',\n 'data/alignments/s1/pwwk7a.align',\n 'data/alignments/s1/pwwq8n.align',\n 'data/alignments/s1/pwwq9s.align',\n 'data/alignments/s1/pwwr1a.align',\n 'data/alignments/s1/pwwrzp.align',\n 'data/alignments/s1/pwwy2n.align',\n 'data/alignments/s1/pwwy3s.align',\n 'data/alignments/s1/pwwy4p.align',\n 'data/alignments/s1/pwwy5a.align',\n 'data/alignments/s1/sbaa4n.align',\n 'data/alignments/s1/sbaa5s.align',\n 'data/alignments/s1/sbaa6p.align',\n 'data/alignments/s1/sbaa7a.align',\n 'data/alignments/s1/sbag8n.align',\n 'data/alignments/s1/sbag9s.align',\n 'data/alignments/s1/sbah1a.align',\n 'data/alignments/s1/sbahzp.align',\n 'data/alignments/s1/sban2n.align',\n 'data/alignments/s1/sban3s.align',\n 'data/alignments/s1/sban4p.align',\n 'data/alignments/s1/sban5a.align',\n 'data/alignments/s1/sbat6n.align',\n 'data/alignments/s1/sbat7s.align',\n 'data/alignments/s1/sbat8p.align',\n 'data/alignments/s1/sbat9a.align',\n 'data/alignments/s1/sbba8n.align',\n 'data/alignments/s1/sbba9s.align',\n 'data/alignments/s1/sbbb1a.align',\n 'data/alignments/s1/sbbbzp.align',\n 'data/alignments/s1/sbbh2n.align',\n 'data/alignments/s1/sbbh3s.align',\n 'data/alignments/s1/sbbh4p.align',\n 'data/alignments/s1/sbbh5a.align',\n 'data/alignments/s1/sbbn6n.align',\n 'data/alignments/s1/sbbn7s.align',\n 'data/alignments/s1/sbbn8p.align',\n 'data/alignments/s1/sbbn9a.align',\n 'data/alignments/s1/sbbu1s.align',\n 'data/alignments/s1/sbbu2p.align',\n 'data/alignments/s1/sbbu3a.align',\n 'data/alignments/s1/sbbuzn.align',\n 'data/alignments/s1/sbia1s.align',\n 'data/alignments/s1/sbia2p.align',\n 'data/alignments/s1/sbia3a.align',\n 'data/alignments/s1/sbiazn.align',\n 'data/alignments/s1/sbig4n.align',\n 'data/alignments/s1/sbig5s.align',\n 'data/alignments/s1/sbig6p.align',\n 'data/alignments/s1/sbig7a.align',\n 'data/alignments/s1/sbim8n.align',\n 'data/alignments/s1/sbim9s.align',\n 'data/alignments/s1/sbin1a.align',\n 'data/alignments/s1/sbinzp.align',\n 'data/alignments/s1/sbit2n.align',\n 'data/alignments/s1/sbit3s.align',\n 'data/alignments/s1/sbit4p.align',\n 'data/alignments/s1/sbit5a.align',\n 'data/alignments/s1/sbwb2n.align',\n 'data/alignments/s1/sbwb3s.align',\n 'data/alignments/s1/sbwb4p.align',\n 'data/alignments/s1/sbwb5a.align',\n 'data/alignments/s1/sbwh6n.align',\n 'data/alignments/s1/sbwh7s.align',\n 'data/alignments/s1/sbwh8p.align',\n 'data/alignments/s1/sbwh9a.align',\n 'data/alignments/s1/sbwo1s.align',\n 'data/alignments/s1/sbwo2p.align',\n 'data/alignments/s1/sbwo3a.align',\n 'data/alignments/s1/sbwozn.align',\n 'data/alignments/s1/sbwu4n.align',\n 'data/alignments/s1/sbwu5s.align',\n 'data/alignments/s1/sbwu6p.align',\n 'data/alignments/s1/sbwu7a.align',\n 'data/alignments/s1/sgac2n.align',\n 'data/alignments/s1/sgac3s.align',\n 'data/alignments/s1/sgac4p.align',\n 'data/alignments/s1/sgac5a.align',\n 'data/alignments/s1/sgai6n.align',\n 'data/alignments/s1/sgai7s.align',\n 'data/alignments/s1/sgai8p.align',\n 'data/alignments/s1/sgai9a.align',\n 'data/alignments/s1/sgap1s.align',\n 'data/alignments/s1/sgap2p.align',\n 'data/alignments/s1/sgap3a.align',\n 'data/alignments/s1/sgapzn.align',\n 'data/alignments/s1/sgav4n.align',\n 'data/alignments/s1/sgav5s.align',\n 'data/alignments/s1/sgav6p.align',\n 'data/alignments/s1/sgav7a.align',\n 'data/alignments/s1/sgbc6n.align',\n 'data/alignments/s1/sgbc7s.align',\n 'data/alignments/s1/sgbc8p.align',\n 'data/alignments/s1/sgbc9a.align',\n 'data/alignments/s1/sgbj1s.align',\n 'data/alignments/s1/sgbj2p.align',\n 'data/alignments/s1/sgbj3a.align',\n 'data/alignments/s1/sgbjzn.align',\n 'data/alignments/s1/sgbp4n.align',\n 'data/alignments/s1/sgbp5s.align',\n 'data/alignments/s1/sgbp6p.align',\n 'data/alignments/s1/sgbp7a.align',\n 'data/alignments/s1/sgbv8n.align',\n 'data/alignments/s1/sgbv9s.align',\n 'data/alignments/s1/sgbx1a.align',\n 'data/alignments/s1/sgbxzp.align',\n 'data/alignments/s1/sgib8n.align',\n 'data/alignments/s1/sgib9s.align',\n 'data/alignments/s1/sgic1a.align',\n 'data/alignments/s1/sgiczp.align',\n 'data/alignments/s1/sgii2n.align',\n 'data/alignments/s1/sgii3s.align',\n 'data/alignments/s1/sgii4p.align',\n 'data/alignments/s1/sgii5a.align',\n 'data/alignments/s1/sgio6n.align',\n 'data/alignments/s1/sgio7s.align',\n 'data/alignments/s1/sgio8p.align',\n 'data/alignments/s1/sgio9a.align',\n 'data/alignments/s1/sgiv1s.align',\n 'data/alignments/s1/sgiv2p.align',\n 'data/alignments/s1/sgiv3a.align',\n 'data/alignments/s1/sgivzn.align',\n 'data/alignments/s1/sgwd1s.align',\n 'data/alignments/s1/sgwd2p.align',\n 'data/alignments/s1/sgwd3a.align',\n 'data/alignments/s1/sgwdzn.align',\n 'data/alignments/s1/sgwj4n.align',\n 'data/alignments/s1/sgwj5s.align',\n 'data/alignments/s1/sgwj6p.align',\n 'data/alignments/s1/sgwj7a.align',\n 'data/alignments/s1/sgwp8n.align',\n 'data/alignments/s1/sgwp9s.align',\n 'data/alignments/s1/sgwq1a.align',\n 'data/alignments/s1/sgwqzp.align',\n 'data/alignments/s1/sgwx2n.align',\n 'data/alignments/s1/sgwx3s.align',\n 'data/alignments/s1/sgwx4p.align',\n 'data/alignments/s1/sgwx5a.align',\n 'data/alignments/s1/srab1s.align',\n 'data/alignments/s1/srab2p.align',\n 'data/alignments/s1/srab3a.align',\n 'data/alignments/s1/srabzn.align',\n 'data/alignments/s1/srah4n.align',\n 'data/alignments/s1/srah5s.align',\n 'data/alignments/s1/srah6p.align',\n 'data/alignments/s1/srah7a.align',\n 'data/alignments/s1/sran8n.align',\n 'data/alignments/s1/sran9s.align',\n 'data/alignments/s1/srao1a.align',\n 'data/alignments/s1/sraozp.align',\n 'data/alignments/s1/srau2n.align',\n 'data/alignments/s1/srau3s.align',\n 'data/alignments/s1/srau4p.align',\n 'data/alignments/s1/srau5a.align',\n 'data/alignments/s1/srbb4n.align',\n 'data/alignments/s1/srbb5s.align',\n 'data/alignments/s1/srbb6p.align',\n 'data/alignments/s1/srbb7a.align',\n 'data/alignments/s1/srbh8n.align',\n 'data/alignments/s1/srbh9s.align',\n 'data/alignments/s1/srbi1a.align',\n 'data/alignments/s1/srbizp.align',\n 'data/alignments/s1/srbo2n.align',\n 'data/alignments/s1/srbo3s.align',\n 'data/alignments/s1/srbo4p.align',\n 'data/alignments/s1/srbo5a.align',\n 'data/alignments/s1/srbu6n.align',\n 'data/alignments/s1/srbu7s.align',\n 'data/alignments/s1/srbu8p.align',\n 'data/alignments/s1/srbu9a.align',\n 'data/alignments/s1/sria6n.align',\n 'data/alignments/s1/sria7s.align',\n 'data/alignments/s1/sria8p.align',\n 'data/alignments/s1/sria9a.align',\n 'data/alignments/s1/srih1s.align',\n 'data/alignments/s1/srih2p.align',\n 'data/alignments/s1/srih3a.align',\n 'data/alignments/s1/srihzn.align',\n 'data/alignments/s1/srin4n.align',\n 'data/alignments/s1/srin5s.align',\n 'data/alignments/s1/srin6p.align',\n 'data/alignments/s1/srin7a.align',\n 'data/alignments/s1/srit8n.align',\n 'data/alignments/s1/srit9s.align',\n 'data/alignments/s1/sriu1a.align',\n 'data/alignments/s1/sriuzp.align',\n 'data/alignments/s1/srwb8n.align',\n 'data/alignments/s1/srwb9s.align',\n 'data/alignments/s1/srwc1a.align',\n 'data/alignments/s1/srwczp.align',\n 'data/alignments/s1/srwi2n.align',\n 'data/alignments/s1/srwi3s.align',\n 'data/alignments/s1/srwi4p.align',\n 'data/alignments/s1/srwi5a.align',\n 'data/alignments/s1/srwo6n.align',\n 'data/alignments/s1/srwo7s.align',\n 'data/alignments/s1/srwo8p.align',\n 'data/alignments/s1/srwo9a.align',\n 'data/alignments/s1/srwv1s.align',\n 'data/alignments/s1/srwv2p.align',\n 'data/alignments/s1/srwv3a.align',\n 'data/alignments/s1/srwvzn.align',\n 'data/alignments/s1/swab6n.align',\n 'data/alignments/s1/swab7s.align',\n 'data/alignments/s1/swab8p.align',\n 'data/alignments/s1/swab9a.align',\n 'data/alignments/s1/swai1s.align',\n 'data/alignments/s1/swai2p.align',\n 'data/alignments/s1/swai3a.align',\n 'data/alignments/s1/swaizn.align',\n 'data/alignments/s1/swao4n.align',\n 'data/alignments/s1/swao5s.align',\n 'data/alignments/s1/swao6p.align',\n 'data/alignments/s1/swao7a.align',\n 'data/alignments/s1/swau8n.align',\n 'data/alignments/s1/swau9s.align',\n 'data/alignments/s1/swav1a.align',\n 'data/alignments/s1/swavzp.align',\n 'data/alignments/s1/swbc1s.align',\n 'data/alignments/s1/swbc2p.align',\n 'data/alignments/s1/swbc3a.align',\n 'data/alignments/s1/swbczn.align',\n 'data/alignments/s1/swbi4n.align',\n 'data/alignments/s1/swbi5s.align',\n 'data/alignments/s1/swbi6p.align',\n 'data/alignments/s1/swbi7a.align',\n 'data/alignments/s1/swbo8n.align',\n 'data/alignments/s1/swbo9s.align',\n 'data/alignments/s1/swbp1a.align',\n 'data/alignments/s1/swbpzp.align',\n 'data/alignments/s1/swbv2n.align',\n 'data/alignments/s1/swbv3s.align',\n 'data/alignments/s1/swbv4p.align',\n 'data/alignments/s1/swbv5a.align',\n 'data/alignments/s1/swib2n.align',\n 'data/alignments/s1/swib3s.align',\n 'data/alignments/s1/swib4p.align',\n 'data/alignments/s1/swib5a.align',\n 'data/alignments/s1/swih6n.align',\n 'data/alignments/s1/swih7s.align',\n 'data/alignments/s1/swih8p.align',\n 'data/alignments/s1/swih9a.align',\n 'data/alignments/s1/swio1s.align',\n 'data/alignments/s1/swio2p.align',\n 'data/alignments/s1/swio3a.align',\n 'data/alignments/s1/swiozn.align',\n 'data/alignments/s1/swiu4n.align',\n 'data/alignments/s1/swiu5s.align',\n 'data/alignments/s1/swiu6p.align',\n 'data/alignments/s1/swiu7a.align',\n 'data/alignments/s1/swwc4n.align',\n 'data/alignments/s1/swwc5s.align',\n 'data/alignments/s1/swwc6p.align',\n 'data/alignments/s1/swwc7a.align',\n 'data/alignments/s1/swwi8n.align',\n 'data/alignments/s1/swwi9s.align',\n 'data/alignments/s1/swwj1a.align',\n 'data/alignments/s1/swwjzp.align',\n 'data/alignments/s1/swwp2n.align',\n 'data/alignments/s1/swwp3s.align',\n 'data/alignments/s1/swwp4p.align',\n 'data/alignments/s1/swwp5a.align',\n 'data/alignments/s1/swwv6n.align',\n ...]"},"metadata":{}}]},{"cell_type":"code","source":"def load_video(path:str) -> List[float]: \n\n cap = cv2.VideoCapture(path) # read frames of the video\n frames = []\n for _ in range(int(cap.get(cv2.CAP_PROP_FRAME_COUNT))): \n ret, frame = cap.read() # ret-wheather frame is captured or not , frame actual matrix representation of captured frame\n frame = tf.image.rgb_to_grayscale(frame) # convert to grayscale\n frames.append(frame[190:236,80:220,:]) # Crop only mouth region and add pixel matrix to frame list\n cap.release()\n \n mean = tf.math.reduce_mean(frames )\n std = tf.math.reduce_std(tf.cast(frames, tf.float32))\n return tf.cast((frames - mean), tf.float32) / std # standarrdize pixel values and make it float16 to reduce furthur computation times","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:45.233363Z","iopub.execute_input":"2023-11-04T20:00:45.233647Z","iopub.status.idle":"2023-11-04T20:00:45.240328Z","shell.execute_reply.started":"2023-11-04T20:00:45.233622Z","shell.execute_reply":"2023-11-04T20:00:45.239507Z"},"trusted":true},"execution_count":9,"outputs":[]},{"cell_type":"code","source":"vocab = [x for x in \"abcdefghijklmnopqrstuvwxyz'?!123456789 \"]","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:45.241586Z","iopub.execute_input":"2023-11-04T20:00:45.241870Z","iopub.status.idle":"2023-11-04T20:00:45.251898Z","shell.execute_reply.started":"2023-11-04T20:00:45.241846Z","shell.execute_reply":"2023-11-04T20:00:45.250992Z"},"trusted":true},"execution_count":10,"outputs":[]},{"cell_type":"code","source":"# encode vocabs to its index and set every character that is not in vocab to empty strig \nchar_to_num = tf.keras.layers.StringLookup(vocabulary=vocab, oov_token=\"\")\n# decode do the opposite of above \nnum_to_char = tf.keras.layers.StringLookup(vocabulary=char_to_num.get_vocabulary(), oov_token=\"\", invert=True)\n\nprint(f\"The vocabulary is: {char_to_num.get_vocabulary()} \"\n f\"(size ={char_to_num.vocabulary_size()})\")","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:45.252989Z","iopub.execute_input":"2023-11-04T20:00:45.253230Z","iopub.status.idle":"2023-11-04T20:00:46.321755Z","shell.execute_reply.started":"2023-11-04T20:00:45.253209Z","shell.execute_reply":"2023-11-04T20:00:46.320717Z"},"trusted":true},"execution_count":11,"outputs":[{"name":"stdout","text":"The vocabulary is: ['', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', \"'\", '?', '!', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' '] (size =40)\n","output_type":"stream"}]},{"cell_type":"code","source":"char_to_num.get_vocabulary()","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:46.322841Z","iopub.execute_input":"2023-11-04T20:00:46.323133Z","iopub.status.idle":"2023-11-04T20:00:46.330944Z","shell.execute_reply.started":"2023-11-04T20:00:46.323108Z","shell.execute_reply":"2023-11-04T20:00:46.330098Z"},"trusted":true},"execution_count":12,"outputs":[{"execution_count":12,"output_type":"execute_result","data":{"text/plain":"['',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n \"'\",\n '?',\n '!',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n ' ']"},"metadata":{}}]},{"cell_type":"code","source":"char_to_num(['o', 'm', 'm'])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:46.332074Z","iopub.execute_input":"2023-11-04T20:00:46.332411Z","iopub.status.idle":"2023-11-04T20:00:46.345939Z","shell.execute_reply.started":"2023-11-04T20:00:46.332379Z","shell.execute_reply":"2023-11-04T20:00:46.344920Z"},"trusted":true},"execution_count":13,"outputs":[{"execution_count":13,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"code","source":"num_to_char([14, 9, 3, 11])","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:46.353203Z","iopub.execute_input":"2023-11-04T20:00:46.353478Z","iopub.status.idle":"2023-11-04T20:00:46.365271Z","shell.execute_reply.started":"2023-11-04T20:00:46.353455Z","shell.execute_reply":"2023-11-04T20:00:46.364375Z"},"trusted":true},"execution_count":14,"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"code","source":"def load_alignments(path:str) -> List[str]: \n with open(path, 'r') as f: \n lines = f.readlines() \n tokens = []\n # in every line there are 3 elemnts\n # 1st and 2nd are the time stamps during which word is said\n # 3rd is actual word that is said\n for line in lines:\n line = line.split()\n if line[2] != 'sil': # dont consider silence\n tokens = [*tokens,' ',line[2]] \n # all encoded words are stored in tokens list so return their concatination to train model\n return char_to_num(tf.reshape(tf.strings.unicode_split(tokens, input_encoding='UTF-8'), (-1)))[1:]","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:46.366334Z","iopub.execute_input":"2023-11-04T20:00:46.366571Z","iopub.status.idle":"2023-11-04T20:00:46.373805Z","shell.execute_reply.started":"2023-11-04T20:00:46.366550Z","shell.execute_reply":"2023-11-04T20:00:46.372918Z"},"trusted":true},"execution_count":15,"outputs":[]},{"cell_type":"code","source":"def load_data(path: str): \n# path = bytes.decode(path.numpy())\n# print(path)\n file_name = path.numpy().decode('utf-8').split('/')[-1].split('.')[0]\n# file_name = path.split('\\\\')[-1].split('.')[0]\n video_path = os.path.join('data','s1',f'{file_name}.mpg')\n alignment_path = os.path.join('data','alignments','s1',f'{file_name}.align')\n frames = load_video(video_path) \n alignments = load_alignments(alignment_path)\n \n return frames, alignments\n# return file_name","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:46.374922Z","iopub.execute_input":"2023-11-04T20:00:46.375197Z","iopub.status.idle":"2023-11-04T20:00:46.386472Z","shell.execute_reply.started":"2023-11-04T20:00:46.375174Z","shell.execute_reply":"2023-11-04T20:00:46.385548Z"},"trusted":true},"execution_count":16,"outputs":[]},{"cell_type":"code","source":"test_path = './data/s1/srwv1s.mpg'","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:46.387470Z","iopub.execute_input":"2023-11-04T20:00:46.387784Z","iopub.status.idle":"2023-11-04T20:00:46.396509Z","shell.execute_reply.started":"2023-11-04T20:00:46.387760Z","shell.execute_reply":"2023-11-04T20:00:46.395696Z"},"trusted":true},"execution_count":17,"outputs":[]},{"cell_type":"code","source":"# test_path = bytes.decode(test_path.numpy())","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:46.397767Z","iopub.execute_input":"2023-11-04T20:00:46.398081Z","iopub.status.idle":"2023-11-04T20:00:46.407323Z","shell.execute_reply.started":"2023-11-04T20:00:46.398057Z","shell.execute_reply":"2023-11-04T20:00:46.406425Z"},"trusted":true},"execution_count":18,"outputs":[]},{"cell_type":"code","source":"# hi = tf.convert_to_tensor(test_path).numpy().decode('utf-8')\n# hi","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:46.408405Z","iopub.execute_input":"2023-11-04T20:00:46.408728Z","iopub.status.idle":"2023-11-04T20:00:46.417131Z","shell.execute_reply.started":"2023-11-04T20:00:46.408699Z","shell.execute_reply":"2023-11-04T20:00:46.416301Z"},"trusted":true},"execution_count":19,"outputs":[]},{"cell_type":"code","source":"tf.convert_to_tensor(test_path).numpy().decode('utf-8').split('/')[-1].split('.')[0]","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:46.418385Z","iopub.execute_input":"2023-11-04T20:00:46.418701Z","iopub.status.idle":"2023-11-04T20:00:46.431050Z","shell.execute_reply.started":"2023-11-04T20:00:46.418672Z","shell.execute_reply":"2023-11-04T20:00:46.430097Z"},"trusted":true},"execution_count":20,"outputs":[{"execution_count":20,"output_type":"execute_result","data":{"text/plain":"'srwv1s'"},"metadata":{}}]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"frames, alignments = load_data(tf.convert_to_tensor(test_path))","metadata":{"scrolled":true,"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:46.432276Z","iopub.execute_input":"2023-11-04T20:00:46.432876Z","iopub.status.idle":"2023-11-04T20:00:47.488844Z","shell.execute_reply.started":"2023-11-04T20:00:46.432844Z","shell.execute_reply":"2023-11-04T20:00:47.487907Z"},"trusted":true},"execution_count":21,"outputs":[]},{"cell_type":"code","source":"alignments","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:47.489965Z","iopub.execute_input":"2023-11-04T20:00:47.492006Z","iopub.status.idle":"2023-11-04T20:00:47.498695Z","shell.execute_reply.started":"2023-11-04T20:00:47.491978Z","shell.execute_reply":"2023-11-04T20:00:47.497813Z"},"trusted":true},"execution_count":22,"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"code","source":"plt.imshow(frames[0])","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:47.499860Z","iopub.execute_input":"2023-11-04T20:00:47.500097Z","iopub.status.idle":"2023-11-04T20:00:47.984766Z","shell.execute_reply.started":"2023-11-04T20:00:47.500076Z","shell.execute_reply":"2023-11-04T20:00:47.983722Z"},"trusted":true},"execution_count":23,"outputs":[{"execution_count":23,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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NNdff32Nr2T8sY1Nf3+/WbFihfnRj35k3njjDbNjxw6zbNkys2TJElHHTB2b8WRKTj6WLVtmuru7S/u+75t58+aZDRs2TGKvJpejR48aIjLbt283xnz4EiSTSbNly5bSMf/93/9tiMjs2LFjsrpZU4aGhsxZZ51lnnnmGfN7v/d7pcnHbB6bO+64w3zuc5+LLQ+CwHR0dJi///u/L/2uv7/fpNNp8+///u+16OKkceWVV5o//dM/Fb+77rrrzA033GCMmb1jo//AljMOr7/+uiEis2fPntIxP/vZz4zjOObw4cM16/tEc6KJmWb37t2GiMxvfvMbY8zsGZuTZcrJLvl8nnp6emjFihWl37muSytWrKAdO3ZMYs8ml4GBASIiamtrIyKinp4eKhQKYpwWL15MnZ2ds2acuru76corrxRjQDS7x+anP/0pLV26lP74j/+Y5s6dSxdeeCH94Ac/KJUfOHCAent7xdi0tLTQ8uXLZ/zYfPazn6Vt27bRL3/5SyIi+sUvfkEvvvgiXX755UQ0u8eGU8447Nixg1pbW2np0qWlY1asWEGu69KuXbtq3ufJZGBggBzHodbWViLC2JTLlEss995775Hv+9Te3i5+397eTm+88cYk9WpyCYKA1q5dSxdffDGdc845RETU29tLqVSq9MB/RHt7O/X29k5CL2vLo48+Si+99BLt2bMnUjabx+att96iBx98kNatW0d/9Vd/RXv27KG/+Iu/oFQqRatXry5d/4ner5k+Nt/85jdpcHCQFi9eTJ7nke/7dPfdd9MNN9xARDSrx4ZTzjj09vbS3LlzRXkikaC2trZZNVbZbJbuuOMOuv7660vJ5TA25THlJh8gSnd3N7366qv04osvTnZXpgSHDh2i2267jZ555hnKZDKT3Z0pRRAEtHTpUvrbv/1bIiK68MIL6dVXX6WHHnqIVq9ePcm9m1z+4z/+g374wx/S5s2b6bd/+7dp3759tHbtWpo3b96sHxtQOYVCgb74xS+SMYYefPDBye7OtGPKyS6nnnoqeZ4X8Uzo6+ujjo6OSerV5LFmzRraunUrPffcczR//vzS7zs6Oiifz1N/f784fjaMU09PDx09epQ+/elPUyKRoEQiQdu3b6f777+fEokEtbe3z9qxOe200+hTn/qU+N3ZZ59NBw8eJCIqXf9sfL/+8i//kr75zW/Sl7/8ZTr33HPpT/7kT+j222+nDRs2ENHsHhtOOePQ0dFBR48eFeXFYpGOHTs2K8bqo4nHb37zG3rmmWdKqx5EGJtymXKTj1QqRUuWLKFt27aVfhcEAW3bto26uromsWe1xRhDa9asoccee4yeffZZWrRokShfsmQJJZNJMU779++ngwcPzvhxuvTSS+mVV16hffv2lX6WLl1KN9xwQ2l7to7NxRdfHHHJ/uUvf0lnnHEGEREtWrSIOjo6xNgMDg7Srl27ZvzYjIyMkOvKT57neRQEARHN7rHhlDMOXV1d1N/fTz09PaVjnn32WQqCgJYvX17zPteSjyYeb775Jv3nf/4nzZkzR5TP5rGpiMm2eD0Rjz76qEmn0+aRRx4xr7/+uvna175mWltbTW9v72R3rWZ8/etfNy0tLeb5558377zzTulnZGSkdMwtt9xiOjs7zbPPPmv27t1rurq6TFdX1yT2evLg3i7GzN6x2b17t0kkEubuu+82b775pvnhD39o6uvrzb/927+VjrnnnntMa2ur+clPfmL+67/+y1xzzTUz0p1Us3r1anP66aeXXG1//OMfm1NPPdV84xvfKB0zW8ZmaGjIvPzyy+bll182RGT+4R/+wbz88sslj41yxuGyyy4zF154odm1a5d58cUXzVlnnTUj3EltY5PP583VV19t5s+fb/bt2ye+zblcrlTHTB2b8WRKTj6MMeYf//EfTWdnp0mlUmbZsmVm586dk92lmkJEJ/zZtGlT6ZjR0VHz53/+5+aUU04x9fX15o/+6I/MO++8M3mdnkT05GM2j80TTzxhzjnnHJNOp83ixYvNP//zP4vyIAjMnXfeadrb2006nTaXXnqp2b9//yT1tnYMDg6a2267zXR2dppMJmM+/vGPm29961vij8ZsGZvnnnvuhN+X1atXG2PKG4f333/fXH/99aaxsdE0Nzebm266yQwNDU3C1YwvtrE5cOBA7Lf5ueeeK9UxU8dmPHGMYeH9AAAAAAAmmCln8wEAAACAmQ0mHwAAAACoKZh8AAAAAKCmYPIBAAAAgJqCyQcAAAAAagomHwAAAACoKZh8AAAAAKCmYPIBAAAAgJqCyQcAAAAAagomHwAAAACoKZh8AAAAAKCmYPIBAAAAgJryfwC/z4o52djPqQAAAABJRU5ErkJggg=="},"metadata":{}}]},{"cell_type":"code","source":"plt.imshow(frames[23])","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:47.986388Z","iopub.execute_input":"2023-11-04T20:00:47.986899Z","iopub.status.idle":"2023-11-04T20:00:48.235551Z","shell.execute_reply.started":"2023-11-04T20:00:47.986859Z","shell.execute_reply":"2023-11-04T20:00:48.234678Z"},"trusted":true},"execution_count":24,"outputs":[{"execution_count":24,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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"},"metadata":{}}]},{"cell_type":"code","source":"plt.imshow(frames[40])","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:48.237093Z","iopub.execute_input":"2023-11-04T20:00:48.237481Z","iopub.status.idle":"2023-11-04T20:00:48.481573Z","shell.execute_reply.started":"2023-11-04T20:00:48.237446Z","shell.execute_reply":"2023-11-04T20:00:48.480679Z"},"trusted":true},"execution_count":25,"outputs":[{"execution_count":25,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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fPl3wWsO7jf2220I5umli5bLsiaLdmmTBcrNLh46r8amAOP9nalW1uZ/B6oNhCoksBpktS0Wi/TQQw/R6OgodXd3U29vL+XzeVqxYkXpmMWLF1NXVxft3Lkzsp5sNktDQ0PiR1EURVGUmUvFHx8vvvgiNTY2UjKZpJtvvpm2bt1KH/nIR6ivr48SiQS1traK49vb26mvry+yvg0bNlBLS0vpZ8GCBRVfhKIoiqIoJw4Vf3z89m//Nu3fv592795Nn//852n16tX08ssvV92B9evX0+DgYOnn0KFDVdelKIqiKMr0p2JX20QiQR/+8IeJiGjJkiW0d+9e+uY3v0l/+qd/SrlcjgYGBsTqR39/P3V0dETWl0wmKZlMRpYrEwO6WAlyUuf244G2arMjEe66BK63CcwPy0DbEGifu/NiyGGraxhzw+X2H0RoAyJtXFaeel5pO5QRE+D1ZMyobF644UI9TLJFfT7OC9GMhtUZh/OauF4PNgeYnTZT5CGty3/s3803lrZHivI5PcbsMbK+vN4C23fHCQXO3XILUE/OUk/CDeZRErLRNsS4jQ1m46XIslPiA2K/g+2f7A2Lsibmaot2PPXsXsXBLTTL7AVsIcxtbt+YPgCP5XMldCw/NGRzEmyH7Ej4XIzsGdG2I/vFfhqe4Sfe3FPazhr57HM33bQPLunsXRRy859OhMKys3cWughbbEdEWPSJ6Nc047idpX3fp2w2S0uWLKF4PE7bt28vlR04cIAOHjxI3d3dlhoURVEURZlNVPT5uH79errsssuoq6uLhoeHafPmzfTMM8/Qtm3bqKWlhW666SZat24dtbW1UXNzM91yyy3U3d1duaeLoiiKoigzloo+Po4ePUo33HADvf3229TS0kLnnHMObdu2jf7gD/6AiIjuuusucl2XVq1aRdlsllauXEn33ntvdT1znMC9iC//TYaL6olE1Rlvo281ur4WU8FSt0mBq2MmWM42BZBdeDRUm8xjy95YAaHop5ax4dJKqB4utYyzLLqy89zS9ta39oiyehY5NO/IsbFlp+XL8hjF02f7Llwvd3eMw7U3oeunM1jabnCzooy74Q5DhNGBYpBldtiXbrjc9RZde7nslPXl3ENphUf19GLossqvX94LLrWcFJNusC1s3wO30Hp2/ehaOw+klTbmXtsAkWH5TKm3vF/iIPPlQ863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eWWKejW1+L5Pa9eupQsvvJDOOussIiLq6+ujRCJRmvC/ob29nfr6+qagl7XloYceoueff5727t0bKpvNY/P666/TfffdR+vWraO/+Zu/ob1799Jf/dVfUSKRoNWrV5euf6zna6aPzRe/+EUaGhqixYsXk+d5VCwW6Y477qDrr7+eiGhWjw2nnHHo6+ujefPmifJYLEZtbW2zaqwymQzdfvvtdN1115WSy+nYlMe0+/hQwvT09NBLL71Ezz333FR3ZVpw6NAhuvXWW+nJJ5+kVCo11d2ZVvi+T0uXLqV/+Id/ICKi8847j1566SW6//77afXq1VPcu6nl+9//Pn3nO9+hzZs30+/8zu/Q/v37ae3atdTZ2Tnrx0apnHw+T3/yJ39Cxhi67777pro7JxzTTnaZO3cueZ4X8kzo7++njo6OKerV1LFmzRp67LHH6Omnn6b58+eXft/R0UG5XI4GBgbE8bNhnHp7e+no0aN0/vnnUywWo1gsRjt27KB77rmHYrEYtbe3z9qxOeWUU+gjH/mI+N2ZZ55JBw8eJCIqXf9sfL7++q//mr74xS/Spz/9aTr77LPpM5/5DN122220YcMGIprdY8MpZxw6Ojro6NGjorxQKND7778/K8bqNx8eb775Jj355JOlVQ8iHZtymXYfH4lEgpYsWULbt28v/c73fdq+fTt1d3dPYc9qizGG1qxZQ1u3bqWnnnqKFi1aJMqXLFlC8XhcjNOBAwfo4MGDM36cLrnkEnrxxRdp//79pZ+lS5fS9ddfX9qerWNz4YUXhlyyX331VTrttNOIiGjRokXU0dEhxmZoaIh2794948cmnU6T68pXnud55Ps+Ec3useGUMw7d3d00MDBAvb29pWOeeuop8n2fli9fXvM+15LffHi89tpr9F//9V80Z84cUT6bx6YiptridSweeughk0wmzYMPPmhefvll87nPfc60traavr6+qe5azfj85z9vWlpazDPPPGPefvvt0k86nS4dc/PNN5uuri7z1FNPmX379pnu7m7T3d09hb2eOri3izGzd2z27NljYrGYueOOO8xrr71mvvOd75j6+nrzH//xH6Vj7rzzTtPa2mp+9KMfmf/+7/82V1999Yx0J0VWr15tTj311JKr7Q9/+EMzd+5c84UvfKF0zGwZm+HhYfPCCy+YF154wRCR+ad/+ifzwgsvlDw2yhmHSy+91Jx33nlm9+7d5rnnnjNnnHHGjHAntY1NLpczV111lZk/f77Zv3+/eDdns9lSHTN1bCaSafnxYYwx//zP/2y6urpMIpEwy5YtM7t27ZrqLtUUIhrzZ9OmTaVjjh07Zv7yL//SnHTSSaa+vt780R/9kXn77benrtNTCH58zOaxefTRR81ZZ51lksmkWbx4sfnWt74lyn3fN1/+8pdNe3u7SSaT5pJLLjEHDhyYot7WjqGhIXPrrbearq4uk0qlzOmnn26+9KUviT8as2Vsnn766THfL6tXrzbGlDcO7733nrnuuutMY2OjaW5uNjfeeKMZHh6egquZWGxj88Ybb0S+m59++ulSHTN1bCYSxxgW3k9RFEVRFGWSmXY2H4qiKIqizGz040NRFEVRlJqiHx+KoiiKotQU/fhQFEVRFKWm6MeHoiiKoig1RT8+FEVRFEWpKfrxoSiKoihKTdGPD0VRFEVRaop+fCiKoiiKUlP040NRFEVRlJqiHx+KoiiKotQU/fhQFEVRFKWm/F+iX9aiPypn3AAAAABJRU5ErkJggg=="},"metadata":{}}]},{"cell_type":"code","source":"alignments","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:48.482921Z","iopub.execute_input":"2023-11-04T20:00:48.483576Z","iopub.status.idle":"2023-11-04T20:00:48.492583Z","shell.execute_reply.started":"2023-11-04T20:00:48.483541Z","shell.execute_reply":"2023-11-04T20:00:48.491592Z"},"trusted":true},"execution_count":26,"outputs":[{"execution_count":26,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"code","source":"tf.strings.reduce_join([bytes.decode(x) for x in num_to_char(alignments.numpy()).numpy()])","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:48.493792Z","iopub.execute_input":"2023-11-04T20:00:48.494073Z","iopub.status.idle":"2023-11-04T20:00:48.508347Z","shell.execute_reply.started":"2023-11-04T20:00:48.494050Z","shell.execute_reply":"2023-11-04T20:00:48.507314Z"},"trusted":true},"execution_count":27,"outputs":[{"execution_count":27,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"code","source":"def mappable_function(path:str) ->List[str]:\n result = tf.py_function(load_data, [path], (tf.float32, tf.int64))\n return result","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:48.509644Z","iopub.execute_input":"2023-11-04T20:00:48.509992Z","iopub.status.idle":"2023-11-04T20:00:48.516332Z","shell.execute_reply.started":"2023-11-04T20:00:48.509962Z","shell.execute_reply":"2023-11-04T20:00:48.515538Z"},"trusted":true},"execution_count":28,"outputs":[]},{"cell_type":"markdown","source":"# 2. Create Data Pipeline","metadata":{"tags":[]}},{"cell_type":"code","source":"from matplotlib import pyplot as plt","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:48.517727Z","iopub.execute_input":"2023-11-04T20:00:48.518154Z","iopub.status.idle":"2023-11-04T20:00:48.528574Z","shell.execute_reply.started":"2023-11-04T20:00:48.518120Z","shell.execute_reply":"2023-11-04T20:00:48.527662Z"},"trusted":true},"execution_count":29,"outputs":[]},{"cell_type":"code","source":"data = tf.data.Dataset.list_files('./data/s1/*.mpg')\ndata = data.shuffle(500, reshuffle_each_iteration=False)\ndata = data.map(mappable_function)\ndata = data.padded_batch(2, padded_shapes=([75,None,None,None],[40]))\ndata = data.prefetch(tf.data.AUTOTUNE)\n","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:48.529754Z","iopub.execute_input":"2023-11-04T20:00:48.530027Z","iopub.status.idle":"2023-11-04T20:00:48.623016Z","shell.execute_reply.started":"2023-11-04T20:00:48.530004Z","shell.execute_reply":"2023-11-04T20:00:48.622179Z"},"trusted":true},"execution_count":30,"outputs":[]},{"cell_type":"markdown","source":"","metadata":{}},{"cell_type":"code","source":"# Train - Test Split\ntrain = data.take(450)\ntest = data.skip(450)","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:48.624131Z","iopub.execute_input":"2023-11-04T20:00:48.624398Z","iopub.status.idle":"2023-11-04T20:00:48.632316Z","shell.execute_reply.started":"2023-11-04T20:00:48.624374Z","shell.execute_reply":"2023-11-04T20:00:48.631438Z"},"trusted":true},"execution_count":31,"outputs":[]},{"cell_type":"code","source":"len(train)","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:48.633556Z","iopub.execute_input":"2023-11-04T20:00:48.633881Z","iopub.status.idle":"2023-11-04T20:00:48.649690Z","shell.execute_reply.started":"2023-11-04T20:00:48.633844Z","shell.execute_reply":"2023-11-04T20:00:48.648787Z"},"trusted":true},"execution_count":32,"outputs":[{"execution_count":32,"output_type":"execute_result","data":{"text/plain":"450"},"metadata":{}}]},{"cell_type":"code","source":"frames, alignments = data.as_numpy_iterator().next()","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:48.650918Z","iopub.execute_input":"2023-11-04T20:00:48.651181Z","iopub.status.idle":"2023-11-04T20:00:49.314383Z","shell.execute_reply.started":"2023-11-04T20:00:48.651158Z","shell.execute_reply":"2023-11-04T20:00:49.313532Z"},"trusted":true},"execution_count":33,"outputs":[]},{"cell_type":"code","source":"len(frames)","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:49.315643Z","iopub.execute_input":"2023-11-04T20:00:49.316170Z","iopub.status.idle":"2023-11-04T20:00:49.321884Z","shell.execute_reply.started":"2023-11-04T20:00:49.316141Z","shell.execute_reply":"2023-11-04T20:00:49.321028Z"},"trusted":true},"execution_count":34,"outputs":[{"execution_count":34,"output_type":"execute_result","data":{"text/plain":"2"},"metadata":{}}]},{"cell_type":"code","source":"sample = data.as_numpy_iterator()","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:49.323307Z","iopub.execute_input":"2023-11-04T20:00:49.323623Z","iopub.status.idle":"2023-11-04T20:00:49.337725Z","shell.execute_reply.started":"2023-11-04T20:00:49.323597Z","shell.execute_reply":"2023-11-04T20:00:49.336885Z"},"trusted":true},"execution_count":35,"outputs":[]},{"cell_type":"code","source":"val = sample.next()\nval[0]","metadata":{"scrolled":true,"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:49.339184Z","iopub.execute_input":"2023-11-04T20:00:49.339513Z","iopub.status.idle":"2023-11-04T20:00:49.782356Z","shell.execute_reply.started":"2023-11-04T20:00:49.339482Z","shell.execute_reply":"2023-11-04T20:00:49.781146Z"},"trusted":true},"execution_count":36,"outputs":[{"execution_count":36,"output_type":"execute_result","data":{"text/plain":"array([[[[[1.3697747 ],\n [1.3697747 ],\n [1.3697747 ],\n ...,\n [0.03702094],\n [0.2961675 ],\n [0.18510468]],\n\n [[1.3697747 ],\n [1.3697747 ],\n [1.3697747 ],\n ...,\n [0.14808375],\n [0.14808375],\n [0.07404187]],\n\n [[1.3327538 ],\n [1.3327538 ],\n [1.3327538 ],\n ...,\n [0.18510468],\n [0.14808375],\n [0.14808375]],\n\n ...,\n\n [[0.92552346],\n [0.92552346],\n [0.92552346],\n ...,\n [9.329276 ],\n [9.292255 ],\n [9.292255 ]],\n\n [[0.92552346],\n [0.92552346],\n [0.92552346],\n ...,\n [9.292255 ],\n [9.255235 ],\n [9.255235 ]],\n\n [[0.92552346],\n [0.92552346],\n [0.92552346],\n ...,\n [9.292255 ],\n [9.255235 ],\n [9.255235 ]]],\n\n\n [[[1.3697747 ],\n [1.3697747 ],\n [1.3697747 ],\n ...,\n [0.03702094],\n [0.18510468],\n [0.14808375]],\n\n [[1.3697747 ],\n [1.3697747 ],\n [1.3697747 ],\n ...,\n [0.11106281],\n [0.11106281],\n [0.11106281]],\n\n [[1.2957329 ],\n [1.2957329 ],\n [1.2957329 ],\n ...,\n [0.14808375],\n [0.14808375],\n [0.14808375]],\n\n ...,\n\n [[0.92552346],\n [0.92552346],\n [0.8885025 ],\n ...,\n [9.292255 ],\n [9.292255 ],\n [9.292255 ]],\n\n [[0.92552346],\n [0.92552346],\n [0.8885025 ],\n ...,\n [9.255235 ],\n [9.255235 ],\n [9.255235 ]],\n\n [[0.92552346],\n [0.92552346],\n [0.8885025 ],\n ...,\n [9.255235 ],\n [9.255235 ],\n [9.255235 ]]],\n\n\n [[[1.3327538 ],\n [1.3327538 ],\n [1.3327538 ],\n ...,\n [0. ],\n [0.25914657],\n [0.11106281]],\n\n [[1.3327538 ],\n [1.3327538 ],\n [1.3327538 ],\n ...,\n [0.03702094],\n [0.14808375],\n [0.11106281]],\n\n [[1.3327538 ],\n [1.3327538 ],\n [1.3327538 ],\n ...,\n [0.11106281],\n [0.14808375],\n [0.14808375]],\n\n ...,\n\n [[0.9625444 ],\n [0.9625444 ],\n [0.92552346],\n ...,\n [9.292255 ],\n [9.292255 ],\n [9.292255 ]],\n\n [[0.92552346],\n [0.92552346],\n [0.8885025 ],\n ...,\n [9.255235 ],\n [9.255235 ],\n [9.255235 ]],\n\n [[0.92552346],\n [0.92552346],\n [0.8885025 ],\n ...,\n [9.255235 ],\n [9.255235 ],\n [9.255235 ]]],\n\n\n ...,\n\n\n [[[1.4438165 ],\n [1.4438165 ],\n [1.3697747 ],\n ...,\n [9.329276 ],\n [0.18510468],\n [0.11106281]],\n\n [[1.4067956 ],\n [1.4067956 ],\n [1.3327538 ],\n ...,\n [9.329276 ],\n [0.11106281],\n [0.11106281]],\n\n [[1.2587119 ],\n [1.2957329 ],\n [1.2957329 ],\n ...,\n [0.14808375],\n [0.14808375],\n [0.14808375]],\n\n ...,\n\n [[0.9995653 ],\n [0.9995653 ],\n [0.9625444 ],\n ...,\n [9.366297 ],\n [9.329276 ],\n [9.329276 ]],\n\n [[0.9625444 ],\n [0.9625444 ],\n [0.9625444 ],\n ...,\n [9.329276 ],\n [9.329276 ],\n [9.292255 ]],\n\n [[0.92552346],\n [0.92552346],\n [0.92552346],\n ...,\n [9.329276 ],\n [9.292255 ],\n [9.292255 ]]],\n\n\n [[[1.3697747 ],\n [1.3697747 ],\n [1.3327538 ],\n ...,\n [9.329276 ],\n [0.18510468],\n [0.07404187]],\n\n [[1.2957329 ],\n [1.3327538 ],\n [1.2957329 ],\n ...,\n [9.366297 ],\n [0.18510468],\n [0.07404187]],\n\n [[1.3327538 ],\n [1.3327538 ],\n [1.3327538 ],\n ...,\n [0.18510468],\n [0.14808375],\n [0.14808375]],\n\n ...,\n\n [[0.9995653 ],\n [0.9995653 ],\n [0.9625444 ],\n ...,\n [9.329276 ],\n [9.292255 ],\n [9.292255 ]],\n\n [[0.9625444 ],\n [0.9625444 ],\n [0.9625444 ],\n ...,\n [9.366297 ],\n [9.329276 ],\n [9.292255 ]],\n\n [[0.92552346],\n [0.92552346],\n [0.92552346],\n ...,\n [9.366297 ],\n [9.292255 ],\n [9.292255 ]]],\n\n\n [[[1.3327538 ],\n [1.3327538 ],\n [1.3327538 ],\n ...,\n [0. ],\n [0.22212562],\n [0.11106281]],\n\n [[1.3327538 ],\n [1.3327538 ],\n [1.3327538 ],\n ...,\n [9.403318 ],\n [0.33318844],\n [0.14808375]],\n\n [[1.3327538 ],\n [1.3327538 ],\n [1.3327538 ],\n ...,\n [0.18510468],\n [0.18510468],\n [0.14808375]],\n\n ...,\n\n [[1.0365863 ],\n [0.9995653 ],\n [0.9995653 ],\n ...,\n [9.366297 ],\n [9.329276 ],\n [9.329276 ]],\n\n [[0.9995653 ],\n [0.9995653 ],\n [0.9995653 ],\n ...,\n [9.366297 ],\n [9.329276 ],\n [9.292255 ]],\n\n [[0.9995653 ],\n [0.9625444 ],\n [0.9625444 ],\n ...,\n [9.366297 ],\n [9.292255 ],\n [9.292255 ]]]],\n\n\n\n [[[[0.49414608],\n [0.9502809 ],\n [1.0643146 ],\n ...,\n [0.26607865],\n [0.19005619],\n [0.19005619]],\n\n [[0.5321573 ],\n [0.6081798 ],\n [0.49414608],\n ...,\n [0.26607865],\n [0.19005619],\n [0.19005619]],\n\n [[1.1023259 ],\n [1.0643146 ],\n [0.646191 ],\n ...,\n [0.22806741],\n [0.22806741],\n [0.22806741]],\n\n ...,\n\n [[1.0643146 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0.03801124]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0. ],\n [0. ],\n [0. ]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0. ],\n [0. ],\n [0. ]]],\n\n\n [[[0.68420225],\n [0.79823595],\n [1.1783483 ],\n ...,\n [0.26607865],\n [0.19005619],\n [0.19005619]],\n\n [[0.68420225],\n [0.57016855],\n [0.4181236 ],\n ...,\n [0.26607865],\n [0.19005619],\n [0.19005619]],\n\n [[1.2543708 ],\n [1.2163596 ],\n [0.68420225],\n ...,\n [0.22806741],\n [0.22806741],\n [0.22806741]],\n\n ...,\n\n [[1.0643146 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0. ],\n [0.03801124],\n [0.03801124]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [9.692865 ],\n [0. ],\n [0. ]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [9.692865 ],\n [0. ],\n [0. ]]],\n\n\n [[[0.79823595],\n [0.87425846],\n [1.1023259 ],\n ...,\n [0.22806741],\n [0.19005619],\n [0.19005619]],\n\n [[0.76022476],\n [0.68420225],\n [0.34210113],\n ...,\n [0.22806741],\n [0.22806741],\n [0.22806741]],\n\n [[1.2163596 ],\n [1.1023259 ],\n [0.6081798 ],\n ...,\n [0.26607865],\n [0.26607865],\n [0.26607865]],\n\n ...,\n\n [[1.0643146 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0.03801124]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0.03801124]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0. ],\n [0. ],\n [0. ]]],\n\n\n ...,\n\n\n [[[1.1403371 ],\n [1.1403371 ],\n [0.68420225],\n ...,\n [0.22806741],\n [0.22806741],\n [0.22806741]],\n\n [[1.1023259 ],\n [0.91226965],\n [0.26607865],\n ...,\n [0.22806741],\n [0.22806741],\n [0.22806741]],\n\n [[1.292382 ],\n [1.292382 ],\n [1.0263034 ],\n ...,\n [0.19005619],\n [0.19005619],\n [0.19005619]],\n\n ...,\n\n [[1.0643146 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0. ]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0. ]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0. ],\n [0. ]]],\n\n\n [[[1.1783483 ],\n [1.2163596 ],\n [0.68420225],\n ...,\n [0.26607865],\n [0.22806741],\n [0.22806741]],\n\n [[1.1023259 ],\n [1.1023259 ],\n [0.45613483],\n ...,\n [0.26607865],\n [0.22806741],\n [0.22806741]],\n\n [[1.444427 ],\n [1.4064157 ],\n [0.9502809 ],\n ...,\n [0.19005619],\n [0.19005619],\n [0.19005619]],\n\n ...,\n\n [[1.0643146 ],\n [1.0643146 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0.03801124]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0.03801124]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0. ]]],\n\n\n [[[1.1403371 ],\n [1.1783483 ],\n [0.6081798 ],\n ...,\n [0.19005619],\n [0.19005619],\n [0.19005619]],\n\n [[1.0643146 ],\n [1.1023259 ],\n [0.45613483],\n ...,\n [0.19005619],\n [0.19005619],\n [0.19005619]],\n\n [[1.444427 ],\n [1.4064157 ],\n [0.98829216],\n ...,\n [0.22806741],\n [0.19005619],\n [0.19005619]],\n\n ...,\n\n [[1.0643146 ],\n [1.0643146 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0.03801124]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0.03801124]],\n\n [[1.0263034 ],\n [1.0263034 ],\n [1.0263034 ],\n ...,\n [0.03801124],\n [0.03801124],\n [0. ]]]]], dtype=float32)"},"metadata":{}}]},{"cell_type":"code","source":"val[0].shape","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:49.785393Z","iopub.execute_input":"2023-11-04T20:00:49.785774Z","iopub.status.idle":"2023-11-04T20:00:49.796646Z","shell.execute_reply.started":"2023-11-04T20:00:49.785721Z","shell.execute_reply":"2023-11-04T20:00:49.793908Z"},"trusted":true},"execution_count":37,"outputs":[{"execution_count":37,"output_type":"execute_result","data":{"text/plain":"(2, 75, 46, 140, 1)"},"metadata":{}}]},{"cell_type":"code","source":"# imageio.mimsave('./animation.gif', val[0][0], fps=10)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:49.798463Z","iopub.execute_input":"2023-11-04T20:00:49.798786Z","iopub.status.idle":"2023-11-04T20:00:49.806083Z","shell.execute_reply.started":"2023-11-04T20:00:49.798755Z","shell.execute_reply":"2023-11-04T20:00:49.804984Z"},"trusted":true},"execution_count":38,"outputs":[]},{"cell_type":"code","source":"# 0:videos, 0: 1st video out of the batch, 0: return the first frame in the video \nplt.imshow(val[0][0][23])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:49.808316Z","iopub.execute_input":"2023-11-04T20:00:49.808565Z","iopub.status.idle":"2023-11-04T20:00:50.092652Z","shell.execute_reply.started":"2023-11-04T20:00:49.808544Z","shell.execute_reply":"2023-11-04T20:00:50.091526Z"},"trusted":true},"execution_count":39,"outputs":[{"execution_count":39,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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W1uppqaGzj//fNq6dWup3BhDX/va1+j000+nmpoaWrRoEe3cuXMKe1wdisUiffWrX6U5c+ZQTU0Nve9976N/+Id/EHkoTpaxeeGFF+i6666jjo4O8jyPHn/8cVFezjgcOXKEbrnlFmpsbKTm5ma69dZbaWhoiI53XGOTz+fp7rvvpvPPP5/q6uqoo6ODPv3pT9P+/ftFHSfq2EwoZhry8MMPm2Qyaf793//dvPbaa+Zzn/ucaW5uNr29vVPdtaqxePFis3r1avPqq6+a7du3m2uuucZ0dnaaoaGh0jG33XabmTVrllm3bp3ZunWrueSSS8yll146hb2uPps3bzZnnnmmueCCC8wdd9xR+v3JOjZHjhwxs2fPNp/5zGfMpk2bzK5du8zatWvNW2+9VTrm3nvvNU1NTebxxx83v/rVr8z1119v5syZY0ZHR6ew55PPPffcY1pbW82aNWvM7t27zSOPPGLq6+vNd77zndIxJ8vYPPXUU+YrX/mKefTRRw0Rmccee0yUlzMOV111lfnQhz5kNm7caH75y1+as88+29x8881VvpKJxzU2fX19ZtGiRebHP/6xeeONN8yGDRvMggULzLx580QdJ+rYTCTT8uNjwYIFZtmyZaX9YrFoOjo6zMqVK6ewV1PLwYMHDRGZ9evXG2PeewgSiYR55JFHSsf87//+ryEis2HDhqnqZlUZHBw055xzjnnmmWfMH//xH5c+Pk7msbn77rvN5ZdfHlkeBIFpb283//zP/1z6XV9fn0mlUuY///M/q9HFKePaa681f/mXfyl+d9NNN5lbbrnFGHPyjg3+gS1nHF5//XVDRGbLli2lY37+858bz/PMvn37qtb3yeZoH2bI5s2bDRGZt99+2xhz8ozNsTLtzC65XI62bdtGixYtKv3O931atGgRbdiwYQp7NrX09/cTEVFLSwsREW3bto3y+bwYp7lz51JnZ+dJM07Lli2ja6+9VowB0ck9Nk888QTNnz+f/vzP/5xmzJhBF110Ef3gBz8ole/evZt6enrE2DQ1NdHChQtP+LG59NJLad26dfTmm28SEdGvfvUrevHFF+nqq68mopN7bDjljMOGDRuoubmZ5s+fXzpm0aJF5Ps+bdq0qep9nkr6+/vJ8zxqbm4mIh2bcpl2ieUOHz5MxWKR2traxO/b2trojTfemKJeTS1BENCdd95Jl112GZ133nlERNTT00PJZLI04X9PW1sb9fT0TEEvq8vDDz9ML730Em3ZsiVUdjKPza5du+j++++n5cuX09/+7d/Sli1b6K//+q8pmUzS0qVLS9d/tOfrRB+bL3/5yzQwMEBz586lWCxGxWKR7rnnHrrllluIiE7qseGUMw49PT00Y8YMUR6Px6mlpeWkGqtMJkN333033XzzzaXkcjo25THtPj6UMMuWLaNXX32VXnzxxanuyrSgu7ub7rjjDnrmmWconU5PdXemFUEQ0Pz58+kf//EfiYjooosuoldffZW+973v0dKlS6e4d1PLT37yE/rRj35EDz30EH3wgx+k7du305133kkdHR0n/dgolZPP5+njH/84GWPo/vvvn+ruHHdMO7PLqaeeSrFYLKRM6O3tpfb29inq1dRx++2305o1a+i5556jmTNnln7f3t5OuVyO+vr6xPEnwzht27aNDh48SBdffDHF43GKx+O0fv16+u53v0vxeJza2tpO2rE5/fTT6QMf+ID43bnnnkt79uwhIipd/8n4fP3N3/wNffnLX6ZPfvKTdP7559Nf/MVf0F133UUrV64kopN7bDjljEN7ezsdPHhQlBcKBTpy5MhJMVa///B4++236ZlnnimtehDp2JTLtPv4SCaTNG/ePFq3bl3pd0EQ0Lp166irq2sKe1ZdjDF0++2302OPPUbPPvsszZkzR5TPmzePEomEGKcdO3bQnj17TvhxuvLKK+mVV16h7du3l37mz59Pt9xyS2n7ZB2byy67LCTJfvPNN2n27NlERDRnzhxqb28XYzMwMECbNm064cdmZGSEfF++8mKxGAVBQEQn99hwyhmHrq4u6uvro23btpWOefbZZykIAlq4cGHV+1xNfv/hsXPnTvrFL35Bra2tovxkHpuKmGqP16Px8MMPm1QqZR588EHz+uuvm89//vOmubnZ9PT0THXXqsYXvvAF09TUZJ5//nlz4MCB0s/IyEjpmNtuu810dnaaZ5991mzdutV0dXWZrq6uKez11MHVLsacvGOzefNmE4/HzT333GN27txpfvSjH5na2lrzwx/+sHTMvffea5qbm83PfvYz8+tf/9rccMMNJ6ScFFm6dKk544wzSlLbRx991Jx66qnmS1/6UumYk2VsBgcHzcsvv2xefvllQ0TmX/7lX8zLL79cUmyUMw5XXXWVueiii8ymTZvMiy++aM4555wTQk7qGptcLmeuv/56M3PmTLN9+3bxbs5ms6U6TtSxmUim5ceHMcb867/+q+ns7DTJZNIsWLDAbNy4caq7VFWI6Kg/q1evLh0zOjpq/uqv/sqccsoppra21nzsYx8zBw4cmLpOTyH48XEyj82TTz5pzjvvPJNKpczcuXPNv/3bv4nyIAjMV7/6VdPW1mZSqZS58sorzY4dO6aot9VjYGDA3HHHHaazs9Ok02lz1llnma985Svij8bJMjbPPffcUd8vS5cuNcaUNw7vvPOOufnmm019fb1pbGw0n/3sZ83g4OAUXM3E4hqb3bt3R76bn3vuuVIdJ+rYTCSeMSy8n6IoiqIoyiQz7Xw+FEVRFEU5sdGPD0VRFEVRqop+fCiKoiiKUlX040NRFEVRlKqiHx+KoiiKolQV/fhQFEVRFKWq6MeHoiiKoihVRT8+FEVRFEWpKvrxoSiKoihKVdGPD0VRFEVRqop+fCiKoiiKUlX040NRFEVRlKry/wMjnxmFiToh1wAAAABJRU5ErkJggg=="},"metadata":{}}]},{"cell_type":"code","source":"tf.strings.reduce_join([num_to_char(word) for word in val[1][0]])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:50.095193Z","iopub.execute_input":"2023-11-04T20:00:50.095494Z","iopub.status.idle":"2023-11-04T20:00:50.169049Z","shell.execute_reply.started":"2023-11-04T20:00:50.095468Z","shell.execute_reply":"2023-11-04T20:00:50.168039Z"},"trusted":true},"execution_count":40,"outputs":[{"execution_count":40,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"markdown","source":"# 3. Design the Deep Neural Network","metadata":{"tags":[]}},{"cell_type":"code","source":"from tensorflow.keras.models import Sequential \nfrom tensorflow.keras.layers import Conv3D, LSTM, Dense, Dropout, Bidirectional, MaxPool3D, Activation, Reshape, SpatialDropout3D, BatchNormalization, TimeDistributed, Flatten\nfrom tensorflow.keras.optimizers import Adam\nfrom tensorflow.keras.callbacks import ModelCheckpoint, LearningRateScheduler","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:50.181079Z","iopub.execute_input":"2023-11-04T20:00:50.181454Z","iopub.status.idle":"2023-11-04T20:00:50.194539Z","shell.execute_reply.started":"2023-11-04T20:00:50.181429Z","shell.execute_reply":"2023-11-04T20:00:50.192467Z"},"trusted":true},"execution_count":41,"outputs":[]},{"cell_type":"code","source":"data.as_numpy_iterator().next()[0][0].shape","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:50.196732Z","iopub.execute_input":"2023-11-04T20:00:50.198037Z","iopub.status.idle":"2023-11-04T20:00:51.070693Z","shell.execute_reply.started":"2023-11-04T20:00:50.198003Z","shell.execute_reply":"2023-11-04T20:00:51.069707Z"},"trusted":true},"execution_count":42,"outputs":[{"execution_count":42,"output_type":"execute_result","data":{"text/plain":"(75, 46, 140, 1)"},"metadata":{}}]},{"cell_type":"code","source":"model = Sequential()\nmodel.add(Conv3D(128, 3, input_shape=(75,46,140,1), padding='same'))\nmodel.add(Activation('relu'))\nmodel.add(MaxPool3D((1,2,2)))\n\nmodel.add(Conv3D(256, 3, padding='same'))\nmodel.add(Activation('relu'))\nmodel.add(MaxPool3D((1,2,2)))\n\nmodel.add(Conv3D(75, 3, padding='same'))\nmodel.add(Activation('relu'))\nmodel.add(MaxPool3D((1,2,2)))\n\nmodel.add(TimeDistributed(Flatten()))\n\nmodel.add(Bidirectional(LSTM(128, kernel_initializer='Orthogonal', return_sequences=True)))\nmodel.add(Dropout(.5))\n\nmodel.add(Bidirectional(LSTM(128, kernel_initializer='Orthogonal', return_sequences=True)))\nmodel.add(Dropout(.5))\n\nmodel.add(Dense(char_to_num.vocabulary_size()+1, kernel_initializer='he_normal', activation='softmax'))","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:51.072027Z","iopub.execute_input":"2023-11-04T20:00:51.072327Z","iopub.status.idle":"2023-11-04T20:00:53.125310Z","shell.execute_reply.started":"2023-11-04T20:00:51.072302Z","shell.execute_reply":"2023-11-04T20:00:53.124526Z"},"trusted":true},"execution_count":43,"outputs":[]},{"cell_type":"code","source":"model.summary()","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:53.126871Z","iopub.execute_input":"2023-11-04T20:00:53.127229Z","iopub.status.idle":"2023-11-04T20:00:53.172782Z","shell.execute_reply.started":"2023-11-04T20:00:53.127195Z","shell.execute_reply":"2023-11-04T20:00:53.171895Z"},"trusted":true},"execution_count":44,"outputs":[{"name":"stdout","text":"Model: \"sequential\"\n_________________________________________________________________\n Layer (type) Output Shape Param # \n=================================================================\n conv3d (Conv3D) (None, 75, 46, 140, 128) 3584 \n \n activation (Activation) (None, 75, 46, 140, 128) 0 \n \n max_pooling3d (MaxPooling3D (None, 75, 23, 70, 128) 0 \n ) \n \n conv3d_1 (Conv3D) (None, 75, 23, 70, 256) 884992 \n \n activation_1 (Activation) (None, 75, 23, 70, 256) 0 \n \n max_pooling3d_1 (MaxPooling (None, 75, 11, 35, 256) 0 \n 3D) \n \n conv3d_2 (Conv3D) (None, 75, 11, 35, 75) 518475 \n \n activation_2 (Activation) (None, 75, 11, 35, 75) 0 \n \n max_pooling3d_2 (MaxPooling (None, 75, 5, 17, 75) 0 \n 3D) \n \n time_distributed (TimeDistr (None, 75, 6375) 0 \n ibuted) \n \n bidirectional (Bidirectiona (None, 75, 256) 6660096 \n l) \n \n dropout (Dropout) (None, 75, 256) 0 \n \n bidirectional_1 (Bidirectio (None, 75, 256) 394240 \n nal) \n \n dropout_1 (Dropout) (None, 75, 256) 0 \n \n dense (Dense) (None, 75, 41) 10537 \n \n=================================================================\nTotal params: 8,471,924\nTrainable params: 8,471,924\nNon-trainable params: 0\n_________________________________________________________________\n","output_type":"stream"}]},{"cell_type":"code","source":"5*17*75","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:53.173878Z","iopub.execute_input":"2023-11-04T20:00:53.174140Z","iopub.status.idle":"2023-11-04T20:00:53.179704Z","shell.execute_reply.started":"2023-11-04T20:00:53.174116Z","shell.execute_reply":"2023-11-04T20:00:53.178862Z"},"trusted":true},"execution_count":45,"outputs":[{"execution_count":45,"output_type":"execute_result","data":{"text/plain":"6375"},"metadata":{}}]},{"cell_type":"code","source":"yhat = model.predict(val[0])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:53.180647Z","iopub.execute_input":"2023-11-04T20:00:53.180937Z","iopub.status.idle":"2023-11-04T20:00:56.846381Z","shell.execute_reply.started":"2023-11-04T20:00:53.180913Z","shell.execute_reply":"2023-11-04T20:00:56.845430Z"},"trusted":true},"execution_count":46,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 4s 4s/step\n","output_type":"stream"}]},{"cell_type":"code","source":"tf.strings.reduce_join([num_to_char(x) for x in tf.argmax(yhat[0],axis=1)])","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:56.847935Z","iopub.execute_input":"2023-11-04T20:00:56.848304Z","iopub.status.idle":"2023-11-04T20:00:56.938652Z","shell.execute_reply.started":"2023-11-04T20:00:56.848269Z","shell.execute_reply":"2023-11-04T20:00:56.937808Z"},"trusted":true},"execution_count":47,"outputs":[{"execution_count":47,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"code","source":"tf.strings.reduce_join([num_to_char(tf.argmax(x)) for x in yhat[0]])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:56.940137Z","iopub.execute_input":"2023-11-04T20:00:56.940485Z","iopub.status.idle":"2023-11-04T20:00:57.015533Z","shell.execute_reply.started":"2023-11-04T20:00:56.940453Z","shell.execute_reply":"2023-11-04T20:00:57.014717Z"},"trusted":true},"execution_count":48,"outputs":[{"execution_count":48,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"code","source":"model.input_shape","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:57.016838Z","iopub.execute_input":"2023-11-04T20:00:57.017173Z","iopub.status.idle":"2023-11-04T20:00:57.023337Z","shell.execute_reply.started":"2023-11-04T20:00:57.017142Z","shell.execute_reply":"2023-11-04T20:00:57.022460Z"},"trusted":true},"execution_count":49,"outputs":[{"execution_count":49,"output_type":"execute_result","data":{"text/plain":"(None, 75, 46, 140, 1)"},"metadata":{}}]},{"cell_type":"code","source":"model.output_shape","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:57.024442Z","iopub.execute_input":"2023-11-04T20:00:57.024704Z","iopub.status.idle":"2023-11-04T20:00:57.035417Z","shell.execute_reply.started":"2023-11-04T20:00:57.024680Z","shell.execute_reply":"2023-11-04T20:00:57.034468Z"},"trusted":true},"execution_count":50,"outputs":[{"execution_count":50,"output_type":"execute_result","data":{"text/plain":"(None, 75, 41)"},"metadata":{}}]},{"cell_type":"markdown","source":"# 4. Setup Training Options and Train","metadata":{"tags":[]}},{"cell_type":"code","source":"def scheduler(epoch, lr):\n if epoch < 30:\n return lr\n else:\n return lr * tf.math.exp(-0.1)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:57.036568Z","iopub.execute_input":"2023-11-04T20:00:57.036854Z","iopub.status.idle":"2023-11-04T20:00:57.045583Z","shell.execute_reply.started":"2023-11-04T20:00:57.036831Z","shell.execute_reply":"2023-11-04T20:00:57.044662Z"},"trusted":true},"execution_count":51,"outputs":[]},{"cell_type":"code","source":"# define our special CTC loss function\ndef CTCLoss(y_true, y_pred):\n batch_len = tf.cast(tf.shape(y_true)[0], dtype=\"int64\")\n input_length = tf.cast(tf.shape(y_pred)[1], dtype=\"int64\")\n label_length = tf.cast(tf.shape(y_true)[1], dtype=\"int64\")\n\n input_length = input_length * tf.ones(shape=(batch_len, 1), dtype=\"int64\")\n label_length = label_length * tf.ones(shape=(batch_len, 1), dtype=\"int64\")\n\n loss = tf.keras.backend.ctc_batch_cost(y_true, y_pred, input_length, label_length)\n return loss","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:57.046636Z","iopub.execute_input":"2023-11-04T20:00:57.046944Z","iopub.status.idle":"2023-11-04T20:00:57.056924Z","shell.execute_reply.started":"2023-11-04T20:00:57.046921Z","shell.execute_reply":"2023-11-04T20:00:57.056001Z"},"trusted":true},"execution_count":52,"outputs":[]},{"cell_type":"code","source":"# produce example original lable and predicted lable after each epoch to see model performance\nclass ProduceExample(tf.keras.callbacks.Callback): \n def __init__(self, dataset) -> None: \n self.dataset = dataset.as_numpy_iterator()\n \n def on_epoch_end(self, epoch, logs=None) -> None:\n# if epoh == 1 or epoch % 4 == 0:\n data = self.dataset.next()\n yhat = self.model.predict(data[0])\n decoded = tf.keras.backend.ctc_decode(yhat, [75,75], greedy=False)[0][0].numpy()\n for x in range(len(yhat)): \n print('Original:', tf.strings.reduce_join(num_to_char(data[1][x])).numpy().decode('utf-8'))\n print('Prediction:', tf.strings.reduce_join(num_to_char(decoded[x])).numpy().decode('utf-8'))\n print('-'*100)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:57.058118Z","iopub.execute_input":"2023-11-04T20:00:57.058394Z","iopub.status.idle":"2023-11-04T20:00:57.069386Z","shell.execute_reply.started":"2023-11-04T20:00:57.058370Z","shell.execute_reply":"2023-11-04T20:00:57.068428Z"},"trusted":true},"execution_count":53,"outputs":[]},{"cell_type":"code","source":"# use adam optimizer\nmodel.compile(optimizer=tf.keras.optimizers.legacy.Adam(learning_rate=0.0001), loss=CTCLoss)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:57.070547Z","iopub.execute_input":"2023-11-04T20:00:57.070873Z","iopub.status.idle":"2023-11-04T20:00:57.093280Z","shell.execute_reply.started":"2023-11-04T20:00:57.070849Z","shell.execute_reply":"2023-11-04T20:00:57.092544Z"},"trusted":true},"execution_count":54,"outputs":[]},{"cell_type":"code","source":"checkpoint_callback = ModelCheckpoint(os.path.join('models','checkpoint'), monitor='loss', save_weights_only=True) ","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:57.094354Z","iopub.execute_input":"2023-11-04T20:00:57.094614Z","iopub.status.idle":"2023-11-04T20:00:57.099362Z","shell.execute_reply.started":"2023-11-04T20:00:57.094591Z","shell.execute_reply":"2023-11-04T20:00:57.098493Z"},"trusted":true},"execution_count":55,"outputs":[]},{"cell_type":"code","source":"schedule_callback = LearningRateScheduler(scheduler)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:57.100517Z","iopub.execute_input":"2023-11-04T20:00:57.101375Z","iopub.status.idle":"2023-11-04T20:00:57.110387Z","shell.execute_reply.started":"2023-11-04T20:00:57.101344Z","shell.execute_reply":"2023-11-04T20:00:57.109361Z"},"trusted":true},"execution_count":56,"outputs":[]},{"cell_type":"code","source":"example_callback = ProduceExample(test)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-04T20:00:57.111513Z","iopub.execute_input":"2023-11-04T20:00:57.111831Z","iopub.status.idle":"2023-11-04T20:00:57.132512Z","shell.execute_reply.started":"2023-11-04T20:00:57.111791Z","shell.execute_reply":"2023-11-04T20:00:57.131844Z"},"trusted":true},"execution_count":57,"outputs":[]},{"cell_type":"code","source":"history = model.fit(train, validation_data=test, epochs=96, callbacks=[checkpoint_callback, schedule_callback, example_callback])","metadata":{"execution":{"iopub.status.busy":"2023-11-04T20:00:57.133583Z","iopub.execute_input":"2023-11-04T20:00:57.133868Z","iopub.status.idle":"2023-11-05T03:35:01.748972Z","shell.execute_reply.started":"2023-11-04T20:00:57.133844Z","shell.execute_reply":"2023-11-05T03:35:01.746997Z"},"trusted":true},"execution_count":58,"outputs":[{"name":"stdout","text":"Epoch 1/96\n448/450 [============================>.] - ETA: 1s - loss: 85.3319","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76940c7700] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76940c7700] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 85.2746","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76ec030440] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76ec030440] Warning MVs not available\n[mpeg1video @ 0x7d7768032a80] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7768032a80] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 2s 2s/step\nOriginal: bin white at t two now\nPrediction: le e e e e eo\n----------------------------------------------------------------------------------------------------\nOriginal: set white by o eight now\nPrediction: le e e e e eo\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 739s 2s/step - loss: 85.2746 - val_loss: 69.1930 - lr: 1.0000e-04\nEpoch 2/96\n 68/450 [===>..........................] - ETA: 4:28 - loss: 73.4134","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76b8053980] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76b8053980] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 70.9716","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d77940ad200] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d77940ad200] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 118ms/step\nOriginal: lay white at r nine again\nPrediction: la e e e o o\n----------------------------------------------------------------------------------------------------\nOriginal: place blue with j three soon\nPrediction: la e e e o o\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 533s 1s/step - loss: 70.9716 - val_loss: 65.6452 - lr: 1.0000e-04\nEpoch 3/96\n169/450 [==========>...................] - ETA: 3:16 - loss: 68.2471","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7698203d00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7698203d00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 66.9147","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76e40a8280] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76e40a8280] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 118ms/step\nOriginal: place white by d six now\nPrediction: la e e i e eo\n----------------------------------------------------------------------------------------------------\nOriginal: lay red with l seven again\nPrediction: la e e i e eo\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 533s 1s/step - loss: 66.9147 - val_loss: 62.2782 - lr: 1.0000e-04\nEpoch 4/96\n335/450 [=====================>........] - ETA: 1:20 - loss: 64.3567","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d786819c100] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d786819c100] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 63.9592","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d74efbb6340] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d74efbb6340] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 119ms/step\nOriginal: lay blue in d five again\nPrediction: la re t e eo\n----------------------------------------------------------------------------------------------------\nOriginal: place blue in u nine soon\nPrediction: la re t e eo\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 534s 1s/step - loss: 63.9592 - val_loss: 58.9128 - lr: 1.0000e-04\nEpoch 5/96\n104/450 [=====>........................] - ETA: 4:01 - loss: 62.2432","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d77681e9fc0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d77681e9fc0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 61.8173","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76940a2e00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76940a2e00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 116ms/step\nOriginal: set red in h one soon\nPrediction: la re t e on\n----------------------------------------------------------------------------------------------------\nOriginal: bin white at m eight now\nPrediction: la re t e on\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 533s 1s/step - loss: 61.8173 - val_loss: 58.2501 - lr: 1.0000e-04\nEpoch 6/96\n 95/450 [=====>........................] - ETA: 4:08 - loss: 60.6522","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76e800bbc0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76e800bbc0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 60.1350","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d785009fe00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d785009fe00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 116ms/step\nOriginal: set blue at a five soon\nPrediction: la re i e on\n----------------------------------------------------------------------------------------------------\nOriginal: place white by d seven soon\nPrediction: la re t e oa\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 534s 1s/step - loss: 60.1350 - val_loss: 55.6897 - lr: 1.0000e-04\nEpoch 7/96\n 3/450 [..............................] - ETA: 5:12 - loss: 61.2685","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d75e1f81940] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d75e1f81940] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 58.5690","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76f8038e00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76f8038e00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 114ms/step\nOriginal: set green by p seven again\nPrediction: la re i e on\n----------------------------------------------------------------------------------------------------\nOriginal: lay blue at d nine again\nPrediction: la re i e on\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 535s 1s/step - loss: 58.5690 - val_loss: 55.3017 - lr: 1.0000e-04\nEpoch 8/96\n128/450 [=======>......................] - ETA: 3:45 - loss: 57.1586","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7684b6c000] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7684b6c000] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 55.7670","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76b800cf00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76b800cf00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 122ms/step\nOriginal: set white in o three again\nPrediction: la re t e ae\n----------------------------------------------------------------------------------------------------\nOriginal: set green with q zero please\nPrediction: la re t e ae\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 534s 1s/step - loss: 55.7670 - val_loss: 50.9557 - lr: 1.0000e-04\nEpoch 9/96\n 6/450 [..............................] - ETA: 5:05 - loss: 51.8333","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d78640a13c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d78640a13c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 52.7824","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7698001600] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7698001600] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 119ms/step\nOriginal: bin blue in l three soon\nPrediction: la re i e on\n----------------------------------------------------------------------------------------------------\nOriginal: bin green at u zero please\nPrediction: la re t e aon\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 536s 1s/step - loss: 52.7824 - val_loss: 48.8146 - lr: 1.0000e-04\nEpoch 10/96\n117/450 [======>.......................] - ETA: 3:52 - loss: 51.7781","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76f8069700] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76f8069700] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 50.8946","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x5646a2e28980] ac-tex damaged at 22 17\n[mpeg1video @ 0x5646a2e28980] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 116ms/step\nOriginal: place red by x five again\nPrediction: la re i e an\n----------------------------------------------------------------------------------------------------\nOriginal: lay white by f four please\nPrediction: la re t e ae\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 534s 1s/step - loss: 50.8946 - val_loss: 46.5846 - lr: 1.0000e-04\nEpoch 11/96\n 71/450 [===>..........................] - ETA: 4:23 - loss: 49.8170","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76b8015b00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76b8015b00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 49.0681","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7794036140] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7794036140] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 117ms/step\nOriginal: bin blue at f four please\nPrediction: set re b e pae\n----------------------------------------------------------------------------------------------------\nOriginal: bin green at t eight now\nPrediction: set re i ie on\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 530s 1s/step - loss: 49.0681 - val_loss: 45.2084 - lr: 1.0000e-04\nEpoch 12/96\n450/450 [==============================] - ETA: 0s - loss: 47.0584","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76f80a7680] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76f80a7680] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 119ms/step\nOriginal: lay blue in x six please\nPrediction: la re t ie ae\n----------------------------------------------------------------------------------------------------\nOriginal: place red by x four please\nPrediction: la re y e pase\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 531s 1s/step - loss: 47.0584 - val_loss: 41.4461 - lr: 1.0000e-04\nEpoch 13/96\n246/450 [===============>..............] - ETA: 2:22 - loss: 44.8250","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7684d65180] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7684d65180] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 44.3900","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76aa01d540] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76aa01d540] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 130ms/step\nOriginal: place white at d five again\nPrediction: la re it ie ain\n----------------------------------------------------------------------------------------------------\nOriginal: lay red by e nine again\nPrediction: la re y e aon\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 532s 1s/step - loss: 44.3900 - val_loss: 40.2157 - lr: 1.0000e-04\nEpoch 14/96\n377/450 [========================>.....] - ETA: 50s - loss: 42.6432","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d78500a1d80] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d78500a1d80] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 42.5115","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d768806e180] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d768806e180] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 120ms/step\nOriginal: lay green in f three again\nPrediction: la gre it ie ain\n----------------------------------------------------------------------------------------------------\nOriginal: bin blue with g two please\nPrediction: la blue it oe plase\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 530s 1s/step - loss: 42.5115 - val_loss: 36.6420 - lr: 1.0000e-04\nEpoch 15/96\n 81/450 [====>.........................] - ETA: 4:16 - loss: 40.0415","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76ec0af680] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76ec0af680] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 39.7808","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d78580c7300] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d78580c7300] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 114ms/step\nOriginal: set red at u two now\nPrediction: la re it on ow\n----------------------------------------------------------------------------------------------------\nOriginal: lay green by m four please\nPrediction: la re iy oe plese\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 532s 1s/step - loss: 39.7808 - val_loss: 34.9563 - lr: 1.0000e-04\nEpoch 16/96\n269/450 [================>.............] - ETA: 2:06 - loss: 38.0795","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76b295e5c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76b295e5c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 37.8971","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76fc0b7340] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76fc0b7340] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 116ms/step\nOriginal: place red with d four now\nPrediction: la gre it o ow\n----------------------------------------------------------------------------------------------------\nOriginal: lay green in l six please\nPrediction: set gre it o plase\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 531s 1s/step - loss: 37.8971 - val_loss: 31.5592 - lr: 1.0000e-04\nEpoch 17/96\n 42/450 [=>............................] - ETA: 4:40 - loss: 37.2339","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7694076200] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7694076200] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 35.7804","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76e804c340] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76e804c340] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 125ms/step\nOriginal: place green with l two please\nPrediction: pla gre it o plase\n----------------------------------------------------------------------------------------------------\nOriginal: set white by v five again\nPrediction: sit whie by ie ain\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 526s 1s/step - loss: 35.7804 - val_loss: 30.6613 - lr: 1.0000e-04\nEpoch 18/96\n317/450 [====================>.........] - ETA: 1:31 - loss: 33.3841","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7864073480] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7864073480] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 33.3151","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d75e1fa4540] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d75e1fa4540] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 123ms/step\nOriginal: place white at q zero now\nPrediction: plac blue it o now\n----------------------------------------------------------------------------------------------------\nOriginal: place white in x zero now\nPrediction: plac whie it o now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 527s 1s/step - loss: 33.3151 - val_loss: 27.6424 - lr: 1.0000e-04\nEpoch 19/96\n 45/450 [==>...........................] - ETA: 4:39 - loss: 31.6894","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7768044b80] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7768044b80] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 30.8727","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7684b7ea80] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7684b7ea80] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 115ms/step\nOriginal: bin red in f seven again\nPrediction: set red it ne ain\n----------------------------------------------------------------------------------------------------\nOriginal: lay blue with y six now\nPrediction: pla blue it ie now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 526s 1s/step - loss: 30.8727 - val_loss: 26.3044 - lr: 1.0000e-04\nEpoch 20/96\n 49/450 [==>...........................] - ETA: 4:37 - loss: 29.1554","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76e402d840] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76e402d840] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 28.5955","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d784c0c5140] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d784c0c5140] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 121ms/step\nOriginal: bin white by n three soon\nPrediction: bit white bt hre son\n----------------------------------------------------------------------------------------------------\nOriginal: set white with v seven soon\nPrediction: set whie it ie son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 527s 1s/step - loss: 28.5955 - val_loss: 23.0497 - lr: 1.0000e-04\nEpoch 21/96\n 80/450 [====>.........................] - ETA: 4:15 - loss: 25.9200","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76a404f1c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76a404f1c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 26.3424","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76f4088780] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76f4088780] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 115ms/step\nOriginal: set white at v zero please\nPrediction: sit white at zo please\n----------------------------------------------------------------------------------------------------\nOriginal: place white with k four now\nPrediction: place whie wit ro now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 26.3424 - val_loss: 20.3814 - lr: 1.0000e-04\nEpoch 22/96\n 75/450 [====>.........................] - ETA: 4:20 - loss: 24.0886","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76880ba700] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76880ba700] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 24.4883","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76bc0c2680] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76bc0c2680] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 115ms/step\nOriginal: place blue at p zero please\nPrediction: place blue at ro please\n----------------------------------------------------------------------------------------------------\nOriginal: place green at e one again\nPrediction: place gren an ne ain\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 24.4883 - val_loss: 18.4825 - lr: 1.0000e-04\nEpoch 23/96\n223/450 [=============>................] - ETA: 2:37 - loss: 22.7817","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d785009eac0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d785009eac0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 22.5235","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76a4078680] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76a4078680] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 124ms/step\nOriginal: lay green with t zero now\nPrediction: place gre wit er now\n----------------------------------------------------------------------------------------------------\nOriginal: lay red at y four now\nPrediction: lay red at or now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 531s 1s/step - loss: 22.5235 - val_loss: 17.3327 - lr: 1.0000e-04\nEpoch 24/96\n 52/450 [==>...........................] - ETA: 4:38 - loss: 21.2628","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76f4037f40] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76f4037f40] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 20.8805","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d785803cc40] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d785803cc40] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 114ms/step\nOriginal: place red in v seven again\nPrediction: place red in eve again\n----------------------------------------------------------------------------------------------------\nOriginal: set white in o one soon\nPrediction: set white in oe son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 531s 1s/step - loss: 20.8805 - val_loss: 15.4639 - lr: 1.0000e-04\nEpoch 25/96\n 34/450 [=>............................] - ETA: 4:46 - loss: 20.7000","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76b8079e00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76b8079e00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 19.3281","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d776808e3c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d776808e3c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 118ms/step\nOriginal: set white with c four now\nPrediction: bit white wit or now\n----------------------------------------------------------------------------------------------------\nOriginal: place green in k zero please\nPrediction: place gren in zor please\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 528s 1s/step - loss: 19.3281 - val_loss: 15.1650 - lr: 1.0000e-04\nEpoch 26/96\n 52/450 [==>...........................] - ETA: 4:38 - loss: 17.5392","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d769405f000] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d769405f000] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 17.7996","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76e40858c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76e40858c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 122ms/step\nOriginal: place red by j six please\nPrediction: place red by six please\n----------------------------------------------------------------------------------------------------\nOriginal: bin white in g zero now\nPrediction: bin white in zr now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 527s 1s/step - loss: 17.7996 - val_loss: 12.4896 - lr: 1.0000e-04\nEpoch 27/96\n395/450 [=========================>....] - ETA: 38s - loss: 16.5832","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d78640b03c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d78640b03c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 16.5271","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76a001ce00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76a001ce00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 116ms/step\nOriginal: place blue by j zero please\nPrediction: place blue by eor please\n----------------------------------------------------------------------------------------------------\nOriginal: set green with p nine soon\nPrediction: set gren with ine son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 527s 1s/step - loss: 16.5271 - val_loss: 11.0701 - lr: 1.0000e-04\nEpoch 28/96\n257/450 [================>.............] - ETA: 2:13 - loss: 14.8020","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d776804a0c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d776804a0c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 15.0045","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7694076100] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7694076100] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 122ms/step\nOriginal: lay blue by k seven again\nPrediction: lay blue by seve again\n----------------------------------------------------------------------------------------------------\nOriginal: set blue at g eight now\nPrediction: set blue at eght now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 15.0045 - val_loss: 10.2751 - lr: 1.0000e-04\nEpoch 29/96\n339/450 [=====================>........] - ETA: 1:16 - loss: 14.0662","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76e40240c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76e40240c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 14.0592","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d78481301c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d78481301c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 119ms/step\nOriginal: lay blue in q one soon\nPrediction: lay blue in ne son\n----------------------------------------------------------------------------------------------------\nOriginal: lay green in f one soon\nPrediction: lay gren in ne son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 14.0592 - val_loss: 9.1001 - lr: 1.0000e-04\nEpoch 30/96\n412/450 [==========================>...] - ETA: 26s - loss: 13.1332","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d74efc73340] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d74efc73340] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 13.1728","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76f800a380] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76f800a380] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 119ms/step\nOriginal: place blue by c five soon\nPrediction: place blue by five son\n----------------------------------------------------------------------------------------------------\nOriginal: place green by e three soon\nPrediction: place gren by tre son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 530s 1s/step - loss: 13.1728 - val_loss: 9.4078 - lr: 1.0000e-04\nEpoch 31/96\n118/450 [======>.......................] - ETA: 3:50 - loss: 12.5134","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x5646a3268900] ac-tex damaged at 22 17\n[mpeg1video @ 0x5646a3268900] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 12.3935","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76b2406900] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76b2406900] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 121ms/step\nOriginal: set blue at n three soon\nPrediction: set blue at tre son\n----------------------------------------------------------------------------------------------------\nOriginal: place white at j eight please\nPrediction: place white at eiht please\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 530s 1s/step - loss: 12.3935 - val_loss: 8.2575 - lr: 9.0484e-05\nEpoch 32/96\n 8/450 [..............................] - ETA: 5:05 - loss: 10.7112","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d785001af00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d785001af00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 11.1808","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76a40aa880] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76a40aa880] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 120ms/step\nOriginal: set white in b four please\nPrediction: set white in b for please\n----------------------------------------------------------------------------------------------------\nOriginal: set blue at t nine again\nPrediction: set blue at t ne again\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 528s 1s/step - loss: 11.1808 - val_loss: 7.8103 - lr: 8.1873e-05\nEpoch 33/96\n450/450 [==============================] - ETA: 0s - loss: 10.4560","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x5646ae05ac00] ac-tex damaged at 22 17\n[mpeg1video @ 0x5646ae05ac00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 120ms/step\nOriginal: bin blue by f nine again\nPrediction: bin blue by nine again\n----------------------------------------------------------------------------------------------------\nOriginal: lay red at e two now\nPrediction: lay red at two now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 531s 1s/step - loss: 10.4560 - val_loss: 6.9572 - lr: 7.4082e-05\nEpoch 34/96\n232/450 [==============>...............] - ETA: 2:31 - loss: 9.7544","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76bc038640] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76bc038640] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 9.8701","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7768196a00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7768196a00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 116ms/step\nOriginal: lay red at k seven soon\nPrediction: lay red at seve son\n----------------------------------------------------------------------------------------------------\nOriginal: set blue in g five soon\nPrediction: set blue in five son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 530s 1s/step - loss: 9.8701 - val_loss: 6.6227 - lr: 6.7032e-05\nEpoch 35/96\n 49/450 [==>...........................] - ETA: 4:38 - loss: 9.0996","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d769008d9c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d769008d9c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 9.0793","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76ec057840] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76ec057840] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 121ms/step\nOriginal: lay white sp by f three soon\nPrediction: lay white by tre son\n----------------------------------------------------------------------------------------------------\nOriginal: lay red at k six now\nPrediction: lay red at six now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 530s 1s/step - loss: 9.0793 - val_loss: 5.7344 - lr: 6.0653e-05\nEpoch 36/96\n399/450 [=========================>....] - ETA: 35s - loss: 8.5103","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x5646a30a45c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x5646a30a45c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 8.4954","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76b2946780] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76b2946780] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 125ms/step\nOriginal: bin red in s two now\nPrediction: bin red in wo now\n----------------------------------------------------------------------------------------------------\nOriginal: place green at d nine soon\nPrediction: place gren at ne son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 533s 1s/step - loss: 8.4954 - val_loss: 4.9208 - lr: 5.4881e-05\nEpoch 37/96\n 92/450 [=====>........................] - ETA: 4:09 - loss: 8.1721","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7794003400] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7794003400] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 8.0987","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76880bfc00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76880bfc00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 121ms/step\nOriginal: bin green by b one soon\nPrediction: bin gren by b one son\n----------------------------------------------------------------------------------------------------\nOriginal: lay blue by k five soon\nPrediction: lay blue by five son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 533s 1s/step - loss: 8.0987 - val_loss: 5.0810 - lr: 4.9659e-05\nEpoch 38/96\n268/450 [================>.............] - ETA: 2:07 - loss: 7.7783","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76e40b6b40] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76e40b6b40] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 7.6377","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7858023c00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7858023c00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 117ms/step\nOriginal: set green with p eight now\nPrediction: set gren with p eight now\n----------------------------------------------------------------------------------------------------\nOriginal: lay white with m zero now\nPrediction: lay white with zero now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 531s 1s/step - loss: 7.6377 - val_loss: 4.6688 - lr: 4.4933e-05\nEpoch 39/96\n194/450 [===========>..................] - ETA: 2:57 - loss: 7.4151","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76b24df880] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76b24df880] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 7.3532","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76fc06c080] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76fc06c080] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 113ms/step\nOriginal: place green by y four now\nPrediction: place gren by y four now\n----------------------------------------------------------------------------------------------------\nOriginal: set green with x three soon\nPrediction: set gren with thre son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 530s 1s/step - loss: 7.3532 - val_loss: 4.1540 - lr: 4.0657e-05\nEpoch 40/96\n 53/450 [==>...........................] - ETA: 4:35 - loss: 6.7174","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7688005140] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7688005140] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 6.9693","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76b802b2c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76b802b2c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 114ms/step\nOriginal: set green by j two please\nPrediction: set gren by two please\n----------------------------------------------------------------------------------------------------\nOriginal: set red with v one soon\nPrediction: set red with one son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 528s 1s/step - loss: 6.9693 - val_loss: 3.7644 - lr: 3.6788e-05\nEpoch 41/96\n 49/450 [==>...........................] - ETA: 4:38 - loss: 6.5841","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7858b4be40] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7858b4be40] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 6.5354","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76a4017d00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76a4017d00] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 117ms/step\nOriginal: bin green at a seven soon\nPrediction: bin gren at a seven son\n----------------------------------------------------------------------------------------------------\nOriginal: lay blue at q four now\nPrediction: lay blue at four now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 6.5354 - val_loss: 3.7980 - lr: 3.3287e-05\nEpoch 42/96\n354/450 [======================>.......] - ETA: 1:06 - loss: 6.2998","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d77681a79c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d77681a79c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 6.3091","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d786819a040] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d786819a040] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 120ms/step\nOriginal: set red by b seven again\nPrediction: set red by b seven again\n----------------------------------------------------------------------------------------------------\nOriginal: bin green in a three soon\nPrediction: bin gren in a thre son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 6.3091 - val_loss: 3.4402 - lr: 3.0119e-05\nEpoch 43/96\n222/450 [=============>................] - ETA: 2:38 - loss: 6.1450","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76bc0112c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76bc0112c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 6.1269","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d78501a6200] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d78501a6200] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 127ms/step\nOriginal: bin green by h seven again\nPrediction: bin gren by seven again\n----------------------------------------------------------------------------------------------------\nOriginal: set red with b eight now\nPrediction: set red with b eight now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 6.1269 - val_loss: 3.5841 - lr: 2.7253e-05\nEpoch 44/96\n450/450 [==============================] - ETA: 0s - loss: 5.8158","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76f00ab4c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76f00ab4c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 121ms/step\nOriginal: place white at x four now\nPrediction: place white at four now\n----------------------------------------------------------------------------------------------------\nOriginal: place green by k eight please\nPrediction: place gren by eight please\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 5.8158 - val_loss: 2.9137 - lr: 2.4660e-05\nEpoch 45/96\n 49/450 [==>...........................] - ETA: 4:39 - loss: 5.7414","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d78600ae000] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d78600ae000] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 5.5908","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76aa2270c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76aa2270c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 124ms/step\nOriginal: set red at h six please\nPrediction: set red at h six please\n----------------------------------------------------------------------------------------------------\nOriginal: bin white at t four please\nPrediction: bin white at t four please\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 5.5908 - val_loss: 3.5077 - lr: 2.2313e-05\nEpoch 46/96\n 31/450 [=>............................] - ETA: 4:49 - loss: 6.2382","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7794062580] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7794062580] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 5.5060","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76980640c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76980640c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 115ms/step\nOriginal: place red in c four please\nPrediction: place red in c four please\n----------------------------------------------------------------------------------------------------\nOriginal: bin blue in r nine again\nPrediction: bin blue in r nine again\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 528s 1s/step - loss: 5.5060 - val_loss: 2.7765 - lr: 2.0190e-05\nEpoch 47/96\n115/450 [======>.......................] - ETA: 3:52 - loss: 5.1303","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76f0060900] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76f0060900] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 5.3135","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d78640597c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d78640597c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 115ms/step\nOriginal: place white at j six now\nPrediction: place white at six now\n----------------------------------------------------------------------------------------------------\nOriginal: place blue in o five soon\nPrediction: place blue in five son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 528s 1s/step - loss: 5.3135 - val_loss: 2.7981 - lr: 1.8268e-05\nEpoch 48/96\n424/450 [===========================>..] - ETA: 18s - loss: 5.0985","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76bc027000] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76bc027000] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 5.0879","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76fc082d40] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76fc082d40] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 117ms/step\nOriginal: set white with p two now\nPrediction: set white with p two now\n----------------------------------------------------------------------------------------------------\nOriginal: lay red by r five soon\nPrediction: lay red by five son\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 529s 1s/step - loss: 5.0879 - val_loss: 2.4640 - lr: 1.6530e-05\nEpoch 49/96\n 86/450 [====>.........................] - ETA: 4:12 - loss: 5.0373","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76880410c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76880410c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 5.0412","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76c0072080] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76c0072080] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 117ms/step\nOriginal: bin white with h four please\nPrediction: bin white with four please\n----------------------------------------------------------------------------------------------------\nOriginal: place blue in o four now\nPrediction: place blue in o four now\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 527s 1s/step - loss: 5.0412 - val_loss: 2.2985 - lr: 1.4957e-05\nEpoch 50/96\n222/450 [=============>................] - ETA: 2:38 - loss: 5.0053","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7864210200] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7864210200] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 4.9653","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76a0059700] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76a0059700] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 116ms/step\nOriginal: bin green by u five again\nPrediction: bin gren by u five again\n----------------------------------------------------------------------------------------------------\nOriginal: bin blue by s six please\nPrediction: bin blue by s six please\n----------------------------------------------------------------------------------------------------\n450/450 [==============================] - 528s 1s/step - loss: 4.9653 - val_loss: 2.2633 - lr: 1.3534e-05\nEpoch 51/96\n 75/450 [====>.........................] - ETA: 4:19 - loss: 4.6747","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d76f4059200] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d76f4059200] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"450/450 [==============================] - ETA: 0s - loss: 4.8409","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7d7688207f00] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7688207f00] Warning MVs not available\n","output_type":"stream"},{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mStopIteration\u001b[0m Traceback (most recent call last)","Cell \u001b[0;32mIn[58], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m history \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtrain\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalidation_data\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtest\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mepochs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m96\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[43mcheckpoint_callback\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mschedule_callback\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mexample_callback\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n","File \u001b[0;32m/opt/conda/lib/python3.10/site-packages/keras/utils/traceback_utils.py:70\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 67\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n\u001b[1;32m 68\u001b[0m \u001b[38;5;66;03m# To get the full stack trace, call:\u001b[39;00m\n\u001b[1;32m 69\u001b[0m \u001b[38;5;66;03m# `tf.debugging.disable_traceback_filtering()`\u001b[39;00m\n\u001b[0;32m---> 70\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\u001b[38;5;241m.\u001b[39mwith_traceback(filtered_tb) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 71\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m filtered_tb\n","Cell \u001b[0;32mIn[53], line 8\u001b[0m, in \u001b[0;36mProduceExample.on_epoch_end\u001b[0;34m(self, epoch, logs)\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mon_epoch_end\u001b[39m(\u001b[38;5;28mself\u001b[39m, epoch, logs\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# if epoh == 1 or epoch % 4 == 0:\u001b[39;00m\n\u001b[0;32m----> 8\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdataset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnext\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 9\u001b[0m yhat \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmodel\u001b[38;5;241m.\u001b[39mpredict(data[\u001b[38;5;241m0\u001b[39m])\n\u001b[1;32m 10\u001b[0m decoded \u001b[38;5;241m=\u001b[39m tf\u001b[38;5;241m.\u001b[39mkeras\u001b[38;5;241m.\u001b[39mbackend\u001b[38;5;241m.\u001b[39mctc_decode(yhat, [\u001b[38;5;241m75\u001b[39m,\u001b[38;5;241m75\u001b[39m], greedy\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mnumpy()\n","\u001b[0;31mStopIteration\u001b[0m: "],"ename":"StopIteration","evalue":"","output_type":"error"}]},{"cell_type":"code","source":"# history","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:15:52.578094Z","iopub.execute_input":"2023-11-05T04:15:52.578489Z","iopub.status.idle":"2023-11-05T04:15:52.583205Z","shell.execute_reply.started":"2023-11-05T04:15:52.578457Z","shell.execute_reply":"2023-11-05T04:15:52.582141Z"},"trusted":true},"execution_count":75,"outputs":[]},{"cell_type":"code","source":"training_loss = [85.2746 ,70.9716 ,66.9147 ,63.9592 ,61.8173 ,60.1350 ,58.5690 ,55.7670 ,52.7824 ,50.8946 ,49.0681 ,47.0584 ,44.3900 ,42.5115 ,39.7808 ,37.8971 ,35.7804 ,33.3151 ,30.8727 ,28.5955 ,26.3424 ,24.4883 ,22.5235 ,20.8805 ,19.3281 ,17.7996 ,16.5271 ,15.0045 ,14.0592,13.1728 ,12.3935 ,11.1808 ,10.4560 ,9.8701 ,9.0793 ,8.4954 ,8.0987 ,7.6377 ,7.3532 ,6.9693 ,6.5354 ,6.3091 ,6.1269 ,5.8158 ,5.5908 ,5.5060 ,5.3135 ,5.0879 ,5.0412 ,4.9653 ]\nvalidation_loss = [69.1930 ,65.6452 ,62.2782 ,63.9592 ,58.2501 ,55.6897 ,55.3017 ,50.9557 ,48.8146 ,46.5846 ,45.2084 ,41.4461 ,40.2157 ,36.6420 ,34.9563 ,31.5592 ,35.7804 ,27.6424 ,26.3044 ,23.0497 ,20.3814 ,18.4825 ,17.3327 ,15.4639 ,15.1650 ,12.4896 ,11.0701 ,10.2751 ,9.1001 ,9.4078 ,8.2575 ,7.8103 ,6.9572 ,6.6227 ,5.7344 ,4.9208 ,5.0810 ,4.6688 ,4.1540 ,3.7644 ,3.7980 ,3.4402 ,3.5841 ,2.9137 ,3.5077 ,2.7765 ,2.7981 ,2.4640 ,2.2985 ,2.2633 ]","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:33:18.848842Z","iopub.execute_input":"2023-11-05T04:33:18.849760Z","iopub.status.idle":"2023-11-05T04:33:18.858447Z","shell.execute_reply.started":"2023-11-05T04:33:18.849712Z","shell.execute_reply":"2023-11-05T04:33:18.857478Z"},"trusted":true},"execution_count":78,"outputs":[]},{"cell_type":"code","source":"\n# Plot the loss\nplt.figure()\nplt.plot(training_loss, label='Training Loss')\nplt.plot(validation_loss, label='Validation Loss')\nplt.xlabel('Epoch')\nplt.ylabel('Loss')\nplt.legend()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:33:21.781973Z","iopub.execute_input":"2023-11-05T04:33:21.782772Z","iopub.status.idle":"2023-11-05T04:33:22.026187Z","shell.execute_reply.started":"2023-11-05T04:33:21.782731Z","shell.execute_reply":"2023-11-05T04:33:22.025267Z"},"trusted":true},"execution_count":79,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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rGO5Vq1ajBw5ksmTJ/PEE0/g5+dHYGAgnp6eREdHn/dY3333HVlZWUycOJGAAPP7jx07lp49e/L66687/j6GhYUxduxYPDw8aNSoEddffz3z5s0rVpCZN28eGzZsYPfu3Y6/nxMnTqRp06asWLGCtm3bsm/fPv7zn//QqFEjAOrXr+/4/L59++jbty/NmzcHoE6dOkWuoSjcemvp+++/59tvv+W7775j9erVfPXVV7z11lt89dVXxW7Tx8eH4ODgAi9X8/XyIC7MvHeq20siIu7VqFEjOnXqxJdffgnAjh07WLhwIffeey9gPmjy8ssv07x5c8LDwwkMDGT27Nns27evUO1v3ryZuLg4R4gB6Nix41n7TZkyhc6dOxMdHU1gYCDPPvtsoY9x5rHi4+MdIQagc+fO2O12tm7d6ljXtGlTPDw8HO9jYmI4dOhQkY515jHj4uIKXARo0qQJoaGhbN68GYDHHnuM++67j65du/Laa6+xc+dOx74PP/ww//3vf+ncuTPPP/98sTpXF4Vbr8j85z//4amnnnLcImrevDl79+5l9OjRDBo0yJFSk5OTiYmJcXwuOTn5nD293aleZCD7jmWy83A6HetGuLscERHn8/I3r4y469hFcO+99zJ8+HA+/PBDxo8fT926dbniiisAePPNN3nvvfcYM2YMzZs3JyAggBEjRpCTk+O0cpcsWcKAAQN48cUX6datGyEhIUyePJm3337bacc406nbOqdYLBbsdrtLjgXmE1e33347M2bMYNasWTz//PNMnjyZm266ifvuu49u3boxY8YMfv/9d0aPHs3bb7/N8OHDXVKLW6/IZGZmYrUWLMHDw8Nx8mvXrk10dDTz5s1zbE9NTWXZsmXnTL/upCeXRKTCs1jM2zvueBWx72G/fv2wWq189913TJw4kXvuucfRX2bRokX06tWLO+64g/j4eOrUqcO2bdsK3Xbjxo1JSEjg4MGDjnVLly4tsM/ixYupWbMmzzzzDG3atKF+/frs3bu3wD7e3t7YbLaLHmvdunVkZGQ41i1atAir1UrDhg0LXXNRnPp+CQkJjnWbNm3ixIkTNGnSxLGuQYMGPProo/z+++/06dOH8ePHO7bFxcXx4IMP8uOPP/L444/z2WefuaRWcHOQ6dmzJ6+88gozZsxgz549TJs2jXfeeYebbroJMBPliBEj+O9/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+nTOS5fOd+ly5fmu8J19RUREpOLSFRkREREptxRkREREpNxSkBEREZFyS0FGREREyi0FmWL68MMPqVWrFr6+vrRv357ly5e7u6QK4a+//qJnz57ExsZisVj46aefCmw3DINRo0YRExODn58fXbt2Zfv27e4ptgIYPXo0bdu2JSgoiMjISHr37s3WrVsL7JOVlcXQoUOJiIggMDCQvn37kpyc7KaKy7ePP/6YFi1aOAYF69ixI7NmzXJs17l2nddeew2LxcKIESMc63S+neuFF17AYrEUeDVq1Mix3VXnW0GmGKZMmcJjjz3G888/z+rVq4mPj6dbt24cOnTI3aWVexkZGcTHx/Phhx+ec/sbb7zB+++/z7hx41i2bBkBAQF069aNrKysUq60YliwYAFDhw5l6dKlzJkzh9zcXK699loyMjIc+zz66KP88ssvTJ06lQULFpCYmEifPn3cWHX5Vb16dV577TVWrVrFypUrufrqq+nVqxf//PMPoHPtKitWrOCTTz6hRYsWBdbrfDtf06ZNOXjwoOP1999/O7a57HwbUmTt2rUzhg4d6nhvs9mM2NhYY/To0W6squIBjGnTpjne2+12Izo62njzzTcd606cOGH4+PgYkyZNckOFFc+hQ4cMwFiwYIFhGOb59fLyMqZOnerYZ/PmzQZgLFmyxF1lVihhYWHG559/rnPtImlpaUb9+vWNOXPmGFdccYXxyCOPGIah321XeP755434+PhzbnPl+dYVmSLKyclh1apVdO3a1bHOarXStWtXlixZ4sbKKr7du3eTlJRU4NyHhITQvn17nXsnSUlJASA8PByAVatWkZubW+CcN2rUiBo1auicl5DNZmPy5MlkZGTQsWNHnWsXGTp0KNdff32B8wr63XaV7du3ExsbS506dRgwYAD79u0DXHu+K/ykkc525MgRbDYbUVFRBdZHRUWxZcsWN1VVOSQlJQGc89yf2ibFZ7fbGTFiBJ07d6ZZs2aAec69vb0JDQ0tsK/OefFt2LCBjh07kpWVRWBgINOmTaNJkyasXbtW59rJJk+ezOrVq1mxYsVZ2/S77Xzt27dnwoQJNGzYkIMHD/Liiy9y2WWXsXHjRpeebwUZEQHM/+e6cePGAve0xfkaNmzI2rVrSUlJ4YcffmDQoEEsWLDA3WVVOAkJCTzyyCPMmTMHX19fd5dTKfTo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"},"metadata":{}}]},{"cell_type":"markdown","source":"# 5. Make a Prediction ","metadata":{"tags":[]}},{"cell_type":"code","source":"# url = 'https://drive.google.com/uc?id=1vWscXs4Vt0a_1IH1-ct2TCgXAZT-N3_Y'\n# output = 'checkpoints.zip'\n# gdown.download(url, output, quiet=False)\n# gdown.extractall('checkpoints.zip', 'models')","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-05T03:35:01.750124Z","iopub.status.idle":"2023-11-05T03:35:01.750612Z","shell.execute_reply.started":"2023-11-05T03:35:01.750366Z","shell.execute_reply":"2023-11-05T03:35:01.750390Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# model.load_weights('./models/checkpoint')","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-05T03:35:01.752219Z","iopub.status.idle":"2023-11-05T03:35:01.752694Z","shell.execute_reply.started":"2023-11-05T03:35:01.752455Z","shell.execute_reply":"2023-11-05T03:35:01.752477Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_data = test.as_numpy_iterator()","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-05T04:34:44.757516Z","iopub.execute_input":"2023-11-05T04:34:44.757900Z","iopub.status.idle":"2023-11-05T04:34:44.771487Z","shell.execute_reply.started":"2023-11-05T04:34:44.757872Z","shell.execute_reply":"2023-11-05T04:34:44.770617Z"},"trusted":true},"execution_count":80,"outputs":[]},{"cell_type":"code","source":"sample = test_data.next()","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-05T04:34:44.806437Z","iopub.execute_input":"2023-11-05T04:34:44.807305Z","iopub.status.idle":"2023-11-05T04:37:56.157931Z","shell.execute_reply.started":"2023-11-05T04:34:44.807238Z","shell.execute_reply":"2023-11-05T04:37:56.156911Z"},"trusted":true},"execution_count":81,"outputs":[{"name":"stderr","text":"[mpeg1video @ 0x7d7690060740] ac-tex damaged at 22 17\n[mpeg1video @ 0x7d7690060740] Warning MVs not available\n","output_type":"stream"}]},{"cell_type":"code","source":"sample[0].shape","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:37:56.161158Z","iopub.execute_input":"2023-11-05T04:37:56.161474Z","iopub.status.idle":"2023-11-05T04:37:56.170595Z","shell.execute_reply.started":"2023-11-05T04:37:56.161443Z","shell.execute_reply":"2023-11-05T04:37:56.169473Z"},"trusted":true},"execution_count":82,"outputs":[{"execution_count":82,"output_type":"execute_result","data":{"text/plain":"(2, 75, 46, 140, 1)"},"metadata":{}}]},{"cell_type":"code","source":"sample[1].shape","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:37:56.172444Z","iopub.execute_input":"2023-11-05T04:37:56.172707Z","iopub.status.idle":"2023-11-05T04:37:56.184295Z","shell.execute_reply.started":"2023-11-05T04:37:56.172684Z","shell.execute_reply":"2023-11-05T04:37:56.183192Z"},"trusted":true},"execution_count":83,"outputs":[{"execution_count":83,"output_type":"execute_result","data":{"text/plain":"(2, 40)"},"metadata":{}}]},{"cell_type":"code","source":"sample[1]","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:37:56.186788Z","iopub.execute_input":"2023-11-05T04:37:56.187062Z","iopub.status.idle":"2023-11-05T04:37:56.196114Z","shell.execute_reply.started":"2023-11-05T04:37:56.187039Z","shell.execute_reply":"2023-11-05T04:37:56.194342Z"},"trusted":true},"execution_count":84,"outputs":[{"execution_count":84,"output_type":"execute_result","data":{"text/plain":"array([[16, 12, 1, 3, 5, 39, 7, 18, 5, 5, 14, 39, 9, 14, 39, 17,\n 39, 6, 15, 21, 18, 39, 16, 12, 5, 1, 19, 5, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0],\n [19, 5, 20, 39, 2, 12, 21, 5, 39, 2, 25, 39, 8, 39, 20, 23,\n 15, 39, 14, 15, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0]])"},"metadata":{}}]},{"cell_type":"code","source":"yhat = model.predict(sample[0])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-05T04:37:56.202107Z","iopub.execute_input":"2023-11-05T04:37:56.202372Z","iopub.status.idle":"2023-11-05T04:37:56.394706Z","shell.execute_reply.started":"2023-11-05T04:37:56.202349Z","shell.execute_reply":"2023-11-05T04:37:56.392818Z"},"trusted":true},"execution_count":85,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 0s 123ms/step\n","output_type":"stream"}]},{"cell_type":"code","source":"print('-'*100, 'REAL TEXT')\n[tf.strings.reduce_join([num_to_char(word) for word in sentence]) for sentence in sample[1]]","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-05T04:37:56.397095Z","iopub.execute_input":"2023-11-05T04:37:56.397944Z","iopub.status.idle":"2023-11-05T04:37:56.528511Z","shell.execute_reply.started":"2023-11-05T04:37:56.397905Z","shell.execute_reply":"2023-11-05T04:37:56.526286Z"},"trusted":true},"execution_count":86,"outputs":[{"name":"stdout","text":"---------------------------------------------------------------------------------------------------- REAL TEXT\n","output_type":"stream"},{"execution_count":86,"output_type":"execute_result","data":{"text/plain":"[,\n ]"},"metadata":{}}]},{"cell_type":"code","source":"decoded = tf.keras.backend.ctc_decode(yhat, input_length=[75,75], greedy=True)[0][0].numpy()","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-05T04:37:56.530430Z","iopub.execute_input":"2023-11-05T04:37:56.530719Z","iopub.status.idle":"2023-11-05T04:37:56.545610Z","shell.execute_reply.started":"2023-11-05T04:37:56.530695Z","shell.execute_reply":"2023-11-05T04:37:56.544443Z"},"trusted":true},"execution_count":87,"outputs":[]},{"cell_type":"code","source":"print('-'*100, 'PREDICTIONS')\n[tf.strings.reduce_join([num_to_char(word) for word in sentence]) for sentence in decoded]","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-05T04:37:56.547326Z","iopub.execute_input":"2023-11-05T04:37:56.547597Z","iopub.status.idle":"2023-11-05T04:37:56.778273Z","shell.execute_reply.started":"2023-11-05T04:37:56.547573Z","shell.execute_reply":"2023-11-05T04:37:56.777117Z"},"trusted":true},"execution_count":88,"outputs":[{"name":"stdout","text":"---------------------------------------------------------------------------------------------------- PREDICTIONS\n","output_type":"stream"},{"execution_count":88,"output_type":"execute_result","data":{"text/plain":"[,\n ]"},"metadata":{}}]},{"cell_type":"markdown","source":"# Test on a Video","metadata":{}},{"cell_type":"code","source":"sample = load_data(tf.convert_to_tensor('./data/s1/bras9a.mpg'))","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:37:56.780835Z","iopub.execute_input":"2023-11-05T04:37:56.781544Z","iopub.status.idle":"2023-11-05T04:37:57.185771Z","shell.execute_reply.started":"2023-11-05T04:37:56.781494Z","shell.execute_reply":"2023-11-05T04:37:57.184304Z"},"trusted":true},"execution_count":89,"outputs":[]},{"cell_type":"code","source":"print('-'*100, 'REAL TEXT')\n[tf.strings.reduce_join([num_to_char(word) for word in sentence]) for sentence in [sample[1]]]","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:37:57.187989Z","iopub.execute_input":"2023-11-05T04:37:57.188297Z","iopub.status.idle":"2023-11-05T04:37:57.245672Z","shell.execute_reply.started":"2023-11-05T04:37:57.188264Z","shell.execute_reply":"2023-11-05T04:37:57.243360Z"},"trusted":true},"execution_count":90,"outputs":[{"name":"stdout","text":"---------------------------------------------------------------------------------------------------- REAL TEXT\n","output_type":"stream"},{"execution_count":90,"output_type":"execute_result","data":{"text/plain":"[]"},"metadata":{}}]},{"cell_type":"code","source":"yhat = model.predict(tf.expand_dims(sample[0], axis=0))","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:37:57.247885Z","iopub.execute_input":"2023-11-05T04:37:57.248193Z","iopub.status.idle":"2023-11-05T04:37:57.399858Z","shell.execute_reply.started":"2023-11-05T04:37:57.248169Z","shell.execute_reply":"2023-11-05T04:37:57.398706Z"},"trusted":true},"execution_count":91,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 0s 83ms/step\n","output_type":"stream"}]},{"cell_type":"code","source":"decoded = tf.keras.backend.ctc_decode(yhat, input_length=[75], greedy=True)[0][0].numpy()","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:37:57.402856Z","iopub.execute_input":"2023-11-05T04:37:57.403150Z","iopub.status.idle":"2023-11-05T04:37:57.418343Z","shell.execute_reply.started":"2023-11-05T04:37:57.403125Z","shell.execute_reply":"2023-11-05T04:37:57.417325Z"},"trusted":true},"execution_count":92,"outputs":[]},{"cell_type":"code","source":"print('-'*100, 'PREDICTIONS')\n[tf.strings.reduce_join([num_to_char(word) for word in sentence]) for sentence in decoded]","metadata":{"execution":{"iopub.status.busy":"2023-11-05T04:37:57.420095Z","iopub.execute_input":"2023-11-05T04:37:57.420796Z","iopub.status.idle":"2023-11-05T04:37:57.540800Z","shell.execute_reply.started":"2023-11-05T04:37:57.420760Z","shell.execute_reply":"2023-11-05T04:37:57.539188Z"},"trusted":true},"execution_count":93,"outputs":[{"name":"stdout","text":"---------------------------------------------------------------------------------------------------- PREDICTIONS\n","output_type":"stream"},{"execution_count":93,"output_type":"execute_result","data":{"text/plain":"[]"},"metadata":{}}]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}