diff --git "a/Notebooks/complete-2-models-with-detailed-accuracy-analysis.ipynb" "b/Notebooks/complete-2-models-with-detailed-accuracy-analysis.ipynb" new file mode 100644--- /dev/null +++ "b/Notebooks/complete-2-models-with-detailed-accuracy-analysis.ipynb" @@ -0,0 +1 @@ +{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","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"},"kaggle":{"accelerator":"gpu","dataSources":[],"dockerImageVersionId":30558,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"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-16T01:01:15.733384Z","iopub.execute_input":"2023-11-16T01:01:15.733704Z","iopub.status.idle":"2023-11-16T01:01:19.284684Z","shell.execute_reply.started":"2023-11-16T01:01:15.733678Z","shell.execute_reply":"2023-11-16T01:01:19.283662Z"},"trusted":true},"execution_count":1,"outputs":[{"name":"stdout","text":"Package Version Editable project location\n---------------------------------------- --------------------- -------------------------\nabsl-py 1.4.0\naccelerate 0.22.0\naccess 1.1.9\naffine 2.4.0\naiobotocore 2.5.4\naiofiles 22.1.0\naiohttp 3.8.4\naiohttp-cors 0.7.0\naioitertools 0.11.0\naiorwlock 1.3.0\naiosignal 1.3.1\naiosqlite 0.19.0\nalbumentations 1.3.1\nalembic 1.12.0\naltair 5.1.1\nannotated-types 0.5.0\nannoy 1.17.3\nansiwrap 0.8.4\nanyio 3.7.0\napache-beam 2.46.0\naplus 0.11.0\nappdirs 1.4.4\nargon2-cffi 21.3.0\nargon2-cffi-bindings 21.2.0\narray-record 0.4.0\narrow 1.2.3\narviz 0.12.1\nastroid 2.15.6\nastropy 5.3.2\nasttokens 2.2.1\nastunparse 1.6.3\nasync-timeout 4.0.2\natpublic 4.0\nattrs 23.1.0\naudioread 3.0.0\nautopep8 2.0.4\nBabel 2.12.1\nbackcall 0.2.0\nbackoff 2.2.1\nbackports.functools-lru-cache 1.6.4\nbayesian-optimization 1.4.3\nbayespy 0.5.26\nbeatrix-jupyterlab 2023.621.222118\nbeautifulsoup4 4.12.2\nbidict 0.22.1\nbiopython 1.81\nblake3 0.2.1\nbleach 6.0.0\nblessed 1.20.0\nblinker 1.6.2\nblis 0.7.10\nblosc2 2.0.0\nbokeh 3.2.2\nboltons 23.0.0\nBoruta 0.3\nboto3 1.26.100\nbotocore 1.31.17\nbq-helper 0.4.1 /root/src/BigQuery_Helper\nbqplot 0.12.40\nbranca 0.6.0\nbrewer2mpl 1.4.1\nbrotlipy 0.7.0\ncachetools 4.2.4\nCartopy 0.22.0\ncatalogue 2.0.9\ncatalyst 22.4\ncatboost 1.2.1\ncategory-encoders 2.6.2\ncertifi 2023.7.22\ncesium 0.12.1\ncffi 1.15.1\ncftime 1.6.2\ncharset-normalizer 3.1.0\nchex 0.1.82\ncleverhans 4.0.0\nclick 8.1.7\nclick-plugins 1.1.1\ncligj 0.7.2\ncloud-tpu-client 0.10\ncloud-tpu-profiler 2.4.0\ncloudpickle 2.2.1\ncmaes 0.10.0\ncmdstanpy 1.1.0\ncmudict 1.0.13\ncolorama 0.4.6\ncolorcet 3.0.1\ncolorful 0.5.5\ncolorlog 6.7.0\ncolorlover 0.3.0\ncomm 0.1.3\nconda 23.7.3\nconda-content-trust 0+unknown\nconda-package-handling 2.0.2\nconda_package_streaming 0.8.0\nconfection 0.1.1\ncontextily 1.3.0\ncontourpy 1.1.0\nconvertdate 2.4.0\ncrcmod 1.7\ncryptography 38.0.4\ncubinlinker 0.3.0\ncubinlinker-cu11 0.3.0.post1\ncuda-python 11.8.2\ncudf 23.8.0\ncufflinks 0.17.3\ncuml 23.8.0\ncupy 12.2.0\nCVXcanon 0.1.2\ncycler 0.11.0\ncymem 2.0.7\ncysignals 1.11.2\nCython 0.29.35\ncytoolz 0.12.2\ndaal 2023.2.1\ndaal4py 2023.2.1\ndacite 1.8.1\ndask 2023.9.0\ndask-cuda 23.8.0\ndask-cudf 23.8.0\ndataclasses-json 0.6.0\ndatasets 2.1.0\ndatashader 0.15.2\ndatashape 0.5.2\ndatatile 1.0.3\ndb-dtypes 1.1.1\ndeap 1.4.1\ndebugpy 1.6.7\ndecorator 5.1.1\ndefusedxml 0.7.1\nDelorean 1.0.0\ndeprecat 2.1.1\nDeprecated 1.2.14\ndeprecation 2.1.0\ndescartes 1.1.0\ndill 0.3.7\ndipy 1.7.0\ndistlib 0.3.6\ndistributed 2023.7.1\ndm-tree 0.1.8\ndocker 6.1.3\ndocker-pycreds 0.4.0\ndocopt 0.6.2\ndocstring-parser 0.15\ndocstring-to-markdown 0.12\ndocutils 0.20.1\nearthengine-api 0.1.367\neasydict 1.10\neasyocr 1.7.1\necos 2.0.12\neli5 0.13.0\nemoji 2.8.0\nen-core-web-lg 3.6.0\nen-core-web-sm 3.6.0\nentrypoints 0.4\nephem 4.1.4\nesda 2.5.0\nessentia 2.1b6.dev1034\net-xmlfile 1.1.0\netils 1.3.0\nexceptiongroup 1.1.1\nexecuting 1.2.0\nexplainable-ai-sdk 1.3.3\nfastai 2.7.12\nfastapi 0.98.0\nfastavro 1.7.4\nfastcore 1.5.29\nfastdownload 0.0.7\nfasteners 0.18\nfastjsonschema 2.17.1\nfastprogress 1.0.3\nfastrlock 0.8.2\nfasttext 0.9.2\nfbpca 1.0\nfeather-format 0.4.1\nfeaturetools 1.27.0\nfilelock 3.12.2\nFiona 1.9.4.post1\nfitter 1.6.0\nflake8 6.0.0\nflashtext 2.7\nFlask 2.3.3\nflatbuffers 23.5.26\nflax 0.7.2\nflit_core 3.9.0\nfolium 0.14.0\nfonttools 4.40.0\nfqdn 1.5.1\nfrozendict 2.3.8\nfrozenlist 1.3.3\nfsspec 2023.9.0\nfuncy 2.0\nfury 0.9.0\nfuture 0.18.3\nfuzzywuzzy 0.18.0\ngast 0.4.0\ngatspy 0.3\ngcsfs 2023.6.0\ngensim 4.3.2\ngeographiclib 2.0\nGeohash 1.0\ngeojson 3.0.1\ngeopandas 0.13.2\ngeoplot 0.5.1\ngeopy 2.4.0\ngeoviews 1.10.1\nggplot 0.11.5\ngiddy 2.3.4\ngitdb 4.0.10\nGitPython 3.1.31\ngoogle-api-core 2.11.1\ngoogle-api-python-client 2.97.0\ngoogle-apitools 0.5.31\ngoogle-auth 2.20.0\ngoogle-auth-httplib2 0.1.0\ngoogle-auth-oauthlib 1.0.0\ngoogle-cloud-aiplatform 0.6.0a1\ngoogle-cloud-artifact-registry 1.8.1\ngoogle-cloud-automl 1.0.1\ngoogle-cloud-bigquery 2.34.4\ngoogle-cloud-bigtable 1.7.3\ngoogle-cloud-core 2.3.2\ngoogle-cloud-datastore 2.17.0\ngoogle-cloud-dlp 3.12.1\ngoogle-cloud-language 2.11.0\ngoogle-cloud-monitoring 2.15.0\ngoogle-cloud-pubsub 2.17.1\ngoogle-cloud-pubsublite 1.8.2\ngoogle-cloud-recommendations-ai 0.7.1\ngoogle-cloud-resource-manager 1.10.1\ngoogle-cloud-spanner 3.36.0\ngoogle-cloud-storage 1.44.0\ngoogle-cloud-translate 3.12.0\ngoogle-cloud-videointelligence 2.11.3\ngoogle-cloud-vision 2.8.0\ngoogle-crc32c 1.5.0\ngoogle-pasta 0.2.0\ngoogle-resumable-media 2.5.0\ngoogleapis-common-protos 1.59.1\ngplearn 0.4.2\ngpustat 1.0.0\ngpxpy 1.5.0\ngraphviz 0.20.1\ngreenlet 2.0.2\ngrpc-google-iam-v1 0.12.6\ngrpcio 1.51.1\ngrpcio-status 1.46.3\ngviz-api 1.10.0\ngym 0.26.2\ngym-notices 0.0.8\nGymnasium 0.26.3\ngymnasium-notices 0.0.1\nh11 0.14.0\nh2o 3.42.0.3\nh5py 3.9.0\nhaversine 2.8.0\nhdfs 2.7.0\nhep-ml 0.7.2\nhijri-converter 2.3.1\nhmmlearn 0.3.0\nholidays 0.24\nholoviews 1.17.1\nhpsklearn 0.1.0\nhtml5lib 1.1\nhtmlmin 0.1.12\nhttplib2 0.21.0\nhttptools 0.6.0\nhuggingface-hub 0.16.4\nhumanize 4.8.0\nhunspell 0.5.5\nhusl 4.0.3\nhydra-slayer 0.4.1\nhyperopt 0.2.7\nhypertools 0.8.0\nibis-framework 6.2.0\nidna 3.4\nigraph 0.10.6\nimagecodecs 2023.9.4\nImageHash 4.3.1\nimageio 2.31.1\nimbalanced-learn 0.11.0\nimgaug 0.4.0\nimportlib-metadata 6.7.0\nimportlib-resources 5.12.0\ninequality 1.0.0\niniconfig 2.0.0\nipydatawidgets 4.3.5\nipykernel 6.23.3\nipyleaflet 0.17.3\nipympl 0.7.0\nipython 8.14.0\nipython-genutils 0.2.0\nipython-sql 0.5.0\nipyvolume 0.6.3\nipyvue 1.10.0\nipyvuetify 1.8.10\nipywebrtc 0.6.0\nipywidgets 7.7.1\nisoduration 20.11.0\nisort 5.12.0\nisoweek 1.3.3\nitsdangerous 2.1.2\nJanome 0.5.0\njaraco.classes 3.2.3\njax 0.4.13\njaxlib 0.4.13+cuda11.cudnn86\njedi 0.18.2\njeepney 0.8.0\njieba 0.42.1\nJinja2 3.1.2\njmespath 1.0.1\njoblib 1.3.2\njson5 0.9.14\njsonpatch 1.32\njsonpointer 2.0\njsonschema 4.17.3\njupyter_client 7.4.9\njupyter-console 6.6.3\njupyter_core 5.3.1\njupyter-events 0.6.3\njupyter-http-over-ws 0.0.8\njupyter-lsp 1.5.1\njupyter_server 2.6.0\njupyter_server_fileid 0.9.0\njupyter-server-mathjax 0.2.6\njupyter_server_proxy 4.0.0\njupyter_server_terminals 0.4.4\njupyter_server_ydoc 0.8.0\njupyter-ydoc 0.2.5\njupyterlab 3.6.5\njupyterlab-git 0.41.0\njupyterlab-lsp 4.2.0\njupyterlab-pygments 0.2.2\njupyterlab_server 2.23.0\njupyterlab-widgets 3.0.7\njupytext 1.14.6\nkaggle 1.5.16\nkaggle-environments 1.12.0\nkeras 2.12.0\nkeras-core 0.1.5\nkeras-cv 0.6.1\nkeras-nlp 0.6.1\nkeras-tuner 1.3.5\nkeyring 24.2.0\nkeyrings.google-artifactregistry-auth 1.1.2\nkfp 2.0.1\nkfp-pipeline-spec 0.2.2\nkfp-server-api 2.0.0\nkiwisolver 1.4.4\nkmapper 2.0.1\nkmodes 0.12.2\nkorean-lunar-calendar 0.3.1\nkornia 0.7.0\nkt-legacy 1.0.5\nkubernetes 26.1.0\nlangcodes 3.3.0\nlangid 1.1.6\nlazy_loader 0.2\nlazy-object-proxy 1.9.0\nlearntools 0.3.4\nleven 1.0.4\nLevenshtein 0.21.1\nlibclang 16.0.0\nlibmambapy 1.4.9\nlibpysal 4.7.0\nlibrosa 0.10.1\nlightgbm 3.3.2\nlightning-utilities 0.9.0\nlime 0.2.0.1\nline-profiler 4.1.1\nlinkify-it-py 2.0.2\nllvmlite 0.40.1\nlml 0.1.0\nlocket 1.0.0\nLunarCalendar 0.0.9\nlxml 4.9.3\nlz4 4.3.2\nMako 1.2.4\nmamba 1.4.9\nmapclassify 2.6.0\nmarisa-trie 1.0.0\nMarkdown 3.4.3\nmarkdown-it-py 2.2.0\nmarkovify 0.9.4\nMarkupSafe 2.1.3\nmarshmallow 3.20.1\nmatplotlib 3.7.2\nmatplotlib-inline 0.1.6\nmatplotlib-venn 0.11.9\nmccabe 0.7.0\nmdit-py-plugins 0.4.0\nmdurl 0.1.0\nmemory-profiler 0.61.0\nmercantile 1.2.1\nmgwr 2.1.2\nmissingno 0.5.2\nmistune 0.8.4\nmizani 0.10.0\nml-dtypes 0.2.0\nmlcrate 0.2.0\nmlens 0.2.3\nmlxtend 0.22.0\nmmh3 4.0.1\nmne 1.5.0\nmnist 0.2.2\nmock 5.1.0\nmomepy 0.6.0\nmore-itertools 9.1.0\nmpld3 0.5.9\nmpmath 1.3.0\nmsgpack 1.0.5\nmsgpack-numpy 0.4.8\nmultidict 6.0.4\nmultimethod 1.9.1\nmultipledispatch 1.0.0\nmultiprocess 0.70.15\nmunkres 1.1.4\nmurmurhash 1.0.9\nmypy-extensions 1.0.0\nnamex 0.0.7\nnb-conda 2.2.1\nnb-conda-kernels 2.3.1\nnbclassic 1.0.0\nnbclient 0.5.13\nnbconvert 6.4.5\nnbdime 3.2.0\nnbformat 5.9.0\nnest-asyncio 1.5.6\nnetCDF4 1.6.4\nnetworkx 3.1\nnibabel 5.1.0\nnilearn 0.10.1\nninja 1.11.1\nnltk 3.2.4\nnose 1.3.7\nnotebook 6.5.4\nnotebook-executor 0.2\nnotebook_shim 0.2.3\nnumba 0.57.1\nnumexpr 2.8.5\nnumpy 1.23.5\nnvidia-ml-py 11.495.46\nnvtx 0.2.5\noauth2client 4.1.3\noauthlib 3.2.2\nobjsize 0.6.1\nodfpy 1.4.1\nolefile 0.46\nonnx 1.14.1\nopencensus 0.11.2\nopencensus-context 0.1.3\nopencv-contrib-python 4.8.0.76\nopencv-python 4.8.0.76\nopencv-python-headless 4.8.0.76\nopenpyxl 3.1.2\nopenslide-python 1.3.0\nopentelemetry-api 1.18.0\nopentelemetry-exporter-otlp 1.18.0\nopentelemetry-exporter-otlp-proto-common 1.18.0\nopentelemetry-exporter-otlp-proto-grpc 1.18.0\nopentelemetry-exporter-otlp-proto-http 1.18.0\nopentelemetry-proto 1.18.0\nopentelemetry-sdk 1.18.0\nopentelemetry-semantic-conventions 0.39b0\nopt-einsum 3.3.0\noptax 0.1.7\noptuna 3.3.0\norbax-checkpoint 0.3.5\norderedmultidict 1.0.1\norjson 3.9.1\nortools 9.4.1874\nosmnx 1.1.1\noverrides 6.5.0\npackaging 21.3\npandas 2.0.2\npandas-datareader 0.10.0\npandas-profiling 3.6.6\npandas-summary 0.2.0\npandasql 0.7.3\npandocfilters 1.5.0\npanel 1.2.2\npapermill 2.4.0\nparam 1.13.0\nparso 0.8.3\nparsy 2.1\npartd 1.4.0\npath 16.7.1\npath.py 12.5.0\npathos 0.3.1\npathtools 0.1.2\npathy 0.10.1\npatsy 0.5.3\npdf2image 1.16.3\npexpect 4.8.0\nphik 0.12.3\npickleshare 0.7.5\nPillow 9.5.0\npip 23.1.2\npkgutil_resolve_name 1.3.10\nplatformdirs 3.10.0\nplotly 5.15.0\nplotly-express 0.4.1\nplotnine 0.10.1\npluggy 1.0.0\npointpats 2.3.0\npolars 0.19.2\npolyglot 16.7.4\npooch 1.7.0\npox 0.3.3\nppca 0.0.4\nppft 1.7.6.7\npreprocessing 0.1.13\npreshed 3.0.8\nprettytable 3.8.0\nprogressbar2 4.2.0\nprometheus-client 0.17.0\npromise 2.3\nprompt-toolkit 3.0.38\npronouncing 0.2.0\nprophet 1.1.1\nproto-plus 1.22.3\nprotobuf 3.20.3\npsutil 5.9.3\nptxcompiler 0.8.1\nptxcompiler-cu11 0.7.0.post1\nptyprocess 0.7.0\npudb 2022.1.3\nPuLP 2.7.0\npure-eval 0.2.2\npy-cpuinfo 9.0.0\npy-lz4framed 0.14.0\npy-spy 0.3.14\npy4j 0.10.9.7\npyaml 23.9.1\nPyArabic 0.6.15\npyarrow 11.0.0\npyasn1 0.4.8\npyasn1-modules 0.2.7\nPyAstronomy 0.19.0\npybind11 2.11.1\npyclipper 1.3.0.post4\npycodestyle 2.10.0\npycolmap 0.4.0\npycosat 0.6.4\npycparser 2.21\npycryptodome 3.18.0\npyct 0.5.0\npycuda 2022.2.2\npydantic 1.10.9\npydantic_core 2.6.3\npydegensac 0.1.2\npydicom 2.4.3\npydocstyle 6.3.0\npydot 1.4.2\npydub 0.25.1\npyemd 1.0.0\npyerfa 2.0.0.3\npyexcel-io 0.6.6\npyexcel-ods 0.6.0\npyfasttext 0.4.6\npyflakes 3.0.1\npygltflib 1.16.0\nPygments 2.15.1\nPyJWT 2.7.0\npykalman 0.9.5\npyLDAvis 3.2.2\npylibraft 23.8.0\npylint 2.17.5\npymc3 3.11.5\nPyMeeus 0.5.12\npymongo 3.13.0\nPympler 1.0.1\npynndescent 0.5.10\npynvml 11.4.1\npynvrtc 9.2\npyocr 0.8.3\npyOpenSSL 23.2.0\npyparsing 3.0.9\npypdf 3.15.5\npyproj 3.6.0\npyrsistent 0.19.3\npysal 23.7\npyshp 2.3.1\nPySocks 1.7.1\npytesseract 0.3.10\npytest 7.4.1\npython-bidi 0.4.2\npython-dateutil 2.8.2\npython-dotenv 1.0.0\npython-json-logger 2.0.7\npython-Levenshtein 0.21.1\npython-louvain 0.16\npython-lsp-jsonrpc 1.0.0\npython-lsp-server 1.7.4\npython-slugify 8.0.1\npython-utils 3.7.0\npythreejs 2.4.2\npytoolconfig 1.2.5\npytools 2023.1.1\npytorch-ignite 0.4.12\npytorch-lightning 2.0.8\npytz 2023.3\npyu2f 0.1.5\nPyUpSet 0.1.1.post7\npyviz_comms 3.0.0\nPyWavelets 1.4.1\nPyYAML 6.0\npyzmq 25.1.0\nqgrid 1.3.1\nqtconsole 5.4.4\nQtPy 2.4.0\nquantecon 0.7.1\nquantities 0.14.1\nqudida 0.0.4\nraft-dask 23.8.0\nrandomgen 1.23.1\nrapidfuzz 3.2.0\nrasterio 1.3.8\nrasterstats 0.19.0\nray 2.5.1\nray-cpp 2.5.1\nregex 2023.6.3\nrequests 2.31.0\nrequests-oauthlib 1.3.1\nrequests-toolbelt 0.10.1\nresponses 0.18.0\nretrying 1.3.3\nrfc3339-validator 0.1.4\nrfc3986-validator 0.1.1\nrgf-python 3.12.0\nrich 13.4.2\nrmm 23.8.0\nrope 1.9.0\nrsa 4.9\nRtree 1.0.1\nruamel.yaml 0.17.32\nruamel.yaml.clib 0.2.7\nruamel-yaml-conda 0.15.100\ns2sphere 0.2.5\ns3fs 2023.9.0\ns3transfer 0.6.2\nsafetensors 0.3.3\nscattertext 0.1.19\nscikit-image 0.21.0\nscikit-learn 1.2.2\nscikit-learn-intelex 2023.2.1\nscikit-multilearn 0.2.0\nscikit-optimize 0.9.0\nscikit-plot 0.3.7\nscikit-surprise 1.1.3\nscipy 1.11.2\nseaborn 0.12.2\nSecretStorage 3.3.3\nsegment-anything 1.0\nsegregation 2.5\nsemver 3.0.1\nSend2Trash 1.8.2\nsentencepiece 0.1.99\nsentry-sdk 1.30.0\nsetproctitle 1.3.2\nsetuptools 68.0.0\nsetuptools-git 1.2\nsetuptools-scm 7.1.0\nshap 0.42.1\nShapely 1.8.5.post1\nshellingham 1.5.3\nsimpervisor 1.0.0\nSimpleITK 2.2.1\nsimplejson 3.19.1\nsix 1.16.0\nsklearn-pandas 2.2.0\nslicer 0.0.7\nsmart-open 6.3.0\nsmhasher 0.150.1\nsmmap 5.0.0\nsniffio 1.3.0\nsnowballstemmer 2.2.0\nsnuggs 1.4.7\nsortedcontainers 2.4.0\nsoundfile 0.12.1\nsoupsieve 2.3.2.post1\nsoxr 0.3.6\nspacy 3.6.1\nspacy-legacy 3.0.12\nspacy-loggers 1.0.4\nspaghetti 1.7.4\nspectral 0.23.1\nspglm 1.0.8\nsphinx-rtd-theme 0.2.4\nspint 1.0.7\nsplot 1.1.5.post1\nspopt 0.5.0\nspreg 1.3.2\nspvcm 0.3.0\nSQLAlchemy 2.0.17\nsqlglot 17.16.2\nsqlparse 0.4.4\nsquarify 0.4.3\nsrsly 2.4.7\nstack-data 0.6.2\nstarlette 0.27.0\nstatsmodels 0.14.0\nstemming 1.0.1\nstop-words 2018.7.23\nstopit 1.1.2\nstumpy 1.12.0\nsympy 1.12\ntables 3.8.0\ntabulate 0.9.0\ntangled-up-in-unicode 0.2.0\ntbb 2021.10.0\ntblib 1.7.0\ntenacity 8.2.2\ntensorboard 2.12.3\ntensorboard-data-server 0.7.1\ntensorboard-plugin-profile 2.13.0\ntensorboardX 2.6\ntensorflow 2.12.0\ntensorflow-addons 0.21.0\ntensorflow-cloud 0.1.16\ntensorflow-datasets 4.9.2\ntensorflow-decision-forests 1.4.0\ntensorflow-estimator 2.12.0\ntensorflow-hub 0.12.0\ntensorflow-io 0.32.0\ntensorflow-io-gcs-filesystem 0.32.0\ntensorflow-metadata 0.14.0\ntensorflow-probability 0.20.1\ntensorflow-serving-api 2.12.1\ntensorflow-text 2.12.1\ntensorflow-transform 0.14.0\ntensorflowjs 3.15.0\ntensorpack 0.11\ntensorstore 0.1.41\ntermcolor 2.3.0\nterminado 0.17.1\ntestpath 0.6.0\ntext-unidecode 1.3\ntextblob 0.17.1\ntexttable 1.6.7\ntextwrap3 0.9.2\nTheano 1.0.5\nTheano-PyMC 1.1.2\nthinc 8.1.12\nthreadpoolctl 3.1.0\ntifffile 2023.4.12\ntimm 0.9.7\ntinycss2 1.2.1\ntobler 0.11.1\ntokenizers 0.13.3\ntoml 0.10.2\ntomli 2.0.1\ntomlkit 0.12.1\ntoolz 0.12.0\ntorch 2.0.0\ntorchaudio 2.0.1\ntorchdata 0.6.0\ntorchinfo 1.8.0\ntorchmetrics 1.1.1\ntorchtext 0.15.1\ntorchvision 0.15.1\ntornado 6.3.2\nTPOT 0.12.1\ntqdm 4.66.1\ntraceml 1.0.8\ntraitlets 5.9.0\ntraittypes 0.2.1\ntransformers 4.33.0\ntreelite 3.2.0\ntreelite-runtime 3.2.0\ntrueskill 0.4.5\ntsfresh 0.20.1\ntypeguard 2.13.3\ntyper 0.9.0\ntyping_extensions 4.6.3\ntyping-inspect 0.9.0\ntyping-utils 0.1.0\ntzdata 2023.3\ntzlocal 5.0.1\nuc-micro-py 1.0.2\nucx-py 0.33.0\nujson 5.8.0\numap-learn 0.5.3\nunicodedata2 15.0.0\nUnidecode 1.3.6\nupdate-checker 0.18.0\nuri-template 1.3.0\nuritemplate 3.0.1\nurllib3 1.26.15\nurwid 2.1.2\nurwid-readline 0.13\nuvicorn 0.22.0\nuvloop 0.17.0\nvaex 4.17.0\nvaex-astro 0.9.3\nvaex-core 4.17.1\nvaex-hdf5 0.14.1\nvaex-jupyter 0.8.2\nvaex-ml 0.18.3\nvaex-server 0.9.0\nvaex-viz 0.5.4\nvecstack 0.4.0\nvirtualenv 20.21.0\nvisions 0.7.5\nvowpalwabbit 9.9.0\nvtk 9.2.6\nWand 0.6.11\nwandb 0.15.9\nwasabi 1.1.2\nwatchfiles 0.20.0\nwavio 0.0.7\nwcwidth 0.2.6\nwebcolors 1.13\nwebencodings 0.5.1\nwebsocket-client 1.6.0\nwebsockets 11.0.3\nWerkzeug 2.3.7\nwfdb 4.1.2\nwhatthepatch 1.0.5\nwheel 0.40.0\nwidgetsnbextension 3.6.5\nwitwidget 1.8.1\nwoodwork 0.26.0\nWordbatch 1.4.9\nwordcloud 1.9.2\nwordsegment 1.3.1\nwrapt 1.14.1\nwurlitzer 3.0.3\nxarray 2023.8.0\nxarray-einstats 0.6.0\nxgboost 1.7.6\nxvfbwrapper 0.2.9\nxxhash 3.3.0\nxyzservices 2023.7.0\ny-py 0.6.0\nyapf 0.40.1\nyarl 1.9.2\nydata-profiling 4.3.1\nyellowbrick 1.5\nypy-websocket 0.8.4\nzict 3.0.0\nzipp 3.15.0\nzstandard 0.19.0\n","output_type":"stream"}]},{"cell_type":"code","source":"%pip install opencv-python matplotlib imageio gdown tensorflow","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:01:19.286574Z","iopub.execute_input":"2023-11-16T01:01:19.286879Z","iopub.status.idle":"2023-11-16T01:01:31.565919Z","shell.execute_reply.started":"2023-11-16T01:01:19.286851Z","shell.execute_reply":"2023-11-16T01:01:31.564810Z"},"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)\nCollecting gdown\n Downloading gdown-4.7.1-py3-none-any.whl (15 kB)\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)\nInstalling collected packages: gdown\nSuccessfully installed gdown-4.7.1\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-16T01:01:31.568504Z","iopub.execute_input":"2023-11-16T01:01:31.569275Z","iopub.status.idle":"2023-11-16T01:01:39.424403Z","shell.execute_reply.started":"2023-11-16T01:01:31.569244Z","shell.execute_reply":"2023-11-16T01:01:39.423624Z"},"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-16T01:01:39.426957Z","iopub.execute_input":"2023-11-16T01:01:39.427676Z","iopub.status.idle":"2023-11-16T01:01:39.495305Z","shell.execute_reply.started":"2023-11-16T01:01:39.427634Z","shell.execute_reply":"2023-11-16T01:01:39.494577Z"},"trusted":true},"execution_count":4,"outputs":[]},{"cell_type":"code","source":"tf.config.list_physical_devices('GPU')","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:01:39.496389Z","iopub.execute_input":"2023-11-16T01:01:39.496715Z","iopub.status.idle":"2023-11-16T01:01:39.827526Z","shell.execute_reply.started":"2023-11-16T01:01:39.496687Z","shell.execute_reply":"2023-11-16T01:01:39.826489Z"},"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-16T01:01:39.828983Z","iopub.execute_input":"2023-11-16T01:01:39.829843Z","iopub.status.idle":"2023-11-16T01:01:39.836424Z","shell.execute_reply.started":"2023-11-16T01:01:39.829805Z","shell.execute_reply":"2023-11-16T01:01:39.835564Z"},"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-16T01:01:39.837750Z","iopub.execute_input":"2023-11-16T01:01:39.838469Z","iopub.status.idle":"2023-11-16T01:01:40.019714Z","shell.execute_reply.started":"2023-11-16T01:01:39.838420Z","shell.execute_reply":"2023-11-16T01:01:40.018899Z"},"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":{"execution":{"iopub.status.busy":"2023-11-16T01:01:40.021138Z","iopub.execute_input":"2023-11-16T01:01:40.021974Z","iopub.status.idle":"2023-11-16T01:02:02.192867Z","shell.execute_reply.started":"2023-11-16T01:01:40.021938Z","shell.execute_reply":"2023-11-16T01:02:02.191833Z"},"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=726b159c-fd8e-4e68-9532-6707a56660df\nTo: /kaggle/working/data.zip\n100%|██████████| 423M/423M [00:16<00:00, 26.0MB/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)\n frames = []\n for _ in range(int(cap.get(cv2.CAP_PROP_FRAME_COUNT))): \n ret, frame = cap.read()\n frame = tf.image.rgb_to_grayscale(frame)\n frames.append(frame[190:236,80:220,:])\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","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:02.194276Z","iopub.execute_input":"2023-11-16T01:02:02.195068Z","iopub.status.idle":"2023-11-16T01:02:02.202688Z","shell.execute_reply.started":"2023-11-16T01:02:02.195028Z","shell.execute_reply":"2023-11-16T01:02:02.201627Z"},"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-16T01:02:02.207148Z","iopub.execute_input":"2023-11-16T01:02:02.207747Z","iopub.status.idle":"2023-11-16T01:02:02.212605Z","shell.execute_reply.started":"2023-11-16T01:02:02.207718Z","shell.execute_reply":"2023-11-16T01:02:02.211502Z"},"trusted":true},"execution_count":10,"outputs":[]},{"cell_type":"code","source":"char_to_num = tf.keras.layers.StringLookup(vocabulary=vocab, oov_token=\"\")\nnum_to_char = tf.keras.layers.StringLookup(\n vocabulary=char_to_num.get_vocabulary(), oov_token=\"\", invert=True\n)\n\nprint(\n f\"The vocabulary is: {char_to_num.get_vocabulary()} \"\n f\"(size ={char_to_num.vocabulary_size()})\"\n)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:02.213908Z","iopub.execute_input":"2023-11-16T01:02:02.214219Z","iopub.status.idle":"2023-11-16T01:02:04.369046Z","shell.execute_reply.started":"2023-11-16T01:02:02.214191Z","shell.execute_reply":"2023-11-16T01:02:04.368025Z"},"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-16T01:02:04.370200Z","iopub.execute_input":"2023-11-16T01:02:04.370490Z","iopub.status.idle":"2023-11-16T01:02:04.379020Z","shell.execute_reply.started":"2023-11-16T01:02:04.370459Z","shell.execute_reply":"2023-11-16T01:02:04.378119Z"},"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(['n','i','c','k'])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:04.380175Z","iopub.execute_input":"2023-11-16T01:02:04.380486Z","iopub.status.idle":"2023-11-16T01:02:04.390993Z","shell.execute_reply.started":"2023-11-16T01:02:04.380453Z","shell.execute_reply":"2023-11-16T01:02:04.390020Z"},"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-16T01:02:04.392256Z","iopub.execute_input":"2023-11-16T01:02:04.392841Z","iopub.status.idle":"2023-11-16T01:02:04.406456Z","shell.execute_reply.started":"2023-11-16T01:02:04.392809Z","shell.execute_reply":"2023-11-16T01:02:04.405663Z"},"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 for line in lines:\n line = line.split()\n if line[2] != 'sil': \n tokens = [*tokens,' ',line[2]]\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-16T01:02:04.407449Z","iopub.execute_input":"2023-11-16T01:02:04.407722Z","iopub.status.idle":"2023-11-16T01:02:04.413358Z","shell.execute_reply.started":"2023-11-16T01:02:04.407699Z","shell.execute_reply":"2023-11-16T01:02:04.412495Z"},"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 splitting for windows\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-16T01:02:04.414492Z","iopub.execute_input":"2023-11-16T01:02:04.414812Z","iopub.status.idle":"2023-11-16T01:02:04.422524Z","shell.execute_reply.started":"2023-11-16T01:02:04.414781Z","shell.execute_reply":"2023-11-16T01:02:04.421748Z"},"trusted":true},"execution_count":16,"outputs":[]},{"cell_type":"code","source":"test_path = './data/s1/bbal6n.mpg'","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:04.423603Z","iopub.execute_input":"2023-11-16T01:02:04.424480Z","iopub.status.idle":"2023-11-16T01:02:04.433202Z","shell.execute_reply.started":"2023-11-16T01:02:04.424448Z","shell.execute_reply":"2023-11-16T01:02:04.432474Z"},"trusted":true},"execution_count":17,"outputs":[]},{"cell_type":"code","source":"# test_path = bytes.decode(test_path.numpy())","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:04.434154Z","iopub.execute_input":"2023-11-16T01:02:04.434441Z","iopub.status.idle":"2023-11-16T01:02:04.441157Z","shell.execute_reply.started":"2023-11-16T01:02:04.434409Z","shell.execute_reply":"2023-11-16T01:02:04.440440Z"},"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-16T01:02:04.442400Z","iopub.execute_input":"2023-11-16T01:02:04.442760Z","iopub.status.idle":"2023-11-16T01:02:04.449944Z","shell.execute_reply.started":"2023-11-16T01:02:04.442734Z","shell.execute_reply":"2023-11-16T01:02:04.449118Z"},"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-16T01:02:04.450947Z","iopub.execute_input":"2023-11-16T01:02:04.451255Z","iopub.status.idle":"2023-11-16T01:02:04.460280Z","shell.execute_reply.started":"2023-11-16T01:02:04.451231Z","shell.execute_reply":"2023-11-16T01:02:04.459452Z"},"trusted":true},"execution_count":20,"outputs":[{"execution_count":20,"output_type":"execute_result","data":{"text/plain":"'bbal6n'"},"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-16T01:02:04.461196Z","iopub.execute_input":"2023-11-16T01:02:04.461507Z","iopub.status.idle":"2023-11-16T01:02:07.211166Z","shell.execute_reply.started":"2023-11-16T01:02:04.461477Z","shell.execute_reply":"2023-11-16T01:02:07.210200Z"},"trusted":true},"execution_count":21,"outputs":[]},{"cell_type":"code","source":"alignments","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:07.212518Z","iopub.execute_input":"2023-11-16T01:02:07.213171Z","iopub.status.idle":"2023-11-16T01:02:07.219601Z","shell.execute_reply.started":"2023-11-16T01:02:07.213125Z","shell.execute_reply":"2023-11-16T01:02:07.218675Z"},"trusted":true},"execution_count":22,"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"code","source":"plt.imshow(frames[40])","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:07.220912Z","iopub.execute_input":"2023-11-16T01:02:07.221257Z","iopub.status.idle":"2023-11-16T01:02:07.507113Z","shell.execute_reply.started":"2023-11-16T01:02:07.221218Z","shell.execute_reply":"2023-11-16T01:02:07.506374Z"},"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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ArNp06Yp7NXUcvToUUNEZseOHcaY9x+CVCpltm7dWj7mpZdeMkRkdu7cOVXdrCkDAwPm9NNPN4899pj5xCc+Uf74mM1jc+utt5qPfexjseVhGJqOjg7zd3/3d+Xf9fb2mkwmY/7t3/6tFl2cMi6//HLzx3/8x+J311xzjbnuuuuMMbN3bPAPbCXj8OKLLxoiMnv37i0f87Of/cx4nmcOHz5cs75PNqN9mCF79uwxRGTeeOMNY8zsGZvjZdqZXQqFAu3bt49Wr15d/p3v+7R69WrauXPnFPZsaunr6yMiora2NiIi2rdvHxWLRTFOy5Yto87OzlkzTuvXr6fLL79cjAHR7B6bBx98kFasWEG///u/T/Pnz6fzzjuPvv/975fLX3vtNeru7hZj09LSQqtWrZrxY/PRj36Utm/fTr/61a+IiOiXv/wlPfXUU3TppZcS0eweG04l47Bz505qbW2lFStWlI9ZvXo1+b5Pu3fvrnmfp5K+vj7yPI9aW1uJSMemUqZdYrl33nmHgiCg9vZ28fv29nZ6+eWXp6hXU0sYhnTzzTfThRdeSGeddRYREXV3d1M6nS5P+N/S3t5O3d3dU9DL2nLffffRM888Q3v37o2UzeaxefXVV+nOO++kDRs20F/8xV/Q3r176c/+7M8onU7TunXrytc/2vM108fmq1/9KvX399OyZcsokUhQEAR022230XXXXUdENKvHhlPJOHR3d9P8+fNFeTKZpLa2tlk1Vrlcjm699Va69tpry8nldGwqY9p9fChR1q9fT88//zw99dRTU92VacGhQ4fopptuoscee4yy2exUd2daEYYhrVixgv7mb/6GiIjOO+88ev755+muu+6idevWTXHvppYf/ehH9IMf/IDuvfde+tCHPkT79++nm2++mRYsWDDrx0apnmKxSH/wB39Axhi68847p7o7JxzTzuwyd+5cSiQSEWVCT08PdXR0TFGvpo4bb7yRHn74Yfr5z39OixYtKv++o6ODCoUC9fb2iuNnwzjt27ePjh49Sueffz4lk0lKJpO0Y8cO+u53v0vJZJLa29tn7dicfPLJdOaZZ4rfnXHGGXTw4EEiovL1z8bn68///M/pq1/9Kn32s5+ls88+m/7oj/6IbrnlFtq0aRMRze6x4VQyDh0dHXT06FFRXiqV6NixY7NirH774fHGG2/QY489Vl71INKxqZRp9/GRTqdp+fLltH379vLvwjCk7du3U1dX1xT2rLYYY+jGG2+k+++/nx5//HFaunSpKF++fDmlUikxTgcOHKCDBw/O+HG6+OKL6bnnnqP9+/eXf1asWEHXXXddeXu2js2FF14YkWT/6le/olNOOYWIiJYuXUodHR1ibPr7+2n37t0zfmyGh4fJ9+UrL5FIUBiGRDS7x4ZTyTh0dXVRb28v7du3r3zM448/TmEY0qpVq2re51ry2w+PV155hf7jP/6D5syZI8pn89hUxVR7vI7GfffdZzKZjLnnnnvMiy++aL74xS+a1tZW093dPdVdqxlf+tKXTEtLi3niiSfMW2+9Vf4ZHh4uH3PDDTeYzs5O8/jjj5unn37adHV1ma6urins9dTB1S7GzN6x2bNnj0kmk+a2224zr7zyivnBD35g6uvrzb/+67+Wj7n99ttNa2ur+clPfmL++7//21x11VUzUk6KrFu3zixcuLAstf3xj39s5s6da77yla+Uj5ktYzMwMGCeffZZ8+yzzxoiMn//939vnn322bJio5JxuOSSS8x5551ndu/ebZ566ilz+umnzwg5qWtsCoWCufLKK82iRYvM/v37xbs5n8+X65ipYzORTMuPD2OM+Yd/+AfT2dlp0um0Wblypdm1a9dUd6mmENGoP1u2bCkfMzIyYv70T//UnHTSSaa+vt58+tOfNm+99dbUdXoKwY+P2Tw2Dz30kDnrrLNMJpMxy5YtM//0T/8kysMwNF//+tdNe3u7yWQy5uKLLzYHDhyYot7Wjv7+fnPTTTeZzs5Ok81mzQc+8AHzta99TfzRmC1j8/Of/3zU98u6deuMMZWNw7vvvmuuvfZa09jYaJqbm80XvvAFMzAwMAVXM7G4xua1116LfTf//Oc/L9cxU8dmIvGMYeH9FEVRFEVRJplp5/OhKIqiKMrMRj8+FEVRFEWpKfrxoSiKoihKTdGPD0VRFEVRaop+fCiKoiiKUlP040NRFEVRlJqiHx+KoiiKotQU/fhQFEVRFKWm6MeHoiiKoig1RT8+FEVRFEWpKfrxoSiKoihKTdGPD0VRFEVRasr/A1EXL/BESGnOAAAAAElFTkSuQmCC"},"metadata":{}}]},{"cell_type":"code","source":"alignments","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:07.508655Z","iopub.execute_input":"2023-11-16T01:02:07.509308Z","iopub.status.idle":"2023-11-16T01:02:07.515693Z","shell.execute_reply.started":"2023-11-16T01:02:07.509270Z","shell.execute_reply":"2023-11-16T01:02:07.514752Z"},"trusted":true},"execution_count":24,"outputs":[{"execution_count":24,"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-16T01:02:07.516841Z","iopub.execute_input":"2023-11-16T01:02:07.517148Z","iopub.status.idle":"2023-11-16T01:02:07.527980Z","shell.execute_reply.started":"2023-11-16T01:02:07.517117Z","shell.execute_reply":"2023-11-16T01:02:07.527058Z"},"trusted":true},"execution_count":25,"outputs":[{"execution_count":25,"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-16T01:02:07.528969Z","iopub.execute_input":"2023-11-16T01:02:07.529207Z","iopub.status.idle":"2023-11-16T01:02:07.534332Z","shell.execute_reply.started":"2023-11-16T01:02:07.529185Z","shell.execute_reply":"2023-11-16T01:02:07.533492Z"},"trusted":true},"execution_count":26,"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-16T01:02:07.535419Z","iopub.execute_input":"2023-11-16T01:02:07.535709Z","iopub.status.idle":"2023-11-16T01:02:07.543321Z","shell.execute_reply.started":"2023-11-16T01:02:07.535685Z","shell.execute_reply":"2023-11-16T01:02:07.542480Z"},"trusted":true},"execution_count":27,"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# Added for split \ntrain = data.take(450)\ntest = data.skip(450)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:07.552753Z","iopub.execute_input":"2023-11-16T01:02:07.553068Z","iopub.status.idle":"2023-11-16T01:02:07.660047Z","shell.execute_reply.started":"2023-11-16T01:02:07.553045Z","shell.execute_reply":"2023-11-16T01:02:07.659302Z"},"trusted":true},"execution_count":28,"outputs":[]},{"cell_type":"code","source":"len(train)","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:07.661133Z","iopub.execute_input":"2023-11-16T01:02:07.661413Z","iopub.status.idle":"2023-11-16T01:02:07.667877Z","shell.execute_reply.started":"2023-11-16T01:02:07.661387Z","shell.execute_reply":"2023-11-16T01:02:07.666701Z"},"trusted":true},"execution_count":29,"outputs":[{"execution_count":29,"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-16T01:02:07.668868Z","iopub.execute_input":"2023-11-16T01:02:07.669157Z","iopub.status.idle":"2023-11-16T01:02:08.373507Z","shell.execute_reply.started":"2023-11-16T01:02:07.669123Z","shell.execute_reply":"2023-11-16T01:02:08.372488Z"},"trusted":true},"execution_count":30,"outputs":[]},{"cell_type":"code","source":"len(frames)","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:08.374766Z","iopub.execute_input":"2023-11-16T01:02:08.375065Z","iopub.status.idle":"2023-11-16T01:02:08.381548Z","shell.execute_reply.started":"2023-11-16T01:02:08.375038Z","shell.execute_reply":"2023-11-16T01:02:08.380485Z"},"trusted":true},"execution_count":31,"outputs":[{"execution_count":31,"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-16T01:02:08.382959Z","iopub.execute_input":"2023-11-16T01:02:08.383352Z","iopub.status.idle":"2023-11-16T01:02:08.393436Z","shell.execute_reply.started":"2023-11-16T01:02:08.383319Z","shell.execute_reply":"2023-11-16T01:02:08.392611Z"},"trusted":true},"execution_count":32,"outputs":[]},{"cell_type":"code","source":"# len(sample)","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:08.394839Z","iopub.execute_input":"2023-11-16T01:02:08.395420Z","iopub.status.idle":"2023-11-16T01:02:08.399362Z","shell.execute_reply.started":"2023-11-16T01:02:08.395387Z","shell.execute_reply":"2023-11-16T01:02:08.398384Z"},"trusted":true},"execution_count":33,"outputs":[]},{"cell_type":"code","source":"val = sample.next(); val[0]","metadata":{"scrolled":true,"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:08.400409Z","iopub.execute_input":"2023-11-16T01:02:08.400690Z","iopub.status.idle":"2023-11-16T01:02:08.845733Z","shell.execute_reply.started":"2023-11-16T01:02:08.400667Z","shell.execute_reply":"2023-11-16T01:02:08.844693Z"},"trusted":true},"execution_count":34,"outputs":[{"execution_count":34,"output_type":"execute_result","data":{"text/plain":"array([[[[[1.2794168 ],\n [1.2794168 ],\n [1.2794168 ],\n ...,\n [9.266079 ],\n [9.304849 ],\n [8.917147 ]],\n\n [[1.2794168 ],\n [1.2794168 ],\n [1.2794168 ],\n ...,\n [8.645756 ],\n [8.917147 ],\n [8.917147 ]],\n\n [[1.2018763 ],\n [1.2018763 ],\n [1.2018763 ],\n ...,\n [9.653781 ],\n [9.770091 ],\n [9.770091 ]],\n\n ...,\n\n [[0.8529445 ],\n [0.8529445 ],\n [0.8529445 ],\n ...,\n [9.692551 ],\n [9.653781 ],\n [9.653781 ]],\n\n [[0.8529445 ],\n [0.8529445 ],\n [0.8529445 ],\n ...,\n [9.61501 ],\n [9.61501 ],\n [9.61501 ]],\n\n [[0.8529445 ],\n [0.8529445 ],\n [0.8529445 ],\n ...,\n [9.61501 ],\n [9.61501 ],\n [9.61501 ]]],\n\n\n [[[1.2018763 ],\n [1.2018763 ],\n [1.2018763 ],\n ...,\n [9.188539 ],\n [9.4987 ],\n [9.266079 ]],\n\n [[1.2018763 ],\n [1.2018763 ],\n [1.2018763 ],\n ...,\n [8.723296 ],\n [9.149768 ],\n [9.343619 ]],\n\n [[1.2018763 ],\n [1.2018763 ],\n [1.2018763 ],\n ...,\n [9.61501 ],\n [9.770091 ],\n [9.770091 ]],\n\n ...,\n\n [[0.8529445 ],\n [0.8529445 ],\n [0.8529445 ],\n ...,\n [9.692551 ],\n [9.653781 ],\n [9.653781 ]],\n\n [[0.8529445 ],\n [0.8529445 ],\n [0.8529445 ],\n ...,\n [9.653781 ],\n [9.653781 ],\n [9.653781 ]],\n\n [[0.8529445 ],\n [0.8529445 ],\n [0.8529445 ],\n ...,\n [9.653781 ],\n [9.653781 ],\n [9.653781 ]]],\n\n\n [[[1.2406465 ],\n [1.2406465 ],\n [1.2018763 ],\n ...,\n [9.266079 ],\n [9.42116 ],\n [9.266079 ]],\n\n [[1.2406465 ],\n [1.2406465 ],\n [1.2018763 ],\n ...,\n [8.6845255 ],\n [9.227308 ],\n [9.266079 ]],\n\n [[1.2018763 ],\n [1.2018763 ],\n [1.2018763 ],\n ...,\n [9.61501 ],\n [9.770091 ],\n [9.770091 ]],\n\n ...,\n\n [[0.9304849 ],\n [0.9304849 ],\n [0.9304849 ],\n ...,\n [9.653781 ],\n [9.61501 ],\n [9.61501 ]],\n\n [[0.8917147 ],\n [0.8917147 ],\n [0.8917147 ],\n ...,\n [9.61501 ],\n [9.61501 ],\n [9.61501 ]],\n\n [[0.8529445 ],\n [0.8529445 ],\n [0.8529445 ],\n ...,\n [9.61501 ],\n [9.61501 ],\n [9.61501 ]]],\n\n\n ...,\n\n\n [[[1.2406465 ],\n [1.2406465 ],\n [1.2406465 ],\n ...,\n [9.149768 ],\n [9.576241 ],\n [9.692551 ]],\n\n [[1.2406465 ],\n [1.2406465 ],\n [1.2406465 ],\n ...,\n [9.033458 ],\n [9.61501 ],\n [9.576241 ]],\n\n [[1.2794168 ],\n [1.2794168 ],\n [1.2794168 ],\n ...,\n [9.847631 ],\n [0.0387702 ],\n [0.0387702 ]],\n\n ...,\n\n [[0.9692551 ],\n [0.9304849 ],\n [0.9304849 ],\n ...,\n [9.731321 ],\n [9.692551 ],\n [9.692551 ]],\n\n [[0.9304849 ],\n [0.9304849 ],\n [0.9304849 ],\n ...,\n [9.692551 ],\n [9.692551 ],\n [9.653781 ]],\n\n [[0.9304849 ],\n [0.9304849 ],\n [0.9304849 ],\n ...,\n [9.692551 ],\n [9.653781 ],\n [9.653781 ]]],\n\n\n [[[1.2794168 ],\n [1.2406465 ],\n [1.2406465 ],\n ...,\n [9.110998 ],\n [9.653781 ],\n [9.653781 ]],\n\n [[1.2794168 ],\n [1.2406465 ],\n [1.2406465 ],\n ...,\n [9.0722275 ],\n [9.886402 ],\n [9.653781 ]],\n\n [[1.2794168 ],\n [1.2794168 ],\n [1.2794168 ],\n ...,\n [9.808862 ],\n [0.0387702 ],\n [0.0387702 ]],\n\n ...,\n\n [[0.9692551 ],\n [0.9304849 ],\n [0.9304849 ],\n ...,\n [9.731321 ],\n [9.692551 ],\n [9.692551 ]],\n\n [[0.9304849 ],\n [0.9304849 ],\n [0.9304849 ],\n ...,\n [9.731321 ],\n [9.692551 ],\n [9.653781 ]],\n\n [[0.9304849 ],\n [0.9304849 ],\n [0.9304849 ],\n ...,\n [9.731321 ],\n [9.653781 ],\n [9.653781 ]]],\n\n\n [[[1.2794168 ],\n [1.2794168 ],\n [1.2406465 ],\n ...,\n [9.0722275 ],\n [9.653781 ],\n [9.653781 ]],\n\n [[1.2794168 ],\n [1.2406465 ],\n [1.2406465 ],\n ...,\n [9.110998 ],\n [9.808862 ],\n [9.576241 ]],\n\n [[1.2794168 ],\n [1.2794168 ],\n [1.2794168 ],\n ...,\n [9.731321 ],\n [0.15508081],\n [0. ]],\n\n ...,\n\n [[0.9692551 ],\n [0.9692551 ],\n [0.9692551 ],\n ...,\n [9.692551 ],\n [9.731321 ],\n [9.731321 ]],\n\n [[0.9692551 ],\n [0.9304849 ],\n [0.9304849 ],\n ...,\n [9.692551 ],\n [9.692551 ],\n [9.653781 ]],\n\n [[0.9304849 ],\n [0.9304849 ],\n [0.9304849 ],\n ...,\n [9.692551 ],\n [9.653781 ],\n [9.653781 ]]]],\n\n\n\n [[[[1.5196823 ],\n [1.5196823 ],\n [1.5576744 ],\n ...,\n [9.23207 ],\n [0.11397617],\n [0.11397617]],\n\n [[1.5196823 ],\n [1.5196823 ],\n [1.5576744 ],\n ...,\n [9.23207 ],\n [0.07598411],\n [9.649982 ]],\n\n [[1.4436982 ],\n [1.4436982 ],\n [1.4436982 ],\n ...,\n [0.11397617],\n [0.3419285 ],\n [0.3419285 ]],\n\n ...,\n\n [[1.0257856 ],\n [1.0257856 ],\n [1.0257856 ],\n ...,\n [0.07598411],\n [0.03799206],\n [0.03799206]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.9877935 ],\n ...,\n [0.03799206],\n [0.03799206],\n [0.03799206]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.9877935 ],\n ...,\n [0.03799206],\n [0.03799206],\n [0. ]]],\n\n\n [[[1.4816903 ],\n [1.4816903 ],\n [1.4816903 ],\n ...,\n [9.346046 ],\n [0.18996029],\n [0.03799206]],\n\n [[1.4816903 ],\n [1.4816903 ],\n [1.4057062 ],\n ...,\n [9.346046 ],\n [0.15196823],\n [0.11397617]],\n\n [[1.4057062 ],\n [1.4057062 ],\n [1.4436982 ],\n ...,\n [0.07598411],\n [0.30393645],\n [0.30393645]],\n\n ...,\n\n [[1.0257856 ],\n [1.0257856 ],\n [0.9877935 ],\n ...,\n [0.03799206],\n [0. ],\n [0. ]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.94980145],\n ...,\n [0.03799206],\n [0. ],\n [9.687975 ]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.94980145],\n ...,\n [0.03799206],\n [9.687975 ],\n [9.687975 ]]],\n\n\n [[[1.4816903 ],\n [1.4816903 ],\n [1.4436982 ],\n ...,\n [9.346046 ],\n [0.22795235],\n [0.18996029]],\n\n [[1.4816903 ],\n [1.4816903 ],\n [1.367714 ],\n ...,\n [9.384038 ],\n [0.22795235],\n [0.22795235]],\n\n [[1.4057062 ],\n [1.4057062 ],\n [1.4057062 ],\n ...,\n [0.03799206],\n [0.2659444 ],\n [0.2659444 ]],\n\n ...,\n\n [[1.0257856 ],\n [1.0257856 ],\n [0.9877935 ],\n ...,\n [0.03799206],\n [0. ],\n [0. ]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.94980145],\n ...,\n [0.03799206],\n [0. ],\n [9.687975 ]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.94980145],\n ...,\n [0.03799206],\n [9.687975 ],\n [9.687975 ]]],\n\n\n ...,\n\n\n [[[1.4436982 ],\n [1.4436982 ],\n [1.4436982 ],\n ...,\n [9.649982 ],\n [0.15196823],\n [0.22795235]],\n\n [[1.4436982 ],\n [1.4436982 ],\n [1.4436982 ],\n ...,\n [9.687975 ],\n [0.11397617],\n [0.22795235]],\n\n [[1.367714 ],\n [1.367714 ],\n [1.4057062 ],\n ...,\n [0.15196823],\n [0.22795235],\n [0.22795235]],\n\n ...,\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.9877935 ],\n ...,\n [9.687975 ],\n [9.687975 ],\n [9.687975 ]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.9877935 ],\n ...,\n [0. ],\n [0. ],\n [9.687975 ]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.94980145],\n ...,\n [0. ],\n [9.687975 ],\n [9.687975 ]]],\n\n\n [[[1.4436982 ],\n [1.4436982 ],\n [1.4436982 ],\n ...,\n [9.687975 ],\n [0.2659444 ],\n [0.2659444 ]],\n\n [[1.4436982 ],\n [1.4436982 ],\n [1.4436982 ],\n ...,\n [9.687975 ],\n [0.11397617],\n [0.2659444 ]],\n\n [[1.329722 ],\n [1.329722 ],\n [1.329722 ],\n ...,\n [0.15196823],\n [0.2659444 ],\n [0.2659444 ]],\n\n ...,\n\n [[0.94980145],\n [0.94980145],\n [0.94980145],\n ...,\n [0. ],\n [9.687975 ],\n [9.687975 ]],\n\n [[0.94980145],\n [0.94980145],\n [0.94980145],\n ...,\n [0. ],\n [9.687975 ],\n [9.649982 ]],\n\n [[0.94980145],\n [0.94980145],\n [0.9118094 ],\n ...,\n [0. ],\n [9.649982 ],\n [9.649982 ]]],\n\n\n [[[1.4057062 ],\n [1.4057062 ],\n [1.367714 ],\n ...,\n [9.573998 ],\n [0.2659444 ],\n [0.30393645]],\n\n [[1.4057062 ],\n [1.4057062 ],\n [1.367714 ],\n ...,\n [9.573998 ],\n [0.11397617],\n [0.30393645]],\n\n [[1.367714 ],\n [1.367714 ],\n [1.367714 ],\n ...,\n [0.15196823],\n [0.22795235],\n [0.22795235]],\n\n ...,\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.94980145],\n ...,\n [0. ],\n [9.687975 ],\n [9.687975 ]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.94980145],\n ...,\n [0. ],\n [9.687975 ],\n [9.687975 ]],\n\n [[0.9877935 ],\n [0.9877935 ],\n [0.94980145],\n ...,\n [0. ],\n [9.687975 ],\n [9.649982 ]]]]], dtype=float32)"},"metadata":{}}]},{"cell_type":"code","source":"\n# for i in range (50):\n# val = sample.next()\n \n# print(i,val[0][0][0][0][0])\n# print(tf.strings.reduce_join([num_to_char(word) for word in val[1][0]]))\n# yhat = model.predict(val[0])\n# print(tf.strings.reduce_join([num_to_char(x) for x in tf.argmax(yhat[0],axis=1)]))\n# print(tf.strings.reduce_join([num_to_char(tf.argmax(x)) for x in yhat[0]]))","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:08.849213Z","iopub.execute_input":"2023-11-16T01:02:08.849536Z","iopub.status.idle":"2023-11-16T01:02:08.854538Z","shell.execute_reply.started":"2023-11-16T01:02:08.849509Z","shell.execute_reply":"2023-11-16T01:02:08.853313Z"},"trusted":true},"execution_count":35,"outputs":[]},{"cell_type":"code","source":"# imageio.mimsave('./animation.gif', val[0][0], fps=10)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:08.856444Z","iopub.execute_input":"2023-11-16T01:02:08.857382Z","iopub.status.idle":"2023-11-16T01:02:08.867939Z","shell.execute_reply.started":"2023-11-16T01:02:08.857348Z","shell.execute_reply":"2023-11-16T01:02:08.865876Z"},"trusted":true},"execution_count":36,"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][35])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:08.870680Z","iopub.execute_input":"2023-11-16T01:02:08.871024Z","iopub.status.idle":"2023-11-16T01:02:09.177830Z","shell.execute_reply.started":"2023-11-16T01:02:08.870991Z","shell.execute_reply":"2023-11-16T01:02:09.176227Z"},"trusted":true},"execution_count":37,"outputs":[{"execution_count":37,"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":"tf.strings.reduce_join([num_to_char(word) for word in val[1][0]])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:09.179875Z","iopub.execute_input":"2023-11-16T01:02:09.180156Z","iopub.status.idle":"2023-11-16T01:02:09.252441Z","shell.execute_reply.started":"2023-11-16T01:02:09.180131Z","shell.execute_reply":"2023-11-16T01:02:09.250826Z"},"trusted":true},"execution_count":38,"outputs":[{"execution_count":38,"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-16T01:02:09.254567Z","iopub.execute_input":"2023-11-16T01:02:09.254830Z","iopub.status.idle":"2023-11-16T01:02:09.267015Z","shell.execute_reply.started":"2023-11-16T01:02:09.254807Z","shell.execute_reply":"2023-11-16T01:02:09.265945Z"},"trusted":true},"execution_count":39,"outputs":[]},{"cell_type":"code","source":"data.as_numpy_iterator().next()[0][0].shape","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:09.269705Z","iopub.execute_input":"2023-11-16T01:02:09.269962Z","iopub.status.idle":"2023-11-16T01:02:10.183317Z","shell.execute_reply.started":"2023-11-16T01:02:09.269939Z","shell.execute_reply":"2023-11-16T01:02:10.182371Z"},"trusted":true},"execution_count":40,"outputs":[{"execution_count":40,"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-16T01:02:10.184620Z","iopub.execute_input":"2023-11-16T01:02:10.185713Z","iopub.status.idle":"2023-11-16T01:02:12.367267Z","shell.execute_reply.started":"2023-11-16T01:02:10.185683Z","shell.execute_reply":"2023-11-16T01:02:12.366243Z"},"trusted":true},"execution_count":41,"outputs":[]},{"cell_type":"code","source":"# url = 'https://drive.google.com/uc?id=1vWscXs4Vt0a_1IH1-ct2TCgXAZT-N3_Y'\n# url = 'https://drive.google.com/file/d/1fyZoYgqZw_aRa66kiOR6J8XLu3Y9wfMg/view?usp=sharing'\n# url = 'https://drive.google.com/u/0/uc?id=1JAmcd2v0JcZStgs69VytgqwGJMlhNeaT&export=download'\n# output = 'check.zip'\n# gdown.download(url, output, quiet=False)\n# gdown.extractall('check.zip', 'models')","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:12.368701Z","iopub.execute_input":"2023-11-16T01:02:12.369086Z","iopub.status.idle":"2023-11-16T01:02:12.374115Z","shell.execute_reply.started":"2023-11-16T01:02:12.369050Z","shell.execute_reply":"2023-11-16T01:02:12.373081Z"},"trusted":true},"execution_count":42,"outputs":[]},{"cell_type":"code","source":"# model.load_weights('./models/models/checkpoint')","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:12.375308Z","iopub.execute_input":"2023-11-16T01:02:12.375650Z","iopub.status.idle":"2023-11-16T01:02:12.385450Z","shell.execute_reply.started":"2023-11-16T01:02:12.375624Z","shell.execute_reply":"2023-11-16T01:02:12.384584Z"},"trusted":true},"execution_count":43,"outputs":[]},{"cell_type":"code","source":"model.summary()","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:12.386652Z","iopub.execute_input":"2023-11-16T01:02:12.387025Z","iopub.status.idle":"2023-11-16T01:02:12.432834Z","shell.execute_reply.started":"2023-11-16T01:02:12.386994Z","shell.execute_reply":"2023-11-16T01:02:12.432029Z"},"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-16T01:02:12.433949Z","iopub.execute_input":"2023-11-16T01:02:12.434271Z","iopub.status.idle":"2023-11-16T01:02:12.440389Z","shell.execute_reply.started":"2023-11-16T01:02:12.434239Z","shell.execute_reply":"2023-11-16T01:02:12.439478Z"},"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-16T01:02:12.441390Z","iopub.execute_input":"2023-11-16T01:02:12.441738Z","iopub.status.idle":"2023-11-16T01:02:17.867857Z","shell.execute_reply.started":"2023-11-16T01:02:12.441708Z","shell.execute_reply":"2023-11-16T01:02:17.866905Z"},"trusted":true},"execution_count":46,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 5s 5s/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-16T01:02:17.869368Z","iopub.execute_input":"2023-11-16T01:02:17.869776Z","iopub.status.idle":"2023-11-16T01:02:18.011056Z","shell.execute_reply.started":"2023-11-16T01:02:17.869743Z","shell.execute_reply":"2023-11-16T01:02:18.009234Z"},"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-16T01:02:18.013854Z","iopub.execute_input":"2023-11-16T01:02:18.014624Z","iopub.status.idle":"2023-11-16T01:02:18.198215Z","shell.execute_reply.started":"2023-11-16T01:02:18.014568Z","shell.execute_reply":"2023-11-16T01:02:18.196422Z"},"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-16T01:02:18.200916Z","iopub.execute_input":"2023-11-16T01:02:18.201696Z","iopub.status.idle":"2023-11-16T01:02:18.212821Z","shell.execute_reply.started":"2023-11-16T01:02:18.201612Z","shell.execute_reply":"2023-11-16T01:02:18.210996Z"},"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-16T01:02:18.215246Z","iopub.execute_input":"2023-11-16T01:02:18.216022Z","iopub.status.idle":"2023-11-16T01:02:18.227781Z","shell.execute_reply.started":"2023-11-16T01:02:18.215963Z","shell.execute_reply":"2023-11-16T01:02:18.226185Z"},"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-16T01:02:18.230038Z","iopub.execute_input":"2023-11-16T01:02:18.230390Z","iopub.status.idle":"2023-11-16T01:02:18.238048Z","shell.execute_reply.started":"2023-11-16T01:02:18.230356Z","shell.execute_reply":"2023-11-16T01:02:18.236699Z"},"trusted":true},"execution_count":51,"outputs":[]},{"cell_type":"code","source":"def 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-16T01:02:18.239359Z","iopub.execute_input":"2023-11-16T01:02:18.239706Z","iopub.status.idle":"2023-11-16T01:02:18.251918Z","shell.execute_reply.started":"2023-11-16T01:02:18.239678Z","shell.execute_reply":"2023-11-16T01:02:18.250056Z"},"trusted":true},"execution_count":52,"outputs":[]},{"cell_type":"code","source":"class 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 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-16T01:02:18.253816Z","iopub.execute_input":"2023-11-16T01:02:18.254204Z","iopub.status.idle":"2023-11-16T01:02:18.267950Z","shell.execute_reply.started":"2023-11-16T01:02:18.254167Z","shell.execute_reply":"2023-11-16T01:02:18.265822Z"},"trusted":true},"execution_count":53,"outputs":[]},{"cell_type":"code","source":"model.compile(optimizer=tf.keras.optimizers.legacy.Adam(learning_rate=0.00001), loss=CTCLoss)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:18.270718Z","iopub.execute_input":"2023-11-16T01:02:18.272093Z","iopub.status.idle":"2023-11-16T01:02:18.310185Z","shell.execute_reply.started":"2023-11-16T01:02:18.272012Z","shell.execute_reply":"2023-11-16T01:02:18.308020Z"},"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-16T01:02:18.312893Z","iopub.execute_input":"2023-11-16T01:02:18.313619Z","iopub.status.idle":"2023-11-16T01:02:18.323468Z","shell.execute_reply.started":"2023-11-16T01:02:18.313555Z","shell.execute_reply":"2023-11-16T01:02:18.321547Z"},"trusted":true},"execution_count":55,"outputs":[]},{"cell_type":"code","source":"schedule_callback = LearningRateScheduler(scheduler)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:18.325921Z","iopub.execute_input":"2023-11-16T01:02:18.326646Z","iopub.status.idle":"2023-11-16T01:02:18.336578Z","shell.execute_reply.started":"2023-11-16T01:02:18.326572Z","shell.execute_reply":"2023-11-16T01:02:18.334992Z"},"trusted":true},"execution_count":56,"outputs":[]},{"cell_type":"code","source":"example_callback = ProduceExample(test)","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:18.337812Z","iopub.execute_input":"2023-11-16T01:02:18.338182Z","iopub.status.idle":"2023-11-16T01:02:18.375157Z","shell.execute_reply.started":"2023-11-16T01:02:18.338137Z","shell.execute_reply":"2023-11-16T01:02:18.373543Z"},"trusted":true},"execution_count":57,"outputs":[]},{"cell_type":"code","source":"# model.fit(train, validation_data=test, epochs=46, callbacks=[checkpoint_callback, schedule_callback, example_callback])","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:18.377394Z","iopub.execute_input":"2023-11-16T01:02:18.378054Z","iopub.status.idle":"2023-11-16T01:02:18.388987Z","shell.execute_reply.started":"2023-11-16T01:02:18.378005Z","shell.execute_reply":"2023-11-16T01:02:18.387121Z"},"trusted":true},"execution_count":58,"outputs":[]},{"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-16T01:02:18.391934Z","iopub.execute_input":"2023-11-16T01:02:18.392824Z","iopub.status.idle":"2023-11-16T01:02:18.401515Z","shell.execute_reply.started":"2023-11-16T01:02:18.392766Z","shell.execute_reply":"2023-11-16T01:02:18.399554Z"},"trusted":true},"execution_count":59,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# model.load_weights('./models/checkpoint')","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:18.404344Z","iopub.execute_input":"2023-11-16T01:02:18.405551Z","iopub.status.idle":"2023-11-16T01:02:18.414322Z","shell.execute_reply.started":"2023-11-16T01:02:18.405466Z","shell.execute_reply":"2023-11-16T01:02:18.412503Z"},"trusted":true},"execution_count":60,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_data = data.as_numpy_iterator()","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:18.417118Z","iopub.execute_input":"2023-11-16T01:02:18.417827Z","iopub.status.idle":"2023-11-16T01:02:18.438233Z","shell.execute_reply.started":"2023-11-16T01:02:18.417761Z","shell.execute_reply":"2023-11-16T01:02:18.436777Z"},"trusted":true},"execution_count":61,"outputs":[]},{"cell_type":"code","source":"sample = test_data.next()","metadata":{"tags":[],"execution":{"iopub.status.busy":"2023-11-16T01:02:18.440330Z","iopub.execute_input":"2023-11-16T01:02:18.440743Z","iopub.status.idle":"2023-11-16T01:02:18.909674Z","shell.execute_reply.started":"2023-11-16T01:02:18.440706Z","shell.execute_reply":"2023-11-16T01:02:18.908517Z"},"trusted":true},"execution_count":62,"outputs":[]},{"cell_type":"code","source":"sample[0].shape","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:18.911098Z","iopub.execute_input":"2023-11-16T01:02:18.911724Z","iopub.status.idle":"2023-11-16T01:02:18.920760Z","shell.execute_reply.started":"2023-11-16T01:02:18.911696Z","shell.execute_reply":"2023-11-16T01:02:18.919667Z"},"trusted":true},"execution_count":63,"outputs":[{"execution_count":63,"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-16T01:02:18.922780Z","iopub.execute_input":"2023-11-16T01:02:18.923037Z","iopub.status.idle":"2023-11-16T01:02:18.934067Z","shell.execute_reply.started":"2023-11-16T01:02:18.923014Z","shell.execute_reply":"2023-11-16T01:02:18.932549Z"},"trusted":true},"execution_count":64,"outputs":[{"execution_count":64,"output_type":"execute_result","data":{"text/plain":"(2, 40)"},"metadata":{}}]},{"cell_type":"code","source":"sample[1]","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:18.935968Z","iopub.execute_input":"2023-11-16T01:02:18.936239Z","iopub.status.idle":"2023-11-16T01:02:18.946044Z","shell.execute_reply.started":"2023-11-16T01:02:18.936215Z","shell.execute_reply":"2023-11-16T01:02:18.944884Z"},"trusted":true},"execution_count":65,"outputs":[{"execution_count":65,"output_type":"execute_result","data":{"text/plain":"array([[12, 1, 25, 39, 18, 5, 4, 39, 2, 25, 39, 12, 39, 15, 14, 5,\n 39, 19, 15, 15, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0],\n [16, 12, 1, 3, 5, 39, 23, 8, 9, 20, 5, 39, 23, 9, 20, 8,\n 39, 5, 39, 15, 14, 5, 39, 19, 15, 15, 14, 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-16T01:02:18.948346Z","iopub.execute_input":"2023-11-16T01:02:18.948652Z","iopub.status.idle":"2023-11-16T01:02:20.930136Z","shell.execute_reply.started":"2023-11-16T01:02:18.948627Z","shell.execute_reply":"2023-11-16T01:02:20.929211Z"},"trusted":true},"execution_count":66,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 2s 2s/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-16T01:02:20.931667Z","iopub.execute_input":"2023-11-16T01:02:20.932015Z","iopub.status.idle":"2023-11-16T01:02:21.011348Z","shell.execute_reply.started":"2023-11-16T01:02:20.931982Z","shell.execute_reply":"2023-11-16T01:02:21.010469Z"},"trusted":true},"execution_count":67,"outputs":[{"name":"stdout","text":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ REAL TEXT\n","output_type":"stream"},{"execution_count":67,"output_type":"execute_result","data":{"text/plain":"[,\n ]"},"metadata":{}}]},{"cell_type":"code","source":"# for i in range (50):\n# val = sample.next()\n \n# # print(i,val[0][0][0][0][0])\n# og = tf.strings.reduce_join([num_to_char(word) for word in val[1][0]])\n# print(og)\n# yhat = model.predict(val[0])\n# # print(tf.strings.reduce_join([num_to_char(x) for x in tf.argmax(yhat[0],axis=1)]))\n# # print(tf.strings.reduce_join([num_to_char(tf.argmax(x)) for x in yhat[0]]))\n# decoded = tf.keras.backend.ctc_decode(yhat, input_length=[75,75], greedy=True)[0][0].numpy()\n# predicted = [tf.strings.reduce_join([num_to_char(word) for word in sentence]) for sentence in decoded]\n# print(predicted)","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:21.012632Z","iopub.execute_input":"2023-11-16T01:02:21.012975Z","iopub.status.idle":"2023-11-16T01:02:21.858647Z","shell.execute_reply.started":"2023-11-16T01:02:21.012942Z","shell.execute_reply":"2023-11-16T01:02:21.857344Z"},"trusted":true},"execution_count":68,"outputs":[]},{"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-16T01:02:21.860217Z","iopub.execute_input":"2023-11-16T01:02:21.860657Z","iopub.status.idle":"2023-11-16T01:02:21.884725Z","shell.execute_reply.started":"2023-11-16T01:02:21.860604Z","shell.execute_reply":"2023-11-16T01:02:21.883652Z"},"trusted":true},"execution_count":69,"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-16T01:02:21.885892Z","iopub.execute_input":"2023-11-16T01:02:21.886180Z","iopub.status.idle":"2023-11-16T01:02:22.038020Z","shell.execute_reply.started":"2023-11-16T01:02:21.886153Z","shell.execute_reply":"2023-11-16T01:02:22.036993Z"},"trusted":true},"execution_count":70,"outputs":[{"name":"stdout","text":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PREDICTIONS\n","output_type":"stream"},{"execution_count":70,"output_type":"execute_result","data":{"text/plain":"[,\n ]"},"metadata":{}}]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Test on a Video","metadata":{}},{"cell_type":"code","source":"sample1 = load_data(tf.convert_to_tensor('./data/s1/bras9a.mpg'))","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:22.039230Z","iopub.execute_input":"2023-11-16T01:02:22.039539Z","iopub.status.idle":"2023-11-16T01:02:22.282420Z","shell.execute_reply.started":"2023-11-16T01:02:22.039513Z","shell.execute_reply":"2023-11-16T01:02:22.281358Z"},"trusted":true},"execution_count":71,"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 [sample1[1]]]","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:22.283682Z","iopub.execute_input":"2023-11-16T01:02:22.284011Z","iopub.status.idle":"2023-11-16T01:02:22.321027Z","shell.execute_reply.started":"2023-11-16T01:02:22.283979Z","shell.execute_reply":"2023-11-16T01:02:22.320135Z"},"trusted":true},"execution_count":72,"outputs":[{"name":"stdout","text":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ REAL TEXT\n","output_type":"stream"},{"execution_count":72,"output_type":"execute_result","data":{"text/plain":"[]"},"metadata":{}}]},{"cell_type":"code","source":"yhat = model.predict(tf.expand_dims(sample1[0], axis=0))","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:22.322717Z","iopub.execute_input":"2023-11-16T01:02:22.323090Z","iopub.status.idle":"2023-11-16T01:02:22.876313Z","shell.execute_reply.started":"2023-11-16T01:02:22.323054Z","shell.execute_reply":"2023-11-16T01:02:22.875386Z"},"trusted":true},"execution_count":73,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 1s 504ms/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-16T01:02:22.877877Z","iopub.execute_input":"2023-11-16T01:02:22.878224Z","iopub.status.idle":"2023-11-16T01:02:22.888161Z","shell.execute_reply.started":"2023-11-16T01:02:22.878191Z","shell.execute_reply":"2023-11-16T01:02:22.887390Z"},"trusted":true},"execution_count":74,"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-16T01:02:22.889404Z","iopub.execute_input":"2023-11-16T01:02:22.889733Z","iopub.status.idle":"2023-11-16T01:02:22.965500Z","shell.execute_reply.started":"2023-11-16T01:02:22.889707Z","shell.execute_reply":"2023-11-16T01:02:22.964501Z"},"trusted":true},"execution_count":75,"outputs":[{"name":"stdout","text":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PREDICTIONS\n","output_type":"stream"},{"execution_count":75,"output_type":"execute_result","data":{"text/plain":"[]"},"metadata":{}}]},{"cell_type":"code","source":"len(test)","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:22.966690Z","iopub.execute_input":"2023-11-16T01:02:22.966963Z","iopub.status.idle":"2023-11-16T01:02:22.973697Z","shell.execute_reply.started":"2023-11-16T01:02:22.966937Z","shell.execute_reply":"2023-11-16T01:02:22.972704Z"},"trusted":true},"execution_count":76,"outputs":[{"execution_count":76,"output_type":"execute_result","data":{"text/plain":"50"},"metadata":{}}]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Accuracy Analysis","metadata":{}},{"cell_type":"markdown","source":"### On 50-Epoch Trained Model","metadata":{}},{"cell_type":"code","source":"url = 'https://drive.google.com/u/0/uc?id=1JAmcd2v0JcZStgs69VytgqwGJMlhNeaT&export=download'\noutput = 'check.zip'\ngdown.download(url, output, quiet=False)\ngdown.extractall('check.zip', 'models')","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:22.974883Z","iopub.execute_input":"2023-11-16T01:02:22.975204Z","iopub.status.idle":"2023-11-16T01:02:30.165129Z","shell.execute_reply.started":"2023-11-16T01:02:22.975168Z","shell.execute_reply":"2023-11-16T01:02:30.164142Z"},"trusted":true},"execution_count":77,"outputs":[{"name":"stderr","text":"Downloading...\nFrom (uriginal): https://drive.google.com/u/0/uc?id=1JAmcd2v0JcZStgs69VytgqwGJMlhNeaT&export=download\nFrom (redirected): https://drive.google.com/uc?id=1JAmcd2v0JcZStgs69VytgqwGJMlhNeaT&export=download&confirm=t&uuid=7723e342-c7d6-49f5-a2ce-8865a8d420ca\nTo: /kaggle/working/check.zip\n100%|██████████| 95.3M/95.3M [00:02<00:00, 32.4MB/s]\n","output_type":"stream"},{"execution_count":77,"output_type":"execute_result","data":{"text/plain":"['models/models/checkpoint',\n 'models/models/checkpoint.index',\n 'models/models/checkpoint.data-00000-of-00001']"},"metadata":{}}]},{"cell_type":"code","source":"model.load_weights('./models/models/checkpoint')","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:30.166689Z","iopub.execute_input":"2023-11-16T01:02:30.167125Z","iopub.status.idle":"2023-11-16T01:02:30.379332Z","shell.execute_reply.started":"2023-11-16T01:02:30.167075Z","shell.execute_reply":"2023-11-16T01:02:30.378388Z"},"trusted":true},"execution_count":78,"outputs":[{"execution_count":78,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"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)","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:30.380814Z","iopub.execute_input":"2023-11-16T01:02:30.381503Z","iopub.status.idle":"2023-11-16T01:02:30.407552Z","shell.execute_reply.started":"2023-11-16T01:02:30.381465Z","shell.execute_reply":"2023-11-16T01:02:30.406681Z"},"trusted":true},"execution_count":79,"outputs":[]},{"cell_type":"code","source":"test_data = data.as_numpy_iterator()","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:30.408666Z","iopub.execute_input":"2023-11-16T01:02:30.409011Z","iopub.status.idle":"2023-11-16T01:02:30.426119Z","shell.execute_reply.started":"2023-11-16T01:02:30.408978Z","shell.execute_reply":"2023-11-16T01:02:30.425257Z"},"trusted":true},"execution_count":80,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def levenshtein_distance(str1, str2):\n len_str1 = len(str1) + 1\n len_str2 = len(str2) + 1\n\n # Initialize a matrix to store edit distances\n matrix = [[0] * len_str2 for _ in range(len_str1)]\n\n # Initialize the first row and column of the matrix\n for i in range(len_str1):\n matrix[i][0] = i\n for j in range(len_str2):\n matrix[0][j] = j\n\n # Fill in the matrix using dynamic programming\n for i in range(1, len_str1):\n for j in range(1, len_str2):\n cost = 0 if str1[i - 1] == str2[j - 1] else 1\n matrix[i][j] = min(\n matrix[i - 1][j] + 1, # Deletion\n matrix[i][j - 1] + 1, # Insertion\n matrix[i - 1][j - 1] + cost # Substitution\n )\n\n return matrix[len_str1 - 1][len_str2 - 1]\n\ndef calculate_word_error_rate(reference, hypothesis):\n reference_words = reference.split()\n hypothesis_words = hypothesis.split()\n\n # Calculate Levenshtein distance between reference and hypothesis words\n distance = levenshtein_distance(reference_words, hypothesis_words)\n\n # Calculate Word Error Rate\n wer = distance / len(reference_words)\n return wer\n\ndef calculate_sentence_error_rate(reference, hypothesis):\n # Calculate Levenshtein distance between reference and hypothesis sentences\n distance = levenshtein_distance(reference, hypothesis)\n\n # Calculate Sentence Error Rate\n ser = distance / len(reference)\n return ser","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:30.427259Z","iopub.execute_input":"2023-11-16T01:02:30.427568Z","iopub.status.idle":"2023-11-16T01:02:30.437569Z","shell.execute_reply.started":"2023-11-16T01:02:30.427541Z","shell.execute_reply":"2023-11-16T01:02:30.436456Z"},"trusted":true},"execution_count":81,"outputs":[]},{"cell_type":"code","source":"word_error_rates_for_model1=[]\nsentence_error_rates_for_model1=[]","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:30.449087Z","iopub.execute_input":"2023-11-16T01:02:30.449401Z","iopub.status.idle":"2023-11-16T01:02:30.453964Z","shell.execute_reply.started":"2023-11-16T01:02:30.449374Z","shell.execute_reply":"2023-11-16T01:02:30.452913Z"},"trusted":true},"execution_count":82,"outputs":[]},{"cell_type":"code","source":"for i in range (500):\n try:\n sample = test_data.next()\n\n # print(i,val[0][0][0][0][0])\n og = [tf.strings.reduce_join([num_to_char(word) for word in sentence]) for sentence in sample[1]]\n # og = tf.strings.reduce_join([num_to_char(word) for word in sample[1][0]])\n\n yhat = model.predict(sample[0])\n # print(tf.strings.reduce_join([num_to_char(x) for x in tf.argmax(yhat[0],axis=1)]))\n # print(tf.strings.reduce_join([num_to_char(tf.argmax(x)) for x in yhat[0]]))\n decoded = tf.keras.backend.ctc_decode(yhat, input_length=[75,75], greedy=True)[0][0].numpy()\n predicted = [tf.strings.reduce_join([num_to_char(word) for word in sentence]) for sentence in decoded]\n\n\n reference_string = str(og[1])[11:-25]\n hypothesis_string = str(predicted[1])[11:-25]\n\n wer = calculate_word_error_rate(reference_string, hypothesis_string)\n ser = calculate_sentence_error_rate(reference_string, hypothesis_string)\n\n word_error_rates_for_model1.append(wer)\n sentence_error_rates_for_model1.append(ser)\n\n if i<10: # print results for first 10 sentences\n\n print(og[1])\n print(\"Real Sentence\",str(og[1])[11:-25])\n\n print(predicted[1])\n print(\"Sentence Predicted\",str(predicted[1])[11:-25])\n\n print(f\"Word Error Rate: {wer * 100:.2f}%\")\n print(f\"Sentence Error Rate: {ser * 100:.2f}%\")\n\n print()\n except:\n pass\n ","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:02:30.455065Z","iopub.execute_input":"2023-11-16T01:02:30.455389Z","iopub.status.idle":"2023-11-16T01:08:45.275142Z","shell.execute_reply.started":"2023-11-16T01:02:30.455363Z","shell.execute_reply":"2023-11-16T01:08:45.274331Z"},"trusted":true},"execution_count":83,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 0s 119ms/step\ntf.Tensor(b'set green at i nine again', shape=(), dtype=string)\nReal Sentence 'set green at i nine again'\ntf.Tensor(b'set green at nine again', shape=(), dtype=string)\nSentence Predicted 'set green at nine again'\nWord Error Rate: 16.67%\nSentence Error Rate: 7.41%\n\n1/1 [==============================] - 0s 118ms/step\ntf.Tensor(b'set blue with h seven soon', shape=(), dtype=string)\nReal Sentence 'set blue with h seven soon'\ntf.Tensor(b'set blue with seven soon', shape=(), dtype=string)\nSentence Predicted 'set blue with seven soon'\nWord Error Rate: 16.67%\nSentence Error Rate: 7.14%\n\n1/1 [==============================] - 0s 116ms/step\ntf.Tensor(b'place sp blue at i six please', shape=(), dtype=string)\nReal Sentence 'place sp blue at i six please'\ntf.Tensor(b'place blue at six please', shape=(), dtype=string)\nSentence Predicted 'place blue at six please'\nWord Error Rate: 28.57%\nSentence Error Rate: 16.13%\n\n1/1 [==============================] - 0s 117ms/step\ntf.Tensor(b'place blue with j four please', shape=(), dtype=string)\nReal Sentence 'place blue with j four please'\ntf.Tensor(b'place blue with four please', shape=(), dtype=string)\nSentence Predicted 'place blue with four please'\nWord Error Rate: 16.67%\nSentence Error Rate: 6.45%\n\n1/1 [==============================] - 0s 117ms/step\ntf.Tensor(b'lay red with r nine soon', shape=(), dtype=string)\nReal Sentence 'lay red with r nine soon'\ntf.Tensor(b'lay red with nine sooon', shape=(), dtype=string)\nSentence Predicted 'lay red with nine sooon'\nWord Error Rate: 33.33%\nSentence Error Rate: 11.54%\n\n1/1 [==============================] - 0s 133ms/step\ntf.Tensor(b'lay red sp with l five soon', shape=(), dtype=string)\nReal Sentence 'lay red sp with l five soon'\ntf.Tensor(b'lay red with five soon', shape=(), dtype=string)\nSentence Predicted 'lay red with five soon'\nWord Error Rate: 28.57%\nSentence Error Rate: 17.24%\n\n1/1 [==============================] - 0s 119ms/step\ntf.Tensor(b'place white at j seven soon', shape=(), dtype=string)\nReal Sentence 'place white at j seven soon'\ntf.Tensor(b'place white at seven soon', shape=(), dtype=string)\nSentence Predicted 'place white at seven soon'\nWord Error Rate: 16.67%\nSentence Error Rate: 6.90%\n\n1/1 [==============================] - 0s 127ms/step\ntf.Tensor(b'set blue at h one again', shape=(), dtype=string)\nReal Sentence 'set blue at h one again'\ntf.Tensor(b'set blue at h one again', shape=(), dtype=string)\nSentence Predicted 'set blue at h one again'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 121ms/step\ntf.Tensor(b'place green with r five soon', shape=(), dtype=string)\nReal Sentence 'place green with r five soon'\ntf.Tensor(b'place green with five soon', shape=(), dtype=string)\nSentence Predicted 'place green with five soon'\nWord Error Rate: 16.67%\nSentence Error Rate: 6.67%\n\n1/1 [==============================] - 0s 120ms/step\ntf.Tensor(b'lay blue by q eight now', shape=(), dtype=string)\nReal Sentence 'lay blue by q eight now'\ntf.Tensor(b'lay blue by eight now', shape=(), dtype=string)\nSentence Predicted 'lay blue by eight now'\nWord Error Rate: 16.67%\nSentence Error Rate: 8.00%\n\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 130ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 129ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 128ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7e69500610c0] ac-tex damaged at 22 17\n[mpeg1video @ 0x7e69500610c0] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 132ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 128ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 129ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 131ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 127ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n","output_type":"stream"}]},{"cell_type":"code","source":"mean_wer=sum(word_error_rates_for_model1)/len(word_error_rates_for_model1)\nmean_ser=sum(sentence_error_rates_for_model1)/len(sentence_error_rates_for_model1)\n\nprint(\"For Model 1\")\nprint(f\"Mean Word Error Rate: {mean_wer * 100:.2f}%\")\nprint(f\"Mean Sentence Error Rate: {mean_ser * 100:.2f}%\")","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:17:31.428170Z","iopub.execute_input":"2023-11-16T01:17:31.428961Z","iopub.status.idle":"2023-11-16T01:17:31.434840Z","shell.execute_reply.started":"2023-11-16T01:17:31.428928Z","shell.execute_reply":"2023-11-16T01:17:31.433817Z"},"trusted":true},"execution_count":97,"outputs":[{"name":"stdout","text":"For Model 1\nMean Word Error Rate: 14.40%\nMean Sentence Error Rate: 6.06%\n","output_type":"stream"}]},{"cell_type":"code","source":"# print(\"Max For Model 1\")\n# print(f\"Mean Word Error Rate: {max(word_error_rates_for_model1) * 100:.2f}%\")\n# print(f\"Mean Sentence Error Rate: {max(sentence_error_rates_for_model1) * 100:.2f}%\")","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:20:38.432927Z","iopub.execute_input":"2023-11-16T01:20:38.433324Z","iopub.status.idle":"2023-11-16T01:20:38.437901Z","shell.execute_reply.started":"2023-11-16T01:20:38.433293Z","shell.execute_reply":"2023-11-16T01:20:38.436807Z"},"trusted":true},"execution_count":100,"outputs":[]},{"cell_type":"code","source":"len(word_error_rates_for_model1)","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:08:45.284741Z","iopub.execute_input":"2023-11-16T01:08:45.285427Z","iopub.status.idle":"2023-11-16T01:08:45.293842Z","shell.execute_reply.started":"2023-11-16T01:08:45.285382Z","shell.execute_reply":"2023-11-16T01:08:45.292912Z"},"trusted":true},"execution_count":85,"outputs":[{"execution_count":85,"output_type":"execute_result","data":{"text/plain":"498"},"metadata":{}}]},{"cell_type":"markdown","source":"### On 96-Epoch trained model","metadata":{}},{"cell_type":"code","source":"url = 'https://drive.google.com/uc?id=1vWscXs4Vt0a_1IH1-ct2TCgXAZT-N3_Y'\noutput = 'checkpoints.zip'\ngdown.download(url, output, quiet=False)\ngdown.extractall('checkpoints.zip', 'models')","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:08:45.294932Z","iopub.execute_input":"2023-11-16T01:08:45.295406Z","iopub.status.idle":"2023-11-16T01:08:51.651582Z","shell.execute_reply.started":"2023-11-16T01:08:45.295373Z","shell.execute_reply":"2023-11-16T01:08:51.650623Z"},"trusted":true},"execution_count":86,"outputs":[{"name":"stderr","text":"Downloading...\nFrom (uriginal): https://drive.google.com/uc?id=1vWscXs4Vt0a_1IH1-ct2TCgXAZT-N3_Y\nFrom (redirected): https://drive.google.com/uc?id=1vWscXs4Vt0a_1IH1-ct2TCgXAZT-N3_Y&confirm=t&uuid=20684f54-1d09-4fa2-bb80-33ebd517253d\nTo: /kaggle/working/checkpoints.zip\n100%|██████████| 94.5M/94.5M [00:02<00:00, 31.9MB/s]\n","output_type":"stream"},{"execution_count":86,"output_type":"execute_result","data":{"text/plain":"['models/checkpoint.index',\n 'models/__MACOSX/._checkpoint.index',\n 'models/checkpoint.data-00000-of-00001',\n 'models/__MACOSX/._checkpoint.data-00000-of-00001',\n 'models/checkpoint',\n 'models/__MACOSX/._checkpoint']"},"metadata":{}}]},{"cell_type":"code","source":"model.load_weights('./models/checkpoint')","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:08:51.652610Z","iopub.execute_input":"2023-11-16T01:08:51.652862Z","iopub.status.idle":"2023-11-16T01:08:51.817726Z","shell.execute_reply.started":"2023-11-16T01:08:51.652839Z","shell.execute_reply":"2023-11-16T01:08:51.816736Z"},"trusted":true},"execution_count":87,"outputs":[{"execution_count":87,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"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)","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:08:51.818827Z","iopub.execute_input":"2023-11-16T01:08:51.819081Z","iopub.status.idle":"2023-11-16T01:08:51.842835Z","shell.execute_reply.started":"2023-11-16T01:08:51.819058Z","shell.execute_reply":"2023-11-16T01:08:51.842147Z"},"trusted":true},"execution_count":88,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_data = data.as_numpy_iterator()","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:08:51.843776Z","iopub.execute_input":"2023-11-16T01:08:51.844038Z","iopub.status.idle":"2023-11-16T01:08:51.858546Z","shell.execute_reply.started":"2023-11-16T01:08:51.844014Z","shell.execute_reply":"2023-11-16T01:08:51.857684Z"},"trusted":true},"execution_count":89,"outputs":[]},{"cell_type":"code","source":"word_error_rates_for_model2=[]\nsentence_error_rates_for_model2=[]","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:08:51.859786Z","iopub.execute_input":"2023-11-16T01:08:51.860386Z","iopub.status.idle":"2023-11-16T01:08:51.864329Z","shell.execute_reply.started":"2023-11-16T01:08:51.860353Z","shell.execute_reply":"2023-11-16T01:08:51.863477Z"},"trusted":true},"execution_count":90,"outputs":[]},{"cell_type":"code","source":"","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:16:37.292489Z","iopub.execute_input":"2023-11-16T01:16:37.293245Z","iopub.status.idle":"2023-11-16T01:16:37.299621Z","shell.execute_reply.started":"2023-11-16T01:16:37.293213Z","shell.execute_reply":"2023-11-16T01:16:37.298444Z"},"trusted":true},"execution_count":95,"outputs":[{"execution_count":95,"output_type":"execute_result","data":{"text/plain":"0.34615384615384615"},"metadata":{}}]},{"cell_type":"code","source":"for i in range (500):\n sample = test_data.next()\n \n# print(i,val[0][0][0][0][0])\n og = [tf.strings.reduce_join([num_to_char(word) for word in sentence]) for sentence in sample[1]]\n# og = tf.strings.reduce_join([num_to_char(word) for word in sample[1][0]])\n\n yhat = model.predict(sample[0])\n# print(tf.strings.reduce_join([num_to_char(x) for x in tf.argmax(yhat[0],axis=1)]))\n# print(tf.strings.reduce_join([num_to_char(tf.argmax(x)) for x in yhat[0]]))\n decoded = tf.keras.backend.ctc_decode(yhat, input_length=[75,75], greedy=True)[0][0].numpy()\n predicted = [tf.strings.reduce_join([num_to_char(word) for word in sentence]) for sentence in decoded]\n\n \n reference_string = str(og[1])[11:-25]\n hypothesis_string = str(predicted[1])[11:-25]\n\n wer = calculate_word_error_rate(reference_string, hypothesis_string)\n ser = calculate_sentence_error_rate(reference_string, hypothesis_string)\n \n word_error_rates_for_model2.append(wer)\n sentence_error_rates_for_model2.append(ser)\n \n if i<10: # print results for first 10 sentences\n \n print(og[1])\n print(\"Real Sentence\",str(og[1])[11:-25])\n\n print(predicted[1])\n print(\"Sentence Predicted\",str(predicted[1])[11:-25])\n\n print(f\"Word Error Rate: {wer * 100:.2f}%\")\n print(f\"Sentence Error Rate: {ser * 100:.2f}%\")\n\n print()\n ","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:08:51.865516Z","iopub.execute_input":"2023-11-16T01:08:51.865774Z","iopub.status.idle":"2023-11-16T01:15:11.159198Z","shell.execute_reply.started":"2023-11-16T01:08:51.865750Z","shell.execute_reply":"2023-11-16T01:15:11.158384Z"},"trusted":true},"execution_count":91,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 0s 124ms/step\ntf.Tensor(b'bin red at m five again', shape=(), dtype=string)\nReal Sentence 'bin red at m five again'\ntf.Tensor(b'bin red at m five again', shape=(), dtype=string)\nSentence Predicted 'bin red at m five again'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 117ms/step\ntf.Tensor(b'place red with d six please', shape=(), dtype=string)\nReal Sentence 'place red with d six please'\ntf.Tensor(b'place red with d six please', shape=(), dtype=string)\nSentence Predicted 'place red with d six please'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 115ms/step\ntf.Tensor(b'place white by q seven again', shape=(), dtype=string)\nReal Sentence 'place white by q seven again'\ntf.Tensor(b'place white by q seven again', shape=(), dtype=string)\nSentence Predicted 'place white by q seven again'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 123ms/step\ntf.Tensor(b'bin red at f nine soon', shape=(), dtype=string)\nReal Sentence 'bin red at f nine soon'\ntf.Tensor(b'bin red at f nine soon', shape=(), dtype=string)\nSentence Predicted 'bin red at f nine soon'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 116ms/step\ntf.Tensor(b'place green with e seven soon', shape=(), dtype=string)\nReal Sentence 'place green with e seven soon'\ntf.Tensor(b'place green with seven soon', shape=(), dtype=string)\nSentence Predicted 'place green with seven soon'\nWord Error Rate: 16.67%\nSentence Error Rate: 6.45%\n\n1/1 [==============================] - 0s 115ms/step\ntf.Tensor(b'lay red at y four now', shape=(), dtype=string)\nReal Sentence 'lay red at y four now'\ntf.Tensor(b'lay red at y four now', shape=(), dtype=string)\nSentence Predicted 'lay red at y four now'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 114ms/step\ntf.Tensor(b'place blue with p six now', shape=(), dtype=string)\nReal Sentence 'place blue with p six now'\ntf.Tensor(b'place blue with p six now', shape=(), dtype=string)\nSentence Predicted 'place blue with p six now'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 118ms/step\ntf.Tensor(b'place white at x five soon', shape=(), dtype=string)\nReal Sentence 'place white at x five soon'\ntf.Tensor(b'place white at x five soon', shape=(), dtype=string)\nSentence Predicted 'place white at x five soon'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 116ms/step\ntf.Tensor(b'set green by j one soon', shape=(), dtype=string)\nReal Sentence 'set green by j one soon'\ntf.Tensor(b'set green by j one soon', shape=(), dtype=string)\nSentence Predicted 'set green by j one soon'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 115ms/step\ntf.Tensor(b'place white by k two please', shape=(), dtype=string)\nReal Sentence 'place white by k two please'\ntf.Tensor(b'place white by k two please', shape=(), dtype=string)\nSentence Predicted 'place white by k two please'\nWord Error Rate: 0.00%\nSentence Error Rate: 0.00%\n\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 127ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 130ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 127ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 128ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 128ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 127ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 127ms/step\n1/1 [==============================] - 0s 130ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 127ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 128ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 129ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 127ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n","output_type":"stream"},{"name":"stderr","text":"[mpeg1video @ 0x7e6b340c4600] ac-tex damaged at 22 17\n[mpeg1video @ 0x7e6b340c4600] Warning MVs not available\n","output_type":"stream"},{"name":"stdout","text":"1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 113ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 114ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 124ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 134ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 118ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 119ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 121ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 126ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 127ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 120ms/step\n1/1 [==============================] - 0s 130ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 125ms/step\n1/1 [==============================] - 0s 115ms/step\n1/1 [==============================] - 0s 123ms/step\n1/1 [==============================] - 0s 122ms/step\n1/1 [==============================] - 0s 116ms/step\n1/1 [==============================] - 0s 117ms/step\n1/1 [==============================] - 0s 113ms/step\n","output_type":"stream"}]},{"cell_type":"code","source":"len(word_error_rates_for_model2)","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:21:08.161014Z","iopub.execute_input":"2023-11-16T01:21:08.161746Z","iopub.status.idle":"2023-11-16T01:21:08.167589Z","shell.execute_reply.started":"2023-11-16T01:21:08.161713Z","shell.execute_reply":"2023-11-16T01:21:08.166625Z"},"trusted":true},"execution_count":102,"outputs":[{"execution_count":102,"output_type":"execute_result","data":{"text/plain":"500"},"metadata":{}}]},{"cell_type":"code","source":"mean_wer=sum(word_error_rates_for_model2)/len(word_error_rates_for_model2)\nmean_ser=sum(sentence_error_rates_for_model2)/len(sentence_error_rates_for_model2)\n\nprint(\"For Model 2\")\nprint(f\"Mean Word Error Rate: {mean_wer * 100:.8f}%\")\nprint(f\"Mean Sentence Error Rate: {mean_ser * 100:.8f}%\")","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:17:06.298549Z","iopub.execute_input":"2023-11-16T01:17:06.299406Z","iopub.status.idle":"2023-11-16T01:17:06.305063Z","shell.execute_reply.started":"2023-11-16T01:17:06.299374Z","shell.execute_reply":"2023-11-16T01:17:06.304136Z"},"trusted":true},"execution_count":96,"outputs":[{"name":"stdout","text":"For Model 2\nMean Word Error Rate: 1.76666667%\nMean Sentence Error Rate: 0.67408067%\n","output_type":"stream"}]},{"cell_type":"code","source":"# print(\"Max For Model 2\")\n# print(f\"Mean Word Error Rate: {max(word_error_rates_for_model2) * 100:.8f}%\")\n# print(f\"Mean Sentence Error Rate: {max(sentence_error_rates_for_model2) * 100:.8f}%\")","metadata":{"execution":{"iopub.status.busy":"2023-11-16T01:20:49.458710Z","iopub.execute_input":"2023-11-16T01:20:49.459506Z","iopub.status.idle":"2023-11-16T01:20:49.463873Z","shell.execute_reply.started":"2023-11-16T01:20:49.459473Z","shell.execute_reply":"2023-11-16T01:20:49.462695Z"},"trusted":true},"execution_count":101,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]} \ No newline at end of file