From 325da2c611884da33645e687d95bced962bfefaa Mon Sep 17 00:00:00 2001 From: Naren Dasan Date: Mon, 12 Sep 2022 18:00:59 -0700 Subject: [PATCH] docs: Adding v1.2.0 and v1.1.1 docs Signed-off-by: Naren Dasan Signed-off-by: Naren Dasan --- docs/v1.1.1/.nojekyll | 0 .../v1.1.1/_cpp_api/class_view_hierarchy.html | 610 + .../classtorch__tensorrt_1_1DataType.html | 1337 ++ ...rch__tensorrt_1_1Device_1_1DeviceType.html | 1132 ++ .../classtorch__tensorrt_1_1TensorFormat.html | 1288 ++ ...ensorrt_1_1ptq_1_1Int8CacheCalibrator.html | 1092 ++ ...ch__tensorrt_1_1ptq_1_1Int8Calibrator.html | 1153 ++ ...8h_1a18d295a837ac71add5578860b55e5502.html | 604 + ...8h_1a282fd3c0b1c3a215148ae372070e1268.html | 595 + ...8h_1a31398a6d4d27e28817afb0f0139e909e.html | 595 + ...8h_1a35703561b26b1a9d2738ad7d58b27827.html | 595 + ...8h_1abd1465eb38256d3f22cc1426b23d516b.html | 595 + ...8h_1abe87b341f562fd1cf40b7672e4d759da.html | 604 + ...8h_1ad19939408f7be171a74a89928b36eb59.html | 595 + ...8h_1adad592a7b1b7eed529cdf6acd584c883.html | 595 + docs/v1.1.1/_cpp_api/dir_cpp.html | 554 + docs/v1.1.1/_cpp_api/dir_cpp_include.html | 569 + .../dir_cpp_include_torch_tensorrt.html | 596 + ...8h_1a130f65408ad8cbaee060f05e8db69558.html | 738 + ...8h_1a3fbe5d72e4fc624dbd038853079620eb.html | 666 + ..._cpp_include_torch_tensorrt_logging.h.html | 813 + ...e_cpp_include_torch_tensorrt_macros.h.html | 757 + ...file_cpp_include_torch_tensorrt_ptq.h.html | 820 + ...clude_torch_tensorrt_torch_tensorrt.h.html | 903 ++ docs/v1.1.1/_cpp_api/file_view_hierarchy.html | 564 + ...8h_1a0593f776f469c20469e2f729fc7861a3.html | 608 + ...8h_1a0c012cb374addd90eb1f42eaec570650.html | 628 + ...8h_1a56e110feaaba2c3fd44bd201fd21a76a.html | 625 + ...8h_1a7cb50492421ea9de4e3db895819df6f2.html | 640 + ...8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html | 654 + ...8h_1ad2efd47b6c3689e58ccc595680579ae5.html | 638 + ...8h_1af8f3443813315af7901903d25dd495cc.html | 612 + ...8h_1a226e3c83379d1012cde8578c1c86b16c.html | 656 + ...8h_1a6186e305f47c1d94b6130ef6c7f7e178.html | 713 + ...8h_1a83ff2be7e0b80bc7434de415861dc039.html | 745 + ...8h_1a9835f6e605dce1abf442a55b64d6dffa.html | 688 + ...8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html | 675 + ...8h_1a6e19490a08fb1553c9dd347a5ae79db9.html | 678 + ...8h_1a710df824a7718b440e4bc17bf9693cef.html | 696 + ...8h_1ac4ab8313ae72c2c899ea31548b528528.html | 625 + ...8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html | 641 + ...8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html | 611 + ...8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html | 689 + .../_cpp_api/namespace_torch_tensorrt.html | 797 + .../namespace_torch_tensorrt__logging.html | 711 + .../namespace_torch_tensorrt__ptq.html | 675 + ...namespace_torch_tensorrt__torchscript.html | 684 + ..._cpp_include_torch_tensorrt_logging.h.html | 569 + ...e_cpp_include_torch_tensorrt_macros.h.html | 564 + ...file_cpp_include_torch_tensorrt_ptq.h.html | 707 + ...clude_torch_tensorrt_torch_tensorrt.h.html | 799 + .../structtorch__tensorrt_1_1Device.html | 1246 ++ .../structtorch__tensorrt_1_1GraphInputs.html | 553 + .../structtorch__tensorrt_1_1Input.html | 1663 +++ ...ensorrt_1_1torchscript_1_1CompileSpec.html | 1169 ++ docs/v1.1.1/_cpp_api/torch_tensort_cpp.html | 1548 ++ docs/v1.1.1/_cpp_api/unabridged_api.html | 1254 ++ docs/v1.1.1/_cpp_api/unabridged_orphan.html | 791 + .../yi_jing_01_chien.jpg | Bin 0 -> 6614 bytes .../_notebooks_EfficientNet-example_12_0.png | Bin 0 -> 96385 bytes .../_notebooks_EfficientNet-example_16_2.png | Bin 0 -> 99830 bytes .../_notebooks_Resnet50-example_12_0.png | Bin 0 -> 96469 bytes .../_notebooks_Resnet50-example_16_1.png | Bin 0 -> 99900 bytes .../_notebooks_dynamic-shapes_14_1.png | Bin 0 -> 99817 bytes .../_images/_notebooks_dynamic-shapes_8_0.png | Bin 0 -> 96385 bytes ...tebooks_ssd-object-detection-demo_18_0.png | Bin 0 -> 102606 bytes ...tebooks_ssd-object-detection-demo_18_1.png | Bin 0 -> 72163 bytes ...tebooks_ssd-object-detection-demo_18_2.png | Bin 0 -> 95321 bytes ...tebooks_ssd-object-detection-demo_35_0.png | Bin 0 -> 102606 bytes ...tebooks_ssd-object-detection-demo_35_1.png | Bin 0 -> 72163 bytes ...tebooks_ssd-object-detection-demo_35_2.png | Bin 0 -> 95266 bytes docs/v1.1.1/_images/yi_jing_01_chien.jpg | Bin 0 -> 6614 bytes docs/v1.1.1/_modules/index.html | 635 + .../_modules/torch_tensorrt/_Device.html | 761 + .../_modules/torch_tensorrt/_Input.html | 905 ++ .../_modules/torch_tensorrt/_compile.html | 837 ++ .../v1.1.1/_modules/torch_tensorrt/_util.html | 656 + .../_modules/torch_tensorrt/fx/fx2trt.html | 999 ++ .../torch_tensorrt/fx/input_tensor_spec.html | 809 + .../_modules/torch_tensorrt/fx/lower.html | 871 ++ .../torch_tensorrt/fx/trt_module.html | 863 ++ .../_modules/torch_tensorrt/logging.html | 838 ++ docs/v1.1.1/_modules/torch_tensorrt/ptq.html | 820 + .../torch_tensorrt/ts/_compile_spec.html | 1112 ++ .../_modules/torch_tensorrt/ts/_compiler.html | 914 ++ docs/v1.1.1/_notebooks/CitriNet-example.html | 1988 +++ docs/v1.1.1/_notebooks/CitriNet-example.ipynb | 964 ++ .../_notebooks/EfficientNet-example.html | 1810 +++ .../_notebooks/EfficientNet-example.ipynb | 693 + docs/v1.1.1/_notebooks/Hugging-Face-BERT.html | 1746 +++ .../v1.1.1/_notebooks/Hugging-Face-BERT.ipynb | 714 + docs/v1.1.1/_notebooks/Resnet50-example.html | 2018 +++ docs/v1.1.1/_notebooks/Resnet50-example.ipynb | 925 ++ docs/v1.1.1/_notebooks/dynamic-shapes.html | 1962 +++ docs/v1.1.1/_notebooks/dynamic-shapes.ipynb | 1023 ++ .../_notebooks/lenet-getting-started.html | 1783 +++ .../_notebooks/lenet-getting-started.ipynb | 718 + .../_notebooks/ssd-object-detection-demo.html | 2080 +++ .../ssd-object-detection-demo.ipynb | 943 ++ docs/v1.1.1/_notebooks/vgg-qat.html | 2340 +++ docs/v1.1.1/_notebooks/vgg-qat.ipynb | 1200 ++ .../_cpp_api/class_view_hierarchy.rst.txt | 18 + .../classtorch__tensorrt_1_1DataType.rst.txt | 16 + ...__tensorrt_1_1Device_1_1DeviceType.rst.txt | 22 + ...asstorch__tensorrt_1_1TensorFormat.rst.txt | 16 + ...orrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt | 25 + ..._tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt | 25 + ...1a18d295a837ac71add5578860b55e5502.rst.txt | 13 + ...1a282fd3c0b1c3a215148ae372070e1268.rst.txt | 13 + ...1a31398a6d4d27e28817afb0f0139e909e.rst.txt | 13 + ...1a35703561b26b1a9d2738ad7d58b27827.rst.txt | 13 + ...1abd1465eb38256d3f22cc1426b23d516b.rst.txt | 13 + ...1abe87b341f562fd1cf40b7672e4d759da.rst.txt | 13 + ...1ad19939408f7be171a74a89928b36eb59.rst.txt | 13 + ...1adad592a7b1b7eed529cdf6acd584c883.rst.txt | 13 + docs/v1.1.1/_sources/_cpp_api/dir_cpp.rst.txt | 16 + .../_sources/_cpp_api/dir_cpp_include.rst.txt | 20 + .../dir_cpp_include_torch_tensorrt.rst.txt | 23 + ...1a130f65408ad8cbaee060f05e8db69558.rst.txt | 13 + ...1a3fbe5d72e4fc624dbd038853079620eb.rst.txt | 13 + ...p_include_torch_tensorrt_logging.h.rst.txt | 80 + ...pp_include_torch_tensorrt_macros.h.rst.txt | 69 + ...e_cpp_include_torch_tensorrt_ptq.h.rst.txt | 82 + ...de_torch_tensorrt_torch_tensorrt.h.rst.txt | 101 + .../_cpp_api/file_view_hierarchy.rst.txt | 18 + ...1a0593f776f469c20469e2f729fc7861a3.rst.txt | 13 + ...1a0c012cb374addd90eb1f42eaec570650.rst.txt | 13 + ...1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt | 13 + ...1a7cb50492421ea9de4e3db895819df6f2.rst.txt | 13 + ...1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt | 13 + ...1ad2efd47b6c3689e58ccc595680579ae5.rst.txt | 13 + ...1af8f3443813315af7901903d25dd495cc.rst.txt | 13 + ...1a226e3c83379d1012cde8578c1c86b16c.rst.txt | 14 + ...1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt | 14 + ...1a83ff2be7e0b80bc7434de415861dc039.rst.txt | 13 + ...1a9835f6e605dce1abf442a55b64d6dffa.rst.txt | 13 + ...1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt | 13 + ...1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt | 13 + ...1a710df824a7718b440e4bc17bf9693cef.rst.txt | 13 + ...1ac4ab8313ae72c2c899ea31548b528528.rst.txt | 13 + ...1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt | 13 + ...1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt | 13 + ...1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt | 13 + .../_cpp_api/namespace_torch_tensorrt.rst.txt | 57 + .../namespace_torch_tensorrt__logging.rst.txt | 39 + .../namespace_torch_tensorrt__ptq.rst.txt | 31 + ...espace_torch_tensorrt__torchscript.rst.txt | 33 + ...p_include_torch_tensorrt_logging.h.rst.txt | 51 + ...pp_include_torch_tensorrt_macros.h.rst.txt | 46 + ...e_cpp_include_torch_tensorrt_ptq.h.rst.txt | 189 + ...de_torch_tensorrt_torch_tensorrt.h.rst.txt | 281 + .../structtorch__tensorrt_1_1Device.rst.txt | 26 + ...ructtorch__tensorrt_1_1GraphInputs.rst.txt | 17 + .../structtorch__tensorrt_1_1Input.rst.txt | 16 + ...orrt_1_1torchscript_1_1CompileSpec.rst.txt | 16 + .../_cpp_api/torch_tensort_cpp.rst.txt | 10 + .../_sources/_cpp_api/unabridged_api.rst.txt | 213 + .../_cpp_api/unabridged_orphan.rst.txt | 48 + .../_notebooks/CitriNet-example.ipynb.txt | 964 ++ .../_notebooks/EfficientNet-example.ipynb.txt | 693 + .../_notebooks/Hugging-Face-BERT.ipynb.txt | 714 + .../_notebooks/Resnet50-example.ipynb.txt | 925 ++ .../_notebooks/dynamic-shapes.ipynb.txt | 1023 ++ .../lenet-getting-started.ipynb.txt | 718 + .../ssd-object-detection-demo.ipynb.txt | 943 ++ .../_sources/_notebooks/vgg-qat.ipynb.txt | 1200 ++ docs/v1.1.1/_sources/cli/torchtrtc.rst.txt | 146 + .../_sources/contributors/conversion.rst.txt | 53 + .../_sources/contributors/lowering.rst.txt | 207 + .../contributors/partitioning.rst.txt | 8 + .../_sources/contributors/phases.rst.txt | 46 + .../_sources/contributors/runtime.rst.txt | 85 + .../contributors/system_overview.rst.txt | 29 + .../contributors/useful_links.rst.txt | 34 + .../contributors/writing_converters.rst.txt | 129 + .../getting_started_with_cpp_api.rst.txt | 338 + .../getting_started_with_python_api.rst.txt | 58 + .../getting_started/installation.rst.txt | 362 + docs/v1.1.1/_sources/index.rst.txt | 124 + .../_sources/indices/supported_ops.rst.txt | 274 + docs/v1.1.1/_sources/py_api/fx.rst.txt | 31 + docs/v1.1.1/_sources/py_api/logging.rst.txt | 13 + docs/v1.1.1/_sources/py_api/ptq.rst.txt | 27 + .../_sources/py_api/torch_tensorrt.rst.txt | 60 + docs/v1.1.1/_sources/py_api/ts.rst.txt | 27 + .../docs/changelog.rst.txt | 6 + .../docs/configuring.rst.txt | 108 + .../docs/demo/api.rst.txt | 53 + .../docs/demo/demo.rst.txt | 475 + .../docs/demo/lists_tables.rst.txt | 302 + .../docs/demo/long.rst.txt | 214 + .../docs/demo/structure.rst.txt | 101 + .../pytorch-sphinx-theme/docs/index.rst.txt | 27 + .../docs/installing.rst.txt | 17 + ...ating_torchscript_module_in_python.rst.txt | 137 + .../getting_started_with_cpp_api.rst.txt | 338 + .../getting_started_with_fx_path.rst.txt | 297 + .../getting_started_with_python_api.rst.txt | 47 + .../_sources/tutorials/installation.rst.txt | 387 + .../_sources/tutorials/notebooks.rst.txt | 154 + docs/v1.1.1/_sources/tutorials/ptq.rst.txt | 210 + .../v1.1.1/_sources/tutorials/runtime.rst.txt | 36 + ...serving_torch_tensorrt_with_triton.rst.txt | 216 + .../_sources/tutorials/torchtrtc.rst.txt | 128 + .../tutorials/use_from_pytorch.rst.txt | 64 + .../_sources/tutorials/using_dla.rst.txt | 50 + docs/v1.1.1/_static/basic.css | 1 + .../_static/collapsible-lists/LICENSE.md | 7 + .../collapsible-lists/css/button-closed.png | Bin 0 -> 256 bytes .../collapsible-lists/css/button-open.png | Bin 0 -> 240 bytes .../_static/collapsible-lists/css/button.png | Bin 0 -> 230 bytes .../css/list-item-contents.png | Bin 0 -> 147 bytes .../css/list-item-last-open.png | Bin 0 -> 161 bytes .../collapsible-lists/css/list-item-last.png | Bin 0 -> 160 bytes .../collapsible-lists/css/list-item-open.png | Bin 0 -> 160 bytes .../collapsible-lists/css/list-item-root.png | Bin 0 -> 145 bytes .../collapsible-lists/css/list-item.png | Bin 0 -> 157 bytes .../collapsible-lists/css/tree_view.css | 1 + .../js/CollapsibleLists.compressed.js | 83 + .../js/apply-collapsible-lists.js | 3 + docs/v1.1.1/_static/css/theme.css | 1 + docs/v1.1.1/_static/doctools.js | 315 + docs/v1.1.1/_static/documentation_options.js | 12 + docs/v1.1.1/_static/file.png | Bin 0 -> 286 bytes .../FreightSans/freight-sans-bold-italic.woff | Bin 0 -> 39560 bytes .../freight-sans-bold-italic.woff2 | Bin 0 -> 31812 bytes .../fonts/FreightSans/freight-sans-bold.woff | Bin 0 -> 32396 bytes .../fonts/FreightSans/freight-sans-bold.woff2 | Bin 0 -> 25672 bytes .../FreightSans/freight-sans-book-italic.woff | Bin 0 -> 33944 bytes .../freight-sans-book-italic.woff2 | Bin 0 -> 26832 bytes .../fonts/FreightSans/freight-sans-book.woff | Bin 0 -> 31612 bytes .../fonts/FreightSans/freight-sans-book.woff2 | Bin 0 -> 25120 bytes .../freight-sans-light-italic.woff | Bin 0 -> 29304 bytes .../freight-sans-light-italic.woff2 | Bin 0 -> 22720 bytes .../fonts/FreightSans/freight-sans-light.woff | Bin 0 -> 26908 bytes .../FreightSans/freight-sans-light.woff2 | Bin 0 -> 21012 bytes .../freight-sans-medium-italic.woff | Bin 0 -> 19420 bytes .../freight-sans-medium-italic.woff2 | Bin 0 -> 16000 bytes .../FreightSans/freight-sans-medium.woff | Bin 0 -> 32072 bytes .../FreightSans/freight-sans-medium.woff2 | Bin 0 -> 25460 bytes .../fonts/IBMPlexMono/IBMPlexMono-Light.woff | Bin 0 -> 50680 bytes .../fonts/IBMPlexMono/IBMPlexMono-Light.woff2 | Bin 0 -> 35916 bytes .../fonts/IBMPlexMono/IBMPlexMono-Medium.woff | Bin 0 -> 51872 bytes .../IBMPlexMono/IBMPlexMono-Medium.woff2 | Bin 0 -> 36648 bytes .../IBMPlexMono/IBMPlexMono-Regular.woff | Bin 0 -> 50664 bytes .../IBMPlexMono/IBMPlexMono-Regular.woff2 | Bin 0 -> 35536 bytes .../IBMPlexMono/IBMPlexMono-SemiBold.woff | Bin 0 -> 52936 bytes .../IBMPlexMono/IBMPlexMono-SemiBold.woff2 | Bin 0 -> 37592 bytes docs/v1.1.1/_static/fonts/font-awesome.css | 1 + docs/v1.1.1/_static/fonts/material-icons.css | 1 + .../_static/fonts/specimen/FontAwesome.ttf | Bin 0 -> 165548 bytes .../_static/fonts/specimen/FontAwesome.woff | Bin 0 -> 98024 bytes .../_static/fonts/specimen/FontAwesome.woff2 | Bin 0 -> 77160 bytes .../fonts/specimen/MaterialIcons-Regular.ttf | Bin 0 -> 128180 bytes .../fonts/specimen/MaterialIcons-Regular.woff | Bin 0 -> 57620 bytes .../specimen/MaterialIcons-Regular.woff2 | Bin 0 -> 44300 bytes .../_static/images/arrow-down-orange.svg | 19 + .../_static/images/arrow-right-with-tail.svg | 19 + .../_static/images/chevron-down-black.svg | 16 + .../_static/images/chevron-down-grey.svg | 18 + .../_static/images/chevron-down-orange.svg | 16 + .../_static/images/chevron-down-white.svg | 16 + .../_static/images/chevron-right-orange.svg | 17 + .../_static/images/chevron-right-white.svg | 17 + docs/v1.1.1/_static/images/favicon.png | Bin 0 -> 521 bytes .../_static/images/home-footer-background.jpg | Bin 0 -> 38907 bytes docs/v1.1.1/_static/images/icon-close.svg | 21 + .../_static/images/icon-menu-dots-dark.svg | 42 + .../images/icons/bitbucket.1b09e088.svg | 1 + .../v1.1.1/_static/images/icons/bitbucket.svg | 1 + .../_static/images/icons/github.f0b8504a.svg | 1 + docs/v1.1.1/_static/images/icons/github.svg | 1 + .../_static/images/icons/gitlab.6dd19c00.svg | 1 + docs/v1.1.1/_static/images/icons/gitlab.svg | 1 + docs/v1.1.1/_static/images/logo-dark.svg | 30 + .../_static/images/logo-facebook-dark.svg | 8 + docs/v1.1.1/_static/images/logo-icon.svg | 12 + .../_static/images/logo-twitter-dark.svg | 16 + .../_static/images/logo-youtube-dark.svg | 21 + docs/v1.1.1/_static/images/logo.svg | 31 + docs/v1.1.1/_static/images/pytorch-colab.svg | 24 + .../_static/images/pytorch-download.svg | 10 + docs/v1.1.1/_static/images/pytorch-github.svg | 15 + docs/v1.1.1/_static/images/pytorch-x.svg | 10 + docs/v1.1.1/_static/images/search-icon.svg | 19 + .../_static/images/view-page-source-icon.svg | 13 + .../v1.1.1/_static/javascripts/application.js | 2540 ++++ .../_static/javascripts/lunr/lunr.da.js | 1 + .../_static/javascripts/lunr/lunr.de.js | 1 + .../_static/javascripts/lunr/lunr.du.js | 1 + .../_static/javascripts/lunr/lunr.es.js | 1 + .../_static/javascripts/lunr/lunr.fi.js | 1 + .../_static/javascripts/lunr/lunr.fr.js | 1 + .../_static/javascripts/lunr/lunr.hu.js | 1 + .../_static/javascripts/lunr/lunr.it.js | 1 + .../_static/javascripts/lunr/lunr.ja.js | 1 + .../_static/javascripts/lunr/lunr.jp.js | 1 + .../_static/javascripts/lunr/lunr.multi.js | 1 + .../_static/javascripts/lunr/lunr.nl.js | 1 + .../_static/javascripts/lunr/lunr.no.js | 1 + .../_static/javascripts/lunr/lunr.pt.js | 1 + .../_static/javascripts/lunr/lunr.ro.js | 1 + .../_static/javascripts/lunr/lunr.ru.js | 1 + .../javascripts/lunr/lunr.stemmer.support.js | 1 + .../_static/javascripts/lunr/lunr.sv.js | 1 + .../_static/javascripts/lunr/lunr.th.js | 1 + .../_static/javascripts/lunr/lunr.tr.js | 1 + .../_static/javascripts/lunr/tinyseg.js | 1 + .../_static/javascripts/lunr/wordcut.js | 1 + docs/v1.1.1/_static/javascripts/modernizr.js | 1 + .../_static/javascripts/version_dropdown.js | 29 + docs/v1.1.1/_static/jquery-3.5.1.js | 10872 ++++++++++++++ docs/v1.1.1/_static/jquery.js | 2 + docs/v1.1.1/_static/jquery.min.map | 1 + docs/v1.1.1/_static/js/modernizr.min.js | 4 + docs/v1.1.1/_static/js/theme.js | 1127 ++ docs/v1.1.1/_static/js/vendor/anchor.min.js | 9 + .../v1.1.1/_static/js/vendor/bootstrap.min.js | 7 + docs/v1.1.1/_static/js/vendor/popper.min.js | 5 + docs/v1.1.1/_static/language_data.js | 297 + docs/v1.1.1/_static/material.css | 1 + docs/v1.1.1/_static/minus.png | Bin 0 -> 90 bytes docs/v1.1.1/_static/plus.png | Bin 0 -> 90 bytes docs/v1.1.1/_static/pygments.css | 1 + docs/v1.1.1/_static/searchtools.js | 515 + .../_static/stylesheets/application-fixes.css | 1 + .../stylesheets/application-palette.css | 1 + .../_static/stylesheets/application.css | 1 + docs/v1.1.1/_static/underscore-1.13.1.js | 2042 +++ docs/v1.1.1/_static/underscore-1.3.1.js | 999 ++ docs/v1.1.1/_static/underscore.js | 31 + docs/v1.1.1/cli/torchtrtc.html | 776 + docs/v1.1.1/contributors/conversion.html | 712 + docs/v1.1.1/contributors/lowering.html | 1224 ++ docs/v1.1.1/contributors/partitioning.html | 550 + docs/v1.1.1/contributors/phases.html | 616 + docs/v1.1.1/contributors/runtime.html | 753 + docs/v1.1.1/contributors/system_overview.html | 780 + docs/v1.1.1/contributors/useful_links.html | 727 + .../contributors/writing_converters.html | 986 ++ docs/v1.1.1/genindex.html | 1371 ++ .../getting_started_with_cpp_api.html | 935 ++ .../getting_started_with_python_api.html | 689 + docs/v1.1.1/getting_started/installation.html | 1012 ++ docs/v1.1.1/index.html | 833 ++ docs/v1.1.1/indices/supported_ops.html | 2043 +++ docs/v1.1.1/objects.inv | Bin 0 -> 23595 bytes docs/v1.1.1/py-modindex.html | 662 + docs/v1.1.1/py_api/fx.html | 717 + docs/v1.1.1/py_api/logging.html | 558 + docs/v1.1.1/py_api/ptq.html | 614 + docs/v1.1.1/py_api/torch_tensorrt.html | 660 + docs/v1.1.1/py_api/ts.html | 598 + docs/v1.1.1/search.html | 515 + docs/v1.1.1/searchindex.js | 1 + docs/v1.1.1/sitemap.xml | 1 + .../pytorch-sphinx-theme/docs/changelog.html | 511 + .../docs/configuring.html | 958 ++ .../pytorch-sphinx-theme/docs/demo/api.html | 715 + .../pytorch-sphinx-theme/docs/demo/demo.html | 2754 ++++ .../docs/demo/lists_tables.html | 2452 +++ .../pytorch-sphinx-theme/docs/demo/long.html | 1543 ++ .../docs/demo/structure.html | 818 + .../src/pytorch-sphinx-theme/docs/index.html | 849 ++ .../pytorch-sphinx-theme/docs/installing.html | 559 + ...creating_torchscript_module_in_python.html | 845 ++ .../getting_started_with_cpp_api.html | 1280 ++ .../getting_started_with_fx_path.html | 912 ++ .../getting_started_with_python_api.html | 654 + docs/v1.1.1/tutorials/installation.html | 1813 +++ docs/v1.1.1/tutorials/notebooks.html | 795 + docs/v1.1.1/tutorials/ptq.html | 1040 ++ docs/v1.1.1/tutorials/runtime.html | 764 + .../serving_torch_tensorrt_with_triton.html | 826 + docs/v1.1.1/tutorials/torchtrtc.html | 700 + docs/v1.1.1/tutorials/use_from_pytorch.html | 686 + docs/v1.1.1/tutorials/using_dla.html | 620 + docs/v1.2.0/.nojekyll | 0 .../v1.2.0/_cpp_api/class_view_hierarchy.html | 662 + .../classtorch__tensorrt_1_1DataType.html | 843 ++ ...rch__tensorrt_1_1Device_1_1DeviceType.html | 792 + .../classtorch__tensorrt_1_1TensorFormat.html | 824 + ...ensorrt_1_1ptq_1_1Int8CacheCalibrator.html | 788 + ...ch__tensorrt_1_1ptq_1_1Int8Calibrator.html | 798 + ...8h_1a18d295a837ac71add5578860b55e5502.html | 683 + ...8h_1a282fd3c0b1c3a215148ae372070e1268.html | 683 + ...8h_1a31398a6d4d27e28817afb0f0139e909e.html | 683 + ...8h_1a35703561b26b1a9d2738ad7d58b27827.html | 683 + ...8h_1abd1465eb38256d3f22cc1426b23d516b.html | 683 + ...8h_1abe87b341f562fd1cf40b7672e4d759da.html | 683 + ...8h_1ad19939408f7be171a74a89928b36eb59.html | 683 + ...8h_1adad592a7b1b7eed529cdf6acd584c883.html | 683 + docs/v1.2.0/_cpp_api/dir_cpp.html | 666 + docs/v1.2.0/_cpp_api/dir_cpp_include.html | 667 + .../dir_cpp_include_torch_tensorrt.html | 670 + ...8h_1a130f65408ad8cbaee060f05e8db69558.html | 721 + ...8h_1a3fbe5d72e4fc624dbd038853079620eb.html | 700 + ..._cpp_include_torch_tensorrt_logging.h.html | 722 + ...e_cpp_include_torch_tensorrt_macros.h.html | 708 + ...file_cpp_include_torch_tensorrt_ptq.h.html | 719 + ...clude_torch_tensorrt_torch_tensorrt.h.html | 734 + docs/v1.2.0/_cpp_api/file_view_hierarchy.html | 662 + ...8h_1a0593f776f469c20469e2f729fc7861a3.html | 683 + ...8h_1a0c012cb374addd90eb1f42eaec570650.html | 689 + ...8h_1a56e110feaaba2c3fd44bd201fd21a76a.html | 689 + ...8h_1a7cb50492421ea9de4e3db895819df6f2.html | 689 + ...8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html | 692 + ...8h_1ad2efd47b6c3689e58ccc595680579ae5.html | 689 + ...8h_1af8f3443813315af7901903d25dd495cc.html | 683 + ...8h_1a226e3c83379d1012cde8578c1c86b16c.html | 698 + ...8h_1a6186e305f47c1d94b6130ef6c7f7e178.html | 704 + ...8h_1a83ff2be7e0b80bc7434de415861dc039.html | 691 + ...8h_1a9835f6e605dce1abf442a55b64d6dffa.html | 685 + ...8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html | 698 + ...8h_1a6e19490a08fb1553c9dd347a5ae79db9.html | 698 + ...8h_1a710df824a7718b440e4bc17bf9693cef.html | 702 + ...8h_1ac4ab8313ae72c2c899ea31548b528528.html | 689 + ...8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html | 689 + ...8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html | 684 + ...8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html | 698 + .../_cpp_api/namespace_torch_tensorrt.html | 717 + .../namespace_torch_tensorrt__logging.html | 698 + .../namespace_torch_tensorrt__ptq.html | 694 + ...namespace_torch_tensorrt__torchscript.html | 695 + ..._cpp_include_torch_tensorrt_logging.h.html | 698 + ...e_cpp_include_torch_tensorrt_macros.h.html | 697 + ...file_cpp_include_torch_tensorrt_ptq.h.html | 837 ++ ...clude_torch_tensorrt_torch_tensorrt.h.html | 941 ++ .../structtorch__tensorrt_1_1Device.html | 840 ++ .../structtorch__tensorrt_1_1GraphInputs.html | 698 + .../structtorch__tensorrt_1_1Input.html | 881 ++ ...ensorrt_1_1torchscript_1_1CompileSpec.html | 852 ++ docs/v1.2.0/_cpp_api/torch_tensort_cpp.html | 1060 ++ docs/v1.2.0/_cpp_api/unabridged_api.html | 1015 ++ docs/v1.2.0/_cpp_api/unabridged_orphan.html | 755 + .../yi_jing_01_chien.jpg | Bin 0 -> 6614 bytes .../_notebooks_EfficientNet-example_12_0.png | Bin 0 -> 96385 bytes .../_notebooks_EfficientNet-example_16_2.png | Bin 0 -> 99830 bytes .../_notebooks_Resnet50-example_12_0.png | Bin 0 -> 96469 bytes .../_notebooks_Resnet50-example_16_1.png | Bin 0 -> 99900 bytes .../_notebooks_dynamic-shapes_14_1.png | Bin 0 -> 99817 bytes .../_images/_notebooks_dynamic-shapes_8_0.png | Bin 0 -> 96385 bytes ...tebooks_ssd-object-detection-demo_18_0.png | Bin 0 -> 102606 bytes ...tebooks_ssd-object-detection-demo_18_1.png | Bin 0 -> 72163 bytes ...tebooks_ssd-object-detection-demo_18_2.png | Bin 0 -> 95321 bytes ...tebooks_ssd-object-detection-demo_35_0.png | Bin 0 -> 102606 bytes ...tebooks_ssd-object-detection-demo_35_1.png | Bin 0 -> 72163 bytes ...tebooks_ssd-object-detection-demo_35_2.png | Bin 0 -> 95266 bytes docs/v1.2.0/_images/yi_jing_01_chien.jpg | Bin 0 -> 6614 bytes docs/v1.2.0/_modules/index.html | 659 + .../_modules/torch_tensorrt/_Device.html | 781 + .../_modules/torch_tensorrt/_Input.html | 925 ++ .../_modules/torch_tensorrt/_compile.html | 856 ++ .../v1.2.0/_modules/torch_tensorrt/_util.html | 676 + .../_modules/torch_tensorrt/fx/fx2trt.html | 1019 ++ .../torch_tensorrt/fx/input_tensor_spec.html | 829 + .../_modules/torch_tensorrt/fx/lower.html | 893 ++ .../torch_tensorrt/fx/trt_module.html | 883 ++ .../_modules/torch_tensorrt/logging.html | 858 ++ docs/v1.2.0/_modules/torch_tensorrt/ptq.html | 850 ++ .../torch_tensorrt/ts/_compile_spec.html | 1132 ++ .../_modules/torch_tensorrt/ts/_compiler.html | 934 ++ docs/v1.2.0/_notebooks/CitriNet-example.html | 1753 +++ docs/v1.2.0/_notebooks/CitriNet-example.ipynb | 964 ++ .../_notebooks/EfficientNet-example.html | 1463 ++ .../_notebooks/EfficientNet-example.ipynb | 693 + docs/v1.2.0/_notebooks/Hugging-Face-BERT.html | 1380 ++ .../v1.2.0/_notebooks/Hugging-Face-BERT.ipynb | 714 + docs/v1.2.0/_notebooks/Resnet50-example.html | 1674 +++ docs/v1.2.0/_notebooks/Resnet50-example.ipynb | 925 ++ docs/v1.2.0/_notebooks/dynamic-shapes.html | 1750 +++ docs/v1.2.0/_notebooks/dynamic-shapes.ipynb | 1023 ++ .../_notebooks/lenet-getting-started.html | 1518 ++ .../_notebooks/lenet-getting-started.ipynb | 718 + .../_notebooks/ssd-object-detection-demo.html | 1635 ++ .../ssd-object-detection-demo.ipynb | 943 ++ docs/v1.2.0/_notebooks/vgg-qat.html | 1917 +++ docs/v1.2.0/_notebooks/vgg-qat.ipynb | 1200 ++ .../_cpp_api/class_view_hierarchy.rst.txt | 18 + .../classtorch__tensorrt_1_1DataType.rst.txt | 17 + ...__tensorrt_1_1Device_1_1DeviceType.rst.txt | 23 + ...asstorch__tensorrt_1_1TensorFormat.rst.txt | 17 + ...orrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt | 26 + ..._tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt | 26 + ...1a18d295a837ac71add5578860b55e5502.rst.txt | 14 + ...1a282fd3c0b1c3a215148ae372070e1268.rst.txt | 14 + ...1a31398a6d4d27e28817afb0f0139e909e.rst.txt | 14 + ...1a35703561b26b1a9d2738ad7d58b27827.rst.txt | 14 + ...1abd1465eb38256d3f22cc1426b23d516b.rst.txt | 14 + ...1abe87b341f562fd1cf40b7672e4d759da.rst.txt | 14 + ...1ad19939408f7be171a74a89928b36eb59.rst.txt | 14 + ...1adad592a7b1b7eed529cdf6acd584c883.rst.txt | 14 + docs/v1.2.0/_sources/_cpp_api/dir_cpp.rst.txt | 16 + .../_sources/_cpp_api/dir_cpp_include.rst.txt | 20 + .../dir_cpp_include_torch_tensorrt.rst.txt | 23 + ...1a130f65408ad8cbaee060f05e8db69558.rst.txt | 14 + ...1a3fbe5d72e4fc624dbd038853079620eb.rst.txt | 14 + ...p_include_torch_tensorrt_logging.h.rst.txt | 80 + ...pp_include_torch_tensorrt_macros.h.rst.txt | 71 + ...e_cpp_include_torch_tensorrt_ptq.h.rst.txt | 84 + ...de_torch_tensorrt_torch_tensorrt.h.rst.txt | 105 + .../_cpp_api/file_view_hierarchy.rst.txt | 18 + ...1a0593f776f469c20469e2f729fc7861a3.rst.txt | 14 + ...1a0c012cb374addd90eb1f42eaec570650.rst.txt | 14 + ...1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt | 14 + ...1a7cb50492421ea9de4e3db895819df6f2.rst.txt | 14 + ...1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt | 14 + ...1ad2efd47b6c3689e58ccc595680579ae5.rst.txt | 14 + ...1af8f3443813315af7901903d25dd495cc.rst.txt | 14 + ...1a226e3c83379d1012cde8578c1c86b16c.rst.txt | 14 + ...1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt | 14 + ...1a83ff2be7e0b80bc7434de415861dc039.rst.txt | 13 + ...1a9835f6e605dce1abf442a55b64d6dffa.rst.txt | 13 + ...1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt | 14 + ...1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt | 14 + ...1a710df824a7718b440e4bc17bf9693cef.rst.txt | 14 + ...1ac4ab8313ae72c2c899ea31548b528528.rst.txt | 14 + ...1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt | 14 + ...1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt | 14 + ...1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt | 14 + .../_cpp_api/namespace_torch_tensorrt.rst.txt | 59 + .../namespace_torch_tensorrt__logging.rst.txt | 39 + .../namespace_torch_tensorrt__ptq.rst.txt | 31 + ...espace_torch_tensorrt__torchscript.rst.txt | 33 + ...p_include_torch_tensorrt_logging.h.rst.txt | 51 + ...pp_include_torch_tensorrt_macros.h.rst.txt | 50 + ...e_cpp_include_torch_tensorrt_ptq.h.rst.txt | 190 + ...de_torch_tensorrt_torch_tensorrt.h.rst.txt | 294 + .../structtorch__tensorrt_1_1Device.rst.txt | 27 + ...ructtorch__tensorrt_1_1GraphInputs.rst.txt | 17 + .../structtorch__tensorrt_1_1Input.rst.txt | 26 + ...orrt_1_1torchscript_1_1CompileSpec.rst.txt | 17 + .../_cpp_api/torch_tensort_cpp.rst.txt | 10 + .../_sources/_cpp_api/unabridged_api.rst.txt | 213 + .../_cpp_api/unabridged_orphan.rst.txt | 48 + .../_notebooks/CitriNet-example.ipynb.txt | 964 ++ .../_notebooks/EfficientNet-example.ipynb.txt | 693 + .../_notebooks/Hugging-Face-BERT.ipynb.txt | 714 + .../_notebooks/Resnet50-example.ipynb.txt | 925 ++ .../_notebooks/dynamic-shapes.ipynb.txt | 1023 ++ .../lenet-getting-started.ipynb.txt | 718 + .../ssd-object-detection-demo.ipynb.txt | 943 ++ .../_sources/_notebooks/vgg-qat.ipynb.txt | 1200 ++ docs/v1.2.0/_sources/cli/torchtrtc.rst.txt | 149 + .../_sources/contributors/conversion.rst.txt | 53 + .../_sources/contributors/lowering.rst.txt | 207 + .../contributors/partitioning.rst.txt | 93 + .../_sources/contributors/phases.rst.txt | 46 + .../_sources/contributors/runtime.rst.txt | 85 + .../contributors/system_overview.rst.txt | 29 + .../contributors/useful_links.rst.txt | 34 + .../contributors/writing_converters.rst.txt | 129 + .../getting_started_with_cpp_api.rst.txt | 338 + .../getting_started_with_python_api.rst.txt | 58 + .../getting_started_with_windows.rst.txt | 78 + .../getting_started/installation.rst.txt | 362 + docs/v1.2.0/_sources/index.rst.txt | 139 + .../_sources/indices/supported_ops.rst.txt | 285 + docs/v1.2.0/_sources/py_api/fx.rst.txt | 31 + docs/v1.2.0/_sources/py_api/logging.rst.txt | 13 + docs/v1.2.0/_sources/py_api/ptq.rst.txt | 27 + .../_sources/py_api/torch_tensorrt.rst.txt | 60 + docs/v1.2.0/_sources/py_api/ts.rst.txt | 27 + .../docs/changelog.rst.txt | 6 + .../docs/configuring.rst.txt | 108 + .../docs/demo/api.rst.txt | 53 + .../docs/demo/demo.rst.txt | 475 + .../docs/demo/lists_tables.rst.txt | 302 + .../docs/demo/long.rst.txt | 214 + .../docs/demo/structure.rst.txt | 101 + .../pytorch-sphinx-theme/docs/index.rst.txt | 27 + .../docs/installing.rst.txt | 17 + ...ating_torchscript_module_in_python.rst.txt | 140 + .../getting_started_with_cpp_api.rst.txt | 338 + .../getting_started_with_fx_path.rst.txt | 333 + .../getting_started_with_python_api.rst.txt | 47 + .../_sources/tutorials/installation.rst.txt | 387 + .../_sources/tutorials/notebooks.rst.txt | 154 + docs/v1.2.0/_sources/tutorials/ptq.rst.txt | 205 + .../v1.2.0/_sources/tutorials/runtime.rst.txt | 36 + ...serving_torch_tensorrt_with_triton.rst.txt | 216 + .../_sources/tutorials/torchtrtc.rst.txt | 128 + .../tutorials/use_from_pytorch.rst.txt | 64 + .../_sources/tutorials/using_dla.rst.txt | 47 + docs/v1.2.0/_static/basic.css | 906 ++ .../_static/collapsible-lists/LICENSE.md | 7 + .../collapsible-lists/css/button-closed.png | Bin 0 -> 256 bytes .../collapsible-lists/css/button-open.png | Bin 0 -> 240 bytes .../_static/collapsible-lists/css/button.png | Bin 0 -> 230 bytes .../css/list-item-contents.png | Bin 0 -> 147 bytes .../css/list-item-last-open.png | Bin 0 -> 161 bytes .../collapsible-lists/css/list-item-last.png | Bin 0 -> 160 bytes .../collapsible-lists/css/list-item-open.png | Bin 0 -> 160 bytes .../collapsible-lists/css/list-item-root.png | Bin 0 -> 145 bytes .../collapsible-lists/css/list-item.png | Bin 0 -> 157 bytes .../collapsible-lists/css/tree_view.css | 61 + .../js/CollapsibleLists.compressed.js | 83 + .../js/apply-collapsible-lists.js | 3 + docs/v1.2.0/_static/css/theme.css | 12441 ++++++++++++++++ docs/v1.2.0/_static/doctools.js | 358 + docs/v1.2.0/_static/documentation_options.js | 14 + docs/v1.2.0/_static/file.png | Bin 0 -> 286 bytes .../FreightSans/freight-sans-bold-italic.woff | Bin 0 -> 39560 bytes .../freight-sans-bold-italic.woff2 | Bin 0 -> 31812 bytes .../fonts/FreightSans/freight-sans-bold.woff | Bin 0 -> 32396 bytes .../fonts/FreightSans/freight-sans-bold.woff2 | Bin 0 -> 25672 bytes .../FreightSans/freight-sans-book-italic.woff | Bin 0 -> 33944 bytes .../freight-sans-book-italic.woff2 | Bin 0 -> 26832 bytes .../fonts/FreightSans/freight-sans-book.woff | Bin 0 -> 31612 bytes .../fonts/FreightSans/freight-sans-book.woff2 | Bin 0 -> 25120 bytes .../freight-sans-light-italic.woff | Bin 0 -> 29304 bytes .../freight-sans-light-italic.woff2 | Bin 0 -> 22720 bytes .../fonts/FreightSans/freight-sans-light.woff | Bin 0 -> 26908 bytes .../FreightSans/freight-sans-light.woff2 | Bin 0 -> 21012 bytes .../freight-sans-medium-italic.woff | Bin 0 -> 19420 bytes .../freight-sans-medium-italic.woff2 | Bin 0 -> 16000 bytes .../FreightSans/freight-sans-medium.woff | Bin 0 -> 32072 bytes .../FreightSans/freight-sans-medium.woff2 | Bin 0 -> 25460 bytes .../fonts/IBMPlexMono/IBMPlexMono-Light.woff | Bin 0 -> 50680 bytes .../fonts/IBMPlexMono/IBMPlexMono-Light.woff2 | Bin 0 -> 35916 bytes .../fonts/IBMPlexMono/IBMPlexMono-Medium.woff | Bin 0 -> 51872 bytes .../IBMPlexMono/IBMPlexMono-Medium.woff2 | Bin 0 -> 36648 bytes .../IBMPlexMono/IBMPlexMono-Regular.woff | Bin 0 -> 50664 bytes .../IBMPlexMono/IBMPlexMono-Regular.woff2 | Bin 0 -> 35536 bytes .../IBMPlexMono/IBMPlexMono-SemiBold.woff | Bin 0 -> 52936 bytes .../IBMPlexMono/IBMPlexMono-SemiBold.woff2 | Bin 0 -> 37592 bytes docs/v1.2.0/_static/fonts/font-awesome.css | 1 + docs/v1.2.0/_static/fonts/material-icons.css | 1 + .../_static/fonts/specimen/FontAwesome.ttf | Bin 0 -> 165548 bytes .../_static/fonts/specimen/FontAwesome.woff | Bin 0 -> 98024 bytes .../_static/fonts/specimen/FontAwesome.woff2 | Bin 0 -> 77160 bytes .../fonts/specimen/MaterialIcons-Regular.ttf | Bin 0 -> 128180 bytes .../fonts/specimen/MaterialIcons-Regular.woff | Bin 0 -> 57620 bytes .../specimen/MaterialIcons-Regular.woff2 | Bin 0 -> 44300 bytes .../_static/images/arrow-down-orange.svg | 19 + .../_static/images/arrow-right-with-tail.svg | 19 + .../_static/images/chevron-down-black.svg | 16 + .../_static/images/chevron-down-grey.svg | 18 + .../_static/images/chevron-down-orange.svg | 16 + .../_static/images/chevron-down-white.svg | 16 + .../_static/images/chevron-right-orange.svg | 17 + .../_static/images/chevron-right-white.svg | 17 + docs/v1.2.0/_static/images/favicon.png | Bin 0 -> 521 bytes .../_static/images/home-footer-background.jpg | Bin 0 -> 38907 bytes docs/v1.2.0/_static/images/icon-close.svg | 21 + .../_static/images/icon-menu-dots-dark.svg | 42 + .../images/icons/bitbucket.1b09e088.svg | 1 + .../v1.2.0/_static/images/icons/bitbucket.svg | 1 + .../_static/images/icons/github.f0b8504a.svg | 1 + docs/v1.2.0/_static/images/icons/github.svg | 1 + .../_static/images/icons/gitlab.6dd19c00.svg | 1 + docs/v1.2.0/_static/images/icons/gitlab.svg | 1 + docs/v1.2.0/_static/images/logo-dark.svg | 30 + .../_static/images/logo-facebook-dark.svg | 8 + docs/v1.2.0/_static/images/logo-icon.svg | 12 + .../_static/images/logo-twitter-dark.svg | 16 + .../_static/images/logo-youtube-dark.svg | 21 + docs/v1.2.0/_static/images/logo.svg | 31 + docs/v1.2.0/_static/images/pytorch-colab.svg | 24 + .../_static/images/pytorch-download.svg | 10 + docs/v1.2.0/_static/images/pytorch-github.svg | 15 + docs/v1.2.0/_static/images/pytorch-x.svg | 10 + docs/v1.2.0/_static/images/search-icon.svg | 19 + .../_static/images/view-page-source-icon.svg | 13 + .../v1.2.0/_static/javascripts/application.js | 2540 ++++ .../_static/javascripts/lunr/lunr.da.js | 1 + .../_static/javascripts/lunr/lunr.de.js | 1 + .../_static/javascripts/lunr/lunr.du.js | 1 + .../_static/javascripts/lunr/lunr.es.js | 1 + .../_static/javascripts/lunr/lunr.fi.js | 1 + .../_static/javascripts/lunr/lunr.fr.js | 1 + .../_static/javascripts/lunr/lunr.hu.js | 1 + .../_static/javascripts/lunr/lunr.it.js | 1 + .../_static/javascripts/lunr/lunr.ja.js | 1 + .../_static/javascripts/lunr/lunr.jp.js | 1 + .../_static/javascripts/lunr/lunr.multi.js | 1 + .../_static/javascripts/lunr/lunr.nl.js | 1 + .../_static/javascripts/lunr/lunr.no.js | 1 + .../_static/javascripts/lunr/lunr.pt.js | 1 + .../_static/javascripts/lunr/lunr.ro.js | 1 + .../_static/javascripts/lunr/lunr.ru.js | 1 + .../javascripts/lunr/lunr.stemmer.support.js | 1 + .../_static/javascripts/lunr/lunr.sv.js | 1 + .../_static/javascripts/lunr/lunr.th.js | 1 + .../_static/javascripts/lunr/lunr.tr.js | 1 + .../_static/javascripts/lunr/tinyseg.js | 1 + .../_static/javascripts/lunr/wordcut.js | 1 + docs/v1.2.0/_static/javascripts/modernizr.js | 1 + .../_static/javascripts/version_dropdown.js | 29 + docs/v1.2.0/_static/jquery-3.5.1.js | 10872 ++++++++++++++ docs/v1.2.0/_static/jquery.js | 2 + docs/v1.2.0/_static/jquery.min.map | 1 + docs/v1.2.0/_static/js/modernizr.min.js | 4 + docs/v1.2.0/_static/js/theme.js | 1128 ++ docs/v1.2.0/_static/js/vendor/anchor.min.js | 9 + .../v1.2.0/_static/js/vendor/bootstrap.min.js | 7 + docs/v1.2.0/_static/js/vendor/popper.min.js | 5 + docs/v1.2.0/_static/language_data.js | 297 + docs/v1.2.0/_static/material.css | 1 + docs/v1.2.0/_static/minus.png | Bin 0 -> 90 bytes docs/v1.2.0/_static/plus.png | Bin 0 -> 90 bytes docs/v1.2.0/_static/pygments.css | 74 + docs/v1.2.0/_static/searchtools.js | 525 + .../_static/stylesheets/application-fixes.css | 1 + .../stylesheets/application-palette.css | 1 + .../_static/stylesheets/application.css | 1 + docs/v1.2.0/_static/underscore-1.13.1.js | 2042 +++ docs/v1.2.0/_static/underscore-1.3.1.js | 999 ++ docs/v1.2.0/_static/underscore.js | 6 + docs/v1.2.0/cli/torchtrtc.html | 806 + docs/v1.2.0/contributors/conversion.html | 726 + docs/v1.2.0/contributors/lowering.html | 888 ++ docs/v1.2.0/contributors/partitioning.html | 754 + docs/v1.2.0/contributors/phases.html | 694 + docs/v1.2.0/contributors/runtime.html | 746 + docs/v1.2.0/contributors/system_overview.html | 730 + docs/v1.2.0/contributors/useful_links.html | 711 + .../contributors/writing_converters.html | 801 + docs/v1.2.0/genindex.html | 1231 ++ .../getting_started_with_cpp_api.html | 959 ++ .../getting_started_with_python_api.html | 713 + .../getting_started_with_windows.html | 732 + docs/v1.2.0/getting_started/installation.html | 1036 ++ docs/v1.2.0/index.html | 764 + docs/v1.2.0/indices/supported_ops.html | 957 ++ docs/v1.2.0/objects.inv | Bin 0 -> 27051 bytes docs/v1.2.0/py-modindex.html | 686 + docs/v1.2.0/py_api/fx.html | 742 + docs/v1.2.0/py_api/logging.html | 870 ++ docs/v1.2.0/py_api/ptq.html | 789 + docs/v1.2.0/py_api/torch_tensorrt.html | 1029 ++ docs/v1.2.0/py_api/ts.html | 931 ++ docs/v1.2.0/search.html | 664 + docs/v1.2.0/searchindex.js | 1 + docs/v1.2.0/sitemap.xml | 1 + .../pytorch-sphinx-theme/docs/changelog.html | 657 + .../docs/configuring.html | 760 + .../pytorch-sphinx-theme/docs/demo/api.html | 711 + .../pytorch-sphinx-theme/docs/demo/demo.html | 1267 ++ .../docs/demo/lists_tables.html | 1242 ++ .../pytorch-sphinx-theme/docs/demo/long.html | 921 ++ .../docs/demo/structure.html | 790 + .../src/pytorch-sphinx-theme/docs/index.html | 747 + .../pytorch-sphinx-theme/docs/installing.html | 669 + ...creating_torchscript_module_in_python.html | 784 + .../getting_started_with_cpp_api.html | 1280 ++ .../getting_started_with_fx_path.html | 981 ++ .../getting_started_with_python_api.html | 654 + docs/v1.2.0/tutorials/installation.html | 1813 +++ docs/v1.2.0/tutorials/notebooks.html | 819 + docs/v1.2.0/tutorials/ptq.html | 845 ++ docs/v1.2.0/tutorials/runtime.html | 703 + .../serving_torch_tensorrt_with_triton.html | 850 ++ docs/v1.2.0/tutorials/torchtrtc.html | 700 + docs/v1.2.0/tutorials/use_from_pytorch.html | 715 + docs/v1.2.0/tutorials/using_dla.html | 701 + docsrc/indices/supported_ops.rst | 11 + 757 files changed, 310725 insertions(+) create mode 100644 docs/v1.1.1/.nojekyll create mode 100644 docs/v1.1.1/_cpp_api/class_view_hierarchy.html create mode 100644 docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1DataType.html create mode 100644 docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.html create mode 100644 docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1TensorFormat.html create mode 100644 docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.html create mode 100644 docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.html create mode 100644 docs/v1.1.1/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html create mode 100644 docs/v1.1.1/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.html create mode 100644 docs/v1.1.1/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.html create mode 100644 docs/v1.1.1/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.html create mode 100644 docs/v1.1.1/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.html create mode 100644 docs/v1.1.1/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html create mode 100644 docs/v1.1.1/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.html create mode 100644 docs/v1.1.1/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.html create mode 100644 docs/v1.1.1/_cpp_api/dir_cpp.html create mode 100644 docs/v1.1.1/_cpp_api/dir_cpp_include.html create mode 100644 docs/v1.1.1/_cpp_api/dir_cpp_include_torch_tensorrt.html create mode 100644 docs/v1.1.1/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.html create mode 100644 docs/v1.1.1/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.html create mode 100644 docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.html create mode 100644 docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.html create mode 100644 docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.html create mode 100644 docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.html create mode 100644 docs/v1.1.1/_cpp_api/file_view_hierarchy.html create mode 100644 docs/v1.1.1/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.html create mode 100644 docs/v1.1.1/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.html create mode 100644 docs/v1.1.1/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.html create mode 100644 docs/v1.1.1/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.html create mode 100644 docs/v1.1.1/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html create mode 100644 docs/v1.1.1/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.html create mode 100644 docs/v1.1.1/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.html create mode 100644 docs/v1.1.1/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.html create mode 100644 docs/v1.1.1/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.html create mode 100644 docs/v1.1.1/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.html create mode 100644 docs/v1.1.1/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.html create mode 100644 docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html create mode 100644 docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.html create mode 100644 docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.html create mode 100644 docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.html create mode 100644 docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html create mode 100644 docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html create mode 100644 docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html create mode 100644 docs/v1.1.1/_cpp_api/namespace_torch_tensorrt.html create mode 100644 docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__logging.html create mode 100644 docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__ptq.html create mode 100644 docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__torchscript.html create mode 100644 docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.html create mode 100644 docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.html create mode 100644 docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.html create mode 100644 docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.html create mode 100644 docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1Device.html create mode 100644 docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1GraphInputs.html create mode 100644 docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1Input.html create mode 100644 docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.html create mode 100644 docs/v1.1.1/_cpp_api/torch_tensort_cpp.html create mode 100644 docs/v1.1.1/_cpp_api/unabridged_api.html create mode 100644 docs/v1.1.1/_cpp_api/unabridged_orphan.html create mode 100644 docs/v1.1.1/_downloads/26d49aeeb9c710e27197fda28b7c3516/yi_jing_01_chien.jpg create mode 100644 docs/v1.1.1/_images/_notebooks_EfficientNet-example_12_0.png create mode 100644 docs/v1.1.1/_images/_notebooks_EfficientNet-example_16_2.png create mode 100644 docs/v1.1.1/_images/_notebooks_Resnet50-example_12_0.png create mode 100644 docs/v1.1.1/_images/_notebooks_Resnet50-example_16_1.png create mode 100644 docs/v1.1.1/_images/_notebooks_dynamic-shapes_14_1.png create mode 100644 docs/v1.1.1/_images/_notebooks_dynamic-shapes_8_0.png create mode 100644 docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_18_0.png create mode 100644 docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_18_1.png create mode 100644 docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_18_2.png create mode 100644 docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_35_0.png create mode 100644 docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_35_1.png create mode 100644 docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_35_2.png create mode 100644 docs/v1.1.1/_images/yi_jing_01_chien.jpg create mode 100644 docs/v1.1.1/_modules/index.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/_Device.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/_Input.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/_compile.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/_util.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/fx/fx2trt.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/fx/input_tensor_spec.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/fx/lower.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/fx/trt_module.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/logging.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/ptq.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/ts/_compile_spec.html create mode 100644 docs/v1.1.1/_modules/torch_tensorrt/ts/_compiler.html create mode 100644 docs/v1.1.1/_notebooks/CitriNet-example.html create mode 100644 docs/v1.1.1/_notebooks/CitriNet-example.ipynb create mode 100644 docs/v1.1.1/_notebooks/EfficientNet-example.html create mode 100644 docs/v1.1.1/_notebooks/EfficientNet-example.ipynb create mode 100644 docs/v1.1.1/_notebooks/Hugging-Face-BERT.html create mode 100644 docs/v1.1.1/_notebooks/Hugging-Face-BERT.ipynb create mode 100644 docs/v1.1.1/_notebooks/Resnet50-example.html create mode 100644 docs/v1.1.1/_notebooks/Resnet50-example.ipynb create mode 100644 docs/v1.1.1/_notebooks/dynamic-shapes.html create mode 100644 docs/v1.1.1/_notebooks/dynamic-shapes.ipynb create mode 100644 docs/v1.1.1/_notebooks/lenet-getting-started.html create mode 100644 docs/v1.1.1/_notebooks/lenet-getting-started.ipynb create mode 100644 docs/v1.1.1/_notebooks/ssd-object-detection-demo.html create mode 100644 docs/v1.1.1/_notebooks/ssd-object-detection-demo.ipynb create mode 100644 docs/v1.1.1/_notebooks/vgg-qat.html create mode 100644 docs/v1.1.1/_notebooks/vgg-qat.ipynb create mode 100644 docs/v1.1.1/_sources/_cpp_api/class_view_hierarchy.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1DataType.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/dir_cpp.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/dir_cpp_include.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/dir_cpp_include_torch_tensorrt.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/file_view_hierarchy.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__logging.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__ptq.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__torchscript.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1Device.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1Input.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/torch_tensort_cpp.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/unabridged_api.rst.txt create mode 100644 docs/v1.1.1/_sources/_cpp_api/unabridged_orphan.rst.txt create mode 100644 docs/v1.1.1/_sources/_notebooks/CitriNet-example.ipynb.txt create mode 100644 docs/v1.1.1/_sources/_notebooks/EfficientNet-example.ipynb.txt create mode 100644 docs/v1.1.1/_sources/_notebooks/Hugging-Face-BERT.ipynb.txt create mode 100644 docs/v1.1.1/_sources/_notebooks/Resnet50-example.ipynb.txt create mode 100644 docs/v1.1.1/_sources/_notebooks/dynamic-shapes.ipynb.txt create mode 100644 docs/v1.1.1/_sources/_notebooks/lenet-getting-started.ipynb.txt create mode 100644 docs/v1.1.1/_sources/_notebooks/ssd-object-detection-demo.ipynb.txt create mode 100644 docs/v1.1.1/_sources/_notebooks/vgg-qat.ipynb.txt create mode 100644 docs/v1.1.1/_sources/cli/torchtrtc.rst.txt create mode 100644 docs/v1.1.1/_sources/contributors/conversion.rst.txt create mode 100644 docs/v1.1.1/_sources/contributors/lowering.rst.txt create mode 100644 docs/v1.1.1/_sources/contributors/partitioning.rst.txt create mode 100644 docs/v1.1.1/_sources/contributors/phases.rst.txt create mode 100644 docs/v1.1.1/_sources/contributors/runtime.rst.txt create mode 100644 docs/v1.1.1/_sources/contributors/system_overview.rst.txt create mode 100644 docs/v1.1.1/_sources/contributors/useful_links.rst.txt create mode 100644 docs/v1.1.1/_sources/contributors/writing_converters.rst.txt create mode 100644 docs/v1.1.1/_sources/getting_started/getting_started_with_cpp_api.rst.txt create mode 100644 docs/v1.1.1/_sources/getting_started/getting_started_with_python_api.rst.txt create mode 100644 docs/v1.1.1/_sources/getting_started/installation.rst.txt create mode 100644 docs/v1.1.1/_sources/index.rst.txt create mode 100644 docs/v1.1.1/_sources/indices/supported_ops.rst.txt create mode 100644 docs/v1.1.1/_sources/py_api/fx.rst.txt create mode 100644 docs/v1.1.1/_sources/py_api/logging.rst.txt create mode 100644 docs/v1.1.1/_sources/py_api/ptq.rst.txt create mode 100644 docs/v1.1.1/_sources/py_api/torch_tensorrt.rst.txt create mode 100644 docs/v1.1.1/_sources/py_api/ts.rst.txt create mode 100644 docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/changelog.rst.txt create mode 100644 docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/configuring.rst.txt create mode 100644 docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/api.rst.txt create mode 100644 docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/demo.rst.txt create mode 100644 docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/lists_tables.rst.txt create mode 100644 docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/long.rst.txt create mode 100644 docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/structure.rst.txt create mode 100644 docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/index.rst.txt create mode 100644 docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/installing.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/creating_torchscript_module_in_python.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/getting_started_with_cpp_api.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/getting_started_with_fx_path.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/getting_started_with_python_api.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/installation.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/notebooks.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/ptq.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/runtime.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/serving_torch_tensorrt_with_triton.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/torchtrtc.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/use_from_pytorch.rst.txt create mode 100644 docs/v1.1.1/_sources/tutorials/using_dla.rst.txt create mode 100644 docs/v1.1.1/_static/basic.css create mode 100644 docs/v1.1.1/_static/collapsible-lists/LICENSE.md create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/button-closed.png create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/button-open.png create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/button.png create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/list-item-contents.png create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/list-item-last-open.png create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/list-item-last.png create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/list-item-open.png create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/list-item-root.png create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/list-item.png create mode 100644 docs/v1.1.1/_static/collapsible-lists/css/tree_view.css create mode 100644 docs/v1.1.1/_static/collapsible-lists/js/CollapsibleLists.compressed.js create mode 100644 docs/v1.1.1/_static/collapsible-lists/js/apply-collapsible-lists.js create mode 100644 docs/v1.1.1/_static/css/theme.css create mode 100644 docs/v1.1.1/_static/doctools.js create mode 100644 docs/v1.1.1/_static/documentation_options.js create mode 100644 docs/v1.1.1/_static/file.png create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-bold-italic.woff create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-bold-italic.woff2 create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-bold.woff create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-bold.woff2 create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-book-italic.woff create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-book-italic.woff2 create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-book.woff create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-book.woff2 create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-light-italic.woff create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-light-italic.woff2 create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-light.woff create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-light.woff2 create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium-italic.woff create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium-italic.woff2 create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium.woff create mode 100644 docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium.woff2 create mode 100644 docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Light.woff create mode 100644 docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Light.woff2 create mode 100644 docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Medium.woff create mode 100644 docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Medium.woff2 create mode 100644 docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff create mode 100644 docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff2 create mode 100644 docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff create mode 100644 docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff2 create mode 100644 docs/v1.1.1/_static/fonts/font-awesome.css create mode 100644 docs/v1.1.1/_static/fonts/material-icons.css create mode 100644 docs/v1.1.1/_static/fonts/specimen/FontAwesome.ttf create mode 100644 docs/v1.1.1/_static/fonts/specimen/FontAwesome.woff create mode 100644 docs/v1.1.1/_static/fonts/specimen/FontAwesome.woff2 create mode 100644 docs/v1.1.1/_static/fonts/specimen/MaterialIcons-Regular.ttf create mode 100644 docs/v1.1.1/_static/fonts/specimen/MaterialIcons-Regular.woff create mode 100644 docs/v1.1.1/_static/fonts/specimen/MaterialIcons-Regular.woff2 create mode 100644 docs/v1.1.1/_static/images/arrow-down-orange.svg create mode 100644 docs/v1.1.1/_static/images/arrow-right-with-tail.svg create mode 100644 docs/v1.1.1/_static/images/chevron-down-black.svg create mode 100644 docs/v1.1.1/_static/images/chevron-down-grey.svg create mode 100644 docs/v1.1.1/_static/images/chevron-down-orange.svg create mode 100644 docs/v1.1.1/_static/images/chevron-down-white.svg create mode 100644 docs/v1.1.1/_static/images/chevron-right-orange.svg create mode 100644 docs/v1.1.1/_static/images/chevron-right-white.svg create mode 100644 docs/v1.1.1/_static/images/favicon.png create mode 100644 docs/v1.1.1/_static/images/home-footer-background.jpg create mode 100644 docs/v1.1.1/_static/images/icon-close.svg create mode 100644 docs/v1.1.1/_static/images/icon-menu-dots-dark.svg create mode 100644 docs/v1.1.1/_static/images/icons/bitbucket.1b09e088.svg create mode 100644 docs/v1.1.1/_static/images/icons/bitbucket.svg create mode 100644 docs/v1.1.1/_static/images/icons/github.f0b8504a.svg create mode 100644 docs/v1.1.1/_static/images/icons/github.svg create mode 100644 docs/v1.1.1/_static/images/icons/gitlab.6dd19c00.svg create mode 100644 docs/v1.1.1/_static/images/icons/gitlab.svg create mode 100644 docs/v1.1.1/_static/images/logo-dark.svg create mode 100644 docs/v1.1.1/_static/images/logo-facebook-dark.svg create mode 100644 docs/v1.1.1/_static/images/logo-icon.svg create mode 100644 docs/v1.1.1/_static/images/logo-twitter-dark.svg create mode 100644 docs/v1.1.1/_static/images/logo-youtube-dark.svg create mode 100644 docs/v1.1.1/_static/images/logo.svg create mode 100644 docs/v1.1.1/_static/images/pytorch-colab.svg create mode 100644 docs/v1.1.1/_static/images/pytorch-download.svg create mode 100644 docs/v1.1.1/_static/images/pytorch-github.svg create mode 100644 docs/v1.1.1/_static/images/pytorch-x.svg create mode 100644 docs/v1.1.1/_static/images/search-icon.svg create mode 100644 docs/v1.1.1/_static/images/view-page-source-icon.svg create mode 100644 docs/v1.1.1/_static/javascripts/application.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.da.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.de.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.du.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.es.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.fi.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.fr.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.hu.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.it.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.ja.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.jp.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.multi.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.nl.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.no.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.pt.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.ro.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.ru.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.stemmer.support.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.sv.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.th.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/lunr.tr.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/tinyseg.js create mode 100644 docs/v1.1.1/_static/javascripts/lunr/wordcut.js create mode 100644 docs/v1.1.1/_static/javascripts/modernizr.js create mode 100644 docs/v1.1.1/_static/javascripts/version_dropdown.js create mode 100644 docs/v1.1.1/_static/jquery-3.5.1.js create mode 100644 docs/v1.1.1/_static/jquery.js create mode 100644 docs/v1.1.1/_static/jquery.min.map create mode 100644 docs/v1.1.1/_static/js/modernizr.min.js create mode 100644 docs/v1.1.1/_static/js/theme.js create mode 100644 docs/v1.1.1/_static/js/vendor/anchor.min.js create mode 100644 docs/v1.1.1/_static/js/vendor/bootstrap.min.js create mode 100644 docs/v1.1.1/_static/js/vendor/popper.min.js create mode 100644 docs/v1.1.1/_static/language_data.js create mode 100644 docs/v1.1.1/_static/material.css create mode 100644 docs/v1.1.1/_static/minus.png create mode 100644 docs/v1.1.1/_static/plus.png create mode 100644 docs/v1.1.1/_static/pygments.css create mode 100644 docs/v1.1.1/_static/searchtools.js create mode 100644 docs/v1.1.1/_static/stylesheets/application-fixes.css create mode 100644 docs/v1.1.1/_static/stylesheets/application-palette.css create mode 100644 docs/v1.1.1/_static/stylesheets/application.css create mode 100644 docs/v1.1.1/_static/underscore-1.13.1.js create mode 100644 docs/v1.1.1/_static/underscore-1.3.1.js create mode 100644 docs/v1.1.1/_static/underscore.js create mode 100644 docs/v1.1.1/cli/torchtrtc.html create mode 100644 docs/v1.1.1/contributors/conversion.html create mode 100644 docs/v1.1.1/contributors/lowering.html create mode 100644 docs/v1.1.1/contributors/partitioning.html create mode 100644 docs/v1.1.1/contributors/phases.html create mode 100644 docs/v1.1.1/contributors/runtime.html create mode 100644 docs/v1.1.1/contributors/system_overview.html create mode 100644 docs/v1.1.1/contributors/useful_links.html create mode 100644 docs/v1.1.1/contributors/writing_converters.html create mode 100644 docs/v1.1.1/genindex.html create mode 100644 docs/v1.1.1/getting_started/getting_started_with_cpp_api.html create mode 100644 docs/v1.1.1/getting_started/getting_started_with_python_api.html create mode 100644 docs/v1.1.1/getting_started/installation.html create mode 100644 docs/v1.1.1/index.html create mode 100644 docs/v1.1.1/indices/supported_ops.html create mode 100644 docs/v1.1.1/objects.inv create mode 100644 docs/v1.1.1/py-modindex.html create mode 100644 docs/v1.1.1/py_api/fx.html create mode 100644 docs/v1.1.1/py_api/logging.html create mode 100644 docs/v1.1.1/py_api/ptq.html create mode 100644 docs/v1.1.1/py_api/torch_tensorrt.html create mode 100644 docs/v1.1.1/py_api/ts.html create mode 100644 docs/v1.1.1/search.html create mode 100644 docs/v1.1.1/searchindex.js create mode 100644 docs/v1.1.1/sitemap.xml create mode 100644 docs/v1.1.1/src/pytorch-sphinx-theme/docs/changelog.html create mode 100644 docs/v1.1.1/src/pytorch-sphinx-theme/docs/configuring.html create mode 100644 docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/api.html create mode 100644 docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/demo.html create mode 100644 docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/lists_tables.html create mode 100644 docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/long.html create mode 100644 docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/structure.html create mode 100644 docs/v1.1.1/src/pytorch-sphinx-theme/docs/index.html create mode 100644 docs/v1.1.1/src/pytorch-sphinx-theme/docs/installing.html create mode 100644 docs/v1.1.1/tutorials/creating_torchscript_module_in_python.html create mode 100644 docs/v1.1.1/tutorials/getting_started_with_cpp_api.html create mode 100644 docs/v1.1.1/tutorials/getting_started_with_fx_path.html create mode 100644 docs/v1.1.1/tutorials/getting_started_with_python_api.html create mode 100644 docs/v1.1.1/tutorials/installation.html create mode 100644 docs/v1.1.1/tutorials/notebooks.html create mode 100644 docs/v1.1.1/tutorials/ptq.html create mode 100644 docs/v1.1.1/tutorials/runtime.html create mode 100644 docs/v1.1.1/tutorials/serving_torch_tensorrt_with_triton.html create mode 100644 docs/v1.1.1/tutorials/torchtrtc.html create mode 100644 docs/v1.1.1/tutorials/use_from_pytorch.html create mode 100644 docs/v1.1.1/tutorials/using_dla.html create mode 100644 docs/v1.2.0/.nojekyll create mode 100644 docs/v1.2.0/_cpp_api/class_view_hierarchy.html create mode 100644 docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1DataType.html create mode 100644 docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.html create mode 100644 docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1TensorFormat.html create mode 100644 docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.html create mode 100644 docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.html create mode 100644 docs/v1.2.0/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html create mode 100644 docs/v1.2.0/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.html create mode 100644 docs/v1.2.0/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.html create mode 100644 docs/v1.2.0/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.html create mode 100644 docs/v1.2.0/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.html create mode 100644 docs/v1.2.0/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html create mode 100644 docs/v1.2.0/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.html create mode 100644 docs/v1.2.0/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.html create mode 100644 docs/v1.2.0/_cpp_api/dir_cpp.html create mode 100644 docs/v1.2.0/_cpp_api/dir_cpp_include.html create mode 100644 docs/v1.2.0/_cpp_api/dir_cpp_include_torch_tensorrt.html create mode 100644 docs/v1.2.0/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.html create mode 100644 docs/v1.2.0/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.html create mode 100644 docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.html create mode 100644 docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.html create mode 100644 docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.html create mode 100644 docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.html create mode 100644 docs/v1.2.0/_cpp_api/file_view_hierarchy.html create mode 100644 docs/v1.2.0/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.html create mode 100644 docs/v1.2.0/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.html create mode 100644 docs/v1.2.0/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.html create mode 100644 docs/v1.2.0/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.html create mode 100644 docs/v1.2.0/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html create mode 100644 docs/v1.2.0/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.html create mode 100644 docs/v1.2.0/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.html create mode 100644 docs/v1.2.0/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.html create mode 100644 docs/v1.2.0/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.html create mode 100644 docs/v1.2.0/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.html create mode 100644 docs/v1.2.0/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.html create mode 100644 docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html create mode 100644 docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.html create mode 100644 docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.html create mode 100644 docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.html create mode 100644 docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html create mode 100644 docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html create mode 100644 docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html create mode 100644 docs/v1.2.0/_cpp_api/namespace_torch_tensorrt.html create mode 100644 docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__logging.html create mode 100644 docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__ptq.html create mode 100644 docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__torchscript.html create mode 100644 docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.html create mode 100644 docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.html create mode 100644 docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.html create mode 100644 docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.html create mode 100644 docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1Device.html create mode 100644 docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1GraphInputs.html create mode 100644 docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1Input.html create mode 100644 docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.html create mode 100644 docs/v1.2.0/_cpp_api/torch_tensort_cpp.html create mode 100644 docs/v1.2.0/_cpp_api/unabridged_api.html create mode 100644 docs/v1.2.0/_cpp_api/unabridged_orphan.html create mode 100644 docs/v1.2.0/_downloads/26d49aeeb9c710e27197fda28b7c3516/yi_jing_01_chien.jpg create mode 100644 docs/v1.2.0/_images/_notebooks_EfficientNet-example_12_0.png create mode 100644 docs/v1.2.0/_images/_notebooks_EfficientNet-example_16_2.png create mode 100644 docs/v1.2.0/_images/_notebooks_Resnet50-example_12_0.png create mode 100644 docs/v1.2.0/_images/_notebooks_Resnet50-example_16_1.png create mode 100644 docs/v1.2.0/_images/_notebooks_dynamic-shapes_14_1.png create mode 100644 docs/v1.2.0/_images/_notebooks_dynamic-shapes_8_0.png create mode 100644 docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_18_0.png create mode 100644 docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_18_1.png create mode 100644 docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_18_2.png create mode 100644 docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_35_0.png create mode 100644 docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_35_1.png create mode 100644 docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_35_2.png create mode 100644 docs/v1.2.0/_images/yi_jing_01_chien.jpg create mode 100644 docs/v1.2.0/_modules/index.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/_Device.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/_Input.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/_compile.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/_util.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/fx/fx2trt.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/fx/input_tensor_spec.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/fx/lower.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/fx/trt_module.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/logging.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/ptq.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/ts/_compile_spec.html create mode 100644 docs/v1.2.0/_modules/torch_tensorrt/ts/_compiler.html create mode 100644 docs/v1.2.0/_notebooks/CitriNet-example.html create mode 100644 docs/v1.2.0/_notebooks/CitriNet-example.ipynb create mode 100644 docs/v1.2.0/_notebooks/EfficientNet-example.html create mode 100644 docs/v1.2.0/_notebooks/EfficientNet-example.ipynb create mode 100644 docs/v1.2.0/_notebooks/Hugging-Face-BERT.html create mode 100644 docs/v1.2.0/_notebooks/Hugging-Face-BERT.ipynb create mode 100644 docs/v1.2.0/_notebooks/Resnet50-example.html create mode 100644 docs/v1.2.0/_notebooks/Resnet50-example.ipynb create mode 100644 docs/v1.2.0/_notebooks/dynamic-shapes.html create mode 100644 docs/v1.2.0/_notebooks/dynamic-shapes.ipynb create mode 100644 docs/v1.2.0/_notebooks/lenet-getting-started.html create mode 100644 docs/v1.2.0/_notebooks/lenet-getting-started.ipynb create mode 100644 docs/v1.2.0/_notebooks/ssd-object-detection-demo.html create mode 100644 docs/v1.2.0/_notebooks/ssd-object-detection-demo.ipynb create mode 100644 docs/v1.2.0/_notebooks/vgg-qat.html create mode 100644 docs/v1.2.0/_notebooks/vgg-qat.ipynb create mode 100644 docs/v1.2.0/_sources/_cpp_api/class_view_hierarchy.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1DataType.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/dir_cpp.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/dir_cpp_include.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/dir_cpp_include_torch_tensorrt.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/file_view_hierarchy.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__logging.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__ptq.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__torchscript.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1Device.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1Input.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/torch_tensort_cpp.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/unabridged_api.rst.txt create mode 100644 docs/v1.2.0/_sources/_cpp_api/unabridged_orphan.rst.txt create mode 100644 docs/v1.2.0/_sources/_notebooks/CitriNet-example.ipynb.txt create mode 100644 docs/v1.2.0/_sources/_notebooks/EfficientNet-example.ipynb.txt create mode 100644 docs/v1.2.0/_sources/_notebooks/Hugging-Face-BERT.ipynb.txt create mode 100644 docs/v1.2.0/_sources/_notebooks/Resnet50-example.ipynb.txt create mode 100644 docs/v1.2.0/_sources/_notebooks/dynamic-shapes.ipynb.txt create mode 100644 docs/v1.2.0/_sources/_notebooks/lenet-getting-started.ipynb.txt create mode 100644 docs/v1.2.0/_sources/_notebooks/ssd-object-detection-demo.ipynb.txt create mode 100644 docs/v1.2.0/_sources/_notebooks/vgg-qat.ipynb.txt create mode 100644 docs/v1.2.0/_sources/cli/torchtrtc.rst.txt create mode 100644 docs/v1.2.0/_sources/contributors/conversion.rst.txt create mode 100644 docs/v1.2.0/_sources/contributors/lowering.rst.txt create mode 100644 docs/v1.2.0/_sources/contributors/partitioning.rst.txt create mode 100644 docs/v1.2.0/_sources/contributors/phases.rst.txt create mode 100644 docs/v1.2.0/_sources/contributors/runtime.rst.txt create mode 100644 docs/v1.2.0/_sources/contributors/system_overview.rst.txt create mode 100644 docs/v1.2.0/_sources/contributors/useful_links.rst.txt create mode 100644 docs/v1.2.0/_sources/contributors/writing_converters.rst.txt create mode 100644 docs/v1.2.0/_sources/getting_started/getting_started_with_cpp_api.rst.txt create mode 100644 docs/v1.2.0/_sources/getting_started/getting_started_with_python_api.rst.txt create mode 100644 docs/v1.2.0/_sources/getting_started/getting_started_with_windows.rst.txt create mode 100644 docs/v1.2.0/_sources/getting_started/installation.rst.txt create mode 100644 docs/v1.2.0/_sources/index.rst.txt create mode 100644 docs/v1.2.0/_sources/indices/supported_ops.rst.txt create mode 100644 docs/v1.2.0/_sources/py_api/fx.rst.txt create mode 100644 docs/v1.2.0/_sources/py_api/logging.rst.txt create mode 100644 docs/v1.2.0/_sources/py_api/ptq.rst.txt create mode 100644 docs/v1.2.0/_sources/py_api/torch_tensorrt.rst.txt create mode 100644 docs/v1.2.0/_sources/py_api/ts.rst.txt create mode 100644 docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/changelog.rst.txt create mode 100644 docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/configuring.rst.txt create mode 100644 docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/api.rst.txt create mode 100644 docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/demo.rst.txt create mode 100644 docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/lists_tables.rst.txt create mode 100644 docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/long.rst.txt create mode 100644 docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/structure.rst.txt create mode 100644 docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/index.rst.txt create mode 100644 docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/installing.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/creating_torchscript_module_in_python.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/getting_started_with_cpp_api.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/getting_started_with_fx_path.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/getting_started_with_python_api.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/installation.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/notebooks.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/ptq.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/runtime.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/serving_torch_tensorrt_with_triton.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/torchtrtc.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/use_from_pytorch.rst.txt create mode 100644 docs/v1.2.0/_sources/tutorials/using_dla.rst.txt create mode 100644 docs/v1.2.0/_static/basic.css create mode 100644 docs/v1.2.0/_static/collapsible-lists/LICENSE.md create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/button-closed.png create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/button-open.png create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/button.png create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/list-item-contents.png create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/list-item-last-open.png create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/list-item-last.png create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/list-item-open.png create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/list-item-root.png create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/list-item.png create mode 100644 docs/v1.2.0/_static/collapsible-lists/css/tree_view.css create mode 100644 docs/v1.2.0/_static/collapsible-lists/js/CollapsibleLists.compressed.js create mode 100644 docs/v1.2.0/_static/collapsible-lists/js/apply-collapsible-lists.js create mode 100644 docs/v1.2.0/_static/css/theme.css create mode 100644 docs/v1.2.0/_static/doctools.js create mode 100644 docs/v1.2.0/_static/documentation_options.js create mode 100644 docs/v1.2.0/_static/file.png create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-bold-italic.woff create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-bold-italic.woff2 create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-bold.woff create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-bold.woff2 create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-book-italic.woff create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-book-italic.woff2 create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-book.woff create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-book.woff2 create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-light-italic.woff create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-light-italic.woff2 create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-light.woff create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-light.woff2 create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium-italic.woff create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium-italic.woff2 create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium.woff create mode 100644 docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium.woff2 create mode 100644 docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Light.woff create mode 100644 docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Light.woff2 create mode 100644 docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Medium.woff create mode 100644 docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Medium.woff2 create mode 100644 docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff create mode 100644 docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff2 create mode 100644 docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff create mode 100644 docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff2 create mode 100644 docs/v1.2.0/_static/fonts/font-awesome.css create mode 100644 docs/v1.2.0/_static/fonts/material-icons.css create mode 100644 docs/v1.2.0/_static/fonts/specimen/FontAwesome.ttf create mode 100644 docs/v1.2.0/_static/fonts/specimen/FontAwesome.woff create mode 100644 docs/v1.2.0/_static/fonts/specimen/FontAwesome.woff2 create mode 100644 docs/v1.2.0/_static/fonts/specimen/MaterialIcons-Regular.ttf create mode 100644 docs/v1.2.0/_static/fonts/specimen/MaterialIcons-Regular.woff create mode 100644 docs/v1.2.0/_static/fonts/specimen/MaterialIcons-Regular.woff2 create mode 100644 docs/v1.2.0/_static/images/arrow-down-orange.svg create mode 100644 docs/v1.2.0/_static/images/arrow-right-with-tail.svg create mode 100644 docs/v1.2.0/_static/images/chevron-down-black.svg create mode 100644 docs/v1.2.0/_static/images/chevron-down-grey.svg create mode 100644 docs/v1.2.0/_static/images/chevron-down-orange.svg create mode 100644 docs/v1.2.0/_static/images/chevron-down-white.svg create mode 100644 docs/v1.2.0/_static/images/chevron-right-orange.svg create mode 100644 docs/v1.2.0/_static/images/chevron-right-white.svg create mode 100644 docs/v1.2.0/_static/images/favicon.png create mode 100644 docs/v1.2.0/_static/images/home-footer-background.jpg create mode 100644 docs/v1.2.0/_static/images/icon-close.svg create mode 100644 docs/v1.2.0/_static/images/icon-menu-dots-dark.svg create mode 100644 docs/v1.2.0/_static/images/icons/bitbucket.1b09e088.svg create mode 100644 docs/v1.2.0/_static/images/icons/bitbucket.svg create mode 100644 docs/v1.2.0/_static/images/icons/github.f0b8504a.svg create mode 100644 docs/v1.2.0/_static/images/icons/github.svg create mode 100644 docs/v1.2.0/_static/images/icons/gitlab.6dd19c00.svg create mode 100644 docs/v1.2.0/_static/images/icons/gitlab.svg create mode 100644 docs/v1.2.0/_static/images/logo-dark.svg create mode 100644 docs/v1.2.0/_static/images/logo-facebook-dark.svg create mode 100644 docs/v1.2.0/_static/images/logo-icon.svg create mode 100644 docs/v1.2.0/_static/images/logo-twitter-dark.svg create mode 100644 docs/v1.2.0/_static/images/logo-youtube-dark.svg create mode 100644 docs/v1.2.0/_static/images/logo.svg create mode 100644 docs/v1.2.0/_static/images/pytorch-colab.svg create mode 100644 docs/v1.2.0/_static/images/pytorch-download.svg create mode 100644 docs/v1.2.0/_static/images/pytorch-github.svg create mode 100644 docs/v1.2.0/_static/images/pytorch-x.svg create mode 100644 docs/v1.2.0/_static/images/search-icon.svg create mode 100644 docs/v1.2.0/_static/images/view-page-source-icon.svg create mode 100644 docs/v1.2.0/_static/javascripts/application.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.da.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.de.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.du.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.es.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.fi.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.fr.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.hu.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.it.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.ja.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.jp.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.multi.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.nl.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.no.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.pt.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.ro.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.ru.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.stemmer.support.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.sv.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.th.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/lunr.tr.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/tinyseg.js create mode 100644 docs/v1.2.0/_static/javascripts/lunr/wordcut.js create mode 100644 docs/v1.2.0/_static/javascripts/modernizr.js create mode 100644 docs/v1.2.0/_static/javascripts/version_dropdown.js create mode 100644 docs/v1.2.0/_static/jquery-3.5.1.js create mode 100644 docs/v1.2.0/_static/jquery.js create mode 100644 docs/v1.2.0/_static/jquery.min.map create mode 100644 docs/v1.2.0/_static/js/modernizr.min.js create mode 100644 docs/v1.2.0/_static/js/theme.js create mode 100644 docs/v1.2.0/_static/js/vendor/anchor.min.js create mode 100644 docs/v1.2.0/_static/js/vendor/bootstrap.min.js create mode 100644 docs/v1.2.0/_static/js/vendor/popper.min.js create mode 100644 docs/v1.2.0/_static/language_data.js create mode 100644 docs/v1.2.0/_static/material.css create mode 100644 docs/v1.2.0/_static/minus.png create mode 100644 docs/v1.2.0/_static/plus.png create mode 100644 docs/v1.2.0/_static/pygments.css create mode 100644 docs/v1.2.0/_static/searchtools.js create mode 100644 docs/v1.2.0/_static/stylesheets/application-fixes.css create mode 100644 docs/v1.2.0/_static/stylesheets/application-palette.css create mode 100644 docs/v1.2.0/_static/stylesheets/application.css create mode 100644 docs/v1.2.0/_static/underscore-1.13.1.js create mode 100644 docs/v1.2.0/_static/underscore-1.3.1.js create mode 100644 docs/v1.2.0/_static/underscore.js create mode 100644 docs/v1.2.0/cli/torchtrtc.html create mode 100644 docs/v1.2.0/contributors/conversion.html create mode 100644 docs/v1.2.0/contributors/lowering.html create mode 100644 docs/v1.2.0/contributors/partitioning.html create mode 100644 docs/v1.2.0/contributors/phases.html create mode 100644 docs/v1.2.0/contributors/runtime.html create mode 100644 docs/v1.2.0/contributors/system_overview.html create mode 100644 docs/v1.2.0/contributors/useful_links.html create mode 100644 docs/v1.2.0/contributors/writing_converters.html create mode 100644 docs/v1.2.0/genindex.html create mode 100644 docs/v1.2.0/getting_started/getting_started_with_cpp_api.html create mode 100644 docs/v1.2.0/getting_started/getting_started_with_python_api.html create mode 100644 docs/v1.2.0/getting_started/getting_started_with_windows.html create mode 100644 docs/v1.2.0/getting_started/installation.html create mode 100644 docs/v1.2.0/index.html create mode 100644 docs/v1.2.0/indices/supported_ops.html create mode 100644 docs/v1.2.0/objects.inv create mode 100644 docs/v1.2.0/py-modindex.html create mode 100644 docs/v1.2.0/py_api/fx.html create mode 100644 docs/v1.2.0/py_api/logging.html create mode 100644 docs/v1.2.0/py_api/ptq.html create mode 100644 docs/v1.2.0/py_api/torch_tensorrt.html create mode 100644 docs/v1.2.0/py_api/ts.html create mode 100644 docs/v1.2.0/search.html create mode 100644 docs/v1.2.0/searchindex.js create mode 100644 docs/v1.2.0/sitemap.xml create mode 100644 docs/v1.2.0/src/pytorch-sphinx-theme/docs/changelog.html create mode 100644 docs/v1.2.0/src/pytorch-sphinx-theme/docs/configuring.html create mode 100644 docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/api.html create mode 100644 docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/demo.html create mode 100644 docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/lists_tables.html create mode 100644 docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/long.html create mode 100644 docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/structure.html create mode 100644 docs/v1.2.0/src/pytorch-sphinx-theme/docs/index.html create mode 100644 docs/v1.2.0/src/pytorch-sphinx-theme/docs/installing.html create mode 100644 docs/v1.2.0/tutorials/creating_torchscript_module_in_python.html create mode 100644 docs/v1.2.0/tutorials/getting_started_with_cpp_api.html create mode 100644 docs/v1.2.0/tutorials/getting_started_with_fx_path.html create mode 100644 docs/v1.2.0/tutorials/getting_started_with_python_api.html create mode 100644 docs/v1.2.0/tutorials/installation.html create mode 100644 docs/v1.2.0/tutorials/notebooks.html create mode 100644 docs/v1.2.0/tutorials/ptq.html create mode 100644 docs/v1.2.0/tutorials/runtime.html create mode 100644 docs/v1.2.0/tutorials/serving_torch_tensorrt_with_triton.html create mode 100644 docs/v1.2.0/tutorials/torchtrtc.html create mode 100644 docs/v1.2.0/tutorials/use_from_pytorch.html create mode 100644 docs/v1.2.0/tutorials/using_dla.html diff --git a/docs/v1.1.1/.nojekyll b/docs/v1.1.1/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/v1.1.1/_cpp_api/class_view_hierarchy.html b/docs/v1.1.1/_cpp_api/class_view_hierarchy.html new file mode 100644 index 0000000000..4460f7b720 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/class_view_hierarchy.html @@ -0,0 +1,610 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Class Hierarchy — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

+ Class Hierarchy + + ¶ + +

+ + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1DataType.html b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1DataType.html new file mode 100644 index 0000000000..8bfc65040d --- /dev/null +++ b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1DataType.html @@ -0,0 +1,1337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Class DataType — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Class DataType + + ¶ + +

+ +

+ Class Documentation + + ¶ + +

+
+
+ + + + class + + + torch_tensorrt + + :: + + + + DataType + + + ¶ + +
+
+
+

+ Supported Data Types that can be used with TensorRT engines +

+

+ This class is compatable with c10::DataTypes (but will check for TRT support) so there should not be a reason that you need to use this type explictly. +

+
+

+ Public Types +

+
+
+ + + + enum + + + Value + + + ¶ + +
+
+
+

+ Underlying enum class to support the + + + DataType + + + Class +

+

+ In the case that you need to use the + + + DataType + + + class itself, interface using this enum vs. normal instatination +

+

+ ex. + + + torch_tensorrt::DataType + + + type = + + + DataType::kFloat + + + ; +

+

+ + Values: + +

+
+
+ + + + enumerator + + + kFloat + + + ¶ + +
+
+
+

+ FP32. +

+
+
+
+
+ + + + enumerator + + + kHalf + + + ¶ + +
+
+
+

+ FP16. +

+
+
+
+
+ + + + enumerator + + + kChar + + + ¶ + +
+
+
+

+ INT8. +

+
+
+
+
+ + + + enumerator + + + kInt + + + ¶ + +
+
+
+

+ INT. +

+
+
+
+
+ + + + enumerator + + + kBool + + + ¶ + +
+
+
+

+ Bool. +

+
+
+
+
+ + + + enumerator + + + kUnknown + + + ¶ + +
+
+
+

+ Sentinel value. +

+
+
+
+
+
+
+

+ Public Functions +

+
+
+ + + + DataType + + + ( + + + ) + + = default + + ¶ + +
+
+
+

+ Construct a new Data Type object. +

+
+
+
+
+ + + + constexpr + + + DataType + + + ( + + + Value + + + t + + + ) + + + ¶ + +
+
+
+

+ + + DataType + + + constructor from enum. +

+
+
+
+
+ + + + DataType + + + ( + + c10::ScalarType + + t + + + ) + + + ¶ + +
+
+
+

+ Construct a new Data Type object from torch type enums. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + t + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + operator Value + + + ( + + + ) + + + const + + + ¶ + +
+
+
+

+ Get the enum value of the + + + DataType + + + object. +

+

+

+
+
+ + Return + +
+
+

+ Value +

+
+
+
+
+
+
+ + + + operator bool + + + ( + + + ) + + = delete + + ¶ + +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator== + + + ( + + + DataType + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparision operator for + + + DataType + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator== + + + ( + + + DataType + + :: + + Value + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparision operator for + + + DataType + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator!= + + + ( + + + DataType + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparision operator for + + + DataType + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator!= + + + ( + + + DataType + + :: + + Value + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparision operator for + + + DataType + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.html b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.html new file mode 100644 index 0000000000..3701e66c24 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.html @@ -0,0 +1,1132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Class Device::DeviceType — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+ + +

+ Class Device::DeviceType + + ¶ + +

+ +

+ Nested Relationships + + ¶ + +

+

+ This class is a nested type of + + + Struct Device + + + . +

+

+ Class Documentation + + ¶ + +

+
+
+ + + + class + + + torch_tensorrt:: + + Device + + + :: + + + + DeviceType + + + ¶ + +
+
+
+

+ Supported + + + Device + + + Types that can be used with TensorRT engines +

+

+ This class is compatable with c10::DeviceTypes (but will check for TRT support) but the only applicable value is at::kCUDA, which maps to + + + DeviceType::kGPU + + +

+

+ To use the + + + DataType + + + class itself, interface using the enum vs. normal instatination +

+

+ ex. torch_tensorrt::DeviceType type = + + + DeviceType::kGPU + + + ; +

+
+

+ Public Types +

+
+
+ + + + enum + + + Value + + + ¶ + +
+
+
+

+ Underlying enum class to support the + + + DeviceType + + + Class +

+

+ In the case that you need to use the + + + DeviceType + + + class itself, interface using this enum vs. normal instatination +

+

+ ex. torch_tensorrt::DeviceType type = + + + DeviceType::kGPU + + + ; +

+

+ + Values: + +

+
+
+ + + + enumerator + + + kGPU + + + ¶ + +
+
+
+

+ Target GPU to run engine. +

+
+
+
+
+ + + + enumerator + + + kDLA + + + ¶ + +
+
+
+

+ Target DLA to run engine. +

+
+
+
+
+
+
+

+ Public Functions +

+
+
+ + + + DeviceType + + + ( + + + ) + + = default + + ¶ + +
+
+
+

+ Construct a new + + + Device + + + Type object. +

+
+
+
+
+ + + + constexpr + + + DeviceType + + + ( + + + Value + + + t + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Device + + + Type object from internal enum. +

+
+
+
+
+ + + + DeviceType + + + ( + + c10::DeviceType + + t + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Device + + + Type object from torch device enums Note: The only valid value is torch::kCUDA (torch::kCPU is not supported) +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + t + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + operator Value + + + ( + + + ) + + + const + + + ¶ + +
+
+
+

+ Get the internal value from the + + + Device + + + object. +

+

+

+
+
+ + Return + +
+
+

+ Value +

+
+
+
+
+
+
+ + + + operator bool + + + ( + + + ) + + = delete + + ¶ + +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator== + + + ( + + + DeviceType + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparison operator for + + + DeviceType + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator!= + + + ( + + + DeviceType + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparison operator for + + + DeviceType + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1TensorFormat.html b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1TensorFormat.html new file mode 100644 index 0000000000..bf4b8abe12 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1TensorFormat.html @@ -0,0 +1,1288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Class TensorFormat — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Class TensorFormat + + ¶ + +

+ +

+ Class Documentation + + ¶ + +

+
+
+ + + + class + + + torch_tensorrt + + :: + + + + TensorFormat + + + ¶ + +
+
+
+

+ + + TensorFormat + + + is an enum class which defines the memeory layout used to store Tensor Data. +

+
+

+ Public Types +

+
+
+ + + + enum + + + Value + + + ¶ + +
+
+
+

+ Underlying enum class to support the + + + TensorFormat + + + Class +

+

+ In the case that you need to use the + + + TensorFormat + + + class itself, interface using this enum vs. normal instatination +

+

+ ex. + + + torch_tensorrt::TensorFormat + + + type = + + + TensorFormat::kContiguous + + + ; +

+

+ + Values: + +

+
+
+ + + + enumerator + + + kContiguous + + + ¶ + +
+
+
+

+ Contiguous / NCHW / Linear. +

+
+
+
+
+ + + + enumerator + + + kChannelsLast + + + ¶ + +
+
+
+

+ Channel Last / NHWC. +

+
+
+
+
+ + + + enumerator + + + kUnknown + + + ¶ + +
+
+
+

+ Sentinel value. +

+
+
+
+
+
+
+

+ Public Functions +

+
+
+ + + + TensorFormat + + + ( + + + ) + + = default + + ¶ + +
+
+
+

+ Construct a new + + + TensorFormat + + + object. +

+
+
+
+
+ + + + constexpr + + + TensorFormat + + + ( + + + Value + + + t + + + ) + + + ¶ + +
+
+
+

+ + + TensorFormat + + + constructor from enum. +

+
+
+
+
+ + + + TensorFormat + + + ( + + at::MemoryFormat + + t + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + TensorFormat + + + object from torch type enums. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + t + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + operator Value + + + ( + + + ) + + + const + + + ¶ + +
+
+
+

+ Get the enum value of the + + + TensorFormat + + + object. +

+

+

+
+
+ + Return + +
+
+

+ Value +

+
+
+
+
+
+
+ + + + operator bool + + + ( + + + ) + + = delete + + ¶ + +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator== + + + ( + + + TensorFormat + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparision operator for + + + TensorFormat + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator== + + + ( + + + TensorFormat + + :: + + Value + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparision operator for + + + TensorFormat + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator!= + + + ( + + + TensorFormat + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparision operator for + + + TensorFormat + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator!= + + + ( + + + TensorFormat + + :: + + Value + + + other + + + ) + + + const + + + ¶ + +
+
+
+

+ Comparision operator for + + + TensorFormat + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.html b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.html new file mode 100644 index 0000000000..1be24327bc --- /dev/null +++ b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.html @@ -0,0 +1,1092 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Template Class Int8CacheCalibrator — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Template Class Int8CacheCalibrator + + ¶ + +

+ +

+ Inheritance Relationships + + ¶ + +

+

+ Base Type + + ¶ + +

+
    +
  • +

    + + + private + + + Algorithm + + +

    +
  • +
+

+ Class Documentation + + ¶ + +

+
+
+ template<typename + + Algorithm + + > +
+ + + + class + + + torch_tensorrt::ptq + + :: + + + + Int8CacheCalibrator + + : + + private + + + Algorithm + + + ¶ + +
+
+
+

+ Generic + + + Int8Calibrator + + + implementation based on a specified TensorRT calibration algorithm that only reads from a calibration file. +

+

+

+
+
+ + Template Parameters + +
+
+
    +
  • +

    + + + Algorithm + + + : class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use +

    +
  • +
+
+
+
+

+ Public Functions +

+
+
+ + + + Int8CacheCalibrator + + + ( + + + const + + std::string & + + cache_file_path + + + ) + + + ¶ + +
+
+
+

+ Construct a new Int 8 Cache Calibrator object. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + cache_file_path + + + : +

    +
  • +
+
+
+
+
+
+
+ + + int + + getBatchSize + + + ( + + + ) + + + const + + + noexcept + + + override + + + ¶ + +
+
+
+

+ Get the Batch Size for the next batch (always 1 due to issues with TRT and explicit batch) +

+

+

+
+
+ + Return + +
+
+

+ int +

+
+
+
+
+
+
+ + + bool + + getBatch + + + ( + + void * + + bindings + + [], + + const + + char * + + names + + [], int + + nbBindings + + + ) + + + noexcept + + + override + + + ¶ + +
+
+
+

+ Get the next Batch. +

+

+ Not used always returns false +

+

+

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + bindings + + + : void*[] - An array of binding pointers (fed in from TensorRT calibrator), these buffers should be filed with batch data for each input +

    +
  • +
  • +

    + + + names + + + : const char*[] - Names of bindings +

    +
  • +
  • +

    + + + nbBindings + + + : int - Number of bindings +

    +
  • +
+
+
+
+
+
+
+ + + + const + + void * + + readCalibrationCache + + + ( + + size_t & + + length + + + ) + + + noexcept + + + override + + + ¶ + +
+
+
+

+ Read calibration cache. +

+

+ How to read from the calibration cache, only enabled if use_cache is set +

+

+

+
+
+ + Return + +
+
+

+ const void* - Pointer to cache data +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + length + + + : +

    +
  • +
+
+
+
+
+
+
+ + + void + + writeCalibrationCache + + + ( + + + const + + void * + + cache + + , size_t + + length + + + ) + + + noexcept + + + override + + + ¶ + +
+
+
+

+ Write calibration cache. +

+

+ Write a the calibration cache provided by TensorRT to a specified file +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + cache + + + : const void* - cache data +

    +
  • +
  • +

    + + + length + + + : size_t - length of cache +

    +
  • +
+
+
+
+
+
+
+ + + + operator nvinfer1::IInt8Calibrator* + + + ( + + + ) + + + ¶ + +
+
+
+

+ operator to cast to nvinfer1::IInt8Calibrator* +

+

+ Convience function to convert to a IInt8Calibrator* to easily be assigned to the ptq_calibrator field in CompileSpec +

+

+

+
+
+ + Return + +
+
+

+ nvinfer1::IInt8Calibrator* +

+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.html b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.html new file mode 100644 index 0000000000..dcb11b151e --- /dev/null +++ b/docs/v1.1.1/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.html @@ -0,0 +1,1153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Template Class Int8Calibrator — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Template Class Int8Calibrator + + ¶ + +

+ +

+ Inheritance Relationships + + ¶ + +

+

+ Base Type + + ¶ + +

+
    +
  • +

    + + + private + + + Algorithm + + +

    +
  • +
+

+ Class Documentation + + ¶ + +

+
+
+ template<typename + + Algorithm + + , typename + + DataLoaderUniquePtr + + > +
+ + + + class + + + torch_tensorrt::ptq + + :: + + + + Int8Calibrator + + : + + private + + + Algorithm + + + ¶ + +
+
+
+

+ Generic + + + Int8Calibrator + + + implementation based on a specified TensorRT calibration algorithm and a LibTorch DataLoader. +

+

+

+
+
+ + Template Parameters + +
+
+
    +
  • +

    + + + Algorithm + + + : class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use +

    +
  • +
  • +

    + + + DataLoaderUniquePtr + + + : std::unique_ptr<torch::data::DataLoader> - DataLoader type +

    +
  • +
+
+
+
+

+ Public Functions +

+
+
+ + + + Int8Calibrator + + + ( + + + DataLoaderUniquePtr + + + dataloader + + , + + const + + std::string & + + cache_file_path + + , bool + + use_cache + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Int8Calibrator + + + object. +

+

+ Using the provided DataLoader, construct a calibrator that can be used for PTQ with Torch-TensorRT +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + dataloader + + + : std::unqiue_ptr<torch::data::DataLoader> - A unique pointer to the DataLoader, should be what is returned from the make_data_loader factory +

    +
  • +
  • +

    + + + cache_file_path + + + : const std::string& - A path to store / find the calibration cache +

    +
  • +
  • +

    + + + use_cache + + + : : bool - Whether to use the cache (if it exists) +

    +
  • +
+
+
+
+
+
+
+ + + int + + getBatchSize + + + ( + + + ) + + + const + + + noexcept + + + override + + + ¶ + +
+
+
+

+ Get the Batch Size for the next batch (always 1 due to issues with TRT and explicit batch) +

+

+

+
+
+ + Return + +
+
+

+ int +

+
+
+
+
+
+
+ + + bool + + getBatch + + + ( + + void * + + bindings + + [], + + const + + char * + + names + + [], int + + nbBindings + + + ) + + + noexcept + + + override + + + ¶ + +
+
+
+

+ Get the next Batch. +

+

+

+
+
+ + Return + +
+
+

+ true - There is a new batch for the calibrator to consume +

+
+
+ + Return + +
+
+

+ false - There is not a new batch for the calibrator to consume +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + bindings + + + : void*[] - An array of binding pointers (fed in from TensorRT calibrator), these buffers should be filed with batch data for each input +

    +
  • +
  • +

    + + + names + + + : const char*[] - Names of bindings +

    +
  • +
  • +

    + + + nbBindings + + + : int - Number of bindings +

    +
  • +
+
+
+
+
+
+
+ + + + const + + void * + + readCalibrationCache + + + ( + + size_t & + + length + + + ) + + + noexcept + + + override + + + ¶ + +
+
+
+

+ Read calibration cache. +

+

+ How to read from the calibration cache, only enabled if use_cache is set +

+

+

+
+
+ + Return + +
+
+

+ const void* - Pointer to cache data +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + length + + + : +

    +
  • +
+
+
+
+
+
+
+ + + void + + writeCalibrationCache + + + ( + + + const + + void * + + cache + + , size_t + + length + + + ) + + + noexcept + + + override + + + ¶ + +
+
+
+

+ Write calibration cache. +

+

+ Write a the calibration cache provided by TensorRT to a specified file +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + cache + + + : const void* - cache data +

    +
  • +
  • +

    + + + length + + + : size_t - length of cache +

    +
  • +
+
+
+
+
+
+
+ + + + operator nvinfer1::IInt8Calibrator* + + + ( + + + ) + + + ¶ + +
+
+
+

+ operator to cast to nvinfer1::IInt8Calibrator* +

+

+ Convience function to convert to a IInt8Calibrator* to easily be assigned to the ptq_calibrator field in CompileSpec +

+

+

+
+
+ + Return + +
+
+

+ nvinfer1::IInt8Calibrator* +

+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html b/docs/v1.1.1/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html new file mode 100644 index 0000000000..89c58b3b19 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html @@ -0,0 +1,604 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Define STR — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.html b/docs/v1.1.1/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.html new file mode 100644 index 0000000000..a5fe113deb --- /dev/null +++ b/docs/v1.1.1/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.html @@ -0,0 +1,595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Define TORCH_TENSORRT_PATCH_VERSION — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.html b/docs/v1.1.1/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.html new file mode 100644 index 0000000000..ec0799846e --- /dev/null +++ b/docs/v1.1.1/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.html @@ -0,0 +1,595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Define TORCH_TENSORRT_MAJOR_VERSION — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.html b/docs/v1.1.1/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.html new file mode 100644 index 0000000000..7c4c94d1eb --- /dev/null +++ b/docs/v1.1.1/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.html @@ -0,0 +1,595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Define TORCH_TENSORRT_MINOR_VERSION — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.html b/docs/v1.1.1/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.html new file mode 100644 index 0000000000..f200560e9c --- /dev/null +++ b/docs/v1.1.1/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.html @@ -0,0 +1,595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Define TORCHTRT_API — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html b/docs/v1.1.1/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html new file mode 100644 index 0000000000..57cd407127 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html @@ -0,0 +1,604 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Define XSTR — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.html b/docs/v1.1.1/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.html new file mode 100644 index 0000000000..f8d29e1130 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.html @@ -0,0 +1,595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Define TORCHTRT_HIDDEN — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.html b/docs/v1.1.1/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.html new file mode 100644 index 0000000000..c1f94d0bb9 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.html @@ -0,0 +1,595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Define TORCH_TENSORRT_VERSION — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/dir_cpp.html b/docs/v1.1.1/_cpp_api/dir_cpp.html new file mode 100644 index 0000000000..c600255227 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/dir_cpp.html @@ -0,0 +1,554 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Directory cpp — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/dir_cpp_include.html b/docs/v1.1.1/_cpp_api/dir_cpp_include.html new file mode 100644 index 0000000000..fc278ff073 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/dir_cpp_include.html @@ -0,0 +1,569 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Directory include — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/dir_cpp_include_torch_tensorrt.html b/docs/v1.1.1/_cpp_api/dir_cpp_include_torch_tensorrt.html new file mode 100644 index 0000000000..6d8fb0e179 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/dir_cpp_include_torch_tensorrt.html @@ -0,0 +1,596 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Directory tensorrt — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.html b/docs/v1.1.1/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.html new file mode 100644 index 0000000000..bad6426bad --- /dev/null +++ b/docs/v1.1.1/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.html @@ -0,0 +1,738 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Enum Level — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Enum Level + + ¶ + +

+ +

+ Enum Documentation + + ¶ + +

+
+
+ + + + enum + + + torch_tensorrt::logging + + :: + + + + Level + + + ¶ + +
+
+
+

+ Emum for setting message severity +

+

+ + Values: + +

+
+
+ + + + enumerator + + + kINTERNAL_ERROR + + + ¶ + +
+
+
+

+ Only print messages for internal errors. +

+
+
+
+
+ + + + enumerator + + + kERROR + + + ¶ + +
+
+
+

+ Print all internal errors and errors (default) +

+
+
+
+
+ + + + enumerator + + + kWARNING + + + ¶ + +
+
+
+

+ Print warnings and errors. +

+
+
+
+
+ + + + enumerator + + + kINFO + + + ¶ + +
+
+
+

+ Print all info, warnings and errors. +

+
+
+
+
+ + + + enumerator + + + kDEBUG + + + ¶ + +
+
+
+

+ Print all debug info, info, warnings and errors. +

+
+
+
+
+ + + + enumerator + + + kGRAPH + + + ¶ + +
+
+
+

+ Print everything including the intermediate graphs of the lowering phase. +

+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.html b/docs/v1.1.1/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.html new file mode 100644 index 0000000000..22b3544617 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.html @@ -0,0 +1,666 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Enum EngineCapability — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Enum EngineCapability + + ¶ + +

+ +

+ Enum Documentation + + ¶ + +

+
+
+ + + + enum + + + torch_tensorrt + + :: + + + + EngineCapability + + + ¶ + +
+
+
+

+ Emum for selecting engine capability +

+

+ + Values: + +

+
+
+ + + + enumerator + + + kSTANDARD + + + ¶ + +
+
+
+
+
+
+
+ + + + enumerator + + + kSAFETY + + + ¶ + +
+
+
+
+
+
+
+ + + + enumerator + + + kDLA_STANDALONE + + + ¶ + +
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.html b/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.html new file mode 100644 index 0000000000..03d8ff0934 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.html @@ -0,0 +1,813 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + File logging.h — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ + +
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.html b/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.html new file mode 100644 index 0000000000..4134349068 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.html @@ -0,0 +1,757 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + File macros.h — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ + +
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.html b/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.html new file mode 100644 index 0000000000..b5c5566a8f --- /dev/null +++ b/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.html @@ -0,0 +1,820 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + File ptq.h — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ File ptq.h + + ¶ + +

+

+ ↰ + + + Parent directory + + + ( + + + cpp/include/torch_tensorrt + + + ) +

+ +

+ Definition ( + + + cpp/include/torch_tensorrt/ptq.h + + + ) + + ¶ + +

+ +

+ Includes + + ¶ + +

+
    +
  • +

    + + + NvInfer.h + + +

    +
  • +
  • +

    + + + fstream + + +

    +
  • +
  • +

    + + + iostream + + +

    +
  • +
  • +

    + + + iterator + + +

    +
  • +
  • +

    + + + memory + + +

    +
  • +
  • +

    + + + sstream + + +

    +
  • +
  • +

    + + + string + + +

    +
  • +
  • +

    + + + torch/torch.h + + +

    +
  • +
  • +

    + + + torch_tensorrt/logging.h + + + ( + + + File logging.h + + + ) +

    +
  • +
  • +

    + + + vector + + +

    +
  • +
+

+ Namespaces + + ¶ + +

+ +

+ Classes + + ¶ + +

+ +

+ Functions + + ¶ + +

+ +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.html b/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.html new file mode 100644 index 0000000000..0de9d4e746 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + File torch_tensorrt.h — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ File torch_tensorrt.h + + ¶ + +

+

+ ↰ + + + Parent directory + + + ( + + + cpp/include/torch_tensorrt + + + ) +

+ +

+ Definition ( + + + cpp/include/torch_tensorrt/torch_tensorrt.h + + + ) + + ¶ + +

+ +

+ Includes + + ¶ + +

+
    +
  • +

    + + + cuda_runtime.h + + +

    +
  • +
  • +

    + + + iostream + + +

    +
  • +
  • +

    + + + memory + + +

    +
  • +
  • +

    + + + set + + +

    +
  • +
  • +

    + + + string + + +

    +
  • +
  • +

    + + + torch_tensorrt/macros.h + + + ( + + + File macros.h + + + ) +

    +
  • +
  • +

    + + + vector + + +

    +
  • +
+

+ Namespaces + + ¶ + +

+ +

+ Classes + + ¶ + +

+ +

+ Enums + + ¶ + +

+ +

+ Functions + + ¶ + +

+ +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/file_view_hierarchy.html b/docs/v1.1.1/_cpp_api/file_view_hierarchy.html new file mode 100644 index 0000000000..e83c917e73 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/file_view_hierarchy.html @@ -0,0 +1,564 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + File Hierarchy — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.html b/docs/v1.1.1/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.html new file mode 100644 index 0000000000..31640e28c0 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.html @@ -0,0 +1,608 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::logging::get_logging_prefix — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::logging::get_logging_prefix + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API std::string + + torch_tensorrt::logging + + :: + + + + get_logging_prefix + + + ( + + + ) + + + ¶ + +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.html b/docs/v1.1.1/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.html new file mode 100644 index 0000000000..a96eeb213c --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.html @@ -0,0 +1,628 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::logging::get_reportable_log_level — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::logging::get_reportable_log_level + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API + + Level + + + torch_tensorrt::logging + + :: + + + + get_reportable_log_level + + + ( + + + ) + + + ¶ + +
+
+
+

+ Get the current reportable log level. +

+

+

+
+
+ + Return + +
+
+

+ TORCHTRT_API get_reportable_log_level +

+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.html b/docs/v1.1.1/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.html new file mode 100644 index 0000000000..32d89ad5ed --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.html @@ -0,0 +1,625 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::logging::get_is_colored_output_on — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::logging::get_is_colored_output_on + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API bool + + torch_tensorrt::logging + + :: + + + + get_is_colored_output_on + + + ( + + + ) + + + ¶ + +
+
+
+

+ Is colored output enabled? +

+

+

+
+
+ + Return + +
+
+

+ TORCHTRT_API get_is_colored_output_on +

+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.html b/docs/v1.1.1/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.html new file mode 100644 index 0000000000..3addbb91e3 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.html @@ -0,0 +1,640 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::logging::set_reportable_log_level — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::logging::set_reportable_log_level + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API void + + torch_tensorrt::logging + + :: + + + + set_reportable_log_level + + + ( + + + Level + + + lvl + + + ) + + + ¶ + +
+
+
+

+ Sets the level that logging information needs to be to be added to the log. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + lvl + + + : torch_tensorrt::logging::Level - Level that messages need to be at or above to be added to the log +

    +
  • +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html b/docs/v1.1.1/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html new file mode 100644 index 0000000000..ee7ac11d3a --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html @@ -0,0 +1,654 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::logging::log — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+ + +

+ Function torch_tensorrt::logging::log + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API void + + torch_tensorrt::logging + + :: + + + + log + + + ( + + + Level + + + lvl + + , std::string + + msg + + + ) + + + ¶ + +
+
+
+

+ Adds a message to the global log. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + lvl + + + : torch_tensorrt::logging::Level - Severity of the message +

    +
  • +
  • +

    + + + msg + + + : std::string - Message to be logged +

    +
  • +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.html b/docs/v1.1.1/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.html new file mode 100644 index 0000000000..62f17b0a42 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.html @@ -0,0 +1,638 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::logging::set_is_colored_output_on — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::logging::set_is_colored_output_on + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API void + + torch_tensorrt::logging + + :: + + + + set_is_colored_output_on + + + ( + + bool + + colored_output_on + + + ) + + + ¶ + +
+
+
+

+ Sets if logging prefix will be colored (helpful when debugging but not always supported by terminal) +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + colored_output_on + + + : bool - If the output will be colored or not +

    +
  • +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.html b/docs/v1.1.1/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.html new file mode 100644 index 0000000000..0df08db867 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.html @@ -0,0 +1,612 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::logging::set_logging_prefix — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::logging::set_logging_prefix + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API void + + torch_tensorrt::logging + + :: + + + + set_logging_prefix + + + ( + + std::string + + prefix + + + ) + + + ¶ + +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.html b/docs/v1.1.1/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.html new file mode 100644 index 0000000000..349e918a19 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.html @@ -0,0 +1,656 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Template Function torch_tensorrt::ptq::make_int8_cache_calibrator — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Template Function torch_tensorrt::ptq::make_int8_cache_calibrator + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ template<typename + + Algorithm + + = nvinfer1::IInt8EntropyCalibrator2> +
+ + + TORCHTRT_API + + Int8CacheCalibrator + + < + + Algorithm + + > + + torch_tensorrt::ptq + + :: + + + + make_int8_cache_calibrator + + + ( + + + const + + std::string & + + cache_file_path + + + ) + + + ¶ + +
+
+
+

+ A factory to build a post training quantization calibrator from a torch dataloader that only uses the calibration cache. +

+

+ Creates a calibrator to use for post training quantization which reads from a previously created calibration cache, therefore you can have a calibration cache generating program that requires a dataloader and a dataset, then save the cache to use later in a different program that needs to calibrate from scratch and not have the dataset dependency. However, the network should also be recalibrated if its structure changes, or the input data set changes, and it is the responsibility of the application to ensure this. +

+

+ By default the returned calibrator uses TensorRT Entropy v2 algorithm to perform calibration. This is recommended for feed forward networks You can override the algorithm selection (such as to use the MinMax Calibrator recomended for NLP tasks) by calling make_int8_calibrator with the calibrator class as a template parameter. +

+

+ e.g. torch_tensorrt::ptq::make_int8_cache_calibrator<nvinfer1::IInt8MinMaxCalibrator>(calibration_cache_file); +

+
+
+ + Return + +
+
+

+ Int8CacheCalibrator<Algorithm> +

+
+
+ + Template Parameters + +
+
+
    +
  • +

    + + + Algorithm + + + : class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use +

    +
  • +
+
+
+ + Parameters + +
+
+
    +
  • +

    + + + cache_file_path + + + : const std::string& - Path to read/write calibration cache +

    +
  • +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.html b/docs/v1.1.1/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.html new file mode 100644 index 0000000000..443e25cd45 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.html @@ -0,0 +1,713 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Template Function torch_tensorrt::ptq::make_int8_calibrator — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Template Function torch_tensorrt::ptq::make_int8_calibrator + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ template<typename + + Algorithm + + = nvinfer1::IInt8EntropyCalibrator2, typename + + DataLoader + + > +
+ + + TORCHTRT_API + + Int8Calibrator + + < + + Algorithm + + , + + DataLoader + + > + + torch_tensorrt::ptq + + :: + + + + make_int8_calibrator + + + ( + + + DataLoader + + + dataloader + + , + + const + + std::string & + + cache_file_path + + , bool + + use_cache + + + ) + + + ¶ + +
+
+
+

+ A factory to build a post training quantization calibrator from a torch dataloader. +

+

+ Creates a calibrator to use for post training quantization. By default the returned calibrator uses TensorRT Entropy v2 algorithm to perform calibration. This is recommended for feed forward networks. You can override the algorithm selection (such as to use the MinMax Calibrator recomended for NLP tasks) by calling make_int8_calibrator with the calibrator class as a template parameter. +

+

+ e.g. + + + torch_tensorrt::ptq::make_int8_calibrator<nvinfer1::IInt8MinMaxCalibrator>(std::move(calibration_dataloader), + + + calibration_cache_file, + + + use_cache); + + +

+
+
+ + Return + +
+
+

+ Int8Calibrator<Algorithm, DataLoader> +

+
+
+ + Template Parameters + +
+
+
    +
  • +

    + + + Algorithm + + + : class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use +

    +
  • +
  • +

    + + + DataLoader + + + : std::unique_ptr<torch::data::DataLoader> - DataLoader type +

    +
  • +
+
+
+ + Parameters + +
+
+
    +
  • +

    + + + dataloader + + + : std::unique_ptr<torch::data::DataLoader> - DataLoader containing data +

    +
  • +
  • +

    + + + cache_file_path + + + : const std::string& - Path to read/write calibration cache +

    +
  • +
  • +

    + + + use_cache + + + : bool - use calibration cache +

    +
  • +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.html b/docs/v1.1.1/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.html new file mode 100644 index 0000000000..083b6158a6 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.html @@ -0,0 +1,745 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Template Function torch_tensorrt::ptq::make_int8_calibrator — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Template Function torch_tensorrt::ptq::make_int8_calibrator + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ template<typename + + Algorithm + + = nvinfer1::IInt8EntropyCalibrator2, typename + + DataLoader + + > +
+ + + TORCHTRT_API + + Int8Calibrator + + < + + Algorithm + + , + + DataLoader + + > + + torch_tensorrt::ptq + + :: + + + + make_int8_calibrator + + + ( + + + DataLoader + + + dataloader + + , + + const + + std::string & + + cache_file_path + + , bool + + use_cache + + + ) + +
+
+
+

+ A factory to build a post training quantization calibrator from a torch dataloader. +

+

+ Creates a calibrator to use for post training quantization. By default the returned calibrator uses TensorRT Entropy v2 algorithm to perform calibration. This is recommended for feed forward networks. You can override the algorithm selection (such as to use the MinMax Calibrator recomended for NLP tasks) by calling make_int8_calibrator with the calibrator class as a template parameter. +

+

+ e.g. + + + torch_tensorrt::ptq::make_int8_calibrator<nvinfer1::IInt8MinMaxCalibrator>(std::move(calibration_dataloader), + + + calibration_cache_file, + + + use_cache); + + +

+
+
+ + Return + +
+
+

+ Int8Calibrator<Algorithm, DataLoader> +

+
+
+ + Template Parameters + +
+
+
    +
  • +

    + + + Algorithm + + + : class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use +

    +
  • +
  • +

    + + + DataLoader + + + : std::unique_ptr<torch::data::DataLoader> - DataLoader type +

    +
  • +
+
+
+ + Parameters + +
+
+
    +
  • +

    + + + dataloader + + + : std::unique_ptr<torch::data::DataLoader> - DataLoader containing data +

    +
  • +
  • +

    + + + cache_file_path + + + : const std::string& - Path to read/write calibration cache +

    +
  • +
  • +

    + + + use_cache + + + : bool - use calibration cache +

    +
  • +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.html b/docs/v1.1.1/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.html new file mode 100644 index 0000000000..ad01af93fe --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.html @@ -0,0 +1,688 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Template Function torch_tensorrt::ptq::make_int8_cache_calibrator — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Template Function torch_tensorrt::ptq::make_int8_cache_calibrator + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ template<typename + + Algorithm + + = nvinfer1::IInt8EntropyCalibrator2> +
+ + + TORCHTRT_API + + Int8CacheCalibrator + + < + + Algorithm + + > + + torch_tensorrt::ptq + + :: + + + + make_int8_cache_calibrator + + + ( + + + const + + std::string & + + cache_file_path + + + ) + +
+
+
+

+ A factory to build a post training quantization calibrator from a torch dataloader that only uses the calibration cache. +

+

+ Creates a calibrator to use for post training quantization which reads from a previously created calibration cache, therefore you can have a calibration cache generating program that requires a dataloader and a dataset, then save the cache to use later in a different program that needs to calibrate from scratch and not have the dataset dependency. However, the network should also be recalibrated if its structure changes, or the input data set changes, and it is the responsibility of the application to ensure this. +

+

+ By default the returned calibrator uses TensorRT Entropy v2 algorithm to perform calibration. This is recommended for feed forward networks You can override the algorithm selection (such as to use the MinMax Calibrator recomended for NLP tasks) by calling make_int8_calibrator with the calibrator class as a template parameter. +

+

+ e.g. torch_tensorrt::ptq::make_int8_cache_calibrator<nvinfer1::IInt8MinMaxCalibrator>(calibration_cache_file); +

+
+
+ + Return + +
+
+

+ Int8CacheCalibrator<Algorithm> +

+
+
+ + Template Parameters + +
+
+
    +
  • +

    + + + Algorithm + + + : class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use +

    +
  • +
+
+
+ + Parameters + +
+
+
    +
  • +

    + + + cache_file_path + + + : const std::string& - Path to read/write calibration cache +

    +
  • +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html new file mode 100644 index 0000000000..f4079feb1b --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html @@ -0,0 +1,675 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::torchscript::check_method_operator_support — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::torchscript::check_method_operator_support + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API bool + + torch_tensorrt::torchscript + + :: + + + + check_method_operator_support + + + ( + + + const + + torch::jit::Module & + + module + + , std::string + + method_name + + + ) + + + ¶ + +
+
+
+

+ Check to see if a module is fully supported by the compiler. +

+

+

+

+ Takes a module and a method name and checks if the method graph contains purely convertable operators +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + module + + + : torch::jit::script::Module - Existing TorchScript module +

    +
  • +
  • +

    + + + method_name + + + : std::string - Name of method to compile +

    +
  • +
+
+
+

+ Will print out a list of unsupported operators if the graph is unsupported +

+

+

+
+
+ + Return + +
+
+

+ bool: Method is supported by Torch-TensorRT.TorchScript +

+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.html b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.html new file mode 100644 index 0000000000..01dab78454 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::torchscript::compile — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::torchscript::compile + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API torch::jit::Module + + torch_tensorrt::torchscript + + :: + + + + compile + + + ( + + + const + + torch::jit::Module & + + module + + , + + CompileSpec + + + info + + + ) + + + ¶ + +
+
+
+

+ Compile a TorchScript module for NVIDIA GPUs using TensorRT. +

+

+

+

+ Takes a existing TorchScript module and a set of settings to configure the compiler and will convert methods to JIT Graphs which call equivalent TensorRT engines +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + module + + + : torch::jit::Module - Existing TorchScript module +

    +
  • +
  • +

    + + + info + + + : torch_tensorrt::CompileSpec - Compilation settings +

    +
  • +
+
+
+

+ Converts specifically the forward method of a TorchScript Module +

+

+

+
+
+ + Return + +
+
+

+ : A new module trageting a TensorRT engine +

+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.html b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.html new file mode 100644 index 0000000000..88e8d5ab19 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.html @@ -0,0 +1,696 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::torchscript::embed_engine_in_new_module — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::torchscript::embed_engine_in_new_module + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API torch::jit::Module + + torch_tensorrt::torchscript + + :: + + + + embed_engine_in_new_module + + + ( + + + const + + std::string & + + engine + + , + + Device + + + device + + + ) + + + ¶ + +
+
+
+

+ Take a previously created TensorRT engine and embed it in in a TorchScript module. +

+

+

+

+ Takes a pre-built serialized TensorRT engine and embeds it in a TorchScript module. Registers execution of the engine as the forward method of the module Forward is defined as: forward(Tensor[]) -> Tensor[] +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + engine + + + : std::string - Pre-built serialized TensorRT engine +

    +
  • +
  • +

    + + + device + + + : CompileSepc::Device - + + + Device + + + information +

    +
  • +
+
+
+

+ TensorRT bindings must have names with the following format: +

+
    +
  • +

    + [symbol].[index in input / output array] ex. +

    +
  • +
  • +

    + [x.0, x.1, x.2] -> [y.0] +

    +
  • +
+

+

+
+
+ + Return + +
+
+

+ : A new module targeting a TensorRT engine +

+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.html b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.html new file mode 100644 index 0000000000..7bde28dcc5 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.html @@ -0,0 +1,625 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::get_build_info — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+ + +

+ Function torch_tensorrt::get_build_info + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API std::string + + torch_tensorrt + + :: + + + + get_build_info + + + ( + + + ) + + + ¶ + +
+
+
+

+ Get the build information for the library including the dependency versions. +

+

+

+
+
+ + Return + +
+
+

+ std::string +

+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html new file mode 100644 index 0000000000..8436ace813 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html @@ -0,0 +1,641 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::set_device — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+ + +

+ Function torch_tensorrt::set_device + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API void + + torch_tensorrt + + :: + + + + set_device + + + ( + + + const + + int + + gpu_id + + + ) + + + ¶ + +
+
+
+

+ Set gpu device id. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + gpu_id + + + : Sets gpu id using cudaSetDevice +

    +
  • +
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html new file mode 100644 index 0000000000..c156689bec --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html @@ -0,0 +1,611 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::dump_build_info — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+ + +

+ Function torch_tensorrt::dump_build_info + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API void + + torch_tensorrt + + :: + + + + dump_build_info + + + ( + + + ) + + + ¶ + +
+
+
+

+ Dump the version information for Torch-TensorRT including base libtorch and TensorRT versions to stdout. +

+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html new file mode 100644 index 0000000000..7bc593e9a0 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Function torch_tensorrt::torchscript::convert_method_to_trt_engine — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Function torch_tensorrt::torchscript::convert_method_to_trt_engine + + ¶ + +

+ +

+ Function Documentation + + ¶ + +

+
+
+ + + TORCHTRT_API std::string + + torch_tensorrt::torchscript + + :: + + + + convert_method_to_trt_engine + + + ( + + + const + + torch::jit::Module & + + module + + , std::string + + method_name + + , + + CompileSpec + + + info + + + ) + + + ¶ + +
+
+
+

+ Compile a TorchScript method for NVIDIA GPUs using TensorRT. +

+

+

+

+ Takes a existing TorchScript module and a set of settings to configure the compiler and will convert selected method to a serialized TensorRT engine which can be run with TensorRT +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + module + + + : torch::jit::Module - Existing TorchScript module +

    +
  • +
  • +

    + + + method_name + + + : std::string - Name of method to compile +

    +
  • +
  • +

    + + + info + + + : torch_tensorrt::CompileSpec - Compilation settings +

    +
  • +
+
+
+

+

+
+
+ + Return + +
+
+

+ : std::string: Serialized TensorRT engine equivilant to the method graph +

+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt.html b/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt.html new file mode 100644 index 0000000000..642dc9570f --- /dev/null +++ b/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt.html @@ -0,0 +1,797 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Namespace torch_tensorrt — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__logging.html b/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__logging.html new file mode 100644 index 0000000000..2cf77cd9bd --- /dev/null +++ b/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__logging.html @@ -0,0 +1,711 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Namespace torch_tensorrt::logging — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__ptq.html b/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__ptq.html new file mode 100644 index 0000000000..8bcfecc155 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__ptq.html @@ -0,0 +1,675 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Namespace torch_tensorrt::ptq — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__torchscript.html b/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__torchscript.html new file mode 100644 index 0000000000..45ad12d1a1 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/namespace_torch_tensorrt__torchscript.html @@ -0,0 +1,684 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Namespace torch_tensorrt::torchscript — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.html b/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.html new file mode 100644 index 0000000000..f4e1e74a95 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.html @@ -0,0 +1,569 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Program Listing for File logging.h — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Program Listing for File logging.h + + ¶ + +

+

+ ↰ + + + Return to documentation for file + + + ( + + + cpp/include/torch_tensorrt/logging.h + + + ) +

+
+
+
/*
+ * Copyright (c) NVIDIA Corporation.
+ * All rights reserved.
+ *
+ * This library is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+#pragma once
+
+#include <string>
+#include "torch_tensorrt/macros.h"
+
+namespace torch_tensorrt {
+namespace logging {
+enum Level {
+  kINTERNAL_ERROR,
+  kERROR,
+  kWARNING,
+  kINFO,
+  kDEBUG,
+  kGRAPH,
+};
+
+// Are these ones necessary for the user?
+TORCHTRT_API std::string get_logging_prefix();
+TORCHTRT_API void set_logging_prefix(std::string prefix);
+
+TORCHTRT_API void set_reportable_log_level(Level lvl);
+
+TORCHTRT_API void set_is_colored_output_on(bool colored_output_on);
+
+TORCHTRT_API Level get_reportable_log_level();
+
+TORCHTRT_API bool get_is_colored_output_on();
+
+// Dont know if we want this?
+TORCHTRT_API void log(Level lvl, std::string msg);
+} // namespace logging
+} // namespace torch_tensorrt
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.html b/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.html new file mode 100644 index 0000000000..726e07d6e6 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.html @@ -0,0 +1,564 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Program Listing for File macros.h — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Program Listing for File macros.h + + ¶ + +

+

+ ↰ + + + Return to documentation for file + + + ( + + + cpp/include/torch_tensorrt/macros.h + + + ) +

+
+
+
/*
+ * Copyright (c) NVIDIA Corporation.
+ * All rights reserved.
+ *
+ * This library is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+#pragma once
+
+#if defined(__GNUC__)
+#define TORCHTRT_API __attribute__((__visibility__("default")))
+#define TORCHTRT_HIDDEN __attribute__((__visibility__("hidden")))
+#else
+#define TORCHTRT_API
+#define TORCHTRT_HIDDEN
+#endif // defined(__GNUC__)
+
+// Does this need to be gaurded or something?
+#define XSTR(x) #x
+#define STR(x) XSTR(x)
+
+#define TORCH_TENSORRT_MAJOR_VERSION 1
+#define TORCH_TENSORRT_MINOR_VERSION 1
+#define TORCH_TENSORRT_PATCH_VERSION 0
+#define TORCH_TENSORRT_VERSION      \
+  STR(TORCH_TENSORRT_MAJOR_VERSION) \
+  "." STR(TORCH_TENSORRT_MINOR_VERSION) "." STR(TORCH_TENSORRT_PATCH_VERSION)
+
+// Setup namespace aliases for ease of use
+namespace torch_tensorrt {
+namespace torchscript {}
+namespace ts = torchscript;
+} // namespace torch_tensorrt
+namespace torchtrt = torch_tensorrt;
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.html b/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.html new file mode 100644 index 0000000000..0b1eced173 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.html @@ -0,0 +1,707 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Program Listing for File ptq.h — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Program Listing for File ptq.h + + ¶ + +

+

+ ↰ + + + Return to documentation for file + + + ( + + + cpp/include/torch_tensorrt/ptq.h + + + ) +

+
+
+
/*
+ * Copyright (c) NVIDIA Corporation.
+ * All rights reserved.
+ *
+ * This library is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+#pragma once
+
+#include <fstream>
+#include <iostream>
+#include <iterator>
+#include <memory>
+#include <sstream>
+#include <string>
+#include <vector>
+
+#include "NvInfer.h"
+#include "torch/torch.h"
+#include "torch_tensorrt/logging.h"
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace nvinfer1 {
+class IInt8Calibrator;
+class IInt8EntropyCalibrator2;
+} // namespace nvinfer1
+
+namespace torch_tensorrt {
+namespace ptq {
+bool get_batch_impl(void* bindings[], const char* names[], int nbBindings, torch::Tensor& data);
+}
+} // namespace torch_tensorrt
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+namespace torch_tensorrt {
+namespace ptq {
+
+template <typename Algorithm, typename DataLoaderUniquePtr>
+class Int8Calibrator : Algorithm {
+  using DataLoader = typename DataLoaderUniquePtr::element_type;
+  using Batch = typename DataLoader::super::BatchType;
+
+ public:
+  Int8Calibrator(DataLoaderUniquePtr dataloader, const std::string& cache_file_path, bool use_cache)
+      : dataloader_(dataloader.get()), cache_file_path_(cache_file_path), use_cache_(use_cache) {
+    for (auto batch : *dataloader_) {
+      batched_data_.push_back(batch.data);
+    }
+    it_ = batched_data_.begin();
+  }
+
+  int getBatchSize() const noexcept override {
+    // HACK: Torch-TensorRT only uses explict batch sizing, INT8 Calibrator does not
+    // work when reporting the batch size here and having explicity batching.
+    // So we just report batch size 1 (warnings will still be printed out).
+    return 1;
+    // return static_cast<int>(dataloader_->options().batch_size);
+  }
+
+  bool getBatch(void* bindings[], const char* names[], int nbBindings) noexcept override {
+    if (it_ != batched_data_.end()) {
+      auto status = get_batch_impl(bindings, names, nbBindings, *it_);
+      it_ = ++it_;
+      return status;
+    } else {
+      // Reset iterator if incase calibrator is going to be used again
+      it_ = batched_data_.begin();
+      return false;
+    }
+  }
+
+  const void* readCalibrationCache(size_t& length) noexcept override {
+    if (use_cache_) {
+      std::stringstream ss;
+      ss << "Reading Calibration Cache from " << cache_file_path_;
+      logging::log(logging::Level::kINFO, ss.str());
+
+      cache_.clear();
+      std::ifstream input(cache_file_path_, std::ios::binary);
+      input >> std::noskipws;
+      if (input.good()) {
+        std::copy(std::istream_iterator<char>(input), std::istream_iterator<char>(), std::back_inserter(cache_));
+        logging::log(logging::Level::kDEBUG, "Cache read");
+      }
+      length = cache_.size();
+      return length ? cache_.data() : nullptr;
+    }
+    return nullptr;
+  }
+
+  void writeCalibrationCache(const void* cache, size_t length) noexcept override {
+    std::ofstream cache_file(cache_file_path_, std::ios::binary);
+    cache_file.write(reinterpret_cast<const char*>(cache), length);
+    std::stringstream ss;
+    ss << "Saved Calibration Cache to " << cache_file_path_;
+    logging::log(logging::Level::kINFO, ss.str());
+  }
+
+  operator nvinfer1::IInt8Calibrator*() {
+    return reinterpret_cast<nvinfer1::IInt8Calibrator*>(this);
+  }
+
+ private:
+  DataLoader* dataloader_;
+  const std::string& cache_file_path_;
+  size_t cache_size_ = 0;
+  bool use_cache_;
+  std::vector<char> cache_;
+  std::vector<torch::Tensor> batched_data_;
+  std::vector<torch::Tensor>::iterator it_;
+};
+
+template <typename Algorithm>
+class Int8CacheCalibrator : Algorithm {
+ public:
+  Int8CacheCalibrator(const std::string& cache_file_path) : cache_file_path_(cache_file_path) {}
+
+  int getBatchSize() const noexcept override {
+    // HACK: Torch-TensorRT only uses explict batch sizing, INT8 Calibrator does not
+    // work when reporting the batch size here and having explicity batching.
+    // So we just report batch size 1 (warnings will still be printed out).
+    return 1;
+  }
+
+  bool getBatch(void* bindings[], const char* names[], int nbBindings) noexcept override {
+    return false;
+  }
+
+  const void* readCalibrationCache(size_t& length) noexcept override {
+    std::stringstream ss;
+    ss << "Reading Calibration Cache from " << cache_file_path_;
+    logging::log(logging::Level::kINFO, ss.str());
+
+    cache_.clear();
+    std::ifstream input(cache_file_path_, std::ios::binary);
+    input >> std::noskipws;
+    if (input.good()) {
+      std::copy(std::istream_iterator<char>(input), std::istream_iterator<char>(), std::back_inserter(cache_));
+      logging::log(logging::Level::kDEBUG, "Cache read");
+    }
+    length = cache_.size();
+    return length ? cache_.data() : nullptr;
+  }
+
+  void writeCalibrationCache(const void* cache, size_t length) noexcept override {
+    std::ofstream cache_file(cache_file_path_, std::ios::binary);
+    cache_file.write(reinterpret_cast<const char*>(cache), length);
+    std::stringstream ss;
+    ss << "Saved Calibration Cache to " << cache_file_path_;
+    logging::log(logging::Level::kINFO, ss.str());
+  }
+
+  operator nvinfer1::IInt8Calibrator*() {
+    return reinterpret_cast<nvinfer1::IInt8Calibrator*>(this);
+  }
+
+ private:
+  const std::string& cache_file_path_;
+  size_t cache_size_ = 0;
+  std::vector<char> cache_;
+};
+
+template <typename Algorithm = nvinfer1::IInt8EntropyCalibrator2, typename DataLoader>
+TORCHTRT_API inline Int8Calibrator<Algorithm, DataLoader> make_int8_calibrator(
+    DataLoader dataloader,
+    const std::string& cache_file_path,
+    bool use_cache) {
+  return Int8Calibrator<Algorithm, DataLoader>(std::move(dataloader), cache_file_path, use_cache);
+}
+
+template <typename Algorithm = nvinfer1::IInt8EntropyCalibrator2>
+TORCHTRT_API inline Int8CacheCalibrator<Algorithm> make_int8_cache_calibrator(const std::string& cache_file_path) {
+  return Int8CacheCalibrator<Algorithm>(cache_file_path);
+}
+
+} // namespace ptq
+} // namespace torch_tensorrt
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.html b/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.html new file mode 100644 index 0000000000..6c569aa5b1 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.html @@ -0,0 +1,799 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Program Listing for File torch_tensorrt.h — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Program Listing for File torch_tensorrt.h + + ¶ + +

+

+ ↰ + + + Return to documentation for file + + + ( + + + cpp/include/torch_tensorrt/torch_tensorrt.h + + + ) +

+
+
+
/*
+ * Copyright (c) NVIDIA Corporation.
+ * All rights reserved.
+ *
+ * This library is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+#pragma once
+
+#include <cuda_runtime.h>
+#include <iostream>
+#include <memory>
+#include <set>
+#include <string>
+#include <vector>
+
+// Just include the .h?
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace torch {
+namespace jit {
+struct Graph;
+struct Module;
+} // namespace jit
+} // namespace torch
+
+namespace c10 {
+enum class DeviceType : int8_t;
+enum class ScalarType : int8_t;
+template <class>
+class ArrayRef;
+} // namespace c10
+
+namespace nvinfer1 {
+class IInt8Calibrator;
+}
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+#include "torch_tensorrt/macros.h"
+namespace torch_tensorrt {
+class TORCHTRT_API DataType {
+ public:
+  enum Value : int8_t {
+    kFloat,
+    kHalf,
+    kChar,
+    kInt,
+    kBool,
+    kUnknown
+  };
+
+  DataType() = default;
+  constexpr DataType(Value t) : value(t) {}
+  DataType(c10::ScalarType t);
+  operator Value() const {
+    return value;
+  }
+  explicit operator bool() = delete;
+  constexpr bool operator==(DataType other) const {
+    return value == other.value;
+  }
+  constexpr bool operator==(DataType::Value other) const {
+    return value == other;
+  }
+  constexpr bool operator!=(DataType other) const {
+    return value != other.value;
+  }
+  constexpr bool operator!=(DataType::Value other) const {
+    return value != other;
+  }
+
+ private:
+  friend std::ostream& operator<<(std::ostream& os, const DataType& dtype);
+  Value value;
+};
+
+struct Device {
+  class DeviceType {
+   public:
+    enum Value : int8_t {
+      kGPU,
+      kDLA,
+    };
+
+    DeviceType() = default;
+    constexpr DeviceType(Value t) : value(t) {}
+    DeviceType(c10::DeviceType t);
+    operator Value() const {
+      return value;
+    }
+    explicit operator bool() = delete;
+    constexpr bool operator==(DeviceType other) const {
+      return value == other.value;
+    }
+    constexpr bool operator!=(DeviceType other) const {
+      return value != other.value;
+    }
+
+   private:
+    Value value;
+  };
+
+  DeviceType device_type;
+
+  /*
+   * Target gpu id
+   */
+  int64_t gpu_id;
+
+  /*
+   * When using DLA core on NVIDIA AGX platforms gpu_id should be set as Xavier device
+   */
+  int64_t dla_core;
+
+  bool allow_gpu_fallback;
+
+  Device() : device_type(DeviceType::kGPU), gpu_id(0), dla_core(0), allow_gpu_fallback(false) {}
+};
+
+enum class EngineCapability : int8_t {
+  kSTANDARD,
+  kSAFETY,
+  kDLA_STANDALONE,
+};
+
+class TORCHTRT_API TensorFormat {
+ public:
+  enum Value : int8_t {
+    kContiguous,
+    kChannelsLast,
+    kUnknown,
+  };
+
+  TensorFormat() = default;
+  constexpr TensorFormat(Value t) : value(t) {}
+  TensorFormat(at::MemoryFormat t);
+  operator Value() const {
+    return value;
+  }
+  explicit operator bool() = delete;
+  constexpr bool operator==(TensorFormat other) const {
+    return value == other.value;
+  }
+  constexpr bool operator==(TensorFormat::Value other) const {
+    return value == other;
+  }
+  constexpr bool operator!=(TensorFormat other) const {
+    return value != other.value;
+  }
+  constexpr bool operator!=(TensorFormat::Value other) const {
+    return value != other;
+  }
+
+ private:
+  friend std::ostream& operator<<(std::ostream& os, const TensorFormat& format);
+  Value value;
+};
+
+struct TORCHTRT_API Input {
+  std::vector<int64_t> min_shape;
+  std::vector<int64_t> opt_shape;
+  std::vector<int64_t> max_shape;
+  std::vector<int64_t> shape;
+  DataType dtype;
+  TensorFormat format;
+
+  Input(std::vector<int64_t> shape, TensorFormat format = TensorFormat::kContiguous);
+
+  Input(std::vector<int64_t> shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous);
+
+  Input(c10::ArrayRef<int64_t> shape, TensorFormat format = TensorFormat::kContiguous);
+
+  Input(c10::ArrayRef<int64_t> shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous);
+
+  Input(
+      std::vector<int64_t> min_shape,
+      std::vector<int64_t> opt_shape,
+      std::vector<int64_t> max_shape,
+      TensorFormat format = TensorFormat::kContiguous);
+
+  Input(
+      std::vector<int64_t> min_shape,
+      std::vector<int64_t> opt_shape,
+      std::vector<int64_t> max_shape,
+      DataType dtype,
+      TensorFormat format = TensorFormat::kContiguous);
+
+  Input(
+      c10::ArrayRef<int64_t> min_shape,
+      c10::ArrayRef<int64_t> opt_shape,
+      c10::ArrayRef<int64_t> max_shape,
+      TensorFormat format = TensorFormat::kContiguous);
+
+  Input(
+      c10::ArrayRef<int64_t> min_shape,
+      c10::ArrayRef<int64_t> opt_shape,
+      c10::ArrayRef<int64_t> max_shape,
+      DataType dtype,
+      TensorFormat format = TensorFormat::kContiguous);
+
+  Input(at::Tensor tensor);
+
+ private:
+  friend std::ostream& operator<<(std::ostream& os, const Input& input);
+  bool input_is_dynamic;
+};
+
+TORCHTRT_API std::string get_build_info();
+
+TORCHTRT_API void dump_build_info();
+
+TORCHTRT_API void set_device(const int gpu_id);
+
+namespace torchscript {
+struct TORCHTRT_API CompileSpec {
+  CompileSpec(std::vector<std::vector<int64_t>> fixed_sizes);
+
+  CompileSpec(std::vector<c10::ArrayRef<int64_t>> fixed_sizes);
+
+  CompileSpec(std::vector<Input> inputs) : inputs(std::move(inputs)) {}
+
+  // Defaults should reflect TensorRT defaults for BuilderConfig
+
+  std::vector<Input> inputs;
+
+  std::set<DataType> enabled_precisions = {DataType::kFloat};
+
+  bool disable_tf32 = false;
+
+  bool sparse_weights = false;
+
+  bool refit = false;
+
+  bool debug = false;
+
+  bool truncate_long_and_double = false;
+
+  Device device;
+
+  EngineCapability capability = EngineCapability::kSTANDARD;
+
+  uint64_t num_min_timing_iters = 2;
+  uint64_t num_avg_timing_iters = 1;
+
+  uint64_t workspace_size = 0;
+
+  nvinfer1::IInt8Calibrator* ptq_calibrator = nullptr;
+
+  bool require_full_compilation = false;
+
+  uint64_t min_block_size = 3;
+
+  std::vector<std::string> torch_executed_ops;
+
+  std::vector<std::string> torch_executed_modules;
+};
+
+TORCHTRT_API bool check_method_operator_support(const torch::jit::Module& module, std::string method_name);
+
+TORCHTRT_API torch::jit::Module compile(const torch::jit::Module& module, CompileSpec info);
+
+TORCHTRT_API std::string convert_method_to_trt_engine(
+    const torch::jit::Module& module,
+    std::string method_name,
+    CompileSpec info);
+
+TORCHTRT_API torch::jit::Module embed_engine_in_new_module(const std::string& engine, Device device);
+} // namespace torchscript
+} // namespace torch_tensorrt
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1Device.html b/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1Device.html new file mode 100644 index 0000000000..cabff74678 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1Device.html @@ -0,0 +1,1246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Struct Device — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Struct Device + + ¶ + +

+ +

+ Nested Relationships + + ¶ + +

+

+ Nested Types + + ¶ + +

+ +

+ Struct Documentation + + ¶ + +

+
+
+ + + + struct + + + torch_tensorrt + + :: + + + + Device + + + ¶ + +
+
+
+

+ Setting data structure for Target device. +

+
+

+ Public Functions +

+
+
+ + + + Device + + + ( + + + ) + + + ¶ + +
+
+
+

+ Constructor for + + + Device + + + structure +

+
+
+
+
+

+ Public Members +

+
+
+ + + + DeviceType + + + device_type + + + ¶ + +
+
+
+

+ Setting data structure for device This struct will hold Target device related parameters such as device_type, gpu_id, dla_core. +

+
+
+
+
+ + + int64_t + + gpu_id + + + ¶ + +
+
+
+
+
+
+
+ + + int64_t + + dla_core + + + ¶ + +
+
+
+
+
+
+
+ + + bool + + allow_gpu_fallback + + + ¶ + +
+
+
+

+ (Only used when targeting DLA (device)) Lets engine run layers on GPU if they are not supported on DLA +

+
+
+
+
+
+ + + + class + + + DeviceType + +
+
+
+

+ Supported + + + Device + + + Types that can be used with TensorRT engines +

+

+ This class is compatable with c10::DeviceTypes (but will check for TRT support) but the only applicable value is at::kCUDA, which maps to + + + DeviceType::kGPU + + +

+

+ To use the + + + DataType + + + class itself, interface using the enum vs. normal instatination +

+

+ ex. torch_tensorrt::DeviceType type = + + + DeviceType::kGPU + + + ; +

+
+

+ Public Types +

+
+
+ + + + enum + + + Value + +
+
+
+

+ Underlying enum class to support the + + + DeviceType + + + Class +

+

+ In the case that you need to use the + + + DeviceType + + + class itself, interface using this enum vs. normal instatination +

+

+ ex. torch_tensorrt::DeviceType type = + + + DeviceType::kGPU + + + ; +

+

+ + Values: + +

+
+
+ + + + enumerator + + + kGPU + +
+
+
+

+ Target GPU to run engine. +

+
+
+
+
+ + + + enumerator + + + kDLA + +
+
+
+

+ Target DLA to run engine. +

+
+
+
+
+
+
+

+ Public Functions +

+
+
+ + + + DeviceType + + + ( + + + ) + + = default +
+
+
+

+ Construct a new + + + Device + + + Type object. +

+
+
+
+
+ + + + constexpr + + + DeviceType + + + ( + + + Value + + + t + + + ) + +
+
+
+

+ Construct a new + + + Device + + + Type object from internal enum. +

+
+
+
+
+ + + + DeviceType + + + ( + + c10::DeviceType + + t + + + ) + +
+
+
+

+ Construct a new + + + Device + + + Type object from torch device enums Note: The only valid value is torch::kCUDA (torch::kCPU is not supported) +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + t + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + operator Value + + + ( + + + ) + + + const + +
+
+
+

+ Get the internal value from the + + + Device + + + object. +

+

+

+
+
+ + Return + +
+
+

+ Value +

+
+
+
+
+
+
+ + + + operator bool + + + ( + + + ) + + = delete +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator== + + + ( + + + DeviceType + + + other + + + ) + + + const + +
+
+
+

+ Comparison operator for + + + DeviceType + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + constexpr + + bool + + operator!= + + + ( + + + DeviceType + + + other + + + ) + + + const + +
+
+
+

+ Comparison operator for + + + DeviceType + + + . +

+

+

+
+
+ + Return + +
+
+

+ true +

+
+
+ + Return + +
+
+

+ false +

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + other + + + : +

    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1GraphInputs.html b/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1GraphInputs.html new file mode 100644 index 0000000000..4840308bd0 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1GraphInputs.html @@ -0,0 +1,553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Struct GraphInputs — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Struct GraphInputs + + ¶ + +

+ +

+ Struct Documentation + + ¶ + +

+
+

+ Warning +

+

+ doxygenstruct: Cannot find class “torch_tensorrt::GraphInputs” in doxygen xml output for project “Torch-TensorRT” from directory: ./_tmp/xml +

+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1Input.html b/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1Input.html new file mode 100644 index 0000000000..fd1f60a07c --- /dev/null +++ b/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1Input.html @@ -0,0 +1,1663 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Struct Input — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Struct Input + + ¶ + +

+ +

+ Struct Documentation + + ¶ + +

+
+
+ + + + struct + + + torch_tensorrt + + :: + + + + Input + + + ¶ + +
+
+
+

+ A struct to hold an input range (used by TensorRT Optimization profile) +

+

+ This struct can either hold a single vector representing an input shape, signifying a static input shape or a set of three input shapes representing the min, optiminal and max input shapes allowed for the engine. +

+
+

+ Public Functions +

+
+
+ + + + Input + + + ( + + std::vector<int64_t> + + shape + + , + + TensorFormat + + + format + + = + + TensorFormat + + :: + + kContiguous + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Input + + + spec object for static input size from vector, optional arguments allow the user to configure expected input shape tensor format. dtype (Expected data type for the input) defaults to PyTorch / traditional TRT convection (FP32 for FP32 only, FP16 for FP32 and FP16, FP32 for Int8) +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + shape + + + : + + + Input + + + tensor shape +

    +
  • +
  • +

    + + + format + + + : Expected tensor format for the input (Defaults to contiguous) +

    +
  • +
+
+
+
+
+
+
+ + + + Input + + + ( + + std::vector<int64_t> + + shape + + , + + DataType + + + dtype + + , + + TensorFormat + + + format + + = + + TensorFormat + + :: + + kContiguous + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Input + + + spec object for static input size from vector, optional arguments allow the user to configure expected input shape tensor format. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + shape + + + : + + + Input + + + tensor shape +

    +
  • +
  • +

    + + + dtype + + + : Expected data type for the input (Defaults to the type of the weights in the first tensor calculation if detectable else Float32) +

    +
  • +
  • +

    + + + format + + + : Expected tensor format for the input (Defaults to contiguous) +

    +
  • +
+
+
+
+
+
+
+ + + + Input + + + ( + + c10::ArrayRef<int64_t> + + shape + + , + + TensorFormat + + + format + + = + + TensorFormat + + :: + + kContiguous + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Input + + + spec object for static input size from c10::ArrayRef (the type produced by tensor.sizes()), vector, optional arguments allow the user to configure expected input shape tensor format dtype (Expected data type for the input) defaults to PyTorch / traditional TRT convection (FP32 for FP32 only, FP16 for FP32 and FP16, FP32 for Int8) +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + shape + + + : + + + Input + + + tensor shape +

    +
  • +
  • +

    + + + format + + + : Expected tensor format for the input (Defaults to contiguous) +

    +
  • +
+
+
+
+
+
+
+ + + + Input + + + ( + + c10::ArrayRef<int64_t> + + shape + + , + + DataType + + + dtype + + , + + TensorFormat + + + format + + = + + TensorFormat + + :: + + kContiguous + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Input + + + spec object for static input size from c10::ArrayRef (the type produced by tensor.sizes()), vector, optional arguments allow the user to configure expected input shape tensor format. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + shape + + + : + + + Input + + + tensor shape +

    +
  • +
  • +

    + + + dtype + + + : Expected data type for the input (Defaults to the type of the weights in the first tensor calculation if detectable else Float32) +

    +
  • +
  • +

    + + + format + + + : Expected tensor format for the input (Defaults to contiguous) +

    +
  • +
+
+
+
+
+
+
+ + + + Input + + + ( + + std::vector<int64_t> + + min_shape + + , std::vector<int64_t> + + opt_shape + + , std::vector<int64_t> + + max_shape + + , + + TensorFormat + + + format + + = + + TensorFormat + + :: + + kContiguous + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Input + + + spec object dynamic input size from c10::ArrayRef (the type produced by tensor.sizes()) for min, opt, and max supported sizes. dtype (Expected data type for the input) defaults to PyTorch / traditional TRT convection (FP32 for FP32 only, FP16 for FP32 and FP16, FP32 for Int8) +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + min_shape + + + : Minimum shape for input tensor +

    +
  • +
  • +

    + + + opt_shape + + + : Target optimization shape for input tensor +

    +
  • +
  • +

    + + + max_shape + + + : Maximum acceptible shape for input tensor +

    +
  • +
  • +

    + + + format + + + : Expected tensor format for the input (Defaults to contiguous) +

    +
  • +
+
+
+
+
+
+
+ + + + Input + + + ( + + std::vector<int64_t> + + min_shape + + , std::vector<int64_t> + + opt_shape + + , std::vector<int64_t> + + max_shape + + , + + DataType + + + dtype + + , + + TensorFormat + + + format + + = + + TensorFormat + + :: + + kContiguous + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Input + + + spec object for a dynamic input size from vectors for minimum shape, optimal shape, and max shape supported sizes optional arguments allow the user to configure expected input shape tensor format. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + min_shape + + + : Minimum shape for input tensor +

    +
  • +
  • +

    + + + opt_shape + + + : Target optimization shape for input tensor +

    +
  • +
  • +

    + + + max_shape + + + : Maximum acceptible shape for input tensor +

    +
  • +
  • +

    + + + dtype + + + : Expected data type for the input (Defaults to the type of the weights in the first tensor calculation if detectable else Float32) +

    +
  • +
  • +

    + + + format + + + : Expected tensor format for the input (Defaults to contiguous) +

    +
  • +
+
+
+
+
+
+
+ + + + Input + + + ( + + c10::ArrayRef<int64_t> + + min_shape + + , c10::ArrayRef<int64_t> + + opt_shape + + , c10::ArrayRef<int64_t> + + max_shape + + , + + TensorFormat + + + format + + = + + TensorFormat + + :: + + kContiguous + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Input + + + spec object dynamic input size from c10::ArrayRef (the type produced by tensor.sizes()) for min, opt, and max supported sizes. dtype (Expected data type for the input) defaults to PyTorch / traditional TRT convection (FP32 for FP32 only, FP16 for FP32 and FP16, FP32 for Int8) +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + min_shape + + + : Minimum shape for input tensor +

    +
  • +
  • +

    + + + opt_shape + + + : Target optimization shape for input tensor +

    +
  • +
  • +

    + + + max_shape + + + : Maximum acceptible shape for input tensor +

    +
  • +
  • +

    + + + format + + + : Expected tensor format for the input (Defaults to contiguous) +

    +
  • +
+
+
+
+
+
+
+ + + + Input + + + ( + + c10::ArrayRef<int64_t> + + min_shape + + , c10::ArrayRef<int64_t> + + opt_shape + + , c10::ArrayRef<int64_t> + + max_shape + + , + + DataType + + + dtype + + , + + TensorFormat + + + format + + = + + TensorFormat + + :: + + kContiguous + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Input + + + spec object dynamic input size from c10::ArrayRef (the type produced by tensor.sizes()) for min, opt, and max supported sizes. +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + min_shape + + + : Minimum shape for input tensor +

    +
  • +
  • +

    + + + opt_shape + + + : Target optimization shape for input tensor +

    +
  • +
  • +

    + + + max_shape + + + : Maximum acceptible shape for input tensor +

    +
  • +
  • +

    + + + dtype + + + : Expected data type for the input (Defaults to the type of the weights in the first tensor calculation if detectable else Float32) +

    +
  • +
  • +

    + + + format + + + : Expected tensor format for the input (Defaults to contiguous) +

    +
  • +
+
+
+
+
+
+
+ + + + Input + + + ( + + at::Tensor + + tensor + + + ) + + + ¶ + +
+
+
+

+ Construct a new + + + Input + + + spec object using a torch tensor as an example The tensor’s shape, type and layout inform the spec’s values. +

+

+ Note: You cannot set dynamic shape through this method, you must use an alternative constructor +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + tensor + + + : Reference tensor to set shape, type and layout +

    +
  • +
+
+
+
+
+
+
+

+ Public Members +

+
+
+ + + std::vector<int64_t> + + min_shape + + + ¶ + +
+
+
+

+ Minimum acceptable input size into the engine. +

+
+
+
+
+ + + std::vector<int64_t> + + opt_shape + + + ¶ + +
+
+
+

+ Optimal input size into the engine (size optimized for given kernels accept any size in min max range) +

+
+
+
+
+ + + std::vector<int64_t> + + max_shape + + + ¶ + +
+
+
+

+ Maximum acceptable input size into the engine. +

+
+
+
+
+ + + std::vector<int64_t> + + shape + + + ¶ + +
+
+
+

+ + + Input + + + shape to be fed to TensorRT, in the event of a dynamic shape, -1’s will hold the place of variable dimensions +

+
+
+
+
+ + + + DataType + + + dtype + + + ¶ + +
+
+
+

+ Expected data type for the input. +

+
+
+
+
+ + + + TensorFormat + + + format + + + ¶ + +
+
+
+

+ Expected tensor format for the input. +

+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.html b/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.html new file mode 100644 index 0000000000..2bab6f6f3e --- /dev/null +++ b/docs/v1.1.1/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.html @@ -0,0 +1,1169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Struct CompileSpec — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Struct CompileSpec + + ¶ + +

+ +

+ Struct Documentation + + ¶ + +

+
+
+ + + + struct + + + torch_tensorrt::torchscript + + :: + + + + CompileSpec + + + ¶ + +
+
+
+

+ Settings data structure for Torch-TensorRT TorchScript compilation +

+
+

+ Public Functions +

+
+
+ + + + CompileSpec + + + ( + + std::vector<std::vector<int64_t>> + + fixed_sizes + + + ) + + + ¶ + +
+
+
+

+ Construct a new Compile Spec object Convienence constructor to set fixed input size from vectors describing size of input tensors. Each entry in the vector represents a input and should be provided in call order. +

+

+ This constructor should be use as a convience in the case that all inputs are static sized and you are okay with default input dtype and formats (FP32 for FP32 and INT8 weights, FP16 for FP16 weights, contiguous) +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + fixed_sizes + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + CompileSpec + + + ( + + std::vector<c10::ArrayRef<int64_t>> + + fixed_sizes + + + ) + + + ¶ + +
+
+
+

+ Construct a new Extra Info object Convienence constructor to set fixed input size from c10::ArrayRef’s (the output of tensor.sizes()) describing size of input tensors. Each entry in the vector represents a input and should be provided in call order. +

+

+ This constructor should be use as a convience in the case that all inputs are static sized and you are okay with default input dtype and formats (FP32 for FP32 and INT8 weights, FP16 for FP16 weights, contiguous) +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + fixed_sizes + + + : +

    +
  • +
+
+
+
+
+
+
+ + + + CompileSpec + + + ( + + std::vector< + + Input + + > + + inputs + + + ) + + + ¶ + +
+
+
+

+ Construct a new Extra Info object from input ranges. Each entry in the vector represents a input and should be provided in call order. +

+

+ Use this constructor to define inputs with dynamic shape, specific input types or tensor formats +

+

+

+
+
+ + Parameters + +
+
+
    +
  • +

    + + + inputs + + + : +

    +
  • +
+
+
+
+
+
+
+

+ Public Members +

+
+
+ + + std::vector< + + Input + + > + + inputs + + + ¶ + +
+
+
+

+ Specifications for inputs to the engine, can either be a single size or a range defined by min, opt and max sizes Users can also specify expected input type as well as tensor memory format. +

+

+ Order in vector should match call order for the function +

+
+
+
+
+ + + std::set< + + DataType + + > + + enabled_precisions + + = { + + DataType + + :: + + kFloat + + } + + ¶ + +
+
+
+

+ The set of precisions TensorRT is allowed to use for kernels during compilation. +

+
+
+
+
+ + + bool + + disable_tf32 + + = false + + ¶ + +
+
+
+

+ Prevent Float32 layers from using TF32 data format +

+

+ TF32 computes inner products by rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas. This is the behavior of FP32 layers by default. +

+
+
+
+
+ + + bool + + sparse_weights + + = false + + ¶ + +
+
+
+

+ Enable sparsity for weights of conv and FC layers +

+
+
+
+
+ + + bool + + refit + + = false + + ¶ + +
+
+
+

+ Build a refitable engine +

+
+
+
+
+ + + bool + + debug + + = false + + ¶ + +
+
+
+

+ Build a debugable engine +

+
+
+
+
+ + + bool + + truncate_long_and_double + + = false + + ¶ + +
+
+
+

+ Truncate long/double type to int/float type +

+
+
+
+
+ + + + Device + + + device + + + ¶ + +
+
+
+

+ Target + + + Device + + +

+
+
+
+
+ + + + EngineCapability + + + capability + + = + + EngineCapability + + :: + + kSTANDARD + + + ¶ + +
+
+
+

+ Sets the restrictions for the engine (CUDA Safety) +

+
+
+
+
+ + + uint64_t + + num_min_timing_iters + + = 2 + + ¶ + +
+
+
+

+ Number of minimization timing iterations used to select kernels +

+
+
+
+
+ + + uint64_t + + num_avg_timing_iters + + = 1 + + ¶ + +
+
+
+

+ Number of averaging timing iterations used to select kernels +

+
+
+
+
+ + + uint64_t + + workspace_size + + = 0 + + ¶ + +
+
+
+

+ Maximum size of workspace given to TensorRT +

+
+
+
+
+ + + nvinfer1::IInt8Calibrator * + + ptq_calibrator + + = nullptr + + ¶ + +
+
+
+

+ Calibration dataloaders for each input for post training quantizatiom +

+
+
+
+
+ + + bool + + require_full_compilation + + = false + + ¶ + +
+
+
+

+ Require the full module be compiled to TensorRT instead of potentially running unsupported operations in PyTorch +

+
+
+
+
+ + + uint64_t + + min_block_size + + = 3 + + ¶ + +
+
+
+

+ Minimum number of contiguous supported operators to compile a subgraph to TensorRT +

+
+
+
+
+ + + std::vector<std::string> + + torch_executed_ops + + + ¶ + +
+
+
+

+ List of aten operators that must be run in PyTorch. An error will be thrown if this list is not empty but + + + require_full_compilation + + + is True +

+
+
+
+
+ + + std::vector<std::string> + + torch_executed_modules + + + ¶ + +
+
+
+

+ List of modules that must be run in PyTorch. An error will be thrown if this list is not empty but + + + require_full_compilation + + + is True +

+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/torch_tensort_cpp.html b/docs/v1.1.1/_cpp_api/torch_tensort_cpp.html new file mode 100644 index 0000000000..b1b462d272 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/torch_tensort_cpp.html @@ -0,0 +1,1548 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Torch-TensorRT C++ API — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

+ Torch-TensorRT C++ API + + ¶ + +

+

+ Class Hierarchy + + ¶ + +

+ + +

+ File Hierarchy + + ¶ + +

+ + +

+ Full API + + ¶ + +

+

+ Namespaces + + ¶ + +

+ + + + +

+ Classes and Structs + + ¶ + +

+ + + + + + + + +

+ Enums + + ¶ + +

+ + +

+ Functions + + ¶ + +

+ + + + + + + + + + + + + + + + +

+ Defines + + ¶ + +

+ + + + + + + + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/unabridged_api.html b/docs/v1.1.1/_cpp_api/unabridged_api.html new file mode 100644 index 0000000000..83be213a79 --- /dev/null +++ b/docs/v1.1.1/_cpp_api/unabridged_api.html @@ -0,0 +1,1254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Full API — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+

+ Full API + + ¶ + +

+

+ Namespaces + + ¶ + +

+ + + + +

+ Classes and Structs + + ¶ + +

+ + + + + + + + +

+ Enums + + ¶ + +

+ + +

+ Functions + + ¶ + +

+ + + + + + + + + + + + + + + + +

+ Defines + + ¶ + +

+ + + + + + + + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_cpp_api/unabridged_orphan.html b/docs/v1.1.1/_cpp_api/unabridged_orphan.html new file mode 100644 index 0000000000..1aa0ab23ee --- /dev/null +++ b/docs/v1.1.1/_cpp_api/unabridged_orphan.html @@ -0,0 +1,791 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Full API — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_downloads/26d49aeeb9c710e27197fda28b7c3516/yi_jing_01_chien.jpg b/docs/v1.1.1/_downloads/26d49aeeb9c710e27197fda28b7c3516/yi_jing_01_chien.jpg new file mode 100644 index 0000000000000000000000000000000000000000..523dc2b8b868fa53e3b960d7017908dae486eecb GIT binary patch literal 6614 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_images/_notebooks_EfficientNet-example_12_0.png b/docs/v1.1.1/_images/_notebooks_EfficientNet-example_12_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a308a0d7ddbea230c1746ad9dd482f5697543ad5 GIT binary patch literal 96385 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

sYowpbQ^5o07~=1mQsv27N8sf)$|f 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

Zg)6uIO}&*<%Fzv5Ix)N4l^w&=QH$b zMQGOaO42OmD6Pq*V4sZE87{RWx(+eY#18kD-0ck)uET4E8(KCQ>}CaJHRX-j0sUu> zd8m7w1u-Z@7PwG~+wXoC87!wSAJWb%LcYNDiY`VD^qk$aLfI9kXC3EzbAIW#=K0lg z-U^DNVV_{<{OAXNM0;_`^lHnV54?Zxb?(0XI^X&BH+kp1Z&GF%PhURca=m8v!%w+$ z+%tRqP5ww}o|T|{V5(xGh%b0d^IVBJ8OOU{O#ei#zE zFw0UVnHkc?T!0K|9_9htCYGqT79|8xCKp+6EkoC#6(BV}O0<*=Lkf=*D)9q^aD*U; zTBO2!eJm#?g4EcxXF5xaS|yp(HN!BF7a3WuQA*&9!FortS+i>zHti#xJbc94Z@-DP zj^*A0Q7C*2oS&akO(#5k{*s|-*lwFK$vC29^1e&&QCV7u4c&k-18vh_ogs{A5ecLn z5W*u>K5o%d=x3H^fI#blXa^z@1von-Yi@9q)g&zlg+K^7(%yVZv31FOYMr4h$6)Y~ z7DLWCqIb9~B~s`tPY*g5%4U z_2z=j!4jtwMiAJW26=nP+1%(E$>TjN7uh>@-7`BbJ8 z)V=8~;? zy$APr@cNs$FklD6@pQ^uX{OVf-EK$z@)1Wt@NZA16nAf--nh%5&e(U~WjZNQ5@ySN ztTFuHvnTvV|M;Ks>ifUTckk`-L4G;7ppDKJLa=}Zryvp{;k{Oc}^x(3M$C*^e~kY7c6B_vUhZZ$`#Ka zJ;nOSgFAPbRyAGUaJaYN;p0dA$)^wb(ZfglZ@=b_`}v)&5)_rDsx^5f$x1<%EAm_; z<@L-|5Jf;KNm))Pvl?QC?F~W%y1u6_3*6wa&J##r9Ope<-zH0{5ZG}JsH323c4=cD z6aFtjS`>ZX;aw`ALY8SpC?(drw7k(ONzJUm20sG1Q&djy0Y7fkT?q7jid?QL$)qar zKKZegO!4L}MslTag}}59m1)jTU-9DA3D!C$lSEA0KiFqFo8nAQ+YP)tJ!QRGv)yc1 zt=B2KJvg#FXHwO;7|=1`ZJL{QU6a%eLo!7qKC2j^+1GP(f1^~0qXX)ik>G*@B?)#^ zO$3h-l5#pv$p$2mztW>F+1WJv4#}_(yk{^eErg(g$#nlq^4MJ7$zDiG@HRN z*+1aGTKZ;*B1<%HC?-7x7l)eb;-%u8l9Kizkk5q@hz(9 z3?T&dV!^S_D6X#PhJ--P@R+{m|~zIwrIHf7iBxV&0_ z?d|sSb-KBvn&#BglCsXp%Z#E>=qz=LF@<5Fq9QL!X0ru#zQ8+0-(8`zln`9xV^nzC zBaoDNPSdu;5Ku~wetn0Mnyycp!w_Q{2jp3blyMgC1JN0>a!M3BbzdT+SuUW3B>ISz zsYsEfxupv+aYTb3ZNHjKXAHeTYeiL6*uDp)$+W~cOQ|)nEE$@Xh@@>>v`Xm_L)Y{9 zr=N0gc*qx@e!^n8z9$yv+sY>z%zdNbS

%hodFQnR3n>$4 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

cz}Yh- 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_images/_notebooks_Resnet50-example_12_0.png b/docs/v1.1.1/_images/_notebooks_Resnet50-example_12_0.png new file mode 100644 index 0000000000000000000000000000000000000000..918517c79afa6195f8336580a23a8801389fecde GIT binary patch literal 96469 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 z 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 {k&ZS6rsU$@fQ;^?ggVNx}lZEph5d!mK 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 Qw*UYD07*qoM6N<$f@AU}x&QzG literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_images/_notebooks_Resnet50-example_16_1.png b/docs/v1.1.1/_images/_notebooks_Resnet50-example_16_1.png new file mode 100644 index 0000000000000000000000000000000000000000..67ce9b8c774982fe4685636b2ef314881ee2b360 GIT binary patch literal 99900 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ϊNn>Dqt~fkIv+e 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

;? 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_images/_notebooks_dynamic-shapes_14_1.png b/docs/v1.1.1/_images/_notebooks_dynamic-shapes_14_1.png new file mode 100644 index 0000000000000000000000000000000000000000..90cc8518bb7ede389ab06eb5998593a3d1f90e63 GIT binary patch literal 99817 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

=jI=6RzF9!Oi>keF2=nRnL_|J0F^qWhq6uqAE*j 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

sYowpbQ^5o07~=1mQsv27N8sf)$|f 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

Zg)6uIO}&*<%Fzv5Ix)N4l^w&=QH$b zMQGOaO42OmD6Pq*V4sZE87{RWx(+eY#18kD-0ck)uET4E8(KCQ>}CaJHRX-j0sUu> zd8m7w1u-Z@7PwG~+wXoC87!wSAJWb%LcYNDiY`VD^qk$aLfI9kXC3EzbAIW#=K0lg z-U^DNVV_{<{OAXNM0;_`^lHnV54?Zxb?(0XI^X&BH+kp1Z&GF%PhURca=m8v!%w+$ z+%tRqP5ww}o|T|{V5(xGh%b0d^IVBJ8OOU{O#ei#zE zFw0UVnHkc?T!0K|9_9htCYGqT79|8xCKp+6EkoC#6(BV}O0<*=Lkf=*D)9q^aD*U; zTBO2!eJm#?g4EcxXF5xaS|yp(HN!BF7a3WuQA*&9!FortS+i>zHti#xJbc94Z@-DP zj^*A0Q7C*2oS&akO(#5k{*s|-*lwFK$vC29^1e&&QCV7u4c&k-18vh_ogs{A5ecLn z5W*u>K5o%d=x3H^fI#blXa^z@1von-Yi@9q)g&zlg+K^7(%yVZv31FOYMr4h$6)Y~ z7DLWCqIb9~B~s`tPY*g5%4U z_2z=j!4jtwMiAJW26=nP+1%(E$>TjN7uh>@-7`BbJ8 z)V=8~;? zy$APr@cNs$FklD6@pQ^uX{OVf-EK$z@)1Wt@NZA16nAf--nh%5&e(U~WjZNQ5@ySN ztTFuHvnTvV|M;Ks>ifUTckk`-L4G;7ppDKJLa=}Zryvp{;k{Oc}^x(3M$C*^e~kY7c6B_vUhZZ$`#Ka zJ;nOSgFAPbRyAGUaJaYN;p0dA$)^wb(ZfglZ@=b_`}v)&5)_rDsx^5f$x1<%EAm_; z<@L-|5Jf;KNm))Pvl?QC?F~W%y1u6_3*6wa&J##r9Ope<-zH0{5ZG}JsH323c4=cD z6aFtjS`>ZX;aw`ALY8SpC?(drw7k(ONzJUm20sG1Q&djy0Y7fkT?q7jid?QL$)qar zKKZegO!4L}MslTag}}59m1)jTU-9DA3D!C$lSEA0KiFqFo8nAQ+YP)tJ!QRGv)yc1 zt=B2KJvg#FXHwO;7|=1`ZJL{QU6a%eLo!7qKC2j^+1GP(f1^~0qXX)ik>G*@B?)#^ zO$3h-l5#pv$p$2mztW>F+1WJv4#}_(yk{^eErg(g$#nlq^4MJ7$zDiG@HRN z*+1aGTKZ;*B1<%HC?-7x7l)eb;-%u8l9Kizkk5q@hz(9 z3?T&dV!^S_D6X#PhJ--P@R+{m|~zIwrIHf7iBxV&0_ z?d|sSb-KBvn&#BglCsXp%Z#E>=qz=LF@<5Fq9QL!X0ru#zQ8+0-(8`zln`9xV^nzC zBaoDNPSdu;5Ku~wetn0Mnyycp!w_Q{2jp3blyMgC1JN0>a!M3BbzdT+SuUW3B>ISz zsYsEfxupv+aYTb3ZNHjKXAHeTYeiL6*uDp)$+W~cOQ|)nEE$@Xh@@>>v`Xm_L)Y{9 zr=N0gc*qx@e!^n8z9$yv+sY>z%zdNbS

%hodFQnR3n>$4 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

cz}Yh- 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 ZgwkVKN0Ioik|;6JadkfLM0B{6^=~%3%Q^r6 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_18_1.png b/docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_18_1.png new file mode 100644 index 0000000000000000000000000000000000000000..45a206ae1c504be3f214f3efb28dda864f571d6b GIT binary patch literal 72163 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 KMNUMnLSTZx*F>=Z literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_18_2.png b/docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_18_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ae7a6c8850bfbdfc5cb465aec90266796738310b GIT binary patch literal 95321 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 JmyolsUq>tc;mI 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≧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 + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+ + +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/_Device.html b/docs/v1.1.1/_modules/torch_tensorrt/_Device.html new file mode 100644 index 0000000000..97b7d0b348 --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/_Device.html @@ -0,0 +1,761 @@ + + + + + + + + + + + + torch_tensorrt._Device — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt._Device

+import torch
+
+from torch_tensorrt import _enums
+from torch_tensorrt import logging
+from torch_tensorrt import _C
+
+import warnings
+
+
+
[docs]class Device(object): + """ + Defines a device that can be used to specify target devices for engines + + Attributes: + device_type (torch_tensorrt.DeviceType): Target device type (GPU or DLA). Set implicitly based on if dla_core is specified. + gpu_id (int): Device ID for target GPU + dla_core (int): Core ID for target DLA core + allow_gpu_fallback (bool): Whether falling back to GPU if DLA cannot support an op should be allowed + """ + + device_type = None #: (torch_tensorrt.DeviceType): Target device type (GPU or DLA). Set implicitly based on if dla_core is specified. + gpu_id = -1 #: (int) Device ID for target GPU + dla_core = -1 #: (int) Core ID for target DLA core + allow_gpu_fallback = False #: (bool) Whether falling back to GPU if DLA cannot support an op should be allowed + +
[docs] def __init__(self, *args, **kwargs): + """__init__ Method for torch_tensorrt.Device + + Device accepts one of a few construction patterns + + Args: + spec (str): String with device spec e.g. "dla:0" for dla, core_id 0 + + Keyword Arguments: + gpu_id (int): ID of target GPU (will get overrided if dla_core is specified to the GPU managing DLA). If specified, no positional arguments should be provided + dla_core (int): ID of target DLA core. If specified, no positional arguments should be provided. + allow_gpu_fallback (bool): Allow TensorRT to schedule operations on GPU if they are not supported on DLA (ignored if device type is not DLA) + + Examples: + - Device("gpu:1") + - Device("cuda:1") + - Device("dla:0", allow_gpu_fallback=True) + - Device(gpu_id=0, dla_core=0, allow_gpu_fallback=True) + - Device(dla_core=0, allow_gpu_fallback=True) + - Device(gpu_id=1) + """ + if len(args) == 1: + if not isinstance(args[0], str): + raise TypeError( + "When specifying Device through positional argument, argument must be str" + ) + else: + (self.device_type, id) = Device._parse_device_str(args[0]) + if self.device_type == _enums.DeviceType.GPU: + self.gpu_id = id + else: + self.dla_core = id + self.gpu_id = 0 + logging.log( + logging.Level.Warning, + "Setting GPU id to 0 for device because device 0 manages DLA on Xavier", + ) + + elif len(args) == 0: + if "gpu_id" in kwargs or "dla_core" in kwargs: + if "dla_core" in kwargs: + self.device_type = _enums.DeviceType.DLA + self.dla_core = kwargs["dla_core"] + if "gpu_id" in kwargs: + self.gpu_id = kwargs["gpu_id"] + else: + self.gpu_id = 0 + logging.log( + logging.Level.Warning, + "Setting GPU id to 0 for device because device 0 manages DLA on Xavier", + ) + else: + self.gpu_id = kwargs["gpu_id"] + self.device_type = _enums.DeviceType.GPU + else: + raise ValueError( + "Either gpu_id or dla_core or both must be defined if no string with device specs is provided as an arg" + ) + + else: + raise ValueError( + "Unexpected number of positional arguments for class Device \n Found {} arguments, expected either zero or a single positional arguments".format( + len(args) + ) + ) + + if "allow_gpu_fallback" in kwargs: + if not isinstance(kwargs["allow_gpu_fallback"], bool): + raise TypeError("allow_gpu_fallback must be a bool") + self.allow_gpu_fallback = kwargs["allow_gpu_fallback"]
+ + def __str__(self) -> str: + return ( + "Device(type={}, gpu_id={}".format(self.device_type, self.gpu_id) + ")" + if self.device_type == _enums.DeviceType.GPU + else ", dla_core={}, allow_gpu_fallback={}".format( + self.dla_core, self.allow_gpu_fallback + ) + ) + + def _to_internal(self) -> _C.Device: + internal_dev = _C.Device() + internal_dev.device_type = self.device_type + internal_dev.gpu_id = self.gpu_id + internal_dev.dla_core = self.dla_core + internal_dev.allow_gpu_fallback = self.allow_gpu_fallback + return internal_dev + + @classmethod + def _from_torch_device(cls, torch_dev: torch.device): + if torch_dev.type != "cuda": + raise ValueError('Torch Device specs must have type "cuda"') + gpu_id = torch_dev.index + return cls(gpu_id=gpu_id) + + @classmethod + def _current_device(cls): + try: + dev = _C._get_current_device() + except RuntimeError: + logging.log(logging.Level.Error, "Cannot get current device") + return None + return cls(gpu_id=dev.gpu_id) + + @staticmethod + def _parse_device_str(s): + s = s.lower() + spec = s.split(":") + if spec[0] == "gpu" or spec[0] == "cuda": + return (_enums.DeviceType.GPU, int(spec[1])) + elif spec[0] == "dla": + return (_enums.DeviceType.DLA, int(spec[1]))
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/_Input.html b/docs/v1.1.1/_modules/torch_tensorrt/_Input.html new file mode 100644 index 0000000000..7daa173ab7 --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/_Input.html @@ -0,0 +1,905 @@ + + + + + + + + + + + + torch_tensorrt._Input — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt._Input

+from enum import Enum
+from typing import List, Dict, Any
+
+import torch
+
+from torch_tensorrt import _enums
+from torch_tensorrt import _C
+
+
+
[docs]class Input(object): + """ + Defines an input to a module in terms of expected shape, data type and tensor format. + + Attributes: + shape_mode (torch_tensorrt.Input._ShapeMode): Is input statically or dynamically shaped + shape (Tuple or Dict): Either a single Tuple or a dict of tuples defining the input shape. + Static shaped inputs will have a single tuple. Dynamic inputs will have a dict of the form + ``{ + "min_shape": Tuple, + "opt_shape": Tuple, + "max_shape": Tuple + }`` + dtype (torch_tensorrt.dtype): The expected data type of the input tensor (default: torch_tensorrt.dtype.float32) + format (torch_tensorrt.TensorFormat): The expected format of the input tensor (default: torch_tensorrt.TensorFormat.NCHW) + """ + + class _ShapeMode(Enum): + STATIC = 0 + DYNAMIC = 1 + + shape_mode = None #: (torch_tensorrt.Input._ShapeMode): Is input statically or dynamically shaped + shape = None #: (Tuple or Dict): Either a single Tuple or a dict of tuples defining the input shape. Static shaped inputs will have a single tuple. Dynamic inputs will have a dict of the form ``{ "min_shape": Tuple, "opt_shape": Tuple, "max_shape": Tuple }`` + dtype = ( + _enums.dtype.unknown + ) #: The expected data type of the input tensor (default: torch_tensorrt.dtype.float32) + _explicit_set_dtype = False + format = ( + _enums.TensorFormat.contiguous + ) #: The expected format of the input tensor (default: torch_tensorrt.TensorFormat.NCHW) + +
[docs] def __init__(self, *args, **kwargs): + """__init__ Method for torch_tensorrt.Input + + Input accepts one of a few construction patterns + + Args: + shape (Tuple or List, optional): Static shape of input tensor + + Keyword Arguments: + shape (Tuple or List, optional): Static shape of input tensor + min_shape (Tuple or List, optional): Min size of input tensor's shape range + Note: All three of min_shape, opt_shape, max_shape must be provided, there must be no positional arguments, shape must not be defined and implictly this sets Input's shape_mode to DYNAMIC + opt_shape (Tuple or List, optional): Opt size of input tensor's shape range + Note: All three of min_shape, opt_shape, max_shape must be provided, there must be no positional arguments, shape must not be defined and implictly this sets Input's shape_mode to DYNAMIC + max_shape (Tuple or List, optional): Max size of input tensor's shape range + Note: All three of min_shape, opt_shape, max_shape must be provided, there must be no positional arguments, shape must not be defined and implictly this sets Input's shape_mode to DYNAMIC + dtype (torch.dtype or torch_tensorrt.dtype): Expected data type for input tensor (default: torch_tensorrt.dtype.float32) + format (torch.memory_format or torch_tensorrt.TensorFormat): The expected format of the input tensor (default: torch_tensorrt.TensorFormat.NCHW) + + Examples: + - Input([1,3,32,32], dtype=torch.float32, format=torch.channel_last) + - Input(shape=(1,3,32,32), dtype=torch_tensorrt.dtype.int32, format=torch_tensorrt.TensorFormat.NCHW) + - Input(min_shape=(1,3,32,32), opt_shape=[2,3,32,32], max_shape=(3,3,32,32)) #Implicitly dtype=torch_tensorrt.dtype.float32, format=torch_tensorrt.TensorFormat.NCHW + """ + if len(args) == 1: + if not Input._supported_input_size_type(args[0]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(args[0])) + ) + if any(k in kwargs for k in ["min_shape", "opt_shape", "max_shape"]): + raise ValueError( + "Found that both shape (as a positional argument), and one or more of min_shape, opt_shape, max_shape were specified\nclass Input expects that only either shape or all three of min_shape, opt_shape, max_shape are defined" + ) + self.shape = tuple(args[0]) + self.shape_mode = Input._ShapeMode.STATIC + + elif len(args) == 0: + if not ("shape" in kwargs) and not ( + all(k in kwargs for k in ["min_shape", "opt_shape", "max_shape"]) + ): + raise ValueError( + "Missing required arguments for class Input\nEither shape or all three of min_shape, opt_shape, max_shape must be defined" + ) + elif ("shape" in kwargs) and all( + k in kwargs for k in ["min_shape", "opt_shape", "max_shape"] + ): + raise ValueError( + "Found that both shape, and one or more of min_shape, opt_shape, max_shape were specified\nclass Input expects that only either shape or all three of min_shape, opt_shape, max_shape are defined" + ) + + if "shape" in kwargs: + if not Input._supported_input_size_type(kwargs["shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(kwargs["shape"])) + ) + self.shape = tuple(kwargs["shape"]) + self.shape_mode = Input._ShapeMode.STATIC + else: + if not Input._supported_input_size_type(kwargs["min_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(kwargs["min_shape"])) + + " for min_shape" + ) + if not Input._supported_input_size_type(kwargs["opt_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(kwargs["opt_shape"])) + + " for opt_shape" + ) + if not Input._supported_input_size_type(kwargs["max_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(kwargs["max_shape"])) + + " for max_shape" + ) + + self.shape = { + "min_shape": tuple(kwargs["min_shape"]), + "opt_shape": tuple(kwargs["opt_shape"]), + "max_shape": tuple(kwargs["max_shape"]), + } + self.shape_mode = Input._ShapeMode.DYNAMIC + + else: + raise ValueError( + "Unexpected number of positional arguments for class Input \n Found {} arguments, expected either zero or a single positional arguments".format( + len(args) + ) + ) + + if "dtype" in kwargs: + self.dtype = Input._parse_dtype(kwargs["dtype"]) + self._explicit_set_dtype = True + + if "format" in kwargs: + self.format = Input._parse_format(kwargs["format"])
+ + def __str__(self) -> str: + if self.shape_mode == Input._ShapeMode.STATIC: + return "Input(shape={}, dtype={}, format={})".format( + self.shape, str(self.dtype), str(self.format) + ) + elif self.shape_mode == Input._ShapeMode.DYNAMIC: + return "Input(min_shape={}, opt_shape={}, max_shape={}, dtype={}, format={})".format( + self.shape["min_shape"], + self.shape["opt_shape"], + self.shape["max_shape"], + str(self.dtype), + str(self.format), + ) + else: + raise RuntimeError("Unknown input shape mode") + + def _to_internal(self) -> _C.Input: + internal_in = _C.Input() + if self.shape_mode == Input._ShapeMode.DYNAMIC: + if not Input._supported_input_size_type(self.shape["min_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(self.shape["min_shape"])) + + " for min_shape" + ) + else: + internal_in.min = self.shape["min_shape"] + + if not Input._supported_input_size_type(self.shape["opt_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(self.shape["opt_shape"])) + + " for opt_shape" + ) + else: + internal_in.opt = self.shape["opt_shape"] + + if not Input._supported_input_size_type(self.shape["max_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(self.shape["max_shape"])) + + " for max_shape" + ) + else: + internal_in.max = self.shape["max_shape"] + internal_in.input_is_dynamic = True + else: + if not Input._supported_input_size_type(self.shape): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(self.shape)) + + " for shape" + ) + else: + internal_in.opt = self.shape + internal_in.input_is_dynamic = False + + if self.dtype != _enums.dtype.unknown: + self._explicit_set_dtype = True + else: + self._explicit_set_dtype = False + + internal_in.dtype = Input._parse_dtype(self.dtype) + internal_in._explicit_set_dtype = self._explicit_set_dtype + internal_in.format = Input._parse_format(self.format) + return internal_in + + @staticmethod + def _supported_input_size_type(input_size: Any) -> bool: + if isinstance(input_size, torch.Size): + return True + elif isinstance(input_size, tuple): + return True + elif isinstance(input_size, list): + return True + else: + return False + + @staticmethod + def _parse_dtype(dtype: Any) -> _enums.dtype: + if isinstance(dtype, torch.dtype): + if dtype == torch.int32: + return _enums.dtype.int32 + elif dtype == torch.half: + return _enums.dtype.half + elif dtype == torch.float: + return _enums.dtype.float + elif dtype == torch.bool: + return _enums.dtype.bool + else: + raise TypeError( + "Provided an unsupported data type as an input data type (support: bool, int32, half, float), got: " + + str(dtype) + ) + + elif isinstance(dtype, _enums.dtype): + return dtype + + else: + raise TypeError( + "Input data type needs to be specified with a torch.dtype or a torch_tensorrt.dtype, got: " + + str(type(dtype)) + ) + + @staticmethod + def _parse_format(format: Any) -> _enums.TensorFormat: + if isinstance(format, torch.memory_format): + if format == torch.contiguous_format: + return _enums.TensorFormat.contiguous + elif format == torch.channels_last: + return _enums.TensorFormat.channels_last + else: + raise ValueError( + "Provided an unsupported tensor format (support: NHCW/contiguous_format, NHWC/channel_last)" + ) + + elif isinstance(format, _enums.TensorFormat): + return format + + else: + raise TypeError( + "Tensor format needs to be specified with either torch.memory_format or torch_tensorrt.TensorFormat" + ) + + @classmethod + def _from_tensor(cls, t: torch.Tensor): + if not any( + [ + t.is_contiguous(memory_format=torch.contiguous_format), + t.is_contiguous(memory_format=torch.channels_last), + ] + ): + raise ValueError( + "Tensor does not have a supported contiguous memory format, supported formats are contiguous or channel_last" + ) + frmt = ( + torch.contiguous_format + if t.is_contiguous(memory_format=torch.contiguous_format) + else torch.channels_last + ) + return cls(shape=t.shape, dtype=t.dtype, format=frmt)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/_compile.html b/docs/v1.1.1/_modules/torch_tensorrt/_compile.html new file mode 100644 index 0000000000..5396dc1d85 --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/_compile.html @@ -0,0 +1,837 @@ + + + + + + + + + + + + torch_tensorrt._compile — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt._compile

+from typing import List, Dict, Any
+from torch_tensorrt import _enums
+import torch_tensorrt.ts
+from torch_tensorrt import logging
+import torch
+import torch.fx
+from enum import Enum
+
+import torch_tensorrt.fx
+import torch_tensorrt.fx.lower
+from torch_tensorrt.fx.utils import LowerPrecision
+
+
+class _IRType(Enum):
+    """Enum to set the minimum required logging level to print a message to stdout"""
+
+    ts = 0
+    fx = 1
+
+
+class _ModuleType(Enum):
+    """Enum to set the minimum required logging level to print a message to stdout"""
+
+    nn = 0
+    ts = 1
+    fx = 2
+
+
+def _parse_module_type(module: Any) -> _ModuleType:
+    if any(
+        isinstance(module, t)
+        for t in [torch.jit.ScriptModule, torch.jit.ScriptFunction]
+    ):
+        return _ModuleType.ts
+    elif isinstance(module, torch.fx.GraphModule):
+        return _ModuleType.fx
+    elif isinstance(module, torch.nn.Module):
+        return _ModuleType.nn
+    else:
+        raise RuntimeError("Module is an unknown format")
+
+
+def _get_target_ir(module_type: _ModuleType, ir: str) -> _IRType:
+    module_is_tsable = any([module_type == t for t in [_ModuleType.nn, _ModuleType.ts]])
+    module_is_fxable = any([module_type == t for t in [_ModuleType.nn, _ModuleType.fx]])
+
+    ir_targets_torchscript = any([ir == opt for opt in ["torchscript", "ts"]])
+    ir_targets_fx = ir == "fx"
+
+    if module_is_tsable and ir_targets_torchscript:
+        return _IRType.ts
+    elif module_is_fxable and ir_targets_fx:
+        return _IRType.fx
+    else:
+        if ir == "default":
+            # Options are listed in order of preference
+            if module_is_tsable:
+                logging.log(
+                    logging.Level.Info, "ir was set to default, using TorchScript as ir"
+                )
+                return _IRType.ts
+            elif module_is_fxable:
+                raise ValueError(
+                    "Was given a torch.fx.GraphModule, fx is not currently supported by Torch-TensorRT"
+                )
+                # logging.log(logging.Level.Info, "ir was set to default, using TorchScript as fx")
+                # return _IRType.fx
+            else:
+                raise ValueError("Module was provided with in an unsupported format")
+        else:
+            raise ValueError("Unknown ir was requested")
+
+
+
[docs]def compile( + module: Any, + ir="default", + inputs=[], + enabled_precisions=set([_enums.dtype.float]), + **kwargs, +): + """Compile a PyTorch module for NVIDIA GPUs using TensorRT + + Takes a existing PyTorch module and a set of settings to configure the compiler + and using the path specified in ``ir`` lower and compile the module to TensorRT + returning a PyTorch Module back + + Converts specifically the forward method of a Module + + Arguments: + module (Union(torch.nn.Module,torch.jit.ScriptModule): Source module + + Keyword Arguments: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + ir (str): The requested strategy to compile. (Options: default - Let Torch-TensorRT decide, ts - TorchScript with scripting path) + **kwargs: Additional settings for the specific requested strategy (See submodules for more info) + + Returns: + torch.nn.Module: Compiled Module, when run it will execute via TensorRT + """ + module_type = _parse_module_type(module) + target_ir = _get_target_ir(module_type, ir) + if target_ir == _IRType.ts: + ts_mod = module + if module_type == _ModuleType.nn: + logging.log( + logging.Level.Info, + "Module was provided as a torch.nn.Module, trying to script the module with torch.jit.script. In the event of a failure please preconvert your module to TorchScript", + ) + ts_mod = torch.jit.script(module) + return torch_tensorrt.ts.compile( + ts_mod, inputs=inputs, enabled_precisions=enabled_precisions, **kwargs + ) + elif target_ir == _IRType.fx: + if ( + torch.float16 in enabled_precisions + or torch_tensorrt.dtype.half in enabled_precisions + ): + lower_precision = LowerPrecision.FP16 + elif ( + torch.float32 in enabled_precisions + or torch_tensorrt.dtype.float in enabled_precisions + ): + lower_precision = LowerPrecision.FP32 + else: + raise ValueError(f"Precision {enabled_precisions} not supported on FX") + + return torch_tensorrt.fx.lower.compile( + module, + inputs, + lower_precision=lower_precision, + max_batch_size=inputs[0].size(0), + explicit_batch_dimension=True, + dynamic_batch=False, + ) + else: + raise RuntimeError("Module is an unknown format or the ir requested is unknown")
+ + +
[docs]def convert_method_to_trt_engine( + module: Any, + method_name: str, + ir="default", + inputs=[], + enabled_precisions=set([_enums.dtype.float]), + **kwargs, +): + """Convert a TorchScript module method to a serialized TensorRT engine + + Converts a specified method of a module to a serialized TensorRT engine given a dictionary of conversion settings + + Arguments: + module (Union(torch.nn.Module,torch.jit.ScriptModule): Source module + + Keyword Arguments: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + ir (str): The requested strategy to compile. (Options: default - Let Torch-TensorRT decide, ts - TorchScript with scripting path) + **kwargs: Additional settings for the specific requested strategy (See submodules for more info) + Returns: + bytes: Serialized TensorRT engine, can either be saved to a file or deserialized via TensorRT APIs + """ + module_type = _parse_module_type(module) + target_ir = _get_target_ir(module_type, ir) + if target_ir == _IRType.ts: + ts_mod = module + if module_type == _ModuleType.nn: + logging.log( + logging.Level.Info, + "Module was provided as a torch.nn.Module, trying to script the module with torch.jit.script. In the event of a failure please preconvert your module to TorchScript", + ) + ts_mod = torch.jit.script(module) + return torch_tensorrt.ts.convert_method_to_trt_engine( + ts_mod, + method_name, + inputs=inputs, + enabled_precisions=enabled_precisions, + **kwargs, + ) + elif target_ir == _IRType.fx: + raise RuntimeError("fx is currently not supported") + else: + raise RuntimeError("Module is an unknown format or the ir requested is unknown")
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/_util.html b/docs/v1.1.1/_modules/torch_tensorrt/_util.html new file mode 100644 index 0000000000..72e6417981 --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/_util.html @@ -0,0 +1,656 @@ + + + + + + + + + + + + torch_tensorrt._util — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt._util

+from torch_tensorrt import __version__
+from torch_tensorrt import _C
+
+import torch
+
+
+
[docs]def dump_build_info(): + """Prints build information about the torch_tensorrt distribution to stdout""" + print(get_build_info())
+ + +
[docs]def get_build_info() -> str: + """Returns a string containing the build information of torch_tensorrt distribution + + Returns: + str: String containing the build information for torch_tensorrt distribution + """ + build_info = _C.get_build_info() + build_info = ( + "Torch-TensorRT Version: " + + str(__version__) + + "\n" + + "Using PyTorch Version: " + + str(torch.__version__) + + "\n" + + build_info + ) + return build_info
+ + +
[docs]def set_device(gpu_id): + _C.set_device(gpu_id)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/fx/fx2trt.html b/docs/v1.1.1/_modules/torch_tensorrt/fx/fx2trt.html new file mode 100644 index 0000000000..24980922e2 --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/fx/fx2trt.html @@ -0,0 +1,999 @@ + + + + + + + + + + + + torch_tensorrt.fx.fx2trt — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.fx.fx2trt

+import logging
+import warnings
+from datetime import datetime
+from typing import Any, Callable, Dict, List, NamedTuple, Optional, Sequence
+
+import numpy
+
+# @manual=//deeplearning/trt/python:py_tensorrt
+import tensorrt as trt
+import torch
+import torch.fx
+from torch.fx.node import _get_qualified_name
+from torch.fx.passes.shape_prop import TensorMetadata
+
+from .converter_registry import CONVERTERS
+from .input_tensor_spec import InputTensorSpec
+from .observer import Observer
+from .utils import get_dynamic_dims, LowerPrecision, torch_dtype_to_trt
+
+_LOGGER: logging.Logger = logging.getLogger(__name__)
+
+TRT_INTERPRETER_CALL_PRE_OBSERVER: Observer[
+    Callable[[torch.fx.GraphModule], None]
+] = Observer("TRT_INTERPRETER_CALL_PRE_OBSERVER")
+
+
+
[docs]class TRTInterpreterResult(NamedTuple): + engine: Any + input_names: Sequence[str] + output_names: Sequence[str] + serialized_cache: bytearray
+ + +
[docs]class TRTInterpreter(torch.fx.Interpreter): + def __init__( + self, + module: torch.fx.GraphModule, + input_specs: List[InputTensorSpec], + explicit_batch_dimension: bool = False, + explicit_precision: bool = False, + logger_level=None, + ): + super().__init__(module) + + self.logger = trt.Logger(logger_level or trt.Logger.WARNING) + self.builder = trt.Builder(self.logger) + + flag = 0 + if explicit_batch_dimension: + EXPLICIT_BATCH = 1 << (int)( + trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH + ) + flag |= EXPLICIT_BATCH + + if explicit_precision: + EXPLICIT_PRECISION = 1 << (int)( + trt.NetworkDefinitionCreationFlag.EXPLICIT_PRECISION + ) + flag |= EXPLICIT_PRECISION + self.network = self.builder.create_network(flag) + + missing_ops = self.validate_conversion() + if missing_ops: + warnings.warn( + "Interpretation will fail due to missing operations \n" + + "\n".join(f"{i}" for i in missing_ops) + ) + + self.optimization_profiles: Optional[List] = None + self.input_specs = input_specs + self.input_specs_iter = 0 + self.validate_input_specs() + self._cur_node_name: Optional[str] = None + self._input_names: List[str] = [] + self._output_names: List[str] = [] + self._itensor_to_tensor_meta: Dict[ + trt.tensorrt.ITensor, TensorMetadata + ] = dict() + + def validate_input_specs(self): + for shape, _, _, shape_ranges, has_batch_dim in self.input_specs: + if not self.network.has_implicit_batch_dimension: + assert ( + has_batch_dim + ), "It's required to specify batch dimension when it's explicit in TensorRT network." + + dynamic_dims = get_dynamic_dims(shape) + if len(dynamic_dims): + assert not self.network.has_implicit_batch_dimension, ( + "Can't have dynamic dim when " + f"batch dim is implicit, got {shape}." + ) + assert len( + shape_ranges + ), "shape_ranges must be provided when shape has dynamic dim." + + if self.optimization_profiles: + assert len(shape_ranges) == len(self.optimization_profiles), ( + "Number of optimization " + f"profiles {len(self.optimization_profiles)} doesn't match with the number of shape_range" + f" {len(shape_ranges)} provided." + ) + else: + self.optimization_profiles = [ + self.builder.create_optimization_profile() + for _ in range(len(shape_ranges)) + ] + + for shape_range in shape_ranges: + assert ( + len(shape_range) == 3 + ), f"Expect three elements in shape_range, got {len(shape_range)}" + assert all(len(s) == len(shape) for s in shape_range), ( + "Expect elements in shape_range" + f" {shape_range} have the same number of dimension as the provided shape {len(shape)}" + ) + + for i in range(len(shape)): + if i in dynamic_dims: + assert all( + shape_range[j][i] <= shape_range[j + 1][i] + for j in range(2) + ), ( + "Expect dynamic dim" + f" {i} to have incremental value for shapes in shape_range {shape_range}." + ) + else: + assert all(s[i] == shape[i] for s in shape_range), ( + f"Expect non dynamic dim {i} to be the same" + f" for all shapes in shape_range {shape_range}." + ) + else: + assert ( + len(shape_ranges) == 0 + ), "shape_ranges are provided for input that doesn't have dynamic dim." + + def validate_conversion(self): + missing_converter = set() + + for node in self.module.graph.nodes: + if node.op == "call_function" and not CONVERTERS.get(node.target): + missing_converter.add(f"{node.op} {_get_qualified_name(node.target)}") + elif node.op == "call_method" and not CONVERTERS.get(node.target): + missing_converter.add(f"{node.op} torch.Tensor.{node.target}") + elif node.op == "call_module": + submod = self.fetch_attr(node.target) + submod_type = getattr(submod, "_base_class_origin", type(submod)) + if not CONVERTERS.get(submod_type): + missing_converter.add(f"{node.op} {torch.typename(submod_type)}") + + return missing_converter + + def run( + self, + max_batch_size=64, + max_workspace_size=1 << 25, + lower_precision=LowerPrecision.FP16, + sparse_weights=False, + force_fp32_output=False, + strict_type_constraints=False, + algorithm_selector=None, + timing_cache=None, + profiling_verbosity=None, + tactic_sources=None, + ) -> TRTInterpreterResult: + """ + Build TensorRT engine with some configs. + Args: + max_batch_size: set accordingly for maximum batch size you will use. + max_workspace_size: set to the maximum size we can afford for temporary buffer + lower_precision: the precision model layers are running on (TensorRT will choose the best perforamnce precision). + sparse_weights: allow the builder to examine weights and use optimized functions when weights have suitable sparsity + force_fp32_output: force output to be fp32 + strict_type_constraints: Usually we should set it to False unless we want to control the precision of certain layer for numeric reasons. + algorithm_selector: set up algorithm selection for certain layer + timing_cache: enable timing cache for TensorRT + profiling_verbosity: TensorRT logging level + Return: + TRTInterpreterResult + """ + TRT_INTERPRETER_CALL_PRE_OBSERVER.observe(self.module) + + # For float outputs, we set their dtype to fp16 only if lower_precision == LowerPrecision.FP16 and + # force_fp32_output=False. + self.output_fp16 = ( + not force_fp32_output and lower_precision == LowerPrecision.FP16 + ) + + if ( + lower_precision == LowerPrecision.INT8 + and not self.builder.platform_has_fast_int8 + ): + raise RuntimeError("Current platform doesn't support fast native int8!") + + if ( + lower_precision == LowerPrecision.FP16 + and not self.builder.platform_has_fast_fp16 + ): + warnings.warn("Current platform doesn't support fast native fp16!") + + self.input_specs_iter = 0 + run_module_start_time = datetime.now() + super().run() + _LOGGER.info( + f"Run Module elapsed time: {datetime.now() - run_module_start_time}" + ) + build_engine_start_time = datetime.now() + + self.builder.max_batch_size = max_batch_size + builder_config = self.builder.create_builder_config() + builder_config.max_workspace_size = max_workspace_size + + cache = None + if timing_cache: + cache_file = numpy.array(timing_cache) + cache = builder_config.create_timing_cache(cache_file.tobytes()) + else: + cache = builder_config.create_timing_cache(b"") + builder_config.set_timing_cache(cache, False) + + if trt.__version__ >= "8.2": + builder_config.profiling_verbosity = ( + profiling_verbosity + if profiling_verbosity + else trt.ProfilingVerbosity.LAYER_NAMES_ONLY + ) + if lower_precision == LowerPrecision.FP16: + builder_config.set_flag(trt.BuilderFlag.FP16) + + if lower_precision == LowerPrecision.INT8: + builder_config.set_flag(trt.BuilderFlag.INT8) + + if sparse_weights: + builder_config.set_flag(trt.BuilderFlag.SPARSE_WEIGHTS) + + if strict_type_constraints: + builder_config.set_flag(trt.BuilderFlag.STRICT_TYPES) + + if self.optimization_profiles: + for optimization_profile in self.optimization_profiles: + builder_config.add_optimization_profile(optimization_profile) + + if algorithm_selector: + builder_config.set_flag(trt.BuilderFlag.DISABLE_TIMING_CACHE) + builder_config.algorithm_selector = algorithm_selector + + if tactic_sources is not None: + builder_config.set_tactic_sources(tactic_sources=tactic_sources) + + engine = self.builder.build_engine(self.network, builder_config) + assert engine + + serialized_cache = ( + bytearray(cache.serialize()) + if builder_config.get_timing_cache() + else bytearray() + ) + _LOGGER.info( + f"Build TRT engine elapsed time: {datetime.now() - build_engine_start_time}" + ) + + return TRTInterpreterResult( + engine, self._input_names, self._output_names, serialized_cache + ) + + def run_node(self, n): + self._cur_node_name = str(n) + # add "_itensor_to_tensor_meta" + kwargs = dict(n.kwargs) + kwargs["_itensor_to_tensor_meta"] = self._itensor_to_tensor_meta + n.kwargs = kwargs + + # run the node + trt_node = super().run_node(n) + + # remove "_itensor_to_tensor_meta" + kwargs = dict(n.kwargs) + del kwargs["_itensor_to_tensor_meta"] + n.kwargs = kwargs + + if isinstance(trt_node, trt.tensorrt.ITensor): + self._itensor_to_tensor_meta[trt_node] = n.meta.get("tensor_meta") + + return trt_node + + def placeholder(self, target, args, kwargs): + self._input_names.append(target) + shape, dtype, _, shape_ranges, has_batch_dim = self.input_specs[ + self.input_specs_iter + ] + self.input_specs_iter += 1 + + if self.network.has_implicit_batch_dimension: + if has_batch_dim: + shape = shape[1:] + else: + for i, shape_range in enumerate(shape_ranges): + assert self.optimization_profiles + self.optimization_profiles[i].set_shape(target, *shape_range) + + return self.network.add_input( + name=target, shape=tuple(shape), dtype=torch_dtype_to_trt(dtype) + ) + + def call_module(self, target, args, kwargs): + assert isinstance(target, str) + submod = self.fetch_attr(target) + submod_type = getattr(submod, "_base_class_origin", type(submod)) + converter = CONVERTERS.get(submod_type) + + if not converter: + raise RuntimeError( + f"Conversion of module of type {submod_type} not currently supported!" + ) + + assert self._cur_node_name is not None + return converter(self.network, submod, args, kwargs, self._cur_node_name) + + def call_function(self, target, args, kwargs): + converter = CONVERTERS.get(target) + + if not converter: + raise RuntimeError( + f"Conversion of function {torch.typename(target)} not currently supported!" + ) + + assert self._cur_node_name is not None + return converter(self.network, target, args, kwargs, self._cur_node_name) + + def call_method(self, target, args, kwargs): + assert isinstance(target, str) + converter = CONVERTERS.get(target) + + if not converter: + raise RuntimeError( + f"Conversion of method {target} not currently supported!" + ) + + assert self._cur_node_name is not None + return converter(self.network, target, args, kwargs, self._cur_node_name) + + def output(self, target, args, kwargs): + assert len(args) == 1 + outputs = args[0] if isinstance(args[0], tuple) else (args[0],) + + if not all(isinstance(output, trt.tensorrt.ITensor) for output in outputs): + raise RuntimeError("TensorRT requires all outputs to be Tensor!") + + for i, output in enumerate(outputs): + if any( + op_name in output.name.split("_") + for op_name in ( + "eq", + "gt", + "lt", + "or", + "xor", + "and", + "not", + "ne", + "isinf", + "any", + ) + ): + output_bool = True + else: + output_bool = False + name = f"output{i}" + output.name = name + self.network.mark_output(output) + if output_bool: + output.dtype = trt.bool + elif self.output_fp16 and output.dtype == trt.float32: + output.dtype = trt.float16 + self._output_names.append(name)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/fx/input_tensor_spec.html b/docs/v1.1.1/_modules/torch_tensorrt/fx/input_tensor_spec.html new file mode 100644 index 0000000000..a7c84fbb00 --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/fx/input_tensor_spec.html @@ -0,0 +1,809 @@ + + + + + + + + + + + + torch_tensorrt.fx.input_tensor_spec — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.fx.input_tensor_spec

+from typing import Iterable, List, NamedTuple, Optional, Sequence, Tuple
+
+import torch
+
+from .types import Shape, ShapeRange
+from .utils import get_dynamic_dims
+
+
+def generate_input_specs(inputs, lower_setting, additional_inputs=None):
+    # dynamic_batch is TRT only flag.
+    if (
+        not lower_setting.explicit_batch_dimension
+        or lower_setting.dynamic_batch is False
+    ):
+        return InputTensorSpec.from_tensors(inputs)
+
+    # If we don't have additional inputs, we assume the first dimension
+    # is the dynamic batch dimension. Otherwise, we use the additional
+    # inputs to determine the batch dimension.
+    if additional_inputs is None:
+        return InputTensorSpec.from_tensors_with_dynamic_batch_size(
+            inputs,
+            (
+                0,
+                lower_setting.max_batch_size,
+                lower_setting.max_batch_size,
+            ),
+            lower_setting.opt_profile_replica,
+        )
+    else:
+        batch_dims = []
+
+        for i, j in zip(inputs, additional_inputs):
+            found_batch_dim = False
+
+            for idx, values in enumerate(zip(i.shape, j.shape)):
+                if values[0] != values[1]:
+                    assert (
+                        found_batch_dim is False
+                    ), f"We've already found a batch dim, {i.shape}, {j.shape}."
+                    batch_dims.append(idx)
+                    found_batch_dim = True
+
+            if not found_batch_dim:
+                raise RuntimeError(
+                    f"Failed to find batch dimension because shapes are the same, {i.shape}"
+                )
+
+        return InputTensorSpec.from_tensors_with_dynamic_batch_size(
+            inputs,
+            (
+                0,
+                lower_setting.max_batch_size,
+                lower_setting.max_batch_size,
+            ),
+            lower_setting.opt_profile_replica,
+            batch_dims,
+        )
+
+
+
[docs]class InputTensorSpec(NamedTuple): + """ + This class contains the information of a input tensor. + + shape: shape of the tensor. + + dtype: dtyep of the tensor. + + device: device of the tensor. This is only used to generate inputs to the given model + in order to run shape prop. For TensorRT engine, inputs have to be on cuda device. + + shape_ranges: If dynamic shape is needed (shape has dimensions of -1), then this field + has to be provided (default is empty list). Every shape_range is a tuple of three + tuples ((min_input_shape), (optimized_input_shape), (max_input_shape)). Each shape_range + is used to populate a TensorRT optimization profile. + e.g. If the input shape varies from (1, 224) to (100, 224) and we want to optimize + for (25, 224) because it's the most common input shape, then we set shape_ranges to + ((1, 224), (25, 225), (100, 224)). + + has_batch_dim: Whether the shape includes batch dimension. Batch dimension has to be provided + if the engine want to run with dynamic shape. + """ + + shape: Shape + dtype: torch.dtype + device: torch.device = torch.device("cpu") + shape_ranges: List[ShapeRange] = [] + has_batch_dim: bool = True + + @classmethod + def from_tensor(cls, tensor: torch.Tensor) -> "InputTensorSpec": + """ + Produce an InputTenosrSpec named tuple which contains the + information of the given PyTorch tensor. + + Args: + tensor (torch.Tensor): A PyTorch tensor. + + Returns: + An InputTensorSpec named tuple. + """ + return cls(tensor.shape, tensor.dtype, tensor.device) + + @classmethod + def from_tensors(cls, tensors: Sequence[torch.Tensor]) -> List["InputTensorSpec"]: + """ + Produce a list of InputTenosrSpec named tuples which contain + the information of all the given PyTorch tensors. + + Args: + tensors (Iterable[torch.Tensor]): A list of PyTorch tensors. + + Returns: + A list of InputTensorSpec named tuples. + """ + assert isinstance(tensors, (list, tuple)) + return [cls.from_tensor(t) for t in tensors] + + @classmethod + def from_tensors_with_dynamic_batch_size( + cls, + tensors: Sequence[torch.Tensor], + batch_size_range: Tuple[int, int, int], + opt_profile_replica: int = 1, + batch_dims: Optional[List[int]] = None, + ) -> List["InputTensorSpec"]: + """ + Produce a list of InputTenosrSpec named tuples which would contain + the information of all the given PyTorch tensors. The produced input + tensor specs will treat all tensors' first dimension as batch dimension + and mark them as dynmaic. + + Args: + tensors (Sequence[torch.Tensor]): A list of PyTorch tensors. + batch_size_range (Tuple[int, int, int]): The first integer indicates + the smallest batch size allowed. The second integer indiceates + the batch size that we'll optimize for. The third integer indicates + the largest batch size allowed. + opt_profile_replica (int): If dynamic shape is enabled, each execution + context requires a different optimization profile. This arg determines + how many optimization profile replicas we want to produce. + batch_dims (Optional[List[int]]): The batch dim might not be the leading dim + and allow user to specify the batch dims using this arg. Default we treat + dim 0 as the batch dim. + + Returns: + A list of InputTensorSpec named tuples with dynamic ranges. + """ + if batch_dims is None: + batch_dims = [0] * len(tensors) + + input_specs = [] + batch_size = tensors[0].size(batch_dims[0]) + + for i, tensor in enumerate(tensors): + batch_dim = batch_dims[i] + assert batch_size == tensor.size( + batch_dim + ), f"The {i}th tensor (shape: {tensor.shape}) doesn't have the correct batch size: {batch_size}." + shape = list(tensor.shape) + shape[batch_dim] = -1 + shape_ranges: List[ShapeRange] = [tuple(tuple(shape[0:batch_dim] + [bs] + shape[batch_dim + 1 :]) for bs in batch_size_range)] * opt_profile_replica # type: ignore[list-item] + input_specs.append( + cls(tuple(shape), tensor.dtype, tensor.device, shape_ranges) + ) + + return input_specs + + def to_random_tensor(self): + shape = tuple(self.shape) + if len(get_dynamic_dims(shape)): + shape = tuple(self.shape_ranges[0][1]) + elif not self.has_batch_dim: + shape = (1,) + tuple(shape) + + return torch.randn(shape).to(dtype=self.dtype, device=self.device) + + @staticmethod + def create_inputs_from_specs(input_specs: Iterable["InputTensorSpec"]): + inputs = [] + + for spec in input_specs: + inputs.append(spec.to_random_tensor()) + + return inputs
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/fx/lower.html b/docs/v1.1.1/_modules/torch_tensorrt/fx/lower.html new file mode 100644 index 0000000000..f3db3e8945 --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/fx/lower.html @@ -0,0 +1,871 @@ + + + + + + + + + + + + torch_tensorrt.fx.lower — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.fx.lower

+import dataclasses as dc
+import logging
+from typing import Any, Callable, Optional, Sequence
+
+# @manual=//deeplearning/trt/python:py_tensorrt
+import tensorrt as trt
+import torch
+import torch.fx as fx
+import torch.nn as nn
+from torch.fx.passes.splitter_base import SplitResult
+
+from .fx2trt import TRTInterpreter, TRTInterpreterResult
+from .lower_setting import LowerSetting
+from .passes.lower_pass_manager_builder import LowerPassManagerBuilder
+from .passes.pass_utils import decorate_method, PassFunc, validate_inference
+from .tools.timing_cache_utils import TimingCacheManager
+from .tools.trt_splitter import TRTSplitter, TRTSplitterSetting
+
+from .tracer.acc_tracer import acc_tracer
+from .trt_module import TRTModule
+from .utils import LowerPrecision
+
+logger = logging.getLogger(__name__)
+
+Input = Sequence[Any]
+
+
+
[docs]def compile( + module: nn.Module, + input, + max_batch_size: int = 2048, + max_workspace_size=1 << 25, + explicit_batch_dimension=False, + lower_precision=LowerPrecision.FP16, + verbose_log=False, + timing_cache_prefix="", + save_timing_cache=False, + cuda_graph_batch_size=-1, + dynamic_batch=True, +) -> nn.Module: + """ + Takes in original module, input and lowering setting, run lowering workflow to turn module + into lowered module, or so called TRTModule. + + Args: + module: Original module for lowering. + input: Input for module. + max_batch_size: Maximum batch size (must be >= 1 to be set, 0 means not set) + max_workspace_size: Maximum size of workspace given to TensorRT. + explicit_batch_dimension: Use explicit batch dimension in TensorRT if set True, otherwise use implicit batch dimension. + lower_precision: lower_precision config given to TRTModule. + verbose_log: Enable verbose log for TensorRT if set True. + timing_cache_prefix: Timing cache file name for timing cache used by fx2trt. + save_timing_cache: Update timing cache with current timing cache data if set to True. + cuda_graph_batch_size: Cuda graph batch size, default to be -1. + + Returns: + A torch.nn.Module lowered by TensorRT. + """ + lower_setting = LowerSetting( + max_batch_size=max_batch_size, + max_workspace_size=max_workspace_size, + explicit_batch_dimension=explicit_batch_dimension, + lower_precision=lower_precision, + verbose_log=verbose_log, + timing_cache_prefix=timing_cache_prefix, + save_timing_cache=save_timing_cache, + cuda_graph_batch_size=cuda_graph_batch_size, + dynamic_batch=dynamic_batch, + ) + lowerer = Lowerer.create(lower_setting=lower_setting) + return lowerer(module, input)
+ + +@dc.dataclass +class LowerTrtInterpreter: + lower_setting: LowerSetting + timing_cache_manager: TimingCacheManager + + @classmethod + def create(cls, lower_setting): + timing_cache_manager = TimingCacheManager( + lower_setting.timing_cache_prefix, lower_setting.save_timing_cache + ) + return LowerTrtInterpreter(lower_setting, timing_cache_manager) + + def __call__(self, mod, input, split_name) -> TRTInterpreterResult: + assert self.lower_setting.input_specs, "Can't find input specs for lowering!" + logger.info(f"{split_name=} {self.lower_setting.input_specs=}") + + # Prepare algorithm selector and timing_cache for TRTInterpreter + algo_selector = None + if self.lower_setting.algo_selector: + algo_selector = self.lower_setting.algo_selector(f"{split_name}.json") + cache_data = None + if self.timing_cache_manager: + try: + cache_data = self.timing_cache_manager.get_timing_cache_trt(split_name) + except Exception as e: + logger.warning(f"Cannot load timing cache for {split_name}: {str(e)}") + cache_data = None + + interpreter = TRTInterpreter( + mod, + input_specs=self.lower_setting.input_specs, + explicit_batch_dimension=self.lower_setting.explicit_batch_dimension, + explicit_precision=self.lower_setting.explicit_precision, + logger_level=trt.Logger.VERBOSE + if self.lower_setting.verbose_log + else trt.Logger.WARNING, + ) + + interp_result: TRTInterpreterResult = interpreter.run( + max_batch_size=self.lower_setting.max_batch_size, + max_workspace_size=self.lower_setting.max_workspace_size, + lower_precision=self.lower_setting.lower_precision, + strict_type_constraints=self.lower_setting.strict_type_constraints, + algorithm_selector=algo_selector, + timing_cache=cache_data, + profiling_verbosity=trt.ProfilingVerbosity.DETAILED + if self.lower_setting.verbose_profile + else trt.ProfilingVerbosity.LAYER_NAMES_ONLY, + tactic_sources=self.lower_setting.tactic_sources, + ) + + # Update timing cache file if needed + timing_cache = interp_result.serialized_cache + if timing_cache and self.timing_cache_manager: + self.timing_cache_manager.update_timing_cache(split_name, timing_cache) + + return interp_result + + +def default_split_function( + model: fx.GraphModule, inputs: Input, lower_setting: LowerSetting +) -> SplitResult: + splitter_setting = TRTSplitterSetting() + splitter_setting.use_implicit_batch_dim = not lower_setting.explicit_batch_dimension + splitter_setting.min_acc_module_size = lower_setting.min_acc_module_size + splitter = TRTSplitter(model, inputs, settings=splitter_setting) + splitter.node_support_preview() + return splitter.generate_split_results() + + +def create_lower_trt_interpreter(lower_setting: LowerSetting) -> LowerTrtInterpreter: + return LowerTrtInterpreter.create(lower_setting) + + +def default_lower_pass( + create_trt_interpreter: Callable[[LowerSetting], LowerTrtInterpreter], +) -> PassFunc: + def lower_pass( + mod: nn.Module, input: Input, lower_setting: LowerSetting, module_name: str + ) -> nn.Module: + """ + Create a module transformation pass which lowers an `fx.GraphModule` into a + `TRTModule` + """ + interpreter = create_trt_interpreter(lower_setting) + interp_res: TRTInterpreterResult = interpreter(mod, input, module_name) + trt_module = TRTModule( + engine=interp_res.engine, + input_names=interp_res.input_names, + output_names=interp_res.output_names, + cuda_graph_batch_size=lower_setting.cuda_graph_batch_size, + ) + return trt_module + + return lower_pass + + +@dc.dataclass(frozen=True) +class Lowerer: + """Lowers a module using fx2trt. + + This is a composable class to facilitate fx2trt. A normal fx2trt process + composes of the following passes to transform an `fx.GraphModule`: + + 1. trace - use torch.fx to trace the module so we can get the graph + representation of the model. + 2. split - the graph module is split into several submodules, + running either via TensorRT, or via regular CUDA. + + For each split that need to run via TRT, the following passes are + invoked: + + 3. `TRTInterpreter` - build the TRT engine for the submodule that + can be supported through `TRTInterpreter`. + 4. Wraps the executable TRT engine into `TRTModule`, which is an `nn.Module`. + 5. The converted submodule is then set back onto the top-level module + + """ + + lower_pass_manager_builder: LowerPassManagerBuilder + + @classmethod + def create( + cls, + lower_setting: LowerSetting, + interpreter_builder: Callable = create_lower_trt_interpreter, + split_func: Callable = default_split_function, + ) -> "Lowerer": + """Instantiate a `Lowerer` instance.""" + + return cls( + lower_pass_manager_builder=LowerPassManagerBuilder( + lower_setting=lower_setting, + trace_func=lambda module, inputs: acc_tracer.trace( + module, + inputs, # type: ignore[arg-type] + ast_rewriter_allow_list=lower_setting.ast_rewriter_allow_list, + leaf_module_list=lower_setting.leaf_module_list, + ), + split_func=split_func, + lower_func=default_lower_pass(interpreter_builder), + ) + ) + + def __call__( + self, + module: nn.Module, + inputs: Input, + additional_inputs: Optional[Input] = None, + ) -> nn.Module: + lower_setting = self.lower_pass_manager_builder.lower_setting + atol = lower_setting.correctness_atol + rtol = lower_setting.correctness_rtol + + @validate_inference(atol=atol, rtol=rtol) + def do_lower(module: nn.Module, inputs: Input) -> nn.Module: + module.eval() + if ( + self.lower_pass_manager_builder.lower_setting.lower_precision + == LowerPrecision.FP16 + ): + module.half() + inputs = tuple( + x.half() if x is not None and x.dtype == torch.float32 else x + for x in inputs + ) + pm = self.lower_pass_manager_builder.build_trt_lower_pipeline( + inputs, additional_inputs + ) + lower_result = pm(module) + return lower_result + + return do_lower(module, inputs) +
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/fx/trt_module.html b/docs/v1.1.1/_modules/torch_tensorrt/fx/trt_module.html new file mode 100644 index 0000000000..85aa779b8b --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/fx/trt_module.html @@ -0,0 +1,863 @@ + + + + + + + + + + + + torch_tensorrt.fx.trt_module — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.fx.trt_module

+from typing import Any, List, Sequence
+
+# @manual=//deeplearning/trt/python:py_tensorrt
+import tensorrt as trt
+import torch
+
+from .utils import torch_dtype_from_trt
+
+
+
[docs]class TRTModule(torch.nn.Module): + def __init__( + self, engine=None, input_names=None, output_names=None, cuda_graph_batch_size=-1 + ): + super(TRTModule, self).__init__() + self._register_state_dict_hook(TRTModule._on_state_dict) + self.engine = engine + self.input_names = input_names + self.output_names = output_names + self.cuda_graph_batch_size = cuda_graph_batch_size + self.initialized = False + + if engine: + self._initialize() + + def _initialize(self): + self.initialized = True + self.context = self.engine.create_execution_context() + + # Indices of inputs/outputs in the trt engine bindings, in the order + # as they are in the original PyTorch model. + self.input_binding_indices_in_order: Sequence[int] = [ + self.engine.get_binding_index(name) for name in self.input_names + ] + self.output_binding_indices_in_order: Sequence[int] = [ + self.engine.get_binding_index(name) for name in self.output_names + ] + primary_input_outputs = set() + primary_input_outputs.update(self.input_binding_indices_in_order) + primary_input_outputs.update(self.output_binding_indices_in_order) + self.hidden_output_binding_indices_in_order: Sequence[int] = [] + self.hidden_output_names: Sequence[str] = [] + for i in range( + self.engine.num_bindings // self.engine.num_optimization_profiles + ): + if i not in primary_input_outputs: + self.hidden_output_binding_indices_in_order.append(i) + self.hidden_output_names.append(self.engine.get_binding_name(i)) + + assert (self.engine.num_bindings // self.engine.num_optimization_profiles) == ( + len(self.input_names) + + len(self.output_names) + + len(self.hidden_output_names) + ) + + self.input_dtypes: Sequence[torch.dtype] = [ + torch_dtype_from_trt(self.engine.get_binding_dtype(idx)) + for idx in self.input_binding_indices_in_order + ] + self.input_shapes: Sequence[Sequence[int]] = [ + tuple(self.engine.get_binding_shape(idx)) + for idx in self.input_binding_indices_in_order + ] + self.output_dtypes: Sequence[torch.dtype] = [ + torch_dtype_from_trt(self.engine.get_binding_dtype(idx)) + for idx in self.output_binding_indices_in_order + ] + self.output_shapes = [ + tuple(self.engine.get_binding_shape(idx)) + if self.engine.has_implicit_batch_dimension + else tuple() + for idx in self.output_binding_indices_in_order + ] + self.hidden_output_dtypes: Sequence[torch.dtype] = [ + torch_dtype_from_trt(self.engine.get_binding_dtype(idx)) + for idx in self.hidden_output_binding_indices_in_order + ] + self.hidden_output_shapes = [ + tuple(self.engine.get_binding_shape(idx)) + if self.engine.has_implicit_batch_dimension + else tuple() + for idx in self.hidden_output_binding_indices_in_order + ] + + def _check_initialized(self): + if not self.initialized: + raise RuntimeError("TRTModule is not initialized.") + + def _on_state_dict(self, state_dict, prefix, local_metadata): + self._check_initialized() + state_dict[prefix + "engine"] = bytearray(self.engine.serialize()) + state_dict[prefix + "input_names"] = self.input_names + state_dict[prefix + "output_names"] = self.output_names + state_dict[prefix + "cuda_graph_batch_size"] = self.cuda_graph_batch_size + + def _load_from_state_dict( + self, + state_dict, + prefix, + local_metadata, + strict, + missing_keys, + unexpected_keys, + error_msgs, + ): + engine_bytes = state_dict[prefix + "engine"] + + logger = trt.Logger() + runtime = trt.Runtime(logger) + self.engine = runtime.deserialize_cuda_engine(engine_bytes) + + self.input_names = state_dict[prefix + "input_names"] + self.output_names = state_dict[prefix + "output_names"] + self._initialize() + + def __getstate__(self): + state = self.__dict__.copy() + state["engine"] = bytearray(self.engine.serialize()) + state.pop("context", None) + return state + + def __setstate__(self, state): + logger = trt.Logger() + runtime = trt.Runtime(logger) + state["engine"] = runtime.deserialize_cuda_engine(state["engine"]) + self.__dict__.update(state) + if self.engine: + self.context = self.engine.create_execution_context() + + def forward(self, *inputs): + with torch.autograd.profiler.record_function("TRTModule:Forward"): + self._check_initialized() + + with torch.autograd.profiler.record_function("TRTModule:ProcessInputs"): + assert len(inputs) == len( + self.input_names + ), f"Wrong number of inputs, expect {len(self.input_names)} get {len(inputs)}." + + # This is only used when the trt engine is using implicit batch dim. + batch_size = inputs[0].shape[0] + contiguous_inputs: List[torch.Tensor] = [i.contiguous() for i in inputs] + bindings: List[Any] = [None] * ( + len(self.input_names) + + len(self.output_names) + + len(self.hidden_output_names) + ) + + for i, input_name in enumerate(self.input_names): + assert inputs[ + i + ].is_cuda, f"{i}th input({input_name}) is not on cuda device." + assert ( + inputs[i].dtype == self.input_dtypes[i] + ), f"Dtype mismatch for {i}th input({input_name}). Expect {self.input_dtypes[i]}, got {inputs[i].dtype}." + + idx = self.input_binding_indices_in_order[i] + bindings[idx] = contiguous_inputs[i].data_ptr() + + if not self.engine.has_implicit_batch_dimension: + self.context.set_binding_shape( + idx, tuple(contiguous_inputs[i].shape) + ) + else: + assert inputs[i].size()[1:] == self.input_shapes[i], ( + f"Shape mismatch for {i}th input({input_name}). " + f"Expect {self.input_shapes[i]}, got {inputs[i].size()[1:]}." + ) + + with torch.autograd.profiler.record_function("TRTModule:ProcessOutputs"): + # create output tensors + outputs: List[torch.Tensor] = [] + + for i, idx in enumerate(self.output_binding_indices_in_order): + if self.engine.has_implicit_batch_dimension: + shape = (batch_size,) + self.output_shapes[i] + else: + shape = tuple(self.context.get_binding_shape(idx)) + + output = torch.empty( # type: ignore[call-overload] + size=shape, + dtype=self.output_dtypes[i], + device=torch.cuda.current_device(), + ) + outputs.append(output) + bindings[idx] = output.data_ptr() + + for i, idx in enumerate(self.hidden_output_binding_indices_in_order): + if self.engine.has_implicit_batch_dimension: + shape = (batch_size,) + self.hidden_output_shapes[i] + else: + shape = tuple(self.context.get_binding_shape(idx)) + + output = torch.empty( # type: ignore[call-overload] + size=shape, + dtype=self.hidden_output_dtypes[i], + device=torch.cuda.current_device(), + ) + bindings[idx] = output.data_ptr() + + with torch.autograd.profiler.record_function("TRTModule:TensorRTRuntime"): + if self.engine.has_implicit_batch_dimension: + self.context.execute_async( + batch_size, bindings, torch.cuda.current_stream().cuda_stream + ) + else: + self.context.execute_async_v2( + bindings, torch.cuda.current_stream().cuda_stream + ) + + if len(outputs) == 1: + return outputs[0] + + return tuple(outputs) + + def enable_profiling(self, profiler: "trt.IProfiler" = None): + """ + Enable TensorRT profiling. After calling this function, TensorRT will report + time spent on each layer in stdout for each forward run. + """ + self._check_initialized() + + if not self.context.profiler: + self.context.profiler = trt.Profiler() if profiler is None else profiler + + def disable_profiling(self): + """ + Disable TensorRT profiling. + """ + self._check_initialized() + + torch.cuda.synchronize() + del self.context + self.context = self.engine.create_execution_context() + + def get_layer_info(self) -> str: + """ + Get layer info of the engine. Only support for TRT > 8.2. + """ + inspector = self.engine.create_engine_inspector() + return inspector.get_engine_information(trt.LayerInformationFormat.JSON)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/logging.html b/docs/v1.1.1/_modules/torch_tensorrt/logging.html new file mode 100644 index 0000000000..2a57541a83 --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/logging.html @@ -0,0 +1,838 @@ + + + + + + + + + + + + torch_tensorrt.logging — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.logging

+from enum import Enum
+from torch_tensorrt._C import (
+    _get_logging_prefix,
+    _set_logging_prefix,
+    _get_reportable_log_level,
+    _set_reportable_log_level,
+    _get_is_colored_output_on,
+    _set_is_colored_output_on,
+    _log,
+    LogLevel,
+)
+
+
+
[docs]class Level(Enum): + """Enum to set the minimum required logging level to print a message to stdout""" + + InternalError = LogLevel.INTERNAL_ERROR + Error = LogLevel.ERROR + Warning = LogLevel.WARNING + Info = LogLevel.INFO + Debug = LogLevel.DEBUG + Graph = LogLevel.GRAPH + + @staticmethod + def _to_internal_level(external) -> LogLevel: + if external == Level.InternalError: + return LogLevel.INTERNAL_ERROR + if external == Level.Error: + return LogLevel.ERROR + if external == Level.Warning: + return LogLevel.WARNING + if external == Level.Info: + return LogLevel.INFO + if external == Level.Debug: + return LogLevel.DEBUG + if external == Level.Graph: + return LogLevel.GRAPH
+ + +
[docs]def get_logging_prefix() -> str: + """Get the prefix set for logging messages + + Returns: + str: Prefix used for logger + """ + return _get_logging_prefix()
+ + +
[docs]def set_logging_prefix(prefix: str): + """Set the prefix used when logging messages + + Args: + prefix (str): Prefix to use for logging messages + """ + _set_logging_prefix(prefix)
+ + +
[docs]def get_reportable_log_level() -> Level: + """Get the level required for a message to be printed in the log + + Returns: + torch_tensorrt.logging.Level: The enum representing the level required to print + """ + return Level(_get_reportable_log_level())
+ + +
[docs]def set_reportable_log_level(level: Level): + """Set the level required for a message to be printed to the log + + Args: + level (torch_tensorrt.logging.Level): The enum representing the level required to print + """ + _set_reportable_log_level(Level._to_internal_level(level))
+ + +
[docs]def get_is_colored_output_on() -> bool: + """Get if colored output is enabled for logging + + Returns: + bool: If colored output is one + """ + return _get_is_colored_output_on()
+ + +
[docs]def set_is_colored_output_on(colored_output_on: bool): + """Enable or disable color in the log output + + Args: + colored_output_on (bool): If colored output should be enabled or not + """ + _set_is_colored_output_on(colored_output_on)
+ + +
[docs]def log(level: Level, msg: str): + """Add a new message to the log + + Adds a new message to the log at a specified level. The message + will only get printed out if Level > reportable_log_level + + Args: + level (torch_tensorrt.logging.Level): Severity of the message + msg (str): Actual message text + """ + _log(Level._to_internal_level(level), msg) + + InternalError = LogLevel.INTERNAL_ERROR + Error = LogLevel.ERROR + Warning = LogLevel.WARNING + Info = LogLevel.INFO + Debug = LogLevel.DEBUG + Graph = LogLevel.GRAPH
+ + +
[docs]class internal_errors: + """Context-manager to limit displayed log messages to just internal errors + + Example:: + + with torch_tensorrt.logging.internal_errors(): + outputs = model_torchtrt(inputs) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.InternalError) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class errors: + """Context-manager to limit displayed log messages to just errors and above + + Example:: + + with torch_tensorrt.logging.errors(): + outputs = model_torchtrt(inputs) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Error) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class warnings: + """Context-manager to limit displayed log messages to just warnings and above + + Example:: + + with torch_tensorrt.logging.warnings(): + model_trt = torch_tensorrt.compile(model, **spec) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Warning) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class info: + """Context-manager to display all info and greater severity messages + + Example:: + + with torch_tensorrt.logging.info(): + model_trt = torch_tensorrt.compile(model, **spec) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Info) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class debug: + """Context-manager to display full debug information through the logger + + Example:: + + with torch_tensorrt.logging.debug(): + model_trt = torch_tensorrt.compile(model, **spec) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Debug) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class graphs: + """Context-manager to display the results of intermediate lowering passes + as well as full debug information through the logger + + Example:: + + with torch_tensorrt.logging.graphs(): + model_trt = torch_tensorrt.compile(model, **spec) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Graph) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/ptq.html b/docs/v1.1.1/_modules/torch_tensorrt/ptq.html new file mode 100644 index 0000000000..95739dd63b --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/ptq.html @@ -0,0 +1,820 @@ + + + + + + + + + + + + torch_tensorrt.ptq — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.ptq

+from typing import List, Dict, Any
+import torch
+import os
+
+from torch_tensorrt import _C
+from torch_tensorrt._version import __version__
+from torch_tensorrt.logging import *
+from types import FunctionType
+from enum import Enum
+
+
+
[docs]class CalibrationAlgo(Enum): + ENTROPY_CALIBRATION = _C.CalibrationAlgo.ENTROPY_CALIBRATION + ENTROPY_CALIBRATION_2 = _C.CalibrationAlgo.ENTROPY_CALIBRATION_2 + LEGACY_CALIBRATION = _C.CalibrationAlgo.LEGACY_CALIBRATION + MINMAX_CALIBRATION = _C.CalibrationAlgo.MINMAX_CALIBRATION
+ + +
[docs]def get_cache_mode_batch(self): + return None
+ + +
[docs]def get_batch_size(self): + return 1
+ + +
[docs]def get_batch(self, names): + if self.current_batch_idx + self.batch_size > len(self.data_loader.dataset): + return None + + batch = self.dataset_iterator.next() + self.current_batch_idx += self.batch_size + inputs_gpu = [] + if isinstance(batch, list): + for example in batch: + inputs_gpu.append(example.to(self.device).data_ptr()) + else: + inputs_gpu.append(batch.to(self.device).data_ptr()) + return inputs_gpu
+ + +
[docs]def read_calibration_cache(self): + if self.cache_file and self.use_cache: + if os.path.exists(self.cache_file): + with open(self.cache_file, "rb") as f: + return f.read() + else: + return b""
+ + +
[docs]def write_calibration_cache(self, cache): + if self.cache_file: + with open(self.cache_file, "wb") as f: + f.write(cache) + else: + return b""
+ + +
[docs]class DataLoaderCalibrator(object): + """ + Constructs a calibrator class in TensorRT and uses pytorch dataloader to load/preproces + data which is passed during calibration. + Args: + dataloader: an instance of pytorch dataloader which iterates through a given dataset. + algo_type: choice of calibration algorithm. + cache_file: path to cache file. + use_cache: flag which enables usage of pre-existing cache. + device: device on which calibration data is copied to. + """ + +
[docs] def __init__(self, **kwargs): + pass
+ + def __new__(cls, *args, **kwargs): + dataloader = args[0] + algo_type = kwargs.get("algo_type", CalibrationAlgo.ENTROPY_CALIBRATION_2) + cache_file = kwargs.get("cache_file", None) + use_cache = kwargs.get("use_cache", False) + device = kwargs.get("device", torch.device("cuda:0")) + + if not isinstance(dataloader, torch.utils.data.DataLoader): + log( + Level.Error, + "Dataloader : {} is not a valid instance of torch.utils.data.DataLoader".format( + dataloader + ), + ) + + if not cache_file: + if use_cache: + log( + Level.Debug, + "Using existing cache_file {} for calibration".format(cache_file), + ) + else: + log(Level.Debug, "Overwriting existing calibration cache file.") + else: + if use_cache: + log( + Level.Error, + "Input cache file is None but use_cache is set to True in INT8 mode.", + ) + + # Define attributes and member functions for the calibrator class + attribute_mapping = { + "data_loader": dataloader, + "current_batch_idx": 0, + "batch_size": dataloader.batch_size, + "dataset_iterator": iter(dataloader), + "cache_file": cache_file, + "device": device, + "use_cache": use_cache, + "get_batch_size": get_batch_size, + "get_batch": get_cache_mode_batch if use_cache else get_batch, + "read_calibration_cache": read_calibration_cache, + "write_calibration_cache": write_calibration_cache, + } + + # Using type metaclass to construct calibrator class based on algorithm type + if algo_type == CalibrationAlgo.ENTROPY_CALIBRATION: + return type( + "DataLoaderCalibrator", (_C.IInt8EntropyCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.ENTROPY_CALIBRATION_2: + return type( + "DataLoaderCalibrator", (_C.IInt8MinMaxCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.LEGACY_CALIBRATION: + return type( + "DataLoaderCalibrator", (_C.IInt8LegacyCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.MINMAX_CALIBRATION: + return type( + "DataLoaderCalibrator", (_C.IInt8MinMaxCalibrator,), attribute_mapping + )() + else: + log( + Level.Error, + "Invalid calibration algorithm type. Please select among ENTROPY_CALIBRATION, ENTROPY_CALIBRATION, LEGACY_CALIBRATION or MINMAX_CALIBRATION", + )
+ + +
[docs]class CacheCalibrator(object): + """ + Constructs a calibrator class in TensorRT which directly uses pre-existing cache file for calibration. + Args: + cache_file: path to cache file. + algo_type: choice of calibration algorithm. + """ + +
[docs] def __init__(self, **kwargs): + pass
+ + def __new__(cls, *args, **kwargs): + cache_file = args[0] + algo_type = kwargs.get("algo_type", CalibrationAlgo.ENTROPY_CALIBRATION_2) + + if os.path.isfile(cache_file): + log( + Level.Debug, + "Using existing cache_file {} for calibration".format(cache_file), + ) + else: + log(Level.Error, "Invalid calibration cache file.") + + # Define attributes and member functions for the calibrator class + attribute_mapping = { + "use_cache": True, + "cache_file": cache_file, + "get_batch_size": get_batch_size, + "get_batch": get_cache_mode_batch, + "read_calibration_cache": read_calibration_cache, + "write_calibration_cache": write_calibration_cache, + } + # Using type metaclass to construct calibrator class based on algorithm type + if algo_type == CalibrationAlgo.ENTROPY_CALIBRATION: + return type( + "DataLoaderCalibrator", (_C.IInt8EntropyCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.ENTROPY_CALIBRATION_2: + return type( + "DataLoaderCalibrator", (_C.IInt8MinMaxCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.LEGACY_CALIBRATION: + return type( + "DataLoaderCalibrator", (_C.IInt8LegacyCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.MINMAX_CALIBRATION: + return type( + "DataLoaderCalibrator", (_C.IInt8MinMaxCalibrator,), attribute_mapping + )() + else: + log( + Level.Error, + "Invalid calibration algorithm type. Please select among ENTROPY_CALIBRATION, ENTROPY_CALIBRATION, LEGACY_CALIBRATION or MINMAX_CALIBRATION", + )
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/ts/_compile_spec.html b/docs/v1.1.1/_modules/torch_tensorrt/ts/_compile_spec.html new file mode 100644 index 0000000000..750dd45a6f --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/ts/_compile_spec.html @@ -0,0 +1,1112 @@ + + + + + + + + + + + + torch_tensorrt.ts._compile_spec — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.ts._compile_spec

+from typing import List, Dict, Any, Set
+import torch
+from torch_tensorrt import _C
+import torch_tensorrt._C.ts as _ts_C
+from torch_tensorrt import _enums
+from torch_tensorrt._Input import Input
+from torch_tensorrt._Device import Device
+from torch_tensorrt.logging import Level, log
+from typing import Tuple, List, Dict
+import warnings
+from copy import deepcopy
+
+
+def _internal_input_to_torch_class_input(i: _C.Input) -> torch.classes.tensorrt._Input:
+    clone = torch.classes.tensorrt._Input()
+    clone._set_min(i.min)
+    clone._set_opt(i.opt)
+    clone._set_max(i.max)
+    clone._set_dtype(i.dtype)
+    clone._set_format(i.format)
+    clone._set_input_is_dynamic(i.input_is_dynamic)
+    clone._set_explicit_set_dtype(i._explicit_set_dtype)
+    return clone
+
+
+def _supported_input_size_type(input_size: Any) -> bool:
+    if isinstance(input_size, torch.Size):
+        return True
+    elif isinstance(input_size, tuple):
+        return True
+    elif isinstance(input_size, list):
+        return True
+    else:
+        raise TypeError(
+            "Input sizes for inputs are required to be a List, tuple or torch.Size or a Dict of three sizes (min, opt, max), found type: "
+            + str(type(input_size))
+        )
+
+
+def _parse_input_ranges(input_sizes: List) -> List:
+
+    if any(
+        not isinstance(i, dict) and not _supported_input_size_type(i)
+        for i in input_sizes
+    ):
+        raise KeyError(
+            "An input size must either be a static size or a range of three sizes (min, opt, max) as Dict"
+        )
+
+    parsed_input_sizes = []
+    for i in input_sizes:
+        if isinstance(i, dict):
+            if all(k in i for k in ["min", "opt", "min"]):
+                parsed_input_sizes.append(
+                    Input(
+                        min_shape=i["min"], opt_shape=i["opt"], max_shape=i["max"]
+                    )._to_internal()
+                )
+
+            elif "opt" in i:
+                parsed_input_sizes.append(Input(shape=i["opt"])._to_internal())
+
+            else:
+                raise KeyError(
+                    "An input size must either be a static size or a range of three sizes (min, opt, max) as Dict"
+                )
+
+        elif isinstance(i, list):
+            parsed_input_sizes.append(Input(shape=i)._to_internal())
+
+        elif isinstance(i, tuple):
+            parsed_input_sizes.append(Input(shape=i)._to_internal())
+
+        elif isinstance(i, torch.Size):
+            parsed_input_sizes.append(Input(shape=i)._to_internal())
+
+    return parsed_input_sizes
+
+
+def _parse_op_precision(precision: Any) -> _enums.dtype:
+    if isinstance(precision, torch.dtype):
+        if precision == torch.int8:
+            return _enums.dtype.int8
+        elif precision == torch.half:
+            return _enums.dtype.half
+        elif precision == torch.float:
+            return _enums.dtype.float
+        else:
+            raise TypeError(
+                "Provided an unsupported dtype as operating precision (support: int8, half, float), got: "
+                + str(precision)
+            )
+
+    elif isinstance(precision, _enums.dtype):
+        return precision
+
+    else:
+        raise TypeError(
+            "Op precision type needs to be specified with a torch.dtype or a torch_tensorrt.dtype, got: "
+            + str(type(precision))
+        )
+
+
+def _parse_enabled_precisions(precisions: Any) -> Set:
+    parsed_precisions = set()
+    if any([isinstance(precisions, type) for type in [list, tuple, set]]):
+        for p in precisions:
+            parsed_precisions.add(_parse_op_precision(p))
+    else:
+        parsed_precisions.add(_parse_op_precision(precisions))
+    return parsed_precisions
+
+
+def _parse_device_type(device: Any) -> _enums.DeviceType:
+    if isinstance(device, torch.device):
+        if device.type == "cuda":
+            return _enums.DeviceType.gpu
+        else:
+            ValueError(
+                "Got a device type other than GPU or DLA (type: "
+                + str(device.type)
+                + ")"
+            )
+    elif isinstance(device, _enums.DeviceType):
+        return device
+    elif isinstance(device, str):
+        if device == "gpu" or device == "GPU":
+            return _enums.DeviceType.gpu
+        elif device == "dla" or device == "DLA":
+            return _enums.DeviceType.dla
+        else:
+            ValueError(
+                "Got a device type other than GPU or DLA (type: " + str(device) + ")"
+            )
+    else:
+        raise TypeError(
+            "Device specification must be of type torch.device, string or torch_tensorrt.DeviceType, but got: "
+            + str(type(device))
+        )
+
+
+def _parse_device(device_info: Any) -> _C.Device:
+    if isinstance(device_info, dict):
+        info = _C.Device()
+        if "device_type" not in device_info:
+            raise KeyError("Device type is required parameter")
+        else:
+            assert isinstance(device_info["device_type"], _enums.DeviceType)
+            info.device_type = _parse_device_type(device_info["device_type"])
+
+        if "gpu_id" in device_info:
+            assert isinstance(device_info["gpu_id"], int)
+            info.gpu_id = device_info["gpu_id"]
+
+        if "dla_core" in device_info:
+            assert isinstance(device_info["dla_core"], int)
+            info.dla_core = device_info["dla_core"]
+
+        if "allow_gpu_fallback" in device_info:
+            assert isinstance(device_info["allow_gpu_fallback"], bool)
+            info.allow_gpu_fallback = device_info["allow_gpu_fallback"]
+
+        return info
+    elif isinstance(device_info, Device):
+        return device_info._to_internal()
+    elif isinstance(device_info, torch.device):
+        return (Device._from_torch_device(device_info))._to_internal()
+    else:
+        raise ValueError(
+            "Unsupported data for device specification. Expected either a dict, torch_tensorrt.Device or torch.Device"
+        )
+
+
+def _parse_torch_fallback(fallback_info: Dict[str, Any]) -> _ts_C.TorchFallback:
+    info = _ts_C.TorchFallback()
+    if "enabled" not in fallback_info:
+        raise KeyError("Enabled is required parameter")
+    else:
+        assert isinstance(fallback_info["enabled"], bool)
+        info.enabled = fallback_info["enabled"]
+    if "min_block_size" in fallback_info:
+        assert isinstance(fallback_info["min_block_size"], int)
+        info.min_block_size = fallback_info["min_block_size"]
+
+    if "forced_fallback_ops" in fallback_info:
+        assert isinstance(fallback_info["forced_fallback_ops"], list)
+        info.forced_fallback_operators = fallback_info["forced_fallback_ops"]
+
+    if "forced_fallback_modules" in fallback_info:
+        assert isinstance(fallback_info["forced_fallback_modules"], list)
+        info.forced_fallback_modules = fallback_info["forced_fallback_modules"]
+
+    return info
+
+
+def _parse_input_signature(input_signature: Any):
+    if isinstance(input_signature, tuple):
+        input_list = []
+        for item in input_signature:
+            input = _parse_input_signature(item)
+            input_list.append(input)
+        return tuple(input_list)
+    elif isinstance(input_signature, list):
+        input_list = []
+        for item in input_signature:
+            input = _parse_input_signature(item)
+            input_list.append(input)
+        return input_list
+    elif isinstance(input_signature, Input) or isinstance(
+        input_signature, torch.Tensor
+    ):
+        i = (
+            Input._from_tensor(input_signature)
+            if isinstance(input_signature, torch.Tensor)
+            else input_signature
+        )
+        clone = _internal_input_to_torch_class_input(i._to_internal())
+        return clone
+    else:
+        raise KeyError(
+            "Input signature contains an unsupported type {}".format(
+                type(input_signature)
+            )
+        )
+
+
+def _parse_compile_spec(compile_spec_: Dict[str, Any]) -> _ts_C.CompileSpec:
+    # TODO: Remove deep copy once collections does not need partial compilation
+    compile_spec = deepcopy(compile_spec_)
+    info = _ts_C.CompileSpec()
+
+    if len(compile_spec["inputs"]) > 0:
+        if not all(
+            [
+                isinstance(i, torch.Tensor) or isinstance(i, Input)
+                for i in compile_spec["inputs"]
+            ]
+        ):
+            raise KeyError(
+                "Input specs should be either torch_tensorrt.Input or torch.Tensor, found types: {}".format(
+                    [type(i) for i in compile_spec["inputs"]]
+                )
+            )
+
+        inputs = [
+            Input._from_tensor(i) if isinstance(i, torch.Tensor) else i
+            for i in compile_spec["inputs"]
+        ]
+        info.inputs = [i._to_internal() for i in inputs]
+
+    elif compile_spec["input_signature"] is not None:
+        log(
+            Level.Warning,
+            "Input signature parsing is an experimental feature, behavior and APIs may change",
+        )
+        signature = _parse_input_signature(compile_spec["input_signature"])
+        info.input_signature = _C.InputSignature(signature)  # py_object
+
+        if not compile_spec["torch_fallback"]["enabled"]:
+            raise ValueError(
+                "Grouped inputs currently requires partial compilation to be enabled, this restriction will be relaxed in a future release"
+            )
+
+        log(
+            Level.Debug,
+            "Grouped inputs currently requires additional settings to enable the feature",
+        )
+        log(
+            Level.Debug,
+            """Adding the following ops to torch_executed_ops:
+    - aten::__getitem__
+    - prim::ListConstruct
+    - prim::ListUnpack
+    - prim::TupleIndex
+    - prim::TupleConstruct
+    - prim::TupleUnpack
+""",
+        )
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append(
+            "aten::__getitem__"
+        )
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append(
+            "prim::ListConstruct"
+        )
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append("prim::ListUnpack")
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append("prim::TupleIndex")
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append(
+            "prim::TupleConstruct"
+        )
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append(
+            "prim::TupleUnpack"
+        )
+
+    else:
+        raise KeyError(
+            'Module input definitions are requried to compile module. Provide a list of torch_tensorrt.Input keyed to "inputs" in the compile spec'
+        )
+
+    if "enabled_precisions" in compile_spec:
+        info.enabled_precisions = _parse_enabled_precisions(
+            compile_spec["enabled_precisions"]
+        )
+
+    if "calibrator" in compile_spec:
+        info.ptq_calibrator = compile_spec["calibrator"]
+
+    if "sparse_weights" in compile_spec:
+        assert isinstance(compile_spec["sparse_weights"], bool)
+        info.sparse_weights = compile_spec["sparse_weights"]
+
+    if "disable_tf32" in compile_spec:
+        assert isinstance(compile_spec["disable_tf32"], bool)
+        info.disable_tf32 = compile_spec["disable_tf32"]
+
+    if "refit" in compile_spec:
+        assert isinstance(compile_spec["refit"], bool)
+        info.refit = compile_spec["refit"]
+
+    if "debug" in compile_spec:
+        assert isinstance(compile_spec["debug"], bool)
+        info.debug = compile_spec["debug"]
+
+    if "device" in compile_spec:
+        info.device = _parse_device(compile_spec["device"])
+
+    if "capability" in compile_spec:
+        assert isinstance(compile_spec["capability"], _enums.EngineCapability)
+        info.capability = compile_spec["capability"]
+
+    if "num_avg_timing_iters" in compile_spec:
+        assert type(compile_spec["num_avg_timing_iters"]) is int
+        info.num_avg_timing_iters = compile_spec["num_avg_timing_iters"]
+
+    if "workspace_size" in compile_spec:
+        assert type(compile_spec["workspace_size"]) is int
+        info.workspace_size = compile_spec["workspace_size"]
+
+    if "dla_sram_size" in compile_spec:
+        assert type(compile_spec["dla_sram_size"]) is int
+        info.dla_sram_size = compile_spec["dla_sram_size"]
+
+    if "dla_local_dram_size" in compile_spec:
+        assert type(compile_spec["dla_local_dram_size"]) is int
+        info.dla_local_dram_size = compile_spec["dla_local_dram_size"]
+
+    if "dla_global_dram_size" in compile_spec:
+        assert type(compile_spec["dla_global_dram_size"]) is int
+        info.dla_global_dram_size = compile_spec["dla_global_dram_size"]
+
+    if "truncate_long_and_double" in compile_spec:
+        assert type(compile_spec["truncate_long_and_double"]) is bool
+        info.truncate_long_and_double = compile_spec["truncate_long_and_double"]
+
+    if "torch_fallback" in compile_spec:
+        info.torch_fallback = _parse_torch_fallback(compile_spec["torch_fallback"])
+
+    log(Level.Debug, str(info))
+
+    return info
+
+
+
[docs]def TensorRTCompileSpec( + inputs=[], + input_signature=None, + device=Device._current_device(), + disable_tf32=False, + sparse_weights=False, + enabled_precisions=set(), + refit=False, + debug=False, + capability=_enums.EngineCapability.default, + num_avg_timing_iters=1, + workspace_size=0, + dla_sram_size=1048576, + dla_local_dram_size=1073741824, + dla_global_dram_size=536870912, + truncate_long_and_double=False, + calibrator=None, +) -> torch.classes.tensorrt.CompileSpec: + """Utility to create a formated spec dictionary for using the PyTorch TensorRT backend + + Keyword Args: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + device (Union(torch_tensorrt.Device, torch.device, dict)): Target device for TensorRT engines to run on :: + + device=torch_tensorrt.Device("dla:1", allow_gpu_fallback=True) + + disable_tf32 (bool): Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + sparse_weights (bool): Enable sparsity for convolution and fully connected layers. + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + refit (bool): Enable refitting + debug (bool): Enable debuggable engine + capability (torch_tensorrt.EngineCapability): Restrict kernel selection to safe gpu kernels or safe dla kernels + num_avg_timing_iters (int): Number of averaging timing iterations used to select kernels + workspace_size (int): Maximum size of workspace given to TensorRT + truncate_long_and_double (bool): Truncate weights provided in int64 or double (float64) to int32 and float32 + calibrator (Union(torch_tensorrt._C.IInt8Calibrator, tensorrt.IInt8Calibrator)): Calibrator object which will provide data to the PTQ system for INT8 Calibration + + Returns: + torch.classes.tensorrt.CompileSpec: List of methods and formated spec objects to be provided to ``torch._C._jit_to_tensorrt`` + """ + + compile_spec = { + "inputs": inputs, + # "input_signature": input_signature, + "device": device, + "disable_tf32": disable_tf32, # Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + "sparse_weights": sparse_weights, # Enable sparsity for convolution and fully connected layers. + "enabled_precisions": enabled_precisions, # Enabling FP16 kernels + "refit": refit, # enable refit + "debug": debug, # enable debuggable engine + "capability": capability, # Restrict kernel selection to safe gpu kernels or safe dla kernels + "num_avg_timing_iters": num_avg_timing_iters, # Number of averaging timing iterations used to select kernels + "workspace_size": workspace_size, # Maximum size of workspace given to TensorRT + "dla_sram_size": dla_sram_size, # Fast software managed RAM used by DLA to communicate within a layer. + "dla_local_dram_size": dla_local_dram_size, # Host RAM used by DLA to share intermediate tensor data across operations + "dla_global_dram_size": dla_global_dram_size, # Host RAM used by DLA to store weights and metadata for execution + "calibrator": calibrator, + "truncate_long_and_double": truncate_long_and_double, + } + + parsed_spec = _parse_compile_spec(compile_spec) + + backend_spec = torch.classes.tensorrt.CompileSpec() + + if input_signature is not None: + raise ValueError( + "Input signature parsing is not currently supported in the TorchScript backend integration" + ) + + for i in parsed_spec.inputs: + clone = _internal_input_to_torch_class_input(i) + backend_spec._append_input(clone) + + d = torch.classes.tensorrt._Device() + d._set_device_type(int(parsed_spec.device.device_type)) + d._set_gpu_id(parsed_spec.device.gpu_id) + d._set_dla_core(parsed_spec.device.dla_core) + d._set_allow_gpu_fallback(parsed_spec.device.allow_gpu_fallback) + + if parsed_spec.torch_fallback.enabled: + raise RuntimeError( + "Partial module compilation is not currently supported via the PyTorch TensorRT backend. If you need partial compilation, use torch_tensorrt.compile" + ) + + torch_fallback = torch.classes.tensorrt._TorchFallback() + torch_fallback._set_enabled(parsed_spec.torch_fallback.enabled) + torch_fallback._set_min_block_size(parsed_spec.torch_fallback.min_block_size) + torch_fallback._set_forced_fallback_operators( + parsed_spec.torch_fallback.forced_fallback_operators + ) + torch_fallback._set_forced_fallback_modules( + parsed_spec.torch_fallback.forced_fallback_modules + ) + + backend_spec._set_device(d) + backend_spec._set_torch_fallback(torch_fallback) + backend_spec._set_precisions([int(i) for i in parsed_spec.enabled_precisions]) + + backend_spec._set_disable_tf32(parsed_spec.disable_tf32) + backend_spec._set_refit(parsed_spec.refit) + backend_spec._set_debug(parsed_spec.debug) + backend_spec._set_refit(parsed_spec.refit) + backend_spec._set_capability(int(parsed_spec.capability)) + backend_spec._set_num_avg_timing_iters(parsed_spec.num_avg_timing_iters) + backend_spec._set_workspace_size(parsed_spec.workspace_size) + backend_spec._set_dla_sram_size(parsed_spec.dla_sram_size) + backend_spec._set_dla_local_dram_size(parsed_spec.dla_local_dram_size) + backend_spec._set_dla_global_dram_size(parsed_spec.dla_global_dram_size) + backend_spec._set_truncate_long_and_double(parsed_spec.truncate_long_and_double) + backend_spec._set_ptq_calibrator(parsed_spec._get_calibrator_handle()) + + return backend_spec
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_modules/torch_tensorrt/ts/_compiler.html b/docs/v1.1.1/_modules/torch_tensorrt/ts/_compiler.html new file mode 100644 index 0000000000..acae45d8c7 --- /dev/null +++ b/docs/v1.1.1/_modules/torch_tensorrt/ts/_compiler.html @@ -0,0 +1,914 @@ + + + + + + + + + + + + torch_tensorrt.ts._compiler — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.ts._compiler

+from typing import List, Dict, Any
+import torch
+from torch import nn
+
+import torch_tensorrt._C.ts as _C
+from torch_tensorrt import _enums
+from torch_tensorrt.ts._compile_spec import _parse_compile_spec, _parse_device
+from torch_tensorrt._Device import Device
+from types import FunctionType
+
+
+
[docs]def compile( + module: torch.jit.ScriptModule, + inputs=[], + input_signature=None, + device=Device._current_device(), + disable_tf32=False, + sparse_weights=False, + enabled_precisions=set(), + refit=False, + debug=False, + capability=_enums.EngineCapability.default, + num_avg_timing_iters=1, + workspace_size=0, + dla_sram_size=1048576, + dla_local_dram_size=1073741824, + dla_global_dram_size=536870912, + calibrator=None, + truncate_long_and_double=False, + require_full_compilation=False, + min_block_size=3, + torch_executed_ops=[], + torch_executed_modules=[], +) -> torch.jit.ScriptModule: + """Compile a TorchScript module for NVIDIA GPUs using TensorRT + + Takes a existing TorchScript module and a set of settings to configure the compiler + and will convert methods to JIT Graphs which call equivalent TensorRT engines + + Converts specifically the forward method of a TorchScript Module + + Arguments: + module (torch.jit.ScriptModule): Source module, a result of tracing or scripting a PyTorch + ``torch.nn.Module`` + + Keyword Arguments: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + input_signature Union(List, Tuple, torch_tensorrt.Input, torch.Tensor): A formatted collection of input specifications for the module. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum to select device type. **This API should be considered beta-level stable and may change in the future** :: + + input_signature=([ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + ], torch.randn((1, 3, 224, 244))) # Use an example tensor and let torch_tensorrt infer settings for input #3 + device (Union(torch_tensorrt.Device, torch.device, dict)): Target device for TensorRT engines to run on :: + + device=torch_tensorrt.Device("dla:1", allow_gpu_fallback=True) + + disable_tf32 (bool): Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + sparse_weights (bool): Enable sparsity for convolution and fully connected layers. + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + refit (bool): Enable refitting + debug (bool): Enable debuggable engine + capability (torch_tensorrt.EngineCapability): Restrict kernel selection to safe gpu kernels or safe dla kernels + num_avg_timing_iters (int): Number of averaging timing iterations used to select kernels + workspace_size (int): Maximum size of workspace given to TensorRT + dla_sram_size (int): Fast software managed RAM used by DLA to communicate within a layer. + dla_local_dram_size (int): Host RAM used by DLA to share intermediate tensor data across operations + dla_global_dram_size (int): Host RAM used by DLA to store weights and metadata for execution + truncate_long_and_double (bool): Truncate weights provided in int64 or double (float64) to int32 and float32 + calibrator (Union(torch_tensorrt._C.IInt8Calibrator, tensorrt.IInt8Calibrator)): Calibrator object which will provide data to the PTQ system for INT8 Calibration + require_full_compilation (bool): Require modules to be compiled end to end or return an error as opposed to returning a hybrid graph where operations that cannot be run in TensorRT are run in PyTorch + min_block_size (int): The minimum number of contiguous TensorRT convertable operations in order to run a set of operations in TensorRT + torch_executed_ops (List[str]): List of aten operators that must be run in PyTorch. An error will be thrown if this list is not empty but ``require_full_compilation`` is True + torch_executed_modules (List[str]): List of modules that must be run in PyTorch. An error will be thrown if this list is not empty but ``require_full_compilation`` is True + + Returns: + torch.jit.ScriptModule: Compiled TorchScript Module, when run it will execute via TensorRT + """ + + if isinstance(module, torch.jit.ScriptFunction): + raise TypeError( + "torch.jit.ScriptFunction currently is not directly supported, wrap the function in a module to compile" + ) + + if require_full_compilation and ( + len(torch_executed_modules) > 0 or len(torch_executed_ops) > 0 + ): + raise ValueError( + f"require_full_compilation is enabled however the list of modules and ops to run in torch is not empty. Found: torch_executed_ops: {torch_executed_ops}, torch_executed_modules: {torch_executed_modules}" + ) + + spec = { + "inputs": inputs, + "input_signature": input_signature, + "device": device, + "disable_tf32": disable_tf32, # Force FP32 layers to use traditional as FP32 format + "sparse_weights": sparse_weights, # Enable sparsity for convolution and fully connected layers. + "enabled_precisions": enabled_precisions, # Enabling FP16 kernels + "refit": refit, # enable refit + "debug": debug, # enable debuggable engine + "capability": capability, # Restrict kernel selection to safe gpu kernels or safe dla kernels + "num_avg_timing_iters": num_avg_timing_iters, # Number of averaging timing iterations used to select kernels + "workspace_size": workspace_size, # Maximum size of workspace given to TensorRT + "calibrator": calibrator, + "truncate_long_and_double": truncate_long_and_double, + "torch_fallback": { + "enabled": not require_full_compilation, + "forced_fallback_ops": torch_executed_ops, + "forced_fallback_modules": torch_executed_modules, + "min_block_size": min_block_size, + }, + } + + compiled_cpp_mod = _C.compile_graph(module._c, _parse_compile_spec(spec)) + compiled_module = torch.jit._recursive.wrap_cpp_module(compiled_cpp_mod) + return compiled_module
+ + +
[docs]def convert_method_to_trt_engine( + module: torch.jit.ScriptModule, + method_name: str, + inputs=[], + device=Device._current_device(), + disable_tf32=False, + sparse_weights=False, + enabled_precisions=set(), + refit=False, + debug=False, + capability=_enums.EngineCapability.default, + num_avg_timing_iters=1, + workspace_size=0, + dla_sram_size=1048576, + dla_local_dram_size=1073741824, + dla_global_dram_size=536870912, + truncate_long_and_double=False, + calibrator=None, +) -> str: + """Convert a TorchScript module method to a serialized TensorRT engine + + Converts a specified method of a module to a serialized TensorRT engine given a dictionary of conversion settings + + Arguments: + module (torch.jit.ScriptModule): Source module, a result of tracing or scripting a PyTorch + ``torch.nn.Module`` + method_name (str): Name of method to convert + + Keyword Args: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + input_signature Union(List, Tuple, torch_tensorrt.Input, torch.Tensor): A formatted collection of input specifications for the module. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum to select device type. **This API should be considered beta-level stable and may change in the future** :: + + input_signature=([ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + ], torch.randn((1, 3, 224, 244))) # Use an example tensor and let torch_tensorrt infer settings for input #3 + + device (Union(torch_tensorrt.Device, torch.device, dict)): Target device for TensorRT engines to run on :: + + device=torch_tensorrt.Device("dla:1", allow_gpu_fallback=True) + + disable_tf32 (bool): Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + sparse_weights (bool): Enable sparsity for convolution and fully connected layers. + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + refit (bool): Enable refitting + debug (bool): Enable debuggable engine + capability (torch_tensorrt.EngineCapability): Restrict kernel selection to safe gpu kernels or safe dla kernels + num_avg_timing_iters (int): Number of averaging timing iterations used to select kernels + workspace_size (int): Maximum size of workspace given to TensorRT + dla_sram_size (int): Fast software managed RAM used by DLA to communicate within a layer. + dla_local_dram_size (int): Host RAM used by DLA to share intermediate tensor data across operations + dla_global_dram_size (int): Host RAM used by DLA to store weights and metadata for execution + truncate_long_and_double (bool): Truncate weights provided in int64 or double (float64) to int32 and float32 + calibrator (Union(torch_tensorrt._C.IInt8Calibrator, tensorrt.IInt8Calibrator)): Calibrator object which will provide data to the PTQ system for INT8 Calibration + + Returns: + bytes: Serialized TensorRT engine, can either be saved to a file or deserialized via TensorRT APIs + """ + if isinstance(module, torch.jit.ScriptFunction): + raise TypeError( + "torch.jit.ScriptFunctions currently are not directly supported, wrap the function in a module to compile" + ) + + compile_spec = { + "inputs": inputs, + "device": device, + "disable_tf32": disable_tf32, # Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + "sparse_weights": sparse_weights, # Enable sparsity for convolution and fully connected layers. + "enabled_precisions": enabled_precisions, # Enabling FP16 kernels + "refit": refit, # enable refit + "debug": debug, # enable debuggable engine + "capability": capability, # Restrict kernel selection to safe gpu kernels or safe dla kernels + "num_avg_timing_iters": num_avg_timing_iters, # Number of averaging timing iterations used to select kernels + "workspace_size": workspace_size, # Maximum size of workspace given to TensorRT + "calibrator": calibrator, + "truncate_long_and_double": truncate_long_and_double, + } + + return _C.convert_graph_to_trt_engine( + module._c, method_name, _parse_compile_spec(compile_spec) + )
+ + +
[docs]def embed_engine_in_new_module( + serialized_engine: bytes, device=Device._current_device() +) -> torch.jit.ScriptModule: + """Takes a pre-built serialized TensorRT engine and embeds it within a TorchScript module + + Takes a pre-built serialied TensorRT engine (as bytes) and embeds it within a TorchScript module. + Registers the forward method to execute the TensorRT engine with the function signature: + + forward(Tensor[]) -> Tensor[] + + TensorRT bindings must have names with the following format: + - [symbol].[index in input / output array] + ex. + - [x.0, x.1, x.2] -> [y.0] + + Module can be save with engine embedded with torch.jit.save and moved / loaded according to torch_tensorrt portability rules + + Arguments: + serialized_engine (bytes): Serialized TensorRT engine from either torch_tensorrt or TensorRT APIs + + Keyword Arguments: + device (Union(torch_tensorrt.Device, torch.device, dict)): Target device to run engine on. Must be compatible with engine provided. Default: Current active device + + Returns: + torch.jit.ScriptModule: New TorchScript module with engine embedded + """ + cpp_mod = _C.embed_engine_in_new_module(serialized_engine, _parse_device(device)) + return torch.jit._recursive.wrap_cpp_module(cpp_mod)
+ + +
[docs]def check_method_op_support(module: torch.jit.ScriptModule, method_name: str) -> bool: + """Checks to see if a method is fully supported by torch_tensorrt + + Checks if a method of a TorchScript module can be compiled by torch_tensorrt, if not, a list of operators + that are not supported are printed out and the function returns false, else true. + + Arguments: + module (torch.jit.ScriptModule): Source module, a result of tracing or scripting a PyTorch + ``torch.nn.Module`` + method_name (str): Name of method to check + + Returns: + bool: True if supported Method + """ + return _C.check_method_op_support(module._c, method_name)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_notebooks/CitriNet-example.html b/docs/v1.1.1/_notebooks/CitriNet-example.html new file mode 100644 index 0000000000..88ad96f6c6 --- /dev/null +++ b/docs/v1.1.1/_notebooks/CitriNet-example.html @@ -0,0 +1,1988 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Torch-TensorRT Getting Started - CitriNet — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
[1]:
+
+
+
+
+
+
+# Copyright 2019 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+
+

+ c4da480a6f12443d90f742397285503d +

+

+ Torch-TensorRT Getting Started - CitriNet + + ¶ + +

+

+ Overview + + ¶ + +

+

+ + Citrinet + + is an acoustic model used for the speech to text recognition task. It is a version of + + QuartzNet + + that extends + + ContextNet + + , utilizing subword encoding (via Word Piece tokenization) and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models. +

+

+ CitriNet models take in audio segments and transcribe them to letter, byte pair, or word piece sequences. +

+

+ alt +

+

+ Learning objectives + + ¶ + +

+

+ This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, and running it to test the speedup obtained. +

+

+ Content + + ¶ + +

+
    +
  1. +

    + + Requirements + +

    +
  2. +
  3. +

    + + Download Citrinet model + +

    +
  4. +
  5. +

    + + Create Torch-TensorRT modules + +

    +
  6. +
  7. +

    + + Benchmark Torch-TensorRT models + +

    +
  8. +
  9. +

    + + Conclusion + +

    +
  10. +
+

+ ## 1. Requirements +

+

+ Follow the steps in + + README + + to prepare a Docker container, within which you can run this notebook. This notebook assumes that you are within a Jupyter environment in a docker container with Torch-TensorRT installed, such as an NGC monthly release of + + + nvcr.io/nvidia/pytorch:<yy.mm>-py3 + + + (where + + + yy + + + indicates the last two numbers of a calendar year, and + + + mm + + + indicates the month in two-digit numerical form) +

+

+ Now that you are in the docker, the next step is to install the required dependencies. +

+
+
+
+
[2]:
+
+
+
+
+
+
+# Install dependencies
+!pip install wget
+!apt-get update && DEBIAN_FRONTEND=noninteractive  apt-get install -y libsndfile1 ffmpeg
+!pip install Cython
+
+## Install NeMo
+!pip install nemo_toolkit[all]==1.5.1
+
+
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (3.2)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
+Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
+Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
+Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
+Reading package lists... Done
+Reading package lists... Done
+Building dependency tree
+Reading state information... Done
+libsndfile1 is already the newest version (1.0.28-7ubuntu0.1).
+ffmpeg is already the newest version (7:4.2.4-1ubuntu0.1).
+0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: Cython in /opt/conda/lib/python3.8/site-packages (0.29.28)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: nemo_toolkit[all]==1.5.1 in /opt/conda/lib/python3.8/site-packages (1.5.1)
+Requirement already satisfied: numpy>=1.18.2 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.22.3)
+Requirement already satisfied: onnx>=1.7.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.10.1)
+Requirement already satisfied: python-dateutil in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.8.2)
+Requirement already satisfied: tqdm>=4.41.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.63.0)
+Requirement already satisfied: sentencepiece<1.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.96)
+Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)
+Requirement already satisfied: numba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.53.1)
+Requirement already satisfied: torch in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.12.0a0+2c916ef)
+Requirement already satisfied: unidecode in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.4)
+Requirement already satisfied: frozendict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.3.2)
+Requirement already satisfied: wrapt in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.14.0)
+Requirement already satisfied: scikit-learn in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.24.2)
+Requirement already satisfied: ruamel.yaml in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.17.21)
+Requirement already satisfied: pesq in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.3)
+Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.13.0a0)
+Requirement already satisfied: gdown in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)
+Requirement already satisfied: editdistance in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.6.0)
+Requirement already satisfied: boto3 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.21.45)
+Requirement already satisfied: isort[requirements]<5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.3.21)
+Requirement already satisfied: hydra-core>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.2)
+Requirement already satisfied: youtokentome>=1.0.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.0.6)
+Requirement already satisfied: pytorch-lightning>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.1)
+Requirement already satisfied: jieba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.42.1)
+Requirement already satisfied: fasttext in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.2)
+Requirement already satisfied: soundfile in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.10.3.post1)
+Requirement already satisfied: kaldiio in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.17.2)
+Requirement already satisfied: pangu in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.0.6.1)
+Requirement already satisfied: kaldi-python-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.2.2)
+Requirement already satisfied: parameterized in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.1)
+Requirement already satisfied: h5py in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.6.0)
+Requirement already satisfied: rapidfuzz in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.10)
+Requirement already satisfied: marshmallow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.15.0)
+Requirement already satisfied: opencc in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.3)
+Requirement already satisfied: braceexpand in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.7)
+Requirement already satisfied: omegaconf>=2.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.2)
+Requirement already satisfied: sphinx in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)
+Requirement already satisfied: pillow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (9.0.0)
+Requirement already satisfied: wordninja==2.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)
+Requirement already satisfied: torch-stft in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.4)
+Requirement already satisfied: sox in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.4.1)
+Requirement already satisfied: librosa in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.1)
+Requirement already satisfied: regex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2022.3.15)
+Requirement already satisfied: sacrebleu[ja] in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)
+Requirement already satisfied: black==19.10b0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (19.10b0)
+Requirement already satisfied: pydub in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.25.1)
+Requirement already satisfied: sphinxcontrib-bibtex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.4.2)
+Requirement already satisfied: inflect in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.5.2)
+Requirement already satisfied: pyannote.core in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (21.3)
+Requirement already satisfied: kaldi-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.4)
+Requirement already satisfied: pyannote.metrics in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)
+Requirement already satisfied: g2p-en in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.0)
+Requirement already satisfied: matplotlib in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.5.1)
+Requirement already satisfied: torchmetrics>=0.4.1rc0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.0)
+Requirement already satisfied: nltk>=3.6.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.7)
+Requirement already satisfied: pyyaml<6 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.4.1)
+Requirement already satisfied: scipy in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.3)
+Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (7.7.0)
+Requirement already satisfied: pytest in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.2.5)
+Requirement already satisfied: pandas in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.5)
+Requirement already satisfied: pytest-runner in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.0.0)
+Requirement already satisfied: transformers>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.18.0)
+Requirement already satisfied: sacremoses>=0.0.43 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.49)
+Requirement already satisfied: pystoi in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.3.3)
+Requirement already satisfied: attrdict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.1)
+Requirement already satisfied: webdataset<=0.1.62,>=0.1.48 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.62)
+Requirement already satisfied: wandb in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.12.15)
+Requirement already satisfied: pypinyin in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.46.0)
+Requirement already satisfied: attrs>=18.1.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (21.4.0)
+Requirement already satisfied: appdirs in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.4.4)
+Requirement already satisfied: typed-ast>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.5.3)
+Requirement already satisfied: pathspec<1,>=0.6 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.9.0)
+Requirement already satisfied: click>=6.5 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (8.0.4)
+Requirement already satisfied: toml>=0.9.4 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.10.2)
+Requirement already satisfied: antlr4-python3-runtime==4.8 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (4.8)
+Requirement already satisfied: importlib-resources<5.3 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (5.2.3)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources<5.3->hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (3.7.0)
+Requirement already satisfied: pip-api in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.0.29)
+Requirement already satisfied: pipreqs in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.4.11)
+Requirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (4.31.2)
+Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (1.4.0)
+Requirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (3.0.7)
+Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (0.11.0)
+Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from nltk>=3.6.5->nemo_toolkit[all]==1.5.1) (1.1.0)
+Requirement already satisfied: typing-extensions>=3.6.2.1 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (4.1.1)
+Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (1.16.0)
+Requirement already satisfied: protobuf>=3.12.2 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (3.19.4)
+Requirement already satisfied: pyDeprecate<0.4.0,>=0.3.1 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.3.2)
+Requirement already satisfied: tensorboard>=2.2.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.8.0)
+Requirement already satisfied: fsspec[http]!=2021.06.0,>=2021.05.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2022.2.0)
+Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.27.1)
+Requirement already satisfied: aiohttp in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.8.1)
+Requirement already satisfied: werkzeug>=0.11.15 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.3)
+Requirement already satisfied: markdown>=2.6.8 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3.6)
+Requirement already satisfied: setuptools>=41.0.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (59.5.0)
+Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.6)
+Requirement already satisfied: google-auth<3,>=1.6.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.6.2)
+Requirement already satisfied: wheel>=0.26 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.37.1)
+Requirement already satisfied: grpcio>=1.24.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.44.0)
+Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.6.1)
+Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.8.1)
+Requirement already satisfied: absl-py>=0.4 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.0.0)
+Requirement already satisfied: cachetools<6.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (5.0.0)
+Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.2.8)
+Requirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.8)
+Requirement already satisfied: requests-oauthlib>=0.7.0 in /opt/conda/lib/python3.8/site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.1)
+Requirement already satisfied: importlib-metadata>=4.4 in /opt/conda/lib/python3.8/site-packages (from markdown>=2.6.8->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.11.3)
+Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.8)
+Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.12)
+Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2021.10.8)
+Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3)
+Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.26.8)
+Requirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.8/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.2.0)
+Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.5.1)
+Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.12.1)
+Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (3.6.0)
+Requirement already satisfied: frozenlist>=1.1.1 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.0)
+Requirement already satisfied: yarl<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.2)
+Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.0.2)
+Requirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (6.0.2)
+Requirement already satisfied: aiosignal>=1.1.2 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.2.0)
+Requirement already satisfied: s3transfer<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (0.5.2)
+Requirement already satisfied: botocore<1.25.0,>=1.24.45 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.24.45)
+Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.0.0)
+Requirement already satisfied: pybind11>=2.2 in /opt/conda/lib/python3.8/site-packages (from fasttext->nemo_toolkit[all]==1.5.1) (2.9.1)
+Requirement already satisfied: distance>=0.1.3 in /opt/conda/lib/python3.8/site-packages (from g2p-en->nemo_toolkit[all]==1.5.1) (0.1.3)
+Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from gdown->nemo_toolkit[all]==1.5.1) (4.10.0)
+Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->gdown->nemo_toolkit[all]==1.5.1) (2.3.1)
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (8.1.1)
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (6.9.2)
+Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (1.1.0)
+Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (3.6.0)
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.2.0)
+Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (7.1.2)
+Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (5.9.0)
+Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (6.1)
+Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.1)
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.4)
+Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.3)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.5)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)
+Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.11.2)
+Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.27)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.8.0)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.4)
+Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (22.3.0)
+Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (4.9.2)
+Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.4.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.5)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.1)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.8.0)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.1)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.3)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.3)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.4)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.3.0)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.21)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.1.1)
+Requirement already satisfied: resampy>=0.2.2 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (0.2.2)
+Requirement already satisfied: pooch>=1.0 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (1.6.0)
+Requirement already satisfied: audioread>=2.1.5 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (2.1.9)
+Requirement already satisfied: llvmlite<0.37,>=0.36.0rc1 in /opt/conda/lib/python3.8/site-packages (from numba->nemo_toolkit[all]==1.5.1) (0.36.0)
+Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from scikit-learn->nemo_toolkit[all]==1.5.1) (3.1.0)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.1)
+Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.13)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.1.0)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.4)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.0)
+Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.6.0)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.2)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.1)
+Requirement already satisfied: pytz>=2017.3 in /opt/conda/lib/python3.8/site-packages (from pandas->nemo_toolkit[all]==1.5.1) (2021.3)
+Requirement already satisfied: pip in /opt/conda/lib/python3.8/site-packages (from pip-api->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (21.2.4)
+Requirement already satisfied: yarg in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.1.9)
+Requirement already satisfied: docopt in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.6.2)
+Requirement already satisfied: simplejson>=3.8.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (3.17.6)
+Requirement already satisfied: sortedcontainers>=2.0.4 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (2.4.0)
+Requirement already satisfied: tabulate>=0.7.7 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.8.9)
+Requirement already satisfied: pyannote.database>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (4.1.3)
+Requirement already satisfied: sympy>=1.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.10.1)
+Requirement already satisfied: typer[all]>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.0)
+Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.8/site-packages (from sympy>=1.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.2.1)
+Requirement already satisfied: colorama<0.5.0,>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.4)
+Requirement already satisfied: shellingham<2.0.0,>=1.3.0 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.4.0)
+Requirement already satisfied: py>=1.8.2 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.11.0)
+Requirement already satisfied: iniconfig in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.1.1)
+Requirement already satisfied: pluggy<2.0,>=0.12 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.0.0)
+Requirement already satisfied: jarowinkler<1.1.0,>=1.0.2 in /opt/conda/lib/python3.8/site-packages (from rapidfuzz->nemo_toolkit[all]==1.5.1) (1.0.2)
+Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.1)
+Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in /opt/conda/lib/python3.8/site-packages (from ruamel.yaml->nemo_toolkit[all]==1.5.1) (0.2.6)
+Requirement already satisfied: portalocker in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (2.4.0)
+Requirement already satisfied: ipadic<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.0)
+Requirement already satisfied: mecab-python3==1.0.3 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.3)
+Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.0.0)
+Requirement already satisfied: alabaster<0.8,>=0.7 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.7.12)
+Requirement already satisfied: babel>=1.3 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.9.1)
+Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.1.5)
+Requirement already satisfied: sphinxcontrib-devhelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)
+Requirement already satisfied: sphinxcontrib-jsmath in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.1)
+Requirement already satisfied: sphinxcontrib-qthelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.3)
+Requirement already satisfied: snowballstemmer>=1.1 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.2.0)
+Requirement already satisfied: imagesize in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.3.0)
+Requirement already satisfied: sphinxcontrib-applehelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)
+Requirement already satisfied: docutils<0.18,>=0.14 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.17.1)
+Requirement already satisfied: pybtex-docutils>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (1.0.1)
+Requirement already satisfied: pybtex>=0.24 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (0.24.0)
+Requirement already satisfied: latexcodec>=1.0.4 in /opt/conda/lib/python3.8/site-packages (from pybtex>=0.24->sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (2.0.1)
+Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.2)
+Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.0.5)
+Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)
+Requirement already satisfied: pathtools in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.1.2)
+Requirement already satisfied: setproctitle in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.2.3)
+Requirement already satisfied: GitPython>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (3.1.27)
+Requirement already satisfied: sentry-sdk>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.5.10)
+Requirement already satisfied: shortuuid>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.0.8)
+Requirement already satisfied: docker-pycreds>=0.4.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.4.0)
+Requirement already satisfied: promise<3,>=2.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (2.3)
+Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (4.0.9)
+Requirement already satisfied: smmap<6,>=3.0.1 in /opt/conda/lib/python3.8/site-packages (from gitdb<5,>=4.0.1->GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (5.0.0)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+
+
+

+ ## 2. Download Citrinet model +

+

+ Next, we download a pretrained Nemo Citrinet model and convert it to a Torchscript module: +

+
+
+
+
[3]:
+
+
+
+
+
+
+import nemo
+import torch
+
+import nemo.collections.asr as nemo_asr
+from nemo.core import typecheck
+typecheck.set_typecheck_enabled(False)
+
+
+
+
+
+
+
+
[4]:
+
+
+
+
+
+
+variant = 'stt_en_citrinet_256'
+
+print(f"Downloading and saving {variant}...")
+asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name=variant)
+asr_model.export(f"{variant}.ts")
+
+
+
+
+
+
+
+
+
+
+Downloading and saving stt_en_citrinet_256...
+[NeMo I 2022-04-21 23:12:45 cloud:56] Found existing object /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.
+[NeMo I 2022-04-21 23:12:45 cloud:62] Re-using file from: /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo
+[NeMo I 2022-04-21 23:12:45 common:728] Instantiating model from pre-trained checkpoint
+[NeMo I 2022-04-21 23:12:46 mixins:146] Tokenizer SentencePieceTokenizer initialized with 1024 tokens
+
+
+
+
+
+
+
+
+
+
+[NeMo W 2022-04-21 23:12:47 modelPT:130] If you intend to do training or fine-tuning, please call the ModelPT.setup_training_data() method and provide a valid configuration file to setup the train data loader.
+    Train config :
+    manifest_filepath: null
+    sample_rate: 16000
+    batch_size: 32
+    trim_silence: true
+    max_duration: 16.7
+    shuffle: true
+    is_tarred: false
+    tarred_audio_filepaths: null
+    use_start_end_token: false
+
+[NeMo W 2022-04-21 23:12:47 modelPT:137] If you intend to do validation, please call the ModelPT.setup_validation_data() or ModelPT.setup_multiple_validation_data() method and provide a valid configuration file to setup the validation data loader(s).
+    Validation config :
+    manifest_filepath: null
+    sample_rate: 16000
+    batch_size: 32
+    shuffle: false
+    use_start_end_token: false
+
+[NeMo W 2022-04-21 23:12:47 modelPT:143] Please call the ModelPT.setup_test_data() or ModelPT.setup_multiple_test_data() method and provide a valid configuration file to setup the test data loader(s).
+    Test config :
+    manifest_filepath: null
+    sample_rate: 16000
+    batch_size: 32
+    shuffle: false
+    use_start_end_token: false
+
+
+
+
+
+
+
+
+
+
+
+[NeMo I 2022-04-21 23:12:47 features:265] PADDING: 16
+[NeMo I 2022-04-21 23:12:47 features:282] STFT using torch
+
+
+
+
+
+
+
+
+
+
+[NeMo W 2022-04-21 23:12:47 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/nemo/collections/asr/parts/preprocessing/features.py:315: FutureWarning: Pass sr=16000, n_fft=512 as keyword args. From version 0.10 passing these as positional arguments will result in an error
+      librosa.filters.mel(sample_rate, self.n_fft, n_mels=nfilt, fmin=lowfreq, fmax=highfreq), dtype=torch.float
+
+
+
+
+
+
+
+
+
+
+
+[NeMo I 2022-04-21 23:12:49 save_restore_connector:149] Model EncDecCTCModelBPE was successfully restored from /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.
+
+
+
+
+
+
+
+
+
+
+[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules
+[NeMo W 2022-04-21 23:12:49 conv_asr:73] Turned off 235 masked convolutions
+[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/jit/_trace.py:916: UserWarning: `optimize` is deprecated and has no effect. Use `with torch.jit.optimized_execution() instead
+      warnings.warn(
+
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.
+      if hasattr(mod, name):
+
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.
+      item = getattr(mod, name)
+
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.
+      if hasattr(mod, name):
+
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.
+      item = getattr(mod, name)
+
+
+
+
+
+
+
+
+
[4]:
+
+
+
+
+
+
+(['stt_en_citrinet_256.ts'],
+ ['nemo.collections.asr.models.ctc_bpe_models.EncDecCTCModelBPE exported to ONNX'])
+
+
+
+
+

+ Benchmark utility + + ¶ + +

+

+ Let us define a helper benchmarking function, then benchmark the original Pytorch model. +

+
+
+
+
[5]:
+
+
+
+
+
+
+from __future__ import print_function
+from __future__ import absolute_import
+from __future__ import division
+
+import argparse
+import timeit
+import numpy as np
+import torch
+import torch_tensorrt as trtorch
+import torch.backends.cudnn as cudnn
+
+def benchmark(model, input_tensor, num_loops, model_name, batch_size):
+    def timeGraph(model, input_tensor, num_loops):
+        print("Warm up ...")
+        with torch.no_grad():
+            for _ in range(20):
+                features = model(input_tensor)
+
+        torch.cuda.synchronize()
+        print("Start timing ...")
+        timings = []
+        with torch.no_grad():
+            for i in range(num_loops):
+                start_time = timeit.default_timer()
+                features = model(input_tensor)
+                torch.cuda.synchronize()
+                end_time = timeit.default_timer()
+                timings.append(end_time - start_time)
+                # print("Iteration {}: {:.6f} s".format(i, end_time - start_time))
+        return timings
+    def printStats(graphName, timings, batch_size):
+        times = np.array(timings)
+        steps = len(times)
+        speeds = batch_size / times
+        time_mean = np.mean(times)
+        time_med = np.median(times)
+        time_99th = np.percentile(times, 99)
+        time_std = np.std(times, ddof=0)
+        speed_mean = np.mean(speeds)
+        speed_med = np.median(speeds)
+        msg = ("\n%s =================================\n"
+                "batch size=%d, num iterations=%d\n"
+                "  Median samples/s: %.1f, mean: %.1f\n"
+                "  Median latency (s): %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\n"
+                ) % (graphName,
+                    batch_size, steps,
+                    speed_med, speed_mean,
+                    time_med, time_mean, time_99th, time_std)
+        print(msg)
+    timings = timeGraph(model, input_tensor, num_loops)
+    printStats(model_name, timings, batch_size)
+
+precisions_str = 'fp32' # Precision (default=fp32, fp16)
+variant = 'stt_en_citrinet_256' # Nemo Citrinet variant
+batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)
+trt = False # If True, infer with Torch-TensorRT engine. Else, infer with Pytorch model.
+precision = torch.float32 if precisions_str =='fp32' else torch.float16
+
+for batch_size in batch_sizes:
+    if trt:
+        model_name = f"{variant}_bs{batch_size}_{precision}.torch-tensorrt"
+    else:
+        model_name = f"{variant}.ts"
+
+    print(f"Loading model: {model_name}")
+    # Load traced model to CPU first
+    model = torch.jit.load(model_name).cuda()
+    cudnn.benchmark = True
+    # Create random input tensor of certain size
+    torch.manual_seed(12345)
+    input_shape=(batch_size, 80, 1488)
+    input_tensor = torch.randn(input_shape).cuda()
+
+    # Timing graph inference
+    benchmark(model, input_tensor, 50, model_name, batch_size)
+
+
+
+
+
+
+
+
+
+
+Loading model: stt_en_citrinet_256.ts
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256.ts =================================
+batch size=1, num iterations=50
+  Median samples/s: 102.0, mean: 102.0
+  Median latency (s): 0.009802, mean: 0.009803, 99th_p: 0.009836, std_dev: 0.000014
+
+Loading model: stt_en_citrinet_256.ts
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256.ts =================================
+batch size=8, num iterations=50
+  Median samples/s: 429.1, mean: 429.1
+  Median latency (s): 0.018642, mean: 0.018643, 99th_p: 0.018670, std_dev: 0.000014
+
+Loading model: stt_en_citrinet_256.ts
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256.ts =================================
+batch size=32, num iterations=50
+  Median samples/s: 551.3, mean: 551.2
+  Median latency (s): 0.058047, mean: 0.058053, 99th_p: 0.058375, std_dev: 0.000106
+
+Loading model: stt_en_citrinet_256.ts
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256.ts =================================
+batch size=128, num iterations=50
+  Median samples/s: 594.1, mean: 594.1
+  Median latency (s): 0.215434, mean: 0.215446, 99th_p: 0.215806, std_dev: 0.000116
+
+
+
+
+
+

+ Confirming the GPU we are using here: +

+
+
+
+
[6]:
+
+
+
+
+
+
+!nvidia-smi
+
+
+
+
+
+
+
+
+
+
+Thu Apr 21 23:13:32 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA TITAN V      On   | 00000000:17:00.0 Off |                  N/A |
+| 38%   55C    P2    42W / 250W |   2462MiB / 12288MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+|   1  NVIDIA TITAN V      On   | 00000000:65:00.0 Off |                  N/A |
+| 28%   39C    P8    26W / 250W |    112MiB / 12288MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|    0   N/A  N/A      3909      G                                       4MiB |
+|    0   N/A  N/A      6047      C                                    2453MiB |
+|    1   N/A  N/A      3909      G                                      39MiB |
+|    1   N/A  N/A      4161      G                                      67MiB |
++-----------------------------------------------------------------------------+
+
+
+
+
+

+ ## 3. Create Torch-TensorRT modules +

+

+ In this step, we optimize the Citrinet Torchscript module with Torch-TensorRT with various precisions and batch sizes. +

+
+
+
+
[10]:
+
+
+
+
+
+
+import torch
+import torch.nn as nn
+import torch_tensorrt as torchtrt
+import argparse
+
+variant = "stt_en_citrinet_256"
+precisions = [torch.float, torch.half]
+batch_sizes = [1,8,32,128]
+
+model = torch.jit.load(f"{variant}.ts")
+
+for precision in precisions:
+    for batch_size in batch_sizes:
+        compile_settings = {
+            "inputs": [torchtrt.Input(shape=[batch_size, 80, 1488])],
+            "enabled_precisions": {precision},
+            "workspace_size": 2000000000,
+            "truncate_long_and_double": True,
+        }
+        print(f"Generating Torchscript-TensorRT module for batchsize {batch_size} precision {precision}")
+        trt_ts_module = torchtrt.compile(model, **compile_settings)
+        torch.jit.save(trt_ts_module, f"{variant}_bs{batch_size}_{precision}.torch-tensorrt")
+
+
+
+
+
+
+
+
+
+
+Generating Torchscript-TensorRT module for batchsize 1 precision torch.float32
+Generating Torchscript-TensorRT module for batchsize 8 precision torch.float32
+Generating Torchscript-TensorRT module for batchsize 32 precision torch.float32
+Generating Torchscript-TensorRT module for batchsize 128 precision torch.float32
+Generating Torchscript-TensorRT module for batchsize 1 precision torch.float16
+Generating Torchscript-TensorRT module for batchsize 8 precision torch.float16
+Generating Torchscript-TensorRT module for batchsize 32 precision torch.float16
+Generating Torchscript-TensorRT module for batchsize 128 precision torch.float16
+
+
+
+
+

+ ## 4. Benchmark Torch-TensorRT models +

+

+ Finally, we are ready to benchmark the Torch-TensorRT optimized Citrinet models. +

+

+ FP32 (single precision) + + ¶ + +

+
+
+
+
[13]:
+
+
+
+
+
+
+precisions_str = 'fp32' # Precision (default=fp32, fp16)
+batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)
+precision = torch.float32 if precisions_str =='fp32' else torch.float16
+trt = True
+
+for batch_size in batch_sizes:
+    if trt:
+        model_name = f"{variant}_bs{batch_size}_{precision}.torch-tensorrt"
+    else:
+        model_name = f"{variant}.ts"
+
+    print(f"Loading model: {model_name}")
+    # Load traced model to CPU first
+    model = torch.jit.load(model_name).cuda()
+    cudnn.benchmark = True
+    # Create random input tensor of certain size
+    torch.manual_seed(12345)
+    input_shape=(batch_size, 80, 1488)
+    input_tensor = torch.randn(input_shape).cuda()
+
+    # Timing graph inference
+    benchmark(model, input_tensor, 50, model_name, batch_size)
+
+
+
+
+
+
+
+
+
+
+Loading model: stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt =================================
+batch size=1, num iterations=50
+  Median samples/s: 242.2, mean: 218.0
+  Median latency (s): 0.004128, mean: 0.004825, 99th_p: 0.008071, std_dev: 0.001270
+
+Loading model: stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt =================================
+batch size=8, num iterations=50
+  Median samples/s: 729.9, mean: 709.0
+  Median latency (s): 0.010961, mean: 0.011388, 99th_p: 0.016114, std_dev: 0.001256
+
+Loading model: stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt =================================
+batch size=32, num iterations=50
+  Median samples/s: 955.6, mean: 953.4
+  Median latency (s): 0.033488, mean: 0.033572, 99th_p: 0.035722, std_dev: 0.000545
+
+Loading model: stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt =================================
+batch size=128, num iterations=50
+  Median samples/s: 1065.8, mean: 1069.4
+  Median latency (s): 0.120097, mean: 0.119708, 99th_p: 0.121618, std_dev: 0.001260
+
+
+
+
+
+

+ FP16 (half precision) + + ¶ + +

+
+
+
+
[14]:
+
+
+
+
+
+
+precisions_str = 'fp16' # Precision (default=fp32, fp16)
+batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)
+precision = torch.float32 if precisions_str =='fp32' else torch.float16
+
+for batch_size in batch_sizes:
+    if trt:
+        model_name = f"{variant}_bs{batch_size}_{precision}.torch-tensorrt"
+    else:
+        model_name = f"{variant}.ts"
+
+    print(f"Loading model: {model_name}")
+    # Load traced model to CPU first
+    model = torch.jit.load(model_name).cuda()
+    cudnn.benchmark = True
+    # Create random input tensor of certain size
+    torch.manual_seed(12345)
+    input_shape=(batch_size, 80, 1488)
+    input_tensor = torch.randn(input_shape).cuda()
+
+    # Timing graph inference
+    benchmark(model, input_tensor, 50, model_name, batch_size)
+
+
+
+
+
+
+
+
+
+
+Loading model: stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt =================================
+batch size=1, num iterations=50
+  Median samples/s: 288.9, mean: 272.9
+  Median latency (s): 0.003462, mean: 0.003774, 99th_p: 0.006846, std_dev: 0.000820
+
+Loading model: stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt =================================
+batch size=8, num iterations=50
+  Median samples/s: 1201.0, mean: 1190.9
+  Median latency (s): 0.006661, mean: 0.006733, 99th_p: 0.008453, std_dev: 0.000368
+
+Loading model: stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt =================================
+batch size=32, num iterations=50
+  Median samples/s: 1538.2, mean: 1516.4
+  Median latency (s): 0.020804, mean: 0.021143, 99th_p: 0.024492, std_dev: 0.000973
+
+Loading model: stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt =================================
+batch size=128, num iterations=50
+  Median samples/s: 1792.0, mean: 1777.0
+  Median latency (s): 0.071428, mean: 0.072057, 99th_p: 0.076796, std_dev: 0.001351
+
+
+
+
+
+

+ ## 5. Conclusion +

+

+ In this notebook, we have walked through the complete process of optimizing the Citrinet model with Torch-TensorRT. On an A100 GPU, with Torch-TensorRT, we observe a speedup of ~ + + 2.4X + + with FP32, and ~ + + 2.9X + + with FP16 at batchsize of 128. +

+

+ What’s next + + ¶ + +

+

+ Now it’s time to try Torch-TensorRT on your own model. Fill out issues at + + https://github.com/NVIDIA/Torch-TensorRT + + . Your involvement will help future development of Torch-TensorRT. +

+
+
+
+
[ ]:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_notebooks/CitriNet-example.ipynb b/docs/v1.1.1/_notebooks/CitriNet-example.ipynb new file mode 100644 index 0000000000..0573af0176 --- /dev/null +++ b/docs/v1.1.1/_notebooks/CitriNet-example.ipynb @@ -0,0 +1,964 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - CitriNet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "[Citrinet](https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/main/asr/models.html#citrinet) is an acoustic model used for the speech to text recognition task. It is a version of [QuartzNet](https://arxiv.org/pdf/1910.10261.pdf) that extends [ContextNet](https://arxiv.org/pdf/2005.03191.pdf), utilizing subword encoding (via Word Piece tokenization) and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models.\n", + "\n", + "CitriNet models take in audio segments and transcribe them to letter, byte pair, or word piece sequences. \n", + "\n", + "\"alt\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [Download Citrinet model](#2)\n", + "1. [Create Torch-TensorRT modules](#3)\n", + "1. [Benchmark Torch-TensorRT models](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in [README](README.md) to prepare a Docker container, within which you can run this notebook. \n", + "This notebook assumes that you are within a Jupyter environment in a docker container with Torch-TensorRT installed, such as an NGC monthly release of `nvcr.io/nvidia/pytorch:-py3` (where `yy` indicates the last two numbers of a calendar year, and `mm` indicates the month in two-digit numerical form)\n", + "\n", + "Now that you are in the docker, the next step is to install the required dependencies." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (3.2)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease\n", + "Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease\n", + "Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease\n", + "Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease\n", + "Reading package lists... Done\n", + "Reading package lists... Done\n", + "Building dependency tree \n", + "Reading state information... Done\n", + "libsndfile1 is already the newest version (1.0.28-7ubuntu0.1).\n", + "ffmpeg is already the newest version (7:4.2.4-1ubuntu0.1).\n", + "0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: Cython in /opt/conda/lib/python3.8/site-packages (0.29.28)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: nemo_toolkit[all]==1.5.1 in /opt/conda/lib/python3.8/site-packages (1.5.1)\n", + "Requirement already satisfied: numpy>=1.18.2 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.22.3)\n", + "Requirement already satisfied: onnx>=1.7.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.10.1)\n", + "Requirement already satisfied: python-dateutil in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.8.2)\n", + "Requirement already satisfied: tqdm>=4.41.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.63.0)\n", + "Requirement already satisfied: sentencepiece<1.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.96)\n", + "Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)\n", + "Requirement already satisfied: numba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.53.1)\n", + "Requirement already satisfied: torch in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.12.0a0+2c916ef)\n", + "Requirement already satisfied: unidecode in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.4)\n", + "Requirement already satisfied: frozendict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.3.2)\n", + "Requirement already satisfied: wrapt in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.14.0)\n", + "Requirement already satisfied: scikit-learn in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.24.2)\n", + "Requirement already satisfied: ruamel.yaml in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.17.21)\n", + "Requirement already satisfied: pesq in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.3)\n", + "Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.13.0a0)\n", + "Requirement already satisfied: gdown in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: editdistance in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.6.0)\n", + "Requirement already satisfied: boto3 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.21.45)\n", + "Requirement already satisfied: isort[requirements]<5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.3.21)\n", + "Requirement already satisfied: hydra-core>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.2)\n", + "Requirement already satisfied: youtokentome>=1.0.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.0.6)\n", + "Requirement already satisfied: pytorch-lightning>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.1)\n", + "Requirement already satisfied: jieba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.42.1)\n", + "Requirement already satisfied: fasttext in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.2)\n", + "Requirement already satisfied: soundfile in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.10.3.post1)\n", + "Requirement already satisfied: kaldiio in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.17.2)\n", + "Requirement already satisfied: pangu in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.0.6.1)\n", + "Requirement already satisfied: kaldi-python-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.2.2)\n", + "Requirement already satisfied: parameterized in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.1)\n", + "Requirement already satisfied: h5py in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: rapidfuzz in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.10)\n", + "Requirement already satisfied: marshmallow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.15.0)\n", + "Requirement already satisfied: opencc in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.3)\n", + "Requirement already satisfied: braceexpand in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.7)\n", + "Requirement already satisfied: omegaconf>=2.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.2)\n", + "Requirement already satisfied: sphinx in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: pillow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (9.0.0)\n", + "Requirement already satisfied: wordninja==2.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: torch-stft in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.4)\n", + "Requirement already satisfied: sox in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.4.1)\n", + "Requirement already satisfied: librosa in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.1)\n", + "Requirement already satisfied: regex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2022.3.15)\n", + "Requirement already satisfied: sacrebleu[ja] in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: black==19.10b0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (19.10b0)\n", + "Requirement already satisfied: pydub in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.25.1)\n", + "Requirement already satisfied: sphinxcontrib-bibtex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.4.2)\n", + "Requirement already satisfied: inflect in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.5.2)\n", + "Requirement already satisfied: pyannote.core in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (21.3)\n", + "Requirement already satisfied: kaldi-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.4)\n", + "Requirement already satisfied: pyannote.metrics in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)\n", + "Requirement already satisfied: g2p-en in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.0)\n", + "Requirement already satisfied: matplotlib in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.5.1)\n", + "Requirement already satisfied: torchmetrics>=0.4.1rc0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.0)\n", + "Requirement already satisfied: nltk>=3.6.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.7)\n", + "Requirement already satisfied: pyyaml<6 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.4.1)\n", + "Requirement already satisfied: scipy in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.3)\n", + "Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (7.7.0)\n", + "Requirement already satisfied: pytest in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.2.5)\n", + "Requirement already satisfied: pandas in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.5)\n", + "Requirement already satisfied: pytest-runner in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.0.0)\n", + "Requirement already satisfied: transformers>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.18.0)\n", + "Requirement already satisfied: sacremoses>=0.0.43 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.49)\n", + "Requirement already satisfied: pystoi in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.3.3)\n", + "Requirement already satisfied: attrdict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.1)\n", + "Requirement already satisfied: webdataset<=0.1.62,>=0.1.48 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.62)\n", + "Requirement already satisfied: wandb in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.12.15)\n", + "Requirement already satisfied: pypinyin in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.46.0)\n", + "Requirement already satisfied: attrs>=18.1.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (21.4.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: appdirs in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.4.4)\n", + "Requirement already satisfied: typed-ast>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.5.3)\n", + "Requirement already satisfied: pathspec<1,>=0.6 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.9.0)\n", + "Requirement already satisfied: click>=6.5 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (8.0.4)\n", + "Requirement already satisfied: toml>=0.9.4 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.10.2)\n", + "Requirement already satisfied: antlr4-python3-runtime==4.8 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (4.8)\n", + "Requirement already satisfied: importlib-resources<5.3 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (5.2.3)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources<5.3->hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (3.7.0)\n", + "Requirement already satisfied: pip-api in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.0.29)\n", + "Requirement already satisfied: pipreqs in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.4.11)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (4.31.2)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (1.4.0)\n", + "Requirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (3.0.7)\n", + "Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (0.11.0)\n", + "Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from nltk>=3.6.5->nemo_toolkit[all]==1.5.1) (1.1.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.2.1 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (4.1.1)\n", + "Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (1.16.0)\n", + "Requirement already satisfied: protobuf>=3.12.2 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (3.19.4)\n", + "Requirement already satisfied: pyDeprecate<0.4.0,>=0.3.1 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.3.2)\n", + "Requirement already satisfied: tensorboard>=2.2.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.8.0)\n", + "Requirement already satisfied: fsspec[http]!=2021.06.0,>=2021.05.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2022.2.0)\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.27.1)\n", + "Requirement already satisfied: aiohttp in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.8.1)\n", + "Requirement already satisfied: werkzeug>=0.11.15 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.3)\n", + "Requirement already satisfied: markdown>=2.6.8 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3.6)\n", + "Requirement already satisfied: setuptools>=41.0.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (59.5.0)\n", + "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.6)\n", + "Requirement already satisfied: google-auth<3,>=1.6.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.6.2)\n", + "Requirement already satisfied: wheel>=0.26 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.37.1)\n", + "Requirement already satisfied: grpcio>=1.24.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.44.0)\n", + "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.6.1)\n", + "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.8.1)\n", + "Requirement already satisfied: absl-py>=0.4 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (5.0.0)\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.2.8)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.8)\n", + "Requirement already satisfied: requests-oauthlib>=0.7.0 in /opt/conda/lib/python3.8/site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.1)\n", + "Requirement already satisfied: importlib-metadata>=4.4 in /opt/conda/lib/python3.8/site-packages (from markdown>=2.6.8->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.11.3)\n", + "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.8)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2021.10.8)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.26.8)\n", + "Requirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.8/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.2.0)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.5.1)\n", + "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.12.1)\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.0)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.2)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.0.2)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (6.0.2)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.2.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: s3transfer<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (0.5.2)\n", + "Requirement already satisfied: botocore<1.25.0,>=1.24.45 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.24.45)\n", + "Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: pybind11>=2.2 in /opt/conda/lib/python3.8/site-packages (from fasttext->nemo_toolkit[all]==1.5.1) (2.9.1)\n", + "Requirement already satisfied: distance>=0.1.3 in /opt/conda/lib/python3.8/site-packages (from g2p-en->nemo_toolkit[all]==1.5.1) (0.1.3)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from gdown->nemo_toolkit[all]==1.5.1) (4.10.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->gdown->nemo_toolkit[all]==1.5.1) (2.3.1)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (8.1.1)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (6.9.2)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (1.1.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.2.0)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (7.1.2)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (5.9.0)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (6.1)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.4)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.3)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.5)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)\n", + "Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.11.2)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.27)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.8.0)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.4)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (22.3.0)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (4.9.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.5)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.8.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.3)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.3)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.4)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.3.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.1.1)\n", + "Requirement already satisfied: resampy>=0.2.2 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (0.2.2)\n", + "Requirement already satisfied: pooch>=1.0 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (1.6.0)\n", + "Requirement already satisfied: audioread>=2.1.5 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (2.1.9)\n", + "Requirement already satisfied: llvmlite<0.37,>=0.36.0rc1 in /opt/conda/lib/python3.8/site-packages (from numba->nemo_toolkit[all]==1.5.1) (0.36.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from scikit-learn->nemo_toolkit[all]==1.5.1) (3.1.0)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.1)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.13)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.1.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.4)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.0)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.6.0)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.2)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.1)\n", + "Requirement already satisfied: pytz>=2017.3 in /opt/conda/lib/python3.8/site-packages (from pandas->nemo_toolkit[all]==1.5.1) (2021.3)\n", + "Requirement already satisfied: pip in /opt/conda/lib/python3.8/site-packages (from pip-api->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (21.2.4)\n", + "Requirement already satisfied: yarg in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.1.9)\n", + "Requirement already satisfied: docopt in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.6.2)\n", + "Requirement already satisfied: simplejson>=3.8.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (3.17.6)\n", + "Requirement already satisfied: sortedcontainers>=2.0.4 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (2.4.0)\n", + "Requirement already satisfied: tabulate>=0.7.7 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.8.9)\n", + "Requirement already satisfied: pyannote.database>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (4.1.3)\n", + "Requirement already satisfied: sympy>=1.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.10.1)\n", + "Requirement already satisfied: typer[all]>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.0)\n", + "Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.8/site-packages (from sympy>=1.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.2.1)\n", + "Requirement already satisfied: colorama<0.5.0,>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.4)\n", + "Requirement already satisfied: shellingham<2.0.0,>=1.3.0 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.4.0)\n", + "Requirement already satisfied: py>=1.8.2 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.11.0)\n", + "Requirement already satisfied: iniconfig in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.1.1)\n", + "Requirement already satisfied: pluggy<2.0,>=0.12 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: jarowinkler<1.1.0,>=1.0.2 in /opt/conda/lib/python3.8/site-packages (from rapidfuzz->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.1)\n", + "Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in /opt/conda/lib/python3.8/site-packages (from ruamel.yaml->nemo_toolkit[all]==1.5.1) (0.2.6)\n", + "Requirement already satisfied: portalocker in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (2.4.0)\n", + "Requirement already satisfied: ipadic<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: mecab-python3==1.0.3 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.3)\n", + "Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: alabaster<0.8,>=0.7 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.7.12)\n", + "Requirement already satisfied: babel>=1.3 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.9.1)\n", + "Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.1.5)\n", + "Requirement already satisfied: sphinxcontrib-devhelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: sphinxcontrib-jsmath in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.1)\n", + "Requirement already satisfied: sphinxcontrib-qthelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.3)\n", + "Requirement already satisfied: snowballstemmer>=1.1 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.2.0)\n", + "Requirement already satisfied: imagesize in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.3.0)\n", + "Requirement already satisfied: sphinxcontrib-applehelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: docutils<0.18,>=0.14 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.17.1)\n", + "Requirement already satisfied: pybtex-docutils>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (1.0.1)\n", + "Requirement already satisfied: pybtex>=0.24 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (0.24.0)\n", + "Requirement already satisfied: latexcodec>=1.0.4 in /opt/conda/lib/python3.8/site-packages (from pybtex>=0.24->sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (2.0.1)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.2)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.0.5)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)\n", + "Requirement already satisfied: pathtools in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.1.2)\n", + "Requirement already satisfied: setproctitle in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.2.3)\n", + "Requirement already satisfied: GitPython>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (3.1.27)\n", + "Requirement already satisfied: sentry-sdk>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.5.10)\n", + "Requirement already satisfied: shortuuid>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.0.8)\n", + "Requirement already satisfied: docker-pycreds>=0.4.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.4.0)\n", + "Requirement already satisfied: promise<3,>=2.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (2.3)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (4.0.9)\n", + "Requirement already satisfied: smmap<6,>=3.0.1 in /opt/conda/lib/python3.8/site-packages (from gitdb<5,>=4.0.1->GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (5.0.0)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "# Install dependencies\n", + "!pip install wget\n", + "!apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsndfile1 ffmpeg\n", + "!pip install Cython\n", + "\n", + "## Install NeMo\n", + "!pip install nemo_toolkit[all]==1.5.1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. Download Citrinet model\n", + "\n", + "Next, we download a pretrained Nemo Citrinet model and convert it to a Torchscript module:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import nemo\n", + "import torch\n", + "\n", + "import nemo.collections.asr as nemo_asr\n", + "from nemo.core import typecheck\n", + "typecheck.set_typecheck_enabled(False) " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading and saving stt_en_citrinet_256...\n", + "[NeMo I 2022-04-21 23:12:45 cloud:56] Found existing object /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.\n", + "[NeMo I 2022-04-21 23:12:45 cloud:62] Re-using file from: /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo\n", + "[NeMo I 2022-04-21 23:12:45 common:728] Instantiating model from pre-trained checkpoint\n", + "[NeMo I 2022-04-21 23:12:46 mixins:146] Tokenizer SentencePieceTokenizer initialized with 1024 tokens\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:47 modelPT:130] If you intend to do training or fine-tuning, please call the ModelPT.setup_training_data() method and provide a valid configuration file to setup the train data loader.\n", + " Train config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " trim_silence: true\n", + " max_duration: 16.7\n", + " shuffle: true\n", + " is_tarred: false\n", + " tarred_audio_filepaths: null\n", + " use_start_end_token: false\n", + " \n", + "[NeMo W 2022-04-21 23:12:47 modelPT:137] If you intend to do validation, please call the ModelPT.setup_validation_data() or ModelPT.setup_multiple_validation_data() method and provide a valid configuration file to setup the validation data loader(s). \n", + " Validation config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " shuffle: false\n", + " use_start_end_token: false\n", + " \n", + "[NeMo W 2022-04-21 23:12:47 modelPT:143] Please call the ModelPT.setup_test_data() or ModelPT.setup_multiple_test_data() method and provide a valid configuration file to setup the test data loader(s).\n", + " Test config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " shuffle: false\n", + " use_start_end_token: false\n", + " \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[NeMo I 2022-04-21 23:12:47 features:265] PADDING: 16\n", + "[NeMo I 2022-04-21 23:12:47 features:282] STFT using torch\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:47 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/nemo/collections/asr/parts/preprocessing/features.py:315: FutureWarning: Pass sr=16000, n_fft=512 as keyword args. From version 0.10 passing these as positional arguments will result in an error\n", + " librosa.filters.mel(sample_rate, self.n_fft, n_mels=nfilt, fmin=lowfreq, fmax=highfreq), dtype=torch.float\n", + " \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[NeMo I 2022-04-21 23:12:49 save_restore_connector:149] Model EncDecCTCModelBPE was successfully restored from /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules\n", + "[NeMo W 2022-04-21 23:12:49 conv_asr:73] Turned off 235 masked convolutions\n", + "[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules\n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/jit/_trace.py:916: UserWarning: `optimize` is deprecated and has no effect. Use `with torch.jit.optimized_execution() instead\n", + " warnings.warn(\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.\n", + " if hasattr(mod, name):\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.\n", + " item = getattr(mod, name)\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.\n", + " if hasattr(mod, name):\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.\n", + " item = getattr(mod, name)\n", + " \n" + ] + }, + { + "data": { + "text/plain": [ + "(['stt_en_citrinet_256.ts'],\n", + " ['nemo.collections.asr.models.ctc_bpe_models.EncDecCTCModelBPE exported to ONNX'])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "variant = 'stt_en_citrinet_256'\n", + "\n", + "print(f\"Downloading and saving {variant}...\")\n", + "asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name=variant)\n", + "asr_model.export(f\"{variant}.ts\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmark utility\n", + "\n", + "Let us define a helper benchmarking function, then benchmark the original Pytorch model." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 102.0, mean: 102.0\n", + " Median latency (s): 0.009802, mean: 0.009803, 99th_p: 0.009836, std_dev: 0.000014\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 429.1, mean: 429.1\n", + " Median latency (s): 0.018642, mean: 0.018643, 99th_p: 0.018670, std_dev: 0.000014\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 551.3, mean: 551.2\n", + " Median latency (s): 0.058047, mean: 0.058053, 99th_p: 0.058375, std_dev: 0.000106\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 594.1, mean: 594.1\n", + " Median latency (s): 0.215434, mean: 0.215446, 99th_p: 0.215806, std_dev: 0.000116\n", + "\n" + ] + } + ], + "source": [ + "from __future__ import print_function\n", + "from __future__ import absolute_import\n", + "from __future__ import division\n", + "\n", + "import argparse\n", + "import timeit\n", + "import numpy as np\n", + "import torch\n", + "import torch_tensorrt as trtorch\n", + "import torch.backends.cudnn as cudnn\n", + "\n", + "def benchmark(model, input_tensor, num_loops, model_name, batch_size):\n", + " def timeGraph(model, input_tensor, num_loops):\n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(20):\n", + " features = model(input_tensor)\n", + "\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(num_loops):\n", + " start_time = timeit.default_timer()\n", + " features = model(input_tensor)\n", + " torch.cuda.synchronize()\n", + " end_time = timeit.default_timer()\n", + " timings.append(end_time - start_time)\n", + " # print(\"Iteration {}: {:.6f} s\".format(i, end_time - start_time))\n", + " return timings\n", + " def printStats(graphName, timings, batch_size):\n", + " times = np.array(timings)\n", + " steps = len(times)\n", + " speeds = batch_size / times\n", + " time_mean = np.mean(times)\n", + " time_med = np.median(times)\n", + " time_99th = np.percentile(times, 99)\n", + " time_std = np.std(times, ddof=0)\n", + " speed_mean = np.mean(speeds)\n", + " speed_med = np.median(speeds)\n", + " msg = (\"\\n%s =================================\\n\"\n", + " \"batch size=%d, num iterations=%d\\n\"\n", + " \" Median samples/s: %.1f, mean: %.1f\\n\"\n", + " \" Median latency (s): %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\\n\"\n", + " ) % (graphName,\n", + " batch_size, steps,\n", + " speed_med, speed_mean,\n", + " time_med, time_mean, time_99th, time_std)\n", + " print(msg)\n", + " timings = timeGraph(model, input_tensor, num_loops)\n", + " printStats(model_name, timings, batch_size)\n", + "\n", + "precisions_str = 'fp32' # Precision (default=fp32, fp16)\n", + "variant = 'stt_en_citrinet_256' # Nemo Citrinet variant\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "trt = False # If True, infer with Torch-TensorRT engine. Else, infer with Pytorch model.\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Confirming the GPU we are using here:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Thu Apr 21 23:13:32 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA TITAN V On | 00000000:17:00.0 Off | N/A |\n", + "| 38% 55C P2 42W / 250W | 2462MiB / 12288MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + "| 1 NVIDIA TITAN V On | 00000000:65:00.0 Off | N/A |\n", + "| 28% 39C P8 26W / 250W | 112MiB / 12288MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| 0 N/A N/A 3909 G 4MiB |\n", + "| 0 N/A N/A 6047 C 2453MiB |\n", + "| 1 N/A N/A 3909 G 39MiB |\n", + "| 1 N/A N/A 4161 G 67MiB |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Create Torch-TensorRT modules\n", + "\n", + "In this step, we optimize the Citrinet Torchscript module with Torch-TensorRT with various precisions and batch sizes." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating Torchscript-TensorRT module for batchsize 1 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 8 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 32 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 128 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 1 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 8 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 32 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 128 precision torch.float16\n" + ] + } + ], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch_tensorrt as torchtrt\n", + "import argparse\n", + "\n", + "variant = \"stt_en_citrinet_256\"\n", + "precisions = [torch.float, torch.half]\n", + "batch_sizes = [1,8,32,128]\n", + "\n", + "model = torch.jit.load(f\"{variant}.ts\")\n", + "\n", + "for precision in precisions:\n", + " for batch_size in batch_sizes:\n", + " compile_settings = {\n", + " \"inputs\": [torchtrt.Input(shape=[batch_size, 80, 1488])],\n", + " \"enabled_precisions\": {precision},\n", + " \"workspace_size\": 2000000000,\n", + " \"truncate_long_and_double\": True,\n", + " }\n", + " print(f\"Generating Torchscript-TensorRT module for batchsize {batch_size} precision {precision}\")\n", + " trt_ts_module = torchtrt.compile(model, **compile_settings)\n", + " torch.jit.save(trt_ts_module, f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Benchmark Torch-TensorRT models\n", + "\n", + "Finally, we are ready to benchmark the Torch-TensorRT optimized Citrinet models." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 242.2, mean: 218.0\n", + " Median latency (s): 0.004128, mean: 0.004825, 99th_p: 0.008071, std_dev: 0.001270\n", + "\n", + "Loading model: stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 729.9, mean: 709.0\n", + " Median latency (s): 0.010961, mean: 0.011388, 99th_p: 0.016114, std_dev: 0.001256\n", + "\n", + "Loading model: stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 955.6, mean: 953.4\n", + " Median latency (s): 0.033488, mean: 0.033572, 99th_p: 0.035722, std_dev: 0.000545\n", + "\n", + "Loading model: stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 1065.8, mean: 1069.4\n", + " Median latency (s): 0.120097, mean: 0.119708, 99th_p: 0.121618, std_dev: 0.001260\n", + "\n" + ] + } + ], + "source": [ + "precisions_str = 'fp32' # Precision (default=fp32, fp16)\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "trt = True\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 288.9, mean: 272.9\n", + " Median latency (s): 0.003462, mean: 0.003774, 99th_p: 0.006846, std_dev: 0.000820\n", + "\n", + "Loading model: stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 1201.0, mean: 1190.9\n", + " Median latency (s): 0.006661, mean: 0.006733, 99th_p: 0.008453, std_dev: 0.000368\n", + "\n", + "Loading model: stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 1538.2, mean: 1516.4\n", + " Median latency (s): 0.020804, mean: 0.021143, 99th_p: 0.024492, std_dev: 0.000973\n", + "\n", + "Loading model: stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 1792.0, mean: 1777.0\n", + " Median latency (s): 0.071428, mean: 0.072057, 99th_p: 0.076796, std_dev: 0.001351\n", + "\n" + ] + } + ], + "source": [ + "precisions_str = 'fp16' # Precision (default=fp32, fp16)\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of optimizing the Citrinet model with Torch-TensorRT. On an A100 GPU, with Torch-TensorRT, we observe a speedup of ~**2.4X** with FP32, and ~**2.9X** with FP16 at batchsize of 128.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_notebooks/EfficientNet-example.html b/docs/v1.1.1/_notebooks/EfficientNet-example.html new file mode 100644 index 0000000000..fa4c6e6164 --- /dev/null +++ b/docs/v1.1.1/_notebooks/EfficientNet-example.html @@ -0,0 +1,1810 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Torch-TensorRT Getting Started - EfficientNet-B0 — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
[1]:
+
+
+
+
+
+
+# Copyright 2019 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+
+

+ 0ec51db838fc4f1e8ba7341f9752d33c +

+

+ Torch-TensorRT Getting Started - EfficientNet-B0 + + ¶ + +

+

+ Overview + + ¶ + +

+

+ In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the +best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch’s JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new +world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference. +

+

+ When deploying on NVIDIA GPUs TensorRT, NVIDIA’s Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA’s Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that +perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device. +

+

+ Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch. +

+

+ Learning objectives + + ¶ + +

+

+ This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained EfficientNet network, and running it to test the speedup obtained. +

+

+ Content + + ¶ + +

+
    +
  1. +

    + + Requirements + +

    +
  2. +
  3. +

    + + EfficientNet Overview + +

    +
  4. +
  5. +

    + + Running the model without optimizations + +

    +
  6. +
  7. +

    + + Accelerating with Torch-TensorRT + +

    +
  8. +
  9. +

    + + Conclusion + +

    +
  10. +
+
+
+
+
[1]:
+
+
+
+
+
+
+!pip install timm==0.4.12
+!nvidia-smi
+
+
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting timm==0.4.12
+  Downloading timm-0.4.12-py3-none-any.whl (376 kB)
+     |████████████████████████████████| 376 kB 11.9 MB/s eta 0:00:01
+Requirement already satisfied: torch>=1.4 in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (1.11.0a0+bfe5ad2)
+Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (0.12.0a0)
+Requirement already satisfied: typing_extensions in /opt/conda/lib/python3.8/site-packages (from torch>=1.4->timm==0.4.12) (4.0.1)
+Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (8.2.0)
+Requirement already satisfied: numpy in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (1.22.0)
+Installing collected packages: timm
+Successfully installed timm-0.4.12
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Fri Feb  4 21:29:36 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA GeForce ...  On   | 00000000:65:00.0 Off |                  N/A |
+| 30%   28C    P8    11W / 350W |      0MiB / 24576MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|  No running processes found                                                 |
++-----------------------------------------------------------------------------+
+
+
+
+
+

+ ## 1. Requirements +

+

+ NVIDIA’s NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of + + latest pytorch + + container to run this notebook. +

+

+ Otherwise, you can follow the steps in + + + notebooks/README + + + to prepare a Docker container yourself, within which you can run this demo notebook. +

+

+ ## 2. EfficientNet Overview +

+

+ PyTorch has a model repository called + + + timm + + + , which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet. +

+

+ Model Description + + ¶ + +

+

+ This model is based on the + + EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks + + paper. +

+

+ alt +

+

+ ## 3. Running the model without optimizations +

+

+ PyTorch has a model repository called + + + timm + + + , which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet. +

+
+
+
+
[4]:
+
+
+
+
+
+
+import torch
+import torch_tensorrt
+import timm
+import time
+import numpy as np
+import torch.backends.cudnn as cudnn
+from timm.data import resolve_data_config
+from timm.data.transforms_factory import create_transform
+import json
+
+efficientnet_b0_model = timm.create_model('efficientnet_b0',pretrained=True)
+model = efficientnet_b0_model.eval().to("cuda")
+
+
+
+
+

+ With our model loaded, let’s proceed to downloading some images! +

+
+
+
+
[5]:
+
+
+
+
+
+
+!mkdir -p ./data
+!wget  -O ./data/img0.JPG "https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630"
+!wget  -O ./data/img1.JPG "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg"
+!wget  -O ./data/img2.JPG "https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg"
+!wget  -O ./data/img3.JPG "https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg"
+
+!wget  -O ./data/imagenet_class_index.json "https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json"
+
+
+
+
+
+
+
+
+
+
+--2022-02-04 21:30:07--  https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630
+Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.127, 18.65.227.37, 18.65.227.99, ...
+Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.127|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 24112 (24K) [image/jpeg]
+Saving to: ‘./data/img0.JPG’
+
+./data/img0.JPG     100%[===================>]  23.55K  --.-KB/s    in 0.004s
+
+2022-02-04 21:30:07 (6.40 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]
+
+--2022-02-04 21:30:07--  https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg
+Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117
+Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 452718 (442K) [image/jpeg]
+Saving to: ‘./data/img1.JPG’
+
+./data/img1.JPG     100%[===================>] 442.11K  --.-KB/s    in 0.06s
+
+2022-02-04 21:30:07 (6.83 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]
+
+--2022-02-04 21:30:08--  https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg
+Resolving www.artis.nl (www.artis.nl)... 94.75.225.20
+Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 361413 (353K) [image/jpeg]
+Saving to: ‘./data/img2.JPG’
+
+./data/img2.JPG     100%[===================>] 352.94K   246KB/s    in 1.4s
+
+2022-02-04 21:30:10 (246 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]
+
+--2022-02-04 21:30:10--  https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg
+Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.202.107, 104.18.201.107, 2606:4700::6812:ca6b, ...
+Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.202.107|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 90994 (89K) [image/jpeg]
+Saving to: ‘./data/img3.JPG’
+
+./data/img3.JPG     100%[===================>]  88.86K  --.-KB/s    in 0.006s
+
+2022-02-04 21:30:10 (14.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]
+
+--2022-02-04 21:30:11--  https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json
+Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.133.45
+Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.133.45|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 35363 (35K) [application/octet-stream]
+Saving to: ‘./data/imagenet_class_index.json’
+
+./data/imagenet_cla 100%[===================>]  34.53K  --.-KB/s    in 0.07s
+
+2022-02-04 21:30:11 (474 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]
+
+
+
+
+
+

+ All pre-trained models expect input images normalized in the same way, i.e. mini-batches of 3-channel RGB images of shape + + + (3 + + + x + + + H + + + x + + + W) + + + , where + + + H + + + and + + + W + + + are expected to be at least + + + 224 + + + . The images have to be loaded in to a range of + + + [0, + + + 1] + + + and then normalized using + + + mean + + + = + + + [0.485, + + + 0.456, + + + 0.406] + + + and + + + std + + + = + + + [0.229, + + + 0.224, + + + 0.225] + + + . +

+

+ Here’s a sample execution. +

+
+
+
+
[6]:
+
+
+
+
+
+
+from PIL import Image
+from torchvision import transforms
+import matplotlib.pyplot as plt
+
+fig, axes = plt.subplots(nrows=2, ncols=2)
+
+for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    input_tensor = preprocess(img)
+    plt.subplot(2,2,i+1)
+    plt.imshow(img)
+    plt.axis('off')
+
+# loading labels
+with open("./data/imagenet_class_index.json") as json_file:
+    d = json.load(json_file)
+
+
+
+
+
+
+
+
+ ../_images/_notebooks_EfficientNet-example_12_0.png +
+
+

+ Throughout this tutorial, we will be making use of some utility functions; + + + efficientnet_preprocess + + + for preprocessing input images, + + + predict + + + to use the model for prediction and + + + benchmark + + + to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose. +

+
+
+
+
[7]:
+
+
+
+
+
+
+cudnn.benchmark = True
+
+def efficientnet_preprocess():
+    config = resolve_data_config({}, model=model)
+    transform = create_transform(**config)
+    return transform
+
+# decode the results into ([predicted class, description], probability)
+def predict(img_path, model):
+    img = Image.open(img_path)
+    preprocess = efficientnet_preprocess()
+    input_tensor = preprocess(img)
+    input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model
+
+    # move the input and model to GPU for speed if available
+    if torch.cuda.is_available():
+        input_batch = input_batch.to('cuda')
+        model.to('cuda')
+
+    with torch.no_grad():
+        output = model(input_batch)
+        # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes
+        sm_output = torch.nn.functional.softmax(output[0], dim=0)
+
+    ind = torch.argmax(sm_output)
+    return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)
+
+def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            features = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%10==0:
+                print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output features size:", features.size())
+    print('Average throughput: %.2f images/second'%(input_shape[0]/np.mean(timings)))
+
+
+
+
+

+ With the model downloaded and the util functions written, let’s just quickly see some predictions, and benchmark the model in its current un-optimized state. +

+
+
+
+
[8]:
+
+
+
+
+
+
+for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+
+    pred, prob = predict(img_path, efficientnet_b0_model)
+    print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))
+
+    plt.subplot(2,2,i+1)
+    plt.imshow(img);
+    plt.axis('off');
+    plt.title(pred[1])
+
+
+
+
+
+
+
+
+
+
+/opt/conda/lib/python3.8/site-packages/torchvision/transforms/transforms.py:321: UserWarning: Argument interpolation should be of type InterpolationMode instead of int. Please, use InterpolationMode enum.
+  warnings.warn(
+
+
+
+
+
+
+
+
+
+
+./data/img0.JPG - Predicted: ['n02109961', 'Eskimo_dog'], Probablility: 0.3987298309803009
+./data/img1.JPG - Predicted: ['n01537544', 'indigo_bunting'], Probablility: 0.23344755172729492
+./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9695423245429993
+./data/img3.JPG - Predicted: ['n01739381', 'vine_snake'], Probablility: 0.227739155292511
+
+
+
+
+
+
+
+
+ ../_images/_notebooks_EfficientNet-example_16_2.png +
+
+
+
+
+
[9]:
+
+
+
+
+
+
+# Model benchmark without Torch-TensorRT
+benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 37.62 ms
+Iteration 20/100, avg batch time 37.66 ms
+Iteration 30/100, avg batch time 37.65 ms
+Iteration 40/100, avg batch time 37.66 ms
+Iteration 50/100, avg batch time 37.70 ms
+Iteration 60/100, avg batch time 37.70 ms
+Iteration 70/100, avg batch time 37.70 ms
+Iteration 80/100, avg batch time 37.71 ms
+Iteration 90/100, avg batch time 37.72 ms
+Iteration 100/100, avg batch time 37.72 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average throughput: 3393.46 images/second
+
+
+
+
+

+ ## 4. Accelerating with Torch-TensorRT +

+

+ Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our + + documentation + + . +

+

+ FP32 (single precision) + + ¶ + +

+
+
+
+
[11]:
+
+
+
+
+
+
+# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP32 precision.
+trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],
+    enabled_precisions = torch.float32, # Run with FP32
+    workspace_size = 1 << 22
+)
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+
+
+
+
+
+
+
+
[12]:
+
+
+
+
+
+
+# Obtain the average time taken by a batch of input
+benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 27.86 ms
+Iteration 20/100, avg batch time 27.71 ms
+Iteration 30/100, avg batch time 27.99 ms
+Iteration 40/100, avg batch time 27.95 ms
+Iteration 50/100, avg batch time 27.89 ms
+Iteration 60/100, avg batch time 27.85 ms
+Iteration 70/100, avg batch time 28.00 ms
+Iteration 80/100, avg batch time 27.97 ms
+Iteration 90/100, avg batch time 27.95 ms
+Iteration 100/100, avg batch time 27.92 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average throughput: 4584.06 images/second
+
+
+
+
+

+ FP16 (half precision) + + ¶ + +

+
+
+
+
[17]:
+
+
+
+
+
+
+# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP16 precision.
+trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],
+    enabled_precisions = {torch.half}, # Run with FP32
+    workspace_size = 1 << 22
+)
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x.1
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.
+
+
+
+
+
+
+
+
[18]:
+
+
+
+
+
+
+# Obtain the average time taken by a batch of input
+benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 12.05 ms
+Iteration 20/100, avg batch time 12.56 ms
+Iteration 30/100, avg batch time 12.39 ms
+Iteration 40/100, avg batch time 12.34 ms
+Iteration 50/100, avg batch time 12.33 ms
+Iteration 60/100, avg batch time 12.32 ms
+Iteration 70/100, avg batch time 12.30 ms
+Iteration 80/100, avg batch time 12.28 ms
+Iteration 90/100, avg batch time 12.35 ms
+Iteration 100/100, avg batch time 12.35 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average throughput: 10362.23 images/second
+
+
+
+
+

+ ## 5. Conclusion +

+

+ In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of + + 1.35x + + with FP32, and + + 3.13x + + with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute +cards for maximum acceleration. +

+

+ What’s next + + ¶ + +

+

+ Now it’s time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at + + https://github.com/NVIDIA/Torch-TensorRT + + . Your involvement will help future development of Torch-TensorRT. +

+
+
+
+
[ ]:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_notebooks/EfficientNet-example.ipynb b/docs/v1.1.1/_notebooks/EfficientNet-example.ipynb new file mode 100644 index 0000000000..31a3dad874 --- /dev/null +++ b/docs/v1.1.1/_notebooks/EfficientNet-example.ipynb @@ -0,0 +1,693 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - EfficientNet-B0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained EfficientNet network, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [EfficientNet Overview](#2)\n", + "1. [Running the model without optimizations](#3)\n", + "1. [Accelerating with Torch-TensorRT](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting timm==0.4.12\n", + " Downloading timm-0.4.12-py3-none-any.whl (376 kB)\n", + "\u001b[K |████████████████████████████████| 376 kB 11.9 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: torch>=1.4 in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (1.11.0a0+bfe5ad2)\n", + "Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (0.12.0a0)\n", + "Requirement already satisfied: typing_extensions in /opt/conda/lib/python3.8/site-packages (from torch>=1.4->timm==0.4.12) (4.0.1)\n", + "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (8.2.0)\n", + "Requirement already satisfied: numpy in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (1.22.0)\n", + "Installing collected packages: timm\n", + "Successfully installed timm-0.4.12\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Fri Feb 4 21:29:36 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:65:00.0 Off | N/A |\n", + "| 30% 28C P8 11W / 350W | 0MiB / 24576MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!pip install timm==0.4.12\n", + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. EfficientNet Overview\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet.\n", + "\n", + "### Model Description\n", + "\n", + "This model is based on the [EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks](https://arxiv.org/abs/1905.11946) paper.\n", + "\n", + "\"alt\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Running the model without optimizations\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "import torch\n", + "import torch_tensorrt\n", + "import timm\n", + "import time\n", + "import numpy as np\n", + "import torch.backends.cudnn as cudnn\n", + "from timm.data import resolve_data_config\n", + "from timm.data.transforms_factory import create_transform\n", + "import json \n", + "\n", + "efficientnet_b0_model = timm.create_model('efficientnet_b0',pretrained=True)\n", + "model = efficientnet_b0_model.eval().to(\"cuda\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our model loaded, let's proceed to downloading some images!" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-02-04 21:30:07-- https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\n", + "Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.127, 18.65.227.37, 18.65.227.99, ...\n", + "Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.127|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 24112 (24K) [image/jpeg]\n", + "Saving to: ‘./data/img0.JPG’\n", + "\n", + "./data/img0.JPG 100%[===================>] 23.55K --.-KB/s in 0.004s \n", + "\n", + "2022-02-04 21:30:07 (6.40 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-02-04 21:30:07-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K --.-KB/s in 0.06s \n", + "\n", + "2022-02-04 21:30:07 (6.83 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-02-04 21:30:08-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 246KB/s in 1.4s \n", + "\n", + "2022-02-04 21:30:10 (246 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-02-04 21:30:10-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.202.107, 104.18.201.107, 2606:4700::6812:ca6b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.202.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 90994 (89K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 88.86K --.-KB/s in 0.006s \n", + "\n", + "2022-02-04 21:30:10 (14.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]\n", + "\n", + "--2022-02-04 21:30:11-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.133.45\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.133.45|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-02-04 21:30:11 (474 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All pre-trained models expect input images normalized in the same way,\n", + "i.e. mini-batches of 3-channel RGB images of shape `(3 x H x W)`, where `H` and `W` are expected to be at least `224`.\n", + "The images have to be loaded in to a range of `[0, 1]` and then normalized using `mean = [0.485, 0.456, 0.406]`\n", + "and `std = [0.229, 0.224, 0.225]`.\n", + "\n", + "Here's a sample execution." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels\n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Throughout this tutorial, we will be making use of some utility functions; `efficientnet_preprocess` for preprocessing input images, `predict` to use the model for prediction and `benchmark` to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "cudnn.benchmark = True\n", + "\n", + "def efficientnet_preprocess():\n", + " config = resolve_data_config({}, model=model)\n", + " transform = create_transform(**config)\n", + " return transform\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = efficientnet_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average throughput: %.2f images/second'%(input_shape[0]/np.mean(timings)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the model downloaded and the util functions written, let's just quickly see some predictions, and benchmark the model in its current un-optimized state." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.8/site-packages/torchvision/transforms/transforms.py:321: UserWarning: Argument interpolation should be of type InterpolationMode instead of int. Please, use InterpolationMode enum.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02109961', 'Eskimo_dog'], Probablility: 0.3987298309803009\n", + "./data/img1.JPG - Predicted: ['n01537544', 'indigo_bunting'], Probablility: 0.23344755172729492\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9695423245429993\n", + "./data/img3.JPG - Predicted: ['n01739381', 'vine_snake'], Probablility: 0.227739155292511\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, efficientnet_b0_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 37.62 ms\n", + "Iteration 20/100, avg batch time 37.66 ms\n", + "Iteration 30/100, avg batch time 37.65 ms\n", + "Iteration 40/100, avg batch time 37.66 ms\n", + "Iteration 50/100, avg batch time 37.70 ms\n", + "Iteration 60/100, avg batch time 37.70 ms\n", + "Iteration 70/100, avg batch time 37.70 ms\n", + "Iteration 80/100, avg batch time 37.71 ms\n", + "Iteration 90/100, avg batch time 37.72 ms\n", + "Iteration 100/100, avg batch time 37.72 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 3393.46 images/second\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Accelerating with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our [documentation](https://nvidia.github.io/Torch-TensorRT/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 27.86 ms\n", + "Iteration 20/100, avg batch time 27.71 ms\n", + "Iteration 30/100, avg batch time 27.99 ms\n", + "Iteration 40/100, avg batch time 27.95 ms\n", + "Iteration 50/100, avg batch time 27.89 ms\n", + "Iteration 60/100, avg batch time 27.85 ms\n", + "Iteration 70/100, avg batch time 28.00 ms\n", + "Iteration 80/100, avg batch time 27.97 ms\n", + "Iteration 90/100, avg batch time 27.95 ms\n", + "Iteration 100/100, avg batch time 27.92 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 4584.06 images/second\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],\n", + " enabled_precisions = {torch.half}, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 12.05 ms\n", + "Iteration 20/100, avg batch time 12.56 ms\n", + "Iteration 30/100, avg batch time 12.39 ms\n", + "Iteration 40/100, avg batch time 12.34 ms\n", + "Iteration 50/100, avg batch time 12.33 ms\n", + "Iteration 60/100, avg batch time 12.32 ms\n", + "Iteration 70/100, avg batch time 12.30 ms\n", + "Iteration 80/100, avg batch time 12.28 ms\n", + "Iteration 90/100, avg batch time 12.35 ms\n", + "Iteration 100/100, avg batch time 12.35 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 10362.23 images/second\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of **1.35x** with FP32, and **3.13x** with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_notebooks/Hugging-Face-BERT.html b/docs/v1.1.1/_notebooks/Hugging-Face-BERT.html new file mode 100644 index 0000000000..944e888524 --- /dev/null +++ b/docs/v1.1.1/_notebooks/Hugging-Face-BERT.html @@ -0,0 +1,1746 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Masked Language Modeling (MLM) with Hugging Face BERT Transformer — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
[1]:
+
+
+
+
+
+
+# Copyright 2022 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+
+

+ 5a241c67493b41feb5c5af93f7b9d7c4 +

+

+ Masked Language Modeling (MLM) with Hugging Face BERT Transformer + + ¶ + +

+

+ Learning objectives + + ¶ + +

+

+ This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained BERT transformer from Hugging Face, and running it to test the speedup obtained. +

+

+ Contents + + ¶ + +

+
    +
  1. +

    + + Requirements + +

    +
  2. +
  3. +

    + + BERT Overview + +

    +
  4. +
  5. +

    + + Creating TorchScript modules + +

    +
  6. +
  7. +

    + + Compiling with Torch-TensorRT + +

    +
  8. +
  9. +

    + + Benchmarking + +

    +
  10. +
  11. +

    + + Conclusion + +

    +
  12. +
+

+ ## 1. Requirements +

+

+ NVIDIA’s NGC provides a PyTorch Docker Container which contains PyTorch and Torch-TensorRT. Starting with version + + + 22.05-py3 + + + , we can make use of + + latest pytorch + + container to run this notebook. +

+

+ Otherwise, you can follow the steps in + + + notebooks/README + + + to prepare a Docker container yourself, within which you can run this demo notebook. +

+
+
+
+
[2]:
+
+
+
+
+
+
+!pip install transformers
+
+
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: transformers in /opt/conda/lib/python3.8/site-packages (4.18.0)
+Requirement already satisfied: tqdm>=4.27 in /opt/conda/lib/python3.8/site-packages (from transformers) (4.63.0)
+Requirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (2022.3.15)
+Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.5.1)
+Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.12.1)
+Requirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (1.22.3)
+Requirement already satisfied: sacremoses in /opt/conda/lib/python3.8/site-packages (from transformers) (0.0.49)
+Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from transformers) (2.27.1)
+Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (6.0)
+Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers) (3.6.0)
+Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (21.3)
+Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.8/site-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (4.1.1)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->transformers) (3.0.7)
+Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (1.26.8)
+Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2.0.12)
+Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2021.10.8)
+Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (3.3)
+Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.16.0)
+Requirement already satisfied: click in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (8.0.4)
+Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.1.0)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+
+
+
+
+
+
[3]:
+
+
+
+
+
+
+from transformers import BertTokenizer, BertForMaskedLM
+import torch
+import timeit
+import numpy as np
+import torch_tensorrt
+import torch.backends.cudnn as cudnn
+
+
+
+
+

+ ## 2. BERT Overview +

+

+ Transformers comprise a class of deep learning algorithms employing self-attention; broadly speaking, the models learn large matrices of numbers, each element of which denotes how important one component of input data is to another. Since their introduction in 2017, transformers have enjoyed widespread adoption, particularly in natural language processing, but also in computer vision problems. This is largely because they are easier to parallelize than the sequence models which attention +mechanisms were originally designed to augment. +

+

+ Hugging Face is a company that maintains a huge respository of pre-trained transformer models. The company also provides tools for integrating those models into PyTorch code and running inference with them. +

+

+ One of the most popular transformer models is BERT (Bidirectional Encoder Representations from Transformers). First developed at Google and released in 2018, it has become the backbone of Google’s search engine and a standard benchmark for NLP experiments. BERT was originally trained for next sentence prediction and masked language modeling (MLM), which aims to predict hidden words in sentences. In this notebook, we will use Hugging Face’s + + + bert-base-uncased + + + model (BERT’s smallest and +simplest form, which does not employ text capitalization) for MLM. +

+

+ ## 3. Creating TorchScript modules +

+

+ First, create a pretrained BERT tokenizer from the + + + bert-base-uncased + + + model +

+
+
+
+
[4]:
+
+
+
+
+
+
+enc = BertTokenizer.from_pretrained('bert-base-uncased')
+
+
+
+
+

+ Create dummy inputs to generate a traced TorchScript model later +

+
+
+
+
[5]:
+
+
+
+
+
+
+batch_size = 4
+
+batched_indexed_tokens = [[101, 64]*64]*batch_size
+batched_segment_ids = [[0, 1]*64]*batch_size
+batched_attention_masks = [[1, 1]*64]*batch_size
+
+tokens_tensor = torch.tensor(batched_indexed_tokens)
+segments_tensor = torch.tensor(batched_segment_ids)
+attention_masks_tensor = torch.tensor(batched_attention_masks)
+
+
+
+
+

+ Obtain a BERT masked language model from Hugging Face in the (scripted) TorchScript, then use the dummy inputs to trace it +

+
+
+
+
[6]:
+
+
+
+
+
+
+mlm_model_ts = BertForMaskedLM.from_pretrained('bert-base-uncased', torchscript=True)
+traced_mlm_model = torch.jit.trace(mlm_model_ts, [tokens_tensor, segments_tensor, attention_masks_tensor])
+
+
+
+
+
+
+
+
+
+
+Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertForMaskedLM: ['cls.seq_relationship.bias', 'cls.seq_relationship.weight']
+- This IS expected if you are initializing BertForMaskedLM from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).
+- This IS NOT expected if you are initializing BertForMaskedLM from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).
+
+
+
+
+

+ Define 4 masked sentences, with 1 word in each sentence hidden from the model. Fluent English speakers will probably be able to guess the masked words, but just in case, they are + + + 'capital' + + + , + + + 'language' + + + , + + + 'innings' + + + , and + + + 'mathematics' + + + . +

+

+ Also create a list containing the position of the masked word within each sentence. Given Python’s 0-based indexing convention, the numbers are each higher by 1 than might be expected. This is because the token at index 0 in each sentence is a beginning-of-sentence token, denoted + + + [CLS] + + + when entered explicitly. +

+
+
+
+
[7]:
+
+
+
+
+
+
+masked_sentences = ['Paris is the [MASK] of France.',
+                    'The primary [MASK] of the United States is English.',
+                    'A baseball game consists of at least nine [MASK].',
+                    'Topology is a branch of [MASK] concerned with the properties of geometric objects that remain unchanged under continuous transformations.']
+pos_masks = [4, 3, 9, 6]
+
+
+
+
+

+ Pass the masked sentences into the (scripted) TorchScript MLM model and verify that the unmasked sentences yield the expected results. +

+

+ Because the sentences are of different lengths, we must specify the + + + padding + + + argument in calling our encoder/tokenizer. There are several possible padding strategies, but we’ll use + + + 'max_length' + + + padding with + + + max_length=128 + + + . Later, when we compile an optimized version of the model with Torch-TensorRT, the optimized model will expect inputs of length 128, hence our choice of padding strategy and length here. +

+
+
+
+
[8]:
+
+
+
+
+
+
+encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)
+outputs = mlm_model_ts(**encoded_inputs)
+most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]
+unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')
+unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]
+for sentence in unmasked_sentences:
+    print(sentence)
+
+
+
+
+
+
+
+
+
+
+Paris is the capital of France.
+The primary language of the United States is English.
+A baseball game consists of at least nine innings.
+Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.
+
+
+
+
+

+ Pass the masked sentences into the traced MLM model and verify that the unmasked sentences yield the expected results. +

+

+ Note the difference in how the + + + encoded_inputs + + + are passed into the model in the following cell compared to the previous one. If you examine + + + encoded_inputs + + + , you’ll find that it’s a dictionary with 3 keys, + + + 'input_ids' + + + , + + + 'token_type_ids' + + + , and + + + 'attention_mask' + + + , each with a PyTorch tensor as an associated value. The traced model will accept + + + **encoded_inputs + + + as an input, but the Torch-TensorRT-optimized model (to be defined later) will not. +

+
+
+
+
[9]:
+
+
+
+
+
+
+encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)
+outputs = traced_mlm_model(encoded_inputs['input_ids'], encoded_inputs['token_type_ids'], encoded_inputs['attention_mask'])
+most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]
+unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')
+unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]
+for sentence in unmasked_sentences:
+    print(sentence)
+
+
+
+
+
+
+
+
+
+
+Paris is the capital of France.
+The primary language of the United States is English.
+A baseball game consists of at least nine innings.
+Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.
+
+
+
+
+

+ ## 4. Compiling with Torch-TensorRT +

+

+ Change the logging level to avoid long printouts +

+
+
+
+
[10]:
+
+
+
+
+
+
+new_level = torch_tensorrt.logging.Level.Error
+torch_tensorrt.logging.set_reportable_log_level(new_level)
+
+
+
+
+

+ Compile the model +

+
+
+
+
[11]:
+
+
+
+
+
+
+trt_model = torch_tensorrt.compile(traced_mlm_model,
+    inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32),  # input_ids
+             torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32),  # token_type_ids
+             torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask
+    enabled_precisions= {torch.float32}, # Run with 32-bit precision
+    workspace_size=2000000000,
+    truncate_long_and_double=True
+)
+
+
+
+
+

+ Pass the masked sentences into the compiled model and verify that the unmasked sentences yield the expected results. +

+
+
+
+
[12]:
+
+
+
+
+
+
+enc_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)
+enc_inputs = {k: v.type(torch.int32).cuda() for k, v in enc_inputs.items()}
+output_trt = trt_model(enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+most_likely_token_ids_trt = [torch.argmax(output_trt[i, pos, :]) for i, pos in enumerate(pos_masks)]
+unmasked_tokens_trt = enc.decode(most_likely_token_ids_trt).split(' ')
+unmasked_sentences_trt = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens_trt)]
+for sentence in unmasked_sentences_trt:
+    print(sentence)
+
+
+
+
+
+
+
+
+
+
+Paris is the capital of France.
+The primary language of the United States is English.
+A baseball game consists of at least nine innings.
+Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.
+
+
+
+
+

+ Compile the model again, this time with 16-bit precision +

+
+
+
+
[13]:
+
+
+
+
+
+
+trt_model_fp16 = torch_tensorrt.compile(traced_mlm_model,
+    inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32),  # input_ids
+             torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32),  # token_type_ids
+             torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask
+    enabled_precisions= {torch.half}, # Run with 16-bit precision
+    workspace_size=2000000000,
+    truncate_long_and_double=True
+)
+
+
+
+
+

+ ## 5. Benchmarking +

+

+ In developing this notebook, we conducted our benchmarking on a single NVIDIA A100 GPU. Your results may differ from those shown, particularly on a different GPU. +

+

+ This function passes the inputs into the model and runs inference + + + num_loops + + + times, then returns a list of length containing the amount of time in seconds that each instance of inference took. +

+
+
+
+
[14]:
+
+
+
+
+
+
+def timeGraph(model, input_tensor1, input_tensor2, input_tensor3, num_loops=50):
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(20):
+            features = model(input_tensor1, input_tensor2, input_tensor3)
+
+    torch.cuda.synchronize()
+
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(num_loops):
+            start_time = timeit.default_timer()
+            features = model(input_tensor1, input_tensor2, input_tensor3)
+            torch.cuda.synchronize()
+            end_time = timeit.default_timer()
+            timings.append(end_time - start_time)
+            # print("Iteration {}: {:.6f} s".format(i, end_time - start_time))
+
+    return timings
+
+
+
+
+

+ This function prints the number of input batches the model is able to process each second and summary statistics of the model’s latency. +

+
+
+
+
[15]:
+
+
+
+
+
+
+def printStats(graphName, timings, batch_size):
+    times = np.array(timings)
+    steps = len(times)
+    speeds = batch_size / times
+    time_mean = np.mean(times)
+    time_med = np.median(times)
+    time_99th = np.percentile(times, 99)
+    time_std = np.std(times, ddof=0)
+    speed_mean = np.mean(speeds)
+    speed_med = np.median(speeds)
+
+    msg = ("\n%s =================================\n"
+            "batch size=%d, num iterations=%d\n"
+            "  Median text batches/second: %.1f, mean: %.1f\n"
+            "  Median latency: %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\n"
+            ) % (graphName,
+                batch_size, steps,
+                speed_med, speed_mean,
+                time_med, time_mean, time_99th, time_std)
+    print(msg)
+
+
+
+
+
+
+
+
[16]:
+
+
+
+
+
+
+cudnn.benchmark = True
+
+
+
+
+

+ Benchmark the (scripted) TorchScript model on GPU +

+
+
+
+
[17]:
+
+
+
+
+
+
+timings = timeGraph(mlm_model_ts.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+
+printStats("BERT", timings, batch_size)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+
+BERT =================================
+batch size=4, num iterations=50
+  Median text batches/second: 599.1, mean: 597.6
+  Median latency: 0.006677, mean: 0.006693, 99th_p: 0.006943, std_dev: 0.000059
+
+
+
+
+
+

+ Benchmark the traced model on GPU +

+
+
+
+
[18]:
+
+
+
+
+
+
+timings = timeGraph(traced_mlm_model.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+
+printStats("BERT", timings, batch_size)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+
+BERT =================================
+batch size=4, num iterations=50
+  Median text batches/second: 951.2, mean: 951.0
+  Median latency: 0.004205, mean: 0.004206, 99th_p: 0.004256, std_dev: 0.000015
+
+
+
+
+
+

+ Benchmark the compiled FP32 model on GPU +

+
+
+
+
[19]:
+
+
+
+
+
+
+timings = timeGraph(trt_model, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+
+printStats("BERT", timings, batch_size)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+
+BERT =================================
+batch size=4, num iterations=50
+  Median text batches/second: 1216.9, mean: 1216.4
+  Median latency: 0.003287, mean: 0.003289, 99th_p: 0.003317, std_dev: 0.000007
+
+
+
+
+
+

+ Benchmark the compiled FP16 model on GPU +

+
+
+
+
[20]:
+
+
+
+
+
+
+timings = timeGraph(trt_model_fp16, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+
+printStats("BERT", timings, batch_size)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+
+BERT =================================
+batch size=4, num iterations=50
+  Median text batches/second: 1776.7, mean: 1771.1
+  Median latency: 0.002251, mean: 0.002259, 99th_p: 0.002305, std_dev: 0.000015
+
+
+
+
+
+

+ ## 6. Conclusion +

+

+ In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for Masked Language Modeling with Hugging Face’s + + + bert-base-uncased + + + transformer and testing the performance impact of the optimization. With Torch-TensorRT on an NVIDIA A100 GPU, we observe the speedups indicated below. These acceleration numbers will vary from GPU to GPU (as well as implementation to implementation based on the ops used) and we encorage you to try out latest +generation of Data center compute cards for maximum acceleration. +

+

+ Scripted (GPU): 1.0x Traced (GPU): 1.62x Torch-TensorRT (FP32): 2.14x Torch-TensorRT (FP16): 3.15x +

+

+ What’s next + + ¶ + +

+

+ Now it’s time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at + + https://github.com/NVIDIA/Torch-TensorRT + + . Your involvement will help future development of Torch-TensorRT. +

+
+
+
+
[ ]:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_notebooks/Hugging-Face-BERT.ipynb b/docs/v1.1.1/_notebooks/Hugging-Face-BERT.ipynb new file mode 100644 index 0000000000..9b027b473e --- /dev/null +++ b/docs/v1.1.1/_notebooks/Hugging-Face-BERT.ipynb @@ -0,0 +1,714 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "9369b63c", + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2022 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "id": "d0a97ac5", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Masked Language Modeling (MLM) with Hugging Face BERT Transformer" + ] + }, + { + "cell_type": "markdown", + "id": "83f47edb", + "metadata": {}, + "source": [ + "## Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained BERT transformer from Hugging Face, and running it to test the speedup obtained.\n", + "\n", + "## Contents\n", + "1. [Requirements](#1)\n", + "2. [BERT Overview](#2)\n", + "3. [Creating TorchScript modules](#3)\n", + "4. [Compiling with Torch-TensorRT](#4)\n", + "5. [Benchmarking](#5)\n", + "6. [Conclusion](#6)" + ] + }, + { + "cell_type": "markdown", + "id": "596fa151", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides a PyTorch Docker Container which contains PyTorch and Torch-TensorRT. Starting with version `22.05-py3`, we can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "58e687d1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: transformers in /opt/conda/lib/python3.8/site-packages (4.18.0)\n", + "Requirement already satisfied: tqdm>=4.27 in /opt/conda/lib/python3.8/site-packages (from transformers) (4.63.0)\n", + "Requirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (2022.3.15)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.5.1)\n", + "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.12.1)\n", + "Requirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (1.22.3)\n", + "Requirement already satisfied: sacremoses in /opt/conda/lib/python3.8/site-packages (from transformers) (0.0.49)\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from transformers) (2.27.1)\n", + "Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (6.0)\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers) (3.6.0)\n", + "Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (21.3)\n", + "Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.8/site-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (4.1.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->transformers) (3.0.7)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (1.26.8)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2021.10.8)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (3.3)\n", + "Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.16.0)\n", + "Requirement already satisfied: click in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (8.0.4)\n", + "Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.1.0)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install transformers" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1104c4f1", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import BertTokenizer, BertForMaskedLM\n", + "import torch\n", + "import timeit\n", + "import numpy as np\n", + "import torch_tensorrt\n", + "import torch.backends.cudnn as cudnn" + ] + }, + { + "cell_type": "markdown", + "id": "acf67a5e", + "metadata": {}, + "source": [ + "\n", + "## 2. BERT Overview\n", + "\n", + "Transformers comprise a class of deep learning algorithms employing self-attention; broadly speaking, the models learn large matrices of numbers, each element of which denotes how important one component of input data is to another. Since their introduction in 2017, transformers have enjoyed widespread adoption, particularly in natural language processing, but also in computer vision problems. This is largely because they are easier to parallelize than the sequence models which attention mechanisms were originally designed to augment. \n", + "\n", + "Hugging Face is a company that maintains a huge respository of pre-trained transformer models. The company also provides tools for integrating those models into PyTorch code and running inference with them. \n", + "\n", + "One of the most popular transformer models is BERT (Bidirectional Encoder Representations from Transformers). First developed at Google and released in 2018, it has become the backbone of Google's search engine and a standard benchmark for NLP experiments. BERT was originally trained for next sentence prediction and masked language modeling (MLM), which aims to predict hidden words in sentences. In this notebook, we will use Hugging Face's `bert-base-uncased` model (BERT's smallest and simplest form, which does not employ text capitalization) for MLM." + ] + }, + { + "cell_type": "markdown", + "id": "19e711c0", + "metadata": {}, + "source": [ + "\n", + "## 3. Creating TorchScript modules " + ] + }, + { + "cell_type": "markdown", + "id": "81d4c6f6", + "metadata": {}, + "source": [ + "First, create a pretrained BERT tokenizer from the `bert-base-uncased` model" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c7c8721e", + "metadata": {}, + "outputs": [], + "source": [ + "enc = BertTokenizer.from_pretrained('bert-base-uncased')" + ] + }, + { + "cell_type": "markdown", + "id": "b7c1c679", + "metadata": {}, + "source": [ + "Create dummy inputs to generate a traced TorchScript model later" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c3827087", + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 4\n", + "\n", + "batched_indexed_tokens = [[101, 64]*64]*batch_size\n", + "batched_segment_ids = [[0, 1]*64]*batch_size\n", + "batched_attention_masks = [[1, 1]*64]*batch_size\n", + "\n", + "tokens_tensor = torch.tensor(batched_indexed_tokens)\n", + "segments_tensor = torch.tensor(batched_segment_ids)\n", + "attention_masks_tensor = torch.tensor(batched_attention_masks)" + ] + }, + { + "cell_type": "markdown", + "id": "7e31b27f", + "metadata": {}, + "source": [ + "Obtain a BERT masked language model from Hugging Face in the (scripted) TorchScript, then use the dummy inputs to trace it" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a3cd5a35", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertForMaskedLM: ['cls.seq_relationship.bias', 'cls.seq_relationship.weight']\n", + "- This IS expected if you are initializing BertForMaskedLM from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n", + "- This IS NOT expected if you are initializing BertForMaskedLM from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n" + ] + } + ], + "source": [ + "mlm_model_ts = BertForMaskedLM.from_pretrained('bert-base-uncased', torchscript=True)\n", + "traced_mlm_model = torch.jit.trace(mlm_model_ts, [tokens_tensor, segments_tensor, attention_masks_tensor])" + ] + }, + { + "cell_type": "markdown", + "id": "d8d2217a", + "metadata": {}, + "source": [ + "Define 4 masked sentences, with 1 word in each sentence hidden from the model. Fluent English speakers will probably be able to guess the masked words, but just in case, they are `'capital'`, `'language'`, `'innings'`, and `'mathematics'`.\n", + "\n", + "Also create a list containing the position of the masked word within each sentence. Given Python's 0-based indexing convention, the numbers are each higher by 1 than might be expected. This is because the token at index 0 in each sentence is a beginning-of-sentence token, denoted `[CLS]` when entered explicitly. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4d1af982", + "metadata": {}, + "outputs": [], + "source": [ + "masked_sentences = ['Paris is the [MASK] of France.', \n", + " 'The primary [MASK] of the United States is English.', \n", + " 'A baseball game consists of at least nine [MASK].', \n", + " 'Topology is a branch of [MASK] concerned with the properties of geometric objects that remain unchanged under continuous transformations.']\n", + "pos_masks = [4, 3, 9, 6]" + ] + }, + { + "cell_type": "markdown", + "id": "4d89b4c8", + "metadata": {}, + "source": [ + "Pass the masked sentences into the (scripted) TorchScript MLM model and verify that the unmasked sentences yield the expected results. \n", + "\n", + "Because the sentences are of different lengths, we must specify the `padding` argument in calling our encoder/tokenizer. There are several possible padding strategies, but we'll use `'max_length'` padding with `max_length=128`. Later, when we compile an optimized version of the model with Torch-TensorRT, the optimized model will expect inputs of length 128, hence our choice of padding strategy and length here. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d2d7546b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "outputs = mlm_model_ts(**encoded_inputs)\n", + "most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]\n", + "unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')\n", + "unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]\n", + "for sentence in unmasked_sentences:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "b0b423ff", + "metadata": {}, + "source": [ + "Pass the masked sentences into the traced MLM model and verify that the unmasked sentences yield the expected results. \n", + "\n", + "Note the difference in how the `encoded_inputs` are passed into the model in the following cell compared to the previous one. If you examine `encoded_inputs`, you'll find that it's a dictionary with 3 keys, `'input_ids'`, `'token_type_ids'`, and `'attention_mask'`, each with a PyTorch tensor as an associated value. The traced model will accept `**encoded_inputs` as an input, but the Torch-TensorRT-optimized model (to be defined later) will not. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "683a4a73", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "outputs = traced_mlm_model(encoded_inputs['input_ids'], encoded_inputs['token_type_ids'], encoded_inputs['attention_mask'])\n", + "most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]\n", + "unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')\n", + "unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]\n", + "for sentence in unmasked_sentences:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "7a31b545", + "metadata": {}, + "source": [ + "\n", + "## 4. Compiling with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "id": "413d8b4f", + "metadata": {}, + "source": [ + "Change the logging level to avoid long printouts" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "42862893", + "metadata": {}, + "outputs": [], + "source": [ + "new_level = torch_tensorrt.logging.Level.Error\n", + "torch_tensorrt.logging.set_reportable_log_level(new_level)" + ] + }, + { + "cell_type": "markdown", + "id": "121d6d59", + "metadata": {}, + "source": [ + "Compile the model" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "eab90150", + "metadata": {}, + "outputs": [], + "source": [ + "trt_model = torch_tensorrt.compile(traced_mlm_model, \n", + " inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # input_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # token_type_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask\n", + " enabled_precisions= {torch.float32}, # Run with 32-bit precision\n", + " workspace_size=2000000000,\n", + " truncate_long_and_double=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a96751ce", + "metadata": {}, + "source": [ + "Pass the masked sentences into the compiled model and verify that the unmasked sentences yield the expected results." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "097ea381", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "enc_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "enc_inputs = {k: v.type(torch.int32).cuda() for k, v in enc_inputs.items()}\n", + "output_trt = trt_model(enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "most_likely_token_ids_trt = [torch.argmax(output_trt[i, pos, :]) for i, pos in enumerate(pos_masks)] \n", + "unmasked_tokens_trt = enc.decode(most_likely_token_ids_trt).split(' ')\n", + "unmasked_sentences_trt = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens_trt)]\n", + "for sentence in unmasked_sentences_trt:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "a398271d", + "metadata": {}, + "source": [ + "Compile the model again, this time with 16-bit precision" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "a063dee2", + "metadata": {}, + "outputs": [], + "source": [ + "trt_model_fp16 = torch_tensorrt.compile(traced_mlm_model, \n", + " inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # input_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # token_type_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask\n", + " enabled_precisions= {torch.half}, # Run with 16-bit precision\n", + " workspace_size=2000000000,\n", + " truncate_long_and_double=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a926334a", + "metadata": {}, + "source": [ + "\n", + "## 5. Benchmarking\n", + "\n", + "In developing this notebook, we conducted our benchmarking on a single NVIDIA A100 GPU. Your results may differ from those shown, particularly on a different GPU." + ] + }, + { + "cell_type": "markdown", + "id": "976c6fb9", + "metadata": {}, + "source": [ + "This function passes the inputs into the model and runs inference `num_loops` times, then returns a list of length containing the amount of time in seconds that each instance of inference took." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b72a091e", + "metadata": {}, + "outputs": [], + "source": [ + "def timeGraph(model, input_tensor1, input_tensor2, input_tensor3, num_loops=50):\n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(20):\n", + " features = model(input_tensor1, input_tensor2, input_tensor3)\n", + "\n", + " torch.cuda.synchronize()\n", + "\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(num_loops):\n", + " start_time = timeit.default_timer()\n", + " features = model(input_tensor1, input_tensor2, input_tensor3)\n", + " torch.cuda.synchronize()\n", + " end_time = timeit.default_timer()\n", + " timings.append(end_time - start_time)\n", + " # print(\"Iteration {}: {:.6f} s\".format(i, end_time - start_time))\n", + "\n", + " return timings" + ] + }, + { + "cell_type": "markdown", + "id": "0b44dcf8", + "metadata": {}, + "source": [ + "This function prints the number of input batches the model is able to process each second and summary statistics of the model's latency." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "2ef71ab7", + "metadata": {}, + "outputs": [], + "source": [ + "def printStats(graphName, timings, batch_size):\n", + " times = np.array(timings)\n", + " steps = len(times)\n", + " speeds = batch_size / times\n", + " time_mean = np.mean(times)\n", + " time_med = np.median(times)\n", + " time_99th = np.percentile(times, 99)\n", + " time_std = np.std(times, ddof=0)\n", + " speed_mean = np.mean(speeds)\n", + " speed_med = np.median(speeds)\n", + "\n", + " msg = (\"\\n%s =================================\\n\"\n", + " \"batch size=%d, num iterations=%d\\n\"\n", + " \" Median text batches/second: %.1f, mean: %.1f\\n\"\n", + " \" Median latency: %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\\n\"\n", + " ) % (graphName,\n", + " batch_size, steps,\n", + " speed_med, speed_mean,\n", + " time_med, time_mean, time_99th, time_std)\n", + " print(msg)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "afe97b9b", + "metadata": {}, + "outputs": [], + "source": [ + "cudnn.benchmark = True" + ] + }, + { + "cell_type": "markdown", + "id": "eba98b24", + "metadata": {}, + "source": [ + "Benchmark the (scripted) TorchScript model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "bab5fa8f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 599.1, mean: 597.6\n", + " Median latency: 0.006677, mean: 0.006693, 99th_p: 0.006943, std_dev: 0.000059\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(mlm_model_ts.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "bc79c452", + "metadata": {}, + "source": [ + "Benchmark the traced model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "5c0bd8e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 951.2, mean: 951.0\n", + " Median latency: 0.004205, mean: 0.004206, 99th_p: 0.004256, std_dev: 0.000015\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(traced_mlm_model.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "41db22a1", + "metadata": {}, + "source": [ + "Benchmark the compiled FP32 model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "ade7b508", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 1216.9, mean: 1216.4\n", + " Median latency: 0.003287, mean: 0.003289, 99th_p: 0.003317, std_dev: 0.000007\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(trt_model, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "57b696de", + "metadata": {}, + "source": [ + "Benchmark the compiled FP16 model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f61b83fd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 1776.7, mean: 1771.1\n", + " Median latency: 0.002251, mean: 0.002259, 99th_p: 0.002305, std_dev: 0.000015\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(trt_model_fp16, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "43f67ba3", + "metadata": {}, + "source": [ + "\n", + "## 6. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for Masked Language Modeling with Hugging Face's `bert-base-uncased` transformer and testing the performance impact of the optimization. With Torch-TensorRT on an NVIDIA A100 GPU, we observe the speedups indicated below. These acceleration numbers will vary from GPU to GPU (as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "Scripted (GPU): 1.0x\n", + "Traced (GPU): 1.62x\n", + "Torch-TensorRT (FP32): 2.14x\n", + "Torch-TensorRT (FP16): 3.15x\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ebd152d", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.1.1/_notebooks/Resnet50-example.html b/docs/v1.1.1/_notebooks/Resnet50-example.html new file mode 100644 index 0000000000..36f2f0ad39 --- /dev/null +++ b/docs/v1.1.1/_notebooks/Resnet50-example.html @@ -0,0 +1,2018 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Torch-TensorRT Getting Started - ResNet 50 — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
[1]:
+
+
+
+
+
+
+# Copyright 2019 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+
+

+ 549ce3f46e334eb49742498ad8cacb89 +

+

+ Torch-TensorRT Getting Started - ResNet 50 + + ¶ + +

+

+ Overview + + ¶ + +

+

+ In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the +best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch’s JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new +world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference. +

+

+ When deploying on NVIDIA GPUs TensorRT, NVIDIA’s Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA’s Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that +perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device. +

+

+ Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch. +

+

+ Learning objectives + + ¶ + +

+

+ This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained ResNet-50 network, and running it to test the speedup obtained. +

+

+ Content + + ¶ + +

+
    +
  1. +

    + + Requirements + +

    +
  2. +
  3. +

    + + ResNet-50 Overview + +

    +
  4. +
  5. +

    + + Running the model without optimizations + +

    +
  6. +
  7. +

    + + Accelerating with Torch-TensorRT + +

    +
  8. +
  9. +

    + + Conclusion + +

    +
  10. +
+
+
+
+
[2]:
+
+
+
+
+
+
+!nvidia-smi
+!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+
+
+
+
+
+
+
+
+
+
+Tue Feb  8 19:16:53 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA GeForce ...  On   | 00000000:65:00.0 Off |                  N/A |
+| 30%   29C    P8    15W / 350W |      0MiB / 24576MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|  No running processes found                                                 |
++-----------------------------------------------------------------------------+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting ipywidgets
+  Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)
+     |████████████████████████████████| 121 kB 5.3 MB/s eta 0:00:01
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)
+Collecting jupyterlab-widgets>=1.0.0
+  Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)
+     |████████████████████████████████| 243 kB 2.6 MB/s eta 0:00:01
+Collecting widgetsnbextension~=3.5.0
+  Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)
+     |████████████████████████████████| 1.6 MB 3.5 MB/s eta 0:00:01
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)
+Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)
+Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)
+Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)
+Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)
+Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)
+Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)
+Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)
+Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)
+Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)
+Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)
+Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)
+Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)
+Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)
+Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)
+Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)
+Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets
+Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+
+
+

+ ## 1. Requirements +

+

+ NVIDIA’s NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of + + latest pytorch + + container to run this notebook. +

+

+ Otherwise, you can follow the steps in + + + notebooks/README + + + to prepare a Docker container yourself, within which you can run this demo notebook. +

+

+ ## 2. ResNet-50 Overview +

+

+ PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our ResNet-50 model from there pretrained on ImageNet. +

+

+ Model Description + + ¶ + +

+

+ This ResNet-50 model is based on the + + Deep Residual Learning for Image Recognition + + paper, which describes ResNet as “a method for detecting objects in images using a single deep neural network”. The input size is fixed to 32x32. +

+

+ alt +

+

+ ## 3. Running the model without optimizations +

+

+ PyTorch has a model repository called + + + timm + + + , which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet. +

+
+
+
+
[3]:
+
+
+
+
+
+
+import torch
+import torchvision
+
+torch.hub._validate_not_a_forked_repo=lambda a,b,c: True
+
+resnet50_model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)
+resnet50_model.eval()
+
+
+
+
+
+
+
+
+
+
+Downloading: "https://github.com/pytorch/vision/archive/v0.10.0.zip" to /root/.cache/torch/hub/v0.10.0.zip
+Downloading: "https://download.pytorch.org/models/resnet50-0676ba61.pth" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
[3]:
+
+
+
+
+
+
+ResNet(
+  (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
+  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+  (relu): ReLU(inplace=True)
+  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
+  (layer1): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer2): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (3): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer3): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (3): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (4): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (5): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer4): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
+  (fc): Linear(in_features=2048, out_features=1000, bias=True)
+)
+
+
+
+
+

+ With our model loaded, let’s proceed to downloading some images! +

+
+
+
+
[4]:
+
+
+
+
+
+
+!mkdir -p ./data
+!wget  -O ./data/img0.JPG "https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630"
+!wget  -O ./data/img1.JPG "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg"
+!wget  -O ./data/img2.JPG "https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg"
+!wget  -O ./data/img3.JPG "https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg"
+
+!wget  -O ./data/imagenet_class_index.json "https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json"
+
+
+
+
+
+
+
+
+
+
+--2022-02-08 19:17:19--  https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630
+Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.99, 18.65.227.37, 18.65.227.223, ...
+Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.99|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 24112 (24K) [image/jpeg]
+Saving to: ‘./data/img0.JPG’
+
+./data/img0.JPG     100%[===================>]  23.55K  --.-KB/s    in 0.002s
+
+2022-02-08 19:17:19 (14.6 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]
+
+--2022-02-08 19:17:19--  https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg
+Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117
+Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 452718 (442K) [image/jpeg]
+Saving to: ‘./data/img1.JPG’
+
+./data/img1.JPG     100%[===================>] 442.11K  2.40MB/s    in 0.2s
+
+2022-02-08 19:17:19 (2.40 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]
+
+--2022-02-08 19:17:20--  https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg
+Resolving www.artis.nl (www.artis.nl)... 94.75.225.20
+Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 361413 (353K) [image/jpeg]
+Saving to: ‘./data/img2.JPG’
+
+./data/img2.JPG     100%[===================>] 352.94K   366KB/s    in 1.0s
+
+2022-02-08 19:17:24 (366 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]
+
+--2022-02-08 19:17:24--  https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg
+Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:ca6b, ...
+Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 94328 (92K) [image/jpeg]
+Saving to: ‘./data/img3.JPG’
+
+./data/img3.JPG     100%[===================>]  92.12K  --.-KB/s    in 0.005s
+
+2022-02-08 19:17:25 (16.8 MB/s) - ‘./data/img3.JPG’ saved [94328/94328]
+
+--2022-02-08 19:17:25--  https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json
+Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.41.222
+Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.41.222|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 35363 (35K) [application/octet-stream]
+Saving to: ‘./data/imagenet_class_index.json’
+
+./data/imagenet_cla 100%[===================>]  34.53K  --.-KB/s    in 0.07s
+
+2022-02-08 19:17:26 (481 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]
+
+
+
+
+
+

+ All pre-trained models expect input images normalized in the same way, i.e. mini-batches of 3-channel RGB images of shape + + + (3 + + + x + + + H + + + x + + + W) + + + , where + + + H + + + and + + + W + + + are expected to be at least + + + 224 + + + . The images have to be loaded in to a range of + + + [0, + + + 1] + + + and then normalized using + + + mean + + + = + + + [0.485, + + + 0.456, + + + 0.406] + + + and + + + std + + + = + + + [0.229, + + + 0.224, + + + 0.225] + + + . +

+

+ Here’s a sample execution. +

+
+
+
+
[5]:
+
+
+
+
+
+
+from PIL import Image
+from torchvision import transforms
+import matplotlib.pyplot as plt
+import json
+
+fig, axes = plt.subplots(nrows=2, ncols=2)
+
+for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    input_tensor = preprocess(img)
+    plt.subplot(2,2,i+1)
+    plt.imshow(img)
+    plt.axis('off')
+
+# loading labels
+with open("./data/imagenet_class_index.json") as json_file:
+    d = json.load(json_file)
+
+
+
+
+
+
+
+
+ ../_images/_notebooks_Resnet50-example_12_0.png +
+
+

+ Throughout this tutorial, we will be making use of some utility functions; + + + rn50_preprocess + + + for preprocessing input images, + + + predict + + + to use the model for prediction and + + + benchmark + + + to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose. +

+
+
+
+
[6]:
+
+
+
+
+
+
+import numpy as np
+import time
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+def rn50_preprocess():
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    return preprocess
+
+# decode the results into ([predicted class, description], probability)
+def predict(img_path, model):
+    img = Image.open(img_path)
+    preprocess = rn50_preprocess()
+    input_tensor = preprocess(img)
+    input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model
+
+    # move the input and model to GPU for speed if available
+    if torch.cuda.is_available():
+        input_batch = input_batch.to('cuda')
+        model.to('cuda')
+
+    with torch.no_grad():
+        output = model(input_batch)
+        # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes
+        sm_output = torch.nn.functional.softmax(output[0], dim=0)
+
+    ind = torch.argmax(sm_output)
+    return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)
+
+def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            features = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%10==0:
+                print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output features size:", features.size())
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+
+

+ With the model downloaded and the util functions written, let’s just quickly see some predictions, and benchmark the model in its current un-optimized state. +

+
+
+
+
[7]:
+
+
+
+
+
+
+for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+
+    pred, prob = predict(img_path, resnet50_model)
+    print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))
+
+    plt.subplot(2,2,i+1)
+    plt.imshow(img);
+    plt.axis('off');
+    plt.title(pred[1])
+
+
+
+
+
+
+
+
+
+
+./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49785590171813965
+./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6445754766464233
+./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899807572364807
+./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.39485082030296326
+
+
+
+
+
+
+
+
+ ../_images/_notebooks_Resnet50-example_16_1.png +
+
+
+
+
+
[8]:
+
+
+
+
+
+
+# Model benchmark without Torch-TensorRT
+model = resnet50_model.eval().to("cuda")
+benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 75.34 ms
+Iteration 20/100, ave batch time 75.33 ms
+Iteration 30/100, ave batch time 75.35 ms
+Iteration 40/100, ave batch time 75.37 ms
+Iteration 50/100, ave batch time 75.38 ms
+Iteration 60/100, ave batch time 75.38 ms
+Iteration 70/100, ave batch time 75.39 ms
+Iteration 80/100, ave batch time 75.39 ms
+Iteration 90/100, ave batch time 75.40 ms
+Iteration 100/100, ave batch time 75.41 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average batch time: 75.41 ms
+
+
+
+
+

+ ## 4. Accelerating with Torch-TensorRT +

+

+ Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our + + documentation + + . +

+

+ FP32 (single precision) + + ¶ + +

+
+
+
+
[9]:
+
+
+
+
+
+
+import torch_tensorrt
+
+# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP32 precision.
+trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],
+    enabled_precisions = torch.float32, # Run with FP32
+    workspace_size = 1 << 22
+)
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+
+
+
+
+
+
+
+
[10]:
+
+
+
+
+
+
+# Obtain the average time taken by a batch of input
+benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 41.02 ms
+Iteration 20/100, ave batch time 41.12 ms
+Iteration 30/100, ave batch time 41.22 ms
+Iteration 40/100, ave batch time 41.14 ms
+Iteration 50/100, ave batch time 41.20 ms
+Iteration 60/100, ave batch time 41.20 ms
+Iteration 70/100, ave batch time 41.19 ms
+Iteration 80/100, ave batch time 41.23 ms
+Iteration 90/100, ave batch time 41.20 ms
+Iteration 100/100, ave batch time 41.21 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average batch time: 41.21 ms
+
+
+
+
+

+ FP16 (half precision) + + ¶ + +

+
+
+
+
[11]:
+
+
+
+
+
+
+import torch_tensorrt
+
+# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP16 precision.
+trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],
+    enabled_precisions = {torch.half}, # Run with FP32
+    workspace_size = 1 << 22
+)
+
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x.1
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+
+
+
+
+
+
+
+
[13]:
+
+
+
+
+
+
+# Obtain the average time taken by a batch of input
+benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 14.48 ms
+Iteration 20/100, ave batch time 14.58 ms
+Iteration 30/100, ave batch time 14.72 ms
+Iteration 40/100, ave batch time 14.73 ms
+Iteration 50/100, ave batch time 14.70 ms
+Iteration 60/100, ave batch time 14.79 ms
+Iteration 70/100, ave batch time 14.73 ms
+Iteration 80/100, ave batch time 14.69 ms
+Iteration 90/100, ave batch time 14.68 ms
+Iteration 100/100, ave batch time 14.69 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average batch time: 14.69 ms
+
+
+
+
+

+ ## 5. Conclusion +

+

+ In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of + + 1.84x + + with FP32, and + + 5.2x + + with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute +cards for maximum acceleration. +

+

+ What’s next + + ¶ + +

+

+ Now it’s time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at + + https://github.com/NVIDIA/Torch-TensorRT + + . Your involvement will help future development of Torch-TensorRT. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_notebooks/Resnet50-example.ipynb b/docs/v1.1.1/_notebooks/Resnet50-example.ipynb new file mode 100644 index 0000000000..f020662c73 --- /dev/null +++ b/docs/v1.1.1/_notebooks/Resnet50-example.ipynb @@ -0,0 +1,925 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - ResNet 50" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained ResNet-50 network, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [ResNet-50 Overview](#2)\n", + "1. [Running the model without optimizations](#3)\n", + "1. [Accelerating with Torch-TensorRT](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tue Feb 8 19:16:53 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:65:00.0 Off | N/A |\n", + "| 30% 29C P8 15W / 350W | 0MiB / 24576MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)\n", + "\u001b[K |████████████████████████████████| 121 kB 5.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)\n", + "\u001b[K |████████████████████████████████| 243 kB 2.6 MB/s eta 0:00:01\n", + "\u001b[?25hCollecting widgetsnbextension~=3.5.0\n", + " Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 3.5 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)\n", + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!nvidia-smi\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. ResNet-50 Overview\n", + "\n", + "\n", + "PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our ResNet-50 model from there pretrained on ImageNet.\n", + "\n", + "### Model Description\n", + "\n", + "This ResNet-50 model is based on the [Deep Residual Learning for Image Recognition](https://arxiv.org/pdf/1512.03385.pdf) paper, which describes ResNet as “a method for detecting objects in images using a single deep neural network\". The input size is fixed to 32x32.\n", + "\n", + "\"alt\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Running the model without optimizations\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading: \"https://github.com/pytorch/vision/archive/v0.10.0.zip\" to /root/.cache/torch/hub/v0.10.0.zip\n", + "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a7036a6122874340b14aaef7b8319260", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0.00/97.8M [00:00] 23.55K --.-KB/s in 0.002s \n", + "\n", + "2022-02-08 19:17:19 (14.6 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-02-08 19:17:19-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K 2.40MB/s in 0.2s \n", + "\n", + "2022-02-08 19:17:19 (2.40 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-02-08 19:17:20-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 366KB/s in 1.0s \n", + "\n", + "2022-02-08 19:17:24 (366 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-02-08 19:17:24-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:ca6b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 94328 (92K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 92.12K --.-KB/s in 0.005s \n", + "\n", + "2022-02-08 19:17:25 (16.8 MB/s) - ‘./data/img3.JPG’ saved [94328/94328]\n", + "\n", + "--2022-02-08 19:17:25-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.41.222\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.41.222|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-02-08 19:17:26 (481 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All pre-trained models expect input images normalized in the same way,\n", + "i.e. mini-batches of 3-channel RGB images of shape `(3 x H x W)`, where `H` and `W` are expected to be at least `224`.\n", + "The images have to be loaded in to a range of `[0, 1]` and then normalized using `mean = [0.485, 0.456, 0.406]`\n", + "and `std = [0.229, 0.224, 0.225]`.\n", + "\n", + "Here's a sample execution." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOz9WbBnyX3fiX0y86z//e639qV3dLMbDRAEARIkRYmklhmt1ihmFKMJTThke+wXP9mPEw6Hww92+M12hB22R7akkWStExxRJEVxARcQaKDRDfRa3V171d3v/e//s2T6ITPPOf9bVY0GOQWhwpXdt+7/nv9Z8uTyze9vTWGM4Wl5Wp6Wp+Vp+dEU+R+6Ak/L0/K0PC3//1Segu7T8rQ8LU/Lj7A8Bd2n5Wl5Wp6WH2F5CrpPy9PytDwtP8LyFHSflqflaXlafoQleBw3/Ue/9x0znU6rv4UQCCEAkFKitUZrvXSNP0cIgTGm+mkeF1KAEEgpMRrKUlPqkqTVIQwiDCWBCkjTDkmSEAQBSoWEYYCUCikMKgAhQWDA3VcJgTEarZvPMygpCAT2Oimqei4V5/0hDCDw/9Rfu0MGKAFjTH3w9LkNTxL7HONubD8adyNjDKUBo0FrqnaSUoAAXRqKLKfIC/IiRwBhHCMAnRcs5nNmeUZh6j449VYPFlOf49ug2Ra/+OK5H3iLp+VpeVoeE+gqpQjD8FO/V0oBNWD44j83QdcfN8Ie11ojkCgpLWgqRRCGSBkQhiFJkhCGIUHgwFYKpIRQCZQEhFkCciGgLEEpgUA4AAPpQFSIh4BtXWFbXwesmAe+cmAqHkA2+37V2QhRYfgPLELYZ1ZtYwzGgEBgtAFtMGVJvsjQWmO0QUpJkedkRc5ndRX05/l2afaPf7aUTwWmp+Vp+azlsYDup03CJnj9oIl/ekKbJjNzQIMQSCEJVIAKII5iwjAkDEOUUkhpma1yPxZAqY7be4HxnwGJsUy4OmKx1Ne8+c0Db9AAVrP054N/2XfydfAg9pCbPKJtxKkTtLb11kWBLgqKPMeUJQLIFwvHkA2l0RjLmx91+8brCLdeiAcWR98/j1yQnpan5Wl5oDwW0P20Sdhkr6dBVwgPdcKJ/tKCoxAWUIwBx4CRFsQCFSKEREmIVEAoA0IlCAOJklZNIISwrLUC3BpAhDAIrIrBCfC+NhaAHRiaZcz8k7SK1RRUaNsAPGEa4CdOPeYhDz3Vvl4qACiKEp3nFHlOWRTVe2oPuLqstRuNJ1QA2riv1h6cxUP7tMl8n5an5Wn5bOWxgK4vTd3tkm62obc9PWntdwKtNUEgkFK5c+x9jNEVwGhjCJRCBQqlJFJYlYOUElkBgkc6K48bLCOUjvVakdw44Flm6FJ4FcPD9K3u82doB/tOy+ca4eHVU92a9TZF9+r801KBAXOKpxpjKMuCvCgoygLdWKRKYyjQjbZgSePh1TRN2C0pl/qvWYenDPdpeVr+ZOWxgK4xhqIoKMuyPihqDndab2sNXsqCMPXkVkqhwggQ6LJAYDClrq4VWHYWqMCxYolU6gH1htcDG6RjuYBTIUhnnHuYoG1YZpFV3R3trXSqn6E9HqZaeOBh1QevODBL3zXroc2D97UqB7fYBJJSl+hCY7S2cCuWkX9pEWi0efUMrR8A26c63KflafnTlccCumVZMyRPqgBwzPa054LWusGcLJAIIQnChDhJLGBmgrIsKzZq0AilKt2mMJZ9KSkt8Ph7G1PBmKwYLU7VULNh4Rixv59GoI3n1/Zuyj74tHR/Slv7qGIqnvlgEY1/qR5gmlzWgDZWzeLPEXYZWmpHjcEIkFIRBIbCmIaXwiNq6bBYGAgCVfVRWcqqr5qeJHU1nzLdp+Vp+WHLYwHdxWIBOF2sqaFDCFlN3NPA64sxhrIoUUGEkMp5Hyi0NpiyqCz+xgiEssxWSIlwlrESgzAajEDoEuN0ul6fKyQIKZDSuoE5/F0yFgkck2TZJctIgRKmuqYygvGgqO/fv3ovGp5iS6d+CnA5FYIxouEe5u+9/IyyLCnLsmKlUghQyrJVbdnuw57kVRxCCGuAjEKEEBRFgWjohP2zTgPv04RJT8vT8sOVx6ZeiKLIivXGoB3TUlKhpHS6x3JZjdBwIVNOReANPF7fWKoQg0CXGik1KlDEcUwUxagwQgQBQgWgrOgvpEQ23MOktF4LUnl9rUGaUzyzYeAyBoy2jLcyvDklr1pyMDA/kOl6MP/hQcrqg/1lWludtpcMvH+uV8809eRe4vDqntN+z9UTnJQQhqHToXupQWGUNyQu65lPq4ielqflafls5bGAbhRFS8Yy7X578R9qZtYE1eYEDgJF064lhEAFgWXJUiOkIE5ikjgliiJUEKBU4AxqoJREKeu1UFnnhXb+twYlbDjeaRctI7AiurFgp42pDG/GWAC2J9ZsUzZUKPZ2Xj3QKJ8JmJbB23sOSAFa+LpodKkxUiOUtAuUECglEcLqxr0Bs6mPrQC/wej9F8JgdeHKLkz+FaQSKFSjQvVbnmbxT8vT8rR8tvJYQNcGJcgadB3b8seFEOR5vsSa/Plaa5QSKClRgSJwYByFIRJDKVywglTEcUIURQRBQBA0giACVbNaalbmAx6EcxUwS0aiWo9ag26DqRuJ0BYWtXR63IYjgGygZRM4PQh73fLpsmykqmvhrzVeL+EMZ0ZryjynMAYZBBCDEEHD7cu/q6wWNitFmCXgP81YpfP6qNUW1rXOGPHQ8wU2sEQ59c7T8rQ8LZ+tPFamCzwAuqd9dE8baPznIAwIg9Alh3B6YAEicOJ9YKPPLOhKhLQgIYXVu0oHztLpcYEldygjKtOZwyLjnBKcZ0IjxLaKghOBra92umHHkmt9rXDGtoe7wv0gtmuMdyV70DMBgNJ6b+iiJMsyZOBUAY1Fq3pWoy0rj4NHuHxVUX1B4BizB3B1KjS6qd819X2egu7T8rR85vKYQDekMi8ZMFpjjBX5eYSPblMdgRAWAKSf7KCNtsCKQEjp1Af1jw+i8EazKmeBaN7fA6WpwNZo736Fd9oFvI+xVS04TLZGOp+3oVoswEgwso4Qk04x/DA9r3nggzPCmeUYuKp+rlperaCLkrIo0E5fW6gA6dQMVSCEflAPK4UEYVU8QRCggtrzA+EkC6UqHXgQyMpwV7ebb8slv4qnoPu0PC0/RHksoBtHEeBZrsHoWqfrj4vAgbArVWCAQyslFcIYO8FNiTEFAu9aZnXDgRSVblY6OV9gMMKgjXUdQxvH3Grg0Mb+o52hrNTaBRLU76CNdvWuagiA0B59SusFIaTThVqPCA1IZAOkmuz2FAw7TwbtdMdGi4pB+hM8yy4LTVEUFEVOWdaqmSLPkLnCSwNC1MY2nEeCD5+2KhdVLVSV1IHXe1u3OF8H7aWB0yuF8OEkT275V//wf2eM86ypu965F/pX88edSsr2buNL0fB+qVf3uj2b96R+xnJwjaju3xwfVlKT1rf6tLFXehWZldgwBlElDLTvpCqfmtql0nv+2Mwl7r5esjMVFam8Zqxnu+9/gzEaUdld7J01ujlAcDMQV21KYT9rR3asK6YLVzcCIzTCWCnW3te9R3VP41Rc2jWixN/c9o12rVi3MEJiTOmO2xlpRF0n13sYNBLbHrbW1h6kAWGac8O2rhESYyRClBhj29DgRV4XuVnVQ/Cf/p3/+qGT5LGAbuJ8ay07q9ULS4YdKSqvBjgteRuEsFFltuttg3tx3npDqSVH/lpdge0fYY1flauYqCdJxSwN6BJKTWXsA88U68FVP6NpnLJ1FI49SmmQynWQsN/Vda4nV5M22gXFLky61JZZat8CNSu3oFtSZBlFntl7uJcrnWeCcEwVfD2s2G8XOoN0BjlfL9kMlFgykNW9UOWm8Kf4geje4Ul2WvCg0vxbOVCAxjjxYeDVUWt5FKeyojYNk6fFmcotDztxbZEIoavvhZCNZ9aTVxjriaOofcYrNZnwgGG7RjpwCyo9vKzBoaq6Vb9VeqyqBu4NRQ3Owgi0A+LaQ0dU49YIgTASY40dNcD793DjrhT2LiXYUH43tyyWC7TwwGqqt3ww66xw429Zgq0bXNg29co+IbF5/URlF6kXVgviDk5cF9t5oo0lTc0et5PC3lmK0rWJxIg6JsAsV+pTy2MB3W63S57n5HlOWdj0i17FUIGuEciGSN0cBAKQQiKEwghTuW0Zn1XMhQYbrTENg10TeCuvCCFcJrGmTtKL4TYNovUKsOJ66TJyQb3ye5WFcanE/IARnqE45i28igOv5qhZtmX1xgGxrDrTOMAty5KyMOR5WXke+Gu1saCrdYE0hjAIUFFs2aqLZ1YqsO2itGVJUjgvDjvoJMK6xwnf3DXAVkuLWWb2xtfRHa8Gr3FTw0snD9M//9gXywbLairWXAUa7WAcJFVzuwasaiGl2bD1YgmnLK5LwAUgbVrRZrWEd5Wsp71np4ADYYOsALEGfCEcIAvHUKkB11ajZnwCC3bCWKCyAKrdiRpjPBDTACZwPNDWo6q5wAhFrhUloJAYkxPI0r2DcZzQLWrGVNBaW4obg3EJSJut4445hlx1UtVYjVwhACj7t/BAX/e0BWVd9YVBV6CunSwAVpK1c90tKW4u2WcptwD5VnDk0MjlPj1VHhPTjQjDgKKIyLKMLMssk3NynE3NWFvG64Z2lRfN7FUGLQW6rNZiB2xW3EGXlLhwYyMr3axn1mUFQNaVodZ76hqsyxKtS4qisOqQJaZSG5K8R8Npg9XDXLHqHLcSqSAMVeVZUEXBVYBmo+3yLCcvCmx+Cft8T4wF1rgYRSFRFBKGyvoMa0VelMznGZgcbUqyPKPISqQ0pGlEmqbEkSKJrc4WA1pYw5qBJeCpNNPGDu7KWOiYggdfW0fLAPSnjbAf01KxOFPBYzUMmxoe4Wi+qEiBZ3MOeAVgvMTlEbcx9YVjVh6kXVvLCrAt4zVu8lcATy2s+qtk9Z2ygCgsYEo31qxYbNll9STPmo2VGCXSpUgF2WSOph4DVXy7O15DoHDc1aAFFCbiqFzh5nSLg6zL7jTGFAU5AlMuWA3nXGjtcnXliE4wsXcx7l2N58KeI5YYo7DqAsfw/bJSLXQWJP24q20LdiGqWsx4UKR+J/cU359+znq+YIyVUHUlJThpRjiOa04rgOp11p7XWDhOjaHT5TGldrRszmfz0lpTihJRmorF2Up7EaJemyrvBecGhnDidelyORhpI9WE10tp68olLAgbbUNlfd6HCvikRKgm0NVqD12WaBft5vV8otG8tVuXbHymOl+4OjYXbGtoUwihUNp6VjQnp6Go7uPbI4wC4iSs2sWraLznRxha7wIV2MEwGs5YLEqKogShybIZu7t7nJyMwQiOxxOuX7/BpfMXWMwzLl2+wHNXL3D2zCpBI+ihNJqd+4d8+P4dvvyVl4mTOheyF/s8u7dGvZpkaA1lc5I+IUVXv2u9pTe2AhYfHCJLBzKW+Qg3oUQ1MY3wZKvOkue1N7qah14NIByANyU752mDtDpad9ROXuNrCLhIw4oIWFblmbWXnvwdpFsofJ6SWs1Ro4K3HVdDd0mXWi9GtilMtUBMzAq/f/gy741XuDvWxHlGK4CFDhlnObNFgNY9ZouEvtjkz1055mcv3iKQmdO3esit2asFXlkx44ole91Is/41Bavu5QP9RQW4xq2D9lojrBrRNq+ujgl8NkGvTvBd4KNPhfssMFUOWE2lvffqleb68Clj7zGldqzHlAlsQnOtDYg6GMKeV4OvFPU6EoYhcRwThJ6+W/DJ85yicEpsd420o9WqCEpDWXWXLU3Vgym9jsf63lq/V+MGAdbvVEpnFLN8wetbS+fNQD1Mlt41UAKfdKcZKWajxaTLaaCqEa51rTfyi5O/Vko3eSux3tQBEMoGluzsnXByMmZl0KHXgsU8Yz6f0Y1Dzj93hcODY44P9nnpykU+/xMvcP/eHv/gH/1T1rY3+erPfpVz5y9wcjzk1s0bZJM5rXbCiy89Zxl0xdap3rduz6qX3QIHjbRGT1BpqqNqsdL3rJ9AiIaE5VieVzfJapLb+wkcSPr8IMKBpPHfO6G/mpS1gcYDr3Hn2TvIKrWo191CXR/pJngN9A0EtYf829TgX51i1Ql2Ia1DxJtwBqZSq1TAZSSjPOa7e2f46Djkjd0xk/GCJArIhCA0kAaGeWHQiykLJAeZ4v/+/bN8/6DLf/7y+3TisZ1bPhuJse/qua/9UVTSrH9v4xccp/4Q9rxKTYAGoXxzO5yulCwOzD1DXpY83IhoqCBtSzeoV9WgwgO8F2ywGGZtT8K90sPTHMDjYrqOwmvnfqSCkNCAyTIKk6NCa0EPfLivqFUJBlAqIAqtdwJCYpCUxgYDqDyn1Noa0qq0jxY8i0JDXtjMWl48lk48WjLaGevV4BmDlAShrCLaPJMwxqAL48JpS4qGasH7xtqQZQuI0nkE2Ny9jcnoFodaTeHusyTGOuAVGp8D2BoZLGsKjaEUhsPhjLff/oDeoMvWap9erDBlwTxfsNLrIGWPyWzG0eEeV7e3iOOQYjZjc32F2eiYj/Z32bt7g/XtCwwnCy5sDPilX/oFtrfWSdsxsXI8wy35VVBHk7YZO3l9Ap8nULuA548l1AY146L/PGd1beBZbKXXq0iCceKqcOBsZ6HnahWhdH3oOdpS1mIhlwJ4rL3XMVNTqyashrH2PrDMUDvw9X3m+WytEnAPcXDfUCG4PrZivHCU18Gem79erEYKSg3DMbx/Y4gINfPb/1+ufbckUy+RRc+QGU0ic/7j1WPmh9cZiBb/OvkiE5Fi4pDCwNfvdjmevMDf++I11tJjaNTTqj5qacpUTNLXt8Dzbss2/dvVemM3SKt+acJp1RJOv+u9EyRWzeQXqAqYG1faOsrq+xq863pYbbVTQzT0vA8rjyefrtd5gt21IRCATaQSRaFLx1i7LQnP7FyxAQ4QeLYsBMoISgGBFBXza65KGuNAU6GKgrKs+b43btE43z9HuCg25dmtA0rcL59CUbv0iODYraFWobgkOkJ4sdLU53kApmmPdfrhpWlRsyfRGADSlCAk2gju7w75/W99j6PDQ37xa1+k305QlGSFIVABMlAMj47o9Hq0woD/7p/9c175/E/wE194jVs3bnC4v4PWmps3PuTihT3+yt/6W2wMuuzcvclKP2VzY2D5RQNQpdeBY2VNYdyLOA8eIVw++SetGCgrJl9xUCt+VkzIZ7Rziymmag9bvJHFTvZKMBf2O0cRHYt1i3XFjH1j0niSHeP2o+e19diAhlZV+OtqEVk0dfDOYLakq62ehmNjnvNSM1rcNaaOANo/nHP91oSVwQoXzp3jmeef4923ND91519z7f63eO/wCkkwZVv1efvWTcTKJuNrb/ILv7zFv5hdRecCI9uYcs47xzH/xz/+HP/rL79NNx0tkaGa02q3GFAvCP4thDtTeAnFzTfpvRS84cx/V8No86hpqJIqG0t1RZPv++tqplsx7sYyVi1yolZcPao8noQ3+AlpmUNQiduhraDb6UG55AfSMwL/XtL73tYTWguX40A47zgv8hj7XekHnlDIQKJLoDHYfcPadvNigj2u3L1rxXj9HpZVgDGyamIvClbv2LimoSWp71Uxl0YbPaBpd9N86Vo7wbQRHAynfOt7H/DJjZv84s99kfV+i0hBnhVMpxNKbcjmGZ1Oizs3b/D7v/3bnAxPSDptPvroI373d7+OknB8uM/6+iYr6ytonfF7v/3bfPVnfprtzQ0SF9RSDXFHxn27aGz+Ya3rd5JN7HiCijHe79agwOlSDbXRzLsUiRqIHOOt12/j9LDGAZ7wNM0toJ5zagfc7rz6CO4RtrgETLKh0rBepjVvNR7o7QVOsG4a+qgZKjW7tezOM0k32YRXLQh3Zn2uERKzKNjfOebgOzd5KYoY//G3WRQFN3/5ddaSFf7nf+ev8uZ3f59/8eY+OyczevM9vnd4yMnN6zy72uZCdp/B4GVOTIo+mdmsd6Xg+gH8P751mf/qK+8TBXNniPXP1g1ANEugXAGiEbhQpWrB8N4UjqRX/r/VClPdX1RtUUkp1bf1zK+nca3YwX/y48DZbTBNBVuJ+QGbrD8W0HXOFLUVVRiUNBjp120Lhj42woJuk/WBf0GJndQSD7q2UaWsG0DjBqqyng6lEbXNqoGAsmFkEMJU10tjlkS8JdR09be90uCqov4tGoO45idmqZv98333amqf5SXNUcW+vJZLsD+a8403P+SjT67z/DPnWO0mhFJa391CM1/Mabd6tBPFdDFiOhnz9ltvs3NwTPpHbzBdTFhkMxbzGbOTE9rdDiJq89233iNE8Mxzz9BJ0woErDuZ03cDRrt+E3aBs4uRbUNZL/Gnh8GPdTGidDhqgcsYkEJXi7Ifvd66rZqGiqaCQDieKrT1k3XHMKYC8iVx1S/W7t96TIjGteDVU7Umt/JAdYu8/abE38/d3wm6Vh/afGGo7+a8AnTtBuUNQH5xkQjk927ypd/+Q9LhDpO9EbNWi/sXz5D31wnTguNbnxDv3uFXLvf51fc6DDnhb/9sm2k246eSl/mN6AqtMqMoSuRKyImJ0SdzQPKt4xV+9f2L/OWXriHcAqcr10PvpeAr7t/OL15Uf+NJkSNz/rhfOKlQyC5GfmadjlhtNBJeKl6SgYTEbqTogy7AWfCrFscjljl93+Xy2NQLHhwrNinrQQNOJ+o+e1CtW9MJFkIg61zo1deefTUh0hok7MFHuTCJpc81y6jDYRsVbF7UNEc2G9QfrthQ4zvn1F7driF7WtBqMIuG9V+4FbzQgsks52g44Y+/831OxjO2N1Z45tJ5umkLhHUzWywWSKlIWhGLxYw7O/f5nW98k/aZS3z+lZ8kL0qEFkQq5MzlZyi1JGn3EFGKiju0kgAZd20eh1Ov79vF92Xtp1tnjrPs7skLA66ZlLAM04GUz0rndbh2saknlMKzTx/Z5YDO+bU2xXtvaRG4nByNRc2ySVE9C6gNYUI29Mj22caYxrBzxxxhsAPx1CJvGsPZi8MVAfbA5sDKq7pcBwsjkGXJ5T/4Ptsne7Bxhdalgna6xuWXXuOTL/0FVJoSBQEj+X9g5/230eGXua6njI7us722zdvlBRYzRdgTbAUFkyBilmcsAg3YnB6/eus8l9I9XrmwTxDIpXrZKCHPQhts0+iqvRoiAl4hVi9wtd+txQvXh8avMP56L1M0Jq9YcrqryVjD39qCq4+OkwhRWJc3HLh/ikfPY1Mv+NVHGid+Czd5XZ09g/XFu8AADdHb0NBVL7GLJj+sVxlOnfiwmlWwv3SvT71WnPpw6hq/jtaAu4zc9qmGUtc313Lpyup2JZJZrvnk1j7f/u67HJ8cMhoPuXzpHC8+e4mNlT6htIEh3i1usLJClhd8cO0Ov/eH3ybTCWvblzg43McYw9aZs5w7v4ESgg+3z7C7u8/WhUvMZgXjecbb71znmQvbRPJUOz74KktCKFCFeD9pTFf4SeoHmABh6lgk6ZTXfuFpSkl1Kk/n+Wp8OKkbi84rYMnmIAwI6SZcrTaop7FlVxUvM1Tqs1IYAvd0r/sFGu3eEI4barBKleAlKj+vlvrUuWdVeOQWg9mU+RvfRj93gWQ0JV69xIIS8d3f4dv5jHxtjTSV3H3vGm/d7TINtyiSi9zVBXfDlF4kWC3HtOcjZkjCIqMddBGRZIGGMGVawj/9+DmeOTOjLcdWVPfAaFvtVK/Z961A2Ph280DtPROMa78G1zFeRmjey/2uhq9vH7/4+UPm1DUCKKsHCGGjQEtZQC5PXfNgeTzeCw1tlhFOrSCw+qyGka05WCReLyUqNlhBwAN46lvDuOd9+pQ3zbEmHnZmwz/TU4T6L2pezHLnPKpUz9AVC9I+isn4Hz+AoNAlo1HGZLrgxt0Drt24w5079zC6YD49YTDosrU2YKXXIpSG6WxGFEUUeUlmBLv39/nw2idc++QOWrWYTA6YjI4YnxwTt1IGgzY/9YWfYNDr0mm1uHV7l1e/+Brff+cTbly7SVYUVnVQBdrXDWCc5FAKnyNC1AwX56r3aabaH/NS81azNDZq4BUoUYOv734tHLM1tRjvPVNqX17HobzXQwWyPsTAVDNFiHocV6EVriuUqUd99cHU53ojYLUkOsJTTREBOMnEM3PrfVKDybKLk6Fstzhab9P75BbrnZiwyGCtw/Gzqwj5Eff/6Nc4GilOxori7F+mGyhanVWKg2PkYoGJEwoCBhR0VMFdo5kYQdJpoVHElCxkwN3FgH954zX+9nPfRFBU+mbjfYxrOYB69tcMFVFSq3sqKu/ucZoMlJUeV4hGG7nr6kXSyTHemGeWPRWsd4IfM/YZRSHQ4Qzd0USmS6vdeeSYezx+un5VrqJEqvo2xIQGUxUNVmAa14jlJqvIYSUa1Pf7VJ7lG7iuxtKnB5cAls6qr3z40x5Y2Kp+t4MhcDcxaEqsG1imYTpZcP/+AW++9SG/9wdvECcps3zC6mqf6fiYo4N9VgY9Ll/cJk0iyjyjUIpFWTAezjEaFmXBZDyi3+3wk59/hWuf3ORwb4fNrVXSJGBldZXXXnqRFy5eQCrJlcsX6Q/WeOnZi+zdO2HaP+Y/+jM/SSSN1YX7Nm+8jxfcjF8MRQ28Uj6ZEWkAtQvXsutQgKhE/+YU9+DmdZA+eKDEs19T6YcFzbFvyYQfZabycrGrsOPU1JKU9aJQDXWbtYPUaoamt0EFnS422/9XGZL8ABXUoCaM8+l3XjmNnB/oAmTA7H/2N/jk//QPCRYTWvs3uV0MuPM//Sucyec8e38PjOCa7PKv9vcZXfk8CQWTOGRqIlZGhygzZ8qMTCnuD55HLOZkSQfVCgnDmBRBnEhuzSO+f/AiL6++jbeo13PKq2Ga6pO6XeqoSerrPFAvhejWc9z3iahUMqK61p5lgbypVfQ2UqDhsiaWfHVV3kKUM8rBAYvkR8x0qSrvxCVTH2mu0t541XTT8sdxh/ylAirLrz1klu/5KexziTU/9ITaCdwhND53QiO2pbLmN6gNVO/hv/ecwTEhDCWCRV4ymWUcHg25v3PAt998l2984w12d/cIQ8WZs+dotyQhObt3btiQXZMxHh3R7SREgUTnBTPmHI9Hjj2XbK6scHZthXbaIlCKL/3EC5yMv0KUxBwcnRDGKWv9FmkEhYbFdM6gm7LWTXj9c8/xyz/zKqu9FG940afIgVkSE5rO46L6/qHCw4958Yu6Mk4ag8oDwfu72n61s0oKbIY5pxi149Ht6OHu6JmTdrkPcPeugdughSDAg7RAGEHwkPaT1SxoQIxb6Cr965KtwTNE/7fzzqjcm6yU6ff+owJo8D65puKVwiL4lUuM/+v/Ce/t7tE/uEt85x4agQpj4gsvcGH/+6xzxEfpIb+ZlwyFQAeKIrP67gPZIj35mHnnImb3DgUxuruFWECqIJYFl1qCQay4MbnC+fYO3ehexcz9u9kgEKdSEALMabVD1aNUYIhx0Xqmbrvm0laxOt8g9UK5TOiEbSxv0KieUYkQS3UQZQxHiozDh9TRlscHuk1XMD9BK4x0XStANEQv3wbNMbj0mmJZ1KgNa59OtcQjPlfPaOCIqJYue0/pY+epRR3LTHwYoeVI3h1HA9N5wfBkxp07uwyHM/aHE27fvcf+zn2OD4945+23yXRBb6VPf7XF8z/xKu12l+OjA1hMyRcLxsdDtjbWODo+5PBgj7NnN1mEAePplNwY9g+PGQy6rPa7tMOAQCkEgqQTsdpdozCag3s7/F//L3+fF154jv/i7/x1FouM+TRjY3ud8bhkdaXNhbM9axMwyy5tvlRBAK59jAEjhU3Us2Ruf8KKcOkPqwVbIKQLzmmM1yo/c20VroIWtMTlOqBmoHiJ0wKsdPexRi9HFkQd61RLFrJiXsKcHqX1SugBt9YanBKxhKH2irH/CpfCxYOF8AuNqVmxv2flu2ks4QhWumQrA3a5itAF2mik0GTnz9L91rcxa8/zRXGZ320PWOiQMAkx0xHz4Q5Z3EHGWwxFh0gawiQkHn9Mv9fi4uKIC+khz/Qm/MSZKaKn2Ly8x/gk5O6dmGzu2b1szG+32FAbvqyxWrt3sovmkq2oBh37S1iJrfKld0RpyUh/6lmIJg+ulybwWQfr1rbTJUAe9x859B6TeqGCxeplT0vfPjKkpr4NDwJ37ek8B7rBLE8/71N47EOLz5lgH91wdG5UQhiB0II6yto4v3HDdFGwyAuOT0YMTybki4yD/UO+8Udv8P1334coREtY294GIbhz/Rrjk2Nm8wX9wSorcczGmTNcuHIVESiEKZieHHB8cEC+mJPEIbdufEKrlXDvzm3OnjvDdDwhLwobDo0kmkQUhUZEXudo/QaNsS5Ozz17kT//Sz/L+x9+RF7YpEOXL55DCMn33/6Qr3zlBUJlV3Lv/1m1aUPdo0Q9SP3C8kM2949d8TpV5UJ5EbWaATwhcAoCu8pWoqxnh9I4DukmZWnqMV/fx+14ggUEm/VL1J4K1YB3umX/Z9OuIU5JHNVArXvMg4cXyZZhFwcgPgVjo1SLhXWLMqZ217JSm8H6nmogAKPRBibtGKEUwcH3eGF9wOv9lJuLiMOpQIspetBlPb3D1vAGl/qKi9036cfHtM9KyuhZtrbHdDbfI+1mtLua1dUOa501dJbz0su/wPvv9bj1SUlRONe5SsdLDZiNNJC1K55rj6V/ar9b0+jDiuw2BnPlqNBovVpOMY1VFddOzdasJeDiU+wcj43pLlXiITP0f8g523y/psX40072lmGvq8RY3WSel8zmGcfHY0bjKTfv7HJ4PCUvS3YPDsjyHK1hb+eQ6XjC7s59xuMjRif7CFMwPLzHbDokSrtcvvIs09EJW2cv0O90MeWM7bNbHA9HhJHg6tULbJzd5PatW9y5eYPdO3fZuXubOApZWVtlMZuiywXHRwccHuwTpy1OToZkWUa/v8Z8VvDGd9/hJz//OXrthEhaAUo7AEmTiF/+pa/xtZ//CnEcoNqSJI3RSJ45d4Zupxkw6iP3Ti2QDeOQMU7U43Rk+ZOKwC6KXtQqIRf1SvOdLBN1LdOQxKqJa/ySJSviXE1s47ODnbZviDqgAlONR+8dapYmtjvHLCsBvN62UoEZ6smwJA77qgsrmjsQP82SLeB6Ebt0l9ssw/b60o0Ug5Gwf2GVC5M5O5liOJkShAU/u/VvOXv133EmvcH2mRntRKAKQVHkbJ+FOBUU+R1UaEgSkJlBlFCOh5Sxoiwk6H/Jq69e5eqV13jrO13292yD2kVR1jkbGhBbLVHG92tD8qhaq+6TKljK81qvujHLGCIaY6EiZs72wSlS6IljKQy/ceM3+Nv8708POOAxgq5fKSs1gKlXG/8ila/tQ4GyQfkb1nLf6V4V01z5/Llg0FqQFSWT6ZwsK8izgvFoyiLLOTwckmtNWRSURcFsvmBv74jj4zH37+8xm8/4+MYtToYnpElAu9MlTlrIOKCVtmh12syzGWknoVumRC1odSIO9+7RXd2k21/h5HCHD9/+Fq1On9loH6MEvcEq1979Pv1+l97WOqtrKwhKpuMR4+GQxWyC1AXDoyFxFJKmKQd799lJYsaTKUGUsHPvHkeHR2xszTh78TL39/a59vF1nr1ykUE7AYnNqgbYPwyt2G6triT0WpHd+VeCMorS67xOtX1dlg04NWOozzkNUk9GcXkuKrA0VQCEDXZojM8lAG6YdGocxuuAG4IwIJyKob7eu9svnyUaF9bMuXnctrlu+Nkuj3xj/L4WHpRNdYY/x6VkqdQKdf3rz00gEdQ7Q/iautmFETC+8grXb2/xvwl/jlj8Jv/LL/43nDu/Q3cA2QwWC0ErhTgxXP9EMJkaytLQTSRJakhbIUWRkSjItWFv/4AkbaGyGeOTd+it3OMXf+m/4M3vTPjoPY02sjLO+7b0QRA+oaWXNHxmsqZm3AeSuBMeii8yEFWAWR1OfGrHkMYvMJwmtR+cvMcnh2/yqPKYma4tVf5ZTB1NI5anabVmNVcQt7r5UFzv36yNZ/gGb1DQQpAtcj75+DZvvPku337zHW7d2aEUEbnOGE6OMGXJxsYGV5+9SpykxHFEmc05ORpy9+5dDJrxaEi33+fln/wcaadNFARkWcF0MuVgb5f5+JiynKNNyXw+IoliiiBABCFnLz/DbDZFGrjw7Isc7N0nm08J45jB2irT6YxOq0XSSrn87BUClyvhcH+fxXQGBkIVMi8N0+EYISAKI452DzjcP+J4OGR/b4/h4TGLRUHcajPodxiOpuzuHSLMCv12anNWONFYCeGs4M7pXViHPmWkFXsbYqwXw2pxtKlPs5OtNjLgjfJPpCHNpgWVlU2hjkh06oHKfVdUJNczRB/x5flV7XPrPQtOQbWonNLqCD4HnhVxEO4vF1EjaWbdasiMxoFeddTULNwDrcbu29e8EMdshX+vBvj6laPmsdU1QKX/pfrWMsLjtZ/iHxytcSX6B/yNv/b/IewVTKaCIFCEWtPtAYUlQFsphErSGmjMrESMYToJWFuTzIdz0tBACMfjnNWeJBKa+cl9iuTXefWVLTqtS7z9XUlZBhWj9Ab4umZ1G1YkTVARNKt+W2a9tlE9WJcUayPktI0Yh7XKZmmhO10aKif391ayxtfOf/kh59ry2FI7Pqx+otFYgkerAioANjWzAn/PhvOHMeQlHI1m/PbvfoPf/q3f5xvf+CZFPmE2GwGaMGqztnWGsxevcOn5q1y+cp5OJ6bX6dFKUspswY1bt7nw3AXGozHHxyekrZTVtVU63TZCSO7euU9RZuzfu818OCZsJahQsZjNCMIQLRVnzp2nFIK1M2eQQlCanPPPP8N0PCIJJLc++ZjpyRFJkrJ9/iIXLpyjKAqOjw6598nHTCcTwjhhsL6OigJmkymT8ZgkSRgeHfPB997i0nPPkSYp42DE+PiI4fEJK/0+02wOUrB/eECZd1lZXbW7Rsg6YQ3Q2JHi1IpHk7k+qGKoT6p7qAKJJxFxgSp3hAdLb1PwASJeTPWGmQYrrLIfuDaTbmLKJYlXVOQCaESf2XO8sc3u5uDZricnNZQ0mWgzMste7rxuaBiYTelyF9QuYzXYmuWOXQJ/U4ezN76uzhGW9fphktPjH3/QYm/4r/nSa/+U6cJwMYJIGcbzElMKyhm0kpjjYUaSGIQWrG8p9ndKxkeQLWYY3SZqhZT3croJtFTG/o5ic73HYjbnqPwe/Y0Tzq3u0fmZV/nmNyIWWYRo5KCoMrk1GthK+35BopEAyPcPVd8Zp0s3CPKTjHn7Pt32ZYJJsrzaQUPqE1W/6NKGwwdRTJEXrAabbKxsPHLoPTZD2rJcVH/8THPUTwB3XSN4C78qC6BA8HtvXOM7737C7s5dovV1Xv/5r2G04WBvjygMSbst4jhga2ud3qDHfDpBUVIsFixaqc12FsDR3V1GowkgCRSgc4TOmU7mfHLtfSbjGUJqolaICgXT8TF7d+6Sdrt0eivMRiN0EHLu/DlanZhWFDCfzpgNT/jg7e9z/+Z12p0OvQsDXnz5ZaSUlGXG8OSYg/t3mUwmbJ6/xOrZLVbPbjIdjjg5OiKfZ7S7XW5+9BGmtEaYoiiYTSZMxxOm0xlJegapAjpJytFwhApjwiCkncYI1Uy8blgscsIwRDrjW7Xx4ZKbjBOqmgPUneM8qNxcFcuT+Akq0m1dA6oymiG8V80pUdL7A7pp7idcpQKoJDGxdKzWG7rgHxoJbIRmyYXJo7FnYd6LxhiMtATDG5eFqPvJs/FKzykagF3xuYrq1ZZ2/z6mkYuWWtbxi4KtC1XbWKNgwMc3zvLxje8xePWfMzMDvvfRLqXSlBIWE0Eaw1pfMFca2ob5BERo2Ns3dDci9nZzZjPD0f6YbkfRTSU3P5BcPV8SFwJuGFZW+4hxiNpuU2xrusU7fPG1i3zjjQ2b0EoImjF6zaxjlarBlWaiIeH+Ni5KsI4ZECSLNXJzzFH4LudWf4riuKTUpW+E6n5+oTZaM/rwHjwTs739Mvf/4T/lxmHCTz136ZFj7zFFpC2r+6V4MGrM9/0PNHz54gaTZ79Fafj9b3/I1//4PTbPrnCpfZ47d+9SaMNiMefspYsopYhixZXL50liRaQUYRAwm89RUjAajQA43D9k5849tDYcHB7SWxtw5swZkjhmni1ASLLFgm6vy/HhIfPZlOO9HYpsQpHHzOZzDg8PWNvaZjGfsbExgLIgyzMW8xmT8QhjDEVZsFjMGQx6rK6scGt0y+qV8wX5fIIQ0Or22d7aYDQ84ca1a4yOTpjNDTKIuHfnNt3BgDBNIMDurEFBURRgDEoquv0Bk9mcTjuwkWYycCuzwWjBNNOU2ZT1ICBxuzPrajI6vWRDovAZMl0XWEOdsamjETZS7VMMtT+2RQu/k7QBr8OlZqRLPkSVPC7wG0VCTR6rHXUd82/IFoAD2dM6RqfKsAa2ppbXA7VrWPeQ5eP+dqbWDFCrAHzUpzEPssCl7Tj9O1GDkbsTni36u2vHqoWAhV7je9+5wdtv/GP+3i9vcfFcCnKX63cisjInm0K/A6U0TBYFaRvmBjolLEaGtJ2ztqE4zkvSNcP0umZ+oAiF4d2vS157uUURlZj3FSocUB6EpLsRer1DmA+40hV8dFy7htWJbryax6rBTpFa+1YN1wWBbDYxoZIURtDNn0GYe5wkH7B97nOc3JuhC91I2WAIhaJFwPxoyMnqHuurZ/jg5lv8t//i23RiSTG+x998xNj7keh0gQZb+GGuqT96IDCiRAu4vTfl99+8QW89JMsy7t67zvDwmNmsYP3MFlGouHBum3YnIYlCYrfVzXA4ZLGYcXg4YTweMZvNGJ+MGA1PSNMWk+EQpSSLlRWm0yndXodLly4gjKFczFEYrr33DvPxkMJIOv1VuivrdAd9jDB02ylKQGk0Os9Jo5goimi1WsznU2aTMbPJiDDcotNp026nhEnM7M6YyckQrUGGIecunCUMBJ98+AnFzi4mbTEcDgnzgqsvXaIscgKl6XZSssWU4+EJaM1gdUAripFSUpRAVuvohuM57374CfNsxhdefp6L22sVGNSsSNTd1fjGHqvdxZf66AkEXa9awGetarojembvZTbPOj3DdAxQG1EFObj/HY412rHZWg09hWl84zWMS/65QjeCcSyke1nam8k8AakzPYMP9PFbWFXPqLwVBPV2OfU13nhXvb7LZ1BrJLxyQ5CP1zCjd9GjAya3f4V9OWHzwg7IfSSwkIaP9wR39gSdLkQSjDJ0JQz6gsVtuzB0OpDsKC693OGdb07odiQb2wauZaSbLdgUyOMAM40odtrIiYBixnPRCocy4IgFmMIterLOWyE8xbOt41rPHbHSol8mfS9JAUEgKfMCIUK6xTmmh7e5n32flc3z6GGEngm6cUwrz5hPxyxKwb3ZITfMNxGHL7CYR1z63AptCiZh/six95h0uj+YvS6d0ViSHnblshpKMJoU/Kt//XvkxQgxTxDM0GXO/bt36HbXuHj5Aqu9Fiu9NoaC6WTGycmEsiyYTEZobQgCRRRFTCYTsmzObDqiyDKy2ZRFFHF8dIRSijPBFkkS0e12uHWwz9HOHcZHB+iiYHX7EoP1beJ2CyMEg0GXIBDoIufk6JCTo0P2dnaRUpKVBbrI0WXBaHjCwcE+WhdcuHCOja1Ndj++znw8ZjgcoYKItJ1y5sI5ikJjypLjw2OkiukMurQ6HdbWVomVIgyl3R2iLNFSssgyjArQoqTdajHPcoyxjPXXf/N3+fv/r39EkqT8lb/yF/mv/sd/o9oO5oE2N/WP75fTZ4pHHH8SSuXi5dibBR4nqlYuQV7qF7W3TBXBJBCi3mC1NtLwgEO+1yfWygmvylhmk7VZy9S5sKHBeGkwabNk4PLn+QxXHnC9a5OH+ipbWXWZrvyGfS2orvedbyqyL4A7731MPtshTltM71/i/tERu7de4tkv/BFJb46KDWECsxHkC4HWkjDQDLVgnIGaSEwmaAlJT2uiWUG00uHoRNKZ5SgBo0lCMusSLFpMRprOokAVfVpiQj6+y1dbF/lOa5N74j7G2JwKNmmPN29WtNS1uleV1Hr2OsDCIFDMs4I//J3f5LlnXmHj/HkSeR49yTicntBrC85vpxzcm3EnF5gggRBYbXHz6wfk999g6+xZfv6nf5rhcMR4Pnzk2HuMwRFNmuqOn7Kw1Xuk8UAk2oPFiTla8Gu/9QZ3jg7ZPrfKycmQ+WzK0c4h2Tzn6hcuY7IpQgcIYjK3r9rB4THD4QlCGKI4IAoDgkDSaiUUWYfhyTHZbIZUAqEkk/EEpRS6KFjf3CRMQorFnLsfvc98kXPmyoucuXiFVn9AksaUZUZ/0CUvFhyfzNnb2eHk8IgyzxCAkorWyjpr29skrTZlntvVNZRcfvZZPnrrTcYn+0xPjtGFIYpSOu0W2SJjdHLMbD5HRoL1zW0uXrzAYKVLEkVEQcTw5AQB9PoDlAwIgpAoVESBoJO2OTgeUZaG1dU10rTD1vYan3/1RZQXL13D23nu95GzQSEVcLgfjRVFtYvsqUTXJ6zUjgoNdYIzfpkKlZxetuGDWUUjVaAsaqbsTeX4e7v7GG/0sfcy0sFABaaVd24FxJ69CtPQs9LkJ2JJteCBeclnvTK01fX2XNaI0t7bBU34/BoWXQ3eTcwDuxfWNYr50T7FYsy5jTMcHoz53GrKvfcvMooPMduf0N8Y0Y5h0DOMDgR6ZuhtGkYngnkJWWDQuWY2TRgVkrFRaBlyWG5zGYWe54gy5qSMSFRAoEPm0xItp4h2iAk6tCYHfDHXvN/vc41j2z7GB5fURq7KYImHXt0Y875dXSJ6ITnzzFX+5a/+E7pBDxUHhJcFul3y0y9cQKtz5MUVEHb/tkSmTPduwKTF9cmMNDmhi8SEC175/OuPHHuPL+GNaK7fNWN64NzmwIeqcx9yU8Bw+/4Jv/MH32JlYxUlJHs7OxRlTtqJ+U//9v+I9a11DvcPuXvvDovFDIPdXWE+nzOfLwhCiZAwm06JwpAwDAkju/ttURTEcYTWBTrPONjd4eTwkOloxPHREXc+fpf5ImPz7BXWz1/kyovP0+51yeczyiKj2+2gAml3cihLTk5OKIsCIwRpu03aSml3O4xHYzrtlCSJicKQrQtn6a6vM75+h707t9m9f5+1tR6ttE2SpsTtFptntxgOZ0RJQqvTY3V1hSgIiIKQPC84Ojomjlus9nruvRRxIGlFgtZ6n6woWP/5L/K1L75Ep53S66TgggKkEdXOHH7/LV8aRMzl0BXV5NZaPDwM/gkoAsvuKmND5WJkWB6CDsyo2V4l8os64YmhVjtUm6wKU4N29eBaZVEH6HgnNLBb0Zg6AU0FHDT6pQbEitD5ulY1NA13Kc+fPQNsMGt3j2pfOK9kcAxZUzNgz8qDXNEVBdNuj+noY9TgKhfEgvKtc8y/s6Dz5T3K/hyZZER7XaKNKcWiRMuA3sqc27cDdFszywv6Zo18PyCchhRG8Vsf9fmLHQimBiVK5hJEoRGEULbQBMQpLOYFmRa8bDTZoMMtM0aLEuGCuKuWcuHejTfDA7QRdXpNXH9cufQsvS88S/Fexnj3iNGtMZe/nHLxxVe5fftD1sVVhNFEQUJX9Hjl8udJwy3eeu/3uHf7HZ7/ouH82k85FcfDy2PX6VYDYont1n9XzeOZQ3Xe8l0MkOeG/+6//30KYUgSyc3r161P7Lmz/JmvfZkz66tkRU6Z5dy6XXL77j3arZTFPLebVmJQUqKkZF4ULOZzgiCg2+2SJAmjo2MQEqkEh3u76CJndHzIR6VmMhpT5CWbl57n/HMvMFhZp5W26CQxJg5I04QoDjg8OiRbLFgsFrTabQDyxdRtrx7T7fXJs4zpbIpSEq01SRzR6vaR0S7ZdMLBzg7D89tEkf1+sLpC2m6hohPanS5hGNPvD5DGECjF5tYWRVHSbnWwG4EqgkARhIF9H2FIw4AkVKx0IsD6NWsE0ouVBu8iig9drXZCaDIqrxkzFnCfRCMaOC4kmywVl/S/Dvus2SvVpGx6MTRZhHefk43x7NmoJyFNSiFq2b/WOjq/2Sr9aU1rq0f6Y82YQH+tPU83VBBWdDbabxHuYwkdBLmON9U9rJFNe/cqYceHRlQbeApj2OiEHLnv7sqAT4Z3eCFJWA8LinGf6NsxZVujVYacr7MnNdHVXTobc+azE7KsoBjnhMLALCAaZyyyPQ5251y/p7g/XfD3vnCOdDbH6JBQKVAKNS9RwRbZcEaU5EzLCe+OIi6FqxTtgnssGn3jSmX4tOzXRwcuyQ8NTxGB5PXLL/PNb/4WLTmjvxLwc3/pNfYne7YdgV5nnVh30UXBjVv3WcwyzicJzz3/K+RMqSL/HlEeO+guDc1Gewio9j/7LGoFMLx/7TZvfv9d+hsDJtMx+/v32dza5M//2a9xdmOAKQ1FltFOY86fP8d0OmM6GRO0I46OhwRhSBhEHO0fMJtPkUrSbrcRrZD5bE62mBN1O8StFmEYMzk5YTGdMp1O2b54kSDucvXFF1g7s4U0hu2tNVrtGLA+sJPJmEAqpJCsbW3S6kwpsozJWFHmGXEco5Tk5PiY3koHoSwrVmHA1eeeY/fGXbr9LqOTA8ajEe1Oi8UiJwgj4iSl2xtwfDRiNpsTqYReu4XA0GtppFSkaUqaJBhjiKUkErIyQNp8CcsM1nrciGqTSTQEos7BIIVGG0HpBqTdH825GDnWpTH1LsFPUBHCOxtZ8V/gtvV2sKkbulPwxKFBK70k7hcqvGqiAdr+Dh6A/aVN4PSRUU7UXwpGER6c7YOa4b84sdkAQrvvjT6lwquB1IOqzz5mwVs3GKCu9b9uMSgbagW7p5hBkHH+TIvknQPm7cv8q2zMKOrzph7yUhQi22ukJkfMY0opOUoS5uUB4laffKckzBJWe4asoyENyIsFB1rTjRLObrSZ3g94dzTl//a9Q/4X59sE0lCaCKVDEIpimgMKoQ0r7ZyMjPd3Si72WxTrIXvYcDK/oDQjCJd7xYNwDbz2tUue37zE4K/9AidHH7Hy+grd1RVu3H+PLXWVlfQSg6TDrRu3ONg/4GjvA1Qw5vLrnyeIu9zf+4j54og46j9y7P0IvBeag4CKMYjGtz+oGEAXgn/2z36NolwQRnDn7l22tjb5a3/5L3LhzCYBJXNdMFvMyLKMMAhYW1uj1+0AhsGgy71797h39z4CQakNMlC0uz067Q6hChkeD9nu9VgZDAiUYtrtkHTarG1s0Bv0KbKSwdoKYRzRShOEhPl8gS5LxpMJRZ6jlMIYQxiGmFYKaUKchghtyPIMFVpVxtHhEWEYEgQBoZRM51OiNCHtdYnimCLPmIxHTKYTiqLgzJltVgZ9nr0aUxYl89mctcEAhWE2m9FqpyRJYndaloI4aGwQI2hM+WUu0BQlm196a7mPpPKBkMr5NRqBjXrSoqmNeIKKqH585qkmI/CBDl7311Q71Hpf97dotGvVfo1IpVofYc/XlmV7Pa5FPsuOJNYNb2nPPuE5mY3PrBZMV5ZVIk4mMdYP2D663hzK6nIFhqKWXhxLtuTbApCVdPzG4tqqGYxlyuqs4vn1Fh8ND7gsFboVM1InvJ9OiFsKOQ8pyoKWLogikFFAwD7j/IQkyUnKgvZUgJozac3Jdcp0done3QFfXBU801vnuwcL/t93FvzdcwoZzhGBscnkS43JIie+p2zICOYnHIaSraOU0WDBXOraWUr4kdtYLR3rt29vrBrIYHdBcYvm+sULdD5nKJOM8aSkyCcMkpdYHE64V+xz5/q7LGZ3WT1/lu7G84BEm4L11Qvsn7zBevjFR468HwHoNunsg7JocxV6AILd6BIYbly/y+99/Q944QsvYzBsnTnPL/2Zn+PSmS1iockWOdPpjEWes8gW7O7u0un22NpcIwwkwpQMuglRoDg6GVOeGPorKwRhTJK2OP/MM4ymUwIJeTanvbrCmXNnGI9GTifbYjZdoE1JGkdgSqIoJFsUDIcT5vMZUiqGw2OyLMNv2y6kQChlF4s4IowjkiQhSSPSNCUMQ6aTKWmrTdrt0FlZZX1zCyFhkc0py5IoitjcWGdjtUen06csDaaEosiJ04SEFO237xHQCiOUoMG6HtbyP6DLxPI1wqkiwE5M1QCRJ1GtK52sXo0/IR3ggAVIWY0/z2TBmpxEA/VE9T21SsGV6lbu+mWNmlMnVABgXJt7UGjMCB9Z5Zh2M0esfbZNpV6Z+ip8MfgkNvZAlY6eGopMrUGp6ldijJcDLORqX19KxumQtStnWXn/kAujOW/tTojPrWEGE2R7HzkrCDJYzBTdJKLQGSQQRZJpviDuhcymOaPckLQgY47cC5ClJMcwEBm/eDbinUnEv8ki/noaks2HmHaMCCKINEUhSUtBKTWLecTiZA95ts+5do8b8by5pFT9vSRHGNPob9vWgTDksSCPJmStI4piiMkMJ9N9ImWYHxTkw4/Zv3uLMJ1w9uWXUXHLefkYhEv1mCQtsmL8yLH3I/PTbW5xDlT6Q6ih9uGEyVAaza/+239P0m8RJglp2mF7a4tLZzZIAmsAW+QFUipaSYtOe0GcJEwnUyaTmJVeh27aIlYB+YWzxOkhUkpa7S537t1FCMnW9hlWVvq045jRaMTh8RGz+Yw4juj1OkymE5QsKfOSvZ17BJFkb3cXYxRFqcmzBUIYptMpWmuUUsRJUol7URwhtCGKIlbXVuh0u4RhgDCadprS6XV5/tVX2Dp/kc2tLfJ8ThgF9HpdVgd9zp/ZoN9p0Uo7SBmiS5jPZggEYRyCMeT5gnarSxSHf4IeqhWGtcbL9Z0x1VY9nv1aA9yndtyPddHCbb3uhe+G2quybjuPBsv4oHLzmk0QrU4tHVQqBjuRpTtglr6DimXhoc8xzEqv7heAhjrD65UrpkmDUmNVBpVfqicwFjQdP22I2P75pjq3FKC8D29lb5H2nYWNdNNGYyjBRfEVZOw9e5Hu8YTzwzGHWvM7f/Qx0Zbk4i8k9LZ26ZQzilyymHdIkylZNgIlCVuSnTKjNZCEGg6mAVL1SNKEbJAymc5YjGEDzedXYV8kfC9IeTmbkk+OkCsB2ayDNF1MFpGEKavRhF+/dpPudJ8rwSXa5/qcyIzaT6/RdtQSxOkw9txo5vEOs+SIEAlKYjJJUZ4QZwMm+zvs7Nxk++I67a3n7R10bWrUWoCQxOEVjsbvPXLsPV7Q9YOIOqPPw3x4zfK718Up/g+Pp3zru+/xwsufYzyfsCpKnn/2Iv22ZZyLPGeeZ9YGLOwuuUJKoigijmPKUlMUBePxkHwxY321T6fdYTyZc/H8RfK8ICsWrK30ee7KZaaTKXuHB+zs7mKMIc8zDvf3OTo8soxPBshQkqRt4ih1DHtBq9Wi1W6hNURRRBgGSCWI477dN0trWu2Efr9Lp9tHGI0pC7JFxmBlwOb2Nuvrm3S6HaYzq67o9bpcPH+OjdUV0jhGSoUUISYQhIFCa40UEEcxGEMSBFXi7AeSYTcXvdrr/cEvl3QP/sNDpBBz+oInp9iE4ZIqSbbR7jPVQukZbt1M9j0LMSOghd01Vla5ce23Eh8K5q+tGGW1lDXavgG4D5NG6mtqycX3nXbzqmKzwuOMqwOWfdWCtA+rMA6IauzOxjuozhqBCNDCqhe0sQY4UbkPuucKw6ijCV46z+YHn/DFUcGdC5f47ltv0jbnSf/sJtng+4TRFNkeIkxC3ArReorUBj0NGE+7IBShVkR3P0dvLmlFBbqniTuGe9Oc+6OQpFXwT3aP+KutiC+0VhCLFiYEMsEi10gj6CcDrpzf5p/c/4SfuX2XFV0iLvaw2ces3lxX6iS/wEjXZF6vbVsomg6Yx3MWxRwl4GB8HYDhnYjJzodceuUnCNPUqVtcDmRTmUIRRqNkhOFHHBzx0PKQefsDL3Hs6ne//ib9jW2yfI4pM1YGLZLAIE1JkZfMswXzfMZ8kVNqKIoSKWWl4wQoS402Je00ptXqUgJ3ij1Goyk+FPKFZ67QayWsdTtsb66x0m9zeHzMbDZHCUlv0CfPS0ajMcPjIwKprIfDyQlBFBElA+KkRa/bIwhChDB0OilBIJESRKmJk5A0jVEywJQFpdCUheDs2W16/QGrq2sESjJftJhNp2ysrrO1ukIripBKolSA3/I8CEKOj09QgSIOQlpxQhpEjVDez9YvS/71P/B043IyOEgSPrXjk1X81uu1Jtflv/MqAuHDTJuuVwACmUjyckYUdNwRW3wyFBCVMwFeMez9aB3Y1UERDe+BpqqiQsRmqm7RqE+9bbwvwlhjmveCsIuJM5zhI9xM9Qzj9NlWJ6X4aOff8uyZv1hn8AOnXLARbM1t4Euh2d9ucealc6y8c53Pj94hf/kV9u/eonjvEsMzKTI8Ieq8DatHdtcMGaDLkjgtGO1KVg5+ip5WKJMynw+ZjYasDgSd1JB2F0zKjLuHmjyN+PtHBVG4wusRpGIVnURI2hTTCUXY5VeeeZ37ccR7szs8fzIk2QkItxMb8FJ5EtTKhno5831mdcZxtMJY3iYvpmQLSVkcEAcDklaf7S8+i5GhdZ304E1R3drepUSYgH763CPH3uMHXWMQsiG5NL76wXNVMJ4s+PXf+Dqr5zc4OTxk0B+wsb5GuxWCKcnLHKGEdb8yJcPRiNmioJXGZIsF85lhYTRlFBKFEWWpKXWJVCFRGGJ0ye7ePs9cOU+33aKdxkRxRJZlPPfMFWbzOVlWcnh4zCTPmcwWTCYzbt28xfDkkPliisEazqIoIopCgjAgjkN6nQ6tVgJogkDSbSUARFGIznOKPKcsAsqi5MzmBoOVVVqtFtpoOu2ErNWi2+7QTltEUUStv/MbQhrSJEaqgCSM6Max3Z69nrkPbeWlHTnc70pIWtLlekd9lgIlvI7ydGTPk1QqsDElCKtoqF/QQVK1A2xtAUcYpGgx0iNCOlVkWxX6W9HSGtrs/w/ZTty5d9Ws1H72br4gEabecW9Z54tTpvv7+pwDXo1QiyLCMz27E6VzExSUwqDcYhCqAeP8Ojvjt9juvFrpKev7N5Qi/tWE5OBLz7C9t8OFj3dI73yTb599mShbcHgzwRQxw/sv8OqXW0zkNVqJIs9CZqMUWUj0ccYEzXqqbb4CmTLeGzLpQX8DVjpzopU5O0ddht0V/lWhiUSLl+MVGA9J9XXM0W0Ua6gw4z85+zz/5304Sqaom/uc65+D1Iec1Gy03jvOvlWgFOv9dQarz3Nz9gllPkGXiuPR+0RBiJaa1a1zmNway+pwRYPVfyugBKPcOCgJ5Y94N2BfrBHA7ZWG+YzzsnmS4drHt/ngww+4YMbs3P4YVMyLLz7DdDoh73Qdu9AYrZES0nZK2o2YzeacHB+TZwvarYQszzA6ZJEVaJGRtmM63S5ZfhulJL1u2wJmEJHlBVIpeu027U4HjKTXG3A8HHE0HDOf3ieOUwZrG2idMToZksYJaZpY41igaKcx6yt9kjhGSkGShKRRaKeoEOTZnMlkQhgEhGFEGEZ0Oh2iKAKsnjoJYlppilQBQigb59/IFaocmw+kopMmFnBdEy4ZRj5jWbLIN66v3ebd5KfeSeKHfcaPT3Esh3qc+tQvNcurWwC8eC8RIqYMdhtGNFPdo+lnaxrXLakTHOP0Envl+oVXw3l26lUgNSO2GOmB3NTuucJUAE2DRTvZxJ20vLAaFxJhF9CIQbzJzujbtOI+aXDBRR02WLOgYbyz4yBrxez+yk+z+S9/m+5wSjD8mN3jdxAbV9htbxP31jBHa7SLAePxEVJrWkmfPC8g1gi9YJRltClpY+gmKaPxlN2hILkc0Vqdce7iEb05nIxjflOlrMxmXJ5eBwFRp4tUHfTwBu0s42+uX+T/ebRDxgHqnUPOvL5WE4lGvwghacUJm2uXWOufY14U7Ozf5K75XXKhOT7aQZYFffMCgUiJ4gCdObUMfjES+J2BbZ8W1e4en2ZefsxM14svf5JiNz78+u9/l/WNVUxZIAUMD/d4+9vf4erFMxRFDthUh14007oky6bkeY5SArRiNpuRxjGT+ZzJbEY3iijyAmOg1WqhVEAcxYRhSKvVptAlSikQhsC5RfVVSBgGtFptJuMZO3u7xCqhLAOMHtLudFhZWSGOYzbW1ul2UnrtDmkYowKBlBCFoTVKGMPC7fBgvQ4MaWpdvgROOV9qpBJIaVMz+ggm4YwmSkmrOjGGVhQSBfX+BL7F/zTcs5lf90FkXb5zLbA+OcUIkEZjhPJHgEZggZfMPIAJn+zHYFDE0lDqnEBG1NBrHKh6tknFZB22OgJqMG4bd6orG1nKTG38qnLcNrwZ7L20+6CdJqLufV3pKR1LrhZhu6hoqJ7h6ymlYGvlp9m5/8+4N/wmV1ZaQB8Pz/56G8Ulq/fRwKwT0/ra68S/8zZbKuRKd4XZ4oBv7Ay5sfk8pQxJojaqGFGYgtlwn07SYjEzlFHIwgimZc5ELxhITS8J6ZuIg3sltw6he1Gyed6Q9k7YH3X4d0XEfyY3aBW7LDII4wgMBPMFV/uavzQ4y68mCTevf0Lr9ojehTZenSCFpN9ZYWv9Mq14ldHJEfeuv8fh/nXGbUOxOmQ6HmMWIy7Gv0hkVjGLEpPpJUNm5dvr2twY7+yusCoGP64eLI8FdH2HQEMP5b/wIk/TciZOX20n/Wiy4Nr12yTtmNHwgNl4jKJkNp1QasN8kdmQy8ppH3ycuBSG6XSMLksCJdHETOcLZvOMTl8gpKQo58RJzGDQZ3VlQBKnSGX1o8a9hFBugkroyA5RVPLcs1fZ3Nrk2kcfc3B4wAGC6WTK1nZIK0npd9us9nqkcUyoAlQgkdWWAdgUjwiSJLW+gca4wI0A3ECOwsi+k6jZq/1lUEoRBAFKCKIgIFY1UDyoy20cMMsTt9FbDzmO06k3DTx1OKU5baR7AkuVjaARCCHcJmnVqBXVxkd4XbpA0DUtJpwQskkFsE2QBOeKVRvQ7AjV9eYvpuqS6pgFMrf5jPBQYVVJwoF1re5oihreEaypz63TnttrTX2Jy+eLAS000kAan6Eddphm9zkcfpOV/i+4d7a5NqQxVUBJc6E1GA4ubbL2E5eJvn8HNZyx1Q74j0PNB/vf5V7rC5wEKTIMKMZ2Z5WDoyGdNARato4yYaI1C5GT5YaugI0opCvb3Lme8+Fhxsb5FTb6XfYPSn47KvmVvE8cHVMWNmQ41yXR9Igvxau8u3/IW9029z7ap7vdIoxDVnobbG1eQRFTTEfsHl7j/r3r3L99g/v3r3P2F89Q5oLF9Jjz0VeJWLHv5xdLr4+nrFUMzbngdeqioY56SHnM6oU6o1G1Vj5krj5wyBkRPvzkLiKCuBUjVQ+dzRgeH3L//n2Oj064cvYMSRgxLzKUUjYwQWvyLKMoCvJsgZSK0XhCEMVkRYk2EEcJYRShRxMGgx6DXoetzXWSOCGOwqpGdmsWgxbOIV0FgGR10CeNI6QpyS6d5cXnnmU0GtHtdmm3W2yurdJOYgK3INQLjG54DQibmEaFCAFFWVIWpT1XCMIoZJFl1oIscHRFooQgVIIgECQqJKioz8MA9+FtfPo0U51hTh0X9QR2RwyS0vi38fvEPnkAXOWZrTfScWoZgXZ+sZWngL2idisTIOQaU32LjtjEJrTRFWD6LdorN1Dq+H7PYZtqBSOEc7/zTNcBr6mSOFZ3qe9TOSpVPed9af1f1a4Y/h2q53uWXFYLjgGUkZztfon3D/4tu9xGJu/Qj16p4PX06Kji45z70eGrl1kfTYk+3iUnZO3cWV7ev8Pmvbd4L1plp71CHsUUWUYnSRnOZoj5IavdHkJEZKrFSEIuc0pZUCLpCMGVtM9BHnD7u3O6mwYVx9xYTbkxvc5Fs0YcSERpCJgyzwISdZ+/sdrlrT/+I4ZrbU52cr76Cz+L1Irp4S5H+zuMxyfcvv0BRTGhtbbClbOvkbdOmIz3OBt8nph1C6ZGV31oP+jqd9WsWC8RO4Z8zoX/gGHAPh+9wSW+/oylNJCbgN6gjTZTpEjob64hAzDakC8WLOYLQqmqQIT5bOZcw8YcHx+T5zkyiCm0YTKbs8gyAhVQliWTyRxdGlpxxLmtTVb6PdIkJA4CKkd4xzS1LjHGUBjH0AWgIy6cO8N0MWcxyMmyjDRNicOQMFBEYVCHcILVOxsL5FmWMRyNaKctOmstABZZRpZlgFU7RJFlukbbd8PgANcmuYkDVU+ExnM+c1L4qoiHTChfmoDrjpjay1Nj0MaqgZ489UJzMXR6U6EAUfkfN3dvqNkw7uUDSjOnICMwAQ1TJD6/LlVLCWrY8uoC2Ty78kjwWd48KNtTXEIcp5LwwE614NUZyewx43ivWXqqcMuoVz74BceyM3tGr/0c7P4Ow8WIYPgd0hVBHD6P1gojNbEImBXeYm8wosQFUVMqycFPv8j5eUF5f0hxdEiv1AStlDTIuHv0IZ8EK+wIKGVMJ47IS8P+cAQSummfPEnJdcDcFGy2FHkQkBrBRhrSayfslzmZANNK+Wh9QHTvPhGGVnvDBitNj9nTkvODbf5Xr7/G//Y7f8xbb39Mf3CWTrHLweiAo5N9Sjlh5exF2oNnQCq++40PufXWPV7cbJE+t+VUehq/JX0lQRiXZ++USGjX8Notjx+1eqGqC/UkrWPUH35eQwmBEJCX8MmtO9bVShqiKOTkeIEUgnTQQ4YBaZpa30qn71RBQOn0sXme2x10Q+3SO2ryLGdlYJOTh1FCmsSsDrqs9rt0WilJGFbGKAEYpWyDygCDITAQSE2hFZGU5GWJlFbEL+OYOI4JlHLvqiudK0BZGkpdUuQF09mMyXhCp9VCCK8aMZalF7kF5jwDBFEcE6iAUAUkQUAUhkRKVbtz+FI7fNf/PlrEqd3la6L8qLNFbUAxvj+F82hwnfWEAS6AD6m1bSGo86xWsEbtZ+t3qfQ+uPa8WCVMyzFdMaBKz2hq0bt5j8rqT3Nh9CKKRghFzVp9XUz9PLdo4xmyC112HNs9xbOwajP4hhxS0x/TON8b5rRjb0oozvRf4sP9b5PKEQejP+LS6m0OdZfRaMSZwZ+tckVo9zyvI0ZIiijg7tdeZvPffZvpzgHTbELZTog6q7wclmyWu9xWMZ+UEceyg1QpSRwxzTLm5YxsOCWKu6TtDrtFwFRAr9smKXIGSciZKGGsZ8x1RDEcc6s8QRQlg6xEqS0mWUEETMd7XFnZ4O9eucB/sz/h3/37P+DqVkZnXbBy6Sxhq4tQlpkWuWJ/X/PeH73DV//LX8QYiU30fsqoWhGoWrSspRD8ytlgQg8vP4IsY58m2NaldnyxP8NxQWk07XbK/n5Bls8IAsU8y8gWU/YPD8mKkjBSDtwkKggRQhKGIb1ej9F4wnA0RmtYzEta7ZjxZEzabtHrpKx0u6yvDuh2WrSikKDJZvBzq56MCgidq1YRKLKyJAgs+/SbPlpXrprV2ltY4NLGsMgzirJwrm/rRIGiKAxxGBAFirIsKbRmMptSlppet0caxaRhRCsObPy5ofIzbRbx4KGlFq9E5VMvKXQ1/V20ac3BTHUPUfmY+qxTFcQv7cj4ZBQjdGOTHJajJRscVDRA1n/2kNySKxzrIV3Ts/eo+hsLwrKeqF615rnm6RSmtbAOlWduJcE0dwY2S2qKJR4rfB3txPfX1FhtquTkTa2s1yGXjgVv9V7lndtvMgpKEq25M/qIiTb01M+gdSOdj/ALSW1EBEOeRuz8uZ9k67e+SXAvQ81zCCdkSYe1WBMXBSvjO9xTHT5RA4bBClEQEsYJC10wN3P2DuYM1tYoVI/ZBDY3zpKhaYuSQGmCw7ski5xcdDD6hOH0Hl2RUWrDraMZfdNGdFpcvHCRvxTc49dPRtwdtvjpL14hVPWGYiaXvPm77/DNf/+b/PW/+SW6Z89ilWaGOuih6fvs3rfpElhRlrpXEOUjx97j25jSD9Tq6KMB93QpDNzbHzIZj1DKGpyUkkgkcaQ4PDxiNrN5FpI4Qhtc6kZJHLfQzMjLkqIsieOYPLeKb6Ui4jikk8Rs9PvW3zeJaMURkZL1/lWwPAtZBlAlBEpCGEiiQFKEmiy3inxtNJR+vlh9l5TS5aK1RrA0TcEIoihCGMuWwzBESokUVrfYarU4ODwkTUKSKCBxgFuJvqda19axXrQ+tcVPY6R4UGdndc+nxJPGCu6lbmsI/EE9+uNX7O4Qp1rQGOotG5w0UA1mN7n8giQEgU4oxD4lJdIEjTFjVz//jIqlNvRB9fTVLqOZqdtZVPhV8dVa1eN1qLVx2p8jqolf73mmTQOyhX9N7bwQasgurYIAYwRB2KWTdCmCE2bZgqwwmEJx/sxz1aJc77XmXqoxX4yBIgm590tfYv1b79F55yP0eIYJW4SRZNCN6UjDYDRmkO9yx2TstzYYkxIFMYFIUDJjPj8mNyVqfZu9wxHdOGShc8TshI2VPicr6yTX3yYbZeSyB5MFSpX0oi6f3Nqh09vgfrnCYHCBP9e+yx+MFrz7xh1e+cnzCGEoF3B4/y733/n3fPUnz3H55WeQQVD5Jxs/TvAqBfueTRuHHUum8tO2w0PyKbPvRxiR9mnF18/1W65h72jIdDLi8HCP2WxKFMXIQBGImP5gwN7uHifDIZ1W6hLMCIyGvCgYTycUuiRttQiChNlsAQjW1zYYdFPOba6zvrpCO45Io5BEBY3B7Q0mDdGdUxjsvlKACOyGl1EQsCgLcl1SFJaxetC1obqCIAhsFrAgxBtpyqKsWLI3BEohaacpan2NOAyJgoBAWsD1Aqs+VZfl5mwc/EEEtDrVTZ4GgpqHnUadREcASIF59KL+Y1yWCYF9P+lYphX1l9+/MdH8AixtwvsZM9rG5k72Hgt2CNWM2Xuh2O3arfjq9X92oZRYVyPhdjGwi55PhlOzLQ+eGuHyK9i3abBf48G59mbwGceMMwxJz4gx+C3bG4I0a4NN7kxPGC00aSAITAslk0p/78+tF2TjFrH62WUYsPflV5gNWrTf+j7s7aEHPVpCEkYxq/GCVqbYFjPu736fvWiN/fWrnLQGhGmb6WKKETA/3ke1BsyFIM0mtKKARV5QiJJ06woDUo6LKVlp2JQGJSNWVi7wO29e42uf/ypvThYk7U2+crbkg/KE2x/dY3WzTxiUnItjfvav/Vk62+dcv/jUpX6JqxRpVKuhlyLcWlNL86Lhu/0fUL3wWYugFo2nk5zd/T1yPSdOErQuSZKQQMXs7w3pdLusrq3R7fVRUiFVQLnImC0WTKZTptMZWkOWl2isv+7WxiYXtrfodVNW+h3i2PrdRkFQxdoj/JD77KKyr3OoBIG02e/LwKCNtjkftKZ0GcCMDvDO5tYhXdot0p3BLstzDIZYhQggcVuph1KhGghgJ+9yedi6+si19rQo7RM9CwsK2qkQqgneWBSlZ1pI5zz/6QPsx7cY15B1Swo8a/cKBJy9QNdJaYQzRekxO9l9tIJpMKaVtZ0/rDNQGVMlBvNAKitjm9cRN1QYuMQ17jrvAyuhBsQQdGkQ2i+9pn4Pp/et4cGngLS8t1YIG5qeyTQA1+K8W37CkFYIRSFoRQnk7QbfrhegemgI625X6fidKkrA6KVnyda7rP/OH6HHhxCAHCToJKQVaCKlSOWUDTNkPHuPgyPBvk456W4y7W0yB4zOkQWIMIRAosM2i8mY0WzMMAnZFpvcXYw4mE/ZbA1AatbXC77+wUdcef513ji4zX6ouTxQjDoSEUIQRWi5T2frgm13U9aLic/LW40V/066mjO1jbX2JLHjRuKztD2s/NiAri9GwGiW0UojkjRmNp0QBAFBoFgsNCvra4RhSH/QRwpJnhcUZUFeZIxGQ46ODlnkC7KF3Za83+mwvbnJxuoandQq7ZMoIg5CkiiyARRAJTafRqqH4YmoP9QLvdXZhUISSgCJDtwW5tSM1xv9pBDkZclsoZHKgrQQirLMKbRGCo1SgV1UpKwfe0ptU4upP7g0875WopFj9qZiz95IJh4AXLuy1xuGV+5Pjx5fP8bFIVVDP7rk0VAZxAx1msMSoSVGGgQx8dwwVffJWpDJAbGOK9az1EPuo92Lq3TfNHMCuO+NrnZtMK4OWngvBMNoPuWDyTu83v9itQ2Pk81q9oWd+gq/U7F2MFtWTLtePPwC6jpZaNvv+YJesEZ/4xU+vPU9MLn1IadxbmXgoxYDmzlqfb2wvquLjU12f/nnWf3kY4rDGZ28QK1twOiYMtckrRSlDbGAaHFMe3GXyehjjj9MGK1eIvvcC8wmGhVIwnaf2fEh2XRGQE7c7/HBvfv0Ox2OwphxeUxsFBEZ/Y5kf+c6F1cGXD/aZVYGXMpD0tBg5mMWK30qt7DK5mGNlM33rX1CGseqpqh9qv2k+TQnoscWHGHrbqpcnT/4CntWqWG8yCnLHCEF48mYTqdD4TKHtdotJpMJRVEym00pF4KTyQnD8Zij4UmVy1YqydkzZ7h8/jxrK6vOlUsQBSFRENKKbJ6C6ukNsJWV2ICz6jbKkvKzoYIQ9ZFKWBV2/7GqBVStNRaAFJKsKClcGLPVsym0MeS6RAjre9xUqZ5uywpIH6FYfSTbpZ4oBihNrZvVRtj3FjhxySzdSNBM8l0nZHnSis/a5fMaVG3b7N9T+lMjtOtTRT+5RKIHHBT3OFZ7bHN+qf9NpRP3R+11ppqUwgErLj+CPSZPTWzvtNQKUm5NdojDN3m59Xpj3HoFAmhRIis9pMsJTIGNI9OVHruGEA/JurqfUBEb3c+jxQKCDxBSE2ivrzTLE0b4xOrOX8Kd0zC34Vlv1u2x88qr7Beajffe59xUEwcR8zxjXpbIqISkjVg7Q6QixOo6SWeDdaORg3XmWcj7b+8yH0+Q+ZQgCNFCkeUFQTumnxraE82RCimCiKK1Dse7JEJyfABb/VX2J0dcO5ZcDkLaHCPSlo3/EF4K8cBZey5Ug8PUenJRtbpXKVQhLz8Q8B4L6Pr9tWypGdWj6uLFMIlhmhnu7+7brdILQyCU7VclGHQ3yOZzWmnXXmcyZtMZo+GQRVHQSlq0khZJEpEmKSsrK/RaLZIkRkmFknaXhiSJCMMH6VkFJq7aQljtXgVGS4D7qNL013gAIusV0EAgJUoqhKi3zhNyOStSICU+HcsPU8ypxzfZbT22PNI4m7q7qBIajWfB1VyqxFotaoatfmjf4B+DIgzLmxj6yK86p5fFDBeGXTcVPuWoJCBVq6xpxaG8x0ItiMoIv8G7ZTz1hKzHTx2w4D0J/Cef/wq89GHcVjm2li8PXuStg++wlZxnVa5VvNqgLRiYGg7sPZaXxOZTvXubPVdWT/SQoohoqx7zbESiYgfWdapIf55ftKie7DXVTknl9dQGSiEwYcjO515A3log7x5wYkbMB13iV65QIiiVokg6lEGAQKGMzXFw96MDfvPf/PfsT+Ern3+ZV197EVGUzMZD2q0YdXaDZHKLNA/ZOSkpckWwcoZsOmYgjzgY5Wy14WRR8O6dfc4NWvTf3SG6NKDox9RudfrUG7oEOU6aaG5Iatfl2s+Zavl7dPkRqhf81H30BC0x7B6Mmc1mzGYT9vZ26Q76jMcnmNIwGU/QZUm/2+PC2bN00pRcQjCZkqoAKRVxnNBppbRaLZI4Jols1JdSEoEgjkOSMLTDYkncXi51mr6a3Eq/CJ56q6XrTr9frRN44CoBNpJOu3TaphbHBFa9ECjVYBafzmofXupVevk60XDnt9ND412OnFLRuOtE/Z7aMTOfjuUUCX5yituu2xq5apCrzZT1nmGw3INN3gqCVA5o58cMwx1WuVBBrgcpOwRquKu2Rq9AvXTg3wAsoytpQ/pEOsCF9CLX0o/41s4f86UzX2ZVDhBl7YDmQdP+p+u+q4xqVB1mn2nBVhq7gY+HbO9u0UvOsT96m6DTx4a/1r1tXd9kVetK3K6WEfdWDZWJW7IpA8lur0d70eODbEhurnGht0Zt9JPVuM8Xmg+/+zE7Nz/hmQspg9GY+fQW2xdf4d6ORImIla0BZhAxX7uKwLA2z7lzaxfmISYdUOYT2nFOVgb0ggKF4cbxjM1Wh607GelCk2/E9XZ/3vuk0bLWt9IDaz0q/Lvafm7KpQ8vP9J8ugYerutwSFYYzTw3gEYbq6c1ooUBxsMhQgVIpXj++ed5+cUXiclZhCGagFIXBEFEmraIw8DmJlCKUFr9qUQQRyFpbLeyeVip8PEh7dVQEoDxanZ3+ulrHrj/8pfNpUe4NvEg7xXxNqw5qM73uGs+pTM/O/hZ1lUaKqAvjXcv8pjb9CStNVkG4zartC9uAK2bb/RkFLtPX22OqkV9g1TWYOWWWnC7JtRjQ1aAJoxACE1fnmevfJ88mBEVSXWq8EZKBMJopDGUjtE2s4vVvyv6ZAEXq/oB6+ESy5Bz6Rk+Lm7xb6/9c3754p9jPbzopBDP0erINWvw8f3nXdOsDcGfWzNXx62NAGk1ySvtS9w7eJs47ldG4EYrOhuFb6fGW7gh4QG81oeKSmIQccSsyJkXx6y9uFmPMue6J4RidDDmwze+x2g4ZjgakXRafOWVC7zwhS+BDIjTfTorEbIfU4gcYRQG+N7wQ945fptndZeN+Av0eyuYIiMwEp0XdKOMSGlGxrCbhawfaeTomPjiOnlUNNYWX3+shxTLOveHye+eDT+qPBbQlc1+aawGpavI6aTXftAVpWIyW1DqDK1LwjCiLDS6LMkWM1qDFV753Ku8/uqrpJGkLDRBlNDtBTZqK4yQUtp9yYzdnA5pXbHiMCKNApsgp1qp3PPN6Tp/WrHX18akJcmiFiF/AAZ5oBZCoEvjNAq1VVu5XYX97R51S//dQ59xuuZO/+oIbGV99e9T6xmX1x7pKlu6742bF7UW5MkCXKDquKW2FSCMxMiSRTInnsbgPEuqxncBDxY4LBjaCLKAXnmGo/IOm+KqBelKS2uZaxPGPch7Mm2EcbpYVy9nsNSOoToPMoSBy+kV7mbXGc4qTaoDVutlgfcbrYSVhsENHD9tgrRpfAM+WsZgaMUbBCIgibssR2j5AUx1ByFs4FDtlOwbuill1dfooM39/B6L7ojO1nO2/iiQUOaSwzvHfPid72NMjhAlnXbBKz/1OhsXLlp3S6PZ2Fpx47GskMZg+NatN7h9cMQ02uWCKXhGfpVO0ELoguECUhWSyoJuPmEsOtyaSM6mHbL3T0gvdGDgJU7ntrck9brPPgq0YvinQsUfUR4P062sgI1KNDqnOqeyegIGsqwgSgI6nTZZltlMW2XBaDhCCsmrL7/Mz37lp+mmKabMEFIRKEEQRnYbG5cGUbosUUoYwtAm+I6CsAH2D1mdGmPEToS61R5YtXySEGMeaORHEOUHn0eTPbtPnt24JDnWy+Ez3vBRK+updzZmWcsn3UTxeSJK4wXdUw/1IH1qGTD1eHyyStNy2mQ1QkAu0HLCtJORjvrVZLa+1bIhZoKnbQZDLPvI4h5ZNCMuWw6MTQWWXioSDpCNEFZKEPWzq5YXNqdFDdX1mOwGHaQpGHTOkGHdDEu03/uCZcNnw0BWJfLxe6f5d7J38AuwVbnY65QIuLRyiXaQklf3rCeLcIZBD9I2MsgZ3cyycck7PACU+YBP3rxG2JnyzEsX8DIeCCaHC9795ofc//gD2n2FiFK2zm9x5aUvEbT7VsVlCuodnDUQOJC0Y/nLF77IpPw6M53x3ug6ImjzQvvnYC4JA8HdwxPSpM1KBMFiyiJMuV0knI8Djj+ekKwq0ostSrFojJnGWG+qpIRzE6sa/dMn7WN19nmAhXmGZB5eJaUErVZEEAZsbW0SRiGj8Qmj0Yif/Mkv8/Nf+Sr9dogUhVUZSFm5kymlXICB3YI8UpJWEtNNUpIgsBnyH2XhF5ahavGnI20/NPYIL+ay5ErmAfd0VT5NtfCZ6me8KuPRdTaNdqi4iQfl5hWNtfOH0zH/eBRjGvFbwkWOCW8AMqSLVUw+Z9I9rnxXgXqyLemipL2fDFgNXmRc3nWeEe4czzgdqAj3HJ+G1E7ZRlCvmyACy34tA/a/DVob+uEmW4OLjIoxu8WQ37/1azVr9RIJNTAY7ILquar1A16GX29Us/t/1X17rvMF1meZ/d7lg7Z1r7XX9fiQ1SRyHNc3HH5h0fmAm394g5XtkrMvbiCjFJDoMuXOxyP++Nd+n+//0RugDHcPx2xfWuGZ1z+HSrtoXaK1lQyNMdbrx7iFw9jdY7TRvLj+PH/jpb9At9XnxfMX+bnXv8zWMyGH8YK5CBj0u4znY3YWESpMaImSkJy7OgGhuHVzzL3vHmMWbrv3pfzHkmp7p+qzP+7UVp/iR/lYQFebumMr4G04Z/vvq4xVxlYkDKz+rN/v0uv3abUTjCk5c2aLr3z5y6RRZEmGtqKFClSlu0VCqCRpGNJJInrtFq04QXl6uyztLP2cJj268eMFSB/G+zCAMTQFr4c85yHFVyeQAiWsKsEnOBdY8PVRTKL6+fQV4fSrPerJD7tLqQ3NbAS+70pqQ5pwbaWgCoUO1KNJ9o9zET6s0/N+v7mjqc2L7fk6UucsekPXYRoV+Qy1pgJjb/gsi5LDk0Ni02KhRh5vTz3Xiq1+3Al/UiNhjr1nxW/dGKihURjD1eQ5ZvmUUkk+2r9DJ+g1RF+nkmisjB5S/X5ptoO1e2+3YXmlevNQancCXsiYaCRol/7+7n7GJvf0Ok8tmjKUb1dvkHYj2fS4/5191i4H9C8MEFKgS8VimHB0/YR7H3zMtVuHMMr46MNDvvJzr3H1tVctGTCFW5DKagGwgR8lNkGNY+nG1mm7fYb/6Lk/z9ee+3kCGZNxzFH6q+StAtNus7G+gihnHC2gRCKKAiFK9kRIEodc2xlz7Y19inEPYayfsqiMzKcXE6hdA+HB7Znq8nhcxtwKbYTxMqmrXnPlrbqhqrgU0G2nxKFg2u9x5swWmJJ+u0MShRitKR1T8PlzBaCkIFKKJIwIZK1/q+7dEAsehg/m1PGmb/GDk+ZBZmdO3fhR19bf19onJXB6Ztd2xum1GoSybqPPWJpMdsnaLKrx0TjB/vIiISyJxNJ3lBSValM7OdF7MgThE4m6DvCcIciJ+AKBXiwQcYBBkU5XmQ4OyVfnBCctFvEJhDHRLPLModIbzGVClsQkChbmkJg2VNZ9avWBZSEVaFd7mDn/Wns7U6lGhfdqQVcpH1eDFQZ5l810CxMfcanzqmc3eD9T03hWLegbzJJxzRZTxXLLqg7+3yIIuLXa4vlM8G5inEdGbTirs5U1zZIPzgJdJuy9eUzQH9I527PBQPOURHSYjncwMuDbb1/j5PCI1bWU/+Rv/Qyr5886wqOpQ+DdhDZ2i3ghXBi/yynRnPD9eBUhSrQpOBnvMrsz5ePFv+HZzV9Cxqu045TZcMiNwwnbqx0SBKbdZbQY0+62ef/+MVrusXV5g/7GCCMLC+017XVuerVZ1uLvjzgiTTv94KfBRe083aiMFLQjRWACttZWCZVkY3WFQbdLGkeAqaKzVGDTLkopSYOANFQ0/QV/GIz605bGuvInuFYQKMWiyDFaV9FddsKYyqPBM+A/aTGP+Aw0JowtPjm5wJGfB1QdTfHRf3rCgNepTJpZ1TzwyjBgXh5wJI5pxWuEWcq0NaS1ojFlyVycsAhAlQEUYEqDNBELc0wQSEazBWkS0+2UjEe1SsGllEE0dMIWO4TbLNLWw3od2LoIt6I3DWk+2PS55ApTccJakBEHHSrLphNTvPa2AkaopChtakbruXtzM3LtnucNvoWSXC/GnDEt7njPDf8CeN2uqOrt8d8XrVP2v7egEDtsPbNBGq9TTCLMfMTR+B6zWYYoDygK+OrrHZ778k/SP3fG5ZI2VsQ3Gl0FMQv3v3K2Gqfi8BILEk3JIh9x//AG9/ZvUCwKonSV9U7J+bNTFuYMRwcRYRDST9vc3t9jTUVkxdjmeYgjVjZX2VkIzN6C1bUOWh4vgWtF4KuX9eqjRyPCY4tIq0TSylDgmBaV40rFGn0oqjAQSNChopOkhKuKtZUVQqWQwg0EA0GgKjEtVIo4stS/qY99GKjz0CPu+Ckm/MB5ohrL1d+nB9YPC7zeTUxKp4T3SW/wCgX7IN+ej3rAA3poc6rLK9Zsmn/WL+KJg2NEpTaUfpZjma80csljAyxDryfrk1Zc4If2IiP1IJCKhE1WdMQ422NUzNBzyUTdJ4p6iCBAuIQupcgwam7Hm14Qa0GZTInLgPb165QrX2Uqm5PUYFxyG0yt2rJKAS+223nhg49tCp6arfocCQkRs/GCNhp0iRB2HPm8DXau+RBXgRSm6mPfi5p6YcfXi+ohtp0cm59EMZvHC5J2wDyy7+Hj5Rq1s3c3loFKJFo9w2K/4ODw93jta1eJg1Vi2szVmDv3dphMDugOBPH6CqmEi89s0z9zDq39zrvOZ9e490PgfcklgsPxfYo5rK72CIMOmoLRfJeP777Hwc4tWnFC2OnT7nbIygNePffzBNEKLTGkFaaMFy0m04gglkR6wuUrHYxYMJvMKHWCISZUc3K1oOo04/W8finzo8rX8UfMdCsMqKz7rmqNYIQq8YsP63CTQErchoyCKFAEwu4FVhY5Stn0h2WpUUjiMKQVBQ0XnPoZp2ryqUTsYVuSV5c1UFj7ufmwl/1TED0pQLhsXUVhiCOrKPWqMGvc8rbdR9DqRsUMTgWAd9muNX2+6IZOykOxT08nhXT+pO7GhqXrlwz3NIfck1bquC04JbEISNUKCQMKM2G62OeovM5I3iaN2sTZglmckhUZulhgAFVqUtOhJbcJ1DoHScT524fcvrBK0bR2u4fo6phXIfjvHNvEZgPzqgBpas7qBcmV6AxMM4SsRerSGGaHU1przoPCuZD5a7TRVRL8pqrPqySoQNgzEf9bcLMreOHI8O56Ha1YSzoGlQtMOUMnLUTwEq32NjduT7h//2Ne/uLryDxiPl+wP7zJOLvBqNhn++o2gWxx953rvPjSgP5gC1Mx1iZRq5UkHuxOshN+45u/TjGf02612Ny8yGhyQrE4pNdps3Z+hU6SEhjBdvdZDvItijJDGZvuNY4mRPGE1Z7EbBmkShAix9Cm3fN1KPDZ2SzZ87ggq/rYJUhgU4N+Oqw+vuAIJxY9cNg0gKx5qvskrMCAlAIT2O1TvO+hwCeFEgTC0HJb4tTuJn+K6j7gImaq+tonPuT+/wNgjcAao6QQVl/tt+dRtmsehq/LzPa0KGct1AVWR+5FILN0xfLVTZZf7SrrRI+KHZta54tYBvAnsVi/2EZbuPm9LF8IhBSEpkM/7NINL3CQv8tU7GKyMTOdIVH0wy3irEccrdAONvB5vPII7gQ5G3eH7J3tUkpT8UJwbW38bhE10Pp+qPSjDi3nkxFRJ0aYECWcGk8oIqlYOMIhgbRUHI+OaK2lCOFS3RgoZwVSaWQUVukcrWSuXTYzr5ekKUBTu0NpCqXYjUs2piU7bZsVrZwZVBTYUP1DxSJVTORzZHmXe7fvcff2DQ7vXeO1s69S5CP2Du4zntznuHuDMjKUuye0OgFnt7fZeuUqwbzAiIDZZJe0vQLY3WHrzGmaTOfcOrjFH3znmxTzKSIAM52S3fmQza0Oa9trdNqGRCg2k0u04jMIEXImWgdT4HXxRng/a+PUFHY+2F0x/Oio55gR2g2SSnyvc+k6H5TmQv6w8njUC6butqZj+dIAh0oX4g0a7pAVW5VCSInUoIvc+eb54WyIw7D2TKAG80e5L/2gvcOa34vGv9XHBov8zOURjPR0FWWlVijshGuAvh0YzVs6EGwea+h7K+MMXmVQn3OqGtbGbaxhxbIWUd3XM56mrtc3icayqWVVzJPFdgWW7UtRJ5TxKq5KTPaN5CFIhKzGn2PCmHmSckFeRRrJPJzRkimx2gZdc0SBoEwidtcMmzeGjDYCZlFEqWxIQ6vsYEzBRE4aKhrnjmXqvva2CqFnzMsdtnpXYJqBkcxu3OSb795Edu/yhS99GXUy5dgErJ1/hlCF4H1atWZxtI/qSwhsStFSlGhj4+Ok63tLeCS6hPFYIJMCsBsCBJFEiJL9nuK5G2OO4w6LQEJomJ9MufnxCavFgM3PbbHW7pCNbvPJO7/LIk8oipJ33/02YSLorIZsnz9DMJxzv/0JM1HS75yBsM3xvROU2eX+0ZhPbtxBhS1QAd02XFl5ntW1MyAk/+4bv8bt/V3iWHDhQpd+L0HEXeb5HmmroCMlZ5ILdONnkDKs5gNIpIzcOK+pg6n0xo1R7ZC2ERzt0lc2sEa4seIHj1d2/6gNaX74+IyUfjtpj8GVuNqI6PBgYzMlgZHK6qa0ptQlCFWl3pMCwjC0jeFmjHH3abIVX2yDfza4fBh0NJng0l1+wC1P38s0bqYb15duogceAVx9jTCUlIBs6Oke/uxKi+t+KazvaTNL2jIAN/Y5o6E3rhKSi8qXVQsP0A3xFgfSDYPpE1WMn0reEk/FfIXwQQP16T6RjBACsRCcDV4lFCkCQavUHOV7vHPyh7x+9jXSWRtRWA+U+WjOeHzCzr1jLuwIuLxKZAStRZcX7i0oyoL9swnXL2ZInwBJKiIVIGRIqCLQmpIA3b3EvLxDNkzodNYZDifcPrzHaGh49xsfciHtcHx4wMlMc/7Zl+mt9kjbHWRZYnRJZ2UbrQv0eEEYdpmNx5SLGUk6sBuglrntax2ACGH/mBvHc+7d+oSJDNjeaPHScz1MT3J7q8XZayfce2aNeQDBSsKFc5pg1uInrj7HeDxDr7T40k9/kY/2NN+/dh+hPuDcSy9gTACiZKN7lTVzhVwX3Avu0SkizPouxYmmbRIuXOyxWEC+KEkixTi7xezgBkGQsL4ZsXbuHFpltNKUWX5CKId0gxCAy2uvkagNjFF4N0AN1jaEchKGC/H2hMsYlgJf8MAKdeRhQxKkguJapAS0KRGfsg3vY3IZkzXIUv8WpyxRDfbuRCp7HGNckg9BaTwsgJISvw+ZfQ4PzHdh6hxPP/zOuA1gevDWPxzLdeefvqZakJa+EEgl7Q4TFauyQFC6DH0Nu9ZDyunlQCwdau5q6zeY1LisV03FiWncyhgL2jifZfcy9quGI/8Tqmfwslgl1zim7wUzH6Hn837ZawRCS7aDFwlJa2FEhdy5f4/f/eg36eqQ58NtomALspxwMuXO967xvQ9vcX7jDBuR4PzWBpOD64Sbl1g5e4a42+PMah8pbEL+2XTKYj4nK0r2D49YZDPybEF32/DBH75P3F5je/2Y9z+6aQfGaotgQ/Lrb7zD+c0EE0R8eP07iFuavDSIICYKIgKpkCokX9h37iQJSoI2u7QUHB4ckrQSjqcLJhmgAj748C56NmE+nnHltcuIu5rv/cYHXH3l8whOaH/YYqgLttcjnt04S7x2kTu3b5KVhmvvv4P4eIdy0GdyWPLcz71CoXxgg7BkCrglrnGiF6SF4nCxw1ZynpXuBt1Jn3xyTDpYYY9jlA4xYoERmnayQV4MEZSEekGntwY6w4iIxWxEELSxhrcSYaS1x3ibhYVfmwazgkDn52vquWOo3fqoZD4/GeuZ493y7G7SD5v1y+WxgG7pLMKVH7E7LvE2UpYjrhrqB9su1phj3GeE1a1Vr++CBh6gnQ1DnRcnxNJxL/Q1rmlWwB9pWP+bSa0fUDkswfLDnUSaxyoDSCWyNNQq7p20MTb4o9RWgV0a6qi1h9/XHnBDYknmb15gKnVDPSxqr5Fm+kL/vTb1ZiXGUWFvWa9Z7hNavHSEV2+JalIuh6c3+9VgipJQdRtNa9Blyctbr6GEZLp7m/uvnCWSh7TLFlF/jWfPrrL+hRcoJyUr7VXykwn7wynH4Q7rapv8aI+ja2+TmznkY4zO0GiMLohbMZqS/dkuF9QWZy+vIFXJdHKbF35izSa6V9t89c98vvJEqBNL2sQ2Bh9FphGl5s73dvj3v/ldtF6Q5wvOnGnzyleeo301pdNt0zYdhLJS0vYzCSe7exzuHHPz+JB5ueBgcsJgcsLNoyHD4wOunF1nfFASvZ7yh7/zWwznU/TOPrN7x/zsXc1bzx6g46vot24iX71AKcrKkH4cHDEpb4Nc59rJtxnIDVQYIBAMOucw7XMAKB0xyY+ZiZJ5MUcXJ7RUi4HapC/OEqV9NIaJPmFXXGOuj2nRsWxW1Dkqql4XZmnW+3SN9k9nYPRqUqHd9Y1ADwe6RtReG9bXWVUL9qPKYzKkuU43orL4e/9CCTQ3BPQg5MHRszmljVMzSIS0Gzj6BkAE1D6BsNSe1H6HSw8RHuBMrWY2zfDFRhHNWz6i8U4fbiwcj2K3/iSz9J1w64UiSBLyLCfXBk1JBAghyUttrdPUi4Be6lTReHfTyDFhv/NhpcapHJZc6xyw+rFU+ls5v1LtWEk11oyP1jPVNkO1HvRJKroCW7uVji+ikjasYalxhTZ2TzjtnePrb6WUPLf2Mt+490e8d3+MCk+42nmJZ1t/lSgc0EoVs9mMw51b7B3fJb15h+wbb3D4j/81K9M5rV/+HMHPfRklByBdULCwEuMnBzcZFjm99iqoEG00rV6v8fSiohMuULgx5y0ESwkChQkEBRHrAQxeOsfnv/oSUbeDkT5ZjXaSjdUyt1dh65lNjNFMjkbcu7ZHKzbsz4/ZHWdcv3mLlWTKQa65M9xn9XKf8y+dQ5wckZozfDJ8h4Puq0TxgDtvf4/La32Kc20MBVES8/H0m7SSAfN8gZ4eIlqbJEkH8OMQMIJEbpCEW2gzYRwcslMWbKgeq+3P4xSYSKCvOggBx5MbtLtnQQuMCJDO89xLM0uOz1C5TC4BqxsPtV9ulV7I1a9phLYs2JMWIU6jQF0ej3rBq0lEwwdSeGi14oW2SwWeefrIZhdJ54MVq8FtjQsWPGbzBUVhSOIY9/Y0Hfjd4xq9RuMbe25z599Gqlr3tVj+7lOLWf4llkG1OqtxUOAGuF+chO3OVhQzQ5JnGcLgwFZjtDVweOnBTh9nqDRezeLVB6JWy/oloDJsOgbr2Z3PROUNcZ7BVnX2zLZWI9Sh2wJjZPX9k1YqZ7oGqxWNrG6+LPs2N81d7l/jMhAYwf3Dt5lQslEEPNv/82x1fpbZFO7e22Ex2cGUJ7TaAc+8dJb0W98h+/7HhEqwuLrK+JkLrIcJOGZqb69BKD4Yf8D56Dz4nWor5XstDtcumH4BdVpMZxvwK+3KUNFLI87/3Z9B9AfOBdZKV9olvTF4QHHjy3X+xsYq7UEXjGI+FCTfu8FifsS9Mudzn79A9/wG7Y0W0eyQ45U7jPM2ShbMP/yIxeCYyWSHfHcDc66NMZLFPCORXeKgzcH8iJW4hymmzt+YemA1WKUULXoiJU9y2qqD9tF1RmDcrhm94CylnKHlCGUG1Yj2rNff1Af+uGlkB0G1/To1iBiwagU3VExzjHhdhEUx4/a5+7TY+McDuo1seFpWGoJK9q0nqXD/O32JGyzSWdNtjlfX+S7Zq9aGyWyK1jN6vR6RB14HJB5wK9j0DdQA1ib9936sTXboDZLC+BQW9bUs/e3uUbF1UTHBB4tZ+uR1q+DngyAQAiUDFhRkRU6oBOQapRRa2S3YDRJVqW6WI1/MAx3tl+G63UtT77nl1Rv1fepG8vXzuyw3J4HRXr1gjxdPIOhCrWiymrhaOhLG+2Q3IXd5NfUbVQoBUkakrT4XWq9x9fJfIJ8EjI/3uXbjDZAz0k7CynqXMNpCO4Pc/L/8q8ivvUY2H6NffIb1+P/H3n8925bcd57YJ81y2x5/Xd1b3hcKhjAE2WSz2a2WRpppSd0RHTOhGD3qRaE/Qs96UISe+k0zCulBIYVmRqPRqN2wp5tsohsECRBAVQFlrnfHn+2WzUw9ZK619rl161aRmCqQwfMDTt1z9l42V65v/n7fn0vx6bRrXQuEf5GPVo94WV/pVnQXANf/3z+cNEspipI2ntStPXvpLBLJxv6C6anl1qtjlIp8WJT1YG0CgPf7t3OgdUEJctMQZY85vfUGs08+ZDK8xO7VB1z/mmL8nECJM45O3yeVz9G8foVH7h6TU83g4AzOTsl2E3585wFvfvN6eFccmdihsXMmeoC0p54W7ZdEWlBrn4Mv/CPZ4iqizBGZpC8c1PLvio3BK8T1MUYEIFx/N8RagkX7d/cOrOeb9Yts64/qrcSwjWvnUX+8HoWeLl9O9IJnrVvwD4DrENZPJEOrRfYhSV2gTUcs+odiEdjQD03piNEwY5AOcM7RNA1IiYwiCBlTgr5oyJNg2mmj3ff9A21X9W7sQp68bLVoFwy1tVXMv6QiPPAetNZB3q0BXn8djrbWkAOctSHt0nPXjRNUVUMkLXGkUY0jUhBFGuksBjyXJyTiGQ+3C3UJGn97jk6b7TyRT4yHEzjrze420/5cCIcPK/G1Z91fpBbxXx1pQ6Q8wIYSmq1V1SoCIhQQb9MB17InhFREKmVjtItKNqhNxP49zeGjXyLMnNFIsndtExnt+B2cC8XerS9irsC+8RL9gwjx2fj3on2sDoGRJS4atXYizkosDUq2LXYcD1dHfHD2S97ZfIuBjBG2pZUcKRGTgyNKbTm6MqEJFEmfGtFDjbcqWy3a0XW/FQ5jwMw0xcFjtra3ODn9mDd/XzEZDDAHNbd+dpPr33uLSO+BHFNs/ZzBf/IuN040VitGr15mRwYbTXgtPI4i4niT1WLOg+MZL14adk5kf9r2pVx/hxwqSkEPw7E6OO4BFajlFtKK4PsSa1quou+b0o8hrC9W5yG4U97CdfWMsFj/EJDh3r5i0O1iwNZM1V6rX7u5YBa16bDiHEC1TgFYVBWHJ/tsbWyQrwRZmlDkOWnmixILI5BKIxGhqaTo3pHuXVpD3w5mWuUar0G3PJ5Z02o6LVbQAXBQLuhrPYj2Lzp+pOU619C2hzfRm+ngOzE474CsrOV0UTA/O+Pg4X02NzbJEs3mxpTxcAxNjTSW4WRC4SrSLG3n5KfgtzMVA29raEv7uVCYvL8yt7aTC3HhNmi6YQTC93Rhe+ulYP+6ScvQ9RX4RA/ECMoatHDY0O5cS41SCTpKwSqKvMaWcO/khKPjj8iXj6jkPq+88BpxfNkvbM56AOtyuB19MsSa/taaEiFrrH+WluNyxtLMqBLfTKdqHLfvvc/mzpCt0dWwOAiOiyX/7P1/ww/iH7M7vsb2YMJ2OmYSD7hq4HTT8Prum9w6PAGn6YMFu9I44fpa4IX1agwtBWeTAcpZ/tWPPiaJP+Kb397h5OAhk8dbXHvjXbTawjqI9IhETThRv2R4+Tk2N9+kKE4ZJmDc5W4+ZVHEzDbMHuWczR36Uk+Otc+pc5zTKxmhNFFQanyRKA8faxEEApwKioTs41AEPcj68RcQFgGB8NXSHF2YoB+oHlxbpSX0D4FwjXRjJjtn5tPky+kcIXsHVfev9JFr7UsalC9aUlD2qgZSgDF+kJSEZWn55PZjiga0bKjynHsP7vHSiy+hleP55y6zMR37ypaCTmvxcb+91tuhE3T1ldux8iZIO8T9I3HhGtuY4PXr7sOme9Oi5zjbkKvuAzreFQ+ArcZtrKdSamOxxjIZDmjyBdIZtLDMT06xteXgcEm+XDIcpuwZGA9iBmlo+/2UhbXl94QQvTZqg+MsrOQEYG2jElqxHYcLbdQCOB9Fcs6jf95y++siSvoaF62ybytLGiWcnpTMlxX7j86IbMl4OiUdDKhMQ748ZrZYMj855vjWhyhd8s5vfZPJ1phSP2KQaqJ4GGKwW+3Iv5p0i2ygbUTbDj1QBh3ghpENz+1nj35ErBNWtgYsH9/9E4rBHQzPs8EV5nXBx/NH/P9+8QcICbUrOFve4bhQ3I00TdUQO8HvXn8LtfuIWlYkbHSg1caLC9qSq2u0V6flA1JQ6lMWy0Pu3h1w89YdvvX3lywWBRv6BuKF14l0Gu5IYJ1gZ+cdHpV/jNAPOCkOiNQZLhdk6XcRXMcCg3hIUdfs33lELCWRzMLJ115QwriIFuoCISlaKJZ9dbFezaMN4hdr7zXCL4Ydh9gtK2s44VoL2LdI6v06/XctsnSUhnOAd/A/6SN6Ur6c2gst59hqYAKE9JNMhmtvv5fITw0V+Nq4zjlq5xgPhlx//hWEhOFgg+Fkg+HmJpPREO0aJqMhcQDbc5llgaZgbXg6afvehT+7cRX9WtB93gLquXjn/jyfWtPcmubIWmKg68+4Xru2BTgi39/J4rg8vs7bL14L49dv2webie7Ipl1InvRoCbri2OAQzqLDXk3Yto1caPnb9jj9i0fgdMPENEGDsOf3+esmP/vzYwrjWB2fsL23wXC0ReRy7ty8yaOHtzk4O2GYanY2YwbDhGwwIMLx6JOHfHhnn8t7Y/7+f/j7TLYv8d//dz/kdOe/5zde/A/o2q671jpoE3/DQNIzNN3iDN1DcKLPAXROcH3yHB88/jPK/AimrxBvn1Erwbw84p/f+qd8cusWp6bCjhzDNCKNI8pFQdk4dJPxxvg637z6LvF4wrJektmE/fIOe9mNtQQd11lAndLRdX2wCAW5u8PKHpGs3mFrb8B3vnPE9otHjO0bJMPX8VDi1ua+YZBd4Vr8CpW+42tGy2vUTc1SfIS0ZwzEa5SyZpwnxGJFqiRaZK3uGC4uBKp3Oq6f/a0jXmJBrJeAX9+vt848XSA8d9vxs6FgTedMc2vPwXFOc+w4/PA8W8t8jQoi3Lc/z2dD65eaBtxer/+QjmPoAaN3VPWg2xsQDhDKcXUn49r2C8jW+SUENgCRFK7XoNfPR3dA1kelJfDPf3p+fM9v34v9DHwRT/zVAuOnN3z6Aazo79+xDmRtosS6k3AdwLtR+ozrWruWdjGxa7+3lxS8v/1l+m99hf7eYbZuJXRg/OSXf03kX/7Tf4WQsLe9wccffsjmdsKrL2zz4itbvP3Nd4mShDhJQap+ATUGOfu3PPjkLr/3W7/P7x5tIY6OcTcuc3/8O4zUAOFsGC8HTnY91dpWMr6l+rqjznXj663A1iry0PLC9BUune5QVUdY4dCjBDs7YxCPmAwd29uG7WbKL9wxq8YgjOF3zQbTnRe49tw7xCrDCUEjahpriURKvip5YG9xefg80F9v50Rr55Zz6MRRRI9x5RwWI+a/aFgs9tm4WrGZvcEgeQPngknv+nnsRZKorzNQY7LBQxpb0+gNFkWJs3PK6ufIxSYJBZuDiNxA7JK1oj/n55RDhHoiraLWAmNoobSOHF0argfl0PM4AK3oABhh2iWRdtlxnaPN9THs3TXI1vyDDsHaL3ugdk+MxLp86d2AXTeAQcQTf4cPe+sgJFAIwsCokFQh20pzCAGqNXefBPfPELGO7M/e8ukbPsWCf+rh1m/1sy7KrQdmtbv1q1Nf/wCckJyrvP+pY4tzC9pny/lx6hIucN4KEfgGmWvabjeJAzo714OxpxzWAPmvmfzu71xlY7JB01gGkyG7l7bJBqOgVzmaLnrDrXGu8Prf+01eeO0Kv/14i607P8UNDX/HPOYnv/N7nKRJRy145cmFHo8hOWH9VXRtfYV2/Nbpqu5DJPDO9Nt8PHuPJiqoVofEwz0EgoEb8OaVN5noXX4D+Hd3f8JvD69yRe/irvq6EM5Zz99bjTE+F+u5zZf4b97/b/nuqxk78Y7HCtdqqX2lsWggqOMjbNMwr+ak1Qtce/V5fvynf04TL8miN+k7sfa+/tZSbBWCun4VmW8w2HiIkksqW4ItqKqC+OEp9SBinlckcUwsh7R+E//O9eZ8L0/ESYs2Mr+d0cGh1jnVXEcTdlSh8IkMLiyC/YrR3k+7iHT25BOvWdiuw7OWbnBPOO0+LV9aj7R1E7Ubj3ZVQmJduJmn4FIXpBLMByGsH0QsEl+WztMTf1HtqgUe8Zk/7XbnKBKxdgv0hIEMa65c09jb6/q8a3NrP34hCZNE9Ly0FP5RqvD7Zx4xPPh2//Xz9/fWarXh7GG+9AxZy8X3x5ASlBahspu/Wl9xr+eArQ2pyn/N5Jvf+x4vvfU6r339LZ578XniwTDw70Hzs677YU2jF1IxuHqd27c/wEYCcfkF5OEB1/7ov8AvgK22CB6GTAdGbTBY+6JbXD+fAiCIAMbW2c4Re2P4IrP8hMf5e4h4ilYjhJRkyYBGO07MMc+P3+A/ff5/zNX0EuLyKwgrsdbX7LUYbLliNV8hnG8P9dbe2/zXP/7nPCwOAsb1mh1AlCY0Sc68XDBfHBCXcCV6ifF4QpTm7G1sI0jW0sPbhbhduAU+rEAiMFTlFquTV5CMSaIBQw0DdY1s+g2ce5eTU4e2MVEy9vuJsD/QEpP9HF6jzBC9dRDmqN8kAGFY7LrY5nUwDG19bBfJAH0OJv7JOHAh3kq0Cg79dfXnDed0Gvc5sCq+jFTO92a+zIoQ3jssAqhoEWhn1wOZXgOTPorB114QtqcTPH3SrnCfBtzPg9/1GN4n5Wlj0Ff6+qzxedrRAvO5Pg/+gvLUVkBPOec6vWDPbff0u+z802ExNCEWep3TBTDO4qzsj+/wFAM+uqKjG9rjhIy137z219GddiEX8tXLl6LpfhrEgpZEeMlFDxJPbfT4hM0q1kDsr3q+f5fMwZqW3K7Qv5I8/QDngry/oPShSuevtT3ek9ryk9utWzHymSr4hVzIhTwpX15yRJsEsoafbbHf/h1tw6rabQOnteZI8sWE1/f5LH31q5L1c396AZBija39VflO0d+3Wz/o+hUEjmo9Ku3J7/0Xa4dttX4h1oJtwzbnON3wcQimP3cdImTfuScrpl3IhVzIs+RLcqStv7herZW6B6O+yUVPkTgcqt0v/LQUepukdr7O5f8Q2mO42i98oBbwP5t26HmffvO/iHK+fi3PJBoC6LXhLuthZee36+kD1zog1ugdKdecYWunkFJ8phXioKvT21ovF3IhF/LF5EuhF5Tuyei2CPC6J3i9io93xpxXCVuuse1k76z9LIz7Ky3rXOmXepJniji3OFnrQjWpdv8nK5atH3rNgx82Xj+WC46eZ2XfXMiFXMh5+VI03UgL6ga896/Vdtvg4labFd1//d/04Ny+2WvaVKv5/qra7V+2nc9fRNarlH3KqRaiB74oGH8uh70W+vXESdaO0X60dl2uj8RYp0Q84xBooHAf1vYFQtqynC1PbZ1AXai6F3IhX1i+HNAFmvXAWBeCO7owJv9x3yjFb+RBud3nqXEGtJkgzyr08izp8PwLK2efdZ4veP41yrR3Hn7BU39qQ/GprwQ+29x0sPsZ1+UCp946yUIY1BqN212sBKxZz7xZoygCrxAaneAQF5zuhVzIX0C+tOQIRyjpKx2EXOceKJ8sOQFdrB8OIdeqDD1hHnca6V/aaR407C/Etf6KgMunAfdXl/6I68WCPu+yBKDWFrJWOX1aRlsb6udsO96hMIyx57cN1INfKD+7J9SFXMiF9PKlNqaEYIau9ZDpc6o99HpYXScQnoIda7jgHWi9w607z1/iOv8ijEIfMvWE6f6U384nMj95INZG4C8vbUbOueIz6w68c9sKnlzh2v2fnjjjzl2jcyEpAl96EttrvBfRuRdyIX8x+XI03eBgcUJ0xYHbTKv2ZRbBjFXCdSmIXfrCkxxhu5/7NOj9ahe5doJf8UhPBCx0Ytc2ar8TYq3p7l9aBG1PrycjDz5PwuOhrbfalqhzEKpyii7lui+pvbb/ehyyw4cIXsiFXMgXki9J033SeeY/b9Nl29Llnps9X8X9nNn/1HfZH9vaz85O+6xr+gw9+quRAFDQ3l+vof6luhY/je9tvWOfcf5+515T7r5+WkxwF17W672thutTMV1IdL0A3Qu5kC8qX5qm2763UrSc7HqtdddzuK365zjPT0KnebWhr5/S6Frw+B8kaPeznVYQru2JrcS5358G6euFfOg19o5W+RxZX4E6imBtfLpU4CfL53y+rGP2k1TCsxYmIb2a3oWZuc8OObuQC7mQT8uXU8RcrDO3rqMFHHQtUnxR7ae/3H2tSl8jQLqwg2gddOsgd54P/ixZD6Z4yhmf3PpztxKf8fsXlfM1k55+aR6wuwKA63rpeU63W3j+Ytew3r3C/71WHm896qL9Yx2oRc8HX/C6F3IhX1y+lII3F3IhF3IhF/J0+dJKO17IhVzIhVzIp+UCdC/kQi7kQr5CuQDdC7mQC7mQr1AuQPdCLuRCLuQrlAvQvZALuZAL+QrlAnQv5EIu5EK+QrkA3Qu5kAu5kK9QLkD3Qi7kQi7kK5QL0L2QC7mQC/kK5QJ0L+RCLuRCvkK5AN0LuZALuZCvUC5A90Iu5EIu5CuUC9C9kAu5kAv5CuUCdC/kQi7kQr5CuQDdC7mQC7mQr1AuQPdCLuRCLuQrlAvQvZALuZAL+QrlAnQv5EIu5EK+QrkA3Qu5kAu5kK9QvpxuwBdyIX9N5Hv/8HknQmdN0XXYtOFvEEL5H6lQMkIojZQKKaXfvu1k7SSC0ETU+XafInRSdc43Z7W2AWzX0NPRYG3TdXX+9HX4rfo/RfjOH883Em2/suFzB5iwnwNhcc7iMGF7h7UGh8U5g3MG6xqsNVhrEZZzLVC7wwvRXVffV9Gda0oqhEPIJ/fr93WibbGqkFIjhEapCCH8mLb3JoRbG3vR3vq5xquf7u0ouhMKoVHtj1LhR3bNXH1TW4l0Yu1ZSJwNJ3G+9a1vvu1wGPycsGGcz99f/6T8//4f/8cfP7NV6wXoXsjfaFl/eX0XagCHlBKEBOkBQkqNFBqxBrg9IAhkizah83XfOblto+xQSuOcQTgPjgKFw4Ewz7hCDwQCEQBl7ahCemAFWqPVd25WtMDrUcXinMQ6g7MWKcE5QQsf/hBurbN238H7s8aq6/XtngCeJ/5u93M43woc3w7cX6fDWouUFmsFUkqklGuLydpi1J5aPA1wObdwdedbA/zPuranigCw4cm5sJR+agP6Pt79Yuk4D8pPkwvQvZC/0eJfkjVgC9qkkCr8eI1MCAVSIvA/IHCi1ZlEt7cT/bE8EAj/tluHcwKHwGI9WFrh/3Xty8s5ba4FDCHOX1u7nYcC22lwzoGUQdMV/m+/lYFw5U5afx3CghUeB3FYJ3HC9GvEk+Pk3KdAuL/gAMB4zdHftevuxeFv0eG6exFOgAUnHdY6pLTBGqBbSNrxc+19u6dfRw/CYh0DPwXOUq5d0NpV96AZ/nZ+TB147dybFd04P3nvDvsF0dzLBeheyN9ocR3gytYWRiqFUEGjRQXTVyKExEmJFa3WKcIrK5EtAHfg0GtdXhMWOAt2HWMlSCTOqXMA0Zrk/vcebFvQ6DQ3HKC6O1n/1wNVq1EHPVaIQCmAdRIpBda2x/TLgQdofw1PAtyTIPYpDdK1O9Kqzx5sPb72Wnq3GPjrk9hAlzzrOZ3XZJ++ADz9AP14PrnPE2PWft2B63lAbhe+ln5qF7Vz1Mcz7qGVC9C9kL/Z4ryuivSg6vnaVqsVnlek5W8DhyuF/1nTQAODu/bC+rdQBvARznlt2XmAt9bijEN0JGgLKq2G216gCIAv/Clbbe0JjdRhgwkfjoPEYQKQttRHuAd/BdigvYlgQgvRani2WyzOo8inNcynUQniCQBy69fbMgVuDZvD4uC61YgnNMdudDvAfZIH76+vR87+u3UrwRMG/vye6mjR1npuyB/B9Zp6sFtaWwaCFSNku73r+N+n0OGfkgvQvZC/0dJii0AghUIK7f9FdoAohUQIhQtg25nIrQba8qmiff16kO4o14AyMujWxhqskDgjwNYBlPvr6uliGRxKEhkcS05YnHB+HzgPkM527721zlO9ztMLQohgvoPF+sXFghPKQ7NwnjJxTQfi7tzxnybiib8cYg171nTFAGY98Lfg1YKtDXyz/1zgZFjjHHgapd9n3aknOipFdIvaZ4OfCAtS2PwcUPfPqtN6O168vZv2nm33uT+CDUzS56u6F6B7IX+jpaUNvJbrvem9o6x3mPWarneatRqnFLIHX6F6cHIigLkH5JYuDF+CNUhRewrA0AFP60Q6TyuE62u14vBvSwkIIbA+7GDNBPb3FlTJTjv0jiqHFDpwqf7c0imsIWwLFu/ww9nAHHcQzDpInQO9LhSg19rbP70mGBYjJE7IoDtKnOs1ag+8/hqxPeXTRYQ8BUw7M/8zkPY8ELYWytq+a8/M/7OmcdMr6b07zZ0D3DBqTz330+SZoPtP/sn/weEEVV1xfHLG/sEhx2dHyETx1qsv8+rzL7EzmRKJCFM3nJ6e8tGtW/z4/V/w4c27zGYryspQG4MxBuccZs16UGFyaylRSgR2yvNfsp1fa5PfITHOYWyDbQyNsThrsdb5z/2y7c2mMIYuDKZ/8HZtrfKmomzNOan8Cu3arYKjREiGgxFvvvM1NqdT/vbf+l3Oliuy4RDXGKIowmG5tL3DqigRtuHg6JD9g0MePXzIvfu3ee/996nqCicVLlJYrbHSeX7PWpx13bmxBtdYXFPjGotxDmFdoMucd9oI7/eWQuCEpA1Dsu00cF7jsGG2eH5uzQgOGlnrw7HdBOr9137eORAWgfIT0XlnkA2TvPfqurD2h+O2NqSwCCf9dHX9Vqydozp99MVn65cgqtVuuygFFSIXRKAYesagnYuyAz0PwH5/D8RS9MDSRhSIdfQBpLMYazAiOGqEwFqHs3YNNwI4SAlt6JR48hX3L3+HOUH7ap14Uoow5i3vawPPC8bhzePgxJLWeieg8M/aR0bZ3lnofIiZfQqd0N2jCyFzCD+XWbvkjmMIIBs0WT8/wyg7D2zWeWefDPPX4IFdBnB+Gt+8nnLg+eF+iegg1HXDGs7nj2WfBOXzd9guB+Fbtwbv68Dr6LXxZ8szQdfWNRaoqgrnLEor0sGQrZ0pV69c5bkrV9nb2CSLMrCWxWLGdDxiPMwYDjN+8eEdDo7OkFVDLSSN8bGC1vpV2ViLwE84ZQUqcFla+gcjpEAL4QFZahASh8VaidWWumkwjcEYi3LeG2vCqtoOugmPwwmHcfKJMJneTJQIdKRJ0hTnHLt7e+xdvsp4POHS3mW+8fVvsrd7GR3FHnSEREUKWzfESrJcLUBEOOe4FGVcvfoc0W98j4ODx3zw8S/5+KMPufvoPqfLBY0UNM6RlwVNXYPwmoR3yIAQ3qMupPSLVff8RT9pWk1BCHASpEOsza4O/DqHTMARQfe5V2Rcx6+BC6ay8y8e4IS/Jr8IgbMB0Akg1I2jDJBqe5BCdVqK5wq96R3UC++Q+nVLiFDoAFcoD6pS4sKYCiF6aoE1DVcIlNIoGUA3ON88vaA6LRe8+elcNzm9mz5otjYApmufSQCUDuTbmODuWL1m3ALGp51c+HcoKBf9nuBjVL0SYtprFdbPOylwVoWTNB5k2kVWSH8fTwzhU03qXj30M6JVnALgdtpxGz7XLUwBBJ0PI+sjN+gWgPXznudtaRnb7vtz19ZaLO0R1+Zme3LveFzXdHvFYm3wO+A9N4PF2m7PkGeCbl1Xfn6YhjiKmUwmjCZTrl7d5crOJXY2t9ne3CKLUgQwGg1Ik5g4joijlEGS8cEnt3n4+Ih8VVI2II3ACOEdCc5PGisExvrQGyUFTjmUkGg8mEgEWgqUklgk1nmtQAmo8BqztV7rlWFi24AkJgy6dX6ltK5zOQRT0R8bPCC9+fqbvPr6W7z99ltcvXodkCRJjJSSs9MF8/kSpRRWSCKtURIWRckyzzHGUDcNWZrQNJAXS7LBgG997Td46/WvcXp2wmq15N7BA37yi/e4+/ghK0N48Ux42AEgpcTHdNIuyrRLdbdQCK/99ppO//Sf/NzPNX+/SvQT1Mgw0brwwn7CeaCWHQXndep2LG0IDwpjt3Z1HeB3J6b/1LVWnOCLaAVftvTUgudMpVRI5UHHiWBGCq8AiEAl+HhSjWwD76X/ly7KQfiIBxQErVOE4HpvNguENeAinG3jaQN4uTXOUrS0xVoMLt4EbzWr8/rckzfXPx//CGW3vRQ+kkKiMDhkCN3q6WHntV7nr7u9FwF4yuHJ2NXz4lpStF2wvVIdlIQwLtZ/56eeCRanCCaqvz9CVEkXftdabZ+aOr3+CWvabhvudW5Y3Hm07LUahFgbz3ae9jfif1sHaQjqBuFaPx91nwm6VV2DMSAUSRKTZBlpmnL10mV2t3YYD8cMsiFJmgIQRQotdSD8JSrSpFlKkt3iwf19ZvMVdd1gjKABGuuwWHAWE8wIg8QhPYkuQBjnTSxr1zzKIAIIKysRwjsFjBVg/PF8GKRA2uA0wANua7KEBRelFHGk2d7Z5dU33uA7v/E9XnrhZYxtqFY5i8WSoqqCp1ehI01dNzTWMRikICTVasVildPUNUppjo8NVVUyTBOGoxHGNJR1TVM3TAZDvvHKG9y4dJWb9+7w4Z2bfHznNvPFAussCodwntqwzgazvn0R2oU2aEUixDsG7cO1plfQSjtHS5gzCojaV0+IzmCyzoXtWx3ZX4PnJK0Pawoah5AOYbxfnE4bdsGcfEIbgzDhWzN3na98Wt7TVy+tZtsCrpDKUzYeXfw9BueONzBkANvIa7kBeFvQbjlYhMRzmO2CKTsAQ+Izv6xCWt0vuEFhkGHRJVxCqw2uZ4I512ZHrQOuoNXW/J8ixA23c6jVGp23jAhapwvxx0IFnlj0dBLr0QJy7ZkFTf1Zg3vOxBedht6PSdB8bTDiRB+Tu+6APO84exrgnjspnQbhpKfvntB423tqR6xd8NoQu35MwzwV3WxmXb/tDBfh40N6Cu3Z8kzQlVFE3VQI4dDRgDjJGA3GTEYjxoMhaZKidQSR9pqQyMiALWc8Z2UdTgqEkkRacf/hPrPZgrJsEI3AGYO14IzpAvmc9eaWcQKFpUGAaOhi+gJ31r7ISnktpV/9BdbKkIhj2veGFrGs9YAjpUbpiNdef5U3X3udV195nc3NbUzjODw8xDnLarmiqBuauqZoGpx1pGkKQmBsQ6QikiShrmuOjo5oGuu1AxyDQUZZlKzKitEg9hPQNBydnYKEsqrYzCZ85/V32JlO+emHH7JYzClXeeBYLQKJoueYPVi2U991k7VlV0Uw3VsFzbUmfTuzwu9CgCJEZApPDNju1einpleOA78uPOzYAEYuOF0kniboNOuOlnSBgwuLnguB+CHF8wnF5Ncmcj3jTGoEOtwP+BduPSVYIpSnEZSSAXB1oBja1NagoXYvZ3hZgznvnPXPSAis9Fqyk95OsNYDvNe8e8++z959kkZo/4Y+K63l/vvTAgF4A1yEtS/AxDnzXKDCc2xTiNuFGGjjdxFhQWFt1pw/X3de6Cy1MNoQIgfC8tBpkc6Ghbm7HOkViqci7LMmj8M5bz04IXFOduPYOulaaqO9hhZk+wXh08C7Ln0MdeDs2+3FU4fhU/JM0E2TDIyhrkuEsygpkUqilSZSGq00Uqv+KWuQiSYxKaPxmN2dmsI0FFVFbWqQDh0pzs5WVEWFqAWqMdQOGpw3W4LG66z1ky8MhnVeiVXST3avmQikjIKm4ENLtI6ojZ8Mpig8neC85jAej4jihHQwZGNzi52dXb729te4evkqWkVY09BUBYtVjnWWfLXi9GxGnucgJEprzpAhO9RrOJGOQSmKPKdqGmyYkLOzM3CO0WTCapixOfWLlZKCs8WS2ji0kCgp+PrLb/Lqczf4yS/f5/2PPmI+m2GdQEUxQnhrQwrB5sYGw9EI1ziOjg4wTd1pLk4I/14I/6b4hy/6yd29rJ4v9g44Fzjd7s06pzdZ17tgWs1XEVJPpeteqpYn9taFw7q1VEw49zK1FEPP8f56pU09lcIDrp9zMoBtr90JIRFaobQHWimkX/C1RqoILUNYmWgZweAYdn4EnfD+Cw8CwXmqJMJ4sLYWlHSdid1ql9Zanz0maXGPXtt6+vj14+2vX64BQhuL2odKtc6f8FytP1EXmSoCBy8IYIbX4Nvvn+RE166pZ0dl9yNE8Kt0eNpeRw/IXXQG3pIT1oFa02Cfcsf9uLS/OoywCOcd7dbaNY29nX9h73PDGBSITlFrFzJBTzU8IeJTvzxTPh90rQ3AZRHO0dQ1dVODc6j2FbVNeHFt8IZKkiRhOBwwmQzY2dlkUS6omgpwKKmYzxaoQlBWIVrBWE8PWOudSmHCWevnrfc9OIxUKOeII69ntau1UorxZIM33voa2WDA/Qf3efDgIaenJ1Sm8cUtZMzu3lXeeedtXrh+ndFwjBOKsqpppKUqCxaLJas8p25qTGNRUUwsBIvlkuXxGcJZ6rpmMByRDYaMhqBlgrWWpqrJy4pVsaBpDFma0VhDVRas8pzpKGNjMmY6GhLHCdYYtBQ0xpIlQ77++ttsjsd8fO8+R0eHLGdzsJpv/8Z3eev1N3jt5VdZzub88Z/8e/7sz/+Uw8cPvBsa12kUreHeroN+0aLXWixYKQL37RBdXGcL092v3qERUlVbs1NikUJgVatVi/784DVZGzi8c9pCr966oIbLLzZHv1RZB7m+MAu0QNCFbEmfOKGFQomWw40QKkJIDYFSCFZzCLfqwfOcI0x4R7GUPsPNSYVSLQDSO5nwC1pLMbXo1oVpdR+1x3ZPvPdB33b+HesZ4DY1GFqw8+cN4WdOrmmh4bidOttblD78gB61xJPGdbC+UH5shF90vDXQ0x3rIXnrencfprfmn/hsBbfbs6ULcCZEhphO42213fMLVquprqkcT43NJSwI8txl9DbiF1Mingm6Wkl0FBPb4NUUYEzNarWkKAvquiKpK1Qgvp3z6qi1DVY4nBZESUQ2SplsjNhYjSmqHGsNUjnUXCGKElk2qNrQNIbGCYQxfcokDmN8MLmyDqUcDo2SDin8a62k4vkXX+Fv/52/ywvPv8jLL72CE5Kbt27yySefcPv2bWazGZcuX+LGtatMp1vgLGVZczZfMhpkHhgXC2azs8CnSQwedGkaVnnOcrXCNBVKCKbTKdb4AiI45518tmG5OKM2NSqKPSdrDVVZooRgKbwHOFIKhSXSEcbUCCCKE5Ik4+o3LvPyC6d8ePsTHj18wP/8P/iP+OY3v8W//oN/wb/8Z/+UWGnefu11nIQf/tuc07NTz8m2piV4/aJdD3G4EJvjPw8UjiQUXlmbKh5j/fTpHJAW6ySq05D9BqpVVWzQaoNZ6tWY8Lddf0tsoEYC8OK+6Bz9UqWtpeBjWoM2Fj73fK6nFHo6oY0mCE63kMWGUAFI2vsS50ClzfLyjiTrFxzhAddKhRY+JLJHl/ZfjZI+KgdpAu610Sn+POcWtKcMaguV63jS0k8hbgchDF11r7BKi242tVqeCg6y4FxboybWr7rVqrvU6i7RpAfW1hmMCBAm2gvr457X6044XHcP/in15r0/p1hbG4LF4CwO76Q2tuXbFdbZoP235t3aHO1vhw5OO01EdJ89ZSI9oTF/tjwTdE1TAw6tI3Sk0VqBg8ViwcnpMZMsJYoUaeIPY43BWkdZ1+RlQVlXGCxSCeIkYjhMGU8HVLbGSVCRIs4jilVFsawo6xrVNN7JRgiHsR4AGgcGixYCYSyNaZBodBJz9bnr/N7f/j3+5I9/wH/1//ov+O53vsfv/d7fY2tzl+u/+zz5bM6du7epbcNqWfDg4SPKskRIwSAbsFotefR4n7KqWC6XaKUZDkcoqVktV5yeHLFa5pRlhcAipKQoCgaZNzWd8VrycjkPHLhEWEtT1xht0dpRVSVCOAZZhowiojgF5ygrQ1XUUNWkccRysWCaDfjWa2+SffM3eOetrzFMUv7+3/ufMJls8H/7v/5n/Py9n/LNb/4G165fZ5EvacoG0/JY3WSBNmxOBPLXAdI6lHBI6zVO69p6AO0+YT9HZypjvONOKhlKvbRONv+vEfhY4nY/t6ZRObpJ22rF3Uv6V6Kac+v4ajlnrxV6Z62n06RSnlprQVZIVJsq3CVQtE4oOnOhBYvuI9YcUsJH5hCcd53pam3nn+i5QxUiXFz/Zj/xhnsnXYCzp2iDTzri2hjtDthcu29b0Kd1yhLAqz2o7KHnCfXTtdpqd0wZ8CzUrehGnDApgsNMCEQ3c9tF5PxNiPZ8Yl29cF2UhOg+J3wexluYEPFkOh1dhuP0zroedNfHrud223O0Vks3qf9S8kzQLYolUiiU1iRxjJaaxjQslgv2jxTjQUqSxmg1RAiHqS1V01DUFas89yZ5vqJsfJyvjgXZUDMyCQhLnEiKPGaZVKxUyWpVUJYllRAgLE3jg7G9xuQH0hqLFQbTQIXgyt5lvva1b/BP/8v/ko9v3cIIWM7OKMuCr3/z+wyHA7SSzBcrzuZznPPxsXmeMxoNiaKIYpUTxTHz1QqcZTQZIZxiVRacnpyyynNWZUFVV2gpSCKNszAYDjDWUBZLVOBylVDkZY5z1idc4NDRlFgPUUJwdHDAZDxiMpkyGGSMN7dY5QVVVbBcLoh0hKUmiyNeufEi0jlOj485PTrCVQ2bkym3b33CD3/wh7z+1jvk129w89ZNbGXb4IA1I7LVQEKwOXTB+O0rYMN25wLEnZ/MNtRfbYTngFUbLC9BiT6ioQ3X89wZGGc74PXah9f0Ws1GOesjWJ+MtP81iJSi18i6xAYPHlJ62kqqkBosAigJFdKB+0wxKfvMM9dqUQ4CweO5yTZszL/6ICxCSSRRiF1v6YV+0WzfbSlFqPcKfdFa0fGsvXNI0K90/XHafzvga7VeWuANERciXFuwbHwkgyR488IesptZnSYcFh7abD78eLZHCat0d852kRHd4uJaHO6vq1OZz4Ow18W8o7mLIT+3CLm1bQ3WCqyQXQo0+NuT3aJm17ZftzJEd77WwdYqEG0I218Ge58Juk1TIYQiVhKtFZHU4ByLsuTg9Jjt6ZjN6YRhmiAl1E1DWTeUZcWyWHG6XLBYLVmtlpR1jqFCxY5kqHAyJk4USdIQ6ZhIaLSULIVAygofVCZorMGZEJsYzOjGGISAwXDIa6++zr/+gz/g1u07aK2J44h5XvCjH/8ZOh5w9co1pBAcHR+zKEuEEBjTcOXKZdIkYbnKcY0B6xgOBjAYYB3M5wuKsqSoK2rbkGiFqxXGVDSNQgKJjojTjNVyQV3WWNOwXM6oqoqqqUmSFIGnaDY3t4kjzXgyociXzOYLhBRUdU0UJ0RxzMCNmC9X5IsVgyTio08+IUszZrMzzmanPHr4CB3FTDe3qJuGg/19bly5xunpKUeHhz4j7/ycW7OGepoBPN61YNxppP18hO678Go4C07ipEAjfOJASOlwOIwFY51/Xu1EddI7gVz/0rSZcn8FmAWAwBsGIG1BVeITHVSr3fY1dLti2118byhy3tZbAFr3kWuP74Lh7xr8H22SgOtMYSl9EW2vANs+K9K1Wq/swMGJ9jvRnbPVWp+CGeeljYgg5HCtGx9CdgvGOjsrggZ8roQiijaJBwQujINcX7jWNVYRtNgeewOWBn+BCHOlA+Ewbmv311oQrlvCXTe2nxXz7a/ZYGyNsA4lbFhcWItS6bbuLZM2fTosMn6sWw26jWhRXfTIF6m50MozQXcwGFHVBcbVgEUpQWP8lMqLilWRU5cVpq4RWmOspWkayqpmmRcs8iWL1ZJlsaSochrjQ790ZBmqGBNZoihCixhp24kLMlfgSqyooRGIoNkaazHh5ddC8sILL/Po3l0ePHrMcDggyzLidEA6GjEYjDg6OWRjMkFHUSDxHU3dcOnyHlmScHo2Q0rFapUHIJdoJSlXS0zQzuumZrFckC9zqiL3CRHKZ64Za8D5oO75ck7dNFRNTV7m1HVNYyxKx6xWK/b3H3Pj2jV0FLE7vUK+XDI/m6GiCKFyBoOMJMtACJRW1HnB+x+8z+ZkzNliztnpGdPpNleuvsBgsklTlcRKs7ExZXtrl9V8jjGGpmloo0BaL3HP27ambkghps8yM62JKVwwv1oNxnX+BSttp+PYYITi+sSKrv6pwwPy+XihTvMFF2KMv/A8/dKkd+JAq7m0INinBYvus96x5mN1pVBdCGOrvXWpIaK3OsLZuvO2VMz5i3Eh21GEhWrdtPVZcJbzXvjexF9nHMK+HRPRUxxtQsunuV/Ra730z6o/5loJyZAZ6ULGYR/jqzqNvxXZEQdtYSBvxXZYLELqcktl0Wudn6VGnou5dW2MeQugT1IBfuFyzoewImxvqYRr69Pj+2fVF/lpF1LZj2uniLTH//R1PUueCbqbO5dYrRYUxQpnTfACGp+xY0ItzjBJlVBo4dt9FKUH3VVesipyVnlOUeWUTUFtS4SCOFagI5SyCGNxRnYTTWr/8FQhKMqaupHUCKQJLUWED/+6cukS7//sZwyGQ8ajMZPpBhub20w3tkgGGVpFHJ2dIqWPULDOMRmPsXXF8UnF3t4eRV5ydjZnOBqQRhEP9x9jm4Y0iThbnDGfnTA/O8Vai1KSNIkZZymTyYTxeAwItNJMxhMiKSmLAlN7rdeamtXiBFxNohXHJ8ckiyXD4ZDJeIQej8mLFeViSVMVWCE6KsUYy2Rjk7IqyVcFr7z1LulgRL5ccsNaGtuwmM9RSvL66zA7O+Hs5MinqyJC1lhwsD3hjVa0BmSY6CG4u7XmEMG4DHPQCdEl27S8pYAuF94KXzhFWokVFuXaF1d6Z12vP7TKCr3O/esVzwB0rx0AQsoQmijPAW7749N9dcfnStcXummdUz7d2Ycs+UWwBZPWUec9+211Kv9u2U4D6wzsVrttnT1rBXHOv+PnR7PlNNuv3HkEDd+0KdkuXGtIDw6LUGuRCNdq78LPGbGm/XqzoHMutjw/qPA622DxGED7xVz4+Gd/GoUT1hfsEcrXFml507Vb8PMpxNLiA9BaP0V7f/3C13PSPUB6+ksQouLCV6L7aQG1XyCFU74+xTmaZo0K4dML569cZWxzc5skHTCfn2LrgqqqvAOrjZXVkQ8KR6KCuWWso6wqVkVJUZTkZcmqKCjqktrWGFd7T7AUiEhiG0mcOmwtaTMi4yQmjhPiIkIvc/JViRRQSxEy0xSDwZB8tUInKbvDCVsbO2xubTIajtnY3PK586bm9OyEk6NDirpmY2OTxjTMFzUvv/IytjGcnZ6SpglN1XD74SOMM5R5QWNqHj96SFmWpEkMSGKlGAwGTCebxEnCYDDEWOfpgShmNBwTpwPi45jlculBR/gQlcVyjhAOaywb4ylZcoPJdIMkTakGFSdHhz6hxDmWyxUKgZIeGuNsSLnKSeKMq5cvU5sGiWS1mSNNw3Q65e6dT6jLnNVqgbMC5RyNbY0wP1lUpwX4ySLDC2WlV4f7aSeQDowME9v1k7Ofr2Fr0RlgaCXAypChIzs+rtWyO7NWCHqHyK9b2pc7OH+k6OZ378jqgRcZed5yLfOyM0NbbtTvRZuF1ufzt2DZ88HebDfnzWjEued2LhOt/a1z8vSm7Xo92vPaoGiZjPaRhJC2T2/rz+6Lt3dAvZZg0N4ZwlMKCO3jmhGBI/WftckyTiiEc4y3X+fS9d9gvDHFlScc3v+ARwcfY5pVAOQQmujaEMU+4+3p+u7as4Pu+vw4tvUhWu09LHVOYlzjFwHbJll1y1tH9bSj4HncNqtwbcES4jPB9VcG3WwwJIpSpFQs5icsF3OqqgIBUeQB1wkfz2msozaGsq5YlQV5UXjQXeUUZUHZ1FgMSIkWEcJJbGNxTqGlItKSJLYooWisIUkr4iImSWJmesFqmaOrUBxHa567epV4MGI83WSysc10c5vpZEQcJ6yWS06Pjzg+OWZVFmitieKExXLBcDjktVdfoywKTs7mDEdjqqrg3v17lEXJcnHGYrkABEkc8fprr3vNXkqasqKsarIsYzQckCUxMkmxztGUJUVR4NwYIWF7y5CmKY1rOD46oa4qH1ZW1yxWc/YPDyirkuFowmg0wU43WSxmOOeooor7Dx5QFwXD4YAkSTk+OcKZhutXr/Pa2++yubnJtvD560Wx5Pu/9Tuczc4oihyhBHXlY6Jb/c2/KK7XMAUeUIMbW4pWlxBB2+lylp7QBMKr7hyq1YTw2pGSDicDSDs6rVbQphoHEA+Ux1+F2gvQ3rXtONoWcD0IS2+Khjhc0RXGkaGsY6gC1qbt0Zv8bQZab76Cf5kDdeOsP28XuO8B4zxwug5Q3JMg2Vbrco4u6aXdpz3KmvOspdgIzwdChua5yAZ/3HU46vE5zKauf1xYOFA4oUjGu2zuvsyl6+8wGU2xzlIXC+4/fEhzsOLN8YvMasGfPMr5xm/8p3xnKDk5vMPZ7C5nJw85Pr7DqjhFqYg4VsyXx2AKpKvWtOXzch4AQ4RHlzovQy3eNXi2PrEdqZFOdpqqn+Nyba6LdkT7ok4hRtfaTwPrOs3zefJM0BVCESearBnQ1BWr1ZLGGu/NVRonBdb4MnW1MdRVTV6ULHNvEq9WK1arnKKpaZxFKIeWConGOYWnH705IKXzhXLiBIslqRPiOCZLEnSkiWLFallQlzWRjhlkGVVRsbW1x+6Va2RZhqsLjvYf8/HNj1ksFlggywbUxiBUhDOW8WjCwdGxpwrShJOTY+7evct8PqcucpTW7F25xje+/i7f+fa3uLR3GaUjVnmBVJKz2YzDxwc8fPSQIi/BGbIkxsWa7b1ttra22NnZJk1ShsMxKtI0dcXJyQmf3LrD+++9x61PPuHe/Qes8pIrQjEcDplOJzTOcnp6ShzHbGxMefhgyf7+I8q8JE5imqbhzu2bHBwd8N3v/haTzW2KPMeYhheu3eDS5SvsHzxmlee+kEpLBwjRqTnrSU2tudZOyxYkO49z0Ix6OAmmYwDlBhHANWiC9Hn1zrX56D6+UoaIiJ7C+KtBMLSZc14j6iMRfJZa0F6lAtU2pexrNXjtrg35WjueawHX+AUtfHfO6UUActdW+FqvSeBTv1s31TrofioSwT2pXYlzANB9I1prpk2MEd1z6nXJFqF6E7slFixtGUtA+IJP0nm6IBnu8cqbv4+avsTm9h6LVcVhUxIPB5SyYv/gI148fED+8Z9w4+W3+GV+yL/+4H2u3niJN7ff5Y3nvsc8XxAJGCnBJPVKzfHqEZ/c/RF/+Ef/F0x19Klnd37RdoHC6aM5hGvjdc8tQxgrw+iqri5y6/htF0UPwG1SUA/uXsFoTYZzp//Cs/nZBW+qGhXSfJXSaJ2QxL55nURQVTV5WVKUFToSrMqCVV6wylcsliuWyxVlEWJIJaAkkYpRMvYV8513XiHACYuOZdCs/bGTJKIyMToRxIkgSSNWiwJn/AuRpQlCJeTLBU25oljOuXf/Hnfv3CHJMqbTDZq6QmpFU1dsXbuOEIIo0qRJyv7+Y+7cu8PZ7IxYKS5fv8G3vvMd3v36u2ghOTw64ujxe4ynU6rGx9qOhkOGgyHvvvsuTWOYn50iEMRpwnAyRThHWRQUq4L5yT0QktFoSBrFvP3G63ztrTe5dfs2P/jBH/PwwQPu37+LqWsuX7nCdDIhL0pOj4+QSjMajcmylKODfQ4OHntrovTheEWZ8/qb7yKAPM/J4ojNjS2UjMAWmMbPBP+SnM8Uav1bXinqYxDE2otpXeuI8y8oov09HMTi62q0jgzwYWUiBLGHSW+Fz+AMLBwWh0J4HvivQMiYT8m1PrdBhljkrp5uWwSnL/2oOkAOhcyF7ECuB0bf4rxd6DqTvgPdNgkBekdUeFbSa7xWVIETbWOfP0PzDT8txK7zmGBak6KnBtYccO3zJ2jd4RBri3H7sNs45rDoBg1fKMX0+vfZev47/OTuIeXRfXjvI6yKKbd3GPGI4vgQcecB4tEnPLp3G/fjH3JgYg6muzy+85DHO1dIpOGNl17ByAF70w1G0y3QCZM05XvvvspsfsaP/uQ/6yia88+vVxp8FaH1+NvwXERwHbb3jvF1WZDBudfW6w7qhmsBV3bccs8Tt3yz4Auj7BPy7JCxuqRpoK4bn7KqI9J0gDEN1sJ8ueLo9IxISJJ0wKoomOcrlqsVy9WSoqioGoOTnp+MkohEx+AkTRMKXAuf6y2lr/iVJJF3YmhJZDUpGp1AHEmiSKOjiKbwNRzKMudscYgQijSJqcqSR48f0ThLLCVVXdM0NeNkxOWr1xhPJkRak+qIw/3H3PzkJkcnh+g45u23v8Zv/9ZvszGdcHZyyuzsjOVszmy+4OGDuxwcHtAYQ5okXL58lRdfeYVsMKSuG4bDEQ8fPCRKEt5/72c8enAP6WA0TInimJ29K1y6dJXJxhZRpLl2aY9/9L/8h/z7P/kRP/zRD7l99y6L1Yqd3UsMBwMiKTk9O0WhODk9YmNrh8ViycGjh9S1J75v3/6Ek5Mj0jQjTVLSJKOocoyxFHXdaVhtDdK26pj/O4CBC4474TrNwAXKoTdhPT8rQlIFSF9824LPrPKTT0kPviqYdeJpmpgAaYM53xbA+TWLNQalw4vVUgodga098AqNFr6oTR+D6ljPIOvSTp05d7/AWk3i8LcLWll4Br64C2Ghat2b4bl1YXvteey5Z+M13jXqZw0IOg2t/TZQPK1DqXNxtpfr/Da2+2mvr20V72N2PQ4p9O43mY1e46c//RjXLGlqh8tXxNMhy6M76J1NDh4dk+Q1Q0DWNUenSxYbV5lEI9K7HxH/8gfUWvAv/w1w+RXklTfYuv4ir17a4J0rz7HXpPzmt/8x9+/8KY8O/qzjzlkHUdcWhWrjMkJMuPPX3XKyQthugTSuoa8Hoda03LBPuzCGRbFtrS6EQdK2TfrLzblnt+sRgqrKyfMcZwxS+Ow0nKOuK2bzwtdfsDAa1BhnyfOcfLmiyAvq2uDwKbJJosmShFgmNI2hpgLh6+YK7R+2VAqtRGgMCInyXJGOPY2E9JzuwlSUZUFTOmanxzR140Ou0gHG+mPa2iAHgsEwY2Nzh73dXYbZgMl4zEcff8Sj/UPmixkIydtvv833v/dd5qdHzE6OqcqS+/fvc3i4z6OHD3hw/y5lXYJURDri7r3b/OQnf8J0Y5PtvaskUczZ2Yy7dz4iywaczRecnRwxSGK2t7cwBo4ODhmNhjz3wksIfQXpLN/99reRSvGDH/wxB0fHFFXF1uYWk8mYzc0pQjiKcsBiOWd3d5f5bEZ+eozWkjTLKFYLytWKE+fY3NhCJJqqqRDCJyzYAKTtWyVCeVIbOFbhWofDGs8nCLxXoATC90K4zhSzodOFE77Eo6cWvFFsAnDIMNH7LCoPIm3BrL4c5K9XjG1QtvEp2622z3kAbiMYRKvpEcYgtA13LQ9rHaHqEJ/WhPwYtDVrn+RRzxWdwadZOyQG32Gid3q1x1qLCmn/s3ZKf5kynNn2n4YNTBcJHPYNgNtqz62m246Hcu0CEzLStl7iRF/iwa33UYlh8tw2pZXs7DxHJuCsOGRXxWxee4nZ0WWOftRQyYriG8+z8dbfwv7gj0hv/YQIB8+9RjaeYOenbJU/4ocPf8rd51/nZ3fuMc5Sdnev0Exehv0fBypnXQs/P8TnKoWJ4JlfR0cRymsSigk5gZC1L3gkdBhg1dExhJEWa+ewbeaaaHn6tcN/AT/FM0FXBa92UxdYY0PgMyAk1lmKsuZM5kQqoqw87TBfLFgsFhRlgXUNSkkiLYhCYXMlNE3jQnX+UIBcBE+99NWbOgCOhc/YUb72QmMsRdFQV/5lSeKE+WxGYy3YhkhpitxX8NrY2EAryWS8wfVrz5FFmtVqxcnxCUdHR6wWM+qq4qUXX+J73/4uSTbEOcEnn3zEL977Obc++YjZ7Ji6rnx8n5RUjQHhY3JHwxFSx5ycfUBZl2ipWK2W3L9/x4e1SUVd58xmp9y6fRulIybjEVdv3+LGiy/z6iuvUjWG568/z+HRMb94/30ePXpEnhcsV14jLiqDs47JeJOT4wMuX9ojXy1xxpJon0FXlBXWWUaDjJ2NS36u2LYgej9dOmbA2jVXjThHGfh3t1XP+gB9KxxatDSE39LSlsn0cOqcr10sgznXJcEGK1uKDpqCLtIylr9esVisa3Cuxrm4hbFwZZ736xMG2pfdF3FxTnTj0SUxIFlTPDvpKYjQ9iY0i3RrANc62vyIhgw30a6Dtj+maxc02zk8uwgDERFpiYoGpNmUNBnQOEeSZNSmoVzMyKsFq+UR1CtsRz21ziOLwYaaHf7T1mJqt3Iiphw+z2NrGU4rfuutTaaqRrmCjyJJXq34/tYG16Ypm5MrmGbKj69tk43HqMuX+XBmyS/9L3jp1RdJrWD/pXcoxJSHj28x/OinXHZnRHafo49/xrHe4e7yFfaOb6NpQ9rkWnzCedV+LcqYPkyPLpqirT/S+TTwcenW1cHi08F6a/nsvvBpFwpI+2YFZWIt4sF9AfX32ZquE11l/LosvLklVChYo4jTDCcilrWjNgswNbP5jMVqQdPUvvSi0uhIkkYpWkY93xLSL4USXalE4XyAvsUXGlFKIbTDCkncxESJIUpKVOSjEVI96Eo8zlc5xrrAERtOT0/YvbTHxmTq60FUNa5xnJwec3R6zGK55OrlK7z26mtUZcnHH/6S/UePeO+9n3Dzkw85Pj2jKCtMqHomhV840ijGaI01llXRdouoiZPU12AwDXVVU5YljTFdPQrrII5j7j96xMPHjzDGcmlvj/Fkyo3nnuNg/zE3b51y6/ZNLuUrNje3aawjTmKMaRhPNzk82CeOY1Skqaoi0Dy+DF8cJyAUkdbeMg4LY4eh3YIvuvc7MAPBnGo/OLeu0/ZIsy249lMaB1jn40uF895sK3y4mutAJGzrfPNER4vz4q+EphtuAmcN53nM89u0Xv+ubkJbfrANkwLWedGnaTw21FWwYSXqnW6eklnnBmwL3ghP2eCo/cXSaW8OpIoYjy+xsX2DrZ0bPH/jVaJ0EytSJmlGMsj45HTJhpNsDjPyJkdQU8wPeP+jP+XjD/+Yk/1PkK4OdMJaV4h2gjwhzeAyD1czkg34zrWUr0cL9vfnLBclm+KQq8MENaw5mN9itZXzwDV87c3vUSUjFk3C5rhksJjz/N/9nzHYGNMUC+bLmo+GG6zSa7x7opGzE3Z39liYmqPhnNnD+09chWgfzBOfrX3X6fJtfC+dNbM+30W7IArTGQMizN++gH2Yr6JXZdYdnXTP8NPj9aQ8m9M1jXce6BhETt00aO1XiTgZkA18/KpwjrycUy3nzGczyrLAYVAqJo6Vj7uNEpTS2KpBOokSCqssCBtifP2aaq1ENITYP5BCo3weBZFyKFVibcHZfEayNUIrDbbGoCirio3plIeP93E6RilNXVe+l5oxHB4dcf/RA8qqYjKaMB2POT18zJ2PPmC1WnB4eMC9Bw+YLxbM85xlUdBYhxKKKJKUTUOuKrSQxEqjtHcOqZDVJqSiLAqsbWgaS9nUvn5EiJetGm/GmtsfU+YLnr/xAltbu2xdvsJ0OmE4yKjrmkcH+1R1zWg8wYSmnkWxYjCecHx8SKQ1p6cnvo1S7DPj4tjzx5PpFFM35EUe+pn10s0HIeiCyR3eDBMEjj2YTiGhouupRgu6rQc3HNH5Ty3W87TgNQZEaLgpOi3DAiI4z5zriwv+WsWt/9v3HKOlW9r0Z+crrrWxuXJNu2k5YCds4MjpeV8bKl217alsyyuKUNjGa1DrVQV7kT65gjamVwXTVjGebrJ76RXefP27JJPrlEZQN5JjLPunFZvG8jCr+fCjA64hceOUXy5L6ga+Pc7Q2XU2XtjiH7zxd3lw78f84R/931me3PR9yQIQtbh0LnwMxSoasnIl192E1SrlX54eUa9qmtzgGsNVtcfB/Ye8+eJrLH75kCvX3+DjW3cYDIf8eSypJxvIyykH7pTm9vvohweMbt/lzePHiKrhjnPspJvoKGYiar4xGPAjrShLHzbmXK/fdkDaXaN/eJ2z68lH7c09ED65Z32vdtF0+Fq8UlgEkT9WV8bSD4pr/0WsrU1dnuYz5ZmgW5YlcRyhdYTSCcassKbxPaHimHQwRDpNXVWUxZK8qFiucpqmQSrQCqJIkMYJUZTgrKNpbChF6I1UKR1K+QnmrG+/Y1r9y4XV38lw0/7HCf/yirAU6VC13xf1dmxOpzgU1kJtLdPJlIf373P/8SOKsgRncbamrgo+/viXLBczVqsVx0fHnM3nLIqSqrEMhhOklDShBVAifS0IYx2VMMRWoLXqCrzUVekLvxhHVRssgsFgTJLElFVFvlqxKkpwYMxDmrrm+OSIjdNjJtNtnDHEkbcglqsch2U8HNM4X3ZvYzom394hjTSLxZk3fKxjNBwyGg5x0rKxvYGToGcztBCg/MJgQucLhJ9bxvrFwIf8hWydsHS3vJ6UijbsqdMaQqpwy9V6S60lE9oJHDQIWpPOT0TpPFXRmq3qi6gFX7qs6e5ripMHQnEuztO6PskB6JxU/vcQWCdbkxPaYjQuZKQ524JuT/CEnekuYE382hfqL1iH0im7V17n+kvfpdY7RKMhxyLj6ChHKsXduuL+Sc5vWsHN2PHLMmG7MmxNBvxbU0Ad85oQfOhiZouc1GmWeUO9/Tbf/3v/O37+h/9n7tz+IUBIE+cJEPFpEyu7QiUSsTRYKZFFykBGIAqIapbLE9Qo4een+1zevsoDW2OaM9zpbX62fESaJFwTI6qV4uj+Q2ZK8IvZMZvZmHvVjPHWFe6RM5kOuDLZQVpIpKLEnrfYAgXSj9b6r/1s7KJFIKiubeLFeh5itzUO01kh3qGmvbOtpY86LTkksYgQ3eFa1eLZ8kzQnc0XbG1u+D5icYppah+CBURakUQxiKhbxYuqoqprHA6tJDIClUiSWBNJr4kaY7E0IRXQILVEKoGw0Ji1QO6gZTgnsJY1j6pPP05jnzgxHo1YLH3IlxEQRZq9S5c5W+RESUIcxTx4eJ/9gwOKsmB+dkYUScbDjMXijMXpCfv7+yyXS5ZlSVkbyrpGSsVoMGK5WpCmMYPhCFNX1GVJU9ckcYIPsxYoDY2FWAgqaylrT0lo6btNOOuwjSHNYkxjKBuDXeW4w32KumK+XHL5SoPUCrMy5KsZOopYrlZY41sEJVFGvprz+suvsJyf0VQFOEjimMl4SpKmxJOMOM0Ybyu29i6zPZ2wu7dHmsZ+okoR2sAImqqmKHKWqwWr+YK8KLAmgASCsqzIF3OqPMeZhrJqqOrw/AJlYpzzE6jVbB2hEpbtyzgKD0iCwA2H98HSm2W/TjkPtOHfzmHmuVtxjkoQa/u2O/rPpGyLwojOTLdBu6WrxGYg8LMiaM2u1ZTWjt9FJDiHUCnjS6+jr36d6WCX9+cF18ZDHtw/REeKN0bb/H8f3uOhTHm7qPn48pRfRhFbwNcnY95XObke8K5M2Eojblc1W2nG1zc2+PnJPsel5eXxNV76jX/M4/3b5Pn+2l3KcK2u0+pi25A0BUYkPDhY4vKKSGnSWGDqisFQkWhBFhtwh4iHj8lwJE7xzbNT0sZhiPgQi4linLW8e+k6WmhO6oI9EhrtGFLiFjmzKCfPT3iifcZnSE+JdPz82prWWtTOWdomlC073D1XQpw1dLWHhWjDKluNt01ykU9Qcp8/p58JukfHx6RJTJolaK3RUUzdVNRNTeosUgpab6Axhqr2aruKIUoESaKIY43Uwn/f1F5TdBYhDEL5CmNKSZrKBeeA8auRDJX/nI97bIu51LWhaRxnxYLrVyRXr13lzl3fKlqmknQw5NqV57hkavbPzkgjxYP9fU4XMxbzBaau0DpjmKYsl3PKsqCsKsrG0FhL4yzSGTYGGVf2dqjLAbcePCaJIuIoQhjLIPElLeu6IlUaJySVMahIUxQ5br7E5gWpsFy+9gJ7meRnNz9htZgT66irblQVNWdyhgCK5QxkRF3XGFPTmIbhcELdNCQ4kkhw9caLJHHEzTwnTVKcdago5sqVq0it2JhMeOP1N9ifzaiKiuvXrvP8tWvcuP4c440NojjqlABjDXVdsZjPWcxOKaoSH5VSU1cG6xynZ4ecHh2yOD1lPl9wOjtjPvehgBYHyqKj0CAUn2FYlhVlWeGsQycRyWBIlg3QUUSUJKRp5p2MxpAvlp87Qb98aTPoRMvc4V/APiXkvFIqOvO2fZk7qHS9o9HhQdb/iNAgscHH74LoKmCIPjvMSSwK8MDsEGxsvEB87Vv85Myx2rfU7LNbLrk1jDi0Oe8mY/7fCj4aJLxYR6SXRhxPNb+ZbvFWbfh3riEebfKOiNhsBD+o5uzEGS/LiF+cHrLMMq7ECWVZkG9d5Vu/+Y/5oz/4J4BZy1704yHDopC5ChFP0E6SJQkrU9LUS1a58EWqTEQdDahKR2VKzLLAIcltTapiTl3BeDxgNTvkuXhMHI9BaaRMePvSS8hoxDCJKeoZo6hi/6M/pjYrP9YuRE+05S/PPcnO7Rd+TPdNC7jOhogMEVK0xTpcrmnLnSPNdcdzmL4k5pqzDdG3pf+VHWn7h8cMBynbatM7Z6RE6QhTlzSBJ5XCOyGsaTDOoiJFFEVEiSTJfEaZEoraGkxjcLZGSAOqQiqH1EAoSmhtW7czhOoI0Q0u1pvBddNQNw1FXlE3hijWTCdTTF1icESR8u2kDYyHY47P5pyenTKbLSjKUPfWxBwfH+K7R5TUpqa2jadR4pRi6XhuqNlpDvnodEWqIYozhINLV3bZ2tpBaUmxmCGcIC9K5osZw8kUJwRH8iFVfch2arnuHtGsFNoYUq0wQpNlMVif/ukB0DKfz0gGE6QQngqQkqosyLIhzgqM9XUBmrqiKHOSJENrhY4jXn3xBR4fnzIcThhsbFDYO9QDRzIcMZlO2du7zOXLlxgMh72zyEFd1+TLJXXlky2MleR5TlUVCAdlXTA7PebxowecnZxycnrK4fEJs/kCJx1RLBlkGq0ItIqlrgxFUaLimK3tPba2d5lOt5hsbDGdbJJmQ4yDsqiYz04/d4J+2bKeJdY7y85/78IGbWWwvsTf+v59eJVPi7ed4+x8Nlm773nesY3dtQGYo3jIZO8NJjuv86PHllFd8iifUecV48jyi+1rfH9wmQ0MH8eOvzve5dK85L+TZ2yWEc/VNQ+ujKjdioktuTwTPN6LuTaYMl6VNIuK5tIQcXjMxKV8QMFz0wn2xW9x7YN3ePzwJ+BUV/K4zToEQVws0eNdSieZTjbJFESuQVrBqpgjIk2iFKPxFGMrkiihsTW1MWwMNijzUyJb88611xjrCRWC+8sDdkfbvKKHzBtDNtQ0Tc3hgw9oVgfhGtaeCz0U9t/1dULWt1p/NuePsA7QXnret9+qfT4tbdRu2BZ+t6JdBFogfrY8E3SPT07YnGSkiSbLUhS+v5lSGinBmtqT+6bG2QYhHTIK4WGp9mZxHINT1K72HJe0SGUR0hJFChWBbQw+LVEEZ4znCi0GLQIkB61XIhgNh7z64qtcvXqNRw8eMh4MOJ3VTEcjkIplUbAqamaLOVVd+5KLpsY50JFPvqiKHCkFxtREWhNrSzYa49CMBxOWcUxlNDZJ2BolbO3uoaRkc2uT6WSDpjGojR2ssxyfHJENR2QjX/DGrEqsFZwtTrlfJOQNTLevoHQIdRGCYrUgXy2RQtBUFUVZE2XOA25jqGyF1r5ZZl4sUcMxR6e+8JAUkuFwDM6wt3uJX3xyk+HGJienc5xyKCSlraiaylesUpIo9kWE0tibQ9ZamiZmNEjJ8yJEW1h2dwVN40t5lkVBvrPNxuaU06Mjjk7OGD9+zMnZKdYZ0ixikMVo5WsXWGNpal+8Zbp1ma3NPSbjDcabm2xu7jEaTtAq8gtnVVKU+edO0C9f+iwyu8a9OkEf72lDFn7gVy0ghVozY9ttw9/OZzytZ4GtrXVBLNZ6uqelI6yrsM4xGOxgN17h1jLm8PQ+qqq5YwWiaphOhvx8usGLtSPTln81kSRGolcNP9obkWSCiaiYnMFdk3MpqrkSC8RozD9fHCNP5/x9kfFwc8IPHu/zH46HlLOK8UTC8YyFNVy/8Q0eP/gZXXZbqwAF7TwWGh2lxMmAs9MDrm1sEEtoyoqd8QiDZVWXmKYk0wqpGjAV42zEIBowTickKkYLTRaP0Uhem2wziFKWecFoMqaRNQ/3H3E6uwfOO9Zd25k5AFvL7QY89GV3RKuhPplm3hYaakuPEurGiJA0Efj61nEY2tJ3Lew7rlbStqzvoL/Vir9AjC58DuguVznz+YI0URgzJNYREoijGK21V76dxVpfzEZriSFCa59EEccJWsXUtW3nLT4R1CCUQEU+vdLgzVnhY51oWZU2t6Qtbqy1ZjKdsjmNUU6yXC5Jsoy6LNhL9pBSkw4y8qpikZ+RVxV1WbDKl1S5dzZYa/ykKA2R8gVMsnQAKmZraxchJPlqRZSmjMdTLsUJgywLGXkxk/GYycYGdVWTxjFIQTYYYYzxTscoJUJyucxZzM6ItC+GYpuG5WoB1hInKcdKYqxFSf84y6pGr1a+20SkobIYY1mVORvxhHy1RKQp0voY5DhKGGYps9WS2aogGky4tDskHaRc2d3jbLVERApT1zw+OGRV1KRxwiCKcc4yGqSoKKKoSt9+RgiyLCUdxCgpaeoSk2VUwyFRu4AOBqhYk44HNE3FYBAzzmIi7aegcQ22MQyyEePpJYajDQbDCZONTcajDdIk88/bNNR17fnNX7NY63vt9eFcBmMNoguiByGlB+IQa++rjbUaVqAkvB1Oy8O2mmsbqrSu0fZ/mg6ofT89QZTsEG2/yy/PFJFt2M8LXtrcYV6veNUUzIYOuTPmrXiPW5xi3JzXok2eiyQPoxXjpua52vJoJ+b/uTzAnp3yHxdb3MlW/Ky6yR4jnN3jD1YfsECQu4R/S46+t+B6HLOVKQbPvUE22qNYHiBD+UYrI6J4zMbWNTavf4NltsuDk/sM1AMWszM2k4hYRUTGJ92MdYKOBwjhUGLIxnQP6yxpkqGkpMgLSDNsmjKoHdJatJJsX9plURxz8+M/ZH//A6SrOlwLumYYvrWylGE1a+vqdnHVHYfbj38vrlstbduqyD+g4CDz+zxB269RSOsu1RC161y3IDxLngm6q6KkyHOKPCKKHI2OiFSMjjMipZACH9LUVIAl0golNFHkiGIVstfANn7CBqXLm6aRQkWqM9WM9SuqaG84hC5ZvAYihO/AkKaCQTJhPJgghebg6JjGwTBNGA4G5LVlscrBOfI8ZzGfk69Wflikz8Qqq5pYK6SMaGqDUpqhSoiUYjrdpJ54LnU8GofrN0jp414HozFSKCJlsHWFsQZnGoZp6ttxa8Xm1gb2xHWONq0kdVUiI4m0UDW1LwvZ1Ejn06xRito0PqNOx7jKpzBb68tPbmxu4Jxjd/cysVYM0oTTsxMOTk6wQnN86qszXb28w3Q8ZHc0oUFw+PCQWx/fReuY6WSK0IosTYjjyNeESFKUklza22JrZ5Mk9mX5okjiXIpcLRkz8gV0BNTG4CTUTc0g0WwMEyLlE2na4jFpNiIbbjIaTMiGI4ajIekg6SgR01jqquxCpn6d0pr9Leia0H8PFArP0QkbKo05CcrhnOpaendpw5x/rdvqXe05vEbdmp8hlVd4KqINIXPxNveqCY9+8TFiWXHoGjYmO/wkqXk93sDcyDiexnw9b1hlCw53IjJRUjQr/mSww784u0lU5PxDe43o9Dab+T2G+QmRu0YcNXzj+Ba70SbVICcqH/BCPGU5cczK+7y79RofsOStQjHMG15/++9xvDqmaBrGwylbWzeYbN/AxCNWThObikNr+eRwn6s6I2tq4romjjSREDgjkJVD6cQrNQgaDcuqQQrDcLyLVgmmriGJGA2GKCG59+A9PvjlH9CYOXKtM8mnArHculZ7Pp35af5Z7zhbd4KuWydyjZLwz6XlZj0ut/E5IoCreCIkrVsROrrjWfLskLGioqxKpJLEcQw4alMhTLQ2kQzG1L48Y5KA0KjI+NKPQtMY317HYUAYhLJIDTrWRFrhTA+yPi40pPlJkNIPgBSCJE7ASRql0TJGRxFlXmIaQ+0EjanY3LxMdTynaRoWqyV1VVDVvjOvkjYUnxaURYnKUogEURqHAuURSRwjnWOYZJSRoSxXjAYjnDGsyoLr12/4zqxNwSBNQ0KCgEDO18aXfhwMhjTWcXi4z2Q4pChrZmfHxHGM0NrzyEXl+VpT+8VGSt/yBryDLkmZz0+ZTjdxUpAXBaNsBM73J0vTjAcffsDZMmcynmAFlE3NydmCNEkxtmI+X/D46MhzqFXDfeVrVwyygY8LHo+4tLvDSy/e4IXnrzEcxkDIEsRRlAVIi9Yh1jrNSAcDsjJH15JBqskGMXGkfLU/61O4ZRSRpRFJGpEkMVEk0ZFAxwKpBE5KpIhwTfW5E/TLFm/Whx9rME3j66yGlhq2SwX2ZR+NA6e8F1t2fdLWQNetcY2uT6VugbV9QdvOBE5YX8uiGfG4yCjziubhXeTmJps3XuHaaIfDqGFntMd76oxVdkI8eZHKCWaP7rGth7zaxPxI/4LB8fsM8hrHjL0Yvn2yT7WY4fQROYbN1RkTdcR8eJ/tqmJvlLMqcq6amok4RDUz7g12iOucd1/7Hr//yjuc5iWZSjmdFcRpQm0rZnXFe0cPeSAtxfNXuXXzZ8zPZkx0wkApNpIUJRVZptBSY6xDao2Wmigek8W+ZOyiOuVoeQ8WDdGJ4vjoY44Pb+FcTTugnmb0IkO4YvulN//Xi9msWRznQLN7OmvcbOf+DJ/323WHWOuQIQI4t87PPpy7Jb3bBfZXDBnLQ1bVYDRhc2sP5yDPV9RN5Z0tQNPUNMagdESKzzpC+ephjXHUlW8w2diQ7S0kkYxRKkEIHTKdHMpX2/X8l5RoKZHK4qQvkmLwTSmVkKFXGyRJ7AvjRDFGCo5mOYcnp5RlgZCKOMrQusRaQ2MEUinv/NMRKklxzvn0YyV8QfEopW5qiDTOGuIoYjmbMRhPeOml6yRJQqwlly5d8yZ5FLFaFcRaY0KzxbquuP/gEWkS8c7bX+PmzY+p64KdvUucnBxjm5o4jhkkGU1T+u4SqqBqfHF423iTs64rhJQsV0u2traJksQT9hJG4xG3Htzh7v6+L4ATuOqFlKhQNSuOI4oypypLauNjbrEOjPePO2MYZik7u9tsbG1hLKzy0gNoFFFbQ2Mb3wGjMUghQ1foCKmVz6cQDrr6DSI0b/QzuCxXCCURWoIGqzw3L5SmMbZvLcT4cyfplytt1IyPLrC2wdYCExIiOoeuUv3LGEoCOuc7BcsuI+3ca8ynTdo1ESJEOIBzGXcWGQ9OjymcRQ7HVOMh1+qKD8Ux188U1daSZgN28hmRnvELazg8/YTCJizY49uiYvPgBDMvEOaUPIvR+ZLYgs4MZ1XB2AoSWXF4OicWGqEds/KMqUh4tFqxo2IeylOu7l5mZQx3lzOfgekqVKoppWUm4MwY5qll98qY/JMPKaoZj/IckUQ0WlI1ORuDEc1yQVnXjCZTIpmgdMpwMMZgufXwx9y7/SOq8tSzr7Kt6mVAKHxHDa+AOWGw7bOgDc8KAOtDT8JItxxmy+fKboETbZ3nFoBdH6fbAbMLC6jzONXHYbf0w1pES3CgtY/a+2A/X8uFzwPdoqKy3qTe2d5DKc1iteTk5MCnuhY5ta8hSBSnKG2pTY2xFbbxpnxVNFS1r7drhGdppYpQVtE0Ctv4ViU41bV28XUFVRhcf6PGOJJ4QCxSkiglTVLOFgWj8dj3IcsLjk9nWGvQcUxxfMyqKJBSUpWVf3FClEWSZejQ6E9FMYNIYxqDjQXD8cSHlUiHtI6rL77IYDiiKks2J2M2t7ZI04yjw0M2hwO0SnC24eT0hPF45ON5Ldy/f5/5YsGVvSvcf3CHe7dvMRyNSAZDhMWn65JyNjsm0pF/+fBp07EQ5HlDGic0xlLmBePBiFHmm2D+/PF9Hh0e4qxBK0lerJjNNNgmpGKfsgzlNaWKQno0JKnvIbdcLdmoN8mGGUdHR6RpwjCL2NoYo4SgrCpfXKhpKOuaqq5wznPqWTYgTiKoJYlShAYr+KwtH9rnrKUxNuSz+AiUsikRucbiMx1r02CM461Ll77QRP2ypE1c8G2MLdCEYKkG1b6sQmEda22IQAjZl60MDt4QzdunmbJOL7QigzHsY52dVZyuUg7vHaKFZTLeJE0T1JWXGZmau3bO9Rsv893xJkeHn5DnUy6JnEIckZyckpaGqjpCp4qdvKJwgoGWGGdIdcQoSrHOoLRmHGWs6oJIx8Qq4mi+9LVOWLKqG9LxlFhHLDLNmXFcpqGJYpamZi4FBkfuHLUyXJMJ5vYR9w5u05QLJoMJDsjLApWmXfKMxFNRIvYOq5v3fsbjxx+QLx54vTEUf5ddFEHrvAq+HWHoQsE6dPRZfq3e2dE2Tqztu5ay0619Yu0YwZoR7dEFsUyZ6AmjJCM3hquXXuPB4W0OFnfXtO0WXF33LP2T7lONP0+eCbqLvGCxKrFCkg3GDIcjBqMJQjpOjg7JFwvffFHF6MjHjVIrmrKhqRrquqEqGl9VzFoqalTkG/4JFVYSA00JpsZXhwcQisY6RCORWhKpAUSGemWopSXNIsraEGkNtsAZQ1PXzJYLVqslq3yFaWqcczRNqP8bhWI61pGlKYM0pakKkkhjjaFqKp8EohQ7e7tk2dAXrVaSoix57vp1dnd2SJKEJEoRTpBkGUdHxzhTs7OzS5IkOCSTTUjHUx4/vMfNTz5hMt1gMBixKpaYusYYi3SNL7ZiLEiNUBbjfDufqirRceQph6rEAKUx5FWFNRU3799nsVgQxZpBNkDqGGcanDUsFkufmIIvXLfKVz45UQXNTSq0Ur4YUexDziaTMVJKyrrBGHz4i/FArZRAK4Ux3quvpfL98LRGqxitpQ8ZEw5q5+OxTYnQESrS1HWNKHJsvcJgMdaF4kUGPs3UfeXShor57LwaKxSY3jMtrMBKiwhlGxUqVKSKaNOiXWiT0em2n+tMCfy3dZRNxMFxzsw2VLtXmFjD2bUpe+WMX744wTnHJM35o1nOe7d+xLZMWKorvJ0JNlfWO2BxuCoiQmIVREnGss49/aUUZWVIkpRZvkCiiKSiyHOUUljnKwZK45ifHmPTlJM6J7oRkd78kCvPXWFjPGKoFImWnBVLbs5O+OX9u/zy/Z9hZhYayXSU0tQFm/GAYTqisYbRYEwyHKKTlPnikP2P3idfPgZf/n4NDF0/dkHzbEuQStfXoWhrdfTdgp+wJjrNcy1y4Vw3atH5OsOBvHUiBNrFjM0GO8UWz2VXef6Nd3jj9d/jdH7I4+Vt/vzWD/n43s+ZFYcdaWzXFtb+eL+iI22+KjiZLZjNl1SNYSOK0HFEY3ZomoblckFtDINYE0UR1uK76lqBqS11aSmLhqoxlMbSALFVCKUwoXuns2AqsLUjEtLXLEWAUxjjHTc4g3AJOhYM0wF11bBarVgWhqooyIsVVVlgmxIlQuiIEig0oqlRSqFVhDENcRyhhPKxrlr5QH7hH7KKtC/a7jyvKZMYUxteeuklNra2yYuSu/c+5Otfe5fdvV2qyofKSSnY3NxCOMeDB3f52fsf8Npb7/Lqa28wHo748x//KVEcMdH+JSryFdI2YCvi6QStYmarJYenp6jIv/TOmE5LbZoGrSLKuibWGq09p16VNVo3xEJRW8vpyQnGOfIiRwoZQvZSUBoVabT0L1ljKsq65PDomOnWlKOTI4bDhOEgRmoVzO2GvKyoK08f1Y2hqkryIsc01teYVdrXOFZQm8oX9mksVZljxSpUrPKNK72iYnHSt7P2HRqiz52gX770kQbWWoxtoNW7nPVFzJ1DWIuTXsOK2vdd2dC8UILQ3jILxG4fv7ue8usAi7MN1lrqxvHw3gmHc4HSGduRYmc45e5ZzkuTLeThkqUVxOaIg+qUF4uaDWoKcx9ZpFzWmlPpUE6h4iGiqYmVxShHVVVU5ZyTconQEXYJg2Tbp+zbAq0UpWn65qM44khTy4aiqLl37xOaFwV3D2Pk8TG1NRw2DbFUfLJ/j5N7t3DLhk0ZsTPeYBwNiAYbDIRmkI7QaUwymGCsYf/xTUSVs7F1lc2965R15cuHK4EThrxYYm2FaQrqusCZEucaREhBd21djxZrW0uiizqQPf46WE+KaNPWz8fv0j8TJ0hUym52FXEkuPPzW1z55jXeeuG32NnaY3O6xw33Jt954++zv3jMBzd/yPu3f8zH939OXi9pbB0KOYUIii+g6z67c0RecXR8xsNHjzk6PWYyGZOlGVk6ZDTcIM1OqesZQvmKYDhH09RUpc9qqitLVVmKqqYwDY0D4xRN0Lx8QpvDNd4U8WFkvnOv0AorFUongMBZyXSyQRYn2DS0BlqeUhYFdV15jSuUXxTWMMyGmGWORBBlA8rCTzQp8Ykd1oCzaKlRWoMxnJ2deVNDSnQUIUzD5ctX2dzeRUjFxx/9nB/80R8QS8crr7zJcLIJQpENB2gdc//Wh/z8/Z/zpz/+MTu7e0yGA3Z29/jau1/n1q3bOODxw/uUdYkpS+p8gVKKF65dJ82GWOOYlwUmpqvENcgGWGMQ1pHECVW5YjyZ0FQl8+UCZxuMkVgHDT5UTwBlaANfpwaplQ+NUoo4SamSGOMclXOoLOqyDherOZHWDLIErHeQzhZn1GWNMVAUJaaqiJXEOoVScs109qUbGxu6JkiBsbVvZd806Dj2hZOk9KU4HUiVfO4E/bJlvRuDtRZpLcKzz/6FD86wnusLmhFBJ3MWgabtigtPe7kD2DrrOWPrq8+5KgISRlsDGqtRWcTx5oRDu8/h1jVunt5HnD6mzp7j20nGsR5T1AXDSNPgiIUm0ZoKKCPBfPaQ1XKfsphjbdM5ddqC6eXgGoPtV7G2pqpypLEI63z6sjW42iGlZqA0i9WCx7c+wWSPKFzhwwGdQGJwizl6dsq1JEMKzU42xVpNpDKGgxGoiHi4wbff/CZZNKJuLEmWYWqf4CSkQiiJkwKNIdKOSDhWVcFZPmOxnFM1K+bzYx4f3eTw9C7l8ohqeUjdLFF+xfOO+Ta+n7Wyii4QBm0xkXPP2yt70vnC5RLFcxsvcGPwArdvf8zmcIs3336b4vgRj+qaOJsgtCKKEqZyj++/8R/x/Tf/p4ioYVHNeXh8jw9v/YwPbv6YO4cfUJn6c+fcM0HXGMPh8Yy7dx/y6PlHbEzGyK1tEAIdRQxHY28+4svWVXVBkS+8d77x9QaqxlLVjqp2NEJjhaYyCgtoKZDCoRxEQKUMroEkS6mdoKodpqwZZAM2RiOSKMbXYnCczeaYpmY2P6OqSrIkpSpKmqZiY2uLVVExWyxRnvRBS4lWviNuWyhaR6l3BjpBWRQ+rAQYjSY+lCpO2N3d9ZXW4oTtvSsURc1//f/5r3jlxZ/z7jd/kzgbMphs8Od//mf823/zL7h55za7u1cZDkZIqamqkul0iytXKo4Ojtja3OQXv3yfIl9inMEZw8nZGePxhM2tHRqcj2KwNrzsCqskq9XSh41Zy3K5JIojBoyo6xKofbU1Z2mqCi0lZQj499024q7MZGMbhNMUdUHWjDg4OMQ1FQdHB2xNNxlkPoRMK19HdJBFvm1S3dDUNVjjLQnZVoEDKTXKWgy+5KcWGUiJ1DFCarTWpHFKFMUgBI0JqeA6/twJ+tWIB1yD8fVAnC92Y1yfU99prsbrVuvhYs664Aj6LOeZ16RN65g0PjTt4HjG/ZOKaFyTDbYYzWYUuwk3SslkPmNvtk/S1IjyFFcXPJ8mrHRE3hhOmophNCLOFCdHN3n88AHO5LQanJQeYNrQNOdgsbwPG7tw+XXU0QPk2dzXQA4ByKapESH8byQk5WpOvTxBSEcsBJEUKCEp6wobZ2RKkcQpZdP4aJVkwKKyGCu4Ptrhl3cXZBuwPVDc/MUBIkowWkOUoZsK4WBnZwOnDJlSjMSIK1uXyTcNOZJdA6/b0i/csuL0+DYf3v1Tjh+/x8HD93D1wvd7eyIKwXWZLYGWaD1deEpTodlINnn3lW+zMZxy+5Nfcve9W9z9+B6/8+3f5flXv8buc9c5O5pxfHjIyeExZdmQJCmDjSmz0wVvvPMGe9uXuXbjKt95/ruY37f89MMf8Kfv/eBzZ9vn1NOF1bLg4OSY46MDTo42fNfeJEEKR5pmDIdDyjynrgryfEVZ197r7Xz7nTiCqva6vZYxOI1pvCexEQKl/IwQ0pAkCQIoCsNkY4dJHPsan9YyGkwYJBG2qTlczijLiuViSV366ISj4yMkgmQwIsmGzJY5tmmIopimsURaUxa+ueQ4SYljTTYYUKxyhG0YD316apb6AH6tY65du0ocJyit0HHKdDLl1dde5yc/+ff8uz/5Ae998B7f+d5vc/PmhFsf/4J7D+4yHI546+2vsbN3mWzgeWGRpuxJX+/g4PABSZqxWC0BxWA4xFQlVV0zXy6praUsPT0QxTGRiqmtI0kSX9chtFqZzedo5ev65tUKKSRN09A0NU5ItNQMRkMP3tZ6DjbLyAYDX5wnStBCYfKag/KIk8MTppMJ4/EYKQTDQcp4kHAkRGhpowFHLH1dDC2hDhWbfD0XQd14r39oOIYQsY9pdRJrHFb54vXCiOB4Us+cfl+F9DV0fQSDMb64uHT4uRo60Gql/bbGkybmXDcJ67twBJBriwqFM2BsgzE1pq2vbAzGWMpFw/Z4kyQbcCQtcm9CsSx5eLTktd2c72d7nIk5iZRYpWgMJDpCRJpVFDNvTjh99AlNOesWgnWXXUvf4RS+nKFl8eDniOEYhptkq5IYA1WJUK0zKnT0cA0aSxRqYoNFOcdASxYIsuGAeVHQGIOOEo7nK05vnTBfWbY3r/Hg8KeMr1xH3wdpK+6ZIYtBRtZI8qrkuY1dylRTNw07VcFukvHW9jYfFacUCHZ0wiUBjw1YnZDqIenmlL+19TZbI8Of3/p3/Pjn/5LHt/4EVx55usF2lYA7psE52f2N87HW33jpu/yD7/8nvHDtbT76+M9QK8290zvsp8dcuXoD63yy1mR7m7wo+NnBAU4PuL69i04ThsOKs/1H2HpKkiqWpydopbgs9vhH3/9ffe6cezbo4mt+FoUvyl3kK/LVwi/3ThBrRZpm1HVFvlj51ic6YTCMaaqasqyRSnitBh/n6ITysXVSEAmJFL4jRZZodNCgRsMxWscY67v5DpKIKIqJIk1e1zRlQ1WWnJyeYkwTqnE1xOmAYZx4IG5qojgGBEI5ynxFXdckMkZGEZGOENLzl7777iZN5R1+jWnYvrTDZHMTITQqiomUZvfSFb717e8jhOP+3ZvkywVHjx9w5XpCEidcvXKDV157izfe/jqD0ZTaND5MrW7I84IkiSnKkqqq2Nz0HYOFNZi6ZJWvmK9W1I2P9Ih0RDIYsJjPiXSCQNA03uE3n88ocg/MOom6JJVIa6SUvsB7iCPWkQ+vc9ZgKoeNI6RQxEITIRgNxhhryFdn7BcHFEVJMkhZFjnzlSKOJNPRmKKsaGpLGkWhbZMCY2gaSR15J1tZNSCNd6IJhTAKI6GpLJXz5TFdiIWVUqG/YIjNlynW+t5ZMmSdmbajgxC+prPxGUsG03UJttaCab3qIfNMWt/AUvgqeOseG2Prri6yDck0xjiWxmKVI3cNXBoTC58BOjZnlKuUvek2l8cxpTUUVcNpVaNqgxwPqJb3ONr/COfqtcI7a17/JzKrfMEaBxjqm39G9Ny7rKZT6sWcLBYI06CVb9NEcD4rCc4YVDhBYxoqBFVjaBZLnJPcfvCQ5emS41WNibfY2bnCfpFzUqwY4qiiiKVOyHRFNTvE7F7meGPMSaaJTclwLthS8G8w/PjslMtxxNtpyqJZMtcx9xqLyB3v2IhNFfFJZVjGCS/d+Nu8fO03+eWdP+Lf/OF/TrH/IYSSjMpHfNFWxyXwwQ5HIiLevf4tdtPrpMmIy9vXKfYP+Ojkpzx3+Sovv/4GiY44u3eHKMto8hlNviJvKu5WFW+/+xYvvfEyTVmSZBnpaEBdG1+m1DXUy8Xnzrlnt2B31nsPbU8Um8ZQ5Cvf1UHg42mFD51IkpTBIME5SVnkHB0fQ1WjI987S0e+Uq51IKQgiSUYB1YgtCSOYgaDEUXl6+IK5UOMzpY5kSx93y1rMQga60OY8nzpec2m9mXPraOsCqwz+ELuEldXNE2N0oLRYNhnQjkf65skiY+okL5sYRJHKCWp8gKEZrVYMpxsMN7c4tXX3mRzc5MH926Rz2eMxiMePrzP9s4eb731DZ5/6WU2tnY5OT1lPjtBK8ndO7dZzefs7O2g4wQnFZGKGWUDhLPUjWa+mFM2FVL5zhBaa6qiBASL5Zy9QRY4Qf9CNI1BabBl4cskGouQMVFIW07SNMQ1SpI0VInTPjmibGqgIc9XSKmJkoRssIlz3uF5cniAsQ3DNGGQJRzN516LaxqyKCbWmiSOqAYpWeyLueOcLxbvLEQNg2yENoamAeEqmkjQ1H5xoPE8s/z1ZwF3mq61odyodF0vOUxbc8Cbq221SizBD+E1KWu9Fi+EYb2Pmj++X/CsbTrQxRqwjlRHyDjCKMnIRDR5yRtZhs12yZRiZmo2RIQyhqFOMFpRxorTxV3OHn8Qrqltmtj3nHNOYp2v8SqkROmMOB4yGEwZjrcYTbbZ2X2ReLLHe3duc3DvJsXsAF02aGFD6xpLY2uEUlRlSRrFnM3OSKTk5OSUk6NT6lXJ8dkCE49IrlxnY3cHN455/YXXuV8b5iryjknjMDohF4IqUhR1wVYWkzp4QM1DrRiOE35zFHN3/4A/dlM2h1N2tMLahlg6TpclhyPJQsDZ0YpXhgk3xiPeevnvMJk+x7/45/8nTu79O9omksKKgEshnTus78/vvcALl9+hmM0pkkPEYsUnP/8pjx485MaVF9CxJh6OWa0KyqIhHW/wD/7jf4QejDB5SRRH5KslOp5isdSNZePSJZqqQFjDYJB97px7Juha5zDOhnKDvtC1MQ3OOeraoVQceD1JnCYkyZAsHfvmkcsFy2JJWRekSJS1KN22MvBmaRLHUAuMlaRJTJZkSAlJrGhsRd2UFMUC5xSDJAXnMI2lsTCaTFmtVpyenSKlIhukDCdjXyMhkrilQAjti9oEemMwHBElsXcqhdApEbJOyiL3kRc4rl65RpYOkEoxHI7JhmO/6NQ1cZzx3PMvsrW9RV3kNE3N9Rde9vV3R1OiJKPIV6SRZHRpj/l8zqW9SyTPP4+SsHlvhwcPHtE0JaZJiSK/sEipwRriQcKqyImyEfN8RRrFISzJV/RfLpYMB2OKlefvJBBFPsQpjVOixD/0OkRlaKU9/6o80AuhyZIYoRSNaVgt52TOEMUJDYba1pzOzqic4c5+Tpoo4jhGC4GWkY/VjSLG2YBhFjNMY+Io8oVbnKRx1i+oWUmaDrzzr3ZoVaJlFEDLtxGS6tdPL3SarvD1FJy1IU3Hd9HA+GSVVlPyipNDOgmuwTmJCCnE6ynBQE81BnrBhlKP0rvpQMNSVFQDQVV6a+3t0Q02tGRuC5x17C9n4IQvYqQ0L3/zb3Hp+BoHu9dxtqGpS8qqQKsELTVC4kuXDrf83E2HjIdTBsMNEBHG+fZbjXXsL5bsXX2Lld7BnZ2yOnpINT+gXhxxcnCf1ekB5XLuu5AYQzFfghKYSOGyDKkyop0dTBLTbKTkk4x0OuFHj35BMdxmsnWVLE6pa8tRtoGYjHgjS7i5f8DpMOVkusvLg5jp/gN+Vs/5odtm47nrmNWCPz6d8dZE8414zE9dzXwo2ahrZF3ibMy9gyULKYmsYSN7md/5vf8t/+y/OSU/eq/veh0iFrrsMefYGGyyNb3M1nQH4SwDUVNXDVcvvcxv/+3/EciI5WLBfLZgdjZHRxF1A5eev8FgPMKZmuXhQ+LxBjJJEaGH3vLsiMM7nyCl4tKbX3vmnHsm6LpgDpZ5wXyxpChzmmaI1pKyzFGqCi1eHGk6YDAeM8qmOGN9eFakEbJByQYrLUgTiqtopFJkqUCmA0xtiHVGXha+B5hOMXVDmmQ4ITCNz14qK4MJWWTj0Yj5YMDm1gYKQVUbHwMrFbZyPqIigK2U2nPIxiFUhBQNWZrgHKRxSpnnWKlBKTYmU1548QWmW9vMz2bM52cIKYmTFKUimqaExhHrhHQ6CI4khcP6BaGu0UqhZEJT10gcOtLkRc50POaVl17mzq3blKs5whXMFy0AhTRTY2iqkqJYUeU5sdY+5TQ8k7IovRavPEhnaYqOJJPRhEE2RKsY6wx1XVJWVUjYMdi6pHaWWmhUFCF0TJZmpGnqnWYSmqrBCoFzinnuwwSXZY0QOY1pKOqSLPJ94rIkYTzIGMQJkY59ooRSOOFrTSjtw8niJCGNU2IVoXVMorV3XprGp3n/msVZgxMKpEVY6cuCWhdqglgMDQ4fCucjdPBhb75zngddKXHWhowq8AkS3RmwIdPNWd9e3YVW4KmMibUkTQdIlRBnEadNQSZTNmXMolohtV80q9rAtWvceOnrjF+OKZuaoRAUxtM+DgvKOzxN49Aq8gF7TYlUEYd5gXE+MmdZ5szrFUsreDSf46TmXmPRKmNWCSKjKErDg9sPaESDzCKII6KXXySKNSsqkt0rjLausGET7t5/H72doK4OeOX6a9z75BMepCuKXcdrl6/zYpHwn9/8MU2yw0fj63zr6tscP3zAL80x+0XCxqVtXrIVHzQF+8byv97aIs1WvKdhnsJvJQMenM15aCXvJmMWkaZxlsg5toXkrDKMN1/nm7/7v+GP/9v/PS4/wDqQXUqDT6iIZMzu5CrSgDG+hdbRwSGHBye88+73uPLKm6yWS0Rh2N7d4cr15/7/zP3Zj25plt6H/d5hj98Y8xkzTw5VlZWVNfRQ3RRJsSmx1TQtSCJswTDMGxn0haEL+68w4EvbuvCNL3wnSDYEQYJsmKAgqdXsgeyusWvK8cwn5vimPb2jL94dJ7PaZqVgWipuIDMjT5yMjO/E/tZe71rP83uIUrK9ueb5z3/E3uE+IcD12SnZpqXa2+NsvebZZ5/y5OOPUEIwX+7xe19yz31J0U1/67qe9WpL03TM5wbvJX03ELxLy5woUVVBnhdkeY73AaUlSqcX65zBRkMUSVwvdEEkxwwtWgsyXROAPM/o+hatA1IX7MbcMRDYztD0LXmW4Z1nt9mQa8VysWS93mKjJfhAJhNIx7ce4x1K5PiQFkFhtJ9W5YSyrhn6DmMdg7FUdcFib58P3v8G+wdHrNebcT6apcy3GCmKSJQaKeLovFLookgSFCFTbqfQqWu2lqbdYaylKMrxlBB4cO8+v/d7v8ePfvA9ut0N1vQEBOVswbp5hbep++u7NlmBmSWQkErJGzpTbLYNzhlyrZhUJXVVU09nTGb7LBb7TIqcIlNsthtevnpK0/f4eJtmAfhIVLcUrGRuUUJS5iWN6ZhNJjTecNUk56H3ljwrcM6y3myQMgWWZlpTZAW5yih0inXKlCaXyQCT6dRVCZW0rJlSyWYsFIGUF/frvuLIbw5BIuUIHJepc0VGbqNyBLcxL+PICoG4LbxBJLnAFzkMr7veW0auf51AcMvtlZlk5z3DpuW9Nw9Z5CWDNQx4bjabcZ6avm7rHH2mQAd6ASHmPDOGQpZkeUxpJCHi0BgpaIeBQoAVmnZwaJExaIn3gZ2AT/uBlWnoW0vT9ywKiM0AwvD89BP67RnywQFZiMQ8UL/xEHVwj+n8hLtVRhsCl6bH1nN++/2v8+TZY87anj85/4zfeP/b3LMdPx7O2dot+u4dfr/+Gj9yW742zfhf3Nnjs3nB/2X9Kd9ZHHFX1bwvS/7Di6esc80PpORvL07YXjzjuYGX0fO7h0f8sem40AX3kdh+YCEVtRKcGccQBW/e+22efO0PePHD/wgZHb/kXRCCt4/f462jr9G3A1K1eNvxo3/6F0wW9zEmYHvDvUePkDKdXtr1DeurV5R1zersOT/7/p8y+Ixv/s7fwKqM/vIaoSKHD++x/+Ae0+kMa4Yvvee+RL2Qbo5+MFyv1qzWG5aLBVVZ4Bz0w4C3G3ReMi9rlEwb7hgcwbmUjusMTbfBBocQgiwrEbEgzyUh5MSoyfIpxlhsiPgQiU5hBzMWmTwtJ3wguMDl6grrLZNcY52lbQe0ztHOoVTGbD7FDJa23SHEqD8EtMroh7Rtnc4mZFLjhKDpB/K8oJ5M+fa3f4Nvf+c7CCGxLhkwdtttQlkqSd+nYMK8LNBKp+5USax3KCGx1uCsxdoBZxxaKiyKzWYDwHRSU1YVH3zwDR4+fMg/+7M/5enTT7m6vETkBfV8wTBYsqJivV4xqSfJDSaTJTqMkrBENY3MZjPKIs1wq3KSnHaTCcu9EwiW6fKQoqx48vQzjDW4UZssZCob1gyjxAbm0wnBOnRIc8LD+R7OO9Ztw3q3pjM9GZJJWTNYi7WOzligRZJ02tkIgcnQI1FOpbWOkOOR/PP3QCCdon7dV/zC30IIqWu9JY/d7sIjyBBGB5IljhpPwoh4FKM8S34esPp50U1QcjHaVj+HyEekiiyrktnekrxQLKoJpa9o221iZWhFRNIMDus815sNf7474/fvvEPjBcUQcUGwNpY8i4QgGJBYCVaXrIeBC+eYZSVb12FNx1X0fNKtmU1K5gqG0OD7az787KdEHIfBoCqoqoOk5a4K7j98i20MrI6WhJMH/I8ffoeDMucn65c83a55Wx8QspLr7VO88ny4Peffuf8+f3q64p8OW358+Yz/zYP3+eT5Ez62A5/Ynm/s7fPv4bmxAyYM6IMZf83XXIUBJXpOiop/ePcO389WRFGhhOa3RcY/axuM1PxriwWn0pNFyRSDHwaUqvjqB/8WLz/9J8TNZ5/L/WIa333w5u/wla/8LlVRUxYlZy+uufv2B/ytv/8PMH3LfDFjspxj2gFnTNK024FmfcHp9QU/e/yEqGeojz9GRMfq+pJXL55xdXXO+cUlAejalt//d//nv/Ke+5KiOyaZWsf19YqLiyv2FnvJdz6GL/ZdjzSeampTFphPR2xrUrKDs5G+G+jtgM5KhmFHnGqybI4UE4g1Tevoe0NvEjvTmNRFuxjwdpuy04JDS0mz29J3DRsRGboOpRV1WXKwXKTZE3Bxc4kWKgF2gqfIciyWoQ/kWYaSgsEOWOeZzafsLfd55513+eCbHyCEoBu5tnleUFYVfT+wWa/p+54sz6mqGkGKVI9SYYaePMvxztL3KVXDGpvAMFKlTT+C3W6Hs4bZfMbR4RG//3f/Hn/0h/81f3b9R1jrkkpB5nTtDq01CInzjrqu6fpmjAlnlN/JpG9WivlsRlnPmE6nLObLNM9SCq1z9g/u0A89F5fndMMwzo8FWgR8BGt6skzTDpbgTLI363FJikCGmKRlwRGkwBqT5rbjks6N0G/jB4aQlhbiNlGWtEb+YpDgrVcgjlv/X/d1i+mLXyi8o+cUEW5f50jNlZ9rEgLJHjxuhdNMO1FZUpQ3SRYpxS2eZQQQfj5gpFCGYbBMspKTxT7OeC7alma9JgabcJJy/PMLEa5v+NMPP+Q39u/ycDLljIiXOUbByiUljiw8SmrsMKDygq8Vcz6+uuaJcKhaYVDbagAAeDZJREFUEXrDVw/2+d7zn3HhHYUqyM0Vk2OFOV+xjZ7FG++wWl0ziAb25+QP3+KkyGhKz6wsMM2aH708p3Etd3xggmW2ueAt0yOl4j43uOe/YN/s6HLBcb6k3jUs8oKH04rnfc9gV7xdH/BnuzN+FDb82ZXn35/d5T9bPeef+is+jI7/5d4J97aeTvYoJfit5Qw/FSBLLIJJF3hsWr6RFfi8guC5y9vcf/f3eP7954TgYCy9R5P7fPXRb1NWU8x2jYwON/Qsl0v27pywu7ogeI+MkXyUppoYaLqBjz98TNsL7r/xVX7+8cf8Z//5f8q0LJkUJcfHx9zsWp6enhFITsAvu371eAEgCrwPrDZbzs6v2FvO0VpQ5DlaZuRZRRjp98E6vLAYM4xRPgqtSkLQrNcrsixy984jpvVh0s8FgVJpXisBbx390I9bXjEmDBiGoYex+G+2K6xJdt/lfMZilpZcfd8hYmS32WL7IcWjhziqESRKFylCWylcjGhkYgB0hvkbC777u38NN/Sst9sRlKNAwvnZGTFGhq5PbATniFIgBQlVVxR0Q8+kmqAENLuGokyjkVxnyDwfs+Qks+kkFVMS5OfO8SFf+frX+f4Pv8dm2xCkQEtNkRfYosB7n1xlNiX5Wu9ApvGD95HddkuRZbRdT1bMECLDDAOZ88nWHBPk5uDwTnL5mBH8g8Qj8dYiVTam1HqsCwTvED5ZiO8u9pOe1Fl8CHRDj/MWNzIUJIzzzNv5f0p6FjGOaQujE+u1uCq8dtqJz++wX/t1mxb7+cMgaXZVHGVhIj00iWnRJsfCOoYrj0VbwKg7FqSHTnrRo6LgCxnrrw0L0mLsDusNlSrQ2hNjQ8wzYpSp03SJXRKFIG92XL18xv/5h3/MP/z6tzmoKgSRbFowN4ZXPnKvnPDjm1Puz/ZYO8eHu0veP9njcHPNXw7X3F3M8V3Pm1PBbnXD6csVhZpxhwW/MM8IZUaWK95+9CYfDVdM5vuc6IKpg+pizVFoCOGM3dUpNgwUUrFVBXrXsq9TCviy7DHXl7zpe1jlnMxXtOfXzAhstjPqxRFvTo8wXnBpe76elzwUBVkQOF0zzQINgZvWcGPm/N/choeV4d8vK+Z9i88HSjXh7qTElY7eRvKYAZJDOeFb3/77vPjFP4btCxLVsODvfOff5uTgLuuXT7l59Yzz01O6zvA3/83/KX2zxduBTEna3ZYsS7jXpmlYHt/jO793l5ubcz760ffZ31silUZFxR/83X+Tr37rG3zvz/+Y/+A/+D+ybRpmi/0vvd++ZKYbRz9qwBrDzW7F9Tr59PeWexRaI2OJKDRFkfLhvbOJgxAcuc6o8ppMTdCyRcsKbwX49Fbc2g6ahtRLqFGzG9ntNlgXkErjvcUOPcYarBmwxgIisXgj7LY7iqpASZUKtrPoLKPICzZNQ1GUVGVJ9AGrDJnWRB8RWmAHw+HhIf/K3/gbVFXBeujpjGG1WuGsoZpMGEz6/3oXQMiESrRJnua8Qxc5IoLtB/IsI8SIjgmgriaKoW1TKKOUBFciKkmI6YGy2Wy5f/8+X3//m/z5X/wFzhqMt/jgMdYhBAgkbdOglaK3Jr3BQ6S3PVIUGGtpu5aybBjMBNUCZY0gMgSHYEJZVdRlhR0G1rtdUjWIgrqeY53FWctsMkPVirbtaLsmzZO1YplXbOQGLyWyqGitwg5NcgYSET5pI+XnblduwxdHRfpfqa2fH9n/u8RV//d9fQ4aF2MeaiSQwknjOGpBhtctrohq5CePXS23lu3bbnZ8qIgR0BIDfKHg3v4/k5nBUmcDkyLDi8DVds3NdpUIUMS0kB3RkoMb0FoyPXvJJjr+g6bl2/ffZLacUsWMd5dLQtOy8S33pOAn22sOspL72vLD65dU2YT39JT/8vQpN1bxMO6xufyUprmiCRvulEuK+QJk5GFRc1eWDLam7h2HZy8J6wa5PmNlLZ2NXF9cYqzlIkaeouichzpjPqupl4dEmZFVOcobSger9ZZp8MjrnGy2h997wGdZyWEpqSYTjgtPMIJjDLmW7AmYWY8nUqiBKiie7LZUlPxRu+JhGfkDodgjGZuyXvBJ01FmBcd3H7H/4De4+tkrYgzcXdzn3fvv0V1dcvHpp4QAZT3jzhvHiOhp19eEvqWYLxj7R6SWTGYT2s5i+g4hIsv9fd4SirPzS66vr7m5POXHf75ldXXJd3/nu1xeXTOp5196z32pTjdGUJlAVxDkgHENTbsizyVqskCrlOigpSbGkOAoJiU3FEXBfD7lsNujNw197zBDy+Mn18ymC6qqhiAIIgnOBRoRPbNZSdP27HY7tk3D0A+vVQFSBGZVyXRSo7XG+4BWCjN0dG2L1BlCJUeUkjrpiaVAqWx0eCkIge12iw+Rb3zwHd566212uy3DkCLWi5HwtVmt04wZQdO2FEVBZ4YRQZlkRFqqxCRwgZ3fUk9n9MMGM3bpjrQUm04m9MOQmAZs6c2CelJz5/iIv/W3/3U++uQzLs5eEUVSKCghRsmewzlHjCnKPUaPAJTUKXVApG7TWstudYWcOaaTKaZvcLZHj9Ks5WyWFnzOs9ltsCEB48tqivOOXd9xdLCPQiazRt9SlYnmf1DPcMHT7Hb4kOLnB5sAN7dzf+Lt0Tnwmj7yurqOcSaM//5X6/Cv8fql0MIxGy2+julJPFcRAolAmCzoUd4GdMPnr/MWk5P+eznObePnT6L0u1+DcNKvy9CxW71i+vBdjNQMWhOFex113/tAEDAvcza9YeJaJmcXbJqep7s1H2nNV4/e4D9+9gu+ObvDj82Wvz474U+3p7RFwd8ul/zh+hV9zPhr2ZQXuxu2XYc2kqmDKw/T4NjvW8yQ9MTTZkUMCnH5ivVuS9sO9Fdrrq+usV2HHyzejovQ2weITK9eZ4pP64piUjM52uPg5Jj6+A6mKHFlQR4ycufpOsfaRfJaIaoaPznkWVYRdWBSKg7KGUJ6BJ5v5JZD7dnLHR2A6Fj1lp0vuPaKLZavlBP2igzlBMJovv7Nv8d/89EfUdiO9+9/k/3ZAaXM0V9R4AJ3vvoBeVWwPn3J+uI0LXnHU2mE16fkvtnRNS1KZuwd3yUrp/Qu4lxg8A63WrG5WZOrnEIXzMrJl95zXzJeSH+Y1SRjb69gNs9RZQRlcb7HuAKtMlTI8dZguTVPpDe3EJqyyDnYX2B8z263pjMdugh0doULPUVekmU1Ep04DcZjjE0MXpfevIMZiM4gyFL45Hjzt22DEIK2cylOvTcUdXrR1lnyIseHgHMBKcJrKZOPKXsszwvu3r9HXuRkQ3J22WGg6Tp2bZNsxsag8owoEsDdD4mgXxUVTdeRFQUxRsqyZLNeJWlbNyCUxHhLXeQEXeGFwI4PjqzMEdEzqWvyLKOuC5SSdENPVZWvH14xBowxCAQm2FG65LDWsJjN6LsWPxZ3o/sk3O52BGfRWhOCZ7fbEKLAIdFFTW5SKoVxBmM6ohBUZY1CMFjP4d4e1lvatqHru/SgEop5MUHojHZoac0w1tkIzuOM+QI4Bj53EYwfi9t/Bj4PDPyXpuyOwJTx4/SPEYDjQYxAmFtbrxgHJnGcXUtJIIxT3yTsizEQRPo96b/5AnXsdfUFQUBJR9dd8v0Xz4m9g2EgeoMmkitNpmUa/RjHJMvQ3tPuGo58YLve8N7enGZ1icwL3EFLYxqudh2Zb1JaQ+E5aK9wQTBlS312TuxbDoKi2KyxTcMyRMrYk19dsdnd8GLXYXc9V5fXOBtA54lsV8wJxRzpHQwd0ZmU/mEDwTnwDmsC1li2N1tuXp1zPX3G9fEx9dE+1cE+i/0l9cEhqy7SApVX1MZQ9o5TY2llQJaaUC94Ts5OBKpKM62mZDU8i5aT0nKczdFl5FloecwOEe4wj4GDokJUkjcefEC5vM9hu+J3P/hX2d87pLtZYXerlFw+7MimNUpJLl4+Z7k8pChrAKTW5PWUEEAVBcuqwlpLNZkyXx5weHKXi9MzijJnc33NrE8BsPPJdByr/errS2zAEZXDZJazXE7Y36+YzXOmexOW0yWZqLAuYJ2hbXfkOsc4Q9e3I79AJ/uuzijLjMFnoD0+SJQqgAyCxrrULbbdQAwCY9NCLcsLlJRoIn2zJQaPHRKYvAkeHwKm77DWQPQIKdlfLlmtNwidOFAheCKCvu+QOiPLMpq2TV2xVCitqKqM6/P0daazaUqacB5XJlJT8ImHUJVVArpkOX3fE30ky7JkDviCHtg4ixKaUiiE0mS6wJgenamUdDHiE1c3KyKRly9fsdmsidGPryVt9gUihVcKyTD0ZEpizAB4BBlVWUCMeG9xdiC4Aj2ZMpgu6XytQUhFWc5ASrw1yTqcaVrTQ3RgBrIsR2cFvTFse818Nmez3dG0DcImy2okyaJ0XhC9S0kXzqF9pJQSa1zq/mQcifq3qau3ReavEJ8CnxelX+P1OSTt8xnsbT5BEJ7bGBYh5OvJtAgxuR0jIzUrwX/CF3K4IiNtTdzacz+/xBdmvSkkb0cYtpTVCTqAsBLjB/rBjCwHRak1nTVEF5kVJbumpcoU2SpgLge+tdinOb/ivbxgr9zx2bDmTjUjZpfUmwsKIcl0zd7pS0o/UIoMdjvk9pKmtzzvHZcXF2zalhg1kgy7uAN5Ri5zYlHggoEQ0NFTW0vb9/i+xfctOIscElEuJSEnvsR2u2O725G9eMnhnSPCozcRjWFVlqhJReYnZEGzNVs23iEzyTSWFL7jqr9GyMhMw/50jyu55iYMxLqgmJ1wXUSa3LE/VWTS8cwXnNJypAJ7ewsO7n2T+csfUWUFw26HdRZVlezOznj54c+5KJ+wurriFz/5CW+/8xV0pnB1TV5URJVRzubkMzDdwESNrktjcN5RTiuef/QRu92GB2885F5wnL588cvmmH/O9aWOtDwTVJVmNitYLGrmswl7e3uc7N9Bi5q2dbTdlqFrXhdAF6EoCm7xakoKpvUUlQtctBgbsX2JNRnd0NF1G/rB0nfdeJwPaKGJSuKDQ4qI8w4RAirPQESaNs0dtZDIUZ5TTaZAImRlWcau7ZJX3ju6YaCUKfU2AakT4Pzs/JSXp+dkRYYfBvrd5nWY5L17Dzg7OxuP5Q5nky650JpsnJFO65LBpDdXVVdIneMj1HWdEhfQFGVBWeQ0TUuz2XD37h3W2y3zSYXxlpvVGu9H5YP1KV05BpAS4QMmetquZVKWo4IhMVnryZRMK3IlURK8M3TtDiWgNxbjDZnKkSojz3MCkTwvMNaQS0VvBwafHlZCauqRL0xw1EVB1zap046BQim8FJghoHVOFiLB2tFi7dBC4G8ts1KO6c7wutDejhxCQIWEFPzlRIVfz3XrJAPSzHa0kkeSsy5ya5YIIElJGSEiPESZeOdy/BqBz7W5EY8Q8XX3e3uJ/y//IoSjWX9EMT/meuuJw4COnlwoRAwMw4ALPuX4SUnT7ABBKTPW12smWiLcil27pSozrtDUpmFSVNxEzbDbEqTgQmZ0mzXeG7ZRYrctu80NuIhWJbY+Rs8Tm9mojCAUOTATmoZImdfU3rOLhlZZfF4ipjP0YHCmJ/Q9wg7Q7RBu4DYHTiqJc4HTVy/pZU43PSJ2a/ZtzwGCzgquEcRCMmHCTIM3FiEVe7kik1Bax7VpkViKoUI0lk/dc1bLCSeHd5jLyKdix03TsMyWBFly/857yKunXD17gSkajh99hTe/+gj7lsFFSbe6Yj2eZq9ePufw6JDFwRFRSGxvyKdz9OgLkEoiEXjv6DY7ri8vePHqlD/7kz/lN77zHeo8Y29/STX5FxwvQEQJRZYpijKnqiqqqmIynTBfLqmzJWaAq+tzrvqWttliXUCX9WsNa4yKTEnKqgbjGKxmtzW0O8utZzx4x267oW1bhEikr6JMTITBCIwzzKeTFHOuNFEEnEkPBSXS3KwoCkqtEMFTFgVxzOsarE2ErBhxxtCbnlwrlBR07ZbPPvmUNx6+QbvZ0PctXdtxefoyzS37jkIJRF6QaY0xPWVWUNUV3jpO7p4g8wKpHUpp0rhYkGcKIRRlnmGdo2sbrLU8+fQTiqJgubfP0fExz5+/ZHFwyPe/9wOGYUiW4OBv3eJkQuK8xVqbZGwhUOaaTAq8czhnyLIalWkCCXa+221QMrEpIiC0SA/ErqXvWrTWY3CmwwVH2w8gFVlZj5IykZyESpJlGmf6xMdwlqgiSmfUxHSUHIuQHOfPSEXUkjjaqyPx864ujh0iqUip8OsvuOmS42LrFuM44gDDOAqQ8FrDKwRB+DSvDeo1SNvLiJQBH2X6OtGPI4WYPBMiLengFj0zKhxee1Qlvrti+/zPme29jcgOaNY3bPoGbw1agBJgbD9yM5J78WaTkrBVUXC+ukrJ1K3j2nSJUaIHzo2hHXoymUA8XdOCd+xUhpQFy8O3mU4XbF1kZwZyZ8mspSOio0DqyEak8VTIMvZnM/CBo6LGmI5z12CMQzqP6na4dkuYzZF9B9aAHYjRE4WBIFmdPcNlGW/8zX+DOKlYu4F106CVYCEnlIUgOI8vFIuypNAZlcxo7UCe55yokoXK02nVDsxiz77MuXQZ2xLuzuZsEDwJWx7sH/PNv/Fvc3dyjDWBarlkcXwPKVIiuFnuU+8fYIeBVx9/ineRrKxQeUk3DFiT9PdCCprNBmstSiraZsuf/OEf8otPPqMY8QRlkaO1Ji++pKTy30GnKyToLMmY6nLCpJpR5BV5XlJXM6oqLXTaZsdms8Y4NyZAaLRKXnupMqL1SLHH0G+RMZBnin4wtG3HetfgvWdSVeOyK0sFPs+TJEbUr7WOInp2ux1VUTKtazItabsW5yxCRPq+wTgHMsO6pB22pk+FyFnW6xXz6ZRMa7abLR9++AsevfU2jx7e5+byEqQgqyY8ffIYpU45OT6ins1RWYYSgroomFQlLk++/c3VNW3bppSGQrPb9jhnsdZgjOHs/Iy2aajqGfdOTvjGN7+FyjKurq5Y7O9z58EDpovZ6MkXY4coUSTb6XqzGjWvHmcHmuBRIlLojMxHfBC4qChksqDmWcZgDFmWYUa9dDYGblrvkHa05pYVw2DItafrWvKiHheSQEhLuyzLRu10TAYI5/BhwMnA3qRCKIhZQ7QpJbdF0IqEIbw9qsex2ogQkN6jrEMBmfDIf0ki2BMS8XbBF5FBvjbtvxZgxPj6r7T0/WIW2vj5MbvrVvVz2+lLeZvvdft7bz/+4pw30nendMMV9fH7lIcPMOeXRHdDNwz0Q4d3nmwcc7SDwQUSrD8YpPPMtEZ7SR0ylJQpRD4GJmTkUYMQzOdT5osTZgcHzKdzms0Nl9sbht0W4S0DHq8iCEWVl9B1BK0o8wK05nnwSBk50ZJ3732V4vKK62bNttsQsgyhC6SzME33rOx2uGYNpgfviN6xe/mCj/7xf8Z7//Y/oPyN32XV3rA8e8HMtHgpmZc1ZZWjhCCXqehVVUkpUiKwcwEnJfOqZKIVZbPhs+0N+d6SE1nzqtggtGQ/K9nLCoa2p2t6jnWBKnIkAe09sshwZUU1W3C13nL6/IK94/tMDnO0Lggh3bfESN809EOP0skUtVwuWa9WvPvGu3zwnW+x2Jvw+MOf8k//5C/4t/69//WvvOe+VKcrlSLPS2bTJfPZIWU5R5ER/BiZLpN3fDJbkt1c0pn16/8+8UlNgpFbSWcceTah7yUuDOx2A6vVjq7rmNYTqqLAWkMIjq5tcUNPJuHocJ+qrhPTwfZcFxk36w1d37PeGtwwMJvVKJXRdT3Oj5HaPrw+3EUpiT7Qd0lT68ZAzel0SlEWvPv1r3Hnzgl/8of/hMVizsnvfJdXLy94+uQx69VPEzS8rtlfzNBSstlu2O52rLe78U2YijCCJONqO0Cyv3/E+x98i6+8+xVm8wnX19d0/cDR8TFvvvM2n3z2bJwNF5SFxRjojUGQEoHNkObVUmm8NZRC4gEnI9YnDGTXG7SqX8NnUupykhwNbsC7niAUNkSCG7DeUVZT8rLGeIvynr5rUEozneb0g0FLUDJLJhMREB6Uc5Q4tI5UKrKcV6hZTgwepzRbF7joDBvjb1OwklFDiPQanCPXiqkIVCKOqMFf7xVDkgJ+UeIWEK9HVilJNi0Ib40TUoyt8G1hTjHWI7diJH6NLe1toSaOyoXIGJ742ksxys9yZF6z3LvP/sEdjo8ekX37r/OLzz6jefEpu8sz+t0WNdqJZ1VGpnOm0ylSJ6OKzIoxlSLhSoWQ2ChxKiNWM3ReYJ0j6prTzYar63MWMRCFZC+rKQfHhTEEoRDOsptM8PmMIHIO6op9FxBlRjSGs+01f9quiT4yUZq9suBytyPWU2QU5N4wDA1+tiSbzhFDg+9bYrslDD1mfcNP/pP/K4t2xfaD7xD371A2V8xtxwfe8D6aLIIWkmmZUkokis5Y2hDYqyfJjB3gxvTE6Njb7bD6Gj8pOZotWG2uWcfIspyyd3SHoqxStFIMENN+aGgb1jfXPH32lDqvuPfWI/L5nLyaJGPPGJpgjUFJxXw+Z7eDkzsnfPvr7/HeV9/n8N4dvE+nkK7vvvSe+9VFV6RuZz7bZ1bvU2ULclkRvaRvB3LRkuXpxsx10n12XYcP6egbraXrBvreEqOkyCvW6y39MLAZYTLeOQ73D3E+HcOJgTxX7M8X1PWEST3BWsOuablZXbNarzHDgLdDmq1KQT6p0pHZebyzWB/ZNQ1FlWRlhNGCqdJTcrvdJLF5mUEMmN7w8sUps7rgzXfe5NWLV2w3Ow4P93nj0dvsdjsef/IJn3zyEZ989CFd09INHf2o2dUqcWyLvGC+2OP+vQf81m+8wztvf4XpcsF2t+Hy+oxnL9LM+r1vvM9bb7/Lrml59fIFP/jhX7DdbNJr1xrlAqhA03bjQsKiQ0zzXZuSelWeY30aKYQsYJzHBkE+AoLyXGPskNI2hKDbbRmcT3CeEJCqJ4RAnlV0Q0JfWmcTaTM9bhF4JnUJAygnEU5Q6QqyQJVHjiY506pAKEUf4LpzyG1Dd7kiuHFxJkf4SxBoBNM642iSMSsVVfbrj+sRr7vtEd0ox2QRcatY+Dy6O4VJpllukoGNUTGCMRom8RnG2ppsz/ELs+uxsAtB+vpaocp9Dg7f4WD5kLtHb3F4/CZVvUAIyVUz8NWvHfLq3ntcXt/Q7a6Ruyv2hKcHOmdZljnLyYRd12L7nv35DKlrrpqWVdfTRU0+P6BznuH6nJvdhpYNcbfF+IYmOrquIViDUhJVTdjTJVnXcrNrkGVNCD3XKnITPNJGltWEOycPOd11tK5jg6PSEya6xniPUWCtg6xESIEXgSossTcXkJeIriOajjBY1v+v/xw5dIT33qeRsBssZ8OKP7x4SYXh3eWUr072eGeyx8F0RpVn5HlG8JHeGno8pVQsVQbOc3X5gn19j3vlgvnxe9zNLXuzmhgUeZWKrvDJAr+7vuby8pyuaZjPFzhnaTY7Zm2fOvZRtd02Kew2ywsQkuA8cbB87avvsH+YuAw+eHbbHX3bf+k996UQ87KsqPOKXI3fRBBYE9htWtwARTUkj70IlOWEup4zDB1Dn1xMTdfjY8rw2jVpI97sthQ5LGY1oUpbQW89mRRkOmO52KMoJyAU66aj7xqub64Y2i3BOZzpE3RFSxSC6Rib3nUJMNMPlqZtkVmOlpJcSZK3QRMwbJoGrRUH+weUVcVHn37MdD7ha1/7Csd37yJ0xtPHT1htNlxf33B8dMLv/e2/xe//G7+PGUz6IbQt6/WKEAJ1PaEqqxSxXtYIKdltVrSbaz76+Y/Zdg3z+ZK9w0PKomS+2B+3ug3Pnz1laBuGrmEySWYFSHlou6ZFCUWIFucGtNIM1qFznbpqUhCosYY8z7EIBhfpjcGHmLJ0kKM5zGNMj5A6xasjybUiAkVRst6sRxSmZjKZ0I96ZKUkRVZgMcmNZh1FJtmrJhwsag72ZqhcsR0satNhpOS8aTDbnijka8OAjJBrwf685u7BjP15xbz69RfdmKJJ0jx3TE+4xSPcTl8T0AZem3lvs8fGZhc+192K12qH9PvHz46SOYHQBeX0mJM773Hn5G0OD95gsbhDpiuEULRuYN1bNsZxNQS2IXITFU21wFVzxN4xJofOeZoouDAD/c0VYuOQUVLsNDYE5Laja3Z0RcFktaXPNbkS+KIg367QdodwKfjxuJhx1p6yFTBIwQ5HVpdoUaBUyRt1zdnZK0xW0yvF1WDZxg3V5IilXHC9vmSnKmShWRYF6+sr/GRKnEtqCV1zQ+8C4mgKpkV4h2g3uPU5YbMh/Df/iCpa+ve/SpxXBGMZYkkv4C/aNd+/vuYrxZT/0YN3eGexT6YFWZajNExQBBdw1hFRvHPvbQ6Wx0ityPqesshRMuUtZnk+GgsTonZoW0SI3Lt3n3lRM3Q9zWbL1dkVSzLKmSTK0egkFVIKrDXpPTObol3BbtdwfvaC1c2K7WbH7F90kSZEit9WagSVBwgWjHc4ERhag97tqOoahKLICyaTOSGShusyQ8gC7wPtKAkTQrC3V2Osw1iBJqU65ALINJPJlOlin8EY2mbLMAwMQ4cZOiIC48NofEjQ88O9OYOLXN1cE0lHgW3TYJ1nGAzCO6rlAiUExiUG8K5p8QEQkovzM4Zh4L/6R+dUVcnJ0TFVXfPGoze4urjk+dOnPHnyMZ9+8jNypdnfP6SYzMjrmsX+XuJLGMt2u+L64hWbzYZVs0uJv0pSTebMFkt0VTGdzdhtdjRNg3OOFy9fcnl1TV1XSVWhNINJ/OJu6CHGkXLWpqXhKGsKIRKDR4s0e3Qx0vQDZR0gOiIS5yxSaYIcOzWpyFXOYA1RKYwz5FkNUpKFhHlsmw0qS9CiuqwSuMinxAchEsIw2IAbUvqBVJos1+RFiUORF54itxR6jLaJ7nVViiFQFprFfMLR4YKj/QnzSf3fvTr+93R5nzpUKQQiiM+/3yhG1nLq1lN7K8Z7zMOomrldForb7ncszMmhJ5MsTlbU+3d4+OAD3nrzOxwfPWI+OcSN38PgHL0X9M6zHXqEFLTGsusNaxPYbm4QZofZbtldvOCTi1esrSFO93Cq4rCz1FlGXxbYyw2hKCHXzJdzpt7wIKt5uWs5u17jzl7QdxvsdEIIkUoqFvsPeDibjBJBwcXmhk2UmKImaM1L68kOjplnigPvebW6opcTjNkxLXLmQrH2A15Hdr2nqGssYJXEqpx8WWD6DkSG7je4ZoXMlggZoSiJuw3ue99H7k2JX3mLqAvYWUQLWIXy6c/z5W7Dsqg4nNRoEZlkWYq1mkyZTQ+YTPbIVUZQiugD1XxKJhvaZkc52UdIgbOG0A+EALKsyLxnryhYzOesLlc8f/yCcHaJKmtCpgkENustrm9QPThvOH/2govzc3z0XJ++ZLAd282WN998gyL/F7QBpxFXHJ1Q6SYKAaIPxOiILsm5vDNJvpQpqqpMVl3hCVGTEwjCoF1PXQiKomRwA2dnA8FFTLdDhIALjrIssRF0UeBDAtp0w4AxPUQwxhCDZ1JXlJnmYG9BiILV5oYsy9hutjRNm6JlYqTte0SR0fcdeZ6nbtCmqJkQI6ZPnIfV6pqynPD82XPefust1psNeVlwfHICQnBzc83zx0+4bi74+V/+gE3b0lvHtMhpxpyoXGtyrQlCstzb486DN6inU/KiQkrBdr2hyAqmsxmm71ivblivV3z44c8QwpONiaxmMHRdg86y0VfgCSGMDrTRKaVSmm9vDLMypUV0fc+2aZlOEvjDegdYqqqmtw6tC4Ty4EViXUid2MQidXFlUWGsZ+g7vA/kWY6SSSKjdArWCS4Bd5zx2MFiekPbW1AKaw3eufSXTwwHGQVBpFKkYpI8TeqC2WzCbDqjKn/9Eeze+7FojuSwmDrbcDtrhdHLMbrNYgSRuLjItPR8XWS57XLTHCEKwfzobX73t/8t3nnjWxwsD9FCMYTIzjlaE5DBsus6ghDgA93lOTfX13TNmub0BY+ffMTjx5+wajdQ1Mz3jtCLAyblFHt5hS8rLqf7lHsH7AXPYd+y2mzYygwTenb9NacSBg86Ro7mNSJTXERQWY7dXfLR2WeJ6aEL9ucL3jp4m9Vqy+AC59fnbAudjtux4ETnPKxmXLuGNjZswgQ9mTHPMjaXF5jFDJdXLPKM1eUZrpxSLvbJJYl5PdsnypwQDXoyx/U7xHqL3d3AX/yAyb0Zclqz8wOYSOk8d4qCd5aHlCrDktKEG+OYFCXTsmZ//yFBlngp+MuPHrMboCwl7x8oCtkxbFboYs4wGELTYJodIXqazYbrswvyomC6mCKznBCTfDLLUnqMs562bRk2a4osAym4OD/l8aefMnQdRSGxwbBrbvgnf/wJm92G/+3/7v/0K++5L9U3+JDA4X7MwIpBjJBsg3MDuRAIlSDcVVGTa0WWaQYfqKuK6XSO94HLy1dsVtd0fU/XCXY7S9c2ODOQqzRWqOuaqp5junZcODU0bYOzKXAx04rFdMJilv7adkMSaHvHepMWcoNNGWQoSXSWqAVDP6SOXaeEYiUEzgd6m1gMmcpYXV/R7Dacnp4hhGC1uubm5pq6qhiMoZ5NKCYVXkB/fs75i+fstglIE0mR7Y/eeovF/iF929IPPTYEysqxmC8IPiQFgXVUteT6ZoX3ntlsxtX5K1Rd4QMMJpHAfAw4n7LpQvAj7T/BViAtY8LIeNBZQZml4EqpBJOiwpGSPuhbHJLlwSH9kEYULnoGMyT7ttaJvCYkeZFjjMGZDmM6yrrGDoau76jqCWVe0JsUWdJ0lvObFQ7HdJgxBM+m61nvGtouJQ24LxYqItH7MUIljUWGLwcy/fd+heBH62cgRgU+/fkKkey+6TeRRhCCpEqQach7C/cR8vO5b7oEMUoWi/v8wd/4ByyXDwh9z6tX54nt4Qx972iuVzw+/xRrAmFoybzg8ZNP2DYrtqsNzeoS53tkFIg8J+qMJnr0MCCl5qia4HuDN5e4l0+5KhXn9QwtQDvL/nSJmh7wYnMFfQ/dlpeTKi3KlGI5KTguTrhqN4hqSdCaq3bL2XZNJGM2nXLfT7herdjljhB6XhYJ2nR4dIewW7NF4vMSU84o7xb0bkfMNH1eM330Fruuw0RHuVhgdi1BVsjJArob1NAghCZmc6IuiNtL5j/8FPnb77NrLKofKLzhaDJP9245pdQFKsuZFhlVOcPqOT8/7ZkvM27anlUsyaYZV03D01fnmOGCQuUs74GxA+31Dduba3Rdcv7ylCc//QVvfuUrLI9PWBxpDlcdqp4wnU2pZhNC01KWNb7vyIsshXRqzXQxgTDw3nvv8PjpZ3z/Lz5h07b4f1FH2vjcJvjI0Bka2dHnBu87+n6XMp6yjKHTQAK5aJWjtGY6y5gtD5hUM+xgsWag2ba0g2N107Dbbl9bB73UTOspVT0lArvdjma3wRmLcw7jLCIGFrM5Rwf75FnGatvQdgNaSbp+oO16nEvW4YhAS4USoFUqVkpndF2yvRZ5xjBYnLFM6xohIpNJTd/3PH78GVVZsr9cMpRVmt/udggh6LuOwVoOjk9AyvE1bdOWOARsSBSqzXaD95HZfI41HucC+weHRB9YLJf0g2Wz3XJzdcW0rrmK8XUUknXJ9quFZjsYhn6EIt8yDmQaHeRZ8TqtwAwDRVXjSQ9HF9OfgQ2OEJKl+PLyirIo6YEsWkywtF1HlhcEH5nVFYtJpJWCXdclTW+WpDO79oZ+6KjqKVoqnPXsnGO923B2dcl0PkPlOa0LXG1bhj5J9WK4hX4nMdXQG7brhlWtsUOb6Gu/5ivEAMGP4xOV3Gi3fIUvGCdeJ/+qdPKT8lZxGyDc4ivTJaIiKyreefNv8tOPT/HyFb1xxCDZ7Qae2Y62HziuKsqu57Td0vcbsiAojGV7dsEgAjHPwUZkljGpa0ResdAVze6Gpl/TZim5ei8rKboNlzuLK1tcXpDFwHOXRlxonYJXt2u2Z5eYeg71lMDAej5PVtfJjOOipPvFK7ZZRixytt2WrlCUb77Bicw5e/kRXmqcitzs1hwdH6O6hrUUNJOayfSI4uWHtHlGO51xNMlouyf4eo9hsqCqW3oTkUoQzRqnM4IWxDJD6gxdlnQvV7gPHyMXJfeKklwq9vKa+/MD0rlIIoRCZlPE7D5PL7dsrm84e3XORgma7Qp7ccVs/4CZvEYOlzx48A66rMiyAqk1SMnu6ppXz56yWt3wSCuq2ZTZfI43gZv1Fh8C1hr63RZrB4pphes6rl9ecn72ima7wQfDfDnl3eIdzi+2fPzpp7x89eJL77kvmemmWe7QDWw2O/ARnQlcGNLIQCa8nXMDsQuE6KknS7SSTGcz5oslmSowysAVbFvHarVlNaYyVGVB23ryrGRaTxkGR9u1mCF1r8YZrHMQApO6QijNrhswmzYNt5UcM61GuRYiRUJrjRotvj6kpFczmGTPRaB0RlFofPAEH5iOcrTNes3Zq1NO7pww/fZ3uHv/Ps+fPmWxWLBerWi6pCfe7W7GYMicsq5RUnCzXjMMHW3bpFmy2LHcWyZ8pDFE76mnE7bbLT/68Y/QRcn65gYpoChLCGCswfR9io0XJqXtjkCREGPavIoUXu5GK6p1EaRD9D1CRDb9gNpLTj6lNP1gUUoy9C1ST0FpVCZRAUJwOGvQUtJZyyRPMPg8QNc15GVNXU3I85KubWibBiUVw+AQUnF1vaXvdjj1gnw6IaicXYyYkGa4t7SxGMHHSNsOvHp1TjAtdalx/tcPMSeIhCYNyeIrZUCE0dIr1eti+xr/KFLBDSEpFtJ75JbHe8te8OwvHoFYsNltcQouzlt67VBdgsW00fFkc8mbkwnaR4bzCy5Mj7ctOpeIrqfYNnSlpA8RszVk2Yb9ySP2JhNod3TDBm8sF1VBNp+T64rDvODudMnN1SXPLy9xeU6c1Fxmivm9+0yFoPKKPeDTm5dszBpdzmi9IRQFByd3mJhIu77kOot4VWJ0T1xW3Hn0Ho1vWdmOYVLzynoe3H+EHRxNFhlU5OFv/DY3py9YK822mrD/3vtcrncEnZNNFcOLC0I9Q+8fYc2AaHviYKGo0VWO3K4pbzrKWc69vORodoAMEu8sVZ7T9i3brKIPkvOfPOFlFBjpCTc77j84pnA9w3QOwaJcS5GVHNy5QzWbopQkKwuUErx68oRPP/mYWT1lvpecZPnYgDRdT9M0DDi2q2tEDFSTmnWz5tnTJzx+8in9bsXJ4R5D37JcLPid3/lr/Gu///f46c9+8qW33K8sukqQ5BW9pWt6MqUpkERhidrhpQSd4k2MMVgfiFFS1VOKIicTwGhmOL9csdm0dG3S1CkRk0wpeParikwLmrbDDD3D0OGDZ3AOYy2Zkqgspx08N+trlEp6yEylN24+Rqoba5IGUgiUFEmzah15VeGsJXiXlnA6GR2sT2OLsqqw/cDPf/ozDg4PaD9t2N874PjeHbSSnNw5Zr1eUeQlwTrOz89xPrlTgguUVYEQEmcdN+s11lkqOWHX7hBCs39wSFWVXFxeIoXkxbOnGDPQNTu0UtRFwbZJzh5rB0QEJctUaIHbBc6tpVnKHCVIYx5nUEphokFpibWebbOlyPNx657RdDuqoqBvGrJiQoyWoijwQeNDIHqLM9AL8N4hCWR5Qd/tyMZYHqMVzpqUzTZu45VQDL2jNwOrTYeoaqgKQqaJpJ/R6/198PSd53zo2axWaBHxxv3zbr3/Aa8k+wpRvHbOKW4jfNLnX3e5Am6jgoUYTQ+EUcMrkPLWgSfJ1YyPP/6IItecrm+Yl0tunj1lpyR75YQ7zvNye8MvLgIZkaW0NO2awVucCwibopkKoAjytcb3bHUBOiNTOUezOWzWPN9tkuSyqmnFjqbt2D8+4cHeHkpkqMHyUey49oJMZjRKIoeWo85QrBv8dGA7qXkca4SqyOqS49mbhPMLttlAyAIrIttqwuHeXeanT9hmmpDnvOwd94/nmGef4hYHbLzgjb05P9ruGHRBsZxThYG2nBKLktJ7+sFSnRzgzi8QeYFa7cjMwELnTBdLBtux7ycsdcFeVlDrkhAck1yzPzvAFYf89GYgoCkKhbcBYxv86iKFzgbHQimO6ilHB0uWd+9QVAXeOvCebtfw9LOnvDq/5M637lNOysR4yTPq2YR6UnJ+fs6UPYqyIAsaYqAZWi62F7TlwPmrU/b2JlxfXXN+ec0//kf/Fe997QN+7+/+3S+9476UvRBCwBqH6Q2utmRokA4YUuelEy80uIi3A34X8UJQ9QNa9jSt5fGzF1xe3UCwCcHYD6jgIViKLCXNnl9esmt76lxhrWXTtJhhoMoV08kcIRTOdCiZEoEjSeQ8DAlfGMcM1zTrdBR5iYiCLFMJ0BJTEZA6QhytwlEkWhQJUNL2O+KlR6uMi/NTPvz4F7z7zjvcuX+X/f092qYhliWL6ZTL6yuyvMIFi/eesiyoyop+sHiXZrCz6ZLF/t6YNOxo24bHn35G3/dsNtcEH1FSMJvNcZs1w9AzmKTwSI2uR8Rbi22SX0mdpCsxpuVaFGDGwpurHCEiXbNDiCkCS15OEDGBc7CGGBUyy/DRUxQlfd8jlEQqhYiRTOnRoBIJHjbbFUVRIiLorMRbO84wI/v7J1xeX+GjQ8oioSZjfM0uuHV43bq6/Bh02ZqeaA3R/fo73fhXPooxEKL4XEQ/LsSSlTdxGVJHzOvuN35hdh0jCKVZXe+4vrpgVhWsr9dc84KoFG0/MIhzjhZ7VFqh2w7rLZchoOdTpl2P7hvW1tLlGq0ztJIcZTVd17FtdpBpZFFzFQPZZMZk/wjdG0rn2RG4WU7ojEFqzVx4lrs1s8tXdHlJNquJQ8/L+Zz8zfsUWcXdYoZ7/FNsGxF7NU4JznQkf/Q2x0TOH/8YHyJiX7JuJIs3vsKd1QterJ7j1ANCn3Nvf8Fzs+W69bzxxtscqS2XlWNbR37r4CH/rOmwWcVhdszL8xWmmiCvb/BZhTAWqyPrwTEpCma2oNhYDu/UqAjzPONwskddFFi1x0tf0QaLefmck4kmMw4dGq4/ecpalzQXa777r/4WVVWwf+eEvK4TJtWYlJ7cDaw3SV4qtWIwPe1ui5AQZEBm0FxfUkxzJnvLtLRutlxvVlx0p9ja8e5vfkDzvMG4kre+/jXm3/sJH374M77727/7pffcl6YBO+voup7eDoRQIYTAxwElQyq4OoE9VMjBJVuqMZa+7fA2cHW94/z8DBmSCLvpOoZhQIQEqzla1OyGgYubFVVRcLPdsdlt6duWXGnKYkYQMm3VXaKPhRipqppd25IJsHYghIAPyUWVLEIR6yx1meNHmY/WEiUFIniyIiMWIzyn2SXso5QpjaEu+bN/9mcMw0CMgd1uy717d5nUJXmmuNaKO3fu4HziRkwmEy4vL5kvFsTtjpOTY4JLyRAyLzh/dZqOYG3D5fkpN6sbjk9OeHV6SlWWyUUUA9b0iakgzevCx+jmEviksSXRzCAQnCUryteWWz9aFqM3NLvtCC5vESqlZIQoMW5LnS1TQbeWPMsJ3oyOuoCxFi01IVhc8Ay9S59zHi8gz4r0dcyAkIK79x5yev6coBROSWwMaTl1uzy77XVDHFkFIR3NPwd4/ZqvdIoQpAfJaxbaOJaChH6MyJGMlrTqUccxuBJuHWi3IZdKZ9STQ4gdLzdXzBd7nBuDK0sezGDb7jhzA1oo3lweslrfcNGsCAE0AYxBh0gYBqJzOB84mwTy6ZRa1Uyzilk55dN+Q5MlZ18xqZk7T3H+Cms63N4hGYGrrmM1XyAfvsFMZEy3K876lmF/gXWeXe6xwlC++3VqqQirS85FjxcVViuyacWDD34TE+Dy8jFuEOyqJe/s3aPpNrRhy4vW8duP7tE//wTDlHvDnJfbn3CgTvjAlzhzTVUGptNH/MbJG6yUxkXQB3sED5U6oNu1SQOsNUe5Yxg65jHnrZNDtBDUmcaKjJ+/vOayXXGz2TLVsDaBt5dTVmvLbrbHR23g7skDhE70P12WANi2xbY7XN+TZ4Jvfvs97t/fYzop2K5uEELR9R1CS/q+QSiBMQOy3ZFXJUIL+tBSTCf87e/8AW8cvsF/8h//R3z0yce8/f57/L1/53/Cf/of/t+5vNx+6R33peoF5xLf1ntPwBNiSnZVWQLahNFvrnREyRxrA1KkOW/X9ZydXxCsIXjHZrvDDIa+a5AxouuK3gbOrm8QMdJ7R9O1aKDISqq6JkjF0Pc02w1Spkyw6XRKiIHoLE5L+q4jSgVKE28h5ELgRwi7eG3BFLRt8k+rLAHNnXM0TctiuWQxnXNurljfrMdodcnpqzP29/b56KOPePDwPqYfuF7dMKknrDcJN6mznPl8QZYVFFkCc0wP0nLpxauXfPr4Uwqdk5U5N6sbvLcMXUsxWjWbrsOMHbKIEWNTtpOSKa5cyMRqzXUxvqaYYsNjwFlDXk3GyG0gJvuvc56maShKR1mmmbUjcQZM25JXk8SrKGR6mCFwpO461ZwA4yJJkFQsxhkGO1AWFWVR09ueIq/Iqgm9+1yKEEOC23yhhCFCHBMXJFHrJLnyv0zg+nVc4nZW+9p2Nj4qhPilRVr8Qk8shGDcvyHVra53/PUoEaKkazuikgQHG2EwQ09vOnI5Yb7cZ7h6yWAdz9uGyWLBMlgwPTfe0s1miBgpvKUyhsb19GXBIJLsS+Wavbxkv+/Z9gNIi900vCgKsuMDiqxGDwPi9BWXJ8cE4RC2YVAZcVZRxiXeZsRcEczAWqfXoPOc+3v7LPsNbZ3jxcCq6bmpa46WNdWpZSe2lNHzamj54Lc+4Acf/TEqqzjuppj1GrMLbK4f82bb89lPv8+H2WMePTjgneUed9+6y8ODG+rC0sQj1GyLbzpkloMU5KVEjYGuLq+57AMfyEguHTYqfnph+Nn1jjKfcG9vSq4U56eP+WeXl1xdvmKIgmu95NuHMzanL+H+HlmuESEwdBuGZoPtepQKHJ4sKCqPDJroLH3bYIeegGd1eUEUlmAH1pcd5aQiiMiinvMP//7/Ch0if/SHf8jp6RUqdvyTf/Rf8Jt//W/w9//dv0/s1Zfec1+q043W46NDkKJ0pIxILcl1Ih35aDEBMhHJtKKQKS7cW0ez6zFdR5UpHp9dY4eBvu+wZkAKyLIl1+sNzhgyJXEhkEmN0hpdpCOds4aubbHWUhYZQSSCVj+GULphwAeQOsMOHURPpstkZ43gvEsyqxiIPrDrB4osUJaOosghU3R9ix0qnLdIKZhUJRGRjA431/zxn/4xe4sF9WRCUVWc3L1L9IHBWHSuWF9eM5nUVPUMHwNaK2J0DNbw/Nkz1jc3GDvgY6DIC5RQNE1DVmQorRm6lmHoCN5/Tqki4j0ooUblfYo9FzHNdQkOosS4Hik1skwjAoRMeMzg8SJiraDMa4SSuMGQ5wVD3xLEWGAjIFQqyKMeO/V1aeZNiAxSjeL/SLfdEqxjNl1QZAU9AzIv8MHgY0TElA92e+QWY7oAMVG3UqqHAKX+peDpJrUCCS42dq1RCnyMfwXKmB4hrxN9R+davOXvjjFFCQ2UE4DL1Q3Hy0N+3lyxnC+YNC2vJhk703O3mrMKWy61ZNd1zLRmYTNuwkAoCpARN4AZLEVVI3oLtUIqyW53w8fjz73OchaN43GZ4yfJ8DA4yzSDxf6SA+tpVUEIDSbLOZ8tkA/epJwtedMFPn3yl2Br1OEhynhOfUG+d8SjquKT858T8hmSHDm03Hn3PVzf8PTiF/DGHYTrWYqcqSn59MNTZt2Un3/0E546KNotWZFzciTYnZ5xFg27t0659wd/i+/eecipmOLye/z4fI2VGtG9SEkdYUtQEzIpuewsT8+eYnbPWHOXy+m3oJpRB0N/c8VPXr1ivbvkJmYoHdnLZry7zCi2L1DFgsXyAXlVELzB9hv6ZsVmtWV9vcKajn7YUugp1XQfNRL1tts1zWadnKDOgIB2s2VSV7xx9AarlxdMFzOePXvBbDLBGPjxhx/RdS1/7a//TR48+vqX3nNfQhkDH31aGmjQWURnEZUrdKaTrzo4fIh4AlEJCjVBjfOw3XaL1pKb1TrlwQeHHYa0fKonNIOh7Ycxrh1QMh2FY0AJhekahJC0fYeKEY9EC0XTdFjXE2IKs0RluBCwXUeRa/IspzM2Wf1MRCUjVyJdMS5EYiDXioCmbTsyldgJ08qhtOLmOqVAXF+eY50n+sDpy1ccHh1ztbomU2nGZ4xhtlhSFCVN21KXJW3f0VtLXnb0Q8JJOjdaaPMKmeVEIsPgqESGMQPRpUWfUJro/ec8WpmoUmGMp08ISYV3Ay64kQtsCD1kWqN0hoCEZXRuVD54vHHYoRsLRsDtNiids7GWST3BWQ8xgbcnVYUfC6d3hooyGTJ8T4gRNxgatuRFTlFW5DpLQKHXReiLYTbiC3IqCZlAoMbP/PolY+mhM34vQaQbxad/xltQwjiUvk01jiMm7HaGe9sZR1Kg5bTaQ/iKob+gPCrJLi3rYcVBvkBudjg/cNHvqMopehiIwbHb7nDTimo+I7+5wbdrWqWwi3nSUkvBQcxog+FKeaLtkCSaWL634P5guHQ9IZNYY9lk0MwLimrKo9kB5uPHfKw7/ABCS4T2XGrFyVd/AxktZ68+oZ1NiPkcOyiaCIdqyXZaouyK8/Oey/0Fv31c8eLmJe94zXG/TzALfvyDv6C5vmF2vWHfB967/yb333nEt7/5Dd557xuUWcazV8+4WW/Y/eWH3DkfmD16xPe05lkVUd6zzQq+VUS+PvTMl3soJJUP4FdsN1te+j3K0jK/uUR2F/zR6TUxm7LJFshqQs7AfrXgTogslOZ4Pmc2n6EleNNi+oZms+b0xSlXV9dst9fstg1f+9q3ubvYo5xMaDYB79JMX0qJj6C0IsbAfLbk6vQVJlgeP/2Mpy/PefL0KbPZhNOzFbtdy8XlJe+++3N+/3/2LxDBntJeI3kORSHRWTJC6Eynbo4wZglZovBkKh0TtALn3AglD1g3UOaSi6GnH4aELsyylElmhrQxFyBDUhZ4wLaJJeqtRQlBlMlF1lvL0HVoBUiNjxItJcPQpfeHSvwAIRwhCKIWqTDfHsuJSCFH1mlMqRa5JlOSSV0zDAN5kZHlGqUEzhisdzSbNbumYdM+5ulnj3nnnbew1rHcWyAKhY+By8tzqumEZy9eMTQN220zJhlHlFRkmUx4wywtxIZuwJiBtmmwzhDGtAghxHi090iVj1v0FPqZ5Rkg0Log2oFIRAHODsmaGxxlNUkLQiEQQo60N59sq84RAesMZfl5HhSElMXmHS5LiRQ6y9MD0VpCCGNBTYu7MVAcnRfUZYU0Dc6710yIyNjxSka3lkzULSlTt5tCx/5/KZP/f71uHw63TJrbB8EX84pTIvDt7x+zjOP4YIly5DF8/gixg0G4HYv5kifbFUdonhY1m7ri5PqK9eaK1cEeRimObcCsdlwsSqzUxGA5OTgiuJ6WQPAGj8fqDF9XzLMpoVsTQqQPsDUDH8oVZV5wf3aMuN7xGRuMVCm12XZc9StOHr3F0dUrOuEI2tKtzjgr5shu4M29ffZiRtNsyUsojGO7seTTgm/s7/GXT79PPJqyPy+Ydpb7jcQ8ueC//uFT/tajr6GfvkA+ecVsVvOdb3yNb37jGzx8cJ8Hj97CBYMdDMezOXOVM51UNLuG/NVjTnzk9ydT8jsPkW/e50BnHLjfZDopUBJmyz2csfzgo2f8H/7xH3L2F3/MbzxY8kRIWufJ7BaCo2o37N+7z9GwYonl/sk+b7x9j6ou8KbH7tb0zZbN6oZnT55wtd5gvWMx3ef4/kMOju+QFUUaaxhHpnNChCAl3qd4q+XRESpXvHz8FOsjD+7cY1rVdH3D4f6cz5485kcffsZPPn3C//5L7rlf3ekqQVFpqlqTV5KsFGS5Is81Ut7OTAVRBJSSlOWEMqshZtjeIESg63vqssANDus8gQTGcd7T9W2ypAqBHeeAOgq6Zpc29jEtCRKkRdH3Hd6lAipkmWaEUmK9S8sbrZLUzBps8COQO0XlBB/w40bdhUDfD2RaUVWSSVXivUmZSDLFm7sYyZXCFQLTOlSmuTw/5eXpGdY6JpNETNs/2Gc6m+JMT9sNvDo/Z71as91sWK3XKbo9OLI8Z1LVuBjQMeBtmpt2XZPUDUMyRYhEvR7nibdzc/9aqRBHB9QtI8EFB0oS7KiaCB4jJOV0npINiCmtQY+6ZGfT7DuM9FfvGUyKi49jZ+2cR8qQlpNEBjOQ1zUxOJRUSUNth9QFNjtmkymF3jKMuMw4do5Rjl1uEK/XVaj06ygJ8suBz/+DXLeEG3H7wPj8En/1o8jrznc8P/H6E+MvRRlpTENWTmluztkrphTrNV0cmBeaHAGbG/qqZBMli8mEcrVhmGqE0GyGgcnBAQfG0zc3qEnGWkReeYuKgZPZHvPdwDNa2hw8HhMM0nW8fXjE3goufYMsAtH2nO8C52LHfF5wz0o+++wxfl5DtOiiRq0lk6MFR/sL1mcXPLVb7HxBlkfuNBcU/Q0TbdmzCz6zgXuLR3zvR/81WYh875NP6J+csa8Fd/dnDH3Lj378fT799Bcc/uSQYjLl/a99g6HpCMFx6gNCqJSkMvQonbG/WaX3SlWxnkz41re+gxksn/z8OV3b848/vmQjSvqjEz7tLT+4biCr6a0hHNwhUxO+cXTM/e6Ce3Lg29/6Osf375Bl0K6vGLZrumbHbrPl+vqKs6sVOqt4eP+AveMTyukMIQWTxRylNeubFd3QY70nUGL6nvOXT9G64PLikq7dkmWCw8MFUS55+eols9mMXdNwvVp96e32q3W6uaSa5tTTkrLOycuMolDoLHWKMYVhoaIiL0pmswV1vsA7Rd/doLOUEFzkY1R42yOQlHkiv8cQUEqPfn2Hkpqu3ybvfhxTWPMsRco4i/eB6AxZOSUKnbovEdIsl8TejD5iZSpSZGlu6ULEOEcMfrT9ajKdMfQGrRVVVWH7HsYgQOMspdbEsmRoWiKStm3RKqVHDF3PJx99xMHhIZ9+9CGL5QLrHbumBc8oN4o0uy1KjdyCEHEhoRV7Y4nO4Z3H2B5n/eia02l+O27OI3JkA4ysLiEIPlAVVVqa+YAIHhVT9x68I0Q3duc2xYVHj/cOoXX6OlqhpMQrgTMDkpQkLERKo4g+oKQkUxIpk/vHh4AzyUTho0MplZjFwac8OWs5nu3RB0tvhtdSqnR3jEkMt78gJVHI2xL8a78if3V2+8+/fvn7VXwR7Zi+VgJitm1PzGYp/UDnXNWKh/kdrnZrzpXi6K13mV5c0mi41hIv4GBRIy9XXEnPusxohKCYVTysS/pmy8obApogJWtsssO3kr7bEKYK7WG3veHnZUe1v+Stvmb98innc01QEYopfaFQywVv1DPWrseFjl2z4pN+RTRzjpTh0XLK44s/pw4TTuQ97mT3ODr+FleXF/zs1Y/wQ0/QObN1w/b5OVetZV5lHO3NQESMMUwmNUTo+47Tiwt+8fNf8MH7H1Bmiq7teOONt7nZrOm6gZcX5/CXP+bh/TdQSnKwv+C/+E8+5qMPPyEEh5rv8dnkTfTefZazkvPrCxbHR9TVhO3umreLigc68LbYssgMbx3vc3CyRzWpGZobzHaNsyYBucqavb19Tq/WTCdzHj56xHRvLy3lB0+Mkno6S3r5kUuyWt3QrFd89pMfM13ucXhyyP/jH/8/OX35ismkRmlNZ3qur6/puwElvpwn8iuL7i3ApqpLyjJ/DY2RWYKzZLw28qT8pGpGXcwgKJptj9IKrQKQZGdt25FnGSKmohp8wEeHNTbNyVRiGXRdCp/M8zwl2brUySoiWVmS5VlaAkmJ6XqsTbHgLqbjbamSSUCQgOIp6DGMDU3KW1OqRCmN6QcmdZWCHW0qIlpKMqWwSr3uOJ1ztF2fkiicBWC9WuGdpdnuaJod7dCjVE5eZDAex7M8f92JD2YgV2lR6LwnOIMzJv1ZRMiVREqNC4mbIEYzRJbd5s2lGaOxJvnBSYoBJUH6CFqOMKJA33ZUVUVEMBhDIVIRdTZ9PaUcwXlEpmnbljiqHrz3adFZliigGHkM3trEhPB2nNiKdNrxHjsMiEwyr6YQAyak0c4XG8Egb+ejknjL2P2lnvLXcynkyMNNetx/3nckbhvhW+vyCMQRI/QmXRKQyAz6rsMGA85zvlsxySpKAS9DQwiSd5cz5NBzbnc0MknxHh4d0qxXbIcGyhQ5ZaYTqumUvZvrlBNIoO1aPq4ixeGCN2zF8OqUVxOLrWscnn7YMN8/YuHv0dgbhthTigKzHfhF2yDKnPfvvwkvL/nxdEPUA2Um+Nb+e9RWcNJZamHZXK35Lz/8bziZT3l3uke+u2Y/K9Bnp2x+8QJipJ4U1FWG9w4oaLuOtutQmaQsS6qiom07fvKTHzGZzHh49y5t1/Hhhx8RhWS12VJXJdvdmqIo+MEPnvLwwRvcufuQk7sP+HDVcvnyBulroq4Ikxk5OYfC87fu3eHtwrHQEXvzilz01JOcEF0CBp2f0Ww3RME4ckzY0lxnzKczlkeHiV/vbWo28iItd0Wk71uEFlSTin/6x79ARccvPvuMew8eMJ3NeOuNmqIouHvvDsYP/PGf/Qmrze619f1XXV+iXpAopSiLgrq6LbzpGBqEAKmQEaSQFHmNkhl5XmAN5EVBnmm0EljjUkKvTBv43g54b2iGJkWQ6AzvLN7Dbpdi1dW45e6G7vMYGwlapRgaIRTRWKzpU9LtmBSRlhvJDixjmoOqLMOFSKY1fhT/KKnSjFMK+r5n2zSEAFmRQRSYYUAJgZYCkSmMNWzNKiXnqiTXMqZDROh2m5Syq1QCuKelJ0pprEuCbEKOFDKFRYaA9yPsOoQRFXibJJCG+FKmIb61aamWFxlK6VGHm+LBhdZEN4w/aJ/swyGlCafIoERLstYjxUBWlmhdIGM6FVgsPniEjLRdQ5kXCCTWGoSI1HmOlCotHGWaDSunMEMPUmGdJZNJ/jX0HS4aEDLFdcd0yvDjAkrGOLoF45i8wBcJMb/265e+ky/wFn7l7/9iBz9+LKTA+p5icY/dekt1co/l5Skvu5bj5THzi2cI0fEiSA5O7rB83uGVox86XswL5nfvwrOnBBNYuZYndkAVJftHB8xfnHKd9ZhKQ/AMtmGyXDDTb1LtLgl2R17MyBCcbzfEqeJgdp/DVc+r9oatXENWk+s5izIjTmv2r3dkwTJT+3z28hn1bMlvfuX3+fMf/hkXzWdIHdD6iIPZjPerCnN5TWwbfueDtxFSJidcbwje0vYDzqe8QuUD6/Ul8+mUqixpmob95R6nlys++uxlCio4OCTGDffu3WdWV0gl+O7v/DbTyZzrqxsyJbixgqArbFkwnR+geofKCx5VkW8eTzlmh12d8fTyJdIbDveXNKsNTXCcPn7C1eUlUiZ9/tB3nF9f0TUNgpDUVNueWOboPCfLMoaupes72maD94YoFccnx/zxf/vfYoPjk6efMZ3u89d/93eZTwtWq2t+/NMnWOdYLOaUxZczon9l0fU20Lee4CBTJXlWkumkzUWo8UgbEWi0KEeBffKmV1WBznOUzmjajrbt8T6gC5UWxM6PEGhF13VpYRMjmVLp6Ckl1hikUmn2GDxaFbiQPhdCSMyHGNFSp5EcoHSOdxZJ6mhjhOh9gsNIMepY0/KjH35ZW2pHfSxC4oxBjBZYIQJ93xFiREtHpjJk9KN5IXU6ozk0HVWCJ0qVlAPOJfsuCaChpUSPHaKPKWH2ttCmDXpAqQwvDVIKiqLA+RQBo7R63RzGAFlWYIcOFyIhSkqVEXWK8UmyrTEefHy9wQ6UVZK1ERRK5zjnyFRy5TiZNNi5Sq8/aE2uc1AZUkQ6Y1AymSfk+HNy1iIR5FqjXUJvRlKWJaO+mBHwnStJWWUUVYHKFIFff9G9hY0nQUL8lQ+CNJm+LbTyl757IQRSSKRQiOhxtiM4w43bMDc917nimbTcFZpd33ChFatuxZ3JBH/+krNJxrZbc5U3vHE0wZxe46ucmEm8jpjMUy3nVNYxxA6Vg1JwvWu5LKZM99/h682atlnztH2BqwqErtmTmvvH73D54nvUYcc8z5llFeetobp7xHvVb3H29FNe9o6d/RRxFvHLe9ydHyFFzzvHR9ytFtBsOZCRF9sNzbolWIsZLJN5zXw6wQyCYbBorVku51hr6U3PYJJdPsbA1fUVnz45Z7lYEIPjerXiYO+Aptnx1qMHXJy+5MXT52w2Hc4Y7j44obmxlJO7qIP7gKI0W+oq5927C8ruHNee8eLjn/Ps+SnH+8skVV3vaLuGJ89e8tlnnzL0A7NpzaTKWG93SKGYTecJ63qzoqwq9o/28d7SNluasYla7h/y0cc/5/rijOViQTEp+OGPf4IULS9Pn/InTz7m7PwiNTVRsDdffI4D/RXXryy6zkVWq4bzix0nRwOL5QTyZBoQUiBlkqyIUWJhrCWTPVIlSVSeJ6pPyg0ac6aiRwmNM44YAtaktNsQPHmeo1Wa1TprU/yxTxjJPC8QIpGzNArnTMqx1zp1rCGRunSeeALOBYL3aakTwms8ZaZS0bfO47xHCckwOCKCTKfPDSNusreOQmuc64mk7lCJREmSQqYHxygZUkAmIUaFJ6YQAm/hVnaER+i09fYuvXbnPASPzlPUiNYZUaa5rYgpdicrCqR3SKlQKkuSN6WI0aOVIs8rnO3ROvEmhJRoIkWmyXWWvq+iIgabpGRaoaPGhEAg4BxkKvnoUzijJ40O0kNAqjT6kEpTVkl1EAHjLEVZ46yjHwYqPWVWVGxD6na0UriYjDJJcqiYVQV7i5rjgxnzSf0vRdG9fYrdRux8YVP2S9dfpY1JkcYrQvB54q8YR0AYCt1T1wUzJRgKzVQEgmvocshCgZYWiaERnvpgHzUkIti0LFn1LdUbd9kbfMo/ywTr3ZpdqZnslbxlcgoj+FlzRp9lCDWg7Y7j47e5OZUo9xkz2XJQTFnmB6z3S75y8DtMf2bQfsJnVwO7ix8QReAre3eZVnt0l88o9MBRtcdbywNOJhMuV5BLmAdH9IYyy4kH+zztDLPpBKN7JlWBJFDkOXVlyKuK1WrFrumQI6d5GAyz6ZTzqzVN2xCxaKFZLJYsFkvu3b2HVpq95SFDb5hMZggcP3/yhJd2yraLHB/cg3KOnC8o3UDcrAiu4fzZZ3z66Wccntznqx+8z+GD+0TncdbTDAYTIlEpglK0NmAd3Ln7BvcevY0qatp2QKks7WqGju1mQ7PdUZQlKstxxpOrHOd6Lp68RIvAanXOH/3RC6SE1WqDtZ69vX1i8Aj15ff0rx4vxIC3juv1msurNctFRV5Mk/RJyoS3i/q17tI7zxA6hExov6IomE7nWHdKJNK0DWQagsF5k0YKwQEBrdRrM0MEUCl+/BbcrbMMRIJqayUwfYrQIKTQRhcdiITm895iQ3LB3ZK5IiKNJILHukA7GHIlEqMWsN6Ny5/kXEsgkxHXePumjCmqu9A6AVJ0cmrdZmHJEFGSlDgQ4+tkX0aDgHeRLMuxowPMe08IDq1Th6lVQkQikz46bcsqdJ4njqcQaKXJixrjEqYyr2qUSInLSnhiNGiVURYFWVkiSCGF+KQoUFLggyDLCkwMCGlx3qG1xvlAlqVMOVRSGCilU75ZnpOTpGAhRkTXIWIgL3Kk1jTNmqqqmOqca9fifGIsh5iSc8ssYzYtub8/5c27h8zq6l+SVdptcxu/+C/jx7dTEPF6ni7H2biQYiSM3Z5UBFKq9L5AYM0NTkypbM4TOXCSJ47ARwwsphPe9hmddzzr1mzrguN6yrEs+bQ5Y206rqPn4XyPBw08Hc5w/pqgp/TMWNx9i2zjqW8uQF5QS7hbvstHvqN8dI93rixic0M/7PHDZ0+xT39BWSi+u3ibV6eXWFpwG1Se0XVrvjJ/g53fcXe/YlksuVvXSN+zJwJLAr5bp6O2CNw92qcqCpqu48Z0OOfIixohJDfPdmSlJc+zZJzyjvXNiocP7rO3f8jP/ux7TCYlSufszw/5re98l+XhPg/u3WG7veSjTz7i6eMn7C2PMcNArwrk3gmZqui7HXuLAwYTyTNwRJpux2q9YjaZ861vfZN7775Fnhdcnr7i4vyCi8srVptt4ugOHdNqwny65Ktf+zrLoxOKakpWJSmsGQaGvme7XhO8T6RDO1DojOlsxtfee59PP/6Ir3/1PcwwsN1uGILl6dPnnJ6fM5gOqSqUzr/0fvvVOl0tyCcSnQUG17JrdlSTHJ1VY4DfKHKPqU1wzqYuTUq0LimLgkk9RQiVrMTB4azDjtv1NDYISDWOKmJ4HZzog38dmaIyjRRgbI8Qkq6xeOdQuX49S0uAaTmaNTyEtKjTUhNcknwRw+tuMMZkcVYqdW7epeItBfgQMH2HHI0ImJAeKwJciBSFpJAKaSXWpAKpRl2kZBw3hDFdQIDOctwwJIB3jAzWkmXZqHQlDfGVRumcoduSZRVeZTibxivEiBy76RBDGnnIYsx6Cug6LbBECoJjWk+Y1hVeJsVCqRXVdELf90QhkJkikhFiIL9dMBKIAawZKLN04hACqrJOtl6tEEKyV5bJeYYYZ+siEc1iUjGURY4UPT4GvB8B30QyAdNcs6hKlmXFvKoIv/492nil8U0KvpcEEX+54L4uyLy+327Tgm/xp0n7PXa6EgoN9aQgiyVLViyrGt8ZqmgJec+cfVx3QzZpCZlnvjik2EGlLUZb8sqznE0ZSs1ijFGSdYkuD/ik65ktpnx1+nV215+RVXf45HrF1r1CaMXX9u+yDJIXuzXBrSlzSR1rXBy4s9hn214wFDPuTRe8Oz/mKK+I6hjre8Sw47w5pVtfUxlHPZ1RZJpV0/Ls1SmQEnHvP3yAmHtM6MAbohd85b0HnJ5viS4wmZQ0TUsgcHm14qNPnjKdptzD+8cP+Jv/yr/CZFIzX84oC82LZys2Nzd88P7XWe7v0bYdjYHdjWXtO3QxYVYWONMlC7yIdL2lbQ1vPnrE3YcPmM7n7G5uOH91yieffsrLs1e8ePmCruuZVDVvPXiT7/7mX+ONdx8x399DqowYPVKk9/v12Rm7piErc05fvuTq1Svefe/rHN25w89/8kP29+ecX5xxdLDPwzfu8tmTx9y7d0JZV5yenVFVBVn2L2gDLmvNYlmy3CsoagHSJ8KXB3QCr8ioIYxC95A6VW8DJYK6rOnznKIo0gJFqjS8Hnqij/hRo5vlOd45BDLlf43FJNM5MQSKskxZXYC1FmdNWr75dDQPwcE4ughi7CBH8frtsizPM6IP6XgsBdY6gghIodPWOqaIGZ2NIxOpUtEpcjqT1BREXrNUwxhCKNU4Y47pv5FjYkMMyaGXaUWuJCLTo8sldX6ZzrG2QwiJHkPvhhHoI1VaYFobxze3GmVajlyXCMHruaq1FqTC2w4bPFVVcXiwj1aa3nqiFNRVwbSajEYJQdQJOo+3iFik3Dk8WJfCKLOMup5Q5BmzyQQhVYpKIjkRDxaSy5vr9PPwyXihVZIHqgi51HTWjLdEeg3BJW1v27Xs2pb0vPyXo9N9ff2S/vb/4xPjqenzYvv5x7fLz/HXxtOW7ltcVvH28g5ZvkdfR94bPPX0kMu1Z14XvI9mUh7xdBO4qQIHk0dMzIq6PuSTqy1GBd7cu89Bs0RlBT+9aehiw6rb4KcHPCofcbHtCH5Ai0AuFcZ2nBwf02wEvSzxMlConL1qyvFixsRU+DhQa8FJmdN117j2FX13Ru9bgjdor1hfKq5fXlOWOduRD6KzgvW25e7dgsXRnJ+8+Cg5+qSgypYs3/0G12dXKOcokDx/fkap4Wj/kN224avvvsMf/J2/QxTQm5bnP/iM7W5HmWmqquTps6d88ulnbJstSmX0i4f0HZzzU+oq5+DoLrMo6F59zO70JfPJlEdfeZfp3hJ8YH1xydnLV6w2a5q2Yxgc00nN3cNjvvtb3+Vr33ifgzvHKJ1hjSVEzzAMrC4vuD59RcwUnsB8sQcx8PMP/5JXr55CSDmMLgSads29k2POT1+RFSWLWY13e+x2W2T88nv6VxfdScZ8UbG/X7NYlEwWNfPlnDwrCdETg0xHeikJPh09fQxJfyoG8rxEKUFdlXifBOjW9Ijx6J38+ILgU6dog0MJSQgSNaLzsiIfVQmp+/XOpnGBVK91rSEBA9Lya+y4JaSuOUYEikzluJhGCN6nMUGIpAgi0kw4U5EgoCwLrEvFvdaKuijpuwEISNLyMIxvQmTAu7S0UmqUDsWA0qlQZlonfoKKSbI1qjU+f4Omrb71kUwGAiNjYTRJiHHjnxUFgzEEn/LkBJE4OvikVNi+gSjZny9Zzqapi1RpFpznJYNz5FmGi1CVFdaD6TRaenwUKJWhIsQYqPOcQipm9ZQsz6mrCc6lSHipJEUWU5DfZoPS4MaThfMeEQLzYkLv7Njtk9QNg2e7brkAhA+s1xX6y3lL/wNcAVC/NGJIP8UvPBLEreGD18X1dafL+DMaT1C33F0hBM61hN6j5wdkfmB6uOREvUe7atlUBkTGvpriVxYXG5zQhMmCN8tDLpqOrLC4sGXjOh7s36G/blhOYSYLikwwqwqOju4w6Ttys8EJQ1UVHJVzvjq/w3SzxJUST8N+VXNvusBst8hty9nFOXa35vGwwdiWEJO0MtlhAj5qRCaxHWgTsJ3BhwS2ci7QdQMH945RrzJcMEQEje9pRaBfHNDe3KBLwWT/ANUZ3njwJt/9je+wN58yX07487/4PtY4Htx/wMM7D9GF4od/+X3OL6/I8oIsz7m+uWarlsjZHWIcWG0ueXDnmKV3RL/DmoY337rP0d0jdK7YXl9zdXHGerNi12xwzrF3sMfDk31+8zvf4oNvfp3l4T55UeBMT7db0ex2rG9u6DYNfdcRtKK7WdH3La/On/PDH34Pa/3/u70za5Ikua7z5x4ea2bWvnRX790DDDaCEERBJCiCRpleKJF/QH+Iv0Lvkt70IJnM9AiRIClAwACcpdEzPdNdS9deucfq7nq4nlk1JISmGcAhzFC3J7snqyIja/G4cf3cc89hdTAgy1LmVcnlxZS9nV22NrY4Ojmm1+uRpYbp1NL9IySif+mqTzNDvydGgiuDgpXBKuubOxgM0/lYlP+18BUdgmPKcxEVrkqDxhFFiixNRFMgSDA6J2pW1jk8QplaYIkKwRY9SjQEWouzVpKd90RRqC4ioZrpSAe7G0cUSyK31glk4SxK60DRUjS2w3joOkeioQMU0tBK8kRseLouJD9D27UMBgOGkyltY0lMcKQIYjDWeryXKlgpTxRF13J/UYTRGm+twBQQknNEF7i+GoEcrHNExHITU0K81zoK8ItejjZLQzKIr/iOLO2LyaYTc8w4kXMYE5GiiZQRNoIFkxoiJ00uH7Bep6CravKsR6eF4qeVI89SgUxaS61ber0eeZHTVBUzoLYpK4MV5vM5SZTivMIBk9kE72V02wbIQpqGMLUzfN0yvJqiTfRLKVlffCwSKNc3OxZMBXVND1scHRKuXjBPbiTb6/DEpkXbKf31DYrEkG9tcmd1m2I2pFItRVJIA6qecU5DkmesZH02Zw2r7YypL8mzgkG+yrt3n7I9GzF2FVnmGRR9Hva2WI9zzsoJnarpbEmuFbmas1WXzLqK0eiQo9mQ/aak60qsb5Yj8dZZPBbvXXhY0eqgIyoMvta0nVvCXM6Jseu8rCmqmNQUtM2CBeRIsx5x1qfIV0ks+PiIr+3t8Sd/8PuMhpfYrsHWDQ/v7tBZx9npERtfepc0S6jqEm1iNjY3uTw/ZTS8hGiANgW2mlLS0OQJ2caAXlQzeLjL3qN7xGlMO59ydfqG0eiCsprRNC06isiTmHffeYdnz56yvrGGiRVtOWV4dc7p8RtODo8YDickSUZvbZ3ZbM50MuLTz15y+OaIOzuPiE1E25Zoozg8OWY+nXJ8dsbD+3scvjnkcP8zIhOx0ssw5lcdjog0SSJlf54X5L2Mfr9PojK6zjGtx3jZsQtdSknSJVJ0Tce8HNOUnjg2bKyv8mr/DZExuNYG+laY+/eetquJtApuB5o0k/E7rTXetzjElFGkGjV4K5MmCL/V2+vPi/mhDcNdljgyotylZKFFkaazHh0ZamuFUtZaih7gZPxVjBoNjbUY58iSGNs0aAXGiBW8KBFotHK0nbjmRlrjjcIFse9Iaaz2YcLML0n4TdeFalYucuesTJ+hcK7FKzBG2AqxSdFakqVGzmW7BeNYdGpd26CzDBPYHCaKaDpHnBi0jsjjIMZtHTqKiSNHnGW0zpGmooWhjYGuIU8MJjb0ewVxnFI3LbP5XOx7BqtkvT56OGI619jWygWpIzG4jDRX1ZSei/G2wzqHcoLdV7ajLGuwogW8gIz+WUMRph6ET7zk3d6EGYQhtkyq19zcRXMtwA3cSNQhbGSJ/AznpiQ+I/OW7b0dtptNrqopPonYeTDg/qTmuBxT+pY8Tbn3YMDDquGymhDFUrRsxykP6oyrasa0vKSaH3Nx9ZLLrqZsauq2pGsrvG3w3sq15MS52+FwvluKGjnvhfqJD8LtNrh+25CIFWmuWMt3GR5cSSPaA86TJgng0DZmkK8yrUdhACFiZ2WDROV4PSMeXrL3pcd85dkzskQzNZpHT9+hms24OD8hi6FfxMzqEe+/eMX52QnjWcVweEE5n8rw0uQCm+S0cQ9zWsnY8/07bKxnbN+9Q9bPqeZTZsMrhhcn1PVMDGA7se1aX11jZ2uH/mAAwHw6ZHY14fTNMa8PDji/HGK9YnUjw3jPtKyYTMfUdUWSpDy8d5/d3S3eHB/w4uMXFHnBcDThg48/kdHhfsHoYk7TzOlvbpCkv2IjLTIRSZKQZ336xSpZ0sfEhtTkZFnOvJ7gXQdKGlAKaJXDaycYZTVjMqnRQfbROUdiDLVt0Ij2aJgQQClpmHsnjaIowA/eOqkqvRc8VGtx+nUO77qAfyYi4ag1rhMzRhUqS+usDDhoI5WokqpSK03TNMRJSt3WdM7StB6NQBBxbFDao70OCy2liiocXu782oQmkcV2oCJxBFYAnccbQxwnKO8w4YcjIuuiwaW9R+lItubaC2c5OBZ4J0I8nXOSRKMInODTtrMynOIt2ossZZoV2NYSFRG9rEBHskswoTpZ8E+7rsU7MHkf27UkJqUxLc41KAVZ3mM2afHaoOOUpnWkWUzRS5nPp1TjK6xdIU5ier1iCdXUTU1R9KlaEX23SjOrShKv6Lwi0IxlV+Acznqw4LvfhE6aSE6Kyy94taCQhRSqRUtBaR8s16+ZDEKb1KGZdo3vLl6PIEN0ruXq8jOmoyPik5zR7j16+YBYG3RsOIvP0U1H1jXEOJp5xauTGbruaH2LtQ3n9ZzXbY3GhmrUhaGYpWSPPPyNh7sWecJbgQ+Cyhzeowjn8aKO5q1dJmCFYWNlh997+of8tH2P5y8+EAtyPJPxFbar2N3ZIjPFEpqJ8KzGinZc0rMt3/7db7C5vkLbyui4dZ4P3vsRzlnSOIfIMGtrfvC//gezSSlUMSWJLEk0Vd3irEyVDgYFa3lObEtWfMPmyjbZoCcMiZMzTo+POB9eMJ7NqNpWbNQV7G5tkiYxrm0ppyMmwzFnJxccHZ9weHpG6yBJUrxWdLZjc3ODj5//jNl8JhO5RcZ0dMVsMiKKQOOYTkpOT6co79nb3WB1dUBTl0wnU1b0r5h0kyRh0F9jbbBFnq1jdLqUYIwiEdi2gdKlQmdXe/BaeJkuYERJalBBVMR2HTpCBhC8AyvW3EYrNB4fGaKAdaZZiqiVKlpn8X6xffdEKDpvcV1HkffAeaI4oWlq8J4oku68UgaNwoRJKGmaSVJru5YkSZjNZhAZ2rYVdwklbsJKOUA4vmmSkKUpnZWKQJsIEwlsYQOsEAUOsAtiOYmJsbYRAR0rMIe6oa7ltQhhKy8XtNYKHZnQBJSLWpgWHQ7RUu06JXY4ztF5L5KXoWo2YbzYetBWbnxGCe83imJM5Om8lUahiYk7sezxXoRvbOfoD9ZxXYMjou46TN1Q9HL6/QHj8YjZeEhSiMlfnvfoOksXbn6b/S1GUYT1sGk3OLk8DuaTfqlQJipvXsaC/xGcxn/quE6SgHLXCxmBixbVr9JcP24kWKUFz70JSQDXesJhvXlncVS0ruZgfyS6DYj0pvwX9CrCkIZBnEwiFTR8AQHxQpHiQ5Uq74ZfPl/8e+NPgAycdyHJurA9lPUtDEeHc600gRVEUcTdzcd8/dm3qYee5y8+oKoqsYWKYyKt6JoW12o0Maku2C0ecF8VPPnyHTbXB0xHl3RtQxobbDPn4aPHRApefvycSTnl+M0ZhweHuE6ztbXD5tYOz188p+1qmqaiKivK2qGjnF6/z3rsuNcfsLsxoFjtY+KE4fkp+4cHnJ6eMpqOuRgOuZzUOKfY3Nxgc3UAOOaTCaOzU4ajCSdnlxxfDBlOw+4tSZiXJbNyxqBXsHvnLnGccnJ+wgcfvs+/+6M/ZDS6YjicMivnSzroaDRha61PmhtWV1fxRIwm07euuV+adPv9NQbFOlncJ9YZyhnquUVbkWMU5SgXKgB5TaTDr9w5olh0eGOlieMocEQ7vAPrWlHt10oaOVoWrYz/ikNEhEy4tVpBKwsmMYbOtigT49tWtiBdK1tnLTisVbKF9p1QmnDy2ihOUKF69J3MWkfGLDUOGhtgDxSJRswumy64KSjZOrSyMJ0DtApuwwYTSdJz3tM2DUkcVLvQeIL1i4oAG2QXCRWgRStNFBqSUj0LwhgFE0hxkJCvSyuP64QH7bzFa49u6rBTEF0GFORJClqhjQ6yjE6GL1DMqxlJUlD0e6iZJHvbddJoxGCSmM56olgEtq33rPZ7rK1vMp9NSZKYuq6ZdlaclZOUq/EVnXWsbWxLIu5a5r0VXDmlrmusb9FG6Gtay+9kqaf4zxoyS7jgYMvzheNFjEIyrQr8XLQD7T7HXtCLqphFQg6wz0KTYcHbdgK/+UWhIi3c64ZdECrTXoEKtkZ6kcDD1xdoh/7Gz877a9ofyK6JMJG4qGIXfoeC38pNwHtR3rNIdbuQ73Qo0qTgwc5D1le3KPoFg16P6XRKHMesr/Ypspgkiri/+oiEjDsrd9ldvcuD+w8YDHrMZ1MGg1VcW7O/f4BGsfco4vTygtOzE95//iHD8ZiVlTUePnrMaHzJJ5+8YD6bhDVmKLKcNIbIKHaLmDsrBU/u32X77i5JnlPNZ5ydnrL/5pir0ZjT80vOhyOqtmVjsMqgyIi0TGJenJ0wHF4wn3dcjkqqWthSURSRZRkKxfMXLzg4+JR3v/wuf/Cvv8v3v/992nLGyckxDx7s0XaKv/voI4p8hqdiNK64Gs7Z3XpMVU5BObJi5a0r7pcm3V6Sk+oUTQROY1sopxVt1dG6ail07YUkK1WAtBdk62UicZ1twITml3M+CNh4tBEalYkSQpsJpRRJFAlvNeixNlFEhUAPeLvUYtBKLhNx+pWLODIRtm6lEedkO60CBhpFHms7kiShcTIQ0FQVRmvazstNgGtKUBxFGGNEzDiKaDpD5CyRgtaJURHh4nOwpKsppTEmwURgMbLb0zroHGjZ7csdRdTylQyaKBS2a0iSDG2MOESAMDpsR5wV2K4RQfTOCp4YWB8e+d6EPmeEwRFpiKMweOLwKqP1wjTQtiMyKWliaNoGp8W6pfUVRW9AU82AiDjJaFpL2Vh6eUyvP0AhzZThcEQbcKEIxdnFCU3TsLKyDloza+bUbU3dlOR5Qi9LGPQSktSQJIok+k1gL1zHsgGqQ7JULjTQrpPpTVz3/98IvFYeu3H2sOP3cl4IuV19riq+OYnsEShGLY4P1EZuJl0f6H5cJ2PBZkNTzLllleuXlW74vJOdqPVuWTODNHd70Tq2dHz26gVn50d474WeiKfrUuraMxpesbK+zW7+gPube6z0+1TzKeVsSNs6PptMuLe9xaOHjzk9O+avfvC/eXN8DEqxd/8R5vSU2WzEq9ef0DYNk/E05BSB4Tpa1tc2KHorbKQFX33yhAf39yj6OVU54+D1az58/hHnl1cMJ3POh2PGUxFvitaQPkgsmrij0YSr4YTprGTegFUCnRZFQdXW5HnO2kqfn43G/NXf/g3j0ZhvfO1rmAhefvqcy6tznj35Ov/2e9/j4OiI//uTn3B4fMr+2YhHDx27d+7zev8V0/mvWOkKDUYaXi5skTttUTR0rqSjQ2sxLXSRNBI8MqjgQ+VmYo3ynn4vxSiYt8HWheA04Dw6NmF7pUWMJY6J4xijFW3XSQNJaYEiIuHGOifJzeMDE2IhfyhKT0qBNolYK8cpXVuFVS522R6FMoa2rsI4pyRwHUWkcSyaDklM5sSzTG4OEXUNJjJgGyItCW0h5SgKX2C0MBxc2xJFGq0TsdDxHhv4ElrrpRPxomMuNxFJwLGJltW794JBa7xoVDgrWds5THDvtV2LbRuauiYxBov4zHnriWKBS6wXFbckjulsR2xlCtB5S9M0mDijbUXxbWVljdlsirUteZ4yK2c4D/1eQRrLhjfNUpGptDII4m3HbCauqlrBzsYOUZKgrkCrjo21PlsbA9YGOSuDHlnydvzrnzokcUqFK7nuptCjC0iDusZJuX5IEl48v8nbXfbYwusXlfM1ngo3C/3wPv560MjrxWcWUIJ8rXbR3/PXRp9yrgWM4yDof9hQ4fobSVegqe66eeYDcwE5l/eK1f4O3/3mn7Bd3OGj5x/y8uXP5TrSEbaztG1HEmfM65bdLGW7t0KeZ1wOh5R1iTGa+WTOt//Ft8iSjJ9/+FOOTk/ZPzohz3pkec7B61c0XctkMqZparpWiqE8EmcY7zxJnJGlPQbFgC8/eMDe3g5ZL6dtGg5fv+a9937My5evGE2nWBVRVQ3eOVb6fWFLuVZ2ZMpTVhWTyYxZ1WKJUJEmH+QMVleom4aDg31Gowu++c1/wf/54Q/56OcviFTMowd3Ob+85PT8lKPjC+7fe8zjR4/5l9/+NhsH+/zs/Y94dfCG7Z0d9u494vBo/61r7pdbsFsh+uPEA6r1Dtc6vG1xvkIZh06NUEycRovXBNpHQXdVBZEWS1YkxInBT2VIgoBNRSYRWpQxYS3JNmzRgW+7LljWEGhXPuzLRUTGmCxgoB4T+JPGxKA0JvIyHhsZ2jpU4Dg6J80o5YSyZt31tk3Ea8Trax54qULDlA5yWdfESULdCm9RxcJR1gjXFxVR9PtkWYyta+LEgIrDgEHLeHQlWKmRbatTQifTaSRfq4cszUTByYubhPWeNMuXY7WRk6mypmmJuibwlztxj3C5uC0HVwilRXEtDxi2846mlVFhG6fUdS084tB4MUZTl1OKdJ0iy8OWE5Ikx9pWBHJMirUdXdfJyPXC8y7SzGdjWtuysrJGFMVsrGzgfItzJXvbm9y7u87OxhpFkcna+E0K7wP90S3hnJt/locRGm9LvUcXoIQlyBAS7g0IYPHXMnEv3nJR5crLbWiGaU/Ab1me17OoeEOJYa9vBNe0LznO+y7c6KXi9Qhu753F+S5UuzcaaUrWPCi2Bpv87rvf4uHuM9ZX1vm7D39M55xMJTpFYy19k5KkBbubW/TyjNFkJgMPcykA9u5u8eknz7FWKuLz4ZjIxDx++oTz81MuLy+om1quP9tJk1V1mEiTxIbV1Q12tnZY6a/x6MFj7t7bJilSWtdwenTEez/9KT/+2QdcDUUSMklz0jABuzLoUaQpXddyfn5OliZUVU1ZN9SdQ0cGo0Vft+1kruDs+JTxZML9+32ePHxEXZXs3t3BFBleJyiVM5lN+Pjlp+wfHlL0Cu7c3ePf/P53+PFPfsKnrw9490vvsL6x+9Zl9kuT7n/+T//l19rp+Iu/+HWe7TZu49cRn59A8wvWjCI00QgJdnGsX6ZAv6iOQyPqGm4IjbgblLPleRdJV30uRUOAzBRSc6vggil9NSXN1sV5lBynljrR7jrpski61wyHhfKdc/Y6CXsRPFriw34xPWjo5i0/+eHf8tnmK169fs35+Qmz+VzYSV1Hkq6zkuf80b/6Fttbq1yeX9FWJfuvj7h//y7zSc3B60+XRdWr/QNGs4r19TX+8gc/oK7naOVpW8u8qskyoSuORhOU79HLCzY31tnd3ubp42fs7GwTZym2bTg+esXz5y/48KMXnJxd0jlLmhV4D03bUKwUbK2tMsgT2nrG1XAG3tN1shtx2mAiQ5zlmLSH6zpoHU8ePmZlbZ3L4TlZFtE2DeV8zHh4zt0799ja2mM4GlKWc7SW3smnn7zg61//HZ49e8ZwOOTs/JL79x68dcX9ZoFqt3EbX3iESlG8ipaJU+pXaV7pBbMBJfv+JS6wwHUDL8MvGmw3Ob7h/wNWKTWq2EYtcrRevOGNjpr36gYqsaCBLYpl6T8EfA4fKld5pfBxPcI3XzxwXUjE19CGU/I9ehYGm4pIGerS8snHn5EeXnJ6fkakUp4+ekJblRwcf8bThw/4zu98hdVexNXFMUXRo5/FfOnhHqPxkGo2o+gVTCYT3hweMCvnZGkiMKDWxEnO6qDHweERVW2xzlGVQRLUKnZ373D/7h6PHj5ia2cdnUY43/Hpy5c8//nHvDo6ZTQrWVvfEGlRrUnSlEgbelnGoCjYXh/Q1CmnZ2fMyhLbeiIjWs/GxPRWN4jXdtlZLdjpRbz//k/48c9+RK9fcPzmkDzvcefONvsHL0XGQGuaxhKblKLXwyP6uYeHB6R5QVs3zKcVw4vJW1fcbdK9jd/yuJntFpWoNKZuVsAS13jt9fE3n4ePLulxSHZTnz/H5477Bc04D1gVEn5QBRIqolu8q7w2MEAWz4WTG3DcG0l3WWW76wQLMkgUiA5LHkVETKxSkjTl97/7x6R5j/OTC3pxxs8/eo8igz/6vW8SR3Bxds54POXOrsHbhvOLE6bzEtDMzq8o5yVFvsrG1n3G0xHnl6dU1ZzYJGgVc//+Y+LkjOl8zGg8Jo5jtrZ22draYXd3l16/EKXBDk4Oj/jwo+d8dnTGeDLBJBl5VlAkOU3TkCYp2WpCnqWkaYL3oJVB6xjnykBjNcSxoVhZx6xs0hXrzOKE46t9jk4OefnJx/T7PZSK+MpXHnJ4+JrZXGRpT88vA8tObq5N05GnGXt7O0zPxygUTx485cnTd9664m6T7m38locPAxFBcB233NrLFl7JBGQ4Vv52QpW8Tq1LvHXRF2CBx4YGGbBs1iofIToeC8z2xqkWH/KgQ6/Ce8R1w4UqOcACKmC/+GipmbAY5100zqR5tmDoBTNStaiYZUDJhxJaoVDWUE86Xl18hv3L/8nThw/pD+4xWLvL1dUZf/h73yBSlquzc5SK2drYoSgGnF+cc3JyTBQlvPP0MUolbG3tsba5zdlwxI9++h5XM8u3nv0uiVH0Bgk//dmHrK2v0rRzVldylIqIY0Oaipbt5dWQJEmYTEa8fPWa129OOD65oCwr1je30bH8NNbX1un3ByIuZeSbm85K5uWMaVkJ0wfRaDFJTrK6gU16WJNz2mns/hnnF5fc23vAV9/5Ei2OD3/+PvP5jDhJSeIeedqK5omSxn2aSoN9PJ5SV5Z7O4/5xte+wYNnT9664m6T7m38VsciJ6pFYvx7n/uHcZPBED6yrFhdoHXBwu5ShWy6GJJ4W/yDwjjAEn5R8aqgveFEIH5J2wx/JLmqJT1NitzFqC+4hUAU1z29BetIBaNN7z1dZ/n+D/6Kzz59yZ/96X8kigx372zh2znHR5dsr29Qd56N3R32Xx/w0c9fsLm+wZcfP2T/7Jg3pxecjc7pH6/T76/ynW9/i8fjKRcXp7x4/gGnJ/s4h6j9OUuWxWRpQRRp5mXJp5/to6MI23VcDa84vbzi6OyS4XAqei1XQ7ZUTB7ngPixJbEB1zGcjJhNRkxnM9Fj0QIrKAtR1qdVhnkH1bzCaS02SoN1mukVRW+Nsp1SpH3Oji/Y3lkn0oqNjdWgK+KoKidsnyjBuZi9nUf8+//wZ+w9fcLq9vZbf8e3Sfc2fqvD61+cWtWiQ4ZaFqxwA84NeOrimMXRUgBLAlQqVMD+5hlCFazU8mR/H2JYvIWISC3wYH8N74Yk2S00m8O7L5KzNM/8kizhPFgvQv4BGkaqZQKWvfg2hN9jTAydCLSXVU05HdM1M1wHw8spsYF8r8erFy/Yf3PCxsZdMZ18eJ83l+f84Ec/pmpacB9jTMLaxiZ3drc5fHNCax2TyQRnFXFi6FQk+i5ZinagTMRwPGHoZ3ivaLuWeV1yfjni8mKM85AVPbK8TxKnpElKkma0bYftWrquZjyZUE7ndF1HluUkaYZHoU2KU4bKKq4mJZfjGqci1tZSIOZP//zPefTsIT/867/hm1/7HVb7fT7+9GN8YSjLkulsRtM2dJ2nqR15FvHVJ1/ie9/7Y979xldZ29ymKAZvXXO3Sfc2fqsjMFQl8f2CQlTdSKqfjwUdS31+8mzBMFiezC7PdH0+HSCHX4zpwqKRpwINUybNFpjuAoJYVLHAUi7VORew2wU0IRKmYXZ0WTGjbtxACCcLk3ddJ+4tcSSuubPpmPFoxPadRxx9ckyeJewf7PPik5dYr+i6iKdPn3B6esxf/+g9us6xd2eTsiwpS8/hmxOGw0vSLGVeVhRpzMZan5m1lLUnSlNMrEi9GArMywpjUrxX4nlYVYwnc6qqJsky4iRla2uXvZ1dVgd9EVMq52gtRgfzeUlZVuA9/V4iiVAb0TrxIqN6MRlxXLVk/XVeW9gsBpTtlP/+3/4rXWV5cP8+jx8/4Oj0iJOTI7T2VGUJSmOtQuuEr375q3z3D77D42eP6A8GJMET8m2h/jFbntu4jdu4jdv49YR++yG3cRu3cRu38euK26R7G7dxG7fxBcZt0r2N27iN2/gC4zbp3sZt3MZtfIFxm3Rv4zZu4za+wLhNurdxG7dxG19g/D8GDVx+dznetwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "import json \n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels \n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Throughout this tutorial, we will be making use of some utility functions; `rn50_preprocess` for preprocessing input images, `predict` to use the model for prediction and `benchmark` to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import time\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def rn50_preprocess():\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " return preprocess\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = rn50_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the model downloaded and the util functions written, let's just quickly see some predictions, and benchmark the model in its current un-optimized state." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49785590171813965\n", + "./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6445754766464233\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899807572364807\n", + "./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.39485082030296326\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, resnet50_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 75.34 ms\n", + "Iteration 20/100, ave batch time 75.33 ms\n", + "Iteration 30/100, ave batch time 75.35 ms\n", + "Iteration 40/100, ave batch time 75.37 ms\n", + "Iteration 50/100, ave batch time 75.38 ms\n", + "Iteration 60/100, ave batch time 75.38 ms\n", + "Iteration 70/100, ave batch time 75.39 ms\n", + "Iteration 80/100, ave batch time 75.39 ms\n", + "Iteration 90/100, ave batch time 75.40 ms\n", + "Iteration 100/100, ave batch time 75.41 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 75.41 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = resnet50_model.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Accelerating with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our [documentation](https://nvidia.github.io/Torch-TensorRT/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 41.02 ms\n", + "Iteration 20/100, ave batch time 41.12 ms\n", + "Iteration 30/100, ave batch time 41.22 ms\n", + "Iteration 40/100, ave batch time 41.14 ms\n", + "Iteration 50/100, ave batch time 41.20 ms\n", + "Iteration 60/100, ave batch time 41.20 ms\n", + "Iteration 70/100, ave batch time 41.19 ms\n", + "Iteration 80/100, ave batch time 41.23 ms\n", + "Iteration 90/100, ave batch time 41.20 ms\n", + "Iteration 100/100, ave batch time 41.21 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 41.21 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],\n", + " enabled_precisions = {torch.half}, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 14.48 ms\n", + "Iteration 20/100, ave batch time 14.58 ms\n", + "Iteration 30/100, ave batch time 14.72 ms\n", + "Iteration 40/100, ave batch time 14.73 ms\n", + "Iteration 50/100, ave batch time 14.70 ms\n", + "Iteration 60/100, ave batch time 14.79 ms\n", + "Iteration 70/100, ave batch time 14.73 ms\n", + "Iteration 80/100, ave batch time 14.69 ms\n", + "Iteration 90/100, ave batch time 14.68 ms\n", + "Iteration 100/100, ave batch time 14.69 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 14.69 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of **1.84x** with FP32, and **5.2x** with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_notebooks/dynamic-shapes.html b/docs/v1.1.1/_notebooks/dynamic-shapes.html new file mode 100644 index 0000000000..0fdcbe3ac4 --- /dev/null +++ b/docs/v1.1.1/_notebooks/dynamic-shapes.html @@ -0,0 +1,1962 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Torch-TensorRT - Using Dynamic Shapes — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
[1]:
+
+
+
+
+
+
+# Copyright 2020 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+
+

+ Torch-TensorRT - Using Dynamic Shapes + + ¶ + +

+

+ Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA’s TensorRT Deep Learning Optimizer and Runtime. Unlike PyTorch’s Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into +the JIT runtime seamlessly. After compilation using the optimized graph should feel no different than running a TorchScript module. You also have access to TensorRT’s suite of configurations at compile time, so you are able to specify operating precision (FP32/FP16/INT8) and other settings for your module. +

+

+ We highly encorage users to use our NVIDIA’s + + PyTorch container + + to run this notebook. It comes packaged with a host of NVIDIA libraries and optimizations to widely used third party libraries. This container is tested and updated on a monthly cadence! +

+

+ This notebook has the following sections: 1. + + TL;DR Explanation + + 1. + + Setting up the model + + 1. + + Working with Dynamic shapes in Torch TRT + +

+

+ torch_tensorrt.Input( min_shape=(1, 224, 224, 3), opt_shape=(1, 512, 512, 3), max_shape=(1, 1024, 1024, 3), dtype=torch.int32 format=torch.channel_last ) … ``` In this example, we are going to use a simple ResNet model to demonstrate the use of the API. We will be using different batch sizes in the example, but you can use the same method to alter any of the dimensions of the tensor. +

+
+
+
+
[2]:
+
+
+
+
+
+
+!nvidia-smi
+!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+
+
+
+
+
+
+
+
+
+
+Mon May  2 20:40:30 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA Graphics...  On   | 00000000:01:00.0 Off |                    0 |
+| 41%   51C    P0    62W / 200W |      0MiB / 47681MiB |      0%      Default |
+|                               |                      |             Disabled |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|  No running processes found                                                 |
++-----------------------------------------------------------------------------+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (7.7.0)
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.3.0)
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.13.0)
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)
+Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (3.6.0)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.2.0)
+Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (1.1.0)
+Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (5.9.0)
+Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (21.3)
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.5)
+Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)
+Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.2.2)
+Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.6.0)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)
+Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.29)
+Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)
+Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (22.3.0)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (0.4)
+Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (2.8.2)
+Requirement already satisfied: jupyter-core>=4.9.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (4.9.2)
+Requirement already satisfied: jsonschema>=2.6 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)
+Requirement already satisfied: fastjsonschema in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (2.15.3)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (0.18.1)
+Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (21.4.0)
+Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (5.7.0)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (3.8.0)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)
+Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (1.16.0)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.1.1)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.14.1)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.5.0)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.3)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.1.1)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.2.2)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)
+Requirement already satisfied: nbclient>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.6.0)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (5.0.0)
+Requirement already satisfied: tinycss2 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.1.1)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)
+Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.11.1)
+Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.3.1)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->ipykernel>=4.5.1->ipywidgets) (3.0.8)
+Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)
+Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)
+Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.3)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+
+
+
+

+ Setting up the model + + ¶ + +

+

+ In this section, we will: * Get sample data. * Download model from torch hub. * Build simple utility functions +

+

+ Getting sample data + + ¶ + +

+
+
+
+
[3]:
+
+
+
+
+
+
+!mkdir -p ./data
+!wget  -O ./data/img0.JPG "https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630"
+!wget  -O ./data/img1.JPG "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg"
+!wget  -O ./data/img2.JPG "https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg"
+!wget  -O ./data/img3.JPG "https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg"
+
+!wget  -O ./data/imagenet_class_index.json "https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json"
+
+
+
+
+
+
+
+
+
+
+--2022-05-02 20:40:33--  https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630
+Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.37, 18.65.227.99, 18.65.227.223, ...
+Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.37|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 24112 (24K) [image/jpeg]
+Saving to: ‘./data/img0.JPG’
+
+./data/img0.JPG     100%[===================>]  23.55K  --.-KB/s    in 0.005s
+
+2022-05-02 20:40:33 (4.69 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]
+
+--2022-05-02 20:40:34--  https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg
+Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117
+Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 452718 (442K) [image/jpeg]
+Saving to: ‘./data/img1.JPG’
+
+./data/img1.JPG     100%[===================>] 442.11K  --.-KB/s    in 0.02s
+
+2022-05-02 20:40:34 (26.2 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]
+
+--2022-05-02 20:40:34--  https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg
+Resolving www.artis.nl (www.artis.nl)... 94.75.225.20
+Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 361413 (353K) [image/jpeg]
+Saving to: ‘./data/img2.JPG’
+
+./data/img2.JPG     100%[===================>] 352.94K   608KB/s    in 0.6s
+
+2022-05-02 20:40:36 (608 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]
+
+--2022-05-02 20:40:37--  https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg
+Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:c96b, ...
+Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 90994 (89K) [image/jpeg]
+Saving to: ‘./data/img3.JPG’
+
+./data/img3.JPG     100%[===================>]  88.86K  --.-KB/s    in 0.006s
+
+2022-05-02 20:40:37 (15.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]
+
+--2022-05-02 20:40:37--  https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json
+Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.33.238
+Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.33.238|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 35363 (35K) [application/octet-stream]
+Saving to: ‘./data/imagenet_class_index.json’
+
+./data/imagenet_cla 100%[===================>]  34.53K  --.-KB/s    in 0.07s
+
+2022-05-02 20:40:38 (489 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]
+
+
+
+
+
+
+
+
+
[4]:
+
+
+
+
+
+
+# visualizing the downloaded images
+
+from PIL import Image
+from torchvision import transforms
+import matplotlib.pyplot as plt
+import json
+
+fig, axes = plt.subplots(nrows=2, ncols=2)
+
+for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    input_tensor = preprocess(img)
+    plt.subplot(2,2,i+1)
+    plt.imshow(img)
+    plt.axis('off')
+
+# loading labels
+with open("./data/imagenet_class_index.json") as json_file:
+    d = json.load(json_file)
+
+
+
+
+
+
+
+
+ ../_images/_notebooks_dynamic-shapes_8_0.png +
+
+

+ Download model from torch hub. + + ¶ + +

+
+
+
+
[5]:
+
+
+
+
+
+
+import torch
+
+torch.hub._validate_not_a_forked_repo=lambda a,b,c: True
+
+resnet50_model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)
+resnet50_model.eval()
+
+
+
+
+
+
+
+
+
+
+Using cache found in /root/.cache/torch/hub/pytorch_vision_v0.10.0
+
+
+
+
+
+
+
+
[5]:
+
+
+
+
+
+
+ResNet(
+  (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
+  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+  (relu): ReLU(inplace=True)
+  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
+  (layer1): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer2): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (3): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer3): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (3): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (4): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (5): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer4): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
+  (fc): Linear(in_features=2048, out_features=1000, bias=True)
+)
+
+
+
+
+

+ Build simple utility functions + + ¶ + +

+
+
+
+
[6]:
+
+
+
+
+
+
+import numpy as np
+import time
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+def rn50_preprocess():
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    return preprocess
+
+# decode the results into ([predicted class, description], probability)
+def predict(img_path, model):
+    img = Image.open(img_path)
+    preprocess = rn50_preprocess()
+    input_tensor = preprocess(img)
+    input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model
+
+    # move the input and model to GPU for speed if available
+    if torch.cuda.is_available():
+        input_batch = input_batch.to('cuda')
+        model.to('cuda')
+
+    with torch.no_grad():
+        output = model(input_batch)
+        # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes
+        sm_output = torch.nn.functional.softmax(output[0], dim=0)
+
+    ind = torch.argmax(sm_output)
+    return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)
+
+# benchmarking models
+def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            features = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%10==0:
+                print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+                print('Images processed per second=', int(1000*input_shape[0]/(np.mean(timings)*1000)))
+    print("Input shape:", input_data.size())
+    print("Output features size:", features.size())
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+
+

+ Let’s test our util functions on the model we have set up, starting with simple predictions +

+
+
+
+
[7]:
+
+
+
+
+
+
+for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+
+    pred, prob = predict(img_path, resnet50_model)
+    print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))
+
+    plt.subplot(2,2,i+1)
+    plt.imshow(img);
+    plt.axis('off');
+    plt.title(pred[1])
+
+
+
+
+
+
+
+
+
+
+./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49788108468055725
+./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6442285180091858
+./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899841547012329
+./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.45675724744796753
+
+
+
+
+
+
+
+
+ ../_images/_notebooks_dynamic-shapes_14_1.png +
+
+

+ Onwards, to benchmarking. +

+
+
+
+
[8]:
+
+
+
+
+
+
+# Model benchmark without Torch-TensorRT
+model = resnet50_model.eval().to("cuda")
+benchmark(model, input_shape=(16, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 10.01 ms
+Images processed per second= 1598
+Iteration 20/100, ave batch time 10.01 ms
+Images processed per second= 1598
+Iteration 30/100, ave batch time 10.21 ms
+Images processed per second= 1566
+Iteration 40/100, ave batch time 10.33 ms
+Images processed per second= 1549
+Iteration 50/100, ave batch time 10.31 ms
+Images processed per second= 1552
+Iteration 60/100, ave batch time 10.25 ms
+Images processed per second= 1560
+Iteration 70/100, ave batch time 10.20 ms
+Images processed per second= 1568
+Iteration 80/100, ave batch time 10.18 ms
+Images processed per second= 1572
+Iteration 90/100, ave batch time 10.16 ms
+Images processed per second= 1574
+Iteration 100/100, ave batch time 10.15 ms
+Images processed per second= 1575
+Input shape: torch.Size([16, 3, 224, 224])
+Output features size: torch.Size([16, 1000])
+Average batch time: 10.15 ms
+
+
+
+
+
+

+ Benchmarking with Torch-TRT (without dynamic shapes) + + ¶ + +

+
+
+
+
[9]:
+
+
+
+
+
+
+import torch_tensorrt
+
+trt_model_without_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((32, 3, 224, 224), dtype=torch.float32)],
+    enabled_precisions = torch.float32, # Run with FP32
+    workspace_size = 1 << 33
+)
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+
+
+
+
+
+
+
+
[10]:
+
+
+
+
+
+
+benchmark(trt_model_without_ds, input_shape=(32, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 6.10 ms
+Images processed per second= 5242
+Iteration 20/100, ave batch time 6.12 ms
+Images processed per second= 5231
+Iteration 30/100, ave batch time 6.14 ms
+Images processed per second= 5215
+Iteration 40/100, ave batch time 6.14 ms
+Images processed per second= 5207
+Iteration 50/100, ave batch time 6.15 ms
+Images processed per second= 5202
+Iteration 60/100, ave batch time 6.28 ms
+Images processed per second= 5094
+Iteration 70/100, ave batch time 6.26 ms
+Images processed per second= 5110
+Iteration 80/100, ave batch time 6.25 ms
+Images processed per second= 5118
+Iteration 90/100, ave batch time 6.25 ms
+Images processed per second= 5115
+Iteration 100/100, ave batch time 6.40 ms
+Images processed per second= 5002
+Input shape: torch.Size([32, 3, 224, 224])
+Output features size: torch.Size([32, 1000])
+Average batch time: 6.40 ms
+
+
+
+
+

+ With the baseline ready, we can proceed to the section working discussing dynamic shapes! +

+
+

+ Working with Dynamic shapes in Torch TRT + + ¶ + +

+

+ Enabling “Dynamic Shaped” tensors to be used is essentially enabling the ability to defer defining the shape of tensors until runetime. Torch TensorRT simply leverages TensorRT’s Dynamic shape support. You can read more about TensorRT’s implementation in the + + TensorRT Documentation + + . +

+

+ To make use of dynamic shapes, you need to provide three shapes: * + + + min_shape + + + : The minimum size of the tensor considered for optimizations. * + + + opt_shape + + + : The optimizations will be done with an effort to maximize performance for this shape. * + + + min_shape + + + : The maximum size of the tensor considered for optimizations. +

+

+ Generally, users can expect best performance within the specified ranges. Performance for other shapes may be be lower for other shapes (depending on the model ops and GPU used) +

+

+ In the following example, we will showcase varing batch size, which is the zeroth dimension of our input tensors. As Convolution operations require that the channel dimension be a build-time constant, we won’t be changing sizes of other channels in this example, but for models which contain ops conducive to changes in other channels, this functionality can be freely used. +

+
+
+
+
[11]:
+
+
+
+
+
+
+# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP32 precision.
+trt_model_with_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input(
+        min_shape=(16, 3, 224, 224),
+        opt_shape=(32, 3, 224, 224),
+        max_shape=(64, 3, 224, 224),
+        dtype=torch.float32)],
+    enabled_precisions = torch.float32, # Run with FP32
+    workspace_size = 1 << 33
+)
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+
+
+
+
+
+
+
+
[12]:
+
+
+
+
+
+
+benchmark(trt_model_with_ds, input_shape=(16, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 3.88 ms
+Images processed per second= 4122
+Iteration 20/100, ave batch time 3.89 ms
+Images processed per second= 4116
+Iteration 30/100, ave batch time 3.88 ms
+Images processed per second= 4123
+Iteration 40/100, ave batch time 3.86 ms
+Images processed per second= 4142
+Iteration 50/100, ave batch time 3.85 ms
+Images processed per second= 4156
+Iteration 60/100, ave batch time 3.84 ms
+Images processed per second= 4166
+Iteration 70/100, ave batch time 3.84 ms
+Images processed per second= 4170
+Iteration 80/100, ave batch time 3.83 ms
+Images processed per second= 4172
+Iteration 90/100, ave batch time 3.83 ms
+Images processed per second= 4176
+Iteration 100/100, ave batch time 3.83 ms
+Images processed per second= 4178
+Input shape: torch.Size([16, 3, 224, 224])
+Output features size: torch.Size([16, 1000])
+Average batch time: 3.83 ms
+
+
+
+
+
+
+
+
[13]:
+
+
+
+
+
+
+benchmark(trt_model_with_ds, input_shape=(32, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 6.71 ms
+Images processed per second= 4767
+Iteration 20/100, ave batch time 6.48 ms
+Images processed per second= 4935
+Iteration 30/100, ave batch time 6.39 ms
+Images processed per second= 5005
+Iteration 40/100, ave batch time 6.38 ms
+Images processed per second= 5014
+Iteration 50/100, ave batch time 6.38 ms
+Images processed per second= 5016
+Iteration 60/100, ave batch time 6.37 ms
+Images processed per second= 5020
+Iteration 70/100, ave batch time 6.37 ms
+Images processed per second= 5024
+Iteration 80/100, ave batch time 6.37 ms
+Images processed per second= 5027
+Iteration 90/100, ave batch time 6.37 ms
+Images processed per second= 5026
+Iteration 100/100, ave batch time 6.38 ms
+Images processed per second= 5018
+Input shape: torch.Size([32, 3, 224, 224])
+Output features size: torch.Size([32, 1000])
+Average batch time: 6.38 ms
+
+
+
+
+
+
+
+
[14]:
+
+
+
+
+
+
+benchmark(trt_model_with_ds, input_shape=(64, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 12.31 ms
+Images processed per second= 5197
+Iteration 20/100, ave batch time 12.42 ms
+Images processed per second= 5153
+Iteration 30/100, ave batch time 12.85 ms
+Images processed per second= 4980
+Iteration 40/100, ave batch time 12.71 ms
+Images processed per second= 5033
+Iteration 50/100, ave batch time 12.67 ms
+Images processed per second= 5052
+Iteration 60/100, ave batch time 12.63 ms
+Images processed per second= 5067
+Iteration 70/100, ave batch time 12.58 ms
+Images processed per second= 5088
+Iteration 80/100, ave batch time 12.56 ms
+Images processed per second= 5096
+Iteration 90/100, ave batch time 12.55 ms
+Images processed per second= 5100
+Iteration 100/100, ave batch time 12.57 ms
+Images processed per second= 5091
+Input shape: torch.Size([64, 3, 224, 224])
+Output features size: torch.Size([64, 1000])
+Average batch time: 12.57 ms
+
+
+
+
+

+ What’s Next? + + ¶ + +

+

+ Check out the + + TensorRT Getting started page + + for more tutorials, or visit the Torch-TensorRT + + documentation + + for more information! +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_notebooks/dynamic-shapes.ipynb b/docs/v1.1.1/_notebooks/dynamic-shapes.ipynb new file mode 100644 index 0000000000..a0ceaab576 --- /dev/null +++ b/docs/v1.1.1/_notebooks/dynamic-shapes.ipynb @@ -0,0 +1,1023 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "332a2ed8", + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2020 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "id": "18ee9d62", + "metadata": {}, + "source": [ + "# Torch-TensorRT - Using Dynamic Shapes" + ] + }, + { + "cell_type": "markdown", + "id": "73703695", + "metadata": {}, + "source": [ + "Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA's TensorRT Deep Learning Optimizer and Runtime. Unlike PyTorch's Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into the JIT runtime seamlessly. After compilation using the optimized graph should feel no different than running a TorchScript module. You also have access to TensorRT's suite of configurations at compile time, so you are able to specify operating precision (FP32/FP16/INT8) and other settings for your module.\n", + "\n", + "We highly encorage users to use our NVIDIA's [PyTorch container](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) to run this notebook. It comes packaged with a host of NVIDIA libraries and optimizations to widely used third party libraries. This container is tested and updated on a monthly cadence!\n", + "\n", + "This notebook has the following sections:\n", + "1. [TL;DR Explanation](#1)\n", + "1. [Setting up the model](#2)\n", + "1. [Working with Dynamic shapes in Torch TRT](#3)" + ] + }, + { + "cell_type": "markdown", + "id": "1603028d", + "metadata": {}, + "source": [ + "---\n", + "## TL;DR Explanation\n", + "\n", + "Making use of Dynamic Shaped Tensors in Torch TensorRT is quite simple. Let's say you are using the `torch_tensorrt.compile(...)` function to compile a torchscript module.\n", + "\n", + "One of the `args` in this function in this function is `input`: which defines an input to a module in terms of expected shape, data type and tensor format: `torch_tensorrt.Input`. \n", + "\n", + "For the purposes of this walkthrough we just need three `kwargs`: `min_shape`, `opt_shape` and `max_shape`. \n", + "```\n", + "...\n", + "torch_tensorrt.Input(\n", + " min_shape=(1, 224, 224, 3),\n", + " opt_shape=(1, 512, 512, 3),\n", + " max_shape=(1, 1024, 1024, 3),\n", + " dtype=torch.int32\n", + " format=torch.channel_last\n", + " )\n", + "...\n", + "```\n", + "In this example, we are going to use a simple ResNet model to demonstrate the use of the API. We will be using different batch sizes in the example, but you can use the same method to alter any of the dimensions of the tensor." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "db3493d2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mon May 2 20:40:30 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA Graphics... On | 00000000:01:00.0 Off | 0 |\n", + "| 41% 51C P0 62W / 200W | 0MiB / 47681MiB | 0% Default |\n", + "| | | Disabled |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (7.7.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.3.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.13.0)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (3.6.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.2.0)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (1.1.0)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (5.9.0)\n", + "Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (21.3)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.5)\n", + "Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.2.2)\n", + "Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.6.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.29)\n", + "Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (0.4)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jupyter-core>=4.9.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (4.9.2)\n", + "Requirement already satisfied: jsonschema>=2.6 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: fastjsonschema in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (2.15.3)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (5.7.0)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (3.8.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.1.1)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.14.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.5.0)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.3)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.1.1)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: nbclient>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.6.0)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (5.0.0)\n", + "Requirement already satisfied: tinycss2 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.1.1)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.11.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.3.1)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->ipykernel>=4.5.1->ipywidgets) (3.0.8)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!nvidia-smi\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "id": "0ed1b4f7", + "metadata": {}, + "source": [ + "---\n", + "## Setting up the model\n", + "\n", + "In this section, we will:\n", + "* Get sample data.\n", + "* Download model from torch hub.\n", + "* Build simple utility functions" + ] + }, + { + "cell_type": "markdown", + "id": "5934504f", + "metadata": {}, + "source": [ + "### Getting sample data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e46814cc", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-05-02 20:40:33-- https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\n", + "Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.37, 18.65.227.99, 18.65.227.223, ...\n", + "Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.37|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 24112 (24K) [image/jpeg]\n", + "Saving to: ‘./data/img0.JPG’\n", + "\n", + "./data/img0.JPG 100%[===================>] 23.55K --.-KB/s in 0.005s \n", + "\n", + "2022-05-02 20:40:33 (4.69 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-05-02 20:40:34-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K --.-KB/s in 0.02s \n", + "\n", + "2022-05-02 20:40:34 (26.2 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-05-02 20:40:34-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 608KB/s in 0.6s \n", + "\n", + "2022-05-02 20:40:36 (608 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-05-02 20:40:37-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:c96b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 90994 (89K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 88.86K --.-KB/s in 0.006s \n", + "\n", + "2022-05-02 20:40:37 (15.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]\n", + "\n", + "--2022-05-02 20:40:37-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.33.238\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.33.238|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-05-02 20:40:38 (489 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7392a8ec", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# visualizing the downloaded images\n", + "\n", + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "import json \n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels \n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "id": "1374edab", + "metadata": {}, + "source": [ + "### Download model from torch hub." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "659fa798", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using cache found in /root/.cache/torch/hub/pytorch_vision_v0.10.0\n" + ] + }, + { + "data": { + "text/plain": [ + "ResNet(\n", + " (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", + " (layer1): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer2): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer3): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (4): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (5): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer4): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))\n", + " (fc): Linear(in_features=2048, out_features=1000, bias=True)\n", + ")" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import torch\n", + "\n", + "torch.hub._validate_not_a_forked_repo=lambda a,b,c: True\n", + "\n", + "resnet50_model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)\n", + "resnet50_model.eval()" + ] + }, + { + "cell_type": "markdown", + "id": "0a67e8db", + "metadata": {}, + "source": [ + "### Build simple utility functions" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "60286396", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import time\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def rn50_preprocess():\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " return preprocess\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = rn50_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "# benchmarking models\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + " print('Images processed per second=', int(1000*input_shape[0]/(np.mean(timings)*1000)))\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))" + ] + }, + { + "cell_type": "markdown", + "id": "21402d53", + "metadata": {}, + "source": [ + "Let's test our util functions on the model we have set up, starting with simple predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bb3e4a0d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49788108468055725\n", + "./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6442285180091858\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899841547012329\n", + "./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.45675724744796753\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, resnet50_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "markdown", + "id": "2fc7f347", + "metadata": {}, + "source": [ + "Onwards, to benchmarking." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f182b433", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 10.01 ms\n", + "Images processed per second= 1598\n", + "Iteration 20/100, ave batch time 10.01 ms\n", + "Images processed per second= 1598\n", + "Iteration 30/100, ave batch time 10.21 ms\n", + "Images processed per second= 1566\n", + "Iteration 40/100, ave batch time 10.33 ms\n", + "Images processed per second= 1549\n", + "Iteration 50/100, ave batch time 10.31 ms\n", + "Images processed per second= 1552\n", + "Iteration 60/100, ave batch time 10.25 ms\n", + "Images processed per second= 1560\n", + "Iteration 70/100, ave batch time 10.20 ms\n", + "Images processed per second= 1568\n", + "Iteration 80/100, ave batch time 10.18 ms\n", + "Images processed per second= 1572\n", + "Iteration 90/100, ave batch time 10.16 ms\n", + "Images processed per second= 1574\n", + "Iteration 100/100, ave batch time 10.15 ms\n", + "Images processed per second= 1575\n", + "Input shape: torch.Size([16, 3, 224, 224])\n", + "Output features size: torch.Size([16, 1000])\n", + "Average batch time: 10.15 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = resnet50_model.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(16, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "21e56cdf", + "metadata": {}, + "source": [ + "---\n", + "## Benchmarking with Torch-TRT (without dynamic shapes)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "8c9ed780", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "trt_model_without_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((32, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 33\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "58a4ba94", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 6.10 ms\n", + "Images processed per second= 5242\n", + "Iteration 20/100, ave batch time 6.12 ms\n", + "Images processed per second= 5231\n", + "Iteration 30/100, ave batch time 6.14 ms\n", + "Images processed per second= 5215\n", + "Iteration 40/100, ave batch time 6.14 ms\n", + "Images processed per second= 5207\n", + "Iteration 50/100, ave batch time 6.15 ms\n", + "Images processed per second= 5202\n", + "Iteration 60/100, ave batch time 6.28 ms\n", + "Images processed per second= 5094\n", + "Iteration 70/100, ave batch time 6.26 ms\n", + "Images processed per second= 5110\n", + "Iteration 80/100, ave batch time 6.25 ms\n", + "Images processed per second= 5118\n", + "Iteration 90/100, ave batch time 6.25 ms\n", + "Images processed per second= 5115\n", + "Iteration 100/100, ave batch time 6.40 ms\n", + "Images processed per second= 5002\n", + "Input shape: torch.Size([32, 3, 224, 224])\n", + "Output features size: torch.Size([32, 1000])\n", + "Average batch time: 6.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_without_ds, input_shape=(32, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "cd233b85", + "metadata": {}, + "source": [ + "With the baseline ready, we can proceed to the section working discussing dynamic shapes!" + ] + }, + { + "cell_type": "markdown", + "id": "bd5746da", + "metadata": {}, + "source": [ + "---\n", + "## Working with Dynamic shapes in Torch TRT\n", + "\n", + "Enabling \"Dynamic Shaped\" tensors to be used is essentially enabling the ability to defer defining the shape of tensors until runetime. Torch TensorRT simply leverages TensorRT's Dynamic shape support. You can read more about TensorRT's implementation in the [TensorRT Documentation](https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#work_dynamic_shapes).\n", + "\n", + "#### How can you use this feature?\n", + "\n", + "To make use of dynamic shapes, you need to provide three shapes:\n", + "* `min_shape`: The minimum size of the tensor considered for optimizations.\n", + "* `opt_shape`: The optimizations will be done with an effort to maximize performance for this shape.\n", + "* `min_shape`: The maximum size of the tensor considered for optimizations.\n", + "\n", + "Generally, users can expect best performance within the specified ranges. Performance for other shapes may be be lower for other shapes (depending on the model ops and GPU used)\n", + "\n", + "In the following example, we will showcase varing batch size, which is the zeroth dimension of our input tensors. As Convolution operations require that the channel dimension be a build-time constant, we won't be changing sizes of other channels in this example, but for models which contain ops conducive to changes in other channels, this functionality can be freely used." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9a04007d", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_with_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input(\n", + " min_shape=(16, 3, 224, 224),\n", + " opt_shape=(32, 3, 224, 224),\n", + " max_shape=(64, 3, 224, 224),\n", + " dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 33\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f0babc85", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 3.88 ms\n", + "Images processed per second= 4122\n", + "Iteration 20/100, ave batch time 3.89 ms\n", + "Images processed per second= 4116\n", + "Iteration 30/100, ave batch time 3.88 ms\n", + "Images processed per second= 4123\n", + "Iteration 40/100, ave batch time 3.86 ms\n", + "Images processed per second= 4142\n", + "Iteration 50/100, ave batch time 3.85 ms\n", + "Images processed per second= 4156\n", + "Iteration 60/100, ave batch time 3.84 ms\n", + "Images processed per second= 4166\n", + "Iteration 70/100, ave batch time 3.84 ms\n", + "Images processed per second= 4170\n", + "Iteration 80/100, ave batch time 3.83 ms\n", + "Images processed per second= 4172\n", + "Iteration 90/100, ave batch time 3.83 ms\n", + "Images processed per second= 4176\n", + "Iteration 100/100, ave batch time 3.83 ms\n", + "Images processed per second= 4178\n", + "Input shape: torch.Size([16, 3, 224, 224])\n", + "Output features size: torch.Size([16, 1000])\n", + "Average batch time: 3.83 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(16, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "e86a3541", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 6.71 ms\n", + "Images processed per second= 4767\n", + "Iteration 20/100, ave batch time 6.48 ms\n", + "Images processed per second= 4935\n", + "Iteration 30/100, ave batch time 6.39 ms\n", + "Images processed per second= 5005\n", + "Iteration 40/100, ave batch time 6.38 ms\n", + "Images processed per second= 5014\n", + "Iteration 50/100, ave batch time 6.38 ms\n", + "Images processed per second= 5016\n", + "Iteration 60/100, ave batch time 6.37 ms\n", + "Images processed per second= 5020\n", + "Iteration 70/100, ave batch time 6.37 ms\n", + "Images processed per second= 5024\n", + "Iteration 80/100, ave batch time 6.37 ms\n", + "Images processed per second= 5027\n", + "Iteration 90/100, ave batch time 6.37 ms\n", + "Images processed per second= 5026\n", + "Iteration 100/100, ave batch time 6.38 ms\n", + "Images processed per second= 5018\n", + "Input shape: torch.Size([32, 3, 224, 224])\n", + "Output features size: torch.Size([32, 1000])\n", + "Average batch time: 6.38 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(32, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "35800f63", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 12.31 ms\n", + "Images processed per second= 5197\n", + "Iteration 20/100, ave batch time 12.42 ms\n", + "Images processed per second= 5153\n", + "Iteration 30/100, ave batch time 12.85 ms\n", + "Images processed per second= 4980\n", + "Iteration 40/100, ave batch time 12.71 ms\n", + "Images processed per second= 5033\n", + "Iteration 50/100, ave batch time 12.67 ms\n", + "Images processed per second= 5052\n", + "Iteration 60/100, ave batch time 12.63 ms\n", + "Images processed per second= 5067\n", + "Iteration 70/100, ave batch time 12.58 ms\n", + "Images processed per second= 5088\n", + "Iteration 80/100, ave batch time 12.56 ms\n", + "Images processed per second= 5096\n", + "Iteration 90/100, ave batch time 12.55 ms\n", + "Images processed per second= 5100\n", + "Iteration 100/100, ave batch time 12.57 ms\n", + "Images processed per second= 5091\n", + "Input shape: torch.Size([64, 3, 224, 224])\n", + "Output features size: torch.Size([64, 1000])\n", + "Average batch time: 12.57 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(64, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "f87a75bd", + "metadata": {}, + "source": [ + "## What's Next?\n", + "\n", + "Check out the [TensorRT Getting started page](https://developer.nvidia.com/tensorrt-getting-started) for more tutorials, or visit the Torch-TensorRT [documentation](https://nvidia.github.io/Torch-TensorRT/) for more information!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.1.1/_notebooks/lenet-getting-started.html b/docs/v1.1.1/_notebooks/lenet-getting-started.html new file mode 100644 index 0000000000..f39052cfbf --- /dev/null +++ b/docs/v1.1.1/_notebooks/lenet-getting-started.html @@ -0,0 +1,1783 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Torch-TensorRT Getting Started - LeNet — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
[1]:
+
+
+
+
+
+
+# Copyright 2019 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+
+

+ 8c61796f30be47b69e6e6bf3e244c0fd +

+

+ Torch-TensorRT Getting Started - LeNet + + ¶ + +

+

+ Overview + + ¶ + +

+

+ In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the +best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch’s JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new +world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference. +

+

+ When deploying on NVIDIA GPUs TensorRT, NVIDIA’s Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA’s Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that +perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device. +

+

+ Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch. +

+

+ Learning objectives + + ¶ + +

+

+ This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network. +

+

+ Content + + ¶ + +

+
    +
  1. +

    + + Requirements + +

    +
  2. +
  3. +

    + + Creating TorchScript modules + +

    +
  4. +
  5. +

    + + Compiling with Torch-TensorRT + +

    +
  6. +
+

+ ## 1. Requirements +

+

+ Follow the steps in + + + notebooks/README + + + to prepare a Docker container, within which you can run this notebook. +

+
+
+
+
[1]:
+
+
+
+
+
+
+!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+!nvidia-smi
+
+
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting ipywidgets
+  Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)
+     |████████████████████████████████| 121 kB 12.7 MB/s eta 0:00:01
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)
+Collecting jupyterlab-widgets>=1.0.0
+  Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)
+     |████████████████████████████████| 243 kB 115.0 MB/s eta 0:00:01
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)
+Collecting widgetsnbextension~=3.5.0
+  Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)
+     |████████████████████████████████| 1.6 MB 122.5 MB/s eta 0:00:01
+Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)
+Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)
+Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)
+Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)
+Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)
+Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)
+Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)
+Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)
+Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)
+Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)
+Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)
+Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)
+Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)
+Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)
+Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)
+Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets
+Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Thu Feb 10 22:01:27 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA GeForce ...  On   | 00000000:09:00.0 Off |                  N/A |
+|  0%   42C    P8    20W / 320W |      0MiB / 10240MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|  No running processes found                                                 |
++-----------------------------------------------------------------------------+
+
+
+
+
+

+ ## 2. Creating TorchScript modules +

+

+ Here we create two submodules for a feature extractor and a classifier and stitch them together in a single LeNet module. In this case this is overkill but modules give us granular control over our program including where we decide to optimize and where we don’t. It is also the unit that the TorchScript compiler operates on. So you can decide to only convert/optimize the feature extractor and leave the classifier in standard PyTorch or you can convert the whole thing. When compiling your module +to TorchScript, there are two paths: Tracing and Scripting. +

+
+
+
+
[2]:
+
+
+
+
+
+
+import torch
+from torch import nn
+import torch.nn.functional as F
+
+class LeNetFeatExtractor(nn.Module):
+    def __init__(self):
+        super(LeNetFeatExtractor, self).__init__()
+        self.conv1 = nn.Conv2d(1, 128, 3)
+        self.conv2 = nn.Conv2d(128, 16, 3)
+
+    def forward(self, x):
+        x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
+        x = F.max_pool2d(F.relu(self.conv2(x)), 2)
+        return x
+
+class LeNetClassifier(nn.Module):
+    def __init__(self):
+        super(LeNetClassifier, self).__init__()
+        self.fc1 = nn.Linear(16 * 6 * 6, 120)
+        self.fc2 = nn.Linear(120, 84)
+        self.fc3 = nn.Linear(84, 10)
+
+    def forward(self, x):
+        x = torch.flatten(x,1)
+        x = F.relu(self.fc1(x))
+        x = F.relu(self.fc2(x))
+        x = self.fc3(x)
+        return x
+
+class LeNet(nn.Module):
+    def __init__(self):
+        super(LeNet, self).__init__()
+        self.feat = LeNetFeatExtractor()
+        self.classifer = LeNetClassifier()
+
+    def forward(self, x):
+        x = self.feat(x)
+        x = self.classifer(x)
+        return x
+
+
+
+
+
+

+ Let us define a helper function to benchmark a model. +

+
+
+
+
[3]:
+
+
+
+
+
+
+import time
+import numpy as np
+
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            features = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%100==0:
+                print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output features size:", features.size())
+
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+
+

+ PyTorch model + + ¶ + +

+
+
+
+
[4]:
+
+
+
+
+
+
+model = LeNet()
+model.to("cuda").eval()
+
+
+
+
+
+
+
+
[4]:
+
+
+
+
+
+
+LeNet(
+  (feat): LeNetFeatExtractor(
+    (conv1): Conv2d(1, 128, kernel_size=(3, 3), stride=(1, 1))
+    (conv2): Conv2d(128, 16, kernel_size=(3, 3), stride=(1, 1))
+  )
+  (classifer): LeNetClassifier(
+    (fc1): Linear(in_features=576, out_features=120, bias=True)
+    (fc2): Linear(in_features=120, out_features=84, bias=True)
+    (fc3): Linear(in_features=84, out_features=10, bias=True)
+  )
+)
+
+
+
+
+
+
+
+
[5]:
+
+
+
+
+
+
+benchmark(model)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 5.56 ms
+Iteration 200/1000, ave batch time 5.56 ms
+Iteration 300/1000, ave batch time 5.56 ms
+Iteration 400/1000, ave batch time 5.56 ms
+Iteration 500/1000, ave batch time 5.56 ms
+Iteration 600/1000, ave batch time 5.56 ms
+Iteration 700/1000, ave batch time 5.56 ms
+Iteration 800/1000, ave batch time 5.56 ms
+Iteration 900/1000, ave batch time 5.56 ms
+Iteration 1000/1000, ave batch time 5.56 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 5.56 ms
+
+
+
+
+

+ When compiling your module to TorchScript, there are two paths: Tracing and Scripting. +

+

+ Tracing + + ¶ + +

+

+ Tracing follows the path of execution when the module is called and records what happens. This recording is what the TorchScript IR will describe. To trace an instance of our LeNet module, we can call torch.jit.trace with an example input. +

+
+
+
+
[6]:
+
+
+
+
+
+
+traced_model = torch.jit.trace(model, torch.empty([1,1,32,32]).to("cuda"))
+traced_model
+
+
+
+
+
+
+
+
[6]:
+
+
+
+
+
+
+LeNet(
+  original_name=LeNet
+  (feat): LeNetFeatExtractor(
+    original_name=LeNetFeatExtractor
+    (conv1): Conv2d(original_name=Conv2d)
+    (conv2): Conv2d(original_name=Conv2d)
+  )
+  (classifer): LeNetClassifier(
+    original_name=LeNetClassifier
+    (fc1): Linear(original_name=Linear)
+    (fc2): Linear(original_name=Linear)
+    (fc3): Linear(original_name=Linear)
+  )
+)
+
+
+
+
+
+
+
+
[7]:
+
+
+
+
+
+
+benchmark(traced_model)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 5.56 ms
+Iteration 200/1000, ave batch time 5.56 ms
+Iteration 300/1000, ave batch time 5.56 ms
+Iteration 400/1000, ave batch time 5.56 ms
+Iteration 500/1000, ave batch time 5.56 ms
+Iteration 600/1000, ave batch time 5.56 ms
+Iteration 700/1000, ave batch time 5.56 ms
+Iteration 800/1000, ave batch time 5.56 ms
+Iteration 900/1000, ave batch time 5.56 ms
+Iteration 1000/1000, ave batch time 5.56 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 5.56 ms
+
+
+
+
+

+ Scripting + + ¶ + +

+

+ Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing simply follows the execution of your module, it cannot pick up control flow for instance, it will only follow the code path that a particular input triggers. By working from the Python code, the compiler can include these components. We can run the script compiler on our LeNet module by calling torch.jit.script. +

+
+
+
+
[8]:
+
+
+
+
+
+
+model = LeNet().to("cuda").eval()
+script_model = torch.jit.script(model)
+
+
+
+
+
+
+
+
+
[9]:
+
+
+
+
+
+
+script_model
+
+
+
+
+
+
+
+
[9]:
+
+
+
+
+
+
+RecursiveScriptModule(
+  original_name=LeNet
+  (feat): RecursiveScriptModule(
+    original_name=LeNetFeatExtractor
+    (conv1): RecursiveScriptModule(original_name=Conv2d)
+    (conv2): RecursiveScriptModule(original_name=Conv2d)
+  )
+  (classifer): RecursiveScriptModule(
+    original_name=LeNetClassifier
+    (fc1): RecursiveScriptModule(original_name=Linear)
+    (fc2): RecursiveScriptModule(original_name=Linear)
+    (fc3): RecursiveScriptModule(original_name=Linear)
+  )
+)
+
+
+
+
+
+
+
+
[10]:
+
+
+
+
+
+
+benchmark(script_model)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 5.56 ms
+Iteration 200/1000, ave batch time 5.56 ms
+Iteration 300/1000, ave batch time 5.56 ms
+Iteration 400/1000, ave batch time 5.56 ms
+Iteration 500/1000, ave batch time 5.56 ms
+Iteration 600/1000, ave batch time 5.56 ms
+Iteration 700/1000, ave batch time 5.56 ms
+Iteration 800/1000, ave batch time 5.56 ms
+Iteration 900/1000, ave batch time 5.56 ms
+Iteration 1000/1000, ave batch time 5.56 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 5.56 ms
+
+
+
+
+

+ ## 3. Compiling with Torch-TensorRT +

+

+ TorchScript traced model + + ¶ + +

+

+ First, we compile the TorchScript traced model with Torch-TensorRT. Notice the performance impact. +

+
+
+
+
[13]:
+
+
+
+
+
+
+import torch_tensorrt
+
+# We use a batch-size of 1024, and half precision
+trt_ts_module = torch_tensorrt.compile(traced_model, inputs=[torch_tensorrt.Input(
+            min_shape=[1024, 1, 32, 32],
+            opt_shape=[1024, 1, 33, 33],
+            max_shape=[1024, 1, 34, 34],
+            dtype=torch.half
+            )],
+            enabled_precisions = {torch.half})
+
+input_data = torch.randn((1024, 1, 32, 32))
+input_data = input_data.half().to("cuda")
+
+input_data = input_data.half()
+result = trt_ts_module(input_data)
+torch.jit.save(trt_ts_module, "trt_ts_module.ts")
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x.1
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid
+
+
+
+
+
+
+
+
[14]:
+
+
+
+
+
+
+benchmark(trt_ts_module, input_shape=(1024, 1, 32, 32), dtype="fp16")
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 1.41 ms
+Iteration 200/1000, ave batch time 1.40 ms
+Iteration 300/1000, ave batch time 1.40 ms
+Iteration 400/1000, ave batch time 1.39 ms
+Iteration 500/1000, ave batch time 1.40 ms
+Iteration 600/1000, ave batch time 1.40 ms
+Iteration 700/1000, ave batch time 1.40 ms
+Iteration 800/1000, ave batch time 1.40 ms
+Iteration 900/1000, ave batch time 1.40 ms
+Iteration 1000/1000, ave batch time 1.40 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 1.40 ms
+
+
+
+
+

+ TorchScript script model + + ¶ + +

+

+ Next, we compile the TorchScript script model with Torch-TensorRT. Notice the performance impact. +

+
+
+
+
[16]:
+
+
+
+
+
+
+import torch_tensorrt
+
+trt_script_module = torch_tensorrt.compile(script_model, inputs = [torch_tensorrt.Input(
+            min_shape=[1024, 1, 32, 32],
+            opt_shape=[1024, 1, 33, 33],
+            max_shape=[1024, 1, 34, 34],
+            dtype=torch.half
+            )],
+            enabled_precisions={torch.half})
+
+input_data = torch.randn((1024, 1, 32, 32))
+input_data = input_data.half().to("cuda")
+
+input_data = input_data.half()
+result = trt_script_module(input_data)
+torch.jit.save(trt_script_module, "trt_script_module.ts")
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x.1
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid
+
+
+
+
+
+
+
+
[17]:
+
+
+
+
+
+
+benchmark(trt_script_module, input_shape=(1024, 1, 32, 32), dtype="fp16")
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 1.43 ms
+Iteration 200/1000, ave batch time 1.41 ms
+Iteration 300/1000, ave batch time 1.40 ms
+Iteration 400/1000, ave batch time 1.42 ms
+Iteration 500/1000, ave batch time 1.42 ms
+Iteration 600/1000, ave batch time 1.41 ms
+Iteration 700/1000, ave batch time 1.41 ms
+Iteration 800/1000, ave batch time 1.40 ms
+Iteration 900/1000, ave batch time 1.40 ms
+Iteration 1000/1000, ave batch time 1.40 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 1.40 ms
+
+
+
+
+

+ Conclusion + + ¶ + +

+

+ In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT and test the performance impact of the optimization. +

+

+ What’s next + + ¶ + +

+

+ Now it’s time to try Torch-TensorRT on your own model. Fill out issues at + + https://github.com/NVIDIA/Torch-TensorRT + + . Your involvement will help future development of Torch-TensorRT. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_notebooks/lenet-getting-started.ipynb b/docs/v1.1.1/_notebooks/lenet-getting-started.ipynb new file mode 100644 index 0000000000..2db954946d --- /dev/null +++ b/docs/v1.1.1/_notebooks/lenet-getting-started.ipynb @@ -0,0 +1,718 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - LeNet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network. \n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [Creating TorchScript modules](#2)\n", + "1. [Compiling with Torch-TensorRT](#3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in `notebooks/README` to prepare a Docker container, within which you can run this notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)\n", + "\u001b[K |████████████████████████████████| 121 kB 12.7 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)\n", + "\u001b[K |████████████████████████████████| 243 kB 115.0 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)\n", + "Collecting widgetsnbextension~=3.5.0\n", + " Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 122.5 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Thu Feb 10 22:01:27 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:09:00.0 Off | N/A |\n", + "| 0% 42C P8 20W / 320W | 0MiB / 10240MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org\n", + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. Creating TorchScript modules\n", + "\n", + "Here we create two submodules for a feature extractor and a classifier and stitch them together in a single LeNet module. In this case this is overkill but modules give us granular control over our program including where we decide to optimize and where we don't. It is also the unit that the TorchScript compiler operates on. So you can decide to only convert/optimize the feature extractor and leave the classifier in standard PyTorch or you can convert the whole thing. When compiling your module to TorchScript, there are two paths: Tracing and Scripting. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import torch \n", + "from torch import nn\n", + "import torch.nn.functional as F\n", + "\n", + "class LeNetFeatExtractor(nn.Module):\n", + " def __init__(self):\n", + " super(LeNetFeatExtractor, self).__init__()\n", + " self.conv1 = nn.Conv2d(1, 128, 3)\n", + " self.conv2 = nn.Conv2d(128, 16, 3)\n", + "\n", + " def forward(self, x):\n", + " x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))\n", + " x = F.max_pool2d(F.relu(self.conv2(x)), 2)\n", + " return x\n", + "\n", + "class LeNetClassifier(nn.Module):\n", + " def __init__(self):\n", + " super(LeNetClassifier, self).__init__()\n", + " self.fc1 = nn.Linear(16 * 6 * 6, 120)\n", + " self.fc2 = nn.Linear(120, 84)\n", + " self.fc3 = nn.Linear(84, 10)\n", + "\n", + " def forward(self, x):\n", + " x = torch.flatten(x,1)\n", + " x = F.relu(self.fc1(x))\n", + " x = F.relu(self.fc2(x))\n", + " x = self.fc3(x)\n", + " return x\n", + "\n", + "class LeNet(nn.Module):\n", + " def __init__(self):\n", + " super(LeNet, self).__init__()\n", + " self.feat = LeNetFeatExtractor()\n", + " self.classifer = LeNetClassifier()\n", + "\n", + " def forward(self, x):\n", + " x = self.feat(x)\n", + " x = self.classifer(x)\n", + " return x\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us define a helper function to benchmark a model." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%100==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " \n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### PyTorch model" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LeNet(\n", + " (feat): LeNetFeatExtractor(\n", + " (conv1): Conv2d(1, 128, kernel_size=(3, 3), stride=(1, 1))\n", + " (conv2): Conv2d(128, 16, kernel_size=(3, 3), stride=(1, 1))\n", + " )\n", + " (classifer): LeNetClassifier(\n", + " (fc1): Linear(in_features=576, out_features=120, bias=True)\n", + " (fc2): Linear(in_features=120, out_features=84, bias=True)\n", + " (fc3): Linear(in_features=84, out_features=10, bias=True)\n", + " )\n", + ")" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = LeNet()\n", + "model.to(\"cuda\").eval()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When compiling your module to TorchScript, there are two paths: Tracing and Scripting. \n", + " \n", + "### Tracing\n", + "\n", + "Tracing follows the path of execution when the module is called and records what happens. This recording is what the TorchScript IR will describe. To trace an instance of our LeNet module, we can call torch.jit.trace with an example input. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LeNet(\n", + " original_name=LeNet\n", + " (feat): LeNetFeatExtractor(\n", + " original_name=LeNetFeatExtractor\n", + " (conv1): Conv2d(original_name=Conv2d)\n", + " (conv2): Conv2d(original_name=Conv2d)\n", + " )\n", + " (classifer): LeNetClassifier(\n", + " original_name=LeNetClassifier\n", + " (fc1): Linear(original_name=Linear)\n", + " (fc2): Linear(original_name=Linear)\n", + " (fc3): Linear(original_name=Linear)\n", + " )\n", + ")" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "traced_model = torch.jit.trace(model, torch.empty([1,1,32,32]).to(\"cuda\"))\n", + "traced_model" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(traced_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Scripting\n", + "\n", + "Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing simply follows the execution of your module, it cannot pick up control flow for instance, it will only follow the code path that a particular input triggers. By working from the Python code, the compiler can include these components. We can run the script compiler on our LeNet module by calling torch.jit.script.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "model = LeNet().to(\"cuda\").eval()\n", + "script_model = torch.jit.script(model)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RecursiveScriptModule(\n", + " original_name=LeNet\n", + " (feat): RecursiveScriptModule(\n", + " original_name=LeNetFeatExtractor\n", + " (conv1): RecursiveScriptModule(original_name=Conv2d)\n", + " (conv2): RecursiveScriptModule(original_name=Conv2d)\n", + " )\n", + " (classifer): RecursiveScriptModule(\n", + " original_name=LeNetClassifier\n", + " (fc1): RecursiveScriptModule(original_name=Linear)\n", + " (fc2): RecursiveScriptModule(original_name=Linear)\n", + " (fc3): RecursiveScriptModule(original_name=Linear)\n", + " )\n", + ")" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "script_model" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(script_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Compiling with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TorchScript traced model\n", + "\n", + "First, we compile the TorchScript traced model with Torch-TensorRT. Notice the performance impact." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# We use a batch-size of 1024, and half precision\n", + "trt_ts_module = torch_tensorrt.compile(traced_model, inputs=[torch_tensorrt.Input(\n", + " min_shape=[1024, 1, 32, 32],\n", + " opt_shape=[1024, 1, 33, 33],\n", + " max_shape=[1024, 1, 34, 34],\n", + " dtype=torch.half\n", + " )], \n", + " enabled_precisions = {torch.half})\n", + "\n", + "input_data = torch.randn((1024, 1, 32, 32))\n", + "input_data = input_data.half().to(\"cuda\")\n", + "\n", + "input_data = input_data.half()\n", + "result = trt_ts_module(input_data)\n", + "torch.jit.save(trt_ts_module, \"trt_ts_module.ts\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 1.41 ms\n", + "Iteration 200/1000, ave batch time 1.40 ms\n", + "Iteration 300/1000, ave batch time 1.40 ms\n", + "Iteration 400/1000, ave batch time 1.39 ms\n", + "Iteration 500/1000, ave batch time 1.40 ms\n", + "Iteration 600/1000, ave batch time 1.40 ms\n", + "Iteration 700/1000, ave batch time 1.40 ms\n", + "Iteration 800/1000, ave batch time 1.40 ms\n", + "Iteration 900/1000, ave batch time 1.40 ms\n", + "Iteration 1000/1000, ave batch time 1.40 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 1.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_ts_module, input_shape=(1024, 1, 32, 32), dtype=\"fp16\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TorchScript script model\n", + "\n", + "Next, we compile the TorchScript script model with Torch-TensorRT. Notice the performance impact." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "trt_script_module = torch_tensorrt.compile(script_model, inputs = [torch_tensorrt.Input(\n", + " min_shape=[1024, 1, 32, 32],\n", + " opt_shape=[1024, 1, 33, 33],\n", + " max_shape=[1024, 1, 34, 34],\n", + " dtype=torch.half\n", + " )],\n", + " enabled_precisions={torch.half})\n", + "\n", + "input_data = torch.randn((1024, 1, 32, 32))\n", + "input_data = input_data.half().to(\"cuda\")\n", + "\n", + "input_data = input_data.half()\n", + "result = trt_script_module(input_data)\n", + "torch.jit.save(trt_script_module, \"trt_script_module.ts\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 1.43 ms\n", + "Iteration 200/1000, ave batch time 1.41 ms\n", + "Iteration 300/1000, ave batch time 1.40 ms\n", + "Iteration 400/1000, ave batch time 1.42 ms\n", + "Iteration 500/1000, ave batch time 1.42 ms\n", + "Iteration 600/1000, ave batch time 1.41 ms\n", + "Iteration 700/1000, ave batch time 1.41 ms\n", + "Iteration 800/1000, ave batch time 1.40 ms\n", + "Iteration 900/1000, ave batch time 1.40 ms\n", + "Iteration 1000/1000, ave batch time 1.40 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 1.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_script_module, input_shape=(1024, 1, 32, 32), dtype=\"fp16\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT and test the performance impact of the optimization.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_notebooks/ssd-object-detection-demo.html b/docs/v1.1.1/_notebooks/ssd-object-detection-demo.html new file mode 100644 index 0000000000..73b0bf41c1 --- /dev/null +++ b/docs/v1.1.1/_notebooks/ssd-object-detection-demo.html @@ -0,0 +1,2080 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Object Detection with Torch-TensorRT (SSD) — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
[1]:
+
+
+
+
+
+
+# Copyright 2020 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+
+

+ 11e4a7a3ef4941759f5a16b4b08bd679 +

+

+ Object Detection with Torch-TensorRT (SSD) + + ¶ + +

+
+

+ Overview + + ¶ + +

+

+ In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the +best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch’s JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new +world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference. +

+

+ When deploying on NVIDIA GPUs TensorRT, NVIDIA’s Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA’s Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that +perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device. +

+

+ Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch. +

+

+ Learning objectives + + ¶ + +

+

+ This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained. +

+

+ Contents + + ¶ + +

+
    +
  1. +

    + + Requirements + +

    +
  2. +
  3. +

    + + SSD Overview + +

    +
  4. +
  5. +

    + + Creating TorchScript modules + +

    +
  6. +
  7. +

    + + Compiling with Torch-TensorRT + +

    +
  8. +
  9. +

    + + Running Inference + +

    +
  10. +
  11. +

    + + Measuring Speedup + +

    +
  12. +
  13. +

    + + Conclusion + +

    +
  14. +
+
+

+ ## 1. Requirements +

+

+ Follow the steps in + + + notebooks/README + + + to prepare a Docker container, within which you can run this demo notebook. +

+

+ In addition to that, run the following cell to obtain additional libraries specific to this demo. +

+
+
+
+
[2]:
+
+
+
+
+
+
+!pip install scikit-image==0.19.1
+!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+
+
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting scikit-image==0.19.1
+  Downloading scikit_image-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.8 MB)
+     |████████████████████████████████| 13.8 MB 8.8 MB/s eta 0:00:01
+Requirement already satisfied: networkx>=2.2 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (2.6.3)
+Collecting tifffile>=2019.7.26
+  Downloading tifffile-2022.3.16-py3-none-any.whl (179 kB)
+     |████████████████████████████████| 179 kB 110.1 MB/s eta 0:00:01
+Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (21.3)
+Requirement already satisfied: scipy>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.6.3)
+Requirement already satisfied: numpy>=1.17.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.22.2)
+Collecting imageio>=2.4.1
+  Downloading imageio-2.16.1-py3-none-any.whl (3.3 MB)
+     |████████████████████████████████| 3.3 MB 42.3 MB/s eta 0:00:01
+Requirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (9.0.0)
+Collecting PyWavelets>=1.1.1
+  Downloading PyWavelets-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB)
+     |████████████████████████████████| 6.9 MB 61.3 MB/s eta 0:00:01
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->scikit-image==0.19.1) (3.0.7)
+Installing collected packages: tifffile, PyWavelets, imageio, scikit-image
+Successfully installed PyWavelets-1.3.0 imageio-2.16.1 scikit-image-0.19.1 tifffile-2022.3.16
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting ipywidgets
+  Downloading ipywidgets-7.7.0-py2.py3-none-any.whl (123 kB)
+     |████████████████████████████████| 123 kB 12.1 MB/s eta 0:00:01
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.9.0)
+Collecting jupyterlab-widgets>=1.0.0
+  Downloading jupyterlab_widgets-1.1.0-py3-none-any.whl (245 kB)
+     |████████████████████████████████| 245 kB 60.6 MB/s eta 0:00:01
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.0.1)
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)
+Collecting widgetsnbextension~=3.6.0
+  Downloading widgetsnbextension-3.6.0-py2.py3-none-any.whl (1.6 MB)
+     |████████████████████████████████| 1.6 MB 35.2 MB/s eta 0:00:01
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)
+Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)
+Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)
+Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)
+Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)
+Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.1.4)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.26)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)
+Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: black in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (22.1.0)
+Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)
+Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)
+Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)
+Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)
+Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)
+Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)
+Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)
+Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.3)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.4.2)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)
+Requirement already satisfied: pathspec>=0.9.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.9.0)
+Requirement already satisfied: tomli>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.0.1)
+Requirement already satisfied: mypy-extensions>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.4.3)
+Requirement already satisfied: click>=8.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (8.0.3)
+Requirement already satisfied: platformdirs>=2 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.4.1)
+Requirement already satisfied: typing-extensions>=3.10.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (4.0.1)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.0.1)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)
+Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.11)
+Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.0)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.1.2)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.1.0)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.7)
+Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.2)
+Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)
+Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)
+Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets
+Successfully installed ipywidgets-7.7.0 jupyterlab-widgets-1.1.0 widgetsnbextension-3.6.0
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+
+
+
+

+ ## 2. SSD +

+

+ Single Shot MultiBox Detector model for object detection + + ¶ + +

+ + + + + + + + + + + + + + + + + +
+

+ _ +

+
+

+ _ +

+
+

+ alt +

+
+

+ image1 +

+
+

+ PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our SSD model pretrained on + + COCO + + from there. +

+

+ Model Description + + ¶ + +

+

+ This SSD300 model is based on the + + SSD: Single Shot MultiBox Detector + + paper, which describes SSD as “a method for detecting objects in images using a single deep neural network”. The input size is fixed to 300x300. +

+

+ The main difference between this model and the one described in the paper is in the backbone. Specifically, the VGG model is obsolete and is replaced by the ResNet-50 model. +

+

+ From the + + Speed/accuracy trade-offs for modern convolutional object detectors + + paper, the following enhancements were made to the backbone: * The conv5_x, avgpool, fc and softmax layers were removed from the original classification model. * All strides in conv4_x are set to 1x1. +

+

+ The backbone is followed by 5 additional convolutional layers. In addition to the convolutional layers, we attached 6 detection heads: * The first detection head is attached to the last conv4_x layer. * The other five detection heads are attached to the corresponding 5 additional layers. +

+

+ Detector heads are similar to the ones referenced in the paper, however, they are enhanced by additional BatchNorm layers after each convolution. +

+

+ More information about this SSD model is available at Nvidia’s “DeepLearningExamples” Github + + here + + . +

+
+
+
+
[3]:
+
+
+
+
+
+
+import torch
+torch.hub._validate_not_a_forked_repo=lambda a,b,c: True
+
+
+
+
+
+
+
+
[4]:
+
+
+
+
+
+
+# List of available models in PyTorch Hub from Nvidia/DeepLearningExamples
+torch.hub.list('NVIDIA/DeepLearningExamples:torchhub')
+
+
+
+
+
+
+
+
+
+
+Downloading: "https://github.com/NVIDIA/DeepLearningExamples/archive/torchhub.zip" to /root/.cache/torch/hub/torchhub.zip
+/root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub/PyTorch/Classification/ConvNets/image_classification/models/efficientnet.py:17: UserWarning: pytorch_quantization module not found, quantization will not be available
+  warnings.warn(
+
+
+
+
+
+
+
+
[4]:
+
+
+
+
+
+
+['nvidia_convnets_processing_utils',
+ 'nvidia_efficientnet',
+ 'nvidia_efficientnet_b0',
+ 'nvidia_efficientnet_b4',
+ 'nvidia_efficientnet_widese_b0',
+ 'nvidia_efficientnet_widese_b4',
+ 'nvidia_resneXt',
+ 'nvidia_resnet50',
+ 'nvidia_resnext101_32x4d',
+ 'nvidia_se_resnext101_32x4d',
+ 'nvidia_ssd',
+ 'nvidia_ssd_processing_utils',
+ 'nvidia_tacotron2',
+ 'nvidia_tts_utils',
+ 'nvidia_waveglow']
+
+
+
+
+
+
+
+
[5]:
+
+
+
+
+
+
+# load SSD model pretrained on COCO from Torch Hub
+precision = 'fp32'
+ssd300 = torch.hub.load('NVIDIA/DeepLearningExamples:torchhub', 'nvidia_ssd', model_math=precision);
+
+
+
+
+
+
+
+
+
+
+Using cache found in /root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub
+Downloading: "https://download.pytorch.org/models/resnet50-0676ba61.pth" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+Downloading checkpoint from https://api.ngc.nvidia.com/v2/models/nvidia/ssd_pyt_ckpt_amp/versions/20.06.0/files/nvidia_ssdpyt_amp_200703.pt
+
+
+
+
+

+ Setting + + + precision="fp16" + + + will load a checkpoint trained with mixed precision into architecture enabling execution on Tensor Cores. Handling mixed precision data requires the Apex library. +

+

+ Sample Inference + + ¶ + +

+

+ We can now run inference on the model. This is demonstrated below using sample images from the COCO 2017 Validation set. +

+
+
+
+
[6]:
+
+
+
+
+
+
+# Sample images from the COCO validation set
+uris = [
+    'http://images.cocodataset.org/val2017/000000397133.jpg',
+    'http://images.cocodataset.org/val2017/000000037777.jpg',
+    'http://images.cocodataset.org/val2017/000000252219.jpg'
+]
+
+# For convenient and comprehensive formatting of input and output of the model, load a set of utility methods.
+utils = torch.hub.load('NVIDIA/DeepLearningExamples:torchhub', 'nvidia_ssd_processing_utils')
+
+# Format images to comply with the network input
+inputs = [utils.prepare_input(uri) for uri in uris]
+tensor = utils.prepare_tensor(inputs, False)
+
+# The model was trained on COCO dataset, which we need to access in order to
+# translate class IDs into object names.
+classes_to_labels = utils.get_coco_object_dictionary()
+
+
+
+
+
+
+
+
+
+
+Using cache found in /root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub
+
+
+
+
+
+
+
+
+
+
+Downloading COCO annotations.
+Downloading finished.
+
+
+
+
+
+
+
+
[7]:
+
+
+
+
+
+
+# Next, we run object detection
+model = ssd300.eval().to("cuda")
+detections_batch = model(tensor)
+
+# By default, raw output from SSD network per input image contains 8732 boxes with
+# localization and class probability distribution.
+# Let’s filter this output to only get reasonable detections (confidence>40%) in a more comprehensive format.
+results_per_input = utils.decode_results(detections_batch)
+best_results_per_input = [utils.pick_best(results, 0.40) for results in results_per_input]
+
+
+
+
+

+ Visualize results + + ¶ + +

+
+
+
+
[8]:
+
+
+
+
+
+
+from matplotlib import pyplot as plt
+import matplotlib.patches as patches
+
+# The utility plots the images and predicted bounding boxes (with confidence scores).
+def plot_results(best_results):
+    for image_idx in range(len(best_results)):
+        fig, ax = plt.subplots(1)
+        # Show original, denormalized image...
+        image = inputs[image_idx] / 2 + 0.5
+        ax.imshow(image)
+        # ...with detections
+        bboxes, classes, confidences = best_results[image_idx]
+        for idx in range(len(bboxes)):
+            left, bot, right, top = bboxes[idx]
+            x, y, w, h = [val * 300 for val in [left, bot, right - left, top - bot]]
+            rect = patches.Rectangle((x, y), w, h, linewidth=1, edgecolor='r', facecolor='none')
+            ax.add_patch(rect)
+            ax.text(x, y, "{} {:.0f}%".format(classes_to_labels[classes[idx] - 1], confidences[idx]*100), bbox=dict(facecolor='white', alpha=0.5))
+    plt.show()
+
+
+
+
+
+
+
+
+
[9]:
+
+
+
+
+
+
+# Visualize results without Torch-TensorRT
+plot_results(best_results_per_input)
+
+
+
+
+
+
+
+
+ ../_images/_notebooks_ssd-object-detection-demo_18_0.png +
+
+
+
+
+
+ ../_images/_notebooks_ssd-object-detection-demo_18_1.png +
+
+
+
+
+
+ ../_images/_notebooks_ssd-object-detection-demo_18_2.png +
+
+

+ Benchmark utility + + ¶ + +

+
+
+
+
[10]:
+
+
+
+
+
+
+import time
+import numpy as np
+
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+# Helper function to benchmark the model
+def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            pred_loc, pred_label  = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%10==0:
+                print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output location prediction size:", pred_loc.size())
+    print("Output label prediction size:", pred_label.size())
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+
+
+

+ We check how well the model performs + + before + + we use Torch-TensorRT +

+
+
+
+
[11]:
+
+
+
+
+
+
+# Model benchmark without Torch-TensorRT
+model = ssd300.eval().to("cuda")
+benchmark(model, input_shape=(128, 3, 300, 300), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 165.38 ms
+Iteration 20/100, avg batch time 165.99 ms
+Iteration 30/100, avg batch time 166.04 ms
+Iteration 40/100, avg batch time 166.32 ms
+Iteration 50/100, avg batch time 166.49 ms
+Iteration 60/100, avg batch time 166.74 ms
+Iteration 70/100, avg batch time 166.88 ms
+Iteration 80/100, avg batch time 167.05 ms
+Iteration 90/100, avg batch time 167.18 ms
+Iteration 100/100, avg batch time 167.31 ms
+Input shape: torch.Size([128, 3, 300, 300])
+Output location prediction size: torch.Size([128, 4, 8732])
+Output label prediction size: torch.Size([128, 81, 8732])
+Average batch time: 167.31 ms
+
+
+
+
+
+

+ ## 3. Creating TorchScript modules +

+

+ To compile with Torch-TensorRT, the model must first be in + + TorchScript + + . TorchScript is a programming language included in PyTorch which removes the Python dependency normal PyTorch models have. This conversion is done via a JIT compiler which given a PyTorch Module will generate an equivalent TorchScript Module. There are two paths that can be used to generate TorchScript: + + Tracing + + and + + Scripting + + . - Tracing follows execution of PyTorch generating ops in TorchScript corresponding to +what it sees. - Scripting does an analysis of the Python code and generates TorchScript, this allows the resulting graph to include control flow which tracing cannot do. +

+

+ Tracing however due to its simplicity is more likely to compile successfully with Torch-TensorRT (though both systems are supported). +

+
+
+
+
[12]:
+
+
+
+
+
+
+model = ssd300.eval().to("cuda")
+traced_model = torch.jit.trace(model, [torch.randn((1,3,300,300)).to("cuda")])
+
+
+
+
+

+ If required, we can also save this model and use it independently of Python. +

+
+
+
+
[13]:
+
+
+
+
+
+
+# This is just an example, and not required for the purposes of this demo
+torch.jit.save(traced_model, "ssd_300_traced.jit.pt")
+
+
+
+
+
+
+
+
[14]:
+
+
+
+
+
+
+# Obtain the average time taken by a batch of input with Torchscript compiled modules
+benchmark(traced_model, input_shape=(128, 3, 300, 300), nruns=100)
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 165.53 ms
+Iteration 20/100, avg batch time 166.19 ms
+Iteration 30/100, avg batch time 166.12 ms
+Iteration 40/100, avg batch time 166.16 ms
+Iteration 50/100, avg batch time 166.24 ms
+Iteration 60/100, avg batch time 166.33 ms
+Iteration 70/100, avg batch time 166.43 ms
+Iteration 80/100, avg batch time 166.44 ms
+Iteration 90/100, avg batch time 166.53 ms
+Iteration 100/100, avg batch time 166.59 ms
+Input shape: torch.Size([128, 3, 300, 300])
+Output location prediction size: torch.Size([128, 4, 8732])
+Output label prediction size: torch.Size([128, 81, 8732])
+Average batch time: 166.59 ms
+
+
+
+
+
+

+ ## 4. Compiling with Torch-TensorRT TorchScript modules behave just like normal PyTorch modules and are intercompatible. From TorchScript we can now compile a TensorRT based module. This module will still be implemented in TorchScript but all the computation will be done in TensorRT. +

+
+
+
+
[15]:
+
+
+
+
+
+
+import torch_tensorrt
+
+# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP16 precision.
+trt_model = torch_tensorrt.compile(traced_model,
+    inputs= [torch_tensorrt.Input((3, 3, 300, 300), dtype=torch.half)],
+    enabled_precisions= {torch.half}, # Run with FP16
+    workspace_size= 1 << 20
+)
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+
+
+
+
+
+

+ ## 5. Running Inference +

+

+ Next, we run object detection +

+
+
+
+
[16]:
+
+
+
+
+
+
+# using a Torch-TensorRT module is exactly the same as how we usually do inference in PyTorch i.e. model(inputs)
+detections_batch = trt_model(tensor.to(torch.half)) # convert the input to half precision
+
+# By default, raw output from SSD network per input image contains 8732 boxes with
+# localization and class probability distribution.
+# Let’s filter this output to only get reasonable detections (confidence>40%) in a more comprehensive format.
+results_per_input = utils.decode_results(detections_batch)
+best_results_per_input_trt = [utils.pick_best(results, 0.40) for results in results_per_input]
+
+
+
+
+

+ Now, let’s visualize our predictions! +

+
+
+
+
[17]:
+
+
+
+
+
+
+# Visualize results with Torch-TensorRT
+plot_results(best_results_per_input_trt)
+
+
+
+
+
+
+
+
+ ../_images/_notebooks_ssd-object-detection-demo_35_0.png +
+
+
+
+
+
+ ../_images/_notebooks_ssd-object-detection-demo_35_1.png +
+
+
+
+
+
+ ../_images/_notebooks_ssd-object-detection-demo_35_2.png +
+
+

+ We get similar results as before! +

+
+

+ 6. Measuring Speedup + + ¶ + +

+

+ We can run the benchmark function again to see the speedup gained! Compare this result with the same batch-size of input in the case without Torch-TensorRT above. +

+
+
+
+
[18]:
+
+
+
+
+
+
+batch_size = 128
+
+# Recompiling with batch_size we use for evaluating performance
+trt_model = torch_tensorrt.compile(traced_model,
+    inputs = [torch_tensorrt.Input((batch_size, 3, 300, 300), dtype=torch.half)],
+    enabled_precisions= {torch.half}, # Run with FP16
+    workspace_size= 1 << 20
+)
+
+benchmark(trt_model, input_shape=(batch_size, 3, 300, 300), dtype='fp16', nruns=100)
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 45.88 ms
+Iteration 20/100, avg batch time 46.20 ms
+Iteration 30/100, avg batch time 46.10 ms
+Iteration 40/100, avg batch time 46.19 ms
+Iteration 50/100, avg batch time 46.15 ms
+Iteration 60/100, avg batch time 46.17 ms
+Iteration 70/100, avg batch time 46.19 ms
+Iteration 80/100, avg batch time 46.20 ms
+Iteration 90/100, avg batch time 46.22 ms
+Iteration 100/100, avg batch time 46.21 ms
+Input shape: torch.Size([128, 3, 300, 300])
+Output location prediction size: torch.Size([128, 4, 8732])
+Output label prediction size: torch.Size([128, 81, 8732])
+Average batch time: 46.21 ms
+
+
+
+
+
+

+ 7. Conclusion + + ¶ + +

+

+ In this notebook, we have walked through the complete process of compiling a TorchScript SSD300 model with Torch-TensorRT, and tested the performance impact of the optimization. We find that using the Torch-TensorRT compiled model, we gain significant speedup in inference without any noticeable drop in performance! +

+

+ Details + + ¶ + +

+

+ For detailed information on model input and output, training recipies, inference and performance visit: + + github + + and/or + + NGC + +

+

+ References + + ¶ + +

+ +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_notebooks/ssd-object-detection-demo.ipynb b/docs/v1.1.1/_notebooks/ssd-object-detection-demo.ipynb new file mode 100644 index 0000000000..f2a0bd8063 --- /dev/null +++ b/docs/v1.1.1/_notebooks/ssd-object-detection-demo.ipynb @@ -0,0 +1,943 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2020 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Object Detection with Torch-TensorRT (SSD)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained.\n", + "\n", + "## Contents\n", + "1. [Requirements](#1)\n", + "2. [SSD Overview](#2)\n", + "3. [Creating TorchScript modules](#3)\n", + "4. [Compiling with Torch-TensorRT](#4)\n", + "5. [Running Inference](#5)\n", + "6. [Measuring Speedup](#6)\n", + "7. [Conclusion](#7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in `notebooks/README` to prepare a Docker container, within which you can run this demo notebook.\n", + "\n", + "In addition to that, run the following cell to obtain additional libraries specific to this demo." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting scikit-image==0.19.1\n", + " Downloading scikit_image-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.8 MB)\n", + "\u001b[K |████████████████████████████████| 13.8 MB 8.8 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: networkx>=2.2 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (2.6.3)\n", + "Collecting tifffile>=2019.7.26\n", + " Downloading tifffile-2022.3.16-py3-none-any.whl (179 kB)\n", + "\u001b[K |████████████████████████████████| 179 kB 110.1 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (21.3)\n", + "Requirement already satisfied: scipy>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.6.3)\n", + "Requirement already satisfied: numpy>=1.17.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.22.2)\n", + "Collecting imageio>=2.4.1\n", + " Downloading imageio-2.16.1-py3-none-any.whl (3.3 MB)\n", + "\u001b[K |████████████████████████████████| 3.3 MB 42.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (9.0.0)\n", + "Collecting PyWavelets>=1.1.1\n", + " Downloading PyWavelets-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB)\n", + "\u001b[K |████████████████████████████████| 6.9 MB 61.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->scikit-image==0.19.1) (3.0.7)\n", + "Installing collected packages: tifffile, PyWavelets, imageio, scikit-image\n", + "Successfully installed PyWavelets-1.3.0 imageio-2.16.1 scikit-image-0.19.1 tifffile-2022.3.16\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.7.0-py2.py3-none-any.whl (123 kB)\n", + "\u001b[K |████████████████████████████████| 123 kB 12.1 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.9.0)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.1.0-py3-none-any.whl (245 kB)\n", + "\u001b[K |████████████████████████████████| 245 kB 60.6 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.0.1)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Collecting widgetsnbextension~=3.6.0\n", + " Downloading widgetsnbextension-3.6.0-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 35.2 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.1.4)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.26)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: black in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (22.1.0)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.4.2)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: pathspec>=0.9.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.9.0)\n", + "Requirement already satisfied: tomli>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: mypy-extensions>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.4.3)\n", + "Requirement already satisfied: click>=8.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (8.0.3)\n", + "Requirement already satisfied: platformdirs>=2 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.4.1)\n", + "Requirement already satisfied: typing-extensions>=3.10.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (4.0.1)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.11)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.7)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.2)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)\n", + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.7.0 jupyterlab-widgets-1.1.0 widgetsnbextension-3.6.0\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install scikit-image==0.19.1\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 2. SSD\n", + "\n", + "### Single Shot MultiBox Detector model for object detection\n", + "\n", + "_ | _\n", + "- | -\n", + "![alt](https://pytorch.org/assets/images/ssd_diagram.png) | ![alt](https://pytorch.org/assets/images/ssd.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our SSD model pretrained on [COCO](https://cocodataset.org/#home) from there.\n", + "\n", + "### Model Description\n", + "\n", + "This SSD300 model is based on the\n", + "[SSD: Single Shot MultiBox Detector](https://arxiv.org/abs/1512.02325) paper, which\n", + "describes SSD as “a method for detecting objects in images using a single deep neural network\".\n", + "The input size is fixed to 300x300.\n", + "\n", + "The main difference between this model and the one described in the paper is in the backbone.\n", + "Specifically, the VGG model is obsolete and is replaced by the ResNet-50 model.\n", + "\n", + "From the\n", + "[Speed/accuracy trade-offs for modern convolutional object detectors](https://arxiv.org/abs/1611.10012)\n", + "paper, the following enhancements were made to the backbone:\n", + "* The conv5_x, avgpool, fc and softmax layers were removed from the original classification model.\n", + "* All strides in conv4_x are set to 1x1.\n", + "\n", + "The backbone is followed by 5 additional convolutional layers.\n", + "In addition to the convolutional layers, we attached 6 detection heads:\n", + "* The first detection head is attached to the last conv4_x layer.\n", + "* The other five detection heads are attached to the corresponding 5 additional layers.\n", + "\n", + "Detector heads are similar to the ones referenced in the paper, however,\n", + "they are enhanced by additional BatchNorm layers after each convolution.\n", + "\n", + "More information about this SSD model is available at Nvidia's \"DeepLearningExamples\" Github [here](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "torch.hub._validate_not_a_forked_repo=lambda a,b,c: True" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading: \"https://github.com/NVIDIA/DeepLearningExamples/archive/torchhub.zip\" to /root/.cache/torch/hub/torchhub.zip\n", + "/root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub/PyTorch/Classification/ConvNets/image_classification/models/efficientnet.py:17: UserWarning: pytorch_quantization module not found, quantization will not be available\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "['nvidia_convnets_processing_utils',\n", + " 'nvidia_efficientnet',\n", + " 'nvidia_efficientnet_b0',\n", + " 'nvidia_efficientnet_b4',\n", + " 'nvidia_efficientnet_widese_b0',\n", + " 'nvidia_efficientnet_widese_b4',\n", + " 'nvidia_resneXt',\n", + " 'nvidia_resnet50',\n", + " 'nvidia_resnext101_32x4d',\n", + " 'nvidia_se_resnext101_32x4d',\n", + " 'nvidia_ssd',\n", + " 'nvidia_ssd_processing_utils',\n", + " 'nvidia_tacotron2',\n", + " 'nvidia_tts_utils',\n", + " 'nvidia_waveglow']" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# List of available models in PyTorch Hub from Nvidia/DeepLearningExamples\n", + "torch.hub.list('NVIDIA/DeepLearningExamples:torchhub')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using cache found in /root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub\n", + "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1c7cf3e1635d4a2b9c8731b7fc9ce724", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0.00/97.8M [00:0040%) in a more comprehensive format.\n", + "results_per_input = utils.decode_results(detections_batch)\n", + "best_results_per_input = [utils.pick_best(results, 0.40) for results in results_per_input]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualize results" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "import matplotlib.patches as patches\n", + "\n", + "# The utility plots the images and predicted bounding boxes (with confidence scores).\n", + "def plot_results(best_results):\n", + " for image_idx in range(len(best_results)):\n", + " fig, ax = plt.subplots(1)\n", + " # Show original, denormalized image...\n", + " image = inputs[image_idx] / 2 + 0.5\n", + " ax.imshow(image)\n", + " # ...with detections\n", + " bboxes, classes, confidences = best_results[image_idx]\n", + " for idx in range(len(bboxes)):\n", + " left, bot, right, top = bboxes[idx]\n", + " x, y, w, h = [val * 300 for val in [left, bot, right - left, top - bot]]\n", + " rect = patches.Rectangle((x, y), w, h, linewidth=1, edgecolor='r', facecolor='none')\n", + " ax.add_patch(rect)\n", + " ax.text(x, y, \"{} {:.0f}%\".format(classes_to_labels[classes[idx] - 1], confidences[idx]*100), bbox=dict(facecolor='white', alpha=0.5))\n", + " plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Visualize results without Torch-TensorRT\n", + "plot_results(best_results_per_input)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmark utility" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "# Helper function to benchmark the model\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " pred_loc, pred_label = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output location prediction size:\", pred_loc.size())\n", + " print(\"Output label prediction size:\", pred_label.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We check how well the model performs **before** we use Torch-TensorRT" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 165.38 ms\n", + "Iteration 20/100, avg batch time 165.99 ms\n", + "Iteration 30/100, avg batch time 166.04 ms\n", + "Iteration 40/100, avg batch time 166.32 ms\n", + "Iteration 50/100, avg batch time 166.49 ms\n", + "Iteration 60/100, avg batch time 166.74 ms\n", + "Iteration 70/100, avg batch time 166.88 ms\n", + "Iteration 80/100, avg batch time 167.05 ms\n", + "Iteration 90/100, avg batch time 167.18 ms\n", + "Iteration 100/100, avg batch time 167.31 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 167.31 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = ssd300.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(128, 3, 300, 300), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 3. Creating TorchScript modules " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To compile with Torch-TensorRT, the model must first be in **TorchScript**. TorchScript is a programming language included in PyTorch which removes the Python dependency normal PyTorch models have. This conversion is done via a JIT compiler which given a PyTorch Module will generate an equivalent TorchScript Module. There are two paths that can be used to generate TorchScript: **Tracing** and **Scripting**.
\n", + "- Tracing follows execution of PyTorch generating ops in TorchScript corresponding to what it sees.
\n", + "- Scripting does an analysis of the Python code and generates TorchScript, this allows the resulting graph to include control flow which tracing cannot do. \n", + "\n", + "Tracing however due to its simplicity is more likely to compile successfully with Torch-TensorRT (though both systems are supported)." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "model = ssd300.eval().to(\"cuda\")\n", + "traced_model = torch.jit.trace(model, [torch.randn((1,3,300,300)).to(\"cuda\")])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If required, we can also save this model and use it independently of Python." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# This is just an example, and not required for the purposes of this demo\n", + "torch.jit.save(traced_model, \"ssd_300_traced.jit.pt\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 165.53 ms\n", + "Iteration 20/100, avg batch time 166.19 ms\n", + "Iteration 30/100, avg batch time 166.12 ms\n", + "Iteration 40/100, avg batch time 166.16 ms\n", + "Iteration 50/100, avg batch time 166.24 ms\n", + "Iteration 60/100, avg batch time 166.33 ms\n", + "Iteration 70/100, avg batch time 166.43 ms\n", + "Iteration 80/100, avg batch time 166.44 ms\n", + "Iteration 90/100, avg batch time 166.53 ms\n", + "Iteration 100/100, avg batch time 166.59 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 166.59 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input with Torchscript compiled modules\n", + "benchmark(traced_model, input_shape=(128, 3, 300, 300), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 4. Compiling with Torch-TensorRT\n", + "TorchScript modules behave just like normal PyTorch modules and are intercompatible. From TorchScript we can now compile a TensorRT based module. This module will still be implemented in TorchScript but all the computation will be done in TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model = torch_tensorrt.compile(traced_model, \n", + " inputs= [torch_tensorrt.Input((3, 3, 300, 300), dtype=torch.half)],\n", + " enabled_precisions= {torch.half}, # Run with FP16\n", + " workspace_size= 1 << 20\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 5. Running Inference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we run object detection" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# using a Torch-TensorRT module is exactly the same as how we usually do inference in PyTorch i.e. model(inputs)\n", + "detections_batch = trt_model(tensor.to(torch.half)) # convert the input to half precision\n", + "\n", + "# By default, raw output from SSD network per input image contains 8732 boxes with \n", + "# localization and class probability distribution. \n", + "# Let’s filter this output to only get reasonable detections (confidence>40%) in a more comprehensive format.\n", + "results_per_input = utils.decode_results(detections_batch)\n", + "best_results_per_input_trt = [utils.pick_best(results, 0.40) for results in results_per_input]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's visualize our predictions!\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Visualize results with Torch-TensorRT\n", + "plot_results(best_results_per_input_trt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We get similar results as before!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 6. Measuring Speedup\n", + "We can run the benchmark function again to see the speedup gained! Compare this result with the same batch-size of input in the case without Torch-TensorRT above." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 45.88 ms\n", + "Iteration 20/100, avg batch time 46.20 ms\n", + "Iteration 30/100, avg batch time 46.10 ms\n", + "Iteration 40/100, avg batch time 46.19 ms\n", + "Iteration 50/100, avg batch time 46.15 ms\n", + "Iteration 60/100, avg batch time 46.17 ms\n", + "Iteration 70/100, avg batch time 46.19 ms\n", + "Iteration 80/100, avg batch time 46.20 ms\n", + "Iteration 90/100, avg batch time 46.22 ms\n", + "Iteration 100/100, avg batch time 46.21 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 46.21 ms\n" + ] + } + ], + "source": [ + "batch_size = 128\n", + "\n", + "# Recompiling with batch_size we use for evaluating performance\n", + "trt_model = torch_tensorrt.compile(traced_model,\n", + " inputs = [torch_tensorrt.Input((batch_size, 3, 300, 300), dtype=torch.half)],\n", + " enabled_precisions= {torch.half}, # Run with FP16\n", + " workspace_size= 1 << 20\n", + ")\n", + "\n", + "benchmark(trt_model, input_shape=(batch_size, 3, 300, 300), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 7. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling a TorchScript SSD300 model with Torch-TensorRT, and tested the performance impact of the optimization. We find that using the Torch-TensorRT compiled model, we gain significant speedup in inference without any noticeable drop in performance!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Details\n", + "For detailed information on model input and output,\n", + "training recipies, inference and performance visit:\n", + "[github](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)\n", + "and/or [NGC](https://ngc.nvidia.com/catalog/model-scripts/nvidia:ssd_for_pytorch)\n", + "\n", + "### References\n", + "\n", + " - [SSD: Single Shot MultiBox Detector](https://arxiv.org/abs/1512.02325) paper\n", + " - [Speed/accuracy trade-offs for modern convolutional object detectors](https://arxiv.org/abs/1611.10012) paper\n", + " - [SSD on NGC](https://ngc.nvidia.com/catalog/model-scripts/nvidia:ssd_for_pytorch)\n", + " - [SSD on github](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_notebooks/vgg-qat.html b/docs/v1.1.1/_notebooks/vgg-qat.html new file mode 100644 index 0000000000..a47192b83e --- /dev/null +++ b/docs/v1.1.1/_notebooks/vgg-qat.html @@ -0,0 +1,2340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +

+ Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT + + ¶ + +

+

+ Overview + + ¶ + +

+

+ Quantization Aware training (QAT) simulates quantization during training by quantizing weights and activation layers. This will help to reduce the loss in accuracy when we convert the network trained in FP32 to INT8 for faster inference. QAT introduces additional nodes in the graph which will be used to learn the dynamic ranges of weights and activation layers. In this notebook, we illustrate the following steps from training to inference of a QAT model in Torch-TensorRT. +

+
    +
  1. +

    + + Requirements + +

    +
  2. +
  3. +

    + + VGG16 Overview + +

    +
  4. +
  5. +

    + + Training a baseline VGG16 model + +

    +
  6. +
  7. +

    + + Apply Quantization + +

    +
  8. +
  9. +

    + + Model calibration + +

    +
  10. +
  11. +

    + + Quantization Aware training + +

    +
  12. +
  13. +

    + + Export to Torchscript + +

    +
  14. +
  15. +

    + + Inference using Torch-TensorRT + +

    +
  16. +
  17. +

    + + References + +

    +
  18. +
+

+ ## 1. Requirements Please install the required dependencies and import these libraries accordingly +

+
+
+
+
[ ]:
+
+
+
+
+
+
+!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+
+
+
+
+
+
+
+
[1]:
+
+
+
+
+
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+import torch.optim as optim
+import torch.utils.data as data
+import torchvision.transforms as transforms
+import torchvision.datasets as datasets
+import torch_tensorrt
+
+from torch.utils.tensorboard import SummaryWriter
+
+import pytorch_quantization
+from pytorch_quantization import nn as quant_nn
+from pytorch_quantization import quant_modules
+from pytorch_quantization.tensor_quant import QuantDescriptor
+from pytorch_quantization import calib
+from tqdm import tqdm
+
+print(pytorch_quantization.__version__)
+
+import os
+import sys
+sys.path.insert(0, "../examples/int8/training/vgg16")
+from vgg16 import vgg16
+
+
+
+
+
+
+
+
+
+
+
+2.1.0
+
+
+
+
+

+ ## 2. VGG16 Overview ### Very Deep Convolutional Networks for Large-Scale Image Recognition VGG is one of the earliest family of image classification networks that first used small (3x3) convolution filters and achieved significant improvements on ImageNet recognition challenge. The network architecture looks as follows + 3a4df2d5843f45a98c1e22f0e89feecb +

+

+ ## 3. Training a baseline VGG16 model We train VGG16 on CIFAR10 dataset. Define training and testing datasets and dataloaders. This will download the CIFAR 10 data in your + + + data + + + directory. Data preprocessing is performed using + + + torchvision + + + transforms. +

+
+
+
+
[2]:
+
+
+
+
+
+
+classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')
+
+# ========== Define Training dataset and dataloaders =============#
+training_dataset = datasets.CIFAR10(root='./data',
+                                        train=True,
+                                        download=True,
+                                        transform=transforms.Compose([
+                                            transforms.RandomCrop(32, padding=4),
+                                            transforms.RandomHorizontalFlip(),
+                                            transforms.ToTensor(),
+                                            transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
+                                        ]))
+
+training_dataloader = torch.utils.data.DataLoader(training_dataset,
+                                                      batch_size=32,
+                                                      shuffle=True,
+                                                      num_workers=2)
+
+# ========== Define Testing dataset and dataloaders =============#
+testing_dataset = datasets.CIFAR10(root='./data',
+                                   train=False,
+                                   download=True,
+                                   transform=transforms.Compose([
+                                       transforms.ToTensor(),
+                                       transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
+                                   ]))
+
+testing_dataloader = torch.utils.data.DataLoader(testing_dataset,
+                                                 batch_size=16,
+                                                 shuffle=False,
+                                                 num_workers=2)
+
+
+
+
+
+
+
+
+
+
+
+Files already downloaded and verified
+Files already downloaded and verified
+
+
+
+
+
+
+
+
[3]:
+
+
+
+
+
+
+def train(model, dataloader, crit, opt, epoch):
+#     global writer
+    model.train()
+    running_loss = 0.0
+    for batch, (data, labels) in enumerate(dataloader):
+        data, labels = data.cuda(), labels.cuda(non_blocking=True)
+        opt.zero_grad()
+        out = model(data)
+        loss = crit(out, labels)
+        loss.backward()
+        opt.step()
+
+        running_loss += loss.item()
+        if batch % 500 == 499:
+            print("Batch: [%5d | %5d] loss: %.3f" % (batch + 1, len(dataloader), running_loss / 100))
+            running_loss = 0.0
+
+def test(model, dataloader, crit, epoch):
+    global writer
+    global classes
+    total = 0
+    correct = 0
+    loss = 0.0
+    class_probs = []
+    class_preds = []
+    model.eval()
+    with torch.no_grad():
+        for data, labels in dataloader:
+            data, labels = data.cuda(), labels.cuda(non_blocking=True)
+            out = model(data)
+            loss += crit(out, labels)
+            preds = torch.max(out, 1)[1]
+            class_probs.append([F.softmax(i, dim=0) for i in out])
+            class_preds.append(preds)
+            total += labels.size(0)
+            correct += (preds == labels).sum().item()
+
+    test_probs = torch.cat([torch.stack(batch) for batch in class_probs])
+    test_preds = torch.cat(class_preds)
+
+    return loss / total, correct / total
+
+def save_checkpoint(state, ckpt_path="checkpoint.pth"):
+    torch.save(state, ckpt_path)
+    print("Checkpoint saved")
+
+
+
+
+

+ + Define the VGG model that we are going to perfom QAT on. + +

+
+
+
+
[4]:
+
+
+
+
+
+
+# CIFAR 10 has 10 classes
+model = vgg16(num_classes=len(classes), init_weights=False)
+model = model.cuda()
+
+
+
+
+
+
+
+
[5]:
+
+
+
+
+
+
+# Declare Learning rate
+lr = 0.1
+state = {}
+state["lr"] = lr
+
+# Use cross entropy loss for classification and SGD optimizer
+crit = nn.CrossEntropyLoss()
+opt = optim.SGD(model.parameters(), lr=state["lr"], momentum=0.9, weight_decay=1e-4)
+
+
+# Adjust learning rate based on epoch number
+def adjust_lr(optimizer, epoch):
+    global state
+    new_lr = lr * (0.5**(epoch // 12)) if state["lr"] > 1e-7 else state["lr"]
+    if new_lr != state["lr"]:
+        state["lr"] = new_lr
+        print("Updating learning rate: {}".format(state["lr"]))
+        for param_group in optimizer.param_groups:
+            param_group["lr"] = state["lr"]
+
+
+
+
+
+
+
+
[6]:
+
+
+
+
+
+
+# Train the model for 25 epochs to get ~80% accuracy.
+num_epochs=25
+for epoch in range(num_epochs):
+    adjust_lr(opt, epoch)
+    print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state["lr"]))
+
+    train(model, training_dataloader, crit, opt, epoch)
+    test_loss, test_acc = test(model, testing_dataloader, crit, epoch)
+
+    print("Test Loss: {:.5f} Test Acc: {:.2f}%".format(test_loss, 100 * test_acc))
+
+save_checkpoint({'epoch': epoch + 1,
+                 'model_state_dict': model.state_dict(),
+                 'acc': test_acc,
+                 'opt_state_dict': opt.state_dict(),
+                 'state': state},
+                ckpt_path="vgg16_base_ckpt")
+
+
+
+
+
+
+
+
+
+
+Epoch: [    1 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 13.288
+Batch: [ 1000 |  1563] loss: 11.345
+Batch: [ 1500 |  1563] loss: 11.008
+Test Loss: 0.13388 Test Acc: 13.23%
+Epoch: [    2 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 10.742
+Batch: [ 1000 |  1563] loss: 10.311
+Batch: [ 1500 |  1563] loss: 10.141
+Test Loss: 0.11888 Test Acc: 23.96%
+Epoch: [    3 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.877
+Batch: [ 1000 |  1563] loss: 9.821
+Batch: [ 1500 |  1563] loss: 9.818
+Test Loss: 0.11879 Test Acc: 24.68%
+Epoch: [    4 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.677
+Batch: [ 1000 |  1563] loss: 9.613
+Batch: [ 1500 |  1563] loss: 9.504
+Test Loss: 0.11499 Test Acc: 23.68%
+Epoch: [    5 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.560
+Batch: [ 1000 |  1563] loss: 9.536
+Batch: [ 1500 |  1563] loss: 9.309
+Test Loss: 0.10990 Test Acc: 27.84%
+Epoch: [    6 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.254
+Batch: [ 1000 |  1563] loss: 9.234
+Batch: [ 1500 |  1563] loss: 9.188
+Test Loss: 0.11594 Test Acc: 23.29%
+Epoch: [    7 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.141
+Batch: [ 1000 |  1563] loss: 9.110
+Batch: [ 1500 |  1563] loss: 9.013
+Test Loss: 0.10732 Test Acc: 29.24%
+Epoch: [    8 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.120
+Batch: [ 1000 |  1563] loss: 9.086
+Batch: [ 1500 |  1563] loss: 8.948
+Test Loss: 0.10732 Test Acc: 27.24%
+Epoch: [    9 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 8.941
+Batch: [ 1000 |  1563] loss: 8.997
+Batch: [ 1500 |  1563] loss: 9.028
+Test Loss: 0.11299 Test Acc: 25.52%
+Epoch: [   10 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 8.927
+Batch: [ 1000 |  1563] loss: 8.837
+Batch: [ 1500 |  1563] loss: 8.860
+Test Loss: 0.10130 Test Acc: 34.61%
+Epoch: [   11 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 8.953
+Batch: [ 1000 |  1563] loss: 8.738
+Batch: [ 1500 |  1563] loss: 8.724
+Test Loss: 0.10018 Test Acc: 32.27%
+Epoch: [   12 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 8.721
+Batch: [ 1000 |  1563] loss: 8.716
+Batch: [ 1500 |  1563] loss: 8.701
+Test Loss: 0.10070 Test Acc: 29.57%
+Updating learning rate: 0.05
+Epoch: [   13 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 7.944
+Batch: [ 1000 |  1563] loss: 7.649
+Batch: [ 1500 |  1563] loss: 7.511
+Test Loss: 0.08555 Test Acc: 44.62%
+Epoch: [   14 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 7.057
+Batch: [ 1000 |  1563] loss: 6.944
+Batch: [ 1500 |  1563] loss: 6.687
+Test Loss: 0.08331 Test Acc: 52.27%
+Epoch: [   15 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 6.470
+Batch: [ 1000 |  1563] loss: 6.439
+Batch: [ 1500 |  1563] loss: 6.126
+Test Loss: 0.07266 Test Acc: 58.02%
+Epoch: [   16 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 5.834
+Batch: [ 1000 |  1563] loss: 5.801
+Batch: [ 1500 |  1563] loss: 5.622
+Test Loss: 0.06340 Test Acc: 65.17%
+Epoch: [   17 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 5.459
+Batch: [ 1000 |  1563] loss: 5.442
+Batch: [ 1500 |  1563] loss: 5.314
+Test Loss: 0.05945 Test Acc: 67.22%
+Epoch: [   18 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 5.071
+Batch: [ 1000 |  1563] loss: 5.145
+Batch: [ 1500 |  1563] loss: 5.063
+Test Loss: 0.06567 Test Acc: 64.46%
+Epoch: [   19 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 4.796
+Batch: [ 1000 |  1563] loss: 4.781
+Batch: [ 1500 |  1563] loss: 4.732
+Test Loss: 0.05374 Test Acc: 71.87%
+Epoch: [   20 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 4.568
+Batch: [ 1000 |  1563] loss: 4.564
+Batch: [ 1500 |  1563] loss: 4.484
+Test Loss: 0.05311 Test Acc: 71.12%
+Epoch: [   21 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 4.385
+Batch: [ 1000 |  1563] loss: 4.302
+Batch: [ 1500 |  1563] loss: 4.285
+Test Loss: 0.05080 Test Acc: 74.29%
+Epoch: [   22 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 4.069
+Batch: [ 1000 |  1563] loss: 4.105
+Batch: [ 1500 |  1563] loss: 4.096
+Test Loss: 0.04807 Test Acc: 75.20%
+Epoch: [   23 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 3.959
+Batch: [ 1000 |  1563] loss: 3.898
+Batch: [ 1500 |  1563] loss: 3.916
+Test Loss: 0.04743 Test Acc: 75.81%
+Epoch: [   24 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 3.738
+Batch: [ 1000 |  1563] loss: 3.847
+Batch: [ 1500 |  1563] loss: 3.797
+Test Loss: 0.04609 Test Acc: 76.42%
+Updating learning rate: 0.025
+Epoch: [   25 /    25] LR: 0.025000
+Batch: [  500 |  1563] loss: 2.952
+Batch: [ 1000 |  1563] loss: 2.906
+Batch: [ 1500 |  1563] loss: 2.735
+Test Loss: 0.03466 Test Acc: 82.00%
+Checkpoint saved
+
+
+
+
+

+ ## 4. Apply Quantization +

+

+ + + quant_modules.initialize() + + + will ensure quantized version of modules will be called instead of original modules. For example, when you define a model with convolution, linear, pooling layers, + + + QuantConv2d + + + , + + + QuantLinear + + + and + + + QuantPooling + + + will be called. + + + QuantConv2d + + + basically wraps quantizer nodes around inputs and weights of regular + + + Conv2d + + + . Please refer to all the quantized modules in pytorch-quantization toolkit for more information. A + + + QuantConv2d + + + is represented in + + + pytorch-quantization + + + toolkit as follows. +

+
+
+
def forward(self, input):
+        # the actual quantization happens in the next level of the class hierarchy
+        quant_input, quant_weight = self._quant(input)
+
+        if self.padding_mode == 'circular':
+            expanded_padding = ((self.padding[1] + 1) // 2, self.padding[1] // 2,
+                                (self.padding[0] + 1) // 2, self.padding[0] // 2)
+            output = F.conv2d(F.pad(quant_input, expanded_padding, mode='circular'),
+                              quant_weight, self.bias, self.stride,
+                              _pair(0), self.dilation, self.groups)
+        else:
+            output = F.conv2d(quant_input, quant_weight, self.bias, self.stride, self.padding, self.dilation,
+                              self.groups)
+
+        return output
+
+
+
+
+
+
+
[7]:
+
+
+
+
+
+
+quant_modules.initialize()
+
+
+
+
+
+
+
+
[8]:
+
+
+
+
+
+
+# All the regular conv, FC layers will be converted to their quantozed counterparts due to quant_modules.initialize()
+qat_model = vgg16(num_classes=len(classes), init_weights=False)
+qat_model = qat_model.cuda()
+
+
+
+
+
+
+
+
[9]:
+
+
+
+
+
+
+# vgg16_base_ckpt is the checkpoint generated from Step 3 : Training a baseline VGG16 model.
+ckpt = torch.load("./vgg16_base_ckpt")
+modified_state_dict={}
+for key, val in ckpt["model_state_dict"].items():
+    # Remove 'module.' from the key names
+    if key.startswith('module'):
+        modified_state_dict[key[7:]] = val
+    else:
+        modified_state_dict[key] = val
+
+# Load the pre-trained checkpoint
+qat_model.load_state_dict(modified_state_dict)
+opt.load_state_dict(ckpt["opt_state_dict"])
+
+
+
+
+

+ ## 5. Model Calibration +

+

+ The quantizer nodes introduced in the model around desired layers capture the dynamic range (min_value, max_value) that is observed by the layer. Calibration is the process of computing the dynamic range of these layers by passing calibration data, which is usually a subset of training or validation data. There are different ways of calibration: + + + max + + + , + + + histogram + + + and + + + entropy + + + . We use + + + max + + + calibration technique as it is simple and effective. +

+
+
+
+
[10]:
+
+
+
+
+
+
+def compute_amax(model, **kwargs):
+    # Load calib result
+    for name, module in model.named_modules():
+        if isinstance(module, quant_nn.TensorQuantizer):
+            if module._calibrator is not None:
+                if isinstance(module._calibrator, calib.MaxCalibrator):
+                    module.load_calib_amax()
+                else:
+                    module.load_calib_amax(**kwargs)
+            print(F"{name:40}: {module}")
+    model.cuda()
+
+def collect_stats(model, data_loader, num_batches):
+    """Feed data to the network and collect statistics"""
+    # Enable calibrators
+    for name, module in model.named_modules():
+        if isinstance(module, quant_nn.TensorQuantizer):
+            if module._calibrator is not None:
+                module.disable_quant()
+                module.enable_calib()
+            else:
+                module.disable()
+
+    # Feed data to the network for collecting stats
+    for i, (image, _) in tqdm(enumerate(data_loader), total=num_batches):
+        model(image.cuda())
+        if i >= num_batches:
+            break
+
+    # Disable calibrators
+    for name, module in model.named_modules():
+        if isinstance(module, quant_nn.TensorQuantizer):
+            if module._calibrator is not None:
+                module.enable_quant()
+                module.disable_calib()
+            else:
+                module.enable()
+
+def calibrate_model(model, model_name, data_loader, num_calib_batch, calibrator, hist_percentile, out_dir):
+    """
+        Feed data to the network and calibrate.
+        Arguments:
+            model: classification model
+            model_name: name to use when creating state files
+            data_loader: calibration data set
+            num_calib_batch: amount of calibration passes to perform
+            calibrator: type of calibration to use (max/histogram)
+            hist_percentile: percentiles to be used for historgram calibration
+            out_dir: dir to save state files in
+    """
+
+    if num_calib_batch > 0:
+        print("Calibrating model")
+        with torch.no_grad():
+            collect_stats(model, data_loader, num_calib_batch)
+
+        if not calibrator == "histogram":
+            compute_amax(model, method="max")
+            calib_output = os.path.join(
+                out_dir,
+                F"{model_name}-max-{num_calib_batch*data_loader.batch_size}.pth")
+            torch.save(model.state_dict(), calib_output)
+        else:
+            for percentile in hist_percentile:
+                print(F"{percentile} percentile calibration")
+                compute_amax(model, method="percentile")
+                calib_output = os.path.join(
+                    out_dir,
+                    F"{model_name}-percentile-{percentile}-{num_calib_batch*data_loader.batch_size}.pth")
+                torch.save(model.state_dict(), calib_output)
+
+            for method in ["mse", "entropy"]:
+                print(F"{method} calibration")
+                compute_amax(model, method=method)
+                calib_output = os.path.join(
+                    out_dir,
+                    F"{model_name}-{method}-{num_calib_batch*data_loader.batch_size}.pth")
+                torch.save(model.state_dict(), calib_output)
+
+
+
+
+
+
+
+
[11]:
+
+
+
+
+
+
+#Calibrate the model using max calibration technique.
+with torch.no_grad():
+    calibrate_model(
+        model=qat_model,
+        model_name="vgg16",
+        data_loader=training_dataloader,
+        num_calib_batch=32,
+        calibrator="max",
+        hist_percentile=[99.9, 99.99, 99.999, 99.9999],
+        out_dir="./")
+
+
+
+
+
+
+
+
+
+
+Calibrating model
+
+
+
+
+
+
+
+
+
+
+100%|███████████████████████████████████████████████████████| 32/32 [00:00<00:00, 96.04it/s]
+WARNING: Logging before flag parsing goes to stderr.
+W1109 04:01:43.512364 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.513354 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.514046 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.514638 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.515270 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.515859 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.516441 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.517009 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.517600 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.518167 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.518752 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.519333 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.519911 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.520473 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.521038 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.521596 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.522170 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.522742 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.523360 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.523957 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.524581 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.525059 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.525366 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.525675 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.525962 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.526257 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.526566 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.526885 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.527188 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.527489 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.527792 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.528097 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.528387 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.528834 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.529163 139704147265344 tensor_quantizer.py:238] Call .cuda() if running on GPU after loading calibrated amax.
+W1109 04:01:43.532748 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).
+W1109 04:01:43.533468 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.534033 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).
+W1109 04:01:43.534684 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.535320 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).
+W1109 04:01:43.535983 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.536569 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).
+W1109 04:01:43.537248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.537833 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).
+W1109 04:01:43.538480 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.539074 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).
+W1109 04:01:43.539724 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.540307 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).
+W1109 04:01:43.540952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.541534 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.542075 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.542596 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.543248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.543719 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.544424 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.544952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.545530 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.546114 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.546713 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.547292 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.547902 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.548453 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.549015 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).
+W1109 04:01:43.549665 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.550436 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).
+W1109 04:01:43.551925 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.553105 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([10, 1]).
+
+
+
+
+
+
+
+
+
+
+features.0._input_quantizer             : TensorQuantizer(8bit narrow fake per-tensor amax=2.7537 calibrator=MaxCalibrator scale=1.0 quant)
+features.0._weight_quantizer            : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0263, 2.7454](64) calibrator=MaxCalibrator scale=1.0 quant)
+features.3._input_quantizer             : TensorQuantizer(8bit narrow fake per-tensor amax=27.5676 calibrator=MaxCalibrator scale=1.0 quant)
+features.3._weight_quantizer            : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0169, 1.8204](64) calibrator=MaxCalibrator scale=1.0 quant)
+features.7._input_quantizer             : TensorQuantizer(8bit narrow fake per-tensor amax=15.2002 calibrator=MaxCalibrator scale=1.0 quant)
+features.7._weight_quantizer            : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0493, 1.3207](128) calibrator=MaxCalibrator scale=1.0 quant)
+features.10._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=7.7376 calibrator=MaxCalibrator scale=1.0 quant)
+features.10._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0163, 0.9624](128) calibrator=MaxCalibrator scale=1.0 quant)
+features.14._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=8.8351 calibrator=MaxCalibrator scale=1.0 quant)
+features.14._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0622, 0.8791](256) calibrator=MaxCalibrator scale=1.0 quant)
+features.17._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=12.5746 calibrator=MaxCalibrator scale=1.0 quant)
+features.17._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0505, 0.5117](256) calibrator=MaxCalibrator scale=1.0 quant)
+features.20._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=9.7203 calibrator=MaxCalibrator scale=1.0 quant)
+features.20._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0296, 0.5335](256) calibrator=MaxCalibrator scale=1.0 quant)
+features.24._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=8.9367 calibrator=MaxCalibrator scale=1.0 quant)
+features.24._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0220, 0.3763](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.27._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=6.6539 calibrator=MaxCalibrator scale=1.0 quant)
+features.27._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0151, 0.1777](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.30._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=3.7099 calibrator=MaxCalibrator scale=1.0 quant)
+features.30._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0087, 0.1906](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.34._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=4.0491 calibrator=MaxCalibrator scale=1.0 quant)
+features.34._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0106, 0.1971](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.37._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=2.1531 calibrator=MaxCalibrator scale=1.0 quant)
+features.37._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0070, 0.2305](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.40._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=3.3631 calibrator=MaxCalibrator scale=1.0 quant)
+features.40._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0023, 0.4726](512) calibrator=MaxCalibrator scale=1.0 quant)
+avgpool._input_quantizer                : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)
+classifier.0._input_quantizer           : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)
+classifier.0._weight_quantizer          : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0026, 0.5320](4096) calibrator=MaxCalibrator scale=1.0 quant)
+classifier.3._input_quantizer           : TensorQuantizer(8bit narrow fake per-tensor amax=6.6733 calibrator=MaxCalibrator scale=1.0 quant)
+classifier.3._weight_quantizer          : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0018, 0.5172](4096) calibrator=MaxCalibrator scale=1.0 quant)
+classifier.6._input_quantizer           : TensorQuantizer(8bit narrow fake per-tensor amax=9.4352 calibrator=MaxCalibrator scale=1.0 quant)
+classifier.6._weight_quantizer          : TensorQuantizer(8bit narrow fake axis=0 amax=[0.3877, 0.5620](10) calibrator=MaxCalibrator scale=1.0 quant)
+
+
+
+
+

+ ## 6. Quantization Aware Training +

+

+ In this phase, we finetune the model weights and leave the quantizer node values frozen. The dynamic ranges for each layer obtained from the calibration are kept constant while the weights of the model are finetuned to be close to the accuracy of original FP32 model (model without quantizer nodes) is preserved. Usually the finetuning of QAT model should be quick compared to the full training of the original model. Use QAT to fine-tune for around 10% of the original training schedule with an +annealing learning-rate. Please refer to Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT for detailed recommendations. For this VGG model, it is enough to finetune for 1 epoch to get acceptable accuracy. During finetuning with QAT, the quantization is applied as a composition of + + + max + + + , + + + clamp + + + , + + + round + + + and + + + mul + + + ops. +

+
+
+
# amax is absolute maximum value for an input
+# The upper bound for integer quantization (127 for int8)
+max_bound = torch.tensor((2.0**(num_bits - 1 + int(unsigned))) - 1.0, device=amax.device)
+scale = max_bound / amax
+outputs = torch.clamp((inputs * scale).round_(), min_bound, max_bound)
+
+
+
+

+ tensor_quant function in + + + pytorch_quantization + + + toolkit is responsible for the above tensor quantization. Usually, per channel quantization is recommended for weights, while per tensor quantization is recommended for activations in a network. During inference, we use + + + torch.fake_quantize_per_tensor_affine + + + and + + + torch.fake_quantize_per_channel_affine + + + to perform quantization as this is easier to convert into corresponding TensorRT operators. Please refer to next sections for more details on +how these operators are exported in torchscript and converted in Torch-TensorRT. +

+
+
+
+
[12]:
+
+
+
+
+
+
+# Finetune the QAT model for 1 epoch
+num_epochs=1
+for epoch in range(num_epochs):
+    adjust_lr(opt, epoch)
+    print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state["lr"]))
+
+    train(qat_model, training_dataloader, crit, opt, epoch)
+    test_loss, test_acc = test(qat_model, testing_dataloader, crit, epoch)
+
+    print("Test Loss: {:.5f} Test Acc: {:.2f}%".format(test_loss, 100 * test_acc))
+
+save_checkpoint({'epoch': epoch + 1,
+                 'model_state_dict': qat_model.state_dict(),
+                 'acc': test_acc,
+                 'opt_state_dict': opt.state_dict(),
+                 'state': state},
+                ckpt_path="vgg16_qat_ckpt")
+
+
+
+
+
+
+
+
+
+
+Updating learning rate: 0.1
+Epoch: [    1 /     1] LR: 0.100000
+Batch: [  500 |  1563] loss: 2.635
+Batch: [ 1000 |  1563] loss: 2.655
+Batch: [ 1500 |  1563] loss: 2.646
+Test Loss: 0.03291 Test Acc: 82.98%
+Checkpoint saved
+
+
+
+
+

+ ## 7. Export to Torchscript Export the model to Torch script. Trace the model and convert it into torchscript for deployment. To learn more about Torchscript, please refer to + + https://pytorch.org/docs/stable/jit.html + + . Setting + + + quant_nn.TensorQuantizer.use_fb_fake_quant + + + = + + + True + + + enables the QAT model to use + + + torch.fake_quantize_per_tensor_affine + + + and + + + torch.fake_quantize_per_channel_affine + + + operators instead of + + + tensor_quant + + + function to export quantization operators. In torchscript, they +are represented as + + + aten::fake_quantize_per_tensor_affine + + + and + + + aten::fake_quantize_per_channel_affine + + + . +

+
+
+
+
[13]:
+
+
+
+
+
+
+quant_nn.TensorQuantizer.use_fb_fake_quant = True
+with torch.no_grad():
+    data = iter(testing_dataloader)
+    images, _ = data.next()
+    jit_model = torch.jit.trace(qat_model, images.to("cuda"))
+    torch.jit.save(jit_model, "trained_vgg16_qat.jit.pt")
+
+
+
+
+
+
+
+
+
+
+E1109 04:02:37.101168 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.102248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.107194 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.107625 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.115269 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.115740 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.117969 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.118358 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.126382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.126834 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.128674 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.129518 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.135453 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.135936 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.137858 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.138366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.145539 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.146053 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.147871 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.148353 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.154252 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.154685 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.156558 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.157159 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.163197 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.163676 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.165549 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.165991 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.173305 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.173926 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.176034 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.176697 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.182843 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.183426 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.185377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.185962 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.191966 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.192424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.194325 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.194817 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.201988 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.202665 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.204763 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.205461 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.211393 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.211987 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.213899 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.214450 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.220892 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.221533 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.223519 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.224037 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.233809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.234434 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.238212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.239042 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.241022 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.241654 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.247820 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.248445 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.250366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.250959 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.257248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.257854 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.259968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.260660 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+W1109 04:02:37.268160 139704147265344 tensor_quantizer.py:280] Use Pytorch's native experimental fake quantization.
+/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:285: TracerWarning: Converting a tensor to a Python number might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
+  inputs, amax.item() / bound, 0,
+/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:291: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
+  quant_dim = list(amax.shape).index(list(amax_sequeeze.shape)[0])
+E1109 04:02:37.329273 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.330212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.332529 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.333365 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.339547 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.340248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.342257 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.342890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.350619 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.351372 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.353470 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.354121 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.360090 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.360806 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.362803 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.363274 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.370369 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.371057 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.373071 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.373766 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.379890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.380538 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.382532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.383128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.389077 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.389760 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.391815 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.392399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.399809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.400472 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.402399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.402939 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.408818 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.409424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.411513 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.412097 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.418537 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.419128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.421343 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.421946 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.429382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.430156 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.432259 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.433079 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.439297 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.440027 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.442149 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.442826 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.449377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.449968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.452122 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.452754 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.462532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.463295 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.466963 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.467725 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.469692 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.470336 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.476204 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.476738 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.478809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.479375 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.485666 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.486219 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.488416 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.488986 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+
+
+
+
+

+ ## 8. Inference using Torch-TensorRT In this phase, we run the exported torchscript graph of VGG QAT using Torch-TensorRT. Torch-TensorRT is a Pytorch-TensorRT compiler which converts Torchscript graphs into TensorRT. TensorRT 8.0 supports inference of quantization aware trained models and introduces new APIs; + + + QuantizeLayer + + + and + + + DequantizeLayer + + + . We can observe the entire VGG QAT graph quantization nodes from the debug log of Torch-TensorRT. To enable debug logging, you can set + + + torch_tensorrt.logging.set_reportable_log_level(torch_tensorrt.logging.Level.Debug) + + + . For example, + + + QuantConv2d + + + layer from + + + pytorch_quantization + + + toolkit is represented as follows in Torchscript +

+
+
+
%quant_input : Tensor = aten::fake_quantize_per_tensor_affine(%x, %636, %637, %638, %639)
+%quant_weight : Tensor = aten::fake_quantize_per_channel_affine(%394, %640, %641, %637, %638, %639)
+%input.2 : Tensor = aten::_convolution(%quant_input, %quant_weight, %395, %687, %688, %689, %643, %690, %642, %643, %643, %644, %644)
+
+
+
+

+ + + aten::fake_quantize_per_*_affine + + + is converted into + + + QuantizeLayer + + + + + + + DequantizeLayer + + + in Torch-TensorRT internally. Please refer to quantization op converters in Torch-TensorRT. +

+
+
+
+
[14]:
+
+
+
+
+
+
+qat_model = torch.jit.load("trained_vgg16_qat.jit.pt").eval()
+
+compile_spec = {"inputs": [torch_tensorrt.Input([16, 3, 32, 32])],
+                "enabled_precisions": torch.int8,
+                }
+trt_mod = torch_tensorrt.compile(qat_model, **compile_spec)
+
+test_loss, test_acc = test(trt_mod, testing_dataloader, crit, 0)
+print("VGG QAT accuracy using TensorRT: {:.2f}%".format(100 * test_acc))
+
+
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Cannot infer input type from calcuations in graph for input x.2. Assuming it is Float32. If not, specify input type explicity
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Detected invalid timing cache, setup a local cache instead
+
+
+
+
+
+
+
+
+
+
+VGG QAT accuracy using TensorRT: 82.97%
+
+
+
+
+

+ Performance benchmarking + + ¶ + +

+
+
+
+
[15]:
+
+
+
+
+
+
+import time
+import numpy as np
+
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+# Helper function to benchmark the model
+def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            output = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%100==0:
+                print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output shape:", output.shape)
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+
+
+
+
+
+
[16]:
+
+
+
+
+
+
+benchmark(jit_model, input_shape=(16, 3, 32, 32))
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, avg batch time 4.83 ms
+Iteration 200/1000, avg batch time 4.83 ms
+Iteration 300/1000, avg batch time 4.83 ms
+Iteration 400/1000, avg batch time 4.83 ms
+Iteration 500/1000, avg batch time 4.83 ms
+Iteration 600/1000, avg batch time 4.83 ms
+Iteration 700/1000, avg batch time 4.83 ms
+Iteration 800/1000, avg batch time 4.83 ms
+Iteration 900/1000, avg batch time 4.83 ms
+Iteration 1000/1000, avg batch time 4.83 ms
+Input shape: torch.Size([16, 3, 32, 32])
+Output shape: torch.Size([16, 10])
+Average batch time: 4.83 ms
+
+
+
+
+
+
+
+
[17]:
+
+
+
+
+
+
+benchmark(trt_mod, input_shape=(16, 3, 32, 32))
+
+
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, avg batch time 1.87 ms
+Iteration 200/1000, avg batch time 1.84 ms
+Iteration 300/1000, avg batch time 1.85 ms
+Iteration 400/1000, avg batch time 1.83 ms
+Iteration 500/1000, avg batch time 1.82 ms
+Iteration 600/1000, avg batch time 1.81 ms
+Iteration 700/1000, avg batch time 1.81 ms
+Iteration 800/1000, avg batch time 1.80 ms
+Iteration 900/1000, avg batch time 1.80 ms
+Iteration 1000/1000, avg batch time 1.79 ms
+Input shape: torch.Size([16, 3, 32, 32])
+Output shape: torch.Size([16, 10])
+Average batch time: 1.79 ms
+
+
+
+
+

+ ## 9. References * Very Deep Convolution Networks for large scale Image Recognition * Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT * QAT workflow for VGG16 * Deploying VGG QAT model in C++ using Torch-TensorRT * Pytorch-quantization toolkit from NVIDIA * Pytorch quantization toolkit userguide * Quantization basics +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_notebooks/vgg-qat.ipynb b/docs/v1.1.1/_notebooks/vgg-qat.ipynb new file mode 100644 index 0000000000..cca771ad92 --- /dev/null +++ b/docs/v1.1.1/_notebooks/vgg-qat.ipynb @@ -0,0 +1,1200 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8033b2eb", + "metadata": {}, + "source": [ + "# Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "id": "69ec3ca7", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "Quantization Aware training (QAT) simulates quantization during training by quantizing weights and activation layers. This will help to reduce the loss in accuracy when we convert the network trained in FP32 to INT8 for faster inference. QAT introduces additional nodes in the graph which will be used to learn the dynamic ranges of weights and activation layers. In this notebook, we illustrate the following steps from training to inference of a QAT model in Torch-TensorRT.\n", + "\n", + "1. [Requirements](#1)\n", + "2. [VGG16 Overview](#2)\n", + "3. [Training a baseline VGG16 model](#3)\n", + "4. [Apply Quantization](#4)\n", + "5. [Model calibration](#5)\n", + "6. [Quantization Aware training](#6)\n", + "7. [Export to Torchscript](#7)\n", + "8. [Inference using Torch-TensorRT](#8)\n", + "8. [References](#8)" + ] + }, + { + "cell_type": "markdown", + "id": "79655ea8", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "Please install the required dependencies and import these libraries accordingly" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14a72941", + "metadata": {}, + "outputs": [], + "source": [ + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6493e915", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.1.0\n" + ] + } + ], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "import torch.optim as optim\n", + "import torch.utils.data as data\n", + "import torchvision.transforms as transforms\n", + "import torchvision.datasets as datasets\n", + "import torch_tensorrt\n", + "\n", + "from torch.utils.tensorboard import SummaryWriter\n", + "\n", + "import pytorch_quantization\n", + "from pytorch_quantization import nn as quant_nn\n", + "from pytorch_quantization import quant_modules\n", + "from pytorch_quantization.tensor_quant import QuantDescriptor\n", + "from pytorch_quantization import calib\n", + "from tqdm import tqdm\n", + "\n", + "print(pytorch_quantization.__version__)\n", + "\n", + "import os\n", + "import sys\n", + "sys.path.insert(0, \"../examples/int8/training/vgg16\")\n", + "from vgg16 import vgg16\n" + ] + }, + { + "cell_type": "markdown", + "id": "4de5060a", + "metadata": {}, + "source": [ + "\n", + "## 2. VGG16 Overview\n", + "### Very Deep Convolutional Networks for Large-Scale Image Recognition\n", + "VGG is one of the earliest family of image classification networks that first used small (3x3) convolution filters and achieved significant improvements on ImageNet recognition challenge. The network architecture looks as follows\n", + "\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "7a5afc49", + "metadata": {}, + "source": [ + "\n", + "## 3. Training a baseline VGG16 model\n", + "We train VGG16 on CIFAR10 dataset. Define training and testing datasets and dataloaders. This will download the CIFAR 10 data in your `data` directory. Data preprocessing is performed using `torchvision` transforms. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5d2c4c45", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Files already downloaded and verified\n", + "Files already downloaded and verified\n" + ] + } + ], + "source": [ + "classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n", + "\n", + "# ========== Define Training dataset and dataloaders =============#\n", + "training_dataset = datasets.CIFAR10(root='./data',\n", + " train=True,\n", + " download=True,\n", + " transform=transforms.Compose([\n", + " transforms.RandomCrop(32, padding=4),\n", + " transforms.RandomHorizontalFlip(),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n", + " ]))\n", + "\n", + "training_dataloader = torch.utils.data.DataLoader(training_dataset,\n", + " batch_size=32,\n", + " shuffle=True,\n", + " num_workers=2)\n", + "\n", + "# ========== Define Testing dataset and dataloaders =============#\n", + "testing_dataset = datasets.CIFAR10(root='./data',\n", + " train=False,\n", + " download=True,\n", + " transform=transforms.Compose([\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n", + " ]))\n", + "\n", + "testing_dataloader = torch.utils.data.DataLoader(testing_dataset,\n", + " batch_size=16,\n", + " shuffle=False,\n", + " num_workers=2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2bd092b3", + "metadata": {}, + "outputs": [], + "source": [ + "def train(model, dataloader, crit, opt, epoch):\n", + "# global writer\n", + " model.train()\n", + " running_loss = 0.0\n", + " for batch, (data, labels) in enumerate(dataloader):\n", + " data, labels = data.cuda(), labels.cuda(non_blocking=True)\n", + " opt.zero_grad()\n", + " out = model(data)\n", + " loss = crit(out, labels)\n", + " loss.backward()\n", + " opt.step()\n", + "\n", + " running_loss += loss.item()\n", + " if batch % 500 == 499:\n", + " print(\"Batch: [%5d | %5d] loss: %.3f\" % (batch + 1, len(dataloader), running_loss / 100))\n", + " running_loss = 0.0\n", + " \n", + "def test(model, dataloader, crit, epoch):\n", + " global writer\n", + " global classes\n", + " total = 0\n", + " correct = 0\n", + " loss = 0.0\n", + " class_probs = []\n", + " class_preds = []\n", + " model.eval()\n", + " with torch.no_grad():\n", + " for data, labels in dataloader:\n", + " data, labels = data.cuda(), labels.cuda(non_blocking=True)\n", + " out = model(data)\n", + " loss += crit(out, labels)\n", + " preds = torch.max(out, 1)[1]\n", + " class_probs.append([F.softmax(i, dim=0) for i in out])\n", + " class_preds.append(preds)\n", + " total += labels.size(0)\n", + " correct += (preds == labels).sum().item()\n", + "\n", + " test_probs = torch.cat([torch.stack(batch) for batch in class_probs])\n", + " test_preds = torch.cat(class_preds)\n", + "\n", + " return loss / total, correct / total\n", + "\n", + "def save_checkpoint(state, ckpt_path=\"checkpoint.pth\"):\n", + " torch.save(state, ckpt_path)\n", + " print(\"Checkpoint saved\")" + ] + }, + { + "cell_type": "markdown", + "id": "c80a86cc", + "metadata": {}, + "source": [ + "*Define the VGG model that we are going to perfom QAT on.*" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8c564b8f", + "metadata": {}, + "outputs": [], + "source": [ + "# CIFAR 10 has 10 classes\n", + "model = vgg16(num_classes=len(classes), init_weights=False)\n", + "model = model.cuda()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "abc00452", + "metadata": {}, + "outputs": [], + "source": [ + "# Declare Learning rate\n", + "lr = 0.1\n", + "state = {}\n", + "state[\"lr\"] = lr\n", + "\n", + "# Use cross entropy loss for classification and SGD optimizer\n", + "crit = nn.CrossEntropyLoss()\n", + "opt = optim.SGD(model.parameters(), lr=state[\"lr\"], momentum=0.9, weight_decay=1e-4)\n", + "\n", + "\n", + "# Adjust learning rate based on epoch number\n", + "def adjust_lr(optimizer, epoch):\n", + " global state\n", + " new_lr = lr * (0.5**(epoch // 12)) if state[\"lr\"] > 1e-7 else state[\"lr\"]\n", + " if new_lr != state[\"lr\"]:\n", + " state[\"lr\"] = new_lr\n", + " print(\"Updating learning rate: {}\".format(state[\"lr\"]))\n", + " for param_group in optimizer.param_groups:\n", + " param_group[\"lr\"] = state[\"lr\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d80865a2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch: [ 1 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 13.288\n", + "Batch: [ 1000 | 1563] loss: 11.345\n", + "Batch: [ 1500 | 1563] loss: 11.008\n", + "Test Loss: 0.13388 Test Acc: 13.23%\n", + "Epoch: [ 2 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 10.742\n", + "Batch: [ 1000 | 1563] loss: 10.311\n", + "Batch: [ 1500 | 1563] loss: 10.141\n", + "Test Loss: 0.11888 Test Acc: 23.96%\n", + "Epoch: [ 3 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.877\n", + "Batch: [ 1000 | 1563] loss: 9.821\n", + "Batch: [ 1500 | 1563] loss: 9.818\n", + "Test Loss: 0.11879 Test Acc: 24.68%\n", + "Epoch: [ 4 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.677\n", + "Batch: [ 1000 | 1563] loss: 9.613\n", + "Batch: [ 1500 | 1563] loss: 9.504\n", + "Test Loss: 0.11499 Test Acc: 23.68%\n", + "Epoch: [ 5 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.560\n", + "Batch: [ 1000 | 1563] loss: 9.536\n", + "Batch: [ 1500 | 1563] loss: 9.309\n", + "Test Loss: 0.10990 Test Acc: 27.84%\n", + "Epoch: [ 6 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.254\n", + "Batch: [ 1000 | 1563] loss: 9.234\n", + "Batch: [ 1500 | 1563] loss: 9.188\n", + "Test Loss: 0.11594 Test Acc: 23.29%\n", + "Epoch: [ 7 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.141\n", + "Batch: [ 1000 | 1563] loss: 9.110\n", + "Batch: [ 1500 | 1563] loss: 9.013\n", + "Test Loss: 0.10732 Test Acc: 29.24%\n", + "Epoch: [ 8 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.120\n", + "Batch: [ 1000 | 1563] loss: 9.086\n", + "Batch: [ 1500 | 1563] loss: 8.948\n", + "Test Loss: 0.10732 Test Acc: 27.24%\n", + "Epoch: [ 9 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.941\n", + "Batch: [ 1000 | 1563] loss: 8.997\n", + "Batch: [ 1500 | 1563] loss: 9.028\n", + "Test Loss: 0.11299 Test Acc: 25.52%\n", + "Epoch: [ 10 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.927\n", + "Batch: [ 1000 | 1563] loss: 8.837\n", + "Batch: [ 1500 | 1563] loss: 8.860\n", + "Test Loss: 0.10130 Test Acc: 34.61%\n", + "Epoch: [ 11 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.953\n", + "Batch: [ 1000 | 1563] loss: 8.738\n", + "Batch: [ 1500 | 1563] loss: 8.724\n", + "Test Loss: 0.10018 Test Acc: 32.27%\n", + "Epoch: [ 12 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.721\n", + "Batch: [ 1000 | 1563] loss: 8.716\n", + "Batch: [ 1500 | 1563] loss: 8.701\n", + "Test Loss: 0.10070 Test Acc: 29.57%\n", + "Updating learning rate: 0.05\n", + "Epoch: [ 13 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 7.944\n", + "Batch: [ 1000 | 1563] loss: 7.649\n", + "Batch: [ 1500 | 1563] loss: 7.511\n", + "Test Loss: 0.08555 Test Acc: 44.62%\n", + "Epoch: [ 14 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 7.057\n", + "Batch: [ 1000 | 1563] loss: 6.944\n", + "Batch: [ 1500 | 1563] loss: 6.687\n", + "Test Loss: 0.08331 Test Acc: 52.27%\n", + "Epoch: [ 15 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 6.470\n", + "Batch: [ 1000 | 1563] loss: 6.439\n", + "Batch: [ 1500 | 1563] loss: 6.126\n", + "Test Loss: 0.07266 Test Acc: 58.02%\n", + "Epoch: [ 16 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.834\n", + "Batch: [ 1000 | 1563] loss: 5.801\n", + "Batch: [ 1500 | 1563] loss: 5.622\n", + "Test Loss: 0.06340 Test Acc: 65.17%\n", + "Epoch: [ 17 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.459\n", + "Batch: [ 1000 | 1563] loss: 5.442\n", + "Batch: [ 1500 | 1563] loss: 5.314\n", + "Test Loss: 0.05945 Test Acc: 67.22%\n", + "Epoch: [ 18 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.071\n", + "Batch: [ 1000 | 1563] loss: 5.145\n", + "Batch: [ 1500 | 1563] loss: 5.063\n", + "Test Loss: 0.06567 Test Acc: 64.46%\n", + "Epoch: [ 19 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.796\n", + "Batch: [ 1000 | 1563] loss: 4.781\n", + "Batch: [ 1500 | 1563] loss: 4.732\n", + "Test Loss: 0.05374 Test Acc: 71.87%\n", + "Epoch: [ 20 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.568\n", + "Batch: [ 1000 | 1563] loss: 4.564\n", + "Batch: [ 1500 | 1563] loss: 4.484\n", + "Test Loss: 0.05311 Test Acc: 71.12%\n", + "Epoch: [ 21 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.385\n", + "Batch: [ 1000 | 1563] loss: 4.302\n", + "Batch: [ 1500 | 1563] loss: 4.285\n", + "Test Loss: 0.05080 Test Acc: 74.29%\n", + "Epoch: [ 22 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.069\n", + "Batch: [ 1000 | 1563] loss: 4.105\n", + "Batch: [ 1500 | 1563] loss: 4.096\n", + "Test Loss: 0.04807 Test Acc: 75.20%\n", + "Epoch: [ 23 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 3.959\n", + "Batch: [ 1000 | 1563] loss: 3.898\n", + "Batch: [ 1500 | 1563] loss: 3.916\n", + "Test Loss: 0.04743 Test Acc: 75.81%\n", + "Epoch: [ 24 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 3.738\n", + "Batch: [ 1000 | 1563] loss: 3.847\n", + "Batch: [ 1500 | 1563] loss: 3.797\n", + "Test Loss: 0.04609 Test Acc: 76.42%\n", + "Updating learning rate: 0.025\n", + "Epoch: [ 25 / 25] LR: 0.025000\n", + "Batch: [ 500 | 1563] loss: 2.952\n", + "Batch: [ 1000 | 1563] loss: 2.906\n", + "Batch: [ 1500 | 1563] loss: 2.735\n", + "Test Loss: 0.03466 Test Acc: 82.00%\n", + "Checkpoint saved\n" + ] + } + ], + "source": [ + "# Train the model for 25 epochs to get ~80% accuracy.\n", + "num_epochs=25\n", + "for epoch in range(num_epochs):\n", + " adjust_lr(opt, epoch)\n", + " print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state[\"lr\"]))\n", + "\n", + " train(model, training_dataloader, crit, opt, epoch)\n", + " test_loss, test_acc = test(model, testing_dataloader, crit, epoch)\n", + "\n", + " print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n", + " \n", + "save_checkpoint({'epoch': epoch + 1,\n", + " 'model_state_dict': model.state_dict(),\n", + " 'acc': test_acc,\n", + " 'opt_state_dict': opt.state_dict(),\n", + " 'state': state},\n", + " ckpt_path=\"vgg16_base_ckpt\")" + ] + }, + { + "cell_type": "markdown", + "id": "e1044537", + "metadata": {}, + "source": [ + "\n", + "## 4. Apply Quantization" + ] + }, + { + "cell_type": "markdown", + "id": "c33b7f4e", + "metadata": {}, + "source": [ + "`quant_modules.initialize()` will ensure quantized version of modules will be called instead of original modules. For example, when you define a model with convolution, linear, pooling layers, `QuantConv2d`, `QuantLinear` and `QuantPooling` will be called. `QuantConv2d` basically wraps quantizer nodes around inputs and weights of regular `Conv2d`. Please refer to all the quantized modules in pytorch-quantization toolkit for more information. A `QuantConv2d` is represented in `pytorch-quantization` toolkit as follows.\n", + "\n", + "```\n", + "def forward(self, input):\n", + " # the actual quantization happens in the next level of the class hierarchy\n", + " quant_input, quant_weight = self._quant(input)\n", + "\n", + " if self.padding_mode == 'circular':\n", + " expanded_padding = ((self.padding[1] + 1) // 2, self.padding[1] // 2,\n", + " (self.padding[0] + 1) // 2, self.padding[0] // 2)\n", + " output = F.conv2d(F.pad(quant_input, expanded_padding, mode='circular'),\n", + " quant_weight, self.bias, self.stride,\n", + " _pair(0), self.dilation, self.groups)\n", + " else:\n", + " output = F.conv2d(quant_input, quant_weight, self.bias, self.stride, self.padding, self.dilation,\n", + " self.groups)\n", + "\n", + " return output\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "985dc59e", + "metadata": {}, + "outputs": [], + "source": [ + "quant_modules.initialize()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "164ce8cb", + "metadata": {}, + "outputs": [], + "source": [ + "# All the regular conv, FC layers will be converted to their quantozed counterparts due to quant_modules.initialize()\n", + "qat_model = vgg16(num_classes=len(classes), init_weights=False)\n", + "qat_model = qat_model.cuda()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "8e5f7fb5", + "metadata": {}, + "outputs": [], + "source": [ + "# vgg16_base_ckpt is the checkpoint generated from Step 3 : Training a baseline VGG16 model.\n", + "ckpt = torch.load(\"./vgg16_base_ckpt\")\n", + "modified_state_dict={}\n", + "for key, val in ckpt[\"model_state_dict\"].items():\n", + " # Remove 'module.' from the key names\n", + " if key.startswith('module'):\n", + " modified_state_dict[key[7:]] = val\n", + " else:\n", + " modified_state_dict[key] = val\n", + "\n", + "# Load the pre-trained checkpoint\n", + "qat_model.load_state_dict(modified_state_dict)\n", + "opt.load_state_dict(ckpt[\"opt_state_dict\"])" + ] + }, + { + "cell_type": "markdown", + "id": "8f8a74e8", + "metadata": {}, + "source": [ + "\n", + "## 5. Model Calibration" + ] + }, + { + "cell_type": "markdown", + "id": "d2a321f9", + "metadata": {}, + "source": [ + "The quantizer nodes introduced in the model around desired layers capture the dynamic range (min_value, max_value) that is observed by the layer. Calibration is the process of computing the dynamic range of these layers by passing calibration data, which is usually a subset of training or validation data. There are different ways of calibration: `max`, `histogram` and `entropy`. We use `max` calibration technique as it is simple and effective. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "039423dc", + "metadata": {}, + "outputs": [], + "source": [ + "def compute_amax(model, **kwargs):\n", + " # Load calib result\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " if isinstance(module._calibrator, calib.MaxCalibrator):\n", + " module.load_calib_amax()\n", + " else:\n", + " module.load_calib_amax(**kwargs)\n", + " print(F\"{name:40}: {module}\")\n", + " model.cuda()\n", + "\n", + "def collect_stats(model, data_loader, num_batches):\n", + " \"\"\"Feed data to the network and collect statistics\"\"\"\n", + " # Enable calibrators\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " module.disable_quant()\n", + " module.enable_calib()\n", + " else:\n", + " module.disable()\n", + "\n", + " # Feed data to the network for collecting stats\n", + " for i, (image, _) in tqdm(enumerate(data_loader), total=num_batches):\n", + " model(image.cuda())\n", + " if i >= num_batches:\n", + " break\n", + "\n", + " # Disable calibrators\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " module.enable_quant()\n", + " module.disable_calib()\n", + " else:\n", + " module.enable()\n", + "\n", + "def calibrate_model(model, model_name, data_loader, num_calib_batch, calibrator, hist_percentile, out_dir):\n", + " \"\"\"\n", + " Feed data to the network and calibrate.\n", + " Arguments:\n", + " model: classification model\n", + " model_name: name to use when creating state files\n", + " data_loader: calibration data set\n", + " num_calib_batch: amount of calibration passes to perform\n", + " calibrator: type of calibration to use (max/histogram)\n", + " hist_percentile: percentiles to be used for historgram calibration\n", + " out_dir: dir to save state files in\n", + " \"\"\"\n", + "\n", + " if num_calib_batch > 0:\n", + " print(\"Calibrating model\")\n", + " with torch.no_grad():\n", + " collect_stats(model, data_loader, num_calib_batch)\n", + "\n", + " if not calibrator == \"histogram\":\n", + " compute_amax(model, method=\"max\")\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-max-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)\n", + " else:\n", + " for percentile in hist_percentile:\n", + " print(F\"{percentile} percentile calibration\")\n", + " compute_amax(model, method=\"percentile\")\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-percentile-{percentile}-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)\n", + "\n", + " for method in [\"mse\", \"entropy\"]:\n", + " print(F\"{method} calibration\")\n", + " compute_amax(model, method=method)\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-{method}-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "78504a6f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calibrating model\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|███████████████████████████████████████████████████████| 32/32 [00:00<00:00, 96.04it/s]\n", + "WARNING: Logging before flag parsing goes to stderr.\n", + "W1109 04:01:43.512364 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.513354 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.514046 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.514638 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.515270 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.515859 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.516441 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.517009 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.517600 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.518167 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.518752 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.519333 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.519911 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.520473 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.521038 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.521596 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.522170 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.522742 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.523360 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.523957 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.524581 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525059 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525366 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525675 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525962 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526257 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526566 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526885 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527188 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527489 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527792 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528097 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528387 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528834 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.529163 139704147265344 tensor_quantizer.py:238] Call .cuda() if running on GPU after loading calibrated amax.\n", + "W1109 04:01:43.532748 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).\n", + "W1109 04:01:43.533468 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.534033 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).\n", + "W1109 04:01:43.534684 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.535320 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).\n", + "W1109 04:01:43.535983 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.536569 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).\n", + "W1109 04:01:43.537248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.537833 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.538480 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.539074 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.539724 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.540307 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.540952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.541534 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.542075 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.542596 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.543248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.543719 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.544424 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.544952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.545530 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.546114 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.546713 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.547292 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.547902 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.548453 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.549015 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).\n", + "W1109 04:01:43.549665 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.550436 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).\n", + "W1109 04:01:43.551925 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.553105 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([10, 1]).\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "features.0._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=2.7537 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.0._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0263, 2.7454](64) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.3._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=27.5676 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.3._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0169, 1.8204](64) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.7._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=15.2002 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.7._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0493, 1.3207](128) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.10._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=7.7376 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.10._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0163, 0.9624](128) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.14._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=8.8351 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.14._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0622, 0.8791](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.17._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=12.5746 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.17._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0505, 0.5117](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.20._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=9.7203 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.20._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0296, 0.5335](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.24._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=8.9367 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.24._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0220, 0.3763](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.27._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=6.6539 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.27._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0151, 0.1777](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.30._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=3.7099 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.30._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0087, 0.1906](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.34._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=4.0491 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.34._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0106, 0.1971](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.37._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=2.1531 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.37._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0070, 0.2305](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.40._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=3.3631 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.40._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0023, 0.4726](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "avgpool._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.0._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.0._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0026, 0.5320](4096) calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.3._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=6.6733 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.3._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0018, 0.5172](4096) calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.6._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=9.4352 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.6._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.3877, 0.5620](10) calibrator=MaxCalibrator scale=1.0 quant)\n" + ] + } + ], + "source": [ + "#Calibrate the model using max calibration technique.\n", + "with torch.no_grad():\n", + " calibrate_model(\n", + " model=qat_model,\n", + " model_name=\"vgg16\",\n", + " data_loader=training_dataloader,\n", + " num_calib_batch=32,\n", + " calibrator=\"max\",\n", + " hist_percentile=[99.9, 99.99, 99.999, 99.9999],\n", + " out_dir=\"./\")" + ] + }, + { + "cell_type": "markdown", + "id": "1aa0c109", + "metadata": {}, + "source": [ + "\n", + "## 6. Quantization Aware Training" + ] + }, + { + "cell_type": "markdown", + "id": "9fe8ec11", + "metadata": {}, + "source": [ + "In this phase, we finetune the model weights and leave the quantizer node values frozen. The dynamic ranges for each layer obtained from the calibration are kept constant while the weights of the model are finetuned to be close to the accuracy of original FP32 model (model without quantizer nodes) is preserved. Usually the finetuning of QAT model should be quick compared to the full training of the original model. Use QAT to fine-tune for around 10% of the original training schedule with an annealing learning-rate. Please refer to Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT for detailed recommendations. For this VGG model, it is enough to finetune for 1 epoch to get acceptable accuracy. \n", + "During finetuning with QAT, the quantization is applied as a composition of `max`, `clamp`, `round` and `mul` ops. \n", + "```\n", + "# amax is absolute maximum value for an input\n", + "# The upper bound for integer quantization (127 for int8)\n", + "max_bound = torch.tensor((2.0**(num_bits - 1 + int(unsigned))) - 1.0, device=amax.device)\n", + "scale = max_bound / amax\n", + "outputs = torch.clamp((inputs * scale).round_(), min_bound, max_bound)\n", + "```\n", + "tensor_quant function in `pytorch_quantization` toolkit is responsible for the above tensor quantization. Usually, per channel quantization is recommended for weights, while per tensor quantization is recommended for activations in a network.\n", + "During inference, we use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` to perform quantization as this is easier to convert into corresponding TensorRT operators. Please refer to next sections for more details on how these operators are exported in torchscript and converted in Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "1f28d228", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Updating learning rate: 0.1\n", + "Epoch: [ 1 / 1] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 2.635\n", + "Batch: [ 1000 | 1563] loss: 2.655\n", + "Batch: [ 1500 | 1563] loss: 2.646\n", + "Test Loss: 0.03291 Test Acc: 82.98%\n", + "Checkpoint saved\n" + ] + } + ], + "source": [ + "# Finetune the QAT model for 1 epoch\n", + "num_epochs=1\n", + "for epoch in range(num_epochs):\n", + " adjust_lr(opt, epoch)\n", + " print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state[\"lr\"]))\n", + "\n", + " train(qat_model, training_dataloader, crit, opt, epoch)\n", + " test_loss, test_acc = test(qat_model, testing_dataloader, crit, epoch)\n", + "\n", + " print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n", + " \n", + "save_checkpoint({'epoch': epoch + 1,\n", + " 'model_state_dict': qat_model.state_dict(),\n", + " 'acc': test_acc,\n", + " 'opt_state_dict': opt.state_dict(),\n", + " 'state': state},\n", + " ckpt_path=\"vgg16_qat_ckpt\")" + ] + }, + { + "cell_type": "markdown", + "id": "7a4dcaa2", + "metadata": {}, + "source": [ + "\n", + "## 7. Export to Torchscript\n", + "Export the model to Torch script. Trace the model and convert it into torchscript for deployment. To learn more about Torchscript, please refer to https://pytorch.org/docs/stable/jit.html. Setting `quant_nn.TensorQuantizer.use_fb_fake_quant = True` enables the QAT model to use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` operators instead of `tensor_quant` function to export quantization operators. In torchscript, they are represented as `aten::fake_quantize_per_tensor_affine` and `aten::fake_quantize_per_channel_affine`. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3d34f526", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "E1109 04:02:37.101168 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.102248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.107194 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.107625 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.115269 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.115740 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.117969 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.118358 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.126382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.126834 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.128674 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.129518 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.135453 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.135936 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.137858 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.138366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.145539 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.146053 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.147871 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.148353 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.154252 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.154685 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.156558 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.157159 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.163197 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.163676 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.165549 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.165991 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.173305 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.173926 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.176034 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.176697 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.182843 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.183426 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.185377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.185962 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.191966 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.192424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.194325 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.194817 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.201988 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.202665 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.204763 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.205461 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.211393 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.211987 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.213899 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.214450 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.220892 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.221533 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.223519 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.224037 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.233809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.234434 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.238212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.239042 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.241022 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.241654 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.247820 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.248445 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.250366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.250959 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.257248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.257854 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.259968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.260660 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "W1109 04:02:37.268160 139704147265344 tensor_quantizer.py:280] Use Pytorch's native experimental fake quantization.\n", + "/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:285: TracerWarning: Converting a tensor to a Python number might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " inputs, amax.item() / bound, 0,\n", + "/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:291: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " quant_dim = list(amax.shape).index(list(amax_sequeeze.shape)[0])\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "E1109 04:02:37.329273 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.330212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.332529 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.333365 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.339547 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.340248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.342257 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.342890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.350619 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.351372 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.353470 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.354121 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.360090 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.360806 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.362803 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.363274 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.370369 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.371057 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.373071 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.373766 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.379890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.380538 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.382532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.383128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.389077 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.389760 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.391815 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.392399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.399809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.400472 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.402399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.402939 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.408818 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.409424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.411513 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.412097 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.418537 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.419128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.421343 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.421946 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.429382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.430156 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.432259 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.433079 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.439297 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.440027 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.442149 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.442826 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.449377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.449968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.452122 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.452754 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.462532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.463295 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.466963 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.467725 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.469692 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.470336 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.476204 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.476738 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.478809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.479375 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.485666 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.486219 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.488416 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.488986 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n" + ] + } + ], + "source": [ + "quant_nn.TensorQuantizer.use_fb_fake_quant = True\n", + "with torch.no_grad():\n", + " data = iter(testing_dataloader)\n", + " images, _ = data.next()\n", + " jit_model = torch.jit.trace(qat_model, images.to(\"cuda\"))\n", + " torch.jit.save(jit_model, \"trained_vgg16_qat.jit.pt\")" + ] + }, + { + "cell_type": "markdown", + "id": "7341418a", + "metadata": {}, + "source": [ + "\n", + "## 8. Inference using Torch-TensorRT\n", + "In this phase, we run the exported torchscript graph of VGG QAT using Torch-TensorRT. Torch-TensorRT is a Pytorch-TensorRT compiler which converts Torchscript graphs into TensorRT. TensorRT 8.0 supports inference of quantization aware trained models and introduces new APIs; `QuantizeLayer` and `DequantizeLayer`. We can observe the entire VGG QAT graph quantization nodes from the debug log of Torch-TensorRT. To enable debug logging, you can set `torch_tensorrt.logging.set_reportable_log_level(torch_tensorrt.logging.Level.Debug)`. For example, `QuantConv2d` layer from `pytorch_quantization` toolkit is represented as follows in Torchscript\n", + "```\n", + "%quant_input : Tensor = aten::fake_quantize_per_tensor_affine(%x, %636, %637, %638, %639)\n", + "%quant_weight : Tensor = aten::fake_quantize_per_channel_affine(%394, %640, %641, %637, %638, %639)\n", + "%input.2 : Tensor = aten::_convolution(%quant_input, %quant_weight, %395, %687, %688, %689, %643, %690, %642, %643, %643, %644, %644)\n", + "```\n", + "`aten::fake_quantize_per_*_affine` is converted into `QuantizeLayer` + `DequantizeLayer` in Torch-TensorRT internally. Please refer to quantization op converters in Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "aa7495e0", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Cannot infer input type from calcuations in graph for input x.2. Assuming it is Float32. If not, specify input type explicity\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Detected invalid timing cache, setup a local cache instead\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VGG QAT accuracy using TensorRT: 82.97%\n" + ] + } + ], + "source": [ + "qat_model = torch.jit.load(\"trained_vgg16_qat.jit.pt\").eval()\n", + "\n", + "compile_spec = {\"inputs\": [torch_tensorrt.Input([16, 3, 32, 32])],\n", + " \"enabled_precisions\": torch.int8,\n", + " }\n", + "trt_mod = torch_tensorrt.compile(qat_model, **compile_spec)\n", + "\n", + "test_loss, test_acc = test(trt_mod, testing_dataloader, crit, 0)\n", + "print(\"VGG QAT accuracy using TensorRT: {:.2f}%\".format(100 * test_acc))" + ] + }, + { + "cell_type": "markdown", + "id": "9df5a90e", + "metadata": {}, + "source": [ + "### Performance benchmarking" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "9eb2cd2d", + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "# Helper function to benchmark the model\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " output = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%100==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output shape:\", output.shape)\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "5c2514ae", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, avg batch time 4.83 ms\n", + "Iteration 200/1000, avg batch time 4.83 ms\n", + "Iteration 300/1000, avg batch time 4.83 ms\n", + "Iteration 400/1000, avg batch time 4.83 ms\n", + "Iteration 500/1000, avg batch time 4.83 ms\n", + "Iteration 600/1000, avg batch time 4.83 ms\n", + "Iteration 700/1000, avg batch time 4.83 ms\n", + "Iteration 800/1000, avg batch time 4.83 ms\n", + "Iteration 900/1000, avg batch time 4.83 ms\n", + "Iteration 1000/1000, avg batch time 4.83 ms\n", + "Input shape: torch.Size([16, 3, 32, 32])\n", + "Output shape: torch.Size([16, 10])\n", + "Average batch time: 4.83 ms\n" + ] + } + ], + "source": [ + "benchmark(jit_model, input_shape=(16, 3, 32, 32))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "c5378ed6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, avg batch time 1.87 ms\n", + "Iteration 200/1000, avg batch time 1.84 ms\n", + "Iteration 300/1000, avg batch time 1.85 ms\n", + "Iteration 400/1000, avg batch time 1.83 ms\n", + "Iteration 500/1000, avg batch time 1.82 ms\n", + "Iteration 600/1000, avg batch time 1.81 ms\n", + "Iteration 700/1000, avg batch time 1.81 ms\n", + "Iteration 800/1000, avg batch time 1.80 ms\n", + "Iteration 900/1000, avg batch time 1.80 ms\n", + "Iteration 1000/1000, avg batch time 1.79 ms\n", + "Input shape: torch.Size([16, 3, 32, 32])\n", + "Output shape: torch.Size([16, 10])\n", + "Average batch time: 1.79 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_mod, input_shape=(16, 3, 32, 32))" + ] + }, + { + "cell_type": "markdown", + "id": "d6a5ec1c", + "metadata": {}, + "source": [ + "\n", + "## 9. References\n", + "* Very Deep Convolution Networks for large scale Image Recognition\n", + "* Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT\n", + "* QAT workflow for VGG16\n", + "* Deploying VGG QAT model in C++ using Torch-TensorRT\n", + "* Pytorch-quantization toolkit from NVIDIA\n", + "* Pytorch quantization toolkit userguide\n", + "* Quantization basics" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.1.1/_sources/_cpp_api/class_view_hierarchy.rst.txt b/docs/v1.1.1/_sources/_cpp_api/class_view_hierarchy.rst.txt new file mode 100644 index 0000000000..a75671077c --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/class_view_hierarchy.rst.txt @@ -0,0 +1,18 @@ + +Class Hierarchy +--------------- + + +.. raw:: html + + + +.. end raw html for treeView + + diff --git a/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1DataType.rst.txt b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1DataType.rst.txt new file mode 100644 index 0000000000..598f013466 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1DataType.rst.txt @@ -0,0 +1,16 @@ +.. _exhale_class_classtorch__tensorrt_1_1DataType: + +Class DataType +============== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::DataType + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst.txt b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst.txt new file mode 100644 index 0000000000..6801d4923d --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst.txt @@ -0,0 +1,22 @@ +.. _exhale_class_classtorch__tensorrt_1_1Device_1_1DeviceType: + +Class Device::DeviceType +======================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Nested Relationships +-------------------- + +This class is a nested type of :ref:`exhale_struct_structtorch__tensorrt_1_1Device`. + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::Device::DeviceType + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst.txt b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst.txt new file mode 100644 index 0000000000..5766b4f2e3 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst.txt @@ -0,0 +1,16 @@ +.. _exhale_class_classtorch__tensorrt_1_1TensorFormat: + +Class TensorFormat +================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::TensorFormat + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt new file mode 100644 index 0000000000..26bf9d15e1 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt @@ -0,0 +1,25 @@ +.. _exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator: + +Template Class Int8CacheCalibrator +================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Inheritance Relationships +------------------------- + +Base Type +********* + +- ``private Algorithm`` + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::ptq::Int8CacheCalibrator + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt new file mode 100644 index 0000000000..83c48844dc --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt @@ -0,0 +1,25 @@ +.. _exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8Calibrator: + +Template Class Int8Calibrator +============================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Inheritance Relationships +------------------------- + +Base Type +********* + +- ``private Algorithm`` + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::ptq::Int8Calibrator + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst.txt b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst.txt new file mode 100644 index 0000000000..b082c992fc --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_define_macros_8h_1a18d295a837ac71add5578860b55e5502: + +Define STR +========== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: STR diff --git a/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst.txt b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst.txt new file mode 100644 index 0000000000..61f83274e0 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268: + +Define TORCH_TENSORRT_PATCH_VERSION +=================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCH_TENSORRT_PATCH_VERSION diff --git a/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst.txt b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst.txt new file mode 100644 index 0000000000..ae5c6d19a5 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e: + +Define TORCH_TENSORRT_MAJOR_VERSION +=================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCH_TENSORRT_MAJOR_VERSION diff --git a/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst.txt b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst.txt new file mode 100644 index 0000000000..b484cc9995 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827: + +Define TORCH_TENSORRT_MINOR_VERSION +=================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCH_TENSORRT_MINOR_VERSION diff --git a/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst.txt b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst.txt new file mode 100644 index 0000000000..8a9bb4df48 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b: + +Define TORCHTRT_API +=================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCHTRT_API diff --git a/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst.txt b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst.txt new file mode 100644 index 0000000000..cf8b949284 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da: + +Define XSTR +=========== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: XSTR diff --git a/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst.txt b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst.txt new file mode 100644 index 0000000000..d2272d62b7 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_define_macros_8h_1ad19939408f7be171a74a89928b36eb59: + +Define TORCHTRT_HIDDEN +====================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCHTRT_HIDDEN diff --git a/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst.txt b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst.txt new file mode 100644 index 0000000000..3e2aae2ad6 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883: + +Define TORCH_TENSORRT_VERSION +============================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCH_TENSORRT_VERSION diff --git a/docs/v1.1.1/_sources/_cpp_api/dir_cpp.rst.txt b/docs/v1.1.1/_sources/_cpp_api/dir_cpp.rst.txt new file mode 100644 index 0000000000..f09e39c518 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/dir_cpp.rst.txt @@ -0,0 +1,16 @@ +.. _dir_cpp: + + +Directory cpp +============= + + +*Directory path:* ``cpp`` + +Subdirectories +-------------- + +- :ref:`dir_cpp_include` + + + diff --git a/docs/v1.1.1/_sources/_cpp_api/dir_cpp_include.rst.txt b/docs/v1.1.1/_sources/_cpp_api/dir_cpp_include.rst.txt new file mode 100644 index 0000000000..e262b4a9af --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/dir_cpp_include.rst.txt @@ -0,0 +1,20 @@ +.. _dir_cpp_include: + + +Directory include +================= + + +|exhale_lsh| :ref:`Parent directory ` (``cpp``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +*Directory path:* ``cpp/include`` + +Subdirectories +-------------- + +- :ref:`dir_cpp_include_torch_tensorrt` + + + diff --git a/docs/v1.1.1/_sources/_cpp_api/dir_cpp_include_torch_tensorrt.rst.txt b/docs/v1.1.1/_sources/_cpp_api/dir_cpp_include_torch_tensorrt.rst.txt new file mode 100644 index 0000000000..e0b3e53106 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/dir_cpp_include_torch_tensorrt.rst.txt @@ -0,0 +1,23 @@ +.. _dir_cpp_include_torch_tensorrt: + + +Directory tensorrt +================== + + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +*Directory path:* ``cpp/include/torch_tensorrt`` + + +Files +----- + +- :ref:`file_cpp_include_torch_tensorrt_logging.h` +- :ref:`file_cpp_include_torch_tensorrt_macros.h` +- :ref:`file_cpp_include_torch_tensorrt_ptq.h` +- :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + diff --git a/docs/v1.1.1/_sources/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst.txt b/docs/v1.1.1/_sources/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst.txt new file mode 100644 index 0000000000..9b1b980055 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558: + +Enum Level +========== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Enum Documentation +------------------ + + +.. doxygenenum:: torch_tensorrt::logging::Level diff --git a/docs/v1.1.1/_sources/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst.txt b/docs/v1.1.1/_sources/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst.txt new file mode 100644 index 0000000000..12c62bfb2c --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb: + +Enum EngineCapability +===================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Enum Documentation +------------------ + + +.. doxygenenum:: torch_tensorrt::EngineCapability diff --git a/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst.txt b/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst.txt new file mode 100644 index 0000000000..ea89d38038 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst.txt @@ -0,0 +1,80 @@ + +.. _file_cpp_include_torch_tensorrt_logging.h: + +File logging.h +============== + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include/torch_tensorrt``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. contents:: Contents + :local: + :backlinks: none + +Definition (``cpp/include/torch_tensorrt/logging.h``) +----------------------------------------------------- + + +.. toctree:: + :maxdepth: 1 + + program_listing_file_cpp_include_torch_tensorrt_logging.h.rst + + + + + +Includes +-------- + + +- ``string`` + +- ``torch_tensorrt/macros.h`` (:ref:`file_cpp_include_torch_tensorrt_macros.h`) + + + +Included By +----------- + + +- :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt` + +- :ref:`namespace_torch_tensorrt__logging` + + +Enums +----- + + +- :ref:`exhale_enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558` + + +Functions +--------- + + +- :ref:`exhale_function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a` + +- :ref:`exhale_function_logging_8h_1a0593f776f469c20469e2f729fc7861a3` + +- :ref:`exhale_function_logging_8h_1a0c012cb374addd90eb1f42eaec570650` + +- :ref:`exhale_function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8` + +- :ref:`exhale_function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5` + +- :ref:`exhale_function_logging_8h_1af8f3443813315af7901903d25dd495cc` + +- :ref:`exhale_function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2` + diff --git a/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst.txt b/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst.txt new file mode 100644 index 0000000000..326995993e --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst.txt @@ -0,0 +1,69 @@ + +.. _file_cpp_include_torch_tensorrt_macros.h: + +File macros.h +============= + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include/torch_tensorrt``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. contents:: Contents + :local: + :backlinks: none + +Definition (``cpp/include/torch_tensorrt/macros.h``) +---------------------------------------------------- + + +.. toctree:: + :maxdepth: 1 + + program_listing_file_cpp_include_torch_tensorrt_macros.h.rst + + + + + + + +Included By +----------- + + +- :ref:`file_cpp_include_torch_tensorrt_logging.h` + +- :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt` + +- :ref:`namespace_torch_tensorrt__torchscript` + + +Defines +------- + + +- :ref:`exhale_define_macros_8h_1a18d295a837ac71add5578860b55e5502` + +- :ref:`exhale_define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e` + +- :ref:`exhale_define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827` + +- :ref:`exhale_define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268` + +- :ref:`exhale_define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883` + +- :ref:`exhale_define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b` + +- :ref:`exhale_define_macros_8h_1ad19939408f7be171a74a89928b36eb59` + +- :ref:`exhale_define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da` + diff --git a/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst.txt b/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst.txt new file mode 100644 index 0000000000..074de6eb5e --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst.txt @@ -0,0 +1,82 @@ + +.. _file_cpp_include_torch_tensorrt_ptq.h: + +File ptq.h +========== + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include/torch_tensorrt``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. contents:: Contents + :local: + :backlinks: none + +Definition (``cpp/include/torch_tensorrt/ptq.h``) +------------------------------------------------- + + +.. toctree:: + :maxdepth: 1 + + program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst + + + + + +Includes +-------- + + +- ``NvInfer.h`` + +- ``fstream`` + +- ``iostream`` + +- ``iterator`` + +- ``memory`` + +- ``sstream`` + +- ``string`` + +- ``torch/torch.h`` + +- ``torch_tensorrt/logging.h`` (:ref:`file_cpp_include_torch_tensorrt_logging.h`) + +- ``vector`` + + + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt` + +- :ref:`namespace_torch_tensorrt__ptq` + + +Classes +------- + + +- :ref:`exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator` + +- :ref:`exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8Calibrator` + + +Functions +--------- + + +- :ref:`exhale_function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa` + +- :ref:`exhale_function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039` + diff --git a/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt b/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt new file mode 100644 index 0000000000..a81343d773 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt @@ -0,0 +1,101 @@ + +.. _file_cpp_include_torch_tensorrt_torch_tensorrt.h: + +File torch_tensorrt.h +===================== + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include/torch_tensorrt``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. contents:: Contents + :local: + :backlinks: none + +Definition (``cpp/include/torch_tensorrt/torch_tensorrt.h``) +------------------------------------------------------------ + + +.. toctree:: + :maxdepth: 1 + + program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst + + + + + +Includes +-------- + + +- ``cuda_runtime.h`` + +- ``iostream`` + +- ``memory`` + +- ``set`` + +- ``string`` + +- ``torch_tensorrt/macros.h`` (:ref:`file_cpp_include_torch_tensorrt_macros.h`) + +- ``vector`` + + + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt` + +- :ref:`namespace_torch_tensorrt__torchscript` + + +Classes +------- + + +- :ref:`exhale_struct_structtorch__tensorrt_1_1Device` + +- :ref:`exhale_struct_structtorch__tensorrt_1_1Input` + +- :ref:`exhale_struct_structtorch__tensorrt_1_1torchscript_1_1CompileSpec` + +- :ref:`exhale_class_classtorch__tensorrt_1_1DataType` + +- :ref:`exhale_class_classtorch__tensorrt_1_1Device_1_1DeviceType` + +- :ref:`exhale_class_classtorch__tensorrt_1_1TensorFormat` + + +Enums +----- + + +- :ref:`exhale_enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb` + + +Functions +--------- + + +- :ref:`exhale_function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1` + +- :ref:`exhale_function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528` + +- :ref:`exhale_function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384` + +- :ref:`exhale_function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797` + +- :ref:`exhale_function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9` + +- :ref:`exhale_function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2` + +- :ref:`exhale_function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef` + diff --git a/docs/v1.1.1/_sources/_cpp_api/file_view_hierarchy.rst.txt b/docs/v1.1.1/_sources/_cpp_api/file_view_hierarchy.rst.txt new file mode 100644 index 0000000000..c47d5aa483 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/file_view_hierarchy.rst.txt @@ -0,0 +1,18 @@ + +File Hierarchy +-------------- + + +.. raw:: html + + + +.. end raw html for treeView + + diff --git a/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst.txt new file mode 100644 index 0000000000..4ab7c0a286 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_logging_8h_1a0593f776f469c20469e2f729fc7861a3: + +Function torch_tensorrt::logging::get_logging_prefix +==================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::get_logging_prefix() diff --git a/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst.txt new file mode 100644 index 0000000000..42c0fbf1e8 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_logging_8h_1a0c012cb374addd90eb1f42eaec570650: + +Function torch_tensorrt::logging::get_reportable_log_level +========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::get_reportable_log_level() diff --git a/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt new file mode 100644 index 0000000000..df147251cb --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a: + +Function torch_tensorrt::logging::get_is_colored_output_on +========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::get_is_colored_output_on() diff --git a/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst.txt new file mode 100644 index 0000000000..c8488983b5 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2: + +Function torch_tensorrt::logging::set_reportable_log_level +========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::set_reportable_log_level(Level) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt new file mode 100644 index 0000000000..95eeb31aad --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8: + +Function torch_tensorrt::logging::log +===================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::log(Level, std::string) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst.txt new file mode 100644 index 0000000000..6057ee413a --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5: + +Function torch_tensorrt::logging::set_is_colored_output_on +========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::set_is_colored_output_on(bool) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst.txt new file mode 100644 index 0000000000..9c9efdd33c --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_logging_8h_1af8f3443813315af7901903d25dd495cc: + +Function torch_tensorrt::logging::set_logging_prefix +==================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::set_logging_prefix(std::string) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst.txt new file mode 100644 index 0000000000..5d9188270f --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c: + +Template Function torch_tensorrt::ptq::make_int8_cache_calibrator +================================================================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::ptq::make_int8_cache_calibrator(const std::string&) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt new file mode 100644 index 0000000000..9551f48bb6 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178: + +Template Function torch_tensorrt::ptq::make_int8_calibrator +=========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::ptq::make_int8_calibrator(DataLoader, const std::string&, bool) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst.txt new file mode 100644 index 0000000000..caa9ad6226 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039: + +Template Function torch_tensorrt::ptq::make_int8_calibrator +=========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::ptq::make_int8_calibrator(DataLoader, const std::string&, bool) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst.txt new file mode 100644 index 0000000000..477c2655ae --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa: + +Template Function torch_tensorrt::ptq::make_int8_cache_calibrator +================================================================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::ptq::make_int8_cache_calibrator(const std::string&) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt new file mode 100644 index 0000000000..0fed46560f --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797: + +Function torch_tensorrt::torchscript::check_method_operator_support +=================================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::torchscript::check_method_operator_support(const torch::jit::Module&, std::string) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt new file mode 100644 index 0000000000..082a6e72f9 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9: + +Function torch_tensorrt::torchscript::compile +============================================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::torchscript::compile(const torch::jit::Module&, CompileSpec) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst.txt new file mode 100644 index 0000000000..4bfdb2fec6 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef: + +Function torch_tensorrt::torchscript::embed_engine_in_new_module +================================================================ + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::torchscript::embed_engine_in_new_module(const std::string&, Device) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst.txt new file mode 100644 index 0000000000..72191a3cb3 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528: + +Function torch_tensorrt::get_build_info +======================================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::get_build_info() diff --git a/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt new file mode 100644 index 0000000000..e37176bda0 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384: + +Function torch_tensorrt::set_device +=================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::set_device(const int) diff --git a/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt new file mode 100644 index 0000000000..bd396383cc --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1: + +Function torch_tensorrt::dump_build_info +======================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::dump_build_info() diff --git a/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt new file mode 100644 index 0000000000..656639b05d --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2: + +Function torch_tensorrt::torchscript::convert_method_to_trt_engine +================================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::torchscript::convert_method_to_trt_engine(const torch::jit::Module&, std::string, CompileSpec) diff --git a/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt.rst.txt b/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt.rst.txt new file mode 100644 index 0000000000..94e153b999 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt.rst.txt @@ -0,0 +1,57 @@ + +.. _namespace_torch_tensorrt: + +Namespace torch_tensorrt +======================== + + +.. contents:: Contents + :local: + :backlinks: none + + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt__logging` + +- :ref:`namespace_torch_tensorrt__ptq` + +- :ref:`namespace_torch_tensorrt__torchscript` + + +Classes +------- + + +- :ref:`exhale_struct_structtorch__tensorrt_1_1Device` + +- :ref:`exhale_struct_structtorch__tensorrt_1_1Input` + +- :ref:`exhale_class_classtorch__tensorrt_1_1DataType` + +- :ref:`exhale_class_classtorch__tensorrt_1_1Device_1_1DeviceType` + +- :ref:`exhale_class_classtorch__tensorrt_1_1TensorFormat` + + +Enums +----- + + +- :ref:`exhale_enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb` + + +Functions +--------- + + +- :ref:`exhale_function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1` + +- :ref:`exhale_function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528` + +- :ref:`exhale_function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384` diff --git a/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__logging.rst.txt b/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__logging.rst.txt new file mode 100644 index 0000000000..49f946f937 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__logging.rst.txt @@ -0,0 +1,39 @@ + +.. _namespace_torch_tensorrt__logging: + +Namespace torch_tensorrt::logging +================================= + + +.. contents:: Contents + :local: + :backlinks: none + + + + + +Enums +----- + + +- :ref:`exhale_enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558` + + +Functions +--------- + + +- :ref:`exhale_function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a` + +- :ref:`exhale_function_logging_8h_1a0593f776f469c20469e2f729fc7861a3` + +- :ref:`exhale_function_logging_8h_1a0c012cb374addd90eb1f42eaec570650` + +- :ref:`exhale_function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8` + +- :ref:`exhale_function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5` + +- :ref:`exhale_function_logging_8h_1af8f3443813315af7901903d25dd495cc` + +- :ref:`exhale_function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2` diff --git a/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__ptq.rst.txt b/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__ptq.rst.txt new file mode 100644 index 0000000000..b20546a725 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__ptq.rst.txt @@ -0,0 +1,31 @@ + +.. _namespace_torch_tensorrt__ptq: + +Namespace torch_tensorrt::ptq +============================= + + +.. contents:: Contents + :local: + :backlinks: none + + + + + +Classes +------- + + +- :ref:`exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator` + +- :ref:`exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8Calibrator` + + +Functions +--------- + + +- :ref:`exhale_function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa` + +- :ref:`exhale_function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039` diff --git a/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__torchscript.rst.txt b/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__torchscript.rst.txt new file mode 100644 index 0000000000..b56b3f738e --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/namespace_torch_tensorrt__torchscript.rst.txt @@ -0,0 +1,33 @@ + +.. _namespace_torch_tensorrt__torchscript: + +Namespace torch_tensorrt::torchscript +===================================== + + +.. contents:: Contents + :local: + :backlinks: none + + + + + +Classes +------- + + +- :ref:`exhale_struct_structtorch__tensorrt_1_1torchscript_1_1CompileSpec` + + +Functions +--------- + + +- :ref:`exhale_function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797` + +- :ref:`exhale_function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9` + +- :ref:`exhale_function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2` + +- :ref:`exhale_function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef` diff --git a/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst.txt b/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst.txt new file mode 100644 index 0000000000..af68cbb678 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst.txt @@ -0,0 +1,51 @@ + +.. _program_listing_file_cpp_include_torch_tensorrt_logging.h: + +Program Listing for File logging.h +================================== + +|exhale_lsh| :ref:`Return to documentation for file ` (``cpp/include/torch_tensorrt/logging.h``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. code-block:: cpp + + /* + * Copyright (c) NVIDIA Corporation. + * All rights reserved. + * + * This library is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + #pragma once + + #include + #include "torch_tensorrt/macros.h" + + namespace torch_tensorrt { + namespace logging { + enum Level { + kINTERNAL_ERROR, + kERROR, + kWARNING, + kINFO, + kDEBUG, + kGRAPH, + }; + + // Are these ones necessary for the user? + TORCHTRT_API std::string get_logging_prefix(); + TORCHTRT_API void set_logging_prefix(std::string prefix); + + TORCHTRT_API void set_reportable_log_level(Level lvl); + + TORCHTRT_API void set_is_colored_output_on(bool colored_output_on); + + TORCHTRT_API Level get_reportable_log_level(); + + TORCHTRT_API bool get_is_colored_output_on(); + + // Dont know if we want this? + TORCHTRT_API void log(Level lvl, std::string msg); + } // namespace logging + } // namespace torch_tensorrt diff --git a/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst.txt b/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst.txt new file mode 100644 index 0000000000..e64ddc299b --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst.txt @@ -0,0 +1,46 @@ + +.. _program_listing_file_cpp_include_torch_tensorrt_macros.h: + +Program Listing for File macros.h +================================= + +|exhale_lsh| :ref:`Return to documentation for file ` (``cpp/include/torch_tensorrt/macros.h``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. code-block:: cpp + + /* + * Copyright (c) NVIDIA Corporation. + * All rights reserved. + * + * This library is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + #pragma once + + #if defined(__GNUC__) + #define TORCHTRT_API __attribute__((__visibility__("default"))) + #define TORCHTRT_HIDDEN __attribute__((__visibility__("hidden"))) + #else + #define TORCHTRT_API + #define TORCHTRT_HIDDEN + #endif // defined(__GNUC__) + + // Does this need to be gaurded or something? + #define XSTR(x) #x + #define STR(x) XSTR(x) + + #define TORCH_TENSORRT_MAJOR_VERSION 1 + #define TORCH_TENSORRT_MINOR_VERSION 1 + #define TORCH_TENSORRT_PATCH_VERSION 0 + #define TORCH_TENSORRT_VERSION \ + STR(TORCH_TENSORRT_MAJOR_VERSION) \ + "." STR(TORCH_TENSORRT_MINOR_VERSION) "." STR(TORCH_TENSORRT_PATCH_VERSION) + + // Setup namespace aliases for ease of use + namespace torch_tensorrt { + namespace torchscript {} + namespace ts = torchscript; + } // namespace torch_tensorrt + namespace torchtrt = torch_tensorrt; diff --git a/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst.txt b/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst.txt new file mode 100644 index 0000000000..12c51674f3 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst.txt @@ -0,0 +1,189 @@ + +.. _program_listing_file_cpp_include_torch_tensorrt_ptq.h: + +Program Listing for File ptq.h +============================== + +|exhale_lsh| :ref:`Return to documentation for file ` (``cpp/include/torch_tensorrt/ptq.h``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. code-block:: cpp + + /* + * Copyright (c) NVIDIA Corporation. + * All rights reserved. + * + * This library is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + #pragma once + + #include + #include + #include + #include + #include + #include + #include + + #include "NvInfer.h" + #include "torch/torch.h" + #include "torch_tensorrt/logging.h" + + #ifndef DOXYGEN_SHOULD_SKIP_THIS + namespace nvinfer1 { + class IInt8Calibrator; + class IInt8EntropyCalibrator2; + } // namespace nvinfer1 + + namespace torch_tensorrt { + namespace ptq { + bool get_batch_impl(void* bindings[], const char* names[], int nbBindings, torch::Tensor& data); + } + } // namespace torch_tensorrt + #endif // DOXYGEN_SHOULD_SKIP_THIS + + namespace torch_tensorrt { + namespace ptq { + + template + class Int8Calibrator : Algorithm { + using DataLoader = typename DataLoaderUniquePtr::element_type; + using Batch = typename DataLoader::super::BatchType; + + public: + Int8Calibrator(DataLoaderUniquePtr dataloader, const std::string& cache_file_path, bool use_cache) + : dataloader_(dataloader.get()), cache_file_path_(cache_file_path), use_cache_(use_cache) { + for (auto batch : *dataloader_) { + batched_data_.push_back(batch.data); + } + it_ = batched_data_.begin(); + } + + int getBatchSize() const noexcept override { + // HACK: Torch-TensorRT only uses explict batch sizing, INT8 Calibrator does not + // work when reporting the batch size here and having explicity batching. + // So we just report batch size 1 (warnings will still be printed out). + return 1; + // return static_cast(dataloader_->options().batch_size); + } + + bool getBatch(void* bindings[], const char* names[], int nbBindings) noexcept override { + if (it_ != batched_data_.end()) { + auto status = get_batch_impl(bindings, names, nbBindings, *it_); + it_ = ++it_; + return status; + } else { + // Reset iterator if incase calibrator is going to be used again + it_ = batched_data_.begin(); + return false; + } + } + + const void* readCalibrationCache(size_t& length) noexcept override { + if (use_cache_) { + std::stringstream ss; + ss << "Reading Calibration Cache from " << cache_file_path_; + logging::log(logging::Level::kINFO, ss.str()); + + cache_.clear(); + std::ifstream input(cache_file_path_, std::ios::binary); + input >> std::noskipws; + if (input.good()) { + std::copy(std::istream_iterator(input), std::istream_iterator(), std::back_inserter(cache_)); + logging::log(logging::Level::kDEBUG, "Cache read"); + } + length = cache_.size(); + return length ? cache_.data() : nullptr; + } + return nullptr; + } + + void writeCalibrationCache(const void* cache, size_t length) noexcept override { + std::ofstream cache_file(cache_file_path_, std::ios::binary); + cache_file.write(reinterpret_cast(cache), length); + std::stringstream ss; + ss << "Saved Calibration Cache to " << cache_file_path_; + logging::log(logging::Level::kINFO, ss.str()); + } + + operator nvinfer1::IInt8Calibrator*() { + return reinterpret_cast(this); + } + + private: + DataLoader* dataloader_; + const std::string& cache_file_path_; + size_t cache_size_ = 0; + bool use_cache_; + std::vector cache_; + std::vector batched_data_; + std::vector::iterator it_; + }; + + template + class Int8CacheCalibrator : Algorithm { + public: + Int8CacheCalibrator(const std::string& cache_file_path) : cache_file_path_(cache_file_path) {} + + int getBatchSize() const noexcept override { + // HACK: Torch-TensorRT only uses explict batch sizing, INT8 Calibrator does not + // work when reporting the batch size here and having explicity batching. + // So we just report batch size 1 (warnings will still be printed out). + return 1; + } + + bool getBatch(void* bindings[], const char* names[], int nbBindings) noexcept override { + return false; + } + + const void* readCalibrationCache(size_t& length) noexcept override { + std::stringstream ss; + ss << "Reading Calibration Cache from " << cache_file_path_; + logging::log(logging::Level::kINFO, ss.str()); + + cache_.clear(); + std::ifstream input(cache_file_path_, std::ios::binary); + input >> std::noskipws; + if (input.good()) { + std::copy(std::istream_iterator(input), std::istream_iterator(), std::back_inserter(cache_)); + logging::log(logging::Level::kDEBUG, "Cache read"); + } + length = cache_.size(); + return length ? cache_.data() : nullptr; + } + + void writeCalibrationCache(const void* cache, size_t length) noexcept override { + std::ofstream cache_file(cache_file_path_, std::ios::binary); + cache_file.write(reinterpret_cast(cache), length); + std::stringstream ss; + ss << "Saved Calibration Cache to " << cache_file_path_; + logging::log(logging::Level::kINFO, ss.str()); + } + + operator nvinfer1::IInt8Calibrator*() { + return reinterpret_cast(this); + } + + private: + const std::string& cache_file_path_; + size_t cache_size_ = 0; + std::vector cache_; + }; + + template + TORCHTRT_API inline Int8Calibrator make_int8_calibrator( + DataLoader dataloader, + const std::string& cache_file_path, + bool use_cache) { + return Int8Calibrator(std::move(dataloader), cache_file_path, use_cache); + } + + template + TORCHTRT_API inline Int8CacheCalibrator make_int8_cache_calibrator(const std::string& cache_file_path) { + return Int8CacheCalibrator(cache_file_path); + } + + } // namespace ptq + } // namespace torch_tensorrt diff --git a/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt b/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt new file mode 100644 index 0000000000..500f4fb2e4 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt @@ -0,0 +1,281 @@ + +.. _program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h: + +Program Listing for File torch_tensorrt.h +========================================= + +|exhale_lsh| :ref:`Return to documentation for file ` (``cpp/include/torch_tensorrt/torch_tensorrt.h``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. code-block:: cpp + + /* + * Copyright (c) NVIDIA Corporation. + * All rights reserved. + * + * This library is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + + #pragma once + + #include + #include + #include + #include + #include + #include + + // Just include the .h? + #ifndef DOXYGEN_SHOULD_SKIP_THIS + namespace torch { + namespace jit { + struct Graph; + struct Module; + } // namespace jit + } // namespace torch + + namespace c10 { + enum class DeviceType : int8_t; + enum class ScalarType : int8_t; + template + class ArrayRef; + } // namespace c10 + + namespace nvinfer1 { + class IInt8Calibrator; + } + #endif // DOXYGEN_SHOULD_SKIP_THIS + + #include "torch_tensorrt/macros.h" + namespace torch_tensorrt { + class TORCHTRT_API DataType { + public: + enum Value : int8_t { + kFloat, + kHalf, + kChar, + kInt, + kBool, + kUnknown + }; + + DataType() = default; + constexpr DataType(Value t) : value(t) {} + DataType(c10::ScalarType t); + operator Value() const { + return value; + } + explicit operator bool() = delete; + constexpr bool operator==(DataType other) const { + return value == other.value; + } + constexpr bool operator==(DataType::Value other) const { + return value == other; + } + constexpr bool operator!=(DataType other) const { + return value != other.value; + } + constexpr bool operator!=(DataType::Value other) const { + return value != other; + } + + private: + friend std::ostream& operator<<(std::ostream& os, const DataType& dtype); + Value value; + }; + + struct Device { + class DeviceType { + public: + enum Value : int8_t { + kGPU, + kDLA, + }; + + DeviceType() = default; + constexpr DeviceType(Value t) : value(t) {} + DeviceType(c10::DeviceType t); + operator Value() const { + return value; + } + explicit operator bool() = delete; + constexpr bool operator==(DeviceType other) const { + return value == other.value; + } + constexpr bool operator!=(DeviceType other) const { + return value != other.value; + } + + private: + Value value; + }; + + DeviceType device_type; + + /* + * Target gpu id + */ + int64_t gpu_id; + + /* + * When using DLA core on NVIDIA AGX platforms gpu_id should be set as Xavier device + */ + int64_t dla_core; + + bool allow_gpu_fallback; + + Device() : device_type(DeviceType::kGPU), gpu_id(0), dla_core(0), allow_gpu_fallback(false) {} + }; + + enum class EngineCapability : int8_t { + kSTANDARD, + kSAFETY, + kDLA_STANDALONE, + }; + + class TORCHTRT_API TensorFormat { + public: + enum Value : int8_t { + kContiguous, + kChannelsLast, + kUnknown, + }; + + TensorFormat() = default; + constexpr TensorFormat(Value t) : value(t) {} + TensorFormat(at::MemoryFormat t); + operator Value() const { + return value; + } + explicit operator bool() = delete; + constexpr bool operator==(TensorFormat other) const { + return value == other.value; + } + constexpr bool operator==(TensorFormat::Value other) const { + return value == other; + } + constexpr bool operator!=(TensorFormat other) const { + return value != other.value; + } + constexpr bool operator!=(TensorFormat::Value other) const { + return value != other; + } + + private: + friend std::ostream& operator<<(std::ostream& os, const TensorFormat& format); + Value value; + }; + + struct TORCHTRT_API Input { + std::vector min_shape; + std::vector opt_shape; + std::vector max_shape; + std::vector shape; + DataType dtype; + TensorFormat format; + + Input(std::vector shape, TensorFormat format = TensorFormat::kContiguous); + + Input(std::vector shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous); + + Input(c10::ArrayRef shape, TensorFormat format = TensorFormat::kContiguous); + + Input(c10::ArrayRef shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous); + + Input( + std::vector min_shape, + std::vector opt_shape, + std::vector max_shape, + TensorFormat format = TensorFormat::kContiguous); + + Input( + std::vector min_shape, + std::vector opt_shape, + std::vector max_shape, + DataType dtype, + TensorFormat format = TensorFormat::kContiguous); + + Input( + c10::ArrayRef min_shape, + c10::ArrayRef opt_shape, + c10::ArrayRef max_shape, + TensorFormat format = TensorFormat::kContiguous); + + Input( + c10::ArrayRef min_shape, + c10::ArrayRef opt_shape, + c10::ArrayRef max_shape, + DataType dtype, + TensorFormat format = TensorFormat::kContiguous); + + Input(at::Tensor tensor); + + private: + friend std::ostream& operator<<(std::ostream& os, const Input& input); + bool input_is_dynamic; + }; + + TORCHTRT_API std::string get_build_info(); + + TORCHTRT_API void dump_build_info(); + + TORCHTRT_API void set_device(const int gpu_id); + + namespace torchscript { + struct TORCHTRT_API CompileSpec { + CompileSpec(std::vector> fixed_sizes); + + CompileSpec(std::vector> fixed_sizes); + + CompileSpec(std::vector inputs) : inputs(std::move(inputs)) {} + + // Defaults should reflect TensorRT defaults for BuilderConfig + + std::vector inputs; + + std::set enabled_precisions = {DataType::kFloat}; + + bool disable_tf32 = false; + + bool sparse_weights = false; + + bool refit = false; + + bool debug = false; + + bool truncate_long_and_double = false; + + Device device; + + EngineCapability capability = EngineCapability::kSTANDARD; + + uint64_t num_min_timing_iters = 2; + uint64_t num_avg_timing_iters = 1; + + uint64_t workspace_size = 0; + + nvinfer1::IInt8Calibrator* ptq_calibrator = nullptr; + + bool require_full_compilation = false; + + uint64_t min_block_size = 3; + + std::vector torch_executed_ops; + + std::vector torch_executed_modules; + }; + + TORCHTRT_API bool check_method_operator_support(const torch::jit::Module& module, std::string method_name); + + TORCHTRT_API torch::jit::Module compile(const torch::jit::Module& module, CompileSpec info); + + TORCHTRT_API std::string convert_method_to_trt_engine( + const torch::jit::Module& module, + std::string method_name, + CompileSpec info); + + TORCHTRT_API torch::jit::Module embed_engine_in_new_module(const std::string& engine, Device device); + } // namespace torchscript + } // namespace torch_tensorrt diff --git a/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1Device.rst.txt b/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1Device.rst.txt new file mode 100644 index 0000000000..78faa598ea --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1Device.rst.txt @@ -0,0 +1,26 @@ +.. _exhale_struct_structtorch__tensorrt_1_1Device: + +Struct Device +============= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Nested Relationships +-------------------- + + +Nested Types +************ + +- :ref:`exhale_class_classtorch__tensorrt_1_1Device_1_1DeviceType` + + +Struct Documentation +-------------------- + + +.. doxygenstruct:: torch_tensorrt::Device + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst.txt b/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst.txt new file mode 100644 index 0000000000..60bc3285c6 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst.txt @@ -0,0 +1,17 @@ +.. _exhale_struct_structtorch__tensorrt_1_1GraphInputs: + +Struct GraphInputs +================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Struct Documentation +-------------------- + + +.. doxygenstruct:: torch_tensorrt::GraphInputs + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1Input.rst.txt b/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1Input.rst.txt new file mode 100644 index 0000000000..9e7d6b81ed --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1Input.rst.txt @@ -0,0 +1,16 @@ +.. _exhale_struct_structtorch__tensorrt_1_1Input: + +Struct Input +============ + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Struct Documentation +-------------------- + + +.. doxygenstruct:: torch_tensorrt::Input + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst.txt b/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst.txt new file mode 100644 index 0000000000..64b2e06341 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst.txt @@ -0,0 +1,16 @@ +.. _exhale_struct_structtorch__tensorrt_1_1torchscript_1_1CompileSpec: + +Struct CompileSpec +================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Struct Documentation +-------------------- + + +.. doxygenstruct:: torch_tensorrt::torchscript::CompileSpec + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.1.1/_sources/_cpp_api/torch_tensort_cpp.rst.txt b/docs/v1.1.1/_sources/_cpp_api/torch_tensort_cpp.rst.txt new file mode 100644 index 0000000000..3ca004b7a2 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/torch_tensort_cpp.rst.txt @@ -0,0 +1,10 @@ + +Torch-TensorRT C++ API +====================== + +.. include:: class_view_hierarchy.rst + +.. include:: file_view_hierarchy.rst + +.. include:: unabridged_api.rst + diff --git a/docs/v1.1.1/_sources/_cpp_api/unabridged_api.rst.txt b/docs/v1.1.1/_sources/_cpp_api/unabridged_api.rst.txt new file mode 100644 index 0000000000..29689c465f --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/unabridged_api.rst.txt @@ -0,0 +1,213 @@ + +Full API +-------- + +Namespaces +********** + + +.. toctree:: + :maxdepth: 5 + + namespace_torch_tensorrt.rst + +.. toctree:: + :maxdepth: 5 + + namespace_torch_tensorrt__logging.rst + +.. toctree:: + :maxdepth: 5 + + namespace_torch_tensorrt__ptq.rst + +.. toctree:: + :maxdepth: 5 + + namespace_torch_tensorrt__torchscript.rst + +Classes and Structs +******************* + + +.. toctree:: + :maxdepth: 5 + + structtorch__tensorrt_1_1Device.rst + +.. toctree:: + :maxdepth: 5 + + structtorch__tensorrt_1_1Input.rst + +.. toctree:: + :maxdepth: 5 + + structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1DataType.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1Device_1_1DeviceType.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1TensorFormat.rst + +Enums +***** + + +.. toctree:: + :maxdepth: 5 + + enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst + +.. toctree:: + :maxdepth: 5 + + enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst + +Functions +********* + + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst + +.. toctree:: + :maxdepth: 5 + + function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst + +.. toctree:: + :maxdepth: 5 + + function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst + +Defines +******* + + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst diff --git a/docs/v1.1.1/_sources/_cpp_api/unabridged_orphan.rst.txt b/docs/v1.1.1/_sources/_cpp_api/unabridged_orphan.rst.txt new file mode 100644 index 0000000000..5789e581e8 --- /dev/null +++ b/docs/v1.1.1/_sources/_cpp_api/unabridged_orphan.rst.txt @@ -0,0 +1,48 @@ +:orphan: + + +Full API +======== + +Directories +*********** + + +.. toctree:: + :maxdepth: 5 + + dir_cpp.rst + +.. toctree:: + :maxdepth: 5 + + dir_cpp_include.rst + +.. toctree:: + :maxdepth: 5 + + dir_cpp_include_torch_tensorrt.rst + +Files +***** + + +.. toctree:: + :maxdepth: 5 + + file_cpp_include_torch_tensorrt_logging.h.rst + +.. toctree:: + :maxdepth: 5 + + file_cpp_include_torch_tensorrt_macros.h.rst + +.. toctree:: + :maxdepth: 5 + + file_cpp_include_torch_tensorrt_ptq.h.rst + +.. toctree:: + :maxdepth: 5 + + file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst diff --git a/docs/v1.1.1/_sources/_notebooks/CitriNet-example.ipynb.txt b/docs/v1.1.1/_sources/_notebooks/CitriNet-example.ipynb.txt new file mode 100644 index 0000000000..0573af0176 --- /dev/null +++ b/docs/v1.1.1/_sources/_notebooks/CitriNet-example.ipynb.txt @@ -0,0 +1,964 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - CitriNet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "[Citrinet](https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/main/asr/models.html#citrinet) is an acoustic model used for the speech to text recognition task. It is a version of [QuartzNet](https://arxiv.org/pdf/1910.10261.pdf) that extends [ContextNet](https://arxiv.org/pdf/2005.03191.pdf), utilizing subword encoding (via Word Piece tokenization) and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models.\n", + "\n", + "CitriNet models take in audio segments and transcribe them to letter, byte pair, or word piece sequences. \n", + "\n", + "\"alt\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [Download Citrinet model](#2)\n", + "1. [Create Torch-TensorRT modules](#3)\n", + "1. [Benchmark Torch-TensorRT models](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in [README](README.md) to prepare a Docker container, within which you can run this notebook. \n", + "This notebook assumes that you are within a Jupyter environment in a docker container with Torch-TensorRT installed, such as an NGC monthly release of `nvcr.io/nvidia/pytorch:-py3` (where `yy` indicates the last two numbers of a calendar year, and `mm` indicates the month in two-digit numerical form)\n", + "\n", + "Now that you are in the docker, the next step is to install the required dependencies." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (3.2)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease\n", + "Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease\n", + "Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease\n", + "Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease\n", + "Reading package lists... Done\n", + "Reading package lists... Done\n", + "Building dependency tree \n", + "Reading state information... Done\n", + "libsndfile1 is already the newest version (1.0.28-7ubuntu0.1).\n", + "ffmpeg is already the newest version (7:4.2.4-1ubuntu0.1).\n", + "0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: Cython in /opt/conda/lib/python3.8/site-packages (0.29.28)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: nemo_toolkit[all]==1.5.1 in /opt/conda/lib/python3.8/site-packages (1.5.1)\n", + "Requirement already satisfied: numpy>=1.18.2 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.22.3)\n", + "Requirement already satisfied: onnx>=1.7.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.10.1)\n", + "Requirement already satisfied: python-dateutil in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.8.2)\n", + "Requirement already satisfied: tqdm>=4.41.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.63.0)\n", + "Requirement already satisfied: sentencepiece<1.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.96)\n", + "Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)\n", + "Requirement already satisfied: numba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.53.1)\n", + "Requirement already satisfied: torch in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.12.0a0+2c916ef)\n", + "Requirement already satisfied: unidecode in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.4)\n", + "Requirement already satisfied: frozendict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.3.2)\n", + "Requirement already satisfied: wrapt in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.14.0)\n", + "Requirement already satisfied: scikit-learn in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.24.2)\n", + "Requirement already satisfied: ruamel.yaml in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.17.21)\n", + "Requirement already satisfied: pesq in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.3)\n", + "Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.13.0a0)\n", + "Requirement already satisfied: gdown in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: editdistance in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.6.0)\n", + "Requirement already satisfied: boto3 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.21.45)\n", + "Requirement already satisfied: isort[requirements]<5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.3.21)\n", + "Requirement already satisfied: hydra-core>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.2)\n", + "Requirement already satisfied: youtokentome>=1.0.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.0.6)\n", + "Requirement already satisfied: pytorch-lightning>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.1)\n", + "Requirement already satisfied: jieba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.42.1)\n", + "Requirement already satisfied: fasttext in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.2)\n", + "Requirement already satisfied: soundfile in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.10.3.post1)\n", + "Requirement already satisfied: kaldiio in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.17.2)\n", + "Requirement already satisfied: pangu in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.0.6.1)\n", + "Requirement already satisfied: kaldi-python-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.2.2)\n", + "Requirement already satisfied: parameterized in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.1)\n", + "Requirement already satisfied: h5py in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: rapidfuzz in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.10)\n", + "Requirement already satisfied: marshmallow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.15.0)\n", + "Requirement already satisfied: opencc in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.3)\n", + "Requirement already satisfied: braceexpand in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.7)\n", + "Requirement already satisfied: omegaconf>=2.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.2)\n", + "Requirement already satisfied: sphinx in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: pillow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (9.0.0)\n", + "Requirement already satisfied: wordninja==2.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: torch-stft in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.4)\n", + "Requirement already satisfied: sox in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.4.1)\n", + "Requirement already satisfied: librosa in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.1)\n", + "Requirement already satisfied: regex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2022.3.15)\n", + "Requirement already satisfied: sacrebleu[ja] in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: black==19.10b0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (19.10b0)\n", + "Requirement already satisfied: pydub in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.25.1)\n", + "Requirement already satisfied: sphinxcontrib-bibtex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.4.2)\n", + "Requirement already satisfied: inflect in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.5.2)\n", + "Requirement already satisfied: pyannote.core in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (21.3)\n", + "Requirement already satisfied: kaldi-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.4)\n", + "Requirement already satisfied: pyannote.metrics in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)\n", + "Requirement already satisfied: g2p-en in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.0)\n", + "Requirement already satisfied: matplotlib in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.5.1)\n", + "Requirement already satisfied: torchmetrics>=0.4.1rc0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.0)\n", + "Requirement already satisfied: nltk>=3.6.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.7)\n", + "Requirement already satisfied: pyyaml<6 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.4.1)\n", + "Requirement already satisfied: scipy in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.3)\n", + "Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (7.7.0)\n", + "Requirement already satisfied: pytest in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.2.5)\n", + "Requirement already satisfied: pandas in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.5)\n", + "Requirement already satisfied: pytest-runner in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.0.0)\n", + "Requirement already satisfied: transformers>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.18.0)\n", + "Requirement already satisfied: sacremoses>=0.0.43 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.49)\n", + "Requirement already satisfied: pystoi in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.3.3)\n", + "Requirement already satisfied: attrdict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.1)\n", + "Requirement already satisfied: webdataset<=0.1.62,>=0.1.48 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.62)\n", + "Requirement already satisfied: wandb in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.12.15)\n", + "Requirement already satisfied: pypinyin in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.46.0)\n", + "Requirement already satisfied: attrs>=18.1.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (21.4.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: appdirs in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.4.4)\n", + "Requirement already satisfied: typed-ast>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.5.3)\n", + "Requirement already satisfied: pathspec<1,>=0.6 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.9.0)\n", + "Requirement already satisfied: click>=6.5 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (8.0.4)\n", + "Requirement already satisfied: toml>=0.9.4 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.10.2)\n", + "Requirement already satisfied: antlr4-python3-runtime==4.8 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (4.8)\n", + "Requirement already satisfied: importlib-resources<5.3 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (5.2.3)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources<5.3->hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (3.7.0)\n", + "Requirement already satisfied: pip-api in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.0.29)\n", + "Requirement already satisfied: pipreqs in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.4.11)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (4.31.2)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (1.4.0)\n", + "Requirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (3.0.7)\n", + "Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (0.11.0)\n", + "Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from nltk>=3.6.5->nemo_toolkit[all]==1.5.1) (1.1.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.2.1 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (4.1.1)\n", + "Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (1.16.0)\n", + "Requirement already satisfied: protobuf>=3.12.2 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (3.19.4)\n", + "Requirement already satisfied: pyDeprecate<0.4.0,>=0.3.1 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.3.2)\n", + "Requirement already satisfied: tensorboard>=2.2.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.8.0)\n", + "Requirement already satisfied: fsspec[http]!=2021.06.0,>=2021.05.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2022.2.0)\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.27.1)\n", + "Requirement already satisfied: aiohttp in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.8.1)\n", + "Requirement already satisfied: werkzeug>=0.11.15 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.3)\n", + "Requirement already satisfied: markdown>=2.6.8 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3.6)\n", + "Requirement already satisfied: setuptools>=41.0.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (59.5.0)\n", + "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.6)\n", + "Requirement already satisfied: google-auth<3,>=1.6.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.6.2)\n", + "Requirement already satisfied: wheel>=0.26 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.37.1)\n", + "Requirement already satisfied: grpcio>=1.24.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.44.0)\n", + "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.6.1)\n", + "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.8.1)\n", + "Requirement already satisfied: absl-py>=0.4 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (5.0.0)\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.2.8)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.8)\n", + "Requirement already satisfied: requests-oauthlib>=0.7.0 in /opt/conda/lib/python3.8/site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.1)\n", + "Requirement already satisfied: importlib-metadata>=4.4 in /opt/conda/lib/python3.8/site-packages (from markdown>=2.6.8->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.11.3)\n", + "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.8)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2021.10.8)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.26.8)\n", + "Requirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.8/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.2.0)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.5.1)\n", + "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.12.1)\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.0)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.2)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.0.2)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (6.0.2)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.2.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: s3transfer<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (0.5.2)\n", + "Requirement already satisfied: botocore<1.25.0,>=1.24.45 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.24.45)\n", + "Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: pybind11>=2.2 in /opt/conda/lib/python3.8/site-packages (from fasttext->nemo_toolkit[all]==1.5.1) (2.9.1)\n", + "Requirement already satisfied: distance>=0.1.3 in /opt/conda/lib/python3.8/site-packages (from g2p-en->nemo_toolkit[all]==1.5.1) (0.1.3)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from gdown->nemo_toolkit[all]==1.5.1) (4.10.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->gdown->nemo_toolkit[all]==1.5.1) (2.3.1)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (8.1.1)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (6.9.2)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (1.1.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.2.0)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (7.1.2)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (5.9.0)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (6.1)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.4)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.3)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.5)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)\n", + "Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.11.2)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.27)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.8.0)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.4)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (22.3.0)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (4.9.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.5)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.8.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.3)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.3)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.4)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.3.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.1.1)\n", + "Requirement already satisfied: resampy>=0.2.2 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (0.2.2)\n", + "Requirement already satisfied: pooch>=1.0 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (1.6.0)\n", + "Requirement already satisfied: audioread>=2.1.5 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (2.1.9)\n", + "Requirement already satisfied: llvmlite<0.37,>=0.36.0rc1 in /opt/conda/lib/python3.8/site-packages (from numba->nemo_toolkit[all]==1.5.1) (0.36.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from scikit-learn->nemo_toolkit[all]==1.5.1) (3.1.0)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.1)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.13)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.1.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.4)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.0)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.6.0)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.2)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.1)\n", + "Requirement already satisfied: pytz>=2017.3 in /opt/conda/lib/python3.8/site-packages (from pandas->nemo_toolkit[all]==1.5.1) (2021.3)\n", + "Requirement already satisfied: pip in /opt/conda/lib/python3.8/site-packages (from pip-api->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (21.2.4)\n", + "Requirement already satisfied: yarg in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.1.9)\n", + "Requirement already satisfied: docopt in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.6.2)\n", + "Requirement already satisfied: simplejson>=3.8.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (3.17.6)\n", + "Requirement already satisfied: sortedcontainers>=2.0.4 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (2.4.0)\n", + "Requirement already satisfied: tabulate>=0.7.7 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.8.9)\n", + "Requirement already satisfied: pyannote.database>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (4.1.3)\n", + "Requirement already satisfied: sympy>=1.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.10.1)\n", + "Requirement already satisfied: typer[all]>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.0)\n", + "Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.8/site-packages (from sympy>=1.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.2.1)\n", + "Requirement already satisfied: colorama<0.5.0,>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.4)\n", + "Requirement already satisfied: shellingham<2.0.0,>=1.3.0 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.4.0)\n", + "Requirement already satisfied: py>=1.8.2 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.11.0)\n", + "Requirement already satisfied: iniconfig in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.1.1)\n", + "Requirement already satisfied: pluggy<2.0,>=0.12 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: jarowinkler<1.1.0,>=1.0.2 in /opt/conda/lib/python3.8/site-packages (from rapidfuzz->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.1)\n", + "Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in /opt/conda/lib/python3.8/site-packages (from ruamel.yaml->nemo_toolkit[all]==1.5.1) (0.2.6)\n", + "Requirement already satisfied: portalocker in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (2.4.0)\n", + "Requirement already satisfied: ipadic<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: mecab-python3==1.0.3 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.3)\n", + "Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: alabaster<0.8,>=0.7 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.7.12)\n", + "Requirement already satisfied: babel>=1.3 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.9.1)\n", + "Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.1.5)\n", + "Requirement already satisfied: sphinxcontrib-devhelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: sphinxcontrib-jsmath in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.1)\n", + "Requirement already satisfied: sphinxcontrib-qthelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.3)\n", + "Requirement already satisfied: snowballstemmer>=1.1 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.2.0)\n", + "Requirement already satisfied: imagesize in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.3.0)\n", + "Requirement already satisfied: sphinxcontrib-applehelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: docutils<0.18,>=0.14 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.17.1)\n", + "Requirement already satisfied: pybtex-docutils>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (1.0.1)\n", + "Requirement already satisfied: pybtex>=0.24 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (0.24.0)\n", + "Requirement already satisfied: latexcodec>=1.0.4 in /opt/conda/lib/python3.8/site-packages (from pybtex>=0.24->sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (2.0.1)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.2)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.0.5)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)\n", + "Requirement already satisfied: pathtools in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.1.2)\n", + "Requirement already satisfied: setproctitle in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.2.3)\n", + "Requirement already satisfied: GitPython>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (3.1.27)\n", + "Requirement already satisfied: sentry-sdk>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.5.10)\n", + "Requirement already satisfied: shortuuid>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.0.8)\n", + "Requirement already satisfied: docker-pycreds>=0.4.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.4.0)\n", + "Requirement already satisfied: promise<3,>=2.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (2.3)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (4.0.9)\n", + "Requirement already satisfied: smmap<6,>=3.0.1 in /opt/conda/lib/python3.8/site-packages (from gitdb<5,>=4.0.1->GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (5.0.0)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "# Install dependencies\n", + "!pip install wget\n", + "!apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsndfile1 ffmpeg\n", + "!pip install Cython\n", + "\n", + "## Install NeMo\n", + "!pip install nemo_toolkit[all]==1.5.1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. Download Citrinet model\n", + "\n", + "Next, we download a pretrained Nemo Citrinet model and convert it to a Torchscript module:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import nemo\n", + "import torch\n", + "\n", + "import nemo.collections.asr as nemo_asr\n", + "from nemo.core import typecheck\n", + "typecheck.set_typecheck_enabled(False) " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading and saving stt_en_citrinet_256...\n", + "[NeMo I 2022-04-21 23:12:45 cloud:56] Found existing object /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.\n", + "[NeMo I 2022-04-21 23:12:45 cloud:62] Re-using file from: /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo\n", + "[NeMo I 2022-04-21 23:12:45 common:728] Instantiating model from pre-trained checkpoint\n", + "[NeMo I 2022-04-21 23:12:46 mixins:146] Tokenizer SentencePieceTokenizer initialized with 1024 tokens\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:47 modelPT:130] If you intend to do training or fine-tuning, please call the ModelPT.setup_training_data() method and provide a valid configuration file to setup the train data loader.\n", + " Train config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " trim_silence: true\n", + " max_duration: 16.7\n", + " shuffle: true\n", + " is_tarred: false\n", + " tarred_audio_filepaths: null\n", + " use_start_end_token: false\n", + " \n", + "[NeMo W 2022-04-21 23:12:47 modelPT:137] If you intend to do validation, please call the ModelPT.setup_validation_data() or ModelPT.setup_multiple_validation_data() method and provide a valid configuration file to setup the validation data loader(s). \n", + " Validation config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " shuffle: false\n", + " use_start_end_token: false\n", + " \n", + "[NeMo W 2022-04-21 23:12:47 modelPT:143] Please call the ModelPT.setup_test_data() or ModelPT.setup_multiple_test_data() method and provide a valid configuration file to setup the test data loader(s).\n", + " Test config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " shuffle: false\n", + " use_start_end_token: false\n", + " \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[NeMo I 2022-04-21 23:12:47 features:265] PADDING: 16\n", + "[NeMo I 2022-04-21 23:12:47 features:282] STFT using torch\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:47 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/nemo/collections/asr/parts/preprocessing/features.py:315: FutureWarning: Pass sr=16000, n_fft=512 as keyword args. From version 0.10 passing these as positional arguments will result in an error\n", + " librosa.filters.mel(sample_rate, self.n_fft, n_mels=nfilt, fmin=lowfreq, fmax=highfreq), dtype=torch.float\n", + " \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[NeMo I 2022-04-21 23:12:49 save_restore_connector:149] Model EncDecCTCModelBPE was successfully restored from /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules\n", + "[NeMo W 2022-04-21 23:12:49 conv_asr:73] Turned off 235 masked convolutions\n", + "[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules\n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/jit/_trace.py:916: UserWarning: `optimize` is deprecated and has no effect. Use `with torch.jit.optimized_execution() instead\n", + " warnings.warn(\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.\n", + " if hasattr(mod, name):\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.\n", + " item = getattr(mod, name)\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.\n", + " if hasattr(mod, name):\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.\n", + " item = getattr(mod, name)\n", + " \n" + ] + }, + { + "data": { + "text/plain": [ + "(['stt_en_citrinet_256.ts'],\n", + " ['nemo.collections.asr.models.ctc_bpe_models.EncDecCTCModelBPE exported to ONNX'])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "variant = 'stt_en_citrinet_256'\n", + "\n", + "print(f\"Downloading and saving {variant}...\")\n", + "asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name=variant)\n", + "asr_model.export(f\"{variant}.ts\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmark utility\n", + "\n", + "Let us define a helper benchmarking function, then benchmark the original Pytorch model." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 102.0, mean: 102.0\n", + " Median latency (s): 0.009802, mean: 0.009803, 99th_p: 0.009836, std_dev: 0.000014\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 429.1, mean: 429.1\n", + " Median latency (s): 0.018642, mean: 0.018643, 99th_p: 0.018670, std_dev: 0.000014\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 551.3, mean: 551.2\n", + " Median latency (s): 0.058047, mean: 0.058053, 99th_p: 0.058375, std_dev: 0.000106\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 594.1, mean: 594.1\n", + " Median latency (s): 0.215434, mean: 0.215446, 99th_p: 0.215806, std_dev: 0.000116\n", + "\n" + ] + } + ], + "source": [ + "from __future__ import print_function\n", + "from __future__ import absolute_import\n", + "from __future__ import division\n", + "\n", + "import argparse\n", + "import timeit\n", + "import numpy as np\n", + "import torch\n", + "import torch_tensorrt as trtorch\n", + "import torch.backends.cudnn as cudnn\n", + "\n", + "def benchmark(model, input_tensor, num_loops, model_name, batch_size):\n", + " def timeGraph(model, input_tensor, num_loops):\n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(20):\n", + " features = model(input_tensor)\n", + "\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(num_loops):\n", + " start_time = timeit.default_timer()\n", + " features = model(input_tensor)\n", + " torch.cuda.synchronize()\n", + " end_time = timeit.default_timer()\n", + " timings.append(end_time - start_time)\n", + " # print(\"Iteration {}: {:.6f} s\".format(i, end_time - start_time))\n", + " return timings\n", + " def printStats(graphName, timings, batch_size):\n", + " times = np.array(timings)\n", + " steps = len(times)\n", + " speeds = batch_size / times\n", + " time_mean = np.mean(times)\n", + " time_med = np.median(times)\n", + " time_99th = np.percentile(times, 99)\n", + " time_std = np.std(times, ddof=0)\n", + " speed_mean = np.mean(speeds)\n", + " speed_med = np.median(speeds)\n", + " msg = (\"\\n%s =================================\\n\"\n", + " \"batch size=%d, num iterations=%d\\n\"\n", + " \" Median samples/s: %.1f, mean: %.1f\\n\"\n", + " \" Median latency (s): %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\\n\"\n", + " ) % (graphName,\n", + " batch_size, steps,\n", + " speed_med, speed_mean,\n", + " time_med, time_mean, time_99th, time_std)\n", + " print(msg)\n", + " timings = timeGraph(model, input_tensor, num_loops)\n", + " printStats(model_name, timings, batch_size)\n", + "\n", + "precisions_str = 'fp32' # Precision (default=fp32, fp16)\n", + "variant = 'stt_en_citrinet_256' # Nemo Citrinet variant\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "trt = False # If True, infer with Torch-TensorRT engine. Else, infer with Pytorch model.\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Confirming the GPU we are using here:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Thu Apr 21 23:13:32 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA TITAN V On | 00000000:17:00.0 Off | N/A |\n", + "| 38% 55C P2 42W / 250W | 2462MiB / 12288MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + "| 1 NVIDIA TITAN V On | 00000000:65:00.0 Off | N/A |\n", + "| 28% 39C P8 26W / 250W | 112MiB / 12288MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| 0 N/A N/A 3909 G 4MiB |\n", + "| 0 N/A N/A 6047 C 2453MiB |\n", + "| 1 N/A N/A 3909 G 39MiB |\n", + "| 1 N/A N/A 4161 G 67MiB |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Create Torch-TensorRT modules\n", + "\n", + "In this step, we optimize the Citrinet Torchscript module with Torch-TensorRT with various precisions and batch sizes." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating Torchscript-TensorRT module for batchsize 1 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 8 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 32 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 128 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 1 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 8 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 32 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 128 precision torch.float16\n" + ] + } + ], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch_tensorrt as torchtrt\n", + "import argparse\n", + "\n", + "variant = \"stt_en_citrinet_256\"\n", + "precisions = [torch.float, torch.half]\n", + "batch_sizes = [1,8,32,128]\n", + "\n", + "model = torch.jit.load(f\"{variant}.ts\")\n", + "\n", + "for precision in precisions:\n", + " for batch_size in batch_sizes:\n", + " compile_settings = {\n", + " \"inputs\": [torchtrt.Input(shape=[batch_size, 80, 1488])],\n", + " \"enabled_precisions\": {precision},\n", + " \"workspace_size\": 2000000000,\n", + " \"truncate_long_and_double\": True,\n", + " }\n", + " print(f\"Generating Torchscript-TensorRT module for batchsize {batch_size} precision {precision}\")\n", + " trt_ts_module = torchtrt.compile(model, **compile_settings)\n", + " torch.jit.save(trt_ts_module, f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Benchmark Torch-TensorRT models\n", + "\n", + "Finally, we are ready to benchmark the Torch-TensorRT optimized Citrinet models." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 242.2, mean: 218.0\n", + " Median latency (s): 0.004128, mean: 0.004825, 99th_p: 0.008071, std_dev: 0.001270\n", + "\n", + "Loading model: stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 729.9, mean: 709.0\n", + " Median latency (s): 0.010961, mean: 0.011388, 99th_p: 0.016114, std_dev: 0.001256\n", + "\n", + "Loading model: stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 955.6, mean: 953.4\n", + " Median latency (s): 0.033488, mean: 0.033572, 99th_p: 0.035722, std_dev: 0.000545\n", + "\n", + "Loading model: stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 1065.8, mean: 1069.4\n", + " Median latency (s): 0.120097, mean: 0.119708, 99th_p: 0.121618, std_dev: 0.001260\n", + "\n" + ] + } + ], + "source": [ + "precisions_str = 'fp32' # Precision (default=fp32, fp16)\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "trt = True\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 288.9, mean: 272.9\n", + " Median latency (s): 0.003462, mean: 0.003774, 99th_p: 0.006846, std_dev: 0.000820\n", + "\n", + "Loading model: stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 1201.0, mean: 1190.9\n", + " Median latency (s): 0.006661, mean: 0.006733, 99th_p: 0.008453, std_dev: 0.000368\n", + "\n", + "Loading model: stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 1538.2, mean: 1516.4\n", + " Median latency (s): 0.020804, mean: 0.021143, 99th_p: 0.024492, std_dev: 0.000973\n", + "\n", + "Loading model: stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 1792.0, mean: 1777.0\n", + " Median latency (s): 0.071428, mean: 0.072057, 99th_p: 0.076796, std_dev: 0.001351\n", + "\n" + ] + } + ], + "source": [ + "precisions_str = 'fp16' # Precision (default=fp32, fp16)\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of optimizing the Citrinet model with Torch-TensorRT. On an A100 GPU, with Torch-TensorRT, we observe a speedup of ~**2.4X** with FP32, and ~**2.9X** with FP16 at batchsize of 128.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_sources/_notebooks/EfficientNet-example.ipynb.txt b/docs/v1.1.1/_sources/_notebooks/EfficientNet-example.ipynb.txt new file mode 100644 index 0000000000..31a3dad874 --- /dev/null +++ b/docs/v1.1.1/_sources/_notebooks/EfficientNet-example.ipynb.txt @@ -0,0 +1,693 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - EfficientNet-B0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained EfficientNet network, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [EfficientNet Overview](#2)\n", + "1. [Running the model without optimizations](#3)\n", + "1. [Accelerating with Torch-TensorRT](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting timm==0.4.12\n", + " Downloading timm-0.4.12-py3-none-any.whl (376 kB)\n", + "\u001b[K |████████████████████████████████| 376 kB 11.9 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: torch>=1.4 in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (1.11.0a0+bfe5ad2)\n", + "Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (0.12.0a0)\n", + "Requirement already satisfied: typing_extensions in /opt/conda/lib/python3.8/site-packages (from torch>=1.4->timm==0.4.12) (4.0.1)\n", + "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (8.2.0)\n", + "Requirement already satisfied: numpy in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (1.22.0)\n", + "Installing collected packages: timm\n", + "Successfully installed timm-0.4.12\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Fri Feb 4 21:29:36 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:65:00.0 Off | N/A |\n", + "| 30% 28C P8 11W / 350W | 0MiB / 24576MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!pip install timm==0.4.12\n", + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. EfficientNet Overview\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet.\n", + "\n", + "### Model Description\n", + "\n", + "This model is based on the [EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks](https://arxiv.org/abs/1905.11946) paper.\n", + "\n", + "\"alt\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Running the model without optimizations\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "import torch\n", + "import torch_tensorrt\n", + "import timm\n", + "import time\n", + "import numpy as np\n", + "import torch.backends.cudnn as cudnn\n", + "from timm.data import resolve_data_config\n", + "from timm.data.transforms_factory import create_transform\n", + "import json \n", + "\n", + "efficientnet_b0_model = timm.create_model('efficientnet_b0',pretrained=True)\n", + "model = efficientnet_b0_model.eval().to(\"cuda\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our model loaded, let's proceed to downloading some images!" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-02-04 21:30:07-- https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\n", + "Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.127, 18.65.227.37, 18.65.227.99, ...\n", + "Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.127|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 24112 (24K) [image/jpeg]\n", + "Saving to: ‘./data/img0.JPG’\n", + "\n", + "./data/img0.JPG 100%[===================>] 23.55K --.-KB/s in 0.004s \n", + "\n", + "2022-02-04 21:30:07 (6.40 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-02-04 21:30:07-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K --.-KB/s in 0.06s \n", + "\n", + "2022-02-04 21:30:07 (6.83 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-02-04 21:30:08-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 246KB/s in 1.4s \n", + "\n", + "2022-02-04 21:30:10 (246 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-02-04 21:30:10-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.202.107, 104.18.201.107, 2606:4700::6812:ca6b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.202.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 90994 (89K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 88.86K --.-KB/s in 0.006s \n", + "\n", + "2022-02-04 21:30:10 (14.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]\n", + "\n", + "--2022-02-04 21:30:11-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.133.45\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.133.45|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-02-04 21:30:11 (474 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All pre-trained models expect input images normalized in the same way,\n", + "i.e. mini-batches of 3-channel RGB images of shape `(3 x H x W)`, where `H` and `W` are expected to be at least `224`.\n", + "The images have to be loaded in to a range of `[0, 1]` and then normalized using `mean = [0.485, 0.456, 0.406]`\n", + "and `std = [0.229, 0.224, 0.225]`.\n", + "\n", + "Here's a sample execution." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels\n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Throughout this tutorial, we will be making use of some utility functions; `efficientnet_preprocess` for preprocessing input images, `predict` to use the model for prediction and `benchmark` to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "cudnn.benchmark = True\n", + "\n", + "def efficientnet_preprocess():\n", + " config = resolve_data_config({}, model=model)\n", + " transform = create_transform(**config)\n", + " return transform\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = efficientnet_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average throughput: %.2f images/second'%(input_shape[0]/np.mean(timings)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the model downloaded and the util functions written, let's just quickly see some predictions, and benchmark the model in its current un-optimized state." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.8/site-packages/torchvision/transforms/transforms.py:321: UserWarning: Argument interpolation should be of type InterpolationMode instead of int. Please, use InterpolationMode enum.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02109961', 'Eskimo_dog'], Probablility: 0.3987298309803009\n", + "./data/img1.JPG - Predicted: ['n01537544', 'indigo_bunting'], Probablility: 0.23344755172729492\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9695423245429993\n", + "./data/img3.JPG - Predicted: ['n01739381', 'vine_snake'], Probablility: 0.227739155292511\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, efficientnet_b0_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 37.62 ms\n", + "Iteration 20/100, avg batch time 37.66 ms\n", + "Iteration 30/100, avg batch time 37.65 ms\n", + "Iteration 40/100, avg batch time 37.66 ms\n", + "Iteration 50/100, avg batch time 37.70 ms\n", + "Iteration 60/100, avg batch time 37.70 ms\n", + "Iteration 70/100, avg batch time 37.70 ms\n", + "Iteration 80/100, avg batch time 37.71 ms\n", + "Iteration 90/100, avg batch time 37.72 ms\n", + "Iteration 100/100, avg batch time 37.72 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 3393.46 images/second\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Accelerating with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our [documentation](https://nvidia.github.io/Torch-TensorRT/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 27.86 ms\n", + "Iteration 20/100, avg batch time 27.71 ms\n", + "Iteration 30/100, avg batch time 27.99 ms\n", + "Iteration 40/100, avg batch time 27.95 ms\n", + "Iteration 50/100, avg batch time 27.89 ms\n", + "Iteration 60/100, avg batch time 27.85 ms\n", + "Iteration 70/100, avg batch time 28.00 ms\n", + "Iteration 80/100, avg batch time 27.97 ms\n", + "Iteration 90/100, avg batch time 27.95 ms\n", + "Iteration 100/100, avg batch time 27.92 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 4584.06 images/second\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],\n", + " enabled_precisions = {torch.half}, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 12.05 ms\n", + "Iteration 20/100, avg batch time 12.56 ms\n", + "Iteration 30/100, avg batch time 12.39 ms\n", + "Iteration 40/100, avg batch time 12.34 ms\n", + "Iteration 50/100, avg batch time 12.33 ms\n", + "Iteration 60/100, avg batch time 12.32 ms\n", + "Iteration 70/100, avg batch time 12.30 ms\n", + "Iteration 80/100, avg batch time 12.28 ms\n", + "Iteration 90/100, avg batch time 12.35 ms\n", + "Iteration 100/100, avg batch time 12.35 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 10362.23 images/second\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of **1.35x** with FP32, and **3.13x** with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_sources/_notebooks/Hugging-Face-BERT.ipynb.txt b/docs/v1.1.1/_sources/_notebooks/Hugging-Face-BERT.ipynb.txt new file mode 100644 index 0000000000..9b027b473e --- /dev/null +++ b/docs/v1.1.1/_sources/_notebooks/Hugging-Face-BERT.ipynb.txt @@ -0,0 +1,714 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "9369b63c", + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2022 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "id": "d0a97ac5", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Masked Language Modeling (MLM) with Hugging Face BERT Transformer" + ] + }, + { + "cell_type": "markdown", + "id": "83f47edb", + "metadata": {}, + "source": [ + "## Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained BERT transformer from Hugging Face, and running it to test the speedup obtained.\n", + "\n", + "## Contents\n", + "1. [Requirements](#1)\n", + "2. [BERT Overview](#2)\n", + "3. [Creating TorchScript modules](#3)\n", + "4. [Compiling with Torch-TensorRT](#4)\n", + "5. [Benchmarking](#5)\n", + "6. [Conclusion](#6)" + ] + }, + { + "cell_type": "markdown", + "id": "596fa151", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides a PyTorch Docker Container which contains PyTorch and Torch-TensorRT. Starting with version `22.05-py3`, we can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "58e687d1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: transformers in /opt/conda/lib/python3.8/site-packages (4.18.0)\n", + "Requirement already satisfied: tqdm>=4.27 in /opt/conda/lib/python3.8/site-packages (from transformers) (4.63.0)\n", + "Requirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (2022.3.15)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.5.1)\n", + "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.12.1)\n", + "Requirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (1.22.3)\n", + "Requirement already satisfied: sacremoses in /opt/conda/lib/python3.8/site-packages (from transformers) (0.0.49)\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from transformers) (2.27.1)\n", + "Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (6.0)\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers) (3.6.0)\n", + "Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (21.3)\n", + "Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.8/site-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (4.1.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->transformers) (3.0.7)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (1.26.8)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2021.10.8)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (3.3)\n", + "Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.16.0)\n", + "Requirement already satisfied: click in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (8.0.4)\n", + "Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.1.0)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install transformers" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1104c4f1", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import BertTokenizer, BertForMaskedLM\n", + "import torch\n", + "import timeit\n", + "import numpy as np\n", + "import torch_tensorrt\n", + "import torch.backends.cudnn as cudnn" + ] + }, + { + "cell_type": "markdown", + "id": "acf67a5e", + "metadata": {}, + "source": [ + "\n", + "## 2. BERT Overview\n", + "\n", + "Transformers comprise a class of deep learning algorithms employing self-attention; broadly speaking, the models learn large matrices of numbers, each element of which denotes how important one component of input data is to another. Since their introduction in 2017, transformers have enjoyed widespread adoption, particularly in natural language processing, but also in computer vision problems. This is largely because they are easier to parallelize than the sequence models which attention mechanisms were originally designed to augment. \n", + "\n", + "Hugging Face is a company that maintains a huge respository of pre-trained transformer models. The company also provides tools for integrating those models into PyTorch code and running inference with them. \n", + "\n", + "One of the most popular transformer models is BERT (Bidirectional Encoder Representations from Transformers). First developed at Google and released in 2018, it has become the backbone of Google's search engine and a standard benchmark for NLP experiments. BERT was originally trained for next sentence prediction and masked language modeling (MLM), which aims to predict hidden words in sentences. In this notebook, we will use Hugging Face's `bert-base-uncased` model (BERT's smallest and simplest form, which does not employ text capitalization) for MLM." + ] + }, + { + "cell_type": "markdown", + "id": "19e711c0", + "metadata": {}, + "source": [ + "\n", + "## 3. Creating TorchScript modules " + ] + }, + { + "cell_type": "markdown", + "id": "81d4c6f6", + "metadata": {}, + "source": [ + "First, create a pretrained BERT tokenizer from the `bert-base-uncased` model" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c7c8721e", + "metadata": {}, + "outputs": [], + "source": [ + "enc = BertTokenizer.from_pretrained('bert-base-uncased')" + ] + }, + { + "cell_type": "markdown", + "id": "b7c1c679", + "metadata": {}, + "source": [ + "Create dummy inputs to generate a traced TorchScript model later" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c3827087", + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 4\n", + "\n", + "batched_indexed_tokens = [[101, 64]*64]*batch_size\n", + "batched_segment_ids = [[0, 1]*64]*batch_size\n", + "batched_attention_masks = [[1, 1]*64]*batch_size\n", + "\n", + "tokens_tensor = torch.tensor(batched_indexed_tokens)\n", + "segments_tensor = torch.tensor(batched_segment_ids)\n", + "attention_masks_tensor = torch.tensor(batched_attention_masks)" + ] + }, + { + "cell_type": "markdown", + "id": "7e31b27f", + "metadata": {}, + "source": [ + "Obtain a BERT masked language model from Hugging Face in the (scripted) TorchScript, then use the dummy inputs to trace it" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a3cd5a35", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertForMaskedLM: ['cls.seq_relationship.bias', 'cls.seq_relationship.weight']\n", + "- This IS expected if you are initializing BertForMaskedLM from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n", + "- This IS NOT expected if you are initializing BertForMaskedLM from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n" + ] + } + ], + "source": [ + "mlm_model_ts = BertForMaskedLM.from_pretrained('bert-base-uncased', torchscript=True)\n", + "traced_mlm_model = torch.jit.trace(mlm_model_ts, [tokens_tensor, segments_tensor, attention_masks_tensor])" + ] + }, + { + "cell_type": "markdown", + "id": "d8d2217a", + "metadata": {}, + "source": [ + "Define 4 masked sentences, with 1 word in each sentence hidden from the model. Fluent English speakers will probably be able to guess the masked words, but just in case, they are `'capital'`, `'language'`, `'innings'`, and `'mathematics'`.\n", + "\n", + "Also create a list containing the position of the masked word within each sentence. Given Python's 0-based indexing convention, the numbers are each higher by 1 than might be expected. This is because the token at index 0 in each sentence is a beginning-of-sentence token, denoted `[CLS]` when entered explicitly. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4d1af982", + "metadata": {}, + "outputs": [], + "source": [ + "masked_sentences = ['Paris is the [MASK] of France.', \n", + " 'The primary [MASK] of the United States is English.', \n", + " 'A baseball game consists of at least nine [MASK].', \n", + " 'Topology is a branch of [MASK] concerned with the properties of geometric objects that remain unchanged under continuous transformations.']\n", + "pos_masks = [4, 3, 9, 6]" + ] + }, + { + "cell_type": "markdown", + "id": "4d89b4c8", + "metadata": {}, + "source": [ + "Pass the masked sentences into the (scripted) TorchScript MLM model and verify that the unmasked sentences yield the expected results. \n", + "\n", + "Because the sentences are of different lengths, we must specify the `padding` argument in calling our encoder/tokenizer. There are several possible padding strategies, but we'll use `'max_length'` padding with `max_length=128`. Later, when we compile an optimized version of the model with Torch-TensorRT, the optimized model will expect inputs of length 128, hence our choice of padding strategy and length here. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d2d7546b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "outputs = mlm_model_ts(**encoded_inputs)\n", + "most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]\n", + "unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')\n", + "unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]\n", + "for sentence in unmasked_sentences:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "b0b423ff", + "metadata": {}, + "source": [ + "Pass the masked sentences into the traced MLM model and verify that the unmasked sentences yield the expected results. \n", + "\n", + "Note the difference in how the `encoded_inputs` are passed into the model in the following cell compared to the previous one. If you examine `encoded_inputs`, you'll find that it's a dictionary with 3 keys, `'input_ids'`, `'token_type_ids'`, and `'attention_mask'`, each with a PyTorch tensor as an associated value. The traced model will accept `**encoded_inputs` as an input, but the Torch-TensorRT-optimized model (to be defined later) will not. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "683a4a73", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "outputs = traced_mlm_model(encoded_inputs['input_ids'], encoded_inputs['token_type_ids'], encoded_inputs['attention_mask'])\n", + "most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]\n", + "unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')\n", + "unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]\n", + "for sentence in unmasked_sentences:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "7a31b545", + "metadata": {}, + "source": [ + "\n", + "## 4. Compiling with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "id": "413d8b4f", + "metadata": {}, + "source": [ + "Change the logging level to avoid long printouts" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "42862893", + "metadata": {}, + "outputs": [], + "source": [ + "new_level = torch_tensorrt.logging.Level.Error\n", + "torch_tensorrt.logging.set_reportable_log_level(new_level)" + ] + }, + { + "cell_type": "markdown", + "id": "121d6d59", + "metadata": {}, + "source": [ + "Compile the model" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "eab90150", + "metadata": {}, + "outputs": [], + "source": [ + "trt_model = torch_tensorrt.compile(traced_mlm_model, \n", + " inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # input_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # token_type_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask\n", + " enabled_precisions= {torch.float32}, # Run with 32-bit precision\n", + " workspace_size=2000000000,\n", + " truncate_long_and_double=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a96751ce", + "metadata": {}, + "source": [ + "Pass the masked sentences into the compiled model and verify that the unmasked sentences yield the expected results." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "097ea381", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "enc_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "enc_inputs = {k: v.type(torch.int32).cuda() for k, v in enc_inputs.items()}\n", + "output_trt = trt_model(enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "most_likely_token_ids_trt = [torch.argmax(output_trt[i, pos, :]) for i, pos in enumerate(pos_masks)] \n", + "unmasked_tokens_trt = enc.decode(most_likely_token_ids_trt).split(' ')\n", + "unmasked_sentences_trt = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens_trt)]\n", + "for sentence in unmasked_sentences_trt:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "a398271d", + "metadata": {}, + "source": [ + "Compile the model again, this time with 16-bit precision" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "a063dee2", + "metadata": {}, + "outputs": [], + "source": [ + "trt_model_fp16 = torch_tensorrt.compile(traced_mlm_model, \n", + " inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # input_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # token_type_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask\n", + " enabled_precisions= {torch.half}, # Run with 16-bit precision\n", + " workspace_size=2000000000,\n", + " truncate_long_and_double=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a926334a", + "metadata": {}, + "source": [ + "\n", + "## 5. Benchmarking\n", + "\n", + "In developing this notebook, we conducted our benchmarking on a single NVIDIA A100 GPU. Your results may differ from those shown, particularly on a different GPU." + ] + }, + { + "cell_type": "markdown", + "id": "976c6fb9", + "metadata": {}, + "source": [ + "This function passes the inputs into the model and runs inference `num_loops` times, then returns a list of length containing the amount of time in seconds that each instance of inference took." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b72a091e", + "metadata": {}, + "outputs": [], + "source": [ + "def timeGraph(model, input_tensor1, input_tensor2, input_tensor3, num_loops=50):\n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(20):\n", + " features = model(input_tensor1, input_tensor2, input_tensor3)\n", + "\n", + " torch.cuda.synchronize()\n", + "\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(num_loops):\n", + " start_time = timeit.default_timer()\n", + " features = model(input_tensor1, input_tensor2, input_tensor3)\n", + " torch.cuda.synchronize()\n", + " end_time = timeit.default_timer()\n", + " timings.append(end_time - start_time)\n", + " # print(\"Iteration {}: {:.6f} s\".format(i, end_time - start_time))\n", + "\n", + " return timings" + ] + }, + { + "cell_type": "markdown", + "id": "0b44dcf8", + "metadata": {}, + "source": [ + "This function prints the number of input batches the model is able to process each second and summary statistics of the model's latency." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "2ef71ab7", + "metadata": {}, + "outputs": [], + "source": [ + "def printStats(graphName, timings, batch_size):\n", + " times = np.array(timings)\n", + " steps = len(times)\n", + " speeds = batch_size / times\n", + " time_mean = np.mean(times)\n", + " time_med = np.median(times)\n", + " time_99th = np.percentile(times, 99)\n", + " time_std = np.std(times, ddof=0)\n", + " speed_mean = np.mean(speeds)\n", + " speed_med = np.median(speeds)\n", + "\n", + " msg = (\"\\n%s =================================\\n\"\n", + " \"batch size=%d, num iterations=%d\\n\"\n", + " \" Median text batches/second: %.1f, mean: %.1f\\n\"\n", + " \" Median latency: %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\\n\"\n", + " ) % (graphName,\n", + " batch_size, steps,\n", + " speed_med, speed_mean,\n", + " time_med, time_mean, time_99th, time_std)\n", + " print(msg)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "afe97b9b", + "metadata": {}, + "outputs": [], + "source": [ + "cudnn.benchmark = True" + ] + }, + { + "cell_type": "markdown", + "id": "eba98b24", + "metadata": {}, + "source": [ + "Benchmark the (scripted) TorchScript model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "bab5fa8f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 599.1, mean: 597.6\n", + " Median latency: 0.006677, mean: 0.006693, 99th_p: 0.006943, std_dev: 0.000059\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(mlm_model_ts.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "bc79c452", + "metadata": {}, + "source": [ + "Benchmark the traced model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "5c0bd8e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 951.2, mean: 951.0\n", + " Median latency: 0.004205, mean: 0.004206, 99th_p: 0.004256, std_dev: 0.000015\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(traced_mlm_model.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "41db22a1", + "metadata": {}, + "source": [ + "Benchmark the compiled FP32 model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "ade7b508", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 1216.9, mean: 1216.4\n", + " Median latency: 0.003287, mean: 0.003289, 99th_p: 0.003317, std_dev: 0.000007\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(trt_model, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "57b696de", + "metadata": {}, + "source": [ + "Benchmark the compiled FP16 model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f61b83fd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 1776.7, mean: 1771.1\n", + " Median latency: 0.002251, mean: 0.002259, 99th_p: 0.002305, std_dev: 0.000015\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(trt_model_fp16, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "43f67ba3", + "metadata": {}, + "source": [ + "\n", + "## 6. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for Masked Language Modeling with Hugging Face's `bert-base-uncased` transformer and testing the performance impact of the optimization. With Torch-TensorRT on an NVIDIA A100 GPU, we observe the speedups indicated below. These acceleration numbers will vary from GPU to GPU (as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "Scripted (GPU): 1.0x\n", + "Traced (GPU): 1.62x\n", + "Torch-TensorRT (FP32): 2.14x\n", + "Torch-TensorRT (FP16): 3.15x\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ebd152d", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.1.1/_sources/_notebooks/Resnet50-example.ipynb.txt b/docs/v1.1.1/_sources/_notebooks/Resnet50-example.ipynb.txt new file mode 100644 index 0000000000..f020662c73 --- /dev/null +++ b/docs/v1.1.1/_sources/_notebooks/Resnet50-example.ipynb.txt @@ -0,0 +1,925 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - ResNet 50" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained ResNet-50 network, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [ResNet-50 Overview](#2)\n", + "1. [Running the model without optimizations](#3)\n", + "1. [Accelerating with Torch-TensorRT](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tue Feb 8 19:16:53 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:65:00.0 Off | N/A |\n", + "| 30% 29C P8 15W / 350W | 0MiB / 24576MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)\n", + "\u001b[K |████████████████████████████████| 121 kB 5.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)\n", + "\u001b[K |████████████████████████████████| 243 kB 2.6 MB/s eta 0:00:01\n", + "\u001b[?25hCollecting widgetsnbextension~=3.5.0\n", + " Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 3.5 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)\n", + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!nvidia-smi\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. ResNet-50 Overview\n", + "\n", + "\n", + "PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our ResNet-50 model from there pretrained on ImageNet.\n", + "\n", + "### Model Description\n", + "\n", + "This ResNet-50 model is based on the [Deep Residual Learning for Image Recognition](https://arxiv.org/pdf/1512.03385.pdf) paper, which describes ResNet as “a method for detecting objects in images using a single deep neural network\". The input size is fixed to 32x32.\n", + "\n", + "\"alt\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Running the model without optimizations\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading: \"https://github.com/pytorch/vision/archive/v0.10.0.zip\" to /root/.cache/torch/hub/v0.10.0.zip\n", + "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a7036a6122874340b14aaef7b8319260", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0.00/97.8M [00:00] 23.55K --.-KB/s in 0.002s \n", + "\n", + "2022-02-08 19:17:19 (14.6 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-02-08 19:17:19-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K 2.40MB/s in 0.2s \n", + "\n", + "2022-02-08 19:17:19 (2.40 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-02-08 19:17:20-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 366KB/s in 1.0s \n", + "\n", + "2022-02-08 19:17:24 (366 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-02-08 19:17:24-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:ca6b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 94328 (92K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 92.12K --.-KB/s in 0.005s \n", + "\n", + "2022-02-08 19:17:25 (16.8 MB/s) - ‘./data/img3.JPG’ saved [94328/94328]\n", + "\n", + "--2022-02-08 19:17:25-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.41.222\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.41.222|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-02-08 19:17:26 (481 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All pre-trained models expect input images normalized in the same way,\n", + "i.e. mini-batches of 3-channel RGB images of shape `(3 x H x W)`, where `H` and `W` are expected to be at least `224`.\n", + "The images have to be loaded in to a range of `[0, 1]` and then normalized using `mean = [0.485, 0.456, 0.406]`\n", + "and `std = [0.229, 0.224, 0.225]`.\n", + "\n", + "Here's a sample execution." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "import json \n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels \n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Throughout this tutorial, we will be making use of some utility functions; `rn50_preprocess` for preprocessing input images, `predict` to use the model for prediction and `benchmark` to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import time\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def rn50_preprocess():\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " return preprocess\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = rn50_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the model downloaded and the util functions written, let's just quickly see some predictions, and benchmark the model in its current un-optimized state." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49785590171813965\n", + "./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6445754766464233\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899807572364807\n", + "./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.39485082030296326\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, resnet50_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 75.34 ms\n", + "Iteration 20/100, ave batch time 75.33 ms\n", + "Iteration 30/100, ave batch time 75.35 ms\n", + "Iteration 40/100, ave batch time 75.37 ms\n", + "Iteration 50/100, ave batch time 75.38 ms\n", + "Iteration 60/100, ave batch time 75.38 ms\n", + "Iteration 70/100, ave batch time 75.39 ms\n", + "Iteration 80/100, ave batch time 75.39 ms\n", + "Iteration 90/100, ave batch time 75.40 ms\n", + "Iteration 100/100, ave batch time 75.41 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 75.41 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = resnet50_model.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Accelerating with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our [documentation](https://nvidia.github.io/Torch-TensorRT/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 41.02 ms\n", + "Iteration 20/100, ave batch time 41.12 ms\n", + "Iteration 30/100, ave batch time 41.22 ms\n", + "Iteration 40/100, ave batch time 41.14 ms\n", + "Iteration 50/100, ave batch time 41.20 ms\n", + "Iteration 60/100, ave batch time 41.20 ms\n", + "Iteration 70/100, ave batch time 41.19 ms\n", + "Iteration 80/100, ave batch time 41.23 ms\n", + "Iteration 90/100, ave batch time 41.20 ms\n", + "Iteration 100/100, ave batch time 41.21 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 41.21 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],\n", + " enabled_precisions = {torch.half}, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 14.48 ms\n", + "Iteration 20/100, ave batch time 14.58 ms\n", + "Iteration 30/100, ave batch time 14.72 ms\n", + "Iteration 40/100, ave batch time 14.73 ms\n", + "Iteration 50/100, ave batch time 14.70 ms\n", + "Iteration 60/100, ave batch time 14.79 ms\n", + "Iteration 70/100, ave batch time 14.73 ms\n", + "Iteration 80/100, ave batch time 14.69 ms\n", + "Iteration 90/100, ave batch time 14.68 ms\n", + "Iteration 100/100, ave batch time 14.69 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 14.69 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of **1.84x** with FP32, and **5.2x** with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_sources/_notebooks/dynamic-shapes.ipynb.txt b/docs/v1.1.1/_sources/_notebooks/dynamic-shapes.ipynb.txt new file mode 100644 index 0000000000..a0ceaab576 --- /dev/null +++ b/docs/v1.1.1/_sources/_notebooks/dynamic-shapes.ipynb.txt @@ -0,0 +1,1023 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "332a2ed8", + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2020 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "id": "18ee9d62", + "metadata": {}, + "source": [ + "# Torch-TensorRT - Using Dynamic Shapes" + ] + }, + { + "cell_type": "markdown", + "id": "73703695", + "metadata": {}, + "source": [ + "Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA's TensorRT Deep Learning Optimizer and Runtime. Unlike PyTorch's Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into the JIT runtime seamlessly. After compilation using the optimized graph should feel no different than running a TorchScript module. You also have access to TensorRT's suite of configurations at compile time, so you are able to specify operating precision (FP32/FP16/INT8) and other settings for your module.\n", + "\n", + "We highly encorage users to use our NVIDIA's [PyTorch container](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) to run this notebook. It comes packaged with a host of NVIDIA libraries and optimizations to widely used third party libraries. This container is tested and updated on a monthly cadence!\n", + "\n", + "This notebook has the following sections:\n", + "1. [TL;DR Explanation](#1)\n", + "1. [Setting up the model](#2)\n", + "1. [Working with Dynamic shapes in Torch TRT](#3)" + ] + }, + { + "cell_type": "markdown", + "id": "1603028d", + "metadata": {}, + "source": [ + "---\n", + "## TL;DR Explanation\n", + "\n", + "Making use of Dynamic Shaped Tensors in Torch TensorRT is quite simple. Let's say you are using the `torch_tensorrt.compile(...)` function to compile a torchscript module.\n", + "\n", + "One of the `args` in this function in this function is `input`: which defines an input to a module in terms of expected shape, data type and tensor format: `torch_tensorrt.Input`. \n", + "\n", + "For the purposes of this walkthrough we just need three `kwargs`: `min_shape`, `opt_shape` and `max_shape`. \n", + "```\n", + "...\n", + "torch_tensorrt.Input(\n", + " min_shape=(1, 224, 224, 3),\n", + " opt_shape=(1, 512, 512, 3),\n", + " max_shape=(1, 1024, 1024, 3),\n", + " dtype=torch.int32\n", + " format=torch.channel_last\n", + " )\n", + "...\n", + "```\n", + "In this example, we are going to use a simple ResNet model to demonstrate the use of the API. We will be using different batch sizes in the example, but you can use the same method to alter any of the dimensions of the tensor." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "db3493d2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mon May 2 20:40:30 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA Graphics... On | 00000000:01:00.0 Off | 0 |\n", + "| 41% 51C P0 62W / 200W | 0MiB / 47681MiB | 0% Default |\n", + "| | | Disabled |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (7.7.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.3.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.13.0)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (3.6.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.2.0)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (1.1.0)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (5.9.0)\n", + "Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (21.3)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.5)\n", + "Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.2.2)\n", + "Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.6.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.29)\n", + "Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (0.4)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jupyter-core>=4.9.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (4.9.2)\n", + "Requirement already satisfied: jsonschema>=2.6 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: fastjsonschema in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (2.15.3)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (5.7.0)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (3.8.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.1.1)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.14.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.5.0)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.3)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.1.1)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: nbclient>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.6.0)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (5.0.0)\n", + "Requirement already satisfied: tinycss2 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.1.1)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.11.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.3.1)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->ipykernel>=4.5.1->ipywidgets) (3.0.8)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!nvidia-smi\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "id": "0ed1b4f7", + "metadata": {}, + "source": [ + "---\n", + "## Setting up the model\n", + "\n", + "In this section, we will:\n", + "* Get sample data.\n", + "* Download model from torch hub.\n", + "* Build simple utility functions" + ] + }, + { + "cell_type": "markdown", + "id": "5934504f", + "metadata": {}, + "source": [ + "### Getting sample data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e46814cc", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-05-02 20:40:33-- https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\n", + "Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.37, 18.65.227.99, 18.65.227.223, ...\n", + "Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.37|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 24112 (24K) [image/jpeg]\n", + "Saving to: ‘./data/img0.JPG’\n", + "\n", + "./data/img0.JPG 100%[===================>] 23.55K --.-KB/s in 0.005s \n", + "\n", + "2022-05-02 20:40:33 (4.69 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-05-02 20:40:34-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K --.-KB/s in 0.02s \n", + "\n", + "2022-05-02 20:40:34 (26.2 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-05-02 20:40:34-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 608KB/s in 0.6s \n", + "\n", + "2022-05-02 20:40:36 (608 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-05-02 20:40:37-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:c96b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 90994 (89K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 88.86K --.-KB/s in 0.006s \n", + "\n", + "2022-05-02 20:40:37 (15.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]\n", + "\n", + "--2022-05-02 20:40:37-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.33.238\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.33.238|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-05-02 20:40:38 (489 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7392a8ec", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# visualizing the downloaded images\n", + "\n", + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "import json \n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels \n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "id": "1374edab", + "metadata": {}, + "source": [ + "### Download model from torch hub." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "659fa798", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using cache found in /root/.cache/torch/hub/pytorch_vision_v0.10.0\n" + ] + }, + { + "data": { + "text/plain": [ + "ResNet(\n", + " (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", + " (layer1): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer2): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer3): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (4): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (5): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer4): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))\n", + " (fc): Linear(in_features=2048, out_features=1000, bias=True)\n", + ")" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import torch\n", + "\n", + "torch.hub._validate_not_a_forked_repo=lambda a,b,c: True\n", + "\n", + "resnet50_model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)\n", + "resnet50_model.eval()" + ] + }, + { + "cell_type": "markdown", + "id": "0a67e8db", + "metadata": {}, + "source": [ + "### Build simple utility functions" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "60286396", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import time\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def rn50_preprocess():\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " return preprocess\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = rn50_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "# benchmarking models\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + " print('Images processed per second=', int(1000*input_shape[0]/(np.mean(timings)*1000)))\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))" + ] + }, + { + "cell_type": "markdown", + "id": "21402d53", + "metadata": {}, + "source": [ + "Let's test our util functions on the model we have set up, starting with simple predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bb3e4a0d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49788108468055725\n", + "./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6442285180091858\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899841547012329\n", + "./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.45675724744796753\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, resnet50_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "markdown", + "id": "2fc7f347", + "metadata": {}, + "source": [ + "Onwards, to benchmarking." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f182b433", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 10.01 ms\n", + "Images processed per second= 1598\n", + "Iteration 20/100, ave batch time 10.01 ms\n", + "Images processed per second= 1598\n", + "Iteration 30/100, ave batch time 10.21 ms\n", + "Images processed per second= 1566\n", + "Iteration 40/100, ave batch time 10.33 ms\n", + "Images processed per second= 1549\n", + "Iteration 50/100, ave batch time 10.31 ms\n", + "Images processed per second= 1552\n", + "Iteration 60/100, ave batch time 10.25 ms\n", + "Images processed per second= 1560\n", + "Iteration 70/100, ave batch time 10.20 ms\n", + "Images processed per second= 1568\n", + "Iteration 80/100, ave batch time 10.18 ms\n", + "Images processed per second= 1572\n", + "Iteration 90/100, ave batch time 10.16 ms\n", + "Images processed per second= 1574\n", + "Iteration 100/100, ave batch time 10.15 ms\n", + "Images processed per second= 1575\n", + "Input shape: torch.Size([16, 3, 224, 224])\n", + "Output features size: torch.Size([16, 1000])\n", + "Average batch time: 10.15 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = resnet50_model.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(16, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "21e56cdf", + "metadata": {}, + "source": [ + "---\n", + "## Benchmarking with Torch-TRT (without dynamic shapes)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "8c9ed780", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "trt_model_without_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((32, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 33\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "58a4ba94", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 6.10 ms\n", + "Images processed per second= 5242\n", + "Iteration 20/100, ave batch time 6.12 ms\n", + "Images processed per second= 5231\n", + "Iteration 30/100, ave batch time 6.14 ms\n", + "Images processed per second= 5215\n", + "Iteration 40/100, ave batch time 6.14 ms\n", + "Images processed per second= 5207\n", + "Iteration 50/100, ave batch time 6.15 ms\n", + "Images processed per second= 5202\n", + "Iteration 60/100, ave batch time 6.28 ms\n", + "Images processed per second= 5094\n", + "Iteration 70/100, ave batch time 6.26 ms\n", + "Images processed per second= 5110\n", + "Iteration 80/100, ave batch time 6.25 ms\n", + "Images processed per second= 5118\n", + "Iteration 90/100, ave batch time 6.25 ms\n", + "Images processed per second= 5115\n", + "Iteration 100/100, ave batch time 6.40 ms\n", + "Images processed per second= 5002\n", + "Input shape: torch.Size([32, 3, 224, 224])\n", + "Output features size: torch.Size([32, 1000])\n", + "Average batch time: 6.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_without_ds, input_shape=(32, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "cd233b85", + "metadata": {}, + "source": [ + "With the baseline ready, we can proceed to the section working discussing dynamic shapes!" + ] + }, + { + "cell_type": "markdown", + "id": "bd5746da", + "metadata": {}, + "source": [ + "---\n", + "## Working with Dynamic shapes in Torch TRT\n", + "\n", + "Enabling \"Dynamic Shaped\" tensors to be used is essentially enabling the ability to defer defining the shape of tensors until runetime. Torch TensorRT simply leverages TensorRT's Dynamic shape support. You can read more about TensorRT's implementation in the [TensorRT Documentation](https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#work_dynamic_shapes).\n", + "\n", + "#### How can you use this feature?\n", + "\n", + "To make use of dynamic shapes, you need to provide three shapes:\n", + "* `min_shape`: The minimum size of the tensor considered for optimizations.\n", + "* `opt_shape`: The optimizations will be done with an effort to maximize performance for this shape.\n", + "* `min_shape`: The maximum size of the tensor considered for optimizations.\n", + "\n", + "Generally, users can expect best performance within the specified ranges. Performance for other shapes may be be lower for other shapes (depending on the model ops and GPU used)\n", + "\n", + "In the following example, we will showcase varing batch size, which is the zeroth dimension of our input tensors. As Convolution operations require that the channel dimension be a build-time constant, we won't be changing sizes of other channels in this example, but for models which contain ops conducive to changes in other channels, this functionality can be freely used." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9a04007d", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_with_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input(\n", + " min_shape=(16, 3, 224, 224),\n", + " opt_shape=(32, 3, 224, 224),\n", + " max_shape=(64, 3, 224, 224),\n", + " dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 33\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f0babc85", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 3.88 ms\n", + "Images processed per second= 4122\n", + "Iteration 20/100, ave batch time 3.89 ms\n", + "Images processed per second= 4116\n", + "Iteration 30/100, ave batch time 3.88 ms\n", + "Images processed per second= 4123\n", + "Iteration 40/100, ave batch time 3.86 ms\n", + "Images processed per second= 4142\n", + "Iteration 50/100, ave batch time 3.85 ms\n", + "Images processed per second= 4156\n", + "Iteration 60/100, ave batch time 3.84 ms\n", + "Images processed per second= 4166\n", + "Iteration 70/100, ave batch time 3.84 ms\n", + "Images processed per second= 4170\n", + "Iteration 80/100, ave batch time 3.83 ms\n", + "Images processed per second= 4172\n", + "Iteration 90/100, ave batch time 3.83 ms\n", + "Images processed per second= 4176\n", + "Iteration 100/100, ave batch time 3.83 ms\n", + "Images processed per second= 4178\n", + "Input shape: torch.Size([16, 3, 224, 224])\n", + "Output features size: torch.Size([16, 1000])\n", + "Average batch time: 3.83 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(16, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "e86a3541", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 6.71 ms\n", + "Images processed per second= 4767\n", + "Iteration 20/100, ave batch time 6.48 ms\n", + "Images processed per second= 4935\n", + "Iteration 30/100, ave batch time 6.39 ms\n", + "Images processed per second= 5005\n", + "Iteration 40/100, ave batch time 6.38 ms\n", + "Images processed per second= 5014\n", + "Iteration 50/100, ave batch time 6.38 ms\n", + "Images processed per second= 5016\n", + "Iteration 60/100, ave batch time 6.37 ms\n", + "Images processed per second= 5020\n", + "Iteration 70/100, ave batch time 6.37 ms\n", + "Images processed per second= 5024\n", + "Iteration 80/100, ave batch time 6.37 ms\n", + "Images processed per second= 5027\n", + "Iteration 90/100, ave batch time 6.37 ms\n", + "Images processed per second= 5026\n", + "Iteration 100/100, ave batch time 6.38 ms\n", + "Images processed per second= 5018\n", + "Input shape: torch.Size([32, 3, 224, 224])\n", + "Output features size: torch.Size([32, 1000])\n", + "Average batch time: 6.38 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(32, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "35800f63", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 12.31 ms\n", + "Images processed per second= 5197\n", + "Iteration 20/100, ave batch time 12.42 ms\n", + "Images processed per second= 5153\n", + "Iteration 30/100, ave batch time 12.85 ms\n", + "Images processed per second= 4980\n", + "Iteration 40/100, ave batch time 12.71 ms\n", + "Images processed per second= 5033\n", + "Iteration 50/100, ave batch time 12.67 ms\n", + "Images processed per second= 5052\n", + "Iteration 60/100, ave batch time 12.63 ms\n", + "Images processed per second= 5067\n", + "Iteration 70/100, ave batch time 12.58 ms\n", + "Images processed per second= 5088\n", + "Iteration 80/100, ave batch time 12.56 ms\n", + "Images processed per second= 5096\n", + "Iteration 90/100, ave batch time 12.55 ms\n", + "Images processed per second= 5100\n", + "Iteration 100/100, ave batch time 12.57 ms\n", + "Images processed per second= 5091\n", + "Input shape: torch.Size([64, 3, 224, 224])\n", + "Output features size: torch.Size([64, 1000])\n", + "Average batch time: 12.57 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(64, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "f87a75bd", + "metadata": {}, + "source": [ + "## What's Next?\n", + "\n", + "Check out the [TensorRT Getting started page](https://developer.nvidia.com/tensorrt-getting-started) for more tutorials, or visit the Torch-TensorRT [documentation](https://nvidia.github.io/Torch-TensorRT/) for more information!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.1.1/_sources/_notebooks/lenet-getting-started.ipynb.txt b/docs/v1.1.1/_sources/_notebooks/lenet-getting-started.ipynb.txt new file mode 100644 index 0000000000..2db954946d --- /dev/null +++ b/docs/v1.1.1/_sources/_notebooks/lenet-getting-started.ipynb.txt @@ -0,0 +1,718 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - LeNet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network. \n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [Creating TorchScript modules](#2)\n", + "1. [Compiling with Torch-TensorRT](#3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in `notebooks/README` to prepare a Docker container, within which you can run this notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)\n", + "\u001b[K |████████████████████████████████| 121 kB 12.7 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)\n", + "\u001b[K |████████████████████████████████| 243 kB 115.0 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)\n", + "Collecting widgetsnbextension~=3.5.0\n", + " Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 122.5 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Thu Feb 10 22:01:27 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:09:00.0 Off | N/A |\n", + "| 0% 42C P8 20W / 320W | 0MiB / 10240MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org\n", + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. Creating TorchScript modules\n", + "\n", + "Here we create two submodules for a feature extractor and a classifier and stitch them together in a single LeNet module. In this case this is overkill but modules give us granular control over our program including where we decide to optimize and where we don't. It is also the unit that the TorchScript compiler operates on. So you can decide to only convert/optimize the feature extractor and leave the classifier in standard PyTorch or you can convert the whole thing. When compiling your module to TorchScript, there are two paths: Tracing and Scripting. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import torch \n", + "from torch import nn\n", + "import torch.nn.functional as F\n", + "\n", + "class LeNetFeatExtractor(nn.Module):\n", + " def __init__(self):\n", + " super(LeNetFeatExtractor, self).__init__()\n", + " self.conv1 = nn.Conv2d(1, 128, 3)\n", + " self.conv2 = nn.Conv2d(128, 16, 3)\n", + "\n", + " def forward(self, x):\n", + " x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))\n", + " x = F.max_pool2d(F.relu(self.conv2(x)), 2)\n", + " return x\n", + "\n", + "class LeNetClassifier(nn.Module):\n", + " def __init__(self):\n", + " super(LeNetClassifier, self).__init__()\n", + " self.fc1 = nn.Linear(16 * 6 * 6, 120)\n", + " self.fc2 = nn.Linear(120, 84)\n", + " self.fc3 = nn.Linear(84, 10)\n", + "\n", + " def forward(self, x):\n", + " x = torch.flatten(x,1)\n", + " x = F.relu(self.fc1(x))\n", + " x = F.relu(self.fc2(x))\n", + " x = self.fc3(x)\n", + " return x\n", + "\n", + "class LeNet(nn.Module):\n", + " def __init__(self):\n", + " super(LeNet, self).__init__()\n", + " self.feat = LeNetFeatExtractor()\n", + " self.classifer = LeNetClassifier()\n", + "\n", + " def forward(self, x):\n", + " x = self.feat(x)\n", + " x = self.classifer(x)\n", + " return x\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us define a helper function to benchmark a model." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%100==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " \n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### PyTorch model" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LeNet(\n", + " (feat): LeNetFeatExtractor(\n", + " (conv1): Conv2d(1, 128, kernel_size=(3, 3), stride=(1, 1))\n", + " (conv2): Conv2d(128, 16, kernel_size=(3, 3), stride=(1, 1))\n", + " )\n", + " (classifer): LeNetClassifier(\n", + " (fc1): Linear(in_features=576, out_features=120, bias=True)\n", + " (fc2): Linear(in_features=120, out_features=84, bias=True)\n", + " (fc3): Linear(in_features=84, out_features=10, bias=True)\n", + " )\n", + ")" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = LeNet()\n", + "model.to(\"cuda\").eval()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When compiling your module to TorchScript, there are two paths: Tracing and Scripting. \n", + " \n", + "### Tracing\n", + "\n", + "Tracing follows the path of execution when the module is called and records what happens. This recording is what the TorchScript IR will describe. To trace an instance of our LeNet module, we can call torch.jit.trace with an example input. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LeNet(\n", + " original_name=LeNet\n", + " (feat): LeNetFeatExtractor(\n", + " original_name=LeNetFeatExtractor\n", + " (conv1): Conv2d(original_name=Conv2d)\n", + " (conv2): Conv2d(original_name=Conv2d)\n", + " )\n", + " (classifer): LeNetClassifier(\n", + " original_name=LeNetClassifier\n", + " (fc1): Linear(original_name=Linear)\n", + " (fc2): Linear(original_name=Linear)\n", + " (fc3): Linear(original_name=Linear)\n", + " )\n", + ")" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "traced_model = torch.jit.trace(model, torch.empty([1,1,32,32]).to(\"cuda\"))\n", + "traced_model" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(traced_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Scripting\n", + "\n", + "Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing simply follows the execution of your module, it cannot pick up control flow for instance, it will only follow the code path that a particular input triggers. By working from the Python code, the compiler can include these components. We can run the script compiler on our LeNet module by calling torch.jit.script.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "model = LeNet().to(\"cuda\").eval()\n", + "script_model = torch.jit.script(model)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RecursiveScriptModule(\n", + " original_name=LeNet\n", + " (feat): RecursiveScriptModule(\n", + " original_name=LeNetFeatExtractor\n", + " (conv1): RecursiveScriptModule(original_name=Conv2d)\n", + " (conv2): RecursiveScriptModule(original_name=Conv2d)\n", + " )\n", + " (classifer): RecursiveScriptModule(\n", + " original_name=LeNetClassifier\n", + " (fc1): RecursiveScriptModule(original_name=Linear)\n", + " (fc2): RecursiveScriptModule(original_name=Linear)\n", + " (fc3): RecursiveScriptModule(original_name=Linear)\n", + " )\n", + ")" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "script_model" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(script_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Compiling with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TorchScript traced model\n", + "\n", + "First, we compile the TorchScript traced model with Torch-TensorRT. Notice the performance impact." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# We use a batch-size of 1024, and half precision\n", + "trt_ts_module = torch_tensorrt.compile(traced_model, inputs=[torch_tensorrt.Input(\n", + " min_shape=[1024, 1, 32, 32],\n", + " opt_shape=[1024, 1, 33, 33],\n", + " max_shape=[1024, 1, 34, 34],\n", + " dtype=torch.half\n", + " )], \n", + " enabled_precisions = {torch.half})\n", + "\n", + "input_data = torch.randn((1024, 1, 32, 32))\n", + "input_data = input_data.half().to(\"cuda\")\n", + "\n", + "input_data = input_data.half()\n", + "result = trt_ts_module(input_data)\n", + "torch.jit.save(trt_ts_module, \"trt_ts_module.ts\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 1.41 ms\n", + "Iteration 200/1000, ave batch time 1.40 ms\n", + "Iteration 300/1000, ave batch time 1.40 ms\n", + "Iteration 400/1000, ave batch time 1.39 ms\n", + "Iteration 500/1000, ave batch time 1.40 ms\n", + "Iteration 600/1000, ave batch time 1.40 ms\n", + "Iteration 700/1000, ave batch time 1.40 ms\n", + "Iteration 800/1000, ave batch time 1.40 ms\n", + "Iteration 900/1000, ave batch time 1.40 ms\n", + "Iteration 1000/1000, ave batch time 1.40 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 1.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_ts_module, input_shape=(1024, 1, 32, 32), dtype=\"fp16\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TorchScript script model\n", + "\n", + "Next, we compile the TorchScript script model with Torch-TensorRT. Notice the performance impact." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "trt_script_module = torch_tensorrt.compile(script_model, inputs = [torch_tensorrt.Input(\n", + " min_shape=[1024, 1, 32, 32],\n", + " opt_shape=[1024, 1, 33, 33],\n", + " max_shape=[1024, 1, 34, 34],\n", + " dtype=torch.half\n", + " )],\n", + " enabled_precisions={torch.half})\n", + "\n", + "input_data = torch.randn((1024, 1, 32, 32))\n", + "input_data = input_data.half().to(\"cuda\")\n", + "\n", + "input_data = input_data.half()\n", + "result = trt_script_module(input_data)\n", + "torch.jit.save(trt_script_module, \"trt_script_module.ts\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 1.43 ms\n", + "Iteration 200/1000, ave batch time 1.41 ms\n", + "Iteration 300/1000, ave batch time 1.40 ms\n", + "Iteration 400/1000, ave batch time 1.42 ms\n", + "Iteration 500/1000, ave batch time 1.42 ms\n", + "Iteration 600/1000, ave batch time 1.41 ms\n", + "Iteration 700/1000, ave batch time 1.41 ms\n", + "Iteration 800/1000, ave batch time 1.40 ms\n", + "Iteration 900/1000, ave batch time 1.40 ms\n", + "Iteration 1000/1000, ave batch time 1.40 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 1.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_script_module, input_shape=(1024, 1, 32, 32), dtype=\"fp16\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT and test the performance impact of the optimization.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_sources/_notebooks/ssd-object-detection-demo.ipynb.txt b/docs/v1.1.1/_sources/_notebooks/ssd-object-detection-demo.ipynb.txt new file mode 100644 index 0000000000..f2a0bd8063 --- /dev/null +++ b/docs/v1.1.1/_sources/_notebooks/ssd-object-detection-demo.ipynb.txt @@ -0,0 +1,943 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2020 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Object Detection with Torch-TensorRT (SSD)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained.\n", + "\n", + "## Contents\n", + "1. [Requirements](#1)\n", + "2. [SSD Overview](#2)\n", + "3. [Creating TorchScript modules](#3)\n", + "4. [Compiling with Torch-TensorRT](#4)\n", + "5. [Running Inference](#5)\n", + "6. [Measuring Speedup](#6)\n", + "7. [Conclusion](#7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in `notebooks/README` to prepare a Docker container, within which you can run this demo notebook.\n", + "\n", + "In addition to that, run the following cell to obtain additional libraries specific to this demo." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting scikit-image==0.19.1\n", + " Downloading scikit_image-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.8 MB)\n", + "\u001b[K |████████████████████████████████| 13.8 MB 8.8 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: networkx>=2.2 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (2.6.3)\n", + "Collecting tifffile>=2019.7.26\n", + " Downloading tifffile-2022.3.16-py3-none-any.whl (179 kB)\n", + "\u001b[K |████████████████████████████████| 179 kB 110.1 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (21.3)\n", + "Requirement already satisfied: scipy>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.6.3)\n", + "Requirement already satisfied: numpy>=1.17.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.22.2)\n", + "Collecting imageio>=2.4.1\n", + " Downloading imageio-2.16.1-py3-none-any.whl (3.3 MB)\n", + "\u001b[K |████████████████████████████████| 3.3 MB 42.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (9.0.0)\n", + "Collecting PyWavelets>=1.1.1\n", + " Downloading PyWavelets-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB)\n", + "\u001b[K |████████████████████████████████| 6.9 MB 61.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->scikit-image==0.19.1) (3.0.7)\n", + "Installing collected packages: tifffile, PyWavelets, imageio, scikit-image\n", + "Successfully installed PyWavelets-1.3.0 imageio-2.16.1 scikit-image-0.19.1 tifffile-2022.3.16\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.7.0-py2.py3-none-any.whl (123 kB)\n", + "\u001b[K |████████████████████████████████| 123 kB 12.1 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.9.0)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.1.0-py3-none-any.whl (245 kB)\n", + "\u001b[K |████████████████████████████████| 245 kB 60.6 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.0.1)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Collecting widgetsnbextension~=3.6.0\n", + " Downloading widgetsnbextension-3.6.0-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 35.2 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.1.4)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.26)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: black in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (22.1.0)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.4.2)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: pathspec>=0.9.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.9.0)\n", + "Requirement already satisfied: tomli>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: mypy-extensions>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.4.3)\n", + "Requirement already satisfied: click>=8.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (8.0.3)\n", + "Requirement already satisfied: platformdirs>=2 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.4.1)\n", + "Requirement already satisfied: typing-extensions>=3.10.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (4.0.1)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.11)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.7)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.2)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)\n", + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.7.0 jupyterlab-widgets-1.1.0 widgetsnbextension-3.6.0\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install scikit-image==0.19.1\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 2. SSD\n", + "\n", + "### Single Shot MultiBox Detector model for object detection\n", + "\n", + "_ | _\n", + "- | -\n", + "![alt](https://pytorch.org/assets/images/ssd_diagram.png) | ![alt](https://pytorch.org/assets/images/ssd.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our SSD model pretrained on [COCO](https://cocodataset.org/#home) from there.\n", + "\n", + "### Model Description\n", + "\n", + "This SSD300 model is based on the\n", + "[SSD: Single Shot MultiBox Detector](https://arxiv.org/abs/1512.02325) paper, which\n", + "describes SSD as “a method for detecting objects in images using a single deep neural network\".\n", + "The input size is fixed to 300x300.\n", + "\n", + "The main difference between this model and the one described in the paper is in the backbone.\n", + "Specifically, the VGG model is obsolete and is replaced by the ResNet-50 model.\n", + "\n", + "From the\n", + "[Speed/accuracy trade-offs for modern convolutional object detectors](https://arxiv.org/abs/1611.10012)\n", + "paper, the following enhancements were made to the backbone:\n", + "* The conv5_x, avgpool, fc and softmax layers were removed from the original classification model.\n", + "* All strides in conv4_x are set to 1x1.\n", + "\n", + "The backbone is followed by 5 additional convolutional layers.\n", + "In addition to the convolutional layers, we attached 6 detection heads:\n", + "* The first detection head is attached to the last conv4_x layer.\n", + "* The other five detection heads are attached to the corresponding 5 additional layers.\n", + "\n", + "Detector heads are similar to the ones referenced in the paper, however,\n", + "they are enhanced by additional BatchNorm layers after each convolution.\n", + "\n", + "More information about this SSD model is available at Nvidia's \"DeepLearningExamples\" Github [here](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "torch.hub._validate_not_a_forked_repo=lambda a,b,c: True" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading: \"https://github.com/NVIDIA/DeepLearningExamples/archive/torchhub.zip\" to /root/.cache/torch/hub/torchhub.zip\n", + "/root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub/PyTorch/Classification/ConvNets/image_classification/models/efficientnet.py:17: UserWarning: pytorch_quantization module not found, quantization will not be available\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "['nvidia_convnets_processing_utils',\n", + " 'nvidia_efficientnet',\n", + " 'nvidia_efficientnet_b0',\n", + " 'nvidia_efficientnet_b4',\n", + " 'nvidia_efficientnet_widese_b0',\n", + " 'nvidia_efficientnet_widese_b4',\n", + " 'nvidia_resneXt',\n", + " 'nvidia_resnet50',\n", + " 'nvidia_resnext101_32x4d',\n", + " 'nvidia_se_resnext101_32x4d',\n", + " 'nvidia_ssd',\n", + " 'nvidia_ssd_processing_utils',\n", + " 'nvidia_tacotron2',\n", + " 'nvidia_tts_utils',\n", + " 'nvidia_waveglow']" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# List of available models in PyTorch Hub from Nvidia/DeepLearningExamples\n", + "torch.hub.list('NVIDIA/DeepLearningExamples:torchhub')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using cache found in /root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub\n", + "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1c7cf3e1635d4a2b9c8731b7fc9ce724", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0.00/97.8M [00:0040%) in a more comprehensive format.\n", + "results_per_input = utils.decode_results(detections_batch)\n", + "best_results_per_input = [utils.pick_best(results, 0.40) for results in results_per_input]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualize results" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "import matplotlib.patches as patches\n", + "\n", + "# The utility plots the images and predicted bounding boxes (with confidence scores).\n", + "def plot_results(best_results):\n", + " for image_idx in range(len(best_results)):\n", + " fig, ax = plt.subplots(1)\n", + " # Show original, denormalized image...\n", + " image = inputs[image_idx] / 2 + 0.5\n", + " ax.imshow(image)\n", + " # ...with detections\n", + " bboxes, classes, confidences = best_results[image_idx]\n", + " for idx in range(len(bboxes)):\n", + " left, bot, right, top = bboxes[idx]\n", + " x, y, w, h = [val * 300 for val in [left, bot, right - left, top - bot]]\n", + " rect = patches.Rectangle((x, y), w, h, linewidth=1, edgecolor='r', facecolor='none')\n", + " ax.add_patch(rect)\n", + " ax.text(x, y, \"{} {:.0f}%\".format(classes_to_labels[classes[idx] - 1], confidences[idx]*100), bbox=dict(facecolor='white', alpha=0.5))\n", + " plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Visualize results without Torch-TensorRT\n", + "plot_results(best_results_per_input)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmark utility" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "# Helper function to benchmark the model\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " pred_loc, pred_label = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output location prediction size:\", pred_loc.size())\n", + " print(\"Output label prediction size:\", pred_label.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We check how well the model performs **before** we use Torch-TensorRT" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 165.38 ms\n", + "Iteration 20/100, avg batch time 165.99 ms\n", + "Iteration 30/100, avg batch time 166.04 ms\n", + "Iteration 40/100, avg batch time 166.32 ms\n", + "Iteration 50/100, avg batch time 166.49 ms\n", + "Iteration 60/100, avg batch time 166.74 ms\n", + "Iteration 70/100, avg batch time 166.88 ms\n", + "Iteration 80/100, avg batch time 167.05 ms\n", + "Iteration 90/100, avg batch time 167.18 ms\n", + "Iteration 100/100, avg batch time 167.31 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 167.31 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = ssd300.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(128, 3, 300, 300), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 3. Creating TorchScript modules " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To compile with Torch-TensorRT, the model must first be in **TorchScript**. TorchScript is a programming language included in PyTorch which removes the Python dependency normal PyTorch models have. This conversion is done via a JIT compiler which given a PyTorch Module will generate an equivalent TorchScript Module. There are two paths that can be used to generate TorchScript: **Tracing** and **Scripting**.
\n", + "- Tracing follows execution of PyTorch generating ops in TorchScript corresponding to what it sees.
\n", + "- Scripting does an analysis of the Python code and generates TorchScript, this allows the resulting graph to include control flow which tracing cannot do. \n", + "\n", + "Tracing however due to its simplicity is more likely to compile successfully with Torch-TensorRT (though both systems are supported)." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "model = ssd300.eval().to(\"cuda\")\n", + "traced_model = torch.jit.trace(model, [torch.randn((1,3,300,300)).to(\"cuda\")])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If required, we can also save this model and use it independently of Python." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# This is just an example, and not required for the purposes of this demo\n", + "torch.jit.save(traced_model, \"ssd_300_traced.jit.pt\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 165.53 ms\n", + "Iteration 20/100, avg batch time 166.19 ms\n", + "Iteration 30/100, avg batch time 166.12 ms\n", + "Iteration 40/100, avg batch time 166.16 ms\n", + "Iteration 50/100, avg batch time 166.24 ms\n", + "Iteration 60/100, avg batch time 166.33 ms\n", + "Iteration 70/100, avg batch time 166.43 ms\n", + "Iteration 80/100, avg batch time 166.44 ms\n", + "Iteration 90/100, avg batch time 166.53 ms\n", + "Iteration 100/100, avg batch time 166.59 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 166.59 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input with Torchscript compiled modules\n", + "benchmark(traced_model, input_shape=(128, 3, 300, 300), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 4. Compiling with Torch-TensorRT\n", + "TorchScript modules behave just like normal PyTorch modules and are intercompatible. From TorchScript we can now compile a TensorRT based module. This module will still be implemented in TorchScript but all the computation will be done in TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model = torch_tensorrt.compile(traced_model, \n", + " inputs= [torch_tensorrt.Input((3, 3, 300, 300), dtype=torch.half)],\n", + " enabled_precisions= {torch.half}, # Run with FP16\n", + " workspace_size= 1 << 20\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 5. Running Inference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we run object detection" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# using a Torch-TensorRT module is exactly the same as how we usually do inference in PyTorch i.e. model(inputs)\n", + "detections_batch = trt_model(tensor.to(torch.half)) # convert the input to half precision\n", + "\n", + "# By default, raw output from SSD network per input image contains 8732 boxes with \n", + "# localization and class probability distribution. \n", + "# Let’s filter this output to only get reasonable detections (confidence>40%) in a more comprehensive format.\n", + "results_per_input = utils.decode_results(detections_batch)\n", + "best_results_per_input_trt = [utils.pick_best(results, 0.40) for results in results_per_input]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's visualize our predictions!\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Visualize results with Torch-TensorRT\n", + "plot_results(best_results_per_input_trt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We get similar results as before!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 6. Measuring Speedup\n", + "We can run the benchmark function again to see the speedup gained! Compare this result with the same batch-size of input in the case without Torch-TensorRT above." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 45.88 ms\n", + "Iteration 20/100, avg batch time 46.20 ms\n", + "Iteration 30/100, avg batch time 46.10 ms\n", + "Iteration 40/100, avg batch time 46.19 ms\n", + "Iteration 50/100, avg batch time 46.15 ms\n", + "Iteration 60/100, avg batch time 46.17 ms\n", + "Iteration 70/100, avg batch time 46.19 ms\n", + "Iteration 80/100, avg batch time 46.20 ms\n", + "Iteration 90/100, avg batch time 46.22 ms\n", + "Iteration 100/100, avg batch time 46.21 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 46.21 ms\n" + ] + } + ], + "source": [ + "batch_size = 128\n", + "\n", + "# Recompiling with batch_size we use for evaluating performance\n", + "trt_model = torch_tensorrt.compile(traced_model,\n", + " inputs = [torch_tensorrt.Input((batch_size, 3, 300, 300), dtype=torch.half)],\n", + " enabled_precisions= {torch.half}, # Run with FP16\n", + " workspace_size= 1 << 20\n", + ")\n", + "\n", + "benchmark(trt_model, input_shape=(batch_size, 3, 300, 300), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 7. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling a TorchScript SSD300 model with Torch-TensorRT, and tested the performance impact of the optimization. We find that using the Torch-TensorRT compiled model, we gain significant speedup in inference without any noticeable drop in performance!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Details\n", + "For detailed information on model input and output,\n", + "training recipies, inference and performance visit:\n", + "[github](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)\n", + "and/or [NGC](https://ngc.nvidia.com/catalog/model-scripts/nvidia:ssd_for_pytorch)\n", + "\n", + "### References\n", + "\n", + " - [SSD: Single Shot MultiBox Detector](https://arxiv.org/abs/1512.02325) paper\n", + " - [Speed/accuracy trade-offs for modern convolutional object detectors](https://arxiv.org/abs/1611.10012) paper\n", + " - [SSD on NGC](https://ngc.nvidia.com/catalog/model-scripts/nvidia:ssd_for_pytorch)\n", + " - [SSD on github](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.1.1/_sources/_notebooks/vgg-qat.ipynb.txt b/docs/v1.1.1/_sources/_notebooks/vgg-qat.ipynb.txt new file mode 100644 index 0000000000..cca771ad92 --- /dev/null +++ b/docs/v1.1.1/_sources/_notebooks/vgg-qat.ipynb.txt @@ -0,0 +1,1200 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8033b2eb", + "metadata": {}, + "source": [ + "# Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "id": "69ec3ca7", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "Quantization Aware training (QAT) simulates quantization during training by quantizing weights and activation layers. This will help to reduce the loss in accuracy when we convert the network trained in FP32 to INT8 for faster inference. QAT introduces additional nodes in the graph which will be used to learn the dynamic ranges of weights and activation layers. In this notebook, we illustrate the following steps from training to inference of a QAT model in Torch-TensorRT.\n", + "\n", + "1. [Requirements](#1)\n", + "2. [VGG16 Overview](#2)\n", + "3. [Training a baseline VGG16 model](#3)\n", + "4. [Apply Quantization](#4)\n", + "5. [Model calibration](#5)\n", + "6. [Quantization Aware training](#6)\n", + "7. [Export to Torchscript](#7)\n", + "8. [Inference using Torch-TensorRT](#8)\n", + "8. [References](#8)" + ] + }, + { + "cell_type": "markdown", + "id": "79655ea8", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "Please install the required dependencies and import these libraries accordingly" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14a72941", + "metadata": {}, + "outputs": [], + "source": [ + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6493e915", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.1.0\n" + ] + } + ], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "import torch.optim as optim\n", + "import torch.utils.data as data\n", + "import torchvision.transforms as transforms\n", + "import torchvision.datasets as datasets\n", + "import torch_tensorrt\n", + "\n", + "from torch.utils.tensorboard import SummaryWriter\n", + "\n", + "import pytorch_quantization\n", + "from pytorch_quantization import nn as quant_nn\n", + "from pytorch_quantization import quant_modules\n", + "from pytorch_quantization.tensor_quant import QuantDescriptor\n", + "from pytorch_quantization import calib\n", + "from tqdm import tqdm\n", + "\n", + "print(pytorch_quantization.__version__)\n", + "\n", + "import os\n", + "import sys\n", + "sys.path.insert(0, \"../examples/int8/training/vgg16\")\n", + "from vgg16 import vgg16\n" + ] + }, + { + "cell_type": "markdown", + "id": "4de5060a", + "metadata": {}, + "source": [ + "\n", + "## 2. VGG16 Overview\n", + "### Very Deep Convolutional Networks for Large-Scale Image Recognition\n", + "VGG is one of the earliest family of image classification networks that first used small (3x3) convolution filters and achieved significant improvements on ImageNet recognition challenge. The network architecture looks as follows\n", + "\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "7a5afc49", + "metadata": {}, + "source": [ + "\n", + "## 3. Training a baseline VGG16 model\n", + "We train VGG16 on CIFAR10 dataset. Define training and testing datasets and dataloaders. This will download the CIFAR 10 data in your `data` directory. Data preprocessing is performed using `torchvision` transforms. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5d2c4c45", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Files already downloaded and verified\n", + "Files already downloaded and verified\n" + ] + } + ], + "source": [ + "classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n", + "\n", + "# ========== Define Training dataset and dataloaders =============#\n", + "training_dataset = datasets.CIFAR10(root='./data',\n", + " train=True,\n", + " download=True,\n", + " transform=transforms.Compose([\n", + " transforms.RandomCrop(32, padding=4),\n", + " transforms.RandomHorizontalFlip(),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n", + " ]))\n", + "\n", + "training_dataloader = torch.utils.data.DataLoader(training_dataset,\n", + " batch_size=32,\n", + " shuffle=True,\n", + " num_workers=2)\n", + "\n", + "# ========== Define Testing dataset and dataloaders =============#\n", + "testing_dataset = datasets.CIFAR10(root='./data',\n", + " train=False,\n", + " download=True,\n", + " transform=transforms.Compose([\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n", + " ]))\n", + "\n", + "testing_dataloader = torch.utils.data.DataLoader(testing_dataset,\n", + " batch_size=16,\n", + " shuffle=False,\n", + " num_workers=2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2bd092b3", + "metadata": {}, + "outputs": [], + "source": [ + "def train(model, dataloader, crit, opt, epoch):\n", + "# global writer\n", + " model.train()\n", + " running_loss = 0.0\n", + " for batch, (data, labels) in enumerate(dataloader):\n", + " data, labels = data.cuda(), labels.cuda(non_blocking=True)\n", + " opt.zero_grad()\n", + " out = model(data)\n", + " loss = crit(out, labels)\n", + " loss.backward()\n", + " opt.step()\n", + "\n", + " running_loss += loss.item()\n", + " if batch % 500 == 499:\n", + " print(\"Batch: [%5d | %5d] loss: %.3f\" % (batch + 1, len(dataloader), running_loss / 100))\n", + " running_loss = 0.0\n", + " \n", + "def test(model, dataloader, crit, epoch):\n", + " global writer\n", + " global classes\n", + " total = 0\n", + " correct = 0\n", + " loss = 0.0\n", + " class_probs = []\n", + " class_preds = []\n", + " model.eval()\n", + " with torch.no_grad():\n", + " for data, labels in dataloader:\n", + " data, labels = data.cuda(), labels.cuda(non_blocking=True)\n", + " out = model(data)\n", + " loss += crit(out, labels)\n", + " preds = torch.max(out, 1)[1]\n", + " class_probs.append([F.softmax(i, dim=0) for i in out])\n", + " class_preds.append(preds)\n", + " total += labels.size(0)\n", + " correct += (preds == labels).sum().item()\n", + "\n", + " test_probs = torch.cat([torch.stack(batch) for batch in class_probs])\n", + " test_preds = torch.cat(class_preds)\n", + "\n", + " return loss / total, correct / total\n", + "\n", + "def save_checkpoint(state, ckpt_path=\"checkpoint.pth\"):\n", + " torch.save(state, ckpt_path)\n", + " print(\"Checkpoint saved\")" + ] + }, + { + "cell_type": "markdown", + "id": "c80a86cc", + "metadata": {}, + "source": [ + "*Define the VGG model that we are going to perfom QAT on.*" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8c564b8f", + "metadata": {}, + "outputs": [], + "source": [ + "# CIFAR 10 has 10 classes\n", + "model = vgg16(num_classes=len(classes), init_weights=False)\n", + "model = model.cuda()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "abc00452", + "metadata": {}, + "outputs": [], + "source": [ + "# Declare Learning rate\n", + "lr = 0.1\n", + "state = {}\n", + "state[\"lr\"] = lr\n", + "\n", + "# Use cross entropy loss for classification and SGD optimizer\n", + "crit = nn.CrossEntropyLoss()\n", + "opt = optim.SGD(model.parameters(), lr=state[\"lr\"], momentum=0.9, weight_decay=1e-4)\n", + "\n", + "\n", + "# Adjust learning rate based on epoch number\n", + "def adjust_lr(optimizer, epoch):\n", + " global state\n", + " new_lr = lr * (0.5**(epoch // 12)) if state[\"lr\"] > 1e-7 else state[\"lr\"]\n", + " if new_lr != state[\"lr\"]:\n", + " state[\"lr\"] = new_lr\n", + " print(\"Updating learning rate: {}\".format(state[\"lr\"]))\n", + " for param_group in optimizer.param_groups:\n", + " param_group[\"lr\"] = state[\"lr\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d80865a2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch: [ 1 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 13.288\n", + "Batch: [ 1000 | 1563] loss: 11.345\n", + "Batch: [ 1500 | 1563] loss: 11.008\n", + "Test Loss: 0.13388 Test Acc: 13.23%\n", + "Epoch: [ 2 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 10.742\n", + "Batch: [ 1000 | 1563] loss: 10.311\n", + "Batch: [ 1500 | 1563] loss: 10.141\n", + "Test Loss: 0.11888 Test Acc: 23.96%\n", + "Epoch: [ 3 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.877\n", + "Batch: [ 1000 | 1563] loss: 9.821\n", + "Batch: [ 1500 | 1563] loss: 9.818\n", + "Test Loss: 0.11879 Test Acc: 24.68%\n", + "Epoch: [ 4 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.677\n", + "Batch: [ 1000 | 1563] loss: 9.613\n", + "Batch: [ 1500 | 1563] loss: 9.504\n", + "Test Loss: 0.11499 Test Acc: 23.68%\n", + "Epoch: [ 5 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.560\n", + "Batch: [ 1000 | 1563] loss: 9.536\n", + "Batch: [ 1500 | 1563] loss: 9.309\n", + "Test Loss: 0.10990 Test Acc: 27.84%\n", + "Epoch: [ 6 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.254\n", + "Batch: [ 1000 | 1563] loss: 9.234\n", + "Batch: [ 1500 | 1563] loss: 9.188\n", + "Test Loss: 0.11594 Test Acc: 23.29%\n", + "Epoch: [ 7 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.141\n", + "Batch: [ 1000 | 1563] loss: 9.110\n", + "Batch: [ 1500 | 1563] loss: 9.013\n", + "Test Loss: 0.10732 Test Acc: 29.24%\n", + "Epoch: [ 8 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.120\n", + "Batch: [ 1000 | 1563] loss: 9.086\n", + "Batch: [ 1500 | 1563] loss: 8.948\n", + "Test Loss: 0.10732 Test Acc: 27.24%\n", + "Epoch: [ 9 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.941\n", + "Batch: [ 1000 | 1563] loss: 8.997\n", + "Batch: [ 1500 | 1563] loss: 9.028\n", + "Test Loss: 0.11299 Test Acc: 25.52%\n", + "Epoch: [ 10 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.927\n", + "Batch: [ 1000 | 1563] loss: 8.837\n", + "Batch: [ 1500 | 1563] loss: 8.860\n", + "Test Loss: 0.10130 Test Acc: 34.61%\n", + "Epoch: [ 11 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.953\n", + "Batch: [ 1000 | 1563] loss: 8.738\n", + "Batch: [ 1500 | 1563] loss: 8.724\n", + "Test Loss: 0.10018 Test Acc: 32.27%\n", + "Epoch: [ 12 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.721\n", + "Batch: [ 1000 | 1563] loss: 8.716\n", + "Batch: [ 1500 | 1563] loss: 8.701\n", + "Test Loss: 0.10070 Test Acc: 29.57%\n", + "Updating learning rate: 0.05\n", + "Epoch: [ 13 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 7.944\n", + "Batch: [ 1000 | 1563] loss: 7.649\n", + "Batch: [ 1500 | 1563] loss: 7.511\n", + "Test Loss: 0.08555 Test Acc: 44.62%\n", + "Epoch: [ 14 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 7.057\n", + "Batch: [ 1000 | 1563] loss: 6.944\n", + "Batch: [ 1500 | 1563] loss: 6.687\n", + "Test Loss: 0.08331 Test Acc: 52.27%\n", + "Epoch: [ 15 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 6.470\n", + "Batch: [ 1000 | 1563] loss: 6.439\n", + "Batch: [ 1500 | 1563] loss: 6.126\n", + "Test Loss: 0.07266 Test Acc: 58.02%\n", + "Epoch: [ 16 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.834\n", + "Batch: [ 1000 | 1563] loss: 5.801\n", + "Batch: [ 1500 | 1563] loss: 5.622\n", + "Test Loss: 0.06340 Test Acc: 65.17%\n", + "Epoch: [ 17 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.459\n", + "Batch: [ 1000 | 1563] loss: 5.442\n", + "Batch: [ 1500 | 1563] loss: 5.314\n", + "Test Loss: 0.05945 Test Acc: 67.22%\n", + "Epoch: [ 18 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.071\n", + "Batch: [ 1000 | 1563] loss: 5.145\n", + "Batch: [ 1500 | 1563] loss: 5.063\n", + "Test Loss: 0.06567 Test Acc: 64.46%\n", + "Epoch: [ 19 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.796\n", + "Batch: [ 1000 | 1563] loss: 4.781\n", + "Batch: [ 1500 | 1563] loss: 4.732\n", + "Test Loss: 0.05374 Test Acc: 71.87%\n", + "Epoch: [ 20 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.568\n", + "Batch: [ 1000 | 1563] loss: 4.564\n", + "Batch: [ 1500 | 1563] loss: 4.484\n", + "Test Loss: 0.05311 Test Acc: 71.12%\n", + "Epoch: [ 21 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.385\n", + "Batch: [ 1000 | 1563] loss: 4.302\n", + "Batch: [ 1500 | 1563] loss: 4.285\n", + "Test Loss: 0.05080 Test Acc: 74.29%\n", + "Epoch: [ 22 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.069\n", + "Batch: [ 1000 | 1563] loss: 4.105\n", + "Batch: [ 1500 | 1563] loss: 4.096\n", + "Test Loss: 0.04807 Test Acc: 75.20%\n", + "Epoch: [ 23 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 3.959\n", + "Batch: [ 1000 | 1563] loss: 3.898\n", + "Batch: [ 1500 | 1563] loss: 3.916\n", + "Test Loss: 0.04743 Test Acc: 75.81%\n", + "Epoch: [ 24 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 3.738\n", + "Batch: [ 1000 | 1563] loss: 3.847\n", + "Batch: [ 1500 | 1563] loss: 3.797\n", + "Test Loss: 0.04609 Test Acc: 76.42%\n", + "Updating learning rate: 0.025\n", + "Epoch: [ 25 / 25] LR: 0.025000\n", + "Batch: [ 500 | 1563] loss: 2.952\n", + "Batch: [ 1000 | 1563] loss: 2.906\n", + "Batch: [ 1500 | 1563] loss: 2.735\n", + "Test Loss: 0.03466 Test Acc: 82.00%\n", + "Checkpoint saved\n" + ] + } + ], + "source": [ + "# Train the model for 25 epochs to get ~80% accuracy.\n", + "num_epochs=25\n", + "for epoch in range(num_epochs):\n", + " adjust_lr(opt, epoch)\n", + " print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state[\"lr\"]))\n", + "\n", + " train(model, training_dataloader, crit, opt, epoch)\n", + " test_loss, test_acc = test(model, testing_dataloader, crit, epoch)\n", + "\n", + " print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n", + " \n", + "save_checkpoint({'epoch': epoch + 1,\n", + " 'model_state_dict': model.state_dict(),\n", + " 'acc': test_acc,\n", + " 'opt_state_dict': opt.state_dict(),\n", + " 'state': state},\n", + " ckpt_path=\"vgg16_base_ckpt\")" + ] + }, + { + "cell_type": "markdown", + "id": "e1044537", + "metadata": {}, + "source": [ + "\n", + "## 4. Apply Quantization" + ] + }, + { + "cell_type": "markdown", + "id": "c33b7f4e", + "metadata": {}, + "source": [ + "`quant_modules.initialize()` will ensure quantized version of modules will be called instead of original modules. For example, when you define a model with convolution, linear, pooling layers, `QuantConv2d`, `QuantLinear` and `QuantPooling` will be called. `QuantConv2d` basically wraps quantizer nodes around inputs and weights of regular `Conv2d`. Please refer to all the quantized modules in pytorch-quantization toolkit for more information. A `QuantConv2d` is represented in `pytorch-quantization` toolkit as follows.\n", + "\n", + "```\n", + "def forward(self, input):\n", + " # the actual quantization happens in the next level of the class hierarchy\n", + " quant_input, quant_weight = self._quant(input)\n", + "\n", + " if self.padding_mode == 'circular':\n", + " expanded_padding = ((self.padding[1] + 1) // 2, self.padding[1] // 2,\n", + " (self.padding[0] + 1) // 2, self.padding[0] // 2)\n", + " output = F.conv2d(F.pad(quant_input, expanded_padding, mode='circular'),\n", + " quant_weight, self.bias, self.stride,\n", + " _pair(0), self.dilation, self.groups)\n", + " else:\n", + " output = F.conv2d(quant_input, quant_weight, self.bias, self.stride, self.padding, self.dilation,\n", + " self.groups)\n", + "\n", + " return output\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "985dc59e", + "metadata": {}, + "outputs": [], + "source": [ + "quant_modules.initialize()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "164ce8cb", + "metadata": {}, + "outputs": [], + "source": [ + "# All the regular conv, FC layers will be converted to their quantozed counterparts due to quant_modules.initialize()\n", + "qat_model = vgg16(num_classes=len(classes), init_weights=False)\n", + "qat_model = qat_model.cuda()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "8e5f7fb5", + "metadata": {}, + "outputs": [], + "source": [ + "# vgg16_base_ckpt is the checkpoint generated from Step 3 : Training a baseline VGG16 model.\n", + "ckpt = torch.load(\"./vgg16_base_ckpt\")\n", + "modified_state_dict={}\n", + "for key, val in ckpt[\"model_state_dict\"].items():\n", + " # Remove 'module.' from the key names\n", + " if key.startswith('module'):\n", + " modified_state_dict[key[7:]] = val\n", + " else:\n", + " modified_state_dict[key] = val\n", + "\n", + "# Load the pre-trained checkpoint\n", + "qat_model.load_state_dict(modified_state_dict)\n", + "opt.load_state_dict(ckpt[\"opt_state_dict\"])" + ] + }, + { + "cell_type": "markdown", + "id": "8f8a74e8", + "metadata": {}, + "source": [ + "\n", + "## 5. Model Calibration" + ] + }, + { + "cell_type": "markdown", + "id": "d2a321f9", + "metadata": {}, + "source": [ + "The quantizer nodes introduced in the model around desired layers capture the dynamic range (min_value, max_value) that is observed by the layer. Calibration is the process of computing the dynamic range of these layers by passing calibration data, which is usually a subset of training or validation data. There are different ways of calibration: `max`, `histogram` and `entropy`. We use `max` calibration technique as it is simple and effective. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "039423dc", + "metadata": {}, + "outputs": [], + "source": [ + "def compute_amax(model, **kwargs):\n", + " # Load calib result\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " if isinstance(module._calibrator, calib.MaxCalibrator):\n", + " module.load_calib_amax()\n", + " else:\n", + " module.load_calib_amax(**kwargs)\n", + " print(F\"{name:40}: {module}\")\n", + " model.cuda()\n", + "\n", + "def collect_stats(model, data_loader, num_batches):\n", + " \"\"\"Feed data to the network and collect statistics\"\"\"\n", + " # Enable calibrators\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " module.disable_quant()\n", + " module.enable_calib()\n", + " else:\n", + " module.disable()\n", + "\n", + " # Feed data to the network for collecting stats\n", + " for i, (image, _) in tqdm(enumerate(data_loader), total=num_batches):\n", + " model(image.cuda())\n", + " if i >= num_batches:\n", + " break\n", + "\n", + " # Disable calibrators\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " module.enable_quant()\n", + " module.disable_calib()\n", + " else:\n", + " module.enable()\n", + "\n", + "def calibrate_model(model, model_name, data_loader, num_calib_batch, calibrator, hist_percentile, out_dir):\n", + " \"\"\"\n", + " Feed data to the network and calibrate.\n", + " Arguments:\n", + " model: classification model\n", + " model_name: name to use when creating state files\n", + " data_loader: calibration data set\n", + " num_calib_batch: amount of calibration passes to perform\n", + " calibrator: type of calibration to use (max/histogram)\n", + " hist_percentile: percentiles to be used for historgram calibration\n", + " out_dir: dir to save state files in\n", + " \"\"\"\n", + "\n", + " if num_calib_batch > 0:\n", + " print(\"Calibrating model\")\n", + " with torch.no_grad():\n", + " collect_stats(model, data_loader, num_calib_batch)\n", + "\n", + " if not calibrator == \"histogram\":\n", + " compute_amax(model, method=\"max\")\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-max-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)\n", + " else:\n", + " for percentile in hist_percentile:\n", + " print(F\"{percentile} percentile calibration\")\n", + " compute_amax(model, method=\"percentile\")\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-percentile-{percentile}-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)\n", + "\n", + " for method in [\"mse\", \"entropy\"]:\n", + " print(F\"{method} calibration\")\n", + " compute_amax(model, method=method)\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-{method}-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "78504a6f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calibrating model\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|███████████████████████████████████████████████████████| 32/32 [00:00<00:00, 96.04it/s]\n", + "WARNING: Logging before flag parsing goes to stderr.\n", + "W1109 04:01:43.512364 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.513354 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.514046 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.514638 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.515270 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.515859 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.516441 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.517009 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.517600 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.518167 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.518752 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.519333 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.519911 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.520473 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.521038 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.521596 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.522170 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.522742 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.523360 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.523957 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.524581 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525059 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525366 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525675 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525962 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526257 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526566 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526885 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527188 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527489 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527792 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528097 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528387 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528834 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.529163 139704147265344 tensor_quantizer.py:238] Call .cuda() if running on GPU after loading calibrated amax.\n", + "W1109 04:01:43.532748 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).\n", + "W1109 04:01:43.533468 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.534033 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).\n", + "W1109 04:01:43.534684 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.535320 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).\n", + "W1109 04:01:43.535983 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.536569 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).\n", + "W1109 04:01:43.537248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.537833 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.538480 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.539074 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.539724 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.540307 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.540952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.541534 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.542075 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.542596 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.543248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.543719 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.544424 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.544952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.545530 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.546114 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.546713 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.547292 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.547902 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.548453 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.549015 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).\n", + "W1109 04:01:43.549665 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.550436 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).\n", + "W1109 04:01:43.551925 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.553105 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([10, 1]).\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "features.0._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=2.7537 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.0._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0263, 2.7454](64) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.3._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=27.5676 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.3._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0169, 1.8204](64) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.7._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=15.2002 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.7._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0493, 1.3207](128) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.10._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=7.7376 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.10._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0163, 0.9624](128) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.14._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=8.8351 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.14._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0622, 0.8791](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.17._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=12.5746 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.17._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0505, 0.5117](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.20._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=9.7203 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.20._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0296, 0.5335](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.24._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=8.9367 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.24._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0220, 0.3763](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.27._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=6.6539 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.27._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0151, 0.1777](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.30._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=3.7099 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.30._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0087, 0.1906](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.34._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=4.0491 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.34._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0106, 0.1971](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.37._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=2.1531 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.37._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0070, 0.2305](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.40._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=3.3631 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.40._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0023, 0.4726](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "avgpool._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.0._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.0._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0026, 0.5320](4096) calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.3._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=6.6733 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.3._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0018, 0.5172](4096) calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.6._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=9.4352 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.6._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.3877, 0.5620](10) calibrator=MaxCalibrator scale=1.0 quant)\n" + ] + } + ], + "source": [ + "#Calibrate the model using max calibration technique.\n", + "with torch.no_grad():\n", + " calibrate_model(\n", + " model=qat_model,\n", + " model_name=\"vgg16\",\n", + " data_loader=training_dataloader,\n", + " num_calib_batch=32,\n", + " calibrator=\"max\",\n", + " hist_percentile=[99.9, 99.99, 99.999, 99.9999],\n", + " out_dir=\"./\")" + ] + }, + { + "cell_type": "markdown", + "id": "1aa0c109", + "metadata": {}, + "source": [ + "\n", + "## 6. Quantization Aware Training" + ] + }, + { + "cell_type": "markdown", + "id": "9fe8ec11", + "metadata": {}, + "source": [ + "In this phase, we finetune the model weights and leave the quantizer node values frozen. The dynamic ranges for each layer obtained from the calibration are kept constant while the weights of the model are finetuned to be close to the accuracy of original FP32 model (model without quantizer nodes) is preserved. Usually the finetuning of QAT model should be quick compared to the full training of the original model. Use QAT to fine-tune for around 10% of the original training schedule with an annealing learning-rate. Please refer to Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT for detailed recommendations. For this VGG model, it is enough to finetune for 1 epoch to get acceptable accuracy. \n", + "During finetuning with QAT, the quantization is applied as a composition of `max`, `clamp`, `round` and `mul` ops. \n", + "```\n", + "# amax is absolute maximum value for an input\n", + "# The upper bound for integer quantization (127 for int8)\n", + "max_bound = torch.tensor((2.0**(num_bits - 1 + int(unsigned))) - 1.0, device=amax.device)\n", + "scale = max_bound / amax\n", + "outputs = torch.clamp((inputs * scale).round_(), min_bound, max_bound)\n", + "```\n", + "tensor_quant function in `pytorch_quantization` toolkit is responsible for the above tensor quantization. Usually, per channel quantization is recommended for weights, while per tensor quantization is recommended for activations in a network.\n", + "During inference, we use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` to perform quantization as this is easier to convert into corresponding TensorRT operators. Please refer to next sections for more details on how these operators are exported in torchscript and converted in Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "1f28d228", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Updating learning rate: 0.1\n", + "Epoch: [ 1 / 1] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 2.635\n", + "Batch: [ 1000 | 1563] loss: 2.655\n", + "Batch: [ 1500 | 1563] loss: 2.646\n", + "Test Loss: 0.03291 Test Acc: 82.98%\n", + "Checkpoint saved\n" + ] + } + ], + "source": [ + "# Finetune the QAT model for 1 epoch\n", + "num_epochs=1\n", + "for epoch in range(num_epochs):\n", + " adjust_lr(opt, epoch)\n", + " print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state[\"lr\"]))\n", + "\n", + " train(qat_model, training_dataloader, crit, opt, epoch)\n", + " test_loss, test_acc = test(qat_model, testing_dataloader, crit, epoch)\n", + "\n", + " print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n", + " \n", + "save_checkpoint({'epoch': epoch + 1,\n", + " 'model_state_dict': qat_model.state_dict(),\n", + " 'acc': test_acc,\n", + " 'opt_state_dict': opt.state_dict(),\n", + " 'state': state},\n", + " ckpt_path=\"vgg16_qat_ckpt\")" + ] + }, + { + "cell_type": "markdown", + "id": "7a4dcaa2", + "metadata": {}, + "source": [ + "\n", + "## 7. Export to Torchscript\n", + "Export the model to Torch script. Trace the model and convert it into torchscript for deployment. To learn more about Torchscript, please refer to https://pytorch.org/docs/stable/jit.html. Setting `quant_nn.TensorQuantizer.use_fb_fake_quant = True` enables the QAT model to use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` operators instead of `tensor_quant` function to export quantization operators. In torchscript, they are represented as `aten::fake_quantize_per_tensor_affine` and `aten::fake_quantize_per_channel_affine`. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3d34f526", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "E1109 04:02:37.101168 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.102248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.107194 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.107625 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.115269 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.115740 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.117969 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.118358 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.126382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.126834 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.128674 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.129518 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.135453 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.135936 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.137858 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.138366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.145539 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.146053 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.147871 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.148353 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.154252 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.154685 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.156558 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.157159 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.163197 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.163676 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.165549 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.165991 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.173305 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.173926 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.176034 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.176697 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.182843 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.183426 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.185377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.185962 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.191966 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.192424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.194325 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.194817 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.201988 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.202665 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.204763 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.205461 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.211393 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.211987 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.213899 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.214450 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.220892 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.221533 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.223519 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.224037 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.233809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.234434 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.238212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.239042 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.241022 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.241654 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.247820 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.248445 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.250366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.250959 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.257248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.257854 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.259968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.260660 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "W1109 04:02:37.268160 139704147265344 tensor_quantizer.py:280] Use Pytorch's native experimental fake quantization.\n", + "/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:285: TracerWarning: Converting a tensor to a Python number might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " inputs, amax.item() / bound, 0,\n", + "/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:291: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " quant_dim = list(amax.shape).index(list(amax_sequeeze.shape)[0])\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "E1109 04:02:37.329273 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.330212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.332529 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.333365 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.339547 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.340248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.342257 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.342890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.350619 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.351372 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.353470 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.354121 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.360090 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.360806 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.362803 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.363274 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.370369 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.371057 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.373071 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.373766 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.379890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.380538 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.382532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.383128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.389077 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.389760 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.391815 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.392399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.399809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.400472 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.402399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.402939 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.408818 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.409424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.411513 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.412097 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.418537 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.419128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.421343 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.421946 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.429382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.430156 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.432259 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.433079 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.439297 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.440027 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.442149 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.442826 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.449377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.449968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.452122 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.452754 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.462532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.463295 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.466963 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.467725 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.469692 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.470336 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.476204 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.476738 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.478809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.479375 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.485666 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.486219 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.488416 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.488986 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n" + ] + } + ], + "source": [ + "quant_nn.TensorQuantizer.use_fb_fake_quant = True\n", + "with torch.no_grad():\n", + " data = iter(testing_dataloader)\n", + " images, _ = data.next()\n", + " jit_model = torch.jit.trace(qat_model, images.to(\"cuda\"))\n", + " torch.jit.save(jit_model, \"trained_vgg16_qat.jit.pt\")" + ] + }, + { + "cell_type": "markdown", + "id": "7341418a", + "metadata": {}, + "source": [ + "\n", + "## 8. Inference using Torch-TensorRT\n", + "In this phase, we run the exported torchscript graph of VGG QAT using Torch-TensorRT. Torch-TensorRT is a Pytorch-TensorRT compiler which converts Torchscript graphs into TensorRT. TensorRT 8.0 supports inference of quantization aware trained models and introduces new APIs; `QuantizeLayer` and `DequantizeLayer`. We can observe the entire VGG QAT graph quantization nodes from the debug log of Torch-TensorRT. To enable debug logging, you can set `torch_tensorrt.logging.set_reportable_log_level(torch_tensorrt.logging.Level.Debug)`. For example, `QuantConv2d` layer from `pytorch_quantization` toolkit is represented as follows in Torchscript\n", + "```\n", + "%quant_input : Tensor = aten::fake_quantize_per_tensor_affine(%x, %636, %637, %638, %639)\n", + "%quant_weight : Tensor = aten::fake_quantize_per_channel_affine(%394, %640, %641, %637, %638, %639)\n", + "%input.2 : Tensor = aten::_convolution(%quant_input, %quant_weight, %395, %687, %688, %689, %643, %690, %642, %643, %643, %644, %644)\n", + "```\n", + "`aten::fake_quantize_per_*_affine` is converted into `QuantizeLayer` + `DequantizeLayer` in Torch-TensorRT internally. Please refer to quantization op converters in Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "aa7495e0", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Cannot infer input type from calcuations in graph for input x.2. Assuming it is Float32. If not, specify input type explicity\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Detected invalid timing cache, setup a local cache instead\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VGG QAT accuracy using TensorRT: 82.97%\n" + ] + } + ], + "source": [ + "qat_model = torch.jit.load(\"trained_vgg16_qat.jit.pt\").eval()\n", + "\n", + "compile_spec = {\"inputs\": [torch_tensorrt.Input([16, 3, 32, 32])],\n", + " \"enabled_precisions\": torch.int8,\n", + " }\n", + "trt_mod = torch_tensorrt.compile(qat_model, **compile_spec)\n", + "\n", + "test_loss, test_acc = test(trt_mod, testing_dataloader, crit, 0)\n", + "print(\"VGG QAT accuracy using TensorRT: {:.2f}%\".format(100 * test_acc))" + ] + }, + { + "cell_type": "markdown", + "id": "9df5a90e", + "metadata": {}, + "source": [ + "### Performance benchmarking" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "9eb2cd2d", + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "# Helper function to benchmark the model\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " output = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%100==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output shape:\", output.shape)\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "5c2514ae", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, avg batch time 4.83 ms\n", + "Iteration 200/1000, avg batch time 4.83 ms\n", + "Iteration 300/1000, avg batch time 4.83 ms\n", + "Iteration 400/1000, avg batch time 4.83 ms\n", + "Iteration 500/1000, avg batch time 4.83 ms\n", + "Iteration 600/1000, avg batch time 4.83 ms\n", + "Iteration 700/1000, avg batch time 4.83 ms\n", + "Iteration 800/1000, avg batch time 4.83 ms\n", + "Iteration 900/1000, avg batch time 4.83 ms\n", + "Iteration 1000/1000, avg batch time 4.83 ms\n", + "Input shape: torch.Size([16, 3, 32, 32])\n", + "Output shape: torch.Size([16, 10])\n", + "Average batch time: 4.83 ms\n" + ] + } + ], + "source": [ + "benchmark(jit_model, input_shape=(16, 3, 32, 32))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "c5378ed6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, avg batch time 1.87 ms\n", + "Iteration 200/1000, avg batch time 1.84 ms\n", + "Iteration 300/1000, avg batch time 1.85 ms\n", + "Iteration 400/1000, avg batch time 1.83 ms\n", + "Iteration 500/1000, avg batch time 1.82 ms\n", + "Iteration 600/1000, avg batch time 1.81 ms\n", + "Iteration 700/1000, avg batch time 1.81 ms\n", + "Iteration 800/1000, avg batch time 1.80 ms\n", + "Iteration 900/1000, avg batch time 1.80 ms\n", + "Iteration 1000/1000, avg batch time 1.79 ms\n", + "Input shape: torch.Size([16, 3, 32, 32])\n", + "Output shape: torch.Size([16, 10])\n", + "Average batch time: 1.79 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_mod, input_shape=(16, 3, 32, 32))" + ] + }, + { + "cell_type": "markdown", + "id": "d6a5ec1c", + "metadata": {}, + "source": [ + "\n", + "## 9. References\n", + "* Very Deep Convolution Networks for large scale Image Recognition\n", + "* Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT\n", + "* QAT workflow for VGG16\n", + "* Deploying VGG QAT model in C++ using Torch-TensorRT\n", + "* Pytorch-quantization toolkit from NVIDIA\n", + "* Pytorch quantization toolkit userguide\n", + "* Quantization basics" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.1.1/_sources/cli/torchtrtc.rst.txt b/docs/v1.1.1/_sources/cli/torchtrtc.rst.txt new file mode 100644 index 0000000000..68f599a5cd --- /dev/null +++ b/docs/v1.1.1/_sources/cli/torchtrtc.rst.txt @@ -0,0 +1,146 @@ +.. _torchtrtc: + +torchtrtc +================================= + +``torchtrtc`` is a CLI application for using the Torch-TensorRT compiler. It serves as an easy way to compile a +TorchScript Module with Torch-TensorRT from the command-line to quickly check support or as part of +a deployment pipeline. All basic features of the compiler are supported including post training +quantization (though you must already have a calibration cache file to use the PTQ feature). The compiler can +output two formats, either a TorchScript program with the TensorRT engine embedded or +the TensorRT engine itself as a PLAN file. + +All that is required to run the program after compilation is for C++ linking against ``libtorchtrt.so`` +or in Python importing the torch_tensorrt package. All other aspects of using compiled modules are identical +to standard TorchScript. Load with ``torch.jit.load()`` and run like you would run any other module. + +.. code-block:: txt + + torchtrtc [input_file_path] [output_file_path] + [input_specs...] {OPTIONS} + + torchtrtc is a compiler for TorchScript, it will compile and optimize + TorchScript programs to run on NVIDIA GPUs using TensorRT + + OPTIONS: + + -h, --help Display this help menu + Verbiosity of the compiler + -v, --verbose Dumps debugging information about the + compilation process onto the console + -w, --warnings Disables warnings generated during + compilation onto the console (warnings + are on by default) + --i, --info Dumps info messages generated during + compilation onto the console + --build-debuggable-engine Creates a debuggable engine + --allow-gpu-fallback (Only used when targeting DLA + (device-type)) Lets engine run layers on + GPU if they are not supported on DLA + --require-full-compilation Require that the model should be fully + compiled to TensorRT or throw an error + --check-method-support=[method_name] + Check the support for end to end + compilation of a specified method in the + TorchScript module + --disable-tf32 Prevent Float32 layers from using the + TF32 data format + --sparse-weights Enable sparsity for weights of conv and + FC layers + -p[precision...], + --enable-precision=[precision...] (Repeatable) Enabling an operating + precision for kernels to use when + building the engine (Int8 requires a + calibration-cache argument) [ float | + float32 | f32 | fp32 | half | float16 | + f16 | fp16 | int8 | i8 | char ] + (default: float) + -d[type], --device-type=[type] The type of device the engine should be + built for [ gpu | dla ] (default: gpu) + --gpu-id=[gpu_id] GPU id if running on multi-GPU platform + (defaults to 0) + --dla-core=[dla_core] DLACore id if running on available DLA + (defaults to 0) + --engine-capability=[capability] The type of device the engine should be + built for [ standard | safety | + dla_standalone ] + --calibration-cache-file=[file_path] + Path to calibration cache file to use + for post training quantization + --teo=[op_name...], + --torch-executed-op=[op_name...] (Repeatable) Operator in the graph that + should always be run in PyTorch for + execution (partial compilation must be + enabled) + --tem=[module_name...], + --torch-executed-mod=[module_name...] + (Repeatable) Module that should always + be run in Pytorch for execution (partial + compilation must be enabled) + --mbs=[num_ops], + --min-block-size=[num_ops] Minimum number of contiguous TensorRT + supported ops to compile a subgraph to + TensorRT + --embed-engine Whether to treat input file as a + serialized TensorRT engine and embed it + into a TorchScript module (device spec + must be provided) + --num-avg-timing-iters=[num_iters] + Number of averaging timing iterations + used to select kernels + --workspace-size=[workspace_size] Maximum size of workspace given to + TensorRT + --dla-sram-size=[dla_sram_size] Fast software managed RAM used by DLA + to communicate within a layer. + --dla-local-dram-size=[dla_local_dram_size] Host RAM used by DLA to share + intermediate tensor data across operations. + --dla-global-dram-size=[dla_global_dram_size] Host RAM used by DLA to store + weights and metadata for execution + --atol=[atol] Absolute tolerance threshold for acceptable + numerical deviation from standard torchscript + output (default 1e-8) + --rtol=[rtol] Relative tolerance threshold for acceptable + numerical deviation from standard torchscript + output (default 1e-5) + --no-threshold-check Skip checking threshold compliance + --truncate-long-double, + --truncate, --truncate-64bit Truncate weights that are provided in + 64bit to 32bit (Long, Double to Int, + Float) + --save-engine Instead of compiling a full a + TorchScript program, save the created + engine to the path specified as the + output path + --custom-torch-ops (repeatable) Shared object/DLL containing custom torch operators + --custom-converters (repeatable) Shared object/DLL containing custom converters + input_file_path Path to input TorchScript file + output_file_path Path for compiled TorchScript (or + TensorRT engine) file + input_specs... Specs for inputs to engine, can either + be a single size or a range defined by + Min, Optimal, Max sizes, e.g. + "(N,..,C,H,W)" + "[(MIN_N,..,MIN_C,MIN_H,MIN_W);(OPT_N,..,OPT_C,OPT_H,OPT_W);(MAX_N,..,MAX_C,MAX_H,MAX_W)]". + Data Type and format can be specified by + adding an "@" followed by dtype and "%" + followed by format to the end of the + shape spec. e.g. "(3, 3, 32, + 32)@f16%NHWC" + "--" can be used to terminate flag options and force all following + arguments to be treated as positional options + +e.g. + +.. code-block:: shell + + torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@f16%contiguous" -p f16 + + +To run with custom torch operators +.. code-block:: shell +torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts --custom-torch-ops= "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@fp16%contiguous" -p f16 + + +To run with custom converters +.. code-block:: shell +torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts --custom-converters= "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@fp16%contiguous" -p f16 diff --git a/docs/v1.1.1/_sources/contributors/conversion.rst.txt b/docs/v1.1.1/_sources/contributors/conversion.rst.txt new file mode 100644 index 0000000000..f19fc5eba8 --- /dev/null +++ b/docs/v1.1.1/_sources/contributors/conversion.rst.txt @@ -0,0 +1,53 @@ +.. _conversion: + +Conversion Phase +================== + +Once the graph has be simplified to a form thats easy to convert, we then set up a conversion context +to manage the construction of a TensorRT ``INetworkDefinition`` from the blocks nodes. The conversion context +records the set of converted nodes, block inputs and outputs and other information about the conversion +of the graph. This data is then used to help converters link together layers and also hold build time +information like weights required to construct the engine. After the context is created, the block +converter starts iterating through the list of nodes, for each node, the converter will look at its +inputs and assemble an array of resources to pass to the converter. Inputs can be in a couple of states: + +* The input is a block parameter + + * In this case the input should have already been stored in as an IValue in the + conversion context ``evaluated_value_map``. The conversion stage will add the IValue to the list of args for the + converter + +* The input is an output of a node that has already been converted + + * In this case the ITensor of the output has added to the ``value_tensor_map``, + The conversion stage will add the ITensor to the list of args for the converter + +* The input is from a node that produces a static value + + * There are nodes that produce static values, typically used to store parameters for operators, we need to + evaluate these nodes at conversion time to be able to convert a op. The conversion system will look for a node + evaluator in the evaluator registry and run it on the node. The IValue produced will be entered in the + conversion context ``evaluated_value_map`` and added to the list of args for the converter. If the node + to be evaluated takes inputs, the conversion stage will recursively resolve dependencies until the final + static value has been evaluated + +* The input is from a node that has not been converted + + * Torch-TensorRT will error out here + +Node Evaluation +----------------- +There are some nodes that contain static data and are resources for operations. These can be evaluated at +conversion time so that you can use those values when doing node conversion. In theory any node kind can have +a conversion time evaluator as long as it produces a static IValue, This IValue will be stored in the conversion +context so it can be consumed by any node that takes the evaluated node as an input. Common node types are +``prim::Constant`` which emits a constant and ``prim::ListConstruct`` which makes lists. + +Node Converters +---------------- + +Node converters map JIT nodes to layers or subgraphs of layers. They then associate outputs from the JIT graph +and the TRT graph together in the conversion context. This allows the conversion stage to assemble the inputs +for the next node. There are some cases where a node produces an output that is not a Tensor but a static result +from a calculation done on inputs which need to be converted first. In this case the converter may associate the outputs in +the ``evaluated_value_map`` instead of the ``value_tensor_map``. For more information take a look at: :ref:`writing_converters` diff --git a/docs/v1.1.1/_sources/contributors/lowering.rst.txt b/docs/v1.1.1/_sources/contributors/lowering.rst.txt new file mode 100644 index 0000000000..38c4491295 --- /dev/null +++ b/docs/v1.1.1/_sources/contributors/lowering.rst.txt @@ -0,0 +1,207 @@ +.. _lowering: + +Lowering Phase +=============== + +The lowering phase is made up out of passes which are operations which map a graph from a high level representation +to a lower level one. Each pass does something specific for instance inlining method calls. The idea is to +significantly reduce what the conversion phase needs to be able to handle when actually mapping to TensorRT. +We aim for closer to 1->1 op conversion vs looking for applicable subgraphs, limiting the number of converters and +reduce the scope of each converter. + +You can see the effects of each pass by setting the log level to ``Level::kGraph`` + +Passes Used +------------- + +EliminateCommonSubexpression +*********************************** + + `torch/csrc/jit/passes/common_subexpression_elimination.h `_ + +Removes common subexpressions in the graph + + + +Eliminate Dead Code +************************** + + `torch/csrc/jit/passes/dead_code_elimination.h `_ + +Dead code elimination will check if a node has side effects and not delete it if it does. + +Eliminate Exeception Or Pass Pattern +*************************************** + + `Torch-TensorRT/core/lowering/passes/exception_elimination.cpp `_ + +A common pattern in scripted modules are dimension gaurds which will throw execptions if +the input dimension is not what was expected. + +.. code-block:: none + + %1013 : bool = aten::ne(%1012, %24) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:248:11 + = prim::If(%1013) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:248:8 + block0(): + = prim::RaiseException(%23) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:249:12 + -> () + block1(): + -> () + +Since we are resolving all of this at compile time and there are no execptions in the TensorRT graph, we just remove it. + +Eliminate Redundant Gaurds +*************************************** + + `torch/csrc/jit/passes/guard_elimination.h `_ + +Eliminate redundant guards for ops whose outputs are fully determined by their inputs i.e. if inputs to such ops are +guarded we are allowed to remove a guard on ops' outputs + +Freeze Module +*************************************** + + `torch/csrc/jit/passes/freeze_module.h `_ + +Freeze attributes and inline constants and modules. Propogates constants in the graph. + +Fuse AddMM Branches +*************************************** + + `Torch-TensorRT/core/lowering/passes/fuse_addmm_branches.cpp `_ + +A common pattern in scripted modules is tensors of different dimensions use different constructions for implementing linear layers. We fuse these +different varients into a single one that will get caught by the Unpack AddMM pass. + +.. code-block:: none + + %ret : Tensor = prim::If(%622) + block0(): + %ret.1 : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3) + -> (%ret.1) + block1(): + %output.1 : Tensor = aten::matmul(%x9.1, %3677) + %output0.1 : Tensor = aten::add_(%output.1, %self.fc.bias, %3) + -> (%output0.1) + +We fuse this set of blocks into a graph like this: + +.. code-block:: none + + %ret : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3) + +Fuse Linear +*************************************** + + `torch/csrc/jit/passes/fuse_linear.h `_ + +Match the ``aten::linear`` pattern and fuse it into a single ``aten::linear`` +This pass fuse the addmm or matmul + add generated by JIT back to linear + +Fuse Flatten Linear +*************************************** + + `Torch-TensorRT/core/lowering/passes/fuse_flatten_linear.cpp `_ + +TensorRT implicity flattens input layers into fully connected layers when they are higher than 1D. So when there is a +``aten::flatten`` -> ``aten::linear`` pattern we remove the ``aten::flatten``. + +Lower Graph +*************************************** + + `torch/csrc/jit/passes/lower_graph.h `_ + +Given a graph with of a method which first argument is %self, lower it to a graph where +all attributes accesses are replaced with explicit inputs of the graph +(rather than results of prim::GetAttr executed on %self). Returns a tuple +(graph, parameters) where the last module.parameters.size() inputs to the +graph are the trainable parameters used in this method. The remaining inputs +are the true inputs to the function. + +Lower Tuples +*************************************** + + `torch/csrc/jit/passes/lower_tuples.h `_ + +* ``LowerSimpleTuples``: + +Removes tuples where TupleConstruct and TupleUnpack are matched but leaves tuples in place across if statements, loops, and as inputs/outputs + +* ``LowerAllTuples``: + +Removes _all_ tuples and raises an error if some cannot be removed, this is used by ONNX to ensure there are not tuples before conversion, but will not work on graphs whose inputs contain tuples. + +Module Fallback +***************** + + `Torch-TensorRT/core/lowering/passes/module_fallback.cpp `_ + +Module fallback consists of two lowering passes that must be run as a pair. The first pass is run before freezing to place delimiters in the graph around modules +that should run in PyTorch. The second pass marks nodes between these delimiters after freezing to signify they should run in PyTorch. + +* ``NotateModuleForFallback`` + +Places delimiting nodes around module calls pre freezing to signify where in the graph nodes should run in PyTorch + +* ``MarkNodesForFallback`` + +Looks for delimiters then marks all nodes between the delimiters to tell partitioning to run them in PyTorch + +Peephole Optimze +*************************************** + + `torch/csrc/jit/passes/peephole_optimze.h `_ + +The intent for this optimization pass is to catch all of the small, easy to catch peephole optimizations you might be interested in doing. + +Right now, it does: + - Eliminate no-op 'expand' nodes + - Simply x.t().t() to x + + +Remove Contiguous +*************************************** + + `Torch-TensorRT/core/lowering/passes/remove_contiguous.cpp `_ + +Removes contiguous operators since we are doing TensorRT memory is already contiguous. + + +Remove Dropout +*************************************** + + `Torch-TensorRT/core/lowering/passes/remove_dropout.cpp `_ + +Removes dropout operators since we are doing inference. + +Remove To +*************************************** + + `Torch-TensorRT/core/lowering/passes/remove_to.cpp `_ + +Removes ``aten::to`` operators that do casting, since TensorRT mangages it itself. It is important that this is one of the last passes run so that +other passes have a change to move required cast operators out of the main namespace. + +Unpack AddMM +*************************************** + + `Torch-TensorRT/core/lowering/passes/unpack_addmm.cpp `_ + +Unpacks ``aten::addmm`` into ``aten::matmul`` and ``aten::add_`` (with an additional ``trt::const`` +op to freeze the bias in the TensorRT graph). This lets us reuse the ``aten::matmul`` and ``aten::add_`` +converters instead of needing a dedicated converter. + +Unpack LogSoftmax +*************************************** + + `Torch-TensorRT/core/lowering/passes/unpack_log_softmax.cpp `_ + +Unpacks ``aten::logsoftmax`` into ``aten::softmax`` and ``aten::log``. This lets us reuse the +``aten::softmax`` and ``aten::log`` converters instead of needing a dedicated converter. + +Unroll Loops +*************************************** + + `torch/csrc/jit/passes/loop_unrolling.h `_ + +Unrolls the operations of compatable loops (e.g. sufficently short) so that you only have to go through the loop once. diff --git a/docs/v1.1.1/_sources/contributors/partitioning.rst.txt b/docs/v1.1.1/_sources/contributors/partitioning.rst.txt new file mode 100644 index 0000000000..fb294c827b --- /dev/null +++ b/docs/v1.1.1/_sources/contributors/partitioning.rst.txt @@ -0,0 +1,8 @@ +.. _partitioning: + +Partitioning Phase +==================== + +The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes. diff --git a/docs/v1.1.1/_sources/contributors/phases.rst.txt b/docs/v1.1.1/_sources/contributors/phases.rst.txt new file mode 100644 index 0000000000..e99af77faa --- /dev/null +++ b/docs/v1.1.1/_sources/contributors/phases.rst.txt @@ -0,0 +1,46 @@ +Compiler Phases +---------------- + +.. toctree:: + :caption: Compiler Phases + :maxdepth: 1 + :hidden: + + lowering + partitioning + conversion + runtime + +Lowering +^^^^^^^^^^^ +:ref:`lowering` + +The lowering is made up of a set of passes (some from PyTorch and some specific to Torch-TensorRT) +run over the graph IR to map the large PyTorch opset to a reduced opset that is easier to convert to +TensorRT. + +Partitioning +^^^^^^^^^^^^^ +:ref:`partitioning` + +The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes. + +Conversion +^^^^^^^^^^^ +:ref:`conversion` + +In the conversion phase we traverse the lowered graph and construct an equivalent TensorRT graph. +The conversion phase is made up of three main components, a context to manage compile time data, +a evaluator library which will execute operations that can be resolved at compile time and a converter +library which maps an op from JIT to TensorRT. + +Compilation and Runtime +^^^^^^^^^^^^^^^^^^^^^^^^ +:ref:`runtime` + +The final compilation phase constructs a TorchScript program to run the converted TensorRT engine. It +takes a serialized engine and instantiates it within a engine manager, then the compiler will +build out a JIT graph that references this engine and wraps it in a module to return to the user. +When the user executes the module, the JIT program run in the JIT runtime extended by Torch-TensorRT with the data providied from the user. diff --git a/docs/v1.1.1/_sources/contributors/runtime.rst.txt b/docs/v1.1.1/_sources/contributors/runtime.rst.txt new file mode 100644 index 0000000000..23d83b6db2 --- /dev/null +++ b/docs/v1.1.1/_sources/contributors/runtime.rst.txt @@ -0,0 +1,85 @@ +.. _execution: + +Runtime Phase +================ + +The Runtime phase is responsible for constructing self standing TorchScript graphs with embedded TensorRT engines and serving as the runtime +when these engines are called. The main interface accepts a serialized TensorRT engine. The execution phase +will deserialize and wrap this engine in a class which maintains a execution context for each engine +and some metadata about its inputs and outputs and is compatable with the TorchScript interpreter so that +it can be moved around and used like other TorchScript IValues. The engine is run by providing it and inputs +to the ``tensorrt::execute_engine`` operator which will take the engine and its inputs and return the results of engine exeuction. + + +Background +------------ +PyTorch JIT's runtime is based around a stack machine, all operators pop off arguments from the stack, pass them to +some implementation of the operator then push results back onto the stack. The actual elements of the stack +are ``torch::jit::IValues``, the same type we evaluate in the conversion phase (the realization of the abstract +torch::jit::Value type). + +TensorRT Engine Executor Op +---------------------------- + +When the Torch-TensorRT is loaded, it registers an operator in the PyTorch JIT operator library called +``trt::execute_engine(Tensor[] inputs, __torch__.torch.classes.tensorrt.Engine engine) -> Tensor[]`` which takes an +instantiated engine and list of inputs. Compiled graphs store this engine in an attribute so that it is portable and serializable. +When the op is called, an instnantiated engine and input tensors are popped off the runtime stack. These inputs are passed into a generic engine execution function which +will run the tensors through the TensorRT engine and return new tensors as results. These tensors are pushed on to the +stack so that the next op whatever it is can use it. + +Constructing the Resulting Graph +----------------------------------- + +Once the engine is deserialized and instantiated, the compiler will construct a graph that will execute the engine when the module is called. +Here is an example: + +.. code-block:: + + graph(%self_1 : __torch__.torchvision.models.resnet.___torch_mangle_4847.ResNet_trt, + %input_0 : Tensor): + %1 : __torch__.torch.classes.tensorrt.Engine = prim::GetAttr[name="__torch___torchvision_models_resnet____torch_mangle_4847_ResNet_trt_engine"](%self_1) + %3 : Tensor[] = prim::ListConstruct(%input_0) + %4 : Tensor[] = trt::execute_engine(%3, %1) + %5 : Tensor = prim::ListUnpack(%4) + return (%5) + +You can see the engine attribute in the graph and the ``trt::execute_engine`` op taking a list of input tensors and an engine in +and produces a list of output tensors which is returned. When ``forward`` is called on the module this graph is executed, thereby +running the TensorRT engine. + +In the case of multiple outputs, the compiled graph may repack output tensors into a Tuple to return back to the user. + +.. code-block:: + + graph(%self_1 : __torch__.PyTorch.Detection.SSD.src.model.SSD300_trt, + %input_0 : Tensor): + %1 : __torch__.torch.classes.tensorrt.Engine = prim::GetAttr[name="__torch___PyTorch_Detection_SSD_src_model_SSD300_trt_engine"](%self_1) + %3 : Tensor[] = prim::ListConstruct(%input_0) + %4 : Tensor[] = trt::execute_engine(%3, %1) + %5 : Tensor, %6 : Tensor = prim::ListUnpack(%4) + %7 : (Tensor, Tensor) = prim::TupleConstruct(%5, %6) + return (%7) + +Serialization and Deserialization +---------------------------------- + +Serialization and deserialization of TensorRT engines embedded in TorchScript graphs are handled by the holder class for the engine and TorchBind. +When a TorchScript module is saved, the pickler will run serilization on the cuda engine and store the serialized engine in the zip file created. +When deserializing, the depickler will call a constructor for the engine holder class with the serialized engine so that it can be set up again for +execution. + +ABI Versioning and Serialization Format +========================================= + +Torch-TensorRT programs are standard TorchScript with TensorRT engines as objects embedded in the graph. Therefore there is a serialization format +for the TensorRT engines. The format for Torch-TensorRT serialized programs are versioned with an "ABI" version which tells the runtime about runtime compatibility. + +> Current ABI version is 3 + +The format is a vector of serialized strings. They encode the following information + +* ABI Version for the program +* Name of the TRT engine +* Device information: Includes the target device the engine was built on, SM capability and other device information. This information is used at deserialization time to select the correct device to run the engine +* Serialized TensorRT engine diff --git a/docs/v1.1.1/_sources/contributors/system_overview.rst.txt b/docs/v1.1.1/_sources/contributors/system_overview.rst.txt new file mode 100644 index 0000000000..d16697e3a3 --- /dev/null +++ b/docs/v1.1.1/_sources/contributors/system_overview.rst.txt @@ -0,0 +1,29 @@ +.. _system_overview: + +System Overview +================ + +Torch-TensorRT is primarily a C++ Library with a Python API planned. We use Bazel as our build system and target Linux x86_64 and +Linux aarch64 (only natively) right now. The compiler we use is GCC 7.5.0 and the library is untested with compilers before that +version so there may be compilation errors if you try to use an older compiler. + +The repository is structured into: + +* core: Main compiler source code +* cpp: C++ API +* tests: tests of the C++ API, the core and converters +* py: Python API +* notebooks: Example applications built with Torch-TensorRT +* docs: Documentation +* docsrc: Documentation Source +* third_party: BUILD files for dependency libraries +* toolchains: Toolchains for different platforms + + +The C++ API is unstable and subject to change until the library matures, though most work is done under the hood in the core. + +The core has a couple major parts: The top level compiler interface which coordinates ingesting a module, lowering, +converting and generating a new module and returning it back to the user. There are the three main phases of the +compiler, the lowering phase, the conversion phase, and the execution phase. + +.. include:: phases.rst diff --git a/docs/v1.1.1/_sources/contributors/useful_links.rst.txt b/docs/v1.1.1/_sources/contributors/useful_links.rst.txt new file mode 100644 index 0000000000..d5903a16b0 --- /dev/null +++ b/docs/v1.1.1/_sources/contributors/useful_links.rst.txt @@ -0,0 +1,34 @@ +.. _useful_links: + +Useful Links for Torch-TensorRT Development +============================================== + +TensorRT Available Layers and Expected Dimensions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html#layers-matrix + +TensorRT C++ Documentation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://docs.nvidia.com/deeplearning/tensorrt/api/c_api/index.html + +TensorRT Python Documentation (Sometimes easier to read) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/python_api/index.html + +PyTorch Functional API +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://pytorch.org/docs/stable/nn.functional.html + +PyTorch native_ops +^^^^^^^^^^^^^^^^^^^^^ + +* https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/native_functions.yaml + +PyTorch IR Documentation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://github.com/pytorch/pytorch/blob/master/torch/csrc/jit/OVERVIEW.md diff --git a/docs/v1.1.1/_sources/contributors/writing_converters.rst.txt b/docs/v1.1.1/_sources/contributors/writing_converters.rst.txt new file mode 100644 index 0000000000..990c4dc77d --- /dev/null +++ b/docs/v1.1.1/_sources/contributors/writing_converters.rst.txt @@ -0,0 +1,129 @@ +.. _writing_converters: + +Writing Converters +=================== + +Background +------------ + +In the JIT IR, operations are represented as nodes in a graph. A node has inputs and outputs, represented by ``torch::jit::Values`` +which are typed abstract representation of data flowing into and out of a node. TensorRT represents its graph though the +use of ``nvinfer1::ILayers`` and ``nvinfer1::ITensors`` which are its analogues to nodes and values. The goal of +converters create new ILayers and subgraphs that do operation specified by the node and associate produced ITensors +and Values together. + +Converters +------------ + +Converters should be functions which will use a list of inputs (either ``nvinfer1::ITensors`` or ``torch::jit::IValues``) to +construct an equivalent layer to the LibTorch op. + +Converters can be registered using the ``RegisterNodeConversionPatterns`` helper class where you instantiate a +RegisterNodeConversionPatterns object and call the pattern function on it (like below) which takes a string +which describes the function schema of the op that will cause the converter to be run and a lambda or function +which will do the actual conversion: + + Note the pattern function can be chained + +.. code-block:: c++ + + auto acthardtanh TORCHTRT_UNUSED = RegisterNodeConversionPatterns() + .pattern({ + "aten::hardtanh(Tensor self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor)", + [](ConversionCtx* ctx, const torch::jit::Node* n, args& args) -> bool { + auto in = args[0].ITensor(); + auto min = args[1].unwrapToDouble(); + auto max = args[2].unwrapToDouble(); + + auto new_layer = ctx->net->addActivation(*in, nvinfer1::ActivationType::kCLIP); + TORCHTRT_CHECK(new_layer, "Unable to create layer for aten::hardtanh"); + + new_layer->setAlpha(min); + new_layer->setBeta(max); + + new_layer->setName(util::node_info(n).c_str()); + auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], new_layer->getOutput(0)); + + LOG_DEBUG("Output shape: " << out_tensor->getDimensions()); + return true; + } + }); + + +Converter Contract +---------------------- + +What is guaranteed to converters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. In the args there will be an entry for each node input value, either a ITensor or IValue +2. Inputs will be provided in order according to the function schema + +Responsibilities of a converter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Args must be guaranteed to be a type to unwrap the Arg union without checking, typically input tensor arguments can be expected to be ITensors +2. Any weights or static values must guaranteed to be valid until the end of conversion time + + a. A helpful tool is the Weights helper class described below + +3. Converters are expected to produce an IValue or ITensor for each output of a node. The compiler will check this and produce warnings if there are Values that don't have associated ITensors or IValues. +4. Outputs must be annotated + + a. There must be an association between a JIT nodes output values and the new TRT layers output tensors in the ``value_tensor_map`` in the conversion context + +5. Name your layers + + a. Its much easier to debug when we can track which layers and nodes correspond with each other. The system we are currently using is to use the "node info" of the node as the name of the layer + +6. Name your tensors + + a. Use the output value debug name as the name for the new ITensor (again for debugging) + +Conversion Context +-------------------- + +The conversion context maintains the state of conversion, it manages the Network Definition, two maps +one that stores associations between Values and IValues (the evaluated_value_map) and one that stores +associations between Values and ITensors, and any sort of memory that needs to live until the end of +conversion. The main apis that you will interface with in converters is directly accessing the network +definition to add layers ``ctx->net`` and data association functions ``ctx->AssociateValueAndTensor()`` +and ``ctx->AssociateValueAndIValue()``, which you will use to add layers to the TRT layers and log +pairs of node outputs and static values or TensorRT layer outputs. + +Args +------- + +Arguments provided to the converter are inspectable unions of ``nvinfer1::ITensors`` and ``torch::jit::IValues`` (i.e. +abstract dataflow in the TensorRT graph and static values). You are guaranteed that you will have some +argument for each input value for the node. They are provided in the order of the function schema. +It can be expected that inputs (meaning the parameters that would be passed into the forward +function of a module in PyTorch) will be ITensors but the Arg class also has mechanisms to inspect arguments safely +before unwrapping if you are unsure. Args also have deep unwrap methods that let you get straight to the +underlying data in an IValue if you know it's safe. You can also pass in a fallback value if there is a +chance the IValue is None. IValues have been extended to be able to hold a wrapper around ITensors only in the case of TensorLists. +You can get an ITensor from an IValue by a pattern similar to this: ``ivalue.toCustomClass()->tensor()``. +You can tell if an IValue contains a Tensor or an ITensor by using ``ivalue.isTensor()`` or ``ivalue.isCustomClass()``. + + +Weights +-------------- + +Weights are used during build time, so any weights need to be guaranteed to live until the end of the conversion phase. +TensorRT also uses its own weights structure to hold the weights. There is a wrapper around this class available +to converts which abstracts a lot of this. + +The weights wrapper class can accept either ``at::Tensors`` or singular values (right now). You also need to pass the +conversion context when constructing these weights because internally the weights class will allocate memory managed +by the conversion context to store a copy of the tensor data. This data gets freed when the conversion context +destructor gets destroyed so converters don't really need to think about it. + +There is metadata generated from the shape of the input data which becomes useful in interfacing with TensorRT, such +as number of input maps, number of output maps and kernel shape. + +Other advice +-------------- + +You have the benefit of the full aten library when dealing with weights and other static values. This means that you +can do quite a bit of work during conversion time to produce efficient conversion. A good example is batch_norm +converter where the converter does fusion of operations with PyTorch before creating the TensorRT layer. diff --git a/docs/v1.1.1/_sources/getting_started/getting_started_with_cpp_api.rst.txt b/docs/v1.1.1/_sources/getting_started/getting_started_with_cpp_api.rst.txt new file mode 100644 index 0000000000..7f7f60a669 --- /dev/null +++ b/docs/v1.1.1/_sources/getting_started/getting_started_with_cpp_api.rst.txt @@ -0,0 +1,338 @@ +.. _getting_started_cpp: + +Using Torch-TensorRT in C++ +============================== + +If you haven't already, acquire a tarball of the library by following the instructions in :ref:`Installation` + +Using Torch-TensorRT in C++ +*************************** +Torch-TensorRT C++ API accepts TorchScript modules (generated either from ``torch.jit.script`` or ``torch.jit.trace``) as an input and returns +a Torchscript module (optimized using TensorRT). This requires users to use Pytorch (in python) to generate torchscript modules beforehand. +Please refer to `Creating TorchScript modules in Python `_ section to generate torchscript graphs. + + +.. _torch_tensorrt_quickstart: + +[Torch-TensorRT Quickstart] Compiling TorchScript Modules with ``torchtrtc`` +--------------------------------------------------------------------------------- + +An easy way to get started with Torch-TensorRT and to check if your model can be supported without extra work is to run it through +``torchtrtc``, which supports almost all features of the compiler from the command line including post training quantization +(given a previously created calibration cache). For example we can compile our lenet model by setting our preferred operating +precision and input size. This new TorchScript file can be loaded into Python (note: you need to ``import torch_tensorrt`` before loading +these compiled modules because the compiler extends the PyTorch the deserializer and runtime to execute compiled modules). + +.. code-block:: shell + + ❯ torchtrtc -p f16 lenet_scripted.ts trt_lenet_scripted.ts "(1,1,32,32)" + + ❯ python3 + Python 3.6.9 (default, Apr 18 2020, 01:56:04) + [GCC 8.4.0] on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> import torch + >>> import torch_tensorrt + >>> ts_model = torch.jit.load(“trt_lenet_scripted.ts”) + >>> ts_model(torch.randn((1,1,32,32)).to(“cuda”).half()) + +You can learn more about ``torchtrtc`` usage here: :ref:`torchtrtc` + +.. _ts_in_cc: + +Working with TorchScript in C++ +-------------------------------- + +If we are developing an application to deploy with C++, we can save either our traced or scripted module using ``torch.jit.save`` +which will serialize the TorchScript code, weights and other information into a package. This is also where our dependency on Python ends. + +.. code-block:: python + + torch_script_module.save("lenet.jit.pt") + +From here we can now load our TorchScript module in C++ + +.. code-block:: c++ + + #include // One-stop header. + + #include + #include + + int main(int argc, const char* argv[]) { + torch::jit::Module module; + try { + // Deserialize the ScriptModule from a file using torch::jit::load(). + module = torch::jit::load(""); + } + catch (const c10::Error& e) { + std::cerr << "error loading the model\n"; + return -1; + } + + std::cout << "ok\n"; + + +You can do full training and inference in C++ with PyTorch / LibTorch if you would like, you can even define your modules in C++ and +have access to the same powerful tensor library that backs PyTorch. (For more information: https://pytorch.org/cppdocs/). +For instance we can do inference with our LeNet module like this: + +.. code-block:: c++ + + mod.eval(); + torch::Tensor in = torch::randn({1, 1, 32, 32}); + auto out = mod.forward(in); + +and to run on the GPU: + +.. code-block:: c++ + + mod.eval(); + mod.to(torch::kCUDA); + torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA); + auto out = mod.forward(in); + +As you can see it is pretty similar to the Python API. When you call the ``forward`` method, you invoke the PyTorch JIT compiler, which will optimize and run your TorchScript code. + +.. _compile_cpp: + +Compiling with Torch-TensorRT in C++ +------------------------------------- +We are also at the point were we can compile and optimize our module with Torch-TensorRT, but instead of in a JIT fashion we must do it ahead-of-time (AOT) i.e. before we start doing actual inference work +since it takes a bit of time to optimize the module, it would not make sense to do this every time you run the module or even the first time you run it. + +With our module loaded, we can feed it into the Torch-TensorRT compiler. When we do so we must provide some information on the expected input size and also configure any additional settings. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}); + auto trt_mod = torch_tensorrt::CompileGraph(mod, std::vector{{in.sizes()}}); + auto out = trt_mod.forward({in}); + +Thats it! Now the graph runs primarily not with the JIT compiler but using TensorRT (though we execute the graph using the JIT runtime). + +We can also set settings like operating precision to run in FP16. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF); + auto input_sizes = std::vector({in.sizes()}); + torch_tensorrt::CompileSpec info(input_sizes); + info.enable_precisions.insert(torch::kHALF); + auto trt_mod = torch_tensorrt::CompileGraph(mod, info); + auto out = trt_mod.forward({in}); + +And now we are running the module in FP16 precision. You can then save the module to load later. + +.. code-block:: c++ + + trt_mod.save("") + +Torch-TensorRT compiled TorchScript modules are loaded in the same way as normal TorchScript module. Make sure your deployment application is linked against ``libtorchtrt.so`` + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + + int main(int argc, const char* argv[]) { + torch::jit::Module module; + try { + // Deserialize the ScriptModule from a file using torch::jit::load(). + module = torch::jit::load(""); + } + catch (const c10::Error& e) { + std::cerr << "error loading the model\n"; + return -1; + } + + torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA); + auto out = mod.forward(in); + + std::cout << "ok\n"; + } + +If you want to save the engine produced by Torch-TensorRT to use in a TensorRT application you can use the ``ConvertGraphToTRTEngine`` API. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF); + auto input_sizes = std::vector({in.sizes()}); + torch_tensorrt::CompileSpec info(input_sizes); + info.enabled_precisions.insert(torch::kHALF); + auto trt_mod = torch_tensorrt::ConvertGraphToTRTEngine(mod, "forward", info); + std::ofstream out("/tmp/engine_converted_from_jit.trt"); + out << engine; + out.close(); + +.. _under_the_hood: + +Under The Hood +--------------- + +When a module is provided to Torch-TensorRT, the compiler starts by mapping a graph like you saw above to a graph like this: + +.. code-block:: none + + graph(%input.2 : Tensor): + %2 : Float(84, 10) = prim::Constant[value=]() + %3 : Float(120, 84) = prim::Constant[value=]() + %4 : Float(576, 120) = prim::Constant[value=]() + %5 : int = prim::Constant[value=-1]() # x.py:25:0 + %6 : int[] = prim::Constant[value=annotate(List[int], [])]() + %7 : int[] = prim::Constant[value=[2, 2]]() + %8 : int[] = prim::Constant[value=[0, 0]]() + %9 : int[] = prim::Constant[value=[1, 1]]() + %10 : bool = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %11 : int = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %12 : bool = prim::Constant[value=0]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %self.classifer.fc3.bias : Float(10) = prim::Constant[value= 0.0464 0.0383 0.0678 0.0932 0.1045 -0.0805 -0.0435 -0.0818 0.0208 -0.0358 [ CUDAFloatType{10} ]]() + %self.classifer.fc2.bias : Float(84) = prim::Constant[value=]() + %self.classifer.fc1.bias : Float(120) = prim::Constant[value=]() + %self.feat.conv2.weight : Float(16, 6, 3, 3) = prim::Constant[value=]() + %self.feat.conv2.bias : Float(16) = prim::Constant[value=]() + %self.feat.conv1.weight : Float(6, 1, 3, 3) = prim::Constant[value=]() + %self.feat.conv1.bias : Float(6) = prim::Constant[value= 0.0530 -0.1691 0.2802 0.1502 0.1056 -0.1549 [ CUDAFloatType{6} ]]() + %input0.4 : Tensor = aten::_convolution(%input.2, %self.feat.conv1.weight, %self.feat.conv1.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %input0.5 : Tensor = aten::relu(%input0.4) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %input1.2 : Tensor = aten::max_pool2d(%input0.5, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %input0.6 : Tensor = aten::_convolution(%input1.2, %self.feat.conv2.weight, %self.feat.conv2.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %input2.1 : Tensor = aten::relu(%input0.6) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %x.1 : Tensor = aten::max_pool2d(%input2.1, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 + %27 : Tensor = aten::matmul(%input.1, %4) + %28 : Tensor = trt::const(%self.classifer.fc1.bias) + %29 : Tensor = aten::add_(%28, %27, %11) + %input0.2 : Tensor = aten::relu(%29) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %31 : Tensor = aten::matmul(%input0.2, %3) + %32 : Tensor = trt::const(%self.classifer.fc2.bias) + %33 : Tensor = aten::add_(%32, %31, %11) + %input1.1 : Tensor = aten::relu(%33) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %35 : Tensor = aten::matmul(%input1.1, %2) + %36 : Tensor = trt::const(%self.classifer.fc3.bias) + %37 : Tensor = aten::add_(%36, %35, %11) + return (%37) + (CompileGraph) + +The graph has now been transformed from a collection of modules, each managing their own parameters into a single graph with the parameters inlined +into the graph and all of the operations laid out. Torch-TensorRT has also executed a number of optimizations and mappings to make the graph easier to translate to TensorRT. +From here the compiler can assemble the TensorRT engine by following the dataflow through the graph. + +When the graph construction phase is complete, Torch-TensorRT produces a serialized TensorRT engine. From here depending on the API, this engine is returned +to the user or moves into the graph construction phase. Here Torch-TensorRT creates a JIT Module to execute the TensorRT engine which will be instantiated and managed +by the Torch-TensorRT runtime. + +Here is the graph that you get back after compilation is complete: + +.. code-block:: none + + graph(%self_1 : __torch__.lenet, %input_0 : Tensor): + %1 : ...trt.Engine = prim::GetAttr[name="lenet"](%self_1) + %3 : Tensor[] = prim::ListConstruct(%input_0) + %4 : Tensor[] = trt::execute_engine(%3, %1) + %5 : Tensor = prim::ListUnpack(%4) + return (%5) + + +You can see the call where the engine is executed, after extracting the attribute containing the engine and constructing a list of inputs, then returns the tensors back to the user. + +.. _unsupported_ops: + +Working with Unsupported Operators +----------------------------------- + +Torch-TensorRT is a new library and the PyTorch operator library is quite large, so there will be ops that aren't supported natively by the compiler. You can either use the composition techinques +shown above to make modules are fully Torch-TensorRT supported and ones that are not and stitch the modules together in the deployment application or you can register converters for missing ops. + + You can check support without going through the full compilation pipleine using the ``torch_tensorrt::CheckMethodOperatorSupport(const torch::jit::Module& module, std::string method_name)`` api + to see what operators are not supported. ``torchtrtc`` automatically checks modules with this method before starting compilation and will print out a list of operators that are not supported. + +.. _custom_converters: + +Registering Custom Converters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Operations are mapped to TensorRT through the use of modular converters, a function that takes a node from a the JIT graph and produces an equivalent layer or subgraph in TensorRT. +Torch-TensorRT ships with a library of these converters stored in a registry, that will be executed depending on the node being parsed. For instance a ``aten::relu(%input0.4)`` instruction will trigger +the relu converter to be run on it, producing an activation layer in the TensorRT graph. But since this library is not exhaustive you may need to write your own to get Torch-TensorRT +to support your module. + +Shipped with the Torch-TensorRT distribution are the internal core API headers. You can therefore access the converter registry and add a converter for the op you need. + +For example, if we try to compile a graph with a build of Torch-TensorRT that doesn't support the flatten operation (``aten::flatten``) you may see this error: + +.. code-block:: none + + terminate called after throwing an instance of 'torch_tensorrt::Error' + what(): [enforce fail at core/conversion/conversion.cpp:109] Expected converter to be true but got false + Unable to convert node: %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 (conversion.AddLayer) + Schema: aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor) + Converter for aten::flatten requested, but no such converter was found. + If you need a converter for this operator, you can try implementing one yourself + or request a converter: https://www.github.com/NVIDIA/Torch-TensorRT/issues + +We can register a converter for this operator in our application. All of the tools required to build a converter can be imported by including ``torch_tensorrt/core/conversion/converters/converters.h``. +We start by creating an instance of the self-registering class ``torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns()`` which will register converters +in the global converter registry, associating a function schema like ``aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)`` with a lambda that +will take the state of the conversion, the node/operation in question to convert and all of the inputs to the node and produces as a side effect a new layer in the TensorRT network. +Arguments are passed as a vector of inspectable unions of TensorRT ``ITensors`` and Torch ``IValues`` in the order arguments are listed in the schema. + +Below is a implementation of a ``aten::flatten`` converter that we can use in our application. You have full access to the Torch and TensorRT libraries in the converter implementation. So +for example we can quickly get the output size by just running the operation in PyTorch instead of implementing the full calculation outself like we do below for this flatten converter. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + #include "torch_tensorrt/core/conversion/converters/converters.h" + + static auto flatten_converter = torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns() + .pattern({ + "aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)", + [](torch_tensorrt::core::conversion::ConversionCtx* ctx, + const torch::jit::Node* n, + torch_tensorrt::core::conversion::converters::args& args) -> bool { + auto in = args[0].ITensor(); + auto start_dim = args[1].unwrapToInt(); + auto end_dim = args[2].unwrapToInt(); + auto in_shape = torch_tensorrt::core::util::toVec(in->getDimensions()); + auto out_shape = torch::flatten(torch::rand(in_shape), start_dim, end_dim).sizes(); + + auto shuffle = ctx->net->addShuffle(*in); + shuffle->setReshapeDimensions(torch_tensorrt::core::util::toDims(out_shape)); + shuffle->setName(torch_tensorrt::core::util::node_info(n).c_str()); + + auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], shuffle->getOutput(0)); + return true; + } + }); + + int main() { + ... + +To use this converter in Python, it is recommended to use PyTorch's `C++ / CUDA Extention `_ +template to wrap your library of converters into a ``.so`` that you can load with ``ctypes.CDLL()`` in your Python application. + +You can find more information on all the details of writing converters in the contributors documentation (:ref:`writing_converters`). +If you find yourself with a large library of converter implementations, do consider upstreaming them, PRs are welcome and it would be great for the community to benefit as well. diff --git a/docs/v1.1.1/_sources/getting_started/getting_started_with_python_api.rst.txt b/docs/v1.1.1/_sources/getting_started/getting_started_with_python_api.rst.txt new file mode 100644 index 0000000000..fece176156 --- /dev/null +++ b/docs/v1.1.1/_sources/getting_started/getting_started_with_python_api.rst.txt @@ -0,0 +1,58 @@ +.. _getting_started_with_python_api: + +Using Torch-TensorRT in Python +******************************* + +The Torch-TensorRT Python API supports a number of unique usecases compared to the CLI and C++ APIs which solely support TorchScript compilation. + +Torch-TensorRT Python API can accept a ``torch.nn.Module``, ``torch.jit.ScriptModule``, or ``torch.fx.GraphModule`` as an input. +Depending on what is provided one of the two frontends (TorchScript or FX) will be selected to compile the module. Provided the +module type is supported, users may explicitly set which frontend they would like to use using the ``ir`` flag for ``compile``. +If given a ``torch.nn.Module`` and the ``ir`` flag is set to either ``default`` or ``torchscript`` the module will be run through +``torch.jit.script`` to convert the input module into a TorchScript module. + + +To compile your input ``torch.nn.Module`` with Torch-TensorRT, all you need to do is provide the module and inputs +to Torch-TensorRT and you will be returned an optimized TorchScript module to run or add into another PyTorch module. Inputs +is a list of ``torch_tensorrt.Input`` classes which define input's shape, datatype and memory format. You can also specify settings such as +operating precision for the engine or target device. After compilation you can save the module just like any other module +to load in a deployment application. In order to load a TensorRT/TorchScript module, make sure you first import ``torch_tensorrt``. + +.. code-block:: python + + import torch_tensorrt + + ... + + model = MyModel().eval() # torch module needs to be in eval (not training) mode + + inputs = [ + torch_tensorrt.Input( + min_shape=[1, 1, 16, 16], + opt_shape=[1, 1, 32, 32], + max_shape=[1, 1, 64, 64], + dtype=torch.half, + ) + ] + enabled_precisions = {torch.float, torch.half} # Run with fp16 + + trt_ts_module = torch_tensorrt.compile( + model, inputs=inputs, enabled_precisions=enabled_precisions + ) + + input_data = input_data.to("cuda").half() + result = trt_ts_module(input_data) + torch.jit.save(trt_ts_module, "trt_ts_module.ts") + +.. code-block:: python + + # Deployment application + import torch + import torch_tensorrt + + trt_ts_module = torch.jit.load("trt_ts_module.ts") + input_data = input_data.to("cuda").half() + result = trt_ts_module(input_data) + +Torch-TensorRT Python API also provides ``torch_tensorrt.ts.compile`` which accepts a TorchScript module as input and ``torch_tensorrt.fx.compile`` which accepts a FX GraphModule as input. + diff --git a/docs/v1.1.1/_sources/getting_started/installation.rst.txt b/docs/v1.1.1/_sources/getting_started/installation.rst.txt new file mode 100644 index 0000000000..937dd1dde9 --- /dev/null +++ b/docs/v1.1.1/_sources/getting_started/installation.rst.txt @@ -0,0 +1,362 @@ +.. _installation: + +Installation +============= + +Precompiled Binaries +********************* + +Dependencies +--------------- + +You need to have either PyTorch or LibTorch installed based on if you are using Python or C++ +and you must have CUDA, cuDNN and TensorRT installed. + + * https://www.pytorch.org + * https://developer.nvidia.com/cuda + * https://developer.nvidia.com/cudnn + * https://developer.nvidia.com/tensorrt + + +Python Package +--------------- + +You can install the python package using + +.. code-block:: sh + + pip3 install torch-tensorrt -f https://github.com/pytorch/TensorRT/releases + +.. _bin-dist: + +C++ Binary Distribution +------------------------ + +Precompiled tarballs for releases are provided here: https://github.com/pytorch/TensorRT/releases + +.. _compile-from-source: + +Compiling From Source +****************************************** + +.. _installing-deps: + +Dependencies for Compilation +------------------------------- + +Torch-TensorRT is built with Bazel, so begin by installing it. + + * The easiest way is to install bazelisk using the method of your choosing https://github.com/bazelbuild/bazelisk + * Otherwise you can use the following instructions to install binaries https://docs.bazel.build/versions/master/install.html + * Finally if you need to compile from source (e.g. aarch64 until bazel distributes binaries for the architecture) you can use these instructions + + .. code-block:: shell + + export BAZEL_VERSION=$(cat /.bazelversion) + mkdir bazel + cd bazel + curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-dist.zip + unzip bazel-$BAZEL_VERSION-dist.zip + bash ./compile.sh + cp output/bazel /usr/local/bin/ + + +You will also need to have CUDA installed on the system (or if running in a container, the system must have +the CUDA driver installed and the container must have CUDA) + +The correct LibTorch version will be pulled down for you by bazel. + + NOTE: For best compatability with official PyTorch, use torch==1.10.0+cuda113, TensorRT 8.0 and cuDNN 8.2 for CUDA 11.3 however Torch-TensorRT itself supports + TensorRT and cuDNN for other CUDA versions for usecases such as using NVIDIA compiled distributions of PyTorch that use other versions of CUDA + e.g. aarch64 or custom compiled version of PyTorch. + +.. _abis: + +Choosing the Right ABI +^^^^^^^^^^^^^^^^^^^^^^^^ + +Likely the most complicated thing about compiling Torch-TensorRT is selecting the correct ABI. There are two options +which are incompatible with each other, pre-cxx11-abi and the cxx11-abi. The complexity comes from the fact that while +the most popular distribution of PyTorch (wheels downloaded from pytorch.org/pypi directly) use the pre-cxx11-abi, most +other distributions you might encounter (e.g. ones from NVIDIA - NGC containers, and builds for Jetson as well as certain +libtorch builds and likely if you build PyTorch from source) use the cxx11-abi. It is important you compile Torch-TensorRT +using the correct ABI to function properly. Below is a table with general pairings of PyTorch distribution sources and the +recommended commands: + ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch Source | Recommended C++ Compilation Command | Recommended Python Compilation Command | ++=============================================================+==========================================================+====================================================================+ +| PyTorch whl file from PyTorch.org | bazel build //:libtorchtrt -c opt --config pre_cxx11_abi | python3 setup.py bdist_wheel | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| libtorch-shared-with-deps-*.zip from PyTorch.org | bazel build //:libtorchtrt -c opt --config pre_cxx11_abi | python3 setup.py bdist_wheel | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| libtorch-cxx11-abi-shared-with-deps-*.zip from PyTorch.org | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch preinstalled in an NGC container | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch from the NVIDIA Forums for Jetson | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --jetpack-version 4.6 --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch built from Source | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ + + NOTE: For all of the above cases you must correctly declare the source of PyTorch you intend to use in your WORKSPACE file for both Python and C++ builds. See below for more information + +You then have two compilation options: + +.. _build-from-archive: + +**Building using cuDNN & TensorRT tarball distributions** +-------------------------------------------------------------- + + This is recommended so as to build Torch-TensorRT hermetically and insures any compilation errors are not caused by version issues + + Make sure when running Torch-TensorRT that these versions of the libraries are prioritized in your ``$LD_LIBRARY_PATH`` + +You need to download the tarball distributions of TensorRT and cuDNN from the NVIDIA website. + * https://developer.nvidia.com/cudnn + * https://developer.nvidia.com/tensorrt + +Place these files in a directory (the directories ``third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]`` exist for this purpose) + +Then compile referencing the directory with the tarballs + + If you get errors regarding the packages, check their sha256 hashes and make sure they match the ones listed in ``WORKSPACE`` + +Release Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: shell + + bazel build //:libtorchtrt -c opt --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-archive-debug: + +Debug Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build with debug symbols use the following command + +.. code-block:: shell + + bazel build //:libtorchtrt -c dbg --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +Pre CXX11 ABI Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build using the pre-CXX11 ABI use the ``pre_cxx11_abi`` config + +.. code-block:: shell + + bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-local: + +**Building using locally installed cuDNN & TensorRT** +-------------------------------------------------------------- + + If you encounter bugs and you compiled using this method please disclose that you used local sources in the issue (an ldd dump would be nice too) + +Install TensorRT, CUDA and cuDNN on the system before starting to compile. + +In WORKSPACE comment out: + +.. code-block:: python + + # Downloaded distributions to use with --distdir + http_archive( + name="cudnn", + urls=[ + "", + ], + build_file="@//third_party/cudnn/archive:BUILD", + sha256="", + strip_prefix="cuda", + ) + + http_archive( + name="tensorrt", + urls=[ + "", + ], + build_file="@//third_party/tensorrt/archive:BUILD", + sha256="", + strip_prefix="TensorRT-", + ) + +and uncomment + +.. code-block:: python + + # Locally installed dependencies + new_local_repository( + name="cudnn", path="/usr/", build_file="@//third_party/cudnn/local:BUILD" + ) + + new_local_repository( + name="tensorrt", path="/usr/", build_file="@//third_party/tensorrt/local:BUILD" + ) + +Release Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +Compile using: + +.. code-block:: shell + + bazel build //:libtorchtrt -c opt + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-local-debug: + +Debug Build +^^^^^^^^^^^^ + +To build with debug symbols use the following command + +.. code-block:: shell + + bazel build //:libtorchtrt -c dbg + + +A tarball with the include files and library can then be found in ``bazel-bin`` + +Pre CXX11 ABI Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build using the pre-CXX11 ABI use the ``pre_cxx11_abi`` config + +.. code-block:: shell + + bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] + +**Building with CMake** +----------------------- + +It is possible to build the API libraries (in cpp/) and the torchtrtc executable using CMake instead of Bazel. +Currently, the python API and the tests cannot be built with CMake. +Begin by installing CMake. + + * Latest releases of CMake and instructions on how to install are available for different platforms + [on their website](https://cmake.org/download/). + +A few useful CMake options include: + + * CMake finders for TensorRT and cuDNN are provided in `cmake/Modules`. In order for CMake to use them, pass + `-DCMAKE_MODULE_PATH=cmake/Modules` when configuring the project with CMake. + * Libtorch provides its own CMake finder. In case CMake doesn't find it, pass the path to your install of + libtorch with `-DTorch_DIR=/share/cmake/Torch` + * If TensorRT is not found with the provided cmake finder, specify `-DTensorRT_ROOT=` + * Finally, configure and build the project in a build directory of your choice with the following command + from the root of Torch-TensorRT project: + + .. code-block:: shell + + cmake -S. -B \ + [-DCMAKE_MODULE_PATH=cmake/Module] \ + [-DTorch_DIR=/share/cmake/Torch] \ + [-DTensorRT_ROOT=] \ + [-DCMAKE_BUILD_TYPE=Debug|Release] + cmake --build + +**Building the Python package** +-------------------------------- + +Begin by installing ``ninja`` + +You can build the Python package using ``setup.py`` (this will also build the correct version of ``libtorchtrt.so``) + +.. code-block:: shell + + python3 setup.py [install/bdist_wheel] + +Debug Build +^^^^^^^^^^^^ + +.. code-block:: shell + + python3 setup.py develop [--user] + +This also compiles a debug build of ``libtorchtrt.so`` + +**Building Natively on aarch64 (Jetson)** +------------------------------------------- + +Prerequisites +^^^^^^^^^^^^^^ + +Install or compile a build of PyTorch/LibTorch for aarch64 + +NVIDIA hosts builds the latest release branch for Jetson here: + + https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-10-now-available/72048 + + +Enviorment Setup +^^^^^^^^^^^^^^^^^ + +To build natively on aarch64-linux-gnu platform, configure the ``WORKSPACE`` with local available dependencies. + +1. Replace ``WORKSPACE`` with the corresponding WORKSPACE file in ``//toolchains/jp_workspaces`` + +2. Configure the correct paths to directory roots containing local dependencies in the ``new_local_repository`` rules: + + NOTE: If you installed PyTorch using a pip package, the correct path is the path to the root of the python torch package. + In the case that you installed with ``sudo pip install`` this will be ``/usr/local/lib/python3.8/dist-packages/torch``. + In the case you installed with ``pip install --user`` this will be ``$HOME/.local/lib/python3.8/site-packages/torch``. + +In the case you are using NVIDIA compiled pip packages, set the path for both libtorch sources to the same path. This is because unlike +PyTorch on x86_64, NVIDIA aarch64 PyTorch uses the CXX11-ABI. If you compiled for source using the pre_cxx11_abi and only would like to +use that library, set the paths to the same path but when you compile make sure to add the flag ``--config=pre_cxx11_abi`` + +.. code-block:: shell + + new_local_repository( + name = "libtorch", + path = "/usr/local/lib/python3.8/dist-packages/torch", + build_file = "third_party/libtorch/BUILD" + ) + + new_local_repository( + name = "libtorch_pre_cxx11_abi", + path = "/usr/local/lib/python3.8/dist-packages/torch", + build_file = "third_party/libtorch/BUILD" + ) + + +Compile C++ Library and Compiler CLI +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + NOTE: Due to shifting dependency locations between Jetpack 4.5 and 4.6 there is a now a flag to inform bazel of the Jetpack version + + .. code-block:: shell + + --platforms //toolchains:jetpack_x.x + + +Compile Torch-TensorRT library using bazel command: + +.. code-block:: shell + + bazel build //:libtorchtrt --platforms //toolchains:jetpack_5.0 + +Compile Python API +^^^^^^^^^^^^^^^^^^^^ + + NOTE: Due to shifting dependencies locations between Jetpack 4.5 and newer Jetpack verisons there is now a flag for ``setup.py`` which sets the jetpack version (default: 5.0) + +Compile the Python API using the following command from the ``//py`` directory: + +.. code-block:: shell + + python3 setup.py install --use-cxx11-abi + +If you have a build of PyTorch that uses Pre-CXX11 ABI drop the ``--use-cxx11-abi`` flag + +If you are building for Jetpack 4.5 add the ``--jetpack-version 5.0`` flag diff --git a/docs/v1.1.1/_sources/index.rst.txt b/docs/v1.1.1/_sources/index.rst.txt new file mode 100644 index 0000000000..30b0beddc6 --- /dev/null +++ b/docs/v1.1.1/_sources/index.rst.txt @@ -0,0 +1,124 @@ +.. Torch-TensorRT documentation master file, created by + sphinx-quickstart on Mon May 4 13:43:16 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Torch-TensorRT +============== +Ahead-of-time compilation of TorchScript / PyTorch JIT for NVIDIA GPUs +----------------------------------------------------------------------- +Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA's TensorRT Deep Learning Optimizer and Runtime. +Unlike PyTorch's Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your +TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting +a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into the JIT runtime seamlessly. +After compilation using the optimized graph should feel no different than running a TorchScript module. +You also have access to TensorRT's suite of configurations at compile time, so you are able to specify +operating precision (FP32/FP16/INT8) and other settings for your module. + +More Information / System Architecture: + +* `GTC 2020 Talk `_ + +Getting Started +---------------- +* :ref:`installation` +* :ref:`getting_started` +* :ref:`ptq` +* :ref:`torchtrtc` +* :ref:`use_from_pytorch` +* :ref:`runtime` +* :ref:`using_dla` + +.. toctree:: + :caption: Getting Started + :maxdepth: 1 + :hidden: + + tutorials/installation + tutorials/getting_started_with_cpp_api + tutorials/getting_started_with_python_api + tutorials/creating_torchscript_module_in_python + tutorials/ptq + tutorials/torchtrtc + tutorials/use_from_pytorch + tutorials/runtime + tutorials/using_dla + +.. toctree:: + :caption: Notebooks + :maxdepth: 1 + :hidden: + + _notebooks/CitriNet-example + _notebooks/dynamic-shapes + _notebooks/EfficientNet-example + _notebooks/Hugging-Face-BERT + _notebooks/lenet-getting-started + _notebooks/Resnet50-example + _notebooks/ssd-object-detection-demo + _notebooks/vgg-qat + + +Python API Documenation +------------------------ +* :ref:`torch_tensorrt_py` +* :ref:`torch_tensorrt_logging_py` +* :ref:`torch_tensorrt_ptq_py` +* :ref:`torch_tensorrt_ts_py` + +.. toctree:: + :caption: Python API Documenation + :maxdepth: 0 + :hidden: + + py_api/torch_tensorrt + py_api/logging + py_api/ptq + py_api/ts + +C++ API Documenation +---------------------- +* :ref:`namespace_torch_tensorrt` +* :ref:`namespace_torch_tensorrt__logging` +* :ref:`namespace_torch_tensorrt__ptq` +* :ref:`namespace_torch_tensorrt__torchscript` + + +.. toctree:: + :caption: C++ API Documenation + :maxdepth: 1 + :hidden: + + _cpp_api/torch_tensort_cpp + _cpp_api/namespace_torch_tensorrt + _cpp_api/namespace_torch_tensorrt__logging + _cpp_api/namespace_torch_tensorrt__torchscript + _cpp_api/namespace_torch_tensorrt__ptq + +Contributor Documentation +-------------------------------- +* :ref:`system_overview` +* :ref:`writing_converters` +* :ref:`useful_links` + +.. toctree:: + :caption: Contributor Documentation + :maxdepth: 1 + :hidden: + + contributors/system_overview + contributors/writing_converters + contributors/useful_links + +Indices +---------------- +* :ref:`supported_ops` +* :ref:`genindex` +* :ref:`search` + +.. toctree:: + :caption: Indices + :maxdepth: 1 + :hidden: + + indices/supported_ops diff --git a/docs/v1.1.1/_sources/indices/supported_ops.rst.txt b/docs/v1.1.1/_sources/indices/supported_ops.rst.txt new file mode 100644 index 0000000000..2ce7b34ae7 --- /dev/null +++ b/docs/v1.1.1/_sources/indices/supported_ops.rst.txt @@ -0,0 +1,274 @@ + +.. _supported_ops: + +================================= +Operators Supported +================================= + + +Operators Currently Supported Through Converters +------------------------------------------------- + +- aten::_convolution(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool benchmark, bool deterministic, bool cudnn_enabled, bool allow_tf32) -> (Tensor) +- aten::_convolution.deprecated(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool benchmark, bool deterministic, bool cudnn_enabled) -> (Tensor) +- aten::abs(Tensor self) -> (Tensor) +- aten::acos(Tensor self) -> (Tensor) +- aten::acosh(Tensor self) -> (Tensor) +- aten::adaptive_avg_pool1d(Tensor self, int[1] output_size) -> (Tensor) +- aten::adaptive_avg_pool2d(Tensor self, int[2] output_size) -> (Tensor) +- aten::adaptive_avg_pool3d(Tensor self, int[3] output_size) -> (Tensor) +- aten::adaptive_max_pool1d(Tensor self, int[2] output_size) -> (Tensor, Tensor) +- aten::adaptive_max_pool2d(Tensor self, int[2] output_size) -> (Tensor, Tensor) +- aten::adaptive_max_pool3d(Tensor self, int[3] output_size) -> (Tensor, Tensor) +- aten::add.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) +- aten::add.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +- aten::add_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> (Tensor(a!)) +- aten::asin(Tensor self) -> (Tensor) +- aten::asinh(Tensor self) -> (Tensor) +- aten::atan(Tensor self) -> (Tensor) +- aten::atanh(Tensor self) -> (Tensor) +- aten::avg_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=[0], bool ceil_mode=False, bool count_include_pad=True) -> (Tensor) +- aten::avg_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=[0, 0], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor) +- aten::avg_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=[], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor) +- aten::batch_norm(Tensor input, Tensor? gamma, Tensor? beta, Tensor? mean, Tensor? var, bool training, float momentum, float eps, bool cudnn_enabled) -> (Tensor) +- aten::bmm(Tensor self, Tensor mat2) -> (Tensor) +- aten::cat(Tensor[] tensors, int dim=0) -> (Tensor) +- aten::ceil(Tensor self) -> (Tensor) +- aten::clamp(Tensor self, Scalar? min=None, Scalar? max=None) -> (Tensor) +- aten::clamp_max(Tensor self, Scalar max) -> (Tensor) +- aten::clamp_min(Tensor self, Scalar min) -> (Tensor) +- aten::constant_pad_nd(Tensor self, int[] pad, Scalar value=0) -> (Tensor) +- aten::cos(Tensor self) -> (Tensor) +- aten::cosh(Tensor self) -> (Tensor) +- aten::cumsum(Tensor self, int dim, *, int? dtype=None) -> (Tensor) +- aten::div.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::div.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::div.Tensor_mode(Tensor self, Tensor other, *, str? rounding_mode) -> (Tensor) +- aten::div_.Scalar(Tensor(a!) self, Scalar other) -> (Tensor(a!)) +- aten::div_.Tensor(Tensor(a!) self, Tensor other) -> (Tensor(a!)) +- aten::elu(Tensor self, Scalar alpha=1, Scalar scale=1, Scalar input_scale=1) -> (Tensor) +- aten::embedding(Tensor weight, Tensor indices, int padding_idx=-1, bool scale_grad_by_freq=False, bool sparse=False) -> (Tensor) +- aten::eq.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::eq.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::erf(Tensor self) -> (Tensor) +- aten::exp(Tensor self) -> (Tensor) +- aten::expand(Tensor(a) self, int[] size, *, bool implicit=False) -> (Tensor(a)) +- aten::expand_as(Tensor(a) self, Tensor other) -> (Tensor(a)) +- aten::fake_quantize_per_channel_affine(Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max) -> (Tensor) +- aten::fake_quantize_per_tensor_affine(Tensor self, float scale, int zero_point, int quant_min, int quant_max) -> (Tensor) +- aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor) +- aten::floor(Tensor self) -> (Tensor) +- aten::floor_divide(Tensor self, Tensor other) -> (Tensor) +- aten::floor_divide.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::ge.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::ge.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::gru_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor) +- aten::gt.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::gt.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::hardtanh(Tensor self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor) +- aten::hardtanh_(Tensor(a!) self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor(a!)) +- aten::index.Tensor(Tensor self, Tensor?[] indices) -> (Tensor) +- aten::instance_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool use_input_stats, float momentum, float eps, bool cudnn_enabled) -> (Tensor) +- aten::layer_norm(Tensor input, int[] normalized_shape, Tensor? gamma, Tensor? beta, float eps, bool cudnn_enabled) -> (Tensor) +- aten::le.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::le.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::leaky_relu(Tensor self, Scalar negative_slope=0.01) -> (Tensor) +- aten::leaky_relu_(Tensor(a!) self, Scalar negative_slope=0.01) -> (Tensor(a!)) +- aten::linear(Tensor input, Tensor weight, Tensor? bias=None) -> (Tensor) +- aten::log(Tensor self) -> (Tensor) +- aten::lstm_cell(Tensor input, Tensor[] hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor, Tensor) +- aten::lt.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::lt.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::masked_fill.Scalar(Tensor self, Tensor mask, Scalar value) -> (Tensor) +- aten::matmul(Tensor self, Tensor other) -> (Tensor) +- aten::max(Tensor self) -> (Tensor) +- aten::max.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices) +- aten::max.other(Tensor self, Tensor other) -> (Tensor) +- aten::max_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=[], int[1] dilation=[], bool ceil_mode=False) -> (Tensor) +- aten::max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=[0, 0], int[2] dilation=[1, 1], bool ceil_mode=False) -> (Tensor) +- aten::max_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=[], int[3] dilation=[], bool ceil_mode=False) -> (Tensor) +- aten::mean(Tensor self, *, int? dtype=None) -> (Tensor) +- aten::mean.dim(Tensor self, int[] dim, bool keepdim=False, *, int? dtype=None) -> (Tensor) +- aten::min(Tensor self) -> (Tensor) +- aten::min.other(Tensor self, Tensor other) -> (Tensor) +- aten::mul.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::mul.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::mul_.Tensor(Tensor(a!) self, Tensor other) -> (Tensor(a!)) +- aten::narrow(Tensor(a) self, int dim, int start, int length) -> (Tensor(a)) +- aten::narrow.Tensor(Tensor(a) self, int dim, Tensor start, int length) -> (Tensor(a)) +- aten::ne.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::ne.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::neg(Tensor self) -> (Tensor) +- aten::norm.ScalarOpt_dim(Tensor self, Scalar? p, int[1] dim, bool keepdim=False) -> (Tensor) +- aten::permute(Tensor(a) self, int[] dims) -> (Tensor(a)) +- aten::pixel_shuffle(Tensor self, int upscale_factor) -> (Tensor) +- aten::pow.Tensor_Scalar(Tensor self, Scalar exponent) -> (Tensor) +- aten::pow.Tensor_Tensor(Tensor self, Tensor exponent) -> (Tensor) +- aten::prelu(Tensor self, Tensor weight) -> (Tensor) +- aten::prod(Tensor self, *, int? dtype=None) -> (Tensor) +- aten::prod.dim_int(Tensor self, int dim, bool keepdim=False, *, int? dtype=None) -> (Tensor) +- aten::reciprocal(Tensor self) -> (Tensor) +- aten::reflection_pad1d(Tensor self, int[2] padding) -> (Tensor) +- aten::reflection_pad2d(Tensor self, int[4] padding) -> (Tensor) +- aten::relu(Tensor input) -> (Tensor) +- aten::relu_(Tensor(a!) self) -> (Tensor(a!)) +- aten::repeat(Tensor self, int[] repeats) -> (Tensor) +- aten::replication_pad1d(Tensor self, int[2] padding) -> (Tensor) +- aten::replication_pad2d(Tensor self, int[4] padding) -> (Tensor) +- aten::replication_pad3d(Tensor self, int[6] padding) -> (Tensor) +- aten::reshape(Tensor self, int[] shape) -> (Tensor) +- aten::roll(Tensor self, int[1] shifts, int[1] dims=[]) -> (Tensor) +- aten::rsub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) +- aten::rsub.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +- aten::select.int(Tensor(a) self, int dim, int index) -> (Tensor(a)) +- aten::sigmoid(Tensor input) -> (Tensor) +- aten::sigmoid_(Tensor(a!) self) -> (Tensor(a!)) +- aten::sin(Tensor self) -> (Tensor) +- aten::sinh(Tensor self) -> (Tensor) +- aten::slice.Tensor(Tensor(a) self, int dim=0, int? start=None, int? end=None, int step=1) -> (Tensor(a)) +- aten::softmax.int(Tensor self, int dim, int? dtype=None) -> (Tensor) +- aten::split(Tensor self, int[] split_sizes, int dim=0) -> (Tensor[]) +- aten::split.Tensor(Tensor(a) self, int split_size, int dim=0) -> (Tensor[]) +- aten::split_with_sizes(Tensor(a) self, int[] split_sizes, int dim=0) -> (Tensor[]) +- aten::sqrt(Tensor self) -> (Tensor) +- aten::squeeze.dim(Tensor(a) self, int dim) -> (Tensor(a)) +- aten::stack(Tensor[] tensors, int dim=0) -> (Tensor) +- aten::sub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) +- aten::sub.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +- aten::sub_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> (Tensor(a!)) +- aten::sum(Tensor self, *, int? dtype=None) -> (Tensor) +- aten::sum.dim_IntList(Tensor self, int[1] dim, bool keepdim=False, *, int? dtype=None) -> (Tensor) +- aten::t(Tensor self) -> (Tensor) +- aten::tan(Tensor self) -> (Tensor) +- aten::tanh(Tensor input) -> (Tensor) +- aten::tanh_(Tensor(a!) self) -> (Tensor(a!)) +- aten::to.device(Tensor(a) self, Device device, int dtype, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor(a)) +- aten::to.dtype(Tensor self, int dtype, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor) +- aten::to.other(Tensor self, Tensor other, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor) +- aten::to.prim_Device(Tensor(a) self, Device? device, int? dtype=None, bool non_blocking=False, bool copy=False) -> (Tensor(a|b)) +- aten::topk(Tensor self, int k, int dim=-1, bool largest=True, bool sorted=True) -> (Tensor values, Tensor indices) +- aten::transpose.int(Tensor(a) self, int dim0, int dim1) -> (Tensor(a)) +- aten::unbind.int(Tensor(a -> *) self, int dim=0) -> (Tensor[]) +- aten::unsqueeze(Tensor(a) self, int dim) -> (Tensor(a)) +- aten::upsample_bilinear2d(Tensor self, int[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> (Tensor) +- aten::upsample_bilinear2d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor) +- aten::upsample_linear1d(Tensor self, int[1] output_size, bool align_corners, float? scales=None) -> (Tensor) +- aten::upsample_linear1d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor) +- aten::upsample_nearest1d(Tensor self, int[1] output_size, float? scales=None) -> (Tensor) +- aten::upsample_nearest1d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor) +- aten::upsample_nearest2d(Tensor self, int[2] output_size, float? scales_h=None, float? scales_w=None) -> (Tensor) +- aten::upsample_nearest2d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor) +- aten::upsample_nearest3d(Tensor self, int[3] output_size, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> (Tensor) +- aten::upsample_nearest3d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor) +- aten::upsample_trilinear3d(Tensor self, int[3] output_size, bool align_corners, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> (Tensor) +- aten::upsample_trilinear3d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor) +- aten::view(Tensor(a) self, int[] size) -> (Tensor(a)) +- trt::const(Tensor self) -> (Tensor) + +Operators Currently Supported Through Evaluators +------------------------------------------------- + +- aten::Bool.float(float b) -> (bool) +- aten::Bool.int(int a) -> (bool) +- aten::Float.Scalar(Scalar a) -> float +- aten::Float.bool(bool a) -> float +- aten::Float.int(int a) -> float +- aten::Int.Scalar(Scalar a) -> int +- aten::Int.bool(bool a) -> int +- aten::Int.float(float a) -> int +- aten::Int.int(int a) -> int +- aten::__and__(int a, int b) -> (bool) +- aten::__and__.bool(bool a, bool b) -> (bool) +- aten::__getitem__.t(t[](a) list, int idx) -> (t(*)) +- aten::__is__(t1 self, t2 obj) -> bool +- aten::__isnot__(t1 self, t2 obj) -> bool +- aten::__not__(bool self) -> bool +- aten::__or__(int a, int b) -> (bool) +- aten::__range_length(int lo, int hi, int step) -> int +- aten::__round_to_zero_floordiv(int a, int b) -> (int) +- aten::__xor__(int a, int b) -> (bool) +- aten::add.float(float a, float b) -> (float) +- aten::add.int(int a, int b) -> (int) +- aten::add.str(str a, str b) -> (str) +- aten::add_.t(t[](a!) self, t[] b) -> (t[]) +- aten::append.t(t[](a!) self, t(c -> *) el) -> (t[](a!)) +- aten::arange(Scalar end, *, int? dtype=None, int? layout=None, + Device? device=None, bool? pin_memory=None) -> (Tensor) +- aten::arange.start(Scalar start, Scalar end, *, ScalarType? dtype=None, + Layout? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor) +- aten::arange.start_step(Scalar start, Scalar end, Scalar step, *, ScalarType? dtype=None, + Layout? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor) +- aten::clone(Tensor self, *, int? memory_format=None) -> (Tensor) +- aten::copy_(Tensor(a!) self, Tensor src, bool non_blocking=False) -> (Tensor(a!)) +- aten::dim(Tensor self) -> int +- aten::div.float(float a, float b) -> (float) +- aten::div.int(int a, int b) -> (float) +- aten::eq.bool(bool a, bool b) -> (bool) +- aten::eq.float(float a, float b) -> (bool) +- aten::eq.float_int(float a, int b) -> (bool) +- aten::eq.int(int a, int b) -> (bool) +- aten::eq.int_float(int a, float b) -> (bool) +- aten::eq.str(str a, str b) -> (bool) +- aten::extend.t(t[](a!) self, t[] other) -> () +- aten::floor.float(float a) -> (int) +- aten::floor.int(int a) -> (int) +- aten::floordiv.float(float a, float b) -> (int) +- aten::floordiv.int(int a, int b) -> (int) +- aten::format(str self, ...) -> (str) +- aten::ge.bool(bool a, bool b) -> (bool) +- aten::ge.float(float a, float b) -> (bool) +- aten::ge.float_int(float a, int b) -> (bool) +- aten::ge.int(int a, int b) -> (bool) +- aten::ge.int_float(int a, float b) -> (bool) +- aten::gt.bool(bool a, bool b) -> (bool) +- aten::gt.float(float a, float b) -> (bool) +- aten::gt.float_int(float a, int b) -> (bool) +- aten::gt.int(int a, int b) -> (bool) +- aten::gt.int_float(int a, float b) -> (bool) +- aten::is_floating_point(Tensor self) -> (bool) +- aten::le.bool(bool a, bool b) -> (bool) +- aten::le.float(float a, float b) -> (bool) +- aten::le.float_int(float a, int b) -> (bool) +- aten::le.int(int a, int b) -> (bool) +- aten::le.int_float(int a, float b) -> (bool) +- aten::len.t(t[] a) -> (int) +- aten::lt.bool(bool a, bool b) -> (bool) +- aten::lt.float(float a, float b) -> (bool) +- aten::lt.float_int(float a, int b) -> (bool) +- aten::lt.int(int a, int b) -> (bool) +- aten::lt.int_float(int a, float b) -> (bool) +- aten::mul.float(float a, float b) -> (float) +- aten::mul.int(int a, int b) -> (int) +- aten::ne.bool(bool a, bool b) -> (bool) +- aten::ne.float(float a, float b) -> (bool) +- aten::ne.float_int(float a, int b) -> (bool) +- aten::ne.int(int a, int b) -> (bool) +- aten::ne.int_float(int a, float b) -> (bool) +- aten::neg.int(int a) -> (int) +- aten::numel(Tensor self) -> int +- aten::pow.float(float a, float b) -> (float) +- aten::pow.float_int(float a, int b) -> (float) +- aten::pow.int(int a, int b) -> (float) +- aten::pow.int_float(int a, float b) -> (float) +- aten::size(Tensor self) -> (int[]) +- aten::size.int(Tensor self, int dim) -> (int) +- aten::slice.t(t[] l, int start, int end=9223372036854775807, int step=1) -> (t[]) +- aten::sqrt.float(float a) -> (float) +- aten::sqrt.int(int a) -> (float) +- aten::sub.float(float a, float b) -> (float) +- aten::sub.int(int a, int b) -> (int) +- aten::tensor(t[] data, *, int? dtype=None, Device? device=None, bool requires_grad=False) -> (Tensor) +- prim::dtype(Tensor a) -> (int) +- prim::max.bool(bool a, bool b) -> (bool) +- prim::max.float(float a, float b) -> (bool) +- prim::max.float_int(float a, int b) -> (bool) +- prim::max.int(int a, int b) -> (bool) +- prim::max.int_float(int a, float b) -> (bool) +- prim::max.self_int(int[] self) -> (int) +- prim::min.bool(bool a, bool b) -> (bool) +- prim::min.float(float a, float b) -> (bool) +- prim::min.float_int(float a, int b) -> (bool) +- prim::min.int(int a, int b) -> (bool) +- prim::min.int_float(int a, float b) -> (bool) +- prim::min.self_int(int[] self) -> (int) +- prim::shape(Tensor a) -> (int[]) diff --git a/docs/v1.1.1/_sources/py_api/fx.rst.txt b/docs/v1.1.1/_sources/py_api/fx.rst.txt new file mode 100644 index 0000000000..8ce591f5ee --- /dev/null +++ b/docs/v1.1.1/_sources/py_api/fx.rst.txt @@ -0,0 +1,31 @@ +.. _torch_tensorrt_fx_py: + +torch_tensorrt.fx +=================== + +.. currentmodule:: torch_tensorrt.fx + +.. automodule torch_tensorrt.ts + :undoc-members: + +.. automodule:: torch_tensorrt.fx + :members: + :undoc-members: + :show-inheritance: + +Functions +------------ + +.. autofunction:: compile + + +Classes +-------- + +.. autoclass:: TRTModule + +.. autoclass:: InputTensorSpec + +.. autoclass:: TRTInterpreter + +.. autoclass:: TRTInterpreterResult \ No newline at end of file diff --git a/docs/v1.1.1/_sources/py_api/logging.rst.txt b/docs/v1.1.1/_sources/py_api/logging.rst.txt new file mode 100644 index 0000000000..7918fe7f86 --- /dev/null +++ b/docs/v1.1.1/_sources/py_api/logging.rst.txt @@ -0,0 +1,13 @@ +.. _torch_tensorrt_logging_py: + +torch_tensorrt.logging +---------------------- + +.. currentmodule:: torch_tensorrt.logging + +.. automodule:: torch_tensorrt.logging + :members: + :undoc-members: + :show-inheritance: + +.. autoclass:: py torch_tensorrt.logging.Level diff --git a/docs/v1.1.1/_sources/py_api/ptq.rst.txt b/docs/v1.1.1/_sources/py_api/ptq.rst.txt new file mode 100644 index 0000000000..7686209cd9 --- /dev/null +++ b/docs/v1.1.1/_sources/py_api/ptq.rst.txt @@ -0,0 +1,27 @@ +.. _torch_tensorrt_ptq_py: + +torch_tensorrt.ptq +=================== + +.. currentmodule:: torch_tensorrt.ptq + +.. automodule:: torch_tensorrt.ptq + :members: + :undoc-members: + :show-inheritance: + +Classes +--------- + +.. autoclass:: DataLoaderCalibrator + :members: + :special-members: __init__ + +.. autoclass:: CacheCalibrator + :members: + :special-members: __init__ + +Enums +------- + +.. autoclass:: CalibrationAlgo \ No newline at end of file diff --git a/docs/v1.1.1/_sources/py_api/torch_tensorrt.rst.txt b/docs/v1.1.1/_sources/py_api/torch_tensorrt.rst.txt new file mode 100644 index 0000000000..199621a663 --- /dev/null +++ b/docs/v1.1.1/_sources/py_api/torch_tensorrt.rst.txt @@ -0,0 +1,60 @@ +.. _torch_tensorrt_py: + +torch_tensorrt +=============== + +.. automodule torch_tensorrt + :undoc-members: + + + +.. automodule:: torch_tensorrt + :members: + :undoc-members: + :show-inheritance: + +Functions +------------ + +.. autofunction:: set_device + +.. autofunction:: compile + +.. autofunction:: convert_method_to_trt_engine + +.. autofunction:: get_build_info + +.. autofunction:: dump_build_info + +Classes +--------- + +.. autoclass:: Input + :members: + :special-members: __init__ + +.. autoclass:: Device + :members: + :special-members: __init__ + +Enums +------- + +.. autoclass:: dtype + +.. autoclass:: DeviceType + +.. autoclass:: EngineCapability + +.. autoclass:: TensorFormat + +Submodules +---------- + +.. toctree:: + :maxdepth: 1 + + logging + ptq + ts + diff --git a/docs/v1.1.1/_sources/py_api/ts.rst.txt b/docs/v1.1.1/_sources/py_api/ts.rst.txt new file mode 100644 index 0000000000..45f6418eb7 --- /dev/null +++ b/docs/v1.1.1/_sources/py_api/ts.rst.txt @@ -0,0 +1,27 @@ +.. _torch_tensorrt_ts_py: + +torch_tensorrt.ts +=================== + +.. currentmodule:: torch_tensorrt.ts + +.. automodule torch_tensorrt.ts + :undoc-members: + +.. automodule:: torch_tensorrt.ts + :members: + :undoc-members: + :show-inheritance: + +Functions +------------ + +.. autofunction:: compile + +.. autofunction:: convert_method_to_trt_engine + +.. autofunction:: check_method_op_support + +.. autofunction:: embed_engine_in_new_module + +.. autofunction:: TensorRTCompileSpec diff --git a/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/changelog.rst.txt b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/changelog.rst.txt new file mode 100644 index 0000000000..d1ad81a0df --- /dev/null +++ b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/changelog.rst.txt @@ -0,0 +1,6 @@ + +********* +Changelog +********* + +v0.0.1 diff --git a/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/configuring.rst.txt b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/configuring.rst.txt new file mode 100644 index 0000000000..3afcb7bc62 --- /dev/null +++ b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/configuring.rst.txt @@ -0,0 +1,108 @@ + +************* +Configuration +************* + +You can configure different parts of the theme. + +Project-wide Configuration +========================== + +HTML Theme Options +------------------ + +The theme's project-wide options are defined in the ``pytorch_sphinx_theme/theme.conf`` +file of this repository, and can be defined in your project's ``conf.py`` via +``html_theme_options``. For example: + +.. code:: python + + html_theme_options = { + 'canonical_url': '', + 'analytics_id': '', + 'logo_only': False, + 'display_version': True, + 'prev_next_buttons_location': 'bottom', + 'style_external_links': False, + 'vcs_pageview_mode': '', + # Toc options + 'collapse_navigation': True, + 'sticky_navigation': True, + 'navigation_depth': 4, + 'includehidden': True, + 'titles_only': False + } + +The following options are available: + +Base options +~~~~~~~~~~~~ + +* ``canonical_url`` String. This will specify a `canonical url `__ + to let search engines know they should give higher ranking to latest version of the docs. + The url points to the root of the documentation and requires a trailing slash. +* ``analytics_id`` String. Change the Google Analytics ID that is included on pages. +* ``display_version`` Bool. With this disabled, the version number isn't shown at the top of the sidebar. +* ``prev_next_buttons_location`` String. can take the value ``bottom``, ``top``, ``both`` , or ``None`` + and will display the "Next" and "Previous" buttons accordingly. +* ``style_external_links`` Bool. Add an icon next to external links. Defaults to ``False``. +* ``vcs_pageview_mode`` String. Changes how to view files when using `display_github`, `display_gitlab`, etc. + When using Github or Gitlab this can be: `blob` (default), `edit`, or `raw`, + on Bitbucket, this can be either: `view` (default) or `edit`. + +TOC Options +~~~~~~~~~~~ + +These effect how we display the Table of Contents in the side bar. You can read more about them here: http://www.sphinx-doc.org/en/stable/templating.html#toctree + +* ``collapse_navigation`` Bool. With this enabled, you will lose the ``[+]`` drop downs next to each section in the sidebar. +* ``sticky_navigation`` Bool. This causes the sidebar to scroll with the main page content as you scroll the page. +* ``navigation_depth`` Int. Indicate the max depth of the tree; by default, 4 levels are included; + set it to -1 to allow unlimited depth. +* ``includehidden`` Bool. Specifies if the sidebar includes toctrees marked with the ``:hidden:`` option +* ``titles_only`` Bool. If True, removes headers within a page from the sidebar. + +.. note:: + + Setting ``collapse_navigation`` to False and using a high ``navigation_depth`` + can cause projects with many files and a deep file structure to generate HTML files + that are significantly larger in file size and much longer compilation times. + + +HTML Context Options +-------------------- + +TODO. + + +Page-level Configuration +======================== + +Pages support metadata that changes how the theme renders. +You can currently add the following: + +* ``:github_url:`` This will force the "Edit on GitHub" to the configured URL +* ``:bitbucket_url:`` This will force the "Edit on Bitbucket" to the configured URL +* ``:gitlab_url:`` This will force the "Edit on GitLab" to the configured URL + + +How the Table of Contents builds +================================ + +Currently the left menu will build based upon any ``toctree(s)`` defined in your ``index.rst`` file. +It outputs 2 levels of depth, which should give your visitors a high level of access to your +docs. If no toctrees are set the theme reverts to sphinx's usual local toctree. + +It's important to note that if you don't follow the same styling for your rST headers across +your documents, the toctree will misbuild, and the resulting menu might not show the correct +depth when it renders. + +Also note that by default the table of contents is set with ``includehidden=True``. This allows you +to set a hidden toc in your index file with the `:hidden: `_ property that will allow you +to build a toc without it rendering in your index. + +By default, the navigation will "stick" to the screen as you scroll. However if your toc +is vertically too large, it will revert to static positioning. To disable the sticky nav +altogether change the setting in ``conf.py``. + +.. _hidden: http://sphinx-doc.org/markup/toctree.html diff --git a/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/api.rst.txt b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/api.rst.txt new file mode 100644 index 0000000000..b49bc248ac --- /dev/null +++ b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/api.rst.txt @@ -0,0 +1,53 @@ + +********************* +:mod:`test_py_module` +********************* + +.. contents:: Table of Contents + +.. automodule:: test_py_module.test + :members: + :private-members: + :special-members: + +Generated Index +=============== + +Part of the sphinx build process in generate and index file: :ref:`genindex`. + + +Optional parameter args +======================= + +At this point optional parameters `cannot be generated from code`_. +However, some projects will manually do it, like so: + +This example comes from `django-payments module docs`_. + +.. class:: payments.dotpay.DotpayProvider(seller_id, pin[, channel=0[, lock=False], lang='pl']) + + This backend implements payments using a popular Polish gateway, `Dotpay.pl `_. + + Due to API limitations there is no support for transferring purchased items. + + + :param seller_id: Seller ID assigned by Dotpay + :param pin: PIN assigned by Dotpay + :param channel: Default payment channel (consult reference guide) + :param lang: UI language + :param lock: Whether to disable channels other than the default selected above + +.. _cannot be generated from code: https://groups.google.com/forum/#!topic/sphinx-users/_qfsVT5Vxpw +.. _django-payments module docs: http://django-payments.readthedocs.org/en/latest/modules.html#payments.authorizenet.AuthorizeNetProvide + + +Data +==== + +.. data:: Data_item_1 + Data_item_2 + Data_item_3 + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce congue elit eu hendrerit mattis. + +Some data link :data:`Data_item_1`. diff --git a/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/demo.rst.txt b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/demo.rst.txt new file mode 100644 index 0000000000..66f19cc899 --- /dev/null +++ b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/demo.rst.txt @@ -0,0 +1,475 @@ +.. This is a comment. Note how any initial comments are moved by + transforms to after the document title, subtitle, and docinfo. + +.. demo.rst from: http://docutils.sourceforge.net/docs/user/rst/demo.txt + +.. |EXAMPLE| image:: static/yi_jing_01_chien.jpg + :width: 1em + +********************** +Paragraph Level Markup +********************** + +.. contents:: Table of Contents + +Inline Markup +============= + +Paragraphs contain text and may contain inline markup: *emphasis*, **strong emphasis**, ``inline literals``, +standalone hyperlinks (http://www.python.org), external hyperlinks (Python_), internal cross-references (example_), +external hyperlinks with embedded URIs (`Python web site `__), footnote references +(manually numbered [1]_, anonymous auto-numbered [#]_, labeled auto-numbered [#label]_, or symbolic [*]_), +citation references ([12]_), substitution references (|example|), and _`inline hyperlink targets` +(see Targets_ below for a reference back to here). Character-level inline markup is also possible +(although exceedingly ugly!) in *re*\ ``Structured``\ *Text*. Problems are indicated by |problematic| +text (generated by processing errors; this one is intentional). + +Also with ``sphinx.ext.autodoc``, which I use in the demo, I can link to :class:`test_py_module.test.Foo`. +It will link you right my code documentation for it. + +The default role for interpreted text is `Title Reference`. Here are some explicit interpreted text roles: +a PEP reference (:PEP:`287`); an RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`; +and explicit roles for :emphasis:`standard` :strong:`inline` :literal:`markup`. + +GUI labels are a useful way to indicate that :guilabel:`Some action` is to be taken by the user. +The GUI label should not run over ``line-height`` so as not to :guilabel:`interfere` with text from adjacent lines. + +Key-bindings indicate that the read is to press a button on the keyboard or mouse, +for example :kbd:`MMB` and :kbd:`Shift-MMB`. Another useful markup to indicate a user action +is to use ``menuselection`` this can be used to show short and long menus in software. +For example, and ``menuselection`` can be seen here that breaks is too long to fit on this line. +:menuselection:`My --> Software --> Some menu --> Some sub menu 1 --> sub menu 2`. + +.. DO NOT RE-WRAP THE FOLLOWING PARAGRAPH! + +Let's test wrapping and whitespace significance in inline literals: +``This is an example of --inline-literal --text, --including some-- +strangely--hyphenated-words. Adjust-the-width-of-your-browser-window +to see how the text is wrapped. -- ---- -------- Now note the +spacing between the words of this sentence (words +should be grouped in pairs).`` + +If the ``--pep-references`` option was supplied, there should be a live link to PEP 258 here. + +Math +==== + +This is a test. Here is an equation: +:math:`X_{0:5} = (X_0, X_1, X_2, X_3, X_4)`. +Here is another: + +.. math:: + :label: This is a label + + \nabla^2 f = + \frac{1}{r^2} \frac{\partial}{\partial r} + \left( r^2 \frac{\partial f}{\partial r} \right) + + \frac{1}{r^2 \sin \theta} \frac{\partial f}{\partial \theta} + \left( \sin \theta \, \frac{\partial f}{\partial \theta} \right) + + \frac{1}{r^2 \sin^2\theta} \frac{\partial^2 f}{\partial \phi^2} + +You can add a link to equations like the one above :eq:`This is a label` by using ``:eq:``. + +Meta +==== + +.. meta:: + :keywords: reStructuredText, demonstration, demo, parser + :description lang=en: A demonstration of the reStructuredText + markup language, containing examples of all basic + constructs and many advanced constructs. + +Blocks +====== + +Literal Blocks +-------------- + +Literal blocks are indicated with a double-colon ("::") at the end of +the preceding paragraph (over there ``-->``). They can be indented:: + + if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None + +Or they can be quoted without indentation:: + +>> Great idea! +> +> Why didn't I think of that? + +Line Blocks +----------- + +| This is a line block. It ends with a blank line. +| Each new line begins with a vertical bar ("|"). +| Line breaks and initial indents are preserved. +| Continuation lines are wrapped portions of long lines; + they begin with a space in place of the vertical bar. +| The left edge of a continuation line need not be aligned with + the left edge of the text above it. + +| This is a second line block. +| +| Blank lines are permitted internally, but they must begin with a "|". + +Take it away, Eric the Orchestra Leader! + + | A one, two, a one two three four + | + | Half a bee, philosophically, + | must, *ipso facto*, half not be. + | But half the bee has got to be, + | *vis a vis* its entity. D'you see? + | + | But can a bee be said to be + | or not to be an entire bee, + | when half the bee is not a bee, + | due to some ancient injury? + | + | Singing... + +Block Quotes +------------ + +Block quotes consist of indented body elements: + + My theory by A. Elk. Brackets Miss, brackets. This theory goes + as follows and begins now. All brontosauruses are thin at one + end, much much thicker in the middle and then thin again at the + far end. That is my theory, it is mine, and belongs to me and I + own it, and what it is too. + + -- Anne Elk (Miss) + +Doctest Blocks +-------------- + +>>> print 'Python-specific usage examples; begun with ">>>"' +Python-specific usage examples; begun with ">>>" +>>> print '(cut and pasted from interactive Python sessions)' +(cut and pasted from interactive Python sessions) + +Code Blocks +----------- + +.. parsed-literal:: + + # parsed-literal test + curl -O http://someurl/release-|version|.tar-gz + + +.. code-block:: json + :caption: Code Blocks can have captions. + + { + "windows": [ + { + "panes": [ + { + "shell_command": [ + "echo 'did you know'", + "echo 'you can inline'" + ] + }, + { + "shell_command": "echo 'single commands'" + }, + "echo 'for panes'" + ], + "window_name": "long form" + } + ], + "session_name": "shorthands" + } + +Emphasized lines with line numbers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: python + :linenos: + :emphasize-lines: 3,5 + + def some_function(): + interesting = False + print 'This line is highlighted.' + print 'This one is not...' + print '...but this one is.' + +Sidebar +======= + +.. sidebar:: Ch'ien / The Creative + + .. image:: static/yi_jing_01_chien.jpg + + *Above* CH'IEN THE CREATIVE, HEAVEN + + *Below* CH'IEN THE CREATIVE, HEAVEN + +The first hexagram is made up of six unbroken lines. These unbroken lines stand for the primal power, +which is light-giving, active, strong, and of the spirit. The hexagram is consistently strong in character, +and since it is without weakness, its essence is power or energy. Its image is heaven. +Its energy is represented as unrestricted by any fixed conditions in space and is therefore conceived of as motion. +Time is regarded as the basis of this motion. +Thus the hexagram includes also the power of time and the power of persisting in time, that is, duration. + +The power represented by the hexagram is to be interpreted in a dual sense in terms of its action +on the universe and of its action on the world of men. In relation to the universe, the hexagram expresses the strong, +creative action of the Deity. In relation to the human world, it denotes the creative action of the holy man or sage, +of the ruler or leader of men, who through his power awakens and develops their higher nature. + +Code with Sidebar +----------------- + +.. sidebar:: A code example + + With a sidebar on the right. + +.. literalinclude:: test_py_module/test.py + :language: python + :caption: Literal includes can also have captions. + :linenos: + :lines: 1-40 + +References +========== + +Footnotes +--------- + +.. [1] A footnote contains body elements, consistently indented by at + least 3 spaces. + + This is the footnote's second paragraph. + +.. [#label] Footnotes may be numbered, either manually (as in [1]_) or + automatically using a "#"-prefixed label. This footnote has a + label so it can be referred to from multiple places, both as a + footnote reference ([#label]_) and as a hyperlink reference + (label_). + +.. [#] This footnote is numbered automatically and anonymously using a + label of "#" only. + +.. [*] Footnotes may also use symbols, specified with a "*" label. + Here's a reference to the next footnote: [*]_. + +.. [*] This footnote shows the next symbol in the sequence. + +.. [4] Here's an unreferenced footnote, with a reference to a + nonexistent footnote: [5]_. + +Citations +--------- + +.. [11] This is the citation I made, let's make this extremely long so that we can tell that it doesn't follow the normal responsive table stuff. + +.. [12] This citation has some ``code blocks`` in it, maybe some **bold** and + *italics* too. Heck, lets put a link to a meta citation [13]_ too. + +.. [13] This citation will have two backlinks. + + +Here's a reference to the above, [12]_, and a [nonexistent]_ citation. + +Here is another type of citation: `citation` + +Glossary +-------- + +This is a glossary with definition terms for thing like :term:`Writing`: + +.. glossary:: + + Documentation + Provides users with the knowledge they need to use something. + + Reading + The process of taking information into ones mind through the use of eyes. + + Writing + The process of putting thoughts into a medium for other people to :term:`read `. + +Targets +------- + +.. _example: + +This paragraph is pointed to by the explicit "example" target. +A reference can be found under `Inline Markup`_, above. `Inline +hyperlink targets`_ are also possible. + +Section headers are implicit targets, referred to by name. See +Targets_, which is a subsection of `Body Elements`_. + +Explicit external targets are interpolated into references such as "Python_". + +.. _Python: http://www.python.org/ + +Targets may be indirect and anonymous. Thus `this phrase`__ may also +refer to the Targets_ section. + +__ Targets_ + +Here's a `hyperlink reference without a target`_, which generates an error. + + +Directives +========== + +Contents +-------- + +.. contents:: :local: + +These are just a sample of the many reStructuredText Directives. For others, please see: +http://docutils.sourceforge.net/docs/ref/rst/directives.html. + + +Centered text +------------- + +You can create a statement with centered text with ``.. centered::`` + +.. centered:: This is centered text! + +Images & Figures +---------------- + +Images +^^^^^^ + +An image directive (also clickable -- a hyperlink reference): + +.. image:: static/yi_jing_01_chien.jpg + :target: directives_ + +Figures +^^^^^^^ + +.. figure:: static/yi_jing_01_chien.jpg + :alt: reStructuredText, the markup syntax + + A figure is an image with a caption and/or a legend: + + +------------+-----------------------------------------------+ + | re | Revised, revisited, based on 're' module. | + +------------+-----------------------------------------------+ + | Structured | Structure-enhanced text, structuredtext. | + +------------+-----------------------------------------------+ + | Text | Well it is, isn't it? | + +------------+-----------------------------------------------+ + + This paragraph is also part of the legend. + +A figure directive with center alignment + +.. figure:: static/yi_jing_01_chien.jpg + :align: center + + This caption should be centered. + +Admonitions +----------- + +.. Attention:: Directives at large. + +.. Caution:: Don't take any wooden nickels. + +.. DANGER:: Mad scientist at work! + +.. Error:: Does not compute. + +.. Hint:: It's bigger than a bread box. + +.. Important:: + - Wash behind your ears. + - Clean up your room. + + - Including the closet. + - The bathroom too. + + - Take the trash out of the bathroom. + - Clean the sink. + - Call your mother. + - Back up your data. + +.. Note:: This is a note. + Equations within a note: + :math:`G_{\mu\nu} = 8 \pi G (T_{\mu\nu} + \rho_\Lambda g_{\mu\nu})`. + +.. Tip:: 15% if the service is good. + + +---------+ + | Example | + +=========+ + | Thing1 | + +---------+ + | Thing2 | + +---------+ + | Thing3 | + +---------+ + +.. WARNING:: Strong prose may provoke extreme mental exertion. + Reader discretion is strongly advised. + +.. admonition:: And, by the way... + + You can make up your own admonition too. + +Topics, Sidebars, and Rubrics +----------------------------- + +.. sidebar:: Sidebar Title + :subtitle: Optional Subtitle + + This is a sidebar. It is for text outside the flow of the main + text. + + .. rubric:: This is a rubric inside a sidebar + + Sidebars often appears beside the main text with a border and + background color. + +.. topic:: Topic Title + + This is a topic. + +.. rubric:: This is a rubric + +Target Footnotes +---------------- + +.. target-notes:: + +Replacement Text +---------------- + +I recommend you try |Python|_. + +.. |Python| replace:: Python, *the* best language around + +Compound Paragraph +------------------ + +.. compound:: + + This paragraph contains a literal block:: + + Connecting... OK + Transmitting data... OK + Disconnecting... OK + + and thus consists of a simple paragraph, a literal block, and + another simple paragraph. Nonetheless it is semantically *one* + paragraph. + +This construct is called a *compound paragraph* and can be produced +with the "compound" directive. + +Download Links +============== + +:download:`This long long long long long long long long long long long long long long long download link should be blue, normal weight text with a leading icon, and should wrap white-spaces ` diff --git a/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/lists_tables.rst.txt b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/lists_tables.rst.txt new file mode 100644 index 0000000000..a31d213924 --- /dev/null +++ b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/lists_tables.rst.txt @@ -0,0 +1,302 @@ + +************** +Lists & Tables +************** + +.. contents:: Table of Contents + +Lists +===== + +Enumerated Lists +---------------- + +1. Arabic numerals. + + a) lower alpha) + + (i) (lower roman) + + A. upper alpha. + + I) upper roman) + +2. Lists that don't start at 1: + + 3. Three + + 4. Four + + C. C + + D. D + + iii. iii + + iv. iv + +#. List items may also be auto-enumerated. + +Definition Lists +---------------- + +Term + Definition +Term : classifier + Definition paragraph 1. + + Definition paragraph 2. +Term + Definition + + +Option Lists +------------ + +For listing command-line options: + +-a command-line option "a" +-b file options can have arguments + and long descriptions +--long options can be long also +--input=file long options can also have + arguments + +--very-long-option + The description can also start on the next line. + + The description may contain multiple body elements, + regardless of where it starts. + +-x, -y, -z Multiple options are an "option group". +-v, --verbose Commonly-seen: short & long options. +-1 file, --one=file, --two file + Multiple options with arguments. +/V DOS/VMS-style options too + +There must be at least two spaces between the option and the description. + +Field list +---------- + +.. bibliographic fields (which also require a transform): + +:Author: David Goodger +:Address: 123 Example Street + Example, EX Canada + A1B 2C3 +:Contact: docutils-develop@lists.sourceforge.net +:Authors: Me; Myself; I +:organization: humankind +:date: $Date: 2012-01-03 19:23:53 +0000 (Tue, 03 Jan 2012) $ +:status: This is a "work in progress" +:revision: $Revision: 7302 $ +:version: 1 +:copyright: This document has been placed in the public domain. You + may do with it as you wish. You may copy, modify, + redistribute, reattribute, sell, buy, rent, lease, + destroy, or improve it, quote it at length, excerpt, + incorporate, collate, fold, staple, or mutilate it, or do + anything else to it that your or anyone else's heart + desires. +:field name: This is a generic bibliographic field. +:field name 2: + Generic bibliographic fields may contain multiple body elements. + + Like this. + +:Dedication: + + For Docutils users & co-developers. + +:abstract: + + This document is a demonstration of the reStructuredText markup + language, containing examples of all basic reStructuredText + constructs and many advanced constructs. + +Bullet Lists +------------ + +- A bullet list + + + Nested bullet list. + + Nested item 2. + +- Item 2. + + Paragraph 2 of item 2. + + * Nested bullet list. + * Nested item 2. + + - Third level. + - Item 2. + + * Nested item 3. + +- ``inline literall`` +- ``inline literall`` +- ``inline literall`` + +Second list level +^^^^^^^^^^^^^^^^^ + +- here is a list in a second-level section. +- `yahoo `_ +- `yahoo `_ + + - `yahoo `_ + - here is an inner bullet ``oh`` + + - one more ``with an inline literally``. `yahoo `_ + + heh heh. child. try to beat this embed: + + .. literalinclude:: test_py_module/test.py + :language: python + :linenos: + :lines: 1-10 + - and another. `yahoo `_ + - `yahoo `_ + - ``hi`` +- and hehe + +But deeper down the rabbit hole +""""""""""""""""""""""""""""""" + +- I kept saying that, "deeper down the rabbit hole". `yahoo `_ + + - I cackle at night `yahoo `_. +- I'm so lonely here in GZ ``guangzhou`` +- A man of python destiny, hopes and dreams. `yahoo `_ + + - `yahoo `_ + + - `yahoo `_ ``hi`` + - ``destiny`` + +Hlists +------ + +.. hlist:: + :columns: 2 + + - First item + - Second item + - Third item + - Forth item + - Fifth item + - Sixths item + +.. rubric:: Hlist with images + +.. hlist:: + :columns: 2 + + - .. figure:: static/yi_jing_01_chien.jpg + + This is a short caption for a figure. + + - .. figure:: static/yi_jing_01_chien.jpg + + This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non. + +Numbered List +------------- + +#. One, +#. Two. +#. Three with long text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Sed feugiat sagittis neque quis eleifend. Duis rutrum lectus sit amet mattis suscipit. + +- A) Using bullets and letters. (A) +- B) Using bullets and letters. (B) +- C) Using bullets and letters. (C) + +Tables +====== + +Grid Tables +----------- + +Here's a grid table followed by a simple table: + ++------------------------+------------+----------+----------+ +| Header row, column 1 | Header 2 | Header 3 | Header 4 | +| (header rows optional) | | | | ++========================+============+==========+==========+ +| body row 1, column 1 | column 2 | column 3 | column 4 | ++------------------------+------------+----------+----------+ +| body row 2 | Cells may span columns. | ++------------------------+------------+---------------------+ +| body row 3 | Cells may | - Table cells | ++------------------------+ span rows. | - contain | +| body row 4 | | - body elements. | ++------------------------+------------+----------+----------+ +| body row 5 | Cells may also be | | +| | empty: ``-->`` | | ++------------------------+-----------------------+----------+ + +===== ===== ====== + Inputs Output +------------ ------ + A B A or B +===== ===== ====== +False False False +True False True +False True True +True True True +===== ===== ====== + +Giant Tables +^^^^^^^^^^^^ + ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | ++============+============+===========+============+============+===========+============+============+===========+============+============+===========+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ + +List Tables +----------- + +.. list-table:: List tables can have captions like this one. + :widths: 10 5 10 50 + :header-rows: 1 + :stub-columns: 1 + + * - List table + - Header 1 + - Header 2 + - Header 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + * - Stub Row 1 + - Row 1 + - Column 2 + - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + * - Stub Row 2 + - Row 2 + - Column 2 + - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + * - Stub Row 3 + - Row 3 + - Column 2 + - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + +.. list-table:: This is a list table with images in it. + + * - .. figure:: static/yi_jing_01_chien.jpg + + This is a short caption for a figure. + + - .. figure:: static/yi_jing_01_chien.jpg + + This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non. diff --git a/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/long.rst.txt b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/long.rst.txt new file mode 100644 index 0000000000..26b1add9d1 --- /dev/null +++ b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/long.rst.txt @@ -0,0 +1,214 @@ + +*************** +Long Sticky Nav +*************** + +.. contents:: Table of Contents + +This section demonstrates how the 'sticky_navigation' setting behaves when the menu is very long. +When this section is selected, it will make the menu and the main area scroll when you are at the top of the page. + + +Example Menu 1 +============== + +Just a place holder... + + +Example Menu 2 +============== + +Just a place holder... + + +Example Menu 3 +============== + +Just a place holder... + + +Example Menu 4 +============== + +Just a place holder... + + +Example Menu 5 +============== + +Just a place holder... + + +Example Menu 6 +============== + +Just a place holder... + + +Example Menu 7 +============== + +Just a place holder... + + +Example Menu 8 +============== + +Just a place holder... + + +Example Menu 9 +============== + +Just a place holder... + + +Example Menu 10 +=============== + +Just a place holder... + + +Example Menu 11 +=============== + +Just a place holder... + + +Example Menu 12 +=============== + +Just a place holder... + + +Example Menu 13 +=============== + +Just a place holder... + + +Example Menu 14 +=============== + +Just a place holder... + + +Example Menu 15 +=============== + +Just a place holder... + + +Example Menu 16 +=============== + +Just a place holder... + + +Example Menu 17 +=============== + +Just a place holder... + + +Example Menu 18 +=============== + +Just a place holder... + + +Example Menu 19 +=============== + +Just a place holder... + + +Example Menu 20 +=============== + +Just a place holder... + +Example Submenu 1 +================= + +Just a place holder... + +Submenu 1 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Subsubmenu 2 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 2 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 3 +--------- + +Just a place holder... + +Submenu 4 +--------- + +Just a place holder... + +Submenu 5 +--------- + +Just a place holder... + +Example Submenu 2 +================= + +Just a place holder... + +Submenu 1 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 2 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 3 +--------- + +Just a place holder... + +Submenu 4 +--------- + +Just a place holder... + +Submenu 5 +--------- + +Just a place holder... diff --git a/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/structure.rst.txt b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/structure.rst.txt new file mode 100644 index 0000000000..d21fc96321 --- /dev/null +++ b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/demo/structure.rst.txt @@ -0,0 +1,101 @@ + +******************* +Structural Elements +******************* + +.. contents:: Table of Contents + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lorem neque, interdum in ipsum nec, +finibus dictum velit. Ut eu efficitur arcu, id aliquam erat. In sit amet diam gravida, imperdiet tellus eu, +gravida nisl. Praesent aliquet odio eget libero elementum, quis rhoncus tellus tincidunt. +Suspendisse quis volutpat ipsum. Sed lobortis scelerisque tristique. Aenean condimentum risus tellus, +quis accumsan ipsum laoreet ut. Integer porttitor maximus suscipit. Mauris in posuere sapien. +Aliquam accumsan feugiat ligula, nec fringilla libero commodo sed. Proin et erat pharetra. + +--------- + +Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis. + +Document Section +================ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec. + +Document Subsection +------------------- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. + +Document Subsubsection +^^^^^^^^^^^^^^^^^^^^^^ + +Donec non rutrum lorem. Aenean sagittis metus at pharetra fringilla. Nunc sapien dolor, cursus sed nisi at, +pretium tristique lectus. Sed pellentesque leo lectus, et convallis ipsum euismod a. +Integer at leo vitae felis pretium aliquam fringilla quis odio. Sed pharetra enim accumsan feugiat pretium. +Maecenas at pharetra tortor. Morbi semper eget mi vel finibus. Cras rutrum nulla eros, id feugiat arcu pellentesque ut. +Sed finibus tortor ac nisi ultrices viverra. Duis feugiat malesuada sapien, at commodo ante porttitor ac. +Curabitur posuere mauris mi, vel ornare orci scelerisque sit amet. Suspendisse nec fringilla dui. + +Document Paragraph +"""""""""""""""""" + +Pellentesque nec est in odio ultrices elementum. Vestibulum et hendrerit sapien, quis vulputate turpis. +Suspendisse potenti. Curabitur tristique sit amet lectus non viverra. Phasellus rutrum dapibus turpis sed imperdiet. +Mauris maximus viverra ante. Donec eu egestas mauris. Morbi vulputate tincidunt euismod. Integer vel porttitor neque. +Donec at lacus suscipit, lacinia lectus vel, sagittis lectus. + +********************* +Structural Elements 2 +********************* + +Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis. + +Document Section +================ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec. + +Document Subsection +------------------- + +.. figure:: static/yi_jing_01_chien.jpg + :align: right + :figwidth: 200px + + This is a caption for a figure. Text should wrap around the caption. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. Praesent congue sagittis nisl et suscipit. +Vivamus sagittis risus et egestas commodo.Cras venenatis arcu in pharetra interdum. +Donec quis metus porttitor tellus cursus lobortis. Quisque et orci magna. Fusce rhoncus mi mi, +at vehicula massa rhoncus quis. Mauris augue leo, pretium eget molestie vitae, efficitur nec nulla. +In hac habitasse platea dictumst. Sed sit amet imperdiet purus. diff --git a/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/index.rst.txt b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/index.rst.txt new file mode 100644 index 0000000000..ba42326fd7 --- /dev/null +++ b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/index.rst.txt @@ -0,0 +1,27 @@ +.. include:: ../README.rst + +.. toctree:: + :caption: Theme Documentation + :maxdepth: 2 + + installing + configuring + changelog + + +.. toctree:: + :maxdepth: 2 + :numbered: + :caption: Demo Documents + + demo/structure + demo/demo + demo/lists_tables + demo/api + +.. toctree:: + :maxdepth: 3 + :numbered: + :caption: This is an incredibly long caption for a long menu + + demo/long diff --git a/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/installing.rst.txt b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/installing.rst.txt new file mode 100644 index 0000000000..df406b999d --- /dev/null +++ b/docs/v1.1.1/_sources/src/pytorch-sphinx-theme/docs/installing.rst.txt @@ -0,0 +1,17 @@ + +************ +Installation +************ + +Via Git or Download +=================== + +Symlink or subtree the ``pytorch_sphinx_theme`` repository into your documentation at +``docs/_themes/pytorch_sphinx_theme`` then add the following two settings to your Sphinx +``conf.py`` file: + +.. code:: python + + html_theme = "pytorch_sphinx_theme" + html_theme_path = ["_themes", ] + diff --git a/docs/v1.1.1/_sources/tutorials/creating_torchscript_module_in_python.rst.txt b/docs/v1.1.1/_sources/tutorials/creating_torchscript_module_in_python.rst.txt new file mode 100644 index 0000000000..eaa1708b83 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/creating_torchscript_module_in_python.rst.txt @@ -0,0 +1,137 @@ +.. _creating_a_ts_mod: + +Creating a TorchScript Module +------------------------------ +TorchScript is a way to create serializable and optimizable models from PyTorch code. +PyTorch has detailed documentation on how to do this https://pytorch.org/tutorials/beginner/Intro_to_TorchScript_tutorial.html but briefly here is the +here is key background information and the process: + +PyTorch programs are based around ``Module`` s which can be used to compose higher level modules. ``Modules`` contain a constructor to set up the modules, parameters and sub-modules +and a forward function which describes how to use the parameters and submodules when the module is invoked. + +For example, we can define a LeNet module like this: + +.. code-block:: python + :linenos: + + import torch.nn as nn + import torch.nn.functional as F + + class LeNetFeatExtractor(nn.Module): + def __init__(self): + super(LeNetFeatExtractor, self).__init__() + self.conv1 = nn.Conv2d(1, 6, 3) + self.conv2 = nn.Conv2d(6, 16, 3) + + def forward(self, x): + x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2)) + x = F.max_pool2d(F.relu(self.conv2(x)), 2) + return x + + class LeNetClassifier(nn.Module): + def __init__(self): + super(LeNetClassifier, self).__init__() + self.fc1 = nn.Linear(16 * 6 * 6, 120) + self.fc2 = nn.Linear(120, 84) + self.fc3 = nn.Linear(84, 10) + + def forward(self, x): + x = torch.flatten(x,1) + x = F.relu(self.fc1(x)) + x = F.relu(self.fc2(x)) + x = self.fc3(x) + return x + + class LeNet(nn.Module): + def __init__(self): + super(LeNet, self).__init__() + self.feat = LeNetFeatExtractor() + self.classifer = LeNetClassifier() + + def forward(self, x): + x = self.feat(x) + x = self.classifer(x) + return x + +. + + Obviously you may want to consolidate such a simple model into a single module but we can see the composability of PyTorch here + +From here are two pathways for going from PyTorch Python code to TorchScript code: Tracing and Scripting. + +Tracing follows the path of execution when the module is called and records what happens. +To trace an instance of our LeNet module, we can call ``torch.jit.trace`` with an example input. + +.. code-block:: python + + import torch + + model = LeNet() + input_data = torch.empty([1,1,32,32]) + traced_model = torch.jit.trace(model, input_data) + +Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing +is following the execution of your module, it cannot pick up control flow for instance. By working from the Python code, the compiler can +include these components. We can run the script compiler on our LeNet module by calling ``torch.jit.script`` + +.. code-block:: python + + import torch + + model = LeNet() + script_model = torch.jit.script(model) + +There are reasons to use one path or another, the PyTorch documentation has information on how to choose. From a Torch-TensorRT prespective, there is +better support (i.e your module is more likely to compile) for traced modules because it doesn't include all the complexities of a complete +programming language, though both paths supported. + +After scripting or tracing your module, you are given back a TorchScript Module. This contains the code and parameters used to run the module stored +in a intermediate representation that Torch-TensorRT can consume. + +Here is what the LeNet traced module IR looks like: + +.. code-block:: none + + graph(%self.1 : __torch__.___torch_mangle_10.LeNet, + %input.1 : Float(1, 1, 32, 32)): + %129 : __torch__.___torch_mangle_9.LeNetClassifier = prim::GetAttr[name="classifer"](%self.1) + %119 : __torch__.___torch_mangle_5.LeNetFeatExtractor = prim::GetAttr[name="feat"](%self.1) + %137 : Tensor = prim::CallMethod[name="forward"](%119, %input.1) + %138 : Tensor = prim::CallMethod[name="forward"](%129, %137) + return (%138) + +and the LeNet scripted module IR: + +.. code-block:: none + + graph(%self : __torch__.LeNet, + %x.1 : Tensor): + %2 : __torch__.LeNetFeatExtractor = prim::GetAttr[name="feat"](%self) + %x.3 : Tensor = prim::CallMethod[name="forward"](%2, %x.1) # x.py:38:12 + %5 : __torch__.LeNetClassifier = prim::GetAttr[name="classifer"](%self) + %x.5 : Tensor = prim::CallMethod[name="forward"](%5, %x.3) # x.py:39:12 + return (%x.5) + +You can see that the IR preserves the module structure we have in our python code. + +.. _ts_in_py: + +Working with TorchScript in Python +----------------------------------- + +TorchScript Modules are run the same way you run normal PyTorch modules. You can run the forward pass using the +``forward`` method or just calling the module ``torch_scirpt_module(in_tensor)`` The JIT compiler will compile +and optimize the module on the fly and then returns the results. + +Saving TorchScript Module to Disk +----------------------------------- + +For either traced or scripted modules, you can save the module to disk with the following command + +.. code-block:: python + + import torch + + model = LeNet() + script_model = torch.jit.script(model) + script_model.save("lenet_scripted.ts") diff --git a/docs/v1.1.1/_sources/tutorials/getting_started_with_cpp_api.rst.txt b/docs/v1.1.1/_sources/tutorials/getting_started_with_cpp_api.rst.txt new file mode 100644 index 0000000000..41b8a448c0 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/getting_started_with_cpp_api.rst.txt @@ -0,0 +1,338 @@ +.. _getting_started: + +Getting Started with C++ +======================== + +If you haven't already, acquire a tarball of the library by following the instructions in :ref:`Installation` + +Using Torch-TensorRT in C++ +*************************** +Torch-TensorRT C++ API accepts TorchScript modules (generated either from ``torch.jit.script`` or ``torch.jit.trace``) as an input and returns +a Torchscript module (optimized using TensorRT). This requires users to use Pytorch (in python) to generate torchscript modules beforehand. +Please refer to `Creating TorchScript modules in Python `_ section to generate torchscript graphs. + + +.. _torch_tensorrt_quickstart: + +[Torch-TensorRT Quickstart] Compiling TorchScript Modules with ``torchtrtc`` +--------------------------------------------------------------------------------- + +An easy way to get started with Torch-TensorRT and to check if your model can be supported without extra work is to run it through +``torchtrtc``, which supports almost all features of the compiler from the command line including post training quantization +(given a previously created calibration cache). For example we can compile our lenet model by setting our preferred operating +precision and input size. This new TorchScript file can be loaded into Python (note: you need to ``import torch_tensorrt`` before loading +these compiled modules because the compiler extends the PyTorch the deserializer and runtime to execute compiled modules). + +.. code-block:: shell + + ❯ torchtrtc -p f16 lenet_scripted.ts trt_lenet_scripted.ts "(1,1,32,32)" + + ❯ python3 + Python 3.6.9 (default, Apr 18 2020, 01:56:04) + [GCC 8.4.0] on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> import torch + >>> import torch_tensorrt + >>> ts_model = torch.jit.load(“trt_lenet_scripted.ts”) + >>> ts_model(torch.randn((1,1,32,32)).to(“cuda”).half()) + +You can learn more about ``torchtrtc`` usage here: :ref:`torchtrtc` + +.. _ts_in_cc: + +Working with TorchScript in C++ +-------------------------------- + +If we are developing an application to deploy with C++, we can save either our traced or scripted module using ``torch.jit.save`` +which will serialize the TorchScript code, weights and other information into a package. This is also where our dependency on Python ends. + +.. code-block:: python + + torch_script_module.save("lenet.jit.pt") + +From here we can now load our TorchScript module in C++ + +.. code-block:: c++ + + #include // One-stop header. + + #include + #include + + int main(int argc, const char* argv[]) { + torch::jit::Module module; + try { + // Deserialize the ScriptModule from a file using torch::jit::load(). + module = torch::jit::load(""); + } + catch (const c10::Error& e) { + std::cerr << "error loading the model\n"; + return -1; + } + + std::cout << "ok\n"; + + +You can do full training and inference in C++ with PyTorch / LibTorch if you would like, you can even define your modules in C++ and +have access to the same powerful tensor library that backs PyTorch. (For more information: https://pytorch.org/cppdocs/). +For instance we can do inference with our LeNet module like this: + +.. code-block:: c++ + + mod.eval(); + torch::Tensor in = torch::randn({1, 1, 32, 32}); + auto out = mod.forward(in); + +and to run on the GPU: + +.. code-block:: c++ + + mod.eval(); + mod.to(torch::kCUDA); + torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA); + auto out = mod.forward(in); + +As you can see it is pretty similar to the Python API. When you call the ``forward`` method, you invoke the PyTorch JIT compiler, which will optimize and run your TorchScript code. + +.. _compile_cpp: + +Compiling with Torch-TensorRT in C++ +------------------------------------- +We are also at the point were we can compile and optimize our module with Torch-TensorRT, but instead of in a JIT fashion we must do it ahead-of-time (AOT) i.e. before we start doing actual inference work +since it takes a bit of time to optimize the module, it would not make sense to do this every time you run the module or even the first time you run it. + +With our module loaded, we can feed it into the Torch-TensorRT compiler. When we do so we must provide some information on the expected input size and also configure any additional settings. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}); + auto trt_mod = torch_tensorrt::CompileGraph(mod, std::vector{{in.sizes()}}); + auto out = trt_mod.forward({in}); + +Thats it! Now the graph runs primarily not with the JIT compiler but using TensorRT (though we execute the graph using the JIT runtime). + +We can also set settings like operating precision to run in FP16. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF); + auto input_sizes = std::vector({in.sizes()}); + torch_tensorrt::CompileSpec info(input_sizes); + info.enable_precisions.insert(torch::kHALF); + auto trt_mod = torch_tensorrt::CompileGraph(mod, info); + auto out = trt_mod.forward({in}); + +And now we are running the module in FP16 precision. You can then save the module to load later. + +.. code-block:: c++ + + trt_mod.save("") + +Torch-TensorRT compiled TorchScript modules are loaded in the same way as normal TorchScript module. Make sure your deployment application is linked against ``libtorchtrt.so`` + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + + int main(int argc, const char* argv[]) { + torch::jit::Module module; + try { + // Deserialize the ScriptModule from a file using torch::jit::load(). + module = torch::jit::load(""); + } + catch (const c10::Error& e) { + std::cerr << "error loading the model\n"; + return -1; + } + + torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA); + auto out = mod.forward(in); + + std::cout << "ok\n"; + } + +If you want to save the engine produced by Torch-TensorRT to use in a TensorRT application you can use the ``ConvertGraphToTRTEngine`` API. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF); + auto input_sizes = std::vector({in.sizes()}); + torch_tensorrt::CompileSpec info(input_sizes); + info.enabled_precisions.insert(torch::kHALF); + auto trt_mod = torch_tensorrt::ConvertGraphToTRTEngine(mod, "forward", info); + std::ofstream out("/tmp/engine_converted_from_jit.trt"); + out << engine; + out.close(); + +.. _under_the_hood: + +Under The Hood +--------------- + +When a module is provided to Torch-TensorRT, the compiler starts by mapping a graph like you saw above to a graph like this: + +.. code-block:: none + + graph(%input.2 : Tensor): + %2 : Float(84, 10) = prim::Constant[value=]() + %3 : Float(120, 84) = prim::Constant[value=]() + %4 : Float(576, 120) = prim::Constant[value=]() + %5 : int = prim::Constant[value=-1]() # x.py:25:0 + %6 : int[] = prim::Constant[value=annotate(List[int], [])]() + %7 : int[] = prim::Constant[value=[2, 2]]() + %8 : int[] = prim::Constant[value=[0, 0]]() + %9 : int[] = prim::Constant[value=[1, 1]]() + %10 : bool = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %11 : int = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %12 : bool = prim::Constant[value=0]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %self.classifer.fc3.bias : Float(10) = prim::Constant[value= 0.0464 0.0383 0.0678 0.0932 0.1045 -0.0805 -0.0435 -0.0818 0.0208 -0.0358 [ CUDAFloatType{10} ]]() + %self.classifer.fc2.bias : Float(84) = prim::Constant[value=]() + %self.classifer.fc1.bias : Float(120) = prim::Constant[value=]() + %self.feat.conv2.weight : Float(16, 6, 3, 3) = prim::Constant[value=]() + %self.feat.conv2.bias : Float(16) = prim::Constant[value=]() + %self.feat.conv1.weight : Float(6, 1, 3, 3) = prim::Constant[value=]() + %self.feat.conv1.bias : Float(6) = prim::Constant[value= 0.0530 -0.1691 0.2802 0.1502 0.1056 -0.1549 [ CUDAFloatType{6} ]]() + %input0.4 : Tensor = aten::_convolution(%input.2, %self.feat.conv1.weight, %self.feat.conv1.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %input0.5 : Tensor = aten::relu(%input0.4) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %input1.2 : Tensor = aten::max_pool2d(%input0.5, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %input0.6 : Tensor = aten::_convolution(%input1.2, %self.feat.conv2.weight, %self.feat.conv2.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %input2.1 : Tensor = aten::relu(%input0.6) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %x.1 : Tensor = aten::max_pool2d(%input2.1, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 + %27 : Tensor = aten::matmul(%input.1, %4) + %28 : Tensor = trt::const(%self.classifer.fc1.bias) + %29 : Tensor = aten::add_(%28, %27, %11) + %input0.2 : Tensor = aten::relu(%29) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %31 : Tensor = aten::matmul(%input0.2, %3) + %32 : Tensor = trt::const(%self.classifer.fc2.bias) + %33 : Tensor = aten::add_(%32, %31, %11) + %input1.1 : Tensor = aten::relu(%33) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %35 : Tensor = aten::matmul(%input1.1, %2) + %36 : Tensor = trt::const(%self.classifer.fc3.bias) + %37 : Tensor = aten::add_(%36, %35, %11) + return (%37) + (CompileGraph) + +The graph has now been transformed from a collection of modules, each managing their own parameters into a single graph with the parameters inlined +into the graph and all of the operations laid out. Torch-TensorRT has also executed a number of optimizations and mappings to make the graph easier to translate to TensorRT. +From here the compiler can assemble the TensorRT engine by following the dataflow through the graph. + +When the graph construction phase is complete, Torch-TensorRT produces a serialized TensorRT engine. From here depending on the API, this engine is returned +to the user or moves into the graph construction phase. Here Torch-TensorRT creates a JIT Module to execute the TensorRT engine which will be instantiated and managed +by the Torch-TensorRT runtime. + +Here is the graph that you get back after compilation is complete: + +.. code-block:: none + + graph(%self_1 : __torch__.lenet, %input_0 : Tensor): + %1 : ...trt.Engine = prim::GetAttr[name="lenet"](%self_1) + %3 : Tensor[] = prim::ListConstruct(%input_0) + %4 : Tensor[] = trt::execute_engine(%3, %1) + %5 : Tensor = prim::ListUnpack(%4) + return (%5) + + +You can see the call where the engine is executed, after extracting the attribute containing the engine and constructing a list of inputs, then returns the tensors back to the user. + +.. _unsupported_ops: + +Working with Unsupported Operators +----------------------------------- + +Torch-TensorRT is a new library and the PyTorch operator library is quite large, so there will be ops that aren't supported natively by the compiler. You can either use the composition techinques +shown above to make modules are fully Torch-TensorRT supported and ones that are not and stitch the modules together in the deployment application or you can register converters for missing ops. + + You can check support without going through the full compilation pipleine using the ``torch_tensorrt::CheckMethodOperatorSupport(const torch::jit::Module& module, std::string method_name)`` api + to see what operators are not supported. ``torchtrtc`` automatically checks modules with this method before starting compilation and will print out a list of operators that are not supported. + +.. _custom_converters: + +Registering Custom Converters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Operations are mapped to TensorRT through the use of modular converters, a function that takes a node from a the JIT graph and produces an equivalent layer or subgraph in TensorRT. +Torch-TensorRT ships with a library of these converters stored in a registry, that will be executed depending on the node being parsed. For instance a ``aten::relu(%input0.4)`` instruction will trigger +the relu converter to be run on it, producing an activation layer in the TensorRT graph. But since this library is not exhaustive you may need to write your own to get Torch-TensorRT +to support your module. + +Shipped with the Torch-TensorRT distribution are the internal core API headers. You can therefore access the converter registry and add a converter for the op you need. + +For example, if we try to compile a graph with a build of Torch-TensorRT that doesn't support the flatten operation (``aten::flatten``) you may see this error: + +.. code-block:: none + + terminate called after throwing an instance of 'torch_tensorrt::Error' + what(): [enforce fail at core/conversion/conversion.cpp:109] Expected converter to be true but got false + Unable to convert node: %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 (conversion.AddLayer) + Schema: aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor) + Converter for aten::flatten requested, but no such converter was found. + If you need a converter for this operator, you can try implementing one yourself + or request a converter: https://www.github.com/NVIDIA/Torch-TensorRT/issues + +We can register a converter for this operator in our application. All of the tools required to build a converter can be imported by including ``torch_tensorrt/core/conversion/converters/converters.h``. +We start by creating an instance of the self-registering class ``torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns()`` which will register converters +in the global converter registry, associating a function schema like ``aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)`` with a lambda that +will take the state of the conversion, the node/operation in question to convert and all of the inputs to the node and produces as a side effect a new layer in the TensorRT network. +Arguments are passed as a vector of inspectable unions of TensorRT ``ITensors`` and Torch ``IValues`` in the order arguments are listed in the schema. + +Below is a implementation of a ``aten::flatten`` converter that we can use in our application. You have full access to the Torch and TensorRT libraries in the converter implementation. So +for example we can quickly get the output size by just running the operation in PyTorch instead of implementing the full calculation outself like we do below for this flatten converter. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + #include "torch_tensorrt/core/conversion/converters/converters.h" + + static auto flatten_converter = torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns() + .pattern({ + "aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)", + [](torch_tensorrt::core::conversion::ConversionCtx* ctx, + const torch::jit::Node* n, + torch_tensorrt::core::conversion::converters::args& args) -> bool { + auto in = args[0].ITensor(); + auto start_dim = args[1].unwrapToInt(); + auto end_dim = args[2].unwrapToInt(); + auto in_shape = torch_tensorrt::core::util::toVec(in->getDimensions()); + auto out_shape = torch::flatten(torch::rand(in_shape), start_dim, end_dim).sizes(); + + auto shuffle = ctx->net->addShuffle(*in); + shuffle->setReshapeDimensions(torch_tensorrt::core::util::toDims(out_shape)); + shuffle->setName(torch_tensorrt::core::util::node_info(n).c_str()); + + auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], shuffle->getOutput(0)); + return true; + } + }); + + int main() { + ... + +To use this converter in Python, it is recommended to use PyTorch's `C++ / CUDA Extention `_ +template to wrap your library of converters into a ``.so`` that you can load with ``ctypes.CDLL()`` in your Python application. + +You can find more information on all the details of writing converters in the contributors documentation (:ref:`writing_converters`). +If you find yourself with a large library of converter implementations, do consider upstreaming them, PRs are welcome and it would be great for the community to benefit as well. diff --git a/docs/v1.1.1/_sources/tutorials/getting_started_with_fx_path.rst.txt b/docs/v1.1.1/_sources/tutorials/getting_started_with_fx_path.rst.txt new file mode 100644 index 0000000000..d7dc9b0166 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/getting_started_with_fx_path.rst.txt @@ -0,0 +1,297 @@ +.. _getting_started_with_fx: + +Torch-TensorRT (FX Frontend) User Guide +======================== +Torch-TensorRT (FX Frontend) is a tool that can convert a PyTorch model through ``torch.fx`` to an +TensorRT engine optimized targeting running on Nvidia GPUs. TensorRT is the inference engine +developed by NVIDIA which composed of various kinds of optimization including kernel fusion, +graph optimization, low precision, etc.. This tool is developed in Python environment which allows this +workflow to be very accessible to researchers and engineers. There are a few stages that a +user want to use this tool and we will introduce them here. + +> Torch-TensorRT (FX Frontend) is in ``Beta`` and currently it is recommended to work with PyTorch nightly. + +.. code-block:: shell + + # Test an example by + $ python py/torch_tensorrt/fx/example/lower_example.py + + +Converting a PyTorch Model to TensorRT Engine +--------------------------------------------- +In general, users are welcome to use the ``compile()`` to finish the conversion from a model to tensorRT engine. It is a +wrapper API that consists of the major steps needed to finish this converison. Please refer to ``lower_example.py`` file in ``examples/fx``. + +In this section, we will go through an example to illustrate the major steps that fx path uses. +Users can refer to ``fx2trt_example.py`` file in ``examples/fx``. + +* **Step 1: Trace the model with acc_tracer** +Acc_tracer is a tracer inheritated from FX tracer. It comes with args normalizer to convert all args to kwargs and pass to TRT converters. + +.. code-block:: shell + + import torch_tensorrt.fx.tracer.acc_tracer.acc_tracer as acc_tracer + + # Build the model which needs to be a PyTorch nn.Module. + my_pytorch_model = build_model() + + # Prepare inputs to the model. Inputs have to be a List of Tensors + inputs = [Tensor, Tensor, ...] + + # Trace the model with acc_tracer. + acc_mod = acc_tracer.trace(my_pytorch_model, inputs) + +*Common Errors:* + +symbolically traced variables cannot be used as inputs to control flow +This means the model contains dynamic control flow. Please refer to section “Dynamic Control Flow” in `FX guide `_. + +* **Step 2: Build TensorRT engine** +There are `two different modes `_ for how TensorRT handles batch dimension, explicit batch dimension and implicit batch dimension. This mode was used by early versions of TensorRT, and is now deprecated but continues to be supported for backwards compatibility. In explicit batch mode, all dimensions are explicit and can be dynamic, that is their length can change at execution time. Many new features, such as dynamic shapes and loops, are available only in this mode. User can still choose to use implicit batch mode when they set ``explicit_batch_dimension=False`` in ``compile()``. We do not recommend to use it since it will lack of support in future TensorRT versions. + +Explicit batch is the default mode and it must be set for dynamic shape. For most of vision task, user can choose to enable ``dynamic_batch`` in ``compile()`` if they want to get the similar effects as implicit mode where only batch dimension changes. It has some requirements: +1. Shapes of inputs, outputs and activations are fixed except batch dimension. +2. Inputs, outputs and activations have batch dimension as the major dimension. +3. All the operators in the model do not modify batch dimension (permute, transpose, split, etc.) or compute over batch dimension (sum, softmax, etc.). + +For examples of the last path, if we have a 3D tensor t shaped as (batch, sequence, dimension), operations such as torch.transpose(0, 2). If any of these three are not satisfied, we’ll need to specify InputTensorSpec as inputs with dynamic range. + +.. code-block:: shell + + import deeplearning.trt.fx2trt.converter.converters + from torch.fx.experimental.fx2trt.fx2trt import InputTensorSpec, TRTInterpreter + + # InputTensorSpec is a dataclass we use to store input information. + # There're two ways we can build input_specs. + # Option 1, build it manually. + input_specs = [ + InputTensorSpec(shape=(1, 2, 3), dtype=torch.float32), + InputTensorSpec(shape=(1, 4, 5), dtype=torch.float32), + ] + # Option 2, build it using sample_inputs where user provide a sample + inputs = [ + torch.rand((1,2,3), dtype=torch.float32), + torch.rand((1,4,5), dtype=torch.float32), + ] + input_specs = InputTensorSpec.from_tensors(inputs) + + # IMPORTANT: If dynamic shape is needed, we need to build it slightly differently. + input_specs = [ + InputTensorSpec( + shape=(-1, 2, 3), + dtype=torch.float32, + # Currently we only support one set of dynamic range. User may set other dimensions but it is not promised to work for any models + # (min_shape, optimize_target_shape, max_shape) + # For more information refer to fx/input_tensor_spec.py + shape_ranges = [ + ((1, 2, 3), (4, 2, 3), (100, 2, 3)), + ], + ), + InputTensorSpec(shape=(1, 4, 5), dtype=torch.float32), + ] + + # Build a TRT interpreter. Set explicit_batch_dimension accordingly. + interpreter = TRTInterpreter( + acc_mod, input_specs, explicit_batch_dimension=True/False + ) + + # The output of TRTInterpreter run() is wrapped as TRTInterpreterResult. + # The TRTInterpreterResult contains required parameter to build TRTModule, + # and other informational output from TRTInterpreter run. + class TRTInterpreterResult(NamedTuple): + engine: Any + input_names: Sequence[str] + output_names: Sequence[str] + serialized_cache: bytearray + + #max_batch_size: set accordingly for maximum batch size you will use. + #max_workspace_size: set to the maximum size we can afford for temporary buffer + #lower_precision: the precision model layers are running on (TensorRT will choose the best perforamnce precision). + #sparse_weights: allow the builder to examine weights and use optimized functions when weights have suitable sparsity + #force_fp32_output: force output to be fp32 + #strict_type_constraints: Usually we should set it to False unless we want to control the precision of certain layer for numeric #reasons. + #algorithm_selector: set up algorithm selection for certain layer + #timing_cache: enable timing cache for TensorRT + #profiling_verbosity: TensorRT logging level + trt_interpreter_result = interpreter.run( + max_batch_size=64, + max_workspace_size=1 << 25, + sparse_weights=False, + force_fp32_output=False, + strict_type_constraints=False, + algorithm_selector=None, + timing_cache=None, + profiling_verbosity=None, + ) + + +*Common Errors:* + +RuntimeError: Conversion of function xxx not currently supported! +- This means we don’t have the support for this xxx operator. Please refer to section “How to add a missing op” below for further instructions. + +* **Step 3: Run the model** +One way is using TRTModule, which is basically a PyTorch nn.Module. + +.. code-block:: shell + + from torch_tensorrt.fx import TRTModule + mod = TRTModule( + trt_interpreter_result.engine, + trt_interpreter_result.input_names, + trt_interpreter_result.output_names) + # Just like all other PyTorch modules + outputs = mod(*inputs) + torch.save(mod, "trt.pt") + reload_trt_mod = torch.load("trt.pt") + reload_model_output = reload_trt_mod(*inputs) + +So far, we give a detailed explanation of major steps in convterting a PyTorch model into TensorRT engine. Users are welcome to refer to the source code for some parameters explanations. In the converting scheme, there are two important actions in it. One is acc tracer which helps us to convert a PyTorch model to acc graph. The other is FX path converter which helps to convert the acc graph's operation to corresponding TensorRT operation and build up the TensoRT engine for it. + +Acc Tracer +--------- + +Acc tracer is a custom FX symbolic tracer. It does a couple more things compare to the vanilla FX symbolic tracer. We mainly depend on it to convert PyTorch ops or builtin ops to acc ops. There are two main purposes for fx2trt to use acc ops: + +1. there’re many ops that do similar things in PyTorch ops and builtin ops such like torch.add, builtin.add and torch.Tensor.add. Using acc tracer, we normalize these three ops to a single acc_ops.add. This helps reduce the number of converters we need to write. +2. acc ops only have kwargs which makes writing converter easier as we don’t need to add additional logic to find arguments in args and kwargs. + +FX2TRT +-------- +After symbolic tracing, we have the graph representation of a PyTorch model. fx2trt leverages the power of fx.Interpreter. fx.Interpreter goes through the whole graph node by node and calls the function that node represents. fx2trt overrides the original behavior of calling the function with invoking corresponding converts for each node. Each converter function adds corresponding TensorRT layer(s). + +Below is an example of a converter function. The decorator is used to register this converter function with the corresponding node. In this example, we register this converter to a fx node whose target is acc_ops.sigmoid. + +.. code-block:: shell + + @tensorrt_converter(acc_ops.sigmoid) + def acc_ops_sigmoid(network, target, args, kwargs, name): + """ + network: TensorRT network. We'll be adding layers to it. + + The rest arguments are attributes of fx node. + """ + input_val = kwargs['input'] + + if not isinstance(input_val, trt.tensorrt.ITensor): + raise RuntimeError(f'Sigmoid received input {input_val} that is not part ' + 'of the TensorRT region!') + + layer = network.add_activation(input=input_val, type=trt.ActivationType.SIGMOID) + layer.name = name + return layer.get_output(0) + +How to Add a Missing Op +**************** + +You can actually add it wherever you want just need to remember import the file so that all acc ops and mapper will be registered before tracing with acc_tracer. + +* **Step 1. Add a new acc op** + +TODO: Need to explain more on the logistic of acc op like when we want to break down an op and when we want to reuse other ops. + +In `acc tracer `_, we convert nodes in the graph to acc ops if there’s a mapping registered for the node to an acc op. + +In order to make the conversion to acc ops to happen, there’re two things required. One is that there should be an acc op function defined and the other is there should be a mapping registered. + +Defining an acc op is simple, we first just need a function and register the function as an acc op via this decorator `acc_normalizer.py `_. e.g. the following code adds an acc op named foo() which adds two given inputs. + +.. code-block:: shell + + # NOTE: all acc ops should only take kwargs as inputs, therefore we need the "*" + # at the beginning. + @register_acc_op + def foo(*, input, other, alpha): + return input + alpha * other + +There’re two ways to register a mapping. One is `register_acc_op_mapping() `_. Let’s register a mapping from torch.add to foo() we just created above. We need to add decorator register_acc_op_mapping to it. + +.. code-block:: shell + + this_arg_is_optional = True + + @register_acc_op_mapping( + op_and_target=("call_function", torch.add), + arg_replacement_tuples=[ + ("input", "input"), + ("other", "other"), + ("alpha", "alpha", this_arg_is_optional), + ], + ) + @register_acc_op + def foo(*, input, other, alpha=1.0): + return input + alpha * other + +``op_and_target`` determines which node will trigger this mapping. op and target are the attributes of FX node. In acc_normalization when we see a node with the same op and target as set in the ``op_and_target``, we will trigger the mapping. Since we want to map from ``torch.add``, then op would be call_function and target would be ``torch.add``. ``arg_replacement_tuples`` determines how we construct kwargs for new acc op node using args and kwargs from original node. Each tuple in ``arg_replacement_tuples`` represents one argument mapping rule. It contains two or three elements. The third element is a boolean variable that determines whether this kwarg is optional in *original node*. We only need to specify the third element if it’s True. The first element is the argument name in original node which will be used as the acc op node’s argument whose name is the second element in the tuple. The sequence of the tuples does matter because the position of the tuple determines where the argument is in original node’s args. We use this information to map args from original node to kwargs in acc op node. +We don’t have to specify arg_replacement_tuples if none of the followings are true. + +1. kwargs of original nodes and acc op nodes have different name. +2. there’re optional arguments. + +The other way to register a mapping is through `register_custom_acc_mapper_fn() `_. This one is designed to reduce the redundant op registration as it allows you to use a function to map to one or more existing acc ops throught some combinations. In the function, you can do basically whatever you want. Let’s use an example to explain how it works. + +.. code-block:: shell + + @register_acc_op + def foo(*, input, other, alpha=1.0): + return input + alpha * other + + @register_custom_acc_mapper_fn( + op_and_target=("call_function", torch.add), + arg_replacement_tuples=[ + ("input", "input"), + ("other", "other"), + ("alpha", "alpha", this_arg_is_optional), + ], + ) + def custom_mapper(node: torch.fx.Node, _: nn.Module) -> torch.fx.Node: + """ + `node` is original node, which is a call_function node with target + being torch.add. + """ + alpha = 1 + if "alpha" in node.kwargs: + alpha = node.kwargs["alpha"] + foo_kwargs = {"input": node["input"], "other": node["other"], "alpha": alpha} + with node.graph.inserting_before(node): + foo_node = node.graph.call_function(foo, kwargs=foo_kwargs) + foo_node.meta = node.meta.copy() + return foo_node + + +In the custom mapper function, we construct an acc op node and return it. The node we returns here would take over all the children nodes of original nodes `acc_normalizer.py `_. + +The last step would be *adding unit test* for the new acc op or mapper function we added. The place to add the unit test is here `test_acc_tracer.py `_. + +* **Step 2. Add a new converter** + +All the developed converters for acc ops are all in `acc_op_converter.py `_. It could give you a good example of how the converter is added. + +Essentially, the converter is the mapping mechanism that maps the acc ops to a TensorRT layer. If we are able to find all the TensorRT layers we need we can get start to add a converter for the node using `TensorRT APIs `_. + +.. code-block:: shell + + @tensorrt_converter(acc_ops.sigmoid) + def acc_ops_sigmoid(network, target, args, kwargs, name): + """ + network: TensorRT network. We'll be adding layers to it. + + The rest arguments are attributes of fx node. + """ + input_val = kwargs['input'] + + if not isinstance(input_val, trt.tensorrt.ITensor): + raise RuntimeError(f'Sigmoid received input {input_val} that is not part ' + 'of the TensorRT region!') + + layer = network.add_activation(input=input_val, type=trt.ActivationType.SIGMOID) + layer.name = name + return layer.get_output(0) + +We need to use ``tensorrt_converter`` decorator to register the converter. The argument for the decorator is the target of the fx node that we need to convert. In the converter, we can find the inputs to the fx node in kwargs. As in the example, the original node is `acc_ops.sigmoid` which only has one argument “input” in acc_ops.py. We get the input and check if it’s a TensorRT tensor. After that, we add a sigmoid layer to TensorRT network and return the output of the layer. The output we returned will be passed to the children nodes of acc_ops.sigmoid by fx.Interpreter. + +**What if we can not find corresponding layers in TensorRT that do the same thing as the node.** + +In this case, we would need to do a bit more work. TensorRT provides plugins which serves as custom layers. *We have not implement this feature yet. We will update once it is enabled*. + +Last step would be adding the unit test for the new converter we added. User could add corresponding unit test in this `folder `_. diff --git a/docs/v1.1.1/_sources/tutorials/getting_started_with_python_api.rst.txt b/docs/v1.1.1/_sources/tutorials/getting_started_with_python_api.rst.txt new file mode 100644 index 0000000000..b63665c980 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/getting_started_with_python_api.rst.txt @@ -0,0 +1,47 @@ +.. _getting_started_with_python_api: + +Using Torch-TensorRT in Python +******************************* + +Torch-TensorRT Python API accepts a ```torch.nn.Module`` as an input. Under the hood, it uses ``torch.jit.script`` to convert the input module into a +TorchScript module. To compile your input ```torch.nn.Module`` with Torch-TensorRT, all you need to do is provide the module and inputs +to Torch-TensorRT and you will be returned an optimized TorchScript module to run or add into another PyTorch module. Inputs +is a list of ``torch_tensorrt.Input`` classes which define input's shape, datatype and memory format. You can also specify settings such as +operating precision for the engine or target device. After compilation you can save the module just like any other module +to load in a deployment application. In order to load a TensorRT/TorchScript module, make sure you first import ``torch_tensorrt``. + +.. code-block:: python + + import torch_tensorrt + + ... + + model = MyModel().eval() # torch module needs to be in eval (not training) mode + + inputs = [torch_tensorrt.Input( + min_shape=[1, 1, 16, 16], + opt_shape=[1, 1, 32, 32], + max_shape=[1, 1, 64, 64], + dtype=torch.half, + )] + enabled_precisions = {torch.float, torch.half} # Run with fp16 + + trt_ts_module = torch_tensorrt.compile(model, inputs=inputs, enabled_precisions=enabled_precisions) + + input_data = input_data.to('cuda').half() + result = trt_ts_module(input_data) + torch.jit.save(trt_ts_module, "trt_ts_module.ts") + +.. code-block:: python + + # Deployment application + import torch + import torch_tensorrt + + trt_ts_module = torch.jit.load("trt_ts_module.ts") + input_data = input_data.to('cuda').half() + result = trt_ts_module(input_data) + +Torch-TensorRT python API also provides ``torch_tensorrt.ts.compile`` which accepts a TorchScript module as input. +The torchscript module can be obtained via scripting or tracing (refer to :ref:`creating_torchscript_module_in_python`). ``torch_tensorrt.ts.compile`` accepts a Torchscript module +and a list of ``torch_tensorrt.Input`` classes. diff --git a/docs/v1.1.1/_sources/tutorials/installation.rst.txt b/docs/v1.1.1/_sources/tutorials/installation.rst.txt new file mode 100644 index 0000000000..949fa2ddc9 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/installation.rst.txt @@ -0,0 +1,387 @@ +.. _installation: + +Installation +============= + +Precompiled Binaries +********************* + +Dependencies +--------------- + +You need to have either PyTorch or LibTorch installed based on if you are using Python or C++ +and you must have CUDA, cuDNN and TensorRT installed. + + * https://www.pytorch.org + * https://developer.nvidia.com/cuda + * https://developer.nvidia.com/cudnn + * https://developer.nvidia.com/tensorrt + + +Python Package +--------------- + +You can install the python package using + +.. code-block:: sh + + pip3 install torch-tensorrt -f https://github.com/NVIDIA/Torch-TensorRT/releases + +.. _bin-dist: + +C++ Binary Distribution +------------------------ + +Precompiled tarballs for releases are provided here: https://github.com/NVIDIA/Torch-TensorRT/releases + +.. _compile-from-source: + +Compiling From Source +****************************************** + +.. _installing-deps: + +Dependencies for Compilation +------------------------------- + +Torch-TensorRT is built with Bazel, so begin by installing it. + + * The easiest way is to install bazelisk using the method of your choosing https://github.com/bazelbuild/bazelisk + * Otherwise you can use the following instructions to install binaries https://docs.bazel.build/versions/master/install.html + * Finally if you need to compile from source (e.g. aarch64 until bazel distributes binaries for the architecture) you can use these instructions + + .. code-block:: shell + + export BAZEL_VERSION=$(cat /.bazelversion) + mkdir bazel + cd bazel + curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-dist.zip + unzip bazel-$BAZEL_VERSION-dist.zip + bash ./compile.sh + cp output/bazel /usr/local/bin/ + + +You will also need to have CUDA installed on the system (or if running in a container, the system must have +the CUDA driver installed and the container must have CUDA) + +The correct LibTorch version will be pulled down for you by bazel. + + NOTE: For best compatability with official PyTorch, use torch==1.10.0+cuda113, TensorRT 8.0 and cuDNN 8.2 for CUDA 11.3 however Torch-TensorRT itself supports + TensorRT and cuDNN for other CUDA versions for usecases such as using NVIDIA compiled distributions of PyTorch that use other versions of CUDA + e.g. aarch64 or custom compiled version of PyTorch. + +.. _abis: + +Choosing the Right ABI +^^^^^^^^^^^^^^^^^^^^^^^^ + +Likely the most complicated thing about compiling Torch-TensorRT is selecting the correct ABI. There are two options +which are incompatible with each other, pre-cxx11-abi and the cxx11-abi. The complexity comes from the fact that while +the most popular distribution of PyTorch (wheels downloaded from pytorch.org/pypi directly) use the pre-cxx11-abi, most +other distributions you might encounter (e.g. ones from NVIDIA - NGC containers, and builds for Jetson as well as certain +libtorch builds and likely if you build PyTorch from source) use the cxx11-abi. It is important you compile Torch-TensorRT +using the correct ABI to function properly. Below is a table with general pairings of PyTorch distribution sources and the +recommended commands: + ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch Source | Recommended C++ Compilation Command | Recommended Python Compilation Command | ++=============================================================+==========================================================+====================================================================+ +| PyTorch whl file from PyTorch.org | bazel build //:libtorchtrt -c opt --config pre_cxx11_abi | python3 setup.py bdist_wheel | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| libtorch-shared-with-deps-*.zip from PyTorch.org | bazel build //:libtorchtrt -c opt --config pre_cxx11_abi | python3 setup.py bdist_wheel | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| libtorch-cxx11-abi-shared-with-deps-*.zip from PyTorch.org | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch preinstalled in an NGC container | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch from the NVIDIA Forums for Jetson | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --jetpack-version 4.6 --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch built from Source | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ + + NOTE: For all of the above cases you must correctly declare the source of PyTorch you intend to use in your WORKSPACE file for both Python and C++ builds. See below for more information + +You then have two compilation options: + +.. _build-from-archive: + +**Building using cuDNN & TensorRT tarball distributions** +-------------------------------------------------------------- + + This is recommended so as to build Torch-TensorRT hermetically and insures any compilation errors are not caused by version issues + + Make sure when running Torch-TensorRT that these versions of the libraries are prioritized in your ``$LD_LIBRARY_PATH`` + +You need to download the tarball distributions of TensorRT and cuDNN from the NVIDIA website. + * https://developer.nvidia.com/cudnn + * https://developer.nvidia.com/tensorrt + +Place these files in a directory (the directories ``third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]`` exist for this purpose) + +Then compile referencing the directory with the tarballs + + If you get errors regarding the packages, check their sha256 hashes and make sure they match the ones listed in ``WORKSPACE`` + +Release Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: shell + + bazel build //:libtorchtrt -c opt --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-archive-debug: + +Debug Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build with debug symbols use the following command + +.. code-block:: shell + + bazel build //:libtorchtrt -c dbg --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +Pre CXX11 ABI Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build using the pre-CXX11 ABI use the ``pre_cxx11_abi`` config + +.. code-block:: shell + + bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-local: + +**Building using locally installed cuDNN & TensorRT** +-------------------------------------------------------------- + + If you encounter bugs and you compiled using this method please disclose that you used local sources in the issue (an ldd dump would be nice too) + +Install TensorRT, CUDA and cuDNN on the system before starting to compile. + +In WORKSPACE comment out: + +.. code-block:: python + + # Downloaded distributions to use with --distdir + http_archive( + name = "cudnn", + urls = ["",], + + build_file = "@//third_party/cudnn/archive:BUILD", + sha256 = "", + strip_prefix = "cuda" + ) + + http_archive( + name = "tensorrt", + urls = ["",], + + build_file = "@//third_party/tensorrt/archive:BUILD", + sha256 = "", + strip_prefix = "TensorRT-" + ) + +and uncomment + +.. code-block:: python + + # Locally installed dependencies + new_local_repository( + name = "cudnn", + path = "/usr/", + build_file = "@//third_party/cudnn/local:BUILD" + ) + + new_local_repository( + name = "tensorrt", + path = "/usr/", + build_file = "@//third_party/tensorrt/local:BUILD" + ) + +Release Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +Compile using: + +.. code-block:: shell + + bazel build //:libtorchtrt -c opt + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-local-debug: + +Debug Build +^^^^^^^^^^^^ + +To build with debug symbols use the following command + +.. code-block:: shell + + bazel build //:libtorchtrt -c dbg + + +A tarball with the include files and library can then be found in ``bazel-bin`` + +Pre CXX11 ABI Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build using the pre-CXX11 ABI use the ``pre_cxx11_abi`` config + +.. code-block:: shell + + bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] + +**Building the Python package** +-------------------------------- + +Begin by installing ``ninja`` + +You can build the Python package using ``setup.py`` (this will also build the correct version of ``libtorchtrt.so``) + +.. code-block:: shell + + python3 setup.py [install/bdist_wheel] + +Debug Build +^^^^^^^^^^^^ + +.. code-block:: shell + + python3 setup.py develop [--user] + +This also compiles a debug build of ``libtorchtrt.so`` + +**Building Natively on aarch64 (Jetson)** +------------------------------------------- + +Prerequisites +^^^^^^^^^^^^^^ + +Install or compile a build of PyTorch/LibTorch for aarch64 + +NVIDIA hosts builds the latest release branch for Jetson here: + + https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-10-now-available/72048 + + +Enviorment Setup +^^^^^^^^^^^^^^^^^ + +To build natively on aarch64-linux-gnu platform, configure the ``WORKSPACE`` with local available dependencies. + +1. Disable the rules with ``http_archive`` for x86_64 by commenting the following rules: + +.. code-block:: shell + + #http_archive( + # name = "libtorch", + # build_file = "@//third_party/libtorch:BUILD", + # strip_prefix = "libtorch", + # urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.5.1.zip"], + # sha256 = "cf0691493d05062fe3239cf76773bae4c5124f4b039050dbdd291c652af3ab2a" + #) + + #http_archive( + # name = "libtorch_pre_cxx11_abi", + # build_file = "@//third_party/libtorch:BUILD", + # strip_prefix = "libtorch", + # sha256 = "818977576572eadaf62c80434a25afe44dbaa32ebda3a0919e389dcbe74f8656", + # urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-shared-with-deps-1.5.1.zip"], + #) + + # Download these tarballs manually from the NVIDIA website + # Either place them in the distdir directory in third_party and use the --distdir flag + # or modify the urls to "file:////.tar.gz + + #http_archive( + # name = "cudnn", + # urls = ["https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.1.13/10.2_20200626/cudnn-10.2-linux-x64-v8.0.1.13.tgz"], + # build_file = "@//third_party/cudnn/archive:BUILD", + # sha256 = "0c106ec84f199a0fbcf1199010166986da732f9b0907768c9ac5ea5b120772db", + # strip_prefix = "cuda" + #) + + #http_archive( + # name = "tensorrt", + # urls = ["https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.1/tars/TensorRT-7.1.3.4.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn8.0.tar.gz"], + # build_file = "@//third_party/tensorrt/archive:BUILD", + # sha256 = "9205bed204e2ae7aafd2e01cce0f21309e281e18d5bfd7172ef8541771539d41", + # strip_prefix = "TensorRT-7.1.3.4" + #) + + NOTE: You may also need to configure the CUDA version to 10.2 by setting the path for the cuda new_local_repository + + +2. Configure the correct paths to directory roots containing local dependencies in the ``new_local_repository`` rules: + + NOTE: If you installed PyTorch using a pip package, the correct path is the path to the root of the python torch package. + In the case that you installed with ``sudo pip install`` this will be ``/usr/local/lib/python3.6/dist-packages/torch``. + In the case you installed with ``pip install --user`` this will be ``$HOME/.local/lib/python3.6/site-packages/torch``. + +In the case you are using NVIDIA compiled pip packages, set the path for both libtorch sources to the same path. This is because unlike +PyTorch on x86_64, NVIDIA aarch64 PyTorch uses the CXX11-ABI. If you compiled for source using the pre_cxx11_abi and only would like to +use that library, set the paths to the same path but when you compile make sure to add the flag ``--config=pre_cxx11_abi`` + +.. code-block:: shell + + new_local_repository( + name = "libtorch", + path = "/usr/local/lib/python3.6/dist-packages/torch", + build_file = "third_party/libtorch/BUILD" + ) + + new_local_repository( + name = "libtorch_pre_cxx11_abi", + path = "/usr/local/lib/python3.6/dist-packages/torch", + build_file = "third_party/libtorch/BUILD" + ) + + new_local_repository( + name = "cudnn", + path = "/usr/", + build_file = "@//third_party/cudnn/local:BUILD" + ) + + new_local_repository( + name = "tensorrt", + path = "/usr/", + build_file = "@//third_party/tensorrt/local:BUILD" + ) + +Compile C++ Library and Compiler CLI +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + NOTE: Due to shifting dependency locations between Jetpack 4.5 and 4.6 there is a now a flag to inform bazel of the Jetpack version + + .. code-block:: shell + + --platforms //toolchains:jetpack_4.x + + +Compile Torch-TensorRT library using bazel command: + +.. code-block:: shell + + bazel build //:libtorchtrt --platforms //toolchains:jetpack_4.6 + +Compile Python API +^^^^^^^^^^^^^^^^^^^^ + + NOTE: Due to shifting dependencies locations between Jetpack 4.5 and Jetpack 4.6 there is now a flag for ``setup.py`` which sets the jetpack version (default: 4.6) + +Compile the Python API using the following command from the ``//py`` directory: + +.. code-block:: shell + + python3 setup.py install --use-cxx11-abi + +If you have a build of PyTorch that uses Pre-CXX11 ABI drop the ``--use-cxx11-abi`` flag + +If you are building for Jetpack 4.5 add the ``--jetpack-version 4.5`` flag diff --git a/docs/v1.1.1/_sources/tutorials/notebooks.rst.txt b/docs/v1.1.1/_sources/tutorials/notebooks.rst.txt new file mode 100644 index 0000000000..df903fc353 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/notebooks.rst.txt @@ -0,0 +1,154 @@ +.. _notebooks: + +Example notebooks +=================== + +There exists a number of notebooks which cover specific using specific features and models +with Torch-TensorRT + +Notebooks +------------ + +Compiling CitriNet with Torch-TensorRT +******************************************** + +Citrinet is an acoustic model used for the speech to text recognition task. It is a version +of QuartzNet that extends ContextNet, utilizing subword encoding (via Word Piece tokenization) +and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models. CitriNet +models take in audio segments and transcribe them to letter, byte pair, or word piece sequences. + +This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, +and running it to test the speedup obtained. + +* `Torch-TensorRT Getting Started - CitriNet `_ + + +Compiling EfficentNet with Torch-TensorRT +******************************************** + +EfficentNet is a feedforward CNN designed to achieve better performance and accuracy than alternative architectures +by using a "scaling method that uniformly scales all dimensions of depth/width/resolution using a simple yet highly effective compound coefficient". + +This notebook demonstrates the steps for optimizing a pretrained EfficentNet model with Torch-TensorRT, +and running it to test the speedup obtained. + +* `Torch-TensorRT Getting Started - EfficientNet-B0 `_ + + +Masked Language Modeling (MLM) with Hugging Face BERT Transformer accelerated by Torch-TensorRT +************************************************************************************************* + +"BERT is a transformer model pretrained on a large corpus of English data in a self-supervised fashion. +This way, the model learns an inner representation of the English language that can then be used to extract +features useful for downstream tasks: if you have a dataset of labeled sentences for instance, you can train +a standard classifier using the features produced by the BERT model as inputs." (https://huggingface.co/bert-base-uncased) + +This notebook demonstrates the steps for optimizing a pretrained EfficentNet model with Torch-TensorRT, +and running it to test the speedup obtained. + +* `Masked Language Modeling (MLM) with Hugging Face BERT Transformer `_ + + +Serving a model in C++ using Torch-TensorRT +********************************************** + +This example shows how you can load a pretrained ResNet-50 model, convert it to a Torch-TensorRT +optimized model (via the Torch-TensorRT Python API), save the model as a torchscript module, and +then finally load and serve the model with the PyTorch C++ API. + +* `ResNet C++ Serving Example `_ + + +Compiling ResNet50 with Torch-TensorRT +******************************************** + +This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a +pretrained ResNet-50 network, and running it to test the speedup obtained. + +* `Torch-TensorRT Getting Started - ResNet 50 `_ + + +Using Dynamic Shapes with Torch-TensorRT +******************************************** + +Making use of Dynamic Shaped Tensors in Torch TensorRT is quite simple. Let's say you are +using the ``torch_tensorrt.compile(...)`` function to compile a torchscript module. One +of the args in this function in this function is ``input``: which defines an input to a +module in terms of expected shape, data type and tensor format: ``torch_tensorrt.Input.`` + +For the purposes of this walkthrough we just need three kwargs: `min_shape`, `opt_shape`` and `max_shape`. + +.. code-block:: py + + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ) + ... + +In this example, we are going to use a simple ResNet model to demonstrate the use of the API. + +* `Torch-TensorRT - Using Dynamic Shapes `_ + +Using the FX Frontend with Torch-TensorRT +******************************************** + +The purpose of this example is to demostrate the overall flow of lowering a PyTorch model to TensorRT +conveniently with using FX. + +* `Using the FX Frontend with Torch-TensorRT `_ + + +Compiling a PyTorch model using FX Frontend with Torch-TensorRT +******************************************************************* + +The purpose of this example is to demonstrate the overall flow of lowering a PyTorch +model to TensorRT via FX with existing FX based tooling + +* `Compiling a PyTorch model using FX Frontend with Torch-TensorRT `_ + + +Compiling LeNet with Torch-TensorRT +******************************************************************* + +This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network. + +* `Torch-TensorRT Getting Started - LeNet `_ + + +Accelerate Deep Learning Models using Quantization in Torch-TensorRT +******************************************************************* + +Model Quantization is a popular way of optimization which reduces the size of models thereby +accelerating inference, also opening up the possibilities of deployments on devices with lower +computation power such as Jetson. Simply put, quantization is a process of mapping input values + from a larger set to output values in a smaller set. In this notebook, we illustrate the workflow + that you can adopt while quantizing a deep learning model in Torch-TensorRT. The notebook takes + you through an example of Mobilenetv2 for a classification task on a subset of Imagenet Dataset + called Imagenette which has 10 classes. + +* `Accelerate Deep Learning Models using Quantization in Torch-TensorRT `_ + + +Object Detection with Torch-TensorRT (SSD) +******************************************************************* + +This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained. + +* `Object Detection with Torch-TensorRT (SSD) `_ + + +Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT +***************************************************************************** + +Quantization Aware training (QAT) simulates quantization during training by +quantizing weights and activation layers. This will help to reduce the loss in +accuracy when we convert the network trained in FP32 to INT8 for faster inference. +QAT introduces additional nodes in the graph which will be used to learn the dynamic +ranges of weights and activation layers. In this notebook, we illustrate the following +steps from training to inference of a QAT model in Torch-TensorRT. + +* `Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT `_ diff --git a/docs/v1.1.1/_sources/tutorials/ptq.rst.txt b/docs/v1.1.1/_sources/tutorials/ptq.rst.txt new file mode 100644 index 0000000000..7b7617289b --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/ptq.rst.txt @@ -0,0 +1,210 @@ +.. _ptq: + +Post Training Quantization (PTQ) +================================= + +Post Training Quantization (PTQ) is a technique to reduce the required computational resources for inference +while still preserving the accuracy of your model by mapping the traditional FP32 activation space to a reduced +INT8 space. TensorRT uses a calibration step which executes your model with sample data from the target domain +and track the activations in FP32 to calibrate a mapping to INT8 that minimizes the information loss between +FP32 inference and INT8 inference. + +Users writing TensorRT applications are required to setup a calibrator class which will provide sample data to +the TensorRT calibrator. With Torch-TensorRT we look to leverage existing infrastructure in PyTorch to make implementing +calibrators easier. + +LibTorch provides a ``DataLoader`` and ``Dataset`` API which steamlines preprocessing and batching input data. +These APIs are exposed via both C++ and Python interface which makes it easier for the end user. +For C++ interface, we use ``torch::Dataset`` and ``torch::data::make_data_loader`` objects to construct and perform pre-processing on datasets. +The equivalent functionality in python interface uses ``torch.utils.data.Dataset`` and ``torch.utils.data.DataLoader``. +This section of the PyTorch documentation has more information https://pytorch.org/tutorials/advanced/cpp_frontend.html#loading-data and https://pytorch.org/tutorials/recipes/recipes/loading_data_recipe.html. +Torch-TensorRT uses Dataloaders as the base of a generic calibrator implementation. So you will be able to reuse or quickly +implement a ``torch::Dataset`` for your target domain, place it in a DataLoader and create a INT8 Calibrator +which you can provide to Torch-TensorRT to run INT8 Calibration during compliation of your module. + +.. _writing_ptq_cpp: + +How to create your own PTQ application in C++ +----------------------------------------------- + +Here is an example interface of a ``torch::Dataset`` class for CIFAR10: + +.. code-block:: c++ + :linenos: + + //cpp/ptq/datasets/cifar10.h + #pragma once + + #include "torch/data/datasets/base.h" + #include "torch/data/example.h" + #include "torch/types.h" + + #include + #include + + namespace datasets { + // The CIFAR10 Dataset + class CIFAR10 : public torch::data::datasets::Dataset { + public: + // The mode in which the dataset is loaded + enum class Mode { kTrain, kTest }; + + // Loads CIFAR10 from un-tarred file + // Dataset can be found https://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz + // Root path should be the directory that contains the content of tarball + explicit CIFAR10(const std::string& root, Mode mode = Mode::kTrain); + + // Returns the pair at index in the dataset + torch::data::Example<> get(size_t index) override; + + // The size of the dataset + c10::optional size() const override; + + // The mode the dataset is in + bool is_train() const noexcept; + + // Returns all images stacked into a single tensor + const torch::Tensor& images() const; + + // Returns all targets stacked into a single tensor + const torch::Tensor& targets() const; + + // Trims the dataset to the first n pairs + CIFAR10&& use_subset(int64_t new_size); + + + private: + Mode mode_; + torch::Tensor images_, targets_; + }; + } // namespace datasets + + +This class's implementation reads from the binary distribution of the CIFAR10 dataset and builds two tensors which hold the images and labels. + +We use a subset of the dataset to use for calibration, since we don't need the the full dataset for effective calibration and calibration does +some take time, then define the preprocessing to apply to the images in the dataset and create a DataLoader from the dataset which will batch the data: + +.. code-block:: c++ + + auto calibration_dataset = datasets::CIFAR10(data_dir, datasets::CIFAR10::Mode::kTest) + .use_subset(320) + .map(torch::data::transforms::Normalize<>({0.4914, 0.4822, 0.4465}, + {0.2023, 0.1994, 0.2010})) + .map(torch::data::transforms::Stack<>()); + auto calibration_dataloader = torch::data::make_data_loader(std::move(calibration_dataset), + torch::data::DataLoaderOptions().batch_size(32) + .workers(2)); + + +Next we create a calibrator from the ``calibration_dataloader`` using the calibrator factory (found in ``torch_tensorrt/ptq.h``): + +.. code-block:: c++ + + #include "torch_tensorrt/ptq.h" + ... + + auto calibrator = torch_tensorrt::ptq::make_int8_calibrator(std::move(calibration_dataloader), calibration_cache_file, true); + +Here we also define a location to write a calibration cache file to which we can use to reuse the calibration data without needing the dataset and whether or not +we should use the cache file if it exists. There also exists a ``torch_tensorrt::ptq::make_int8_cache_calibrator`` factory which creates a calibrator that uses the cache +only for cases where you may do engine building on a machine that has limited storage (i.e. no space for a full dataset) or to have a simpiler deployment application. + +The calibrator factories create a calibrator that inherits from a ``nvinfer1::IInt8Calibrator`` virtual class (``nvinfer1::IInt8EntropyCalibrator2`` by default) which +defines the calibration algorithm used when calibrating. You can explicitly make the selection of calibration algorithm like this: + +.. code-block:: c++ + + // MinMax Calibrator is geared more towards NLP tasks + auto calibrator = torch_tensorrt::ptq::make_int8_calibrator(std::move(calibration_dataloader), calibration_cache_file, true); + +Then all thats required to setup the module for INT8 calibration is to set the following compile settings in the `torch_tensorrt::CompileSpec` struct and compiling the module: + +.. code-block:: c++ + + std::vector> input_shape = {{32, 3, 32, 32}}; + /// Configure settings for compilation + auto compile_spec = torch_tensorrt::CompileSpec({input_shape}); + /// Set operating precision to INT8 + compile_spec.enabled_precisions.insert(torch::kF16); + compile_spec.enabled_precisions.insert(torch::kI8); + /// Use the TensorRT Entropy Calibrator + compile_spec.ptq_calibrator = calibrator; + /// Set a larger workspace (you may get better performace from doing so) + compile_spec.workspace_size = 1 << 28; + + auto trt_mod = torch_tensorrt::CompileGraph(mod, compile_spec); + +If you have an existing Calibrator implementation for TensorRT you may directly set the ``ptq_calibrator`` field with a pointer to your calibrator and it will work as well. +From here not much changes in terms of how to execution works. You are still able to fully use LibTorch as the sole interface for inference. Data should remain +in FP32 precision when it's passed into `trt_mod.forward`. There exists an example application in the Torch-TensorRT demo that takes you from training a VGG16 network on +CIFAR10 to deploying in INT8 with Torch-TensorRT here: https://github.com/NVIDIA/Torch-TensorRT/tree/master/cpp/ptq + +.. _writing_ptq_python: + +How to create your own PTQ application in Python +-------------------------------------------------- + +Torch-TensorRT Python API provides an easy and convenient way to use pytorch dataloaders with TensorRT calibrators. ``DataLoaderCalibrator`` class can be used to create +a TensorRT calibrator by providing desired configuration. The following code demonstrates an example on how to use it + +.. code-block:: python + + testing_dataset = torchvision.datasets.CIFAR10(root='./data', + train=False, + download=True, + transform=transforms.Compose([ + transforms.ToTensor(), + transforms.Normalize((0.4914, 0.4822, 0.4465), + (0.2023, 0.1994, 0.2010)) + ])) + + testing_dataloader = torch.utils.data.DataLoader(testing_dataset, + batch_size=1, + shuffle=False, + num_workers=1) + calibrator = torch_tensorrt.ptq.DataLoaderCalibrator(testing_dataloader, + cache_file='./calibration.cache', + use_cache=False, + algo_type=torch_tensorrt.ptq.CalibrationAlgo.ENTROPY_CALIBRATION_2, + device=torch.device('cuda:0')) + + compile_spec = { + "inputs": [torch_tensorrt.Input((1, 3, 32, 32))], + "enabled_precisions": {torch.float, torch.half, torch.int8}, + "calibrator": calibrator, + "device": { + "device_type": torch_tensorrt.DeviceType.GPU, + "gpu_id": 0, + "dla_core": 0, + "allow_gpu_fallback": False, + "disable_tf32": False + } + } + trt_mod = torch_tensorrt.compile(model, compile_spec) + +In the cases where there is a pre-existing calibration cache file that users want to use, ``CacheCalibrator`` can be used without any dataloaders. The following example demonstrates how +to use ``CacheCalibrator`` to use in INT8 mode. + +.. code-block:: python + + calibrator = torch_tensorrt.ptq.CacheCalibrator("./calibration.cache") + + compile_settings = { + "inputs": [torch_tensorrt.Input([1, 3, 32, 32])], + "enabled_precisions": {torch.float, torch.half, torch.int8}, + "calibrator": calibrator, + } + + trt_mod = torch_tensorrt.compile(model, compile_settings) + +If you already have an existing calibrator class (implemented directly using TensorRT API), you can directly set the calibrator field to your class which can be very convenient. +For a demo on how PTQ can be performed on a VGG network using Torch-TensorRT API, you can refer to https://github.com/NVIDIA/Torch-TensorRT/blob/master/tests/py/test_ptq_dataloader_calibrator.py +and https://github.com/NVIDIA/Torch-TensorRT/blob/master/tests/py/test_ptq_trt_calibrator.py + +Citations +^^^^^^^^^^^ + +Krizhevsky, A., & Hinton, G. (2009). Learning multiple layers of features from tiny images. + +Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556. diff --git a/docs/v1.1.1/_sources/tutorials/runtime.rst.txt b/docs/v1.1.1/_sources/tutorials/runtime.rst.txt new file mode 100644 index 0000000000..77dd2c35b1 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/runtime.rst.txt @@ -0,0 +1,36 @@ +.. _runtime: + +Deploying Torch-TensorRT Programs +==================================== + +After compiling and saving Torch-TensorRT programs there is no longer a strict dependency on the full +Torch-TensorRT library. All that is required to run a compiled program is the runtime. There are therfore a couple +options to deploy your programs other than shipping the full Torch-TensorRT compiler with your applications. + +Torch-TensorRT package / libtorchtrt.so +-------------------------------------------- + +Once a program is compiled, you run it using the standard PyTorch APIs. All that is required is that the package +must be imported in python or linked in C++. + +Runtime Library +----------------- + +Distributed with the C++ distribution is ``libtorchtrt_runtime.so``. This library only contains the components +necessary to run Torch-TensorRT programs. Instead of linking ``libtorchtrt.so`` or importing ``torch_tensorrt`` you can +link ``libtorchtrt_runtime.so`` in your deployment programs or use ``DL_OPEN`` or ``LD_PRELOAD``. For python +you can load the runtime with ``torch.ops.load_library("libtorchtrt_runtime.so")``. You can then continue to use +programs just as you would otherwise via PyTorch API. + +.. note:: If you are using the standard distribution of PyTorch in Python on x86, likely you will need the pre-cxx11-abi variant of ``libtorchtrt_runtime.so``, check :ref:`Installation` documentation for more details. + +.. note:: If you are linking ``libtorchtrt_runtime.so``, likely using the following flags will help ``-Wl,--no-as-needed -ltorchtrt -Wl,--as-needed`` as theres no direct symbol dependency to anything in the Torch-TensorRT runtime for most Torch-TensorRT runtime applications + +An example of how to use ``libtorchtrt_runtime.so`` can be found here: https://github.com/NVIDIA/Torch-TensorRT/tree/master/examples/torchtrt_example + +Plugin Library +--------------- + +In the case you use Torch-TensorRT as a converter to a TensorRT engine and your engine uses plugins provided by Torch-TensorRT, Torch-TensorRT +ships the library ``libtorchtrt_plugins.so`` which contains the implementation of the TensorRT plugins used by Torch-TensorRT during +compilation. This library can be ``DL_OPEN`` or ``LD_PRELOAD`` similar to other TensorRT plugin libraries. diff --git a/docs/v1.1.1/_sources/tutorials/serving_torch_tensorrt_with_triton.rst.txt b/docs/v1.1.1/_sources/tutorials/serving_torch_tensorrt_with_triton.rst.txt new file mode 100644 index 0000000000..a713d563c2 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/serving_torch_tensorrt_with_triton.rst.txt @@ -0,0 +1,216 @@ +.. _serving_torch_tensorrt_with_triton: + +Serving a Torch-TensorRT model with Triton +========================================== + +Optimization and deployment go hand in hand in a discussion about Machine +Learning infrastructure. Once network level optimzation are done +to get the maximum performance, the next step would be to deploy it. + +However, serving this optimized model comes with it's own set of considerations +and challenges like: building an infrastructure to support concorrent model +executions, supporting clients over HTTP or gRPC and more. + +The `Triton Inference Server `__ +solves the aforementioned and more. Let's discuss step-by-step, the process of +optimizing a model with Torch-TensorRT, deploying it on Triton Inference +Server, and building a client to query the model. + +Step 1: Optimize your model with Torch-TensorRT +----------------------------------------------- + +Most Torch-TensorRT users will be familiar with this step. For the purpose of +this demonstration, we will be using a ResNet50 model from Torchhub. + +Let’s first pull the `NGC PyTorch Docker container `__. You may need to create +an account and get the API key from `here `__. +Sign up and login with your key (follow the instructions +`here `__ after signing up). + +:: + + # is the yy:mm for the publishing tag for NVIDIA's Pytorch + # container; eg. 22.04 + + docker run -it --gpus all -v ${PWD}:/scratch_space nvcr.io/nvidia/pytorch:-py3 + cd /scratch_space + +Once inside the container, we can proceed to download a ResNet model from +Torchhub and optimize it with Torch-TensorRT. + +:: + + import torch + import torch_tensorrt + torch.hub._validate_not_a_forked_repo=lambda a,b,c: True + + # load model + model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True).eval().to("cuda") + + # Compile with Torch TensorRT; + trt_model = torch_tensorrt.compile(model, + inputs= [torch_tensorrt.Input((1, 3, 224, 224))], + enabled_precisions= { torch.half} # Run with FP32 + ) + + # Save the model + torch.jit.save(trt_model, "model.pt") + +After copying the model, exit the container. The next step in the process +is to set up a Triton Inference Server. + +Step 2: Set Up Triton Inference Server +-------------------------------------- + +If you are new to the Triton Inference Server and want to learn more, we +highly recommend to checking our `Github +Repository `__. + +To use Triton, we need to make a model repository. A model repository, as the +name suggested, is a repository of the models the Inference server hosts. While +Triton can serve models from multiple repositories, in this example, we will +discuss the simplest possible form of the model repository. + +The structure of this repository should look something like this: + +:: + + model_repository + | + +-- resnet50 + | + +-- config.pbtxt + +-- 1 + | + +-- model.pt + +There are two files that Triton requires to serve the model: the model itself +and a model configuration file which is typically provided in ``config.pbtxt``. +For the model we prepared in step 1, the following configuration can be used: + +:: + + name: "resnet50" + platform: "pytorch_libtorch" + max_batch_size : 0 + input [ + { + name: "input__0" + data_type: TYPE_FP32 + dims: [ 3, 224, 224 ] + reshape { shape: [ 1, 3, 224, 224 ] } + } + ] + output [ + { + name: "output__0" + data_type: TYPE_FP32 + dims: [ 1, 1000 ,1, 1] + reshape { shape: [ 1, 1000 ] } + } + ] + +The ``config.pbtxt`` file is used to describe the exact model configuration +with details like the names and shapes of the input and output layer(s), +datatypes, scheduling and batching details and more. If you are new to Triton, +we highly encourage you to check out this `section of our +documentation `__ +for more details. + +With the model repository setup, we can proceed to launch the Triton server +with the docker command below. Refer `this page `__ for the pull tag for the container. + +:: + + # Make sure that the TensorRT version in the Triton container + # and TensorRT version in the environment used to optimize the model + # are the same. + + docker run --gpus all --rm -p 8000:8000 -p 8001:8001 -p 8002:8002 -v /full/path/to/the_model_repository/model_repository:/models nvcr.io/nvidia/tritonserver:-py3 tritonserver --model-repository=/models + +This should spin up a Triton Inference server. Next step, building a simple +http client to query the server. + +Step 3: Building a Triton Client to Query the Server +---------------------------------------------------- + +Before proceeding, make sure to have a sample image on hand. If you don't +have one, download an example image to test inference. In this section, we +will be going over a very basic client. For a variety of more fleshed out +examples, refer to the `Triton Client Repository `__ + +:: + + wget -O img1.jpg "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg" + +We then need to install dependencies for building a python client. These will +change from client to client. For a full list of all languages supported by Triton, +please refer to `Triton's client repository `__. + +:: + + pip install torchvision + pip install attrdict + pip install nvidia-pyindex + pip install tritonclient[all] + +Let's jump into the client. Firstly, we write a small preprocessing function to +resize and normalize the query image. + +:: + + import numpy as np + from torchvision import transforms + from PIL import Image + import tritonclient.http as httpclient + from tritonclient.utils import triton_to_np_dtype + + # preprocessing function + def rn50_preprocess(img_path="img1.jpg"): + img = Image.open(img_path) + preprocess = transforms.Compose([ + transforms.Resize(256), + transforms.CenterCrop(224), + transforms.ToTensor(), + transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), + ]) + return preprocess(img).numpy() + + transformed_img = rn50_preprocess() + +Building a client requires three basic points. Firstly, we setup a connection +with the Triton Inference Server. + +:: + + # Setting up client + client = httpclient.InferenceServerClient(url="localhost:8000") + +Secondly, we specify the names of the input and output layer(s) of our model. + +:: + + inputs = httpclient.InferInput("input__0", transformed_img.shape, datatype="FP32") + inputs.set_data_from_numpy(transformed_img, binary_data=True) + + outputs = httpclient.InferRequestedOutput("output__0", binary_data=True, class_count=1000) + +Lastly, we send an inference request to the Triton Inference Server. + +:: + + # Querying the server + results = client.infer(model_name="resnet50", inputs=[inputs], outputs=[outputs]) + inference_output = results.as_numpy('output__0') + print(inference_output[:5]) + +The output of the same should look like below: + +:: + + [b'12.468750:90' b'11.523438:92' b'9.664062:14' b'8.429688:136' + b'8.234375:11'] + +The output format here is ``:``. +To learn how to map these to the label names and more, refer to Triton Inference Server's +`documentation `__. diff --git a/docs/v1.1.1/_sources/tutorials/torchtrtc.rst.txt b/docs/v1.1.1/_sources/tutorials/torchtrtc.rst.txt new file mode 100644 index 0000000000..b841c891e5 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/torchtrtc.rst.txt @@ -0,0 +1,128 @@ +.. _torchtrtc: + +torchtrtc +================================= + +``torchtrtc`` is a CLI application for using the Torch-TensorRT compiler. It serves as an easy way to compile a +TorchScript Module with Torch-TensorRT from the command-line to quickly check support or as part of +a deployment pipeline. All basic features of the compiler are supported including post training +quantization (though you must already have a calibration cache file to use the PTQ feature). The compiler can +output two formats, either a TorchScript program with the TensorRT engine embedded or +the TensorRT engine itself as a PLAN file. + +All that is required to run the program after compilation is for C++ linking against ``libtorchtrt.so`` +or in Python importing the torch_tensorrt package. All other aspects of using compiled modules are identical +to standard TorchScript. Load with ``torch.jit.load()`` and run like you would run any other module. + +.. code-block:: txt + + torchtrtc [input_file_path] [output_file_path] + [input_specs...] {OPTIONS} + + torchtrtc is a compiler for TorchScript, it will compile and optimize + TorchScript programs to run on NVIDIA GPUs using TensorRT + + OPTIONS: + + -h, --help Display this help menu + Verbiosity of the compiler + -v, --verbose Dumps debugging information about the + compilation process onto the console + -w, --warnings Disables warnings generated during + compilation onto the console (warnings + are on by default) + --i, --info Dumps info messages generated during + compilation onto the console + --build-debuggable-engine Creates a debuggable engine + --allow-gpu-fallback (Only used when targeting DLA + (device-type)) Lets engine run layers on + GPU if they are not supported on DLA + --require-full-compilation Require that the model should be fully + compiled to TensorRT or throw an error + --check-method-support=[method_name] + Check the support for end to end + compilation of a specified method in the + TorchScript module + --disable-tf32 Prevent Float32 layers from using the + TF32 data format + --sparse-weights Enable sparsity for weights of conv and + FC layers + -p[precision...], + --enable-precision=[precision...] (Repeatable) Enabling an operating + precision for kernels to use when + building the engine (Int8 requires a + calibration-cache argument) [ float | + float32 | f32 | fp32 | half | float16 | + f16 | fp16 | int8 | i8 | char ] + (default: float) + -d[type], --device-type=[type] The type of device the engine should be + built for [ gpu | dla ] (default: gpu) + --gpu-id=[gpu_id] GPU id if running on multi-GPU platform + (defaults to 0) + --dla-core=[dla_core] DLACore id if running on available DLA + (defaults to 0) + --engine-capability=[capability] The type of device the engine should be + built for [ standard | safety | + dla_standalone ] + --calibration-cache-file=[file_path] + Path to calibration cache file to use + for post training quantization + --teo=[op_name...], + --torch-executed-op=[op_name...] (Repeatable) Operator in the graph that + should always be run in PyTorch for + execution (partial compilation must be + enabled) + --tem=[module_name...], + --torch-executed-mod=[module_name...] + (Repeatable) Module that should always + be run in Pytorch for execution (partial + compilation must be enabled) + --mbs=[num_ops], + --min-block-size=[num_ops] Minimum number of contiguous TensorRT + supported ops to compile a subgraph to + TensorRT + --embed-engine Whether to treat input file as a + serialized TensorRT engine and embed it + into a TorchScript module (device spec + must be provided) + --num-min-timing-iter=[num_iters] Number of minimization timing iterations + used to select kernels + --num-avg-timing-iters=[num_iters] + Number of averaging timing iterations + used to select kernels + --workspace-size=[workspace_size] Maximum size of workspace given to + TensorRT + -t[threshold], + --threshold=[threshold] Maximum acceptable numerical deviation + from standard torchscript output + (default 2e-5) + --no-threshold-check Skip checking threshold compliance + --truncate-long-double, + --truncate, --truncate-64bit Truncate weights that are provided in + 64bit to 32bit (Long, Double to Int, + Float) + --save-engine Instead of compiling a full a + TorchScript program, save the created + engine to the path specified as the + output path + input_file_path Path to input TorchScript file + output_file_path Path for compiled TorchScript (or + TensorRT engine) file + input_specs... Specs for inputs to engine, can either + be a single size or a range defined by + Min, Optimal, Max sizes, e.g. + "(N,..,C,H,W)" + "[(MIN_N,..,MIN_C,MIN_H,MIN_W);(OPT_N,..,OPT_C,OPT_H,OPT_W);(MAX_N,..,MAX_C,MAX_H,MAX_W)]". + Data Type and format can be specified by + adding an "@" followed by dtype and "%" + followed by format to the end of the + shape spec. e.g. "(3, 3, 32, + 32)@f16%NHWC" + "--" can be used to terminate flag options and force all following + arguments to be treated as positional options + +e.g. + +.. code-block:: shell + + torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@f16%contiguous" -p f16 diff --git a/docs/v1.1.1/_sources/tutorials/use_from_pytorch.rst.txt b/docs/v1.1.1/_sources/tutorials/use_from_pytorch.rst.txt new file mode 100644 index 0000000000..0c616e9414 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/use_from_pytorch.rst.txt @@ -0,0 +1,64 @@ +.. _use_from_pytorch: + +Using Torch-TensorRT Directly From PyTorch +============================================ + +You will now be able to directly access TensorRT from PyTorch APIs. The process to use this feature +is very similar to the compilation workflow described in :ref:`getting_started_with_python_api` + +Start by loading ``torch_tensorrt`` into your application. + +.. code-block:: python + + import torch + import torch_tensorrt + + +Then given a TorchScript module, you can compile it with TensorRT using the ``torch._C._jit_to_backend("tensorrt", ...)`` API. + +.. code-block:: python + + import torchvision.models as models + + model = models.mobilenet_v2(pretrained=True) + script_model = torch.jit.script(model) + +Unlike the ``compile`` API in Torch-TensorRT which assumes you are trying to compile the ``forward`` function of a module +or the ``convert_method_to_trt_engine`` which converts a specified function to a TensorRT engine, the backend API +will take a dictionary which maps names of functions to compile to Compilation Spec objects which wrap the same +sort of dictionary you would provide to ``compile``. For more information on the compile spec dictionary take a look +at the documentation for the Torch-TensorRT ``TensorRTCompileSpec`` API. + +.. code-block:: python + + spec = { + "forward": + torch_tensorrt.ts.TensorRTCompileSpec({ + "inputs": [torch_tensorrt.Input([1, 3, 300, 300])], + "enabled_precisions": {torch.float, torch.half}, + "refit": False, + "debug": False, + "device": { + "device_type": torch_tensorrt.DeviceType.GPU, + "gpu_id": 0, + "dla_core": 0, + "allow_gpu_fallback": True + }, + "capability": torch_tensorrt.EngineCapability.default, + "num_min_timing_iters": 2, + "num_avg_timing_iters": 1, + }) + } + +Now to compile with Torch-TensorRT, provide the target module objects and the spec dictionary to ``torch._C._jit_to_backend("tensorrt", ...)`` + +.. code-block:: python + + trt_model = torch._C._jit_to_backend("tensorrt", script_model, spec) + +To run explicitly call the function of the method you want to run (vs. how you can just call on the module itself in standard PyTorch) + +.. code-block:: python + + input = torch.randn((1, 3, 300, 300)).to("cuda").to(torch.half) + print(trt_model.forward(input)) diff --git a/docs/v1.1.1/_sources/tutorials/using_dla.rst.txt b/docs/v1.1.1/_sources/tutorials/using_dla.rst.txt new file mode 100644 index 0000000000..ab40b942b3 --- /dev/null +++ b/docs/v1.1.1/_sources/tutorials/using_dla.rst.txt @@ -0,0 +1,50 @@ +.. _using_dla: + +DLA +================================= + +``DLA`` NVIDIA Deep Learning Accelerator is a fixed-function accelerator engine targeted for deep learning operations. DLA is designed to do full hardware acceleration of convolutional neural networks. DLA supports various layers such as convolution, deconvolution, fully-connected, activation, pooling, batch normalization, etc. ``torch_tensorrt`` supports compilation of TorchScript Module and deployment pipeline on the DLA hardware available on NVIDIA embedded platforms. + +NOTE: DLA supports fp16 and int8 precision only. + +Using DLA with torchtrtc + +.. code-block:: shell + + torchtrtc [input_file_path] [output_file_path] [input_shapes...] -p f16 -d dla {OPTIONS} + +Using DLA in a C++ application + +.. code-block:: c++ + + std::vector> input_shape = {{32, 3, 32, 32}}; + auto compile_spec = torch_tensorrt::CompileSpec({input_shape}); + + # Set a precision. DLA supports fp16 or int8 only + compile_spec.enabled_precisions = {torch::kF16}; + compile_spec.device.device_type = torch_tensorrt::CompileSpec::DeviceType::kDLA; + + # Make sure the gpu id is set to Xavier id for DLA + compile_spec.device.gpu_id = 0; + + # Set the DLA core id + compile_spec.device.dla_core = 1; + + # If a layer fails to run on DLA it will fallback to GPU + compile_spec.device.allow_gpu_fallback = true; + + # Set the workspace size + compile_spec.workspace_size = 1 << 28; + + +Using DLA in a python application + +.. code-block:: python + + compile_spec = { + "inputs": [torch_tensorrt.Input(self.input.shape)], + "device": torch_tensorrt.Device("dla:0", allow_gpu_fallback=True), + "enalbed_precisions": {torch.half} + } + + trt_mod = torch_tensorrt.compile(self.scripted_model, compile_spec) diff --git a/docs/v1.1.1/_static/basic.css b/docs/v1.1.1/_static/basic.css new file mode 100644 index 0000000000..7630a0c5ee --- /dev/null +++ b/docs/v1.1.1/_static/basic.css @@ -0,0 +1 @@ +@charset "utf-8"; div.clearer{clear:both}div.section::after{display:block;content:'';clear:left}div.related{width:100%;font-size:90%}div.related h3{display:none}div.related ul{margin:0;padding:0 0 0 10px;list-style:none}div.related li{display:inline}div.related li.right{float:right;margin-right:5px}div.sphinxsidebarwrapper{padding:10px 5px 0 10px}div.sphinxsidebar{float:left;width:230px;margin-left:-100%;font-size:90%;word-wrap:break-word;overflow-wrap:break-word}div.sphinxsidebar ul{list-style:none}div.sphinxsidebar ul ul,div.sphinxsidebar ul.want-points{margin-left:20px;list-style:square}div.sphinxsidebar ul ul{margin-top:0;margin-bottom:0}div.sphinxsidebar form{margin-top:10px}div.sphinxsidebar input{border:1px solid #98dbcc;font-family:sans-serif;font-size:1em}div.sphinxsidebar #searchbox form.search{overflow:hidden}div.sphinxsidebar #searchbox input[type=text]{float:left;width:80%;padding:.25em;box-sizing:border-box}div.sphinxsidebar #searchbox input[type=submit]{float:left;width:20%;border-left:none;padding:.25em;box-sizing:border-box}img{border:0;max-width:100%}ul.search{margin:10px 0 0 20px;padding:0}ul.search li{padding:5px 0 5px 20px;background-image:url(file.png);background-repeat:no-repeat;background-position:0 7px}ul.search li a{font-weight:bold}ul.search li div.context{color:#888;margin:2px 0 0 30px;text-align:left}ul.keywordmatches li.goodmatch a{font-weight:bold}table.contentstable{width:90%;margin-left:auto;margin-right:auto}table.contentstable p.biglink{line-height:150%}a.biglink{font-size:1.3em}span.linkdescr{font-style:italic;padding-top:5px;font-size:90%}table.indextable{width:100%}table.indextable td{text-align:left;vertical-align:top}table.indextable ul{margin-top:0;margin-bottom:0;list-style-type:none}table.indextable>tbody>tr>td>ul{padding-left:0}table.indextable tr.pcap{height:10px}table.indextable tr.cap{margin-top:10px;background-color:#f2f2f2}img.toggler{margin-right:3px;margin-top:3px;cursor:pointer}div.modindex-jumpbox{border-top:1px solid #ddd;border-bottom:1px solid #ddd;margin:1em 0 1em 0;padding:.4em}div.genindex-jumpbox{border-top:1px solid #ddd;border-bottom:1px solid #ddd;margin:1em 0 1em 0;padding:.4em}table.modindextable td{padding:2px;border-collapse:collapse}div.body{min-width:450px;max-width:800px}div.body p,div.body dd,div.body li,div.body blockquote{-moz-hyphens:auto;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}a.headerlink{visibility:hidden}a.brackets:before,span.brackets>a:before{content:"["}a.brackets:after,span.brackets>a:after{content:"]"}h1:hover>a.headerlink,h2:hover>a.headerlink,h3:hover>a.headerlink,h4:hover>a.headerlink,h5:hover>a.headerlink,h6:hover>a.headerlink,dt:hover>a.headerlink,caption:hover>a.headerlink,p.caption:hover>a.headerlink,div.code-block-caption:hover>a.headerlink{visibility:visible}div.body p.caption{text-align:inherit}div.body td{text-align:left}.first{margin-top:0 !important}p.rubric{margin-top:30px;font-weight:bold}img.align-left,.figure.align-left,object.align-left{clear:left;float:left;margin-right:1em}img.align-right,.figure.align-right,object.align-right{clear:right;float:right;margin-left:1em}img.align-center,.figure.align-center,object.align-center{display:block;margin-left:auto;margin-right:auto}img.align-default,.figure.align-default{display:block;margin-left:auto;margin-right:auto}.align-left{text-align:left}.align-center{text-align:center}.align-default{text-align:center}.align-right{text-align:right}div.sidebar{margin:0 0 .5em 1em;border:1px solid #ddb;padding:7px;background-color:#ffe;width:40%;float:right;clear:right;overflow-x:auto}p.sidebar-title{font-weight:bold}div.admonition,div.topic,blockquote{clear:left}div.topic{border:1px solid #ccc;padding:7px;margin:10px 0 10px 0}p.topic-title{font-size:1.1em;font-weight:bold;margin-top:10px}div.admonition{margin-top:10px;margin-bottom:10px;padding:7px}div.admonition dt{font-weight:bold}p.admonition-title{margin:0 10px 5px 0;font-weight:bold}div.body p.centered{text-align:center;margin-top:25px}div.sidebar>:last-child,div.topic>:last-child,div.admonition>:last-child{margin-bottom:0}div.sidebar::after,div.topic::after,div.admonition::after,blockquote::after{display:block;content:'';clear:both}table.docutils{margin-top:10px;margin-bottom:10px;border:0;border-collapse:collapse}table.align-center{margin-left:auto;margin-right:auto}table.align-default{margin-left:auto;margin-right:auto}table caption span.caption-number{font-style:italic}table caption span.caption-text{}table.docutils td,table.docutils th{padding:1px 8px 1px 5px;border-top:0;border-left:0;border-right:0;border-bottom:1px solid #aaa}table.footnote td,table.footnote th{border:0 !important}th{text-align:left;padding-right:5px}table.citation{border-left:solid 1px gray;margin-left:1px}table.citation td{border-bottom:none}th>:first-child,td>:first-child{margin-top:0}th>:last-child,td>:last-child{margin-bottom:0}div.figure{margin:.5em;padding:.5em}div.figure p.caption{padding:.3em}div.figure p.caption span.caption-number{font-style:italic}div.figure p.caption span.caption-text{}table.field-list td,table.field-list th{border:0 !important}.field-list ul{margin:0;padding-left:1em}.field-list p{margin:0}.field-name{-moz-hyphens:manual;-ms-hyphens:manual;-webkit-hyphens:manual;hyphens:manual}table.hlist{margin:1em 0}table.hlist td{vertical-align:top}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}:not(li)>ol>li:first-child>:first-child,:not(li)>ul>li:first-child>:first-child{margin-top:0}:not(li)>ol>li:last-child>:last-child,:not(li)>ul>li:last-child>:last-child{margin-bottom:0}ol.simple ol p,ol.simple ul p,ul.simple ol p,ul.simple ul p{margin-top:0}ol.simple>li:not(:first-child)>p,ul.simple>li:not(:first-child)>p{margin-top:0}ol.simple p,ul.simple p{margin-bottom:0}dl.footnote>dt,dl.citation>dt{float:left;margin-right:.5em}dl.footnote>dd,dl.citation>dd{margin-bottom:0}dl.footnote>dd:after,dl.citation>dd:after{content:"";clear:both}dl.field-list{display:grid;grid-template-columns:fit-content(30%) auto}dl.field-list>dt{font-weight:bold;word-break:break-word;padding-left:.5em;padding-right:5px}dl.field-list>dt:after{content:":"}dl.field-list>dd{padding-left:.5em;margin-top:0;margin-left:0;margin-bottom:0}dl{margin-bottom:15px}dd>:first-child{margin-top:0}dd ul,dd table{margin-bottom:10px}dd{margin-top:3px;margin-bottom:10px;margin-left:30px}dl>dd:last-child,dl>dd:last-child>:last-child{margin-bottom:0}dt:target,span.highlighted{background-color:#fbe54e}rect.highlighted{fill:#fbe54e}dl.glossary dt{font-weight:bold;font-size:1.1em}.optional{font-size:1.3em}.sig-paren{font-size:larger}.versionmodified{font-style:italic}.system-message{background-color:#fda;padding:5px;border:3px solid red}.footnote:target{background-color:#ffa}.line-block{display:block;margin-top:1em;margin-bottom:1em}.line-block .line-block{margin-top:0;margin-bottom:0;margin-left:1.5em}.guilabel,.menuselection{font-family:sans-serif}.accelerator{text-decoration:underline}.classifier{font-style:oblique}.classifier:before{font-style:normal;margin:.5em;content:":"}abbr,acronym{border-bottom:dotted 1px;cursor:help}pre{overflow:auto;overflow-y:hidden}pre,div[class|="highlight"]{clear:both}span.pre{-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;hyphens:none}div[class^="highlight-"]{margin:1em 0}td.linenos pre{border:0;background-color:transparent;color:#aaa}table.highlighttable{display:block}table.highlighttable tbody{display:block}table.highlighttable tr{display:flex}table.highlighttable td{margin:0;padding:0}table.highlighttable td.linenos{padding-right:.5em}table.highlighttable td.code{flex:1;overflow:hidden}.highlight .hll{display:block}div.highlight pre,table.highlighttable pre{margin:0}div.code-block-caption + div{margin-top:0}div.code-block-caption{margin-top:1em;padding:2px 5px;font-size:small}div.code-block-caption code{background-color:transparent}table.highlighttable td.linenos,div.doctest>div.highlight span.gp{user-select:none}div.code-block-caption span.caption-number{padding:.1em .3em;font-style:italic}div.code-block-caption span.caption-text{}div.literal-block-wrapper{margin:1em 0}code.descname{background-color:transparent;font-weight:bold;font-size:1.2em}code.descclassname{background-color:transparent}code.xref,a code{background-color:transparent;font-weight:bold}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{background-color:transparent}.viewcode-link{float:right}.viewcode-back{float:right;font-family:sans-serif}div.viewcode-block:target{margin:-1px -10px;padding:0 10px}img.math{vertical-align:middle}div.body div.math p{text-align:center}span.eqno{float:right}span.eqno a.headerlink{position:absolute;z-index:1}div.math:hover a.headerlink{visibility:visible}@media print{div.document,div.documentwrapper,div.bodywrapper{margin:0 !important;width:100%}div.sphinxsidebar,div.related,div.footer,#top-link{display:none}} \ No newline at end of file diff --git a/docs/v1.1.1/_static/collapsible-lists/LICENSE.md b/docs/v1.1.1/_static/collapsible-lists/LICENSE.md new file mode 100644 index 0000000000..ef81a64535 --- /dev/null +++ b/docs/v1.1.1/_static/collapsible-lists/LICENSE.md @@ -0,0 +1,7 @@ +This code is the fruit of Kate Morley's labor, taken from here: + +- http://code.iamkate.com/javascript/collapsible-lists/ + +She includes a generous CC0 1.0 license for all materials on her site: + +- http://code.iamkate.com/ diff --git a/docs/v1.1.1/_static/collapsible-lists/css/button-closed.png b/docs/v1.1.1/_static/collapsible-lists/css/button-closed.png new file mode 100644 index 0000000000000000000000000000000000000000..417eb2fc40d844946cb18f0966073d9549b2682d GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X7J0fjhE&{YnRu4-h=M??`^DysoChD5DQRk`<~UBuW2qKc zziXdDcc-59hY!zd`yQXz^Ic!5%6zAqU-6V>n_mhrtlhfXuuURaI5PXG;W68mg4800 z-G-bOYuRTgKjzR_n)kX+IsWPo<0ApmnQQkS+m?HMM)ACd7Y{5Hj7qC3N#qpYl5P_0 zWxnG)w_L?GyGa5~OQuZTz%MUjB%e`n`M&%g4g-eh-O1-=TXk}Qu4V9a^>bP0l+XkK Dnpk0b literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/collapsible-lists/css/button-open.png b/docs/v1.1.1/_static/collapsible-lists/css/button-open.png new file mode 100644 index 0000000000000000000000000000000000000000..ac4a6ef32a50516609a06733d3365c78237e2143 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XCV9FzhE&{|GBJ>gS&_#j`GUT_;*XoNPsnBTUtm6Y&+UWI zzhh}p_Fm4rZ#T9-;BoF*cdbf!(e5A-HSIvY)bAY6=4_uLWcl2u=-kP@-`8&amZQa? zcbGwU|ALtpHI%;ip7~?-g8%3Cn;OS5n38#<|C#vBUf-h_aen=WPb~a4CH+tKE*EHG o{QhC0^XI-+?dA4A1QHnTT=Tf{X8(i9K-V#Ny85}Sb4q9e0Cgu}D*ylh literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/collapsible-lists/css/button.png b/docs/v1.1.1/_static/collapsible-lists/css/button.png new file mode 100644 index 0000000000000000000000000000000000000000..631d734d136a3c0e7698e249b09ac06462589ca8 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XIy_w*Ln>}_1wcZrxMOpdTT1SY*0BaajE)#RCaoBVu2L* zl`q`0TYJ;m{DmgIKFEJ*``x_5|FhF>RLskN_)_w^#h<=_&?6G!7R%4e%r2L^v-9u4 c=?u&a+cKO!dpZ{#2fB&D)78&qol`;+0OL4aGynhq literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/collapsible-lists/css/list-item-contents.png b/docs/v1.1.1/_static/collapsible-lists/css/list-item-contents.png new file mode 100644 index 0000000000000000000000000000000000000000..bc082929dccbabcf58e5e7d88abe49bcb21c191e GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCFS978H@y*ay)lYxPQ`QU?pk5l&F=w6!exiSCJoJkpJ l*0<{;UuGVFgYVglYz$osB0q2a^8jQegQu&X%Q~loCIAKZH$VUY literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/collapsible-lists/css/list-item-last-open.png b/docs/v1.1.1/_static/collapsible-lists/css/list-item-last-open.png new file mode 100644 index 0000000000000000000000000000000000000000..cf4cf9bdb9027b5b50ce2e259e5c8248d08e4e28 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jikv-N978H@CH?vT-=5j(#;#Irj|meS+Zs9(8xE{Ex>&3~ z$|mdMh0QZq`|td3+%RL}F}Z*Cvv#=Y%5AN<@@QeYp+f^BL(Mr3|LlYN!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jikv)M978H@CH?vT-=5j(#;#Irj|meS+Zs9(8xE{Ex>&3~ z$|mdMh0QZq`|s38MV;wbJ4vGVabUN*uH4p&D@i#F3I`ZWpL2P7J1TSnO=IwM^>bP0 Hl+XkKgRnR! literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/collapsible-lists/css/list-item-open.png b/docs/v1.1.1/_static/collapsible-lists/css/list-item-open.png new file mode 100644 index 0000000000000000000000000000000000000000..0889c801a9a86ea0fdbbd8cb07e3f47885bfa33e GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jikv)M978H@CH?vT-=5j(#;#Irj|meS+Zs9(8xE{Ex>&3~ z$|mdMh0QZq`|td3+%#j_)Fb~d9x=`O2$JKs?Pg@+VW>I9;UCzqxBzGxgQu&X%Q~lo FCIHwyIzIpa literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/collapsible-lists/css/list-item-root.png b/docs/v1.1.1/_static/collapsible-lists/css/list-item-root.png new file mode 100644 index 0000000000000000000000000000000000000000..874417106af03875a02c3e19b1d57186419be94b GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii|y7978H@y}7{1%fP^Kctdl&_4V=;hZAWFPHJ_UW$Ci= p@bLU$*(Mvt36 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/collapsible-lists/css/list-item.png b/docs/v1.1.1/_static/collapsible-lists/css/list-item.png new file mode 100644 index 0000000000000000000000000000000000000000..81934f9b82d482150215e2dbfd21b7a94802c1c7 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JitIgI978H@CH?vT-=5j(#;#Irj|meS+Zs9(8xE{Ex>&3~ z$|mdMh0QZq`|td3+*Gk;lEl`ED~|%Z-F4j<85r3Zj#;q>9G$xQ9MC8RPgg&ebxsLQ E0O;yB$N&HU literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/collapsible-lists/css/tree_view.css b/docs/v1.1.1/_static/collapsible-lists/css/tree_view.css new file mode 100644 index 0000000000..03fb9d19e4 --- /dev/null +++ b/docs/v1.1.1/_static/collapsible-lists/css/tree_view.css @@ -0,0 +1 @@ +@charset "utf-8"; .treeView{-moz-user-select:none;position:relative}.treeView ul{margin:0 0 0 -1.5em !important;padding:0 0 0 1.5em !important}.treeView ul ul{background:url(list-item-contents.png) repeat-y left !important}.treeView li.lastChild>ul{background-image:none !important}.treeView li{margin:0 !important;padding:0 !important;background:url(list-item-root.png) no-repeat top left !important;list-style-position:inside !important;list-style-image:url(button.png) !important;cursor:auto}.treeView li.collapsibleListOpen{list-style-image:url(button-open.png) !important;cursor:pointer}.treeView li.collapsibleListClosed{list-style-image:url(button-closed.png) !important;cursor:pointer}.treeView li li{background-image:url(list-item.png) !important;padding-left:1.5em !important}.treeView li.lastChild{background-image:url(list-item-last.png) !important}.treeView li.collapsibleListOpen{background-image:url(list-item-open.png) !important}.treeView li.collapsibleListOpen.lastChild{background-image:url(list-item-last-open.png) !important} \ No newline at end of file diff --git a/docs/v1.1.1/_static/collapsible-lists/js/CollapsibleLists.compressed.js b/docs/v1.1.1/_static/collapsible-lists/js/CollapsibleLists.compressed.js new file mode 100644 index 0000000000..429406cf39 --- /dev/null +++ b/docs/v1.1.1/_static/collapsible-lists/js/CollapsibleLists.compressed.js @@ -0,0 +1,83 @@ +/* + +CollapsibleLists.js + +An object allowing lists to dynamically expand and collapse + +Created by Kate Morley - http://code.iamkate.com/ - and released under +the terms of the CC0 1.0 Universal legal code: + +http://creativecommons.org/publicdomain/zero/1.0/legalcode + +*/ + +var CollapsibleLists=new function(){ +this.apply=function(_1){ +var _2=document.getElementsByTagName("ul"); +for(var _3=0;_3<_2.length;_3++){ +if(_2[_3].className.match(/(^| )collapsibleList( |$)/)){ +this.applyTo(_2[_3],true); +if(!_1){ +var _4=_2[_3].getElementsByTagName("ul"); +for(var _5=0;_5<_4.length;_5++){ +_4[_5].className+=" collapsibleList"; +} +} +} +} +}; +this.applyTo=function(_6,_7){ +var _8=_6.getElementsByTagName("li"); +for(var _9=0;_9<_8.length;_9++){ +if(!_7||_6==_8[_9].parentNode){ +if(_8[_9].addEventListener){ +_8[_9].addEventListener("mousedown",function(e){ +e.preventDefault(); +},false); +}else{ +_8[_9].attachEvent("onselectstart",function(){ +event.returnValue=false; +}); +} +if(_8[_9].addEventListener){ +_8[_9].addEventListener("click",_a(_8[_9]),false); +}else{ +_8[_9].attachEvent("onclick",_a(_8[_9])); +} +_b(_8[_9]); +} +} +}; +function _a(_c){ +return function(e){ +if(!e){ +e=window.event; +} +var _d=(e.target?e.target:e.srcElement); +while(_d.nodeName!="LI"){ +_d=_d.parentNode; +} +if(_d==_c){ +_b(_c); +} +}; +}; +function _b(_e){ +var _f=_e.className.match(/(^| )collapsibleListClosed( |$)/); +var uls=_e.getElementsByTagName("ul"); +for(var _10=0;_100){ +_e.className+=" collapsibleList"+(_f?"Open":"Closed"); +} +}; +}(); + diff --git a/docs/v1.1.1/_static/collapsible-lists/js/apply-collapsible-lists.js b/docs/v1.1.1/_static/collapsible-lists/js/apply-collapsible-lists.js new file mode 100644 index 0000000000..e848bb9811 --- /dev/null +++ b/docs/v1.1.1/_static/collapsible-lists/js/apply-collapsible-lists.js @@ -0,0 +1,3 @@ +$(document).ready(function() { + CollapsibleLists.apply(); +}); diff --git a/docs/v1.1.1/_static/css/theme.css b/docs/v1.1.1/_static/css/theme.css new file mode 100644 index 0000000000..4756448c98 --- /dev/null +++ b/docs/v1.1.1/_static/css/theme.css @@ -0,0 +1 @@ +@charset "UTF-8";/*!* Bootstrap v4.0.0(https://getbootstrap.com) * Copyright 2011-2018 The Bootstrap Authors * Copyright 2011-2018 Twitter,Inc. * Licensed under MIT(https://github.com/twbs/bootstrap/blob/master/LICENSE) */ :root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=-1]:focus{outline:0 !important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody + tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered th,.table-bordered td{border:1px solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,0.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>th,.table-success>td{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>th,.table-info>td{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>th,.table-warning>td{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>th,.table-dark>td{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark th,.table-dark td,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,0.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(0,123,255,0.25);box-shadow:0 0 0 .2rem rgba(0,123,255,0.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.form-control-plaintext.form-control-lg,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.btn{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}select.form-control-sm:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control-lg:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled ~ .form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,0.8);border-radius:.2rem}.was-validated .form-control:valid,.form-control.is-valid,.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#28a745}.was-validated .form-control:valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,0.25);box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated .form-control:valid ~ .valid-feedback,.was-validated .form-control:valid ~ .valid-tooltip,.form-control.is-valid ~ .valid-feedback,.form-control.is-valid ~ .valid-tooltip,.was-validated .custom-select:valid ~ .valid-feedback,.was-validated .custom-select:valid ~ .valid-tooltip,.custom-select.is-valid ~ .valid-feedback,.custom-select.is-valid ~ .valid-tooltip{display:block}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#28a745}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#28a745}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{background-color:#71dd8a}.was-validated .custom-control-input:valid ~ .valid-feedback,.was-validated .custom-control-input:valid ~ .valid-tooltip,.custom-control-input.is-valid ~ .valid-feedback,.custom-control-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{background-color:#34ce57}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,0.25);box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#28a745}.was-validated .custom-file-input:valid ~ .custom-file-label::before,.custom-file-input.is-valid ~ .custom-file-label::before{border-color:inherit}.was-validated .custom-file-input:valid ~ .valid-feedback,.was-validated .custom-file-input:valid ~ .valid-tooltip,.custom-file-input.is-valid ~ .valid-feedback,.custom-file-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,0.25);box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,0.8);border-radius:.2rem}.was-validated .form-control:invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dc3545}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dc3545;-webkit-box-shadow:0 0 0 .2rem rgba(220,53,69,0.25);box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated .form-control:invalid ~ .invalid-feedback,.was-validated .form-control:invalid ~ .invalid-tooltip,.form-control.is-invalid ~ .invalid-feedback,.form-control.is-invalid ~ .invalid-tooltip,.was-validated .custom-select:invalid ~ .invalid-feedback,.was-validated .custom-select:invalid ~ .invalid-tooltip,.custom-select.is-invalid ~ .invalid-feedback,.custom-select.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#dc3545}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#dc3545}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{background-color:#efa2a9}.was-validated .custom-control-input:invalid ~ .invalid-feedback,.was-validated .custom-control-input:invalid ~ .invalid-tooltip,.custom-control-input.is-invalid ~ .invalid-feedback,.custom-control-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{background-color:#e4606d}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,0.25);box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#dc3545}.was-validated .custom-file-input:invalid ~ .custom-file-label::before,.custom-file-input.is-invalid ~ .custom-file-label::before{border-color:inherit}.was-validated .custom-file-input:invalid ~ .invalid-feedback,.was-validated .custom-file-input:invalid ~ .invalid-tooltip,.custom-file-input.is-invalid ~ .invalid-feedback,.custom-file-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{-webkit-box-shadow:0 0 0 .2rem rgba(220,53,69,0.25);box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.btn:hover,.btn:focus{text-decoration:none}.btn:focus,.btn.focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(0,123,255,0.25);box-shadow:0 0 0 .2rem rgba(0,123,255,0.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled):active,.btn:not(:disabled):not(.disabled).active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary:focus,.btn-primary.focus{-webkit-box-shadow:0 0 0 .2rem rgba(0,123,255,0.5);box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(0,123,255,0.5);box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary:focus,.btn-secondary.focus{-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,0.5);box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,0.5);box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success:focus,.btn-success.focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,0.5);box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,0.5);box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info:focus,.btn-info.focus{-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,0.5);box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,0.5);box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning:focus,.btn-warning.focus{-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,0.5);box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,0.5);box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger:focus,.btn-danger.focus{-webkit-box-shadow:0 0 0 .2rem rgba(220,53,69,0.5);box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(220,53,69,0.5);box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light:focus,.btn-light.focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,0.5);box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,0.5);box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,0.5);box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,0.5);box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:focus,.btn-outline-primary.focus{-webkit-box-shadow:0 0 0 .2rem rgba(0,123,255,0.5);box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(0,123,255,0.5);box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:focus,.btn-outline-secondary.focus{-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,0.5);box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,0.5);box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:focus,.btn-outline-success.focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,0.5);box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,0.5);box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:focus,.btn-outline-info.focus{-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,0.5);box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,0.5);box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:focus,.btn-outline-warning.focus{-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,0.5);box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,0.5);box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:focus,.btn-outline-danger.focus{-webkit-box-shadow:0 0 0 .2rem rgba(220,53,69,0.5);box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(220,53,69,0.5);box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus,.btn-outline-light.focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,0.5);box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,0.5);box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:focus,.btn-outline-dark.focus{-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,0.5);box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,0.5);box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link:focus,.btn-link.focus{text-decoration:underline;border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block + .btn-block{margin-top:.5rem}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.show{opacity:1}.collapse{display:none}.collapse.show{display:block}tr.collapse.show{display:table-row}tbody.collapse.show{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}.dropup,.dropdown{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropup .dropdown-menu{margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-group .btn + .btn,.btn-group .btn + .btn-group,.btn-group .btn-group + .btn,.btn-group .btn-group + .btn-group,.btn-group-vertical .btn + .btn,.btn-group-vertical .btn + .btn-group,.btn-group-vertical .btn-group + .btn,.btn-group-vertical .btn-group + .btn-group{margin-left:-1px}.btn-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after{margin-left:0}.btn-sm + .dropdown-toggle-split,.btn-group-sm>.btn + .dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg + .dropdown-toggle-split,.btn-group-lg>.btn + .dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn + .btn,.btn-group-vertical>.btn + .btn-group,.btn-group-vertical>.btn-group + .btn,.btn-group-vertical>.btn-group + .btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.custom-select,.input-group>.custom-file{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file:focus{z-index:3}.input-group>.form-control + .form-control,.input-group>.form-control + .custom-select,.input-group>.form-control + .custom-file,.input-group>.custom-select + .form-control,.input-group>.custom-select + .custom-select,.input-group>.custom-select + .custom-file,.input-group>.custom-file + .form-control,.input-group>.custom-file + .custom-select,.input-group>.custom-file + .custom-file{margin-left:-1px}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::before{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::before{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-prepend,.input-group-append{display:-webkit-box;display:-ms-flexbox;display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn + .btn,.input-group-prepend .btn + .input-group-text,.input-group-prepend .input-group-text + .input-group-text,.input-group-prepend .input-group-text + .btn,.input-group-append .btn + .btn,.input-group-append .btn + .input-group-text,.input-group-append .input-group-text + .input-group-text,.input-group-append .input-group-text + .btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=radio],.input-group-text input[type=checkbox]{margin-top:0}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus ~ .custom-control-label::before{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,0.25);box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,0.25)}.custom-control-input:active ~ .custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled ~ .custom-control-label{color:#6c757d}.custom-control-input:disabled ~ .custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background-image:url(data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E)}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after{background-image:url(data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E)}.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(0,123,255,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(0,123,255,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked ~ .custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked ~ .custom-control-label::after{background-image:url(data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E)}.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(0,123,255,0.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E) no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.075),0 0 5px rgba(128,189,255,0.5);box-shadow:inset 0 1px 2px rgba(0,0,0,0.075),0 0 5px rgba(128,189,255,0.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=1]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus ~ .custom-file-control{border-color:#80bdff;-webkit-box-shadow:0 0 0 .2rem rgba(0,123,255,0.25);box-shadow:0 0 0 .2rem rgba(0,123,255,0.25)}.custom-file-input:focus ~ .custom-file-control::before{border-color:#80bdff}.custom-file-input:lang(en) ~ .custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.25rem + 2px) - 1px * 2);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.nav{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .dropup .dropdown-menu{top:auto;bottom:100%}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .dropup .dropdown-menu{top:auto;bottom:100%}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0,0,0,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,0.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-0.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link + .card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125)}.card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.card-header + .list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125)}.card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.card-header-tabs{margin-right:-0.625rem;margin-bottom:-0.75rem;margin-left:-0.625rem;border-bottom:0}.card-header-pills{margin-right:-0.625rem;margin-left:-0.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(0.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card-deck{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0;flex:1 0 0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0;flex:1 0 0;margin-bottom:0}.card-group>.card + .card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-img-top,.card-group>.card:first-child .card-header{border-top-right-radius:0}.card-group>.card:first-child .card-img-bottom,.card-group>.card:first-child .card-footer{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-img-top,.card-group>.card:last-child .card-header{border-top-left-radius:0}.card-group>.card:last-child .card-img-bottom,.card-group>.card:last-child .card-footer{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-img-top,.card-group>.card:only-child .card-header{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-img-bottom,.card-group>.card:only-child .card-footer{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%}}.breadcrumb{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item + .breadcrumb-item::before{display:inline-block;padding-right:.5rem;padding-left:.5rem;color:#6c757d;content:"/"}.breadcrumb-item + .breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item + .breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(0,123,255,0.25);box-shadow:0 0 0 .2rem rgba(0,123,255,0.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:hover,.badge-primary[href]:focus{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:hover,.badge-secondary[href]:focus{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:hover,.badge-success[href]:focus{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:hover,.badge-info[href]:focus{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:hover,.badge-warning[href]:focus{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:hover,.badge-danger[href]:focus{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:hover,.badge-light[href]:focus{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:hover,.badge-dark[href]:focus{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-webkit-box;display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.list-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:hover,.list-group-item:focus{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover,.close:focus{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% -(0.5rem * 2))}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% -(1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:.5rem}.bs-popover-top .arrow,.bs-popover-auto[x-placement^="top"] .arrow{bottom:calc((0.5rem + 1px) * -1)}.bs-popover-top .arrow::before,.bs-popover-auto[x-placement^="top"] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-auto[x-placement^="top"] .arrow::after{border-width:.5rem .5rem 0}.bs-popover-top .arrow::before,.bs-popover-auto[x-placement^="top"] .arrow::before{bottom:0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top .arrow::after,.bs-popover-auto[x-placement^="top"] .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:.5rem}.bs-popover-right .arrow,.bs-popover-auto[x-placement^="right"] .arrow{left:calc((0.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right .arrow::before,.bs-popover-auto[x-placement^="right"] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-auto[x-placement^="right"] .arrow::after{border-width:.5rem .5rem .5rem 0}.bs-popover-right .arrow::before,.bs-popover-auto[x-placement^="right"] .arrow::before{left:0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right .arrow::after,.bs-popover-auto[x-placement^="right"] .arrow::after{left:1px;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^="bottom"]{margin-top:.5rem}.bs-popover-bottom .arrow,.bs-popover-auto[x-placement^="bottom"] .arrow{top:calc((0.5rem + 1px) * -1)}.bs-popover-bottom .arrow::before,.bs-popover-auto[x-placement^="bottom"] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-width:0 .5rem .5rem .5rem}.bs-popover-bottom .arrow::before,.bs-popover-auto[x-placement^="bottom"] .arrow::before{top:0;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom .arrow::after,.bs-popover-auto[x-placement^="bottom"] .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^="left"]{margin-right:.5rem}.bs-popover-left .arrow,.bs-popover-auto[x-placement^="left"] .arrow{right:calc((0.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left .arrow::before,.bs-popover-auto[x-placement^="left"] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-auto[x-placement^="left"] .arrow::after{border-width:.5rem 0 .5rem .5rem}.bs-popover-left .arrow::before,.bs-popover-auto[x-placement^="left"] .arrow::before{right:0;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left .arrow::after,.bs-popover-auto[x-placement^="left"] .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;-webkit-transition:-webkit-transform .6s ease;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports(transform-style:preserve-3d){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-item-next,.active.carousel-item-right{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports(transform-style:preserve-3d){.carousel-item-next,.active.carousel-item-right{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.carousel-item-prev,.active.carousel-item-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports(transform-style:preserve-3d){.carousel-item-prev,.active.carousel-item-left{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url(data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E)}.carousel-control-next-icon{background-image:url(data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E)}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,0.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#007bff !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#0062cc !important}.bg-secondary{background-color:#6c757d !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#545b62 !important}.bg-success{background-color:#28a745 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#1e7e34 !important}.bg-info{background-color:#17a2b8 !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#117a8b !important}.bg-warning{background-color:#ffc107 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#d39e00 !important}.bg-danger{background-color:#dc3545 !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#bd2130 !important}.bg-light{background-color:#f8f9fa !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5 !important}.bg-dark{background-color:#343a40 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124 !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #dee2e6 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-right{border-right:1px solid #dee2e6 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-left{border-left:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#007bff !important}.border-secondary{border-color:#6c757d !important}.border-success{border-color:#28a745 !important}.border-info{border-color:#17a2b8 !important}.border-warning{border-color:#ffc107 !important}.border-danger{border-color:#dc3545 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#343a40 !important}.border-white{border-color:#fff !important}.rounded{border-radius:.25rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-right{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-left{border-top-left-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-circle{border-radius:50% !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}@media (min-width:576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-sm-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}@media (min-width:768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-md-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}@media (min-width:992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-lg-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}@media (min-width:1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-xl-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-print-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.8571428571%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-sm-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-sm-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-sm-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-sm-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-sm-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.justify-content-sm-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-sm-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-sm-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-sm-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-sm-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-sm-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-sm-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-sm-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-sm-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-sm-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-sm-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-sm-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-sm-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-sm-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-sm-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-sm-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-sm-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-sm-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-sm-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-sm-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-sm-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-sm-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-md-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-md-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-md-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-md-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-md-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.justify-content-md-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-md-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-md-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-md-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-md-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-md-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-md-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-md-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-md-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-md-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-md-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-md-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-md-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-md-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-md-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-md-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-md-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-md-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-md-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-md-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-md-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-md-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-lg-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-lg-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-lg-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-lg-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-lg-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.justify-content-lg-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-lg-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-lg-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-lg-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-lg-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-lg-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-lg-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-lg-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-lg-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-lg-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-lg-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-lg-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-lg-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-lg-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-lg-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-lg-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-lg-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-lg-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-lg-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-lg-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-lg-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-lg-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-xl-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-xl-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-xl-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-xl-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-xl-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.justify-content-xl-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-xl-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-xl-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-xl-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-xl-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-xl-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-xl-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-xl-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-xl-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-xl-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-xl-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-xl-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-xl-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-xl-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-xl-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-xl-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-xl-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-xl-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-xl-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-xl-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-xl-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-xl-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width:576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width:768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width:992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width:1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports(position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;-webkit-clip-path:none;clip-path:none}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width:576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width:768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width:992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width:1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.text-justify{text-align:justify !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width:576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width:768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width:992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width:1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#007bff !important}a.text-primary:hover,a.text-primary:focus{color:#0062cc !important}.text-secondary{color:#6c757d !important}a.text-secondary:hover,a.text-secondary:focus{color:#545b62 !important}.text-success{color:#28a745 !important}a.text-success:hover,a.text-success:focus{color:#1e7e34 !important}.text-info{color:#17a2b8 !important}a.text-info:hover,a.text-info:focus{color:#117a8b !important}.text-warning{color:#ffc107 !important}a.text-warning:hover,a.text-warning:focus{color:#d39e00 !important}.text-danger{color:#dc3545 !important}a.text-danger:hover,a.text-danger:focus{color:#bd2130 !important}.text-light{color:#f8f9fa !important}a.text-light:hover,a.text-light:focus{color:#dae0e5 !important}.text-dark{color:#343a40 !important}a.text-dark:hover,a.text-dark:focus{color:#1d2124 !important}.text-muted{color:#6c757d !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;-webkit-box-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:"(" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:bold}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:bold;font-style:italic}.highlight .c,.highlight .cd{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .gd{color:#000;background-color:#fdd}.highlight .ge{color:#000;font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{color:#000;font-weight:bold}.highlight .kd{color:#000;font-weight:bold}.highlight .kn{color:#000;font-weight:bold}.highlight .kp{color:#000;font-weight:bold}.highlight .kr{color:#000;font-weight:bold}.highlight .kt{color:#458;font-weight:bold}.highlight .k,.highlight .kv{color:#000;font-weight:bold}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .il{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .m,.highlight .mb,.highlight .mx{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .s{color:#d14}.highlight .na{color:#008080}.highlight .bp{color:#525252}.highlight .nb{color:#0086B3}.highlight .nc{color:#458;font-weight:bold}.highlight .no{color:#008080}.highlight .nd{color:#3c5d5d;font-weight:bold}.highlight .ni{color:#800080}.highlight .ne{color:#900;font-weight:bold}.highlight .nf{color:#900;font-weight:bold}.highlight .nl{color:#900;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:#000080}.highlight .vc{color:#008080}.highlight .vg{color:#008080}.highlight .vi{color:#008080}.highlight .nv{color:#008080}.highlight .ow{color:#000;font-weight:bold}.highlight .o{color:#000;font-weight:bold}.highlight .n{color:#000;font-weight:bold}.highlight .p{color:#000;font-weight:bold}.highlight .w{color:#bbb}.highlight{background-color:#f8f8f8}@font-face{font-family:FreightSans;font-weight:700;font-style:normal;src:url(../fonts/FreightSans/freight-sans-bold.woff2) format("woff2"),url(../fonts/FreightSans/freight-sans-bold.woff) format("woff")}@font-face{font-family:FreightSans;font-weight:700;font-style:italic;src:url(../fonts/FreightSans/freight-sans-bold-italic.woff2) format("woff2"),url(../fonts/FreightSans/freight-sans-bold-italic.woff) format("woff")}@font-face{font-family:FreightSans;font-weight:500;font-style:normal;src:url(../fonts/FreightSans/freight-sans-medium.woff2) format("woff2"),url(../fonts/FreightSans/freight-sans-medium.woff) format("woff")}@font-face{font-family:FreightSans;font-weight:500;font-style:italic;src:url(../fonts/FreightSans/freight-sans-medium-italic.woff2) format("woff2"),url(../fonts/FreightSans/freight-sans-medium-italic.woff) format("woff")}@font-face{font-family:FreightSans;font-weight:100;font-style:normal;src:url(../fonts/FreightSans/freight-sans-light.woff2) format("woff2"),url(../fonts/FreightSans/freight-sans-light.woff) format("woff")}@font-face{font-family:FreightSans;font-weight:100;font-style:italic;src:url(../fonts/FreightSans/freight-sans-light-italic.woff2) format("woff2"),url(../fonts/FreightSans/freight-sans-light-italic.woff) format("woff")}@font-face{font-family:FreightSans;font-weight:400;font-style:italic;src:url(../fonts/FreightSans/freight-sans-book-italic.woff2) format("woff2"),url(../fonts/FreightSans/freight-sans-book-italic.woff) format("woff")}@font-face{font-family:FreightSans;font-weight:400;font-style:normal;src:url(../fonts/FreightSans/freight-sans-book.woff2) format("woff2"),url(../fonts/FreightSans/freight-sans-book.woff) format("woff")}@font-face{font-family:IBMPlexMono;font-weight:600;font-style:normal;unicode-range:u+0020-007f;src:local("IBMPlexMono-SemiBold"),url(../fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff2) format("woff2"),url(../fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff) format("woff")}@font-face{font-family:IBMPlexMono;font-weight:500;font-style:normal;unicode-range:u+0020-007f;src:local("IBMPlexMono-Medium"),url(../fonts/IBMPlexMono/IBMPlexMono-Medium.woff2) format("woff2"),url(../fonts/IBMPlexMono/IBMPlexMono-Medium.woff) format("woff")}@font-face{font-family:IBMPlexMono;font-weight:400;font-style:normal;unicode-range:u+0020-007f;src:local("IBMPlexMono-Regular"),url(../fonts/IBMPlexMono/IBMPlexMono-Regular.woff2) format("woff2"),url(../fonts/IBMPlexMono/IBMPlexMono-Regular.woff) format("woff")}@font-face{font-family:IBMPlexMono;font-weight:300;font-style:normal;unicode-range:u+0020-007f;src:local("IBMPlexMono-Light"),url(../fonts/IBMPlexMono/IBMPlexMono-Light.woff2) format("woff2"),url(../fonts/IBMPlexMono/IBMPlexMono-Light.woff) format("woff")}html{position:relative;min-height:100%;font-size:12px}@media screen and (min-width:768px){html{font-size:16px}}*{-webkit-box-sizing:border-box;box-sizing:border-box}body{font-family:FreightSans,Helvetica Neue,Helvetica,Arial,sans-serif}a:link,a:visited,a:hover{text-decoration:none;color:#e44c2c}a.with-right-arrow,.btn.with-right-arrow{padding-right:1.375rem;position:relative;background-image:url(../images/chevron-right-orange.svg);background-size:6px 13px;background-position:center right 5px;background-repeat:no-repeat}@media screen and (min-width:768px){a.with-right-arrow,.btn.with-right-arrow{background-size:8px 14px;background-position:center right 12px;padding-right:2rem}}::-webkit-input-placeholder{color:#e44c2c}::-moz-placeholder{color:#e44c2c}:-ms-input-placeholder{color:#e44c2c}:-moz-placeholder{color:#e44c2c}.email-subscribe-form input.email{color:#e44c2c;border:0;border-bottom:1px solid #939393;width:100%;background-color:transparent;outline:none;font-size:1.125rem;letter-spacing:.25px;line-height:2.25rem}.email-subscribe-form input[type=submit]{position:absolute;right:0;top:10px;height:15px;width:15px;background-image:url(../images/arrow-right-with-tail.svg);background-color:transparent;background-repeat:no-repeat;background-size:15px 15px;background-position:center center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0}.email-subscribe-form-fields-wrapper{position:relative}.anchorjs-link{color:#6c6c6d !important}@media screen and (min-width:768px){.anchorjs-link:hover{color:inherit;text-decoration:none !important}}.pytorch-article #table-of-contents{display:none}code,kbd,pre,samp{font-family:IBMPlexMono,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code span,kbd span,pre span,samp span{font-family:IBMPlexMono,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}pre{padding:1.125rem}pre code{font-size:.875rem}pre.highlight{background-color:#f3f4f7;line-height:1.3125rem}code.highlighter-rouge{color:#6c6c6d;background-color:#f3f4f7;padding:2px 6px}a:link code.highlighter-rouge,a:visited code.highlighter-rouge,a:hover code.highlighter-rouge{color:#4974D1}a:link.has-code,a:visited.has-code,a:hover.has-code{color:#4974D1}p code,h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{font-size:78.5%}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.header-holder{height:68px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;left:0;margin-left:auto;margin-right:auto;position:fixed;right:0;top:0;width:100%;z-index:9999;background-color:#fff;border-bottom:1px solid #e2e2e2}@media screen and (min-width:1100px){.header-holder{height:90px}}.header-container{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header-container:before,.header-container:after{content:"";display:table}.header-container:after{clear:both}.header-container{*zoom:1}@media screen and (min-width:1100px){.header-container{display:block}}.header-logo{height:23px;width:93px;background-image:url(../images/logo.svg);background-repeat:no-repeat;background-size:93px 23px;display:block;float:left;z-index:10}@media screen and (min-width:1100px){.header-logo{background-size:108px 27px;position:absolute;height:27px;width:108px;top:4px;float:none}}.main-menu-open-button{background-image:url(../images/icon-menu-dots.svg);background-position:center center;background-size:25px 7px;background-repeat:no-repeat;width:25px;height:17px;position:absolute;right:0;top:4px}@media screen and (min-width:1100px){.main-menu-open-button{display:none}}.header-holder .main-menu{display:none}@media screen and (min-width:1100px){.header-holder .main-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}}.header-holder .main-menu ul{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0}.header-holder .main-menu ul li{display:inline-block;margin-right:40px;position:relative}.header-holder .main-menu ul li.active:after{content:"•";bottom:-24px;color:#e44c2c;font-size:1.375rem;left:0;position:absolute;right:0;text-align:center}.header-holder .main-menu ul li.active a{color:#e44c2c}.header-holder .main-menu ul li.docs-active:after{content:"•";bottom:-24px;color:#e44c2c;font-size:1.375rem;left:-24px;position:absolute;right:0;text-align:center}.header-holder .main-menu ul li:last-of-type{margin-right:0}.header-holder .main-menu ul li a{color:#fff;font-size:1.3rem;letter-spacing:0;line-height:2.125rem;text-align:center;text-decoration:none}@media screen and (min-width:1100px){.header-holder .main-menu ul li a:hover{color:#e44c2c}}.mobile-main-menu{display:none}.mobile-main-menu.open{background-color:#262626;display:block;height:100%;left:0;margin-left:auto;margin-right:auto;min-height:100%;position:fixed;right:0;top:0;width:100%;z-index:99999}.mobile-main-menu .container-fluid{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:68px;position:relative}.mobile-main-menu .container-fluid:before,.mobile-main-menu .container-fluid:after{content:"";display:table}.mobile-main-menu .container-fluid:after{clear:both}.mobile-main-menu .container-fluid{*zoom:1}.mobile-main-menu.open ul{list-style-type:none;padding:0}.mobile-main-menu.open ul li a,.mobile-main-menu.open .resources-mobile-menu-title{font-size:2rem;color:#fff;letter-spacing:0;line-height:4rem;text-decoration:none}.mobile-main-menu.open ul li.active a{color:#e44c2c}.main-menu-close-button{background-image:url(../images/icon-close.svg);background-position:center center;background-repeat:no-repeat;background-size:24px 24px;height:24px;position:absolute;right:0;width:24px;top:-4px}.mobile-main-menu-header-container{position:relative}.mobile-main-menu-links-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:2.8125rem;height:90vh;margin-top:-25px;padding-top:50%;overflow-y:scroll}.mobile-main-menu-links-container .main-menu{height:100vh}.mobile-main-menu-links-container ul.resources-mobile-menu-items li{padding-left:15px}.site-footer{padding:2.5rem 0;width:100%;background:#000;background-size:100%;margin-left:0;margin-right:0;position:relative;z-index:201}@media screen and (min-width:768px){.site-footer{padding:5rem 0}}.site-footer p{color:#fff}.site-footer ul{list-style-type:none;padding-left:0;margin-bottom:0}.site-footer ul li{font-size:1.125rem;line-height:2rem;color:#A0A0A1;padding-bottom:.375rem}.site-footer ul li.list-title{padding-bottom:.75rem;color:#fff}.site-footer a:link,.site-footer a:visited{color:inherit}@media screen and (min-width:768px){.site-footer a:hover{color:#e44c2c}}.docs-tutorials-resources{background-color:#262626;color:#fff;padding-top:2.5rem;padding-bottom:2.5rem;position:relative;z-index:201}@media screen and (min-width:768px){.docs-tutorials-resources{padding-top:5rem;padding-bottom:5rem}}.docs-tutorials-resources p{color:#929292;font-size:1.125rem}.docs-tutorials-resources h2{font-size:1.5rem;letter-spacing:-0.25px;text-transform:none;margin-bottom:.25rem}@media screen and (min-width:768px){.docs-tutorials-resources h2{margin-bottom:1.25rem}}.docs-tutorials-resources .col-md-4{margin-bottom:2rem;text-align:center}@media screen and (min-width:768px){.docs-tutorials-resources .col-md-4{margin-bottom:0}}.docs-tutorials-resources .with-right-arrow{margin-left:12px}.docs-tutorials-resources .with-right-arrow:hover{background-image:url(../images/chevron-right-white.svg)}.docs-tutorials-resources p{font-size:1rem;line-height:1.5rem;letter-spacing:.22px;color:#939393;margin-bottom:0}@media screen and (min-width:768px){.docs-tutorials-resources p{margin-bottom:1.25rem}}.docs-tutorials-resources a{font-size:1.125rem;color:#e44c2c}.docs-tutorials-resources a:hover{color:#fff}.footer-container{position:relative}@media screen and (min-width:768px){.footer-logo-wrapper{position:absolute;top:0;left:30px}}.footer-logo{background-image:url(../images/logo-icon.svg);background-position:center;background-repeat:no-repeat;background-size:20px 24px;display:block;height:24px;margin-bottom:2.8125rem;width:20px}@media screen and (min-width:768px){.footer-logo{background-size:29px 36px;height:36px;margin-bottom:0;margin-bottom:0;width:29px}}.footer-links-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}@media screen and (min-width:768px){.footer-links-wrapper{-ms-flex-wrap:initial;flex-wrap:initial;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}}.footer-links-col{margin-bottom:3.75rem;width:50%}@media screen and (min-width:768px){.footer-links-col{margin-bottom:0;width:14%;margin-right:23px}.footer-links-col.follow-us-col{width:18%;margin-right:0}}@media (min-width:768px) and (max-width:1239px){.footer-links-col{width:18%;margin-right:30px}}.footer-social-icons{margin:8.5625rem 0 2.5rem 0}.footer-social-icons a{height:32px;width:32px;display:inline-block;background-color:#CCCDD1;border-radius:50%;margin-right:5px}.footer-social-icons a.facebook{background-image:url(../images/logo-facebook-dark.svg);background-position:center center;background-size:9px 18px;background-repeat:no-repeat}.footer-social-icons a.twitter{background-image:url(../images/logo-twitter-dark.svg);background-position:center center;background-size:17px 17px;background-repeat:no-repeat}.footer-social-icons a.youtube{background-image:url(../images/logo-youtube-dark.svg);background-position:center center;background-repeat:no-repeat}.site-footer .mc-field-group{margin-top:-2px}article.pytorch-article{max-width:920px;margin:0 auto}article.pytorch-article h2,article.pytorch-article h3,article.pytorch-article h4,article.pytorch-article h5,article.pytorch-article h6{margin:1.375rem 0;color:#262626}article.pytorch-article h2{font-size:1.625rem;letter-spacing:1.33px;line-height:2rem;text-transform:none}article.pytorch-article h3{font-size:1.5rem;letter-spacing:-0.25px;line-height:1.875rem;text-transform:none}article.pytorch-article h4,article.pytorch-article h5,article.pytorch-article h6{font-size:1.125rem;letter-spacing:-0.19px;line-height:1.875rem}article.pytorch-article p{margin-bottom:1.125rem}article.pytorch-article p,article.pytorch-article ul li,article.pytorch-article ol li,article.pytorch-article dl dt,article.pytorch-article dl dd,article.pytorch-article blockquote{font-size:1rem;line-height:1.375rem;color:#262626;letter-spacing:.01px;font-weight:500}article.pytorch-article table{margin-bottom:2.5rem;width:100%}article.pytorch-article table thead{border-bottom:1px solid #cacaca}article.pytorch-article table th{padding:.625rem;color:#262626}article.pytorch-article table td{padding:.3125rem}article.pytorch-article table tr th:first-of-type,article.pytorch-article table tr td:first-of-type{padding-left:0}article.pytorch-article table.docutils.field-list th.field-name{padding:.3125rem;padding-left:0}article.pytorch-article table.docutils.field-list td.field-body{padding:.3125rem}article.pytorch-article table.docutils.field-list td.field-body p:last-of-type{margin-bottom:0}article.pytorch-article ul,article.pytorch-article ol{margin:1.5rem 0 3.125rem 0}@media screen and (min-width:768px){article.pytorch-article ul,article.pytorch-article ol{padding-left:6.25rem}}article.pytorch-article ul li,article.pytorch-article ol li{margin-bottom:.625rem}article.pytorch-article dl{margin-bottom:1.5rem}article.pytorch-article dl dt{margin-bottom:.75rem}article.pytorch-article pre{margin-bottom:2.5rem}article.pytorch-article hr{margin-top:4.6875rem;margin-bottom:4.6875rem}article.pytorch-article blockquote{margin:0 auto;margin-bottom:2.5rem;width:65%}article.pytorch-article img{width:100%}html{height:100%}@media screen and (min-width:768px){html{font-size:16px}}body{background:#fff;height:100%;margin:0}body.no-scroll{height:100%;overflow:hidden}p{margin-top:0;margin-bottom:1.125rem}p a:link,p a:visited,p a:hover{color:#e44c2c;text-decoration:none}@media screen and (min-width:768px){p a:hover{text-decoration:underline}}p a:link,p a:visited,p a:hover{color:#ee4c2c}.wy-breadcrumbs li a{color:#ee4c2c}ul.pytorch-breadcrumbs{padding-left:0;list-style-type:none}ul.pytorch-breadcrumbs li{display:inline-block;font-size:.875rem}ul.pytorch-breadcrumbs a{color:#ee4c2c;text-decoration:none}.table-of-contents-link-wrapper{display:block;margin-top:0;padding:1.25rem 1.875rem;background-color:#f3f4f7;position:relative;color:#262626;font-size:1.25rem}.table-of-contents-link-wrapper.is-open .toggle-table-of-contents{-webkit-transform:rotate(180deg);transform:rotate(180deg)}@media screen and (min-width:1100px){.table-of-contents-link-wrapper{display:none}}.toggle-table-of-contents{background-image:url(../images/chevron-down-grey.svg);background-position:center center;background-repeat:no-repeat;background-size:18px 18px;height:100%;position:absolute;right:21px;width:30px;top:0}.tutorials-header .header-logo{background-image:url(../images/logo-dark.svg)}.tutorials-header .main-menu ul li a{color:#262626}.tutorials-header .main-menu-open-button{background-image:url(../images/icon-menu-dots-dark.svg)}.rst-content footer .rating-hr.hr-top{margin-bottom:-0.0625rem}.rst-content footer .rating-hr.hr-bottom{margin-top:-0.0625rem}.rst-content footer .rating-container{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:1.125rem}.rst-content footer .rating-container .rating-prompt,.rst-content footer .rating-container .was-helpful-thank-you{padding:.625rem 1.25rem .625rem 1.25rem}.rst-content footer .rating-container .was-helpful-thank-you{display:none}.rst-content footer .rating-container .rating-prompt.yes-link,.rst-content footer .rating-container .rating-prompt.no-link{color:#e44c2c;cursor:pointer}.rst-content footer .rating-container .rating-prompt.yes-link:hover,.rst-content footer .rating-container .rating-prompt.no-link:hover{background-color:#e44c2c;color:#fff}.rst-content footer .rating-container .stars-outer{display:inline-block;position:relative;font-family:FontAwesome;padding:.625rem 1.25rem .625rem 1.25rem}.rst-content footer .rating-container .stars-outer i{cursor:pointer}.rst-content footer .rating-container .stars-outer .star-fill{color:#ee4c2c}.rst-content footer div[role=contentinfo]{padding-top:2.5rem}.rst-content footer div[role=contentinfo] p{margin-bottom:0}h1{font-size:2rem;letter-spacing:1.78px;line-height:2.5rem;text-transform:uppercase;margin:1.375rem 0}span.pre{color:#6c6c6d;background-color:#f3f4f7;padding:2px 0}pre{padding:1.375rem}.highlight .c1{color:#6c6c6d}.headerlink{display:none !important}a:link.has-code,a:hover.has-code,a:visited.has-code{color:#4974D1}a:link.has-code span,a:hover.has-code span,a:visited.has-code span{color:#4974D1}article.pytorch-article ul,article.pytorch-article ol{padding-left:1.875rem;margin:0}article.pytorch-article ul li,article.pytorch-article ol li{margin:0;line-height:1.75rem}article.pytorch-article ul p,article.pytorch-article ol p{line-height:1.75rem;margin-bottom:0}article.pytorch-article ul ul,article.pytorch-article ul ol,article.pytorch-article ol ul,article.pytorch-article ol ol{margin:0}article.pytorch-article h1,article.pytorch-article h2,article.pytorch-article h3,article.pytorch-article h4,article.pytorch-article h5,article.pytorch-article h6{font-weight:normal}article.pytorch-article h1 a,article.pytorch-article h2 a,article.pytorch-article h3 a,article.pytorch-article h4 a,article.pytorch-article h5 a,article.pytorch-article h6 a{color:#262626}article.pytorch-article p.caption{margin-top:1.25rem}article.pytorch-article .section:first-of-type h1:first-of-type{margin-top:0}article.pytorch-article .sphx-glr-thumbcontainer{margin:0;border:1px solid #d6d7d8;border-radius:0;width:45%;text-align:center;margin-bottom:5%}@media screen and (max-width:1100px){article.pytorch-article .sphx-glr-thumbcontainer:nth-child(odd){margin-left:0;margin-right:2.5%}article.pytorch-article .sphx-glr-thumbcontainer:nth-child(even){margin-right:0;margin-left:2.5%}article.pytorch-article .sphx-glr-thumbcontainer .figure{width:40%}}@media screen and (min-width:1101px){article.pytorch-article .sphx-glr-thumbcontainer{margin-right:3%;margin-bottom:3%;width:30%}}article.pytorch-article .sphx-glr-thumbcontainer .caption-text a{font-size:1rem;color:#262626;letter-spacing:0;line-height:1.5rem;text-decoration:none}article.pytorch-article .sphx-glr-thumbcontainer:hover{-webkit-box-shadow:none;box-shadow:none;border-bottom-color:#fff}article.pytorch-article .sphx-glr-thumbcontainer:hover .figure:before{bottom:100%}article.pytorch-article .sphx-glr-thumbcontainer .figure{width:80%}article.pytorch-article .sphx-glr-thumbcontainer .figure:before{content:"";display:block;position:absolute;top:0;bottom:35%;left:0;right:0;background:#8A94B3;opacity:.10}article.pytorch-article .sphx-glr-thumbcontainer .figure a.reference.internal{text-align:left}@media screen and (min-width:768px){article.pytorch-article .sphx-glr-thumbcontainer:after{content:"";display:block;width:0;height:1px;position:absolute;bottom:0;left:0;background-color:#e44c2c;-webkit-transition:width .250s ease-in-out;transition:width .250s ease-in-out}article.pytorch-article .sphx-glr-thumbcontainer:hover:after{width:100%}}@media screen and (min-width:768px){article.pytorch-article .sphx-glr-thumbcontainer:after{background-color:#ee4c2c}}article.pytorch-article .section :not(dt)>code{color:#262626;border-top:solid 2px #fff;background-color:#fff;border-bottom:solid 2px #fff;padding:0 3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}article.pytorch-article .section :not(dt)>code .pre{outline:0;padding:0}article.pytorch-article .function dt,article.pytorch-article .attribute dt,article.pytorch-article .class .attribute dt,article.pytorch-article .class dt{position:relative;background:#f3f4f7;padding:.5rem;border-left:3px solid #ee4c2c;word-wrap:break-word;padding-right:100px}article.pytorch-article .function dt em.property,article.pytorch-article .attribute dt em.property,article.pytorch-article .class dt em.property{font-family:inherit}article.pytorch-article .function dt em,article.pytorch-article .attribute dt em,article.pytorch-article .class .attribute dt em,article.pytorch-article .class dt em,article.pytorch-article .function dt .sig-paren,article.pytorch-article .attribute dt .sig-paren,article.pytorch-article .class dt .sig-paren{font-family:IBMPlexMono,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:87.5%}article.pytorch-article .function dt a,article.pytorch-article .attribute dt a,article.pytorch-article .class .attribute dt a,article.pytorch-article .class dt a{right:30px;padding-right:0;top:50%;-webkit-transform:perspective(1px) translateY(-50%);transform:perspective(1px) translateY(-50%)}article.pytorch-article .function dt:hover .viewcode-link,article.pytorch-article .attribute dt:hover .viewcode-link,article.pytorch-article .class dt:hover .viewcode-link{color:#ee4c2c}article.pytorch-article .function .anchorjs-link,article.pytorch-article .attribute .anchorjs-link,article.pytorch-article .class .anchorjs-link{display:inline;position:absolute;right:8px;font-size:1.5625rem !important;padding-left:0}article.pytorch-article .function dt>code,article.pytorch-article .attribute dt>code,article.pytorch-article .class .attribute dt>code,article.pytorch-article .class dt>code{color:#262626;border-top:solid 2px #f3f4f7;background-color:#f3f4f7;border-bottom:solid 2px #f3f4f7;-webkit-box-decoration-break:clone;box-decoration-break:clone}article.pytorch-article .function .viewcode-link,article.pytorch-article .attribute .viewcode-link,article.pytorch-article .class .viewcode-link{padding-left:.6rem;position:absolute;font-size:.875rem;color:#979797;letter-spacing:0;line-height:1.5rem;text-transform:uppercase}article.pytorch-article .function dd,article.pytorch-article .attribute dd,article.pytorch-article .class .attribute dd,article.pytorch-article .class dd{padding-left:3.75rem}article.pytorch-article .function dd p,article.pytorch-article .attribute dd p,article.pytorch-article .class .attribute dd p,article.pytorch-article .class dd p{color:#262626}article.pytorch-article .function table tbody tr th.field-name,article.pytorch-article .attribute table tbody tr th.field-name,article.pytorch-article .class table tbody tr th.field-name{white-space:nowrap;color:#262626;width:20%}@media screen and (min-width:768px){article.pytorch-article .function table tbody tr th.field-name,article.pytorch-article .attribute table tbody tr th.field-name,article.pytorch-article .class table tbody tr th.field-name{width:15%}}article.pytorch-article .function table tbody tr td.field-body,article.pytorch-article .attribute table tbody tr td.field-body,article.pytorch-article .class table tbody tr td.field-body{padding:.625rem;width:80%;color:#262626}@media screen and (min-width:768px){article.pytorch-article .function table tbody tr td.field-body,article.pytorch-article .attribute table tbody tr td.field-body,article.pytorch-article .class table tbody tr td.field-body{width:85%}}@media screen and (min-width:1600px){article.pytorch-article .function table tbody tr td.field-body,article.pytorch-article .attribute table tbody tr td.field-body,article.pytorch-article .class table tbody tr td.field-body{padding-left:1.25rem}}article.pytorch-article .function table tbody tr td.field-body p,article.pytorch-article .attribute table tbody tr td.field-body p,article.pytorch-article .class table tbody tr td.field-body p{padding-left:0}article.pytorch-article .function table tbody tr td.field-body p:last-of-type,article.pytorch-article .attribute table tbody tr td.field-body p:last-of-type,article.pytorch-article .class table tbody tr td.field-body p:last-of-type{margin-bottom:0}article.pytorch-article .function table tbody tr td.field-body ol,article.pytorch-article .attribute table tbody tr td.field-body ol,article.pytorch-article .class table tbody tr td.field-body ol,article.pytorch-article .function table tbody tr td.field-body ul,article.pytorch-article .attribute table tbody tr td.field-body ul,article.pytorch-article .class table tbody tr td.field-body ul{padding-left:1rem;padding-bottom:0}article.pytorch-article .function table.docutils.field-list,article.pytorch-article .attribute table.docutils.field-list,article.pytorch-article .class table.docutils.field-list{margin-bottom:.75rem}article.pytorch-article .attribute .has-code{float:none}article.pytorch-article .class dt{border-left:none;border-top:3px solid #ee4c2c;padding-left:4em}article.pytorch-article .class dt em.property{position:absolute;left:.5rem}article.pytorch-article .class dd .docutils dt{padding-left:.5rem}article.pytorch-article .class em.property{text-transform:uppercase;font-style:normal;color:#ee4c2c;font-size:1rem;letter-spacing:0;padding-right:.75rem}article.pytorch-article .class dl dt em.property{position:static;left:0;padding-right:0}article.pytorch-article .class .method dt,article.pytorch-article .class .staticmethod dt{border-left:3px solid #ee4c2c;border-top:none}article.pytorch-article .class .method dt,article.pytorch-article .class .staticmethod dt{padding-left:.5rem}article.pytorch-article .class .attribute dt{border-top:none}article.pytorch-article .class .attribute dt em.property{position:relative;left:0}article.pytorch-article table{table-layout:fixed}div.deprecated p{display:inline}div.deprecated,div.versionchanged{margin-top:.5rem;padding:.5rem;margin-bottom:.5rem;border:none}div.versionadded{margin:1rem 0}div.deprecated p:last-child,div.versionchanged p:last-child,div.versionadded p:last-child{margin-bottom:0}div.deprecated{color:#b94a48;background-color:#fdede9}div.versionchanged{background-color:#fffbe8}article.pytorch-article .note,article.pytorch-article .warning,article.pytorch-article .tip,article.pytorch-article .seealso,article.pytorch-article .hint,article.pytorch-article .important,article.pytorch-article .caution,article.pytorch-article .danger,article.pytorch-article .attention,article.pytorch-article .error{background:#f3f4f7;margin-top:1.875rem;margin-bottom:1.125rem}article.pytorch-article .note .admonition-title,article.pytorch-article .warning .admonition-title,article.pytorch-article .tip .admonition-title,article.pytorch-article .seealso .admonition-title,article.pytorch-article .hint .admonition-title,article.pytorch-article .important .admonition-title,article.pytorch-article .caution .admonition-title,article.pytorch-article .danger .admonition-title,article.pytorch-article .attention .admonition-title,article.pytorch-article .error .admonition-title{color:#fff;letter-spacing:1px;text-transform:uppercase;margin-bottom:1.125rem;padding:3px 0 3px 1.375rem;position:relative;font-size:.875rem}article.pytorch-article .note .admonition-title:before,article.pytorch-article .warning .admonition-title:before,article.pytorch-article .tip .admonition-title:before,article.pytorch-article .seealso .admonition-title:before,article.pytorch-article .hint .admonition-title:before,article.pytorch-article .important .admonition-title:before,article.pytorch-article .caution .admonition-title:before,article.pytorch-article .danger .admonition-title:before,article.pytorch-article .attention .admonition-title:before,article.pytorch-article .error .admonition-title:before{content:"\2022";position:absolute;left:9px;color:#fff;top:2px}article.pytorch-article .note p:nth-child(n + 2),article.pytorch-article .warning p:nth-child(n + 2),article.pytorch-article .tip p:nth-child(n + 2),article.pytorch-article .seealso p:nth-child(n + 2),article.pytorch-article .hint p:nth-child(n + 2),article.pytorch-article .important p:nth-child(n + 2),article.pytorch-article .caution p:nth-child(n + 2),article.pytorch-article .danger p:nth-child(n + 2),article.pytorch-article .attention p:nth-child(n + 2),article.pytorch-article .error p:nth-child(n + 2){padding:0 1.375rem}article.pytorch-article .note table,article.pytorch-article .warning table,article.pytorch-article .tip table,article.pytorch-article .seealso table,article.pytorch-article .hint table,article.pytorch-article .important table,article.pytorch-article .caution table,article.pytorch-article .danger table,article.pytorch-article .attention table,article.pytorch-article .error table{margin:0 2rem;width:auto}article.pytorch-article .note :not(dt)>code,article.pytorch-article .warning :not(dt)>code,article.pytorch-article .tip :not(dt)>code,article.pytorch-article .seealso :not(dt)>code,article.pytorch-article .hint :not(dt)>code,article.pytorch-article .important :not(dt)>code,article.pytorch-article .caution :not(dt)>code,article.pytorch-article .danger :not(dt)>code,article.pytorch-article .attention :not(dt)>code,article.pytorch-article .error :not(dt)>code{border-top:solid 2px #fff;background-color:#fff;border-bottom:solid 2px #fff;padding:0 3px;-webkit-box-decoration-break:clone;box-decoration-break:clone;outline:1px solid #e9e9e9}article.pytorch-article .note :not(dt)>code .pre,article.pytorch-article .warning :not(dt)>code .pre,article.pytorch-article .tip :not(dt)>code .pre,article.pytorch-article .seealso :not(dt)>code .pre,article.pytorch-article .hint :not(dt)>code .pre,article.pytorch-article .important :not(dt)>code .pre,article.pytorch-article .caution :not(dt)>code .pre,article.pytorch-article .danger :not(dt)>code .pre,article.pytorch-article .attention :not(dt)>code .pre,article.pytorch-article .error :not(dt)>code .pre{outline:0;padding:0}article.pytorch-article .note pre,article.pytorch-article .warning pre,article.pytorch-article .tip pre,article.pytorch-article .seealso pre,article.pytorch-article .hint pre,article.pytorch-article .important pre,article.pytorch-article .caution pre,article.pytorch-article .danger pre,article.pytorch-article .attention pre,article.pytorch-article .error pre{margin-bottom:0}article.pytorch-article .note .highlight,article.pytorch-article .warning .highlight,article.pytorch-article .tip .highlight,article.pytorch-article .seealso .highlight,article.pytorch-article .hint .highlight,article.pytorch-article .important .highlight,article.pytorch-article .caution .highlight,article.pytorch-article .danger .highlight,article.pytorch-article .attention .highlight,article.pytorch-article .error .highlight{margin:0 2rem 1.125rem 2rem}article.pytorch-article .note ul,article.pytorch-article .note ol,article.pytorch-article .warning ul,article.pytorch-article .warning ol,article.pytorch-article .tip ul,article.pytorch-article .tip ol,article.pytorch-article .seealso ul,article.pytorch-article .seealso ol,article.pytorch-article .hint ul,article.pytorch-article .hint ol,article.pytorch-article .important ul,article.pytorch-article .important ol,article.pytorch-article .caution ul,article.pytorch-article .caution ol,article.pytorch-article .danger ul,article.pytorch-article .danger ol,article.pytorch-article .attention ul,article.pytorch-article .attention ol,article.pytorch-article .error ul,article.pytorch-article .error ol{padding-left:3.25rem}article.pytorch-article .note ul li,article.pytorch-article .note ol li,article.pytorch-article .warning ul li,article.pytorch-article .warning ol li,article.pytorch-article .tip ul li,article.pytorch-article .tip ol li,article.pytorch-article .seealso ul li,article.pytorch-article .seealso ol li,article.pytorch-article .hint ul li,article.pytorch-article .hint ol li,article.pytorch-article .important ul li,article.pytorch-article .important ol li,article.pytorch-article .caution ul li,article.pytorch-article .caution ol li,article.pytorch-article .danger ul li,article.pytorch-article .danger ol li,article.pytorch-article .attention ul li,article.pytorch-article .attention ol li,article.pytorch-article .error ul li,article.pytorch-article .error ol li{color:#262626}article.pytorch-article .note p,article.pytorch-article .warning p,article.pytorch-article .tip p,article.pytorch-article .seealso p,article.pytorch-article .hint p,article.pytorch-article .important p,article.pytorch-article .caution p,article.pytorch-article .danger p,article.pytorch-article .attention p,article.pytorch-article .error p{margin-top:1.125rem}article.pytorch-article .note .admonition-title{background:#54c7ec}article.pytorch-article .warning .admonition-title{background:#e94f3b}article.pytorch-article .tip .admonition-title{background:#6bcebb}article.pytorch-article .seealso .admonition-title{background:#6bcebb}article.pytorch-article .hint .admonition-title{background:#a2cdde}article.pytorch-article .important .admonition-title{background:#5890ff}article.pytorch-article .caution .admonition-title{background:#f7923a}article.pytorch-article .danger .admonition-title{background:#db2c49}article.pytorch-article .attention .admonition-title{background:#f5a623}article.pytorch-article .error .admonition-title{background:#cc2f90}article.pytorch-article .sphx-glr-download-link-note.admonition.note,article.pytorch-article .reference.download.internal,article.pytorch-article .sphx-glr-signature{display:none}article.pytorch-article .admonition>p:last-of-type{margin-bottom:0;padding-bottom:1.125rem !important}.pytorch-article div.sphx-glr-download a{background-color:#f3f4f7;background-image:url(../images/arrow-down-orange.svg);background-repeat:no-repeat;background-position:left 10px center;background-size:15px 15px;border-radius:0;border:0;display:block;text-align:left;padding:.9375rem 3.125rem;position:relative;margin:1.25rem auto}@media screen and (min-width:768px){.pytorch-article div.sphx-glr-download a:after{content:"";display:block;width:0;height:1px;position:absolute;bottom:0;left:0;background-color:#e44c2c;-webkit-transition:width .250s ease-in-out;transition:width .250s ease-in-out}.pytorch-article div.sphx-glr-download a:hover:after{width:100%}}@media screen and (min-width:768px){.pytorch-article div.sphx-glr-download a:after{background-color:#ee4c2c}}@media screen and (min-width:768px){.pytorch-article div.sphx-glr-download a{background-position:left 20px center}}.pytorch-article div.sphx-glr-download a:hover{-webkit-box-shadow:none;box-shadow:none;text-decoration:none;background-image:url(../images/arrow-down-orange.svg);background-color:#f3f4f7}.pytorch-article div.sphx-glr-download a span.pre{background-color:transparent;font-size:1.125rem;padding:0;color:#262626}.pytorch-article div.sphx-glr-download a code,.pytorch-article div.sphx-glr-download a kbd,.pytorch-article div.sphx-glr-download a pre,.pytorch-article div.sphx-glr-download a samp,.pytorch-article div.sphx-glr-download a span.pre{font-family:FreightSans,Helvetica Neue,Helvetica,Arial,sans-serif}.pytorch-article p.sphx-glr-script-out{margin-bottom:1.125rem}.pytorch-article div.sphx-glr-script-out{margin-bottom:2.5rem}.pytorch-article div.sphx-glr-script-out .highlight{margin-left:0;margin-top:0}.pytorch-article div.sphx-glr-script-out .highlight pre{background-color:#fdede9;padding:1.5625rem;color:#837b79}.pytorch-article div.sphx-glr-script-out + p{margin-top:unset}article.pytorch-article .wy-table-responsive table{border:0;border-color:#fff !important;table-layout:fixed}article.pytorch-article .wy-table-responsive table thead tr{border-bottom:2px solid #6c6c6d}article.pytorch-article .wy-table-responsive table thead th{line-height:1.75rem;padding-left:.9375rem;padding-right:.9375rem}article.pytorch-article .wy-table-responsive table tbody .row-odd{background-color:#f3f4f7}article.pytorch-article .wy-table-responsive table tbody td{color:#6c6c6d;white-space:normal;padding:.9375rem;font-size:1rem;line-height:1.375rem}article.pytorch-article .wy-table-responsive table tbody td .pre{background:#fff;color:#ee4c2c;font-size:87.5%}article.pytorch-article .wy-table-responsive table tbody td code{font-size:87.5%}a[rel~="prev"],a[rel~="next"]{padding:.375rem 0 0 0}img.next-page,img.previous-page{width:8px;height:10px;position:relative;top:-1px}img.previous-page{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rst-footer-buttons{margin-top:1.875rem;margin-bottom:1.875rem}.rst-footer-buttons .btn:focus,.rst-footer-buttons .btn.focus{-webkit-box-shadow:none;box-shadow:none}article.pytorch-article blockquote{margin-left:3.75rem;color:#6c6c6d}article.pytorch-article .caption{color:#6c6c6d;letter-spacing:.25px;line-height:2.125rem}article.pytorch-article .math{color:#262626;width:auto;text-align:center}article.pytorch-article .math img{width:auto}.pytorch-breadcrumbs-wrapper{width:100%}@media screen and (min-width:1101px){.pytorch-breadcrumbs-wrapper{float:left;margin-left:3%;width:75%}}@media screen and (min-width:1600px){.pytorch-breadcrumbs-wrapper{width:850px;margin-left:1.875rem}}.pytorch-breadcrumbs-wrapper .pytorch-breadcrumbs-aside{float:right}.pytorch-breadcrumbs-wrapper .pytorch-breadcrumbs-aside .fa.fa-github{margin-top:5px;display:block}.pytorch-article .container{padding-left:0;padding-right:0;max-width:none}a:link,a:visited,a:hover{color:#ee4c2c}::-webkit-input-placeholder{color:#ee4c2c}::-moz-placeholder{color:#ee4c2c}:-ms-input-placeholder{color:#ee4c2c}:-moz-placeholder{color:#ee4c2c}@media screen and (min-width:768px){.site-footer a:hover{color:#ee4c2c}}.docs-tutorials-resources a{color:#ee4c2c}.header-holder{position:relative;z-index:201}.header-holder .main-menu ul li.active:after{color:#ee4c2c}.header-holder .main-menu ul li.active a{color:#ee4c2c}@media screen and (min-width:1100px){.header-holder .main-menu ul li a:hover{color:#ee4c2c}}.mobile-main-menu.open ul li.active a{color:#ee4c2c}.version{padding-bottom:1rem}.pytorch-call-to-action-links{padding-top:0;display:-webkit-box;display:-ms-flexbox;display:flex}@media screen and (min-width:768px){.pytorch-call-to-action-links{padding-top:2.5rem}}@media (min-width:768px) and (max-width:1239px){.pytorch-call-to-action-links{padding-top:0}}@media (min-width:1100px) and (max-width:1239px){.pytorch-call-to-action-links{padding-top:2.5rem}}.pytorch-call-to-action-links #tutorial-type{display:none}.pytorch-call-to-action-links .call-to-action-img,.pytorch-call-to-action-links .call-to-action-notebook-img{height:1.375rem;width:1.375rem;margin-right:10px}.pytorch-call-to-action-links .call-to-action-notebook-img{height:1rem}.pytorch-call-to-action-links a{padding-right:1.25rem;color:#000;cursor:pointer}.pytorch-call-to-action-links a:hover{color:#e44c2c}.pytorch-call-to-action-links a .call-to-action-desktop-view{display:none}@media screen and (min-width:768px){.pytorch-call-to-action-links a .call-to-action-desktop-view{display:block}}.pytorch-call-to-action-links a .call-to-action-mobile-view{display:block}@media screen and (min-width:768px){.pytorch-call-to-action-links a .call-to-action-mobile-view{display:none}}.pytorch-call-to-action-links a #google-colab-link,.pytorch-call-to-action-links a #download-notebook-link,.pytorch-call-to-action-links a #github-view-link{padding-bottom:.625rem;border-bottom:1px solid #f3f4f7;padding-right:2.5rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.pytorch-call-to-action-links a #google-colab-link:hover,.pytorch-call-to-action-links a #download-notebook-link:hover,.pytorch-call-to-action-links a #github-view-link:hover{border-bottom-color:#e44c2c;color:#e44c2c}#tutorial-cards-container #tutorial-cards{width:100%}#tutorial-cards-container .tutorials-nav{padding-left:0;padding-right:0;padding-bottom:0}#tutorial-cards-container .tutorials-hr{margin-top:1rem;margin-bottom:1rem}#tutorial-cards-container .card.tutorials-card{border-radius:0;border-color:#f3f4f7;height:98px;margin-bottom:1.25rem;margin-bottom:1.875rem;overflow:scroll;background-color:#f3f4f7;cursor:pointer}@media screen and (min-width:1240px){#tutorial-cards-container .card.tutorials-card{height:200px;overflow:inherit}}@media (min-width:768px) and (max-width:1239px){#tutorial-cards-container .card.tutorials-card{height:200px;overflow:scroll}}#tutorial-cards-container .card.tutorials-card .tutorials-image{position:absolute;top:0;right:0;height:96px;width:96px;opacity:.5}#tutorial-cards-container .card.tutorials-card .tutorials-image img{height:100%;width:100%}@media screen and (min-width:768px){#tutorial-cards-container .card.tutorials-card .tutorials-image{height:100%;width:25%}}@media (min-width:768px) and (max-width:1239px){#tutorial-cards-container .card.tutorials-card .tutorials-image{height:100%;width:198px}}#tutorial-cards-container .card.tutorials-card .tutorials-image:before{content:'';position:absolute;top:0;left:0;bottom:0;right:0;z-index:1;background:#000;opacity:.075}#tutorial-cards-container .card.tutorials-card .card-title-container{width:70%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}@media screen and (min-width:768px){#tutorial-cards-container .card.tutorials-card .card-title-container{width:75%}}@media (min-width:768px) and (max-width:1239px){#tutorial-cards-container .card.tutorials-card .card-title-container{width:70%}}#tutorial-cards-container .card.tutorials-card .card-title-container h4{margin-bottom:1.125rem;margin-top:0;font-size:1.5rem}#tutorial-cards-container .card.tutorials-card p.card-summary,#tutorial-cards-container .card.tutorials-card p.tags{font-size:.9375rem;line-height:1.5rem;margin-bottom:0;color:#6c6c6d;font-weight:400;width:70%}@media screen and (min-width:768px){#tutorial-cards-container .card.tutorials-card p.card-summary,#tutorial-cards-container .card.tutorials-card p.tags{width:75%}}@media (min-width:768px) and (max-width:1239px){#tutorial-cards-container .card.tutorials-card p.card-summary,#tutorial-cards-container .card.tutorials-card p.tags{width:70%}}#tutorial-cards-container .card.tutorials-card p.tags{margin-top:30px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#tutorial-cards-container .card.tutorials-card h4{color:#262626;margin-bottom:1.125rem}#tutorial-cards-container .card.tutorials-card a{height:100%}@media screen and (min-width:768px){#tutorial-cards-container .card.tutorials-card a{min-height:190px}}@media (min-width:768px) and (max-width:1239px){#tutorial-cards-container .card.tutorials-card a{min-height:234px}}@media screen and (min-width:768px){#tutorial-cards-container .card.tutorials-card:after{content:"";display:block;width:0;height:1px;position:absolute;bottom:0;left:0;background-color:#e44c2c;-webkit-transition:width .250s ease-in-out;transition:width .250s ease-in-out}#tutorial-cards-container .card.tutorials-card:hover:after{width:100%}}#tutorial-cards-container .card.tutorials-card:hover{background-color:#fff;border:1px solid #e2e2e2;border-bottom:none}#tutorial-cards-container .card.tutorials-card:hover p.card-summary{color:#262626}#tutorial-cards-container .card.tutorials-card:hover .tutorials-image{opacity:unset}#tutorial-cards-container .tutorial-tags-container{width:75%}#tutorial-cards-container .tutorial-tags-container.active{width:0}#tutorial-cards-container .tutorial-filter-menu ul{list-style-type:none;padding-left:1.25rem}#tutorial-cards-container .tutorial-filter-menu ul li{padding-right:1.25rem;word-break:break-all}#tutorial-cards-container .tutorial-filter-menu ul li a{color:#979797}#tutorial-cards-container .tutorial-filter-menu ul li a:hover{color:#e44c2c}#tutorial-cards-container .tutorial-filter{cursor:pointer}#tutorial-cards-container .filter-btn{color:#979797;border:1px solid #979797;display:inline-block;text-align:center;white-space:nowrap;vertical-align:middle;padding:.375rem .75rem;font-size:1rem;line-height:1.5;margin-bottom:5px}#tutorial-cards-container .filter-btn:hover{border:1px solid #e44c2c;color:#e44c2c}#tutorial-cards-container .filter-btn.selected{background-color:#e44c2c;border:1px solid #e44c2c;color:#fff}#tutorial-cards-container .all-tag-selected{background-color:#979797;color:#fff}#tutorial-cards-container .all-tag-selected:hover{border-color:#979797;color:#fff}#tutorial-cards-container .pagination .page{border:1px solid #dee2e6;padding:.5rem .75rem}#tutorial-cards-container .pagination .active .page{background-color:#dee2e6}article.pytorch-article .tutorials-callout-container{padding-bottom:50px}article.pytorch-article .tutorials-callout-container .col-md-6{padding-bottom:10px}article.pytorch-article .tutorials-callout-container .text-container{padding:10px 0 30px 0;padding-bottom:10px}article.pytorch-article .tutorials-callout-container .text-container .body-paragraph{color:#666;font-weight:300;font-size:1.125rem;line-height:1.875rem}article.pytorch-article .tutorials-callout-container .btn.callout-button{font-size:1.125rem;border-radius:0;border:0;background-color:#f3f4f7;color:#6c6c6d;font-weight:400;position:relative;letter-spacing:.25px}@media screen and (min-width:768px){article.pytorch-article .tutorials-callout-container .btn.callout-button:after{content:"";display:block;width:0;height:1px;position:absolute;bottom:0;left:0;background-color:#e44c2c;-webkit-transition:width .250s ease-in-out;transition:width .250s ease-in-out}article.pytorch-article .tutorials-callout-container .btn.callout-button:hover:after{width:100%}}article.pytorch-article .tutorials-callout-container .btn.callout-button a{color:inherit}.pytorch-container{margin:0 auto;padding:0 1.875rem;width:auto;position:relative}@media screen and (min-width:1100px){.pytorch-container{padding:0}}@media screen and (min-width:1101px){.pytorch-container{margin-left:25%}}@media screen and (min-width:1600px){.pytorch-container{margin-left:350px}}.pytorch-container:before,.pytorch-container:after{content:"";display:table}.pytorch-container:after{clear:both}.pytorch-container{*zoom:1}.pytorch-content-wrap{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;padding-top:0}.pytorch-content-wrap:before,.pytorch-content-wrap:after{content:"";display:table}.pytorch-content-wrap:after{clear:both}.pytorch-content-wrap{*zoom:1}@media screen and (min-width:1101px){.pytorch-content-wrap{padding-top:45px;float:left;width:100%;display:block}}@media screen and (min-width:1600px){.pytorch-content-wrap{width:100%}}.pytorch-content{background:#fff;width:100%;max-width:700px;position:relative}.pytorch-content-left{min-height:100vh;margin-top:2.5rem;width:100%}@media screen and (min-width:1101px){.pytorch-content-left{margin-top:0;margin-left:3%;width:75%;float:left}}@media screen and (min-width:1600px){.pytorch-content-left{width:850px;margin-left:30px}}.pytorch-content-left .main-content{padding-top:.9375rem}.pytorch-content-left .main-content ul.simple{padding-bottom:1.25rem}.pytorch-content-left .main-content .note:nth-child(1),.pytorch-content-left .main-content .warning:nth-child(1){margin-top:0}.pytorch-content-right{display:none;position:relative;overflow-x:hidden;overflow-y:hidden}@media screen and (min-width:1101px){.pytorch-content-right{display:block;margin-left:0;width:19%;float:left;height:100%}}@media screen and (min-width:1600px){.pytorch-content-right{width:280px}}@media screen and (min-width:1101px){.pytorch-side-scroll{position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}}.pytorch-menu-vertical{padding:1.25rem 1.875rem 2.5rem 1.875rem}@media screen and (min-width:1101px){.pytorch-menu-vertical{display:block;padding-top:0;padding-right:13.5%;padding-bottom:5.625rem}}@media screen and (min-width:1600px){.pytorch-menu-vertical{padding-left:0;padding-right:1.5625rem}}.pytorch-left-menu{display:none;background-color:#f3f4f7;color:#262626;overflow:scroll}@media screen and (min-width:1101px){.pytorch-left-menu{display:block;overflow-x:hidden;overflow-y:hidden;padding-bottom:110px;padding:0 1.875rem 0 0;width:25%;z-index:200;float:left}.pytorch-left-menu.make-fixed{position:fixed;top:0;bottom:0;left:0;float:none}}@media screen and (min-width:1600px){.pytorch-left-menu{padding:0 0 0 1.875rem;width:350px}}.expand-menu,.hide-menu{color:#6c6c6d;padding-left:10px;cursor:pointer}.collapse{display:none}.left-nav-top-caption{padding-top:1rem}.pytorch-left-menu p.caption{color:#262626;display:block;font-size:1rem;line-height:1.375rem;margin-bottom:1rem;text-transform:none;white-space:normal}.pytorch-left-menu-search{margin-bottom:2.5rem}@media screen and (min-width:1101px){.pytorch-left-menu-search{margin:1.25rem .625rem 1.875rem 0}}.pytorch-left-menu-search ::-webkit-input-placeholder{color:#262626}.pytorch-left-menu-search ::-moz-placeholder{color:#262626}.pytorch-left-menu-search :-ms-input-placeholder{color:#262626}.pytorch-left-menu-search ::-ms-input-placeholder{color:#262626}.pytorch-left-menu-search ::placeholder{color:#262626}.pytorch-left-menu-search :focus::-webkit-input-placeholder{color:transparent}.pytorch-left-menu-search :focus::-moz-placeholder{color:transparent}.pytorch-left-menu-search :focus:-ms-input-placeholder{color:transparent}.pytorch-left-menu-search :focus::-ms-input-placeholder{color:transparent}.pytorch-left-menu-search :focus::placeholder{color:transparent}.pytorch-left-menu-search input[type=text]{border-radius:0;padding:.5rem .75rem;border-color:#fff;color:#262626;border-style:solid;font-size:1rem;width:100%;background-color:#f3f4f7;background-image:url(../images/search-icon.svg);background-repeat:no-repeat;background-size:18px 18px;background-position:12px 10px;padding-left:40px;background-color:#fff}.pytorch-left-menu-search input[type=text]:focus{outline:0}@media screen and (min-width:1101px){.pytorch-left-menu .pytorch-side-scroll{width:120%}}@media screen and (min-width:1600px){.pytorch-left-menu .pytorch-side-scroll{width:340px}}.pytorch-right-menu{min-height:100px;overflow-x:hidden;overflow-y:hidden;left:0;z-index:200;padding-top:0;position:relative}@media screen and (min-width:1101px){.pytorch-right-menu{width:100%}.pytorch-right-menu.scrolling-fixed{position:fixed;top:45px;left:83.5%;width:14%}.pytorch-right-menu.scrolling-absolute{position:absolute;left:0}}@media screen and (min-width:1600px){.pytorch-right-menu{left:0;width:380px}.pytorch-right-menu.scrolling-fixed{position:fixed;top:45px;left:1230px}.pytorch-right-menu.scrolling-absolute{position:absolute;left:0}}.pytorch-left-menu ul,.pytorch-right-menu ul{list-style-type:none;padding-left:0;margin-bottom:2.5rem}.pytorch-left-menu>ul,.pytorch-right-menu>ul{margin-bottom:2.5rem}.pytorch-left-menu a:link,.pytorch-left-menu a:visited,.pytorch-left-menu a:hover,.pytorch-right-menu a:link,.pytorch-right-menu a:visited,.pytorch-right-menu a:hover{color:#6c6c6d;font-size:.875rem;line-height:1rem;padding:0;text-decoration:none}.pytorch-left-menu a:link.reference.internal,.pytorch-left-menu a:visited.reference.internal,.pytorch-left-menu a:hover.reference.internal,.pytorch-right-menu a:link.reference.internal,.pytorch-right-menu a:visited.reference.internal,.pytorch-right-menu a:hover.reference.internal{margin-bottom:.3125rem;position:relative}.pytorch-left-menu li code,.pytorch-right-menu li code{border:0;background:inherit;color:inherit;padding-left:0;padding-right:0}.pytorch-left-menu li span.toctree-expand,.pytorch-right-menu li span.toctree-expand{display:block;float:left;margin-left:-1.2em;font-size:.8em;line-height:1.6em}.pytorch-left-menu li.on a,.pytorch-left-menu li.current>a,.pytorch-right-menu li.on a,.pytorch-right-menu li.current>a{position:relative;border:none}.pytorch-left-menu li.on a span.toctree-expand,.pytorch-left-menu li.current>a span.toctree-expand,.pytorch-right-menu li.on a span.toctree-expand,.pytorch-right-menu li.current>a span.toctree-expand{display:block;font-size:.8em;line-height:1.6em}.pytorch-left-menu li.toctree-l1.current>a,.pytorch-right-menu li.toctree-l1.current>a{color:#ee4c2c}.pytorch-left-menu li.toctree-l1.current>a:before,.pytorch-right-menu li.toctree-l1.current>a:before{content:"\2022";display:inline-block;position:absolute;left:-15px;top:-10%;font-size:1.375rem;color:#ee4c2c}@media screen and (min-width:1101px){.pytorch-left-menu li.toctree-l1.current>a:before,.pytorch-right-menu li.toctree-l1.current>a:before{left:-20px}}.pytorch-left-menu li.toctree-l1.current li.toctree-l2>ul,.pytorch-left-menu li.toctree-l2.current li.toctree-l3>ul,.pytorch-right-menu li.toctree-l1.current li.toctree-l2>ul,.pytorch-right-menu li.toctree-l2.current li.toctree-l3>ul{display:none}.pytorch-left-menu li.toctree-l1.current li.toctree-l2.current>ul,.pytorch-left-menu li.toctree-l2.current li.toctree-l3.current>ul,.pytorch-right-menu li.toctree-l1.current li.toctree-l2.current>ul,.pytorch-right-menu li.toctree-l2.current li.toctree-l3.current>ul{display:block}.pytorch-left-menu li.toctree-l2.current li.toctree-l3>a,.pytorch-right-menu li.toctree-l2.current li.toctree-l3>a{display:block}.pytorch-left-menu li.toctree-l3,.pytorch-right-menu li.toctree-l3{font-size:.9em}.pytorch-left-menu li.toctree-l3.current li.toctree-l4>a,.pytorch-right-menu li.toctree-l3.current li.toctree-l4>a{display:block}.pytorch-left-menu li.toctree-l4,.pytorch-right-menu li.toctree-l4{font-size:.9em}.pytorch-left-menu li.current ul,.pytorch-right-menu li.current ul{display:block}.pytorch-left-menu li ul,.pytorch-right-menu li ul{margin-bottom:0;display:none}.pytorch-left-menu li ul li a,.pytorch-right-menu li ul li a{margin-bottom:0}.pytorch-left-menu a,.pytorch-right-menu a{display:inline-block;position:relative}.pytorch-left-menu a:hover,.pytorch-right-menu a:hover{cursor:pointer}.pytorch-left-menu a:active,.pytorch-right-menu a:active{cursor:pointer}.pytorch-left-menu ul{padding-left:0}.pytorch-right-menu a:link,.pytorch-right-menu a:visited,.pytorch-right-menu a:hover{color:#6c6c6d}.pytorch-right-menu a:link span.pre,.pytorch-right-menu a:visited span.pre,.pytorch-right-menu a:hover span.pre{color:#6c6c6d}.pytorch-right-menu a.reference.internal.expanded:before{content:"-";font-family:monospace;position:absolute;left:-12px}.pytorch-right-menu a.reference.internal.not-expanded:before{content:"+";font-family:monospace;position:absolute;left:-12px}.pytorch-right-menu li.active>a{color:#ee4c2c}.pytorch-right-menu li.active>a span.pre,.pytorch-right-menu li.active>a:before{color:#ee4c2c}.pytorch-right-menu li.active>a:after{content:"\2022";color:#e44c2c;display:inline-block;font-size:1.375rem;left:-17px;position:absolute;top:1px}.pytorch-right-menu .pytorch-side-scroll>ul>li>ul>li{margin-bottom:0}.pytorch-right-menu ul ul{padding-left:0}.pytorch-right-menu ul ul li{padding-left:0}.pytorch-right-menu ul ul li a.reference.internal{padding-left:0}.pytorch-right-menu ul ul li ul{display:none;padding-left:10px}.pytorch-right-menu ul ul li li a.reference.internal{padding-left:0}.pytorch-right-menu li ul{display:block}.pytorch-right-menu .pytorch-side-scroll{padding-top:20px}@media screen and (min-width:1101px){.pytorch-right-menu .pytorch-side-scroll{width:120%}}@media screen and (min-width:1600px){.pytorch-right-menu .pytorch-side-scroll{width:400px}}.pytorch-right-menu .pytorch-side-scroll>ul{padding-left:10%;padding-right:10%;margin-bottom:0}@media screen and (min-width:1600px){.pytorch-right-menu .pytorch-side-scroll>ul{padding-left:25px}}.pytorch-right-menu .pytorch-side-scroll>ul>li>a.reference.internal{color:#262626;font-weight:500}.pytorch-right-menu .pytorch-side-scroll ul li{position:relative}#pytorch-right-menu .side-scroll-highlight{color:#ee4c2c}.header-container{max-width:none;margin-top:4px}@media screen and (min-width:1101px){.header-container{margin-top:0}}@media screen and (min-width:1600px){.header-container{margin-top:0}}.container-fluid.header-holder{padding-right:0;padding-left:0}.header-holder .container{max-width:none;padding-right:1.875rem;padding-left:1.875rem}@media screen and (min-width:1101px){.header-holder .container{padding-right:1.875rem;padding-left:1.875rem}}.header-holder .main-menu{-webkit-box-pack:unset;-ms-flex-pack:unset;justify-content:unset;position:relative}@media screen and (min-width:1101px){.header-holder .main-menu ul{padding-left:0;margin-left:26%}}@media screen and (min-width:1600px){.header-holder .main-menu ul{padding-left:38px;margin-left:310px}}.pytorch-page-level-bar{display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;border-bottom:1px solid #e2e2e2;width:100%;z-index:201}@media screen and (min-width:1101px){.pytorch-page-level-bar{left:0;display:-webkit-box;display:-ms-flexbox;display:flex;height:45px;padding-left:0;width:100%;position:absolute;z-index:1}.pytorch-page-level-bar.left-menu-is-fixed{position:fixed;top:0;left:25%;padding-left:0;right:0;width:75%}}@media screen and (min-width:1600px){.pytorch-page-level-bar{left:0;right:0;width:auto;z-index:1}.pytorch-page-level-bar.left-menu-is-fixed{left:350px;right:0;width:auto}}.pytorch-page-level-bar ul,.pytorch-page-level-bar li{margin:0}.pytorch-shortcuts-wrapper{display:none}@media screen and (min-width:1101px){.pytorch-shortcuts-wrapper{font-size:.875rem;float:left;margin-left:2%}}@media screen and (min-width:1600px){.pytorch-shortcuts-wrapper{margin-left:1.875rem}}.cookie-banner-wrapper{display:none}.cookie-banner-wrapper .container{padding-left:1.875rem;padding-right:1.875rem;max-width:1240px}.cookie-banner-wrapper.is-visible{display:block;position:fixed;bottom:0;background-color:#f3f4f7;min-height:100px;width:100%;z-index:401;border-top:3px solid #ededee}.cookie-banner-wrapper .gdpr-notice{color:#6c6c6d;margin-top:1.5625rem;text-align:left;max-width:1440px}@media screen and (min-width:768px){.cookie-banner-wrapper .gdpr-notice{width:77%}}@media (min-width:768px) and (max-width:1239px){.cookie-banner-wrapper .gdpr-notice{width:inherit}}.cookie-banner-wrapper .gdpr-notice .cookie-policy-link{color:#343434}.cookie-banner-wrapper .close-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid #f3f4f7;height:1.3125rem;position:absolute;bottom:42px;right:0;top:0;cursor:pointer;outline:none}@media screen and (min-width:768px){.cookie-banner-wrapper .close-button{right:20%;top:inherit}}@media (min-width:768px) and (max-width:1239px){.cookie-banner-wrapper .close-button{right:0;top:0}}.main-menu ul li .resources-dropdown a{cursor:pointer}.main-menu ul li .dropdown-menu{border-radius:0;padding:0}.main-menu ul li .dropdown-menu .dropdown-item{color:#6c6c6d;border-bottom:1px solid #e2e2e2}.main-menu ul li .dropdown-menu .dropdown-item:last-of-type{border-bottom-color:transparent}.main-menu ul li .dropdown-menu .dropdown-item:hover{background-color:#e44c2c}.main-menu ul li .dropdown-menu .dropdown-item p{font-size:1rem;color:#979797}.main-menu ul li .dropdown-menu a.dropdown-item:hover{color:#fff}.main-menu ul li .dropdown-menu a.dropdown-item:hover p{color:#fff}.resources-dropdown-menu{left:-75px;width:226px;display:none;position:absolute;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.resources-dropdown:hover .resources-dropdown-menu{display:block}.main-menu ul li .resources-dropdown-menu{border-radius:0;padding:0}.main-menu ul li.active:hover .resources-dropdown-menu{display:block}.main-menu ul li .resources-dropdown-menu .dropdown-item{color:#6c6c6d;border-bottom:1px solid #e2e2e2}.resources-dropdown .with-down-orange-arrow{padding-right:2rem;position:relative;background:url(../images/chevron-down-orange.svg);background-size:14px 18px;background-position:top 7px right 10px;background-repeat:no-repeat}.with-down-arrow{padding-right:2rem;position:relative;background-image:url(../images/chevron-down-black.svg);background-size:14px 18px;background-position:top 7px right 10px;background-repeat:no-repeat}.with-down-arrow:hover{background-image:url(../images/chevron-down-orange.svg);background-repeat:no-repeat}.header-holder .main-menu ul li .resources-dropdown .doc-dropdown-option{padding-top:1rem}.header-holder .main-menu ul li a.nav-dropdown-item{display:block;font-size:1rem;line-height:1.3125rem;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#979797;text-align:center;background-color:transparent;border-bottom:1px solid #e2e2e2}.header-holder .main-menu ul li a.nav-dropdown-item:last-of-type{border-bottom-color:transparent}.header-holder .main-menu ul li a.nav-dropdown-item:hover{background-color:#e44c2c;color:white}.header-holder .main-menu ul li a.nav-dropdown-item .dropdown-title{font-size:1.125rem;color:#6c6c6d;letter-spacing:0;line-height:34px}.header-holder .main-menu ul li a.nav-dropdown-item:hover .dropdown-title{background-color:#e44c2c;color:white} \ No newline at end of file diff --git a/docs/v1.1.1/_static/doctools.js b/docs/v1.1.1/_static/doctools.js new file mode 100644 index 0000000000..daccd209da --- /dev/null +++ b/docs/v1.1.1/_static/doctools.js @@ -0,0 +1,315 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { + this.initOnKeyListeners(); + } + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keydown(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' + && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/v1.1.1/_static/documentation_options.js b/docs/v1.1.1/_static/documentation_options.js new file mode 100644 index 0000000000..d204020b4e --- /dev/null +++ b/docs/v1.1.1/_static/documentation_options.js @@ -0,0 +1,12 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: 'v1.1.1', + LANGUAGE: 'None', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false +}; \ No newline at end of file diff --git a/docs/v1.1.1/_static/file.png b/docs/v1.1.1/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-bold-italic.woff b/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-bold-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..e317248423c75c8291b49bf7ef10e792167a1623 GIT binary patch literal 39560 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-book-italic.woff b/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-book-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..a50e5038a40569ac50f2cee39a0751cb26037eca GIT binary patch literal 33944 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 V37Pl+`?OL900001TdUiQ003jn30(jH literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-book.woff2 b/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-book.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2688739f1f0bbaeb667259838a5ef06ecf9a5c1e GIT binary patch literal 25120 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 T)@X9ci+<3aS@reXfBhT)8I@;R literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-light-italic.woff b/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-light-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..beda58d4e2189693806b79b00cc3c29575a308fc GIT binary patch literal 29304 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 ?{)rYg%aN&w}ky;bH8!>#J4RhUvTAPlljI0=S zD_Kb{y2JjHJ5&W_v-3nEjxmq+eFAH#Xh~bACqge|y(zlaAf;{ zpRu{!p?0y_Q0FA(U4y%A3w$3TT7GtVxT{@SvQ~dhvHONafbW8Pc4ll(NkMkC1mGD& zG7V`|=&=<4D-%@5j`ZTtrH3y@pz)uNspzqd77$Yy+}>8?_Km}vLyhW>)bD$+4AKeio-A5X{I)hNvK!8rdzD)>%$7Z_v*UhzGxZ-b( z&O6uD{g6&h(OHP3qziv7|dp$sNTwqT9E7(%|3# za?~z8>BRT>UU=)83k1(^!xAwf;Lu}^M9m`opgHjEHjI72lj#}Ts{6hETFjV61oAI8 zQ~L7;ip*Hvz^lV3;wJ6J2bruX;P|qX&r{^1sOUus{+Z^}t$5G%5y1l6jf5XsJ6Ys; z3<`rk&YuPzvYC>TE0;GBX_!AG&n$bAjjk)OapHoD;V`PJxCoG|@zVGZyo>){gsk74 z4eT8?quMIk`1ae#3fh4&i;WR!oa7Df!!5#_0c0*-?*ivlmYkAMhyKhxQq!~W!+d-A zLfc7tTaIncS!5f^$#~lsYK2Nn2`qY(LoJ@81b(_<+d0UbwbJB z#!Xx=5?i>s-vh$TegAxD>f+?JyRq~zPRL+Uz0AX{r->@=Pzyc)7MI1TM3%M~ZI2;K z379DYn?YQcq*DFmkdsy7QKW{Unv~ZnH}t(@TL16}V~T^L+!3SOZLh|S}0c11#lw~y>hPXUn`R>6h1|E%bNERSYNSZ-vdEWuLD;JV9Ftg5MZ5T}g6 z@BJy$V2Mw9(GRNMHvziFwclXjk6L&uG#Ww=n0>{C&Ne z5F&qLIszE3;e!{X8IrjKFOT`*Wcq*gI_@I0=dbIsCWF|H(rwZ$36d5MU4+(o^eHp5L1^v3Qo!YHjztod|6wdQ_L%_I~1h z`{P;b?eREpx^Fyz(N$9+4#!1<*%U!mZLQcJu({ksXJtjQD&Bz%>V=QS#(+kKy^m`y zm0EK!(<3NgY+{8On^#Xq^VE}{&17L!^PI=|ikb*W|3`~hBr)1*!KuEtlH=C2zv4I7>J zyZ(FpErvtiA(q{siZ0@DUavRA*M-h;GUe!w!~95h?W~oOhru2Wb|39R1K1hdYR@@B ztQj^VS=hQiFG-3j;DE1w%9sqME{xzIbhp2r3aj;-D{(>$w}8-@9bKmPf<DMp5Z%B$_-ga0TQr@W)}EBl!|MbvqLr`?sA6Ts4;B&aBaUV z0)PH!`;3K6z6hnOcCncY%Mvo26k{@`)kt!5+kY7Jb}^bBrpC7C$u*9iAeH~ z;EtJ}R8Y~ivZZvbbu)H=L~tvHFK{*{mx{E(luRxva8`>sb$}Kwrp7fXnWDq;aY%<2 zbru%N*V4yfVD3B(Jv2w5niAxXCs8Ptu_Di4bh5IXdaA1HGWw{0R+zQn6%ip;bn^3hFqaT)gJ$&m*R&(;FRo z6vx>PFJ*c0rZp$HgwCfftm=)Q@Z%4kA^vTZR|r1U4&g6Ej~5NBd0F?HHbrrV5iFY& zGA)`(b)bP_Z;-j1Sgb=DhEo-8GD)4K$B=kt;I|@A^WGW``)v={WK!KOzBbnu-)@{c zm4s-T@Yg+1l@xmIcLvDW@Y2_=$^JBVpuy3b^C-+S=ZFmia$v^?eT06Uh`C!k&Qk2} znxQuBS{4c=y9QSW45~NN-#2!m%wtv<1fq^b+O<<;ZnfTuzuu}L#kH}uR?h>}T?I*>lgeDeU;5#6K9G#!^oA7c_CG&)cDYUjl<+@Hr% z-mWd4nvXTq%F?bjIuC2d%G}>#!_e(d-JZw4CX>fZc-Puo_Ukpik={L)w1C!A=Gvr( z58>%Np29-zq4pyzyll8*mM+S%vi^;?dpQ|?J*>U|%c?irOx<Pn$nqNl)5B)aW#K zZ_X?3|6`-kOV*mgzMx(;d(f8#pXmaZVI>~52Ta*w*}!8psL@E|rDps2_|hEeNewzUI;gOMHY$owen?pP7VuIZg|GwDH!b)t6Dx zb#=L}oD_Y{HP946nNhow)rDhTp6<&D4syZIGQ4bRs)E(qCM7$!o7W*!3bk&kgdwpE zw*LqA`4c&t{FYy9c^@P8PmI)xub)bQz0ckZY0byc)#ieV@md%TOITbXuSAr3cZD*MyNr2F9pm zSunef9I-H!R$(Nd-!y^}dkH9>bzY87v!~X_mn(v96heh|3MXIfE(%BNB2Ugr=3DX< zTDy6L@CunyWYl4CFm9J*4>W^K1sj?K+hqL~H(a5O+MV;3Gw`_2q z4!433FQ;glDcNLcX&o@m_k1!lua*-N*y+Y7umVa~|Kp|DdeIo#%5&qW&!$QH-7XK@ zye=pL?~!hL*;|RA2@sME7{58px9t%$nVAZlEa%<3ngJM}Y{`^A9?-7{+ZcA|-L z=``wNMJW&ThMlQa$|Kys!NYSrF5!9XP&{u1jc z-fO56LYWqtHM>f9m2+f4j?m1eup&g`&moQYrdl~olmuOlI@6t~^lxPv%*wW{k_IeT z5_7k%SXJO?w7HxhQ~af?q6?xJloti$yuEu|2UoY zyYibq;oP%%lRh`}VvvW1=}Q_0;}KDi1BOzL)cbA$tNOWuZPQRO$d9l}0%(Kal%3E+ zbW?svjPv=4c=fj!{?uY~wZelJEfEu;8=!`U(o`X!o!uy0wV z1B=U^Yy(a9#Laly)lygg5=e>D9(=8sD#|i}2Dz^pP-Sq`yt3YIX_m>hgd#QA!)d~^ zNVDMz=tQ(=Mh+Q$33U{tWES+sL99bTy?`mdQ@`0P>3L8g{s2=VJs*!=*MD6z()WQv zcP7bnk;TyP!pWq?&_B0lOf06x&=xo+pX9YxtJbU~IEv&@2SXSeS*L(Uow8EP&j#1Y zwSQ~SPtAeO_+gmxZvdr&s0GV5IZXtnkh~x| zjD(9`uCBm~L+=1J`PUH{H! zoV~*?ApIHcn}L=5@>)|63?lMVUQa_>RWerUuSWfrh z%Q{OZV0EAhOoKT3qepwh+f(f#&9Po@9BFLdLMyq(diT{><(^jEsM+ig363?}~EpSocz=Au#cdulKHdHBR%(87ASovf;z}=g?@u zo%ho=y^P!!pVyvNp`X>zSU2e7YS>rDxM6>gGuKZtDXAX^d4WltQsK0iwc9$GH9%$` zX5=S2#{`sRW_Hv))8%o-H2%T4uDvq56?tWHnc3-!d2!R#&k|+K$2lKL7jhOhaS6~S zsYHyquSV=px7&+G?-XWeH^6_@HQsjLZz-PY7z~_lAiiFH9`B=R+1_CVw!6aeHPVgL zT`NtOuR!E}gP-T?6yA~4CRW{E63#O1jH<{cgvad`$l`!H`G~pCc8!M4FgqTb?(lzH zDkkKm1a||kMvSpmBL*z(;%3-{JKe2tF$>NyNo?I*GkXzji+p8%C~6BhjVaj?x~l&R zzJ?zoP55>?vLh=JS~@4VL$Ts7WVz0P2Eo|lP=YMTu8@%wF6=7^&iUCf&Owh3yWF=_ z1#9D>r~2JDFs?Tvs0&V-^P8a`j(#JfcA7WIn6J zh4$%U*ZTXzCFyBoIe>Hsyq|BfgNfe5*e;kGsd&ZWa(1#vQRY@wn#B~ zl|4V))w{D!BWqUIXlVUQZ-LeQoweqwl5(mVJ$f&OsWpGYAm%CYAhO9|0>2*ZNYYf@ zyL~W1dO@XE-j_X=GXU`B=7%At@Maknau=oYRqaC$GZT-&O%vA*CMQXfEe}M+pxHg3 z_@ETIO#t#v5$Avu7K+vyqb$w^z-3nU^1!o>K!P*n1^p9HC?jc*N^_&InxclMeWZ-I zrQKYwcbOi`oz1m)y7|ar{hQzIuA^<9$ zSK3g)u?Q5zhrubl1pL|enXiH4P5Gsi0rN+rQ0R6+H}_5Y7+>9o>fy|oDHmR_bib;t z@^|&fx&YSZv{ufAfKnJJ+nTSXY%LTFx7NY0#v2YE%{y&hwP8Q_O&=~0o8mt{?m`^% zJ>Hoba#_c?Odws}-h9)Yqt)QyN`o1O`f3q#ZCK;{_tN$2b|K(n0xaUBJ^E>zMUUco zj@Dnv*_An9%`h|;+R=tGe57vf1TvR)E|)tU87?Sob~lGM{q(#BW~ON-=XZyRy~D2$ zC&k0^KUt$&T=sZ$*jI@vR%CDUuDeMBX4P|&--xW_ZAPOX4EvFb#Q0PfPP5Gw4T3jV zLA`!!=lF!Gsgha`TjD_2AANW4M&Fh_(gUBR?U7cS{rL6249NP=GHtJeprBtzv-#C2 z2l%dolkDj2Rqg!s=6{8H3($JyQo4?!Fz=0#q~GWCxmZQEjG5DhmW+^G zQ#%rF94qBE(VNnY_D5r!@l}aYZ8$#?q-65GUuwSp^8UT?ecb4m?EtAIqB-=}XGYoP z9}(~Xr{!3AkQJ4L7FTX~>&;Ph>1ZFBv;;M(R@{$Z{dS?2V`qARkVk9EZZn%#PL^ii z7$2a~P;pDbMjs>bPp`s0fw_99D4?^J>e@u4rlIN=s$s!0=QIu1Ck|Z@{_wT25;T(q z?Xtm&sAo~P{2FrIlY0g+{cPS$O4M`D`c5SsM$EK5FMMx)WwUssmsEV(yH&UJK z&&pb9t!U}m@1Met#H@RF59BQWr|$SXAoc8Msiw(p@Zs>9xv4?E)oHG{byBXZy&v;^ zUp9(dRJ7mW5?gW9bT^5zuSMW3MId%sj!@&br=%K-?m4?%>RBU#?NN8r5ZUNnpNWBb1oq`L+9uapajBfbX z%igTSnkX7d!tXfmi=1U&;&jXUJ$lQ&piIY?r0+N#uDAztL6Qnza^wT= zbZN_q-Lo$3B$(y#cJUEO?XL2+{IrxIeB9xytMvY>%XGf06PH&K#@Ubeln=-kWxmbj z1mtbhz+7N9FpCq3yki2({E;VtKR&$VfM%B-7Md0%-)H>3nfdaJ%OeZ zcyaB89@mw3cm);npn>YuAj~)vhS@p-GO7O)h%tB04RG3EliK05+SDt}$MRq^D4%5< zC||%HGmoDD8YgNIw*>OTXw$^WSD`XC*rnhV@Ikvns`R1C`V|C|%sgKM{S9ydkvJ9! z2`HJP3PF)bX{meWJdj0lgSG}c)4V#50zy%tgTJ-#O(k3JjV@`MGFvBiPn30xb6Dt*`sFVPN~n2 z2FkNCc=&WAema7Fy5^4I>|uvLE7zH2PS?6gS(@1!o*aTJ-n2}MN9$sX(+%#zijg26 zQqFJS$^{3+qb{bFp__TJs^HW^nif*__R{*llD!GWUNDc?TqD_xG-bm^p+q6QFv+Kq z@<3y8abtiiFU|E97khI{`8RV)OLKC|%X9J7i+cb$W^MmR!XY6C;`KbHhFQnNO3+Fb zKulaj3mrkp&G(AcK`96}-W!y7UTN5a;Kk`?7V%}GQ?XrYQv_&Gx1N4LJNPn(fZ#1| z-dj)vL1U({`Bz!@~5j`+jsNjnbVi7xo_v% z>!(?!-SRNI{y9?9z3|}I+iv~3dto=JCRfOZqBAVz!dZS0S6bu6^=$V*!TjKfY9+<-(QXhM zgdbM$b3R)a=fiH0e4pA4Vzv3=-5_w9pXBIrajy`@8ul22&_7WKCUM80L8*GxdLp%n zjr3Yh18j;Ub$B$9d<)lk`n174dBMyrj$3YAzcy!hTBIewaV2*(b}VY1+AwcR`OJH- zY|LO^y!mcT)q?BBH%!>RLw#SMEF(QX0S|FwE9F# zTtpjx9cE>-Epm{|%->>RbF6YDndv8o$CC{+5hhlPvmhTVr8)u1 z=~8m6yb>uZ_d!Nd8cIxu$XU|?mr;UXI?F?1(1t;%R0Qve22GBkh}sjhI}TdhUVcak zTFoLmWHMr=142ngDt9Z51eJEFWC)njT1U6u!DJR)%uE4~pzg=@b6Pt`6U8!e!Kw1m zTU&3xWb})j&pg9!xqSXxYcDua&V0ZgTRDH?{7m^6NjJ!UBW)V4ZR{S}qZQysaW?*L zkcaPVd7J~#Lolxnq>*Dfe$*t|Ps@_ooPk>_WYPW7EsUs#NK&9XYB@pKEe&5{ax*=^ zaTDE2+pVGRXm_+DzMGbjT-b)Lp-tZBLvkXspS)qw9Z%l4@b=-0rgm;v*xtE;J9)#i zH!ZyJM;n*6&AR!DsaM^iU>h(I?h$S)&2vU7qoSRGqA@H9kb&q!F9X*y*^Nh|fck0B}I7Lz*)`p)fd0H1Zv7k@4fn)2*aKeyUY|okUU3 zO>7YI=TVH8sZ*_xU7$O~>8{({pr}7CrP+F=JYYkb9ybkpkqxG7#1FAp(-i%QG-?JT zZyd3tI`-YO2b!@P;bWzikq0No?O=HJ4PFye} zFnV- z;9jzB)~$CfzH+6ww&^x@PV=ZsCykrH*O%Totf9WX`Lb#43tfiJORl-uPsc#E@wwa# z+E}{~w=#~pcB03nhBb^Q#bb|s~G_o~t>aU?TJz(G4Uez`$Ty|-Db$fg8 z?uk>kG{}BoYu}cptD-p>HFKKT^=CRZP8wTx8QpL8RR4PJQ(k5)OgST(g54SwA<9a% z1uNq=tdQ#!C_zbMQWv`E_CBAom{RamK81g-WYG8Q;yM>(H-^Jdrn)iv;=FI7FscrFg2oDggT_HDGV!0vyr{^zWde@ zw(Zze>yPxEZsI179aUrY{puO+(up%S(q3SgZw8?r{L@k<;f>tAF^b1 zuU@J2oy6gS1O+bWz~6e6>wJa8ai=J35Nks;A%^xR@`73*P*H^9RcDGF)N3T}$0pp( zzc{M?%t`hTwL`mDp4%+g=-ON}qclFJ^K^#U`GHkc_rR*E`@g!Xx@-Q+tL}Sg!K>Hr zJUsILbyq)h$Tmgo%9%915D^7`@e#({J2%l)V2cZGKZL`~5%Y2XKB zwO7yV4u_>Q0o2wR3dPb~D2X(?9#I+TULX-BC%On7g>Z;zb@&Tf4g7*uL0z!BDXK=Y z)I_0z$0Y!X2dU|krKYQZSnHI;>vf{W243aV;l{`R_JtDAIc%bbZn-h_2wi5o34%Er z9^r#7r^AD7k$B{oL%c?-)0;erT9BR>^d_^->GmYofh334?uZ%ET(rg4l}1%r6zrlA zJHN0BPnANi00(LP5d;p>2pZz35?x9Y1Gc)u^LGYCuQBprgSM z=xDeac^1Y>c2!8(F`6EZxp3lU3ccOhqRLD&%_q8TR(fhv<4VJE$q$~=;WvP%%rQ~G z$12<*tqb5#z-V?A zS`ddc7qac#pj2p7Fj{h9Iv&&rc7rEd>G+j0GC>P14k@21X0ZoNswopuh+>3TE*2%knnYr(3jyu(j?xkPf$kIckj#9zvnI=jLqopCsk; z9vZfXmrtHE7P=ir8P9ypOgf$`nY%A$JmSzGcC;ZfErl(dm5|C+-%To#V<^TdBVd9x z+9g|qvJ^cq$g|eFIAy)->@k1dyt#1N@Ro~Q|ME6RYinE=TmVaE-@C_x(O|Uw7*^Gy z)4(4f4|6p0DGw2yJX5D zP4BX%;g$s_9>MLI(y*(_WOc?{x}_`^xIB%PP?zU*psUl9bQ)3k30+)IR8kcCkW@Da zut)1ge(#qX=3n;F084I|K6=ch(_2PQ=Z|H~s&8Mls(r#z!#DLRQ~uAp^=*^t>Mw1h zc|x2GMeXPoba(;l4QNZ^7Nqfm6Mv_1mx&_b zm>{yUo;ZkWU7*eOX5%w>H{nKzM^`KH& zLXgn}Xbs3(%7+xMSPePLlQ+HNW;-urdxc(%qzZkIcOlkyA*3-~nOVi9N{EOpgHmxm zXtcKwEJqf^j3u}UP8zhYfXa@Phhi6iOFfFHPBp**J zcV&{II3`me_zlGNzaZL?El3Ll|5~&ooag5t9?46V9jQye9%()TAE(gT^gl`~!XTeR z>x-m)9Xe%|SYee?gGuJC^TPC|1rxg%{&n=~RsVY~e>dPRSk(g$B3$vmD(&-ub{FHr z_4RL~9&3Hhu#}<4K!V~0n_#jS>14qsCSjW!oi;pOC`e#Q9lq6jWlq4*$>QewELAD6!yCSsh$;tk7x(e)p!YN~ zQ&Zg2l!W?PLG0jQ6XklU?I(BIEB5@9K1k=$XYns z(vOJgHd|MgEfd~)@yI>Lau%yCGs~OoNu^9IN9yQPJDfGiaCtr_mjKM;d@f(}^Q*pm zmRKI9sCn|MtE?aIIPp9M&YJ@+bv4^Lk)6K&^wYcLe;i%GcJ}>E#n9{fY9h6Nh^quK zyq=lK991m{0xJ#RDv6OG?!pj<1tk-P>{q5jS(^1PL0OV`T!Apu(DvsDo(_-F-Hq0I zcr`hO=bx{sZAf`Vu(B!?u2!In2e6t*>cBr4!imgD74;`Icq9e$hUU!|AN41Ip@eON z!+w}06ekMiF5*NLpv6dm6jhiCDXK_Cis~{8KBdF{;=!VDE?*EZicE*R`$DKue5I0$ z|IdsAS5qzwd^H74=E@6=g#DRfPR|-k@p;Bll4>laNnuX zADF!li`e4S7ETFTTiOH*;SIw%&0r3&zS{!knc zL}e_l`xhDMNLWrYE_wtkiclE6D7!x9fX}*vB@HsXqh-)>#x@z2_inXrns2Ie) zA*01jGSYp;nDwcvmi|(^<2k}x?CHk5kkVr2!~~wQ)DsDF6yY8D8VG5u#F=Q9b*ezn zMS+E{PoFivn+Q8!zWqS^k&amly5(=~Idm_XT3Tvv9mD?Vrbm&VN7p}$+?~|2jWCn{ zwB>GM{l(hZ@AfmTf82Dp{Kc=<&t6pTt6`Wob$`vdx7!i{>x>aaWOKFyR%espPz7G z-@*Vjw^evBA9#?Ct6UfS8SDS0d9w2vSLFS9br0wNxB@VLO&(T?&rj=n1&l|PA9HO2ly zSPD7%??-mMe}ZGbBF!9kcQbX&AJmc6g_V^=a98+CZA7C_YoW2R3t|WQq(a-kv$&M)zzO7?I-3|h8+j)+(oR%Gs8G+Sx(=y> zap&gYvm@+X+H8LW&0Dpj%jznrqEnsqgW+>zvoqo#5LC9)-f7%8K8)B=i-#vZYjDtUv!GP^Y7(tn1lDfdo#FOta%|EXeAVSCdUb&F-v_N3$uMfBf=F%B+%UVBSARYSpX)aajk^RmFLfepp;!qSr>zABGs|t`2NDiWqyP#($LNMU;EmSgp?e-9cFCDWpZoS5Criqh>>{Q5MgYS!+&q)#4Fn)eyO2cw&p81b zullZis@(yb)v6~}9HqLki_*>? zu?b1Mjz11@FwkTmnej!Dg2FiPq>tTT$(+Ao+kMUl_FZ?cedJ3^Z|f@STh2doKixFE z`AD$+m)ES^)4pWZlozJC4SgT6+f-P}kH~n(m<_vt=X2-GT$~I~xoPRz>+e}GarUy6 zQ|6d2QIRSM)6w@8#YQb>Zf9a1bGH%PQjYbd2vbEUn{wxGQPu!@h$pSjITiLzBJ@V zztadI;QY1`%1UYHykjJDTFUOTr3OH zvbhg4dLup+vB(a*z~Z?hCU_lDrN;-i2#GpJ%uu1UE*tT|7XKulQU(j(#4sf3YL#EKZMp|Zy`Xp+tf+|Lv3wT=iN^}$?5I$)cONCM67*W7Njz)bR4^Lf# z3JT9TBV5+9Bhh2s)1ODs^KU+;IG^eoIeSdK_t?RBqlw0bRQJ9hx+qR5#1*}kP8|hT zGWpuBDlrN#sbtGCm(8ijS|>9<5?4vmMRplCD{RrvbmxjHqa|7-3e;cl3fmCV=b zQ{fQuvw}Vi70ZLJAVt{$0sCO~`II5JNm*BcJHt{Yl^A-#I??DQM8_l+AxxL0;wU3o z%oRt8Nai&;_8>X33qCgFv`J5X)+1W@gk!3r~e>%7@QNy}^P|oKvuCxF0VU`wUVbo#v%NI`yf0^16(C zwl@jO@`Bs)(7>k#JQbI}7EK9y%H4o_7LZonl%RF&KTm5n(3+F`&k&21z4M^6?oeZ_ z6!fx|L?1^ofBlGGnS$nmR5TYR(dl`<4O3`{{5DUx7Wq zF)U+NCXK<1=AbocFx~!f>0YzC9=<%)xUNeYmw%i(uA<~|N&azgmVF6K!dAQFn|Q&I zrk-f22j2bPG1*e{Fn{oD<5gX7P(BtiRm_?sPGVhB^oFG%ZO%wij!-fa@v(3|BlUi+ z#M3~92&%;7e#IGWnV7yk}8wV%I2qKgW-4e_n7i}Q~V-wvW`T%0(spvuyf%c?x3PvDj#&>2X zc4)sie*DMkCT+G@eSSFHJ~t(Ghbcb%?GJa5XgA16?a_n0K+}XnwVAX zwelc}pBvfyoK|mkx=1FStX5?scfJ!obz%SUL1N~t8MNy|t2{-*gQ!-H+Bi6xB8-66 znWi*%5T`1YK;Ws(H-EWv>os?@Kdqc>FPX)fE?uzp=L>eWEnWBef?3->y#B~NO#j}d z=RacMOn$KG5SzW{YWDHkJKmSCs=f8y8y~(}iDN0=D%d0JXL#*f5LYuVfVi6VKZ3ZL zqTM4k=qfsy6u_&0grp)B_^OZ=kMof~U#t9iOXMYGjVcAB zxTmOROV*+Rvm?N8{N} zCKadojubwIRWN-)Pwl|g|F0}D+S+Qeg4(i z`2GXn{vsQ^0KWe_Cyu7Z_wV|DhVRdP3%>t?8B0^(`%m88Ap5l=vigpm3-I3@ru#4z znL_GD5zTI8V!5ocGF1q3CnJUSag1nGGyi*tL&e0Fe{&OJkzz*+b80{Q^VVsPYxtWRCRGa|GoE}mDMR4PYq{|3} zy7eX-mNE5O1#Ahy1CsWP96#|p+NzXZA?hmdxqxQFDdbiLybQ*Z=MLg#%k+$-b!`)c z4@etm1Wwv`nO^__CR0zG*s!{L?kl9^dG2SHzBSjdIkvt}=CWHYXSO~gf3dHVWc_{5 zdvwDHTeh2Mk1SU=V{VjVpY${QoVLCHi07=IX%28NGxy_%^wG`p1^LW~eBx!T# zB3G9oJ(I3`nX&VTk&5y_^yvsH(ZzUj=&D5(LQaU~cFCL^Vqb7YD-m}mR<$tHzVl~+ z#@}wn^6hfrS!Ffrj$am!=p7t>bFGP|tU=U$_xg4B(h_cyj+StDeQ*7JNkO<*UCZLs zUcC8?j&Xq2Y&)kL4_Z`u=rwEDk2LBZ(ZA7raS?x`c~qPDo883xfa_>S$GzPmlJz^@xpG~H5(Fc-A z8Wg-Ssz7|fRCT3!=uF+ccUkU{PEBoIX#@A!Wsipom#nER$SxbFjA1#qh3plo;Jb@4 zhwau5d^dZ%+u&k~LHhXh1~yUghq)e5O@l_e{5AUB!ya13J+mFT_8&Mdhhf)p#?%OXFxFy%)UGY&Z-W`tFyi1tt% zhYR?ENJkb@)}5vdBWHk15Ie^>9&wv-(Ldu{t`(k-hh!O?t79I-&&soS%OY<%6Xh*F zhY8mKvcf78z|>PZ6Fe3THi`z9?ouGbRIZ?rwm4h}HGK}}3(q45(w5-dAdwUf5)Z^` zcgP>HB~(6H%!u>RhjO|o;K6K-?9YTHo1XEyVMz1Z{*F%S_=qxj7K|Rxl6> zbqf?bPkm9Fn7fVCIH@lxDzCcY=Lju@v#byIT@fq3PP`6Ht zmqbrk($N@*_Q`6FOX-H*uH1Bls-$f`LBy^UvqR{X_4vImL!ytisq*i?Q#^OJP0Z{O zB$lFZfb-@v5#5Z%7d82DBFv-Jrr;8WYgNGd0@N7_Jw7Z^2aasr}7^wBk@zo zVdHi_)qj30|Kg=Ku5y)cFg~oZEMFn>Ux8??=rB(Ti*7KCb6w}MRzF@|OqX3A$s33P zLokT8aVjLGLYTOd6VpW=+n@3dF%501p`lhl!6X5q)>G@cckIXJ9h@m+cHk!ep(`tk zE1}IZru8IAmr1ha0TL|-=p@+eF1lsK+N&nPWVwAWmQUe%2<=m$Dl$wb8|30v*}KN) zlgzupD;qrHx-^hW^2YC}3LkG<9v!Xb*d=lq)jYdUW!XY?8ZJ{qFhQQ>W?@y6R_++a zVfO*$%wRWP=(BQ2j>vG!<^(-E&wWB3Z@>{@eDpKCz5rDJLSS80Tral69~DTmJc^{Q zn0=JkEQBp3_Nqi(HnulvVSAy&Fd!KN5?a;@acu{fuU(qfeI|v?v^U9OpJMrTx2)eX z5Ptm@oDpfi7S6eu_^bQmqR;`8)VUz~Or$06M*44nq&cvGz@D^jWdRGu+XC~xJhgBm z35?MF+@x!`o(oLN;x;SPJeTr;`r&(n7q-%omBCV;4ec-7WNb^jEi6o_v;We< zE$m80%of&s!*om=m1aXyswnE1_YwPPBo2m{XOt@%R<#&%Mbn_<3{f&1<18jn$q7`l z1QZZh`)7M2*=$yinvy0D%S=tuklc7-{0s_qiAIw!sf2|%7-Yi|Jh?1TDQtcn*ke;& zn*E@eet5X?82z9ka5OCGU3K!0NqXEQmL}?uz|GFlh;uaJ7C^vAYNt27c=Y+NYq;Jc z!>{C1OWolvV8(>trPK@GO<)YXP416s+qtz!ZYMt#yP=&sa88M103Qed00000(fime00000*U^f}{}=uC2V@4{00ICA00IC200000 zc-muNWME*w{r3`()c-I3uZlf|A%#Jd0U5jj0HFH^M*si-c-n1~PiPZC7{%ZG*-elj z;-z4T5Jiee2_cAtutE3wGQP4-y~2P#j)q>vEuBLna7eg%!o1LX@l18ihB}RHQNknYgxth;b=`bXF_BdT zL|Bthw|V{$E~q-j^<+q~vnL;~-qVHHOj-+b?{S}!!r2kJVB+Zy#8C*_tHcAB^; z@6qET_oJuQdpoA$Vu-%y{ILo`j#}R^RoxNPx!v? zf;(v*+bsMX`mj0lRRw2NjsF3zmFyuBw%_GB54#;Sct5C@^kj{` zc1Z`BKZ951?EnA(c-muNV9-H=F$`@CHyCFzX)x_!y2H%J?7&>ZyoLDz^FJ0177Lae ztTL==te4o#*gDw0uuHJ7;1J=6<5a^`6g`iRr>&Ks zi>9)g71jhOw6wOYY^<0X79`kqP2rUiDIkxkb?xsku1x$Rrs~Fp8#n$I&s;8_0YPJ4 z=FOS8bMM@H=F9+Cbs`AD2`vH68lc$0I!8Smz>4!oaS-pEg5nT%obQUmhy`55F46&` z_y*ntii&UIAaJdC39;ac;$`P;Fs}F(vY`)(Z{vOFhvEpb;f~@cO!%YXJ6H>UR(uzm z;a`fcvFb(@e?i*q$N!3md#v~yqHeW^e+ChAyLgNi+PFdob<}WoUpmr zj=eJ)-8VOKUW-NDWjB9}^9p17^s$OI1C`r5 zP-lNmR2B7?xvn7=tB0nvnt0eZ{6DmTEkGH}+|(X`Y7srG=k9m$u?AxzAyP-(q)Hc{leac;6U%HSz;Co@lN|%4zS8 z4C}Nx)`SDAT~EF2zMZMHFHh8zom!DUQBzyh;{U^IH0x#f``6$^Dj6yzBQL>;o_2|S zTWZ-6+cs;+@U`gu`!()PsLGcrI`pgyCqw2-c*&VMZ8p!wZxmoNvj6}9c-n2zS8&Wx z6vy%JNjAI5ruSa-&i?I}RqOcN846(!! zPXdV~kxUAyq>)YrnPibo4!Pu!PXQh1NGCeeg|2i9&FVoq0yD##PR6mTSD>twc+V#7dmROM)ayk|axt zq)M8kO9tmS&m}H%n+sgz4x2e4ncU!}WJxwVBu8>3Px7U}?5%5V^l1jVf!z|U_uFi? zazmF*sj^#Fs(bE|cJZ@tiTE90KsHv`M@);%F zW9amlDuRKAzrpD#YuDp8{t;4F+Lew!cuAwRc-lqIu@b>R5P;#koLoYJNREOr6NTzL z1@0P+Q6)3RV^Gp4c@fPL|}&~uQvxii5d=IO8f++5|}p@#6SLx2!ZhY%4=9qNd%{{x4H+Z8gJK9Y34~=42nvGMOoF^`0X7081BWmRgIWLtAO(*c z2Ze78f=fSlWnyLq8wceV*tU$XVW^#;qKeyZQ}QSfHVz;ZhTSs}!NvjDGv5cY|Nl=* zDl%poG-(Gb98iBxWta+fbTAT*nJ8pP49GzqPKe}MwXrGg&_t&7xP8Gm^wVKH@8s+A zoxG22lZ?dW`wTUxurrB@N}?|`yVi9=L85}9f{4;qlx13i6%5}RQB#W?#2iGW*m&n& zXeu^oEjX|-F{AwOi!1vRhr=%$CaJ|kypRk3@Lk&{{xMV;D*FA!Ox)c;^wpU7TwAEd zF&3@BZRjx?=uuCDXwLuHyNeK_;0dxJ5ZXtAN+pFL$;%I(P-;}%(^6AvM)~bQ-Q+2_ zjgZZU=}}7wFD1f5{MdgxBlo_)D$RhbmFC{Gie*Y5G%|@sqLFAz-B1xtD-!?-o?Jh` zZ?i`oVr0)qj06cmLRut@B1Hic48#u18MO>^ds7$v&&93ccDdc|{zdOlRU?yrCtA_h zS`Ro&cu^^A`=+b z%g+%BkIV1jak+jRK8_z}NLS`)h()|Bt(Nc%boLV@l^v*{0)V=|Pgwz#`G30q{~&}A zLPGZDBpkhJ+4sRWzWbO}g;kAMWvibxE#sCMucsY{|9@{kn08J86oB5hMIq1bs7AbO z4`U*g77RJv8%w|0fS9$_;rrStghl9P#D3G2y2Y<=k5JVF_@cdT=|7|%wOEFt<0wL! z*=&l`PdE<#zxHN!E9Ku4l49DCG_$EUj#EI)2$&&P-Sb|LRJCZ0Tn5B|f990@a*jSN zC%gqZggv4N>mtPo^FEC4|Cwr){%Vk7VJs=lj`Lh=a>|X1&ba8}3zB;eRn>;wg$C5! zASrZ{)BvOm08t|VawMghM#BgIMGnRu<;1~`$>%ibAaCyL@Ik7YP3oCW$pFz3(Hw~L#A9^tyJHXkSm=z!=5 z)W&ubUw+yShB#sr{@(`96cw{Cl5w`qIp zxEcU6F&=@!alu>~)M~pR8{E^j-aj`MuN?UAAgd zgP>!2Rn^t?mUz0YX-l{UL+<^wdRSNW-oCvUL1<3$sIw}`q^h=lTc7&c>`s2NHY(em zyq9M{Z13JzW5esJIxrxv{_eB-sq8zEcj(bzF2`+Kh2#{gZv(kphbjfQqKb_DI>?u4 z5`_q)dBlk%?!|3R|F0Tu;9gV}RTeS2^yo8S$cQl$rp&CYZEWrA9UPsUUEDo9y}VPv zz@4ftSD=;4Scedb4}<3a99i zloVxiO`eKt%B{+gjL#F)=v0jxB`D1aR-ee+*K^O_(#-V1Z33AaPv5`M?o@l*XM)^Q ziMzBHWYn6p>2Rl>Sk@`mnNkQstb}lPIz~m6RvRB88hmmz3)9b%^1=y5$%N+VQo~edB}mH1&{UCUs-eVG*Tbf^pv0tg4dz{Gbj}0A z9$C)>00zBq&5#dX8TZ9o3w~HxYJ%=9Gg$v{;Fy5iYJXabO}tVM>)5(L%@{1e5?sLz ze26dkvk`w1K=zYB5=4SY2ni)&B%DN$ND@V$B$~vKSQ1C#NdieENhFz|0MGzw02lx) zKso>p01rR_AOd6nkO0U46aXp!4S){70LTPj0%QTO0N4N=04_i_Kp8+2X(lbCm9&v| z(m^^&7wINFq?h!OelkD?$q*SPBV?3l$QT(XlVplalLKUi%#sCIge6#p6*vfo;4mD4 zqi_t4!wEPEr{FZ4fwOQ9&cg**g*DiKP1u5qa0x)aunn*y%PznbSsnp=3Gf);3BWUe z=K!w&z5)0a;5&ft0U-2)rq--Qt2XUVXndHn7s^2~f1#X=bMB&8kWg;9`yf;(PhPy+ zK8i&N<)>J*Pyr@TkYFJ*)x(4e7b>2=WTZ-$Av5K0m8alXC{YoAh<1rYrTmq#(#2di zdi3hkpARb5CDgDHqsEMzFlowkno(?&#+Y%FX-cRStJbW?RmBZ%-MRO`qXd61_Ltap zIlq?Z7k|I;$KRTflu`Utg4GizlZMHo*@-J$Do+3a000000001di4Fh&0000000000 zzDhR$;{l6~2DYG8VAITo37kN|lKHWWf)`s6a^xzcW_T@cpC6#wu6RlWS`hW>NgJQ% zh?(4=L3H#6_|>P@&@CMqz!(Zq?_5XF$wMRp!;A0(VkFB@z8^q1qO6ravVtbh@dIVV@BYogZdn_xnHmq^b52dUm%Bp(C9eqRZnt3|917_pEQQocF)Fwv2c?r7zo z6LIXksq}JGQHs>~NHeLl=dzF-$Wf{)=d=>dNkyroT*EMRvvY16A3^II|Bn!zmXczX zFY%AWE4S~mb~)#A-{y`iSD7a5YWgK%T(v+y%2}1)^3D4uf+RBYLC4wG#4#@KdP1xO2JoCy*O2d(@dG2 zQZV;LRE+y?vU-Va%-sX-&U81Qe0p=s+ND6LAnV+&j^klKb%j}r%3&%I=1lSKX-5E9 z(~wV|x#Wsn+H*=I$5vBcX21QK>+*5~ ze+4s!F){VTMRoc9ULGUU_G?JCz|Jd!TxRTiO4EnW5)mrr{li#wzifZ;p7d5{V^KOCgcUO&Y26abJ6J{IdPX zs>qosaNUH|C&bmEw12dX&s4;r_c^y>=zpye0aJ+xV5)^ffOMh? zF9i@BJQ{|W2elCYh?OprUCPZ5)jpz^g+7_{1!zNzwN8)u!`!B<_u&<>lS4!%A`&6S zk)SuCUSV0}d&v_vFEB#%Ic7YXAS{Rg^V=9ga#PVnR5oHrv4-lW{~+ERAHMt~JF*Bh z!ej7UG*ri|XhM2Q`bmclgQo;AhU2W*Z^9U+)(HNCGcCQo%o4AlM?Yo5WozlPi?xXolr@L6l@g z)pP@xi`eB^rW!?79fx%M|NEA8^gH6Zb3B(K%nL?$}8JWy1 z7MsJ(&dJTo2Tf@2>>eJUSzK6JSw499=#gW`Po6k+`t1307uHs{HZNWR$=ekRU)Ib^ z#qX;`AlD?QFF*#8A1U!LQ1ynouoMIUI{Z~ZQ|s8y?xQcCJ%9XU9dzg@=&OfszxfuV zxb*_m($n1A)ju%UH>v^6nLaQDI(A%!QUHbk0Jd5HxsuQjS!|kFs>A|z`3e*&629(A zIg}}v!@{&wJPbTMExgt4;Pd)9dFUGY@xlm4hBN=fhC1nGo_j|68F^x$H~BWg$TJ2@ zfg?-j)V3*DLq|W#H?ljld(vs-IYYHNTAg-~3nCo6xu3Hz z5Cm(Tz#uCxn`uHrZ3vmrayp$*UasL$N2lo97uwQjda=PnMN^`TyqkdzZ9qLtj*Iea zSgwxpoIa0-{XJJ(S1TH2Cu_7?r^Y2T70||l631dnjZ%v?;BKH7`_d`(2%>mVM7e{~ zY@NAPC+eVWDymZxP1Y)*4XKM}yUeY0F6z=XrRi!m_(l^lGE8|Ug=I_k>ZwN~2VgfiR6 zE3W}^nyT|Os^$Tji*@Rr6)gurso`npf$185$?E2{(YZuCwL8)^`=y8UGHgPlXk;=G z%XTGNJ5f!u*a3A49J&h1Lub-ZAjIo4G%9e^fuhOBraD3iY{}Esynow(cB0+}UJ}*u zIL3`2xaXS+Y}u>sBarJLvjPA4fd1p?tENEN;{Z2#?xJNKst1%Or$jGPIVak=OgvYz zVSzgtNkpy;)1oZL;)cAc);KwMPOIl+y>?Xew3oR{T`i>LF`?Gs5DHjUFH}*nYw;*t zfG_3O9nGN!%B|U0*D&1Rtuk0|hmYRkqDZur9YfpE;h<1kIhLnMWwq`nmt)Lz|DLK* zC}g9RmUE4*p+<(@>cmI-G0&LMLUPR8)8V~xw%oQ5$-$@$%RbEDb!M%z2Xk5KJ;6v` z@Z~LTSL)R0|FiM?VNypfZ8YZ;zYWWs3RInb!j;n@wH9+FRcJKm@uX0%Il=@uyd%{T zNPBcJ4y4Vs>{~!1j-~cazEgR;2Tsz2)Vfs;kzfj*NiDDuFS>*6fx|mP>UfmiN^vX% z2H+wd=~+Pb+-L8s#Q|`Vl9JoB&V@j%8)0W7sS`C?QO)Gu2X#FL_>O?Bu4h|+jQ34pTGnEm^UE6c(*>b1ZOyDivzX<2 zt{@@RDntfxAWXK+iK;-aL%FD7HKOu~jG`Op*PQ;`O0&7D=i;z)m1*DX^P|rrnBquT z+;cW}m~6FB$8=d^zL>x9`0cZ!&U8MLuG}yG7Wc;@y!RjKc~3Ks?7ki`2ko(4APViE zJvqPRDp*M>FYjXVywqz)pvn)X!z}&o~=1K}0*@-w< zB;iPBTN^48b55d3@9_Tp#7ZKQL{2q!hcYt_;s!42YI3z5y{3xP5bp0-yRus_BNVMB z(Y=l(;+U0#HeG>k;L?+LmN9cQ`V;<_f!ohowrty?WAl#P$Cf*;T)K7P(Yg7(`}|d#=wSn(`@wYI@E<#QQDucqobbu0ZQOaSeoefWhS6 z^;$?Lo5ckV5(8;?Qc{?L>Xwl7RC11295Fm;3&xQH!(jxhC|m_es|YF-1}I+uvGDK$d(9*N?4cHxqR z*Wb0x9{R{c={eS_cgx%A=*E2GhX-}lp{?c;6;jY~#tIYTacqe3mT{yH($#STjO>HG z`{J#qvk}tZg<82l6U4}vH|l)oUJHe zQ=nTa%j)f-*H@eZ!?M(_eWWAkeB7nqjBTX28s_F``84zSRg@_3RFX2s>*yL{8R)GD zNlQ~6=(k1)Sy9Y*r_Amv>J9Bw#$+`mp!5kO8Jzx4YP({l?Pv>~<1=m)TD&y2AsLNB zaZnR9L-;0u6N9}Wd3QSo_0}C{+Rg1m*ft;>?)^^P0A!+QO-V|^r6|^q%!mzPBKhd_ zyAD|=Ce9HFLqZ7SoUx*_hV-Qic^=A{FG;*_DKUuG${5+jMo_MXd=$gn`a_D00mKuE zgGGv;)>f2#+ykOI1wEC}&MYIIMU$bdM)+FvqMiHH>)8K6J70x->qd{To_yj_w24pW zF!{-RzfLpWI0kTj`+kA|yrR(Wrp8?q-SE3X$WV6Xj5n%{dXHfIYUezw>17;bDC z^f7|Qf4YDwy*?TiLL7C(4y}joA6a46SUK)Kj_P;cZ!#OQw%U5-*8Jd)WAF8qy1v;c z6^BvvsS_72+&K5(*n{`xABGGYPn)!8(WZHaa)o{8cHJbxK-xF)6N3)mc!%}8bR9_wn+KWnA?mwu_ET7RP~w~ zJw_Fm-WJk8u(%<+S~~hFSrL?}T{-x8_kc79q(k7>XD*3W|I=1{+}{m46D^LC4y2x# z-S$gBiVxevH&0)0S3E*Zn~60VJJbWw41dH<;MapzcF;b<)oTiBP3^Uqrgr1gIov_= zE7%bWSMROTnsmpvx#l;2-9+KzAZbjG_+_??!~~xZ0T(!kzbj&LbfJ$6~tZSWzP z5~r>p>K33?;F5Rv?rew))mor@%%I2@l8oMs?K$uA6EtBfMKpYx-vAsZPa z2U87!h{}=o22;tN2m#l_W zM!7;-@*}Q<^pYTQ(kIzhdP<5#ZenzK#bOMXb>hU4BP+awUeY+>-x3kg*{$Av{P^y0 zlc&Ca=-+&BIfYYJe*c8A-hTK_l2GJsRiG%OEMQU3+nX1RV9XB~)H zk>bsR!d0?@DQ=?xsgX%A_dF7sb}09)rA0Bl7CLkMs_}>kM`)azDfP^o=Iphrm1B0b z0>R_^&X{(3l9?|q%6nEc z2GlU+5fg7}W@cK+(Ck?IMNf0kvA4oT?2C=i9eN$!c;a_1O{FXlT440t*`)%+E4^i2 zs}-O}Syyf>QI@vh^%a_IoIrpC#csh#dzz}btqIPLap`n*n{aWRa&zqxQS{&L6zUsO zE_&&lj%xVKg`O|o&W8;Py5qr;OYxMxqQ1EroRXq{#K^G~Vc z``>ZTf3JD=J0x-7EUP*=xXOuG${z4OA7IW$`Y;k*Jed&!+4MP_IQC}h9R%i?cAYmq z#fgB0*ZLhbOmSmGQ!@OElIMQhJ`n=Oe?XA_oT1e_y)M)zgOGv=oLK&M!>Bsn1%9X1 z97Y~W%Bv%Vd61Ftw2-*t4i`BtWLg579F?Fmcx~d#$K&0n7ds~&KAPw}w}|NxcBsX5 zhYr<=J5?pM2M>A5;N@*yXO@~CUM}iXi-g9XVs(CTBt%;Ur#XpWg$-f1khkxMo|MH@I-!4E-I!lF|9-g~E$TpOo{t-ouXb1`MQQOe<=42Wes#bhdkwhG3V)syQ* z^N(MuCaV)F{yr?Kie`DTvfKjV(?XdOOOkMJ%niZFj0g+Jj1;$($@^w` z&ahLG#hwepZRn&*F|9S8Xx?ivJ*l4lb8n4xDIqhsFT%1q)8K9OMM&CiDv4bGU6PQ} z_Upej?M$UP;5DVw^A9d9sE$px$vCz*HlWG+M9}PuA87nzxYD`OYv3QQGfu}MbEk%j zOpcy@JMlMjxPd;YLjMi!u6pH8XoER6cr~6jySqKG{>Oi-ea=`>c}AHG8t(q4J}NMDeYl6>&Cnr`wM6Gb^nnc zmW2uDCksbADjH7@i}GO=`fu^~n!5I)nBetz`pV`;|L5SWEN81sQ)F@U=9|gCGlv`K z?Ugi7^faG6B)8#Z!>9TSi@ICEzV$?uKnA(pV|UseZnE*-Kjp^)Z8@Izrk$=~TWDBR z%K<}O{GEzEU4F(NgTt&3Rl~B-u<38w^DHM~Tof(**H>w)lU`9!;Zxx&EMQ9}8l~|J zW8AfXne{DIihn@{f*HIm^vpy=r4}=Lw5wRT`9IE9d*6BJQ9nDV&%M4<`Olm|iC2s2 z8W2cYH9Z?fR-_^trnmZ3vR8n*L?9rt;__eFSJ9d{(4shsDB^^uP4dm!MvZjef1;hSK#b0`q%?W%7}t@}d^jH6~Nmxc%2kc(64{C?7_F zsYZOiM(bKg<2Pjl(`IDsxqhsz_UOq24pQr$NdYEKDa!+5>YVVt*LFtgc_({U{%?x; zrG0I*Ld6!0cP_o_ky@6=y{x>vIPi|zbaRz#O2T{H4QKU!C?CB{{xst0zJFiL4r0uR zgQzu~AVbXfTjj%6G%Wh}$h<<`t;2q$7rw;5>HV3sb)xvUsz(l=k1~SkBJL>ht@(z| z@^q&n!&U{JZ}SW5q>NZz>||hyHI$%pnw-VwyUoK$;w;k)d!)!VZU6sbX-x|?vnc6B zb1kFMP0K+gy;&}D)(oyKwdC;0G>qlArFWK&>m;Qa>U5SEdM@@jd1HGe`xuO2b3Fa{ z+JE!=hfACNYKm=(wJVBy36rRNq0YHa6d7U>1*(=)*Y+2zsg1osmljM0G)Y9IFSvex$!()wqola=h>F7PX-;(lZf1+!6NB?19x~@bOW=B+_ z$cTqRvbY>hYDcIL;c6kx7t)W5=rp;8T^5B;}yP^ z@NW(hg6-ck(LVI#B+sk}fqd#5R$RQ7hKzM0AmguMb5!ShWG*&5CwsJCSkqCgKNB7f z^W;R&eF9Eayu=ZVN29e5tC zt=%KiMLjn|XtSoU6#3{VMNANuaB;(UahxMW*Zhpy+`5YCP!iW9(M;TWb!4Vd_w``g z;d+T_`r9cuwQRMy_=ReGdb2)5lm5JwHo#B2(lD{b6`yDndY~0W)52Ai=u!3b;VUC$ zm9b#FJf`mKn-4Lhs$Z!2(NblND1hN$?p;qcWz-8N#_v9-Y>gk-tS5~j+e*=U<8Zv} zVvFF#1?GSVeZ59=l2y=oYNnbK!0FWq^PW0(brkPppL_dJKuJW!G3zS@^_R~V;|%i2 zbr5=!S-{m~pXVi*I1e;7iZl@N+;7(kjB)aR0Qw>Rhn)7_W*^rOR6rb^m116+H6f53 zJHpPXB|=>-^w=K^lAMK$-#$1%P4kIJfVqdUlV!F<)A8V`^1SGnVlm@fl@%E zBgIflk;W+REFQ0*ZLPoe%?-F=>H@>wP`wvYaL~i87V+H8{RATG%_U`6#fW3C(U6p3 zZ)}z3I@@zf72>3OTNyb(toacbysg{^o*f!`zU?R8fcN{j@2g~=ig{E$BGHhtz_hnh zbSfrTD!N_zfw@!i?si!h9)$#HlJ1sO$m4X)4Z8%HQcIJZIzR!B(>m7D|KW2t+ir)B zuDdk|97E%!;ocVjZD63`pATb$7oPsGezpGfQS+%k`IdHZ^61Wpa=W?ke$DjZYZ}E) zd*LI5%QJIp71Q3P{N|qF_%E*JM=KT8rSQ6@y@?Up(i-kgTad<)ZR?b~$p;ivnIn4{ zC6QyIER#U+pp!rLeRd;RUHptfae_!(}RgvUOSJTL?+cHO~L(O z367Xh+3|M8f%a@Kgo@L`t;)uwl1YmA%D5sCRlYja!#D{iw#F7`1-X9b7~%kyvXzwtF=mL^jqmj#N`+SmGf-cYZq{3_k6RQ)JL$82%}?a5JE~$pHFf=9nJNmY*gK%^tAC%X{@LVK@?wa z6HG5ZnbF3WV7Dh!jbTL=FB&=koxxN;kUTa*ZkkM3v2byCVz?_4hL?t8b+qeqDh-3- zU9%z*#X-r$3H+uBN~o&|l14{oCS#$q(0*uf1zTgpy*~;PC6*ix;_KA6Win~O!b>6& z!`^yj$6s;}S4!HJF+Dl;TXzS?$WovYZy(hz)8nT%S#BDSu+vmez_B;K(9Z1vn zS8LoY{Ce`59T4Ges7KdXd@pa<4ia%sn{9_n@<795+4frMsp>v0nYHw3<{#er;Aq^B zD58~@#1^AfwZH2jQ&U}Zg5znH?;K%6A0-y4;#Yq0n&{Lncc{0MoAzzjNxx#O3K%k{ z#WXR6t+9-`Hl`b?pa`cHD4BZ>(PhIz}MG#+6Enq|!)CQ9cw`SJ$RgVq$s4*l4M=s7x9|DCR@c%uaGD zRrz@pDh{`zA+KP3>Hg}!efs4t+`&ej@6L?UGdQgRU9wkcX6Ee_A zOSd1*G@WppXl*m9ouZc}@Vmyx){opOqp;(a@i5ee` zqY?ZH_Yc9~PSpJzSWrf2LP9|vOzhXP8I=`5W|XTVh~t`Eztn+jMHI&cNsRYcff548 zHEQE?xNv`d3cCGdtFLsaC?}GwS1snAynwGIM8Bt*@dHwyah>zRp@eYBNqU|-Cf2p_ z3d`|*^e4`n;dRs(-f40FrZYdO+Syf^Br0`r9&>eBhD+^-fMbBxD9@jYj68j={da!t z8UF7RCyW)foBG2|JQsQTR74CLJMZAIxU@{2XM_Z{&ZWnX(h3QE`|fm8R=hom5hJc1 zn(65nSWr|@Q;dn!xRwJ-)_T*QeLui`-aJAXpWB3SY{u5q)^s@aB*$3tpco{iNSmnB zF*QAjE)c;;F=RwSag#9cEqBm{>;15^H(}KT<5*|RyocB32(6nMjWJGjCd|8=2k-{v zQZOF6LeBcoUGlDfw=({}_m$hNoiZLSqZnbo9>6|odsN>>Yjo((xSjZ8U zxCaoNyN%~BRcnt`3A^eAH7iGI1f31ZC1gQ1gM+52L-gGB4TSKjN_4@r?^$d-l}ic}c6lRM=5M{~55 zbR2i50cA3@+aT3CZhSi!rT3kc=;zbr#n(3#<-;2r!*bsBONxrY)lK+l?Z}iee^Qch zBu_Cgr6`ydlaIhxZqgk@R;`UD7}Gkz@M^h%(?Nnaj0Ydt!6d`oLv{bYVHstlV@wr- z>yN1eZlnj^=%Xc}ScgCRhPDONz~ik#TH=CA5CZ;-QWkcvy{MPETE|Np|h>buH^ z@eC3YO~=KZE9ofYI>-br@hr$&hHuN)cUIyP?|@&Fo?~j>dDY}xJ2&uYG}iAoXz#(* zcUjaC_jhgQ@H6|ry~oA)QG4jik4Em1AdJ9%qT{$lJOPHYj)U zgvKNP7`ysjS+gPfdo~o*hS2q7E~|XbLxo@66;Dvl8*{6l2V>zb$QeIvlqskG{G_9< z-qvwH>4juD%f$HgtYzD~p|!pO*FKsZ*e4rgyBN9cv0F4$1KrXrC;WQu!M1J+m6!=f zA7>DE{dxa)@_`}Tz4R=W?gT6S(H7}(==%8<{0&MaC%kwx``{cQ<(zFKOi`(%v=mXT zaycTf3}or{I~3G$!j;dw&3@h7Uu<&v)V`X*t+mJy+`)vx9B8=Bi{I7{z!J*y>vz7G!G5>>9cTDWl_GVwS#Ra!p*!}}Z8AMT7if&T2ooFt)Nk{X}X{#ILS z=eV+17Va)f{DAXYM}%9}FHXqAU1*LA8%|%j`Uc_=i3BVH8JHc>aB#SneJq9Thek!$ zL8*CFl5A)~4joIwB^1W(cR~O3|J^^inD=v}<=lrsUm2gNc#-XSIR~Y5bn|O`_>9LP z)~((*eLX~NIIO^vbk^1zTqkRH(%{h+v;p=z3)D6>(5*WQ#{JAEYqIC`rUZYB3buDg zEIBa-ySbBAks7@IoiksMm=E9T=E7ISa3?+K&UrSoVsYQjN}cph)HMr>XtT)p&g})Z z&fFMfUspU_-#)~!z&zlzbg?6yih*YPvPN2 zxj7kY5~|FasGsj<)Mn4Hje9lIXF%Fsnvr5j+rOCZs3XILS_A&4-gOoBOyXSwF`@iJ ztbYsnb3%o6ZB$`?bwaxwc`usH&4)9mbv8%aZ%lP9`E_T&pCh{OQi9#mw5>|J_rx^q zx0_DWDUl-R68N*&T4H0f;_a)pj^!S~zM#6EyIQJ{6tfg_^R#z~vH1Lat|>A(ga0hv z0&^++ew?oeaaXx=xkz^E-5z6W^yHa=yaSm9{ZVIf66#XoPNmXMKL6>D65!{pK|zG- z-A|wOB}T_kr^zj^@7$sU?!QI7 z{epHo_@6D*#=8D}K_bT0r8DUPuXYuNkr_Q8y z!RR6M(|sS#(#}HVuBegua7<85!%tu|Xndyy7o2uN7rm~veP(BiC-Bh17NcJk~|pv% zHCUw{(Ax^Lp?{IBMcj7tIF2~*c?Z0X&LJbT_UH4gUmUx6xD43WD`RE-|1VVje*CDg z3-pyh)^%2`|G#)pf9siGA&^G#Brt~>B;)97~|ZP;xXU1m|9e(j=*x zB_z`IcnqqLcsCk}65;+CVp#QQ(KBLhK@6YXMi!(g^+eF?zDeYF1zeAzynm9KtpZ!9 zSq9CidBLS9Ftdo8`hoB*@_6&^<*(F{d)7z-gG`$TxkWqzL-0| znvKHeXOn50iiOY4pP!uGRJ^#Z(nJ@Pr~csR_Q`Q4Ylccw=)`m_Jpiuf{{GF&?=l>c z`i$uc12Lm~%T6}LuEK@r85k6sB~5o$<&K2scwggzhKqHQmL2|dMMkkTaLmJCj#4flf}4TSY+6;3rNBL*sKwu#wPE9;W(4>wbsK7KBum3K z$oqWS7qLqBN}irx4;$EITC{XE$b%U7=fx{Q?e50#DTuSJY&6{Q_5+O=l?-9u6fqT~ zV2-iM%a1_Mk6;>Og;4Q2PGI;FQ<--WQt*igkXR&8K!O3T*xvvt*#h>0gW}OdYm%J7 zfUtlA=D18lg=ujL7wpmD968o;oRI}3F}|gj^qx*46TrD3bAVhc-0xO`7ESM^p-fBL z(ndk^B7&P;UhK4uAkae1Fxe3sZ1AOUUVi_jfBt}i8Bxx&zI&1hz#%V2@T~P|dZt>I z{_jEQV>P3cEl=1+VHy<0_u|8wnz*i~)tf5jZm&wDHS>(yNfH5;I|SSSMT3PtIlmc1I9dFz22rEU=7-; znn?!fKf)NwbKA%OjkaIK3R=YZvJUiI0DhWh+V4B)nc8&nK?Pr`ei^=wG`I$u+w3%>Es zf8gW8ee#f*==xmVAAb6ZwUwU<#A2?Wdr5r(C&%qa&tANW2HfLZnw}*-8=rxmU9y|q zbUqe!%p_F4%XS;BMM@$!9WJ-iH(;G}0CjlU|-4d$-OAEnE zJZe^}n)f@q0i1gMBMss&abuNKp}5efh(g(wC^G=sDGjj02GxrNl657>-;qY=Y&4N9 zq$i+d$3PAdrlVdUd*L5^;mfdYP!^b5?FYD-M&{4jG75Ep0PGBxw9$AEt2JRDU- z<-=HX2ot7?8$r+-Zzw6gLRqy^?qx3$u|k4N0wAHQzApHSKgU2pu6=jme6CfMvq9Y? z5<%9iDb~9SQ?CjYx8)&vPG^1SW6@vz<9PCE!&z>rY`^MUWLqx3GF$cs@yKE@2fz&U z4KxX^J;xzqwSE`qm_b>m{RK5bjZilZ9!Oo)fC2)}z$6GmJCy-2L{thg$rt|K`;_*+ zeM1Ty8AsNJ>q-+1{Z5dtVzyAp|2;y=Ci#9_1vP+BpuMu*7XHfh?t|=5r0D1wQ5~`9 zb`kB+T<|?>ftn;&ah?~<;js~E=cl3uaEkT8+cO~bK8`k{Lb`))w!MGw85u-+sH^Iz zqn4Pi8e}eSD^n;1km;Q+DColuNB7sQ{x8r@k=ly_qfijk~`p4nQD- zAe482pz^!wR4H@W!O6GK+3d<-(r5mq7jpG3M@Z%GE0^W}&9I{+C$wqDhq*z^e*|Fu zUSIyPg4B%2!9(%HUMp1hbE9G021P+ruX0SJF=e+!3M<6c7^tMET3`ev_3N}iAY4PN zEbjI<{{v*v$z6K?C%-j~$uQkPKs4`_XwF};0#Qrn0wa*gjX)J0Avo+HmrJHQM_^>k zfkxtLIOCWunKQL~cw4GhFR(}RhgHnqOPCbXSC4&M6$~N7tnr#R?rFCmBX-BW^ zDEpQmWB-wm1-c>*dhb98pd^??g%qHPjyvU~qcxl8&+!d)Qjb$vjluC6wP$(v&f*oN zqm9aj(cFK*Klu%W(6)Kp(V~XHg^+d_G0)PS8NmzmrdkD{D1>f)e7KknJca}f!GT}# z8Pq3$*>Uz1_sibJcy08hxEbKXVEfimA=)K^4*)w@1?!v}3?O!sDhWiS2chGHFGiSx zSVnZcx@}y7Bg9A|w9c^g@8Lve*A@f4iI9pDz{rA&B=7pt*V7-T^jXlrBB9iG|09Qb z1Pcb-c0QLwX+wY`KQn-BX(JcJD?`x%#nUvfF#|CcA6p+Z2p@FK!&m<^W++MX6%74; zm*5l=Rx`ZN%*2%s@n2;~Lt6hmNd9Mn>BO{QnM2fmh?iU|C>0*> z+6I=DRK^+yc|_SS5-t792Ouj;2rNjE$`XpvBC4a>D=g=&e9sVxRUXZcfvOQaOEQJV zm4%e`H&Mgt%=hocA~^Xt0t69&i9jF-r#$3i(6Azc9C(Y4tuqiI5QiS<7neQ+|FKzz z2~2`M3=S%QooK#;p9gqeB*fc_5kLT<<6(I)ZM%aC2tf-<36M}mt!ZKl%y|hkc;(hy zu7*BQgyqb|Dj_;rDbX~~0>VP<(EPyKL>h@xFvq21yFm{hY))BuJEuIkwDu6+QH`{s z@Ss2x$9?eW^78v{{p&4U>)@QM?b6%?+fnejv|E!o8->UAsJ7zitO#( zP4at)0`({nS1nnye~{K0k9L_haCRC+im*?2eZ(*5Z9yceXu|bUR>?JFO`MIe@3-Cv zKv|IkJ4+*cq1T!QnMVMyX$gwL9}dS`2Hr>_iAy&bZqxLxPz~QHIi;lCZ@V4pR9u13 zS4l~dL}zU16H}^26bH6h3;_UV<3Ip%aq0cJhY1d1fM(qAu|OKtTsFQ`$W+U@F*|aa zlqHcArle}r*dAh-^NxZBDSAqd+OB7;>0~AG(b9_rUh6#OR&zN|H}b|Z3pD@=*b-+^02W^HkI-CkXuts}{Jf1n2X*I|LXr|4d^CBpow?&peo`|xiyJYq z!6fkU6fgh#-G--!dz>?0{=*Nse181&xdW1)8NgkYA(Xg1o^C(mda(R<`})JACRE5) zxKBE$j!!-x>=h!mIV*Oq{EJBiQEfOREDKdTvYFQ+cKb4%0;EV=3L+J7woLG9`pIBZ z$*bY;Wd=dOQ(JWD{qMZ(9475jL76i9U1(KZ)vz6nvU*lBl9LBO(?Mm2;aaUQG;E@& z#}E_uN&*oRELs=^o-IRgjr0V7g&@5_q(+)pW%8f>IA*Do5ZlWEsR;`ENNKW(BEo3# z1bGu@7XHq=Ct@;fnC9Sahw?I1)@Z*9R91C)mBl->Qza&Fx%OAM|Fr-y1zkjXLx~gC zWLlv25J}P+LX@bl3=%!B-UP(g^c5<&#+^|-?(CkWHH=$Uz(yB~xZ1b2R#58g@3?a3 zXfBoePzZhq4+&x0unjf)uA|8FWUU>oU|xB6okpU=TtC-f&slc631^ZP_66 z0NdXO!gt$yr^6dF?p%QTgCtvUF$!{;Gu07qty73di5yt4;(Nh6wb?(xcus+`@to?C zQg>aPwDgpqs*I9T=rvMlgo4IY)bzdv+a_pJrXb5l8KjNasPbrB;L8D2T+6PSPM&PG z07y1kJj>dSs%1b46(!7lRw}i{R|{E8xoLb(XjIF&v0men8r;LywiBqZz|PEqZWC=@ z4v=j0NYO}9fuFKcXy5~Z`^D7S4%RXw;HMwbVV@>?8#fLrYGB^oao@ zd0E_%AxkRLw_K*WV0F6PLMaqCx_cAPOAY)RbT0ht|IAWqo{_gd;*Aq(qa}pYP@&?6RB< zn*_$K55~Z%?^+!Jj2Lt0b8ra20Bl1=qtPZhZ*yb#yH?XcHMx5MbiG4STe0!_6)3>( z7{)RRS1}H~EA-3K2w3Ee5J!AWOa*?k&UJ9U9+{5zi`)Itbm8nHI{vtPJ{dZ~Wgc9^ z=_@U4kh!q|y?KGscp9!rS{o{`t0sY6M*fxemB06w!aLY6j@Czfxy}A>ZP_{S?cmM( zSe~Ly9@U69#aDf0x6;HgTorH@)wB_TAHmxPNemT4va%k%4@dx5;IRVjR~1}ly_w;G zSpyd|0}fomf%YsJ1#9o5!QURoRp6>#{HmjPK%Y1xxayTcEAKAqvU@q19C;={1v!~G z)+0~|)y+CN4@R%x`{~O-9<Yvi^HrV#)KM1tL;C>pNl5(WI%h4*Zbs*N0t_0lj zx8v2|4iBKcBbeRQ13a9wt_Zp3uOW1k<9~@tY9{=w&<&CWaI^Hw(g%C3W;PL{+eqx0 zWE~WCp_vb8x(*I?ZUuem%YVKW598gm;aN_&`iJjwjRcSOtHzbbCwsoyP3qmtpUqV5 zFl(D1UhyIHjlxznnfoRjJ|vAv+hj=e+w?eviQDmIPbqVu;ln!{zs=F^<<-yRYKF6I zL(0>fbwD?4Hqsg(PFf~-%|`1O83X_{=Pa@Xh50I}gm9G{P6wLiXX(SY_=fXg?dwne z|4g?vDf3C~^5B{I_Jo{E)nBOwFShN*)oi5nBg&`MYU&Oy4$$LuHl1JPut=1n<#Ons zcnVh#VQ5K7$mU}NEqC~x=0&Dta%pgi+{4y(`{P!3_F^!Lv1hs+6Gbo1a!Hg*Q9 zHl`w(S7=>9h|{xTh}q^ffhrh5cf#fSCq*+L@Ve5-qBuBWj0U#-gI8CX*;}+I zWD{$!@U=KZ@nx78AV?w~%rl>~4G(p$kD-?=NS4S-+z}^XeMjKZM0+4GPwc}t94nTr zr0IdmD&nV1Yim@uE{(E&?&oBw*u=Vl}9SID8caCGi)bYUM3NK$@Sl5oG)RBJXu17kbKN|+Eq zG~SYXl|U^3TZ(n;3lAD z~FA>Y^3agF?DO& zxmKx$4DvvD6srabbpR}Y9z-I6IDMsh17I6>v;kym=_VNPbw{~|Q7*eHFEuyc-{C`CSd;Ai>ObpC zS$G189Uqnr0V4LLAw8$8^avMI`ghD+Zxv;J)r94sv4dX@FQf-Gemo|T#4ko8OU6v& zq@o?3Y*Gj*h-I5|5RKhg{YyWqgA5{Lg&yRS!(iNGn(Lby!LXPBju^%oD2Vmn{n!5a zv$}$a=dQDKozFA4Mm2vTg)xs^C#z-QL(Ik&S4}I;{KWk;&}Ai!4UKl^NxK1&YRTl# z%5{zp#dezrN}+TPs~}1e%L*A$OAJ_kHc@PK00-L{#9BkMRFF@>Qra0SQ~jmu!O3Z| zLspm6;$>3@#FkkZy7~o$RA>EnY^wdk<1sf$P9bc&J(NxV?KW}=PV-n1E#(cUB*V^c z`|B-;Grs?}!uo7$IMclM)bzkX|%>#+vpeH7S+`|2^>6A)Zx!yL9H=x|)EbAB~>|ZZm zI-re+s1`RLd~jMxY(f0CV*|8P@d!> zkwV-*5*VLL$x6Mp6V<9nG;0SL(@+DJCzy+MIvE()9hR*$mQu4H4uD~tD0LetNHpT5%@`!ss=nd?>p)XR*V5Cz zD#g=5I!7)h?CoH+J-<}VhLW*=eeCbfk~Olr8g}j41}#_^rVspl34>ETk)DKXGIN&D zE^ac8l)8ap@OaQxXbKQzR%4LzJC%lCHW^k4W@1)@(B?+WMe!|-(~kOB;&@aLYe_gM zK#?TqOHqOt3)r6xc>z%@RgcF|Nr`x8?>__E?VUE&$jV zves`Efk6eA1Z-AlZkiJg)LC#F>`@4O9N93k=+|DF*-ok^S->}41t6AX!J#c&7vz*K z4_-q*t99gOFuQ}o`OqKiDvh^K#an{=B59!WTcxTe9Chq3TcWiu|wRC6W*Dx74Y52_8Ii7vvu2XcSA`blfiQal+S6tQow8 zaj)ff5qA9j626YIemlnV551f8He~tUB(}LDts_URdkm-^DFrmQmPQw$?udFx$}Z_@ zPp@{Jik*+M7MkdeFT$hK@rP14C|^a9#V@wR(# zu4@R4$Lk#*g3?iU^<`8J3PA5IPc?t)06f^XvAK_@e5Oz_Iz9Rp%b^O|mZzIvz0j7s zM{lO9+sLTjoFYW;DGX*ESVs-IBB|2KbkC1NfNTFsh@0i!8_?KdZZumX-JL&6b=fF| zLE~rUavCc`w?{x=L=79z0WwP21K)1BISJ`jvxSTu+YW!)-GpJUp2rbvY7~HGTiSkv z*#yT(oMTu^jR5AIJUS2u0{@ zcl4~vXWuz@x&0MD3|oaAs=ui)X5|=7vqp#)7<%%9CS8VlX18j zs9PP3#67@`zD2~h8fvruRi`R>)Rpw4`mwNeR#BqJl8mib-^o#4ge9>-Z*67 z^7jN!47ukb%4$EnRBTsXjmvH364uV$k3l^_;vwe>lIciXCFYTytyCKlQ)rD(-a3KD zd(GZA7dtszY>gk0@DRVad^CJDjy+>ho`#~;tDEcdz6V-4nn$ZJYJks1VT1~J9?ISF zY<0@q3EH*cD}%*{wy;Il40t~pQFee*V@(MzH7gl%(&lBpz>J11KR zaSwNUOdMK?QGVR!8!CYipX?l_qIh4dXQ zJ80k;JU77Z!&aBzA9m5nKiEt2)yZ|R28+^3#Zl^G0tH^2rzv-=ulO|~lHA@!I*@Y_ zVBw`s%}d`s>yj7ydM78+bZj68wzFO@b<@0Udgwkn+1wzf_*ncr&=|SXScha6d*bfg zOB4j81#w_kVD0ENo_A5yiX@hZANi&`XJkKRT@iJZZ6fYWPG)edz?(W9PrdJ@T=*|= z+;>yP{t9lE^~5Cj8zG3CO)3XgR^h4vnXBj(^2SvR4wuad0E){vxVDwlD9|P-Ap`9M z4{(wYB&ddyZuhKeGI$8#jx>^MsE|cov78hJKto_57-4%F5{k{XXh_AhbtF)m@n z3(IlpcosuS36+xobLNYwn9?CLE?@ZGhS)UNklNwbq^H($6VuqI9}C+Z@gu4Kg0qok z>=OT#zeS8#wE>si)OlnpL1)Q=I}1{zgkBeN)e3UaimK_-Pe+kSDk)E4s{5hiRahCn zVcj~sIZ76+8)}H-f#YejJXx&^21yw-s};xHK1D#!{sx)$1=n2{t)ToENPFh}B!J?y zyPslIewwH{$vN5=ptVG(kBRJ!l=W#y{W5ml6Cudd#%W#xLBU<%5D-mp7cGHK|l-E5gff^<)%?XP0wI}gvE=kFNYl*%3FMb-!xamtVS>* zgG#`BomE5|=BI8w=F9=mF8v~X0z?wFyT>n(eGQYB`ku519dm-h?hs-KWS zxeZ<(u23P%ql4wn_-fR}X`6Jw1?ch_JV&V^`AF91m9cv}Sc6BcY@hUc3ECo}xTZ96 zDq1(1nYN;2uyw4+deV|jk=EgoY!bqJxAG2J-r*bQ5p=sDA9w;rcY)wY<)6KrqJn0p z3xe5qC}GPg-m^*z*ulK=a6YF)@eADzDN-2|>{l4Dc4T8g2MCdp#9Y==Fj^K3m2J$1 zhESPOpXzvsD2+s+DdR40tL8Jt>_fZMd|2pcE?L zXTM+r>EU>cqBPv*-t1b;Z^1}q0NNl*g3+v2ovqp|=He33pmOPQUs#+n^AH2mYg1p3 z!mb&{wSFuZz;D*34BR=Q0%fubg{$vV$|L+HXZl^B+ZPS5Uo8x*H;NNI=$n$FAQ5Lz z+US2Te|`VQb!bvmZh;V#Y4QSZhQqjmXQ`#Yaovl98=1L;v9MbKB%nnWf!@CGJ~TSV zozc>bcOibc4cn;vjH!r-fY_|uD`Diz9HjEH*Z1JR{%w#o1h9V-;-6xmgIWlCSnDOB4=Mr9V76o?h(V z73%qB7c$?{cdq#gZl@gRd6T)kaajGFi@Obl|qf~tP!4K(Tvu{&K_Dw{>s#d z-E%OLgFNNbG%ot=KfmKMzhmgj%hCdi;52c$d^y?OGejdgA@_IqZ9 zUlYWbR|h>}R(&?TTZ?{2^jF089)}aLt2QUGYD>b*a4+~i>YuEg_-zZq2-TlX-tge? z%5N!_zGT&A1Zg#hLW~VI1Kh=UGtI{cL;h>!HoQhanzOl1@N$``*RVHV=>Q{XvH|@-E)OhOhIr zOaPeg1zqIV_fPb1Uv`q#F0u?|#HquL9UQ zi@v7!QnST6*2dBeNHtPdd}E$eJaEiFlG& z17)0dDu$epz(x&N+XIz(USh0goZJkw2y#{gxMpQn(mt;3AokGneJ7BBhZjT6iU2Jx z`j~bwnztXB(W()R^ZAgtQQhGo6~f~Im=}Qj2;`w~THFHiKA;s8gG`>Tx-cE0E{PQL zpyxBpq+Dkn^qgiYYlWPuA^vA7bN3-c3*3_P7&y@FcaGHtV1H(E*HOgwJXuJx?RO@9c}jzyY99h=d+b-PKe&Q z+fS13lIu@V?lzx;8wK^|h!RGq#5ay`c_j3YYASLXisvU+)l`7?JVYo>KvPsq#x*5q z!Oe*D6tqOw%pOID#&n#;wgegoRgQdI+%>idHtvJX%9p;U7(%CcsAn`Xd_%KrQJqWJ zL1=_7P6kjNIK8N&tvgOvZCr#t_g>;Ak1jD$ktvFdmN?PHE3r1UuM~yW0kq&cRhrYy z`B0gX%=JMpd~iy7LY9C{)F+3tyr)%3GI%8OtK^PAuu`b5lxz8__F zQfNv%lI7hSK$K&smcsIt3bxurr1BS-p0_~WbcQKgB(gn=m42w-fFh%!W8FP< zk#|ll-YvDb9WrCi;_j$j+pQfraprQ*&?n}}i#H#>{P+tHC`jxiOQP%qrt(IEk|w$t5nfF=EiNeOsZpe5N)T zbsSS^R-YGM1X%3Af1iD|+_87AI;K*-KGkk2bj=NS-E!L<-zu`_p8q+n&L`8oci#g% z-}~V0v5)&ygqh6U((mMJrAXlN%cdFE=rcg`if_1IxG-&tFM{CZUJEmQ(yAeqK zZT9_z$ccg|iHdj-PvS+qi4XB5eyFp_R@)r5*%n8Pw?6!_*S=5_4JJnb2_!)zm{4K+ zE(3dXh&eaKZWJf#+pS}C1T!DcZ5%Cq+hvL+&2d7C8mldl=9uQ#=D6ng=7i?N=A`Ci zIj*M0T`|$*fH9JG9ozTq)wWHm-W`tT#G11c%v@IAUfsim3Famdvxx>0G{-i_9bf!* z^4~%#VfjI9chnLx#aV0qKkKIRN~eYQDu|{Y;SA)35#MYF~sA~Ja)&Dsf;xFaLJ z1wmh(aQGf^=L*b7bS`@liO&_8klQ(8bsym+v8wJ8EYZYjS#!TRlJ>ZVeXYsTTq|YF zI12JFAR`7)tg4eA4UzJE#d@SVU)djdoUdw*JkR$qBd_y4vyk`sUQLis*gKokIC-xK Lkf!TzE&u=kDziPT literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-light.woff b/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-light.woff new file mode 100644 index 0000000000000000000000000000000000000000..226a0bf83583627ed9d9575063e22d874b84e790 GIT binary patch literal 26908 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 T^;oYa-GVc%0S9p2zT08|&6ZP< literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium-italic.woff b/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..a42115d63b39e9dc66c33d6294a81e0115569003 GIT binary patch literal 19420 zcmZsBV{|6I6K-v{Tidp|wQak7YumPMZf%=eyWQHh-M($_?|;wzcqiw{Imyg3Nj@br z6AwiR2}LzEMGz3#Ef6@6|D^PP-TzlaB_xPJK=8OhK*%FOK&U&fEJ7tDl@wJ$KtxbL zKwu|8KnN%m*^O=#Rhd{pKtR?0bE5GdjIhDQ3{CBf9YH{_3qe4@0zp8)S;O+6wgBeF zX8-A*{sYT@;5=l9vIP7$`5%}1zcKm$07C_x2(WYY1OX8m_>ZgfAGe|p182(4*z-Ss zpmP7&K>c4_D1q1;+nN72R|5iq`3M4{Ui)_0Wb5eQ;`-m7iT|_t^&g0Td_gcgK~0U! zj6n8}zjzVvft-donOTO+AcLUi5ns$70lWP_^hML!2yzJ1zY!ontd0;3|09Bc{yP`gwap@j~0YF_!-FZ&+PwH|4%MJK>pj_f4wIt!$>3IpfEP{{Ojip5M5W#1UwB^ z3NT&N9HbL#2F_N&P*_~J$Dw$fRGww9%6s_0=ON29$?kUY5jB!u+dqTLveO$kH(5uJ zEKJ%O!zMV}Brdd(BK9 z|F`i>boORP(i0H$8@fkNp{iuG6hk^*<+HHaG^2ebiZ1$3rtkw~5J&;e8;HpVW^B<$tCZp*= zR~*s0V9c6qKB!y?pe1T)Hqo!ws3zJKh+KwCxFmXIcULb97bd0s2Wp}ywJl7Z82+5PtF%{G-Izy zkMrfA)Iz$fwSf{-k#PJ+mvR)SB(BMXsffcaJA*TqVw$)X8=PwD>pG0ac}GmXDBcIN z4$_i1#OqTes4@`ZuQv6BE6r@1b_#;GZ3V)@b7<*ETK-pYa+l=A`7)BSe|KX zFxmoULD??WL^QnyPI%t6-q$fbc@eqKLpV&Qr@i(;nrNh=L|yk}0)2=fMbzhge5I32 zelK-enK^=xO;_G#u5NB5#^V+o@@a;%vH{N6y#~$+7PNlkPfdvnVf3H8OJi(;PDwRF z7gQ?a^;eAMzcaNeBqL<;y&E#D!pvFe$!7BZu#6Fu-9*+Uuk*q}THo^6RlT%4n5(ua zE?G{6H}w~?YkJe-+LA7Wjz6|z6y<)=kX2EYiH-bgsrCPNO^nD+j3QSUuD3~D)D>s# zGGp6Hf^H0uvO#&REqVVO?MB@9e0}(J!WJr7i!=ZM-b+RPq|zj_&qlWXzV4KbMtwpR zK}h0i#0#yJZW|D1P--`X{M`6T3vr;UgsODV_mn>LtLf`A^(*gRCGrdgIG>WERWdql zaQ%iexpFFiY~hl!_@cc_z0H_qu~MW|@3KMC1*|&BQ{`WUJ8>v`7hbHG9wm7QJ-+KE zPHOCHVI1m;_|Rw2if0*sO1E`-dCAJLFBW`SYR$WLD1$d8^zn|&QPXLYA}rzaH;M)* zh8Mzo0&nYPFJFb^aYmGvoGXt7yT%|&#(TJyH_H>nzLnBgqAy*ZBGNyi-fyhqEu_D! z$dS{Z#2|p**Q>>)(KE@ia)VczYcBQQxr4-f95Xm3Wy)qf4A%~Jk$`jK0UCg0KGXxZV3Re|qY`QTema5?(?Lsim%F`Nm#>h?nwDfFZV4QQO; zi$%)$WFk|djG+)@VOVpI4cgLq(?z#l&I?(aetFzia=Q&A8H6XhD3|gcsxdDp40Joj# z&WShf=;rF>PQWpC=vMO3wBTgIC2On>aL!;o3zePmn#Y4zZs0L|XhDV7g$ybGufE2Z zF!DmTve9}{a0Y;vdo*#Se_SBQDIW%07YoR``p3?MSjYHb2eIe(i=IblZkv7Fo={;r zSa9UA%x%pYkBR)oKR88nfz-1<2?K(lPzmFdjd*NRTl+jpsRD5*_ozwUR@xKa4sI>9 zjz38?JvgyX1-$4;R(DP8yi0UL+tx7ctE9@bRH#ig;*kx0oFuju1&DxUO-Nr=;#Rsp0(dAJ+dTM?w_UFA5@1nn_R}IodEzSS>78M9;u*B_pF9tG)VJU0za9 z2sc?f`W5+gXk4_ec_2<=R#8Y%G5Hu6yZH}`RW^z95G6=@iLP(z-AWYHxdp_S6wL{5 z1TC~{nTEFYji;T7+2aUbkzx>k$J3bErQkrP?)Tm>aELoZ3M%(E!|lH%=~7ucm+Par z(mT-KPClkp#X&R3%?IP z4&JTZoF0As?uVDJpH=3uHTB-u16qqY+J*GCfR29pF`5sD+h&e#&0QppWByJ`?!B*H zjCrAi*}c}#C1)t%9fWDab7%$xiDVJO+{|(73~8L%&MWk<&Cbh62MC(2F8>lSU_z9G zqgAlSMglNh)lQ9+vra_&xmBN$(pDlp82?6$UJB-~t`i8JDI6lO`QmIx4w1^J6gBO?EZP3ub*dh#p%^1ND{wWU}WbvaiZXO^MT=VwS5d5 z)y)$|k=t2~-s59XaIm{@)C;OcPxkD@q|)*|1|D&hULI3T9j|(rgBMaM0?0vb)TYNLS$yeo&iFYTq;~fu zO6(4o_Mvk?F6s<&-5yGA!tEb?O3mo)6n(46cIU($!hhFbSO)my)KUi+EZzEU>w z2w8#@V)@`i%7>v0QcP=0&HNk+o5YI=Gh_zIA8>0*6~So`fzPbhJ_UNa+^yp`PMn<_J;;s5rd-j>+-`4V=jyq)|rAfXSzLSGfMpJxi0VvbLo*-Dy zvhgFf%DL*7*Wft6vS_=ZJUeYVh-}H6_+fj;I9vadSv%3J{sGkLB|`+8Gk29Q@zKGN zM!O`65!2UKpX>kasEmRy8USY^EYt}09#77s>e`KQip+jeb^Qa+bn(+2e~7!s}CT+!aa^>Q@ue>{nL6 z+$}xSQp-TH|WMh{JAL zE>pKVXq&y_&;kcenB>qiXybaX@xEr~P9aWIv{0%cx~8(+;S*+&roAWEOq!u`pjlv+ z_dz~LFLZ?O(BHzso6V)nWEPjAgyDCB`v#4z6DdE1(-$RErLTNxBbxJ1vyF6}n=%Wv z=SgZ&6j;XRg1gE%bhg z)ShbwP)sMX?8{i1SUBUa zVUb`N<>VUaAWYBVjz33_t3ONVaqQHGu1GJNeVb(&7S&J`=sJ`j#hZA{0Nmrz%5;;> zy3STR#A4?I1Aj>4yCRG8dDCEpF#yhHKHeCkgUc`W(lKE9TbupDU96k1f?7Cn z=yq-wM4N#EGoC#ZdUppD+Bp*$)FAsmFZO)`Zfe5V{e}a#dw3~mppZw3(!R>N&+0ZN zo7jdb5KTHo>tUR$inoG%kFxnQPe;zCTZwQ@mUCHN7AILkr_QY(5DEa|Q6xD}6%&pg zMIg#YkIuFiJC4e1!OgShK0&VF<6aEzW`cQrV(lQ&fxZ>TQfb6Xb{@+ zJ!?|JsFsKxUgqgmE>$tZJtjoTLp^$GjE#!v`?Lg!R!6#2wB3H^f*mdPe5u`SubZfv zD0Xv!@f!4YWb~V1N}g*3zcIq$8jS_K?sGo_WP~il-*9-)i_r>Ix)XG>-PvY0&v@K( zCQ%>jjSJs^qjjLZ^SOap6YhQuhV|%i>q!bFvbNCV>vxt}x&`utxd8R-n}37MWl#_D z=4yqAZVd!Hrq4t~ZQZvm0-TMwGu`Z6bG)2|9~{oTj7?MzqCe2Iwa2kxQp3p|D{T+z zBq~~4h2)PD{f-g$GVZBpu56y|_n?mdoLOM3M^>wcpEq7)I+Yv-RF}YIs8Ir=UojS@ zSgP+q^PC5L)51b#^O+;TnwSINy_#wHF>wW<^X%%TeXpu*wQf_6^I3np+ZZsycC1)sVLH zr(n3=IsTYcmKR0LSU>@g*dfc~#9-n{HLi}EAJ;ODkLOU!vejLF>}D(Do^0j>0JFbK zIb*+>t>koWo4{9VM|?{V{h5A}neE}6ehc<^)@4_Gm)&F5OzfUO)2z@tVY{qbuJQJ7 z?U42%-WBW>%4CiDiM-zJ2(x~FyM*w7NX=vbVguUUvRO5o|pdgR^k+MJ}}|@7GmN9Za3Y?p z4hHNV@Wyqy&?*r^Cq*}!IT4Zkci&F!slDMR2bQ0*k3lf-o>akFj>gYjo?CqDk)ydR zk#S4@Pw8eLfkRAn#Jd>Grh_)c;Pq_er2B2GXe6!Q>f`{Ex2hRyk6E>+3T1^|<%TT| zekEH=*=kiyHi4J1K?%f(PYlvU7GCDFnpd>07c`GxZ6Lpp=ID$TSf>yf=bh8F2|DPk zS@v$eZv)X|?HQxsnb!`skT!wb&-G}1o{3le!1{gMwv}F4LSG~dvx2vQJ#tlVC|X|? z*PkGJhlH_!&+6g(OV?Je?7f!DKnZubkfeF5z0 z{C#%#=;zUsGdzS4y8||twk$3T`h)YD-%gU6KZx?pPOf_8K_X5Cn%O;YZ+U|>V|BK2m3ZcUj8EOjwnwk;9=t6>8$ICad z_VYP_DOZTe6B_EYX8yAN37W3`dpM2P4tj&N5$=*8yzS+c2Gy9Njt$*S6WF;(RadpK z6TifO=3UIHe~^I}>29PR|7sdx@ea`Vv|{L*aI0(8+eU#yG2=p`a>MocXd@1KG$`g6 z0@xQ8vJBOEmW$gX0j?d5Qs^=&yj#O*S?mE`?s`@ITPRI8@5@`5yw@3?AJ9vP5N20|T zSvbJGD{>|tbMfk*t$RbFkbirk{o+`w?x^!vjMZrypC0vr0_GuFLT5>stw-C2;k5sv z)oh0B+O1KgEpgm*FjdTPR|%vYb*%zF8@<_Z%1Bd)#dvS$MTKYzxh@W3%^LwuaE z^iYvT^$VereTRYfv;20007PH;-y<=0L12NYM*05zx^nM=AIm4)#Bz+ghHTi zxz}jQeWe9ap29!9Du2QWj^>*QOE=@!yfeK&e$Icq?{77kPP+h>&pY>CMC&|!X)fQq z;1K_v{l-HLM}(kwpI_*_>PwUGMAcP`6V={bmn2G8H4=UV+<9Iiv=1r=6-WDkT=}CZ zD5VCk9adK%m_7!`+V>}4JGp08TNFr-aW`)0lHJKC;5F{A$7-FylRm$f6vCNPrQ({%rR{x)Jrg{b=_uR5)1mX)Ya_tLuh zcJ*cYO?YJ}#kS4yU(Vaa$jB(%NP+@N0tzJ&^Z{Ggm)OGeH;4rDC`hc_G<}Wj6;7_+ z7JrW~5G+_^h_u+`04-T%k+sSB0WMl*lD5kF0ykS{gSX5311el%l(Nj?1T$S@g|p55 z1&Kppma)$MhA`h?N3hTT8#G9Gkfg|XA2msNfu%99?Tnm!k~{YB?UjJ?0ehK5s8NrVX~>QQV(Bp%#S5w($7P0G#AH^ftrlhHIn$u zE|N#;DU4|D+Qq95a^9$o-QyW4E;b=vUO`TNZf1IR6B9Ed{hF@Y=8`djZ4uj3fSa>y zOYM`HCa(vqinszT5J(y=i|+PoD^%%gTQN@lE6g0VlLS_$-ukGWtIc5-7Cs?5KBixD zSH;rK&gS;N8~S~Viq~Q!UTH8Z1gu2hi;pC(dj(* zhzU~0dxAKvVpL6`(GVXaB2?ln()6I^4*i4-cV?$xlBu;A1k5nLm<)xCqh~;buh(9j zPCv=jo?@alw(82HfSb4{?5#R?qo|O2l2YfjXS=%);Xr!9>xSaZ&Q!9g-&a|XgeZN^ z_HVb0yTi|E4i(Rwc^w#%-uT`+rs4ajhyR^}VW2L=eXP-9B}IV}Ept+E5^Zt?c{qTT zMr2Nv@G(~mx3VOk5|=q8B1|LOYEXvCu4QSEtm~{Khw$V4_!lGs+W@g>&pzyNEZY!u zN-T>oi|RDX3_|l-re%=0K~rd+xrUZ$nzf8mV>~z&-alfO0yH?9LylXoF-jp6JuZV_?wVM{j4qb-EH`SxL=A|do|X^OKgg(KnElc@!PIFD zvp@89HyVH-4ehD$x|Y(Fq)v~Qm_i=8P>pi@3rmHjZ0W&^!<0ZZOQCrKFd#3ui7L-t zGVY?wwRJRM&(PrNUWlX7K}~2ag#)P5tNf0MiRO$riwC5B=llUIO7l!KD~JMSy`jVp5dpxfMC~dFo(l!p zV=Wd)o1@N6Br=7rgkLcDCTb6zJ5ky*Y>s$4+kMGyA54KQg>YRB;sA7e_>dvK{q~9| zbCXUjlCA@NCkWL$Y=HcTT+Reb1Cydb8;TvN9(2}Qe@*jK}McPyYX`HOI_9=O1 zIe+?uam8cU_hwR>DwS${jqFr|<3Fr*JsQo+zR$(p+Pz8Q&EZWF9KzMBC#^qjrJqlJ zUDY1v9#7C8@LwU{s)n4-v4;|W0UUL>=%cxfMmOwqGvF4rUjJNY=uQ|O^SyTQ*(~{+ z#_k{lIP$6T9d;yc*=_^+&rG#*ZQ;r1Q#rhI?9@=HNKw}QphQdiyIJ8W8JEP=FH(k5Oi;Ih? zD*|H*gDa@Viwg^h|JRzj>CnU=AkBm!AxJHL|5j7OP#d6N1nB)8sgUkriPE-r&h{Do z{1TwteFW~ZEq!UME-w33DJ*-*nJ#zfp|zN8Nd1WuLc7(Dh%5HXsz>Uf!2#xBH|>1NK3^u|H_fQ zk>&V^^6}Rj36E?-2R}|G z)6Ea@YBwn^(Jz>{3~U6kvpswtiJi-rv^k-8c81#%n;BVIOiqbM0TrmzS$dxWtBiv$-fXEW_7>j_TxD_~LZwcn~x{!X`R zujs*DDJ{4_e|FKYo{_Jf8-C#uBn)GOP*@bC@KEIlj3SF>NI-%rv+TgOQG&t%X2ncx zvLjFZBUxcD0{Q@sJA7gox)EFx5{=#rrvV69{GcP~@O&aOC%f~9!h2wZ|E~G%MkHCm zF=U|li#_(4IuN6l)x-P;F8f>_lsopSbk<044xPJuntuY--A!9|D8957?c_|SxWbU2W_I?z^0O!Zhr77`Z>}M|5(U6X} z;$(2^1N8wARU<%Q;XwtYv#5Q+4c-`(r~xHM0h)%`a9eBZU& z7d4S4q8T1%uWDaVoO~p8%nvWF|JeH_Lv|bU3nD|+9>EtP$rpN>JW(8;2)##`;eI6u zBU#_y%p>jXL7^h=Q0~X-5uEn>yzzY@yk2~7;B2=L(n$#qcS@Jb(*9TH!xGBy;lQoL z5XjrnYr!DGhr&hM%Tr8@9_969AEXBJ8!tiy^X_-3kpj#|5g#QSQ`-ZF57KF>lq4Rb znjS{IK9Z~Jle-6Y`Z{(OgkFxIqnft0JH7sNe}q3 zUhTrRe6L`czji#lh~sT)$_=k-k#U#6z6J-jULWK_oGgjk3&}_h&#q?#&i*(FlD#DV zBuah5p&UL>VC@ZZJY+57If90njMUl&r(ms%F=6qnK#hVlMlB}2AJEukl#-j>NvAK9 zC(;xh-5fpQQm?v|4q5hDHl81qf6q7+U3FLDv>4?_{;uTf);h0M5KyUgL4PCoA~6u= z?Lh?9?sHif5@D1J^|e4`>IBzij8PYe3P7ft<2?D*DwT6FF`D>a!i#ivY;FK|YY??h%oc0mxkr7W^ji{_(8n?}6(-I%R}!PE{%$LwqlL zve*6VoAs&T^(Xa#52tIOJY=BqOWH}jI@dFylm%%zRS3k(ad57GED9}NiSMyU2@E$A z4F32&$169S2uTtTR{qRG=Iz=q7H_Ttqv4u@-~TN>@wDYvH0)K`NCJ$-5)=&Syh4mO z40HjtTN==uTa-Dbj2ksmO!E+;iN*K0jT!a*UVwPu@6SNL(ZL9v)dJTMeYi3p%9Q2d z7TT@Py}F@F^~5N&Y3+(94B1Co@NrlsnCT3%g8XITsx!NS}SMrAV*`^m!EYj4LawdGjo18b!Y=3`JHn(IGwb%jA z1KkMu8?Jx&B}5!`Mh%;)V97|8ef!c6b=-SwNU#AkMM3-WX$sa;yMaieGJowH-k&2> zbp=4}0q%i_mz<*`&fYfgSn`iB(A3Q!5SYFSEv? zY-aYjhqKgQX_SN}fCbZHrV^SI*uRT|ACwQV&SW^NkYmlBVb9r#3mEn1HluVLX8d8u zJ6R|SI7sgnN);G-^H>$jMXebX=9#5)FPcpgj?so^&6<^!jZew6csCaWY+BHecd(d= z1vI>a4D*A(SThf3r$rddD&>v9-1lL7-clcqt;?+}!G2ePt zV+^JGHD3Fs)M}fF#vWV>FZ%g4W`YVmyl|2HRb*_}4j`AjD9-Wx7C&d$6tV{EO+v6W zOKro4ff|%~VIrTdN4x7n0uA{S=$wz;S*d@`W>wD(2cX$neEA4I%vrVVP`7O6piP^Y zHVM;a26|S*3L*XZVzk+izATvSIi7+leU(hK#41qKQ@yFxvvX07E*a!}u3(3a&JtD) zc6H~C{FG#7C{?3HUN1wN7L$whtW?cMW_eL#Z-ssut#zNvOy0+8y9rCo;b>y?RZ)nG z8=HG)ibadMuyF)y5A?|t^?KHwo30hEAH?fqGkm7rXrLa`Hv6`Ax+b11KJK6QMG7_l zVMnZw>EI<0IjA!<_1+C!!CnV)ChIqS{w|t7+&nnD?51SbvX1!px`G1AS;yzm3Q@EX z%Ic-&XQd}Gx~z3%8JB(s0C`7^o3s7DZ}0=0_nXmYGUx`TeJ_pAG(m}Ep>HsRX#B1d z1&OWXCXd)Pm$2(Y#V#uny&B85NU;&C#Aw#`EJEDnLlMS9mmy$B00_k0XD;R& z{$=i(=50|f;^eH;%85%QK;OR9nS|nJm8|4X0(3Z_Pcknbq&M#6f z{Evf^w(gMj7Fgz3Nf#UF5sIU1_Na&9)x+>Hsg=OKrHgsE+bscYRQxgaZ`iP)-ahnV zzjcldp_n2Z>>T}|&C>TXC;e_M{Z58X3C3FzalB&ZlE1(E&jzI42fkjv&}PG&&R`^G z7H<-3@A2BkqLr23-5~$_aO35SXNHO`+}uyXotXX;!M)^p>2#0d|LXp>hm@Su#l|6? zx!8K)K6BsuSw(KoerO@$Nr^0(S_t!^LL|nG{ppSskTAsm_9_kJQdW(UVa5?(fHGu? z2uL}{u-w0Fy$h+*-Eyqp^pRe`<{Z@1vaB!# z9~6)~V6vX4_7ESbjAy$>4*d+WymtQcm7T%EaC##I)A5gjor?gfg#SDlD#FeMj)<+( zJSd`pn0~}RClxiBKqTLxTJa$pi#wo+`9v84VUyBHYqz9o?`PTpxT@xE_ZS z_gB!v+-a=ZjR0|rj712dR2<@tm%1FTEmrv&u4TB}gyaf@GdSgc~`V-z?^#*-ZC~+&#?GZ*( z)%uNhUrr+{4P3Ev$}&lpiQ$am-T)KF50tQLCKQ{ZOC+mpArvI;M#3NGC+6fhPGcW` z<(NP%(iI)4)op5On~dm^*_4^h)DWum&ZYThTPw$xT5(B;qKT>B;$2V~1D!DHnE*i) zZFPg0-}(hQ+R0;Rb|R%mi4Z;pgz4Ip)PMD;S!;CGHS4nZmwkU;w%(o6l>Db=MjNkr z(GVlIo`1vHdHqjXp7v`~UAso_Ge7qL1t%+`62g5oK##-{%ZzAEHM4rEa!y%0muY)R zVm{}jbD{Q*rhp6yPk?CV@W?KSFT(+z_1M2NbCNE@ zCjv#Wsvl?%vu|B5%!14YsA3z$VV{Wzq|=WmNE&NF6J*mns?wJ$7e|iLscgtA&Tlwp0%f^)RQg$XMJ3;q&*boXL`MBI! z|0k?nN>f-{J5Niwk)>6S@r%}SH^1jf?{VA5{dQuKlOaY|8=rh5;$wq+vXbpCvj$9MDyh5JZw=T&Cgop?DOSCX;*hCC16$<*(o<>_wQa)M>K?&eV5H1 z{ou30bR36@rry}bACbfW>$l|2<1R-UU#KX6Z^KRa+gC~3E#4whb=mUsL0!uB&=H3J zNc5UIjf#lz(9WChlDhb?jUs&9X#ze&GLjvC&*41fQdg=b3nKtsC@&QO53F-z!N z9a(PeLER0Gznn*Dje9|8^^8WNu8abOp*t+qFmv*sAh8CLRd!F@>lBG3bHH$h{%^iS z1aTIl|Nc|hIJqur4HdCn)gH+*?Xx#9W0Zx+uPg^-SBAZ(@wW_wE)uaoUZr3TskIPi z;mV2P4G{$WkqIDNnYa4*CJ*Crpz5&4kj*(C%vY+jfXaEW=dQ0Sh_N9F)vN(XKrbL` z$d~Ah#6nws^(mMel7J&CKK(v@UB|TMG!U_L_=V3msLaq?N~n;3W>yhIHTVlny_?WK z{0oTRBiU8iwL44BomKpt30onamJcaZKQ%W!o6+et2_bb{P1>hOorXlQeql0#-F=6M zcZ7&HbY&8Hc8ET?A{%ASG+Z^3o#6(JJQ;y>ZlD2g&D1I2OWqvTDu5#g?MLLxl&ja8 zUP;PnCaCs=Q$zUS|2X_Jqd#*aTpJ%@%G~wDrw3n>;%kgA14S}|>r2kTwhP~IB`F8_ zDaMo;JB(m14Fx&`aop|FW3TT9INQjKj3l$c#ifPErp&x%&CSIw2cC~(wD;O%&b?5V z&Ax`*@i=_N+~yP)Gd0DOf+I^=Sj$*cb$Gho$Eh-eVMQO$F2+ami7ah&jl)^JW2z)8 z5u%fYhB~~+B=Mu`o7O^T6?Qn7;;T_psN&eF%3NXhuxOFX7~Kw_A_%Iu@~bW7!b40^ zm($-oA6u%tcAz*2EpWXbtTsUt^pv|)T68*fVO$#SHgbHCA5}-B;TDTqUW9QZN zbZH!5XdY)ls!BZhHw6c!;US*{pm9Z``8NbQ-6_!Q4-#15%CS=AN{?m@az9&xiNilf zhXCaEJqoDsOjm59&`OHo@q7jzMoVzLXj|7qbDLY4PgTq!Zq~j@(*#AN>I>LZDRED< zZuy4seV|iApeK#i1`jddCLFWQ#?BQV?pU}{wB$?XgQm^J6JRjujX%89h%A{w7m#R) zWBOHdb&}j|4P(51!9WOd^OtycVRw)+2#PUkNg*w-5>=q<(j5Z1Ciu`{dF3AS&sJNW zoL%h1XOwwzPX3;j9+hVgfuXB=B%^CmNk%R-nlHOa;tkSEo-_@$gWz1n3o&J3`3qP^2BDSXr*nEY$+(h?3G^{y)aY!pfhB3o*Yaky3>y6nK zLm1lUhQx~F69k=kt^2SNU4uPffzQXeH%XmYxeZ5B9hbKvgHnt4>WcV z4sEnluvOD!wO#3cxD&$>iw{r#@Pgx>#)Upu8%PX(fN?|V{6SL7_EJ}=%8I6_Q0~@^ zWW4KSkV{Q_zr|Ux^2P_k*eaTL=*xegd|A_<8sk2F;z&pviP$~wH#fn^tRM0X>g|ov z5>C>7@467i4kQpPz{pD&uAuMK0=}O zl&n_<;}MpU$0O4I-`|(ue+$Q>Rk7*`LXtWk1RM`_S3c7Dq6}P8DA|}e%eSxBYiF5m z4bm)DcOyMkl#y=*a=n~a&vSU`J-kiJ zJ;L6bRh4y5Go$H6H4(tQ#YEL6A*y((i_2?^e}g`20xm=>c@jmFj6XFaxkur|@sISo zjsO+5aYV^{Pb+N6O1k~;p)hR@`)t^xhbV86W6N4{i&O3DMCbK+US;?ypg?OSYO7ts&a z&KReS8HQZ?HtF}AnRl|67dQQoTyYl@SGxdCVaB_LXF~oz{&d)5naE z$}f`oT!msC`>{&&>4!;KY;UohDu5-6xx%f>_<0hYO(o)It~Neqt*O`wu&%hWY`( z=_!~qOcK`3FG9w~f97aF>fYWxxTQz;|6$QZ!5@z{T_eyB3d9%jX%!#4hKp{z_t?{+75x z{P%Vjz}e*TU)WVO%{{MvLfIgIfV2;0fc0q(06b+!MrMzPhga$3L1f6gF0>XEH722= zs$WDKsNU_YFhJ0Kw>B{rtY2s*tyelZ4IXrs8LaD{i0{X6B1y>Wc zS#-l5+z);tvd*(>?47CfLu$w>$KG@GgLkvL(tR1$Lfqq_&Ysusg(bX}A z@zhR%SUPnHVL>6=@4F-gP)nj8&#%F+y6U8)5tWs)?HrXb2jsgfqbvB)$Nm6M$AMXQ z_V{(B)_unV;m7^+w$&%?j&MR$K=5qFOvji`DH#hsTHI7O*x!DW-EO3Pp#@Yhf zVha@9LlkyzBWV6LU=?j-?eqw3ItMU|4FGK_EC4pUr`00LL4X26i@RtEhF~75x;y{q z@oj`h69cz{MT(To2@Y$0GYeKSdg5o!@i2;%+`-7tAeW2k`0b=Pwcb5u-A=xO&9Bp- zaNlN1t3kKJNlQB_(-#)K_s3JweEV*;K)CT>7+Uf#M1&-PHQ>9dtFw-iL~W>Og+KUv z1pg%%Nj<;nfWIpGaa3d*xb707r-2_Ym`+>yswt>(6Kk|P^d1L%f`r!^{091cy2#7I z#lSa*!mqc-=uV>FB1)O^;l%$8!_lLe+w+GkYhGo-$!prGDX|aeR=}jx%b9~-_32;^ z1ZqyHMQTi`@fTwgXTYRYh(J_TesJ(Fnx7cue8K=of-wXXPy@sxzJTzC*@E*=L$x&L{hRY7okku zsJKJP*R2RVQQ}n>XI2&@8q~wqq1m3bWe@ptH#8gAc{el~=zswa4~`UsrMgZIwPs^e zUYxv&XE|7mQ*)k{yAHvrp-$vS7||OpWUJ{tkPY2_diHXJN&h#jnKJkj!c}rkm&=Ky z3$MQQ1!6mP%!g8=o7lr4^R-~ck%*z@n~L_eovfa#x_Cve#Fir$vfVDL34%ud1Gwj1pfmW60#!EU&=w;>d-Ey~;EQdsL0bG8o887C3 zoqb<^d$@n^o!(HTBM}vuukIzYnRZqN_wYOKIB!SzH@3WI^Q*0G6aV?y*lFK|ynbqg z8}IT$wLwf*Z>c3k8$2dcv0YQA^TrwBGIa2U+C4oPZ7FfaTS>bZ+)rpUeoVQh!Jc5= z%*;(_uJ83-Z3T=MzG&&mdwS|UT|`D_c6CKt=YA)B({ zjNj(beL=G=E9JoVKim?Ol*Qn5eP3gLjlt-W$L(H>8m%!AL$O}VyrB%e(I8014h3<8 zMD*pE+#N~ZAaHspnr)z&!(-gduijGu0fe7pzKN7KN1|&glveNW>`s!_XI;nD_S`Y{ zHUg*Qllm?6LrqNAM(h>oX>{4Cj+4Lyns@nJZ-cOJgU@6})X&DHl9urJQ0d zmlB{~Q?F@Ky3+*Tr^R<8uH@Em2s^ckH%9a?AoBmlA4olsC!7`B(X7k!c<pGF#iAb|PB zkkK6{m)Z)ov!@WQj30XwN;jW1V-CgEqSSf>tz1jHp*T&C6X39rkuOQU8@+enT~t(8 z)7i>n?iQi;9f_~s(Bas}J?NE`clkbE$K7e?=W-xptgSTE^v9oK3{&b}fxPTXWYXh1{9l4796Z)!cM5aLoGPaU@zRLmWv(S-PZw2t>E5R}N)}RApGZJ! z)7P^C4iF&0Hz>|t?df5qpzXe%AHri^mMGl3yd~yc-}Zb!aDR1Ny8Qg0*)FYLC|Ow^ z`QwZq1ILFe#z@LlPV7KmVLVkIG)LU9#;w^`UAA9pTpXsvX5+CB$3Ue7(2;zRO~)E&73M%On{sb%7$3NfA;L`9nthphCgjB^m(HGj{D8|Jf zY!N{LB~^~rGXZjkJ~9DdAv@K~M58U^dx)8vY}f8k8he;y^N92d*1SuU%u*#w&tF{3 z47UlNQX*z%CJkpNF8A-7c>Q1ARmP&WY146^W4A@eKa|RCT9q?_ z`YTGhl+WX9Tqe_5Njr%-7Rl(fUe(Ue&%KazY=Mim1WSYpe0_r66xDEKRi0Fg+|Of6Z9;<`&uY#`kex@UmG_1! zMskkP*R|H-^^1?XeXLJ(|7%jaz#mBpw&MxUQj+e1l zJzm#;^(R*8x#_(}eCQhLx+?43MJxW|cxDeT&YtS9q)gn{!Y#qYjLpGIC$?NXaI5_q zDSA3|VxiN1HfW?=F=59mC^bB%(^~|;8n!8@Y%jxc2F$%VYGs-+CyBPTdk+k*+05yjkSS^ z*2=){lwK@jj&Lo8aXR=g_z|To3o4hi7U@)dptU%G!YB8L zUpf2;?tM@J;qkwbI;`)>>BD}inx)~h>A~uRfKcFO-RwK&_w-kmg+Ui~zt7wnx%jV; zjst)TsTU0mrI{5K$(bJ?$rmNb8u~w$RWtIIJz`|L9I%%|Ej?W}T_wwqVAfvUsZn3dv{k&a-bRg90+ zaScz{qgZWPPS|nNe299ZPH~m5Eg8h!B+M{0+lR55Y?2Xgr%X`bN1^f2?Y_GBP9X)7 z+SF?Q>p|BFsvRXL&*5emHJnabpWn-@V2)Lkz_Nd3N(=Kbslvi{fc8%em?x-RvZB-v~vBbiAu_hWGR2{4BN%rBgTE$%I7p)#OS@|n69rPh84tV zLb6<=`#HoMMj2nz{yesG=x;V?&%S#zdiVr(aXSt=<2c2;CBqRM<8paNBj`m62Q=5v zWgMqPnME4ilth5nB24$;X+|jpkJ{nWYnkQM2qUAsl3O&FubmLWw$GJzUUGJa#`OLr z`A+?)*IqNtpqa0ujc&*@nvn?_m$%f5^>~9G&7i(trE`zdU3m0MKJlRZ!bL^2Fo+NW zZyz?pkMF#5E_ZPcDMVyYA%#ilJk=c|om9e4%GHT-?sOM=go*&OEJC8A6g01%yrSre ztwfZ|S%XmfKr|2!%mqt=-NBSSZ!g$O_DaYXY7b2~wsXPx>ilNASPMJBI@v|m z!|t#_mSSl(!^7O=jl7L_@GgFpC-?wQ@(KQy&+$dR#8-q*a8W9%MZIVhCq+zL5^-@` z42f}(5g!XG3+l*2mi$8j2!fZ2$e=Q)k{_r>{-mhM_{^4bTY9 zIB^JCP#;FNB9FjP)NODadgVOz;nrKwL_vHxWKa>+(K>9e7}i4xY=BbO2%De`@TbkN z1p$YcEek!B`$b-<1`aCiQah&ae8<2pT z=nWu;;VvZM9*n?!NWlXbg@-T(k6;`g!xMN46YvZs;W?z?1x&$9cm=N^Lk_)xY19hd zdyxd`crm~HMyCAoe^X?TjSS(19VC-~i6e_~rWDFiS0F1Pg1Sl$Q8ltgPEr(HY;Y&; zJcb?oYsY?mSVkm4NY&GK&i!%k zx#ymH?!E6#%LpBEN4}3U;WTY$@HWok3g(PBj|DBSk&B3$N{yCj+}g*mbE1M-LX5$5IJCEvq>Uhk71;3|HMYjPiwi{wwp>$riNxP>L$#xm}p z7)>7|i=>+I>u6wGyQZ=h+R`1eYxY^B?Q8RhJRqmSwE32B+FXm?KaYX(6IwhAB@8eT z&hfH3ztiD+p@gzoCf*%LzZs^bN{FRey_4vXpNcgza>d%+w020+$c7TitUGW252R0p zZ~L9*?Gnn;XVsk7`mS^j1LdqtG-H6Nw2u-*ZRDuE^rPC!}=jpliG}hixHY*aJ>-kZ5%laqtFSC7C&7AZ+u3-_$$#;{yC1RJbj5~VX)%PBa zE6Libe~2d9{M{kDWKWwNZFc4R#v77*+W%hECVt<{eXI2X$=>lDB!5@C9{AnNC(R)1 zIU^l=i>C|ZMO?-l=COclSj6>YF68Z0<0^aBP(f8$jjW@g-L`z357|NoEHDr8COstg zwLQSu)S9PZMyf=X$qTp$r$yXh`Mj(HmgVoHmb8^e?b;9YACljVT4&Oz%hqHeUzcQfl{# zvQ_CdR8Tdqb!?y}ze(1~crV#j@&!~r=vN9i!a_e_oKjh|79jkpHhB@ETdkM?P zqHcwbRq?)t3aVJg25Q(u9b0JNA)08RjSjkq*0Nzh-;mr(=52o+s2e*)()Ap_o!(E+ z)^3;`BQ=i=k%ZQd6an;w+8Y;N2yh^U~ z<_2ogn`E8bA{%sX)ANvQ>f1sa9dy~j`s@@MpN0B;I^u~$UW&e-Qe!r8CZaN0|9$Dq z`e-?><5ueHd`}#*ABt}PsUQ0o7VfFV^yEoK{)8VNr#tj<8rA%m-L52GvZ(NmVm?>( zO(Q(NVd+|N>aMzh*HA$f57d2(b?FV%u!%ah(7?9wACk?l{~lU=(?-X*U9v}S+|}$G zlJPrK`GNMcqjSdDnffoc^s0Q($~#U1(f^;`EBR{54^g~V9{gW@3IBooUwsXq3|G?K z*xljyB9j>VxVp+)*ki_nZ7R?C-$eYMSF)l7bc|QZVMks zRpNJ0ylu%cncaD_$<43+o_6=;d(u17pGtp*Bm(;K1O0~5kCc5U-A%OfzB#1tsODi! ztH$4z@2eXq8%m$h%Q)!aWXzQdCFf#PPf5-2nAv3C3fUX)3vb0HT`jcH!LI&&dWK}W z`^QH=p4X4r>RWL=&qT|oodnUtWZCE|MtJ&^XM?bq*6Cy;am9Gn1*UW3(L~~0Qi*bpf7FxM;cG3+MJ*$vw20U!)%JH zqb_Qaj+*qzZKElj)!W&cAF7ETQoB-ZFw>~9INLKXb*3{>+fiQcsz1z*Z%)bM|7YmE zzT$sH#%|)4a7G(W!|60 z-$#`d|M`Bs|A?MQ{|kE>SLvm$bBv+Q>}%loxkK*Pe=A9Ef{CopA<>)bJO4^==Pz)? z=&wBYP41I$7d?#SUTYLQ!4W5@vEK=Ac!IZsQ=<1R&&euL)WWu!X85`L{+FI=*zx>~9lKimD)hA)cxvHu&t@39YwGTr-`a(Ho@Uthw8DX> i?aujQ=(u&hpzqI~p4;ck@C%mzBmDYb*-G0;0000+1zP+7 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium-italic.woff2 b/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium-italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..16a7713a451ad09b4351a550b1d54345ea7c08bc GIT binary patch literal 16000 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium.woff b/docs/v1.1.1/_static/fonts/FreightSans/freight-sans-medium.woff new file mode 100644 index 0000000000000000000000000000000000000000..5ea34539c6f54063a4a89213bfffebb244888eae GIT binary patch literal 32072 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Light.woff b/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Light.woff new file mode 100644 index 0000000000000000000000000000000000000000..cf37a5c50bdb70f837f65c6233c0be5e4fc8bfa1 GIT binary patch literal 50680 zcmY&;V{|25*X@bjQO8Ngwr$(CZ9D1MPCB-2yJPi9yP0K&6;a#tX-pO zjqNTkCI$cje3zkT0P^<*q<#6@{vY!n`~Mbk5mB*kLBKa>{f*x^W;l}K3i8U|+&KUM z8Uz49kl@hhiij(#3IPD%4&OF6007g$XcuTDuT0PMeP8wMr}YhkNNbA}V_U;-4J9Zv)Obtx{fO7b64eK}95Ok5YExyTbPUPDr{00ex zFIa(vt&7JuX8{0!DFFZo3VJ6eI5zgi-@2+U006S^8x=ZVppdqP9^dUY8hrZ^{0E3g zFgZIzThnhY;Csxj-(!qeo7X^fuy=L=09v2F>-q@*;39$@OH(>HnST2Y{nwZ8`2zWU zf+gwgkwrSr2pgn;Bno^p^TUcqasVSF&{)$bLV0`Fm1x;M1b>Pr^X*gJ4|Lw?3li)L zx%-V10_kYlByV;#gtl38?W#m!L+oFnZ0`NgQn9L9xzV(u+sW&a_xv|*lCTFf9=gX^;!WkNhB)_#d-^G~i*o1V45aaEpROenKH5=lfk{=C(vd1>s&fUu|A( zbf%@bLxCCKi!s32yHt6==&IMGl^~^Ow6Vp2gT6;*<8jpLZkz*YyDCwOC0!zr8F#$T z&h#GuGZ%l6MSQi37&CwKt7A91r#mfG{wvJhq#HiRAIlHMS{K2BOMWXefQhRcP|U9~ zLOAoNd4Samr@z6rzxlCNX8i%Nb=|mQNONJ`^K?}&VkzRl>frehj(ijS2hDp3)kuma z@@Ob{neIm^z^|UgJiDkR>@R)I|wb;zwocqE2)lZp9y7yWVgCHXUo#v=E|WnCmRion{5Pi z+_QIGP?6=MBpC^FAzn!SCZ9tv(#S;y8LhW+&o~>k{z1MolEYQQpm}4&Gd5C0{uS5Mc{h00VTnvo&8aC~n^5;IWs4!abbH|h0xMh3v23t2?F~0l(28ApF_ah(2_E<3T zjOC2K@33AXUGVWO9*ccXA`_dN*Z8z#y2eDZ8}p=q#nBw8nv&Uyd5eR_rPW?kT`oD~v-FR`6h_$lm0gLGcS2Ma!5my>#+-AfF{-qz zbY|z#OoYb3r17)lTWmGGk%!^tQ(vifP}{*g`R^D^N!7MVRz({5V!pGby?7kZvdCY% zfGA4NEY>M5rY+V*LQX*v3MX7tBch=xf`42BZ+AozA@Ho9$p5mWp^;E zbm=Zg7Yg+Y9#KOj%l$`7nzU4m3VArVB#}KbsGZQ}(KvMrfg6 z*wm3_a88fMC!7ZD_s@GFgn+acO{8yyRsj-p~tIqK-jXlpIsFYB1I82o0s@R`!7VfkonE$s>M zS@YqGVcl`qRbw0G7HVWQ=#r$|N%_-db0QUX;wOd0^6< z)GXiQeRXP|J^XVXYZAyf=i>WDL{r$GNIjVHa$CSeL!68p!%}uPHRsH(Fl-^Mk2khd z&XAojE`(J~BX`R>c|R^=AAW+siU6#4ePC6O@ST5ilvY%V!Z(#G;4K$rJ}4&Bv~20( zjH_PGtoC+jHw*02>=+jR%R#5Oac+Z+~ZG9XUEzWhCqWKOr@zz*(|V?cCA*p0L}$ zo8CJJCePL^sc|5w|9UQnx{I9a+1c$l9`4;8?oGgySC_bWshI0I_4(v}Wo4hqoStFD zc$y+Vw{PFnj?;Q^FS?moAAWlQ;O`6j{8@W}#$U*BUUiO+bB1!ig}K~K@`;qc!@5{0 z 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 E0I?7Y`Tzg` literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Medium.woff b/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Medium.woff new file mode 100644 index 0000000000000000000000000000000000000000..fc65a679c2263361a257094d35efba5431eac4da GIT binary patch literal 51872 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 z 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

4^Ms(tkTAT$IaHvmd`A%eqxxdw1CI0a{az9 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 I0hlKM0JgZhVgLXD literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff b/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..7d63d89f24bcc0c0f5dc3cda086fee67da266ebf GIT binary patch literal 50664 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%0D2G&3Y8fz)sfMJYF&mh7!l>Kv<9rdEn*UI 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 QGqXAKIiCL_%0K=90Nq5|6#xJL literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff2 b/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d0d7ded90791221663847f6258089ab9bb76c23a GIT binary patch literal 35536 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff b/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff new file mode 100644 index 0000000000000000000000000000000000000000..1da7753cf283671f5d127c6949074d212a843c58 GIT binary patch literal 52936 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

tOoZDe8ce%>V4mauJPm<339_c?PnNgFV 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

8wA3$ns4i`zle@wL zXrh$aD$I|hlrP%LM%{-nRY-c+OQw3H0FWMyc|R173Aje|4`pUT94u25kW46r<%=pA z6JEk{L=^`K4X`3nWf?*WEUO4mMW}`q6e)QTP_W!0#SKC`tfWX;fRG4#=?KUpRKie> zO118cO>+U%Dc#oZwb~TaH=sEKYFk$|Z7cGceagu9VROp7 zHQ1uCI#V^Lx=+5W><#$6wWHMJH($2q%K7^NbuEyEHx-T6_veTZA2kTra>uu^pbYb7 zXY$rmX^SoJ^_Fi^LABOYhHvh?oZZNVL20Jgrw4=sq=8X=6~{2fW6oXQd@2dEgv8c( z3uDSZvoI_O7r`1<JuLO?g3QvfCa*4H;|e4n^=5d`yNy0S&v+fS-+$3~0gzu$F)_Fqc3(jpfLFqv)XC!iKECepq)s|K`3P*#m8C z+}I4)-($W*ZJuFJ2P_aOSiD8#>m;7+A2pgDd?GxEP;&UhvBrd5WNqyp)_I@SDrD+* z@7Z8>s5R6#{NV%%(yXCVSn22z(LIcHX>e(L=ANW z-j0~cnw*?+lJ)55Xgsuh)u~{WqMjMHFGT3Dvvx^Q3 z!i2+-U?RPAyyjEngxf_}pr({MD8CT&xaf|j2LHJhg+QONAu_OlO*zk|L)-%#aE5O) z1j!H`2z59@z}chuY#AcEOJ=@DF2h4~o9b08g}8RM+BrVWDHVSlBr zpW+_0^8z+i3fLH;QE|>Q)Ov%U()^jD+w|cUoFd`=lf(Mm{+y7Ag$d)l`35~ml=EbX zKy(Q+Q)m(sLP(fg_hNg9|5#xQwUGSNU)JV1udI)$6dE(q?sk!gn-!z33_w4IHRM71 z8kJV-Va2iiL+@Ez}R` zRpH(Acd*Uj(}{~IeW7J;z%NNVlk5vyes%*{M*bOjY->Hi^i5b&6M`M+SMTPvl~jC! zPD*F=JQm>}R2Ad=^qC!4_48HowN(p+zefL7jP$1O?_p6nr^`OX2D{SdGeUcK$C$Kw zupjQRu$;0`udlp_1=0VXM!hE}cKHIH?g;~piONnES@~a}Hz39 z9E*|-xg6*lr0Yu4OXZR-A2h zRcB9w@43eCs-?pt4Z!6DbKX-sz4HsyE)ZJNX-QphSKZb1Ifrwm!KqiAvYpU{={j=% zVzhXPninrN*z|ph86ojbmk>n{8z=pt>}*B-iu=#R6|li*9LQ(ZG%CF7=z?OcgPnOl z?&2~34@{iIq|DQ!r(LvHx)SE2r2TCMyg!XAJu#MAF5E9ZC3t#a&|S}5JjRhUD=;X& zq;X3A(62X}+V3p-`)j>Ga`)r1&nKi3rJ#yblo_Z$bt z?zlznI(3UkmT$jQ3cqhD`n*SQFsT_w;Kp`gZ3*(mVHYyCEkZUS$o{DsSR1^cU(A=o z_VfDdjK#-kvN+YvsET-qtB49y8Us&{qzWT8R_-d!^X{J7on;5l%Pwl}T$@t$F3VAT zPeC1cc@_{i`8wSxBdwucTwDck^67?R^oTr+MU~dW%-K(G&idQx8E934;_CK=9;90< zNUe9by8<1?ogIRY&U|LZ-CZ7jDTEUS5+80yEL#W)mQMl>E3f_Xd}ohEEZ93p|N?H})D7Yxzo6@8qw)-&UeB%z|r24IZ?*L8js zkE_~$OJWPd+N;ZX7df?9=YgLetj~@b5lvDQ@W0OBC>@)ZI4f2A)ns$$w)NSHzHH2v zJV>?LGe+aps%XG#Oss)+qS@JT_g-fFGuM1snVFJb{aPrz_~DaB%d+cX$J@WxwOY(- h@zZe_lV3JKRvdRg6LS4>E$I+WWfr@y|LMYoe*#6Z(kTD{ literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff2 b/docs/v1.1.1/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..79dffdb85f745ed98906f3f28dfe833acd98e287 GIT binary patch literal 37592 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/font-awesome.css b/docs/v1.1.1/_static/fonts/font-awesome.css new file mode 100644 index 0000000000..e7dcefb822 --- /dev/null +++ b/docs/v1.1.1/_static/fonts/font-awesome.css @@ -0,0 +1 @@ +@charset "utf-8";/*!* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license(Font:SIL OFL 1.1,CSS:MIT License) */@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(specimen/FontAwesome.woff2) format("woff2"),url(specimen/FontAwesome.woff) format("woff"),url(specimen/FontAwesome.ttf) format("truetype")}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} \ No newline at end of file diff --git a/docs/v1.1.1/_static/fonts/material-icons.css b/docs/v1.1.1/_static/fonts/material-icons.css new file mode 100644 index 0000000000..76de20cb10 --- /dev/null +++ b/docs/v1.1.1/_static/fonts/material-icons.css @@ -0,0 +1 @@ +@charset "utf-8";/*!* Licensed under the Apache License,Version 2.0(the "License");you may not * use this file except in compliance with the License. You may obtain a copy * of the License at:* * http://www.apache.org/licenses/LICENSE-2.0 * * UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING,SOFTWARE * DISTRIBUTED UNDER THE LICENSE IS DISTRIBUTED ON AN "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,EITHER EXPRESS OR IMPLIED. * SEE THE LICENSE FOR THE SPECIFIC LANGUAGE GOVERNING PERMISSIONS AND * LIMITATIONS UNDER THE LICENSE. */@font-face{font-display:swap;font-family:"Material Icons";font-style:normal;font-weight:400;src:local("Material Icons"),local("MaterialIcons-Regular"),url(specimen/MaterialIcons-Regular.woff2) format("woff2"),url(specimen/MaterialIcons-Regular.woff) format("woff"),url(specimen/MaterialIcons-Regular.ttf) format("truetype")} \ No newline at end of file diff --git a/docs/v1.1.1/_static/fonts/specimen/FontAwesome.ttf b/docs/v1.1.1/_static/fonts/specimen/FontAwesome.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 GIT binary patch literal 165548 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 z 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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/specimen/FontAwesome.woff2 b/docs/v1.1.1/_static/fonts/specimen/FontAwesome.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/specimen/MaterialIcons-Regular.ttf b/docs/v1.1.1/_static/fonts/specimen/MaterialIcons-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7015564ad166a3e9d88c82f17829f0cc01ebe29a GIT binary patch literal 128180 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 ohyj3!`#ee%L;DTjx@8!5k5~VH0QmdE^#A|> literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/specimen/MaterialIcons-Regular.woff b/docs/v1.1.1/_static/fonts/specimen/MaterialIcons-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..b648a3eea2d16b6ce783906d6b7d5f251b9eb56c GIT binary patch literal 57620 zcmY&^NelVwr$(CZQHhO+t!`$=Dp;-onGnG%1YJl`q9)OmoxnxQ~!cx z7yTwvL_vxFmrDfzAms%BFq1u;FO!o|pk)96AY1*_{QHG2qyvG0ft8*u0022U001yH z001b^-7WpDiJrqRN5%B30sjv_KLEfcmTtzs92WpU*)#y4J?2lST9B!co*@9hGW4&8 z`4=pp>u1uYzvM6XUw$aRAo>Fc^vBf7(e;Ws_PPwU|4;c6vAY`D4U;s#9fGPn0SECQP7GZX@2I3WUo4pB*5bE|8|@Fm_rEMeislDJkxA(b z7tCUlVW`i$#DWbQZsJMnX?Wci4^U?JYSLP9^{854ZTD(mZmHb5Kg#0WKDy&x2*LAw zTo>W>_}n7h_S_HghvODJCnAQCPwY%2)^GlIWGK?6;jNOlF0WOptuo*kv8|j_g}1_c zE+(DP(B{zS(DhLNP{BA|<)Y%`;w0l_Q6WO2EZKL|*ys_L#EFFrpqv(C%GE%Zc>Y>~HgyL!|@;oHhHQP}pO{tpwUsv%B#6 zd!u<`WFA2+30r%fO!U*(zhn@xA;rJNv7)dPqcC&`Gkpup)6p#8t-&S%`VH#+Vw47 z1ZrYVoekY6m!+MmkfSl@=(83Jh>RM=6@_BZ@#m2@gjSQDm~M#;i*tlcAUFkg;=PQs zMJnWEk_2tyBE8hNCL`jfI6N%DY2a%&bpE?0I6k{55d>M94FoUL_axD8r2MZ;xv-@Hvaw zq9i|4u;P4|nOd?89&S@e7$fg9w5ik7{;s1p<$%{Px^pXA)ZiJ*T_`9A%ZsrKN$)%D ztOb7M#2uWj)1nwnb0-iLgR~WM*q`jEA@w~(cU<3;TcGz6UD5z$GW#O`20df8;pRVY zzoC4zzo)g|0FvRy)=K0+BCPi)KabsDwpTdF%AsoFeo@XLYf`R3tW(N(V4APa8VTqO zYaFp!PT=^&)H+bv3U5T*5vk{AeXej$R;Oewpd^)uVn0)o;zmt7lRTM9REl*{mONZN z<|S<4WFKxe0$E{t$xn2nCGWG0$W{E${W(Sw*BQ{1U**^A&8 zI$rVs&Q8tZEFBp*nancPz{--(mmK4uN7@+{1uq?=-Qk{v}Ai(*JQ<Qb) ziI9oKiR_8ziS&uliH3S=!6yBgeC6Harr>SJm)-bB1PpopT0sz{MF16qoR^V~HVCLue&LVU6e$yTtP$;v!eHTHBEyb|!?`@o*sevdTrHJeop zwT0oAcEND0l*idnVa$A8P(K0ZVSeX`ivqs>8G5=X`&lYF5ee)Be(wuIckU$q*}<;@ z4r2#7nhUhaoUJcj*VC0s$-JYm=`HaJpLeRxTzn;J_aSv6KyL2}I@N-Vcnp-x5iQOX zh|qORY8E5lSTmQTC|@~e(_QfIL@S-9IHiq1PS)wZ*$t!IY(~`< z@a6PU3WzmFyeT?es(00UuAHM@*;!`}3SHx%=v)j#UpfM9*n2$NSKt9wR?y-h;`3^0 zlYNOTiCjHHknv2F8#vP^LJ`;lRH+t>(JB&-@R!sXn&Y*hje6bmXmdd%}w>*#3>A))z4~D%XF*+~}&sYg%I=ANO zz+0?E;B}3LCnPO}qgGQ!*}YM8HpXcy0t)~RdNRI{N?XQk$esPOG6h--f1AR(K2Yziif%z`E-CQd|Vjt8W*X++>o7Rd;B-rq6B<{d^Zlfz}sJqYrNd!pa_ zv~xQf91*{23mLP% z=BlE92usq)WUw6&Ro)nNR3PVL#>GlTLTK{`kJK^8KKJLHq&ZVA4;v&*36q<~QinCH z8E8{4&WTw=(-taC8{*&Y)m>{mW;<|X=qQp<-?&t`l^B*7m*i@fXMII|Q+)w_3;ssi z%qnt_Hr$~Zm1?=m@E-RRyV`{IWmoBEdvGCKTzT8TS91N#R<1Np$x??E36qMGdv<18 z-6C$)sM&E&c*s)~p)A_WQ4HKo+H)oAY8H!rC62qL1M);9P+;YW0|eykR*VC;U+M$b ztVo>Ecpx6C5U+sWXwHg;;i@n-q2H3Oeh+`um{bho(vHgJ^=3xK-bvtgD!Q+M%U>PP zQpY9F=}<8`)-ouvWJa~Y#!7b;#NGKhR^V@_k;Io-OE|z-BG$LdgV;o>~$$`2S05D;l@z?Bzz6w^+;vkT0VL`Ae&SJ zB7L8(p|q!#^NJ=dXA143B}42VU%KTfd%-Y_rKfmqA9`_DiO*O)Ij*dIQDvIVs0itZ>oVwYF~0%fjhehYKuIl;r$d0Z{9rb$9%=i zll)UXq1#cW|ECVFNqkfDd4YUbD+D05 zKJhAu2Ew|aPfc~ZCwAyQQIaVTo!aw5f0++2`+ zfh+wx1C4~2ezj|#t5caIHkncw<$=cm+JOvG0#m%$7+%6#0!l(uf>y#n0%Jl&f=7Z$ zLQ4YeM6o70Tq0?r$v#Hbi&S>oK*JS54wtBrT`Vs1WpP4tXE5gz9&el z<)-MSY1?K(>7M;TV#DV1BQd6`oqLQz>u%LYpC1Rvxm6ceTY_XuJ75~{Ri=3s%%yL4 z6#hikAX3@&grZH&61yjBtJqUC;@0^)_q%a0ZOcqWj3q!fZc&6{W!}EwL@8JOWf7;1 zoQZNbbVuXgqUc6R3poRBwF2_1*5G{UT9_g>pDmxZ=^WXsVIr-I@^#YnJ7jA-{r=6I&hH zN#!;#6L&mW<`MItoSS0tjqbmAvUogwxJflVDmDxZ*!0wKp7%)JmTY3p!_` zuHK_rDjtS~%J(<3mhcsP630pGaY|{xrTNUfkyAR2e)g|4d9Cps5uy_j7CP@6?Ks@& zD@oo9BS^C+ub8IcqJ0ttGfTxPO*MC3*);KI7SZWza^_vsPrlMgp+5&xU}>sG!wO{^ zR|1U!mknKuS7M8-wzvmTE^0?UT`PZ#$+IFUc4!P(5pCp z7b^|QjLrMQ$J5ibz-r3ga%PbOV#S%pE>P3v!h1SancBz>cSRYh9a=?~s;+s)!5DC* zhs}NNBxPb9{(sAtkPxmn)jm0+ne-N z2lo(C_W<2mr`PV|o*5!yugWoq57fBC^<~`xOZF1oV+Rm#!ZGsuSX|=0F%UyrA$%G| zty?ztS=*)7-2(-Vb5h7{7p#o(s;ls{VtRUJRB1_!?*J5fg}XrBY(FT1<1q@kF3-Y^ zhnto$jkY<0=g>?wnXk=`bXj66^8t?xUgLvG)2^uBq_m?G_vxMFH=`a4q-<@Kqbmp| zB>9l;CEI=+e-Y0nbj@oJ-|5m&y!eb})kCwC1|#U3#rTIz7s+a~y&WitVNrTy^J0QP zwIFd`$;0bb+`Qs*0EC3WQS1V8ibwY_8okmt%#-<84>$><$U7m0&Sf-WAIODLRZMEX z6z4JIJ>naiAf+1$V0b5GQ)-z#?pw6t_le&)} zV-DC~dpZj<`;$9K@y1FXhCI1<#^4?rl&@3QgD*^iA64x0!*B$+-7#UBWae z8y+5zDNDMW@1WS~!l&nI3&`zv23(b{R@kq!TJ?G{OPeS2z68QOa^h?zb6Fm#g5F+o z)565l!C0(>i90JJxK{xo!7Z9YB%l;G^8e{zs}KkH=E%>ead@Px{N;^xTF(Aih(%-(+? zaga~hD5!tGa;2Ed?Y7$VXPHjdNo>w;!jS;vL-J0eGAf_jEREX|t+DS-aJAM>a5*}7 znxOS_w%Y_v2!zBtliWNgr))mBt4GFNwi!;Gh3WME*}6}k3xFV`x< zLD6p(sai1gKU<~W5+)pyia28fSaQrTgkHOh4BzM%63Nh#v#v?$&}`kf48&L3fT`n} zq#E?+Nb_Xm?Xz(|{OZrxw>rH#%R1G<7`Fc2_ev)>5@uLnxCqhCGGIhAxt`=o za^rrmYEHK@DluA_x=!V0@^BC3fAe}SyPQ~?ad?~UXb`nlw!Yfj+{|txbSMd7OU!U^ z31UYoXj2)e46Auaq&@O5RqM+HH=mYQ{FHa^371(K-{zS5*J4HcUZbAtFDM_a62_-6 zhtjg78Cbj7yhMLTeqNnor!6X?j?v`G^whuBA<@G&WVQfbwss6WNV-0pTo@PYS(Z53 zCa2LF9}m@0K*EJ7gjNp06~1p~Dy68fV_%EYSZFn8Gv{>>FAAwXWTt18!lvP?EY%Dj zJ{}%)BNQKEpm@w2jH8EjF{LIST~-emATQdZTNhm$@1yqG(mxH9+IGf>Oayn;ho zgr3_1dOlpex`UYIRWQ*kUV$b(>T*L78OOW=L{D2zt8r#2)vTRS+NJPn4!cD2l=Qm> zCDT3vdEa6wLRLjfiTICBfIoE$nOu4he>^|toeqZ@MbCguI=8ItwBIdT)m|eG?Oi6W z`WU%V4M`Q~4ttQ(q8WLKZu z)AEbW>s2UiCgjd}(H4BydS_(kb;>oqjG*>GE|Maax~k(xvc8e}G4&zh&cjs3^pD#^ z@PkjZ^}lIv7cOrzZHM!QMzVVPn}?c1-aE(K4e)59b(9Ah2J^b*sf$s;f?FSaq%4I8 z3a%*hEijojCk&wi*oT_EGG22(GR*KWRjiK#{>^|Cm^6fj&b4K1D;idpG`RPFgi!&PcXzh}kwqAiwc$otwH-YVRm!q#YQJ%P&Lnt={ZWph5NFkx&SH>mQ z9R0T#;KyrtihYj6#PX~5KB7cR z=?sG$Sp{=PnlU!0s;KO#GxD8*}K%1W8<)k#|ooe|xCu5dRvXaU1MaI1r2So1D)!R|?Qa!}` zxlhNyu~9KGrfH1xF|+c>b%|O~;B%B!EPI|KN`=_4Qc1Yp1==k*xOyE&NUkN5mlY&V zzh$6;NIedWNI<4KD%EZtUn4p+(tYL5Kw7C7wed;|XI9emiYee@onsC2S%OA}siLnl z!S+<^Lf(0UMLl|=aC01W2;u=7WzJ>{ zCOnJCQjx|}GGWCScuq%(aeLgQ0<^m-b0x;3!Lpct?iI=ul-&Z|^fH?u+=054X>(WL zn>NGRNDmPHi=JT2!JkQy?1(1tP+uS`hCK5cv-^~R!vpy>lmEo-_Vuz76Pagjpc2=O z8S)vwxs()yw7TDz!{?|Dp;-&H5|;V?vO8#9Mcg_)`w?WlyUHCt9hN)hQxnLf=!?t< zE6X8qqtoFLWT?@4biJW>>KM-xl#~fL_k$Z$Q*^lA4g^YIGxaqaaP{?Q2aeO>(NjxFMOT>DrUj#tD|h-~DZ z+t(`cessRx)1Ncd?Y_c+#?C6f3c5ebY$1a!M_9Mxg6KNWaP;(PFG1zj?ea>=6H#A% zFd%fbE;F_1gl@k&tzMy(jZ(brs$XX}RmE7N_rRqzwf3;!xiT)Wm_%T1r=bt2Dbym9 zDkv@Hu6sKC06mUy>~J#@xR+c!LN+T@Ipx(Zh?Bx1*1&br5(;UX!y7!eZOmBYuvi_4 zF1nMcm?9z~krDCw_86JSPu>L|B5tq9rEZc^P_81~)Cze+Y+^AlYG9dB`W$e*2&=PS zdcWqCi6MNFa;yNWi9V9Ml9b2}G&kWnF_OKStk{z*H<%VY{{6boH(=8aCKLAm5gN*t zeu5{QWszDudu;9I2BP`!bZYO}%78#G&XA3M5hBZsU2TOta=alk=9kIC-U%ev>2H`G zwQAymG3vN3mLIz&l95`39l1cts_>&+Xb?X|T_F?aXBtD7DJ@;Tk+V+WEVo*k9bz@# z37+M5pP;60!T5spyVwhD2y$Zp;yl2OKub{etR6o}-ujDm#Pl(Wj_Q^%>Bss(C|aZN zw3!88I9;>;cFcK2df{w^$}td)k#l?(&dU3{XD8=5CPU2DxX@V`E3NNYYb#}EVJ~x@ z5%F0$6Hk=+Og3eL2M0XWQik1p^l}Q(_CHg06Bisv6n-YagwuLAE)BW&(~ zY8&0+G6Yx>fbN)UsVrPj7#AY2KhbRCo>7vGCXS2@b3AkIqk^e;nS@q`S&wWC?ZG76 za5BaVGco-O%-aAm#v6jtTvZ$Us+wURw`iH9r|-CXvcZlnDsbGcc zng6y^2tPHL_U$;kT_0(ghBIq8SGr^!hA-t~lnGd4ZR8zqWIYaN-d%=+kjtZ=gqku~ z{}H2TAxs9m!+!^fhaiBy84nqU;usmE9y}HW{8mwh4Fac^pji`U zeV7w>w55Iy9zV;rii7Xt!lbCS_IW>sXasYt)Z~YpA(fIcAIZMBHbnOIOTca63;grI zhq0SOY1>+-q?3B~b4i6+BDc2x$$gn8TF=Fkt3&5j7gU!>Kii|M@z7*;p4OM_@s}lG zB)3flH@%0&bJ1)*F66<~#<4WG14QyR84(F>t zJKwUP&Pz!#tg`QyL{BW zq&#q%U5FDtB7@T!?hqtgrN+X*skIAOv;b=zZBB-ER?C=Y+FCc$9q3kuEqD zyIEA-9LCD+IH1UYh}kwjYYs2HlzEG!6@F2rlGiKC|oLYe}fe zMNTJ;f{1#%58fpE1)P?&3(K7oMNPk%V$IYxgjyJXu-ppe86kDvmI2{o^ zEMV15dI-8`$+R`4U)P4($zoo{F4nC~b#OLQTC_sygyfj>?l!QleK$e;S!t1%o*pCm=VN~xwzT+le6Qq|bE&So zAnwtuG&1RkMDZIpDfRkHp;s@sqvGRYoB8iS8WqLEw$ag{l&qbKnH(O!3Wv({tZx(9 zrVG-Fh}u!&`2mB;R|cyvJM*)x;n=-!**cN9;ew-;rIoC(ay~fUia@`{U-Sr(Nxic6 zV4+!?uwHc#lnM|i?eH8~?ehpzOPxQ~^F!dn>jtnR*b@u`>)?i+dT9yg511ZXTEk_9 z4;OQX%m{^K1@_@IiEYsN>B0wl{fq0=P2>^sk}{+`-U#B(f+NcLDzb>uk_Q;oB4*q5 z1eXenJkr(JGeUp^6c$xV;wJ^ZfKBLwHTVp+oXD4D4RJu;*dSYZ?)zFP0)>jFI5ns; z`MbmMhaJ4&%i9DLOBwcR`xZ)8YlT&Eu?m#)tLu7|MMfTQffpqmvaz%=Y`E1ZO^%rf zB^|h)Yc6*YtO0R>N_*kNd54@5&QbqB`3$ zGxc6r%uWtB(G2a(H|=GJbi%E8e)UQG2OHe4oej(3FH{(QNe$gC#%85G^mpwV2{cP+ zWYoo??vPGz|NdOn#EZND+(h6v;igqoGHaFCcrOr>ot@3Mb}a!vi_BdWF}Z>YMev9U zdQFK-yTw$t1(V!_`xhBV_7KX6&dcoRv;lRCYQ?R*BMJiOkn1xm-CL>k90M(qla^>L z7u)BGp}ZzDI#zoEd^%Iy^W1JYEW5HEUUeEBDK59j?{Ai96-ITV6O&f@dg?dhrrJb_ zTLx0aWXe*63u#&Z*o<#=K-e>24OJ^3v<;@J{kGa-BI+k6_eO^snJVy+#?&bOB0Uva z9dt5nD|p`QbJK~8x!L52ZS*Ce0xJfQW@?;tRjzo!(FMyMW%b7I*fN3lC#Ubhqk!i zBY@}MCB;}M@2vF-Gbzjo@+>|td`#wFyuaZ`g+8nDD(5;Klt#;MxCbvCbRvj9Tjam2 zv*QNjKO<;Sm&Zv}doO!Y0diJcN(7VF$6@=f3p2mgmLp`=R1lNf5{9+09AGiB3xu z9U0v^z3hM7sJ^cA4#(nPq^z-3iW+7qAcJi{dw-%NMFosfx`@mT3=|0pEASo#k9K%S zs^G`yjm+Hfj+%+#otuh9U%s!RnH)HC1-QVZ;WqfD=`AyFWB^Zv9rHVMy%o6iN2aGt zbsQ`3@O2m6)J%SKDV-;)5IupQM`&6Imt+kvqQt~`(=Q^+Ha{P~u2SZnhT4k!EszM~ zy!Rmt6>-*?KinXOMO>r!dX`=j(ML);EE`t2RWKb=a}R+b)yBKq+eo7bDg)FJu2@Hd z)_C->k4dsxo^d_r(^h9b!bKN^(jh$2Me2wZAij(4l^ErF6_uF<8inX$N*KfrkZk1P zLC7}t*nyNWX=O*><2XZwFQ>bGC1P3x&A{h8HTGUYx_PbZMD9YiN(xmKlUbq)euF;T z!sNkeD-|>ry^R$@joo5C9RP`ou0mKW^eC!Z|~_q>TqxGE^JW` zgD68I9UUEgEdygOKmmNLuHHW&7--O+A4b14Nm*vmdPwMXfIvmiFIT|9Dd1Qt737dR zM%9guE0d{fMrRlOUke^q&}wr6zifDpRYpq(Sc?Ig|1=ubkW0Du(+?`6ilBHbKWGwx zm;_>CVb5MmqTydv!}7Y~-E1#`B9b+mQ74*cwvn_vVe~i6UTeT(&FO83$w?ZG~rF^Q=s^Y5r zZA6^(srpvF$0Oi7!B?<0wwNO3lF-2R4rjEG;UC(Z+`ts6B^elHE%U~6rI6B8xp-X{%|#>F;Up=Z|NP=H>|JzW4F>e)sM6)%MxX{!K$` zCRTLHsG?zPgXFvTJ72pVyBxb3yBNC`yA(T<52yIpDyOB`Ld56^{Xgw-{dT++eGsjP zO$6e-J4SRHfTF?7b0OD;A9=jo!8no7+|gJ4qU|X-QP%F9&1hhA9rYo*K<{kN%#wvQ z#-s+2UX+}`jAt8bYoiM;;jbOL*zZcu)?EK;^zgt8kv_1EXEWB?duZ1~f>V>$n+Cm2(X^CTUf`&zZu6m_X*tPSIlDwKta>5jV!(K-cNO-mK( z8L~#4y{Xms^Vm^In@bvwObEyw_9ZGvdOBu_Vt#gH39Np)bcy~ri?!-y3xHD#wnxxD zs_oAzD1UURp(=SZMuQR-$m1uKpV*y3ErRm}zu~L*s6cS@qHpt#Qx?;MG7BYySOmYf zS{S+umlE5fNuedLuB-JMrg)>hP1)ippzz47LK4;d~#PEl@t4jljp z0HBEy)ck8t1^o5p0=WWSx`ViGs5akrg;NjF58;zHBPHll#>KbSQBw+(iJv*jXJWY7 z{?G!SSzjD&O;b4uPfT9WFpf+_?%d$v(gZxDwrLwX?zE}cQ*oXdc+Z4Y7gkg_Omn~7 zqUg*1`TJ;YnNL6XS20YHz@C^uDBIyDjdAs|iJ;Y=&i*TT_Gj~F=8N~j8@fz%2xl{o z0Zq6xSF95pOaXP@vRieiGoK8M*LJTTjK-0=qPl#w_1|@D$q$JaZLnaV`H^~4s>y-e ziB?y?1Q&LWd*ARd6pMBKzjesZNtpQn1!Vb2d8OWILSPph4iZpD+d6b&y^4*i#f#!{ z%+@uFUNYdjR+xh?vH(a&u1JzoigdDjcBz$eX8S~tY_vbw74Y%3W@N#6T(zqWs8L0) zj-F$$ms4S$`|;-Jw?6K2$Y?q8>{oCh`**UdKJD{iL{NDUL(HbC}$2sXg*i=+26DI`coUniD8kh006JaS3WX zG>I1KO=J)9n;7OG`F*;NV2xfhKId~W-U|gWJxpJ(o76IGN5Sd*bL)?VW*hz|F+5G) zDBfo8b`R_0)Gd`%J6t?JB8OK1MpduT8KDZFQc32DV#6#bL0RbXt0X|W{&J*P|~e-Ycu^>GyjV)cXW`i`}0ND5j#f3 zB{DXVVO@R?N zj$H%A-%eL^S+Vj$U0q3K%vh$#p#$w&+Q~W340=zT2RXL_N!xA|Mn*G=Byt3?Y{r^4 zzgS7Al&~hIlbfd0pw>e7Rj2oQ5e;C};OARprmNX*{Wt$&WMJLV?}9N9Hg2IbJxp*! z-`t;vr2@T4Uh+nfMX-5flgtZL)ctDz$#Mv%9C0)2CyVdL2>=^!7 zY64g&U=d9NA|I)T5mu3Cn+w>s=oZN#**S!z|p-)!@HIMB|zQA_7&R z(TnGDn#je1v%^+~;b#&bSr$z{jg z3}Z41!#>bf;|OXnuA0mjqzC*>m+2@Rxt^>6txplh;xfM-8e4*qu}rFqLm4zDxx-Sz zk4}VRZ@XXCK4=6?U2hGY#g_c&FGA<8i zgQxYOh7}rb6K6v4tQ$(S8m+C=D=)ie&O;!L<`1LTAk5W%DRIU)YB7Ru;N=D*e#g3? zr0wPFxVXdUNN8JF1!NfuByZI-50{k;Z%hn1i;-wS5rRiQZ0-pZY-S~2MHeuUo2^Yj z^d{eJlG%yg@^H~rG?Q}9n6VRS8FY7lRy+i4OM{YRV1 zxLrT&@c=S^*TmW{Y8w%ar213h2Y_}c+udPyU@9egcHDC(_31ygMa>C=*6!iq`g3BI zGkFqj>4Xjd9Dwm7dsnJ_hZF)1fD4UbaqA!KO??S$$nU)~`3eei+s2NNgh;u~;fDyu zxa=N82tjSVlJw$)w6a?OQWo->7({>5Mp2&jJg1hg&tYRA>~VnKhQEPVa9uU+jEmVE z!e2)wLfPaj$;!)FNP`UJQ$Lq5?q5;gp@nr#%SdK{>7^t2DkTP!Pq1G_v;&-G5YQl> z&lqBBbWPKpZsUsUjB;jIpF5~zc|dHC)aEGnrSZ959e(>ki!31B%+N6HaeQB_VQJ$) zYWyQm&tA`Q9(?voO%4_o>cGe++e?Hm+a7`%0nzRSd(i}H$b}6EPTKQE@CFzYsRsbV zO<-u(8f;|SEwdkdm|(b)ycAz0jVCpk*#WZwrNni$LQj5I8i)u31kOC+)C8=_7SI8z zm{9S0IUlD+h2^)IkSo0gpDg!)LJ&*>h2)^n`=X;&F~=AnxpA{=&Cz%*(KXyhsG)Cg zJz<6bt!eF?Pi-9vE&=?=HY!IO>n-smT_c@)^f7J&b(>Oamr-k2eu`*EWXTbSRQ#ZM z7^ZfOn_=}~jWCz(e?mYp)zOn0mzR~b*2%O1>i{v-D19Oder!9v#p(bFlzyEx~NR(#3&6kQe7&=O>N#+a8#GMFS^dilnJn4 zi1c4$t8A)Fs0-6%6pW>|!n#jG?2|=n`QGwX1Q@=mW@?)1ZoW%rp`KM|mpwrvJcozr zjVBHB!GofNn7JM-@U@JB*%4p^{vgCUW-gL04|Wk+#fMF|o6lLgg?RdM5#y)h>7~Oo zP$QCwbfC36|2?-qV+sO{?LOw(9AKxw^Mz;2#?X`Bs@fF`70IW;616T3O;jHK>076j zgi&_!yl(I2n~bH&cZ2W(mPN{-$yUBujL``fI*dt`cA|*HYsITX?KB`V*qPrnP!lzg z$BVLIXfd(cK2cr&5D`v}`}zoO>uulmg|$4vd^@&}pyu}>_tCiUo7UUn$U|8PxA_cQ zxl&mqo;Hd67$J&_-A3^G32blFA%Smy9#3&Zs}vc-6mH@A;dt#oJTf0d$U0tefBUi( ze2n^uX_YzV)8BSUNT2{14~iMUsNVt7BU@$>my~q`!`vTqIr4#?RAWKE5Xp34odH0= z!2ve8S}kaCX;%!mf!EYJ`kB>L>;Ze+);l+JRB7ysO3!YJXV)w&QI zg}xroV1rIv;V0Kl16=!P5N^I?y;?92q`hxuB;Bud3M|+{Ni{u@&7bo-FzSn)l zY~`^@>=K}BBQ;}Q+#XZu4(=Fn`)2m+u)!k-G_>)UdJ*78UUl(<>*P2>@BVZQV5hAo zWdV$`;yyP3TZ3{RTFtno>T&DA(sXUt+4TmfK_BXYdXVNN5I_(bXG|D1LSh^9VT;y| zCpA&nrqT^h!G~aZWlz}4#k;5_=GaNjYLL@SqR-NUh5~Zl{)Hw@HTgsK$Y98DgS&r# z7rj>}&o-u{u_3iYVfUxYv{`wdIo8er;YDxyMH zVX!28fL8)SiwiLX+HepTd@VBLGF7d<_zh#^tukHsh1-u2Ye?|!@S~rvvlbOZm;8p7 z_!SdfyIusPt5*6}RMk=Ui-?i*|lhrKy2hiCCH} z{a@(TFv_2pG+_@}jHS$RHm6yAp=!JK!LfKU&a9(#Q(Y>cnBTL=nW-^ZO0c1BH6%jK zZw3{1(BHzM5B(T|nmeLVO=*Y=+nWa>q&%LQN!wKMn0Vf5)FMS|o;K+Yr5zQ#$P5 zFg~G|Y?1Fk+3ZAhIV;!-LmP_7*dU&ibWyQ9Uk-$m(!wHBRdOY90tYPT8hK;Z@ca6@ zJ1{})hP<-4q?DDag~ja-ab^K@&~kA(pdz!`Fryzo(ZD{WdNj$ZHfJBtiiN@UrPkny zJ6cCDpFD|>U-B`ilxv1+2wOV;0vXgig#$y$gQ3>PoVA+oXIybK!Q@rU3#xoj3<)7B zOgDj;Q^M!^@b;zl1c4;sl!>DJTnlnw3*$fQ+6Vm<&Pzn_C^Jdb57e?<=#d0m6E15i z9iK1zIz@_Sma~f2t31w|4#q}!F53sc-JfDx&3kc%DeNK8@?!QTFp4@t$~g*>Hd$au z_?_Z=aec1!ZeVe^8ChBqD6XmTsXTxg#>5tIruKxle$imQ2u6155Gkkv?^5x8<%CgQ zWRml$ff*laDKm9|_n!oQ5uNe&)qFLesnj~~u@dmO3tchZ6szr|t(^UX`cNRK3<<&qNnWx&VOqIInKK3wkQr+F@BM>gLl1 z=JIi4g7!8DJ42l?txuQp1oU3_8dFjh`ksh5Sr=A#D)oO*y$>~nyptk=jLuS^RubVP zk!Sv+0+0muLTV=LWyJ!ND~@u8?3-?fX7wue?;2mEnItj1YUxvo&)fhviuaF2Eh*x$JdD-csIjW~)&=oKD=Y@5D zzWA(k@|86e<`*}GkT9?1StV&jCI6!vG@n`co_ z?y3XSG8TvQcKAHIG`4%nm|6R};Ry3Wmk=OT(ciG+uh$H!}vG-N{$SsUD>zWAl!;I-|wfQ|y-z)@~rFB28`08RtSLizn}dG1lpvbu(MM4b2fdt0Vj zMn~rDo_`bcozzlB&xZ|vzol?Ps>$i)s}&HsCRyxp*0ZfjP7MMG$XoT$dCzR!Rad(iGWZZ|i7E3C%M_4yu=Y2%y zDD6U}$xYoHzk+*+qZwr=!lY$84wBMXv5FKJC98E}ZX|&~z6&WS1_3aNa6X|};8wx& z4Amf)I!IiBKA0vDf)cV*@kH0G0{A!_=D+18Xfas>fspz;a!CHr?>!(w$Q`|@xyo33 zumRun9>55_n0bAxa{?lGnHkyH8Q%33*6KG_EDZ{0kBZMP#bW~+o6-4ThIFBV7Bo1c z`T011(VUflrkCOCzsx#3(^>-L?FEoATY{eo6yJ4-b!?rbcVUuPPb)9_MMN5l98cuO zP9Q$(@MR4^4BYsL)A|K{a(32OCjn%{MMXYx*X`|Ptxz)^tPZ(TsrrEX%R(^Jtx`&sZFOlrsKxnJH{TUwey9>m{ysJ@I z{AAACnmx3%Ji__ZCkPP`Pr!+35kncGdc#)#c;O&v0^LCIPwP5+0Zt}p6>unz?V|(g z)WFOvv8;bnzdBHBU% zNlF%UbQ7$ia7qQiBkDCK^1Kb|E4p5#9oE^{msLot;F90$9oLBIq4aptx-FA+9b3S0 zC#Y16$RCtdL>$d8Oso{ThTSH{)~N^%Nws5ffvoRZHX%bq!y6d?q45$wYRCdu(ya?SFth-rGjSg|D)B0Xn((j%D-ITWgS-J z1U^4K7Z~4)B$n~r-z#4P3;o{S3#RAUWaQh+V?X^~Ir*;_Cy>1=jm|NT%IE;V7BNUB z2QYP_Ban0ebb2ZDuf-8b5@{=K_pb7IBlRZifea|`Q}`Jvp3d!&`K7BC7CLGnQ@-xj z3z;mxu_WQLySW6%KrQMwjL0}jj z3K;?a9Z1D*$6XrJr;udlV`S#;T1>GF;sqik*6a&xSQjQjp@}DvMrt2UFTY_qef7cv zU^;Hkn5|YPH1Q>P1WlMcTuxuNu#nDBtK@v+;ABV;RTUiH)6Y$u?{l7-hzv3b+}PS8 zdQ2PJw(+>>Pz|~-MYb)svsOcIG-y5L!9+jlg7!ZUCD^H^wdnUHqGXp~9a*G~)cMp; zpdaI6%QV0vfkQIP?JL}>H>Gk}Y7(g6W1HZVoSR)Ox2uL&7&e*>l_W=47?@pNrN8!Y ze2h>NB-lcnU8S9M{0r-xXUl@kMM`^|tAKIB4_{H$m4!lWx(Nf~Af1sKV2_8_O zsH`amIy8j3wr-lm5)_$Bh;ib9E)ogl*tK5tLt_FHpotu)A}3Stj43O@qpO{cO7=HR z-mLS`)=k{)C%cA<>#7k+zNY^OTKX-DgN=hIM*~gouk5gnIjgK+ftt_7lCe7`CL{jy z6O)q@g*~(HAEF5J*}&vvAUo+_gF(=QvqCm2d~B39+mG|O<49~0<#(4_uRu5Ob$Y7G zSak_8R^xF#8a*&KC(O*4B#*!slP-z=3}1~2iKzp{MnTA&oF+V2+2(i#-F#)9GyRn% z*#s-eENNko4yKS}Wf^vbG`UE&hQu0aD`j4!?p6eYIkHH_d?JxgK1K8}JmZ-TdA(k& zGGo}|4W$_`&rD5`2i{bW^S}ev>kUma9-a|*u4nHOl^{0eVG3l|Bjxqr6yx(T-dT?) zB1E>ky`&d=W<5;AU0Wg*a$r2{xsz~sw}Nm-F-@i3CAE{mP60+BX8Z9%@9Ve@eYBoO zYI{^0G=TgjVbuZef(LHx(cB7vHhNe4Opwz~fSY$Unvgz+w<21zi0K%)tOL?8%& z>}Cc*aE3FSo*X#4lNOlS*&uG#5-aVjw6l4oR@@}{Buf~Dv!vDflnBdtC1=5sqt>!d zI)Tpjt%Iz);hp94|JLdAVgB#E>IRA+Ig;-r`#us~9nh$%uCDOn?+ttCb)r0ap4F1t z{<*pR+3ZP8b~znmd-u=jC+4S7JtOPOC%}UL?>ZB&C0HWS_-&WWp!=xI<6^rKi3B{2 zAeG{hvOA5A2;*m+l2qtzkESeKC zQ%a@#RlRtn*pP}SXr%mKIemJv_l>)s&_Qxr#|EnVImHo$T>qFT!zB8S6y|~4KuZ-n z-$Ir_$HwwtRl_2jFqc$@W`+}QWS@%eZafWT^d#9YhaMR&Ib_Er=J$vD7X7tR-*Egd z8@EJv>o67qzGUNS*!M`{)C6M>4uF(XmqghJ$x{m4r$RPjFFgtpkqWy34nRgyv8>cS z$v#PQXc+G1Ci|(pwO5Eg!FO1^@YLR$m!A8|o=-d!9gRc-!6+Mh>cY~^FMs8^hd%LV zfoNnj8s(A}lK6B%Teg&DAQd(>6FwW5nC(6j>FZc!vT_McI?a|H$_AXnr`|5JY+8B- zHs@$_*;Y<(Aj?xLldEKR+Ge*J-NwsEX(mmGQ80fJ$h8|{H^ArQ?bMvLV9%T1+!Op6xMY8r&Pxt_ z{__E88@p&&|Iut@o!zH|;lQu%&;=E)j zm?yhkV8dqThFeCFe6KQepb52Xdbx7~Cox#XsOX7M=-q# z(1?)Llq>pj=nLVIaCqd~l=>V0pj7PdVE(blz( zlUtVA@;JI#PG|`kmQ2HdS<>{;_oA9EFfb61gb|9KLnIji!W*~(cL5xS*e_&HXMuX3 z^)$@?cKW}aW~+D(r~R+OX;W52Z>*nYRoUGV{1;$tWztXnH{N%j zi(XGX?0e`T?kz@o1Y7=DKnW($$f(#fnbd%<8fK-mp=lMpuIs#S86?5&usofhnLr|+ zd+dt$F%537YZX?8uLRp%iJ|2U$OR>kTd^Xn8l^R?|6c3qz0zUo^#u=dxLHuE5f4k; z5W1%Db5u!rEJnL9>4J3+-E0_i?2+=z@`QGM?T3!!WE0wnG zDizqqyQ0kxc6EJy)6#TMlNi_FS~?l9#vu!v`s*L+zv1JR3Nw1&cFP;iS1LALMEBv- z+IPyb3Mo^pAAs6U_!V-4@LO@^vsYs!WYsmGf=y614_RoPAwSTr51>W)B_IrL^@sZU zLM#EN@M+71I7Ts-&3={jCrKDmEjC>~p)Pgq2TeMmU&s|_74k44y}}4s3ygz} z_`I|mc!dLC%eM?Iq~xeaJFTq%Tb3UOJ$OK0!eoqJDrmL@j){C$P=~y$})T;26iQh28gnQSSr0Wgtj|J&932v>DgBCO43$%EETVX@% zclut3uh$?e;^#T#@5XsEozA;;W;EcjVS&;sHEHMBRe|an+)lq?n$5}8$=7Y7zB~Df zkdx84ONHeSe#WHH)3*i3?@8P<9{egv7|e2JYGY&SqDHl;vj4{#H?t%sgeejf{lF7+ z9e-Gz_20a(G<{?3{>;=RQyJ_MLqi>iPceU z_%Yci7DI*sjUli|rLg}pNDK^vb!r-LGg`#I0oNgkXq%)}eksfOX9X5TC5aB>n5S!V zL2!oOAvYcvxF!t*pw3gnT!uyZD2;)>b5c$ywl53*HLn!=?m39=HOIiurYQK#>*c@)F3qdq@c1UQ{QUAeaJYWPt+MJ36}e z)?1%Y?nM6ePUSz0onhWHW4GS=_)GlCOOo66RwSRk4zfTZD;9a1{HW){vaL;S&bO@L z3x~g3w-iu^t6c8OHNFlQwISlePy%J;ts-fn(y$sGeTgl^W^To--&@m^C-%pNpBf$e z&yC-T&D`=5UhFummml9BOG!fAc^gEf_MR6#v?9?XT{BqtYCHZyiuJ3Q8V z=(!_D?ml|-Zl3;HI9#pOv^Vh!l>YpUH%em8a1<9UHuwybZY$wW$pbL4iniiR7mHv; za{BwxW&G|bp&%TCV*Q)*vwKs{iu#I`EB_g#Cgs-8Pbn31BYq}Le3#mm7n4x)P;JZV zH^q!>-s78O*A4j;RGWiUh}jKP!A)~n zStB{WX2kBiGj{Ncv4aO=cQ&qC7t0z^Uq$TFH+XsJ4ow|G;zdt8_K?hFi*U<08a=&}2JC?RnIh&s> zOj>#}D*&wmuGeB21vi!|x9kddne3LY$Ima#{%sU}Jtqo0XHS})8y|P~CA!Wp#iEIL z8ZJNo^|4v#ue+n@^_lkYdK4z^*0Mv1Xl&_xSEA4Te{Y?B@NYs~pX?q^5;Ylo{RveE z_F33)T`B@EN(432OGWInfRVJu)*Adou&i;Q^n)?5f@NzuL(B=UG|&Elq*Ju|O&78t zWMn_fUVfP!dc5&CQ`xJpvYU!Ukpcy84YHsjzfbZyQ9_E1VudcC+i16#3ANJJj1cf0 zp|Jl-V@=czaZ@4i=9u<{aTJDq)1Y#zlUC6bIY-GO;Gg(ObD5Q%b@eUwgfs4nh8&~K%`j(k^s6CCh1k6*r zicF{LmUQn=*q=20C5TPQVnWgicGu&N-&Vcxu`2wrKY1MXkKI_kt?{STs^k)o9)`#_ zo@5=^k>pL!DC*Z}0Oy#N`5YK1eP3 zA<8yrGN%MJ!lDgBRGQgd#;;zthMTM$&a_vJn?0DKlDM{g?Wk=O_D>Fp+9pd#W!Ehk zWa98eHWvz|EwdR0Y!?a4Q5gdZ9J}|p5(`m%0OAIBjn@Xx^xXXcZ^Cn!UFz(7wj0%V*nI)q=cXYX3P<2`WiGo77Gg5N&d z2|pWu>~9~Rib4Gu)cBf1BL50}0;$lfp$hX>fwfgrM*IOamC3v~WL4_W*Pp#6J^OLS zc-0!$X#c+E*Yi||Ju87{ne^-@8rOIg7^8jE`ciUn3UnvC4^avWJejF0@Q+SGBz0wP zWyKQxwFaSNZt|E2koI|-0UzLmOpXiZNkrZ57ytlN$pM!#IjFf9w(Tm{bBkKV#zrO* z9&zaDC|D%6&141U*J&DSl*HMItf}x@)I3(VM(5id7#UqR9wBTi3wX?{(Fz7 zI}}cgWG5ykvLlIbsN3Ti_w-HdeI91HlDE6tTgD_d8GmKrb~f*Jb@ccETg>h5?CSOP zbhz9Lj=eV|kaNB*k|Yq zAi{;Tq~Qtj=tik@1=AWGLaW{@WoVuoZ(;+b#Py4s368kM5@byl8?a+WQ3>}Ok?3eN zVt{wmU}iAP1s)3Owfn>Sdjmk){+xy??|7ze`rjeobrwjO@#V~B=h6?^0()-jsH|ZT7)(8pd=v|q~KVAJt2@lk9Whd z+g6KMD*<`h;3gagtbG}4Qq>uO{50120c@H{TV2z26Sf-c$h}v`14!4&C8kb(SKP0P z4oHzg?3E-b|AJ>ZDlLOY$2n{@Qu@&5v~bDrIA@*PN};T9EN;1N?qLR2lW1st4HNpS z^V(ZqY1VaCfqUpVc#}|K>3&M|%xiS9NT>W3{_yk-%>}q{IPj<&*B*ouYw7o88Ms%6 z)R5ROXs0#O@gH74yz^Y@Iu;H(#J0!8coZmWN|M z?BU5x-bSbvLv6l^4+SZ{@FJvS*Kg~~Oll@NW6egO-DROre0luoP80Xn04LxrkUty%>#fT{xg5~Nh;3a_CFU&9CM#^^iKs%+h^Dg6D* z+T8A`DsM+>bH8;B>xQ^(^e#l*rf@FXJyWwgAsjVK`&6_4>>f#7td4z=o(OhaiO4%% zgMUv?ZQmowJ3NmRu=)dDJwhM11^5&&aiCWVhviu&& zD?AC(^|n4NNpG5TxBisfPi3n{xmF)+n5~Hvh7R>XtceNPH)lxx_b(sYs@+;vi!i8- zyRF6Kw$`IoYxOgY=5meK)3mBtZ=3%%_{=9YyAY#xEZQwsgztq3kIw$(PeUW!t|cGg zyhW`M!|;3IX>xSjHfro~L#<6BlIBI>NvNvLxeA}WId<%a5O3UmB@ZASO6!p2=LyFK z9gM(h;wvi-Aa_S9fPdfg}7 zu3jdSAT!EqyNZ#<$Yf8lD!1&k<>iDgNJnaj=wClFi7e664|oCw(zFYc6T=^R_sGo4 zK>ivv18v`xx#20M&mOZe@~UJV4$eK)lYIveIw`aG9%|#zi8gn0H z731{y$R3xw@k;dZ8=w3jNIis=xQCEC_*#rL;`}QpI=CZFihJG^vV3W-=-^|ZbT+>A zwfo-F*?GCM+t>L>XXhJpaag9irUsFJ^<{h$_nz*IbXm<%2>qcYb7?>F^M0cg9^2>uqneP1J?jHRpdtc+Xq6>-T{P6tIPxN;G+;ZRilQtE> zYPLN{0MXq7gzkp+AYZ#T2Y9~I>bnP~FH@DJXLdE}hG7&X$nsgKe;m?94vnBdY2c9J_0e8S&8FE}VFHoPo41G8$ihHTbGQNc^ZigLfG3PXcW z?hjm`I;Z%K>6&3`8@d4mSjjX?xRE@Syr5{VAZmbU4jA2j_%~|kU8k%XWhNP5=TmNlx;x8es!h zk$0_9r~vd~E+OL!aFCLtDPf~L3Q0n{Eo{!Civ10Y(kTyIfhro9#|e3m=QNk7@jT{5 zz8Cf+J^kwHa(;Yi99Xg<=oYJSU5{6*c|KB#_DEq$3gysA>?O>stgcqBNiP8Ur%^5& zx`|ddZDTdM8Ba=-s&y+_VsZ>o%ZW%^^6eysnHjvzH_A^6h#XW)oSx?6D^AB13b_8#hKC#&S zN8KN%A^Z+Xe@d{hd0{M>yh9k}|4Fp8vF*=Dt{&xREJ@^9a&3)FJ{mx8lfU6rU1>R6 zDEeBcTn1gGxv8~bnk<*4e?4npyU!3_msF6GAXXRZkCVg8Cz!T!Vv|?Mt1IS8o}Xa) zzmGK{`i5`D(5Q>J8C3x;x5%~0>?6#vzf%{)URAI&2^pTP?&$1 zK}hpB_F!YCj=tv-#T;p&^3BqCaWOF<+H&L3v-~tNt)-c6KLe<}uQBtSlgS5_a9{68F#F@VkuGOnU(cN`Z(?{RAB+E&`H{XJufw71 z%+37$djlS)+&eV;*hI+VML8~WvTijEcyNPbE!;qECrL9uk#cx|`^)=KW6IP{PkvF=2|f1~Xo%v5skbc|=_bKP=HtfX{4}M{m-$6SR9dOtcme zNs#VbNKwW~RyT}k8bja0>`bP>R14P-CK}g5R02R9&O@%BgE|DIVNQ#Qg1`d21@feC zi2~om3el-R(nyYj6mU(jbFh*kEBJ!C|iHW+lTOO-|i- zLKo>v;*I`tVKBYin>rplHoRg<4%T7gcFg8FPyXiY8?;*ODoJN__#QqwzoTf~L0;?2 zlFnXk&hdnCt;%WG3Ksu^O~_U!ViS$8#3o{I)-+tLP4@6aY;rO-5jPE(xQx|RuFZLc z)mdJO+HZ6?oASVB`|_%}dED5GD9Ih^Ug|yu+lY9=@}L+>z@N2~+FKcGg)}`dV%W|b z(9Aq?Pno@9(-}6pWY(fH*egIGtg}$rC^Mupj4}}#qPAxk{q@saR?KUfK`E|>My$f0 zBm|m?W*CXs!HWygfeDA^Sll&~zIm5An0IN;gS#G~MdU5r^Ly2vXm456`6=2aXp zFQbI~#g{rdzKFx-)%f^${FPT`e$5uK>k0_#(JxzKP1~M+@=D+&A~8$oh7n>P8{55a zys?pAJ}|AEoY;MVY0kac_`c=*%yD;i`ncGN{ZgdK56*E{4ystQ)mBL7I-813$WAm4 zbn-wP@Um06^dJLcLOULZ;796~2DlA&R!(oNU;VwY2ghTqzpa*)_r~5h9y_tAszRO~ z^4_6gr53h%=(15V%I#0S0gTMr<{WK3P?aQ|I=o5iRWP(>v8=z`ExWH&N&xQoR2tvZ ze{B2>nzHEslwUrUW5Z*+C*sLWByngat|qcm(B3*KLi*5(MO)6#op9(-g+e0UpNV9; zW)5}7!^g$e;u>6wTHr5%S81EJW0gpTiW*(&>czUSp|(ec*gsgvbQ z{Owv(M_RS?ruOCp^1afYCtszvS+}^kfre|fsc(RzjJfUI1yb7k#cN_Q>{lUv2qT z7Uvc@AeABJUI_(MH4v&s&?o+)Sd38LE@`OU8+dE}gwI)O;XR@#lZ?Nsf_h+Y}&M6#%hz24-$~Q+;YeaXQt6nU4iux3AQ!P;FDG z6|7Ntecwtjb;YWe*xQ|?wMOz}8=rPq{n4A1S)Bk$9i8{Uk$m?D); zY76pWMO)K25&{|e5LaXX)1=cHYP&JA<<}-%O<59g;B%5h@TVs=rpV`#axFu!YFA(hZB}#i_bti zansT%JMGv^TTRl5Tr92;m={mL&KCW#$wz;2t z@lpoBUBE!FXhbq>1*qxuF6z}+=^e$Fp?;=mV z0^adO`tgraN@aWz$|%zJSt^5m`bA2GcrRY^j8b_awZ=D2;teO6qTPT8H#B1eJxBT@ zqW`mWvk7HjSus=BzeWdAw}sGBYocp&&WCdY8q8`-XbGDu{GYrIskml*w>P4cuG$hA zt~9IAfi7G$gt>|+P-=}%8Y5P7BvJkKOS~Oen3YX_Xrub@SYtjOTZx*ufKIxglK5G= zukm#@g#x2Lr!%dIYghZ3Go-dk2AJy|6XfFmE&lnNy^Wk#I+xzDCrG& z4xDvha>k&$!Y^_BrCPSdPO1%md+jyi@n5e%y*LnAt8QgN7htigR~s8xIRa&%L~;mq z42w^j-<)}>{dqBZVZE`T>x%HiqD;}&*dwk~bB=Gy7cuwdB*g_^w9(uz=Pi)X@;W)z zg#9FY^oKW}RJEd6SzkA|`HD`+gx@rqa*F>7_45%Ohk+xU`6TIg(7htHapnAZhQau1 z`_5ls|MheGR~r8hMgzTvJ?LH8FF6IfSXolJRqS>?VeHbY|Gq?BX$=#T=?#3T3})5_ zU16n2M&kMLb%`XelwZ@Qx;@Wg?HoxJA3-*#iV5Xg!*v#0>^q7BQ@6v>208)Z4e7%gc>XQy_u1hjqfKj7sY_Y4?E|mEi-|Vem3C}py?#osYZy0T2m2MENfn2r< zd7(KTOy%?Q=s>72srJURXWv*`JnOAM?<|=&e;^qAz|CgmOM&|j{?dUbBuQ>c%*C}l zEyTDI_9XWY*rZs2I9e1Fkr|f>ZN<1`9Rs0(dJeuZi}Xk4Cq~mYIQ;!V!*dC^rM-kt zzr`;sKs+j*wEI&270vR&3;RHFP1ydB?Zsws79!)j_Tl$TS5nzB$gkG()h#eDfg9+6~QmN~O@c;(2(^x?zPxWO@#tb+~v zi_O^e^z1vthp4qXg;loo10zWz%(vvF5P%*UZtQ>+t1T;&nmcdV-;#MMD;Fu!Tq!UB{dXWxE$_d0aeujZNKTN~ ztdfuqaXtldVn%b!^BA6dBWr0^1Q<5>tgd2&{hDo8h8i-lk40h36}DeP?2cbRt7)t% z*-dBd@xhmtT5;9e)8jSKEc{V=do!C)p6 z7#a*@fZWq<`GiZreng57sw=f&O=bm|Mf*y?ei$|E{RgNX+)JG)V*CZtz@Mcw%;O$Z zh$E!rUpa>D7Q`>fa$wq`mo#W5TM@neBQ*DIY*InmSeKMzg!>@NvZ`)}b3JT<5{JpGZY>dnRnuAB`v0GwW zZ1?lh>!kan2PMh2#ZYH44p@G!y`9|rdh`1%Y&kf#?b_{gx&1zC-;N#6hLNW34s~{R z-7B`e0T;Sp%R?HVTky&9@yV-P$GXmySy}z)W?UbPu$Z^&FYDy*dm{5VTtYt##aX zEA8+LB%&QctB89R<4-B11~v_BjaRtQC>;J6aV@tA_A$%MB=SfVkm<5bM6%XZm1onxL({d4 z5%P1hN|s(rj#3%rl>FY59j+iB3LT)PT7~AgVxKUWYX2)W{0mWb%iw8-Edep?_Bi@| z-GRQYJq#PA!}BRz~|9dEO zqWP9;!hrmQ@HSPt^*OtPG@#@P-2STg+f_Qc396=S`MqH4Aw+G{X>R;1O|-P?aL%Ti zGzz3`rBGb+^_!o5`sUr!GrM-pOtU)NJUDpQ!*>l1(h8)r%67l0U3mKG3&XJk=gu97 z(Qi6}5B<atzKg8^uxuwxYqs{LE+Ef#k`1z_0H=V^Z3W z=cIjW+WmwiiCk^T^v5-8spiqii~WMf^QFZvfdx?GKf{Pk%_V!I>|=0>7d_v~L{hUl zbY{sT^hY18AYm!S(S+v-t|Oa+i5WDA=srhUTd+a~m8Q&P4c~CxsNA@CQu*TVotiwD zc;H1B`?PD}UeCYB)BowfZ^F~^v#DpME6@0kUi-zsz`0S__Wop-0_Ue3&rG{*4Iq^t z6(xd!oVvw|%w|r%N!+h)W)HO_xrb7t3!|e870&rGP2>!J6TcZHzFT4yhs2RBNI$I* z50cL}HBNF~)DPKKb4dPIAjA-sbj1Ms4g-&#BK&ROHR`WokfB#~>rJAw0e_2C9^>Y( z$VbvH-AibI60@E(RM??#Gzy05V;SM6H&Mp2Vw>%DGll8@xtH5|=7 z`JrsWGs48ecVkt{tOj?bwY7+!w8J6t$OKjc{Sj)LKTK)VNaO$tM6#MyB7)^TM>j~} z8%S?~G>~l+1KC#aG*^xaA=3lTRIJkx9)FCZi_m3O#H+eaC-oxUQ{nI;9+841sfQ-z zwqlv7-$QM9lq4?|dv%)%)p_hAD);Ahs+PzJdHD<+$XU$Qw&sVr#`&w7!KBi@FNxe0 zGl{*b7FSP2?Q3DbB(%3pQ_QtE%Z$Kbiu(eeMaV6bj&KC9*VC#yLFswnxN_>DedFn# z{=WX6)0ZwWNgz}C=k;{u$L~Hmz7**03i^8b5qp!*kH1Z_3WZyE1ROtBkeS}{>4uKLkqP7Z)x zLJ)!w2e`V5Hq*MkiYK9PY`2oW(YG$ z6-riSZ?kDaJPWC6@OZW)!6Pqy(+a(GdKei=6 zuCA@s1&Kj>l+Jd1g!UY^7uSh6GksE+>{T|YP;vp>Vbv-O+6&~Hm?Da91=5T8|W8luUi&c#r0!fLc@RPl=aEgnhVmo{?>cGF&x@Tp*Lq;B`%+Va)i z+NU??_fPkn%pKgW1w@a5?^Vj)mWdE=ap$)|R{9(dWT#$ABmV_fXD^6x677G&=V)#( zVE8^w7#|KxbDvH+pMC7H#&0nbrABqIoc=$x-xgyfd!!JLal!)Ii0lG1miXL(irJ7^ zYf()bw65#ioSEzo1XV$U~orNx2I97R?WW%jf|KaaoV(c zRf799rDr*uxy+q=<_lz3ni^J8VDt^BNNld;l3jjv?^}QF=KgNk(K$FdIS@vR>gArU zfG4UR7)jg#*g1XO?#Rr@K-j8JmFm;qtdA^Ck5%2cTVAKBmujY2Q?6CNI>iT=hWZIV zQa4vm_D}`6UAh{wo}o&@&2_4(x2rR#^mI)Q^z`^G^}-MxLi z-923cBLh8d0A-hhsewq)-G}_wXQ3uHLroNl&IN^LGs9R2j6s#K-}8BS4oiojPo;C) zd8T){I^~eu>FNs0T}qelofr1|Wj4^$(>L1J(=)(ENBtg;%jNO-M|Umsy8Qj4yX1$L zB7@_L@jkc5eVUL)Q& zuHRi1T_@=45>><8_T><`0Mw~}fKaiak~_aAp`|G15=FD)K8N3>B3coeeB1JCRd9y5 z-Z=3H?IDxoeV25Aw@6lK6>DcV%=g+p&_Xn5U|jRjbDee~2!k*mJqfhU6#Zi4r_ZhZ|MDoKN#y7~6?L`yO-8^+!ihFJ)}$-lSS@uaI`f> zeLkhO)f^i>yLm*?Y$MdLL`JfPLFz$BHtZThi<`vWSH((J6`V>H@X|v=1H-Pea}%8# zBKmA=4P_u7E0q?p2Pb8wnVaItSJyUkseQB(=_Hl=p80WZ5mDcU6Ss7TKd}=NF4)AW zlD64TKn{`3^mp|Y*gZ0q*JqDh$6H{k>+pCgx7B07<|!Q#+3OGS2#vt60u#KY3xX)p zf{|P~v3v&;VfBke2G7j&<>mHHRxC=))-6*knm`g*>nzi24b5B`-b1m%&F~q?*|yeP zf2G-Bk*Qp-mv>0x(m4Aj`=({>5GD)1XK9jNL=;`zxNo*qG-Ay25VcC;ZNIEVu8L z7=Dqa%jL|(Qtp$~e~OgNTi~|bo9Mpx3HKr0I3xMl@3HR?rc9Ijmr?r#mJIViB2wod z-xla2FgP(rPt2jh6;C!pDl#6w76>^mRDNP2-5(n^j1I3OH8hlRcsmSZIOdQ&PNzq9 zw0%=0dD2ap!@iFG#bi3|l6yRWItEx{o*vniPA3=pnajzT)5W&?9^ZgCi+72(&lZva zdbz=t5u&{yhB5^kfxQg-4eeu-vB^)zCS&j90Z~kI2rd-0EL>uyVw!J*Q~1Pwi(Z9W zdn=sWWt#7YOW-VLNoxLx_!jc5WH~68U>yp{oSbv!Q|!Lku!0cVy<>+Pb>L+y2D|M> z4dsfpYf_EV@Lb#Bwm2sMF(=@0^m1e6KI}U81d%ZRD{b054p0&;aE(z-q0A_fj6$B#Vx-sNuA9((zaPAR2hyO#{JN9 zWUoP6Ub&9HJH1u%S!g;^67DI$ND#kID~7(sCtl<5H~d>ugRp1lq+s$}D?0r#L!8^q z7K)QjzMnQf-fr(8=wRCRp6kW07w)5w^x+3d9R46lXBX-C{aYi})7N2ErL#R@N=c5s z$m7$CsqiiI3ixB+V&B5(kkl(+6#SR*$DvSjq4{$Jb}AU_(~>jr4oz7 zFIZn=K8ki*C-iu!gw}pv(BoR^1SQmaY+1n;zXw4hK$~-i<1OTNwS<3~kcw*(0;`(z zVba#4Hqc`jXE7q%g=GQJ;ZpN)V zMp^Nkew2=@f@U*8$EY*YB#rl?W?Yr5bdpEkv;FlvZQ6w_d>695Q(I6&vd6|7vT=-U zbU=33jW^y9BSrpk($~l7c;to~Zu~_$zo+Q&-0JD*^xRYg@z`x1PZ2KM28YF)JOTK| z1HZrV2|;}yr{g$WP0{(>4!Mw1Q~bHWEsj zXG_EyiGB(s8$+oM&hLI!;L8J<_H7M;S}ue9v{O&$dg3*KVo#i4aQ!v744)P8S-(fR zQq;Qnpe+Zb5kiMW`&Npo0{av{Aw$(XsIGI?K81T`dqQqB-6BmqGQoRn>AXhnir~U{ z=`=Ixl#bz=z*TU1bAo0%EJ;?gxO0*VvWzxOB?#S|J z5{%`U0vPY+{80!)cJj05H0`F2bA_b~7nXM2Wbs9R2){%ron#wff+SU@Y*J0}TuNzX z`9?AxXE&c*0QrtW0Sc5VWzQ7S;0JfzB%jk(38K4XSjCa&smYErlW^f>3iEWFJEz`B zJMug=S&`onz#Fo4bSb@)nY8=A+CIVd77!=^_qG%Olf;M*uQf>k2~)`-S`BQq84&FR zHdzRW7z--RcC*mkQ^TYn0;_F5sf9p8MC6o0z3I1oK8I`NH&$E@`(W_K+b*0td-H{J ztlHD~jUGoT<>+C%X1tn0((THX)*!i?3P*$S9jt3hI`5-(=ER zW75daS6cex@*B<;{<@k-R5y8C{j1uz{ot*NWPzJRJ~#sF%`}%;=UVb-m4JFv7R@PJ z%hBw7);ijDJ<^p8UY&~aDzHz9e1A_q-_u_XbmtRFcK~?eW(B(dZNPFWSq6jZgsCM$ z269$`LI_eV@OklBM4Jlo|JjKS4=CK_$~IJQw}5!9c3{teleoYPZew%M_!a~hjzo;1 z%+OGVb6_iMgT2W8{I=SfLJ6t|E@bCLufD;Ln}dTUCd?4L`F`iZv11ot!+iVc4g8HA zRg{G|vRVPO#x!CHI&9VrG z?)jmifmnL-b&=>q2Fff#nV+-0;>gpNB*HS64yRBE4AK@)%Q7m@UXQs9zA2{0N2Wih zyZ!OO^LJnsuqt0rW0UC+Ui17)OpT?FzU~|quTxbHNbTB;9r!aHG#*nG56|Fzf01MyDfHckil>It+dL*O_N^n(J3Y%8eArEJ@ zohWf88wLi3yanay6LEiJm|MahlzaL<=It2lT6IP~-rdZ z7tnnEq^9-z8prSP=*C~okNA6?J#+bi4tJu@*MIa41B1K9-uTA6>U2Au4pfaeJkAbx zS7%qc*Om2k##B#-)6?N_db`z3k1IB$xSYGw*QBpujGvpOx3Dk6(=SN3OA^CJ1M%~= z4;Lb=OL(^S=aca+a_J?5o;d<8Mf;+rbrGS0KN4rm2~X-_9UWc$-X7TlPa0V8yGKKQ zcvRWlHyG^aj~eiOQX5cD098P$zf9>}-F|H{5>9kDGLcTFHtp}rXe_BZT}~%+Zh6q& zUVKt0!_(~>peGHwov}VG-48BVL2u{Tr0VVhomq=6aT9RE#N# z5=!w8odR+=krGe@%)w3IxF*_xlpXn<;Q6<+C!_PT3#Tt77JmauU5~}IL_BzYX>>R- zz58IksQk|G*wO`7YP>5tpLpoh?&-ywW5@p=T|XI%=MU_jj>EU-gYkrhS_%;hsaxu& zngP-ltwSIT$3%f7uK*@u)=r#$T#%Z;exGtUK6uIJd}|`M^g)N?eQ$O8E-l4Qz;fiG zaaZ^Bg$%ztwB+imh59@OEKf_pzQ#|pv$!a+M+6>#N7eF5al(t{N^q4UehXkDph5E| z>!@Hdi@IT;45CN}Ok=3&Hcf&sgVjTa{WVG2B$*SVWLuVkDr8IE+OUUXy6Chcpc{IT zjCblf9GIF0zRvYJ8cdsn|F6TY4jV&^O+;NXu7|p0V`wRPNQBLf;)2JjaGm1WpkSv~ zsugR+4cM1fiwd1!7G_)RJ8b;YEak~_ z1eGavB}?ziF2yo21&qfj)>UfA+%VR)-_FD`PY-2cU)A5~-)2zdb6@U{r={0b8dGTLF$wLNRaCPFNmRhOr1$iP5zy#*=XH zFcg*Fw~wuIb%g#HREaIa4RG|3D671oTiYB9n(CIop2DOKXm$At|vHhj~{14p?A>mkA2<%Ax z@U_kIR~a;6N%pfe62w`KFx8wm!q9>Ongk_bSqn>e6}s*r*w_I`9@n(D!R}qCMN@o?D zXAOkBkecvRZ{<-p^FwEx-q&H`h#0c?WfFfdGu%I< z4K_BG@Wu~q;5`JSVTA7+T+WXzHm>a+1@SJml+HE?X~<7f3PKHrLIr@EEVY*)hS}@P zHO1Fo9~~Tmta`DaCEciG4^cM&V<$oc{W&OSXmB(`6?r=?upE_t-Ndhrc7#*X;aK<- zvb7KFC}F;Td^{M0?ViQOXk>9QQr%YK%;Ys9Cmk~*_;@zCTi`K(I}Qe?m(cMI`@WCXz`7BXcG&&6}D*J3Z7 zjA4BOpZ|OSIB7axhnM%?l%9tl?on9KAF<@Ke@fUV96Q8Tm;i7uMX{MH8-7r3BIl%< zM;X-qeuK0MKTfHB;nNquRTR8H*SaC~g_r{Prvj(!tmlS@b9KPR!51A0VVViHWOfy+ zHWNs%WmE07NvqAWlg*<7YC2#+PF(#{D&_YnWn<&M4#@wSM7wcM_-dFbD_<2V^JTNz zszudQpzQRu2K!^O2OCBofdGnwSvFIkaNtdJKNUI*FoYiX(CQ3(I3kWO1Rv8h8{Zt2 z6(9r*(*WW?kw@7~I=zxk&oEe{C&r4!u?bC^9L?UE9c3nB{53XyC@6Q_#W88_>X3s! z#I326@o_~Tj7DKtxy3g|oc|c7ee71s;&GdfPQ~ykBza*2Wm(KD2hV0%V^b)Z^>KWWV%e)|zqpz-BAp;iA ztGQGv_o`LEzwxs)k%$S$k>br??Xck_wYF=96`M;4AeQY^4 z0a+ft$STpr&n|r?9*(n(#--?)vz6$Ri?LxSVE*F!l*!LdH#Xvdn8cdx6@(%F-?F1s#8ay>la;j^x=PoG zrV){_!yN0^FWSg8r(p`PfsLcjrp#0h10Nxm3C;xl0|v$`#y-YZ^Y1ig`310Qy%BQ# z7tQq<&ej%yxC?E2_+1wRdEn~6MkLVZ^(Jl}?8n^&ezvjl3QZvV^A&TA@C+18*UXRx z&_P3;ooP@|ZF3}2fW$4gBGd!tO=*hkGe{Il_+t4aD=JDzFQPxDUN_cCYX;MpROWER zA;nNa2FSHbEMyREN239bddOm-kW@p|Q?e*Yb0(c0YNjlErlav{#~bD{iM~F=WTx&I z=v(g_aG=Y26VOl)6Mr|Hbo)bz=T2WbeF;A71;Uj)lI-nG zh7z4FM1gg6CPH)`?{Fc8qN^kRmk*tK=+r4ltaa#ROPZB$SrN#DR;utCQS%D07K#;r z%oa2j*rTKvDVr>V^-HXiUpM&4z(p9R@!<)T={^ogwYu1=zCs9(FEScZfT_2FqyD2V zh~LsP5#stk{%&NBbzxg@vYeWv29pt=PKK~0#OR|vWU8rc;AWnU`jH^p)8TWT^o2hW zVD7(12E#pcgU$_^IR*%OQ0wk+yPprGoNnMjIy>_(HR|+@Fv>Z8<#n+Am{|m0lG3UG z91G|0*$`RX@7pTl=DPN##v&_C2wDrPr#0h1w9m~2Y$c8z#NpU-lvet~_H29TvGDAX zBJt|1O8{#t*z+~c-Hl&+JbZMPS}AV5DL?je{tzFR-~>w62q6P8qdDoYgnma%Y8O#%CAW=sm&4xP|^2rA(qjO2~nY``XzDjNT>e zF_lES7Sd}swT?l~G}#VmD!0pF5Bq#qd?UV^4_t;p@mMB;>#}bIuENEB0A%+`jwXsC zy#r>&Q7w=O7*?A_$d1cEL8MV+3eZ)hD!gBlna$OV-a)vnpDVJ;;{_&B4pSr?jH*sg z#Cqei16FvCnr6Zk)6`0Vg92{pAX=k?eX<(jQwE&nEc-9+on2wBcnL>uhe}V zsBUz1u*hxGQ=M)fo!776m!l)y9m0G~QA1iiK4amlW@c5VlS9lHL=+GI)eW^;jYjiJ zH0BM^3bNwA5zSziN!E%iF9ZFxWge;GpXdyrm&-soY=TvA2{Z)sU*a9$CAoxoyFfFG zZMR0=Z+r~vYgZ!~@ZBwDA`B$_HM;uA)m2! zi~}u;e7(x{#y=4Izz1Ug(dQ4xPfm8k!^USXhQn7_r*(b62**1nZ-|Hcq8GzQ!WHRX z8L!H=LgPA`v6cj(0A1VFqKWLuhEfau{7po!82Q&VK1)Yz*}%!hgpK0NT&6+z`TPsC z|5~w(^9^nrATt*2Ww<2ZU&edW1oOS{-+43t-8gVv=U!vYQ8T=KoS=5JSM$Q@3m={y z9-bb)#m0NZb)gypszOisVP9rIPBipd@~3leHBSdwKlyej}J!wmDaF7IRJ zo1B!E|JTI-VxwJ+U-3G|CdOG8J3t45S0&+%2{L9N`aE_pK43EDtr&c^zmug*y=i=0 zUOA{8T#@aAKPJCHj_`9%{DKagmZt`jR^S<4BpU~b1+eQg>BZjnzrUB&8&C8aMlbYZ z8-tvzxH$SwvfsiSA4cy*dD21D9T~Z-M*QISJp6vJ%7Tc^FzFUG#(k{7ktUt)oqI}$ zX<2dz$mRpBbs>XOWsd{0bmix+5*66-)cN?h-rMI1&SevOD%j)6% zXX8tPR)=cI5$NSqt}qWvj4U@r^)i3om-UtW2fW^lSN;Igxy5@ij81eP@XB!e2VUWt zogy>gP5qBPb}e`>-XOw1S({d@D~u%&}!(ccfV-*I}w zd?eB+M43qIpg?xVkk}IgMKBQ(n-r&e{(2-FrVsQqd$&F^Xp9VYcL2jRIAZV*oxxQ! zUPmg<|1Mf3-x7((Zj!oIW&JEvq_&4!-dm&8lN|2Z{mCfc^?UTyF4MTobPd$MBW}iVSjRbMr(iqn$xB?v90b!ixK~{QRmmIh-G! zBvZXup;20ch`GZvj#|wzGhBf`fg42|GxBc-J!sCJ{R`hSKUyv7Mg4b(-(1{@AvG)I z7ng}Ao%(JJDd~Y|J?i4t*nyxbTcnD|rd4Dd1>Dhb?zOS6cSrmm?Mo1ma%|2>#vxl~ z?t<$y1I2D6%I0Xc>#hFC+!)hzw;{ zVBXp@^T5*L;iNh+lGu|-45&$$KG`Tu>iSE+Sg&^y&G#HJbf5nK(k&lQlLOvF!aI;; zlYNIK8vlh2OdRU-SIRj7r(2Yl%a%-exYY0dsVu&$DS2?ji&Vp>(ti%r%RKUPzKG z(yAjk1uL)LMrFS|6mjsPhtG|M-ik=KV%^xPh?4Ac6pm4n^hbC{AjFNjXlZ~?J+!f zj4%UgtV~uQh#62>hvTxy1v>~At&nQE)JnxQCpYyft#NBE%B2pu7?Oi*V=Cn`yrcGd zSi!-vOu{-e{+YQRWmT+&_Lxv!7a`hZN%5)5Fby^>&&oI45VJp@q8j{+aD^FmwB6%` z{r8;Yrn<0fq4wvoYto~!&+y&%!@tLl=}TB^Hho3QEvr2GXw3ewM}?Ek@#q-+gh`lP zj1_4|cT^eF&AtPw4;6whtR`Z>5u~tnZAn4>}qWlkabyQ)mS%H zwJUI~1Q&PA2QVY3|5I)XrK|`))K-l(ZFN;+MQydQ4!K-~i*SXcv^M6ZfFTGhlN&aJ zVg}I0OdYZ*>pHC=z-Kevw&(5N0im6X3O-8dUs1|*NH%|Py{Exr79^%=-2;zN~OPpar=A<7wb>x~BaqRKgD~B_4D6i2DbdUGkx_IR7yN?{@ zmw|_v$}AiM+ZyQCABWuTB&h=R6zn6;0=|6eY=;hgno{;&+BJTQb`t&0fZx^l@6x27 zD)3<}9g5*yls-l2uTk1I-U9d=K$nz@)oT1v?J;54iSa)=sfXtfLl*Aeh~4mO`gb74 zA2VV%tY4Ghh;lVph3=(Dj3j2uLRW{7e&5l5?S@zl4w$rlLu_*m=xG5&q`<0T6_^X= zAuFchbJTA-$d@O@qdcPMs)KqvQs*%`g1aB32#j>M7;O-3qW*L9?musi64Gz}nT3R& zZI3#`DU~EqA}W|bz&Nu)%drB{Bo9;i`Mr(xy%YU2i9?B*{>EQ14Ov%12#|4p0z7n< zCno$eeSI_j#vd1p=s+mBn{<~0jss|AOZq%NOz<*NcYLw{rG5xw~GTRD?Yz6qchGMqBTv_Y6 zOml$fa)a!F0>bI|TMwxduP7(i2*c_SLA=uOQll(%k-jZ7ai@$5hSwK$lq9|c$!?#vZ zN=VnHFf(`NB4*`7z|$QU0m#) z>D)UxxwrG>Hr>M1tus>{F5gd$1}}{UAMf3>r+4NI-gw5AYHm=iQs1pc91M4-N`OKA z4h63O)l_b`HXN5Eh6)I74@!IadZjZX11c`<{L<-5%C;3?QY51Tz{Gg~`dHq+BCR^` z_rDwJaNYOsziy2_8j2|wv4}Dz@$tm=^{RIEhC;oat-jHTYU^v#4s|5#!Gkn9hR`lF z&2?wwLX-zLZ}c3p4G`xOX>Lu8^A!6hk0%d?hJ!=C$=6T%5@9$7cgXwMaO0m6=JJZE zRDOhCiuAa94)pdO=ymrF@Za41!m^owJFbXck5)7a%>H`qfHvCS&4|++t#m5*j(laX`$xy#}u9ZYT^_q%CD(@ti67e8`ZDY%1SR5v3^pU zyxNZ2*+YJj$cdAjNJXLmGqio96tvR9D8JEo?{ePSfxy=&mW+Fj%#OvQ$^0_Yn}={6 z>bFnMQk%?=EBJAMq# zOt^Zlr!yW7;SGnUwRmi34lc){0LC}l;~96le~e$@-#R>rUbjfAP)zVN$0jUbZLk8o zKFEM&DJVj-IvZMbcJ|mpW-2{h)av}eoSoe;&022u$l|R%HfnKRkQNDzIl%#gGv&&?GK36E}Sx)AL z@F@lNdFzDHNSVr@v8O zU$25g$hvNtqGbY~4`c!%D72}HfZa1&luPx{q3YpZ6h@nfzTHVEg*RY7#Ks{KypRhu z=Sf>!$`ebLt3p35TzAa@ccc4UrH0O)zJO7^;z_`X^mXVa1k{Olj!!8uW%6o=gUGT(adg zk_H|R>R3f99oXK=*331Ntu;1ksafX7Yp`9?bP!FLIf>SbGW$0BR4YHqE+iM+GCJ|3 zW#Gg^p`V@3h5WF6s+U!I?pR~fy^VjE_`-0E&ERF&?i>B#(c$40*XZjWKj1T($Wvu# z@qRu|pknPdMGZ}~C^FZt*ycnQdeC398kcRSL5Ihc!I%dj%!Sg3UC z@imvDUB?D|;l{&YKVXh8Y47tzJR_A%q-qXSy4>D-h~TK%R8+lL0=G=b+ht&dH2jkIRg%!kQv+O4D_xj zCND#a`2tMhc{V=Xs~SbCoZhC*<{zL9B2mODwGPl1AhMYUy%$WTSyff&S`OY{&VjEL z4m|AQlZi7wtft&UPBp+ny{YNB>7~$JS4Q`EVBKbdOKzpBPrAeb7IJG)YYv}yy9%hpLtpwVn=4-Qhnkq%DD$wD*CTaqeP zjW0hC$qWTppfBd%6;-VTy)-SN-9wmNRTw(^ly7Vnno@A(Mk9Kf9Il@q~LJn!Bq5Ofg=5o1A6=DT8!Sl7JKcr5|`8U9FunG~ozOljkX z&6i@am&_L_jQ!;oC8uSX^GOTWP(l|W8K`y@_u2Ubos^e;0^D=oGOkBXMvRR+S>O)+ z^sA>g_U_fk;Tl}J;|~4QsTS%G*URaft=F=!;X0zWA%$)DzW{VL11C(p{ZPeFIuHxF?)j zoa))-9h)#a8~>g41jGGZo&VsK1fMPiDTIIm;VWBu(JXHRCTDpAkWBJdvhKyP@qM5T z{nLlx;h7^c;Pv3stK%5HJv%xNPZ{?A^q=74H$E5{aKO`teLBqoMNTCUz1L5clRWqy zP6AEwXU;aP!XgQ)w?Oq_Wy7del_DXOcCTw|XjA2nTqzj_7*DafVd(n0VVEQV&1q;< z753A+&*I_hg>FaBzO{6Cb7h-GbzXC_mzenli}pdVu7F8!(HJY!L3QO9q2+#P6mkfYunQ zmr7)j!2ospJ{k<0ysSGY{yIqeWq$~qOtXFj<6)sM$q$@7`GEW-{mg?8UWEg;1{c26 zD0!dw^b?Xx_-2^ZNFn(119%$Ujrf^f)eNO&htz_)G|AX?m&rq$;%jb5N0JH~S z61*SWeJ;nJz$xNNlQpVUe@|;J$Z_%Re_kx@*;De;n69JeCb)O9FkV}{L^Hvy3!~ZH zS&q&52;l^fWf1z%W-T|CCiFys)%T}m-4iYq&BTkvy^F=;i?L%D?>)MgJ#c*SSZ?x; z5?n7GIXo9LP919H`8?E9vSg0gW%%WXVlNjTfjie?zf-d9LmiS7C46s*@o`U}xs(Y0 zC=?~AIVs=?5MGdE`4CkJFA!*h@UU-k(wFj0O!|hynMhf?AruP*0WfE+!xvCvAz1d8 z6m{7jkw-@4Fp6N3{xJRox3E76Yp7lcb>E4E<(=JlyQ2O|#NXAmZ(mmz@;N@yBV-G{ zLr&U7Qc&*MZTmbZBEmG^+RqWY%+KwVOH~dh&i{1luUc=E>NPS_UaJ#)5|hYYxk%UA zP8xM)N`h}{Cr6|uN{)=!=fLEL4wKNr^KEcItT=dJ!PMlRUpP=`)E6E@sx$pA9+AFp zM9t^NV~qCd$Zoi1e^5&)nGT6nEGcM8nj-BRm6Em!Zbd3bO$YCKHIk}s&NqCwlz%dq!#vtgQGM!mJ^*O~`)vTORcLSfpzTqs3N(d)imxqnQ> z4)0KG9g4kw$6}i}i?2ulk}i-vI`lEyWes|POfW$(Ty;Qb$W5TTVh;S?OOdLsDEjK` ziLPE`CwjY1%mV9AvL!oDne-`58Fyiu+&z>#D^A`xSr-ZbCz4Xd94i#Y%+R*QSf$jc z=3&yMWMRV2p|M74_w08oA7k9Gf^=x_cu zb2F!-RoXy*KieJtkGrC}qL;@Ki-Y!RLGkQ)ybx)GN-8K@A5kS*CCx$T`bWaWlJK0G z`$+7ZyYaQ7ZryzjXoCK4thPUHwv>w*_dPdz{yswz+7>a$Ml7^p86CCM>%6=C>f+++ z;=9}5Ae+i$j%PB9JG{u9<2@GSd?0Jbdz1@8yvM9c@gB>eQYlmhqp;ObiDOg1DXZ~) zqmI|g2ESvC?iTFVyE)<#*H@-OR7$9T)_ZD>%YQT5qPa=q`y3N4;6Iad&7(&*L%UV> zjmy9e!m_d6JTlr~-u~6+Vc9OPi8eb1R_#kIuQr=&$h4iST>Z*xMk5UB$?JxK9`+Ei zmOk{RAO9!e_|>B$kxWaz~#o;?~+}3eG1m;%te3^&Ji!z^d2DXx-??_GMj5H zEX_vk#B3CfTJaY`ZttSSqip5rYSyKL_=P0Z$Er{>D#x&gF4*n(s&R5(V{PAY%Jpp* zO3d{j8tg?j`ZYAX*S?X%Z@!T9sjBbKfLIAC734YWOO_*jDk4)-`P_ukE%W?nIf6^Cy@k4t?4;ss0P;q!XnHclB%8UBAHrCUf z9|VupxynswGW5V%Z*p>CI5;O-nA$yX%v!-S!!Y%S+E(p$qf%VOQ{g+qsqToddarV0 zO-f-U*R-I-PkhJF!@&dYkxoF_}3p50+Kim-gXOUb{7 z54(tu?b@OIs+JrZOPb%y6T@gEnrXtOnhJvT1W#qUvOV=AtMC_6>F-B`|k35`u-{~v&bien#-S=Fv zCHD0GNS2_Y0SnxobH`HHZ*Blb%7MBho3IS^(XsL5F#{+(6mP4M(6b&eZ2XII< zppEhg>97UxNl>BC5jpS{lMqTw+#I@819xE#_mcP%3R*8jWf$zj=l^OP^-%_yO@b6ta-oj#XuK<(;* zIZ*ZYc1OKF^$#tKF2TovEQeW&yn!)IHcggmg!jhGuX7_(qXDW@1_Ue7D15B7MMaYW zNDI43X_r)-77*QQuQbXGm^|pLl?@Pr8L)K08e6=w3P;kFE4J-H-SXB?x2%F>vW9Ad z_*HD*0d|b$qkLVlO{8!H)bN0t107uhi>VfzyFy^eZT2W}7_$~}GH+2RSu98xdnS{> zbFfBK;~()tc!3o~0oTEYiJ%n5<#wZ}kb%6LQIYI6{)v~S*o7M}u#Zv}AEwcC@8Q8r zdgv;ZcCTfxN7{m~unlXj-34{tgb|R>;cTep01}%J1VU{#!G(M)=J!WhkO4=6LH9`K zm1Q}77QqB+WuyLQp!+;L^;-y!LefJ!^GkPaG7QHjdAz~W<5Bt!^qnBnQd(6AeCeEHs zo=ZqVIU+`>KnHr-%0%l}88)WS1C0rVvI-RT3YKc{r`Qk*J_*Gopjap|WtGSgjgsW~ zN{}@kqFkIINo`7MX|;1>nIsf!*(g3S2(`ZhtM&ive$_k_>J^&f^>+JzbrrvQNob6>G~3@plJUC3 zMYMDTD9KsrWXmoF404mu2pLcx5D!ELAW>3)02>UydMd4SI{V+ z(j90XeYp;x;LCWt%u}DZ>Iqgu1>CM@m4k9EFeYiY60mh*Bp-?I9NjCYP?~48&5FGu zc^|B@@y0hHb!$K_-h47GY+s9V44u7WOrrVq$sH;p)`aAu z>6Y(uQx?5#4gQ{r)!=V!O9NC${qr@T?$Oq)y->kM(IfSc^dnC=_ur+_!Tz$`vHio= zzzL;nFlnc!+*)FR`q2FKOO!x_WbE*k5qQ7;UCX0+DrHm4*DtPKjlH)Jdv5#UD%IF~ z3bCCEY_pJK$a0d-ju_D_iMC`CZGr6^dtdaPBgJBVx%VO1;&j4p8Jj(Fk5MWb%lTOB z&~iQ*jayeFAy%|U3iFtsu)-F$foXHn3(iI;^zeH9LfOGe}Qu8)#-zh#6Mh z8eaz9kcFJmX>k!*%SaI-sZ_##Vi~H2!HUFnH1Bpvz1$Y75D~|qR_34#DKV!o-&u&Xa|KA}n~o$hbSoXb^(Gv;?wHu)Up%tt-(#Kh z4y0mJup~~!QUkqA;)(;U$E)ay+@lYrK-JMB!-=;CnjsaNbUG(vDV&WNy!URl!Twqb zS@u7kY}Nw?wHfqhpGTTWW`8L&?@Vv+mq*UT5`DqjjaxGp5;1>o*%grSa<4y@xRANk zxV6705j!&?M1rC|6+qy15}wHD+>usOK|AmY`1ZG1SSrGa(Xz-)So^$)r{dsP4atC< zWD;t%o@IRmFz5aw$suYj>``Q|@SNA&OSB~CGV8XkgVrW7`lMia*A@}j299O`HPc#~ z>R0HmjQxOSunis^4k9Ndo=+%=?^FMU=OYU>)Ar-a65oy~E8KNg%rxHvTkNinljEV~ z>?C6N5rQ*ePj2UD!EyRFWA&j&RNXW;WAklYX?wX{v>%!$Y1<_#;HT9vAz?Lerb6I* zfWN0vC88JM{U9xO`jeKCBl?z{2(5-*VG{8rtg7pZ(x@?s8b-8_c92y9MW4$ymmjrh z&P=4qBaawsYXIGBnKVO78kb)sH5)5Jwd}SPo=7HH)l_R`YmY&*)Ae`qkjVsT*jU4K zYReU75Pxv5ufqg`MM!*&DlrZB(FtAN+3R%Z(|>`x82PQ0*+0S^c+}0QT81~ONXd4@ z9*wb!@oUm!@tdD{Cicvq<9UpJdh@S68+*3R^C!+de*!Q~Z{vDHR2jaNtGcqu>n2o2 zKOa-y>~d2pmqm$1II!$! z7^brE|69-&;G50#DfjdRo~AuUHk&&06K6(g*uN6&?hbZ;{U^@+1S`_m-`|Z_NE*Yv zV5X?9wxrrtV{o$;jBZ2&+1;7U?%9KLdk^m#oSr;X z7@9dWF>z=nd(+aAV2NG z4<~eGesbEeGJ7zzIGvBj5AU6$VjtGW_e_Qo+F&R&s3k&^d&YGKyYbM>P~p(z^k8&p z>831JM*6<{57>BnASbou!z%Hs+XLsEffBon*=*-Od z_(XP>S9krp>~62_y=h@DUHj$N$L|}Wqv`a>f0$0spP&<|d(&*)$2nodogk}|IcY)K zBT057ezzU^!EJ}|m+>lGp`dRRvPb5j3FhXTVVDgaL+~>R7YT}_Lgz4?i%9V6CWX=E z?s!P4KwNydhe_)g*Pru0c&hVQ{!GHlJW_K$GO$EM|gNB86~;KLZo^l1b#@M@hrv^}PnyG>RV0>B1tbP>nh{9+c$; z!ENrfN(J~|eWOw_&3~z+*R@4wB8{}+-Z|Q(^!vsWfC5@1WT+x0i5!>D)0JPPE7v4C zVfq$%w!*am%z`J%aXd$ub>OgoJ^@YD-2Nb_B{dLvc1OZmIIJC{QdnPb5F)aspuvW_ zqtRqnGWvc^W2;n9o5U}=Rc`JUbRnA}Zuw$`g8kVfLU#&ZSQ@`NX&DBI27%o8^vG#V z{!kc6Vvb3P<-S{Xqu^#CHokZ10!VUY^djKpzXEtvR-3il}LJuYkc+HBB2vLvppP)G9@3Qrb06DqP#pZV~!H zO~b4<#18Nk)7+%#jltXDu9$@#$c&Bk^Ote{CymLl3hzd@5`IEQQY zTfOa=$8*d%wl}e_GwgKU?R3r#cAxFu)fwEINbC)Eo<8Pu9`jW3+GBYBd9Ixtj14N| zF9a7x&nn{zeBL@XKE6IW5?okY2#$3 z`FiZ@Cs%cwAVs}?I!gs7JTJyD#MbfnKRgRVj3=Cpz9Qc)$5#N=E z2jU0+M&r*e(@DB*+grb_93cq3(sT$iacypu_hqQW7?gRDDpFiuXOd7JR)fmqRe{kf zl-xxevxjmtE?Mht%Fa zi0l`N_ulgP?QnK~p${;&`}%tE##@+gJJ4N;@j5sp;-I&(NrX<$1T|`B^kt-3k@5A)o)vM5OhOq=2NVfC zBChs_k+o{97s&&M=_S)#=SAuDy3WneelR0b@EsH|>nLJhTBaFYR!A&a;A=0J7qU

wF7DI|Kx|V1sBQ9FYs>m5C)C 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 BJ$(QG literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/fonts/specimen/MaterialIcons-Regular.woff2 b/docs/v1.1.1/_static/fonts/specimen/MaterialIcons-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9fa211252080046a23b2449dbdced6abc2b0bb34 GIT binary patch literal 44300 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 QW8}wPUeo^@jR61v08@RD2LJ#7 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/images/arrow-down-orange.svg b/docs/v1.1.1/_static/images/arrow-down-orange.svg new file mode 100644 index 0000000000..e9d8e9ecf2 --- /dev/null +++ b/docs/v1.1.1/_static/images/arrow-down-orange.svg @@ -0,0 +1,19 @@ + + + + Group 5 + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/arrow-right-with-tail.svg b/docs/v1.1.1/_static/images/arrow-right-with-tail.svg new file mode 100644 index 0000000000..5843588fca --- /dev/null +++ b/docs/v1.1.1/_static/images/arrow-right-with-tail.svg @@ -0,0 +1,19 @@ + + + + Page 1 + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/chevron-down-black.svg b/docs/v1.1.1/_static/images/chevron-down-black.svg new file mode 100644 index 0000000000..097bc076ec --- /dev/null +++ b/docs/v1.1.1/_static/images/chevron-down-black.svg @@ -0,0 +1,16 @@ + + + Created with Sketch. + + + + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/chevron-down-grey.svg b/docs/v1.1.1/_static/images/chevron-down-grey.svg new file mode 100644 index 0000000000..82d6514f25 --- /dev/null +++ b/docs/v1.1.1/_static/images/chevron-down-grey.svg @@ -0,0 +1,18 @@ + + + + +Created with Sketch. + + + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/chevron-down-orange.svg b/docs/v1.1.1/_static/images/chevron-down-orange.svg new file mode 100644 index 0000000000..fd79a57854 --- /dev/null +++ b/docs/v1.1.1/_static/images/chevron-down-orange.svg @@ -0,0 +1,16 @@ + + + Created with Sketch. + + + + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/chevron-down-white.svg b/docs/v1.1.1/_static/images/chevron-down-white.svg new file mode 100644 index 0000000000..e6c94e27b6 --- /dev/null +++ b/docs/v1.1.1/_static/images/chevron-down-white.svg @@ -0,0 +1,16 @@ + + + Created with Sketch. + + + + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/chevron-right-orange.svg b/docs/v1.1.1/_static/images/chevron-right-orange.svg new file mode 100644 index 0000000000..7033fc93bf --- /dev/null +++ b/docs/v1.1.1/_static/images/chevron-right-orange.svg @@ -0,0 +1,17 @@ + + + + +Page 1 +Created with Sketch. + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/chevron-right-white.svg b/docs/v1.1.1/_static/images/chevron-right-white.svg new file mode 100644 index 0000000000..dd9e77f261 --- /dev/null +++ b/docs/v1.1.1/_static/images/chevron-right-white.svg @@ -0,0 +1,17 @@ + + + + +Page 1 +Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/favicon.png b/docs/v1.1.1/_static/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..76d17f57ad903c3ea2f1b564cafb95bf9af84ee3 GIT binary patch literal 521 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 E2S0P)JOBUy literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_static/images/icon-close.svg b/docs/v1.1.1/_static/images/icon-close.svg new file mode 100644 index 0000000000..348964e79f --- /dev/null +++ b/docs/v1.1.1/_static/images/icon-close.svg @@ -0,0 +1,21 @@ + + + + Page 1 + Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/icon-menu-dots-dark.svg b/docs/v1.1.1/_static/images/icon-menu-dots-dark.svg new file mode 100644 index 0000000000..fa2ad044b3 --- /dev/null +++ b/docs/v1.1.1/_static/images/icon-menu-dots-dark.svg @@ -0,0 +1,42 @@ + + + + Page 1 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/icons/bitbucket.1b09e088.svg b/docs/v1.1.1/_static/images/icons/bitbucket.1b09e088.svg new file mode 100644 index 0000000000..cf58c14fbc --- /dev/null +++ b/docs/v1.1.1/_static/images/icons/bitbucket.1b09e088.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/icons/bitbucket.svg b/docs/v1.1.1/_static/images/icons/bitbucket.svg new file mode 100644 index 0000000000..cf58c14fbc --- /dev/null +++ b/docs/v1.1.1/_static/images/icons/bitbucket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/icons/github.f0b8504a.svg b/docs/v1.1.1/_static/images/icons/github.f0b8504a.svg new file mode 100644 index 0000000000..3d13b19751 --- /dev/null +++ b/docs/v1.1.1/_static/images/icons/github.f0b8504a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/icons/github.svg b/docs/v1.1.1/_static/images/icons/github.svg new file mode 100644 index 0000000000..3d13b19751 --- /dev/null +++ b/docs/v1.1.1/_static/images/icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/icons/gitlab.6dd19c00.svg b/docs/v1.1.1/_static/images/icons/gitlab.6dd19c00.svg new file mode 100644 index 0000000000..1d9fffa74f --- /dev/null +++ b/docs/v1.1.1/_static/images/icons/gitlab.6dd19c00.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/icons/gitlab.svg b/docs/v1.1.1/_static/images/icons/gitlab.svg new file mode 100644 index 0000000000..1d9fffa74f --- /dev/null +++ b/docs/v1.1.1/_static/images/icons/gitlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.1.1/_static/images/logo-dark.svg b/docs/v1.1.1/_static/images/logo-dark.svg new file mode 100644 index 0000000000..9b4c1a56ac --- /dev/null +++ b/docs/v1.1.1/_static/images/logo-dark.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/logo-facebook-dark.svg b/docs/v1.1.1/_static/images/logo-facebook-dark.svg new file mode 100644 index 0000000000..cff17915c4 --- /dev/null +++ b/docs/v1.1.1/_static/images/logo-facebook-dark.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/docs/v1.1.1/_static/images/logo-icon.svg b/docs/v1.1.1/_static/images/logo-icon.svg new file mode 100644 index 0000000000..575f6823e4 --- /dev/null +++ b/docs/v1.1.1/_static/images/logo-icon.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/logo-twitter-dark.svg b/docs/v1.1.1/_static/images/logo-twitter-dark.svg new file mode 100644 index 0000000000..1572570f88 --- /dev/null +++ b/docs/v1.1.1/_static/images/logo-twitter-dark.svg @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/docs/v1.1.1/_static/images/logo-youtube-dark.svg b/docs/v1.1.1/_static/images/logo-youtube-dark.svg new file mode 100644 index 0000000000..e3cfedd79d --- /dev/null +++ b/docs/v1.1.1/_static/images/logo-youtube-dark.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/logo.svg b/docs/v1.1.1/_static/images/logo.svg new file mode 100644 index 0000000000..f8d44b9842 --- /dev/null +++ b/docs/v1.1.1/_static/images/logo.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/pytorch-colab.svg b/docs/v1.1.1/_static/images/pytorch-colab.svg new file mode 100644 index 0000000000..2ab15e2f30 --- /dev/null +++ b/docs/v1.1.1/_static/images/pytorch-colab.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/pytorch-download.svg b/docs/v1.1.1/_static/images/pytorch-download.svg new file mode 100644 index 0000000000..cc37d638e9 --- /dev/null +++ b/docs/v1.1.1/_static/images/pytorch-download.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/docs/v1.1.1/_static/images/pytorch-github.svg b/docs/v1.1.1/_static/images/pytorch-github.svg new file mode 100644 index 0000000000..2c2570da1d --- /dev/null +++ b/docs/v1.1.1/_static/images/pytorch-github.svg @@ -0,0 +1,15 @@ + + + + + + diff --git a/docs/v1.1.1/_static/images/pytorch-x.svg b/docs/v1.1.1/_static/images/pytorch-x.svg new file mode 100644 index 0000000000..74856ea9fd --- /dev/null +++ b/docs/v1.1.1/_static/images/pytorch-x.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/docs/v1.1.1/_static/images/search-icon.svg b/docs/v1.1.1/_static/images/search-icon.svg new file mode 100644 index 0000000000..ebb0df8677 --- /dev/null +++ b/docs/v1.1.1/_static/images/search-icon.svg @@ -0,0 +1,19 @@ + + + + Created with Sketch. + + + + + + + + + + + + + + + diff --git a/docs/v1.1.1/_static/images/view-page-source-icon.svg b/docs/v1.1.1/_static/images/view-page-source-icon.svg new file mode 100644 index 0000000000..6f5bbe0748 --- /dev/null +++ b/docs/v1.1.1/_static/images/view-page-source-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/docs/v1.1.1/_static/javascripts/application.js b/docs/v1.1.1/_static/javascripts/application.js new file mode 100644 index 0000000000..7c724d2e4f --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/application.js @@ -0,0 +1,2540 @@ +! function(e, t) { + for (var n in t) e[n] = t[n] +}(window, function(n) { + var r = {}; + + function i(e) { + if (r[e]) return r[e].exports; + var t = r[e] = { + i: e, + l: !1, + exports: {} + }; + return n[e].call(t.exports, t, t.exports, i), t.l = !0, t.exports + } + return i.m = n, i.c = r, i.d = function(e, t, n) { + i.o(e, t) || Object.defineProperty(e, t, { + enumerable: !0, + get: n + }) + }, i.r = function(e) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { + value: "Module" + }), Object.defineProperty(e, "__esModule", { + value: !0 + }) + }, i.t = function(t, e) { + if (1 & e && (t = i(t)), 8 & e) return t; + if (4 & e && "object" == typeof t && t && t.__esModule) return t; + var n = Object.create(null); + if (i.r(n), Object.defineProperty(n, "default", { + enumerable: !0, + value: t + }), 2 & e && "string" != typeof t) + for (var r in t) i.d(n, r, function(e) { + return t[e] + }.bind(null, r)); + return n + }, i.n = function(e) { + var t = e && e.__esModule ? function() { + return e.default + } : function() { + return e + }; + return i.d(t, "a", t), t + }, i.o = function(e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + }, i.p = "", i(i.s = 13) +}([function(e, t, n) { + "use strict"; + var r = { + Listener: function() { + function e(e, t, n) { + var r = this; + this.els_ = Array.prototype.slice.call("string" == typeof e ? document.querySelectorAll(e) : [].concat(e)), this.handler_ = "function" == typeof n ? { + update: n + } : n, this.events_ = [].concat(t), this.update_ = function(e) { + return r.handler_.update(e) + } + } + var t = e.prototype; + return t.listen = function() { + var n = this; + this.els_.forEach(function(t) { + n.events_.forEach(function(e) { + t.addEventListener(e, n.update_, !1) + }) + }), "function" == typeof this.handler_.setup && this.handler_.setup() + }, t.unlisten = function() { + var n = this; + this.els_.forEach(function(t) { + n.events_.forEach(function(e) { + t.removeEventListener(e, n.update_) + }) + }), "function" == typeof this.handler_.reset && this.handler_.reset() + }, e + }(), + MatchMedia: function(e, t) { + this.handler_ = function(e) { + e.matches ? t.listen() : t.unlisten() + }; + var n = window.matchMedia(e); + n.addListener(this.handler_), this.handler_(n) + } + }, + i = { + Shadow: function() { + function e(e, t) { + var n = "string" == typeof e ? document.querySelector(e) : e; + if (!(n instanceof HTMLElement && n.parentNode instanceof HTMLElement)) throw new ReferenceError; + if (this.el_ = n.parentNode, !((n = "string" == typeof t ? document.querySelector(t) : t) instanceof HTMLElement)) throw new ReferenceError; + this.header_ = n, this.height_ = 0, this.active_ = !1 + } + var t = e.prototype; + return t.setup = function() { + for (var e = this.el_; e = e.previousElementSibling;) { + if (!(e instanceof HTMLElement)) throw new ReferenceError; + this.height_ += e.offsetHeight + } + this.update() + }, t.update = function(e) { + if (!e || "resize" !== e.type && "orientationchange" !== e.type) { + var t = window.pageYOffset >= this.height_; + t !== this.active_ && (this.header_.dataset.mdState = (this.active_ = t) ? "shadow" : "") + } else this.height_ = 0, this.setup() + }, t.reset = function() { + this.header_.dataset.mdState = "", this.height_ = 0, this.active_ = !1 + }, e + }(), + Title: function() { + function e(e, t) { + var n = "string" == typeof e ? document.querySelector(e) : e; + if (!(n instanceof HTMLElement)) throw new ReferenceError; + if (this.el_ = n, !((n = "string" == typeof t ? document.querySelector(t) : t) instanceof HTMLHeadingElement)) throw new ReferenceError; + this.header_ = n, this.active_ = !1 + } + var t = e.prototype; + return t.setup = function() { + var t = this; + Array.prototype.forEach.call(this.el_.children, function(e) { + e.style.width = t.el_.offsetWidth - 20 + "px" + }) + }, t.update = function(e) { + var t = this, + n = window.pageYOffset >= this.header_.offsetTop; + n !== this.active_ && (this.el_.dataset.mdState = (this.active_ = n) ? "active" : ""), "resize" !== e.type && "orientationchange" !== e.type || Array.prototype.forEach.call(this.el_.children, function(e) { + e.style.width = t.el_.offsetWidth - 20 + "px" + }) + }, t.reset = function() { + this.el_.dataset.mdState = "", this.el_.style.width = "", this.active_ = !1 + }, e + }() + }, + o = { + Blur: function() { + function e(e) { + this.els_ = "string" == typeof e ? document.querySelectorAll(e) : e, this.index_ = 0, this.offset_ = window.pageYOffset, this.dir_ = !1, this.anchors_ = [].reduce.call(this.els_, function(e, t) { + var n = decodeURIComponent(t.hash); + return e.concat(document.getElementById(n.substring(1)) || []) + }, []) + } + var t = e.prototype; + return t.setup = function() { + this.update() + }, t.update = function() { + var e = window.pageYOffset, + t = this.offset_ - e < 0; + if (this.dir_ !== t && (this.index_ = this.index_ = t ? 0 : this.els_.length - 1), 0 !== this.anchors_.length) { + if (this.offset_ <= e) + for (var n = this.index_ + 1; n < this.els_.length && this.anchors_[n].offsetTop - 80 <= e; n++) 0 < n && (this.els_[n - 1].dataset.mdState = "blur"), this.index_ = n; + else + for (var r = this.index_; 0 <= r; r--) { + if (!(this.anchors_[r].offsetTop - 80 > e)) { + this.index_ = r; + break + } + 0 < r && (this.els_[r - 1].dataset.mdState = "") + } + this.offset_ = e, this.dir_ = t + } + }, t.reset = function() { + Array.prototype.forEach.call(this.els_, function(e) { + e.dataset.mdState = "" + }), this.index_ = 0, this.offset_ = window.pageYOffset + }, e + }(), + Collapse: function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + this.el_ = t + } + var t = e.prototype; + return t.setup = function() { + var e = this.el_.getBoundingClientRect().height; + this.el_.style.display = e ? "block" : "none", this.el_.style.overflow = e ? "visible" : "hidden" + }, t.update = function() { + var e = this, + t = this.el_.getBoundingClientRect().height; + this.el_.style.display = "block", this.el_.style.overflow = ""; + var r = this.el_.previousElementSibling.previousElementSibling.checked; + if (r) this.el_.style.maxHeight = t + "px", requestAnimationFrame(function() { + e.el_.setAttribute("data-md-state", "animate"), e.el_.style.maxHeight = "0px" + }); + else { + this.el_.setAttribute("data-md-state", "expand"), this.el_.style.maxHeight = ""; + var n = this.el_.getBoundingClientRect().height; + this.el_.removeAttribute("data-md-state"), this.el_.style.maxHeight = "0px", requestAnimationFrame(function() { + e.el_.setAttribute("data-md-state", "animate"), e.el_.style.maxHeight = n + "px" + }) + } + this.el_.addEventListener("transitionend", function e(t) { + var n = t.target; + if (!(n instanceof HTMLElement)) throw new ReferenceError; + n.removeAttribute("data-md-state"), n.style.maxHeight = "", n.style.display = r ? "none" : "block", n.style.overflow = r ? "hidden" : "visible", n.removeEventListener("transitionend", e) + }, !1) + }, t.reset = function() { + this.el_.dataset.mdState = "", this.el_.style.maxHeight = "", this.el_.style.display = "", this.el_.style.overflow = "" + }, e + }(), + Scrolling: function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + this.el_ = t + } + var t = e.prototype; + return t.setup = function() { + this.el_.children[this.el_.children.length - 1].style.webkitOverflowScrolling = "touch"; + var e = this.el_.querySelectorAll("[data-md-toggle]"); + Array.prototype.forEach.call(e, function(e) { + if (!(e instanceof HTMLInputElement)) throw new ReferenceError; + if (e.checked) { + var t = e.nextElementSibling; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + for (; + "NAV" !== t.tagName && t.nextElementSibling;) t = t.nextElementSibling; + if (!(e.parentNode instanceof HTMLElement && e.parentNode.parentNode instanceof HTMLElement)) throw new ReferenceError; + var n = e.parentNode.parentNode, + r = t.children[t.children.length - 1]; + n.style.webkitOverflowScrolling = "", r.style.webkitOverflowScrolling = "touch" + } + }) + }, t.update = function(e) { + var t = e.target; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + var n = t.nextElementSibling; + if (!(n instanceof HTMLElement)) throw new ReferenceError; + for (; + "NAV" !== n.tagName && n.nextElementSibling;) n = n.nextElementSibling; + if (!(t.parentNode instanceof HTMLElement && t.parentNode.parentNode instanceof HTMLElement)) throw new ReferenceError; + var r = t.parentNode.parentNode, + i = n.children[n.children.length - 1]; + if (r.style.webkitOverflowScrolling = "", i.style.webkitOverflowScrolling = "", !t.checked) { + n.addEventListener("transitionend", function e() { + n instanceof HTMLElement && (r.style.webkitOverflowScrolling = "touch", n.removeEventListener("transitionend", e)) + }, !1) + } + if (t.checked) { + n.addEventListener("transitionend", function e() { + n instanceof HTMLElement && (i.style.webkitOverflowScrolling = "touch", n.removeEventListener("transitionend", e)) + }, !1) + } + }, t.reset = function() { + this.el_.children[1].style.webkitOverflowScrolling = ""; + var e = this.el_.querySelectorAll("[data-md-toggle]"); + Array.prototype.forEach.call(e, function(e) { + if (!(e instanceof HTMLInputElement)) throw new ReferenceError; + if (e.checked) { + var t = e.nextElementSibling; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + for (; + "NAV" !== t.tagName && t.nextElementSibling;) t = t.nextElementSibling; + if (!(e.parentNode instanceof HTMLElement && e.parentNode.parentNode instanceof HTMLElement)) throw new ReferenceError; + var n = e.parentNode.parentNode, + r = t.children[t.children.length - 1]; + n.style.webkitOverflowScrolling = "", r.style.webkitOverflowScrolling = "" + } + }) + }, e + }() + }, + a = { + Lock: function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLInputElement)) throw new ReferenceError; + if (this.el_ = t, !document.body) throw new ReferenceError; + this.lock_ = document.body + } + var t = e.prototype; + return t.setup = function() { + this.update() + }, t.update = function() { + var e = this; + this.el_.checked ? (this.offset_ = window.pageYOffset, setTimeout(function() { + window.scrollTo(0, 0), e.el_.checked && (e.lock_.dataset.mdState = "lock") + }, 400)) : (this.lock_.dataset.mdState = "", setTimeout(function() { + void 0 !== e.offset_ && window.scrollTo(0, e.offset_) + }, 100)) + }, t.reset = function() { + "lock" === this.lock_.dataset.mdState && window.scrollTo(0, this.offset_), this.lock_.dataset.mdState = "" + }, e + }(), + Result: n(9).a + }, + s = { + Position: function() { + function e(e, t) { + var n = "string" == typeof e ? document.querySelector(e) : e; + if (!(n instanceof HTMLElement && n.parentNode instanceof HTMLElement)) throw new ReferenceError; + if (this.el_ = n, this.parent_ = n.parentNode, !((n = "string" == typeof t ? document.querySelector(t) : t) instanceof HTMLElement)) throw new ReferenceError; + this.header_ = n, this.height_ = 0, this.pad_ = "fixed" === window.getComputedStyle(this.header_).position + } + var t = e.prototype; + return t.setup = function() { + var e = Array.prototype.reduce.call(this.parent_.children, function(e, t) { + return Math.max(e, t.offsetTop) + }, 0); + this.offset_ = e - (this.pad_ ? this.header_.offsetHeight : 0), this.update() + }, t.update = function(e) { + var t = window.pageYOffset, + n = window.innerHeight; + e && "resize" === e.type && this.setup(); + var r = this.pad_ ? this.header_.offsetHeight : 0, + i = this.parent_.offsetTop + this.parent_.offsetHeight, + o = n - r - Math.max(0, this.offset_ - t) - Math.max(0, t + n - i); + o !== this.height_ && (this.el_.style.height = (this.height_ = o) + "px"), t >= this.offset_ ? "lock" !== this.el_.dataset.mdState && (this.el_.dataset.mdState = "lock") : "lock" === this.el_.dataset.mdState && (this.el_.dataset.mdState = "") + }, t.reset = function() { + this.el_.dataset.mdState = "", this.el_.style.height = "", this.height_ = 0 + }, e + }() + }, + c = n(6), + l = n.n(c); + var u = { + Adapter: { + GitHub: function(o) { + var e, t; + + function n(e) { + var t; + t = o.call(this, e) || this; + var n = /^.+github\.com\/([^/]+)\/?([^/]+)?.*$/.exec(t.base_); + if (n && 3 === n.length) { + var r = n[1], + i = n[2]; + t.base_ = "https://api.github.com/users/" + r + "/repos", t.name_ = i + } + return t + } + return t = o, (e = n).prototype = Object.create(t.prototype), (e.prototype.constructor = e).__proto__ = t, n.prototype.fetch_ = function() { + var i = this; + return function n(r) { + return void 0 === r && (r = 0), fetch(i.base_ + "?per_page=30&page=" + r).then(function(e) { + return e.json() + }).then(function(e) { + if (!(e instanceof Array)) throw new TypeError; + if (i.name_) { + var t = e.find(function(e) { + return e.name === i.name_ + }); + return t || 30 !== e.length ? t ? [i.format_(t.stargazers_count) + " Stars", i.format_(t.forks_count) + " Forks"] : [] : n(r + 1) + } + return [e.length + " Repositories"] + }) + }() + }, n + }(function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLAnchorElement)) throw new ReferenceError; + this.el_ = t, this.base_ = this.el_.href, this.salt_ = this.hash_(this.base_) + } + var t = e.prototype; + return t.fetch = function() { + var n = this; + return new Promise(function(t) { + var e = l.a.getJSON(n.salt_ + ".cache-source"); + void 0 !== e ? t(e) : n.fetch_().then(function(e) { + l.a.set(n.salt_ + ".cache-source", e, { + expires: 1 / 96 + }), t(e) + }) + }) + }, t.fetch_ = function() { + throw new Error("fetch_(): Not implemented") + }, t.format_ = function(e) { + return 1e4 < e ? (e / 1e3).toFixed(0) + "k" : 1e3 < e ? (e / 1e3).toFixed(1) + "k" : "" + e + }, t.hash_ = function(e) { + var t = 0; + if (0 === e.length) return t; + for (var n = 0, r = e.length; n < r; n++) t = (t << 5) - t + e.charCodeAt(n), t |= 0; + return t + }, e + }()) + }, + Repository: n(10).a + }, + f = { + Toggle: function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof Node)) throw new ReferenceError; + this.el_ = t; + var n = document.querySelector("[data-md-component=header]"); + this.height_ = n.offsetHeight, this.active_ = !1 + } + var t = e.prototype; + return t.update = function() { + var e = window.pageYOffset >= this.el_.children[0].offsetTop + (5 - this.height_); + e !== this.active_ && (this.el_.dataset.mdState = (this.active_ = e) ? "hidden" : "") + }, t.reset = function() { + this.el_.dataset.mdState = "", this.active_ = !1 + }, e + }() + }; + t.a = { + Event: r, + Header: i, + Nav: o, + Search: a, + Sidebar: s, + Source: u, + Tabs: f + } +}, function(t, e, n) { + (function(e) { + t.exports = e.lunr = n(24) + }).call(this, n(4)) +}, function(e, f, d) { + "use strict"; + (function(t) { + var e = d(8), + n = setTimeout; + + function r() {} + + function o(e) { + if (!(this instanceof o)) throw new TypeError("Promises must be constructed via new"); + if ("function" != typeof e) throw new TypeError("not a function"); + this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], u(e, this) + } + + function i(n, r) { + for (; 3 === n._state;) n = n._value; + 0 !== n._state ? (n._handled = !0, o._immediateFn(function() { + var e = 1 === n._state ? r.onFulfilled : r.onRejected; + if (null !== e) { + var t; + try { + t = e(n._value) + } catch (e) { + return void s(r.promise, e) + } + a(r.promise, t) + } else(1 === n._state ? a : s)(r.promise, n._value) + })) : n._deferreds.push(r) + } + + function a(t, e) { + try { + if (e === t) throw new TypeError("A promise cannot be resolved with itself."); + if (e && ("object" == typeof e || "function" == typeof e)) { + var n = e.then; + if (e instanceof o) return t._state = 3, t._value = e, void c(t); + if ("function" == typeof n) return void u((r = n, i = e, function() { + r.apply(i, arguments) + }), t) + } + t._state = 1, t._value = e, c(t) + } catch (e) { + s(t, e) + } + var r, i + } + + function s(e, t) { + e._state = 2, e._value = t, c(e) + } + + function c(e) { + 2 === e._state && 0 === e._deferreds.length && o._immediateFn(function() { + e._handled || o._unhandledRejectionFn(e._value) + }); + for (var t = 0, n = e._deferreds.length; t < n; t++) i(e, e._deferreds[t]); + e._deferreds = null + } + + function l(e, t, n) { + this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.promise = n + } + + function u(e, t) { + var n = !1; + try { + e(function(e) { + n || (n = !0, a(t, e)) + }, function(e) { + n || (n = !0, s(t, e)) + }) + } catch (e) { + if (n) return; + n = !0, s(t, e) + } + } + o.prototype.catch = function(e) { + return this.then(null, e) + }, o.prototype.then = function(e, t) { + var n = new this.constructor(r); + return i(this, new l(e, t, n)), n + }, o.prototype.finally = e.a, o.all = function(t) { + return new o(function(r, i) { + if (!t || void 0 === t.length) throw new TypeError("Promise.all accepts an array"); + var o = Array.prototype.slice.call(t); + if (0 === o.length) return r([]); + var a = o.length; + + function s(t, e) { + try { + if (e && ("object" == typeof e || "function" == typeof e)) { + var n = e.then; + if ("function" == typeof n) return void n.call(e, function(e) { + s(t, e) + }, i) + } + o[t] = e, 0 == --a && r(o) + } catch (e) { + i(e) + } + } + for (var e = 0; e < o.length; e++) s(e, o[e]) + }) + }, o.resolve = function(t) { + return t && "object" == typeof t && t.constructor === o ? t : new o(function(e) { + e(t) + }) + }, o.reject = function(n) { + return new o(function(e, t) { + t(n) + }) + }, o.race = function(i) { + return new o(function(e, t) { + for (var n = 0, r = i.length; n < r; n++) i[n].then(e, t) + }) + }, o._immediateFn = "function" == typeof t && function(e) { + t(e) + } || function(e) { + n(e, 0) + }, o._unhandledRejectionFn = function(e) { + "undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", e) + }, f.a = o + }).call(this, d(21).setImmediate) +}, function(e, t, n) { + "use strict"; + + function r(e, t) { + var n = document.createElement(e); + t && Array.prototype.forEach.call(Object.keys(t), function(e) { + n.setAttribute(e, t[e]) + }); + for (var r = arguments.length, i = new Array(2 < r ? r - 2 : 0), o = 2; o < r; o++) i[o - 2] = arguments[o]; + return function t(e) { + Array.prototype.forEach.call(e, function(e) { + "string" == typeof e || "number" == typeof e ? n.textContent += e : Array.isArray(e) ? t(e) : void 0 !== e.__html ? n.innerHTML += e.__html : e instanceof Node && n.appendChild(e) + }) + }(i), n + } + n.r(t), n.d(t, "createElement", function() { + return r + }) +}, function(e, t) { + var n; + n = function() { + return this + }(); + try { + n = n || new Function("return this")() + } catch (e) { + "object" == typeof window && (n = window) + } + e.exports = n +}, function(e, t, n) { + var r; + r = function() { + return function(n) { + var r = {}; + + function i(e) { + if (r[e]) return r[e].exports; + var t = r[e] = { + i: e, + l: !1, + exports: {} + }; + return n[e].call(t.exports, t, t.exports, i), t.l = !0, t.exports + } + return i.m = n, i.c = r, i.d = function(e, t, n) { + i.o(e, t) || Object.defineProperty(e, t, { + enumerable: !0, + get: n + }) + }, i.r = function(e) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { + value: "Module" + }), Object.defineProperty(e, "__esModule", { + value: !0 + }) + }, i.t = function(t, e) { + if (1 & e && (t = i(t)), 8 & e) return t; + if (4 & e && "object" == typeof t && t && t.__esModule) return t; + var n = Object.create(null); + if (i.r(n), Object.defineProperty(n, "default", { + enumerable: !0, + value: t + }), 2 & e && "string" != typeof t) + for (var r in t) i.d(n, r, function(e) { + return t[e] + }.bind(null, r)); + return n + }, i.n = function(e) { + var t = e && e.__esModule ? function() { + return e.default + } : function() { + return e + }; + return i.d(t, "a", t), t + }, i.o = function(e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + }, i.p = "", i(i.s = 0) + }([function(e, t, n) { + "use strict"; + var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + return typeof e + } : function(e) { + return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e + }, + o = function() { + function r(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) + } + } + return function(e, t, n) { + return t && r(e.prototype, t), n && r(e, n), e + } + }(), + a = r(n(1)), + s = r(n(3)), + c = r(n(4)); + + function r(e) { + return e && e.__esModule ? e : { + default: e + } + } + var l = function(e) { + function r(e, t) { + ! function(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + }(this, r); + var n = function(e, t) { + if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !t || "object" != typeof t && "function" != typeof t ? e : t + }(this, (r.__proto__ || Object.getPrototypeOf(r)).call(this)); + return n.resolveOptions(t), n.listenClick(e), n + } + return function(e, t) { + if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); + e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0 + } + }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) + }(r, s.default), o(r, [{ + key: "resolveOptions", + value: function() { + var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; + this.action = "function" == typeof e.action ? e.action : this.defaultAction, this.target = "function" == typeof e.target ? e.target : this.defaultTarget, this.text = "function" == typeof e.text ? e.text : this.defaultText, this.container = "object" === i(e.container) ? e.container : document.body + } + }, { + key: "listenClick", + value: function(e) { + var t = this; + this.listener = (0, c.default)(e, "click", function(e) { + return t.onClick(e) + }) + } + }, { + key: "onClick", + value: function(e) { + var t = e.delegateTarget || e.currentTarget; + this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new a.default({ + action: this.action(t), + target: this.target(t), + text: this.text(t), + container: this.container, + trigger: t, + emitter: this + }) + } + }, { + key: "defaultAction", + value: function(e) { + return u("action", e) + } + }, { + key: "defaultTarget", + value: function(e) { + var t = u("target", e); + if (t) return document.querySelector(t) + } + }, { + key: "defaultText", + value: function(e) { + return u("text", e) + } + }, { + key: "destroy", + value: function() { + this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null) + } + }], [{ + key: "isSupported", + value: function() { + var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"], + t = "string" == typeof e ? [e] : e, + n = !!document.queryCommandSupported; + return t.forEach(function(e) { + n = n && !!document.queryCommandSupported(e) + }), n + } + }]), r + }(); + + function u(e, t) { + var n = "data-clipboard-" + e; + if (t.hasAttribute(n)) return t.getAttribute(n) + } + e.exports = l + }, function(e, t, n) { + "use strict"; + var r, i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + return typeof e + } : function(e) { + return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e + }, + o = function() { + function r(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) + } + } + return function(e, t, n) { + return t && r(e.prototype, t), n && r(e, n), e + } + }(), + a = n(2), + s = (r = a) && r.__esModule ? r : { + default: r + }; + var c = function() { + function t(e) { + ! function(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + }(this, t), this.resolveOptions(e), this.initSelection() + } + return o(t, [{ + key: "resolveOptions", + value: function() { + var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; + this.action = e.action, this.container = e.container, this.emitter = e.emitter, this.target = e.target, this.text = e.text, this.trigger = e.trigger, this.selectedText = "" + } + }, { + key: "initSelection", + value: function() { + this.text ? this.selectFake() : this.target && this.selectTarget() + } + }, { + key: "selectFake", + value: function() { + var e = this, + t = "rtl" == document.documentElement.getAttribute("dir"); + this.removeFake(), this.fakeHandlerCallback = function() { + return e.removeFake() + }, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[t ? "right" : "left"] = "-9999px"; + var n = window.pageYOffset || document.documentElement.scrollTop; + this.fakeElem.style.top = n + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, s.default)(this.fakeElem), this.copyText() + } + }, { + key: "removeFake", + value: function() { + this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null) + } + }, { + key: "selectTarget", + value: function() { + this.selectedText = (0, s.default)(this.target), this.copyText() + } + }, { + key: "copyText", + value: function() { + var t = void 0; + try { + t = document.execCommand(this.action) + } catch (e) { + t = !1 + } + this.handleResult(t) + } + }, { + key: "handleResult", + value: function(e) { + this.emitter.emit(e ? "success" : "error", { + action: this.action, + text: this.selectedText, + trigger: this.trigger, + clearSelection: this.clearSelection.bind(this) + }) + } + }, { + key: "clearSelection", + value: function() { + this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges() + } + }, { + key: "destroy", + value: function() { + this.removeFake() + } + }, { + key: "action", + set: function() { + var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "copy"; + if (this._action = e, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"') + }, + get: function() { + return this._action + } + }, { + key: "target", + set: function(e) { + if (void 0 !== e) { + if (!e || "object" !== (void 0 === e ? "undefined" : i(e)) || 1 !== e.nodeType) throw new Error('Invalid "target" value, use a valid Element'); + if ("copy" === this.action && e.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); + if ("cut" === this.action && (e.hasAttribute("readonly") || e.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); + this._target = e + } + }, + get: function() { + return this._target + } + }]), t + }(); + e.exports = c + }, function(e, t) { + e.exports = function(e) { + var t; + if ("SELECT" === e.nodeName) e.focus(), t = e.value; + else if ("INPUT" === e.nodeName || "TEXTAREA" === e.nodeName) { + var n = e.hasAttribute("readonly"); + n || e.setAttribute("readonly", ""), e.select(), e.setSelectionRange(0, e.value.length), n || e.removeAttribute("readonly"), t = e.value + } else { + e.hasAttribute("contenteditable") && e.focus(); + var r = window.getSelection(), + i = document.createRange(); + i.selectNodeContents(e), r.removeAllRanges(), r.addRange(i), t = r.toString() + } + return t + } + }, function(e, t) { + function n() {} + n.prototype = { + on: function(e, t, n) { + var r = this.e || (this.e = {}); + return (r[e] || (r[e] = [])).push({ + fn: t, + ctx: n + }), this + }, + once: function(e, t, n) { + var r = this; + + function i() { + r.off(e, i), t.apply(n, arguments) + } + return i._ = t, this.on(e, i, n) + }, + emit: function(e) { + for (var t = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[e] || []).slice(), r = 0, i = n.length; r < i; r++) n[r].fn.apply(n[r].ctx, t); + return this + }, + off: function(e, t) { + var n = this.e || (this.e = {}), + r = n[e], + i = []; + if (r && t) + for (var o = 0, a = r.length; o < a; o++) r[o].fn !== t && r[o].fn._ !== t && i.push(r[o]); + return i.length ? n[e] = i : delete n[e], this + } + }, e.exports = n + }, function(e, t, n) { + var d = n(5), + h = n(6); + e.exports = function(e, t, n) { + if (!e && !t && !n) throw new Error("Missing required arguments"); + if (!d.string(t)) throw new TypeError("Second argument must be a String"); + if (!d.fn(n)) throw new TypeError("Third argument must be a Function"); + if (d.node(e)) return u = t, f = n, (l = e).addEventListener(u, f), { + destroy: function() { + l.removeEventListener(u, f) + } + }; + if (d.nodeList(e)) return a = e, s = t, c = n, Array.prototype.forEach.call(a, function(e) { + e.addEventListener(s, c) + }), { + destroy: function() { + Array.prototype.forEach.call(a, function(e) { + e.removeEventListener(s, c) + }) + } + }; + if (d.string(e)) return r = e, i = t, o = n, h(document.body, r, i, o); + throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); + var r, i, o, a, s, c, l, u, f + } + }, function(e, n) { + n.node = function(e) { + return void 0 !== e && e instanceof HTMLElement && 1 === e.nodeType + }, n.nodeList = function(e) { + var t = Object.prototype.toString.call(e); + return void 0 !== e && ("[object NodeList]" === t || "[object HTMLCollection]" === t) && "length" in e && (0 === e.length || n.node(e[0])) + }, n.string = function(e) { + return "string" == typeof e || e instanceof String + }, n.fn = function(e) { + return "[object Function]" === Object.prototype.toString.call(e) + } + }, function(e, t, n) { + var a = n(7); + + function o(e, t, n, r, i) { + var o = function(t, n, e, r) { + return function(e) { + e.delegateTarget = a(e.target, n), e.delegateTarget && r.call(t, e) + } + }.apply(this, arguments); + return e.addEventListener(n, o, i), { + destroy: function() { + e.removeEventListener(n, o, i) + } + } + } + e.exports = function(e, t, n, r, i) { + return "function" == typeof e.addEventListener ? o.apply(null, arguments) : "function" == typeof n ? o.bind(null, document).apply(null, arguments) : ("string" == typeof e && (e = document.querySelectorAll(e)), Array.prototype.map.call(e, function(e) { + return o(e, t, n, r, i) + })) + } + }, function(e, t) { + if ("undefined" != typeof Element && !Element.prototype.matches) { + var n = Element.prototype; + n.matches = n.matchesSelector || n.mozMatchesSelector || n.msMatchesSelector || n.oMatchesSelector || n.webkitMatchesSelector + } + e.exports = function(e, t) { + for (; e && 9 !== e.nodeType;) { + if ("function" == typeof e.matches && e.matches(t)) return e; + e = e.parentNode + } + } + }]) + }, e.exports = r() +}, function(r, i, o) { + var a, s; + ! function(e) { + if (void 0 === (s = "function" == typeof(a = e) ? a.call(i, o, i, r) : a) || (r.exports = s), !0, r.exports = e(), !!0) { + var t = window.Cookies, + n = window.Cookies = e(); + n.noConflict = function() { + return window.Cookies = t, n + } + } + }(function() { + function m() { + for (var e = 0, t = {}; e < arguments.length; e++) { + var n = arguments[e]; + for (var r in n) t[r] = n[r] + } + return t + } + return function e(h) { + function p(e, t, n) { + var r; + if ("undefined" != typeof document) { + if (1 < arguments.length) { + if ("number" == typeof(n = m({ + path: "/" + }, p.defaults, n)).expires) { + var i = new Date; + i.setMilliseconds(i.getMilliseconds() + 864e5 * n.expires), n.expires = i + } + n.expires = n.expires ? n.expires.toUTCString() : ""; + try { + r = JSON.stringify(t), /^[\{\[]/.test(r) && (t = r) + } catch (e) {} + t = h.write ? h.write(t, e) : encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), e = (e = (e = encodeURIComponent(String(e))).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)).replace(/[\(\)]/g, escape); + var o = ""; + for (var a in n) n[a] && (o += "; " + a, !0 !== n[a] && (o += "=" + n[a])); + return document.cookie = e + "=" + t + o + } + e || (r = {}); + for (var s = document.cookie ? document.cookie.split("; ") : [], c = /(%[0-9A-Z]{2})+/g, l = 0; l < s.length; l++) { + var u = s[l].split("="), + f = u.slice(1).join("="); + this.json || '"' !== f.charAt(0) || (f = f.slice(1, -1)); + try { + var d = u[0].replace(c, decodeURIComponent); + if (f = h.read ? h.read(f, d) : h(f, d) || f.replace(c, decodeURIComponent), this.json) try { + f = JSON.parse(f) + } catch (e) {} + if (e === d) { + r = f; + break + } + e || (r[d] = f) + } catch (e) {} + } + return r + } + } + return (p.set = p).get = function(e) { + return p.call(p, e) + }, p.getJSON = function() { + return p.apply({ + json: !0 + }, [].slice.call(arguments)) + }, p.defaults = {}, p.remove = function(e, t) { + p(e, "", m(t, { + expires: -1 + })) + }, p.withConverter = e, p + }(function() {}) + }) +}, function(e, t, n) { + "use strict"; + n.r(t); + var r = "function" == typeof fetch ? fetch.bind() : function(i, o) { + return o = o || {}, new Promise(function(e, t) { + var n = new XMLHttpRequest; + for (var r in n.open(o.method || "get", i, !0), o.headers) n.setRequestHeader(r, o.headers[r]); + + function s() { + var r, i = [], + o = [], + a = {}; + return n.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm, function(e, t, n) { + i.push(t = t.toLowerCase()), o.push([t, n]), r = a[t], a[t] = r ? r + "," + n : n + }), { + ok: 2 == (n.status / 100 | 0), + status: n.status, + statusText: n.statusText, + url: n.responseURL, + clone: s, + text: function() { + return Promise.resolve(n.responseText) + }, + json: function() { + return Promise.resolve(n.responseText).then(JSON.parse) + }, + blob: function() { + return Promise.resolve(new Blob([n.response])) + }, + headers: { + keys: function() { + return i + }, + entries: function() { + return o + }, + get: function(e) { + return a[e.toLowerCase()] + }, + has: function(e) { + return e.toLowerCase() in a + } + } + } + } + n.withCredentials = "include" == o.credentials, n.onload = function() { + e(s()) + }, n.onerror = t, n.send(o.body || null) + }) + }; + t.default = r +}, function(e, t, n) { + "use strict"; + t.a = function(t) { + var n = this.constructor; + return this.then(function(e) { + return n.resolve(t()).then(function() { + return e + }) + }, function(e) { + return n.resolve(t()).then(function() { + return n.reject(e) + }) + }) + } +}, function(e, n, r) { + "use strict"; + (function(f) { + r.d(n, "a", function() { + return t + }); + var e = r(1), + d = r.n(e), + h = function(e) { + var t = document.getElementsByName("lang:" + e)[0]; + if (!(t instanceof HTMLMetaElement)) throw new ReferenceError; + return t.content + }, + t = function() { + function e(e, t) { + var n = "string" == typeof e ? document.querySelector(e) : e; + if (!(n instanceof HTMLElement)) throw new ReferenceError; + this.el_ = n; + var r = Array.prototype.slice.call(this.el_.children), + i = r[0], + o = r[1]; + this.data_ = t, this.meta_ = i, this.list_ = o, this.message_ = { + placeholder: this.meta_.textContent, + none: h("search.result.none"), + one: h("search.result.one"), + other: h("search.result.other") + }; + var a = h("search.tokenizer"); + a.length && (d.a.tokenizer.separator = a), this.lang_ = h("search.language").split(",").filter(Boolean).map(function(e) { + return e.trim() + }) + } + return e.prototype.update = function(e) { + var t, a = this; + if ("focus" !== e.type || this.index_) { + if ("focus" === e.type || "keyup" === e.type) { + var n = e.target; + if (!(n instanceof HTMLInputElement)) throw new ReferenceError; + if (!this.index_ || n.value === this.value_) return; + for (; this.list_.firstChild;) this.list_.removeChild(this.list_.firstChild); + if (this.value_ = n.value, 0 === this.value_.length) return void(this.meta_.textContent = this.message_.placeholder); + var r = this.index_.query(function(t) { + a.value_.toLowerCase().split(" ").filter(Boolean).forEach(function(e) { + t.term(e, { + wildcard: d.a.Query.wildcard.TRAILING + }) + }) + }).reduce(function(e, t) { + var n = a.docs_.get(t.ref); + if (n.parent) { + var r = n.parent.location; + e.set(r, (e.get(r) || []).concat(t)) + } else { + var i = n.location; + e.set(i, e.get(i) || []) + } + return e + }, new Map), + i = (t = this.value_.trim(), t.replace(/[|\\{}()[\]^$+*?.-]/g, "\\$&")).replace(new RegExp(d.a.tokenizer.separator, "img"), "|"), + s = new RegExp("(^|" + d.a.tokenizer.separator + ")(" + i + ")", "img"), + c = function(e, t, n) { + return t + "" + n + "" + }; + this.stack_ = [], r.forEach(function(e, t) { + var n, r = a.docs_.get(t), + i = f.createElement("li", { + class: "md-search-result__item" + }, f.createElement("a", { + href: r.location, + title: r.title, + class: "md-search-result__link", + tabindex: "-1" + }, f.createElement("article", { + class: "md-search-result__article md-search-result__article--document" + }, f.createElement("h1", { + class: "md-search-result__title" + }, { + __html: r.title.replace(s, c) + }), r.text.length ? f.createElement("p", { + class: "md-search-result__teaser" + }, { + __html: r.text.replace(s, c) + }) : {}))), + o = e.map(function(t) { + return function() { + var e = a.docs_.get(t.ref); + i.appendChild(f.createElement("a", { + href: e.location, + title: e.title, + class: "md-search-result__link", + "data-md-rel": "anchor", + tabindex: "-1" + }, f.createElement("article", { + class: "md-search-result__article" + }, f.createElement("h1", { + class: "md-search-result__title" + }, { + __html: e.title.replace(s, c) + }), e.text.length ? f.createElement("p", { + class: "md-search-result__teaser" + }, { + __html: function(e, t) { + var n = t; + if (e.length > n) { + for (; + " " !== e[n] && 0 < --n;); + return e.substring(0, n) + "..." + } + return e + }(e.text.replace(s, c), 400) + }) : {}))) + } + }); + (n = a.stack_).push.apply(n, [function() { + return a.list_.appendChild(i) + }].concat(o)) + }); + var o = this.el_.parentNode; + if (!(o instanceof HTMLElement)) throw new ReferenceError; + for (; this.stack_.length && o.offsetHeight >= o.scrollHeight - 16;) this.stack_.shift()(); + var l = this.list_.querySelectorAll("[data-md-rel=anchor]"); + switch (Array.prototype.forEach.call(l, function(r) { + ["click", "keydown"].forEach(function(n) { + r.addEventListener(n, function(e) { + if ("keydown" !== n || 13 === e.keyCode) { + var t = document.querySelector("[data-md-toggle=search]"); + if (!(t instanceof HTMLInputElement)) throw new ReferenceError; + t.checked && (t.checked = !1, t.dispatchEvent(new CustomEvent("change"))), e.preventDefault(), setTimeout(function() { + document.location.href = r.href + }, 100) + } + }) + }) + }), r.size) { + case 0: + this.meta_.textContent = this.message_.none; + break; + case 1: + this.meta_.textContent = this.message_.one; + break; + default: + this.meta_.textContent = this.message_.other.replace("#", r.size) + } + } + } else { + var u = function(e) { + a.docs_ = e.reduce(function(e, t) { + var n, r, i, o = t.location.split("#"), + a = o[0], + s = o[1]; + return t.text = (n = t.text, r = document.createTextNode(n), (i = document.createElement("p")).appendChild(r), i.innerHTML), s && (t.parent = e.get(a), t.parent && !t.parent.done && (t.parent.title = t.title, t.parent.text = t.text, t.parent.done = !0)), t.text = t.text.replace(/\n/g, " ").replace(/\s+/g, " ").replace(/\s+([,.:;!?])/g, function(e, t) { + return t + }), t.parent && t.parent.title === t.title || e.set(t.location, t), e + }, new Map); + var i = a.docs_, + o = a.lang_; + a.stack_ = [], a.index_ = d()(function() { + var e, t = this, + n = { + "search.pipeline.trimmer": d.a.trimmer, + "search.pipeline.stopwords": d.a.stopWordFilter + }, + r = Object.keys(n).reduce(function(e, t) { + return h(t).match(/^false$/i) || e.push(n[t]), e + }, []); + this.pipeline.reset(), r && (e = this.pipeline).add.apply(e, r), 1 === o.length && "en" !== o[0] && d.a[o[0]] ? this.use(d.a[o[0]]) : 1 < o.length && this.use(d.a.multiLanguage.apply(d.a, o)), this.field("title", { + boost: 10 + }), this.field("text"), this.ref("location"), i.forEach(function(e) { + return t.add(e) + }) + }); + var t = a.el_.parentNode; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + t.addEventListener("scroll", function() { + for (; a.stack_.length && t.scrollTop + t.offsetHeight >= t.scrollHeight - 16;) a.stack_.splice(0, 10).forEach(function(e) { + return e() + }) + }) + }; + setTimeout(function() { + return "function" == typeof a.data_ ? a.data_().then(u) : u(a.data_) + }, 250) + } + }, e + }() + }).call(this, r(3)) +}, function(e, n, r) { + "use strict"; + (function(t) { + r.d(n, "a", function() { + return e + }); + var e = function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + this.el_ = t + } + return e.prototype.initialize = function(e) { + e.length && this.el_.children.length && this.el_.children[this.el_.children.length - 1].appendChild(t.createElement("ul", { + class: "md-source__facts" + }, e.map(function(e) { + return t.createElement("li", { + class: "md-source__fact" + }, e) + }))), this.el_.dataset.mdState = "done" + }, e + }() + }).call(this, r(3)) +}, , , function(e, n, c) { + "use strict"; + c.r(n), + function(o) { + c.d(n, "app", function() { + return t + }); + c(14), c(15), c(16), c(17), c(18), c(19), c(20); + var r = c(2), + e = c(5), + a = c.n(e), + i = c(0); + window.Promise = window.Promise || r.a; + var s = function(e) { + var t = document.getElementsByName("lang:" + e)[0]; + if (!(t instanceof HTMLMetaElement)) throw new ReferenceError; + return t.content + }; + var t = { + initialize: function(t) { + new i.a.Event.Listener(document, "DOMContentLoaded", function() { + if (!(document.body instanceof HTMLElement)) throw new ReferenceError; + Modernizr.addTest("ios", function() { + return !!navigator.userAgent.match(/(iPad|iPhone|iPod)/g) + }); + var e = document.querySelectorAll("table:not([class])"); + if (Array.prototype.forEach.call(e, function(e) { + var t = o.createElement("div", { + class: "md-typeset__scrollwrap" + }, o.createElement("div", { + class: "md-typeset__table" + })); + e.nextSibling ? e.parentNode.insertBefore(t, e.nextSibling) : e.parentNode.appendChild(t), t.children[0].appendChild(e) + }), a.a.isSupported()) { + var t = document.querySelectorAll(".codehilite > pre, pre > code"); + Array.prototype.forEach.call(t, function(e, t) { + var n = "__code_" + t, + r = o.createElement("button", { + class: "md-clipboard", + title: s("clipboard.copy"), + "data-clipboard-target": "#" + n + " pre, #" + n + " code" + }, o.createElement("span", { + class: "md-clipboard__message" + })), + i = e.parentNode; + i.id = n, i.insertBefore(r, e) + }), new a.a(".md-clipboard").on("success", function(e) { + var t = e.trigger.querySelector(".md-clipboard__message"); + if (!(t instanceof HTMLElement)) throw new ReferenceError; + e.clearSelection(), t.dataset.mdTimer && clearTimeout(parseInt(t.dataset.mdTimer, 10)), t.classList.add("md-clipboard__message--active"), t.innerHTML = s("clipboard.copied"), t.dataset.mdTimer = setTimeout(function() { + t.classList.remove("md-clipboard__message--active"), t.dataset.mdTimer = "" + }, 2e3).toString() + }) + } + if (!Modernizr.details) { + var n = document.querySelectorAll("details > summary"); + Array.prototype.forEach.call(n, function(e) { + e.addEventListener("click", function(e) { + var t = e.target.parentNode; + t.hasAttribute("open") ? t.removeAttribute("open") : t.setAttribute("open", "") + }) + }) + } + var r = function() { + if (document.location.hash) { + var e = document.getElementById(document.location.hash.substring(1)); + if (!e) return; + for (var t = e.parentNode; t && !(t instanceof HTMLDetailsElement);) t = t.parentNode; + if (t && !t.open) { + t.open = !0; + var n = location.hash; + location.hash = " ", location.hash = n + } + } + }; + if (window.addEventListener("hashchange", r), r(), Modernizr.ios) { + var i = document.querySelectorAll("[data-md-scrollfix]"); + Array.prototype.forEach.call(i, function(t) { + t.addEventListener("touchstart", function() { + var e = t.scrollTop; + 0 === e ? t.scrollTop = 1 : e + t.offsetHeight === t.scrollHeight && (t.scrollTop = e - 1) + }) + }) + } + }).listen(), new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Header.Shadow("[data-md-component=container]", "[data-md-component=header]")).listen(), new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Header.Title("[data-md-component=title]", ".md-typeset h1")).listen(), document.querySelector("[data-md-component=hero]") && new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Tabs.Toggle("[data-md-component=hero]")).listen(), document.querySelector("[data-md-component=tabs]") && new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Tabs.Toggle("[data-md-component=tabs]")).listen(), new i.a.Event.MatchMedia("(min-width: 1220px)", new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Sidebar.Position("[data-md-component=navigation]", "[data-md-component=header]"))), document.querySelector("[data-md-component=toc]") && new i.a.Event.MatchMedia("(min-width: 960px)", new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Sidebar.Position("[data-md-component=toc]", "[data-md-component=header]"))), new i.a.Event.MatchMedia("(min-width: 960px)", new i.a.Event.Listener(window, "scroll", new i.a.Nav.Blur("[data-md-component=toc] .md-nav__link"))); + var e = document.querySelectorAll("[data-md-component=collapsible]"); + Array.prototype.forEach.call(e, function(e) { + new i.a.Event.MatchMedia("(min-width: 1220px)", new i.a.Event.Listener(e.previousElementSibling, "click", new i.a.Nav.Collapse(e))) + }), new i.a.Event.MatchMedia("(max-width: 1219px)", new i.a.Event.Listener("[data-md-component=navigation] [data-md-toggle]", "change", new i.a.Nav.Scrolling("[data-md-component=navigation] nav"))), document.querySelector("[data-md-component=search]") && (new i.a.Event.MatchMedia("(max-width: 959px)", new i.a.Event.Listener("[data-md-toggle=search]", "change", new i.a.Search.Lock("[data-md-toggle=search]")))), + new i.a.Event.Listener(document.body, "keydown", function(e) { + if (9 === e.keyCode) { + var t = document.querySelectorAll("[data-md-component=navigation] .md-nav__link[for]:not([tabindex])"); + Array.prototype.forEach.call(t, function(e) { + e.offsetHeight && (e.tabIndex = 0) + }) + } + }).listen(), new i.a.Event.Listener(document.body, "mousedown", function() { + var e = document.querySelectorAll("[data-md-component=navigation] .md-nav__link[tabindex]"); + Array.prototype.forEach.call(e, function(e) { + e.removeAttribute("tabIndex") + }) + }).listen(), document.body.addEventListener("click", function() { + "tabbing" === document.body.dataset.mdState && (document.body.dataset.mdState = "") + }), new i.a.Event.MatchMedia("(max-width: 959px)", new i.a.Event.Listener("[data-md-component=navigation] [href^='#']", "click", function() { + var e = document.querySelector("[data-md-toggle=drawer]"); + if (!(e instanceof HTMLInputElement)) throw new ReferenceError; + e.checked && (e.checked = !1, e.dispatchEvent(new CustomEvent("change"))) + })), + function() { + var e = document.querySelector("[data-md-source]"); + if (!e) return r.a.resolve([]); + if (!(e instanceof HTMLAnchorElement)) throw new ReferenceError; + switch (e.dataset.mdSource) { + case "github": + return new i.a.Source.Adapter.GitHub(e).fetch(); + default: + return r.a.resolve([]) + } + }().then(function(t) { + var e = document.querySelectorAll("[data-md-source]"); + Array.prototype.forEach.call(e, function(e) { + new i.a.Source.Repository(e).initialize(t) + }) + }); + var n = function() { + var e = document.querySelectorAll("details"); + Array.prototype.forEach.call(e, function(e) { + e.setAttribute("open", "") + }) + }; + new i.a.Event.MatchMedia("print", { + listen: n, + unlisten: function() {} + }), window.onbeforeprint = n + } + } + }.call(this, c(3)) +}, function(e, t, n) { + e.exports = n.p + "assets/images/icons/bitbucket.1b09e088.svg" +}, function(e, t, n) { + e.exports = n.p + "assets/images/icons/github.f0b8504a.svg" +}, function(e, t, n) { + e.exports = n.p + "assets/images/icons/gitlab.6dd19c00.svg" +}, function(e, t) { + e.exports = "/Users/squidfunk/Desktop/General/Sources/mkdocs-material/material/application.4031d38b.css" +}, function(e, t) { + e.exports = "/Users/squidfunk/Desktop/General/Sources/mkdocs-material/material/application-palette.224b79ff.css" +}, function(e, t) { + ! function() { + if ("undefined" != typeof window) try { + var e = new window.CustomEvent("test", { + cancelable: !0 + }); + if (e.preventDefault(), !0 !== e.defaultPrevented) throw new Error("Could not prevent default") + } catch (e) { + var t = function(e, t) { + var n, r; + return (t = t || {}).bubbles = !!t.bubbles, t.cancelable = !!t.cancelable, (n = document.createEvent("CustomEvent")).initCustomEvent(e, t.bubbles, t.cancelable, t.detail), r = n.preventDefault, n.preventDefault = function() { + r.call(this); + try { + Object.defineProperty(this, "defaultPrevented", { + get: function() { + return !0 + } + }) + } catch (e) { + this.defaultPrevented = !0 + } + }, n + }; + t.prototype = window.Event.prototype, window.CustomEvent = t + } + }() +}, function(e, t, n) { + window.fetch || (window.fetch = n(7).default || n(7)) +}, function(e, i, o) { + (function(e) { + var t = void 0 !== e && e || "undefined" != typeof self && self || window, + n = Function.prototype.apply; + + function r(e, t) { + this._id = e, this._clearFn = t + } + i.setTimeout = function() { + return new r(n.call(setTimeout, t, arguments), clearTimeout) + }, i.setInterval = function() { + return new r(n.call(setInterval, t, arguments), clearInterval) + }, i.clearTimeout = i.clearInterval = function(e) { + e && e.close() + }, r.prototype.unref = r.prototype.ref = function() {}, r.prototype.close = function() { + this._clearFn.call(t, this._id) + }, i.enroll = function(e, t) { + clearTimeout(e._idleTimeoutId), e._idleTimeout = t + }, i.unenroll = function(e) { + clearTimeout(e._idleTimeoutId), e._idleTimeout = -1 + }, i._unrefActive = i.active = function(e) { + clearTimeout(e._idleTimeoutId); + var t = e._idleTimeout; + 0 <= t && (e._idleTimeoutId = setTimeout(function() { + e._onTimeout && e._onTimeout() + }, t)) + }, o(22), i.setImmediate = "undefined" != typeof self && self.setImmediate || void 0 !== e && e.setImmediate || this && this.setImmediate, i.clearImmediate = "undefined" != typeof self && self.clearImmediate || void 0 !== e && e.clearImmediate || this && this.clearImmediate + }).call(this, o(4)) +}, function(e, t, n) { + (function(e, p) { + ! function(n, r) { + "use strict"; + if (!n.setImmediate) { + var i, o, t, a, e, s = 1, + c = {}, + l = !1, + u = n.document, + f = Object.getPrototypeOf && Object.getPrototypeOf(n); + f = f && f.setTimeout ? f : n, i = "[object process]" === {}.toString.call(n.process) ? function(e) { + p.nextTick(function() { + h(e) + }) + } : function() { + if (n.postMessage && !n.importScripts) { + var e = !0, + t = n.onmessage; + return n.onmessage = function() { + e = !1 + }, n.postMessage("", "*"), n.onmessage = t, e + } + }() ? (a = "setImmediate$" + Math.random() + "$", e = function(e) { + e.source === n && "string" == typeof e.data && 0 === e.data.indexOf(a) && h(+e.data.slice(a.length)) + }, n.addEventListener ? n.addEventListener("message", e, !1) : n.attachEvent("onmessage", e), function(e) { + n.postMessage(a + e, "*") + }) : n.MessageChannel ? ((t = new MessageChannel).port1.onmessage = function(e) { + h(e.data) + }, function(e) { + t.port2.postMessage(e) + }) : u && "onreadystatechange" in u.createElement("script") ? (o = u.documentElement, function(e) { + var t = u.createElement("script"); + t.onreadystatechange = function() { + h(e), t.onreadystatechange = null, o.removeChild(t), t = null + }, o.appendChild(t) + }) : function(e) { + setTimeout(h, 0, e) + }, f.setImmediate = function(e) { + "function" != typeof e && (e = new Function("" + e)); + for (var t = new Array(arguments.length - 1), n = 0; n < t.length; n++) t[n] = arguments[n + 1]; + var r = { + callback: e, + args: t + }; + return c[s] = r, i(s), s++ + }, f.clearImmediate = d + } + + function d(e) { + delete c[e] + } + + function h(e) { + if (l) setTimeout(h, 0, e); + else { + var t = c[e]; + if (t) { + l = !0; + try { + ! function(e) { + var t = e.callback, + n = e.args; + switch (n.length) { + case 0: + t(); + break; + case 1: + t(n[0]); + break; + case 2: + t(n[0], n[1]); + break; + case 3: + t(n[0], n[1], n[2]); + break; + default: + t.apply(r, n) + } + }(t) + } finally { + d(e), l = !1 + } + } + } + } + }("undefined" == typeof self ? void 0 === e ? this : e : self) + }).call(this, n(4), n(23)) +}, function(e, t) { + var n, r, i = e.exports = {}; + + function o() { + throw new Error("setTimeout has not been defined") + } + + function a() { + throw new Error("clearTimeout has not been defined") + } + + function s(t) { + if (n === setTimeout) return setTimeout(t, 0); + if ((n === o || !n) && setTimeout) return n = setTimeout, setTimeout(t, 0); + try { + return n(t, 0) + } catch (e) { + try { + return n.call(null, t, 0) + } catch (e) { + return n.call(this, t, 0) + } + } + }! function() { + try { + n = "function" == typeof setTimeout ? setTimeout : o + } catch (e) { + n = o + } + try { + r = "function" == typeof clearTimeout ? clearTimeout : a + } catch (e) { + r = a + } + }(); + var c, l = [], + u = !1, + f = -1; + + function d() { + u && c && (u = !1, c.length ? l = c.concat(l) : f = -1, l.length && h()) + } + + function h() { + if (!u) { + var e = s(d); + u = !0; + for (var t = l.length; t;) { + for (c = l, l = []; ++f < t;) c && c[f].run(); + f = -1, t = l.length + } + c = null, u = !1, + function(t) { + if (r === clearTimeout) return clearTimeout(t); + if ((r === a || !r) && clearTimeout) return r = clearTimeout, clearTimeout(t); + try { + r(t) + } catch (e) { + try { + return r.call(null, t) + } catch (e) { + return r.call(this, t) + } + } + }(e) + } + } + + function p(e, t) { + this.fun = e, this.array = t + } + + function m() {} + i.nextTick = function(e) { + var t = new Array(arguments.length - 1); + if (1 < arguments.length) + for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; + l.push(new p(e, t)), 1 !== l.length || u || s(h) + }, p.prototype.run = function() { + this.fun.apply(null, this.array) + }, i.title = "browser", i.browser = !0, i.env = {}, i.argv = [], i.version = "", i.versions = {}, i.on = m, i.addListener = m, i.once = m, i.off = m, i.removeListener = m, i.removeAllListeners = m, i.emit = m, i.prependListener = m, i.prependOnceListener = m, i.listeners = function(e) { + return [] + }, i.binding = function(e) { + throw new Error("process.binding is not supported") + }, i.cwd = function() { + return "/" + }, i.chdir = function(e) { + throw new Error("process.chdir is not supported") + }, i.umask = function() { + return 0 + } +}, function(i, o, a) { + var s, c; + /** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.6 + * Copyright (C) 2019 Oliver Nightingale + * @license MIT + */ + ! function() { + var t, l, u, e, n, f, d, h, p, m, y, v, g, w, _, E, x, b, k, S, T, L, R, O, C, r, D = function(e) { + var t = new D.Builder; + return t.pipeline.add(D.trimmer, D.stopWordFilter, D.stemmer), t.searchPipeline.add(D.stemmer), e.call(t, t), t.build() + }; + D.version = "2.3.6", D.utils = {}, D.utils.warn = (t = this, function(e) { + t.console && console.warn && console.warn(e) + }), D.utils.asString = function(e) { + return null == e ? "" : e.toString() + }, D.utils.clone = function(e) { + if (null == e) return e; + for (var t = Object.create(null), n = Object.keys(e), r = 0; r < n.length; r++) { + var i = n[r], + o = e[i]; + if (Array.isArray(o)) t[i] = o.slice(); + else { + if ("string" != typeof o && "number" != typeof o && "boolean" != typeof o) throw new TypeError("clone is not deep and does not support nested objects"); + t[i] = o + } + } + return t + }, D.FieldRef = function(e, t, n) { + this.docRef = e, this.fieldName = t, this._stringValue = n + }, D.FieldRef.joiner = "/", D.FieldRef.fromString = function(e) { + var t = e.indexOf(D.FieldRef.joiner); + if (-1 === t) throw "malformed field ref string"; + var n = e.slice(0, t), + r = e.slice(t + 1); + return new D.FieldRef(r, n, e) + }, D.FieldRef.prototype.toString = function() { + return null == this._stringValue && (this._stringValue = this.fieldName + D.FieldRef.joiner + this.docRef), this._stringValue + }, D.Set = function(e) { + if (this.elements = Object.create(null), e) { + this.length = e.length; + for (var t = 0; t < this.length; t++) this.elements[e[t]] = !0 + } else this.length = 0 + }, D.Set.complete = { + intersect: function(e) { + return e + }, + union: function(e) { + return e + }, + contains: function() { + return !0 + } + }, D.Set.empty = { + intersect: function() { + return this + }, + union: function(e) { + return e + }, + contains: function() { + return !1 + } + }, D.Set.prototype.contains = function(e) { + return !!this.elements[e] + }, D.Set.prototype.intersect = function(e) { + var t, n, r, i = []; + if (e === D.Set.complete) return this; + if (e === D.Set.empty) return e; + n = this.length < e.length ? (t = this, e) : (t = e, this), r = Object.keys(t.elements); + for (var o = 0; o < r.length; o++) { + var a = r[o]; + a in n.elements && i.push(a) + } + return new D.Set(i) + }, D.Set.prototype.union = function(e) { + return e === D.Set.complete ? D.Set.complete : e === D.Set.empty ? this : new D.Set(Object.keys(this.elements).concat(Object.keys(e.elements))) + }, D.idf = function(e, t) { + var n = 0; + for (var r in e) "_index" != r && (n += Object.keys(e[r]).length); + var i = (t - n + .5) / (n + .5); + return Math.log(1 + Math.abs(i)) + }, D.Token = function(e, t) { + this.str = e || "", this.metadata = t || {} + }, D.Token.prototype.toString = function() { + return this.str + }, D.Token.prototype.update = function(e) { + return this.str = e(this.str, this.metadata), this + }, D.Token.prototype.clone = function(e) { + return e = e || function(e) { + return e + }, new D.Token(e(this.str, this.metadata), this.metadata) + }, D.tokenizer = function(e, t) { + if (null == e || null == e) return []; + if (Array.isArray(e)) return e.map(function(e) { + return new D.Token(D.utils.asString(e).toLowerCase(), D.utils.clone(t)) + }); + for (var n = e.toString().trim().toLowerCase(), r = n.length, i = [], o = 0, a = 0; o <= r; o++) { + var s = o - a; + if (n.charAt(o).match(D.tokenizer.separator) || o == r) { + if (0 < s) { + var c = D.utils.clone(t) || {}; + c.position = [a, s], c.index = i.length, i.push(new D.Token(n.slice(a, o), c)) + } + a = o + 1 + } + } + return i + }, D.tokenizer.separator = /[\s\-]+/, D.Pipeline = function() { + this._stack = [] + }, D.Pipeline.registeredFunctions = Object.create(null), D.Pipeline.registerFunction = function(e, t) { + t in this.registeredFunctions && D.utils.warn("Overwriting existing registered function: " + t), e.label = t, D.Pipeline.registeredFunctions[e.label] = e + }, D.Pipeline.warnIfFunctionNotRegistered = function(e) { + e.label && e.label in this.registeredFunctions || D.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n", e) + }, D.Pipeline.load = function(e) { + var n = new D.Pipeline; + return e.forEach(function(e) { + var t = D.Pipeline.registeredFunctions[e]; + if (!t) throw new Error("Cannot load unregistered function: " + e); + n.add(t) + }), n + }, D.Pipeline.prototype.add = function() { + Array.prototype.slice.call(arguments).forEach(function(e) { + D.Pipeline.warnIfFunctionNotRegistered(e), this._stack.push(e) + }, this) + }, D.Pipeline.prototype.after = function(e, t) { + D.Pipeline.warnIfFunctionNotRegistered(t); + var n = this._stack.indexOf(e); + if (-1 == n) throw new Error("Cannot find existingFn"); + n += 1, this._stack.splice(n, 0, t) + }, D.Pipeline.prototype.before = function(e, t) { + D.Pipeline.warnIfFunctionNotRegistered(t); + var n = this._stack.indexOf(e); + if (-1 == n) throw new Error("Cannot find existingFn"); + this._stack.splice(n, 0, t) + }, D.Pipeline.prototype.remove = function(e) { + var t = this._stack.indexOf(e); - 1 != t && this._stack.splice(t, 1) + }, D.Pipeline.prototype.run = function(e) { + for (var t = this._stack.length, n = 0; n < t; n++) { + for (var r = this._stack[n], i = [], o = 0; o < e.length; o++) { + var a = r(e[o], o, e); + if (void 0 !== a && "" !== a) + if (Array.isArray(a)) + for (var s = 0; s < a.length; s++) i.push(a[s]); + else i.push(a) + } + e = i + } + return e + }, D.Pipeline.prototype.runString = function(e, t) { + var n = new D.Token(e, t); + return this.run([n]).map(function(e) { + return e.toString() + }) + }, D.Pipeline.prototype.reset = function() { + this._stack = [] + }, D.Pipeline.prototype.toJSON = function() { + return this._stack.map(function(e) { + return D.Pipeline.warnIfFunctionNotRegistered(e), e.label + }) + }, D.Vector = function(e) { + this._magnitude = 0, this.elements = e || [] + }, D.Vector.prototype.positionForIndex = function(e) { + if (0 == this.elements.length) return 0; + for (var t = 0, n = this.elements.length / 2, r = n - t, i = Math.floor(r / 2), o = this.elements[2 * i]; 1 < r && (o < e && (t = i), e < o && (n = i), o != e);) r = n - t, i = t + Math.floor(r / 2), o = this.elements[2 * i]; + return o == e ? 2 * i : e < o ? 2 * i : o < e ? 2 * (i + 1) : void 0 + }, D.Vector.prototype.insert = function(e, t) { + this.upsert(e, t, function() { + throw "duplicate index" + }) + }, D.Vector.prototype.upsert = function(e, t, n) { + this._magnitude = 0; + var r = this.positionForIndex(e); + this.elements[r] == e ? this.elements[r + 1] = n(this.elements[r + 1], t) : this.elements.splice(r, 0, e, t) + }, D.Vector.prototype.magnitude = function() { + if (this._magnitude) return this._magnitude; + for (var e = 0, t = this.elements.length, n = 1; n < t; n += 2) { + var r = this.elements[n]; + e += r * r + } + return this._magnitude = Math.sqrt(e) + }, D.Vector.prototype.dot = function(e) { + for (var t = 0, n = this.elements, r = e.elements, i = n.length, o = r.length, a = 0, s = 0, c = 0, l = 0; c < i && l < o;)(a = n[c]) < (s = r[l]) ? c += 2 : s < a ? l += 2 : a == s && (t += n[c + 1] * r[l + 1], c += 2, l += 2); + return t + }, D.Vector.prototype.similarity = function(e) { + return this.dot(e) / this.magnitude() || 0 + }, D.Vector.prototype.toArray = function() { + for (var e = new Array(this.elements.length / 2), t = 1, n = 0; t < this.elements.length; t += 2, n++) e[n] = this.elements[t]; + return e + }, D.Vector.prototype.toJSON = function() { + return this.elements + }, D.stemmer = (l = { + ational: "ate", + tional: "tion", + enci: "ence", + anci: "ance", + izer: "ize", + bli: "ble", + alli: "al", + entli: "ent", + eli: "e", + ousli: "ous", + ization: "ize", + ation: "ate", + ator: "ate", + alism: "al", + iveness: "ive", + fulness: "ful", + ousness: "ous", + aliti: "al", + iviti: "ive", + biliti: "ble", + logi: "log" + }, u = { + icate: "ic", + ative: "", + alize: "al", + iciti: "ic", + ical: "ic", + ful: "", + ness: "" + }, e = "[aeiouy]", n = "[^aeiou][^aeiouy]*", f = new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*"), d = new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*"), h = new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$"), p = new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy]"), m = /^(.+?)(ss|i)es$/, y = /^(.+?)([^s])s$/, v = /^(.+?)eed$/, g = /^(.+?)(ed|ing)$/, w = /.$/, _ = /(at|bl|iz)$/, E = new RegExp("([^aeiouylsz])\\1$"), x = new RegExp("^" + n + e + "[^aeiouwxy]$"), b = /^(.+?[^aeiou])y$/, k = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/, S = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/, T = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/, L = /^(.+?)(s|t)(ion)$/, R = /^(.+?)e$/, O = /ll$/, C = new RegExp("^" + n + e + "[^aeiouwxy]$"), r = function(e) { + var t, n, r, i, o, a, s; + if (e.length < 3) return e; + if ("y" == (r = e.substr(0, 1)) && (e = r.toUpperCase() + e.substr(1)), o = y, (i = m).test(e) ? e = e.replace(i, "$1$2") : o.test(e) && (e = e.replace(o, "$1$2")), o = g, (i = v).test(e)) { + var c = i.exec(e); + (i = f).test(c[1]) && (i = w, e = e.replace(i, "")) + } else if (o.test(e)) { + t = (c = o.exec(e))[1], (o = p).test(t) && (a = E, s = x, (o = _).test(e = t) ? e += "e" : a.test(e) ? (i = w, e = e.replace(i, "")) : s.test(e) && (e += "e")) + }(i = b).test(e) && (e = (t = (c = i.exec(e))[1]) + "i"); + (i = k).test(e) && (t = (c = i.exec(e))[1], n = c[2], (i = f).test(t) && (e = t + l[n])); + (i = S).test(e) && (t = (c = i.exec(e))[1], n = c[2], (i = f).test(t) && (e = t + u[n])); + if (o = L, (i = T).test(e)) t = (c = i.exec(e))[1], (i = d).test(t) && (e = t); + else if (o.test(e)) { + t = (c = o.exec(e))[1] + c[2], (o = d).test(t) && (e = t) + }(i = R).test(e) && (t = (c = i.exec(e))[1], o = h, a = C, ((i = d).test(t) || o.test(t) && !a.test(t)) && (e = t)); + return o = d, (i = O).test(e) && o.test(e) && (i = w, e = e.replace(i, "")), "y" == r && (e = r.toLowerCase() + e.substr(1)), e + }, function(e) { + return e.update(r) + }), D.Pipeline.registerFunction(D.stemmer, "stemmer"), D.generateStopWordFilter = function(e) { + var t = e.reduce(function(e, t) { + return e[t] = t, e + }, {}); + return function(e) { + if (e && t[e.toString()] !== e.toString()) return e + } + }, D.stopWordFilter = D.generateStopWordFilter(["a", "able", "about", "across", "after", "all", "almost", "also", "am", "among", "an", "and", "any", "are", "as", "at", "be", "because", "been", "but", "by", "can", "cannot", "could", "dear", "did", "do", "does", "either", "else", "ever", "every", "for", "from", "get", "got", "had", "has", "have", "he", "her", "hers", "him", "his", "how", "however", "i", "if", "in", "into", "is", "it", "its", "just", "least", "let", "like", "likely", "may", "me", "might", "most", "must", "my", "neither", "no", "nor", "not", "of", "off", "often", "on", "only", "or", "other", "our", "own", "rather", "said", "say", "says", "she", "should", "since", "so", "some", "than", "that", "the", "their", "them", "then", "there", "these", "they", "this", "tis", "to", "too", "twas", "us", "wants", "was", "we", "were", "what", "when", "where", "which", "while", "who", "whom", "why", "will", "with", "would", "yet", "you", "your"]), D.Pipeline.registerFunction(D.stopWordFilter, "stopWordFilter"), D.trimmer = function(e) { + return e.update(function(e) { + return e.replace(/^\W+/, "").replace(/\W+$/, "") + }) + }, D.Pipeline.registerFunction(D.trimmer, "trimmer"), D.TokenSet = function() { + this.final = !1, this.edges = {}, this.id = D.TokenSet._nextId, D.TokenSet._nextId += 1 + }, D.TokenSet._nextId = 1, D.TokenSet.fromArray = function(e) { + for (var t = new D.TokenSet.Builder, n = 0, r = e.length; n < r; n++) t.insert(e[n]); + return t.finish(), t.root + }, D.TokenSet.fromClause = function(e) { + return "editDistance" in e ? D.TokenSet.fromFuzzyString(e.term, e.editDistance) : D.TokenSet.fromString(e.term) + }, D.TokenSet.fromFuzzyString = function(e, t) { + for (var n = new D.TokenSet, r = [{ + node: n, + editsRemaining: t, + str: e + }]; r.length;) { + var i = r.pop(); + if (0 < i.str.length) { + var o, a = i.str.charAt(0); + a in i.node.edges ? o = i.node.edges[a] : (o = new D.TokenSet, i.node.edges[a] = o), 1 == i.str.length && (o.final = !0), r.push({ + node: o, + editsRemaining: i.editsRemaining, + str: i.str.slice(1) + }) + } + if (0 != i.editsRemaining) { + if ("*" in i.node.edges) var s = i.node.edges["*"]; + else { + s = new D.TokenSet; + i.node.edges["*"] = s + } + if (0 == i.str.length && (s.final = !0), r.push({ + node: s, + editsRemaining: i.editsRemaining - 1, + str: i.str + }), 1 < i.str.length && r.push({ + node: i.node, + editsRemaining: i.editsRemaining - 1, + str: i.str.slice(1) + }), 1 == i.str.length && (i.node.final = !0), 1 <= i.str.length) { + if ("*" in i.node.edges) var c = i.node.edges["*"]; + else { + c = new D.TokenSet; + i.node.edges["*"] = c + } + 1 == i.str.length && (c.final = !0), r.push({ + node: c, + editsRemaining: i.editsRemaining - 1, + str: i.str.slice(1) + }) + } + if (1 < i.str.length) { + var l, u = i.str.charAt(0), + f = i.str.charAt(1); + f in i.node.edges ? l = i.node.edges[f] : (l = new D.TokenSet, i.node.edges[f] = l), 1 == i.str.length && (l.final = !0), r.push({ + node: l, + editsRemaining: i.editsRemaining - 1, + str: u + i.str.slice(2) + }) + } + } + } + return n + }, D.TokenSet.fromString = function(e) { + for (var t = new D.TokenSet, n = t, r = 0, i = e.length; r < i; r++) { + var o = e[r], + a = r == i - 1; + if ("*" == o)(t.edges[o] = t).final = a; + else { + var s = new D.TokenSet; + s.final = a, t.edges[o] = s, t = s + } + } + return n + }, D.TokenSet.prototype.toArray = function() { + for (var e = [], t = [{ + prefix: "", + node: this + }]; t.length;) { + var n = t.pop(), + r = Object.keys(n.node.edges), + i = r.length; + n.node.final && (n.prefix.charAt(0), e.push(n.prefix)); + for (var o = 0; o < i; o++) { + var a = r[o]; + t.push({ + prefix: n.prefix.concat(a), + node: n.node.edges[a] + }) + } + } + return e + }, D.TokenSet.prototype.toString = function() { + if (this._str) return this._str; + for (var e = this.final ? "1" : "0", t = Object.keys(this.edges).sort(), n = t.length, r = 0; r < n; r++) { + var i = t[r]; + e = e + i + this.edges[i].id + } + return e + }, D.TokenSet.prototype.intersect = function(e) { + for (var t = new D.TokenSet, n = void 0, r = [{ + qNode: e, + output: t, + node: this + }]; r.length;) { + n = r.pop(); + for (var i = Object.keys(n.qNode.edges), o = i.length, a = Object.keys(n.node.edges), s = a.length, c = 0; c < o; c++) + for (var l = i[c], u = 0; u < s; u++) { + var f = a[u]; + if (f == l || "*" == l) { + var d = n.node.edges[f], + h = n.qNode.edges[l], + p = d.final && h.final, + m = void 0; + f in n.output.edges ? (m = n.output.edges[f]).final = m.final || p : ((m = new D.TokenSet).final = p, n.output.edges[f] = m), r.push({ + qNode: h, + output: m, + node: d + }) + } + } + } + return t + }, D.TokenSet.Builder = function() { + this.previousWord = "", this.root = new D.TokenSet, this.uncheckedNodes = [], this.minimizedNodes = {} + }, D.TokenSet.Builder.prototype.insert = function(e) { + var t, n = 0; + if (e < this.previousWord) throw new Error("Out of order word insertion"); + for (var r = 0; r < e.length && r < this.previousWord.length && e[r] == this.previousWord[r]; r++) n++; + this.minimize(n), t = 0 == this.uncheckedNodes.length ? this.root : this.uncheckedNodes[this.uncheckedNodes.length - 1].child; + for (r = n; r < e.length; r++) { + var i = new D.TokenSet, + o = e[r]; + t.edges[o] = i, this.uncheckedNodes.push({ + parent: t, + char: o, + child: i + }), t = i + } + t.final = !0, this.previousWord = e + }, D.TokenSet.Builder.prototype.finish = function() { + this.minimize(0) + }, D.TokenSet.Builder.prototype.minimize = function(e) { + for (var t = this.uncheckedNodes.length - 1; e <= t; t--) { + var n = this.uncheckedNodes[t], + r = n.child.toString(); + r in this.minimizedNodes ? n.parent.edges[n.char] = this.minimizedNodes[r] : (n.child._str = r, this.minimizedNodes[r] = n.child), this.uncheckedNodes.pop() + } + }, D.Index = function(e) { + this.invertedIndex = e.invertedIndex, this.fieldVectors = e.fieldVectors, this.tokenSet = e.tokenSet, this.fields = e.fields, this.pipeline = e.pipeline + }, D.Index.prototype.search = function(t) { + return this.query(function(e) { + new D.QueryParser(t, e).parse() + }) + }, D.Index.prototype.query = function(e) { + for (var t = new D.Query(this.fields), n = Object.create(null), r = Object.create(null), i = Object.create(null), o = Object.create(null), a = Object.create(null), s = 0; s < this.fields.length; s++) r[this.fields[s]] = new D.Vector; + e.call(t, t); + for (s = 0; s < t.clauses.length; s++) { + var c = t.clauses[s], + l = null, + u = D.Set.complete; + l = c.usePipeline ? this.pipeline.runString(c.term, { + fields: c.fields + }) : [c.term]; + for (var f = 0; f < l.length; f++) { + var d = l[f]; + c.term = d; + var h = D.TokenSet.fromClause(c), + p = this.tokenSet.intersect(h).toArray(); + if (0 === p.length && c.presence === D.Query.presence.REQUIRED) { + for (var m = 0; m < c.fields.length; m++) { + o[Q = c.fields[m]] = D.Set.empty + } + break + } + for (var y = 0; y < p.length; y++) { + var v = p[y], + g = this.invertedIndex[v], + w = g._index; + for (m = 0; m < c.fields.length; m++) { + var _ = g[Q = c.fields[m]], + E = Object.keys(_), + x = v + "/" + Q, + b = new D.Set(E); + if (c.presence == D.Query.presence.REQUIRED && (u = u.union(b), void 0 === o[Q] && (o[Q] = D.Set.complete)), c.presence != D.Query.presence.PROHIBITED) { + if (r[Q].upsert(w, c.boost, function(e, t) { + return e + t + }), !i[x]) { + for (var k = 0; k < E.length; k++) { + var S, T = E[k], + L = new D.FieldRef(T, Q), + R = _[T]; + void 0 === (S = n[L]) ? n[L] = new D.MatchData(v, Q, R) : S.add(v, Q, R) + } + i[x] = !0 + } + } else void 0 === a[Q] && (a[Q] = D.Set.empty), a[Q] = a[Q].union(b) + } + } + } + if (c.presence === D.Query.presence.REQUIRED) + for (m = 0; m < c.fields.length; m++) { + o[Q = c.fields[m]] = o[Q].intersect(u) + } + } + var O = D.Set.complete, + C = D.Set.empty; + for (s = 0; s < this.fields.length; s++) { + var Q; + o[Q = this.fields[s]] && (O = O.intersect(o[Q])), a[Q] && (C = C.union(a[Q])) + } + var P = Object.keys(n), + A = [], + I = Object.create(null); + if (t.isNegated()) { + P = Object.keys(this.fieldVectors); + for (s = 0; s < P.length; s++) { + L = P[s]; + var M = D.FieldRef.fromString(L); + n[L] = new D.MatchData + } + } + for (s = 0; s < P.length; s++) { + var N = (M = D.FieldRef.fromString(P[s])).docRef; + if (O.contains(N) && !C.contains(N)) { + var j, F = this.fieldVectors[M], + H = r[M.fieldName].similarity(F); + if (void 0 !== (j = I[N])) j.score += H, j.matchData.combine(n[M]); + else { + var q = { + ref: N, + score: H, + matchData: n[M] + }; + I[N] = q, A.push(q) + } + } + } + return A.sort(function(e, t) { + return t.score - e.score + }) + }, D.Index.prototype.toJSON = function() { + var e = Object.keys(this.invertedIndex).sort().map(function(e) { + return [e, this.invertedIndex[e]] + }, this), + t = Object.keys(this.fieldVectors).map(function(e) { + return [e, this.fieldVectors[e].toJSON()] + }, this); + return { + version: D.version, + fields: this.fields, + fieldVectors: t, + invertedIndex: e, + pipeline: this.pipeline.toJSON() + } + }, D.Index.load = function(e) { + var t = {}, + n = {}, + r = e.fieldVectors, + i = Object.create(null), + o = e.invertedIndex, + a = new D.TokenSet.Builder, + s = D.Pipeline.load(e.pipeline); + e.version != D.version && D.utils.warn("Version mismatch when loading serialised index. Current version of lunr '" + D.version + "' does not match serialized index '" + e.version + "'"); + for (var c = 0; c < r.length; c++) { + var l = (f = r[c])[0], + u = f[1]; + n[l] = new D.Vector(u) + } + for (c = 0; c < o.length; c++) { + var f, d = (f = o[c])[0], + h = f[1]; + a.insert(d), i[d] = h + } + return a.finish(), t.fields = e.fields, t.fieldVectors = n, t.invertedIndex = i, t.tokenSet = a.root, t.pipeline = s, new D.Index(t) + }, D.Builder = function() { + this._ref = "id", this._fields = Object.create(null), this._documents = Object.create(null), this.invertedIndex = Object.create(null), this.fieldTermFrequencies = {}, this.fieldLengths = {}, this.tokenizer = D.tokenizer, this.pipeline = new D.Pipeline, this.searchPipeline = new D.Pipeline, this.documentCount = 0, this._b = .75, this._k1 = 1.2, this.termIndex = 0, this.metadataWhitelist = [] + }, D.Builder.prototype.ref = function(e) { + this._ref = e + }, D.Builder.prototype.field = function(e, t) { + if (/\//.test(e)) throw new RangeError("Field '" + e + "' contains illegal character '/'"); + this._fields[e] = t || {} + }, D.Builder.prototype.b = function(e) { + this._b = e < 0 ? 0 : 1 < e ? 1 : e + }, D.Builder.prototype.k1 = function(e) { + this._k1 = e + }, D.Builder.prototype.add = function(e, t) { + var n = e[this._ref], + r = Object.keys(this._fields); + this._documents[n] = t || {}, this.documentCount += 1; + for (var i = 0; i < r.length; i++) { + var o = r[i], + a = this._fields[o].extractor, + s = a ? a(e) : e[o], + c = this.tokenizer(s, { + fields: [o] + }), + l = this.pipeline.run(c), + u = new D.FieldRef(n, o), + f = Object.create(null); + this.fieldTermFrequencies[u] = f, this.fieldLengths[u] = 0, this.fieldLengths[u] += l.length; + for (var d = 0; d < l.length; d++) { + var h = l[d]; + if (null == f[h] && (f[h] = 0), f[h] += 1, null == this.invertedIndex[h]) { + var p = Object.create(null); + p._index = this.termIndex, this.termIndex += 1; + for (var m = 0; m < r.length; m++) p[r[m]] = Object.create(null); + this.invertedIndex[h] = p + } + null == this.invertedIndex[h][o][n] && (this.invertedIndex[h][o][n] = Object.create(null)); + for (var y = 0; y < this.metadataWhitelist.length; y++) { + var v = this.metadataWhitelist[y], + g = h.metadata[v]; + null == this.invertedIndex[h][o][n][v] && (this.invertedIndex[h][o][n][v] = []), this.invertedIndex[h][o][n][v].push(g) + } + } + } + }, D.Builder.prototype.calculateAverageFieldLengths = function() { + for (var e = Object.keys(this.fieldLengths), t = e.length, n = {}, r = {}, i = 0; i < t; i++) { + var o = D.FieldRef.fromString(e[i]), + a = o.fieldName; + r[a] || (r[a] = 0), r[a] += 1, n[a] || (n[a] = 0), n[a] += this.fieldLengths[o] + } + var s = Object.keys(this._fields); + for (i = 0; i < s.length; i++) { + var c = s[i]; + n[c] = n[c] / r[c] + } + this.averageFieldLength = n + }, D.Builder.prototype.createFieldVectors = function() { + for (var e = {}, t = Object.keys(this.fieldTermFrequencies), n = t.length, r = Object.create(null), i = 0; i < n; i++) { + for (var o = D.FieldRef.fromString(t[i]), a = o.fieldName, s = this.fieldLengths[o], c = new D.Vector, l = this.fieldTermFrequencies[o], u = Object.keys(l), f = u.length, d = this._fields[a].boost || 1, h = this._documents[o.docRef].boost || 1, p = 0; p < f; p++) { + var m, y, v, g = u[p], + w = l[g], + _ = this.invertedIndex[g]._index; + void 0 === r[g] ? (m = D.idf(this.invertedIndex[g], this.documentCount), r[g] = m) : m = r[g], y = m * ((this._k1 + 1) * w) / (this._k1 * (1 - this._b + this._b * (s / this.averageFieldLength[a])) + w), y *= d, y *= h, v = Math.round(1e3 * y) / 1e3, c.insert(_, v) + } + e[o] = c + } + this.fieldVectors = e + }, D.Builder.prototype.createTokenSet = function() { + this.tokenSet = D.TokenSet.fromArray(Object.keys(this.invertedIndex).sort()) + }, D.Builder.prototype.build = function() { + return this.calculateAverageFieldLengths(), this.createFieldVectors(), this.createTokenSet(), new D.Index({ + invertedIndex: this.invertedIndex, + fieldVectors: this.fieldVectors, + tokenSet: this.tokenSet, + fields: Object.keys(this._fields), + pipeline: this.searchPipeline + }) + }, D.Builder.prototype.use = function(e) { + var t = Array.prototype.slice.call(arguments, 1); + t.unshift(this), e.apply(this, t) + }, D.MatchData = function(e, t, n) { + for (var r = Object.create(null), i = Object.keys(n || {}), o = 0; o < i.length; o++) { + var a = i[o]; + r[a] = n[a].slice() + } + this.metadata = Object.create(null), void 0 !== e && (this.metadata[e] = Object.create(null), this.metadata[e][t] = r) + }, D.MatchData.prototype.combine = function(e) { + for (var t = Object.keys(e.metadata), n = 0; n < t.length; n++) { + var r = t[n], + i = Object.keys(e.metadata[r]); + null == this.metadata[r] && (this.metadata[r] = Object.create(null)); + for (var o = 0; o < i.length; o++) { + var a = i[o], + s = Object.keys(e.metadata[r][a]); + null == this.metadata[r][a] && (this.metadata[r][a] = Object.create(null)); + for (var c = 0; c < s.length; c++) { + var l = s[c]; + null == this.metadata[r][a][l] ? this.metadata[r][a][l] = e.metadata[r][a][l] : this.metadata[r][a][l] = this.metadata[r][a][l].concat(e.metadata[r][a][l]) + } + } + } + }, D.MatchData.prototype.add = function(e, t, n) { + if (!(e in this.metadata)) return this.metadata[e] = Object.create(null), void(this.metadata[e][t] = n); + if (t in this.metadata[e]) + for (var r = Object.keys(n), i = 0; i < r.length; i++) { + var o = r[i]; + o in this.metadata[e][t] ? this.metadata[e][t][o] = this.metadata[e][t][o].concat(n[o]) : this.metadata[e][t][o] = n[o] + } else this.metadata[e][t] = n + }, D.Query = function(e) { + this.clauses = [], this.allFields = e + }, D.Query.wildcard = new String("*"), D.Query.wildcard.NONE = 0, D.Query.wildcard.LEADING = 1, D.Query.wildcard.TRAILING = 2, D.Query.presence = { + OPTIONAL: 1, + REQUIRED: 2, + PROHIBITED: 3 + }, D.Query.prototype.clause = function(e) { + return "fields" in e || (e.fields = this.allFields), "boost" in e || (e.boost = 1), "usePipeline" in e || (e.usePipeline = !0), "wildcard" in e || (e.wildcard = D.Query.wildcard.NONE), e.wildcard & D.Query.wildcard.LEADING && e.term.charAt(0) != D.Query.wildcard && (e.term = "*" + e.term), e.wildcard & D.Query.wildcard.TRAILING && e.term.slice(-1) != D.Query.wildcard && (e.term = e.term + "*"), "presence" in e || (e.presence = D.Query.presence.OPTIONAL), this.clauses.push(e), this + }, D.Query.prototype.isNegated = function() { + for (var e = 0; e < this.clauses.length; e++) + if (this.clauses[e].presence != D.Query.presence.PROHIBITED) return !1; + return !0 + }, D.Query.prototype.term = function(e, t) { + if (Array.isArray(e)) return e.forEach(function(e) { + this.term(e, D.utils.clone(t)) + }, this), this; + var n = t || {}; + return n.term = e.toString(), this.clause(n), this + }, D.QueryParseError = function(e, t, n) { + this.name = "QueryParseError", this.message = e, this.start = t, this.end = n + }, D.QueryParseError.prototype = new Error, D.QueryLexer = function(e) { + this.lexemes = [], this.str = e, this.length = e.length, this.pos = 0, this.start = 0, this.escapeCharPositions = [] + }, D.QueryLexer.prototype.run = function() { + for (var e = D.QueryLexer.lexText; e;) e = e(this) + }, D.QueryLexer.prototype.sliceString = function() { + for (var e = [], t = this.start, n = this.pos, r = 0; r < this.escapeCharPositions.length; r++) n = this.escapeCharPositions[r], e.push(this.str.slice(t, n)), t = n + 1; + return e.push(this.str.slice(t, this.pos)), this.escapeCharPositions.length = 0, e.join("") + }, D.QueryLexer.prototype.emit = function(e) { + this.lexemes.push({ + type: e, + str: this.sliceString(), + start: this.start, + end: this.pos + }), this.start = this.pos + }, D.QueryLexer.prototype.escapeCharacter = function() { + this.escapeCharPositions.push(this.pos - 1), this.pos += 1 + }, D.QueryLexer.prototype.next = function() { + if (this.pos >= this.length) return D.QueryLexer.EOS; + var e = this.str.charAt(this.pos); + return this.pos += 1, e + }, D.QueryLexer.prototype.width = function() { + return this.pos - this.start + }, D.QueryLexer.prototype.ignore = function() { + this.start == this.pos && (this.pos += 1), this.start = this.pos + }, D.QueryLexer.prototype.backup = function() { + this.pos -= 1 + }, D.QueryLexer.prototype.acceptDigitRun = function() { + for (var e, t; 47 < (t = (e = this.next()).charCodeAt(0)) && t < 58;); + e != D.QueryLexer.EOS && this.backup() + }, D.QueryLexer.prototype.more = function() { + return this.pos < this.length + }, D.QueryLexer.EOS = "EOS", D.QueryLexer.FIELD = "FIELD", D.QueryLexer.TERM = "TERM", D.QueryLexer.EDIT_DISTANCE = "EDIT_DISTANCE", D.QueryLexer.BOOST = "BOOST", D.QueryLexer.PRESENCE = "PRESENCE", D.QueryLexer.lexField = function(e) { + return e.backup(), e.emit(D.QueryLexer.FIELD), e.ignore(), D.QueryLexer.lexText + }, D.QueryLexer.lexTerm = function(e) { + if (1 < e.width() && (e.backup(), e.emit(D.QueryLexer.TERM)), e.ignore(), e.more()) return D.QueryLexer.lexText + }, D.QueryLexer.lexEditDistance = function(e) { + return e.ignore(), e.acceptDigitRun(), e.emit(D.QueryLexer.EDIT_DISTANCE), D.QueryLexer.lexText + }, D.QueryLexer.lexBoost = function(e) { + return e.ignore(), e.acceptDigitRun(), e.emit(D.QueryLexer.BOOST), D.QueryLexer.lexText + }, D.QueryLexer.lexEOS = function(e) { + 0 < e.width() && e.emit(D.QueryLexer.TERM) + }, D.QueryLexer.termSeparator = D.tokenizer.separator, D.QueryLexer.lexText = function(e) { + for (;;) { + var t = e.next(); + if (t == D.QueryLexer.EOS) return D.QueryLexer.lexEOS; + if (92 != t.charCodeAt(0)) { + if (":" == t) return D.QueryLexer.lexField; + if ("~" == t) return e.backup(), 0 < e.width() && e.emit(D.QueryLexer.TERM), D.QueryLexer.lexEditDistance; + if ("^" == t) return e.backup(), 0 < e.width() && e.emit(D.QueryLexer.TERM), D.QueryLexer.lexBoost; + if ("+" == t && 1 === e.width()) return e.emit(D.QueryLexer.PRESENCE), D.QueryLexer.lexText; + if ("-" == t && 1 === e.width()) return e.emit(D.QueryLexer.PRESENCE), D.QueryLexer.lexText; + if (t.match(D.QueryLexer.termSeparator)) return D.QueryLexer.lexTerm + } else e.escapeCharacter() + } + }, D.QueryParser = function(e, t) { + this.lexer = new D.QueryLexer(e), this.query = t, this.currentClause = {}, this.lexemeIdx = 0 + }, D.QueryParser.prototype.parse = function() { + this.lexer.run(), this.lexemes = this.lexer.lexemes; + for (var e = D.QueryParser.parseClause; e;) e = e(this); + return this.query + }, D.QueryParser.prototype.peekLexeme = function() { + return this.lexemes[this.lexemeIdx] + }, D.QueryParser.prototype.consumeLexeme = function() { + var e = this.peekLexeme(); + return this.lexemeIdx += 1, e + }, D.QueryParser.prototype.nextClause = function() { + var e = this.currentClause; + this.query.clause(e), this.currentClause = {} + }, D.QueryParser.parseClause = function(e) { + var t = e.peekLexeme(); + if (null != t) switch (t.type) { + case D.QueryLexer.PRESENCE: + return D.QueryParser.parsePresence; + case D.QueryLexer.FIELD: + return D.QueryParser.parseField; + case D.QueryLexer.TERM: + return D.QueryParser.parseTerm; + default: + var n = "expected either a field or a term, found " + t.type; + throw 1 <= t.str.length && (n += " with value '" + t.str + "'"), new D.QueryParseError(n, t.start, t.end) + } + }, D.QueryParser.parsePresence = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + switch (t.str) { + case "-": + e.currentClause.presence = D.Query.presence.PROHIBITED; + break; + case "+": + e.currentClause.presence = D.Query.presence.REQUIRED; + break; + default: + var n = "unrecognised presence operator'" + t.str + "'"; + throw new D.QueryParseError(n, t.start, t.end) + } + var r = e.peekLexeme(); + if (null == r) { + n = "expecting term or field, found nothing"; + throw new D.QueryParseError(n, t.start, t.end) + } + switch (r.type) { + case D.QueryLexer.FIELD: + return D.QueryParser.parseField; + case D.QueryLexer.TERM: + return D.QueryParser.parseTerm; + default: + n = "expecting term or field, found '" + r.type + "'"; + throw new D.QueryParseError(n, r.start, r.end) + } + } + }, D.QueryParser.parseField = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + if (-1 == e.query.allFields.indexOf(t.str)) { + var n = e.query.allFields.map(function(e) { + return "'" + e + "'" + }).join(", "), + r = "unrecognised field '" + t.str + "', possible fields: " + n; + throw new D.QueryParseError(r, t.start, t.end) + } + e.currentClause.fields = [t.str]; + var i = e.peekLexeme(); + if (null == i) { + r = "expecting term, found nothing"; + throw new D.QueryParseError(r, t.start, t.end) + } + switch (i.type) { + case D.QueryLexer.TERM: + return D.QueryParser.parseTerm; + default: + r = "expecting term, found '" + i.type + "'"; + throw new D.QueryParseError(r, i.start, i.end) + } + } + }, D.QueryParser.parseTerm = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + e.currentClause.term = t.str.toLowerCase(), -1 != t.str.indexOf("*") && (e.currentClause.usePipeline = !1); + var n = e.peekLexeme(); + if (null != n) switch (n.type) { + case D.QueryLexer.TERM: + return e.nextClause(), D.QueryParser.parseTerm; + case D.QueryLexer.FIELD: + return e.nextClause(), D.QueryParser.parseField; + case D.QueryLexer.EDIT_DISTANCE: + return D.QueryParser.parseEditDistance; + case D.QueryLexer.BOOST: + return D.QueryParser.parseBoost; + case D.QueryLexer.PRESENCE: + return e.nextClause(), D.QueryParser.parsePresence; + default: + var r = "Unexpected lexeme type '" + n.type + "'"; + throw new D.QueryParseError(r, n.start, n.end) + } else e.nextClause() + } + }, D.QueryParser.parseEditDistance = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + var n = parseInt(t.str, 10); + if (isNaN(n)) { + var r = "edit distance must be numeric"; + throw new D.QueryParseError(r, t.start, t.end) + } + e.currentClause.editDistance = n; + var i = e.peekLexeme(); + if (null != i) switch (i.type) { + case D.QueryLexer.TERM: + return e.nextClause(), D.QueryParser.parseTerm; + case D.QueryLexer.FIELD: + return e.nextClause(), D.QueryParser.parseField; + case D.QueryLexer.EDIT_DISTANCE: + return D.QueryParser.parseEditDistance; + case D.QueryLexer.BOOST: + return D.QueryParser.parseBoost; + case D.QueryLexer.PRESENCE: + return e.nextClause(), D.QueryParser.parsePresence; + default: + r = "Unexpected lexeme type '" + i.type + "'"; + throw new D.QueryParseError(r, i.start, i.end) + } else e.nextClause() + } + }, D.QueryParser.parseBoost = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + var n = parseInt(t.str, 10); + if (isNaN(n)) { + var r = "boost must be numeric"; + throw new D.QueryParseError(r, t.start, t.end) + } + e.currentClause.boost = n; + var i = e.peekLexeme(); + if (null != i) switch (i.type) { + case D.QueryLexer.TERM: + return e.nextClause(), D.QueryParser.parseTerm; + case D.QueryLexer.FIELD: + return e.nextClause(), D.QueryParser.parseField; + case D.QueryLexer.EDIT_DISTANCE: + return D.QueryParser.parseEditDistance; + case D.QueryLexer.BOOST: + return D.QueryParser.parseBoost; + case D.QueryLexer.PRESENCE: + return e.nextClause(), D.QueryParser.parsePresence; + default: + r = "Unexpected lexeme type '" + i.type + "'"; + throw new D.QueryParseError(r, i.start, i.end) + } else e.nextClause() + } + }, void 0 === (c = "function" == typeof(s = function() { + return D + }) ? s.call(o, a, o, i) : s) || (i.exports = c) + }() +}])); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.da.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.da.js new file mode 100644 index 0000000000..34910dfe5f --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.da.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,m,i;e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=(r=e.stemmerSupport.Among,m=e.stemmerSupport.SnowballProgram,i=new function(){var i,t,n,s=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],o=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],a=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],u=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],c=new m;function l(){var e,r=c.limit-c.cursor;c.cursor>=t&&(e=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,c.find_among_b(o,4)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e)}this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var e,r=c.cursor;return function(){var e,r=c.cursor+3;if(t=c.limit,0<=r&&r<=c.limit){for(i=r;;){if(e=c.cursor,c.in_grouping(d,97,248)){c.cursor=e;break}if((c.cursor=e)>=c.limit)return;c.cursor++}for(;!c.out_grouping(d,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(t=c.cursor)=t&&(r=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,e=c.find_among_b(s,32),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:c.in_grouping_b(u,97,229)&&c.slice_del()}}(),c.cursor=c.limit,l(),c.cursor=c.limit,function(){var e,r,i,n=c.limit-c.cursor;if(c.ket=c.cursor,c.eq_s_b(2,"st")&&(c.bra=c.cursor,c.eq_s_b(2,"ig")&&c.slice_del()),c.cursor=c.limit-n,c.cursor>=t&&(r=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,e=c.find_among_b(a,5),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del(),i=c.limit-c.cursor,l(),c.cursor=c.limit-i;break;case 2:c.slice_from("løs")}}(),c.cursor=c.limit,c.cursor>=t&&(e=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,c.out_grouping_b(d,97,248)?(c.bra=c.cursor,n=c.slice_to(n),c.limit_backward=e,c.eq_v_b(n)&&c.slice_del()):c.limit_backward=e),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.de.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.de.js new file mode 100644 index 0000000000..1529892c82 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.de.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var _,p,r;e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=(_=e.stemmerSupport.Among,p=e.stemmerSupport.SnowballProgram,r=new function(){var r,n,i,s=[new _("",-1,6),new _("U",0,2),new _("Y",0,1),new _("ä",0,3),new _("ö",0,4),new _("ü",0,5)],o=[new _("e",-1,2),new _("em",-1,1),new _("en",-1,2),new _("ern",-1,1),new _("er",-1,1),new _("s",-1,3),new _("es",5,2)],c=[new _("en",-1,1),new _("er",-1,1),new _("st",-1,2),new _("est",2,1)],u=[new _("ig",-1,1),new _("lich",-1,1)],a=[new _("end",-1,1),new _("ig",-1,2),new _("ung",-1,1),new _("lich",-1,3),new _("isch",-1,2),new _("ik",-1,2),new _("heit",-1,3),new _("keit",-1,4)],t=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],d=[117,30,5],l=[117,30,4],m=new p;function h(e,r,n){return!(!m.eq_s(1,e)||(m.ket=m.cursor,!m.in_grouping(t,97,252)))&&(m.slice_from(r),m.cursor=n,!0)}function w(){for(;!m.in_grouping(t,97,252);){if(m.cursor>=m.limit)return!0;m.cursor++}for(;!m.out_grouping(t,97,252);){if(m.cursor>=m.limit)return!0;m.cursor++}return!1}function f(){return i<=m.cursor}function b(){return n<=m.cursor}this.setCurrent=function(e){m.setCurrent(e)},this.getCurrent=function(){return m.getCurrent()},this.stem=function(){var e=m.cursor;return function(){for(var e,r,n,i,s=m.cursor;;)if(e=m.cursor,m.bra=e,m.eq_s(1,"ß"))m.ket=m.cursor,m.slice_from("ss");else{if(e>=m.limit)break;m.cursor=e+1}for(m.cursor=s;;)for(r=m.cursor;;){if(n=m.cursor,m.in_grouping(t,97,252)){if(i=m.cursor,m.bra=i,h("u","U",n))break;if(m.cursor=i,h("y","Y",n))break}if(n>=m.limit)return m.cursor=r;m.cursor=n+1}}(),m.cursor=e,function(){i=m.limit,n=i;var e=m.cursor+3;0<=e&&e<=m.limit&&(r=e,w()||((i=m.cursor)=m.limit)return;m.cursor++}}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.du.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.du.js new file mode 100644 index 0000000000..52632004a2 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.du.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var v,q,r;console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=(v=e.stemmerSupport.Among,q=e.stemmerSupport.SnowballProgram,r=new function(){var r,i,u,o=[new v("",-1,6),new v("á",0,1),new v("ä",0,1),new v("é",0,2),new v("ë",0,2),new v("í",0,3),new v("ï",0,3),new v("ó",0,4),new v("ö",0,4),new v("ú",0,5),new v("ü",0,5)],n=[new v("",-1,3),new v("I",0,2),new v("Y",0,1)],t=[new v("dd",-1,-1),new v("kk",-1,-1),new v("tt",-1,-1)],c=[new v("ene",-1,2),new v("se",-1,3),new v("en",-1,2),new v("heden",2,1),new v("s",-1,3)],a=[new v("end",-1,1),new v("ig",-1,2),new v("ing",-1,1),new v("lijk",-1,3),new v("baar",-1,4),new v("bar",-1,5)],l=[new v("aa",-1,-1),new v("ee",-1,-1),new v("oo",-1,-1),new v("uu",-1,-1)],m=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],d=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],f=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],_=new q;function s(e){return(_.cursor=e)>=_.limit||(_.cursor++,!1)}function w(){for(;!_.in_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}for(;!_.out_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}return!1}function b(){return i<=_.cursor}function p(){return r<=_.cursor}function g(){var e=_.limit-_.cursor;_.find_among_b(t,3)&&(_.cursor=_.limit-e,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del()))}function h(){var e;u=!1,_.ket=_.cursor,_.eq_s_b(1,"e")&&(_.bra=_.cursor,b()&&(e=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-e,_.slice_del(),u=!0,g())))}function k(){var e;b()&&(e=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-e,_.eq_s_b(3,"gem")||(_.cursor=_.limit-e,_.slice_del(),g())))}this.setCurrent=function(e){_.setCurrent(e)},this.getCurrent=function(){return _.getCurrent()},this.stem=function(){var e=_.cursor;return function(){for(var e,r,i,n=_.cursor;;){if(_.bra=_.cursor,e=_.find_among(o,11))switch(_.ket=_.cursor,e){case 1:_.slice_from("a");continue;case 2:_.slice_from("e");continue;case 3:_.slice_from("i");continue;case 4:_.slice_from("o");continue;case 5:_.slice_from("u");continue;case 6:if(_.cursor>=_.limit)break;_.cursor++;continue}break}for(_.cursor=n,_.bra=n,_.eq_s(1,"y")?(_.ket=_.cursor,_.slice_from("Y")):_.cursor=n;;)if(r=_.cursor,_.in_grouping(m,97,232)){if(i=_.cursor,_.bra=i,_.eq_s(1,"i"))_.ket=_.cursor,_.in_grouping(m,97,232)&&(_.slice_from("I"),_.cursor=r);else if(_.cursor=i,_.eq_s(1,"y"))_.ket=_.cursor,_.slice_from("Y"),_.cursor=r;else if(s(r))break}else if(s(r))break}(),_.cursor=e,i=_.limit,r=i,w()||((i=_.cursor)<3&&(i=3),w()||(r=_.cursor)),_.limit_backward=e,_.cursor=_.limit,function(){var e,r,i,n,o,t,s=_.limit-_.cursor;if(_.ket=_.cursor,e=_.find_among_b(c,5))switch(_.bra=_.cursor,e){case 1:b()&&_.slice_from("heid");break;case 2:k();break;case 3:b()&&_.out_grouping_b(f,97,232)&&_.slice_del()}if(_.cursor=_.limit-s,h(),_.cursor=_.limit-s,_.ket=_.cursor,_.eq_s_b(4,"heid")&&(_.bra=_.cursor,p()&&(r=_.limit-_.cursor,_.eq_s_b(1,"c")||(_.cursor=_.limit-r,_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"en")&&(_.bra=_.cursor,k())))),_.cursor=_.limit-s,_.ket=_.cursor,e=_.find_among_b(a,6))switch(_.bra=_.cursor,e){case 1:if(p()){if(_.slice_del(),i=_.limit-_.cursor,_.ket=_.cursor,_.eq_s_b(2,"ig")&&(_.bra=_.cursor,p()&&(n=_.limit-_.cursor,!_.eq_s_b(1,"e")))){_.cursor=_.limit-n,_.slice_del();break}_.cursor=_.limit-i,g()}break;case 2:p()&&(o=_.limit-_.cursor,_.eq_s_b(1,"e")||(_.cursor=_.limit-o,_.slice_del()));break;case 3:p()&&(_.slice_del(),h());break;case 4:p()&&_.slice_del();break;case 5:p()&&u&&_.slice_del()}_.cursor=_.limit-s,_.out_grouping_b(d,73,232)&&(t=_.limit-_.cursor,_.find_among_b(l,4)&&_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-t,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del())))}(),_.cursor=_.limit_backward,function(){for(var e;;)if(_.bra=_.cursor,e=_.find_among(n,3))switch(_.ket=_.cursor,e){case 1:_.slice_from("y");break;case 2:_.slice_from("i");break;case 3:if(_.cursor>=_.limit)return;_.cursor++}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.es.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.es.js new file mode 100644 index 0000000000..9de6c09cb4 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.es.js @@ -0,0 +1 @@ +!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var C,P,s;e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.es.stemmer))},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=(C=e.stemmerSupport.Among,P=e.stemmerSupport.SnowballProgram,s=new function(){var r,n,i,a=[new C("",-1,6),new C("á",0,1),new C("é",0,2),new C("í",0,3),new C("ó",0,4),new C("ú",0,5)],t=[new C("la",-1,-1),new C("sela",0,-1),new C("le",-1,-1),new C("me",-1,-1),new C("se",-1,-1),new C("lo",-1,-1),new C("selo",5,-1),new C("las",-1,-1),new C("selas",7,-1),new C("les",-1,-1),new C("los",-1,-1),new C("selos",10,-1),new C("nos",-1,-1)],o=[new C("ando",-1,6),new C("iendo",-1,6),new C("yendo",-1,7),new C("ándo",-1,2),new C("iéndo",-1,1),new C("ar",-1,6),new C("er",-1,6),new C("ir",-1,6),new C("ár",-1,3),new C("ér",-1,4),new C("ír",-1,5)],s=[new C("ic",-1,-1),new C("ad",-1,-1),new C("os",-1,-1),new C("iv",-1,1)],u=[new C("able",-1,1),new C("ible",-1,1),new C("ante",-1,1)],w=[new C("ic",-1,1),new C("abil",-1,1),new C("iv",-1,1)],c=[new C("ica",-1,1),new C("ancia",-1,2),new C("encia",-1,5),new C("adora",-1,2),new C("osa",-1,1),new C("ista",-1,1),new C("iva",-1,9),new C("anza",-1,1),new C("logía",-1,3),new C("idad",-1,8),new C("able",-1,1),new C("ible",-1,1),new C("ante",-1,2),new C("mente",-1,7),new C("amente",13,6),new C("ación",-1,2),new C("ución",-1,4),new C("ico",-1,1),new C("ismo",-1,1),new C("oso",-1,1),new C("amiento",-1,1),new C("imiento",-1,1),new C("ivo",-1,9),new C("ador",-1,2),new C("icas",-1,1),new C("ancias",-1,2),new C("encias",-1,5),new C("adoras",-1,2),new C("osas",-1,1),new C("istas",-1,1),new C("ivas",-1,9),new C("anzas",-1,1),new C("logías",-1,3),new C("idades",-1,8),new C("ables",-1,1),new C("ibles",-1,1),new C("aciones",-1,2),new C("uciones",-1,4),new C("adores",-1,2),new C("antes",-1,2),new C("icos",-1,1),new C("ismos",-1,1),new C("osos",-1,1),new C("amientos",-1,1),new C("imientos",-1,1),new C("ivos",-1,9)],m=[new C("ya",-1,1),new C("ye",-1,1),new C("yan",-1,1),new C("yen",-1,1),new C("yeron",-1,1),new C("yendo",-1,1),new C("yo",-1,1),new C("yas",-1,1),new C("yes",-1,1),new C("yais",-1,1),new C("yamos",-1,1),new C("yó",-1,1)],l=[new C("aba",-1,2),new C("ada",-1,2),new C("ida",-1,2),new C("ara",-1,2),new C("iera",-1,2),new C("ía",-1,2),new C("aría",5,2),new C("ería",5,2),new C("iría",5,2),new C("ad",-1,2),new C("ed",-1,2),new C("id",-1,2),new C("ase",-1,2),new C("iese",-1,2),new C("aste",-1,2),new C("iste",-1,2),new C("an",-1,2),new C("aban",16,2),new C("aran",16,2),new C("ieran",16,2),new C("ían",16,2),new C("arían",20,2),new C("erían",20,2),new C("irían",20,2),new C("en",-1,1),new C("asen",24,2),new C("iesen",24,2),new C("aron",-1,2),new C("ieron",-1,2),new C("arán",-1,2),new C("erán",-1,2),new C("irán",-1,2),new C("ado",-1,2),new C("ido",-1,2),new C("ando",-1,2),new C("iendo",-1,2),new C("ar",-1,2),new C("er",-1,2),new C("ir",-1,2),new C("as",-1,2),new C("abas",39,2),new C("adas",39,2),new C("idas",39,2),new C("aras",39,2),new C("ieras",39,2),new C("ías",39,2),new C("arías",45,2),new C("erías",45,2),new C("irías",45,2),new C("es",-1,1),new C("ases",49,2),new C("ieses",49,2),new C("abais",-1,2),new C("arais",-1,2),new C("ierais",-1,2),new C("íais",-1,2),new C("aríais",55,2),new C("eríais",55,2),new C("iríais",55,2),new C("aseis",-1,2),new C("ieseis",-1,2),new C("asteis",-1,2),new C("isteis",-1,2),new C("áis",-1,2),new C("éis",-1,1),new C("aréis",64,2),new C("eréis",64,2),new C("iréis",64,2),new C("ados",-1,2),new C("idos",-1,2),new C("amos",-1,2),new C("ábamos",70,2),new C("áramos",70,2),new C("iéramos",70,2),new C("íamos",70,2),new C("aríamos",74,2),new C("eríamos",74,2),new C("iríamos",74,2),new C("emos",-1,1),new C("aremos",78,2),new C("eremos",78,2),new C("iremos",78,2),new C("ásemos",78,2),new C("iésemos",78,2),new C("imos",-1,2),new C("arás",-1,2),new C("erás",-1,2),new C("irás",-1,2),new C("ís",-1,2),new C("ará",-1,2),new C("erá",-1,2),new C("irá",-1,2),new C("aré",-1,2),new C("eré",-1,2),new C("iré",-1,2),new C("ió",-1,2)],d=[new C("a",-1,1),new C("e",-1,2),new C("o",-1,1),new C("os",-1,1),new C("á",-1,1),new C("é",-1,2),new C("í",-1,1),new C("ó",-1,1)],b=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],f=new P;function _(){if(f.out_grouping(b,97,252)){for(;!f.in_grouping(b,97,252);){if(f.cursor>=f.limit)return!0;f.cursor++}return!1}return!0}function h(){var e,s=f.cursor;if(function(){if(f.in_grouping(b,97,252)){var e=f.cursor;if(_()){if(f.cursor=e,!f.in_grouping(b,97,252))return!0;for(;!f.out_grouping(b,97,252);){if(f.cursor>=f.limit)return!0;f.cursor++}}return!1}return!0}()){if(f.cursor=s,!f.out_grouping(b,97,252))return;if(e=f.cursor,_()){if(f.cursor=e,!f.in_grouping(b,97,252)||f.cursor>=f.limit)return;f.cursor++}}i=f.cursor}function v(){for(;!f.in_grouping(b,97,252);){if(f.cursor>=f.limit)return!1;f.cursor++}for(;!f.out_grouping(b,97,252);){if(f.cursor>=f.limit)return!1;f.cursor++}return!0}function p(){return i<=f.cursor}function g(){return r<=f.cursor}function k(e,s){if(!g())return!0;f.slice_del(),f.ket=f.cursor;var r=f.find_among_b(e,s);return r&&(f.bra=f.cursor,1==r&&g()&&f.slice_del()),!1}function y(e){return!g()||(f.slice_del(),f.ket=f.cursor,f.eq_s_b(2,e)&&(f.bra=f.cursor,g()&&f.slice_del()),!1)}function q(){var e;if(f.ket=f.cursor,e=f.find_among_b(c,46)){switch(f.bra=f.cursor,e){case 1:if(!g())return!1;f.slice_del();break;case 2:if(y("ic"))return!1;break;case 3:if(!g())return!1;f.slice_from("log");break;case 4:if(!g())return!1;f.slice_from("u");break;case 5:if(!g())return!1;f.slice_from("ente");break;case 6:if(!(n<=f.cursor))return!1;f.slice_del(),f.ket=f.cursor,(e=f.find_among_b(s,4))&&(f.bra=f.cursor,g()&&(f.slice_del(),1==e&&(f.ket=f.cursor,f.eq_s_b(2,"at")&&(f.bra=f.cursor,g()&&f.slice_del()))));break;case 7:if(k(u,3))return!1;break;case 8:if(k(w,3))return!1;break;case 9:if(y("at"))return!1}return!0}return!1}this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var e,s=f.cursor;return e=f.cursor,i=f.limit,r=n=i,h(),f.cursor=e,v()&&(n=f.cursor,v()&&(r=f.cursor)),f.limit_backward=s,f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,f.find_among_b(t,13)&&(f.bra=f.cursor,(e=f.find_among_b(o,11))&&p()))switch(e){case 1:f.bra=f.cursor,f.slice_from("iendo");break;case 2:f.bra=f.cursor,f.slice_from("ando");break;case 3:f.bra=f.cursor,f.slice_from("ar");break;case 4:f.bra=f.cursor,f.slice_from("er");break;case 5:f.bra=f.cursor,f.slice_from("ir");break;case 6:f.slice_del();break;case 7:f.eq_s_b(1,"u")&&f.slice_del()}}(),f.cursor=f.limit,q()||(f.cursor=f.limit,function(){var e,s;if(f.cursor>=i&&(s=f.limit_backward,f.limit_backward=i,f.ket=f.cursor,e=f.find_among_b(m,12),f.limit_backward=s,e)){if(f.bra=f.cursor,1==e){if(!f.eq_s_b(1,"u"))return!1;f.slice_del()}return!0}return!1}()||(f.cursor=f.limit,function(){var e,s,r,n;if(f.cursor>=i&&(s=f.limit_backward,f.limit_backward=i,f.ket=f.cursor,e=f.find_among_b(l,96),f.limit_backward=s,e))switch(f.bra=f.cursor,e){case 1:r=f.limit-f.cursor,f.eq_s_b(1,"u")?(n=f.limit-f.cursor,f.eq_s_b(1,"g")?f.cursor=f.limit-n:f.cursor=f.limit-r):f.cursor=f.limit-r,f.bra=f.cursor;case 2:f.slice_del()}}())),f.cursor=f.limit,function(){var e,s;if(f.ket=f.cursor,e=f.find_among_b(d,8))switch(f.bra=f.cursor,e){case 1:p()&&f.slice_del();break;case 2:p()&&(f.slice_del(),f.ket=f.cursor,f.eq_s_b(1,"u")&&(f.bra=f.cursor,s=f.limit-f.cursor,f.eq_s_b(1,"g")&&(f.cursor=f.limit-s,p()&&f.slice_del())))}}(),f.cursor=f.limit_backward,function(){for(var e;;){if(f.bra=f.cursor,e=f.find_among(a,6))switch(f.ket=f.cursor,e){case 1:f.slice_from("a");continue;case 2:f.slice_from("e");continue;case 3:f.slice_from("i");continue;case 4:f.slice_from("o");continue;case 5:f.slice_from("u");continue;case 6:if(f.cursor>=f.limit)break;f.cursor++;continue}break}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return s.setCurrent(e),s.stem(),s.getCurrent()}):(s.setCurrent(e),s.stem(),s.getCurrent())}),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=e.generateStopWordFilter("a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" ")),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.fi.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.fi.js new file mode 100644 index 0000000000..2f9bf5aebd --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.fi.js @@ -0,0 +1 @@ +!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var v,C,e;i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(i.fi.stemmer))},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=(v=i.stemmerSupport.Among,C=i.stemmerSupport.SnowballProgram,e=new function(){var n,t,l,o,r=[new v("pa",-1,1),new v("sti",-1,2),new v("kaan",-1,1),new v("han",-1,1),new v("kin",-1,1),new v("hän",-1,1),new v("kään",-1,1),new v("ko",-1,1),new v("pä",-1,1),new v("kö",-1,1)],s=[new v("lla",-1,-1),new v("na",-1,-1),new v("ssa",-1,-1),new v("ta",-1,-1),new v("lta",3,-1),new v("sta",3,-1)],a=[new v("llä",-1,-1),new v("nä",-1,-1),new v("ssä",-1,-1),new v("tä",-1,-1),new v("ltä",3,-1),new v("stä",3,-1)],u=[new v("lle",-1,-1),new v("ine",-1,-1)],c=[new v("nsa",-1,3),new v("mme",-1,3),new v("nne",-1,3),new v("ni",-1,2),new v("si",-1,1),new v("an",-1,4),new v("en",-1,6),new v("än",-1,5),new v("nsä",-1,3)],i=[new v("aa",-1,-1),new v("ee",-1,-1),new v("ii",-1,-1),new v("oo",-1,-1),new v("uu",-1,-1),new v("ää",-1,-1),new v("öö",-1,-1)],m=[new v("a",-1,8),new v("lla",0,-1),new v("na",0,-1),new v("ssa",0,-1),new v("ta",0,-1),new v("lta",4,-1),new v("sta",4,-1),new v("tta",4,9),new v("lle",-1,-1),new v("ine",-1,-1),new v("ksi",-1,-1),new v("n",-1,7),new v("han",11,1),new v("den",11,-1,q),new v("seen",11,-1,j),new v("hen",11,2),new v("tten",11,-1,q),new v("hin",11,3),new v("siin",11,-1,q),new v("hon",11,4),new v("hän",11,5),new v("hön",11,6),new v("ä",-1,8),new v("llä",22,-1),new v("nä",22,-1),new v("ssä",22,-1),new v("tä",22,-1),new v("ltä",26,-1),new v("stä",26,-1),new v("ttä",26,9)],w=[new v("eja",-1,-1),new v("mma",-1,1),new v("imma",1,-1),new v("mpa",-1,1),new v("impa",3,-1),new v("mmi",-1,1),new v("immi",5,-1),new v("mpi",-1,1),new v("impi",7,-1),new v("ejä",-1,-1),new v("mmä",-1,1),new v("immä",10,-1),new v("mpä",-1,1),new v("impä",12,-1)],_=[new v("i",-1,-1),new v("j",-1,-1)],k=[new v("mma",-1,1),new v("imma",0,-1)],b=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],e=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],f=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],h=new C;function p(){for(var i;i=h.cursor,!h.in_grouping(d,97,246);){if((h.cursor=i)>=h.limit)return!0;h.cursor++}for(h.cursor=i;!h.out_grouping(d,97,246);){if(h.cursor>=h.limit)return!0;h.cursor++}return!1}function g(){var i,e;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(r,10)){switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:if(!h.in_grouping_b(f,97,246))return;break;case 2:if(!(l<=h.cursor))return}h.slice_del()}else h.limit_backward=e}function j(){return h.find_among_b(i,7)}function q(){return h.eq_s_b(1,"i")&&h.in_grouping_b(e,97,246)}this.setCurrent=function(i){h.setCurrent(i)},this.getCurrent=function(){return h.getCurrent()},this.stem=function(){var i,e=h.cursor;return o=h.limit,l=o,p()||(o=h.cursor,p()||(l=h.cursor)),n=!1,h.limit_backward=e,h.cursor=h.limit,g(),h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(c,9))switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:r=h.limit-h.cursor,h.eq_s_b(1,"k")||(h.cursor=h.limit-r,h.slice_del());break;case 2:h.slice_del(),h.ket=h.cursor,h.eq_s_b(3,"kse")&&(h.bra=h.cursor,h.slice_from("ksi"));break;case 3:h.slice_del();break;case 4:h.find_among_b(s,6)&&h.slice_del();break;case 5:h.find_among_b(a,6)&&h.slice_del();break;case 6:h.find_among_b(u,2)&&h.slice_del()}else h.limit_backward=e}(),h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(m,30)){switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:if(!h.eq_s_b(1,"a"))return;break;case 2:case 9:if(!h.eq_s_b(1,"e"))return;break;case 3:if(!h.eq_s_b(1,"i"))return;break;case 4:if(!h.eq_s_b(1,"o"))return;break;case 5:if(!h.eq_s_b(1,"ä"))return;break;case 6:if(!h.eq_s_b(1,"ö"))return;break;case 7:if(r=h.limit-h.cursor,!j()&&(h.cursor=h.limit-r,!h.eq_s_b(2,"ie"))){h.cursor=h.limit-r;break}if(h.cursor=h.limit-r,h.cursor<=h.limit_backward){h.cursor=h.limit-r;break}h.cursor--,h.bra=h.cursor;break;case 8:if(!h.in_grouping_b(d,97,246)||!h.out_grouping_b(d,97,246))return}h.slice_del(),n=!0}else h.limit_backward=e}(),h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=l)if(e=h.limit_backward,h.limit_backward=l,h.ket=h.cursor,i=h.find_among_b(w,14)){if(h.bra=h.cursor,h.limit_backward=e,1==i){if(r=h.limit-h.cursor,h.eq_s_b(2,"po"))return;h.cursor=h.limit-r}h.slice_del()}else h.limit_backward=e}(),h.cursor=h.limit,h.cursor=(n?h.cursor>=o&&(i=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,h.find_among_b(_,2)?(h.bra=h.cursor,h.limit_backward=i,h.slice_del()):h.limit_backward=i):(h.cursor=h.limit,function(){var i,e,r,n,t,s;if(h.cursor>=o){if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,h.eq_s_b(1,"t")&&(h.bra=h.cursor,r=h.limit-h.cursor,h.in_grouping_b(d,97,246)&&(h.cursor=h.limit-r,h.slice_del(),h.limit_backward=e,n=h.limit-h.cursor,h.cursor>=l&&(h.cursor=l,t=h.limit_backward,h.limit_backward=h.cursor,h.cursor=h.limit-n,h.ket=h.cursor,i=h.find_among_b(k,2))))){if(h.bra=h.cursor,h.limit_backward=t,1==i){if(s=h.limit-h.cursor,h.eq_s_b(2,"po"))return;h.cursor=h.limit-s}return h.slice_del()}h.limit_backward=e}}()),h.limit),function(){var i,e,r,n;if(h.cursor>=o){for(i=h.limit_backward,h.limit_backward=o,e=h.limit-h.cursor,j()&&(h.cursor=h.limit-e,h.ket=h.cursor,h.cursor>h.limit_backward&&(h.cursor--,h.bra=h.cursor,h.slice_del())),h.cursor=h.limit-e,h.ket=h.cursor,h.in_grouping_b(b,97,228)&&(h.bra=h.cursor,h.out_grouping_b(d,97,246)&&h.slice_del()),h.cursor=h.limit-e,h.ket=h.cursor,h.eq_s_b(1,"j")&&(h.bra=h.cursor,r=h.limit-h.cursor,h.eq_s_b(1,"o")?h.slice_del():(h.cursor=h.limit-r,h.eq_s_b(1,"u")&&h.slice_del())),h.cursor=h.limit-e,h.ket=h.cursor,h.eq_s_b(1,"o")&&(h.bra=h.cursor,h.eq_s_b(1,"j")&&h.slice_del()),h.cursor=h.limit-e,h.limit_backward=i;;){if(n=h.limit-h.cursor,h.out_grouping_b(d,97,246)){h.cursor=h.limit-n;break}if(h.cursor=h.limit-n,h.cursor<=h.limit_backward)return;h.cursor--}h.ket=h.cursor,h.cursor>h.limit_backward&&(h.cursor--,h.bra=h.cursor,t=h.slice_to(),h.eq_v_b(t)&&h.slice_del())}}(),!0}},function(i){return"function"==typeof i.update?i.update(function(i){return e.setCurrent(i),e.stem(),e.getCurrent()}):(e.setCurrent(i),e.stem(),e.getCurrent())}),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.fr.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.fr.js new file mode 100644 index 0000000000..078d0cab70 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.fr.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,y,s;e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=(r=e.stemmerSupport.Among,y=e.stemmerSupport.SnowballProgram,s=new function(){var s,i,t,n=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],u=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],o=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],c=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],a=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],l=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],w=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],f=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],m=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],_=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],b=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],d=new y;function k(e,r,s){return!(!d.eq_s(1,e)||(d.ket=d.cursor,!d.in_grouping(_,97,251)))&&(d.slice_from(r),d.cursor=s,!0)}function p(e,r,s){return!!d.eq_s(1,e)&&(d.ket=d.cursor,d.slice_from(r),d.cursor=s,!0)}function g(){for(;!d.in_grouping(_,97,251);){if(d.cursor>=d.limit)return!0;d.cursor++}for(;!d.out_grouping(_,97,251);){if(d.cursor>=d.limit)return!0;d.cursor++}return!1}function q(){return t<=d.cursor}function v(){return i<=d.cursor}function h(){return s<=d.cursor}function z(){if(!function(){var e,r;if(d.ket=d.cursor,e=d.find_among_b(a,43)){switch(d.bra=d.cursor,e){case 1:if(!h())return!1;d.slice_del();break;case 2:if(!h())return!1;d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"ic")&&(d.bra=d.cursor,h()?d.slice_del():d.slice_from("iqU"));break;case 3:if(!h())return!1;d.slice_from("log");break;case 4:if(!h())return!1;d.slice_from("u");break;case 5:if(!h())return!1;d.slice_from("ent");break;case 6:if(!q())return!1;if(d.slice_del(),d.ket=d.cursor,e=d.find_among_b(o,6))switch(d.bra=d.cursor,e){case 1:h()&&(d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,h()&&d.slice_del()));break;case 2:h()?d.slice_del():v()&&d.slice_from("eux");break;case 3:h()&&d.slice_del();break;case 4:q()&&d.slice_from("i")}break;case 7:if(!h())return!1;if(d.slice_del(),d.ket=d.cursor,e=d.find_among_b(c,3))switch(d.bra=d.cursor,e){case 1:h()?d.slice_del():d.slice_from("abl");break;case 2:h()?d.slice_del():d.slice_from("iqU");break;case 3:h()&&d.slice_del()}break;case 8:if(!h())return!1;if(d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,h()&&(d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"ic")))){d.bra=d.cursor,h()?d.slice_del():d.slice_from("iqU");break}break;case 9:d.slice_from("eau");break;case 10:if(!v())return!1;d.slice_from("al");break;case 11:if(h())d.slice_del();else{if(!v())return!1;d.slice_from("eux")}break;case 12:if(!v()||!d.out_grouping_b(_,97,251))return!1;d.slice_del();break;case 13:return q()&&d.slice_from("ant"),!1;case 14:return q()&&d.slice_from("ent"),!1;case 15:return r=d.limit-d.cursor,d.in_grouping_b(_,97,251)&&q()&&(d.cursor=d.limit-r,d.slice_del()),!1}return!0}return!1}()&&(d.cursor=d.limit,!function(){var e,r;if(d.cursor=t){if(s=d.limit_backward,d.limit_backward=t,d.ket=d.cursor,e=d.find_among_b(f,7))switch(d.bra=d.cursor,e){case 1:if(h()){if(i=d.limit-d.cursor,!d.eq_s_b(1,"s")&&(d.cursor=d.limit-i,!d.eq_s_b(1,"t")))break;d.slice_del()}break;case 2:d.slice_from("i");break;case 3:d.slice_del();break;case 4:d.eq_s_b(2,"gu")&&d.slice_del()}d.limit_backward=s}}();d.cursor=d.limit,d.ket=d.cursor,d.eq_s_b(1,"Y")?(d.bra=d.cursor,d.slice_from("i")):(d.cursor=d.limit,d.eq_s_b(1,"ç")&&(d.bra=d.cursor,d.slice_from("c")))}this.setCurrent=function(e){d.setCurrent(e)},this.getCurrent=function(){return d.getCurrent()},this.stem=function(){var e,r=d.cursor;return function(){for(var e,r;;){if(e=d.cursor,d.in_grouping(_,97,251)){if(d.bra=d.cursor,r=d.cursor,k("u","U",e))continue;if(d.cursor=r,k("i","I",e))continue;if(d.cursor=r,p("y","Y",e))continue}if(d.cursor=e,!k("y","Y",d.bra=e)){if(d.cursor=e,d.eq_s(1,"q")&&(d.bra=d.cursor,p("u","U",e)))continue;if((d.cursor=e)>=d.limit)return;d.cursor++}}}(),d.cursor=r,function(){var e=d.cursor;if(t=d.limit,s=i=t,d.in_grouping(_,97,251)&&d.in_grouping(_,97,251)&&d.cursor=d.limit){d.cursor=t;break}d.cursor++}while(!d.in_grouping(_,97,251))}t=d.cursor,d.cursor=e,g()||(i=d.cursor,g()||(s=d.cursor))}(),d.limit_backward=r,d.cursor=d.limit,z(),d.cursor=d.limit,e=d.limit-d.cursor,d.find_among_b(m,5)&&(d.cursor=d.limit-e,d.ket=d.cursor,d.cursor>d.limit_backward&&(d.cursor--,d.bra=d.cursor,d.slice_del())),d.cursor=d.limit,function(){for(var e,r=1;d.out_grouping_b(_,97,251);)r--;if(r<=0){if(d.ket=d.cursor,e=d.limit-d.cursor,!d.eq_s_b(1,"é")&&(d.cursor=d.limit-e,!d.eq_s_b(1,"è")))return;d.bra=d.cursor,d.slice_from("e")}}(),d.cursor=d.limit_backward,function(){for(var e,r;r=d.cursor,d.bra=r,e=d.find_among(u,4);)switch(d.ket=d.cursor,e){case 1:d.slice_from("i");break;case 2:d.slice_from("u");break;case 3:d.slice_from("y");break;case 4:if(d.cursor>=d.limit)return;d.cursor++}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return s.setCurrent(e),s.stem(),s.getCurrent()}):(s.setCurrent(e),s.stem(),s.getCurrent())}),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.hu.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.hu.js new file mode 100644 index 0000000000..56a4b0dc19 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.hu.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var p,_,n;e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=(p=e.stemmerSupport.Among,_=e.stemmerSupport.SnowballProgram,n=new function(){var r,i=[new p("cs",-1,-1),new p("dzs",-1,-1),new p("gy",-1,-1),new p("ly",-1,-1),new p("ny",-1,-1),new p("sz",-1,-1),new p("ty",-1,-1),new p("zs",-1,-1)],n=[new p("á",-1,1),new p("é",-1,2)],a=[new p("bb",-1,-1),new p("cc",-1,-1),new p("dd",-1,-1),new p("ff",-1,-1),new p("gg",-1,-1),new p("jj",-1,-1),new p("kk",-1,-1),new p("ll",-1,-1),new p("mm",-1,-1),new p("nn",-1,-1),new p("pp",-1,-1),new p("rr",-1,-1),new p("ccs",-1,-1),new p("ss",-1,-1),new p("zzs",-1,-1),new p("tt",-1,-1),new p("vv",-1,-1),new p("ggy",-1,-1),new p("lly",-1,-1),new p("nny",-1,-1),new p("tty",-1,-1),new p("ssz",-1,-1),new p("zz",-1,-1)],t=[new p("al",-1,1),new p("el",-1,2)],e=[new p("ba",-1,-1),new p("ra",-1,-1),new p("be",-1,-1),new p("re",-1,-1),new p("ig",-1,-1),new p("nak",-1,-1),new p("nek",-1,-1),new p("val",-1,-1),new p("vel",-1,-1),new p("ul",-1,-1),new p("nál",-1,-1),new p("nél",-1,-1),new p("ból",-1,-1),new p("ról",-1,-1),new p("tól",-1,-1),new p("bõl",-1,-1),new p("rõl",-1,-1),new p("tõl",-1,-1),new p("ül",-1,-1),new p("n",-1,-1),new p("an",19,-1),new p("ban",20,-1),new p("en",19,-1),new p("ben",22,-1),new p("képpen",22,-1),new p("on",19,-1),new p("ön",19,-1),new p("képp",-1,-1),new p("kor",-1,-1),new p("t",-1,-1),new p("at",29,-1),new p("et",29,-1),new p("ként",29,-1),new p("anként",32,-1),new p("enként",32,-1),new p("onként",32,-1),new p("ot",29,-1),new p("ért",29,-1),new p("öt",29,-1),new p("hez",-1,-1),new p("hoz",-1,-1),new p("höz",-1,-1),new p("vá",-1,-1),new p("vé",-1,-1)],s=[new p("án",-1,2),new p("én",-1,1),new p("ánként",-1,3)],c=[new p("stul",-1,2),new p("astul",0,1),new p("ástul",0,3),new p("stül",-1,2),new p("estül",3,1),new p("éstül",3,4)],w=[new p("á",-1,1),new p("é",-1,2)],o=[new p("k",-1,7),new p("ak",0,4),new p("ek",0,6),new p("ok",0,5),new p("ák",0,1),new p("ék",0,2),new p("ök",0,3)],l=[new p("éi",-1,7),new p("áéi",0,6),new p("ééi",0,5),new p("é",-1,9),new p("ké",3,4),new p("aké",4,1),new p("eké",4,1),new p("oké",4,1),new p("áké",4,3),new p("éké",4,2),new p("öké",4,1),new p("éé",3,8)],u=[new p("a",-1,18),new p("ja",0,17),new p("d",-1,16),new p("ad",2,13),new p("ed",2,13),new p("od",2,13),new p("ád",2,14),new p("éd",2,15),new p("öd",2,13),new p("e",-1,18),new p("je",9,17),new p("nk",-1,4),new p("unk",11,1),new p("ánk",11,2),new p("énk",11,3),new p("ünk",11,1),new p("uk",-1,8),new p("juk",16,7),new p("ájuk",17,5),new p("ük",-1,8),new p("jük",19,7),new p("éjük",20,6),new p("m",-1,12),new p("am",22,9),new p("em",22,9),new p("om",22,9),new p("ám",22,10),new p("ém",22,11),new p("o",-1,18),new p("á",-1,19),new p("é",-1,20)],m=[new p("id",-1,10),new p("aid",0,9),new p("jaid",1,6),new p("eid",0,9),new p("jeid",3,6),new p("áid",0,7),new p("éid",0,8),new p("i",-1,15),new p("ai",7,14),new p("jai",8,11),new p("ei",7,14),new p("jei",10,11),new p("ái",7,12),new p("éi",7,13),new p("itek",-1,24),new p("eitek",14,21),new p("jeitek",15,20),new p("éitek",14,23),new p("ik",-1,29),new p("aik",18,26),new p("jaik",19,25),new p("eik",18,26),new p("jeik",21,25),new p("áik",18,27),new p("éik",18,28),new p("ink",-1,20),new p("aink",25,17),new p("jaink",26,16),new p("eink",25,17),new p("jeink",28,16),new p("áink",25,18),new p("éink",25,19),new p("aitok",-1,21),new p("jaitok",32,20),new p("áitok",-1,22),new p("im",-1,5),new p("aim",35,4),new p("jaim",36,1),new p("eim",35,4),new p("jeim",38,1),new p("áim",35,2),new p("éim",35,3)],k=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],f=new _;function b(){return r<=f.cursor}function d(){var e=f.limit-f.cursor;return!!f.find_among_b(a,23)&&(f.cursor=f.limit-e,!0)}function g(){if(f.cursor>f.limit_backward){f.cursor--,f.ket=f.cursor;var e=f.cursor-1;f.limit_backward<=e&&e<=f.limit&&(f.cursor=e,f.bra=e,f.slice_del())}}function h(){f.ket=f.cursor,f.find_among_b(e,44)&&(f.bra=f.cursor,b()&&(f.slice_del(),function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(n,2))&&(f.bra=f.cursor,b()))switch(e){case 1:f.slice_from("a");break;case 2:f.slice_from("e")}}()))}this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var e=f.cursor;return function(){var e,n=f.cursor;if(r=f.limit,f.in_grouping(k,97,252))for(;;){if(e=f.cursor,f.out_grouping(k,97,252))return f.cursor=e,f.find_among(i,8)||(f.cursor=e)=f.limit)return r=e;f.cursor++}if(f.cursor=n,f.out_grouping(k,97,252)){for(;!f.in_grouping(k,97,252);){if(f.cursor>=f.limit)return;f.cursor++}r=f.cursor}}(),f.limit_backward=e,f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(t,2))&&(f.bra=f.cursor,b())){if((1==e||2==e)&&!d())return;f.slice_del(),g()}}(),f.cursor=f.limit,h(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(s,3))&&(f.bra=f.cursor,b()))switch(e){case 1:f.slice_from("e");break;case 2:case 3:f.slice_from("a")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(c,6))&&(f.bra=f.cursor,b()))switch(e){case 1:case 2:f.slice_del();break;case 3:f.slice_from("a");break;case 4:f.slice_from("e")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(w,2))&&(f.bra=f.cursor,b())){if((1==e||2==e)&&!d())return;f.slice_del(),g()}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(l,12))&&(f.bra=f.cursor,b()))switch(e){case 1:case 4:case 7:case 9:f.slice_del();break;case 2:case 5:case 8:f.slice_from("e");break;case 3:case 6:f.slice_from("a")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(u,31))&&(f.bra=f.cursor,b()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:f.slice_del();break;case 2:case 5:case 10:case 14:case 19:f.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:f.slice_from("e")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(m,42))&&(f.bra=f.cursor,b()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:f.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:f.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:f.slice_from("e")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(o,7))&&(f.bra=f.cursor,b()))switch(e){case 1:f.slice_from("a");break;case 2:f.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:f.slice_del()}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.it.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.it.js new file mode 100644 index 0000000000..50dddaa04b --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.it.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var z,P,r;e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=(z=e.stemmerSupport.Among,P=e.stemmerSupport.SnowballProgram,r=new function(){var o,t,s,a=[new z("",-1,7),new z("qu",0,6),new z("á",0,1),new z("é",0,2),new z("í",0,3),new z("ó",0,4),new z("ú",0,5)],u=[new z("",-1,3),new z("I",0,1),new z("U",0,2)],c=[new z("la",-1,-1),new z("cela",0,-1),new z("gliela",0,-1),new z("mela",0,-1),new z("tela",0,-1),new z("vela",0,-1),new z("le",-1,-1),new z("cele",6,-1),new z("gliele",6,-1),new z("mele",6,-1),new z("tele",6,-1),new z("vele",6,-1),new z("ne",-1,-1),new z("cene",12,-1),new z("gliene",12,-1),new z("mene",12,-1),new z("sene",12,-1),new z("tene",12,-1),new z("vene",12,-1),new z("ci",-1,-1),new z("li",-1,-1),new z("celi",20,-1),new z("glieli",20,-1),new z("meli",20,-1),new z("teli",20,-1),new z("veli",20,-1),new z("gli",20,-1),new z("mi",-1,-1),new z("si",-1,-1),new z("ti",-1,-1),new z("vi",-1,-1),new z("lo",-1,-1),new z("celo",31,-1),new z("glielo",31,-1),new z("melo",31,-1),new z("telo",31,-1),new z("velo",31,-1)],w=[new z("ando",-1,1),new z("endo",-1,1),new z("ar",-1,2),new z("er",-1,2),new z("ir",-1,2)],r=[new z("ic",-1,-1),new z("abil",-1,-1),new z("os",-1,-1),new z("iv",-1,1)],n=[new z("ic",-1,1),new z("abil",-1,1),new z("iv",-1,1)],i=[new z("ica",-1,1),new z("logia",-1,3),new z("osa",-1,1),new z("ista",-1,1),new z("iva",-1,9),new z("anza",-1,1),new z("enza",-1,5),new z("ice",-1,1),new z("atrice",7,1),new z("iche",-1,1),new z("logie",-1,3),new z("abile",-1,1),new z("ibile",-1,1),new z("usione",-1,4),new z("azione",-1,2),new z("uzione",-1,4),new z("atore",-1,2),new z("ose",-1,1),new z("ante",-1,1),new z("mente",-1,1),new z("amente",19,7),new z("iste",-1,1),new z("ive",-1,9),new z("anze",-1,1),new z("enze",-1,5),new z("ici",-1,1),new z("atrici",25,1),new z("ichi",-1,1),new z("abili",-1,1),new z("ibili",-1,1),new z("ismi",-1,1),new z("usioni",-1,4),new z("azioni",-1,2),new z("uzioni",-1,4),new z("atori",-1,2),new z("osi",-1,1),new z("anti",-1,1),new z("amenti",-1,6),new z("imenti",-1,6),new z("isti",-1,1),new z("ivi",-1,9),new z("ico",-1,1),new z("ismo",-1,1),new z("oso",-1,1),new z("amento",-1,6),new z("imento",-1,6),new z("ivo",-1,9),new z("ità",-1,8),new z("istà",-1,1),new z("istè",-1,1),new z("istì",-1,1)],l=[new z("isca",-1,1),new z("enda",-1,1),new z("ata",-1,1),new z("ita",-1,1),new z("uta",-1,1),new z("ava",-1,1),new z("eva",-1,1),new z("iva",-1,1),new z("erebbe",-1,1),new z("irebbe",-1,1),new z("isce",-1,1),new z("ende",-1,1),new z("are",-1,1),new z("ere",-1,1),new z("ire",-1,1),new z("asse",-1,1),new z("ate",-1,1),new z("avate",16,1),new z("evate",16,1),new z("ivate",16,1),new z("ete",-1,1),new z("erete",20,1),new z("irete",20,1),new z("ite",-1,1),new z("ereste",-1,1),new z("ireste",-1,1),new z("ute",-1,1),new z("erai",-1,1),new z("irai",-1,1),new z("isci",-1,1),new z("endi",-1,1),new z("erei",-1,1),new z("irei",-1,1),new z("assi",-1,1),new z("ati",-1,1),new z("iti",-1,1),new z("eresti",-1,1),new z("iresti",-1,1),new z("uti",-1,1),new z("avi",-1,1),new z("evi",-1,1),new z("ivi",-1,1),new z("isco",-1,1),new z("ando",-1,1),new z("endo",-1,1),new z("Yamo",-1,1),new z("iamo",-1,1),new z("avamo",-1,1),new z("evamo",-1,1),new z("ivamo",-1,1),new z("eremo",-1,1),new z("iremo",-1,1),new z("assimo",-1,1),new z("ammo",-1,1),new z("emmo",-1,1),new z("eremmo",54,1),new z("iremmo",54,1),new z("immo",-1,1),new z("ano",-1,1),new z("iscano",58,1),new z("avano",58,1),new z("evano",58,1),new z("ivano",58,1),new z("eranno",-1,1),new z("iranno",-1,1),new z("ono",-1,1),new z("iscono",65,1),new z("arono",65,1),new z("erono",65,1),new z("irono",65,1),new z("erebbero",-1,1),new z("irebbero",-1,1),new z("assero",-1,1),new z("essero",-1,1),new z("issero",-1,1),new z("ato",-1,1),new z("ito",-1,1),new z("uto",-1,1),new z("avo",-1,1),new z("evo",-1,1),new z("ivo",-1,1),new z("ar",-1,1),new z("ir",-1,1),new z("erà",-1,1),new z("irà",-1,1),new z("erò",-1,1),new z("irò",-1,1)],m=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],f=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],v=[17],b=new P;function d(e,r,n){return!(!b.eq_s(1,e)||(b.ket=b.cursor,!b.in_grouping(m,97,249)))&&(b.slice_from(r),b.cursor=n,!0)}function _(e){if(b.cursor=e,!b.in_grouping(m,97,249))return!1;for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}return!0}function g(){var e,r=b.cursor;if(!function(){if(b.in_grouping(m,97,249)){var e=b.cursor;if(b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return _(e);b.cursor++}return!0}return _(e)}return!1}()){if(b.cursor=r,!b.out_grouping(m,97,249))return;if(e=b.cursor,b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return b.cursor=e,void(b.in_grouping(m,97,249)&&b.cursor=b.limit)return;b.cursor++}s=b.cursor}function p(){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}return!0}function k(){return s<=b.cursor}function h(){return o<=b.cursor}function q(){var e;if(b.ket=b.cursor,!(e=b.find_among_b(i,51)))return!1;switch(b.bra=b.cursor,e){case 1:if(!h())return!1;b.slice_del();break;case 2:if(!h())return!1;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic")&&(b.bra=b.cursor,h()&&b.slice_del());break;case 3:if(!h())return!1;b.slice_from("log");break;case 4:if(!h())return!1;b.slice_from("u");break;case 5:if(!h())return!1;b.slice_from("ente");break;case 6:if(!k())return!1;b.slice_del();break;case 7:if(!(t<=b.cursor))return!1;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(r,4))&&(b.bra=b.cursor,h()&&(b.slice_del(),1==e&&(b.ket=b.cursor,b.eq_s_b(2,"at")&&(b.bra=b.cursor,h()&&b.slice_del()))));break;case 8:if(!h())return!1;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(n,3))&&(b.bra=b.cursor,1==e&&h()&&b.slice_del());break;case 9:if(!h())return!1;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"at")&&(b.bra=b.cursor,h()&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic")&&(b.bra=b.cursor,h()&&b.slice_del())))}return!0}function C(){var e;e=b.limit-b.cursor,b.ket=b.cursor,b.in_grouping_b(f,97,242)&&(b.bra=b.cursor,k()&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(1,"i")&&(b.bra=b.cursor,k())))?b.slice_del():b.cursor=b.limit-e,b.ket=b.cursor,b.eq_s_b(1,"h")&&(b.bra=b.cursor,b.in_grouping_b(v,99,103)&&k()&&b.slice_del())}this.setCurrent=function(e){b.setCurrent(e)},this.getCurrent=function(){return b.getCurrent()},this.stem=function(){var e,r,n,i=b.cursor;return function(){for(var e,r,n,i,o=b.cursor;;){if(b.bra=b.cursor,e=b.find_among(a,7))switch(b.ket=b.cursor,e){case 1:b.slice_from("à");continue;case 2:b.slice_from("è");continue;case 3:b.slice_from("ì");continue;case 4:b.slice_from("ò");continue;case 5:b.slice_from("ù");continue;case 6:b.slice_from("qU");continue;case 7:if(b.cursor>=b.limit)break;b.cursor++;continue}break}for(b.cursor=o;;)for(r=b.cursor;;){if(n=b.cursor,b.in_grouping(m,97,249)){if(b.bra=b.cursor,i=b.cursor,d("u","U",n))break;if(b.cursor=i,d("i","I",n))break}if(b.cursor=n,b.cursor>=b.limit)return b.cursor=r;b.cursor++}}(),b.cursor=i,e=b.cursor,s=b.limit,o=t=s,g(),b.cursor=e,p()&&(t=b.cursor,p()&&(o=b.cursor)),b.limit_backward=i,b.cursor=b.limit,function(){var e;if(b.ket=b.cursor,b.find_among_b(c,37)&&(b.bra=b.cursor,(e=b.find_among_b(w,5))&&k()))switch(e){case 1:b.slice_del();break;case 2:b.slice_from("e")}}(),b.cursor=b.limit,q()||(b.cursor=b.limit,b.cursor>=s&&(n=b.limit_backward,b.limit_backward=s,b.ket=b.cursor,(r=b.find_among_b(l,87))&&(b.bra=b.cursor,1==r&&b.slice_del()),b.limit_backward=n)),b.cursor=b.limit,C(),b.cursor=b.limit_backward,function(){for(var e;b.bra=b.cursor,e=b.find_among(u,3);)switch(b.ket=b.cursor,e){case 1:b.slice_from("i");break;case 2:b.slice_from("u");break;case 3:if(b.cursor>=b.limit)return;b.cursor++}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.ja.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.ja.js new file mode 100644 index 0000000000..69f620250d --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.ja.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(m){if(void 0===m)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===m.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var l="2"==m.version[0];m.ja=function(){this.pipeline.reset(),this.pipeline.add(m.ja.trimmer,m.ja.stopWordFilter,m.ja.stemmer),l?this.tokenizer=m.ja.tokenizer:(m.tokenizer&&(m.tokenizer=m.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=m.ja.tokenizer))};var j=new m.TinySegmenter;m.ja.tokenizer=function(e){var r,t,i,n,o,s,p,a,u;if(!arguments.length||null==e||null==e)return[];if(Array.isArray(e))return e.map(function(e){return l?new m.Token(e.toLowerCase()):e.toLowerCase()});for(r=(t=e.toString().toLowerCase().replace(/^\s+/,"")).length-1;0<=r;r--)if(/\S/.test(t.charAt(r))){t=t.substring(0,r+1);break}for(o=[],i=t.length,p=a=0;a<=i;a++)if(s=a-p,t.charAt(a).match(/\s/)||a==i){if(0=_.limit||(_.cursor++,!1)}function w(){for(;!_.in_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}for(;!_.out_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}return!1}function b(){return i<=_.cursor}function p(){return e<=_.cursor}function g(){var r=_.limit-_.cursor;_.find_among_b(t,3)&&(_.cursor=_.limit-r,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del()))}function h(){var r;u=!1,_.ket=_.cursor,_.eq_s_b(1,"e")&&(_.bra=_.cursor,b()&&(r=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-r,_.slice_del(),u=!0,g())))}function k(){var r;b()&&(r=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-r,_.eq_s_b(3,"gem")||(_.cursor=_.limit-r,_.slice_del(),g())))}this.setCurrent=function(r){_.setCurrent(r)},this.getCurrent=function(){return _.getCurrent()},this.stem=function(){var r=_.cursor;return function(){for(var r,e,i,n=_.cursor;;){if(_.bra=_.cursor,r=_.find_among(o,11))switch(_.ket=_.cursor,r){case 1:_.slice_from("a");continue;case 2:_.slice_from("e");continue;case 3:_.slice_from("i");continue;case 4:_.slice_from("o");continue;case 5:_.slice_from("u");continue;case 6:if(_.cursor>=_.limit)break;_.cursor++;continue}break}for(_.cursor=n,_.bra=n,_.eq_s(1,"y")?(_.ket=_.cursor,_.slice_from("Y")):_.cursor=n;;)if(e=_.cursor,_.in_grouping(m,97,232)){if(i=_.cursor,_.bra=i,_.eq_s(1,"i"))_.ket=_.cursor,_.in_grouping(m,97,232)&&(_.slice_from("I"),_.cursor=e);else if(_.cursor=i,_.eq_s(1,"y"))_.ket=_.cursor,_.slice_from("Y"),_.cursor=e;else if(s(e))break}else if(s(e))break}(),_.cursor=r,i=_.limit,e=i,w()||((i=_.cursor)<3&&(i=3),w()||(e=_.cursor)),_.limit_backward=r,_.cursor=_.limit,function(){var r,e,i,n,o,t,s=_.limit-_.cursor;if(_.ket=_.cursor,r=_.find_among_b(c,5))switch(_.bra=_.cursor,r){case 1:b()&&_.slice_from("heid");break;case 2:k();break;case 3:b()&&_.out_grouping_b(f,97,232)&&_.slice_del()}if(_.cursor=_.limit-s,h(),_.cursor=_.limit-s,_.ket=_.cursor,_.eq_s_b(4,"heid")&&(_.bra=_.cursor,p()&&(e=_.limit-_.cursor,_.eq_s_b(1,"c")||(_.cursor=_.limit-e,_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"en")&&(_.bra=_.cursor,k())))),_.cursor=_.limit-s,_.ket=_.cursor,r=_.find_among_b(a,6))switch(_.bra=_.cursor,r){case 1:if(p()){if(_.slice_del(),i=_.limit-_.cursor,_.ket=_.cursor,_.eq_s_b(2,"ig")&&(_.bra=_.cursor,p()&&(n=_.limit-_.cursor,!_.eq_s_b(1,"e")))){_.cursor=_.limit-n,_.slice_del();break}_.cursor=_.limit-i,g()}break;case 2:p()&&(o=_.limit-_.cursor,_.eq_s_b(1,"e")||(_.cursor=_.limit-o,_.slice_del()));break;case 3:p()&&(_.slice_del(),h());break;case 4:p()&&_.slice_del();break;case 5:p()&&u&&_.slice_del()}_.cursor=_.limit-s,_.out_grouping_b(d,73,232)&&(t=_.limit-_.cursor,_.find_among_b(l,4)&&_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-t,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del())))}(),_.cursor=_.limit_backward,function(){for(var r;;)if(_.bra=_.cursor,r=_.find_among(n,3))switch(_.ket=_.cursor,r){case 1:_.slice_from("y");break;case 2:_.slice_from("i");break;case 3:if(_.cursor>=_.limit)return;_.cursor++}}(),!0}},function(r){return"function"==typeof r.update?r.update(function(r){return e.setCurrent(r),e.stem(),e.getCurrent()}):(e.setCurrent(r),e.stem(),e.getCurrent())}),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.no.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.no.js new file mode 100644 index 0000000000..3d156b9c19 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.no.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,n,i;e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=(r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){var o,s,a=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],m=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],u=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],d=[119,125,149,1],c=new n;this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var e,r,n,i,t=c.cursor;return function(){var e,r=c.cursor+3;if(s=c.limit,0<=r||r<=c.limit){for(o=r;;){if(e=c.cursor,c.in_grouping(u,97,248)){c.cursor=e;break}if(e>=c.limit)return;c.cursor=e+1}for(;!c.out_grouping(u,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(s=c.cursor)=s&&(r=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,e=c.find_among_b(a,29),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:n=c.limit-c.cursor,c.in_grouping_b(d,98,122)?c.slice_del():(c.cursor=c.limit-n,c.eq_s_b(1,"k")&&c.out_grouping_b(u,97,248)&&c.slice_del());break;case 3:c.slice_from("er")}}(),c.cursor=c.limit,r=c.limit-c.cursor,c.cursor>=s&&(e=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,c.find_among_b(m,2)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e),c.cursor=c.limit,c.cursor>=s&&(i=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,(n=c.find_among_b(l,11))?(c.bra=c.cursor,c.limit_backward=i,1==n&&c.slice_del()):c.limit_backward=i),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.pt.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.pt.js new file mode 100644 index 0000000000..f50fc9fa6d --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.pt.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var j,C,r;e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=(j=e.stemmerSupport.Among,C=e.stemmerSupport.SnowballProgram,r=new function(){var s,n,i,o=[new j("",-1,3),new j("ã",0,1),new j("õ",0,2)],a=[new j("",-1,3),new j("a~",0,1),new j("o~",0,2)],r=[new j("ic",-1,-1),new j("ad",-1,-1),new j("os",-1,-1),new j("iv",-1,1)],t=[new j("ante",-1,1),new j("avel",-1,1),new j("ível",-1,1)],u=[new j("ic",-1,1),new j("abil",-1,1),new j("iv",-1,1)],w=[new j("ica",-1,1),new j("ância",-1,1),new j("ência",-1,4),new j("ira",-1,9),new j("adora",-1,1),new j("osa",-1,1),new j("ista",-1,1),new j("iva",-1,8),new j("eza",-1,1),new j("logía",-1,2),new j("idade",-1,7),new j("ante",-1,1),new j("mente",-1,6),new j("amente",12,5),new j("ável",-1,1),new j("ível",-1,1),new j("ución",-1,3),new j("ico",-1,1),new j("ismo",-1,1),new j("oso",-1,1),new j("amento",-1,1),new j("imento",-1,1),new j("ivo",-1,8),new j("aça~o",-1,1),new j("ador",-1,1),new j("icas",-1,1),new j("ências",-1,4),new j("iras",-1,9),new j("adoras",-1,1),new j("osas",-1,1),new j("istas",-1,1),new j("ivas",-1,8),new j("ezas",-1,1),new j("logías",-1,2),new j("idades",-1,7),new j("uciones",-1,3),new j("adores",-1,1),new j("antes",-1,1),new j("aço~es",-1,1),new j("icos",-1,1),new j("ismos",-1,1),new j("osos",-1,1),new j("amentos",-1,1),new j("imentos",-1,1),new j("ivos",-1,8)],m=[new j("ada",-1,1),new j("ida",-1,1),new j("ia",-1,1),new j("aria",2,1),new j("eria",2,1),new j("iria",2,1),new j("ara",-1,1),new j("era",-1,1),new j("ira",-1,1),new j("ava",-1,1),new j("asse",-1,1),new j("esse",-1,1),new j("isse",-1,1),new j("aste",-1,1),new j("este",-1,1),new j("iste",-1,1),new j("ei",-1,1),new j("arei",16,1),new j("erei",16,1),new j("irei",16,1),new j("am",-1,1),new j("iam",20,1),new j("ariam",21,1),new j("eriam",21,1),new j("iriam",21,1),new j("aram",20,1),new j("eram",20,1),new j("iram",20,1),new j("avam",20,1),new j("em",-1,1),new j("arem",29,1),new j("erem",29,1),new j("irem",29,1),new j("assem",29,1),new j("essem",29,1),new j("issem",29,1),new j("ado",-1,1),new j("ido",-1,1),new j("ando",-1,1),new j("endo",-1,1),new j("indo",-1,1),new j("ara~o",-1,1),new j("era~o",-1,1),new j("ira~o",-1,1),new j("ar",-1,1),new j("er",-1,1),new j("ir",-1,1),new j("as",-1,1),new j("adas",47,1),new j("idas",47,1),new j("ias",47,1),new j("arias",50,1),new j("erias",50,1),new j("irias",50,1),new j("aras",47,1),new j("eras",47,1),new j("iras",47,1),new j("avas",47,1),new j("es",-1,1),new j("ardes",58,1),new j("erdes",58,1),new j("irdes",58,1),new j("ares",58,1),new j("eres",58,1),new j("ires",58,1),new j("asses",58,1),new j("esses",58,1),new j("isses",58,1),new j("astes",58,1),new j("estes",58,1),new j("istes",58,1),new j("is",-1,1),new j("ais",71,1),new j("eis",71,1),new j("areis",73,1),new j("ereis",73,1),new j("ireis",73,1),new j("áreis",73,1),new j("éreis",73,1),new j("íreis",73,1),new j("ásseis",73,1),new j("ésseis",73,1),new j("ísseis",73,1),new j("áveis",73,1),new j("íeis",73,1),new j("aríeis",84,1),new j("eríeis",84,1),new j("iríeis",84,1),new j("ados",-1,1),new j("idos",-1,1),new j("amos",-1,1),new j("áramos",90,1),new j("éramos",90,1),new j("íramos",90,1),new j("ávamos",90,1),new j("íamos",90,1),new j("aríamos",95,1),new j("eríamos",95,1),new j("iríamos",95,1),new j("emos",-1,1),new j("aremos",99,1),new j("eremos",99,1),new j("iremos",99,1),new j("ássemos",99,1),new j("êssemos",99,1),new j("íssemos",99,1),new j("imos",-1,1),new j("armos",-1,1),new j("ermos",-1,1),new j("irmos",-1,1),new j("ámos",-1,1),new j("arás",-1,1),new j("erás",-1,1),new j("irás",-1,1),new j("eu",-1,1),new j("iu",-1,1),new j("ou",-1,1),new j("ará",-1,1),new j("erá",-1,1),new j("irá",-1,1)],c=[new j("a",-1,1),new j("i",-1,1),new j("o",-1,1),new j("os",-1,1),new j("á",-1,1),new j("í",-1,1),new j("ó",-1,1)],l=[new j("e",-1,1),new j("ç",-1,2),new j("é",-1,1),new j("ê",-1,1)],f=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],d=new C;function v(){if(d.out_grouping(f,97,250)){for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return!0;d.cursor++}return!1}return!0}function p(){var e,r,s=d.cursor;if(d.in_grouping(f,97,250))if(e=d.cursor,v()){if(d.cursor=e,function(){if(d.in_grouping(f,97,250))for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return!1;d.cursor++}return i=d.cursor,!0}())return}else i=d.cursor;if(d.cursor=s,d.out_grouping(f,97,250)){if(r=d.cursor,v()){if(d.cursor=r,!d.in_grouping(f,97,250)||d.cursor>=d.limit)return;d.cursor++}i=d.cursor}}function _(){for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return!1;d.cursor++}for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return!1;d.cursor++}return!0}function h(){return i<=d.cursor}function b(){return s<=d.cursor}function g(){var e;if(d.ket=d.cursor,!(e=d.find_among_b(w,45)))return!1;switch(d.bra=d.cursor,e){case 1:if(!b())return!1;d.slice_del();break;case 2:if(!b())return!1;d.slice_from("log");break;case 3:if(!b())return!1;d.slice_from("u");break;case 4:if(!b())return!1;d.slice_from("ente");break;case 5:if(!(n<=d.cursor))return!1;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(r,4))&&(d.bra=d.cursor,b()&&(d.slice_del(),1==e&&(d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,b()&&d.slice_del()))));break;case 6:if(!b())return!1;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(t,3))&&(d.bra=d.cursor,1==e&&b()&&d.slice_del());break;case 7:if(!b())return!1;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(u,3))&&(d.bra=d.cursor,1==e&&b()&&d.slice_del());break;case 8:if(!b())return!1;d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,b()&&d.slice_del());break;case 9:if(!h()||!d.eq_s_b(1,"e"))return!1;d.slice_from("ir")}return!0}function k(e,r){if(d.eq_s_b(1,e)){d.bra=d.cursor;var s=d.limit-d.cursor;if(d.eq_s_b(1,r))return d.cursor=d.limit-s,h()&&d.slice_del(),!1}return!0}function q(){if(!g()&&(d.cursor=d.limit,!function(){var e,r;if(d.cursor>=i){if(r=d.limit_backward,d.limit_backward=i,d.ket=d.cursor,e=d.find_among_b(m,120))return d.bra=d.cursor,1==e&&d.slice_del(),d.limit_backward=r,!0;d.limit_backward=r}return!1}()))return d.cursor=d.limit,d.ket=d.cursor,void((e=d.find_among_b(c,7))&&(d.bra=d.cursor,1==e&&h()&&d.slice_del()));var e;d.cursor=d.limit,d.ket=d.cursor,d.eq_s_b(1,"i")&&(d.bra=d.cursor,d.eq_s_b(1,"c")&&(d.cursor=d.limit,h()&&d.slice_del()))}this.setCurrent=function(e){d.setCurrent(e)},this.getCurrent=function(){return d.getCurrent()},this.stem=function(){var e,r=d.cursor;return function(){for(var e;;){if(d.bra=d.cursor,e=d.find_among(o,3))switch(d.ket=d.cursor,e){case 1:d.slice_from("a~");continue;case 2:d.slice_from("o~");continue;case 3:if(d.cursor>=d.limit)break;d.cursor++;continue}break}}(),d.cursor=r,e=d.cursor,i=d.limit,s=n=i,p(),d.cursor=e,_()&&(n=d.cursor,_()&&(s=d.cursor)),d.limit_backward=r,d.cursor=d.limit,q(),d.cursor=d.limit,function(){var e;if(d.ket=d.cursor,e=d.find_among_b(l,4))switch(d.bra=d.cursor,e){case 1:h()&&(d.slice_del(),d.ket=d.cursor,d.limit,d.cursor,k("u","g")&&k("i","c"));break;case 2:d.slice_from("c")}}(),d.cursor=d.limit_backward,function(){for(var e;;){if(d.bra=d.cursor,e=d.find_among(a,3))switch(d.ket=d.cursor,e){case 1:d.slice_from("ã");continue;case 2:d.slice_from("õ");continue;case 3:if(d.cursor>=d.limit)break;d.cursor++;continue}break}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.ro.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.ro.js new file mode 100644 index 0000000000..b19627e1b3 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.ro.js @@ -0,0 +1 @@ +!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var h,z,i;e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=(h=e.stemmerSupport.Among,z=e.stemmerSupport.SnowballProgram,i=new function(){var r,n,t,a,o=[new h("",-1,3),new h("I",0,1),new h("U",0,2)],s=[new h("ea",-1,3),new h("aţia",-1,7),new h("aua",-1,2),new h("iua",-1,4),new h("aţie",-1,7),new h("ele",-1,3),new h("ile",-1,5),new h("iile",6,4),new h("iei",-1,4),new h("atei",-1,6),new h("ii",-1,4),new h("ului",-1,1),new h("ul",-1,1),new h("elor",-1,3),new h("ilor",-1,4),new h("iilor",14,4)],c=[new h("icala",-1,4),new h("iciva",-1,4),new h("ativa",-1,5),new h("itiva",-1,6),new h("icale",-1,4),new h("aţiune",-1,5),new h("iţiune",-1,6),new h("atoare",-1,5),new h("itoare",-1,6),new h("ătoare",-1,5),new h("icitate",-1,4),new h("abilitate",-1,1),new h("ibilitate",-1,2),new h("ivitate",-1,3),new h("icive",-1,4),new h("ative",-1,5),new h("itive",-1,6),new h("icali",-1,4),new h("atori",-1,5),new h("icatori",18,4),new h("itori",-1,6),new h("ători",-1,5),new h("icitati",-1,4),new h("abilitati",-1,1),new h("ivitati",-1,3),new h("icivi",-1,4),new h("ativi",-1,5),new h("itivi",-1,6),new h("icităi",-1,4),new h("abilităi",-1,1),new h("ivităi",-1,3),new h("icităţi",-1,4),new h("abilităţi",-1,1),new h("ivităţi",-1,3),new h("ical",-1,4),new h("ator",-1,5),new h("icator",35,4),new h("itor",-1,6),new h("ător",-1,5),new h("iciv",-1,4),new h("ativ",-1,5),new h("itiv",-1,6),new h("icală",-1,4),new h("icivă",-1,4),new h("ativă",-1,5),new h("itivă",-1,6)],u=[new h("ica",-1,1),new h("abila",-1,1),new h("ibila",-1,1),new h("oasa",-1,1),new h("ata",-1,1),new h("ita",-1,1),new h("anta",-1,1),new h("ista",-1,3),new h("uta",-1,1),new h("iva",-1,1),new h("ic",-1,1),new h("ice",-1,1),new h("abile",-1,1),new h("ibile",-1,1),new h("isme",-1,3),new h("iune",-1,2),new h("oase",-1,1),new h("ate",-1,1),new h("itate",17,1),new h("ite",-1,1),new h("ante",-1,1),new h("iste",-1,3),new h("ute",-1,1),new h("ive",-1,1),new h("ici",-1,1),new h("abili",-1,1),new h("ibili",-1,1),new h("iuni",-1,2),new h("atori",-1,1),new h("osi",-1,1),new h("ati",-1,1),new h("itati",30,1),new h("iti",-1,1),new h("anti",-1,1),new h("isti",-1,3),new h("uti",-1,1),new h("işti",-1,3),new h("ivi",-1,1),new h("ităi",-1,1),new h("oşi",-1,1),new h("ităţi",-1,1),new h("abil",-1,1),new h("ibil",-1,1),new h("ism",-1,3),new h("ator",-1,1),new h("os",-1,1),new h("at",-1,1),new h("it",-1,1),new h("ant",-1,1),new h("ist",-1,3),new h("ut",-1,1),new h("iv",-1,1),new h("ică",-1,1),new h("abilă",-1,1),new h("ibilă",-1,1),new h("oasă",-1,1),new h("ată",-1,1),new h("ită",-1,1),new h("antă",-1,1),new h("istă",-1,3),new h("ută",-1,1),new h("ivă",-1,1)],w=[new h("ea",-1,1),new h("ia",-1,1),new h("esc",-1,1),new h("ăsc",-1,1),new h("ind",-1,1),new h("ând",-1,1),new h("are",-1,1),new h("ere",-1,1),new h("ire",-1,1),new h("âre",-1,1),new h("se",-1,2),new h("ase",10,1),new h("sese",10,2),new h("ise",10,1),new h("use",10,1),new h("âse",10,1),new h("eşte",-1,1),new h("ăşte",-1,1),new h("eze",-1,1),new h("ai",-1,1),new h("eai",19,1),new h("iai",19,1),new h("sei",-1,2),new h("eşti",-1,1),new h("ăşti",-1,1),new h("ui",-1,1),new h("ezi",-1,1),new h("âi",-1,1),new h("aşi",-1,1),new h("seşi",-1,2),new h("aseşi",29,1),new h("seseşi",29,2),new h("iseşi",29,1),new h("useşi",29,1),new h("âseşi",29,1),new h("işi",-1,1),new h("uşi",-1,1),new h("âşi",-1,1),new h("aţi",-1,2),new h("eaţi",38,1),new h("iaţi",38,1),new h("eţi",-1,2),new h("iţi",-1,2),new h("âţi",-1,2),new h("arăţi",-1,1),new h("serăţi",-1,2),new h("aserăţi",45,1),new h("seserăţi",45,2),new h("iserăţi",45,1),new h("userăţi",45,1),new h("âserăţi",45,1),new h("irăţi",-1,1),new h("urăţi",-1,1),new h("ârăţi",-1,1),new h("am",-1,1),new h("eam",54,1),new h("iam",54,1),new h("em",-1,2),new h("asem",57,1),new h("sesem",57,2),new h("isem",57,1),new h("usem",57,1),new h("âsem",57,1),new h("im",-1,2),new h("âm",-1,2),new h("ăm",-1,2),new h("arăm",65,1),new h("serăm",65,2),new h("aserăm",67,1),new h("seserăm",67,2),new h("iserăm",67,1),new h("userăm",67,1),new h("âserăm",67,1),new h("irăm",65,1),new h("urăm",65,1),new h("ârăm",65,1),new h("au",-1,1),new h("eau",76,1),new h("iau",76,1),new h("indu",-1,1),new h("ându",-1,1),new h("ez",-1,1),new h("ească",-1,1),new h("ară",-1,1),new h("seră",-1,2),new h("aseră",84,1),new h("seseră",84,2),new h("iseră",84,1),new h("useră",84,1),new h("âseră",84,1),new h("iră",-1,1),new h("ură",-1,1),new h("âră",-1,1),new h("ează",-1,1)],i=[new h("a",-1,1),new h("e",-1,1),new h("ie",1,1),new h("i",-1,1),new h("ă",-1,1)],m=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],l=new z;function f(e,i){l.eq_s(1,e)&&(l.ket=l.cursor,l.in_grouping(m,97,259)&&l.slice_from(i))}function p(){if(l.out_grouping(m,97,259)){for(;!l.in_grouping(m,97,259);){if(l.cursor>=l.limit)return!0;l.cursor++}return!1}return!0}function d(){var e,i,r=l.cursor;if(l.in_grouping(m,97,259)){if(e=l.cursor,!p())return void(a=l.cursor);if(l.cursor=e,!function(){if(l.in_grouping(m,97,259))for(;!l.out_grouping(m,97,259);){if(l.cursor>=l.limit)return!0;l.cursor++}return!1}())return void(a=l.cursor)}l.cursor=r,l.out_grouping(m,97,259)&&(i=l.cursor,p()&&(l.cursor=i,l.in_grouping(m,97,259)&&l.cursor=l.limit)return!1;l.cursor++}for(;!l.out_grouping(m,97,259);){if(l.cursor>=l.limit)return!1;l.cursor++}return!0}function v(){return t<=l.cursor}function _(){var e,i=l.limit-l.cursor;if(l.ket=l.cursor,(e=l.find_among_b(c,46))&&(l.bra=l.cursor,v())){switch(e){case 1:l.slice_from("abil");break;case 2:l.slice_from("ibil");break;case 3:l.slice_from("iv");break;case 4:l.slice_from("ic");break;case 5:l.slice_from("at");break;case 6:l.slice_from("it")}return r=!0,l.cursor=l.limit-i,!0}return!1}function g(){var e,i;for(r=!1;;)if(i=l.limit-l.cursor,!_()){l.cursor=l.limit-i;break}if(l.ket=l.cursor,(e=l.find_among_b(u,62))&&(l.bra=l.cursor,n<=l.cursor)){switch(e){case 1:l.slice_del();break;case 2:l.eq_s_b(1,"ţ")&&(l.bra=l.cursor,l.slice_from("t"));break;case 3:l.slice_from("ist")}r=!0}}function k(){var e;l.ket=l.cursor,(e=l.find_among_b(i,5))&&(l.bra=l.cursor,a<=l.cursor&&1==e&&l.slice_del())}this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){var e,i=l.cursor;return function(){for(var e,i;e=l.cursor,l.in_grouping(m,97,259)&&(i=l.cursor,l.bra=i,f("u","U"),l.cursor=i,f("i","I")),l.cursor=e,!(l.cursor>=l.limit);)l.cursor++}(),l.cursor=i,e=l.cursor,a=l.limit,n=t=a,d(),l.cursor=e,b()&&(t=l.cursor,b()&&(n=l.cursor)),l.limit_backward=i,l.cursor=l.limit,function(){var e,i;if(l.ket=l.cursor,(e=l.find_among_b(s,16))&&(l.bra=l.cursor,v()))switch(e){case 1:l.slice_del();break;case 2:l.slice_from("a");break;case 3:l.slice_from("e");break;case 4:l.slice_from("i");break;case 5:i=l.limit-l.cursor,l.eq_s_b(2,"ab")||(l.cursor=l.limit-i,l.slice_from("i"));break;case 6:l.slice_from("at");break;case 7:l.slice_from("aţi")}}(),l.cursor=l.limit,g(),l.cursor=l.limit,r||(l.cursor=l.limit,function(){var e,i,r;if(l.cursor>=a){if(i=l.limit_backward,l.limit_backward=a,l.ket=l.cursor,e=l.find_among_b(w,94))switch(l.bra=l.cursor,e){case 1:if(r=l.limit-l.cursor,!l.out_grouping_b(m,97,259)&&(l.cursor=l.limit-r,!l.eq_s_b(1,"u")))break;case 2:l.slice_del()}l.limit_backward=i}}(),l.cursor=l.limit),k(),l.cursor=l.limit_backward,function(){for(var e;;){if(l.bra=l.cursor,e=l.find_among(o,3))switch(l.ket=l.cursor,e){case 1:l.slice_from("i");continue;case 2:l.slice_from("u");continue;case 3:if(l.cursor>=l.limit)break;l.cursor++;continue}break}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.ru.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.ru.js new file mode 100644 index 0000000000..ac99248044 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.ru.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var h,g,n;e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=(h=e.stemmerSupport.Among,g=e.stemmerSupport.SnowballProgram,n=new function(){var n,e,r=[new h("в",-1,1),new h("ив",0,2),new h("ыв",0,2),new h("вши",-1,1),new h("ивши",3,2),new h("ывши",3,2),new h("вшись",-1,1),new h("ившись",6,2),new h("ывшись",6,2)],t=[new h("ее",-1,1),new h("ие",-1,1),new h("ое",-1,1),new h("ые",-1,1),new h("ими",-1,1),new h("ыми",-1,1),new h("ей",-1,1),new h("ий",-1,1),new h("ой",-1,1),new h("ый",-1,1),new h("ем",-1,1),new h("им",-1,1),new h("ом",-1,1),new h("ым",-1,1),new h("его",-1,1),new h("ого",-1,1),new h("ему",-1,1),new h("ому",-1,1),new h("их",-1,1),new h("ых",-1,1),new h("ею",-1,1),new h("ою",-1,1),new h("ую",-1,1),new h("юю",-1,1),new h("ая",-1,1),new h("яя",-1,1)],w=[new h("ем",-1,1),new h("нн",-1,1),new h("вш",-1,1),new h("ивш",2,2),new h("ывш",2,2),new h("щ",-1,1),new h("ющ",5,1),new h("ующ",6,2)],i=[new h("сь",-1,1),new h("ся",-1,1)],u=[new h("ла",-1,1),new h("ила",0,2),new h("ыла",0,2),new h("на",-1,1),new h("ена",3,2),new h("ете",-1,1),new h("ите",-1,2),new h("йте",-1,1),new h("ейте",7,2),new h("уйте",7,2),new h("ли",-1,1),new h("или",10,2),new h("ыли",10,2),new h("й",-1,1),new h("ей",13,2),new h("уй",13,2),new h("л",-1,1),new h("ил",16,2),new h("ыл",16,2),new h("ем",-1,1),new h("им",-1,2),new h("ым",-1,2),new h("н",-1,1),new h("ен",22,2),new h("ло",-1,1),new h("ило",24,2),new h("ыло",24,2),new h("но",-1,1),new h("ено",27,2),new h("нно",27,1),new h("ет",-1,1),new h("ует",30,2),new h("ит",-1,2),new h("ыт",-1,2),new h("ют",-1,1),new h("уют",34,2),new h("ят",-1,2),new h("ны",-1,1),new h("ены",37,2),new h("ть",-1,1),new h("ить",39,2),new h("ыть",39,2),new h("ешь",-1,1),new h("ишь",-1,2),new h("ю",-1,2),new h("ую",44,2)],s=[new h("а",-1,1),new h("ев",-1,1),new h("ов",-1,1),new h("е",-1,1),new h("ие",3,1),new h("ье",3,1),new h("и",-1,1),new h("еи",6,1),new h("ии",6,1),new h("ами",6,1),new h("ями",6,1),new h("иями",10,1),new h("й",-1,1),new h("ей",12,1),new h("ией",13,1),new h("ий",12,1),new h("ой",12,1),new h("ам",-1,1),new h("ем",-1,1),new h("ием",18,1),new h("ом",-1,1),new h("ям",-1,1),new h("иям",21,1),new h("о",-1,1),new h("у",-1,1),new h("ах",-1,1),new h("ях",-1,1),new h("иях",26,1),new h("ы",-1,1),new h("ь",-1,1),new h("ю",-1,1),new h("ию",30,1),new h("ью",30,1),new h("я",-1,1),new h("ия",33,1),new h("ья",33,1)],o=[new h("ост",-1,1),new h("ость",-1,1)],c=[new h("ейше",-1,1),new h("н",-1,2),new h("ейш",-1,1),new h("ь",-1,3)],m=[33,65,8,232],l=new g;function f(){for(;!l.in_grouping(m,1072,1103);){if(l.cursor>=l.limit)return!1;l.cursor++}return!0}function a(){for(;!l.out_grouping(m,1072,1103);){if(l.cursor>=l.limit)return!1;l.cursor++}return!0}function p(e,n){var r,t;if(l.ket=l.cursor,r=l.find_among_b(e,n)){switch(l.bra=l.cursor,r){case 1:if(t=l.limit-l.cursor,!l.eq_s_b(1,"а")&&(l.cursor=l.limit-t,!l.eq_s_b(1,"я")))return!1;case 2:l.slice_del()}return!0}return!1}function d(e,n){var r;return l.ket=l.cursor,!!(r=l.find_among_b(e,n))&&(l.bra=l.cursor,1==r&&l.slice_del(),!0)}function _(){return!!d(t,26)&&(p(w,8),!0)}function b(){var e;l.ket=l.cursor,(e=l.find_among_b(o,2))&&(l.bra=l.cursor,n<=l.cursor&&1==e&&l.slice_del())}this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){return e=l.limit,n=e,f()&&(e=l.cursor,a()&&f()&&a()&&(n=l.cursor)),l.cursor=l.limit,!(l.cursor>3]&1<<(7&s))return this.cursor++,!0}return!1},in_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(s<=i&&t<=s&&r[(s-=t)>>3]&1<<(7&s))return this.cursor--,!0}return!1},out_grouping:function(r,t,i){if(this.cursor>3]&1<<(7&s)))return this.cursor++,!0}return!1},out_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(i>3]&1<<(7&s)))return this.cursor--,!0}return!1},eq_s:function(r,t){if(this.limit-this.cursor>1),a=0,f=u=(l=r[i]).s_size){if(this.cursor=e+l.s_size,!l.method)return l.result;var m=l.method();if(this.cursor=e+l.s_size,m)return l.result}if((i=l.substring_i)<0)return 0}},find_among_b:function(r,t){for(var i=0,s=t,e=this.cursor,n=this.limit_backward,u=0,o=0,h=!1;;){for(var c=i+(s-i>>1),a=0,f=u=(_=r[i]).s_size){if(this.cursor=e-_.s_size,!_.method)return _.result;var m=_.method();if(this.cursor=e-_.s_size,m)return _.result}if((i=_.substring_i)<0)return 0}},replace_s:function(r,t,i){var s=i.length-(t-r);return b=b.substring(0,r)+i+b.substring(t),this.limit+=s,this.cursor>=t?this.cursor+=s:this.cursor>r&&(this.cursor=r),s},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>b.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),b.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.sv.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.sv.js new file mode 100644 index 0000000000..6daf5f9d80 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.sv.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,l,n;e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=(r=e.stemmerSupport.Among,l=e.stemmerSupport.SnowballProgram,n=new function(){var n,t,i=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],s=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],a=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],o=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],u=[119,127,149],m=new l;this.setCurrent=function(e){m.setCurrent(e)},this.getCurrent=function(){return m.getCurrent()},this.stem=function(){var e,r=m.cursor;return function(){var e,r=m.cursor+3;if(t=m.limit,0<=r||r<=m.limit){for(n=r;;){if(e=m.cursor,m.in_grouping(o,97,246)){m.cursor=e;break}if(m.cursor=e,m.cursor>=m.limit)return;m.cursor++}for(;!m.out_grouping(o,97,246);){if(m.cursor>=m.limit)return;m.cursor++}(t=m.cursor)=t&&(m.limit_backward=t,m.cursor=m.limit,m.ket=m.cursor,e=m.find_among_b(i,37),m.limit_backward=r,e))switch(m.bra=m.cursor,e){case 1:m.slice_del();break;case 2:m.in_grouping_b(u,98,121)&&m.slice_del()}}(),m.cursor=m.limit,e=m.limit_backward,m.cursor>=t&&(m.limit_backward=t,m.cursor=m.limit,m.find_among_b(s,7)&&(m.cursor=m.limit,m.ket=m.cursor,m.cursor>m.limit_backward&&(m.bra=--m.cursor,m.slice_del())),m.limit_backward=e),m.cursor=m.limit,function(){var e,r;if(m.cursor>=t){if(r=m.limit_backward,m.limit_backward=t,m.cursor=m.limit,m.ket=m.cursor,e=m.find_among_b(a,5))switch(m.bra=m.cursor,e){case 1:m.slice_del();break;case 2:m.slice_from("lös");break;case 3:m.slice_from("full")}m.limit_backward=r}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.th.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.th.js new file mode 100644 index 0000000000..ee8ef373a0 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.th.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(t){if(void 0===t)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===t.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==t.version[0];t.th=function(){this.pipeline.reset(),this.pipeline.add(t.th.trimmer),i?this.tokenizer=t.th.tokenizer:(t.tokenizer&&(t.tokenizer=t.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=t.th.tokenizer))},t.th.wordCharacters="[฀-๿]",t.th.trimmer=t.trimmerSupport.generateTrimmer(t.th.wordCharacters),t.Pipeline.registerFunction(t.th.trimmer,"trimmer-th");var n=t.wordcut;n.init(),t.th.tokenizer=function(e){if(!arguments.length||null==e||null==e)return[];if(Array.isArray(e))return e.map(function(e){return i?new t.Token(e):e});var r=e.toString().replace(/^\s+/,"");return n.cut(r).split("|")}}}); \ No newline at end of file diff --git a/docs/v1.1.1/_static/javascripts/lunr/lunr.tr.js b/docs/v1.1.1/_static/javascripts/lunr/lunr.tr.js new file mode 100644 index 0000000000..e8fb5a7df6 --- /dev/null +++ b/docs/v1.1.1/_static/javascripts/lunr/lunr.tr.js @@ -0,0 +1 @@ +!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var mr,dr,i;r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.tr.stemmer))},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=(mr=r.stemmerSupport.Among,dr=r.stemmerSupport.SnowballProgram,i=new function(){var t,r=[new mr("m",-1,-1),new mr("n",-1,-1),new mr("miz",-1,-1),new mr("niz",-1,-1),new mr("muz",-1,-1),new mr("nuz",-1,-1),new mr("müz",-1,-1),new mr("nüz",-1,-1),new mr("mız",-1,-1),new mr("nız",-1,-1)],i=[new mr("leri",-1,-1),new mr("ları",-1,-1)],e=[new mr("ni",-1,-1),new mr("nu",-1,-1),new mr("nü",-1,-1),new mr("nı",-1,-1)],n=[new mr("in",-1,-1),new mr("un",-1,-1),new mr("ün",-1,-1),new mr("ın",-1,-1)],u=[new mr("a",-1,-1),new mr("e",-1,-1)],o=[new mr("na",-1,-1),new mr("ne",-1,-1)],s=[new mr("da",-1,-1),new mr("ta",-1,-1),new mr("de",-1,-1),new mr("te",-1,-1)],c=[new mr("nda",-1,-1),new mr("nde",-1,-1)],l=[new mr("dan",-1,-1),new mr("tan",-1,-1),new mr("den",-1,-1),new mr("ten",-1,-1)],a=[new mr("ndan",-1,-1),new mr("nden",-1,-1)],m=[new mr("la",-1,-1),new mr("le",-1,-1)],d=[new mr("ca",-1,-1),new mr("ce",-1,-1)],f=[new mr("im",-1,-1),new mr("um",-1,-1),new mr("üm",-1,-1),new mr("ım",-1,-1)],b=[new mr("sin",-1,-1),new mr("sun",-1,-1),new mr("sün",-1,-1),new mr("sın",-1,-1)],w=[new mr("iz",-1,-1),new mr("uz",-1,-1),new mr("üz",-1,-1),new mr("ız",-1,-1)],_=[new mr("siniz",-1,-1),new mr("sunuz",-1,-1),new mr("sünüz",-1,-1),new mr("sınız",-1,-1)],k=[new mr("lar",-1,-1),new mr("ler",-1,-1)],p=[new mr("niz",-1,-1),new mr("nuz",-1,-1),new mr("nüz",-1,-1),new mr("nız",-1,-1)],g=[new mr("dir",-1,-1),new mr("tir",-1,-1),new mr("dur",-1,-1),new mr("tur",-1,-1),new mr("dür",-1,-1),new mr("tür",-1,-1),new mr("dır",-1,-1),new mr("tır",-1,-1)],y=[new mr("casına",-1,-1),new mr("cesine",-1,-1)],z=[new mr("di",-1,-1),new mr("ti",-1,-1),new mr("dik",-1,-1),new mr("tik",-1,-1),new mr("duk",-1,-1),new mr("tuk",-1,-1),new mr("dük",-1,-1),new mr("tük",-1,-1),new mr("dık",-1,-1),new mr("tık",-1,-1),new mr("dim",-1,-1),new mr("tim",-1,-1),new mr("dum",-1,-1),new mr("tum",-1,-1),new mr("düm",-1,-1),new mr("tüm",-1,-1),new mr("dım",-1,-1),new mr("tım",-1,-1),new mr("din",-1,-1),new mr("tin",-1,-1),new mr("dun",-1,-1),new mr("tun",-1,-1),new mr("dün",-1,-1),new mr("tün",-1,-1),new mr("dın",-1,-1),new mr("tın",-1,-1),new mr("du",-1,-1),new mr("tu",-1,-1),new mr("dü",-1,-1),new mr("tü",-1,-1),new mr("dı",-1,-1),new mr("tı",-1,-1)],h=[new mr("sa",-1,-1),new mr("se",-1,-1),new mr("sak",-1,-1),new mr("sek",-1,-1),new mr("sam",-1,-1),new mr("sem",-1,-1),new mr("san",-1,-1),new mr("sen",-1,-1)],v=[new mr("miş",-1,-1),new mr("muş",-1,-1),new mr("müş",-1,-1),new mr("mış",-1,-1)],q=[new mr("b",-1,1),new mr("c",-1,2),new mr("d",-1,3),new mr("ğ",-1,4)],C=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],P=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],F=[65],S=[65],W=[["a",[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["e",[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],101,252],["ı",[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["i",[17],101,105],["o",F,111,117],["ö",S,246,252],["u",F,111,117]],L=new dr;function x(r,i,e){for(;;){var n=L.limit-L.cursor;if(L.in_grouping_b(r,i,e)){L.cursor=L.limit-n;break}if(L.cursor=L.limit-n,L.cursor<=L.limit_backward)return!1;L.cursor--}return!0}function A(){var r,i;r=L.limit-L.cursor,x(C,97,305);for(var e=0;eL.limit_backward&&(L.cursor--,e=L.limit-L.cursor,i()))?(L.cursor=L.limit-e,!0):(L.cursor=L.limit-n,r()?(L.cursor=L.limit-n,!1):(L.cursor=L.limit-n,!(L.cursor<=L.limit_backward)&&(L.cursor--,!!i()&&(L.cursor=L.limit-n,!0))))}function j(r){return E(r,function(){return L.in_grouping_b(C,97,305)})}function T(){return j(function(){return L.eq_s_b(1,"n")})}function Z(){return j(function(){return L.eq_s_b(1,"y")})}function B(){return L.find_among_b(r,10)&&E(function(){return L.in_grouping_b(P,105,305)},function(){return L.out_grouping_b(C,97,305)})}function D(){return A()&&L.in_grouping_b(P,105,305)&&j(function(){return L.eq_s_b(1,"s")})}function G(){return L.find_among_b(i,2)}function H(){return A()&&L.find_among_b(n,4)&&T()}function I(){return A()&&L.find_among_b(s,4)}function J(){return A()&&L.find_among_b(c,2)}function K(){return A()&&L.find_among_b(f,4)&&Z()}function M(){return A()&&L.find_among_b(b,4)}function N(){return A()&&L.find_among_b(w,4)&&Z()}function O(){return L.find_among_b(_,4)}function Q(){return A()&&L.find_among_b(k,2)}function R(){return A()&&L.find_among_b(g,8)}function U(){return A()&&L.find_among_b(z,32)&&Z()}function V(){return L.find_among_b(h,8)&&Z()}function X(){return A()&&L.find_among_b(v,4)&&Z()}function Y(){var r=L.limit-L.cursor;return!(X()||(L.cursor=L.limit-r,U()||(L.cursor=L.limit-r,V()||(L.cursor=L.limit-r,L.eq_s_b(3,"ken")&&Z()))))}function $(){if(L.find_among_b(y,2)){var r=L.limit-L.cursor;if(O()||(L.cursor=L.limit-r,Q()||(L.cursor=L.limit-r,K()||(L.cursor=L.limit-r,M()||(L.cursor=L.limit-r,N()||(L.cursor=L.limit-r))))),X())return!1}return!0}function rr(){if(!A()||!L.find_among_b(p,4))return!0;var r=L.limit-L.cursor;return!U()&&(L.cursor=L.limit-r,!V())}function ir(){var r,i,e,n=L.limit-L.cursor;if(L.ket=L.cursor,t=!0,Y()&&(L.cursor=L.limit-n,$()&&(L.cursor=L.limit-n,function(){if(Q()){L.bra=L.cursor,L.slice_del();var r=L.limit-L.cursor;return L.ket=L.cursor,R()||(L.cursor=L.limit-r,U()||(L.cursor=L.limit-r,V()||(L.cursor=L.limit-r,X()||(L.cursor=L.limit-r)))),t=!1}return!0}()&&(L.cursor=L.limit-n,rr()&&(L.cursor=L.limit-n,e=L.limit-L.cursor,!(O()||(L.cursor=L.limit-e,N()||(L.cursor=L.limit-e,M()||(L.cursor=L.limit-e,K()))))||(L.bra=L.cursor,L.slice_del(),i=L.limit-L.cursor,L.ket=L.cursor,X()||(L.cursor=L.limit-i),0)))))){if(L.cursor=L.limit-n,!R())return;L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,r=L.limit-L.cursor,O()||(L.cursor=L.limit-r,Q()||(L.cursor=L.limit-r,K()||(L.cursor=L.limit-r,M()||(L.cursor=L.limit-r,N()||(L.cursor=L.limit-r))))),X()||(L.cursor=L.limit-r)}L.bra=L.cursor,L.slice_del()}function er(){var r,i,e,n;if(L.ket=L.cursor,L.eq_s_b(2,"ki")){if(r=L.limit-L.cursor,I())return L.bra=L.cursor,L.slice_del(),i=L.limit-L.cursor,L.ket=L.cursor,Q()?(L.bra=L.cursor,L.slice_del(),er()):(L.cursor=L.limit-i,B()&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er()))),!0;if(L.cursor=L.limit-r,H()){if(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,e=L.limit-L.cursor,G())L.bra=L.cursor,L.slice_del();else{if(L.cursor=L.limit-e,L.ket=L.cursor,!B()&&(L.cursor=L.limit-e,!D()&&(L.cursor=L.limit-e,!er())))return!0;L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())}return!0}if(L.cursor=L.limit-r,J()){if(n=L.limit-L.cursor,G())L.bra=L.cursor,L.slice_del();else if(L.cursor=L.limit-n,D())L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er());else if(L.cursor=L.limit-n,!er())return!1;return!0}}return!1}function nr(r){if(L.ket=L.cursor,!J()&&(L.cursor=L.limit-r,!A()||!L.find_among_b(o,2)))return!1;var i=L.limit-L.cursor;if(G())L.bra=L.cursor,L.slice_del();else if(L.cursor=L.limit-i,D())L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er());else if(L.cursor=L.limit-i,!er())return!1;return!0}function tr(r){if(L.ket=L.cursor,!(A()&&L.find_among_b(a,2)||(L.cursor=L.limit-r,A()&&L.find_among_b(e,4))))return!1;var i=L.limit-L.cursor;return!(!D()&&(L.cursor=L.limit-i,!G()))&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er()),!0)}function ur(){var r,i=L.limit-L.cursor;return L.ket=L.cursor,!!(H()||(L.cursor=L.limit-i,A()&&L.find_among_b(m,2)&&Z()))&&(L.bra=L.cursor,L.slice_del(),r=L.limit-L.cursor,L.ket=L.cursor,!(!Q()||(L.bra=L.cursor,L.slice_del(),!er()))||(L.cursor=L.limit-r,L.ket=L.cursor,(B()||(L.cursor=L.limit-r,D()||(L.cursor=L.limit-r,er())))&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())),!0))}function or(){var r,i,e=L.limit-L.cursor;if(L.ket=L.cursor,!(I()||(L.cursor=L.limit-e,A()&&L.in_grouping_b(P,105,305)&&Z()||(L.cursor=L.limit-e,A()&&L.find_among_b(u,2)&&Z()))))return!1;if(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,r=L.limit-L.cursor,B())L.bra=L.cursor,L.slice_del(),i=L.limit-L.cursor,L.ket=L.cursor,Q()||(L.cursor=L.limit-i);else if(L.cursor=L.limit-r,!Q())return!0;return L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,er(),!0}function sr(){var r,i,e=L.limit-L.cursor;if(L.ket=L.cursor,Q())return L.bra=L.cursor,L.slice_del(),void er();if(L.cursor=L.limit-e,L.ket=L.cursor,A()&&L.find_among_b(d,2)&&T())if(L.bra=L.cursor,L.slice_del(),r=L.limit-L.cursor,L.ket=L.cursor,G())L.bra=L.cursor,L.slice_del();else{if(L.cursor=L.limit-r,L.ket=L.cursor,!B()&&(L.cursor=L.limit-r,!D())){if(L.cursor=L.limit-r,L.ket=L.cursor,!Q())return;if(L.bra=L.cursor,L.slice_del(),!er())return}L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())}else if(L.cursor=L.limit-e,!nr(e)&&(L.cursor=L.limit-e,!tr(e))){if(L.cursor=L.limit-e,L.ket=L.cursor,A()&&L.find_among_b(l,4))return L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,i=L.limit-L.cursor,void(B()?(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())):(L.cursor=L.limit-i,Q()?(L.bra=L.cursor,L.slice_del()):L.cursor=L.limit-i,er()));if(L.cursor=L.limit-e,!ur()){if(L.cursor=L.limit-e,G())return L.bra=L.cursor,void L.slice_del();L.cursor=L.limit-e,er()||(L.cursor=L.limit-e,or()||(L.cursor=L.limit-e,L.ket=L.cursor,(B()||(L.cursor=L.limit-e,D()))&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er()))))}}}function cr(r,i,e){if(L.cursor=L.limit-r,function(){for(;;){var r=L.limit-L.cursor;if(L.in_grouping_b(C,97,305)){L.cursor=L.limit-r;break}if(L.cursor=L.limit-r,L.cursor<=L.limit_backward)return!1;L.cursor--}return!0}()){var n=L.limit-L.cursor;if(!L.eq_s_b(1,i)&&(L.cursor=L.limit-n,!L.eq_s_b(1,e)))return!0;L.cursor=L.limit-r;var t=L.cursor;return L.insert(L.cursor,L.cursor,e),L.cursor=t,!1}return!0}function lr(r,i,e){for(;!L.eq_s(i,e);){if(L.cursor>=L.limit)return!0;L.cursor++}return i!=L.limit||(L.cursor=r,!1)}function ar(){var r,i,e=L.cursor;return!(!lr(r=L.cursor,2,"ad")||!lr(L.cursor=r,5,"soyad"))&&(L.limit_backward=e,L.cursor=L.limit,i=L.limit-L.cursor,(L.eq_s_b(1,"d")||(L.cursor=L.limit-i,L.eq_s_b(1,"g")))&&cr(i,"a","ı")&&cr(i,"e","i")&&cr(i,"o","u")&&cr(i,"ö","ü"),L.cursor=L.limit,function(){var r;if(L.ket=L.cursor,r=L.find_among_b(q,4))switch(L.bra=L.cursor,r){case 1:L.slice_from("p");break;case 2:L.slice_from("ç");break;case 3:L.slice_from("t");break;case 4:L.slice_from("k")}}(),!0)}this.setCurrent=function(r){L.setCurrent(r)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){return!!(function(){for(var r,i=L.cursor,e=2;;){for(r=L.cursor;!L.in_grouping(C,97,305);){if(L.cursor>=L.limit)return L.cursor=r,!(0e&&(this._events[n].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[n].length),"function"==typeof console.trace&&console.trace()));return this},r.prototype.once=function(n,t){if(!a(t))throw TypeError("listener must be a function");var e=!1;function r(){this.removeListener(n,r),e||(e=!0,t.apply(this,arguments))}return r.listener=t,this.on(n,r),this},r.prototype.removeListener=function(n,t){var e,r,i,o;if(!a(t))throw TypeError("listener must be a function");if(!this._events||!this._events[n])return this;if(i=(e=this._events[n]).length,r=-1,e===t||a(e.listener)&&e.listener===t)delete this._events[n],this._events.removeListener&&this.emit("removeListener",n,t);else if(c(e)){for(o=i;0this.maxLength)return i();if(!this.stat&&p(this.cache,o)){var t=this.cache[o];if(Array.isArray(t)&&(t="DIR"),!n||"DIR"===t)return i(null,t);if(n&&"FILE"===t)return i()}var e=this.statCache[o];if(void 0!==e){if(!1===e)return i(null,e);var s=e.isDirectory()?"DIR":"FILE";return n&&"FILE"===s?i():i(null,s,e)}var a=this,c=d("stat\0"+o,function(n,e){{if(e&&e.isSymbolicLink())return u.stat(o,function(n,t){n?a._stat2(r,o,null,e,i):a._stat2(r,o,n,t,i)});a._stat2(r,o,n,e,i)}});c&&u.lstat(o,c)},b.prototype._stat2=function(n,t,e,r,i){if(e)return this.statCache[t]=!1,i();var o="/"===n.slice(-1);if(this.statCache[t]=r,"/"===t.slice(-1)&&!r.isDirectory())return i(null,!1,r);var s=r.isDirectory()?"DIR":"FILE";return this.cache[t]=this.cache[t]||s,o&&"DIR"!==s?i():i(null,s,r)}}).call(this,_("_process"))},{"./common.js":15,"./sync.js":17,_process:24,assert:9,events:14,fs:12,inflight:18,inherits:19,minimatch:20,once:21,path:22,"path-is-absolute":23,util:28}],17:[function(e,r,n){(function(i){(r.exports=n).GlobSync=h;var s=e("fs"),c=e("minimatch"),g=(c.Minimatch,e("./glob.js").Glob,e("util"),e("path")),u=e("assert"),l=e("path-is-absolute"),t=e("./common.js"),o=(t.alphasort,t.alphasorti,t.setopts),a=t.ownProp,f=t.childrenIgnored;function n(n,t){if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");return new h(n,t).found}function h(n,t){if(!n)throw new Error("must provide pattern");if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof h))return new h(n,t);if(o(this,n,t),this.noprocess)return this;var e=this.minimatch.set.length;this.matches=new Array(e);for(var r=0;rthis.maxLength)return!1;if(!this.stat&&a(this.cache,t)){var r=this.cache[t];if(Array.isArray(r)&&(r="DIR"),!e||"DIR"===r)return r;if(e&&"FILE"===r)return!1}var i=this.statCache[t];if(!i){var o;try{o=s.lstatSync(t)}catch(n){return!1}if(o.isSymbolicLink())try{i=s.statSync(t)}catch(n){i=o}else i=o}r=(this.statCache[t]=i).isDirectory()?"DIR":"FILE";return this.cache[t]=this.cache[t]||r,(!e||"DIR"===r)&&r},h.prototype._mark=function(n){return t.mark(this,n)},h.prototype._makeAbs=function(n){return t.makeAbs(this,n)}}).call(this,e("_process"))},{"./common.js":15,"./glob.js":16,_process:24,assert:9,fs:12,minimatch:20,path:22,"path-is-absolute":23,util:28}],18:[function(t,r,n){(function(s){var n=t("wrappy"),a=Object.create(null),e=t("once");r.exports=n(function(n,t){return a[n]?(a[n].push(t),null):(a[n]=[t],o=n,e(function n(){var t=a[o],e=t.length,r=function(n){for(var t=n.length,e=[],r=0;re?(t.splice(0,e),s.nextTick(function(){n.apply(null,r)})):delete a[o]}}));var o})}).call(this,t("_process"))},{_process:24,once:21,wrappy:29}],19:[function(n,t,e){"function"==typeof Object.create?t.exports=function(n,t){n.super_=t,n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(n,t){n.super_=t;var e=function(){};e.prototype=t.prototype,n.prototype=new e,n.prototype.constructor=n}},{}],20:[function(n,t,e){(t.exports=s).Minimatch=i;var u={sep:"/"};try{u=n("path")}catch(n){}var M=s.GLOBSTAR=i.GLOBSTAR={},r=n("brace-expansion"),C={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},P="[^/]",z=P+"*?",B="().*{}+?[]^$\\!".split("").reduce(function(n,t){return n[t]=!0,n},{});var l=/\/+/;function o(t,e){t=t||{},e=e||{};var r={};return Object.keys(e).forEach(function(n){r[n]=e[n]}),Object.keys(t).forEach(function(n){r[n]=t[n]}),r}function s(n,t,e){if("string"!=typeof t)throw new TypeError("glob pattern string required");return e||(e={}),!(!e.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===n:new i(t,e).match(n))}function i(n,t){if(!(this instanceof i))return new i(n,t);if("string"!=typeof n)throw new TypeError("glob pattern string required");t||(t={}),n=n.trim(),"/"!==u.sep&&(n=n.split(u.sep).join("/")),this.options=t,this.set=[],this.pattern=n,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function a(n,t){if(t||(t=this instanceof i?this.options:{}),void 0===(n=void 0===n?this.pattern:n))throw new TypeError("undefined pattern");return t.nobrace||!n.match(/\{.*\}/)?[n]:r(n)}s.filter=function(r,i){return i=i||{},function(n,t,e){return s(n,r,i)}},s.defaults=function(r){if(!r||!Object.keys(r).length)return s;var i=s,n=function(n,t,e){return i.minimatch(n,t,o(r,e))};return n.Minimatch=function(n,t){return new i.Minimatch(n,o(r,t))},n},i.defaults=function(n){return n&&Object.keys(n).length?s.defaults(n).Minimatch:i},i.prototype.debug=function(){},i.prototype.make=function(){if(this._made)return;var n=this.pattern,t=this.options;if(!t.nocomment&&"#"===n.charAt(0))return void(this.comment=!0);if(!n)return void(this.empty=!0);this.parseNegate();var e=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error);this.debug(this.pattern,e),e=this.globParts=e.map(function(n){return n.split(l)}),this.debug(this.pattern,e),e=e.map(function(n,t,e){return n.map(this.parse,this)},this),this.debug(this.pattern,e),e=e.filter(function(n){return-1===n.indexOf(!1)}),this.debug(this.pattern,e),this.set=e},i.prototype.parseNegate=function(){var n=this.pattern,t=!1,e=this.options,r=0;if(e.nonegate)return;for(var i=0,o=n.length;i>> no match, partial?",n,f,t,h),f!==s))}if("string"==typeof u?(c=r.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,c)):(c=l.match(u),this.debug("pattern match",u,l,c)),!c)return!1}if(i===s&&o===a)return!0;if(i===s)return e;if(o===a)return i===s-1&&""===n[i];throw new Error("wtf?")}},{"brace-expansion":11,path:22}],21:[function(n,t,e){var r=n("wrappy");function i(n){var t=function(){return t.called?t.value:(t.called=!0,t.value=n.apply(this,arguments))};return t.called=!1,t}function o(n){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=n.apply(this,arguments)},e=n.name||"Function wrapped with `once`";return t.onceError=e+" shouldn't be called more than once",t.called=!1,t}t.exports=r(i),t.exports.strict=r(o),i.proto=i(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return o(this)},configurable:!0})})},{wrappy:29}],22:[function(n,t,u){(function(i){function o(n,t){for(var e=0,r=n.length-1;0<=r;r--){var i=n[r];"."===i?n.splice(r,1):".."===i?(n.splice(r,1),e++):e&&(n.splice(r,1),e--)}if(t)for(;e--;e)n.unshift("..");return n}var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(n){return t.exec(n).slice(1)};function a(n,t){if(n.filter)return n.filter(t);for(var e=[],r=0;r":">",'"':""","'":"'","`":"`"},D=d.invert(N),F=function(t){var e=function(n){return t[n]},n="(?:"+d.keys(t).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(n){return n=null==n?"":""+n,r.test(n)?n.replace(i,e):n}};d.escape=F(N),d.unescape=F(D),d.result=function(n,t,e){var r=null==n?void 0:n[t];return void 0===r&&(r=e),d.isFunction(r)?r.call(n):r};var M=0;d.uniqueId=function(n){var t=++M+"";return n?n+t:t},d.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var C=/(.)^/,P={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},z=/\\|'|\r|\n|\u2028|\u2029/g,B=function(n){return"\\"+P[n]};d.template=function(o,n,t){!n&&t&&(n=t),n=d.defaults({},n,d.templateSettings);var e=RegExp([(n.escape||C).source,(n.interpolate||C).source,(n.evaluate||C).source].join("|")+"|$","g"),s=0,a="__p+='";o.replace(e,function(n,t,e,r,i){return a+=o.slice(s,i).replace(z,B),s=i+n.length,t?a+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":e?a+="'+\n((__t=("+e+"))==null?'':__t)+\n'":r&&(a+="';\n"+r+"\n__p+='"),n}),a+="';\n",n.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{var r=new Function(n.variable||"obj","_",a)}catch(n){throw n.source=a,n}var i=function(n){return r.call(this,n,d)},c=n.variable||"obj";return i.source="function("+c+"){\n"+a+"}",i},d.chain=function(n){var t=d(n);return t._chain=!0,t};var U=function(n,t){return n._chain?d(t).chain():t};d.mixin=function(e){d.each(d.functions(e),function(n){var t=d[n]=e[n];d.prototype[n]=function(){var n=[this._wrapped];return i.apply(n,arguments),U(this,t.apply(d,n))}})},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=r[t];d.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],U(this,n)}}),d.each(["concat","join","slice"],function(n){var t=r[n];d.prototype[n]=function(){return U(this,t.apply(this._wrapped,arguments))}}),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return""+this._wrapped}}).call(this)},{}],26:[function(n,t,e){arguments[4][19][0].apply(e,arguments)},{dup:19}],27:[function(n,t,e){t.exports=function(n){return n&&"object"==typeof n&&"function"==typeof n.copy&&"function"==typeof n.fill&&"function"==typeof n.readUInt8}},{}],28:[function(h,n,k){(function(r,i){var a=/%[sdj%]/g;k.format=function(n){if(!_(n)){for(var t=[],e=0;e elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.5.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.5 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2020-03-14 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem.namespaceURI, + docElem = ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + return result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px"; + tr.style.height = "1px"; + trChild.style.height = "9px"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( + dataPriv.get( cur, "events" ) || Object.create( null ) + )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script + if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

torchtrtc

+

torchtrtc is a CLI application for using the Torch-TensorRT compiler. It serves as an easy way to compile a +TorchScript Module with Torch-TensorRT from the command-line to quickly check support or as part of +a deployment pipeline. All basic features of the compiler are supported including post training +quantization (though you must already have a calibration cache file to use the PTQ feature). The compiler can +output two formats, either a TorchScript program with the TensorRT engine embedded or +the TensorRT engine itself as a PLAN file.

+

All that is required to run the program after compilation is for C++ linking against libtorchtrt.so +or in Python importing the torch_tensorrt package. All other aspects of using compiled modules are identical +to standard TorchScript. Load with torch.jit.load() and run like you would run any other module.

+
torchtrtc [input_file_path] [output_file_path]
+  [input_specs...] {OPTIONS}
+
+  torchtrtc is a compiler for TorchScript, it will compile and optimize
+  TorchScript programs to run on NVIDIA GPUs using TensorRT
+
+OPTIONS:
+
+    -h, --help                        Display this help menu
+    Verbiosity of the compiler
+      -v, --verbose                     Dumps debugging information about the
+                                        compilation process onto the console
+      -w, --warnings                    Disables warnings generated during
+                                        compilation onto the console (warnings
+                                        are on by default)
+      --i, --info                       Dumps info messages generated during
+                                        compilation onto the console
+    --build-debuggable-engine         Creates a debuggable engine
+    --allow-gpu-fallback              (Only used when targeting DLA
+                                      (device-type)) Lets engine run layers on
+                                      GPU if they are not supported on DLA
+    --require-full-compilation        Require that the model should be fully
+                                      compiled to TensorRT or throw an error
+    --check-method-support=[method_name]
+                                      Check the support for end to end
+                                      compilation of a specified method in the
+                                      TorchScript module
+    --disable-tf32                    Prevent Float32 layers from using the
+                                      TF32 data format
+    --sparse-weights                  Enable sparsity for weights of conv and
+                                      FC layers
+    -p[precision...],
+    --enable-precision=[precision...] (Repeatable) Enabling an operating
+                                      precision for kernels to use when
+                                      building the engine (Int8 requires a
+                                      calibration-cache argument) [ float |
+                                      float32 | f32 | fp32 | half | float16 |
+                                      f16 | fp16 | int8 | i8 | char ]
+                                      (default: float)
+    -d[type], --device-type=[type]    The type of device the engine should be
+                                      built for [ gpu | dla ] (default: gpu)
+    --gpu-id=[gpu_id]                 GPU id if running on multi-GPU platform
+                                      (defaults to 0)
+    --dla-core=[dla_core]             DLACore id if running on available DLA
+                                      (defaults to 0)
+    --engine-capability=[capability]  The type of device the engine should be
+                                      built for [ standard | safety |
+                                      dla_standalone ]
+    --calibration-cache-file=[file_path]
+                                      Path to calibration cache file to use
+                                      for post training quantization
+    --teo=[op_name...],
+    --torch-executed-op=[op_name...]  (Repeatable) Operator in the graph that
+                                      should always be run in PyTorch for
+                                      execution (partial compilation must be
+                                      enabled)
+    --tem=[module_name...],
+    --torch-executed-mod=[module_name...]
+                                      (Repeatable) Module that should always
+                                      be run in Pytorch for execution (partial
+                                      compilation must be enabled)
+    --mbs=[num_ops],
+    --min-block-size=[num_ops]        Minimum number of contiguous TensorRT
+                                      supported ops to compile a subgraph to
+                                      TensorRT
+    --embed-engine                    Whether to treat input file as a
+                                      serialized TensorRT engine and embed it
+                                      into a TorchScript module (device spec
+                                      must be provided)
+    --num-avg-timing-iters=[num_iters]
+                                      Number of averaging timing iterations
+                                      used to select kernels
+    --workspace-size=[workspace_size] Maximum size of workspace given to
+                                      TensorRT
+    --dla-sram-size=[dla_sram_size]   Fast software managed RAM used by DLA
+                                      to communicate within a layer.
+    --dla-local-dram-size=[dla_local_dram_size]  Host RAM used by DLA to share
+                                      intermediate tensor data across operations.
+    --dla-global-dram-size=[dla_global_dram_size] Host RAM used by DLA to store
+                                      weights and metadata for execution
+    --atol=[atol]                     Absolute tolerance threshold for acceptable
+                                      numerical deviation from standard torchscript
+                                      output (default 1e-8)
+    --rtol=[rtol]                     Relative tolerance threshold for acceptable
+                                      numerical deviation from standard torchscript
+                                      output  (default 1e-5)
+    --no-threshold-check              Skip checking threshold compliance
+    --truncate-long-double,
+    --truncate, --truncate-64bit      Truncate weights that are provided in
+                                      64bit to 32bit (Long, Double to Int,
+                                      Float)
+    --save-engine                     Instead of compiling a full a
+                                      TorchScript program, save the created
+                                      engine to the path specified as the
+                                      output path
+    --custom-torch-ops                (repeatable) Shared object/DLL containing custom torch operators
+    --custom-converters               (repeatable) Shared object/DLL containing custom converters
+    input_file_path                   Path to input TorchScript file
+    output_file_path                  Path for compiled TorchScript (or
+                                      TensorRT engine) file
+    input_specs...                    Specs for inputs to engine, can either
+                                      be a single size or a range defined by
+                                      Min, Optimal, Max sizes, e.g.
+                                      "(N,..,C,H,W)"
+                                      "[(MIN_N,..,MIN_C,MIN_H,MIN_W);(OPT_N,..,OPT_C,OPT_H,OPT_W);(MAX_N,..,MAX_C,MAX_H,MAX_W)]".
+                                      Data Type and format can be specified by
+                                      adding an "@" followed by dtype and "%"
+                                      followed by format to the end of the
+                                      shape spec. e.g. "(3, 3, 32,
+                                      32)@f16%NHWC"
+    "--" can be used to terminate flag options and force all following
+    arguments to be treated as positional options
+
+
+

e.g.

+
torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@f16%contiguous" -p f16
+
+
+

To run with custom torch operators +.. code-block:: shell +torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts –custom-torch-ops=<path to custom library> “[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@fp16%contiguous” -p f16

+

To run with custom converters +.. code-block:: shell +torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts –custom-converters=<path to custom library> “[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@fp16%contiguous” -p f16

+
+ + +
+ +
+ + +
+
+ +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/contributors/conversion.html b/docs/v1.1.1/contributors/conversion.html new file mode 100644 index 0000000000..19d1041650 --- /dev/null +++ b/docs/v1.1.1/contributors/conversion.html @@ -0,0 +1,712 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Conversion Phase — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Conversion Phase + + ¶ + +

+

+ Once the graph has be simplified to a form thats easy to convert, we then set up a conversion context +to manage the construction of a TensorRT + + + INetworkDefinition + + + from the blocks nodes. The conversion context +records the set of converted nodes, block inputs and outputs and other information about the conversion +of the graph. This data is then used to help converters link together layers and also hold build time +information like weights required to construct the engine. After the context is created, the block +converter starts iterating through the list of nodes, for each node, the converter will look at its +inputs and assemble an array of resources to pass to the converter. Inputs can be in a couple of states: +

+
    +
  • +

    + The input is a block parameter +

    +
      +
    • +

      + In this case the input should have already been stored in as an IValue in the +conversion context + + + evaluated_value_map + + + . The conversion stage will add the IValue to the list of args for the +converter +

      +
    • +
    +
  • +
  • +

    + The input is an output of a node that has already been converted +

    +
      +
    • +

      + In this case the ITensor of the output has added to the + + + value_tensor_map + + + , +The conversion stage will add the ITensor to the list of args for the converter +

      +
    • +
    +
  • +
  • +

    + The input is from a node that produces a static value +

    +
      +
    • +

      + There are nodes that produce static values, typically used to store parameters for operators, we need to +evaluate these nodes at conversion time to be able to convert a op. The conversion system will look for a node +evaluator in the evaluator registry and run it on the node. The IValue produced will be entered in the +conversion context + + + evaluated_value_map + + + and added to the list of args for the converter. If the node +to be evaluated takes inputs, the conversion stage will recursively resolve dependencies until the final +static value has been evaluated +

      +
    • +
    +
  • +
  • +

    + The input is from a node that has not been converted +

    +
      +
    • +

      + Torch-TensorRT will error out here +

      +
    • +
    +
  • +
+

+ Node Evaluation + + ¶ + +

+

+ There are some nodes that contain static data and are resources for operations. These can be evaluated at +conversion time so that you can use those values when doing node conversion. In theory any node kind can have +a conversion time evaluator as long as it produces a static IValue, This IValue will be stored in the conversion +context so it can be consumed by any node that takes the evaluated node as an input. Common node types are + + + prim::Constant + + + which emits a constant and + + + prim::ListConstruct + + + which makes lists. +

+

+ Node Converters + + ¶ + +

+

+ Node converters map JIT nodes to layers or subgraphs of layers. They then associate outputs from the JIT graph +and the TRT graph together in the conversion context. This allows the conversion stage to assemble the inputs +for the next node. There are some cases where a node produces an output that is not a Tensor but a static result +from a calculation done on inputs which need to be converted first. In this case the converter may associate the outputs in +the + + + evaluated_value_map + + + instead of the + + + value_tensor_map + + + . For more information take a look at: + + + Writing Converters + + +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/contributors/lowering.html b/docs/v1.1.1/contributors/lowering.html new file mode 100644 index 0000000000..37d9f6b5b1 --- /dev/null +++ b/docs/v1.1.1/contributors/lowering.html @@ -0,0 +1,1224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Lowering Phase — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Lowering Phase + + ¶ + +

+

+ The lowering phase is made up out of passes which are operations which map a graph from a high level representation +to a lower level one. Each pass does something specific for instance inlining method calls. The idea is to +significantly reduce what the conversion phase needs to be able to handle when actually mapping to TensorRT. +We aim for closer to 1->1 op conversion vs looking for applicable subgraphs, limiting the number of converters and +reduce the scope of each converter. +

+

+ You can see the effects of each pass by setting the log level to + + + Level::kGraph + + +

+

+ Passes Used + + ¶ + +

+

+ EliminateCommonSubexpression + + ¶ + +

+
+ +
+

+ Removes common subexpressions in the graph +

+

+ Eliminate Dead Code + + ¶ + +

+
+ +
+

+ Dead code elimination will check if a node has side effects and not delete it if it does. +

+

+ Eliminate Exeception Or Pass Pattern + + ¶ + +

+
+ +
+

+ A common pattern in scripted modules are dimension gaurds which will throw execptions if +the input dimension is not what was expected. +

+
+
+
%1013 : bool = aten::ne(%1012, %24) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:248:11
+    = prim::If(%1013) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:248:8
+    block0():
+        = prim::RaiseException(%23) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:249:12
+    -> ()
+    block1():
+    -> ()
+
+
+
+

+ Since we are resolving all of this at compile time and there are no execptions in the TensorRT graph, we just remove it. +

+

+ Eliminate Redundant Gaurds + + ¶ + +

+
+ +
+

+ Eliminate redundant guards for ops whose outputs are fully determined by their inputs i.e. if inputs to such ops are +guarded we are allowed to remove a guard on ops’ outputs +

+

+ Freeze Module + + ¶ + +

+
+ +
+

+ Freeze attributes and inline constants and modules. Propogates constants in the graph. +

+

+ Fuse AddMM Branches + + ¶ + +

+
+ +
+

+ A common pattern in scripted modules is tensors of different dimensions use different constructions for implementing linear layers. We fuse these +different varients into a single one that will get caught by the Unpack AddMM pass. +

+
+
+
%ret : Tensor = prim::If(%622)
+block0():
+  %ret.1 : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3)
+  -> (%ret.1)
+block1():
+  %output.1 : Tensor = aten::matmul(%x9.1, %3677)
+  %output0.1 : Tensor = aten::add_(%output.1, %self.fc.bias, %3)
+  -> (%output0.1)
+
+
+
+

+ We fuse this set of blocks into a graph like this: +

+
+
+
%ret : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3)
+
+
+
+

+ Fuse Linear + + ¶ + +

+
+ +
+

+ Match the + + + aten::linear + + + pattern and fuse it into a single + + + aten::linear + + + This pass fuse the addmm or matmul + add generated by JIT back to linear +

+

+ Fuse Flatten Linear + + ¶ + +

+
+ +
+

+ TensorRT implicity flattens input layers into fully connected layers when they are higher than 1D. So when there is a + + + aten::flatten + + + -> + + + aten::linear + + + pattern we remove the + + + aten::flatten + + + . +

+

+ Lower Graph + + ¶ + +

+
+ +
+

+ Given a graph with of a method which first argument is %self, lower it to a graph where +all attributes accesses are replaced with explicit inputs of the graph +(rather than results of prim::GetAttr executed on %self). Returns a tuple +(graph, parameters) where the last module.parameters.size() inputs to the +graph are the trainable parameters used in this method. The remaining inputs +are the true inputs to the function. +

+

+ Lower Tuples + + ¶ + +

+
+ +
+
    +
  • +

    + + + LowerSimpleTuples + + + : +

    +
  • +
+

+ Removes tuples where TupleConstruct and TupleUnpack are matched but leaves tuples in place across if statements, loops, and as inputs/outputs +

+
    +
  • +

    + + + LowerAllTuples + + + : +

    +
  • +
+

+ Removes _all_ tuples and raises an error if some cannot be removed, this is used by ONNX to ensure there are not tuples before conversion, but will not work on graphs whose inputs contain tuples. +

+

+ Module Fallback + + ¶ + +

+
+ +
+

+ Module fallback consists of two lowering passes that must be run as a pair. The first pass is run before freezing to place delimiters in the graph around modules +that should run in PyTorch. The second pass marks nodes between these delimiters after freezing to signify they should run in PyTorch. +

+
    +
  • +

    + + + NotateModuleForFallback + + +

    +
  • +
+

+ Places delimiting nodes around module calls pre freezing to signify where in the graph nodes should run in PyTorch +

+
    +
  • +

    + + + MarkNodesForFallback + + +

    +
  • +
+

+ Looks for delimiters then marks all nodes between the delimiters to tell partitioning to run them in PyTorch +

+

+ Peephole Optimze + + ¶ + +

+
+ +
+

+ The intent for this optimization pass is to catch all of the small, easy to catch peephole optimizations you might be interested in doing. +

+
+
+ Right now, it does: +
+
+
    +
  • +

    + Eliminate no-op ‘expand’ nodes +

    +
  • +
  • +

    + Simply x.t().t() to x +

    +
  • +
+
+
+

+ Remove Contiguous + + ¶ + +

+
+ +
+

+ Removes contiguous operators since we are doing TensorRT memory is already contiguous. +

+

+ Remove Dropout + + ¶ + +

+
+ +
+

+ Removes dropout operators since we are doing inference. +

+

+ Remove To + + ¶ + +

+
+ +
+

+ Removes + + + aten::to + + + operators that do casting, since TensorRT mangages it itself. It is important that this is one of the last passes run so that +other passes have a change to move required cast operators out of the main namespace. +

+

+ Unpack AddMM + + ¶ + +

+
+ +
+

+ Unpacks + + + aten::addmm + + + into + + + aten::matmul + + + and + + + aten::add_ + + + (with an additional + + + trt::const + + + op to freeze the bias in the TensorRT graph). This lets us reuse the + + + aten::matmul + + + and + + + aten::add_ + + + converters instead of needing a dedicated converter. +

+

+ Unpack LogSoftmax + + ¶ + +

+
+ +
+

+ Unpacks + + + aten::logsoftmax + + + into + + + aten::softmax + + + and + + + aten::log + + + . This lets us reuse the + + + aten::softmax + + + and + + + aten::log + + + converters instead of needing a dedicated converter. +

+

+ Unroll Loops + + ¶ + +

+
+ +
+

+ Unrolls the operations of compatable loops (e.g. sufficently short) so that you only have to go through the loop once. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/contributors/partitioning.html b/docs/v1.1.1/contributors/partitioning.html new file mode 100644 index 0000000000..5c1512cbe0 --- /dev/null +++ b/docs/v1.1.1/contributors/partitioning.html @@ -0,0 +1,550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Partitioning Phase — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Partitioning Phase + + ¶ + +

+

+ The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/contributors/phases.html b/docs/v1.1.1/contributors/phases.html new file mode 100644 index 0000000000..603e72413d --- /dev/null +++ b/docs/v1.1.1/contributors/phases.html @@ -0,0 +1,616 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Compiler Phases — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

+ Compiler Phases + + ¶ + +

+
+
+

+ Lowering + + ¶ + +

+

+ + + Lowering Phase + + +

+

+ The lowering is made up of a set of passes (some from PyTorch and some specific to Torch-TensorRT) +run over the graph IR to map the large PyTorch opset to a reduced opset that is easier to convert to +TensorRT. +

+

+ Partitioning + + ¶ + +

+

+ + + Partitioning Phase + + +

+

+ The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes. +

+

+ Conversion + + ¶ + +

+

+ + + Conversion Phase + + +

+

+ In the conversion phase we traverse the lowered graph and construct an equivalent TensorRT graph. +The conversion phase is made up of three main components, a context to manage compile time data, +a evaluator library which will execute operations that can be resolved at compile time and a converter +library which maps an op from JIT to TensorRT. +

+

+ Compilation and Runtime + + ¶ + +

+

+ + + Deploying Torch-TensorRT Programs + + +

+

+ The final compilation phase constructs a TorchScript program to run the converted TensorRT engine. It +takes a serialized engine and instantiates it within a engine manager, then the compiler will +build out a JIT graph that references this engine and wraps it in a module to return to the user. +When the user executes the module, the JIT program run in the JIT runtime extended by Torch-TensorRT with the data providied from the user. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/contributors/runtime.html b/docs/v1.1.1/contributors/runtime.html new file mode 100644 index 0000000000..c85df80839 --- /dev/null +++ b/docs/v1.1.1/contributors/runtime.html @@ -0,0 +1,753 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Runtime Phase — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Runtime Phase + + ¶ + +

+

+ The Runtime phase is responsible for constructing self standing TorchScript graphs with embedded TensorRT engines and serving as the runtime +when these engines are called. The main interface accepts a serialized TensorRT engine. The execution phase +will deserialize and wrap this engine in a class which maintains a execution context for each engine +and some metadata about its inputs and outputs and is compatable with the TorchScript interpreter so that +it can be moved around and used like other TorchScript IValues. The engine is run by providing it and inputs +to the + + + tensorrt::execute_engine + + + operator which will take the engine and its inputs and return the results of engine exeuction. +

+

+ Background + + ¶ + +

+

+ PyTorch JIT’s runtime is based around a stack machine, all operators pop off arguments from the stack, pass them to +some implementation of the operator then push results back onto the stack. The actual elements of the stack +are + + + torch::jit::IValues + + + , the same type we evaluate in the conversion phase (the realization of the abstract +torch::jit::Value type). +

+

+ TensorRT Engine Executor Op + + ¶ + +

+

+ When the Torch-TensorRT is loaded, it registers an operator in the PyTorch JIT operator library called + + + trt::execute_engine(Tensor[] + + + inputs, + + + __torch__.torch.classes.tensorrt.Engine + + + engine) + + + -> + + + Tensor[] + + + which takes an +instantiated engine and list of inputs. Compiled graphs store this engine in an attribute so that it is portable and serializable. +When the op is called, an instnantiated engine and input tensors are popped off the runtime stack. These inputs are passed into a generic engine execution function which +will run the tensors through the TensorRT engine and return new tensors as results. These tensors are pushed on to the +stack so that the next op whatever it is can use it. +

+

+ Constructing the Resulting Graph + + ¶ + +

+

+ Once the engine is deserialized and instantiated, the compiler will construct a graph that will execute the engine when the module is called. +Here is an example: +

+
+
+
graph(%self_1 : __torch__.torchvision.models.resnet.___torch_mangle_4847.ResNet_trt,
+  %input_0 : Tensor):
+    %1 : __torch__.torch.classes.tensorrt.Engine = prim::GetAttr[name="__torch___torchvision_models_resnet____torch_mangle_4847_ResNet_trt_engine"](%self_1)
+    %3 : Tensor[] = prim::ListConstruct(%input_0)
+    %4 : Tensor[] = trt::execute_engine(%3, %1)
+    %5 : Tensor = prim::ListUnpack(%4)
+return (%5)
+
+
+
+

+ You can see the engine attribute in the graph and the + + + trt::execute_engine + + + op taking a list of input tensors and an engine in +and produces a list of output tensors which is returned. When + + + forward + + + is called on the module this graph is executed, thereby +running the TensorRT engine. +

+

+ In the case of multiple outputs, the compiled graph may repack output tensors into a Tuple to return back to the user. +

+
+
+
graph(%self_1 : __torch__.PyTorch.Detection.SSD.src.model.SSD300_trt,
+  %input_0 : Tensor):
+    %1 : __torch__.torch.classes.tensorrt.Engine = prim::GetAttr[name="__torch___PyTorch_Detection_SSD_src_model_SSD300_trt_engine"](%self_1)
+    %3 : Tensor[] = prim::ListConstruct(%input_0)
+    %4 : Tensor[] = trt::execute_engine(%3, %1)
+    %5 : Tensor, %6 : Tensor = prim::ListUnpack(%4)
+    %7 : (Tensor, Tensor) = prim::TupleConstruct(%5, %6)
+return (%7)
+
+
+
+

+ Serialization and Deserialization + + ¶ + +

+

+ Serialization and deserialization of TensorRT engines embedded in TorchScript graphs are handled by the holder class for the engine and TorchBind. +When a TorchScript module is saved, the pickler will run serilization on the cuda engine and store the serialized engine in the zip file created. +When deserializing, the depickler will call a constructor for the engine holder class with the serialized engine so that it can be set up again for +execution. +

+

+ ABI Versioning and Serialization Format + + ¶ + +

+

+ Torch-TensorRT programs are standard TorchScript with TensorRT engines as objects embedded in the graph. Therefore there is a serialization format +for the TensorRT engines. The format for Torch-TensorRT serialized programs are versioned with an “ABI” version which tells the runtime about runtime compatibility. +

+

+ > Current ABI version is 3 +

+

+ The format is a vector of serialized strings. They encode the following information +

+
    +
  • +

    + ABI Version for the program +

    +
  • +
  • +

    + Name of the TRT engine +

    +
  • +
  • +

    + Device information: Includes the target device the engine was built on, SM capability and other device information. This information is used at deserialization time to select the correct device to run the engine +

    +
  • +
  • +

    + Serialized TensorRT engine +

    +
  • +
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/contributors/system_overview.html b/docs/v1.1.1/contributors/system_overview.html new file mode 100644 index 0000000000..acde91b1c0 --- /dev/null +++ b/docs/v1.1.1/contributors/system_overview.html @@ -0,0 +1,780 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + System Overview — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ System Overview + + ¶ + +

+

+ Torch-TensorRT is primarily a C++ Library with a Python API planned. We use Bazel as our build system and target Linux x86_64 and +Linux aarch64 (only natively) right now. The compiler we use is GCC 7.5.0 and the library is untested with compilers before that +version so there may be compilation errors if you try to use an older compiler. +

+

+ The repository is structured into: +

+
    +
  • +

    + core: Main compiler source code +

    +
  • +
  • +

    + cpp: C++ API +

    +
  • +
  • +

    + tests: tests of the C++ API, the core and converters +

    +
  • +
  • +

    + py: Python API +

    +
  • +
  • +

    + notebooks: Example applications built with Torch-TensorRT +

    +
  • +
  • +

    + docs: Documentation +

    +
  • +
  • +

    + docsrc: Documentation Source +

    +
  • +
  • +

    + third_party: BUILD files for dependency libraries +

    +
  • +
  • +

    + toolchains: Toolchains for different platforms +

    +
  • +
+

+ The C++ API is unstable and subject to change until the library matures, though most work is done under the hood in the core. +

+

+ The core has a couple major parts: The top level compiler interface which coordinates ingesting a module, lowering, +converting and generating a new module and returning it back to the user. There are the three main phases of the +compiler, the lowering phase, the conversion phase, and the execution phase. +

+

+ Compiler Phases + + ¶ + +

+
+
+

+ Lowering + + ¶ + +

+

+ + + Lowering Phase + + +

+

+ The lowering is made up of a set of passes (some from PyTorch and some specific to Torch-TensorRT) +run over the graph IR to map the large PyTorch opset to a reduced opset that is easier to convert to +TensorRT. +

+

+ Partitioning + + ¶ + +

+

+ + + Partitioning Phase + + +

+

+ The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes. +

+

+ Conversion + + ¶ + +

+

+ + + Conversion Phase + + +

+

+ In the conversion phase we traverse the lowered graph and construct an equivalent TensorRT graph. +The conversion phase is made up of three main components, a context to manage compile time data, +a evaluator library which will execute operations that can be resolved at compile time and a converter +library which maps an op from JIT to TensorRT. +

+

+ Compilation and Runtime + + ¶ + +

+

+ + + Deploying Torch-TensorRT Programs + + +

+

+ The final compilation phase constructs a TorchScript program to run the converted TensorRT engine. It +takes a serialized engine and instantiates it within a engine manager, then the compiler will +build out a JIT graph that references this engine and wraps it in a module to return to the user. +When the user executes the module, the JIT program run in the JIT runtime extended by Torch-TensorRT with the data providied from the user. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/contributors/useful_links.html b/docs/v1.1.1/contributors/useful_links.html new file mode 100644 index 0000000000..9670d62f32 --- /dev/null +++ b/docs/v1.1.1/contributors/useful_links.html @@ -0,0 +1,727 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Useful Links for Torch-TensorRT Development — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Useful Links for Torch-TensorRT Development + + ¶ + +

+

+ TensorRT Available Layers and Expected Dimensions + + ¶ + +

+ +

+ TensorRT C++ Documentation + + ¶ + +

+ +

+ TensorRT Python Documentation (Sometimes easier to read) + + ¶ + +

+ +

+ PyTorch Functional API + + ¶ + +

+ +

+ PyTorch native_ops + + ¶ + +

+ +

+ PyTorch IR Documentation + + ¶ + +

+ +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/contributors/writing_converters.html b/docs/v1.1.1/contributors/writing_converters.html new file mode 100644 index 0000000000..25875590a0 --- /dev/null +++ b/docs/v1.1.1/contributors/writing_converters.html @@ -0,0 +1,986 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Writing Converters — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Writing Converters + + ¶ + +

+

+ Background + + ¶ + +

+

+ In the JIT IR, operations are represented as nodes in a graph. A node has inputs and outputs, represented by + + + torch::jit::Values + + + which are typed abstract representation of data flowing into and out of a node. TensorRT represents its graph though the +use of + + + nvinfer1::ILayers + + + and + + + nvinfer1::ITensors + + + which are its analogues to nodes and values. The goal of +converters create new ILayers and subgraphs that do operation specified by the node and associate produced ITensors +and Values together. +

+

+ Converters + + ¶ + +

+

+ Converters should be functions which will use a list of inputs (either + + + nvinfer1::ITensors + + + or + + + torch::jit::IValues + + + ) to +construct an equivalent layer to the LibTorch op. +

+

+ Converters can be registered using the + + + RegisterNodeConversionPatterns + + + helper class where you instantiate a +RegisterNodeConversionPatterns object and call the pattern function on it (like below) which takes a string +which describes the function schema of the op that will cause the converter to be run and a lambda or function +which will do the actual conversion: +

+
+
+

+ Note the pattern function can be chained +

+
+
+
+
+
auto acthardtanh TORCHTRT_UNUSED = RegisterNodeConversionPatterns()
+    .pattern({
+        "aten::hardtanh(Tensor self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor)",
+        [](ConversionCtx* ctx, const torch::jit::Node* n, args& args) -> bool {
+            auto in = args[0].ITensor();
+            auto min = args[1].unwrapToDouble();
+            auto max = args[2].unwrapToDouble();
+
+            auto new_layer = ctx->net->addActivation(*in, nvinfer1::ActivationType::kCLIP);
+            TORCHTRT_CHECK(new_layer, "Unable to create layer for aten::hardtanh");
+
+            new_layer->setAlpha(min);
+            new_layer->setBeta(max);
+
+            new_layer->setName(util::node_info(n).c_str());
+            auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], new_layer->getOutput(0));
+
+            LOG_DEBUG("Output shape: " << out_tensor->getDimensions());
+            return true;
+        }
+    });
+
+
+
+

+ Converter Contract + + ¶ + +

+

+ What is guaranteed to converters + + ¶ + +

+
    +
  1. +

    + In the args there will be an entry for each node input value, either a ITensor or IValue +

    +
  2. +
  3. +

    + Inputs will be provided in order according to the function schema +

    +
  4. +
+

+ Responsibilities of a converter + + ¶ + +

+
    +
  1. +

    + Args must be guaranteed to be a type to unwrap the Arg union without checking, typically input tensor arguments can be expected to be ITensors +

    +
  2. +
  3. +

    + Any weights or static values must guaranteed to be valid until the end of conversion time +

    +
      +
    1. +

      + A helpful tool is the Weights helper class described below +

      +
    2. +
    +
  4. +
  5. +

    + Converters are expected to produce an IValue or ITensor for each output of a node. The compiler will check this and produce warnings if there are Values that don’t have associated ITensors or IValues. +

    +
  6. +
  7. +

    + Outputs must be annotated +

    +
      +
    1. +

      + There must be an association between a JIT nodes output values and the new TRT layers output tensors in the + + + value_tensor_map + + + in the conversion context +

      +
    2. +
    +
  8. +
  9. +

    + Name your layers +

    +
      +
    1. +

      + Its much easier to debug when we can track which layers and nodes correspond with each other. The system we are currently using is to use the “node info” of the node as the name of the layer +

      +
    2. +
    +
  10. +
  11. +

    + Name your tensors +

    +
      +
    1. +

      + Use the output value debug name as the name for the new ITensor (again for debugging) +

      +
    2. +
    +
  12. +
+

+ Conversion Context + + ¶ + +

+

+ The conversion context maintains the state of conversion, it manages the Network Definition, two maps +one that stores associations between Values and IValues (the evaluated_value_map) and one that stores +associations between Values and ITensors, and any sort of memory that needs to live until the end of +conversion. The main apis that you will interface with in converters is directly accessing the network +definition to add layers + + + ctx->net + + + and data association functions + + + ctx->AssociateValueAndTensor() + + + and + + + ctx->AssociateValueAndIValue() + + + , which you will use to add layers to the TRT layers and log +pairs of node outputs and static values or TensorRT layer outputs. +

+

+ Args + + ¶ + +

+

+ Arguments provided to the converter are inspectable unions of + + + nvinfer1::ITensors + + + and + + + torch::jit::IValues + + + (i.e. +abstract dataflow in the TensorRT graph and static values). You are guaranteed that you will have some +argument for each input value for the node. They are provided in the order of the function schema. +It can be expected that inputs (meaning the parameters that would be passed into the forward +function of a module in PyTorch) will be ITensors but the Arg class also has mechanisms to inspect arguments safely +before unwrapping if you are unsure. Args also have deep unwrap methods that let you get straight to the +underlying data in an IValue if you know it’s safe. You can also pass in a fallback value if there is a +chance the IValue is None. IValues have been extended to be able to hold a wrapper around ITensors only in the case of TensorLists. +You can get an ITensor from an IValue by a pattern similar to this: + + + ivalue.toCustomClass<TensorContainer>()->tensor() + + + . +You can tell if an IValue contains a Tensor or an ITensor by using + + + ivalue.isTensor() + + + or + + + ivalue.isCustomClass() + + + . +

+

+ Weights + + ¶ + +

+

+ Weights are used during build time, so any weights need to be guaranteed to live until the end of the conversion phase. +TensorRT also uses its own weights structure to hold the weights. There is a wrapper around this class available +to converts which abstracts a lot of this. +

+

+ The weights wrapper class can accept either + + + at::Tensors + + + or singular values (right now). You also need to pass the +conversion context when constructing these weights because internally the weights class will allocate memory managed +by the conversion context to store a copy of the tensor data. This data gets freed when the conversion context +destructor gets destroyed so converters don’t really need to think about it. +

+

+ There is metadata generated from the shape of the input data which becomes useful in interfacing with TensorRT, such +as number of input maps, number of output maps and kernel shape. +

+

+ Other advice + + ¶ + +

+

+ You have the benefit of the full aten library when dealing with weights and other static values. This means that you +can do quite a bit of work during conversion time to produce efficient conversion. A good example is batch_norm +converter where the converter does fusion of operations with PyTorch before creating the TensorRT layer. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/genindex.html b/docs/v1.1.1/genindex.html new file mode 100644 index 0000000000..6057580262 --- /dev/null +++ b/docs/v1.1.1/genindex.html @@ -0,0 +1,1371 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Index — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

+ Index +

+ +

+ D +

+ + + + +
+ +
+

+ P +

+ + + + +
+ +
+

+ R +

+ + + + + +
+ + + +
+

+ S +

+ + + + +
+ +
+

+ T +

+ + + + + +
+ + + +
+

+ W +

+ + + + +
+ +
+

+ X +

+ + + + +
+ +
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/getting_started/getting_started_with_cpp_api.html b/docs/v1.1.1/getting_started/getting_started_with_cpp_api.html new file mode 100644 index 0000000000..a0135d5aa7 --- /dev/null +++ b/docs/v1.1.1/getting_started/getting_started_with_cpp_api.html @@ -0,0 +1,935 @@ + + + + + + + + + + + + + Using Torch-TensorRT in C++ — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Using Torch-TensorRT in C++
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Using Torch-TensorRT in C++

+

If you haven’t already, acquire a tarball of the library by following the instructions in Installation

+
+

Using Torch-TensorRT in C++

+

Torch-TensorRT C++ API accepts TorchScript modules (generated either from torch.jit.script or torch.jit.trace) as an input and returns +a Torchscript module (optimized using TensorRT). This requires users to use Pytorch (in python) to generate torchscript modules beforehand. +Please refer to Creating TorchScript modules in Python section to generate torchscript graphs.

+
+

[Torch-TensorRT Quickstart] Compiling TorchScript Modules with torchtrtc

+

An easy way to get started with Torch-TensorRT and to check if your model can be supported without extra work is to run it through +torchtrtc, which supports almost all features of the compiler from the command line including post training quantization +(given a previously created calibration cache). For example we can compile our lenet model by setting our preferred operating +precision and input size. This new TorchScript file can be loaded into Python (note: you need to import torch_tensorrt before loading +these compiled modules because the compiler extends the PyTorch the deserializer and runtime to execute compiled modules).

+
❯ torchtrtc -p f16 lenet_scripted.ts trt_lenet_scripted.ts "(1,1,32,32)"
+
+❯ python3
+Python 3.6.9 (default, Apr 18 2020, 01:56:04)
+[GCC 8.4.0] on linux
+Type "help", "copyright", "credits" or "license" for more information.
+>>> import torch
+>>> import torch_tensorrt
+>>> ts_model = torch.jit.load(“trt_lenet_scripted.ts”)
+>>> ts_model(torch.randn((1,1,32,32)).to(“cuda”).half())
+
+
+

You can learn more about torchtrtc usage here: torchtrtc

+
+
+

Working with TorchScript in C++

+

If we are developing an application to deploy with C++, we can save either our traced or scripted module using torch.jit.save +which will serialize the TorchScript code, weights and other information into a package. This is also where our dependency on Python ends.

+
torch_script_module.save("lenet.jit.pt")
+
+
+

From here we can now load our TorchScript module in C++

+
#include <torch/script.h> // One-stop header.
+
+#include <iostream>
+#include <memory>
+
+int main(int argc, const char* argv[]) {
+    torch::jit::Module module;
+    try {
+        // Deserialize the ScriptModule from a file using torch::jit::load().
+        module = torch::jit::load("<PATH TO SAVED TS MOD>");
+    }
+    catch (const c10::Error& e) {
+        std::cerr << "error loading the model\n";
+        return -1;
+    }
+
+    std::cout << "ok\n";
+
+
+

You can do full training and inference in C++ with PyTorch / LibTorch if you would like, you can even define your modules in C++ and +have access to the same powerful tensor library that backs PyTorch. (For more information: https://pytorch.org/cppdocs/). +For instance we can do inference with our LeNet module like this:

+
mod.eval();
+torch::Tensor in = torch::randn({1, 1, 32, 32});
+auto out = mod.forward(in);
+
+
+

and to run on the GPU:

+
mod.eval();
+mod.to(torch::kCUDA);
+torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA);
+auto out = mod.forward(in);
+
+
+

As you can see it is pretty similar to the Python API. When you call the forward method, you invoke the PyTorch JIT compiler, which will optimize and run your TorchScript code.

+
+
+

Compiling with Torch-TensorRT in C++

+

We are also at the point were we can compile and optimize our module with Torch-TensorRT, but instead of in a JIT fashion we must do it ahead-of-time (AOT) i.e. before we start doing actual inference work +since it takes a bit of time to optimize the module, it would not make sense to do this every time you run the module or even the first time you run it.

+

With our module loaded, we can feed it into the Torch-TensorRT compiler. When we do so we must provide some information on the expected input size and also configure any additional settings.

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA});
+    auto trt_mod = torch_tensorrt::CompileGraph(mod, std::vector<torch_tensorrt::CompileSpec::InputRange>{{in.sizes()}});
+    auto out = trt_mod.forward({in});
+
+
+

Thats it! Now the graph runs primarily not with the JIT compiler but using TensorRT (though we execute the graph using the JIT runtime).

+

We can also set settings like operating precision to run in FP16.

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF);
+    auto input_sizes = std::vector<torch_tensorrt::CompileSpec::InputRange>({in.sizes()});
+    torch_tensorrt::CompileSpec info(input_sizes);
+    info.enable_precisions.insert(torch::kHALF);
+    auto trt_mod = torch_tensorrt::CompileGraph(mod, info);
+    auto out = trt_mod.forward({in});
+
+
+

And now we are running the module in FP16 precision. You can then save the module to load later.

+
trt_mod.save("<PATH TO SAVED TRT/TS MOD>")
+
+
+

Torch-TensorRT compiled TorchScript modules are loaded in the same way as normal TorchScript module. Make sure your deployment application is linked against libtorchtrt.so

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+
+int main(int argc, const char* argv[]) {
+    torch::jit::Module module;
+    try {
+        // Deserialize the ScriptModule from a file using torch::jit::load().
+        module = torch::jit::load("<PATH TO SAVED TRT/TS MOD>");
+    }
+    catch (const c10::Error& e) {
+        std::cerr << "error loading the model\n";
+        return -1;
+    }
+
+    torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA);
+    auto out = mod.forward(in);
+
+    std::cout << "ok\n";
+}
+
+
+

If you want to save the engine produced by Torch-TensorRT to use in a TensorRT application you can use the ConvertGraphToTRTEngine API.

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF);
+    auto input_sizes = std::vector<torch_tensorrt::CompileSpec::InputRange>({in.sizes()});
+    torch_tensorrt::CompileSpec info(input_sizes);
+    info.enabled_precisions.insert(torch::kHALF);
+    auto trt_mod = torch_tensorrt::ConvertGraphToTRTEngine(mod, "forward", info);
+    std::ofstream out("/tmp/engine_converted_from_jit.trt");
+    out << engine;
+    out.close();
+
+
+
+
+

Under The Hood

+

When a module is provided to Torch-TensorRT, the compiler starts by mapping a graph like you saw above to a graph like this:

+
graph(%input.2 : Tensor):
+    %2 : Float(84, 10) = prim::Constant[value=<Tensor>]()
+    %3 : Float(120, 84) = prim::Constant[value=<Tensor>]()
+    %4 : Float(576, 120) = prim::Constant[value=<Tensor>]()
+    %5 : int = prim::Constant[value=-1]() # x.py:25:0
+    %6 : int[] = prim::Constant[value=annotate(List[int], [])]()
+    %7 : int[] = prim::Constant[value=[2, 2]]()
+    %8 : int[] = prim::Constant[value=[0, 0]]()
+    %9 : int[] = prim::Constant[value=[1, 1]]()
+    %10 : bool = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %11 : int = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %12 : bool = prim::Constant[value=0]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %self.classifer.fc3.bias : Float(10) = prim::Constant[value= 0.0464  0.0383  0.0678  0.0932  0.1045 -0.0805 -0.0435 -0.0818  0.0208 -0.0358 [ CUDAFloatType{10} ]]()
+    %self.classifer.fc2.bias : Float(84) = prim::Constant[value=<Tensor>]()
+    %self.classifer.fc1.bias : Float(120) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv2.weight : Float(16, 6, 3, 3) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv2.bias : Float(16) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv1.weight : Float(6, 1, 3, 3) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv1.bias : Float(6) = prim::Constant[value= 0.0530 -0.1691  0.2802  0.1502  0.1056 -0.1549 [ CUDAFloatType{6} ]]()
+    %input0.4 : Tensor = aten::_convolution(%input.2, %self.feat.conv1.weight, %self.feat.conv1.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %input0.5 : Tensor = aten::relu(%input0.4) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %input1.2 : Tensor = aten::max_pool2d(%input0.5, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %input0.6 : Tensor = aten::_convolution(%input1.2, %self.feat.conv2.weight, %self.feat.conv2.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %input2.1 : Tensor = aten::relu(%input0.6) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %x.1 : Tensor = aten::max_pool2d(%input2.1, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0
+    %27 : Tensor = aten::matmul(%input.1, %4)
+    %28 : Tensor = trt::const(%self.classifer.fc1.bias)
+    %29 : Tensor = aten::add_(%28, %27, %11)
+    %input0.2 : Tensor = aten::relu(%29) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %31 : Tensor = aten::matmul(%input0.2, %3)
+    %32 : Tensor = trt::const(%self.classifer.fc2.bias)
+    %33 : Tensor = aten::add_(%32, %31, %11)
+    %input1.1 : Tensor = aten::relu(%33) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %35 : Tensor = aten::matmul(%input1.1, %2)
+    %36 : Tensor = trt::const(%self.classifer.fc3.bias)
+    %37 : Tensor = aten::add_(%36, %35, %11)
+    return (%37)
+(CompileGraph)
+
+
+

The graph has now been transformed from a collection of modules, each managing their own parameters into a single graph with the parameters inlined +into the graph and all of the operations laid out. Torch-TensorRT has also executed a number of optimizations and mappings to make the graph easier to translate to TensorRT. +From here the compiler can assemble the TensorRT engine by following the dataflow through the graph.

+

When the graph construction phase is complete, Torch-TensorRT produces a serialized TensorRT engine. From here depending on the API, this engine is returned +to the user or moves into the graph construction phase. Here Torch-TensorRT creates a JIT Module to execute the TensorRT engine which will be instantiated and managed +by the Torch-TensorRT runtime.

+

Here is the graph that you get back after compilation is complete:

+
graph(%self_1 : __torch__.lenet, %input_0 : Tensor):
+    %1 : ...trt.Engine = prim::GetAttr[name="lenet"](%self_1)
+    %3 : Tensor[] = prim::ListConstruct(%input_0)
+    %4 : Tensor[] = trt::execute_engine(%3, %1)
+    %5 : Tensor = prim::ListUnpack(%4)
+    return (%5)
+
+
+

You can see the call where the engine is executed, after extracting the attribute containing the engine and constructing a list of inputs, then returns the tensors back to the user.

+
+
+

Working with Unsupported Operators

+

Torch-TensorRT is a new library and the PyTorch operator library is quite large, so there will be ops that aren’t supported natively by the compiler. You can either use the composition techinques +shown above to make modules are fully Torch-TensorRT supported and ones that are not and stitch the modules together in the deployment application or you can register converters for missing ops.

+
+

You can check support without going through the full compilation pipleine using the torch_tensorrt::CheckMethodOperatorSupport(const torch::jit::Module& module, std::string method_name) api +to see what operators are not supported. torchtrtc automatically checks modules with this method before starting compilation and will print out a list of operators that are not supported.

+
+
+

Registering Custom Converters

+

Operations are mapped to TensorRT through the use of modular converters, a function that takes a node from a the JIT graph and produces an equivalent layer or subgraph in TensorRT. +Torch-TensorRT ships with a library of these converters stored in a registry, that will be executed depending on the node being parsed. For instance a aten::relu(%input0.4) instruction will trigger +the relu converter to be run on it, producing an activation layer in the TensorRT graph. But since this library is not exhaustive you may need to write your own to get Torch-TensorRT +to support your module.

+

Shipped with the Torch-TensorRT distribution are the internal core API headers. You can therefore access the converter registry and add a converter for the op you need.

+

For example, if we try to compile a graph with a build of Torch-TensorRT that doesn’t support the flatten operation (aten::flatten) you may see this error:

+
terminate called after throwing an instance of 'torch_tensorrt::Error'
+what():  [enforce fail at core/conversion/conversion.cpp:109] Expected converter to be true but got false
+Unable to convert node: %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 (conversion.AddLayer)
+Schema: aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)
+Converter for aten::flatten requested, but no such converter was found.
+If you need a converter for this operator, you can try implementing one yourself
+or request a converter: https://www.github.com/NVIDIA/Torch-TensorRT/issues
+
+
+

We can register a converter for this operator in our application. All of the tools required to build a converter can be imported by including torch_tensorrt/core/conversion/converters/converters.h. +We start by creating an instance of the self-registering class torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns() which will register converters +in the global converter registry, associating a function schema like aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor) with a lambda that +will take the state of the conversion, the node/operation in question to convert and all of the inputs to the node and produces as a side effect a new layer in the TensorRT network. +Arguments are passed as a vector of inspectable unions of TensorRT ITensors and Torch IValues in the order arguments are listed in the schema.

+

Below is a implementation of a aten::flatten converter that we can use in our application. You have full access to the Torch and TensorRT libraries in the converter implementation. So +for example we can quickly get the output size by just running the operation in PyTorch instead of implementing the full calculation outself like we do below for this flatten converter.

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+#include "torch_tensorrt/core/conversion/converters/converters.h"
+
+static auto flatten_converter = torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns()
+    .pattern({
+        "aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)",
+        [](torch_tensorrt::core::conversion::ConversionCtx* ctx,
+           const torch::jit::Node* n,
+           torch_tensorrt::core::conversion::converters::args& args) -> bool {
+            auto in = args[0].ITensor();
+            auto start_dim = args[1].unwrapToInt();
+            auto end_dim = args[2].unwrapToInt();
+            auto in_shape = torch_tensorrt::core::util::toVec(in->getDimensions());
+            auto out_shape = torch::flatten(torch::rand(in_shape), start_dim, end_dim).sizes();
+
+            auto shuffle = ctx->net->addShuffle(*in);
+            shuffle->setReshapeDimensions(torch_tensorrt::core::util::toDims(out_shape));
+            shuffle->setName(torch_tensorrt::core::util::node_info(n).c_str());
+
+            auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], shuffle->getOutput(0));
+            return true;
+        }
+    });
+
+int main() {
+    ...
+
+
+

To use this converter in Python, it is recommended to use PyTorch’s C++ / CUDA Extention +template to wrap your library of converters into a .so that you can load with ctypes.CDLL() in your Python application.

+

You can find more information on all the details of writing converters in the contributors documentation (Writing Converters). +If you find yourself with a large library of converter implementations, do consider upstreaming them, PRs are welcome and it would be great for the community to benefit as well.

+
+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/getting_started/getting_started_with_python_api.html b/docs/v1.1.1/getting_started/getting_started_with_python_api.html new file mode 100644 index 0000000000..cc8cf46689 --- /dev/null +++ b/docs/v1.1.1/getting_started/getting_started_with_python_api.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + Using Torch-TensorRT in Python — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Using Torch-TensorRT in Python
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Using Torch-TensorRT in Python

+

The Torch-TensorRT Python API supports a number of unique usecases compared to the CLI and C++ APIs which solely support TorchScript compilation.

+

Torch-TensorRT Python API can accept a torch.nn.Module, torch.jit.ScriptModule, or torch.fx.GraphModule as an input. +Depending on what is provided one of the two frontends (TorchScript or FX) will be selected to compile the module. Provided the +module type is supported, users may explicitly set which frontend they would like to use using the ir flag for compile. +If given a torch.nn.Module and the ir flag is set to either default or torchscript the module will be run through +torch.jit.script to convert the input module into a TorchScript module.

+

To compile your input torch.nn.Module with Torch-TensorRT, all you need to do is provide the module and inputs +to Torch-TensorRT and you will be returned an optimized TorchScript module to run or add into another PyTorch module. Inputs +is a list of torch_tensorrt.Input classes which define input’s shape, datatype and memory format. You can also specify settings such as +operating precision for the engine or target device. After compilation you can save the module just like any other module +to load in a deployment application. In order to load a TensorRT/TorchScript module, make sure you first import torch_tensorrt.

+
import torch_tensorrt
+
+...
+
+model = MyModel().eval()  # torch module needs to be in eval (not training) mode
+
+inputs = [
+    torch_tensorrt.Input(
+        min_shape=[1, 1, 16, 16],
+        opt_shape=[1, 1, 32, 32],
+        max_shape=[1, 1, 64, 64],
+        dtype=torch.half,
+    )
+]
+enabled_precisions = {torch.float, torch.half}  # Run with fp16
+
+trt_ts_module = torch_tensorrt.compile(
+    model, inputs=inputs, enabled_precisions=enabled_precisions
+)
+
+input_data = input_data.to("cuda").half()
+result = trt_ts_module(input_data)
+torch.jit.save(trt_ts_module, "trt_ts_module.ts")
+
+
+
# Deployment application
+import torch
+import torch_tensorrt
+
+trt_ts_module = torch.jit.load("trt_ts_module.ts")
+input_data = input_data.to("cuda").half()
+result = trt_ts_module(input_data)
+
+
+

Torch-TensorRT Python API also provides torch_tensorrt.ts.compile which accepts a TorchScript module as input and torch_tensorrt.fx.compile which accepts a FX GraphModule as input.

+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/getting_started/installation.html b/docs/v1.1.1/getting_started/installation.html new file mode 100644 index 0000000000..90bd35442f --- /dev/null +++ b/docs/v1.1.1/getting_started/installation.html @@ -0,0 +1,1012 @@ + + + + + + + + + + + + + Installation — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Installation

+
+

Precompiled Binaries

+
+

Dependencies

+

You need to have either PyTorch or LibTorch installed based on if you are using Python or C++ +and you must have CUDA, cuDNN and TensorRT installed.

+
+
+
+
+

Python Package

+

You can install the python package using

+
pip3 install torch-tensorrt -f https://github.com/pytorch/TensorRT/releases
+
+
+
+
+

C++ Binary Distribution

+

Precompiled tarballs for releases are provided here: https://github.com/pytorch/TensorRT/releases

+
+
+
+

Compiling From Source

+
+

Dependencies for Compilation

+

Torch-TensorRT is built with Bazel, so begin by installing it.

+
+
+
export BAZEL_VERSION=$(cat <PATH_TO_TORCHTRT_ROOT>/.bazelversion)
+mkdir bazel
+cd bazel
+curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-dist.zip
+unzip bazel-$BAZEL_VERSION-dist.zip
+bash ./compile.sh
+cp output/bazel /usr/local/bin/
+
+
+
+

You will also need to have CUDA installed on the system (or if running in a container, the system must have +the CUDA driver installed and the container must have CUDA)

+

The correct LibTorch version will be pulled down for you by bazel.

+
+

NOTE: For best compatability with official PyTorch, use torch==1.10.0+cuda113, TensorRT 8.0 and cuDNN 8.2 for CUDA 11.3 however Torch-TensorRT itself supports +TensorRT and cuDNN for other CUDA versions for usecases such as using NVIDIA compiled distributions of PyTorch that use other versions of CUDA +e.g. aarch64 or custom compiled version of PyTorch.

+
+
+

Choosing the Right ABI

+

Likely the most complicated thing about compiling Torch-TensorRT is selecting the correct ABI. There are two options +which are incompatible with each other, pre-cxx11-abi and the cxx11-abi. The complexity comes from the fact that while +the most popular distribution of PyTorch (wheels downloaded from pytorch.org/pypi directly) use the pre-cxx11-abi, most +other distributions you might encounter (e.g. ones from NVIDIA - NGC containers, and builds for Jetson as well as certain +libtorch builds and likely if you build PyTorch from source) use the cxx11-abi. It is important you compile Torch-TensorRT +using the correct ABI to function properly. Below is a table with general pairings of PyTorch distribution sources and the +recommended commands:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

PyTorch Source

Recommended C++ Compilation Command

Recommended Python Compilation Command

PyTorch whl file from PyTorch.org

bazel build //:libtorchtrt -c opt –config pre_cxx11_abi

python3 setup.py bdist_wheel

libtorch-shared-with-deps-*.zip from PyTorch.org

bazel build //:libtorchtrt -c opt –config pre_cxx11_abi

python3 setup.py bdist_wheel

libtorch-cxx11-abi-shared-with-deps-*.zip from PyTorch.org

bazel build //:libtorchtrt -c opt

python3 setup.py bdist_wheel –use-cxx11-abi

PyTorch preinstalled in an NGC container

bazel build //:libtorchtrt -c opt

python3 setup.py bdist_wheel –use-cxx11-abi

PyTorch from the NVIDIA Forums for Jetson

bazel build //:libtorchtrt -c opt

python3 setup.py bdist_wheel –jetpack-version 4.6 –use-cxx11-abi

PyTorch built from Source

bazel build //:libtorchtrt -c opt

python3 setup.py bdist_wheel –use-cxx11-abi

+
+

NOTE: For all of the above cases you must correctly declare the source of PyTorch you intend to use in your WORKSPACE file for both Python and C++ builds. See below for more information

+
+

You then have two compilation options:

+
+
+
+

Building using cuDNN & TensorRT tarball distributions

+
+

This is recommended so as to build Torch-TensorRT hermetically and insures any compilation errors are not caused by version issues

+

Make sure when running Torch-TensorRT that these versions of the libraries are prioritized in your $LD_LIBRARY_PATH

+
+
+
You need to download the tarball distributions of TensorRT and cuDNN from the NVIDIA website.
+
+
+

Place these files in a directory (the directories third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] exist for this purpose)

+

Then compile referencing the directory with the tarballs

+
+

If you get errors regarding the packages, check their sha256 hashes and make sure they match the ones listed in WORKSPACE

+
+
+

Release Build

+
bazel build //:libtorchtrt -c opt --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+

Debug Build

+

To build with debug symbols use the following command

+
bazel build //:libtorchtrt -c dbg --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+

Pre CXX11 ABI Build

+

To build using the pre-CXX11 ABI use the pre_cxx11_abi config

+
bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+
+

Building using locally installed cuDNN & TensorRT

+
+

If you encounter bugs and you compiled using this method please disclose that you used local sources in the issue (an ldd dump would be nice too)

+
+

Install TensorRT, CUDA and cuDNN on the system before starting to compile.

+

In WORKSPACE comment out:

+
# Downloaded distributions to use with --distdir
+http_archive(
+    name="cudnn",
+    urls=[
+        "<URL>",
+    ],
+    build_file="@//third_party/cudnn/archive:BUILD",
+    sha256="<TAR SHA256>",
+    strip_prefix="cuda",
+)
+
+http_archive(
+    name="tensorrt",
+    urls=[
+        "<URL>",
+    ],
+    build_file="@//third_party/tensorrt/archive:BUILD",
+    sha256="<TAR SHA256>",
+    strip_prefix="TensorRT-<VERSION>",
+)
+
+
+

and uncomment

+
# Locally installed dependencies
+new_local_repository(
+    name="cudnn", path="/usr/", build_file="@//third_party/cudnn/local:BUILD"
+)
+
+new_local_repository(
+    name="tensorrt", path="/usr/", build_file="@//third_party/tensorrt/local:BUILD"
+)
+
+
+
+

Release Build

+

Compile using:

+
bazel build //:libtorchtrt -c opt
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+

Debug Build

+

To build with debug symbols use the following command

+
bazel build //:libtorchtrt -c dbg
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+

Pre CXX11 ABI Build

+

To build using the pre-CXX11 ABI use the pre_cxx11_abi config

+
bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt]
+
+
+
+
+
+

Building with CMake

+

It is possible to build the API libraries (in cpp/) and the torchtrtc executable using CMake instead of Bazel. +Currently, the python API and the tests cannot be built with CMake. +Begin by installing CMake.

+
+
    +
  • Latest releases of CMake and instructions on how to install are available for different platforms +[on their website](https://cmake.org/download/).

  • +
+
+

A few useful CMake options include:

+
+
    +
  • CMake finders for TensorRT and cuDNN are provided in cmake/Modules. In order for CMake to use them, pass +-DCMAKE_MODULE_PATH=cmake/Modules when configuring the project with CMake.

  • +
  • Libtorch provides its own CMake finder. In case CMake doesn’t find it, pass the path to your install of +libtorch with -DTorch_DIR=<path to libtorch>/share/cmake/Torch

  • +
  • If TensorRT is not found with the provided cmake finder, specify -DTensorRT_ROOT=<path to TensorRT>

  • +
  • Finally, configure and build the project in a build directory of your choice with the following command +from the root of Torch-TensorRT project:

  • +
+
cmake -S. -B<build directory> \
+    [-DCMAKE_MODULE_PATH=cmake/Module] \
+    [-DTorch_DIR=<path to libtorch>/share/cmake/Torch] \
+    [-DTensorRT_ROOT=<path to TensorRT>] \
+    [-DCMAKE_BUILD_TYPE=Debug|Release]
+cmake --build <build directory>
+
+
+
+
+
+

Building the Python package

+

Begin by installing ninja

+

You can build the Python package using setup.py (this will also build the correct version of libtorchtrt.so)

+
python3 setup.py [install/bdist_wheel]
+
+
+
+

Debug Build

+
python3 setup.py develop [--user]
+
+
+

This also compiles a debug build of libtorchtrt.so

+
+
+
+

Building Natively on aarch64 (Jetson)

+
+

Prerequisites

+

Install or compile a build of PyTorch/LibTorch for aarch64

+

NVIDIA hosts builds the latest release branch for Jetson here:

+
+
+
+
+

Enviorment Setup

+

To build natively on aarch64-linux-gnu platform, configure the WORKSPACE with local available dependencies.

+
    +
  1. Replace WORKSPACE with the corresponding WORKSPACE file in //toolchains/jp_workspaces

  2. +
  3. Configure the correct paths to directory roots containing local dependencies in the new_local_repository rules:

    +
    +

    NOTE: If you installed PyTorch using a pip package, the correct path is the path to the root of the python torch package. +In the case that you installed with sudo pip install this will be /usr/local/lib/python3.8/dist-packages/torch. +In the case you installed with pip install --user this will be $HOME/.local/lib/python3.8/site-packages/torch.

    +
    +
  4. +
+

In the case you are using NVIDIA compiled pip packages, set the path for both libtorch sources to the same path. This is because unlike +PyTorch on x86_64, NVIDIA aarch64 PyTorch uses the CXX11-ABI. If you compiled for source using the pre_cxx11_abi and only would like to +use that library, set the paths to the same path but when you compile make sure to add the flag --config=pre_cxx11_abi

+
new_local_repository(
+    name = "libtorch",
+    path = "/usr/local/lib/python3.8/dist-packages/torch",
+    build_file = "third_party/libtorch/BUILD"
+)
+
+new_local_repository(
+    name = "libtorch_pre_cxx11_abi",
+    path = "/usr/local/lib/python3.8/dist-packages/torch",
+    build_file = "third_party/libtorch/BUILD"
+)
+
+
+
+
+

Compile C++ Library and Compiler CLI

+
+

NOTE: Due to shifting dependency locations between Jetpack 4.5 and 4.6 there is a now a flag to inform bazel of the Jetpack version

+
--platforms //toolchains:jetpack_x.x
+
+
+
+

Compile Torch-TensorRT library using bazel command:

+
bazel build //:libtorchtrt --platforms //toolchains:jetpack_5.0
+
+
+
+
+

Compile Python API

+
+

NOTE: Due to shifting dependencies locations between Jetpack 4.5 and newer Jetpack verisons there is now a flag for setup.py which sets the jetpack version (default: 5.0)

+
+

Compile the Python API using the following command from the //py directory:

+
python3 setup.py install --use-cxx11-abi
+
+
+

If you have a build of PyTorch that uses Pre-CXX11 ABI drop the --use-cxx11-abi flag

+

If you are building for Jetpack 4.5 add the --jetpack-version 5.0 flag

+
+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/index.html b/docs/v1.1.1/index.html new file mode 100644 index 0000000000..b3f8798fa0 --- /dev/null +++ b/docs/v1.1.1/index.html @@ -0,0 +1,833 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Torch-TensorRT — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

+ Torch-TensorRT + + ¶ + +

+

+ Ahead-of-time compilation of TorchScript / PyTorch JIT for NVIDIA GPUs + + ¶ + +

+

+ Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA’s TensorRT Deep Learning Optimizer and Runtime. +Unlike PyTorch’s Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your +TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting +a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into the JIT runtime seamlessly. +After compilation using the optimized graph should feel no different than running a TorchScript module. +You also have access to TensorRT’s suite of configurations at compile time, so you are able to specify +operating precision (FP32/FP16/INT8) and other settings for your module. +

+

+ More Information / System Architecture: +

+ +

+ Getting Started + + ¶ + +

+ +
+
+
+
+

+ Python API Documenation + + ¶ + +

+ +
+
+

+ C++ API Documenation + + ¶ + +

+ +
+
+

+ Contributor Documentation + + ¶ + +

+ +
+
+

+ Indices + + ¶ + +

+ +
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/indices/supported_ops.html b/docs/v1.1.1/indices/supported_ops.html new file mode 100644 index 0000000000..85e510b93e --- /dev/null +++ b/docs/v1.1.1/indices/supported_ops.html @@ -0,0 +1,2043 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Operators Supported — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Operators Supported + + ¶ + +

+

+ Operators Currently Supported Through Converters + + ¶ + +

+
    +
  • +

    + aten::_convolution(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool benchmark, bool deterministic, bool cudnn_enabled, bool allow_tf32) -> (Tensor) +

    +
  • +
  • +

    + aten::_convolution.deprecated(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool benchmark, bool deterministic, bool cudnn_enabled) -> (Tensor) +

    +
  • +
  • +

    + aten::abs(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::acos(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::acosh(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::adaptive_avg_pool1d(Tensor self, int[1] output_size) -> (Tensor) +

    +
  • +
  • +

    + aten::adaptive_avg_pool2d(Tensor self, int[2] output_size) -> (Tensor) +

    +
  • +
  • +

    + aten::adaptive_avg_pool3d(Tensor self, int[3] output_size) -> (Tensor) +

    +
  • +
  • +

    + aten::adaptive_max_pool1d(Tensor self, int[2] output_size) -> (Tensor, Tensor) +

    +
  • +
  • +

    + aten::adaptive_max_pool2d(Tensor self, int[2] output_size) -> (Tensor, Tensor) +

    +
  • +
  • +

    + aten::adaptive_max_pool3d(Tensor self, int[3] output_size) -> (Tensor, Tensor) +

    +
  • +
  • +

    + aten::add.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) +

    +
  • +
  • +

    + aten::add.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +

    +
  • +
  • +

    + aten:: + + + add_ + + + .Tensor(Tensor(a!) self, Tensor other, + + + * + + + , Scalar alpha=1) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::asin(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::asinh(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::atan(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::atanh(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::avg_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=[0], bool ceil_mode=False, bool count_include_pad=True) -> (Tensor) +

    +
  • +
  • +

    + aten::avg_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=[0, 0], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor) +

    +
  • +
  • +

    + aten::avg_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=[], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor) +

    +
  • +
  • +

    + aten::batch_norm(Tensor input, Tensor? gamma, Tensor? beta, Tensor? mean, Tensor? var, bool training, float momentum, float eps, bool cudnn_enabled) -> (Tensor) +

    +
  • +
  • +

    + aten::bmm(Tensor self, Tensor mat2) -> (Tensor) +

    +
  • +
  • +

    + aten::cat(Tensor[] tensors, int dim=0) -> (Tensor) +

    +
  • +
  • +

    + aten::ceil(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::clamp(Tensor self, Scalar? min=None, Scalar? max=None) -> (Tensor) +

    +
  • +
  • +

    + aten::clamp_max(Tensor self, Scalar max) -> (Tensor) +

    +
  • +
  • +

    + aten::clamp_min(Tensor self, Scalar min) -> (Tensor) +

    +
  • +
  • +

    + aten::constant_pad_nd(Tensor self, int[] pad, Scalar value=0) -> (Tensor) +

    +
  • +
  • +

    + aten::cos(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::cosh(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::cumsum(Tensor self, int dim, + + + * + + + , int? dtype=None) -> (Tensor) +

    +
  • +
  • +

    + aten::div.Scalar(Tensor self, Scalar other) -> (Tensor) +

    +
  • +
  • +

    + aten::div.Tensor(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::div.Tensor_mode(Tensor self, Tensor other, + + + * + + + , str? rounding_mode) -> (Tensor) +

    +
  • +
  • +

    + aten:: + + + div_ + + + .Scalar(Tensor(a!) self, Scalar other) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten:: + + + div_ + + + .Tensor(Tensor(a!) self, Tensor other) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::elu(Tensor self, Scalar alpha=1, Scalar scale=1, Scalar input_scale=1) -> (Tensor) +

    +
  • +
  • +

    + aten::embedding(Tensor weight, Tensor indices, int padding_idx=-1, bool scale_grad_by_freq=False, bool sparse=False) -> (Tensor) +

    +
  • +
  • +

    + aten::eq.Scalar(Tensor self, Scalar other) -> (Tensor) +

    +
  • +
  • +

    + aten::eq.Tensor(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::erf(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::exp(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::expand(Tensor(a) self, int[] size, + + + * + + + , bool implicit=False) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::expand_as(Tensor(a) self, Tensor other) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::fake_quantize_per_channel_affine(Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max) -> (Tensor) +

    +
  • +
  • +

    + aten::fake_quantize_per_tensor_affine(Tensor self, float scale, int zero_point, int quant_min, int quant_max) -> (Tensor) +

    +
  • +
  • +

    + aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor) +

    +
  • +
  • +

    + aten::floor(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::floor_divide(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::floor_divide.Scalar(Tensor self, Scalar other) -> (Tensor) +

    +
  • +
  • +

    + aten::ge.Scalar(Tensor self, Scalar other) -> (Tensor) +

    +
  • +
  • +

    + aten::ge.Tensor(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::gru_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor) +

    +
  • +
  • +

    + aten::gt.Scalar(Tensor self, Scalar other) -> (Tensor) +

    +
  • +
  • +

    + aten::gt.Tensor(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::hardtanh(Tensor self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor) +

    +
  • +
  • +

    + aten::hardtanh_(Tensor(a!) self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::index.Tensor(Tensor self, Tensor?[] indices) -> (Tensor) +

    +
  • +
  • +

    + aten::instance_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool use_input_stats, float momentum, float eps, bool cudnn_enabled) -> (Tensor) +

    +
  • +
  • +

    + aten::layer_norm(Tensor input, int[] normalized_shape, Tensor? gamma, Tensor? beta, float eps, bool cudnn_enabled) -> (Tensor) +

    +
  • +
  • +

    + aten::le.Scalar(Tensor self, Scalar other) -> (Tensor) +

    +
  • +
  • +

    + aten::le.Tensor(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::leaky_relu(Tensor self, Scalar negative_slope=0.01) -> (Tensor) +

    +
  • +
  • +

    + aten::leaky_relu_(Tensor(a!) self, Scalar negative_slope=0.01) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::linear(Tensor input, Tensor weight, Tensor? bias=None) -> (Tensor) +

    +
  • +
  • +

    + aten::log(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::lstm_cell(Tensor input, Tensor[] hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor, Tensor) +

    +
  • +
  • +

    + aten::lt.Scalar(Tensor self, Scalar other) -> (Tensor) +

    +
  • +
  • +

    + aten::lt.Tensor(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::masked_fill.Scalar(Tensor self, Tensor mask, Scalar value) -> (Tensor) +

    +
  • +
  • +

    + aten::matmul(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::max(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::max.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices) +

    +
  • +
  • +

    + aten::max.other(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::max_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=[], int[1] dilation=[], bool ceil_mode=False) -> (Tensor) +

    +
  • +
  • +

    + aten::max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=[0, 0], int[2] dilation=[1, 1], bool ceil_mode=False) -> (Tensor) +

    +
  • +
  • +

    + aten::max_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=[], int[3] dilation=[], bool ceil_mode=False) -> (Tensor) +

    +
  • +
  • +

    + aten::mean(Tensor self, + + + * + + + , int? dtype=None) -> (Tensor) +

    +
  • +
  • +

    + aten::mean.dim(Tensor self, int[] dim, bool keepdim=False, + + + * + + + , int? dtype=None) -> (Tensor) +

    +
  • +
  • +

    + aten::min(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::min.other(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::mul.Scalar(Tensor self, Scalar other) -> (Tensor) +

    +
  • +
  • +

    + aten::mul.Tensor(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten:: + + + mul_ + + + .Tensor(Tensor(a!) self, Tensor other) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::narrow(Tensor(a) self, int dim, int start, int length) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::narrow.Tensor(Tensor(a) self, int dim, Tensor start, int length) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::ne.Scalar(Tensor self, Scalar other) -> (Tensor) +

    +
  • +
  • +

    + aten::ne.Tensor(Tensor self, Tensor other) -> (Tensor) +

    +
  • +
  • +

    + aten::neg(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::norm.ScalarOpt_dim(Tensor self, Scalar? p, int[1] dim, bool keepdim=False) -> (Tensor) +

    +
  • +
  • +

    + aten::permute(Tensor(a) self, int[] dims) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::pixel_shuffle(Tensor self, int upscale_factor) -> (Tensor) +

    +
  • +
  • +

    + aten::pow.Tensor_Scalar(Tensor self, Scalar exponent) -> (Tensor) +

    +
  • +
  • +

    + aten::pow.Tensor_Tensor(Tensor self, Tensor exponent) -> (Tensor) +

    +
  • +
  • +

    + aten::prelu(Tensor self, Tensor weight) -> (Tensor) +

    +
  • +
  • +

    + aten::prod(Tensor self, + + + * + + + , int? dtype=None) -> (Tensor) +

    +
  • +
  • +

    + aten::prod.dim_int(Tensor self, int dim, bool keepdim=False, + + + * + + + , int? dtype=None) -> (Tensor) +

    +
  • +
  • +

    + aten::reciprocal(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::reflection_pad1d(Tensor self, int[2] padding) -> (Tensor) +

    +
  • +
  • +

    + aten::reflection_pad2d(Tensor self, int[4] padding) -> (Tensor) +

    +
  • +
  • +

    + aten::relu(Tensor input) -> (Tensor) +

    +
  • +
  • +

    + aten::relu_(Tensor(a!) self) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::repeat(Tensor self, int[] repeats) -> (Tensor) +

    +
  • +
  • +

    + aten::replication_pad1d(Tensor self, int[2] padding) -> (Tensor) +

    +
  • +
  • +

    + aten::replication_pad2d(Tensor self, int[4] padding) -> (Tensor) +

    +
  • +
  • +

    + aten::replication_pad3d(Tensor self, int[6] padding) -> (Tensor) +

    +
  • +
  • +

    + aten::reshape(Tensor self, int[] shape) -> (Tensor) +

    +
  • +
  • +

    + aten::roll(Tensor self, int[1] shifts, int[1] dims=[]) -> (Tensor) +

    +
  • +
  • +

    + aten::rsub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) +

    +
  • +
  • +

    + aten::rsub.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +

    +
  • +
  • +

    + aten::select.int(Tensor(a) self, int dim, int index) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::sigmoid(Tensor input) -> (Tensor) +

    +
  • +
  • +

    + aten::sigmoid_(Tensor(a!) self) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::sin(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::sinh(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::slice.Tensor(Tensor(a) self, int dim=0, int? start=None, int? end=None, int step=1) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::softmax.int(Tensor self, int dim, int? dtype=None) -> (Tensor) +

    +
  • +
  • +

    + aten::split(Tensor self, int[] split_sizes, int dim=0) -> (Tensor[]) +

    +
  • +
  • +

    + aten::split.Tensor(Tensor(a) self, int split_size, int dim=0) -> (Tensor[]) +

    +
  • +
  • +

    + aten::split_with_sizes(Tensor(a) self, int[] split_sizes, int dim=0) -> (Tensor[]) +

    +
  • +
  • +

    + aten::sqrt(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::squeeze.dim(Tensor(a) self, int dim) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::stack(Tensor[] tensors, int dim=0) -> (Tensor) +

    +
  • +
  • +

    + aten::sub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) +

    +
  • +
  • +

    + aten::sub.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +

    +
  • +
  • +

    + aten:: + + + sub_ + + + .Tensor(Tensor(a!) self, Tensor other, + + + * + + + , Scalar alpha=1) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::sum(Tensor self, + + + * + + + , int? dtype=None) -> (Tensor) +

    +
  • +
  • +

    + aten::sum.dim_IntList(Tensor self, int[1] dim, bool keepdim=False, + + + * + + + , int? dtype=None) -> (Tensor) +

    +
  • +
  • +

    + aten::t(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::tan(Tensor self) -> (Tensor) +

    +
  • +
  • +

    + aten::tanh(Tensor input) -> (Tensor) +

    +
  • +
  • +

    + aten::tanh_(Tensor(a!) self) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::to.device(Tensor(a) self, Device device, int dtype, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::to.dtype(Tensor self, int dtype, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor) +

    +
  • +
  • +

    + aten::to.other(Tensor self, Tensor other, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor) +

    +
  • +
  • +

    + aten::to.prim_Device(Tensor(a) self, Device? device, int? dtype=None, bool non_blocking=False, bool copy=False) -> (Tensor(a|b)) +

    +
  • +
  • +

    + aten::topk(Tensor self, int k, int dim=-1, bool largest=True, bool sorted=True) -> (Tensor values, Tensor indices) +

    +
  • +
  • +

    + aten::transpose.int(Tensor(a) self, int dim0, int dim1) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::unbind.int(Tensor(a -> + + + * + + + ) self, int dim=0) -> (Tensor[]) +

    +
  • +
  • +

    + aten::unsqueeze(Tensor(a) self, int dim) -> (Tensor(a)) +

    +
  • +
  • +

    + aten::upsample_bilinear2d(Tensor self, int[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_bilinear2d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_linear1d(Tensor self, int[1] output_size, bool align_corners, float? scales=None) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_linear1d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_nearest1d(Tensor self, int[1] output_size, float? scales=None) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_nearest1d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_nearest2d(Tensor self, int[2] output_size, float? scales_h=None, float? scales_w=None) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_nearest2d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_nearest3d(Tensor self, int[3] output_size, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_nearest3d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_trilinear3d(Tensor self, int[3] output_size, bool align_corners, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> (Tensor) +

    +
  • +
  • +

    + aten::upsample_trilinear3d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor) +

    +
  • +
  • +

    + aten::view(Tensor(a) self, int[] size) -> (Tensor(a)) +

    +
  • +
  • +

    + trt::const(Tensor self) -> (Tensor) +

    +
  • +
+

+ Operators Currently Supported Through Evaluators + + ¶ + +

+
    +
  • +

    + aten::Bool.float(float b) -> (bool) +

    +
  • +
  • +

    + aten::Bool.int(int a) -> (bool) +

    +
  • +
  • +

    + aten::Float.Scalar(Scalar a) -> float +

    +
  • +
  • +

    + aten::Float.bool(bool a) -> float +

    +
  • +
  • +

    + aten::Float.int(int a) -> float +

    +
  • +
  • +

    + aten::Int.Scalar(Scalar a) -> int +

    +
  • +
  • +

    + aten::Int.bool(bool a) -> int +

    +
  • +
  • +

    + aten::Int.float(float a) -> int +

    +
  • +
  • +

    + aten::Int.int(int a) -> int +

    +
  • +
  • +

    + aten::__and__(int a, int b) -> (bool) +

    +
  • +
  • +

    + aten::__and__.bool(bool a, bool b) -> (bool) +

    +
  • +
  • +

    + aten::__getitem__.t(t[](a) list, int idx) -> (t(*)) +

    +
  • +
  • +

    + aten::__is__(t1 self, t2 obj) -> bool +

    +
  • +
  • +

    + aten::__isnot__(t1 self, t2 obj) -> bool +

    +
  • +
  • +

    + aten::__not__(bool self) -> bool +

    +
  • +
  • +

    + aten::__or__(int a, int b) -> (bool) +

    +
  • +
  • +

    + aten::__range_length(int lo, int hi, int step) -> int +

    +
  • +
  • +

    + aten::__round_to_zero_floordiv(int a, int b) -> (int) +

    +
  • +
  • +

    + aten::__xor__(int a, int b) -> (bool) +

    +
  • +
  • +

    + aten::add.float(float a, float b) -> (float) +

    +
  • +
  • +

    + aten::add.int(int a, int b) -> (int) +

    +
  • +
  • +

    + aten::add.str(str a, str b) -> (str) +

    +
  • +
  • +

    + aten:: + + + add_ + + + .t(t[](a!) self, t[] b) -> (t[]) +

    +
  • +
  • +

    + aten::append.t(t[](a!) self, t(c -> + + + * + + + ) el) -> (t[](a!)) +

    +
  • +
  • +
    +
    + aten::arange(Scalar end, + + + * + + + , int? dtype=None, int? layout=None, +
    +
    +

    + Device? device=None, bool? pin_memory=None) -> (Tensor) +

    +
    +
    +
  • +
  • +
    +
    + aten::arange.start(Scalar start, Scalar end, + + + * + + + , ScalarType? dtype=None, +
    +
    +

    + Layout? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor) +

    +
    +
    +
  • +
  • +
    +
    + aten::arange.start_step(Scalar start, Scalar end, Scalar step, + + + * + + + , ScalarType? dtype=None, +
    +
    +

    + Layout? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor) +

    +
    +
    +
  • +
  • +

    + aten::clone(Tensor self, + + + * + + + , int? memory_format=None) -> (Tensor) +

    +
  • +
  • +

    + aten::copy_(Tensor(a!) self, Tensor src, bool non_blocking=False) -> (Tensor(a!)) +

    +
  • +
  • +

    + aten::dim(Tensor self) -> int +

    +
  • +
  • +

    + aten::div.float(float a, float b) -> (float) +

    +
  • +
  • +

    + aten::div.int(int a, int b) -> (float) +

    +
  • +
  • +

    + aten::eq.bool(bool a, bool b) -> (bool) +

    +
  • +
  • +

    + aten::eq.float(float a, float b) -> (bool) +

    +
  • +
  • +

    + aten::eq.float_int(float a, int b) -> (bool) +

    +
  • +
  • +

    + aten::eq.int(int a, int b) -> (bool) +

    +
  • +
  • +

    + aten::eq.int_float(int a, float b) -> (bool) +

    +
  • +
  • +

    + aten::eq.str(str a, str b) -> (bool) +

    +
  • +
  • +

    + aten::extend.t(t[](a!) self, t[] other) -> () +

    +
  • +
  • +

    + aten::floor.float(float a) -> (int) +

    +
  • +
  • +

    + aten::floor.int(int a) -> (int) +

    +
  • +
  • +

    + aten::floordiv.float(float a, float b) -> (int) +

    +
  • +
  • +

    + aten::floordiv.int(int a, int b) -> (int) +

    +
  • +
  • +

    + aten::format(str self, …) -> (str) +

    +
  • +
  • +

    + aten::ge.bool(bool a, bool b) -> (bool) +

    +
  • +
  • +

    + aten::ge.float(float a, float b) -> (bool) +

    +
  • +
  • +

    + aten::ge.float_int(float a, int b) -> (bool) +

    +
  • +
  • +

    + aten::ge.int(int a, int b) -> (bool) +

    +
  • +
  • +

    + aten::ge.int_float(int a, float b) -> (bool) +

    +
  • +
  • +

    + aten::gt.bool(bool a, bool b) -> (bool) +

    +
  • +
  • +

    + aten::gt.float(float a, float b) -> (bool) +

    +
  • +
  • +

    + aten::gt.float_int(float a, int b) -> (bool) +

    +
  • +
  • +

    + aten::gt.int(int a, int b) -> (bool) +

    +
  • +
  • +

    + aten::gt.int_float(int a, float b) -> (bool) +

    +
  • +
  • +

    + aten::is_floating_point(Tensor self) -> (bool) +

    +
  • +
  • +

    + aten::le.bool(bool a, bool b) -> (bool) +

    +
  • +
  • +

    + aten::le.float(float a, float b) -> (bool) +

    +
  • +
  • +

    + aten::le.float_int(float a, int b) -> (bool) +

    +
  • +
  • +

    + aten::le.int(int a, int b) -> (bool) +

    +
  • +
  • +

    + aten::le.int_float(int a, float b) -> (bool) +

    +
  • +
  • +

    + aten::len.t(t[] a) -> (int) +

    +
  • +
  • +

    + aten::lt.bool(bool a, bool b) -> (bool) +

    +
  • +
  • +

    + aten::lt.float(float a, float b) -> (bool) +

    +
  • +
  • +

    + aten::lt.float_int(float a, int b) -> (bool) +

    +
  • +
  • +

    + aten::lt.int(int a, int b) -> (bool) +

    +
  • +
  • +

    + aten::lt.int_float(int a, float b) -> (bool) +

    +
  • +
  • +

    + aten::mul.float(float a, float b) -> (float) +

    +
  • +
  • +

    + aten::mul.int(int a, int b) -> (int) +

    +
  • +
  • +

    + aten::ne.bool(bool a, bool b) -> (bool) +

    +
  • +
  • +

    + aten::ne.float(float a, float b) -> (bool) +

    +
  • +
  • +

    + aten::ne.float_int(float a, int b) -> (bool) +

    +
  • +
  • +

    + aten::ne.int(int a, int b) -> (bool) +

    +
  • +
  • +

    + aten::ne.int_float(int a, float b) -> (bool) +

    +
  • +
  • +

    + aten::neg.int(int a) -> (int) +

    +
  • +
  • +

    + aten::numel(Tensor self) -> int +

    +
  • +
  • +

    + aten::pow.float(float a, float b) -> (float) +

    +
  • +
  • +

    + aten::pow.float_int(float a, int b) -> (float) +

    +
  • +
  • +

    + aten::pow.int(int a, int b) -> (float) +

    +
  • +
  • +

    + aten::pow.int_float(int a, float b) -> (float) +

    +
  • +
  • +

    + aten::size(Tensor self) -> (int[]) +

    +
  • +
  • +

    + aten::size.int(Tensor self, int dim) -> (int) +

    +
  • +
  • +

    + aten::slice.t(t[] l, int start, int end=9223372036854775807, int step=1) -> (t[]) +

    +
  • +
  • +

    + aten::sqrt.float(float a) -> (float) +

    +
  • +
  • +

    + aten::sqrt.int(int a) -> (float) +

    +
  • +
  • +

    + aten::sub.float(float a, float b) -> (float) +

    +
  • +
  • +

    + aten::sub.int(int a, int b) -> (int) +

    +
  • +
  • +

    + aten::tensor(t[] data, + + + * + + + , int? dtype=None, Device? device=None, bool requires_grad=False) -> (Tensor) +

    +
  • +
  • +

    + prim::dtype(Tensor a) -> (int) +

    +
  • +
  • +

    + prim::max.bool(bool a, bool b) -> (bool) +

    +
  • +
  • +

    + prim::max.float(float a, float b) -> (bool) +

    +
  • +
  • +

    + prim::max.float_int(float a, int b) -> (bool) +

    +
  • +
  • +

    + prim::max.int(int a, int b) -> (bool) +

    +
  • +
  • +

    + prim::max.int_float(int a, float b) -> (bool) +

    +
  • +
  • +

    + prim::max.self_int(int[] self) -> (int) +

    +
  • +
  • +

    + prim::min.bool(bool a, bool b) -> (bool) +

    +
  • +
  • +

    + prim::min.float(float a, float b) -> (bool) +

    +
  • +
  • +

    + prim::min.float_int(float a, int b) -> (bool) +

    +
  • +
  • +

    + prim::min.int(int a, int b) -> (bool) +

    +
  • +
  • +

    + prim::min.int_float(int a, float b) -> (bool) +

    +
  • +
  • +

    + prim::min.self_int(int[] self) -> (int) +

    +
  • +
  • +

    + prim::shape(Tensor a) -> (int[]) +

    +
  • +
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/objects.inv b/docs/v1.1.1/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..8cd99a8f0d68d2d25227382b5e82c43639579466 GIT binary patch literal 23595 zcmZs?Q*Oz7e?0qGmwN-O)1ZxBMP z{{Auf=@u_10ohXl9bew>dkY_zANyNVsboH4u9J{xnRQ^c#&6+4jrQ0aEOOwkxJyl6 zu5M0FUi8#Kr+F6MX~%DfMLa6~jRioj@MyVglHE&b%}oRS9lvff=bo}-(zpMc5*)&U$TQwL~}Vw0KZ^ z*1kx*Y`gW2e@e^4&en$jWi}pI4132v?4C#Lyfpqeo; zDWHJXZd5i}x@mY7I~t1BHyh_deVcOnyd5ewk>$(aiuGr?+S$CdBkozXbh_nC?s_-7 z#7hpbvp2HqsJ&xBBAIX*_8Acd31nGcmx5&+Gg11-y^2utt@BLQP_Z9zglFbMK_?Yy zyi8sG>Y(^>xQx$2%ReDP=Qg#X7}h^0@v-t!(9dK8an*&2Je!A|@X>@9&kZlh6r0DA zP66v|!4L35vXoH-lS0Av&(+P7(*39F3|~jzbV)NL@h1rA$T^vUhh-A7HG~xKJOO-n zZM9!41jmWMyOLB>nHrVlXlkcwjj&JJB+7j;1<4>}8u@Y-%2lEGs6XvfJ~giKzYGB3 z0Zmwv99BOyPfipu^LHM#M6su0FeI56PNgr_;ZEu~dkNP%;QKoYC|T;jr`y%ccGU5) z0D)^^Z=5izmy=l^!qtnLR!&bkk@$rYYz#9`61+{kr{5c9nl7;(UBwxr;|~f6I*Sk? zcx-bo(d6h$`>irR1mjez&j?Wq2{yV!g9v)n3B^JVGVvMG_u7XCy*qE#6o1?%3%$wZ zBjfu?on6V=;NB;cfc9;FTj2ci7M7#UBG=t@WF`2x>qDb3#q%J%iR)9(;zr`2Sx=jKzecI_kdPy2a{n3 z#o#h@2qZ0>BlKaK$ML2lmDd%>m`k7A;}^{r0%XN_X(<6>mcMuS} z{OXSGM=S0#yZqXg0@MjD|7Em8bl7fqg}mO^xc9{FlH^act4tUmo!`wdFD12rk^Mpa z_GAAt)Gr!z$7c!-tsv8-5&r_WhnJ;J=OL6_R64bcW7YB=3AAhgf*69Xak?gHOO>v2Nc*b~&S&o-){ z9m*lQf{F+|;Tw>T9WJ?a6c^cvF5J@U%JH)m%9lieP7Jm6doN1GbujzXfn8TCtg)_W zmsrdE7`s7fpYelgaQ+1q`EEbqoEyaBmC?gBpEUzZ>E+vIfDr4DvQ5zH{;Qg}O)YOG zL_^^ir3~R5?ta!|$DWl7*Gu zC&l|5*S^-Bw9VjKnRd>9mvK7#pCRO`Ylr`&dmns#wRjUrpDMqd_dQdiDm&ijo7a`n zjUg({s(r;NU=VJD67qp?Q&ty}x)>R<0Uo{Y1Y9;9sX||hb)n5pZfw-IkA9~ak_G#C zeA=2SKLA7DFAdb!3jlf3)IZPc3j#TPILU8Ex*s6FA`Z0B%iN|K@wi}J~UfsB1*j(z7$&4 z)=YnvP^jflLFlU?Ru4AwfIs>~zcCm-@>v>wjg=RVzhaIbf#$unH98mTBf7Fj5pF5X zeP*2bi~)PvScZ$083zGFOaL5r-C?0B!Q#q7V1w9LDYRPIdw5S+xaL#nUEzAX+LwPq zbtn!o6h!+#ZnKSKS6pDe!<#VI;dqoY1>0$;C@1EQq$6`Ws?7bf^?}HXFwLB;pF5x?dKjvBw;?pRfa%)I#by^a8hz~ zM-`kVpY$*#VWmL7c4KE9w=*fOCVdYEPSCK`4dGzaKOag#&xIq`_ooTS^MS;Tl`Q=l zgOl;%t9P#;o#Nz#N)y>U@{~=+R%}@PCi4@fRpk0B2f`f_l&r8+=b!wHC4sDX$)eOu z^ZJy$B-?OzCSmcK6r+{*b#R*Zy?0Z$6I%dZ^+u1zx~nk3bViQ&_VbhmM;pIpQis=A z91sabI|doy`shgGx0$i-Zz9U*?R`|avJdEby)z zPncbTJ|-q9+nn#S0C5;Q%1fr zc!9@yO2)Cm=)~x0j%7%(Xq4OENYhNndg6u%`R2$78EOXPXos{gbsIfAdu~`sJA&X6 z9HnMdNj+k*lX}fRTI>Hm!3Q_Dx9<{QqUf)L8-}8opYDHj4R0kbM7aI&o3jcksj+JJ zD2k#T*gQS?z%*)g{>vfbKJ$obX9l+Ai8krYquxMC@HYrggaK8sh%Z8vRjmgpSecH6 zu`}{RX`6`l(qg$43jElGRa9=UUYHMuvu(Nc#WvV~ zme09(p%ck|7hq0wFkTsjWG8B15<&7p{8H5C9JCo8^+^4exCN3#+At7n20~Ag)brz# zQZT-_e-hJn1Q7T@hkucjN#Ur?P#CIgHS-}@*TuVjle<7R)<*o1z(XLM*OjLLTcTg6 ze2}jCduD?MxdmPJwxtzUUsh4IcL~l6dI6R&B07U#2{{>HL0`%M)^>yiFjtZBTiCm8 zbldUpl^rBtLDMeYfUIw3jx&$kb9dnnL+=YFS#s_*G;Ke*Lt#gaL;cW7f*MiyO%pI7 zJ`6_GF?$Psqs!NYrcSW8IWMT6U3qV`I}5a;X`B~HQaA5tN0IhgXcAwap3e)qUpi@r zoe`$LUS}#_QK#t3&yluQxoj;8Rx8EY$Ds48B4{e5;{5u{A2ttF2L=)_eZ=`CS!x|) z`r9;xq^<#{Z9kC(?)E9OZr^le7J63(q#QcThMi#?Yx`V%efMjc;O4-MM{3ktp4pzTqGoQni^p1j|S zwJt=14_PDehH1;=ekz}X8HZS{Vx|5uO00P$RT4YoAq*iP3box_IG9>hC>E4#7fix< zBWjLZ27&3fWP&ks+ca<6>_!+%gKRaah*i4W_1{CUKOn941&8_ULaiLq2~ZV+X4KiD zs52cboiixB;g{zuUu-fBqKDS(n3Y6A*m@X#R*)0{E~d>NGbTJXg;+ZkNux`b>&7{; zoX)wxW9!Zt0hNWt2UTm=B9j7QCR(!Fs*g__e6>Zk*Nbc;c+cMBFrEZGR7sjZPt1Ak zuJUZUf=8$5LRu8i7%0y0ldR+=?_))gky06ai+N_$!t2F(_t~Au{}LiB`VsE^3l%ZW z_I15lY{byn6S$xLSmg*MnP57O-+QNfb;D^9H|^9S;+b^q7F&~aug;M=2c*x?j;Yky4Re|uzE1%#G?wM9-ra{>o|NIDq6;?2g^SBXT2NS z>&+!COeBx;xMrNADGddDG+!*1{UABxA{LA}f1iEownm1LJxk%-!?+41#t@S_`(jP% z*`3+HeLt4C=i+s} z15*I8L@))JGB-`$)94`M??}UAvZ?|1{)NrZJAVYy&!#OZ*4jBrEtTndM3&Ype|5JT z7`10z>lmw)A^0l4yAmd9Y5(`VW9$+BGTG<-=h4uvhSAoH?eF3$D}}hjIY;IGI@-@@ zmVBNLXw7N)JWq`>2?P@ov>}xI3nz~ESrqughAZHsm_elSS+PSWzsh{MqxST@GtbOe zipgRXR`MM?qCz6a5CP?#8T-0t5nMLR%+88dPmEDG}?X}^3dMoHkO8d#}2u+q9_0BJuh#awN#SVptA&2KUq!p=SjZh z9~`Za_icB`UvH7*th9>L&VDi4CT^`v?1>)_XC%AKHtKpThU_R_2I8dE+F*pf@pWwf zBV9}~Brj(S%zWSU7J^pih>5>()!EoUe}fG)Z=oxB*rQlhWB9RmarNoW)y4{PL35Ch z7|URBWWBwHMndJO%v#5Fs*PEkl~?m95I|k+?$c^Z!m8UtMYWL{rC@U{&|xSkGqH>t z0U&RvRrlp?Mxnoa0xu&Jqu(cio%QYQ&(YZ)&lk7#>FpjG2K5mk=BW)AGOvC!7q?;d zB&D!qrKrivWz#hukI?IgHe}8`af?!_56I$NGf|EVQH}yi$PN z?(s7&WgnHfa^+WXIZDsokd((qcV^G-qGTMN!Z#5={+eVRkQ|r~~$HU-ybPghED<-;M z6G^7xFETfh#cB*Ud{b?}Pg{=T#YP9Ku}1t5?IAFNps2^*Xr0E-uWpwn%I|SYf3Ia! zRH$QOfIG?TL5aT*Yj%_~MyqyU-{g$mNNmokL|kWB`DI=Fpp>@e3QdGp?%^>rImG)^ zsz-A-tv_DMtD~bQfqPuhbs%P<&^ieT{fA?i(>47GXlwZDd*`ee)f2Ucar`Sbvjw73 z4YQCRo{+8yad_xW*i_O%1@TsMw-tok>#>YdVVW9sxLod~Yf9CIR4cTy9v3 z?Li0=USROKRaI~Uj zJCHTS;X}jF%2jJw^Bb-qP3dN% z>oT00FZgn_mrKa&0G!eCRnRn6p3~b`t_2tw92|PLIj(Nci+B^(I+j2;RBih-0U#Qy z0=E008e>7^sJ5Sy%+VjNPOqQO2IQAXM*Xl&Ki0|Jei_jvt<6gCOtstK;Mr zqohqJmYDYk1bcP*xeW^T*!PEakM@f?kF{~Sms~^uFOSHeSHr*_|R;z z)j6lwPbEW@T}3R;pPAN-_3W?oQ=yC;Z>t=1!I9fUBU3ed85VpAD<;{n zJ!e;DSc!aDyv&Q(AX=~QT%fi^ev~W1d*34JS zm}aWQwR<$Iq0*e%f6n40!y14G(b+T`&G&U7DRCn!b0e!Y!T2X7-#a@5Gk`5F35HhR zrD)sH^Qtk{V2@jw|E`^uuE-(g2aCls^ZOF6cGmB|b3m@$DERvMo#y9yQ80<(qG%S& z4}|vM88&TEK8z;tULdF(9B^2?LPVL>y!tvzS4o-hFsRK2S&*Y~$IXEAqjI5_f~ z2Eo}YF^Pab`Bue17TSWds>m#^c(Gs)u?pU)BY>tK_X2X_G~7GL4KzxGnJ|03-s^cq zD#-1)x$6fq$d`I8#5Qk`TrxPFTTQzjD?RoIKVz(-$yffJpY!~EmTp?)@NriB6 zA%02F_gL^E;*c2py#Bn>K+6i9N`EB6U85(>%N+T~C85CYdcWvr!L}%L_4ZSzu~8g?j&3(sS(*QPS6X!z8oi7YYD`gM_aD7^gxrdhsrisP*F9 ztNAMjDbAOSU>|Ls@TZV081;JFok>0?1%hT)TcG5qEK2IAYGqDYMc}VjmjXz>1rNN9 zcH5u0IPd8=Jtm$4?z%b=c0TDoEONFf^Xl6BuU->C5Gd&Q{&U!Skni+a$@T0FRNMI; zj63)Xp+RT`^Ogs1N@;Apa)en|g67f8FwzX?$B|mu8L$rvz)pwHT7BG$TCGso&KGHw zg}m(gophm*hx*p%N_n9B`}x zjm*|?hB_%SH0zp=#p7yQalyxfO~VyWq`m8iZBL~Yy5ZR!i;2=IB0v10+blF6R1i=7zM$*w*L6jJHq1Y2vrAP+R%e;ANh)I0h8&ay{9;KDH>DyrzF zNrBNJ`2YEtwTQLKj2OlZLbNxIbE=;-rKq&QfPV~l&!k<(g~K@!;JS*iz&X8smup^v z-ig$YcZn+;x1V-Q%UrjwxfQPWTcJYzlHV&SU~vyEi9w#O}iy(CRuAa)KH4 zzjymu=b)W-c3xKb{gn4_tyh*byinv3SWIfJB&8_CNnwW!ZL#e0Xq;bv%eA5K1jbfA z{}Zwv4LmO3bd(tg%^)_deE>jW-_l;c3{)hJ@}3OAs!qI(#z;P$4VRa{$SONP&Se}$ zIR_sd=5epMS^$!?cI66gvv2;LsB((Ba;)Scb=oC6(l9R~d>ea1^O=)62wk5iu+2K}@EaDMJg z(t~i#`T5E%AVb2^G8O*~tK|6IYz8mv$mm}uMexVDD|Jt5{#033I$gD$axe%lX(4X= zT4T%dv2Psiz7gkf)rSK-nU8Kp#g$3C^%U2oOTSB(HtOLRWLKbL_EZR9izMgH)$pvTY z$5SUg{pDrK&pxtp*2_;;_*Q=O$lDYud4kF{SVe() z;bT&syA;-?U@)l}eigk*304Ex>ff&NaL0X#% z_|f=*mvos_MYs0cZeg-W0`aoBfwmifd}Fr!EQ!uyU-@+J`F+Bu;TczW1wa}vz4upq z?Qe2ZriB@+;^Z-s`C05`0^*>#3FhQN!SS0ERNoK*aoLg3x5@+L!^fxC+!!@qlb0^U zG*{KqlCFYenK};-KweMWGMb_V8FfTDajgdr;FH+PZ!|IPufwJ>_FU|^mIn@JS(#0C zwG_M`^mnO(jIwSXfQ0W#L&3o*Lla%BHZ&0Nj(>xd`O$~BP+6OM;#-&T0+D&bBx3z{#E9Ox-poJ62<#^yXo z=xN6lmpR<@@FB&`;hjHTWtCiTIVX9v&CaW>`5 zxZNr86xI(i0QGfz&f8gieWh2#AI0t1=O~6cafPfWVwDa&d}6&<@9^2-{H702V7W1= z7%Cc!DUyxy>Tw5-{fv1E6r9D@H0?=yZF^^+zihrR>Ju%_(Rj60uKozh2F3U)yB*|$ zMZL+i`BtFZth(CC@}it3Mgb?T6AeGgBUk9^hcJ#R$?-vgiJjmLDH4z#0be7yqO!SU z!{rxMJzb9je~r+o2Jz&tMH_PnF&%U@S|S2qr=lJ*^S}lW zX0iypu$**L_-qfsW8i%yPSY3KrkGUR$Z;x&l9}#;@S9j$SRY z+gcu7?rXgns@#FTO5|K6`>C&GrRt4D*I^(6!B?Lygz7jVdbDG>R!~t1&H?3a?IhIq zI3oKP7XY~@C|h|#{h0GROLmKsLrxs~PqMb~K1Ss>-Nt0Yab5xOZZ`dz)7~7>BUy=p zRbbslz}u}2WBWNiQ#Ui`M&0F8)+deIc($BL*rY0Cvpr*H8ZPO`ud20yBn{J;q8{)l zf$*sPDU8u2H*~*3%6wmK*!D!0HG`Ctt=uuTjSXiq;x?;swyoh(oAI3&H@!FcemGtG zvv0HVa5-lq)Oxa?+i?AzJL$XiA~!_mgBg})#(K1+c>TI7Fp(k?wrmO!%m@F5Pz_mB`bWnavbsPbig`qK$s2$%agmNnx)yPUg~m)X#Equ&3vZJT&+4L zxvJt&tCmZZ6vgvO-sW71m?b9P<*Pj8A|SnZRg1Hx(H`RG4}va)zdGpt!&(X!ndtoC zX6h~NW;7*HX(9Ef zU^J{aP4lTvNvlLRu#78$_rnf@3Nu+m=1uJEy@fbmmYKAz!YT9UBiw-LzG>#St%g#@cBPMy__RT z=r*pnqx4fPeE&b4eM*pmO5)H>NCm(bUZUA50Fw>iBP-TSCz$I%ko#$A_J~=ogm=z3 zLf2k6uLuZKtl6vV%_ymigER?liZ^}_GbX6G)0}!>5M^rUcf03Kc#T_xK7Sxo%|*u| z7;C!wJ<8ebyRT`sps_!Wz74}p^g1+`y>2*Xl4kP&U7iyS`=r<0OtuiIy(ZnAC0Cmg z5TUPChm3xoxA#2UBHo5NSEx^XP=NzkJ0#9Yo5nr*^h@nV!P;Ug8Jx8t{ z(GJZG%cQ?G(08$PnLmZZhzk%Jdp=;kCj=Wnhc|KEJfOX&&Q+$b?OrR`vyED;+7hhX z0j4+Th@jK}zpug56r~IXB?I*mZFxAL!I?}roHZP=zsvN9MQOOVFY3gV_Le4~er@cf zOg`7~|dTCAN4ZKNNIHBr`lbkJ9vzx&e5{;yYfu7dpaT;^w6L$;e~cjPD!oM=L?e{a4bt5 zZ`5#&qcT;-%G@zTxC~xys+?k>6N!y9e&>DYg z*mz%y2>5zl>&&iZz?OEMel-!|Oz8GkOZp>8C*nITU^e4CV8v!JnCWHQRsj_V8^Shy z8dF+o9?uhmv|L(SQFIe?O7glvT|zJ55)%35`Syf*9oTfL}Q>(SYT<@^J9>bfZhJW40p+;NSExZ(M zX(P`r!jr9>n^NblS^&cdl5*&)MH+2Fi z=^)#XUZ+70!>(q7K7tmur}6-Y_+rP(mbY+yL zgnshE97Oo}nSz6gxU*BGo*O8{uOGFCI z2QBHC0q_YlD%tUH^14!;k2dVzRe8{_VnO28CYu^!igQm$svgeg?hx?nQP=a0PF~|j zTZv=yKC*@A!_Q@!ko4~3Wr%YZga|sjHrZq_)SlTXS)pEPl9#MRGeJ|+OM^%n@M{Ta zxa^q|>|Bxz=gHi1dJq5f`>C-JyMrA9BT(<>&KLHS#zQB~VQ;Esb2)YZ&2NhO8b;U~ z-HW(*9*{PV5o_1Aey=nix*acD z_!}861f_)Ts81rH_%CqjO@GM0k;l{) zxq`#i7GuZbbQMIvCC`tP)o{cj8_{suQhPuj}>mIz|bANJ~E?pUA>`8w`9;xZR8PNxVU zDCPKT?7p|Rt6LFtjETk1>?Sz4G>9QETcYnI3VJ!ZPtQk*$V-~$I*Uo3zT$L5zg1au zCH+owUzA7!_!}XSi5go{QrQs%+3)8ogqmYvwExP&?!+Rnj~(EvFYuM(TIbVJQ$Hx?h3B%KdQdet2R42&-FsrOZwRl|_~{`^c;_Sn%1irn@*j7MOMG zpe42d8rM-&8m(vi`6KY{>oOHyI_vk*s~OI!=hI{V@(FHl>48dukNmE`Vpw!OaJ^FF3%xQ$YCOLYvHZNF89eW{B%rvKK8xX2w>$TrH~t=d zjdg$)F`f1sk1@?)(03U5mQ|-~o0~7@3tCq$l6ndSwi+b1dPTOcxGwx@jHG&FAgfaV zj7goLGiuY6(iulE))h%g#t&FcT3hbeP*kA2V|dQBcJrs|iDJ$-v2FbH=dekinL|CP zv46xd$1x3gnq}akn)5vsY1&zY+@|Zt90o&3fU-cIv52=udhZqUgo?S949x1};2`Md zYO8hL5lV3a96&$3ev|Oi4DR2|-OM3Xf2V_^=xZperWvc=?b7}E+jj2n>y^}z&6to! z^2*3pLI`A+G4UH|4$Q=q%olLn8e`56F@1M^W!T&!*r{mPsW6fIcYZ6~LRIZyUi?0m z+^d=rt{CH8L5Px9<&O>E6iA>aB^)fVY*(5yghU7vwaah`G5ArP7FF`RBU z20|$PLdz#>mwk;=D|@5Ldx^~9Z-w2Ea7Bdi^3N+qxQ~uk?U6gT6l`i);}z-g&FofO z;2D0G)elp@CkH0&O33?$sYiZgluQXkwaaJto8A#{RxaINXj@nXsR0uX$|zAs2#+k zG|Qxw$$liucObSmRxQTRp?f9r$&5vdswu^gq&gF}!K~IT*N~9w|I(KDed=+W@FE8z zJ$XY6`|*P9uYs;nAZO-}NO+Z$;@+R__{a2ck4HH{i|9>{kI88dpv}ANhzjM)H^;9_ zYlbe`mMtPvi(2U{NK4_$Q_mmdcDRM*sl8aLlSG{>7CCsA9jdc9c2$F{cKYTm4LDmfi2^33WBfsUPfvCODjH@ZhG31oBKF(ho2`;A@Q}s9OqAH+nd4)HX9(&<){9#+mok zm&z1LlGDB!zO{IOWaPo4yqOk^26cQn#hLpqiM%C+g0?4H=?~4#gp<qJ!I|h>e9Sc(ZOMb$V}*Ye@OKz`D+3rm zPb^RWcb|B3LzXQmIHI-B5`sXn(RrfI&WOrnEF?WOG)g5#*WUuQ>e?D7>Xfog>D8%} z8(WRoX}x+3t8}1B8&kCjn)SceBw>mh`6RcErVe|cFowa$=2f938jc-?Ed20LcINNv zb8L-c?s5Kqlan36ojrr)bzUf>#eC#g8R*ToQ?T_SK)55^@8SlvTnU0tlb&P;Z=$jGtr62m6QsM-YD%ZJPiZ)UNrD^I)z6s!t}pT0epp}9 zA&E5;V)@w+hC8N>4jk0FX0C{HZ#u;FvJht5Fx%z-$*@>wD1Q3vSD!<+k|R#_E2m%b zb1f4+He(0V!ilfe5rrJr?SnK@+@jeVM(W$iPvH4zaPF#8MlUT(CVIvVtP0=AovZ*n zXr|g{Zd~u{@qGV$>tZE)Ct95cHR!WRNqDNDqCi-FnT^DdgHH;IAL6Q0*#XxJJ&aA+ zceT4RuE`yoc4HfNSoL15tqN1C$)JC`tq;8V;zRAOT`DW?PYL~IiXeVys}{hHS4~)i zTt{AKmj{Gmw*qub-mX>N$g*xC=iOOR)r~}-x@toc4qQiApr67`f*orSLQrYM1J`56rdFFr_V=vrr~1&;+b}e~D{rtEw>& zhwnF|LR7le=$`OVI+-Y}2~gNsx~1|I8J!*JQ`)jCM>< zv&-Rvr?oQG#n!IV5v>-c4O1?d)~k7~sU~8!@9U$^LTE^IRV|Q8 zSjvUXz2SR*U$-@CzL~kCUp#E+ido^A0~C()2ORc`Z@M)l%$rL<7rIHpTDTPKI+{48 zH#XS*fUi4looW=HWp7o;e$6hzpB9<9LS8e;Z^pX!j)Jm1+dPEzR~#(e;|B26b3l2j zxJO^Oq>oRNJ$rK>6;F0}AH02~D$&H5kCmTI=z;kGZ>3LF-=ul=+Gf@|4nV!eIKyzu z)f6EKU&_dSZG_#b!u}$D#KEaFW4;Bn0((ZN?99a1j6D;lD;Jsd!n4;h1sS);n+f-i zHkWnY=(_A(;pwW%d^I`ihP(VIE)hDO-u_g;z$uB>g<9+V>7B935Rn|YgcqGx z<8KiJRKMd+q<=5G{ul{qmp#Fg>PyyjokNWQ>V6Q*3=67O(#Uwg^gNyQTcp!%!9=># zO9n^{jWGPy+K{pH;FkHl6ms7PTLO8r3$ZVu`Gx(XFr3KKJh_vYLke5>x1gWtOoT=# zZ1IoDi-2nl=HS$drx{~B?jQfAL{mM_*?G`yA$>+kF#Q27=?1!xwl_m%-$)Cnncs5w zo(3M^4~YFbiM|Ftl~QDUR^N{Tzwd z@qpw*DGokZJgKWDZk@6jTeON);Xkuk5xc|3n6t}NdNj;EB|ApX^~oMCF;LwH!OXZ+ zha-UBB-iA~WM+yA5M=SdE5m@@p3ed1M`QlvC%QvA)HjnvQN>}J)A8Q56)9L`{j#30 zK=EP9K!2*~S@%Dt=%OV*BUH_w_4&w{-ir=+bI!8v_*Hh)$CzKo)|!Kf&U)lgVNNYlf~gKA9?B1#Q7uNIJmV4c4xOX9-5D9I1;HCqGl8 zDPt_kNI3NmpfauKXvuvAel{zy)g=}crG`Jbj^jY%Pf4b{>Xj>kTMGt`KWEQ@Y=7(B zAy`V?N}xqli>*DV+&f0T^IeNYIkvMV&i}lyY-KVlQN9*=yyWE_V57=iZNT3xUs+@K zRYLJelYq-_rk-)HdzMr(bIs&y;=Z-!U5GH8m-t?)_RC7tFxH~Fsu5Ca5(^?}o9*Z8Z8ekqaymK(82?858(3FA0}YbVZ(_#JFQgT6@<>O#G?e>b|E) zm^@ifwOq5rpDt|ATDN(kIVYAq&HFqNp3`%97Q+rtuGye(6PhMZ`1SB>dP(yhhk49w z5d0ud`6#BcOwgAbkH7I<%D8{n__#&QIK2`3|$iDmxEk8f z-!K~K!vhOlYu7V{uR#{l^xKdc`4;mH{K1Y<>1r{2c}n>)#(QNpk;bYrPeMkG{dWdn zYgXT;f%lwj*8B}Ry?L^9RScyvgln?M4}SGbcSLQJ84j)dK3J52En89?fil4zec!7rK!;XJ0oR+(VsB<3F?&#bsTj(C?s1gtZe;u=an}Pco zfj)H4v=&2#NCF?IHhNVLmh*u##ENV~BmKUYo-vvSyUX$h;Xs9k{1-N;bABN<+OSn> zpX)L`gC>MbLO9C}QWm+V2^j4i$TR6YZA5*ix%E0Dkih$*Sn%tI!5uGz?0_eT3q?$k zlxm6oK;f`LDGI8x(~$d(`k5Z>`3C*USAH0(nym^5y)F&?s*_aexMfpinjlU^d!8<# zsZ)ZyjFDpzvjUb9j&ThNmh#EW@Id!I~ zSYO+|+Wt2=-d-x?40}WCb{20Jm@jtxS~q{`Q&I5?`9PkpKs$!)t5<^tWZ*3DRXoe~ zgm2}o$!Jkx+6nNnfNFa%PwQRT#Mmg;Ykxfg>)Tjs^Li78wbkgf4D*ueOKhn)(NjKp zR+E3|SFlUEs@LdMBa*MzsHjIz+OoiwHo3GRL>v2dX-r=)>GXHUyhphw3r3c8lofgG z_n^EzpJvar7rffozs?gx$QGAn*GQ=rwf4?7bHOvkdVmQa^D-CwEFXJF#xwPgBZ+;R zaL5h$*#fnQL%}WPk3@<wAGfD1@!QF#9QM?h>QM%i0;J!;FI0V__1L6GPVH9KD-+Eyi$s}DDw$XdD zKn`7Qe|7p^co;^tUvBp@4r(Y8?>VL@qdRvSX#&1!gPm~SYvbyLviH`+0O{xl=0Z7$N- z-xJnOgFe@X-`bXaB1k8}K)&gA+|Z=u_$PY|$iICM*X0e^4>n7BWm5jV@)W7wOw-!! zp~}ZkL0dlJTm9nx8m)~{*fI2&4a1rK*XGAaGBcrbfIB8L9=NsPMvi@Zrf zhpVqU6@-~GM~nAOU`W;_D;l%K;2%xh(tC~N(y7-(%cm^2PM}#}vJL+_#pxd@bbXQ( zJ1*I~Y0qtJLF=i9JoLNezjI4L?K4C^1&Y`c)eVBle_J#oK$@1?P{#pi=Y9Ua-f;fn zAJVYb+#2tF&=oy3F?eJ5EdR}M;Mg046p%#t>ouB>q;7EtO!+0z^&@@z+sfpnXv0MK zh_WRO8RtGTE+^;s_|>)=vTEtL{lz7cTC37NDR;W9;YbDos9@x!%99ul{iZ zB%8k2EwzwWESCd&8tDqMG3$`#X67Uo^n-R{n7%j-QoRFhV4IU0UCL>p$0jbO%$ZUS zT<1wTy=mgg>f^TLQ*}R-!W<0jUU=}e2Hfw>GEoTcU-d|%S)VlGV#of!HqJ8`4!7OI zdbHL1TD?bSH=?f^qPOU6m0(4$A(3FUs6klKS#1d`Bzjq*x9AZ;h~7)o#PNU6`<^p% z=6w6jJon7=<@xf=@4D^*3!7b=Z*-F*^`XN|8q&9)=5J!GNVNi22F3N}r+u*xojnFS zVy_h$ZoVw`-W4ukP%$5gH}C7cMzUU@H@sZ(F+HRQYlxVe_?YPS@esPL>shd8=A?>A zdUmN+Y{`vK>!Mh|5tv-tKyCZ-a^Leod5I~{`ON)Sf;0?Jy2+N_`kMUPCd+@DfC9~A zFJ`kyvs@rsi+-meZELFe1TbAi^>VDCHqQ4xzV6NO-hY^E%g@PVpzZ&c%AVrd?cxV& z`*hDQ{_(sofCYy+Is&%lq7W4RL(x6$5NQz`d(SC*VvSg^^;+)0T^mg@2Csl{$V577`}8 z;8|%R68$$NEKp=|su2m~ePC9%kDxHi30s@TMe1sw;L536ES-EPFD9lP23of)f=x)8 z`a-WO`q1WweFXikDBzLF27fhgCyt8bqa(-SjqxwHAaxPe- z?{&=vv#6wJd<1_&WrBX&h@y>+wRIz-(5wH$7@GwN?>3{PJ1G=BO}#sg3Gdip+rVSd zU;JNQa^|GfmMC1Q*LDwy6nchX?;^+QSckBdZ=EqV3hRZ)u4a+4Jw8HF{F-7va zY-(TQLmm5L$*3?qAq0*NW$%Ka7AYcmzX+cI)x^k6`3PmEpU^weOr|5l2>*iLrthY; z_(o1fxLzf}t~2)>RAIM9*dX$;z9f(OL0hpF#wt2nZ7Yec|DcrM;JP2;9XD;pBebc_Qs0VSp_edVj@UG506J*vFW^ZgW8%E0cng|l^ zXc5bV+^3BUsD_vrlqO`v3qe12u1J1A^sxJM6bcmUHhm{Vp`lzakCpTvM7;Qq{t5%t zdI^+&?bSBRD0i)}PXI7U|4Z5ZU*r(boLW_&&3NC!^ujqFR1^!fD3t5}g4zqE`^*Ge z#$A|>ScQ_(83ffC2}URe3lJ zOx9M!*-ZM&7x^)&mJhABoA-(4FwcWXAJtdroB|u{$;Za-lujifsur^0S;4uE>jd0u zD)^!^lk~C`#Y~(lXAa<7xfiT2XpW#WW2z)U*Gt#Q-&=R-0oC1}2yd3|BxlRvip_{K zV*(Epe}yVzj#j{-HSGnY0jwAt%Pch&a+N#iYsl*JameOefXgV$5?n_>L{W z=XFqKCNge<>`!aA4Ia}8&YF>8@B&38SM8OuUa3TO)fc#-n4#d*XY!fTsb@oZzuZzr zvQsG{;uKVLhF;+q&7f0fRr^FUwPpEoxSbk&{1Y!~9H4y@Hcl2S4OBCrwdaklj@#$s zsD#pZ$SHGO5+XjENr|z+k$Zh@`8E3W-0OaDz>KLJ5u|n}gbq`K^`#cK{@uYw8d$e$ zkdoZrgCawvun%rSv#g8e;lgBh7}v06o2te02jv;yb(7RHHkQ%2o&xxdc zj2r8FE-8Zn2^}*Xx9N`@TQD%sM}IZ$F(}yWHtKK2rau$6IP9DV6PAa&RXzCRPidhd z`a0}HsOx+XBJ#2#-ra^`X9$h|`)^uyWx+b{N89(Zhh~}cChCtwS^&=93RO-BrkB*?1g9PxS{9xBbl>m)DOqY{kOG?6|JT-sD~UVe~$${RO;fkBW-NmsEOj zdGo7m?Y+CU>}rV==g$}TPg2Lm%;53n&)hy1NsP;q8;wE%;)x7rhhCUKW(LnEr8m4+G>H7Cbj7kxFjhjlmym;Yo{x4LuUraWSvjno$gPF{74CNCdNxBt>K;{ob7qoGBv+pr z9iBbjIgc_j$xVffxl^N)C@&G0h^R2{UclH4=zvEV!>2(qCH!MN!bNHW1_d6g>k>^> z+xGhMq(E*(iNe-`lf0-mvxtbM#z8Y?1ai=;X=zxI)y^zqzPE^msZ|3s3yG8cmrSD+EMv6)9=G1fPja-oc+=te?gH;Ps5 zJNsSRr=dC?V~1d6>po3nTtO!vO)09jsNZ|BU zmBTWyr(S-oUU9566B~qUb#rp%&x9Ox-z9r%p<$HSt7+G~YOwtfJ`UwjskvwK20kP% z;;3wejX|hdC!g78x&aX*EW(GZW_<1HHu+$WNkwtiTv<^k)2?6n+!oPJXRk5q?kbU{ z^iNaqu@V10U0k4l2=PK%)4E3v} zF;O2Nwj&tkWCVXo{`muS;vYP61q4ec`T46O%e;H6Z>c)vi+1Xd@>Z#b*NM>gVShSm z*jXq}IdecE5Z{9Jxz-@pXTVwsHXxFzJ-}WDolpd66gak?9H+)bc}N|o*R31jv&7U` zD^@M@os_^k@l&d}w^c@FaZl)xh4ZP5-60TPR4@Ib77Z(F{oe7QC|`1kRz!%xgUI>CDMk@(>XfIS72f3un>IqR0@};IJFsqJyz{MC^bD5o&{(tsXs!QaMer_k>GHS-@FJ9yU7|6LpIN z;sbQgJr^IAFL)Oun!CEdX0oA6($)}aKap7!g$uWzBZ!VHhnOo@cRgSkFG_f*AXDR# zZp5M9Ig*uzY{vw?RDy(EDE^kF7Sy%fN7o8JR6D_Ff(45ZRr`EhL z$B;9iZ>0fpo%_`r_}=k=5%r!1};Vev1bK~(!W~4qLKVM1~v25N4 zW&)KZ=ggj|2AzD}oL4TnqTf!irrYryJ?Jg3EOMRYeU9rX_lkf)pz0?U@ zd^dD4hTNDN0@VC08(916!u-TyNIdDyXcqz1B3AjN+)JjW7@C6l#s-+&u@DPug?G^&LUtZ2I7hD{MD zz3mq>YJm)d)!w-}rSa>DCDm#1d{3%T^S=zesWorpr}`Nq)o*;Wl7>3ds{9#X-^YtX z@9Rsv8EUr@Ch~mK4DiC;^Tc<)+rood5_*X%!7Dd%KNZ$si`&Uh3J z&(F8xeVwPAfHygzn**r2)TY1yAUyTB8qHXQisjpAB7_C?Vyd);eKrzBOKHH^QnSa> zL)2-Xg3E{UoG*)@o=11ATRr!83Q1B0jYtSvmCZ%5)rQM+e)$Q3Wspe*88Xs}(#=}y zPs{>* zrY-%IVW)JK79>HF{K_uc2fo6fp6oJ5N>1_>=JTKWo%@KsDxqq}Sg=x>UW)LT;edlukkCPLp(=|x6I z5G%SpH6zB#dUc6xUR4Rs^C}g@q=Sm^Lm>a*BL29JGE) zw%AYio#;%1s4RW#rg6LIrNB}QzkGLlChtqbT1cGmq_lIC`J`bnB+ZB9#Jh9u#1*wk z7(@!`?%cCjJ$d|Yl|~j7A%PM!XUSaz7SWDH6r@$(oeK(j5LXnW?IAXMxEa$hrmhtc z=@{9^(IxQNrn{kt%zuVl{~3zN{AXzLKC8<#fqR#@)zlNRn5HsWJAExwyNwJYMgjiu zl?jtBGw>1NS9l|oKZ$eYKCs~(X{TUun+fr#%buK%PEni5rXKTN>FXef$5I^Z=4wf4 z(=|ciD(27kdfmmf0@@!;b*iQ0yz~!ErVWh#iPI$dA~+T4S|#1dl}I(Af1>OPAjwh4 znYV%oRcV$Me-}&jf-!{#rEfUtiA|@OjQ)ueB>H@LmG3#7iYkPFD*uYj%UbuGGcX8~ zM`orTj|lIg27fCxR|_goTaQGYdSp-D1 znAhiSUclGun8F*Mq*w&RHaIxTO_;H<106>d$4zUwPMmcx^FJ7O>_ z33V)w4R?#ypQAi1c!AIpViblr(5ZoAUEVmfd2224@^Y7V_0t;rC7a#6T>Hzc7*^u8{Z3fV=)kkH`)w8;Ls~&CM z+rlrc6bNU7X*0ePnjFgvJ~05}4Kl>>?3Zu1Bee-_0w0=6Nsc!BSr@t_t1?M3{eX7Y zFi+2$DHwdvo{4+<}vtSE*SxjYUX z==g(bcNfQwS4aNXy|`L2zs?P&e2!k!Q2AZMez3XxHhRHVspADbj(bgjaEF$R$)M;C z*(5qcjyb5Jp{I37yIy+fsYOm3-76^C9OMLcC%DtV*3+fs+fqHL4cC9q&*hjzTcm=I5yReNc^6E%|0dP>2SR?!a?e#QoNhfL5%=0$>X%Kz6F3O z9deT1i^K`+{;6Q9vpVqGXCx6N3G1N0f{LA5K01>v4d@w8*5#Ap0 zuqlk##%#ZaC?IBe?b`$P&&`i<{TdM9rm)?Ro)z|Sk}2tB(53gDl0jL;SLjiUs=JG`%x#s2=sZC&NqK`RW#lEBnX zXl{4lF?9^5Jvw;$W$HM5rq6IOkjf7dakk%iQm_MCII?gErqbu_Sk*qF{#5%rigW+T zgf*N7!qIuNFAtRK@n%h4s?&_EwtY~h>dsW-*)k;=9&>?swvBQ=j_r$*p?I#YPb^sV zl%-w(N_>UfXHGwFSC$H!4J;tjBNi;2nv$>MC%DWcBH!g?BmOZNt{wizKLy!Ya5D%o z`-#vLS*zC|7q3foKB>EMSuT}Pw`#8O$ZzpRofn>!Sg)6kkwP(>jr+NDM&%1P?nX09TM&ob z_b}=~uP62MMmUA)y6u1=T*wmo9{D;tY~)NDA|0UDe^P%$!Q3}deu}OQt?|qiu2Xo%K9c2Q*7?Rc zjS4}9OE!Phln=OWHvV(-$^slO624@g5#iuEx*TOmx0BC$PZ_I9$JA3h*Lu$lv0nR1 z$=OeI)jvgLY!;5~W|8FRNc*B1WswOe7pCPX$Tvt(xhbd_Ti18o|2Z#uKPdV5xiqy) z9DfwuPLEpNN+=>(AjeC&uL~Z!bv$3TUrZ|$?)Y%rF(cyaYW#>5%`AIRZCx z(I6I!N@|9=D+1R}0M8))SueS6D!CjB+`j$&0nN2mJ~7O#mvR(klrcmUQ%_REY@{7!9c$w>bTrBL#$&f)sTq(GAh9_pH;Nm< zI_FUNjKLahSCtd^J88((Pz{B_Vnfh{=o*4ES7V8#S>iC$z zwq&k2-;I}q=M@?ZaIw`At>O|TtarJO%G}(!OBrJR+9N4H*3)AvE5GeX=BV+(run24 z0?+~lpS6l98hM=Wbs9)Fkp1pnCSEvdNN^w@LfyCDQsR z@I=V=9l>!o-{UzR!SGy`)sq(X#``J{5-w6j*|6TqS@>Ns2T@2e#g3D{`9IuuWPh@b z_K>uyu1?6hp)YsGf$ctuM`?;dCGqf^qYSKKAUce>L8WPTG0{xvcD@C)C#-e%$b_Dh zW(;+h4LAa1Xp{Z&@@JzFEz{eE55Cs~W}+Cy098%iBE{>g8JSfiClZgpWKfy~|J7f4 zF!R%;yJd3T + + + + + + + + Python Module Index — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+ + +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/py_api/fx.html b/docs/v1.1.1/py_api/fx.html new file mode 100644 index 0000000000..593402d22e --- /dev/null +++ b/docs/v1.1.1/py_api/fx.html @@ -0,0 +1,717 @@ + + + + + + + + + + + + + torch_tensorrt.fx — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

torch_tensorrt.fx

+
+

Functions

+
+
+torch_tensorrt.fx.compile(module: torch.nn.modules.module.Module, input, max_batch_size: int = 2048, max_workspace_size=33554432, explicit_batch_dimension=False, lower_precision=LowerPrecision.FP16, verbose_log=False, timing_cache_prefix='', save_timing_cache=False, cuda_graph_batch_size=- 1, dynamic_batch=True) torch.nn.modules.module.Module[source]
+

Takes in original module, input and lowering setting, run lowering workflow to turn module +into lowered module, or so called TRTModule.

+
+
Parameters
+
    +
  • module – Original module for lowering.

  • +
  • input – Input for module.

  • +
  • max_batch_size – Maximum batch size (must be >= 1 to be set, 0 means not set)

  • +
  • max_workspace_size – Maximum size of workspace given to TensorRT.

  • +
  • explicit_batch_dimension – Use explicit batch dimension in TensorRT if set True, otherwise use implicit batch dimension.

  • +
  • lower_precision – lower_precision config given to TRTModule.

  • +
  • verbose_log – Enable verbose log for TensorRT if set True.

  • +
  • timing_cache_prefix – Timing cache file name for timing cache used by fx2trt.

  • +
  • save_timing_cache – Update timing cache with current timing cache data if set to True.

  • +
  • cuda_graph_batch_size – Cuda graph batch size, default to be -1.

  • +
+
+
Returns
+

A torch.nn.Module lowered by TensorRT.

+
+
+
+ +
+
+

Classes

+
+
+class torch_tensorrt.fx.TRTModule(engine=None, input_names=None, output_names=None, cuda_graph_batch_size=- 1)[source]
+
+ +
+
+class torch_tensorrt.fx.InputTensorSpec(shape: Sequence[int], dtype: torch.dtype, device: torch.device = device(type='cpu'), shape_ranges: List[Tuple[Sequence[int], Sequence[int], Sequence[int]]] = [], has_batch_dim: bool = True)[source]
+

This class contains the information of a input tensor.

+

shape: shape of the tensor.

+

dtype: dtyep of the tensor.

+
+
device: device of the tensor. This is only used to generate inputs to the given model

in order to run shape prop. For TensorRT engine, inputs have to be on cuda device.

+
+
shape_ranges: If dynamic shape is needed (shape has dimensions of -1), then this field

has to be provided (default is empty list). Every shape_range is a tuple of three +tuples ((min_input_shape), (optimized_input_shape), (max_input_shape)). Each shape_range +is used to populate a TensorRT optimization profile. +e.g. If the input shape varies from (1, 224) to (100, 224) and we want to optimize +for (25, 224) because it’s the most common input shape, then we set shape_ranges to +((1, 224), (25, 225), (100, 224)).

+
+
has_batch_dim: Whether the shape includes batch dimension. Batch dimension has to be provided

if the engine want to run with dynamic shape.

+
+
+
+ +
+
+class torch_tensorrt.fx.TRTInterpreter(module: torch.fx.graph_module.GraphModule, input_specs: List[torch_tensorrt.fx.input_tensor_spec.InputTensorSpec], explicit_batch_dimension: bool = False, explicit_precision: bool = False, logger_level=None)[source]
+
+ +
+
+class torch_tensorrt.fx.TRTInterpreterResult(engine, input_names, output_names, serialized_cache)[source]
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/py_api/logging.html b/docs/v1.1.1/py_api/logging.html new file mode 100644 index 0000000000..e8a9bb0d05 --- /dev/null +++ b/docs/v1.1.1/py_api/logging.html @@ -0,0 +1,558 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + torch_tensorrt.logging — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ torch_tensorrt.logging + + ¶ + +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/py_api/ptq.html b/docs/v1.1.1/py_api/ptq.html new file mode 100644 index 0000000000..30f4d3e0c6 --- /dev/null +++ b/docs/v1.1.1/py_api/ptq.html @@ -0,0 +1,614 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + torch_tensorrt.ptq — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/py_api/torch_tensorrt.html b/docs/v1.1.1/py_api/torch_tensorrt.html new file mode 100644 index 0000000000..1f076ce54d --- /dev/null +++ b/docs/v1.1.1/py_api/torch_tensorrt.html @@ -0,0 +1,660 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + torch_tensorrt — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/py_api/ts.html b/docs/v1.1.1/py_api/ts.html new file mode 100644 index 0000000000..b6e8239667 --- /dev/null +++ b/docs/v1.1.1/py_api/ts.html @@ -0,0 +1,598 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + torch_tensorrt.ts — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/search.html b/docs/v1.1.1/search.html new file mode 100644 index 0000000000..30a7ca6df8 --- /dev/null +++ b/docs/v1.1.1/search.html @@ -0,0 +1,515 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Search — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

+ Search +

+
+ +

+ Please activate JavaScript to enable the search + functionality. +

+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/searchindex.js b/docs/v1.1.1/searchindex.js new file mode 100644 index 0000000000..8bc7c8a08f --- /dev/null +++ b/docs/v1.1.1/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["_cpp_api/class_view_hierarchy","_cpp_api/classtorch__tensorrt_1_1DataType","_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType","_cpp_api/classtorch__tensorrt_1_1TensorFormat","_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator","_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator","_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502","_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268","_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e","_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827","_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b","_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da","_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59","_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883","_cpp_api/dir_cpp","_cpp_api/dir_cpp_include","_cpp_api/dir_cpp_include_torch_tensorrt","_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558","_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb","_cpp_api/file_cpp_include_torch_tensorrt_logging.h","_cpp_api/file_cpp_include_torch_tensorrt_macros.h","_cpp_api/file_cpp_include_torch_tensorrt_ptq.h","_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h","_cpp_api/file_view_hierarchy","_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3","_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650","_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a","_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2","_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8","_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5","_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc","_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c","_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178","_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039","_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa","_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797","_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9","_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef","_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528","_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384","_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1","_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2","_cpp_api/namespace_torch_tensorrt","_cpp_api/namespace_torch_tensorrt__logging","_cpp_api/namespace_torch_tensorrt__ptq","_cpp_api/namespace_torch_tensorrt__torchscript","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h","_cpp_api/structtorch__tensorrt_1_1Device","_cpp_api/structtorch__tensorrt_1_1GraphInputs","_cpp_api/structtorch__tensorrt_1_1Input","_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec","_cpp_api/torch_tensort_cpp","_cpp_api/unabridged_api","_cpp_api/unabridged_orphan","_notebooks/CitriNet-example","_notebooks/EfficientNet-example","_notebooks/Hugging-Face-BERT","_notebooks/Resnet50-example","_notebooks/dynamic-shapes","_notebooks/lenet-getting-started","_notebooks/ssd-object-detection-demo","_notebooks/vgg-qat","contributors/conversion","contributors/lowering","contributors/partitioning","contributors/phases","contributors/runtime","contributors/system_overview","contributors/useful_links","contributors/writing_converters","index","indices/supported_ops","py_api/logging","py_api/ptq","py_api/torch_tensorrt","py_api/ts","src/pytorch-sphinx-theme/docs/changelog","src/pytorch-sphinx-theme/docs/configuring","src/pytorch-sphinx-theme/docs/demo/api","src/pytorch-sphinx-theme/docs/demo/demo","src/pytorch-sphinx-theme/docs/demo/lists_tables","src/pytorch-sphinx-theme/docs/demo/long","src/pytorch-sphinx-theme/docs/demo/structure","src/pytorch-sphinx-theme/docs/index","src/pytorch-sphinx-theme/docs/installing","tutorials/creating_torchscript_module_in_python","tutorials/getting_started_with_cpp_api","tutorials/getting_started_with_python_api","tutorials/installation","tutorials/ptq","tutorials/runtime","tutorials/torchtrtc","tutorials/use_from_pytorch","tutorials/using_dla"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,nbsphinx:3,sphinx:56},filenames:["_cpp_api/class_view_hierarchy.rst","_cpp_api/classtorch__tensorrt_1_1DataType.rst","_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst","_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst","_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst","_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst","_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst","_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst","_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst","_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst","_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst","_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst","_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst","_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst","_cpp_api/dir_cpp.rst","_cpp_api/dir_cpp_include.rst","_cpp_api/dir_cpp_include_torch_tensorrt.rst","_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst","_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst","_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst","_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst","_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst","_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst","_cpp_api/file_view_hierarchy.rst","_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst","_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst","_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst","_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst","_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst","_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst","_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst","_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst","_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst","_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst","_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst","_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst","_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst","_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst","_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst","_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst","_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst","_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst","_cpp_api/namespace_torch_tensorrt.rst","_cpp_api/namespace_torch_tensorrt__logging.rst","_cpp_api/namespace_torch_tensorrt__ptq.rst","_cpp_api/namespace_torch_tensorrt__torchscript.rst","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst","_cpp_api/structtorch__tensorrt_1_1Device.rst","_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst","_cpp_api/structtorch__tensorrt_1_1Input.rst","_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst","_cpp_api/torch_tensort_cpp.rst","_cpp_api/unabridged_api.rst","_cpp_api/unabridged_orphan.rst","_notebooks/CitriNet-example.ipynb","_notebooks/EfficientNet-example.ipynb","_notebooks/Hugging-Face-BERT.ipynb","_notebooks/Resnet50-example.ipynb","_notebooks/dynamic-shapes.ipynb","_notebooks/lenet-getting-started.ipynb","_notebooks/ssd-object-detection-demo.ipynb","_notebooks/vgg-qat.ipynb","contributors/conversion.rst","contributors/lowering.rst","contributors/partitioning.rst","contributors/phases.rst","contributors/runtime.rst","contributors/system_overview.rst","contributors/useful_links.rst","contributors/writing_converters.rst","index.rst","indices/supported_ops.rst","py_api/logging.rst","py_api/ptq.rst","py_api/torch_tensorrt.rst","py_api/ts.rst","src/pytorch-sphinx-theme/docs/changelog.rst","src/pytorch-sphinx-theme/docs/configuring.rst","src/pytorch-sphinx-theme/docs/demo/api.rst","src/pytorch-sphinx-theme/docs/demo/demo.rst","src/pytorch-sphinx-theme/docs/demo/lists_tables.rst","src/pytorch-sphinx-theme/docs/demo/long.rst","src/pytorch-sphinx-theme/docs/demo/structure.rst","src/pytorch-sphinx-theme/docs/index.rst","src/pytorch-sphinx-theme/docs/installing.rst","tutorials/creating_torchscript_module_in_python.rst","tutorials/getting_started_with_cpp_api.rst","tutorials/getting_started_with_python_api.rst","tutorials/installation.rst","tutorials/ptq.rst","tutorials/runtime.rst","tutorials/torchtrtc.rst","tutorials/use_from_pytorch.rst","tutorials/using_dla.rst"],objects:{"":{"torch_tensorrt::DataType":[1,1,1,"_CPPv4N14torch_tensorrt8DataTypeE"],"torch_tensorrt::DataType::DataType":[1,2,1,"_CPPv4N14torch_tensorrt8DataType8DataTypeEv"],"torch_tensorrt::DataType::DataType::t":[1,3,1,"_CPPv4N14torch_tensorrt8DataType8DataTypeEN3c1010ScalarTypeE"],"torch_tensorrt::DataType::Value":[1,4,1,"_CPPv4N14torch_tensorrt8DataType5ValueE"],"torch_tensorrt::DataType::Value::kBool":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value5kBoolE"],"torch_tensorrt::DataType::Value::kChar":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value5kCharE"],"torch_tensorrt::DataType::Value::kFloat":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value6kFloatE"],"torch_tensorrt::DataType::Value::kHalf":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value5kHalfE"],"torch_tensorrt::DataType::Value::kInt":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value4kIntE"],"torch_tensorrt::DataType::Value::kUnknown":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value8kUnknownE"],"torch_tensorrt::DataType::kBool":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value5kBoolE"],"torch_tensorrt::DataType::kChar":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value5kCharE"],"torch_tensorrt::DataType::kFloat":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value6kFloatE"],"torch_tensorrt::DataType::kHalf":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value5kHalfE"],"torch_tensorrt::DataType::kInt":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value4kIntE"],"torch_tensorrt::DataType::kUnknown":[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value8kUnknownE"],"torch_tensorrt::DataType::operator Value":[1,2,1,"_CPPv4NK14torch_tensorrt8DataTypecv5ValueEv"],"torch_tensorrt::DataType::operator bool":[1,2,1,"_CPPv4N14torch_tensorrt8DataTypecvbEv"],"torch_tensorrt::DataType::operator!=":[1,2,1,"_CPPv4NK14torch_tensorrt8DataTypeneEN8DataType5ValueE"],"torch_tensorrt::DataType::operator!=::other":[1,3,1,"_CPPv4NK14torch_tensorrt8DataTypeneEN8DataType5ValueE"],"torch_tensorrt::DataType::operator==":[1,2,1,"_CPPv4NK14torch_tensorrt8DataTypeeqEN8DataType5ValueE"],"torch_tensorrt::DataType::operator==::other":[1,3,1,"_CPPv4NK14torch_tensorrt8DataTypeeqEN8DataType5ValueE"],"torch_tensorrt::Device":[50,1,1,"_CPPv4N14torch_tensorrt6DeviceE"],"torch_tensorrt::Device::Device":[50,2,1,"_CPPv4N14torch_tensorrt6Device6DeviceEv"],"torch_tensorrt::Device::DeviceType":[50,1,1,"_CPPv4N14torch_tensorrt6Device10DeviceTypeE"],"torch_tensorrt::Device::DeviceType::DeviceType":[50,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeEv"],"torch_tensorrt::Device::DeviceType::DeviceType::t":[50,3,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeEN3c1010DeviceTypeE"],"torch_tensorrt::Device::DeviceType::Value":[50,4,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5ValueE"],"torch_tensorrt::Device::DeviceType::Value::kDLA":[50,5,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5Value4kDLAE"],"torch_tensorrt::Device::DeviceType::Value::kGPU":[50,5,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5Value4kGPUE"],"torch_tensorrt::Device::DeviceType::kDLA":[2,5,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5Value4kDLAE"],"torch_tensorrt::Device::DeviceType::kGPU":[2,5,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5Value4kGPUE"],"torch_tensorrt::Device::DeviceType::operator Value":[50,2,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypecv5ValueEv"],"torch_tensorrt::Device::DeviceType::operator bool":[50,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceTypecvbEv"],"torch_tensorrt::Device::DeviceType::operator!=":[50,2,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeneE10DeviceType"],"torch_tensorrt::Device::DeviceType::operator!=::other":[50,3,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeneE10DeviceType"],"torch_tensorrt::Device::DeviceType::operator==":[50,2,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeeqE10DeviceType"],"torch_tensorrt::Device::DeviceType::operator==::other":[50,3,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeeqE10DeviceType"],"torch_tensorrt::Device::allow_gpu_fallback":[50,6,1,"_CPPv4N14torch_tensorrt6Device18allow_gpu_fallbackE"],"torch_tensorrt::Device::device_type":[50,6,1,"_CPPv4N14torch_tensorrt6Device11device_typeE"],"torch_tensorrt::Device::dla_core":[50,6,1,"_CPPv4N14torch_tensorrt6Device8dla_coreE"],"torch_tensorrt::Device::gpu_id":[50,6,1,"_CPPv4N14torch_tensorrt6Device6gpu_idE"],"torch_tensorrt::EngineCapability":[18,4,1,"_CPPv4N14torch_tensorrt16EngineCapabilityE"],"torch_tensorrt::EngineCapability::kDLA_STANDALONE":[18,5,1,"_CPPv4N14torch_tensorrt16EngineCapability15kDLA_STANDALONEE"],"torch_tensorrt::EngineCapability::kSAFETY":[18,5,1,"_CPPv4N14torch_tensorrt16EngineCapability7kSAFETYE"],"torch_tensorrt::EngineCapability::kSTANDARD":[18,5,1,"_CPPv4N14torch_tensorrt16EngineCapability9kSTANDARDE"],"torch_tensorrt::Input":[52,1,1,"_CPPv4N14torch_tensorrt5InputE"],"torch_tensorrt::Input::Input":[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat"],"torch_tensorrt::Input::Input::dtype":[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat"],"torch_tensorrt::Input::Input::format":[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat"],"torch_tensorrt::Input::Input::max_shape":[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat"],"torch_tensorrt::Input::Input::min_shape":[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat"],"torch_tensorrt::Input::Input::opt_shape":[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat"],"torch_tensorrt::Input::Input::shape":[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEE8DataType12TensorFormat"],"torch_tensorrt::Input::Input::tensor":[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN2at6TensorE"],"torch_tensorrt::Input::dtype":[52,6,1,"_CPPv4N14torch_tensorrt5Input5dtypeE"],"torch_tensorrt::Input::format":[52,6,1,"_CPPv4N14torch_tensorrt5Input6formatE"],"torch_tensorrt::Input::max_shape":[52,6,1,"_CPPv4N14torch_tensorrt5Input9max_shapeE"],"torch_tensorrt::Input::min_shape":[52,6,1,"_CPPv4N14torch_tensorrt5Input9min_shapeE"],"torch_tensorrt::Input::opt_shape":[52,6,1,"_CPPv4N14torch_tensorrt5Input9opt_shapeE"],"torch_tensorrt::Input::shape":[52,6,1,"_CPPv4N14torch_tensorrt5Input5shapeE"],"torch_tensorrt::TensorFormat":[3,1,1,"_CPPv4N14torch_tensorrt12TensorFormatE"],"torch_tensorrt::TensorFormat::TensorFormat":[3,2,1,"_CPPv4N14torch_tensorrt12TensorFormat12TensorFormatEv"],"torch_tensorrt::TensorFormat::TensorFormat::t":[3,3,1,"_CPPv4N14torch_tensorrt12TensorFormat12TensorFormatEN2at12MemoryFormatE"],"torch_tensorrt::TensorFormat::Value":[3,4,1,"_CPPv4N14torch_tensorrt12TensorFormat5ValueE"],"torch_tensorrt::TensorFormat::Value::kChannelsLast":[3,5,1,"_CPPv4N14torch_tensorrt12TensorFormat5Value13kChannelsLastE"],"torch_tensorrt::TensorFormat::Value::kContiguous":[3,5,1,"_CPPv4N14torch_tensorrt12TensorFormat5Value11kContiguousE"],"torch_tensorrt::TensorFormat::Value::kUnknown":[3,5,1,"_CPPv4N14torch_tensorrt12TensorFormat5Value8kUnknownE"],"torch_tensorrt::TensorFormat::kChannelsLast":[3,5,1,"_CPPv4N14torch_tensorrt12TensorFormat5Value13kChannelsLastE"],"torch_tensorrt::TensorFormat::kContiguous":[3,5,1,"_CPPv4N14torch_tensorrt12TensorFormat5Value11kContiguousE"],"torch_tensorrt::TensorFormat::kUnknown":[3,5,1,"_CPPv4N14torch_tensorrt12TensorFormat5Value8kUnknownE"],"torch_tensorrt::TensorFormat::operator Value":[3,2,1,"_CPPv4NK14torch_tensorrt12TensorFormatcv5ValueEv"],"torch_tensorrt::TensorFormat::operator bool":[3,2,1,"_CPPv4N14torch_tensorrt12TensorFormatcvbEv"],"torch_tensorrt::TensorFormat::operator!=":[3,2,1,"_CPPv4NK14torch_tensorrt12TensorFormatneEN12TensorFormat5ValueE"],"torch_tensorrt::TensorFormat::operator!=::other":[3,3,1,"_CPPv4NK14torch_tensorrt12TensorFormatneEN12TensorFormat5ValueE"],"torch_tensorrt::TensorFormat::operator==":[3,2,1,"_CPPv4NK14torch_tensorrt12TensorFormateqEN12TensorFormat5ValueE"],"torch_tensorrt::TensorFormat::operator==::other":[3,3,1,"_CPPv4NK14torch_tensorrt12TensorFormateqEN12TensorFormat5ValueE"],"torch_tensorrt::dump_build_info":[40,2,1,"_CPPv4N14torch_tensorrt15dump_build_infoEv"],"torch_tensorrt::get_build_info":[38,2,1,"_CPPv4N14torch_tensorrt14get_build_infoEv"],"torch_tensorrt::kDLA_STANDALONE":[18,5,1,"_CPPv4N14torch_tensorrt16EngineCapability15kDLA_STANDALONEE"],"torch_tensorrt::kSAFETY":[18,5,1,"_CPPv4N14torch_tensorrt16EngineCapability7kSAFETYE"],"torch_tensorrt::kSTANDARD":[18,5,1,"_CPPv4N14torch_tensorrt16EngineCapability9kSTANDARDE"],"torch_tensorrt::logging::Level":[17,4,1,"_CPPv4N14torch_tensorrt7logging5LevelE"],"torch_tensorrt::logging::Level::kDEBUG":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level6kDEBUGE"],"torch_tensorrt::logging::Level::kERROR":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level6kERRORE"],"torch_tensorrt::logging::Level::kGRAPH":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level6kGRAPHE"],"torch_tensorrt::logging::Level::kINFO":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level5kINFOE"],"torch_tensorrt::logging::Level::kINTERNAL_ERROR":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level15kINTERNAL_ERRORE"],"torch_tensorrt::logging::Level::kWARNING":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level8kWARNINGE"],"torch_tensorrt::logging::get_is_colored_output_on":[26,2,1,"_CPPv4N14torch_tensorrt7logging24get_is_colored_output_onEv"],"torch_tensorrt::logging::get_logging_prefix":[24,2,1,"_CPPv4N14torch_tensorrt7logging18get_logging_prefixEv"],"torch_tensorrt::logging::get_reportable_log_level":[25,2,1,"_CPPv4N14torch_tensorrt7logging24get_reportable_log_levelEv"],"torch_tensorrt::logging::kDEBUG":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level6kDEBUGE"],"torch_tensorrt::logging::kERROR":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level6kERRORE"],"torch_tensorrt::logging::kGRAPH":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level6kGRAPHE"],"torch_tensorrt::logging::kINFO":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level5kINFOE"],"torch_tensorrt::logging::kINTERNAL_ERROR":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level15kINTERNAL_ERRORE"],"torch_tensorrt::logging::kWARNING":[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level8kWARNINGE"],"torch_tensorrt::logging::log":[28,2,1,"_CPPv4N14torch_tensorrt7logging3logE5LevelNSt6stringE"],"torch_tensorrt::logging::log::lvl":[28,3,1,"_CPPv4N14torch_tensorrt7logging3logE5LevelNSt6stringE"],"torch_tensorrt::logging::log::msg":[28,3,1,"_CPPv4N14torch_tensorrt7logging3logE5LevelNSt6stringE"],"torch_tensorrt::logging::set_is_colored_output_on":[29,2,1,"_CPPv4N14torch_tensorrt7logging24set_is_colored_output_onEb"],"torch_tensorrt::logging::set_is_colored_output_on::colored_output_on":[29,3,1,"_CPPv4N14torch_tensorrt7logging24set_is_colored_output_onEb"],"torch_tensorrt::logging::set_logging_prefix":[30,2,1,"_CPPv4N14torch_tensorrt7logging18set_logging_prefixENSt6stringE"],"torch_tensorrt::logging::set_logging_prefix::prefix":[30,3,1,"_CPPv4N14torch_tensorrt7logging18set_logging_prefixENSt6stringE"],"torch_tensorrt::logging::set_reportable_log_level":[27,2,1,"_CPPv4N14torch_tensorrt7logging24set_reportable_log_levelE5Level"],"torch_tensorrt::logging::set_reportable_log_level::lvl":[27,3,1,"_CPPv4N14torch_tensorrt7logging24set_reportable_log_levelE5Level"],"torch_tensorrt::ptq::Int8CacheCalibrator":[4,1,1,"_CPPv4I0EN14torch_tensorrt3ptq19Int8CacheCalibratorE"],"torch_tensorrt::ptq::Int8CacheCalibrator::Algorithm":[4,7,1,"_CPPv4I0EN14torch_tensorrt3ptq19Int8CacheCalibratorE"],"torch_tensorrt::ptq::Int8CacheCalibrator::Int8CacheCalibrator":[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator19Int8CacheCalibratorERKNSt6stringE"],"torch_tensorrt::ptq::Int8CacheCalibrator::Int8CacheCalibrator::cache_file_path":[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator19Int8CacheCalibratorERKNSt6stringE"],"torch_tensorrt::ptq::Int8CacheCalibrator::getBatch":[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"torch_tensorrt::ptq::Int8CacheCalibrator::getBatch::bindings":[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"torch_tensorrt::ptq::Int8CacheCalibrator::getBatch::names":[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"torch_tensorrt::ptq::Int8CacheCalibrator::getBatch::nbBindings":[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"torch_tensorrt::ptq::Int8CacheCalibrator::getBatchSize":[4,2,1,"_CPPv4NK14torch_tensorrt3ptq19Int8CacheCalibrator12getBatchSizeEv"],"torch_tensorrt::ptq::Int8CacheCalibrator::operator nvinfer1::IInt8Calibrator*":[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibratorcvPN8nvinfer115IInt8CalibratorEEv"],"torch_tensorrt::ptq::Int8CacheCalibrator::readCalibrationCache":[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator20readCalibrationCacheER6size_t"],"torch_tensorrt::ptq::Int8CacheCalibrator::readCalibrationCache::length":[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator20readCalibrationCacheER6size_t"],"torch_tensorrt::ptq::Int8CacheCalibrator::writeCalibrationCache":[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t"],"torch_tensorrt::ptq::Int8CacheCalibrator::writeCalibrationCache::cache":[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t"],"torch_tensorrt::ptq::Int8CacheCalibrator::writeCalibrationCache::length":[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t"],"torch_tensorrt::ptq::Int8Calibrator":[5,1,1,"_CPPv4I00EN14torch_tensorrt3ptq14Int8CalibratorE"],"torch_tensorrt::ptq::Int8Calibrator::Algorithm":[5,7,1,"_CPPv4I00EN14torch_tensorrt3ptq14Int8CalibratorE"],"torch_tensorrt::ptq::Int8Calibrator::DataLoaderUniquePtr":[5,7,1,"_CPPv4I00EN14torch_tensorrt3ptq14Int8CalibratorE"],"torch_tensorrt::ptq::Int8Calibrator::Int8Calibrator":[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"torch_tensorrt::ptq::Int8Calibrator::Int8Calibrator::cache_file_path":[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"torch_tensorrt::ptq::Int8Calibrator::Int8Calibrator::dataloader":[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"torch_tensorrt::ptq::Int8Calibrator::Int8Calibrator::use_cache":[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"torch_tensorrt::ptq::Int8Calibrator::getBatch":[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"torch_tensorrt::ptq::Int8Calibrator::getBatch::bindings":[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"torch_tensorrt::ptq::Int8Calibrator::getBatch::names":[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"torch_tensorrt::ptq::Int8Calibrator::getBatch::nbBindings":[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"torch_tensorrt::ptq::Int8Calibrator::getBatchSize":[5,2,1,"_CPPv4NK14torch_tensorrt3ptq14Int8Calibrator12getBatchSizeEv"],"torch_tensorrt::ptq::Int8Calibrator::operator nvinfer1::IInt8Calibrator*":[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8CalibratorcvPN8nvinfer115IInt8CalibratorEEv"],"torch_tensorrt::ptq::Int8Calibrator::readCalibrationCache":[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator20readCalibrationCacheER6size_t"],"torch_tensorrt::ptq::Int8Calibrator::readCalibrationCache::length":[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator20readCalibrationCacheER6size_t"],"torch_tensorrt::ptq::Int8Calibrator::writeCalibrationCache":[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t"],"torch_tensorrt::ptq::Int8Calibrator::writeCalibrationCache::cache":[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t"],"torch_tensorrt::ptq::Int8Calibrator::writeCalibrationCache::length":[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t"],"torch_tensorrt::ptq::make_int8_cache_calibrator":[34,2,1,"_CPPv4I0EN14torch_tensorrt3ptq26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE"],"torch_tensorrt::ptq::make_int8_cache_calibrator::Algorithm":[34,7,1,"_CPPv4I0EN14torch_tensorrt3ptq26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE"],"torch_tensorrt::ptq::make_int8_cache_calibrator::cache_file_path":[34,3,1,"_CPPv4I0EN14torch_tensorrt3ptq26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE"],"torch_tensorrt::ptq::make_int8_calibrator":[33,2,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"torch_tensorrt::ptq::make_int8_calibrator::Algorithm":[33,7,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"torch_tensorrt::ptq::make_int8_calibrator::DataLoader":[33,7,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"torch_tensorrt::ptq::make_int8_calibrator::cache_file_path":[33,3,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"torch_tensorrt::ptq::make_int8_calibrator::dataloader":[33,3,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"torch_tensorrt::ptq::make_int8_calibrator::use_cache":[33,3,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"torch_tensorrt::set_device":[39,2,1,"_CPPv4N14torch_tensorrt10set_deviceEKi"],"torch_tensorrt::set_device::gpu_id":[39,3,1,"_CPPv4N14torch_tensorrt10set_deviceEKi"],"torch_tensorrt::torchscript::CompileSpec":[53,1,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpecE"],"torch_tensorrt::torchscript::CompileSpec::CompileSpec":[53,2,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecENSt6vectorINSt6vectorI7int64_tEEEE"],"torch_tensorrt::torchscript::CompileSpec::CompileSpec::fixed_sizes":[53,3,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecENSt6vectorINSt6vectorI7int64_tEEEE"],"torch_tensorrt::torchscript::CompileSpec::CompileSpec::inputs":[53,3,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecENSt6vectorI5InputEE"],"torch_tensorrt::torchscript::CompileSpec::capability":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec10capabilityE"],"torch_tensorrt::torchscript::CompileSpec::debug":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec5debugE"],"torch_tensorrt::torchscript::CompileSpec::device":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec6deviceE"],"torch_tensorrt::torchscript::CompileSpec::disable_tf32":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec12disable_tf32E"],"torch_tensorrt::torchscript::CompileSpec::enabled_precisions":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec18enabled_precisionsE"],"torch_tensorrt::torchscript::CompileSpec::inputs":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec6inputsE"],"torch_tensorrt::torchscript::CompileSpec::min_block_size":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec14min_block_sizeE"],"torch_tensorrt::torchscript::CompileSpec::num_avg_timing_iters":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec20num_avg_timing_itersE"],"torch_tensorrt::torchscript::CompileSpec::num_min_timing_iters":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec20num_min_timing_itersE"],"torch_tensorrt::torchscript::CompileSpec::ptq_calibrator":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec14ptq_calibratorE"],"torch_tensorrt::torchscript::CompileSpec::refit":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec5refitE"],"torch_tensorrt::torchscript::CompileSpec::require_full_compilation":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec24require_full_compilationE"],"torch_tensorrt::torchscript::CompileSpec::sparse_weights":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec14sparse_weightsE"],"torch_tensorrt::torchscript::CompileSpec::torch_executed_modules":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec22torch_executed_modulesE"],"torch_tensorrt::torchscript::CompileSpec::torch_executed_ops":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec18torch_executed_opsE"],"torch_tensorrt::torchscript::CompileSpec::truncate_long_and_double":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec24truncate_long_and_doubleE"],"torch_tensorrt::torchscript::CompileSpec::workspace_size":[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec14workspace_sizeE"],"torch_tensorrt::torchscript::check_method_operator_support":[35,2,1,"_CPPv4N14torch_tensorrt11torchscript29check_method_operator_supportERKN5torch3jit6ModuleENSt6stringE"],"torch_tensorrt::torchscript::check_method_operator_support::method_name":[35,3,1,"_CPPv4N14torch_tensorrt11torchscript29check_method_operator_supportERKN5torch3jit6ModuleENSt6stringE"],"torch_tensorrt::torchscript::check_method_operator_support::module":[35,3,1,"_CPPv4N14torch_tensorrt11torchscript29check_method_operator_supportERKN5torch3jit6ModuleENSt6stringE"],"torch_tensorrt::torchscript::compile":[36,2,1,"_CPPv4N14torch_tensorrt11torchscript7compileERKN5torch3jit6ModuleE11CompileSpec"],"torch_tensorrt::torchscript::compile::info":[36,3,1,"_CPPv4N14torch_tensorrt11torchscript7compileERKN5torch3jit6ModuleE11CompileSpec"],"torch_tensorrt::torchscript::compile::module":[36,3,1,"_CPPv4N14torch_tensorrt11torchscript7compileERKN5torch3jit6ModuleE11CompileSpec"],"torch_tensorrt::torchscript::convert_method_to_trt_engine":[41,2,1,"_CPPv4N14torch_tensorrt11torchscript28convert_method_to_trt_engineERKN5torch3jit6ModuleENSt6stringE11CompileSpec"],"torch_tensorrt::torchscript::convert_method_to_trt_engine::info":[41,3,1,"_CPPv4N14torch_tensorrt11torchscript28convert_method_to_trt_engineERKN5torch3jit6ModuleENSt6stringE11CompileSpec"],"torch_tensorrt::torchscript::convert_method_to_trt_engine::method_name":[41,3,1,"_CPPv4N14torch_tensorrt11torchscript28convert_method_to_trt_engineERKN5torch3jit6ModuleENSt6stringE11CompileSpec"],"torch_tensorrt::torchscript::convert_method_to_trt_engine::module":[41,3,1,"_CPPv4N14torch_tensorrt11torchscript28convert_method_to_trt_engineERKN5torch3jit6ModuleENSt6stringE11CompileSpec"],"torch_tensorrt::torchscript::embed_engine_in_new_module":[37,2,1,"_CPPv4N14torch_tensorrt11torchscript26embed_engine_in_new_moduleERKNSt6stringE6Device"],"torch_tensorrt::torchscript::embed_engine_in_new_module::device":[37,3,1,"_CPPv4N14torch_tensorrt11torchscript26embed_engine_in_new_moduleERKNSt6stringE6Device"],"torch_tensorrt::torchscript::embed_engine_in_new_module::engine":[37,3,1,"_CPPv4N14torch_tensorrt11torchscript26embed_engine_in_new_moduleERKNSt6stringE6Device"],STR:[6,0,1,"c.STR"],TORCHTRT_API:[10,0,1,"c.TORCHTRT_API"],TORCHTRT_HIDDEN:[12,0,1,"c.TORCHTRT_HIDDEN"],TORCH_TENSORRT_MAJOR_VERSION:[8,0,1,"c.TORCH_TENSORRT_MAJOR_VERSION"],TORCH_TENSORRT_MINOR_VERSION:[9,0,1,"c.TORCH_TENSORRT_MINOR_VERSION"],TORCH_TENSORRT_PATCH_VERSION:[7,0,1,"c.TORCH_TENSORRT_PATCH_VERSION"],TORCH_TENSORRT_VERSION:[13,0,1,"c.TORCH_TENSORRT_VERSION"],XSTR:[11,0,1,"c.XSTR"]}},objnames:{"0":["c","macro","C macro"],"1":["cpp","class","C++ class"],"2":["cpp","function","C++ function"],"3":["cpp","functionParam","functionParam"],"4":["cpp","enum","C++ enum"],"5":["cpp","enumerator","C++ enumerator"],"6":["cpp","member","C++ member"],"7":["cpp","templateParam","templateParam"]},objtypes:{"0":"c:macro","1":"cpp:class","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enum","5":"cpp:enumerator","6":"cpp:member","7":"cpp:templateParam"},terms:{"002s":60,"004s":58,"005s":[60,61],"006s":[58,61],"00f1b6db":[58,60,61],"02s":61,"04it":64,"0676ba61":[60,63],"06s":58,"07s":[58,60,61],"0a0":[57,58],"0a3":57,"0c106ec84f199a0fbcf1199010166986da732f9b0907768c9ac5ea5b120772db":91,"0mib":[58,60,61,62],"0rc1":57,"10240mib":62,"10b0":57,"112mib":57,"11k":[58,60,61],"11w":58,"12288mib":57,"12k":60,"13x":58,"14x":59,"15w":60,"15x":59,"1rc0":57,"1ubuntu0":57,"1x1":63,"200w":61,"20w":62,"2453mib":57,"24576mib":[58,60],"2462mib":57,"246kb":58,"24k":[58,60,61],"250w":57,"26w":57,"28c":58,"29c":60,"2_20200626":91,"2c3":83,"2c365_subsampl":[58,60,61],"2c916ef":57,"300x300":63,"320w":62,"32bit":94,"32x32":60,"350w":[58,60],"353k":[58,60,61],"35k":[58,60,61],"35x":58,"366kb":60,"39c":57,"39mib":57,"3x3":64,"40mb":60,"42c":62,"42w":57,"442k":[58,60,61],"47681mib":61,"4fef":[58,60,61],"4mib":57,"51c":61,"53k":[58,60,61],"55c":57,"55k":[58,60,61],"608kb":61,"62w":61,"62x":59,"64bit":94,"67mib":57,"7ubuntu0":57,"818977576572eadaf62c80434a25afe44dbaa32ebda3a0919e389dcbe74f8656":91,"84e944ff11f8":[58,60,61],"84x":60,"86k":[58,61],"89k":[58,61],"8bit":64,"91a9cc5850784b2065e8a0aa3d526fd9":57,"9205bed204e2ae7aafd2e01cce0f21309e281e18d5bfd7172ef8541771539d41":91,"92k":60,"94k":[58,60,61],"99th_p":[57,59],"9ab0":[58,60,61],"abstract":[69,72,83],"boolean":64,"break":[64,82],"byte":57,"case":[1,2,3,50,53,59,62,63,65,69,72,91,92,93],"catch":[66,89],"char":[4,5,48,89,94],"class":[31,32,33,34,48,49,50,51,56,58,59,60,61,62,63,64,69,72,82,83,88,89,90,92],"const":[1,2,3,4,5,31,32,33,34,35,36,37,39,41,48,49,50,66,72,74,89,92],"default":[1,2,3,4,5,17,31,32,33,34,47,49,50,52,53,57,58,60,61,62,63,80,81,82,89,91,92,94,95],"enum":[1,2,3,46,49,50,56,58,92],"export":[57,64,91],"final":[57,65,68,70,91],"float":[53,57,58,60,62,63,74,88,89,90,92,94,95],"function":[1,2,3,4,5,50,52,53,56,57,58,59,60,62,63,64,66,69,72,88,89,91,92,95,96],"import":[57,58,59,60,61,62,63,64,66,80,82,88,89,90,91,93,94,95],"int":[1,4,5,39,48,49,53,58,61,64,74,80,89,94],"long":[53,59,65,82,83,86,94],"new":[1,2,3,4,5,36,37,50,52,53,58,60,62,63,64,69,70,72,82,89],"null":57,"public":[1,2,3,4,5,48,49,50,52,53,83,92],"return":[1,2,3,4,5,25,26,31,32,33,34,35,36,37,38,41,46,47,48,49,50,57,58,59,60,61,62,64,66,68,69,70,72,88,89,90,92],"short":[66,82,83],"static":[52,53,65,72,80,89],"super":[48,62,88],"throw":[66,89,94],"true":[1,2,3,5,50,53,57,58,59,60,61,62,63,64,66,72,74,80,83,89,92,95,96],"try":[57,58,59,60,62,70,82,83,89,95],"var":74,"void":[4,5,27,28,29,30,39,40,46,48,49],"while":[64,91,92],And:89,Are:46,Bus:[57,58,60,61,62],But:[82,89],CLS:59,DOS:83,For:[58,60,62,63,64,65,80,82,83,88,89,91,92,93,95],IDs:63,Its:[72,82],NOT:59,Not:4,One:[59,82,83,89],PRs:89,THE:82,That:82,Thats:89,The:[2,50,52,53,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,80,83,88,90,91,92,94,95],Then:[91,92,95],There:[5,59,63,64,65,70,72,83,88,91,92,93],These:[58,59,60,65,69,80,82,92],Use:[53,57,64,72,92],Useful:73,Using:[5,63,64,73,83,96],VMS:83,Will:35,With:[58,59,60,61,80,82,89,92],___torch_mangle_10:88,___torch_mangle_4847:69,___torch_mangle_5:88,___torch_mangle_9:88,__and__:74,__attribute__:47,__future__:57,__getitem__:74,__gnuc__:47,__init__:[62,82,88],__is__:74,__isnot__:74,__not__:74,__or__:74,__range_length:74,__round_to_zero_floordiv:74,__torch__:[69,88,89],__torch___pytorch_detection_ssd_src_model_ssd300_trt_engin:69,__torch___torchvision_models_resnet____torch_mangle_4847_resnet_trt_engin:69,__version__:64,__visibility__:47,__xor__:74,_affin:64,_all_:66,_bs:57,_calibr:64,_convolut:[64,74,89],_input_quant:64,_jit_intern:57,_jit_to_backend:95,_pair:64,_quant:64,_theme:87,_tmp:51,_trace:57,_validate_not_a_forked_repo:[60,61,63],_weight_quant:64,a100:[57,58,59,60,62,63],a1b:83,aarch64:70,abi:93,abil:61,abl:[58,59,60,61,62,63,65,66,72,73,92,95],about:[58,60,61,63,64,65,69,72,80,89,91,94],abov:[27,63,64,81,82,89,91],abs:74,absl:57,absolut:64,absolute_import:57,acc:64,acceler:[58,59,60,62,63,96],accept:[52,59,64,69,72,89,90,94],access:[61,63,66,72,73,80,89,95],accord:72,accordingli:[64,80],accumsan:85,accumul:53,accuraci:[63,64,92],achiev:[58,60,62,63,64],aco:74,acosh:74,acoust:57,acquir:89,across:[66,80],acthardtanh:72,action:82,activ:[64,82,89,92,96],activationtyp:72,actual:[62,64,66,69,72,88,89],adaptive_avg_pool1d:74,adaptive_avg_pool2d:74,adaptive_avg_pool3d:74,adaptive_max_pool1d:74,adaptive_max_pool2d:74,adaptive_max_pool3d:74,adaptiveavgpool2d:[60,61],add:[28,65,66,72,74,80,82,87,89,90,91],add_:[66,74,89],add_patch:63,addactiv:72,added:[27,65],adding:94,addit:[63,64,66,89],addlay:89,address:83,addshuffl:89,adipisc:[83,85],adjac:82,adjust:[64,82],adjust_lr:64,adopt:59,advanc:[83,92],advis:82,aenean:85,affin:[60,61],after:[61,63,64,65,66,73,88,89,90,93,94],again:[48,59,63,69,72,82],against:[89,94],agre:[57,58,59,60,61,62,63],agx:49,ahead:[61,89],aim:[59,66],aiohttp:57,aiosign:57,alabast:57,algo_typ:92,algorithm:[4,5,31,32,33,34,48,59,92],alias:47,align:82,align_corn:74,aliquam:85,aliquet:[83,85],all:[17,46,47,48,49,53,57,58,59,60,61,62,63,64,66,69,82,83,88,89,90,91,92,93,94],alloc:72,allow:[52,53,58,60,62,63,65,66,80,94],allow_gpu_fallback:[49,50,92,95,96],allow_tf32:74,almost:89,alpha:[63,74,83],alreadi:[57,58,59,60,61,62,63,64,65,66,89,92,94],also:[31,34,53,58,59,60,61,62,63,65,72,73,80,82,83,89,90,91,92],alter:61,altern:52,although:82,altogeth:80,alwai:[4,5,29,82,94],amax:64,amax_sequeez:64,amazonaw:[58,60,61],amet:[83,85],amount:[59,64],amp:[58,60,61],amp_backend:57,analogu:72,analysi:63,analyt:80,analytics_id:80,ancient:82,ani:[52,57,58,59,60,61,62,63,65,72,80,82,89,90,91,92,94],ann:82,anneal:64,annot:[63,72,89],anonym:82,anoth:[59,82,83,88,90],ant:85,antlr4:57,anyon:83,anyth:[82,83,93],aot:[61,73,89],apach:[57,58,59,60,61,62,63],apex:63,api:[57,61,63,64,70,72,81,89,90,92,93,95],appdir:57,appear:82,append:[57,58,59,60,61,62,63,64,74],applehelp:57,appli:[64,92],applic:[2,31,34,50,57,58,59,60,61,62,63,66,70,89,90,93,94,95,96],approach:[58,60,62,63],apr:[57,89],apt:57,arab:83,arang:74,architectur:[59,63,64,73,91],archiv:[57,60,63,91],arcu:[83,85],area:84,aren:89,arg:[57,65,86,89],argc:89,argmax:[58,59,60,61],argon2:[57,60,61,62,63],argpars:57,argument:[52,57,58,59,64,66,69,72,82,83,89,94],argv:89,around:[64,66,69,72,82,85,88],arrai:[4,5,37,57,59,65],arrayref:[49,52,53],arti:[58,60,61],arxiv:92,asin:74,asinh:74,aspect:94,asr:57,asr_model:57,assembl:[65,89],assign:[4,5,81],associ:[59,65,72,89],associatevalueandivalu:72,associatevalueandtensor:[72,89],assum:[57,64,95],ast:57,asttoken:[57,61,63],async:57,asyncio:[57,60,61,62,63],atan:74,atanh:74,aten:[53,63,64,66,71,72,74,89],attach:63,attent:59,attention_mask:59,attention_masks_tensor:59,attr:[57,60,61,62,63],attrdict:57,attribut:[66,69,82,89],auctor:85,audio:57,audioread:57,augment:59,augu:85,auth:57,author:83,auto:[48,72,82,83,89,92,96],autodoc:[82,83],automat:[58,60,62,63,82,89],avail:[58,60,61,62,63,72,80,91,94,96],ave:[60,61,62],averag:[53,58,60,61,62,63,64,94],avg:[58,63,64,94],avg_pool1d:74,avg_pool2d:74,avg_pool3d:74,avgpool:[60,61,63,64],avoid:[58,59,60,61],awai:82,await:[58,60,61],awaken:82,axes:[58,60,61],axi:[58,60,61,64,74],b_hh:74,b_ih:74,babel:57,back:[66,69,70,82,88,89],back_insert:48,backbon:[59,63],backcal:[57,60,61,62,63],backend:[57,58,59,60,61,62,63,64,81,95],background:[82,88],backlink:82,backport:57,backward:64,bar:[80,82],base:[40,54,55,58,59,60,62,63,64,69,82,88,91,92],basebal:59,baselin:[61,64],bash:91,basi:[57,58,59,60,61,62,63,82],basic:[64,83,94],batch:[4,5,48,57,58,59,60,61,62,63,64,92,96],batch_norm:[72,74],batch_siz:[48,57,59,63,64,92],batched_attention_mask:59,batched_data_:48,batched_indexed_token:59,batched_segment_id:59,batchnorm2d:[60,61],batchnorm:[63,66],batchsiz:57,batchtyp:48,bathroom:82,bazel:[70,91],bazel_vers:91,bazelbuild:91,bazelisk:91,bazelvers:91,bbox:63,bdist_wheel:91,beat:83,beautifulsoup4:[57,61],becaus:[59,72,88,89,91],becom:[59,72],bee:82,been:[65,72,83,89],befor:[53,61,63,64,66,70,72,73,89,91],beforehand:89,begin:[48,59,82,91],beginn:88,begun:82,behav:[63,84],behavior:[53,63],behaviour:[57,58,59,60,61,62,63],behind:82,being:[58,60,62,63,89],belong:82,below:[59,63,72,82,89,91],benchmark:[58,59,60,62,74],benefit:[72,89],bertformaskedlm:59,bertforpretrain:59,bertforsequenceclassif:59,berttoken:59,besid:82,best:[58,60,61,62,63,82,91],best_result:63,best_results_per_input:63,best_results_per_input_trt:63,beta:74,better:[58,60,62,63,88,92],between:[63,66,72,82,83,91,92],bfe5ad2:58,bia:[59,60,61,62,64,66,74,89],bibendum:85,bibliograph:83,bibtex:57,bidirect:59,bigger:82,bin:91,binari:[48,92],bind:[4,5,37,48,57,60,61,62,63,82],bird:[58,60,61,64],bit:[53,59,72,89],bitbucket:80,bitbucket_url:80,black:[57,63],blandit:85,blank:82,bleach:[57,60,61,62,63],blob:[71,80,92],block0:66,block1:66,block:[65,66,86,94],blue:82,bmm:74,bn1:[60,61],bn2:[60,61],bn3:[60,61],bodi:[82,83],bold:82,bool:[1,2,3,4,5,26,29,32,33,35,46,48,49,50,53,66,72,74,80,89,92],border:82,bot:63,both:[58,60,62,63,80,82,88,91,92],boto3:57,botocor:57,bottleneck:[60,61],bottom:80,bound:[63,64],box:[63,82],braceexpand:57,bracket:82,branch:[59,91],bread:82,breed:[58,60,61],briefli:88,broadli:59,broken:[57,58,59,60,61,62,63],brontosaurus:82,browser:82,bsd:[46,47,48,49],buffer:[4,5],bug:91,bui:83,build:[31,32,33,34,38,53,57,58,65,68,70,72,81,86,89,92,94],build_fil:91,builderconfig:49,built:[37,69,70,91,94],bust:[58,60,61],button:[80,82],c10:[1,2,49,50,52,53,89,92],c96b:61,c_api:71,c_str:[72,89],ca6b:[58,60],cach:[4,5,31,32,33,34,48,57,60,61,63,64,89,92,94],cache_:48,cache_fil:[48,92],cache_file_path:[4,5,31,32,33,34,48],cache_file_path_:48,cache_size_:48,cachecalibr:92,cachetool:57,cackl:83,cadenc:61,calcuat:64,calcul:[52,65,89],calendar:57,calib:64,calib_output:64,calibr:[4,5,31,32,33,34,48,53,64,89,92,94],calibrate_model:64,calibration_cache_fil:[31,32,33,34,92],calibration_dataload:[32,33,92],calibration_dataset:92,calibrationalgo:92,call:[31,32,33,34,36,53,57,58,59,60,62,63,64,66,69,72,82,88,89,95],callmethod:88,can:[1,2,5,31,32,33,34,41,50,52,53,57,58,59,60,61,62,63,64,65,66,68,69,70,72,80,82,88,89,90,91,92,93,94,95],canada:83,cannot:[51,52,62,63,64,66,81,88],canon:80,canonical_url:80,cap:[57,58,60,61,62],capabl:[18,49,53,69,94,95],capit:[59,82],caption:[82,85,86],captur:64,car:64,card:[58,59,60],cast:[4,5,66],cat:[64,74,91],caught:66,caus:[58,60,62,63,64,72,80,91],cdll:89,ceil:74,ceil_mod:[60,61,74],cell:[59,63,83],center:[58,59,60],centercrop:[58,60,61],cerr:89,certain:[57,91],certifi:[57,59],cf0691493d05062fe3239cf76773bae4c5124f4b039050dbdd291c652af3ab2a:91,cffi:[57,60,61,62,63],chain:72,challeng:64,chanc:72,chang:[31,34,58,59,60,61,62,63,66,70,80,92],changelog:86,channel:[3,58,60,61,64,81],channel_last:61,charact:82,charset:[57,59],check:[1,2,35,50,61,63,66,72,89,91,93,94],check_method_operator_support:[22,45,49,54,55],checkmethodoperatorsupport:89,checkpoint:[57,59,60,63,64],child:83,chimpansee_amber_r_1920x1080:[58,60,61],chimpanze:[58,60,61],choic:59,choos:[58,60,88],cifar10:[64,92],cifar:[64,92],circular:64,ckpt:64,ckpt_path:64,clamp:[64,74],clamp_max:74,clamp_min:74,class_pr:64,class_prob:64,classes_to_label:63,classif:[62,63,64,88,89],classifi:[62,64,83],clean:82,clear:48,cli:94,clib:57,click:[57,59,63],clickabl:82,client:[57,60,61,62,63],clone:74,close:[64,89],closer:66,closet:82,cloud:57,cloudfront:[58,60,61],cls:59,coco:63,cocodataset:63,code:[58,59,60,61,62,63,70,73,81,83,88,89,92],collapse_navig:80,collat:83,collect:[57,58,60,62,63,64,89],collect_stat:64,colon:82,color:[26,29,82],colorama:57,colored_output_on:[29,46],column:83,com:[57,58,59,60,61,62,63,71,89,91,92,93],come:[58,60,61,62,63,81,91],command:[82,83,88,89,91,94],comment:[82,91],commodo:85,common:[57,60,63,65,66,82],common_subexpression_elimin:66,commonli:83,commun:89,compani:59,compar:[59,63,64],comparis:[1,3],comparison:[2,50],compat:[1,2,50,58,60,62,63,66,69,91],compil:[22,35,41,45,49,53,54,55,57,58,59,60,61,62,63,64,66,67,69,72,80,88,90,92,93,94,95,96],compile_set:[57,92],compile_spec:[64,92,96],compilegraph:[89,92],compilesepc:37,compilespec:[4,5,22,36,41,45,49,54,55,89,92,96],compilespecstruct:[0,54],complet:[57,58,59,60,62,63,88,89],complex:[88,91],compli:63,complianc:[57,58,59,60,61,62,63,94],compliat:92,complic:91,compon:[59,62,68,70,88,93],compos:[58,60,61,62,63,64,88,92],composit:[64,89],comprehens:63,compris:59,comput:[53,57,58,59,60,61,62,63,64,82,91,92],compute_amax:64,conceiv:82,concern:59,conclus:[57,58,59,60],conda:[57,58,59,60,61,62,63,64],condimentum:85,condit:[57,58,59,60,61,62,63,82],conduc:61,conduct:59,conf:[80,87],confid:[58,60,61,63],config:[57,58,91],configur:[36,41,52,57,61,73,86,89,91,92],confirm:57,conflict:[57,58,59,60,61,62,63],congu:85,connect:[58,60,61,66,82,96],consectetur:[83,85],consid:[61,89],consist:[59,66,82],consol:94,consolid:88,constant:[61,64,65,66,89],constant_pad_nd:74,constexpr:[1,2,3,49,50],construct:[1,2,3,4,5,50,52,53,65,66,68,70,72,82,83,89,92],constructor:[1,3,50,52,53,69,88],consult:81,consum:[5,65,88],contact:83,contain:[32,33,35,57,58,59,60,61,62,63,65,66,72,82,83,88,89,91,92,93],content:[61,86,92],context:[58,62,64,65,68,69,70],contextnet:57,contigu:[3,52,53,94],continu:[58,59,60,62,63,82,93],contributor:89,control:[62,63,88],conv1:[60,61,62,88,89],conv2:[60,61,62,88,89],conv2d:[60,61,62,64,88],conv3:[60,61],conv4_x:63,conv5_x:63,conv:[53,64,89,94],conv_asr:57,conval:85,convect:52,conveni:[63,92],convent:[58,59,60,62,63],convers:[58,62,63,64,66,69,89],conversionctx:[72,89],convert:[4,5,35,36,41,57,58,60,61,62,63,64,66,67,68,70,73,90,93,95],convert_method_to_trt_engin:[22,45,49,54,55,95],convertgraphtotrtengin:89,convien:53,convienc:[4,5,53],convnet:63,convolut:[57,58,61,63,64,92,96],coordin:70,copi:[48,57,58,59,60,61,62,63,72,74,83],copy_:74,copyright:[46,47,48,49,57,58,59,60,61,62,63,83,89],core:[49,57,58,60,61,62,63,66,70,89,94,96],corpor:[46,47,48,49,57,58,59,60,61,62,63],correct:[64,69,80,91],correctli:91,correspond:[63,64,72],cos:74,cosh:74,count_include_pad:74,counterpart:64,coupl:[58,60,62,63,65,70,93],cout:89,cp38:63,cpp:[15,16,46,47,48,49,56,66,70,89,92],cpp_frontend:92,cppdirectori:[23,54],cppdoc:89,cpu:57,cra:85,creat:[31,32,33,34,37,57,58,59,60,61,62,63,64,65,69,72,82,89,94],create_model:58,create_transform:58,creating_torchscript_module_in_python:90,credit:89,crit:64,criteria:[67,68,70],cross:[64,82],crossentropyloss:64,csrc:[66,71],cstddef:92,ctc_bpe_model:57,ctx:[72,89],ctype:89,cu102:91,cuda113:91,cuda:[53,57,58,59,60,61,62,63,64,69,89,90,91,92,95],cuda_runtim:[22,49],cudafloattyp:89,cudasetdevic:39,cudnn8:91,cudnn:[57,58,59,60,61,62,63,64],cudnn_en:74,cumsum:74,curabitur:85,curl:[82,91],current:[25,58,60,69,72,80],cursu:85,custom:[58,60,91],cut:82,cxx11:93,cycler:57,cython:57,d17fnq9dkz9hgj:[58,60,61],dapibu:85,data:[1,3,4,5,31,32,33,34,48,50,52,53,57,58,59,60,62,63,64,65,68,70,72,74,82,86,92,94],data_dir:92,data_item_1:81,data_load:64,databas:57,dataflow:[72,89],dataload:[5,31,32,33,34,48,53,64,92],dataloader_:48,dataloadercalibr:92,dataloaderopt:92,dataloaderuniqueptr:[5,48],dataset:[31,34,63,64,92],datatyp:[2,22,42,49,50,52,53,54,55,58,90],datatypeclass:[0,54],date:83,dateutil:[57,60,61,62,63],david:83,dbg:91,ddof:[57,59],dead_code_elimin:66,deal:72,debian_frontend:57,debug:[17,29,49,53,64,72,94,95],debugg:94,debugpi:[57,60,61,62,63],decid:62,declar:[64,91],decod:[58,59,60,61],decode_result:63,deconvolut:96,decor:[57,60,61,62,63],dedic:[66,83],deep:[58,59,60,61,62,63,64,72,73,80,92,96],deeplearn:71,deeplearningexampl:63,deer:64,def:[57,58,59,60,61,62,63,64,82,88],default_tim:[57,59],defer:61,defin:[1,2,3,4,5,17,18,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,47,50,51,52,53,56,57,59,61,62,64,80,88,89,90,92,94],definit:[56,72,82],defusedxml:[57,60,61,62,63],deiti:82,delet:[1,2,3,49,50,66],delimit:66,demo:[58,59,60,63,82,86,92],demonstr:[57,58,59,60,61,62,63,82,83,84,92],demonstrat:[58,60],denorm:63,denot:[59,82],dep:91,depend:[31,34,38,57,61,63,64,65,70,89,93],depickl:69,deploi:[58,60,61,62,63,68,70,73,89,92],deploy:[58,60,62,63,64,89,90,92,93,94,96],deprec:[57,74],depth:80,dequantizelay:64,descclassnam:82,descnam:82,describ:[53,60,62,63,72,88,95],descript:[61,83],deseri:89,design:[58,59,60,62,63,96],desir:[64,83,92],destini:83,destroi:[72,83],destructor:72,detail:[58,60,61,64,88,89,93],detect:[52,60,64,69],detections_batch:63,determin:[58,66],determinist:74,develop:[57,58,59,60,62,63,73,82,83,89,91],devhelp:57,deviat:94,devic:[0,22,37,39,42,49,53,54,55,58,60,62,63,64,69,74,90,92,94,95,96],device_typ:[49,50,92,95,96],deviceclass:[0,54],devicetyp:[22,42,49,50,54,55,92,95,96],devicetypestruct:[0,54],diam:85,dict:63,dictionari:[59,95],dictum:85,dictumst:85,did:82,didn:82,differ:[31,34,59,61,62,63,64,66,70,73,80,88],differenti:[58,60,62,63],digit:57,dignissim:85,dilat:[60,61,62,63,64,74],dim0:74,dim1:74,dim:[58,60,61,64,74],dim_int:74,dim_intlist:74,dimens:[52,61,66],dir:64,direct:[86,93],directli:[72,73,91,92],directori:[19,20,21,22,23,46,47,48,49,51,54,64,91,92],disabl:[58,60,61,62,63,64,80,81,91,94],disable_calib:64,disable_qu:64,disable_tf32:[49,53,92],disclos:91,disconnect:82,discret:82,discuss:61,disp:[57,58,60,61,62],displai:[80,94],display_github:80,display_gitlab:80,display_vers:80,disregard:58,dist:91,distanc:57,distdir:91,distribut:[57,58,59,60,61,62,63,89,92,93],div:74,div_:74,divis:57,divisor_overrid:74,django:81,dl_open:93,dla:[2,49,50,73,94],dla_cor:[49,50,92,94,95,96],dla_standalon:94,dlacor:94,doc:[64,70,71,80,81,82,87,91],docker:[57,58,59,60,62,63],docopt:57,docsrc:70,docstr:[82,83],document:[46,47,48,49,54,55,58,60,61,70,80,82,83,86,87,88,89,92,93,95],docutil:[57,82,83],doe:[47,48,59,63,66,72,82,92],doesn:[64,82,88,89],dog:64,doing:[65,66,89,92],dolor:[83,85],domain:[83,92],don:[62,72,80,82,83,92],done:[57,61,63,65,70],donec:[83,85],dont:46,dothismethod:82,dotpai:81,dotpayprovid:81,doubl:[53,82,94],down:[58,60,62,63,80,91],download:[57,58,60,62,63,64,86,91,92],downsampl:[60,61],doxygen:51,doxygen_should_skip_thi:[48,49],doxygenstruct:51,dream:83,driver:[57,58,60,61,62,91],drop:[63,80,91],dtype:[49,52,53,57,58,59,60,61,62,63,64,74,90,94],dual:82,due:[4,5,58,60,62,63,64,81,82,91],dui:[83,85],dummi:59,dump:[40,91,94],dump_build_info:[22,42,49,54,55],durat:82,dure:[53,64,72,92,93,94],dynam:[52,53,63,64],e1109:64,each:[4,5,53,59,63,64,65,66,69,72,80,82,89,91],eager:[58,60,62,63],ear:82,earliest:64,eas:47,easi:[65,66,89,92,94],easier:[59,64,68,70,72,89,92],easiest:91,easili:[4,5],ecc:[57,58,60,61,62],echo:82,ecosystem:[58,60,62,63],edg:82,edgecolor:63,edit:80,editdist:57,edu:92,effect:[57,64,66,80,89,92],effici:72,efficientnet:[60,63],efficientnet_b0:58,efficientnet_b0_model:58,efficientnet_preprocess:58,efficitur:85,effort:61,egesta:85,eget:85,either:[52,53,57,58,59,60,61,62,63,72,80,82,88,89,91,94],eleifend:83,element:[59,69,82,83,86],element_typ:48,elementum:85,elit:[83,85],elk:82,els:[47,48,52,57,64,82,83],elu:74,emb:[37,83,94],embed:[69,74,82,94,96],embed_engine_in_new_modul:[22,45,49,54,55],emit:65,emphasi:82,emploi:59,empti:[53,62,83,88],emum:[17,18],enabl:[4,5,26,53,58,60,61,62,63,64,67,68,70,80,94],enable_calib:64,enable_precis:89,enable_qu:64,enabled_precis:[49,53,57,58,59,60,61,62,63,64,89,90,92,95,96],enalbed_precis:96,enc:59,enc_input:59,encdecctcmodelbp:57,encod:[57,59,69],encoded_input:59,encorag:[58,59,60,61],encount:91,end:[48,72,74,82,89,92,94],end_dim:[74,89],end_tim:[57,58,59,60,61,62,63,64],endif:[47,48,49],energi:82,enforc:89,engin:[1,2,18,36,37,41,49,50,52,53,57,59,61,65,68,70,73,80,89,90,92,93,94,95,96],engine_converted_from_jit:89,enginecap:[0,22,42,49,53,54,55,95],english:59,enhanc:[63,82],enim:85,enjoi:59,enough:64,ensur:[31,34,64,66],enter:[59,65],entir:[64,82],entiti:82,entri:[53,72],entropi:[31,32,33,34,64,92],entropy_calibration_2:92,entrypoint:[57,60,61,62,63],enumer:[1,2,3,17,18,50,59,64],environ:[57,58,59,60,61,62,63],epoch:64,eps:[60,61,74],equat:82,equival:[36,62,63,68,70,72,88,89,92],equivil:41,erat:85,erf:74,eric:82,ero:85,error:[17,53,57,58,59,60,62,63,65,66,70,82,89,91,94],eskimo_dog:58,essenc:82,essenti:61,est:85,eta:[58,60,62,63],etc:[80,82,96],etiam:85,euismod:85,eval:[57,58,60,61,62,63,64,89,90],evalu:[63,68,69,70],evaluated_value_map:[65,72],even:89,event:52,everi:89,everyth:17,exactli:[59,63],examin:59,exampl:[52,58,60,61,62,63,64,69,70,72,80,81,83,86,88,89,92,93],exceedingli:82,except:[57,58,59,60,61,62,63],exception_elimin:66,excerpt:83,excit:57,execpt:66,execut:[37,57,58,60,61,62,63,66,68,69,70,88,89,92,94],execute_engin:[69,89],exert:82,exeuct:69,exhaust:89,exist:[5,35,36,41,57,91,92],exp:74,expand:[66,74],expand_a:74,expanded_pad:64,expect:[52,53,58,59,60,61,62,63,66,72,89],experi:[58,59,60,62,63],experiment:64,explan:61,explic:[48,64],explicit:[4,5,49,61,66,73,82,92],explicitli:[59,64,67,68,70,92,95],explict:48,explictli:1,expon:74,export_util:57,expos:92,express:[57,58,59,60,61,62,63,82],ext:[82,83],extend:[57,68,70,72,74,89],extens:[57,59,63],extent:[61,73,89],extern:[80,82],extra:[53,89],extract:89,extractor:62,extrem:82,eyes:82,f16:[89,94,96],f32:94,facecolor:63,facilisi:85,fact:91,facto:82,factori:[5,31,32,33,34,92],fail:[89,96],fake:64,fake_quantize_per_:64,fake_quantize_per_channel_affin:[64,74],fake_quantize_per_tensor_affin:[64,74],fallback:[67,68,70,72,94,96],fals:[1,2,3,4,5,48,49,50,53,57,60,61,63,64,74,80,81,82,83,89,92,95],fame:85,famili:[58,60,62,63,64],familyhandyman:[58,60,61],fan:[57,58,60,61,62],far:82,fashion:89,faster:64,fastjsonschema:61,fasttext:57,faucibu:85,fbed:[58,60,61],fc1:[62,88,89],fc2:[62,88,89],fc3:[62,88,89],feat:[62,88,89],featur:[57,58,59,60,61,62,63,64,89,92,94,95],feb:[58,60,62],fed:[4,5,52],feed:[31,32,33,34,64,89],feel:[61,73],feli:85,feugiat:[83,85],few:[58,60,62,63],ffmpeg:57,field:[4,5,92],fifth:83,fig:[58,60,61,63],figur:[83,85],file:[1,2,3,4,5,6,7,8,9,10,11,12,13,17,18,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,50,51,52,53,57,58,59,60,61,62,63,64,69,70,80,81,83,87,89,91,92,94],file_path:94,filelock:[57,59],filer_publ:[58,60,61],filer_public_thumbnail:[58,60,61],fill:[57,58,59,60,62],filter:[57,63,64],find:[5,51,59,63,89],fine:[57,64],finetun:64,finibu:85,finish:63,first:[52,57,59,62,63,64,65,66,82,83,89,90,92],fit:82,five:63,fix:[53,60,63,82,96],fixed_s:[49,53],flag:[64,67,68,70,91,93,94],flatten:[62,74,88,89],flatten_convert:89,flexibl:[58,60,62,63],float16:[57,58,60,62,63,94],float32:[52,53,57,58,59,60,61,64,94],float_int:74,floor:74,floor_divid:74,floordiv:74,flow:[62,63,64,72,82,88],flox:82,fluent:59,flush:82,fly:88,fmax:57,fmin:57,focal:57,fold:83,follow:[37,57,58,59,60,61,62,63,64,69,80,82,83,87,88,89,91,92,93,94],fonttool:57,foo:[82,83],footprint:[58,60,62,63],forc:[80,94],form:[57,59,65,82],format:[37,49,52,53,57,58,59,60,61,62,63,64,74,82,83,90,94],forth:83,forum:91,forward:[31,32,33,34,36,37,62,64,69,72,88,89,92,95],found:[46,47,48,49,57,58,60,61,62,63,82,89,91,92,93],four:[82,83],fp16:[1,52,53,59,61,62,63,64,73,89,90,94,96],fp32:[1,52,53,59,61,62,63,64,73,92,94],frac:82,framework:[58,60,62,63],franc:59,freed:72,freeli:61,freeze_modul:66,fri:58,friend:49,fringilla:85,frog:64,from:[1,2,3,4,5,31,32,33,34,48,50,51,52,53,57,58,59,60,62,63,64,65,66,68,69,70,72,73,80,81,82,83,88,89,92,94],from_pretrain:[57,59],frozen:64,frozendict:57,frozenlist:57,fssl:91,fsspec:57,fstream:[21,48],full:[53,64,72,89,92,93,94,96],fulli:[35,66,89,92,94,96],fusc:85,fuse:[58,60,62,63],fuse_addmm_branch:66,fuse_flatten_linear:66,fuse_linear:66,fusion:72,futur:[57,58,59,60,62,64],futurewarn:57,g2p:57,gain:63,game:59,gamma:74,gatewai:81,gaurd:47,gcc:[70,89],gdown:57,gear:92,geforc:[58,60,62],gener:[4,5,31,34,57,58,59,60,61,62,63,64,66,69,70,72,80,82,83,86,88,89,91,92,94],genutil:[57,60,61,62,63],geometr:59,get:[1,2,3,4,5,25,38,48,50,63,64,66,72,91,92],get_batch_impl:48,get_build_info:[22,42,49,54,55],get_coco_object_dictionari:63,get_is_colored_output_on:[19,43,46,54,55],get_logging_prefix:[19,43,46,54,55],get_model_size_mb:57,get_reportable_log_level:[19,43,46,54,55],getattr:[57,66,69,88,89],getbatch:[4,5,48],getbatchs:[4,5,48],getdimens:[72,89],getoutput:[72,89],git:86,gitdb:57,github:[57,58,59,60,62,63,71,80,89,91,92,93],github_url:80,gitlab:80,gitlab_url:80,gitpython:57,give:[62,80,82],given:[52,53,59,63,66,88,89,94,95],global:[28,64,89],gnu:91,goal:72,goe:[64,82],going:[48,58,60,61,62,63,64,88,89],good:[48,72,82],goodger:83,googl:[57,59,80],got:[82,89],govern:[57,58,59,60,61,62,63],gpu:[2,36,39,41,49,50,57,58,59,60,61,62,63,64,89,92,94,95,96],gpu_id:[39,49,50,92,94,95,96],granular:62,graph:[17,35,36,41,49,57,58,60,61,62,63,64,65,68,70,72,73,88,89,94],graphic:61,graphnam:[57,59],gravida:85,great:[58,60,62,63,82,89],green_mamba:[60,61],group:[64,74,82,83],grpcio:57,gru_cel:74,gtc:73,guangzhou:83,guard:66,guard_elimin:66,guess:59,gui:82,guid:81,gulf:[58,60,61],h5py:57,habit:85,habitass:85,hac:85,hack:48,hakaimagazin:[58,60,61],half:[59,61,62,63,64,82,89,90,92,94,95,96],handl:[63,66,69],happen:[62,64,88],hardtanh:[72,74],hardtanh_:74,hardwar:[58,60,62,63,96],has:[57,58,59,60,61,62,63,64,65,66,67,68,70,72,82,83,88,89,92],hasattr:57,hash:91,have:[31,34,37,48,57,58,59,60,61,62,63,65,66,72,73,82,88,89,91,92,94],haven:89,head:63,header:[58,60,61,80,82,83,89],heart:83,heaven:82,heck:82,heh:83,hehe:83,height:82,help:[29,57,58,59,60,62,64,65,72,89,93,94],helper:[57,62,63,64,72],henc:59,hendrerit:85,here:[48,57,58,59,60,61,62,63,65,69,80,82,83,88,89,91,92,93],hermet:91,hexagram:82,hfile:[23,54],hidden:[47,59,80],hierarchi:64,high:[58,60,63,66,80],higher:[59,66,80,82,88],highfreq:57,highli:61,highlight:82,hinton:92,his:82,hist_percentil:64,histogram:64,historgram:64,hit:57,hold:[50,52,65,72,92],holder:[69,84],holi:82,home:91,hood:[70,90],hope:83,hors:64,host:[60,61,62,63,64,91],how:[4,5,58,59,60,61,63,64,82,84,86,88,93,95],howev:[31,34,58,60,62,63,80,81,91],html:[64,71,82,88,91,92],html_theme:87,html_theme_opt:80,html_theme_path:87,htmlhelp:57,http:[57,58,59,60,61,62,63,64,71,80,82,88,89,91,92,93],http_archiv:91,hub:[57,59,60,63],huge:59,huggingfac:[57,59],human:82,humankind:83,huski:[58,60,61],hydra:57,hyperlink:82,hyphen:82,iaculi:85,icon:[80,82],idea:[66,82],ident:[59,94],idna:[57,59],idx:[63,74],ifndef:[48,49],ifstream:48,iii:83,iint8calibr:[4,5,31,32,33,34,48,49,53,92],iint8entropycalibrator2:[4,5,31,32,33,34,48,92],iint8minmaxcalibr:[31,32,33,34,92],ilay:72,illustr:64,imag:[58,60,61,63,64,92],image_classif:63,image_idx:63,imageio:63,imagenet:[58,60,61,64],imagenet_cla:[58,60,61],imagenet_class_index:[58,60,61],images:57,images_:92,img0:[58,60,61],img1:[58,60,61],img2:[58,60,61],img3:[58,60,61],img:[58,60,61],img_path:[58,60,61],impact:[58,59,60,62,63],imperdiet:85,implement:[4,5,58,59,60,61,62,63,66,69,81,89,92,93],impli:[57,58,59,60,61,62,63],implic:66,implicit:[74,82],importlib:[57,60,61,62,63],improv:[64,83],imshow:[58,60,61,63],in_featur:[60,61,62],in_shap:89,in_tensor:88,incas:48,includ:[14,16,17,38,40,46,47,48,49,56,58,60,62,63,67,68,69,70,80,82,88,89,91,92,94],includedirectori:[23,54],includehidden:80,incompat:91,incorpor:83,incorrect:64,incred:86,ind:[58,60,61],inde:[58,60,62,63],indent:82,independ:63,index:[37,57,58,59,60,61,62,63,64,71,73,74,80,86,92],indic:[57,59,74,80,82],indigo_bunt:58,indirect:82,inetworkdefinit:65,infer:[57,58,59,60,62,64,66,89,92],inflect:57,info:[17,36,41,49,53,72,89,94],inform:[27,37,38,40,52,57,61,63,64,65,69,73,82,88,89,91,92,94,95],infrastructur:92,ingest:70,inherit:[54,55,92],iniconfig:57,init_weight:64,initi:[57,59,64,82],injuri:82,inlin:[48,57,60,61,62,63,66,83,86,89],inner:[53,83],innings:59,inplac:[60,61],input0:89,input1:89,input2:89,input:[4,5,22,31,34,37,42,48,49,53,54,55,57,58,59,60,61,62,63,64,65,66,69,72,74,83,88,89,90,92,94,95,96],input_0:[69,89],input_batch:[58,60,61],input_data:[58,60,61,62,63,64,88,90],input_file_path:[94,96],input_id:59,input_is_dynam:49,input_s:89,input_scal:74,input_shap:[57,58,60,61,62,63,64,92,96],input_spec:94,input_tensor1:59,input_tensor2:59,input_tensor3:59,input_tensor:[57,58,60,61],inputclass:[0,54],inputrang:89,inreleas:57,insert:[64,89,92],insid:82,inspect:[58,60,62,63,72,88,89],instal:[57,58,59,60,61,62,63,64,73,86,89,93],instanc:[59,62,66,88,89],instance_norm:74,instanti:[57,68,69,70,72,89],instatin:[1,2,3,50],instead:[53,57,58,59,60,61,62,63,64,65,66,89,93,94],instnanti:69,instruct:[67,68,70,89,91],insur:91,int32:[59,61],int64_t:[49,50,52,53,92,96],int8:[1,48,52,53,61,73,92,94,96],int8_t:49,int8cachecalibr:[21,31,34,44,48,54,55],int8cachecalibratortempl:[0,54],int8calibr:[4,21,32,33,44,48,54,55],int8calibratornamespac:[0,54],int_float:74,integ:[64,85],integr:[58,59,60,61,62,63,73],intend:[57,91],intent:[66,82],interact:82,intercompat:63,interdum:85,interest:[66,82],interfac:[1,2,3,50,69,70,72,92],interfer:82,intermedi:[17,58,60,62,63,88],intern:[2,17,50,58,60,62,63,64,72,82,89],interpol:[58,82],interpolationmod:58,interpret:[58,60,62,63,69,82],intro_to_torchscript_tutori:88,introduc:[58,60,62,63,64],introduct:59,invalid:64,invok:[88,89],involv:[57,58,59,60,62],ios:48,iostream:[21,22,48,49,89],ipad:57,ipso:82,ipsum:[83,85],ipykernel:[57,60,61,62,63],ipython:[57,60,61,62,63],ipywidget:[57,60,61,62,63,64],is_avail:[58,60,61],is_floating_point:74,is_tar:57,is_train:92,iscustomclass:72,isinst:64,isn:[80,82],isort:57,issu:[4,5,57,58,59,60,62,89,91],istensor:72,istream_iter:48,it_:48,ital:82,item:[57,58,59,60,61,64,81,83],itensor:[65,72,89],iter:[21,48,53,57,58,59,60,61,62,63,64,65,94],its:[31,34,58,60,62,63,65,69,72,82],itself:[1,2,3,50,66,91,94,95],ivalu:[65,69,72,89],jan:83,jarowinkl:57,jedi:[57,60,61,62,63],jetpack:91,jetpack_4:91,jetson:[58,60,62,63],jieba:57,jinja2:[57,60,61,62,63],jit:[35,36,37,41,49,57,58,59,60,61,62,63,64,65,66,68,69,70,71,72,88,89,90,94,95],jit_model:64,jmespath:57,joblib:[57,59],join:64,jpeg:[58,60,61],jpg:[58,60,61,63],jpg__1920x1080_q85_subject_loc:[58,60,61],jsmath:57,json:[58,60,61],json_fil:[58,60,61],jsonschema:[57,60,61,62,63],jupyt:[57,60,61,62,63],jupyterlab:[57,60,61,62,63],jupyterlab_widget:[60,62,63],just:[48,49,58,59,60,61,63,66,73,82,84,88,89,90,93,95],justo:[83,85],kaldi:57,kaldiio:57,kbool:[1,49],kchannelslast:[3,49],kchar:[1,49],kclip:72,kcontigu:[3,49,52],kcpu:[2,50],kcuda:[2,50,89],kdebug:[17,46,48],kdla:[2,49,50,96],kdla_standalon:[18,49],keepdim:74,kei:[59,64,82,88],kept:[64,83],kernel:[52,53,58,60,62,63,72,94],kernel_s:[60,61,62,74],kerror:[17,46],keyboard:82,keyword:57,kf16:[92,96],kfloat:[1,49,53],kgpu:[2,49,50],kgraph:[17,46,66],khalf:[1,49,89],ki8:92,kind:[57,58,59,60,61,62,63,65],kinfo:[17,46,48],kint:[1,49],kinternal_error:[17,46],kiwisolv:57,know:[46,72,80,82],knowledg:82,kriz:92,krizhevski:92,ksafeti:[18,49],kstandard:[18,49,53],ktest:92,ktrain:92,kunknown:[1,3,49],kwarg:64,kwarn:[17,46],label:[58,60,61,63,64,82,92],lacinia:85,lack:[67,68,70],lacu:85,laid:89,lambda:[60,61,63,72,82,89],lang:81,languag:[57,58,60,61,62,63,81,82,83,88],laoreet:85,larg:[58,59,60,62,63,64,68,70,80,82,89,92],larger:[80,92],largest:74,last:[3,57,63,66],latenc:[57,59],later:[31,34,59,89],latest:[58,59,60,80,91],latexcodec:57,law:[57,58,59,60,61,62,63],layer1:[60,61],layer2:[60,61],layer3:[60,61],layer4:[60,61],layer:[50,53,58,60,62,63,64,65,66,72,89,92,94,96],layer_norm:74,layout:[3,52,74],ld_library_path:91,ld_preload:93,ldd:91,lead:82,leader:82,leaky_relu:74,leaky_relu_:74,learn:[61,64,73,89,91,92,96],leas:83,least:[58,59,60,82,83],leav:[62,64,66],lectu:[83,85],left:[63,80,82],legend:82,len:[57,59,63,64,74],lenet:[88,89],lenet_script:[88,89],lenetclassifi:[62,88],lenetfeatextractor:[62,88],length:[4,5,48,58,59,60,61,74,83],leo:85,let:[50,57,58,60,61,62,63,66,72,80,82,94],letter:[57,83],level:[19,25,27,28,43,46,48,54,55,58,59,60,62,63,64,66,70,86,88],levelnamespac:[0,54],leverag:[58,60,61,62,63,92],lib:[57,58,59,60,61,62,63,64,66,89,91],libero:[83,85],librari:[38,46,47,48,49,58,60,61,62,63,64,68,69,70,72,89],librosa:57,libsndfile1:57,libtorch:[5,40,58,60,62,63,72,89,91,92],libtorch_pre_cxx11_abi:91,libtorchtrt:[89,91,94],libtorchtrt_plugin:93,libtorchtrt_runtim:93,licens:[46,47,48,49,57,58,59,60,61,62,63,89],light:82,lightn:57,lightningdeprecationwarn:57,lightningmodul:57,ligula:85,like:[58,60,62,63,65,66,69,72,81,82,88,89,90,91,92,93,94],limit:[57,58,59,60,61,62,63,66,81,92],line:[83,89,94],linear:[3,60,61,62,64,74,88],linewidth:63,link:[65,73,80,81,86,89,93,94],linux:[70,89,91],list:[19,20,21,22,35,53,56,57,59,63,64,65,69,72,74,86,89,90,91],listconstruct:[65,69,89],listunpack:[69,89],liter:83,literal:83,literal_block:82,live:[72,82],llvmlite:57,load:[57,58,60,61,63,64,69,89,90,92,93,94,95],load_calib_amax:64,load_librari:93,load_state_dict:64,loader:[57,58,60,62,63],loading_data_recip:92,loborti:[83,85],local:[63,64,66,80,89],locat:[63,91,92],lock:81,log:[16,17,20,21,23,42,48,54,55,56,59,64,66,72,73,74,77],log_debug:72,loggingenum:[0,54],logo_onli:80,lone:83,longer:[58,60,62,63,80,93],look:[57,58,59,60,61,62,63,64,65,66,88,92,95],loop_unrol:66,lorem:[83,85],lorikeet:[60,61],lose:80,loss:[64,92],lot:72,lower:[17,61,83],lower_graph:66,lower_tupl:66,loweralltupl:66,lowersimpletupl:66,lowfreq:57,lstm_cell:74,ltorchtrt:93,luctu:85,lvl:[27,28,46],machin:[58,60,62,63,69,91,92],macro:[6,7,8,9,10,11,12,13,16,19,22,23,46,49,54,56],mad:82,made:[63,66,68,70,82],maecena:85,magna:85,mai:[57,58,59,60,61,62,63,65,69,70,82,83,88,89,91,92],main:[63,66,68,69,70,72,80,82,84,89],maintain:[59,69,72],major:[58,60,62,63,70],make:[58,59,60,61,62,63,65,82,84,89,90,91,92,96],make_data_load:[5,92],make_int8_cache_calibr:[21,44,48,54,55,92],make_int8_calibr:[21,31,34,44,48,54,55,92],malesuada:85,man:[82,83],manag:[57,58,59,60,61,62,63,65,68,70,72,89],mangag:66,mani:[80,82,83],manifest_filepath:57,mantissa:53,manual:[81,82,91],manual_se:57,manylinux2014_x86_64:63,manylinux_2_17_x86_64:63,map:[2,50,65,66,68,70,72,89,92,95],mark:[58,66,80],markdown:57,marknodesforfallback:66,markup:[83,86],markup_process:82,markupsaf:[57,60,61,62,63],marshmallow:57,mask:[57,74],masked_fil:74,masked_sent:59,massa:85,master:[71,91,92,93],mat2:74,match:[53,66,91],math:86,mathemat:59,matmul:[66,74,89],matplotlib:[57,58,60,61,62,63],matric:59,matrix:71,matti:83,matur:70,mauri:[83,85],max:[52,53,60,61,62,63,64,72,74,80,94],max_bound:64,max_c:94,max_dur:57,max_h:94,max_length:59,max_n:94,max_pool1d:74,max_pool2d:[62,74,88,89],max_pool3d:74,max_shap:[49,52,61,62,90],max_val:[72,74],max_valu:64,max_w:94,maxcalibr:64,maxim:61,maximu:85,maximum:[52,53,58,59,60,61,64,94],maxpool2d:[60,61],maxpool:[60,61],mayb:82,mbs:94,mean:[57,58,59,60,61,62,63,64,72,73,74],mecab:57,mechan:[57,59,72],media:[58,60,61],median:[57,59],medium:82,mel:57,member:[50,52,53],memeori:3,memori:[21,22,48,49,53,57,58,60,61,62,63,66,72,89,90],memory_format:74,memoryformat:[3,49],men:82,mental:82,menu:[80,82,86,94],menuselect:82,messag:[17,27,28,94],meta:86,metadata:[57,69,72,80],meth:82,method:[35,36,37,41,52,57,58,60,61,62,63,64,66,72,82,88,89,91,94,95],method_nam:[35,41,49,89,94],metric:57,metu:85,middl:82,mig:[57,58,60,61,62],might:[59,64,66,80,91],min:[52,53,72,74,94],min_block_s:[49,53],min_bound:64,min_c:94,min_h:94,min_n:94,min_shap:[49,52,61,62,90],min_val:[72,74],min_valu:64,min_w:94,mind:82,mine:82,mini:[58,60,61],minim:[53,92,94],minimum:[52,53,61,94],minmax:[31,32,33,34,92],misbuild:80,miss:[82,89],mistun:[57,60,61,62,63],mix:63,mixin:57,mkdir:[58,60,61,91],mlm_model_t:59,mmb:82,mobilenet_v2:95,mod:[57,86,89,92,94],mode:[64,90,92],mode_:92,model:[57,69,88,89,90,92,94,95],model_math:63,model_nam:[57,64],model_s:57,model_state_dict:64,modelpt:57,modern:63,modifi:[83,91],modified_state_dict:64,modul:[35,36,37,41,49,53,57,58,59,60,61,62,63,64,67,68,69,70,72,73,81,82,83,90,92,94,95,96],modular:89,module_fallback:66,module_nam:94,molesti:85,momentum:[60,61,64,74],mon:61,month:57,monthli:[57,61],morbi:85,more:[58,60,61,62,63,64,65,73,80,83,88,89,91,92,93,95],most:[59,70,91,93],most_likely_token_id:59,most_likely_token_ids_trt:59,mother:82,motion:82,mous:82,move:[32,33,48,49,58,60,61,62,63,66,69,89,92],mpmath:57,mse:64,msg:[28,46,57,59],much:[72,80,82,92],mul:[64,74],mul_:74,multi:94,multidict:57,multipl:[69,82,83,92],multipli:53,must:[37,52,53,59,63,66,72,82,83,89,91,93,94],mutil:83,myclass:82,mymodel:90,mypi:63,myself:83,n01537544:58,n01739381:58,n01749939:[60,61],n01820546:[60,61],n02109961:58,n02110185:[60,61],n02481823:[58,60,61],n_fft:57,n_mel:57,nabla:82,nam:[83,85],name:[4,5,35,37,41,48,57,58,60,61,62,63,64,69,72,82,83,88,89,91,95],named_modul:64,namespac:[0,46,47,48,49,56,66,73,92],narrow:[64,74],nativ:[64,70,71,89],native_funct:71,natur:[59,82],nav:[80,86],navig:80,navigation_depth:80,nbbind:[4,5,48],nbclient:[57,60,61,62,63],nbconvert:[57,60,61,62,63],nbformat:[57,60,61,62,63],nchw:3,ncol:[58,60,61],nec:85,necessari:[46,93],need:[1,2,3,27,31,34,47,50,58,60,61,63,65,66,72,82,89,90,91,92,93],neg:74,negative_slop:74,nemo:57,nemo_1:57,nemo_asr:57,nemo_log:57,nemo_toolkit:57,nequ:[83,85],nest:[54,55,57,60,61,62,63,82,83],net:[58,60,61,72,82,83,89],netu:85,network:[31,32,33,34,58,60,62,63,64,72,89,92,96],networkx:63,neural:[58,60,63,96],new_lay:72,new_level:59,new_local_repositori:91,new_lr:64,new_siz:92,newer:[58,60,62,63],newest:57,newli:57,next:[4,5,63,64,65,69,80,82,83,92],nfilt:57,ngc:[57,58,59,60,61,62,63,91],nhwc:[3,94],nibh:[83,85],nice:91,nickel:82,night:83,nine:59,ninja:91,nisi:85,nisl:85,nlp:[31,32,33,34,59,92],nltk:57,no_grad:[57,58,59,60,61,62,63,64],node:[64,66,67,68,70,72,89],node_info:[72,89],noexcept:[4,5,48,92],non:[83,85],non_block:[64,74],none:[58,60,62,63,64,72,74,80,82],nonetheless:82,nonexist:82,noninteract:57,norm:74,normal:[1,2,3,50,57,58,59,60,61,62,63,64,82,88,89,92,96],normalized_shap:74,noskipw:48,notatemoduleforfallback:66,note:[2,50,52,59,72,80,82,89,91,96],notebook:[57,58,59,60,61,62,63,64,70],notic:[62,63],now:[57,58,59,60,62,63,66,70,72,82,89,91,95],nrow:[58,60,61],nrun:[58,60,61,62,63,64],nulla:85,nullptr:[48,49,53],num:[57,59,94],num_avg_timing_it:[49,53,95],num_batch:64,num_bit:64,num_calib_batch:64,num_class:64,num_epoch:64,num_it:94,num_loop:[57,59],num_min_timing_it:[49,53,95],num_op:94,num_work:[64,92],numba:57,number:[4,5,53,57,58,59,60,64,66,72,80,89,94],numel:74,numer:[57,83,94],numpi:[57,58,59,60,61,62,63,64],nunc:85,nvcr:57,nvidia:[36,41,46,47,48,49,57,58,59,60,61,62,63,64,71,89,91,92,93,94,96],nvidia_convnets_processing_util:63,nvidia_deeplearningexamples_torchhub:63,nvidia_efficientnet:63,nvidia_efficientnet_b0:63,nvidia_efficientnet_b4:63,nvidia_efficientnet_widese_b0:63,nvidia_efficientnet_widese_b4:63,nvidia_resnet50:63,nvidia_resnext101_32x4d:63,nvidia_resnext:63,nvidia_se_resnext101_32x4d:63,nvidia_ssd:63,nvidia_ssd_processing_util:63,nvidia_ssdpyt_amp_200703:63,nvidia_tacotron2:63,nvidia_tts_util:63,nvidia_waveglow:63,nvinfer1:[4,5,31,32,33,34,48,49,53,72,92],nvinfer:[21,48],nwarmup:[58,60,61,62,63,64],oauthlib:57,obj:74,object:[1,2,3,4,5,50,52,53,69,72,92,95],observ:[57,58,59,60,64],obsolet:63,obtain:[57,58,59,60,61,62,63,64,90],obvious:88,octet:[58,60,61],odio:[83,85],off:[57,58,60,61,62,63,69],offici:91,ofstream:[48,89],often:82,okai:53,older:70,omegaconf:57,onc:[46,47,48,49,65,66,69,92,93],one:[59,63,64,66,72,82,88,89],ones:[46,58,60,62,63,67,68,70,82,89,91],onli:[2,4,5,17,31,34,48,50,52,62,63,66,70,72,82,91,92,93,94,96],onnx:[57,66],onto:[69,94],onward:[58,60,61],op_nam:94,op_precis:[58,60,61,63],open:[58,60,61,62,63],opencc:57,oper:[1,2,3,4,5,35,48,49,50,53,58,60,61,62,63,64,65,66,67,68,69,70,72,73,90,92,94,96],ops:[58,59,60,61,63,64,66,89,93,94],opset:[68,70],opt:[52,53,57,58,59,60,61,62,63,64,91],opt_c:94,opt_h:94,opt_n:94,opt_shap:[49,52,61,62,90],opt_state_dict:64,opt_w:94,optim:[52,57,58,59,60,61,62,63,64,66,73,88,89,90,94],optimin:52,optimiz:[58,60,62,63,88],optimized_execut:57,option:[48,52,67,68,70,82,86,91,92,93,94,96],orchestra:82,orci:85,order:[53,63,72,89,90],org:[57,58,59,60,61,62,63,64,71,80,82,88,89,91,92],organ:83,origin:[57,59,63,64],original_nam:62,ornar:[83,85],ostream:49,other:[1,2,3,49,50,58,60,61,62,63,64,65,66,69,73,74,81,82,89,90,91,93,94],otherwis:[58,59,60,91,93],our:[58,59,60,61,62,63,70,88,89],out:[35,48,57,58,59,60,61,62,64,65,66,68,70,72,82,89,91],out_dir:64,out_featur:[60,61,62],out_shap:89,out_tensor:[72,89],output0:66,output:[26,29,37,51,53,58,59,60,61,62,63,64,65,66,69,72,80,82,83,89,91,94],output_file_path:[94,96],output_pad:74,output_s:[60,61,74],output_trt:59,outself:89,outsid:82,over:[58,60,61,62,68,70,82],overkil:62,overrid:[4,5,31,32,33,34,48,92],overview:[59,71,73],own:[57,58,59,60,62,72,82,89],packag:[57,58,59,60,61,62,63,64,66,89,94],pad:[57,59,60,61,64,74],padding_idx:74,padding_mod:64,page:[61,73,84,86],pair:[57,66,72,82,91,92],panda:57,pandocfilt:[57,60,61,62,63],pane:82,pangu:57,paper:[58,60,63],paragraph:[83,86],parallel:59,param_group:64,paramet:[1,2,3,4,5,27,28,29,31,32,33,34,35,36,37,39,41,50,52,53,64,65,66,72,86,88,89],parameter:57,parent:[15,16,19,20,21,22],pari:59,pars:[64,82,89],parser:82,parso:[57,60,61,62,63],part:[57,70,80,81,82,94],parti:61,partial:[58,60,62,63,82,94],particular:62,particularli:59,partit:66,pass:[57,59,64,65,67,68,69,70,72,88,89,92],past:82,patch:63,path:[5,14,15,16,31,32,33,34,62,63,64,88,89,91,92,94],path_to_torchtrt_root:91,pathspec:[57,63],pathtool:57,pathwai:88,pattern:[72,89],payment:81,peephole_optimz:66,pellentesqu:85,peopl:82,pep:82,per:[61,63,64],percentil:[57,59,64],perf:[57,58,60,61,62],perfom:64,perform:[31,32,33,34,58,59,60,61,62,63,92],performac:92,permiss:[57,58,59,60,61,62,63],permit:82,permut:74,persist:[57,58,60,61,62,82],pesq:57,pexpect:[57,60,61,62,63],pharetra:85,phase:[17,64,72,89],phasellu:85,phi:82,philosoph:82,phrase:82,pick:[62,88],pick_best:63,pickler:69,pickleshar:[57,60,61,62,63],pid:[57,58,60,61,62],piec:57,pil:[58,60,61],pillow:[57,58,63],pin:81,pin_memori:74,pip3:91,pip:[57,58,59,60,61,62,63,64,91],pipelin:[94,96],piplein:89,pipreq:57,pixel_shuffl:74,place:[52,66,82,83,84,91,92],placerat:85,plan:[70,94],plane:64,platea:85,platform:[49,58,60,62,63,70,91,94,96],platformdir:63,pleas:[57,58,64,82,89,91],plot:63,plot_result:63,plt:[58,60,61,63],pluggi:57,plugin:57,point:[80,81,82,89],pointer:[4,5,92],polish:81,pooch:57,pool:[60,61,62,63,64,96],pop:69,popular:[59,81,91],portabl:[58,60,62,63,69],portalock:57,portion:82,porttitor:[83,85],pos:59,pos_mask:59,posit:[57,59,80,94],possibl:[58,59,60,62,63,82],post1:57,post:[31,32,33,34,53,73,89,94],posuer:[83,85],potenti:[53,85],pow:74,power:[58,60,62,63,82,89],practic:[58,60,62,63],praesent:85,pragma:[46,47,48,49,92],pre:[37,57,58,59,60,64,66,92,93],pre_cxx11_abi:91,preced:82,precis:[53,59,61,62,63,73,89,90,92,94,96],precisions_str:57,pred:[58,60,61,64],pred_label:63,pred_loc:63,predict:[58,59,60,61,63],prefer:89,prefix:[29,30,46,82],preinstal:91,prelu:74,prepar:[57,58,59,60,62,63],prepare_input:63,prepare_tensor:63,preprint:92,preprocess:[57,58,60,61,64,92],preserv:[64,82,88,92],prespect:88,press:82,pretium:85,pretrain:[57,58,59,60,61,63,95],pretti:89,prev_next_buttons_loc:80,prevent:[53,94],previou:[59,80],previous:[31,34,37,89],prim:[65,66,69,74,88,89],prim_devic:74,primal:82,primari:59,primarili:[70,89],print:[17,35,48,57,58,59,60,61,62,63,64,82,89,95],print_funct:57,printout:59,printstat:[57,59],priorit:91,privat:[4,5,48,49,92],prob:[58,60,61],probabl:[58,59,60,61,63],probablil:[58,60,61],problem:[59,82],problemat:82,proce:[58,60,61],process:[57,58,59,60,61,62,63,64,81,82,88,92,94,95],prod:74,produc:[52,65,69,72,82,89],product:[53,58,60,62,63],profil:[52,62],program:[19,20,21,22,31,34,56,61,62,63,68,69,70,73,88,94],programm:82,progress:83,proin:85,project:[51,81,86],prometheu:[57,60,61,62,63],promis:57,prompt:[57,60,61,62,63],properli:91,properti:[57,59,80],propog:66,prose:82,protobuf:57,provid:[4,5,53,57,58,59,60,61,69,72,82,89,90,91,92,93,94,95],providi:[68,70],provok:82,psutil:[57,61],pth:[60,63,64],ptq:[4,5,16,19,23,42,54,55,56,73,77,94],ptq_calibr:[4,5,49,53,92],ptqtemplat:[0,54],ptyprocess:[57,60,61,62,63],pull:91,purchas:81,pure:[35,57,61,63],purpos:[63,91],puru:85,push:69,push_back:48,put:82,pwr:[57,58,60,61,62],py2:[60,62,63],py3:[57,58,59,60,62,63],pyannot:57,pyasn1:57,pybind11:57,pybtex:57,pycpars:[57,60,61,62,63],pycr:57,pydeprec:57,pydub:57,pygment:[57,60,61,62,63],pypa:[57,58,59,60,61,62,63],pypars:[57,59,60,61,62,63],pypi:[57,58,59,60,61,62,63,64,91],pypinyin:57,pyplot:[58,60,61,63],pyrsist:[57,60,61,62,63],pysock:57,pystoi:57,pytest:57,python3:[57,58,59,60,61,62,63,64,66,89,91],python:[57,58,59,60,61,62,63,64,70,82,83,89,93,94,95,96],python_api:71,pythonhost:[60,61,62,63,64],pytorch:[52,53,57,58,59,60,61,63,64,66,67,68,69,70,72,88,89,90,91,92,93,94],pytorch_lightn:57,pytorch_quant:[63,64],pytorch_sphinx_them:[80,87],pytorch_vision_v0:61,pytz:57,pywavelet:63,pyyaml:[57,59],pyzmq:[57,60,61,62,63],qat:64,qat_model:64,qthelp:57,qualiti:[58,60,63],quant:64,quant_dim:64,quant_input:64,quant_max:74,quant_min:74,quant_modul:64,quant_nn:64,quant_weight:64,quantconv2d:64,quantdescriptor:64,quantiz:[31,32,33,34,63,73,89,94],quantizatiom:53,quantizelay:64,quantlinear:64,quantoz:64,quantpool:64,quartznet:57,question:89,qui:[83,85],quick:64,quickli:[58,60,89,92,94],quisqu:85,quit:[72,89],quot:83,rais:66,raiseexcept:66,rand:89,randn:[57,58,60,61,62,63,64,89,95],random:57,randomcrop:64,randomhorizontalflip:64,rang:[52,53,57,58,59,60,61,62,63,64,94],rank:80,rapidfuzz:57,rate:64,rather:66,raw:[63,80],read:[4,5,31,32,33,34,48,57,61,80,82,92],readcalibrationcach:[4,5,48],reader:82,readi:[57,61],readm:[57,58,59,60,62,63],realiz:69,realli:72,reason:[1,63,88],reattribut:83,recalibr:[31,34],recip:92,recipi:63,reciproc:74,recognit:[57,60,64,92],recomend:[31,32,33,34],recommend:[31,32,33,34,57,58,59,60,61,62,63,64,82,89,91],recompil:63,record:[62,64,65,88],rect:63,rectangl:63,recurs:65,recursivescriptmodul:62,redistribut:83,reduc:[58,60,62,63,64,66,68,70,92],ref:82,refer:[52,64,68,70,81,86,89,90,92],referenc:[63,91],refit:[49,53,95],reflect:49,reflection_pad1d:74,reflection_pad2d:74,regard:[82,91],regardless:83,regex:[57,59],regist:[37,69,72],registernodeconversionpattern:[72,89],registri:[65,89],regular:64,reinterpret_cast:48,relat:[50,82],relationship:[54,55],releas:[57,59,82],relu:[60,61,62,74,88,89],relu_:74,remain:[58,59,60,62,63,66,92],remov:[57,58,60,62,63,64,80],remove_contigu:66,remove_dropout:66,remove_to:66,render:80,rent:83,repack:69,repeat:[74,94],replac:[59,63,66],replication_pad1d:74,replication_pad2d:74,replication_pad3d:74,report:[25,48],repositori:[58,60,63,70,80,87],repres:[52,53,64,72,82],represent:[58,59,60,62,63,66,72,88],request:[57,58,59,60,61,89],requir:[31,34,53,57,58,59,60,61,62,63,64,65,66,80,89,92,93,94],require_full_compil:[49,53,58,60,62,63],requires_grad:74,resampi:57,research:[58,60,62,63],reserv:[46,47,48,49,57,58,59,60,61,62,63],reset:48,reshap:74,residu:60,resiz:[58,60,61],resnet50:[60,61,63],resnet50_model:[60,61],resnet:[61,63,69],resnet_trt:69,resolv:[58,60,61,65,66,68,70],resolve_data_config:58,resourc:[57,60,61,62,63,65,92],respons:[31,34,58,60,61,64,69,82],respositori:59,rest:[82,83],restor:57,restrict:53,restructuredtext:[82,83],result:[57,58,59,60,61,62,64,65,66,80,88,90],results_per_input:63,ret:66,rethink:58,return_tensor:59,reus:[66,92],revert:80,revis:[82,83],revisit:82,rfc:82,rgb:[58,60],rho_:82,rhoncu:85,right:[46,47,48,49,57,58,59,60,61,62,63,66,70,72,82],risu:85,rn50_preprocess:[60,61],role:82,roll:74,roman:83,room:82,root:[46,47,48,49,57,58,59,60,61,62,63,64,80,91,92],round:[53,64],round_:64,rounding_mod:74,row:83,rsa:57,rst:[80,82],rsub:74,ruamel:57,rule:91,ruler:82,run:[2,41,50,53,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,82,88,89,90,91,92,93,94,95,96],runetim:61,runner:57,running_loss:64,running_mean:74,running_var:74,runtim:[57,58,60,61,62,63,73,89],rutrum:[83,85],s3transfer:57,sacrebleu:57,sacremos:[57,59],safe:72,safeti:[53,94],sage:82,sagitti:[83,85],sai:83,said:82,same:[58,60,61,63,69,80,82,88,89,91,95],sampl:[57,58,60,82,92],sample_r:57,sapien:85,satisfi:[57,58,59,60,61,62,63],save:[31,34,48,57,58,60,61,62,63,64,69,89,90,93,94],save_checkpoint:64,save_restore_connector:57,saw:89,scalar:[72,74],scalaropt_dim:74,scalartyp:[1,49,74],scale:[58,64,74,92],scale_factor:74,scale_grad_by_freq:74,scales_d:74,scales_h:74,scales_w:74,scelerisqu:85,schedul:64,schema:[72,89],scientist:82,scikit:[57,63],scikit_imag:63,scipi:[57,63],scope:66,score:[58,60,61,63],scratch:[31,34],screen:80,script:[35,59,63,64,66,88,89,90,95],script_model:[62,88,95],scripted_model:96,scriptmodul:89,scroll:[80,84],sdk:[57,58,60,62,63,71],seamlessli:[61,73],search:[59,73,80],second:[58,59,61,66,82],section:[61,64,80,82,83,84,86,89,92],secur:[57,91],sed:[83,85],see:[35,57,58,59,60,61,62,63,66,69,82,88,89,91],seen:[82,83],segment:57,segments_tensor:59,select:[18,31,32,33,34,41,53,58,60,62,63,69,74,81,84,91,92,94],self:[57,59,62,64,66,69,72,74,88,89,96],self_1:[69,89],self_int:74,sell:83,seller:81,seller_id:81,sem:85,semant:82,semper:85,send2trash:[57,60,61,62,63],senectu:85,sens:[82,89],sent:[58,60,61],sentenc:[59,82],sentencepiec:57,sentencepiecetoken:57,sentinel:[1,3],sentri:57,separ:[58,60,62,63,67,68,70],seq_relationship:59,sequenc:[57,59,82],sequenti:[60,61],serial:[37,41,68,70,89,94],serializ:[69,88],serializinghtml:57,seril:69,serv:[69,94],server:57,servic:82,session:82,session_nam:82,set:[4,5,17,22,27,29,31,34,36,39,41,49,50,52,53,58,60,62,63,64,65,66,67,68,69,70,73,80,84,87,88,89,90,91,92,96],set_devic:[22,42,49,54,55],set_is_colored_output_on:[19,43,46,54,55],set_logging_prefix:[19,43,46,54,55],set_reportable_log_level:[19,43,46,54,55,59,64],set_typecheck_en:57,setalpha:72,setbeta:72,setnam:[72,89],setproctitl:57,setreshapedimens:89,setup:[47,57,64,92],setup_multiple_test_data:57,setup_multiple_validation_data:57,setup_test_data:57,setup_training_data:57,setup_validation_data:57,setuptool:[57,60,61,62,63],sever:[17,28,59],sgd:64,sha256:91,shape:[49,52,53,57,58,59,60,62,63,64,72,74,90,94,96],share:91,shell_command:82,shellingham:57,shift:[74,82,91],ship:[64,89,93],shorthand:82,shortuuid:57,should:[1,4,5,31,34,49,53,58,61,64,65,66,67,68,70,72,73,80,82,85,92,94],show:[63,80,82],showcas:[58,60,61],shown:[59,80,82,89],shuffl:[57,64,89,92],shutterstock_780480850:[58,60,61],siberian:[58,60,61],siberian_huski:[60,61],side:[66,80,89],sidebar:[80,86],sigmoid:74,sigmoid_:74,signifi:[52,66],signific:[63,64,82],significantli:[66,80],similar:[63,72,89,93,95],simonyan:92,simpil:92,simpl:[57,58,59,60,62,63,64,82,83,88],simplejson:57,simplest:59,simpli:[61,62,66],simplic:[58,60,63],simplifi:65,simul:64,sin:[74,82],sinc:[59,62,66,82,88,89,92],sing:82,singl:[52,53,59,62,66,82,88,89,92,94],singular:72,sinh:74,sink:82,sit:[83,85],site:[57,58,59,60,61,62,63,64,66,82,89,91],six:[57,59,60,61,62,63,82],sixth:83,size:[4,5,48,52,53,57,58,59,60,61,62,63,64,66,74,80,89,92,94,96],size_t:[4,5,48,92],skip:94,slash:80,slice:74,slither:[58,60,61],sm_output:[58,60,61],small:[64,66],smaller:57,smallest:59,smi:[57,58,60,61,62],smmap:57,snake:[58,60,61],snowballstemm:57,sodal:85,softmax:[58,60,61,63,64,66,74],softwar:[57,58,59,60,61,62,63,82],sole:92,sollicitudin:85,some:[58,59,60,65,66,68,69,70,72,81,82,89,92],some_funct:82,someth:[47,66,82],someurl:82,sort:[72,74,95],sortedcontain:57,soundfil:57,soupsiev:[57,61],sourc:[46,47,48,49,58,60,63,70],sourceforg:[82,83],sox:57,space:[82,83,92],spaces_and_linebreak:82,span:83,spars:[74,94],sparse_weight:[49,53],sparsiti:[53,94],speak:59,speaker:59,spec:[52,53,58,60,62,63,94,95],specif:[36,53,57,58,59,60,61,62,63,66,68,70,82],specifi:[4,5,53,58,59,60,61,62,63,64,72,73,80,82,90,94,95],speech:57,speed:[57,58,59,60,61,63],speed_m:[57,59],speed_mean:[57,59],speedup:[57,58,59,60],sphinx:[57,80,81,82,83,87],sphinx_rtd_them:[82,83],sphinxcontrib:57,spirit:82,split:[59,74],split_siz:74,split_with_s:74,sqrt:74,squeez:[57,74],src:[69,71,74],ssd300:63,ssd300_trt:69,ssd:69,ssd_300_trace:63,ssd_pyt_ckpt_amp:63,ssd_trace:94,ssd_trt:94,sstream:[21,48],stabl:[64,71,80],stack:[57,61,63,64,69,74,92],stage:65,stand:[69,82],standalon:82,standard:[58,59,60,61,62,63,69,73,82,93,94,95],stapl:83,start:[59,61,63,64,65,74,83,91,95],start_dim:[74,89],start_step:74,start_tim:[57,58,59,60,61,62,63,64],startswith:64,stat:64,state:[57,58,59,60,64,65,72,89],state_dict:64,statement:[66,82],static_cast:48,statist:[59,64],statu:[48,83],std:[4,5,24,28,30,31,32,33,34,35,37,38,41,46,48,49,52,53,57,58,59,60,61,89,92,96],std_dev:[57,59],stderr:64,stdout:40,steamlin:92,step:[57,58,59,60,61,62,63,64,73,74,92],stft:57,stick:80,sticki:[80,86],sticky_navig:[80,84],still:[48,63,92],stitch:[62,89],stop:89,storag:92,store:[3,5,65,69,72,88,89],str:[20,47,48,54,55,58,60,61,74],straight:72,strang:82,strategi:59,stream:[58,60,61],street:83,strict:93,stride:[60,61,62,63,64,74],string:[4,5,19,21,22,24,28,30,31,32,33,34,35,37,38,41,46,48,49,53,69,72,80,89,92],stringstream:48,strip_prefix:91,strong:[58,60,62,63,82],strongli:82,struct:[2,22,42,45,49,92],structur:[31,34,50,53,58,60,62,63,70,72,80,82,86,88],structuredtext:82,stt_en_citrinet_256:57,stt_en_citrinet_256_bs128_torch:57,stt_en_citrinet_256_bs1_torch:57,stt_en_citrinet_256_bs32_torch:57,stt_en_citrinet_256_bs8_torch:57,stub:83,stuff:82,style:[46,47,48,49,80,82,83],style_external_link:80,sub:[74,82,88],sub_:74,subdirectori:56,subexpress:66,subgraph:[53,65,66,72,89,94],subject:70,submenu:86,submodul:[62,88],subplot:[58,60,61,63],subscript:82,subsect:82,subset:[64,92],substitut:82,subtitl:82,subtre:87,subword:57,successfulli:[57,58,60,62,63],sudo:91,suffic:66,suit:[61,73],sum:[53,64,74],summari:59,summarywrit:64,superscript:82,suppli:82,support:[1,2,3,29,35,50,52,53,58,60,61,62,63,64,71,73,80,81,88,89,91,94,96],sure:[89,90,91,96],suscipit:[83,85],suspendiss:85,swap:57,symbol:[37,82,91,93],symlink:87,sympi:57,synchron:[57,58,59,60,61,62,63,64],sys:64,system:[57,58,59,60,61,62,63,65,72,73,91],tabl:[86,91],tabul:57,tag:82,take:[35,36,37,41,57,58,60,62,63,65,68,69,70,72,80,82,89,92,95],taken:[58,60,63,82],talk:73,tan:74,tanh:74,tanh_:74,tar:[82,91,92],tarbal:[89,92],target:[2,37,49,50,52,53,58,60,61,62,63,69,70,73,90,92,94,95,96],targets_:92,tarred_audio_filepath:57,task:[31,32,33,34,57,59,92],techinqu:89,techniqu:[64,92],tell:[66,67,68,69,70,72,82],tellu:85,tem:94,temp:[57,58,60,61,62],templat:[21,44,48,49,54,55,80,89],tempu:85,tensor:[3,37,48,49,52,53,57,58,59,60,61,62,63,64,65,66,69,72,74,88,89,92],tensor_mod:74,tensor_qu:64,tensor_quant:64,tensor_scalar:74,tensor_tensor:74,tensorboard:[57,64],tensorcontain:72,tensorformat:[22,42,49,52,54,55],tensorformatenum:[0,54],tensorlist:72,tensorquant:64,tensorrt:[1,2,4,5,15,31,32,33,34,35,36,37,40,41,48,49,50,51,52,53,56,59,65,66,67,68,70,72,88,92,94],tensorrtcompilespec:95,tensorrtfil:[23,54],teo:94,term:[82,83,92],termin:[29,89,94],terminado:[57,60,61,62,63],test:[57,58,59,60,61,62,63,64,70,82,83,92,94],test_acc:64,test_loss:64,test_pr:64,test_prob:64,test_ptq_dataloader_calibr:92,test_ptq_trt_calibr:92,test_py_modul:[82,86],testing_dataload:[64,92],testing_dataset:[64,92],testpath:[57,60,62,63],text:[57,59,63,83,85],tf32:[53,94],tgz:91,than:[57,59,61,66,73,81,82,93],thats:[65,92],thei:[50,59,63,64,65,66,69,72,80,82,91,94],them:[57,58,59,60,62,63,66,69,80,89,91],theme:86,theori:[65,82],therebi:69,therefor:[31,34,57,58,60,62,63,69,82,89],theres:93,therfor:93,theta:82,thi:[1,2,3,31,32,33,34,46,47,48,49,50,52,53,57,58,59,60,61,62,63,64,65,66,68,69,70,72,80,81,82,84,85,86,88,89,91,92,93,94,95],thicker:82,thin:82,thing1:82,thing2:82,thing3:82,thing:[62,82,91],think:[72,82],third:[61,83],third_parti:[70,91],those:[59,65,82],though:[63,70,72,88,89,94],thought:82,threadpoolctl:57,three:[52,61,68,70,82,83],threshold:94,through:[52,57,58,59,60,61,62,63,65,66,69,73,82,89],throughout:[58,60],throughput:58,thrown:53,thu:[57,62,82],tifffil:63,time:[53,57,58,59,60,61,62,63,64,65,66,68,69,70,72,80,82,89,92,94],time_99th:[57,59],time_m:[57,59],time_mean:[57,59],time_std:[57,59],timegraph:[57,59],timeit:[57,59],timeout:57,timm:[58,60],tincidunt:85,tini:92,tinycss2:61,titan:[57,58,60,62,63],titl:[58,60,61],titles_onli:80,tmp:89,toctre:80,tocustomclass:72,todim:89,todo:80,togeth:[62,65,72,89],toilet:[58,60,61],token:[57,59],token_type_id:59,tokens_tensor:59,toml:57,tomli:63,too:[80,82,83,91],took:59,tool:[58,59,60,62,63,72,89],toolchain:[70,91],toolkit:[57,60,61,62,63,64],top:[63,70,80,84],topk:74,topolog:59,torch:[1,2,3,5,21,31,32,33,34,35,36,37,40,41,48,49,50,51,52,53,59,65,66,68,69,70,72,88,91,92,94,96],torch_executed_modul:[49,53],torch_executed_op:[49,53],torch_scirpt_modul:88,torch_script_modul:89,torch_tensorrt:[0,1,2,3,4,5,16,17,18,23,46,47,48,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,73,89,90,92,93,94,95,96],torch_tensorrt_major_vers:[20,47,54,55],torch_tensorrt_minor_vers:[20,47,54,55],torch_tensorrt_patch_vers:[20,47,54,55],torch_tensorrt_vers:[20,47,54,55],torch_tensorrtnamespac:[0,54],torchbind:69,torchhub:63,torchmetr:57,torchscript:[20,22,42,47,49,53,54,55,57,58,59,60,61,63,64,68,69,70,90,94,95,96],torchscriptstruct:[0,54],torchtrt:[47,57],torchtrt_api:[20,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,46,47,48,49,54,55],torchtrt_check:72,torchtrt_exampl:93,torchtrt_hidden:[20,47,54,55],torchtrt_unus:72,torchtrtc:[73,96],torchvis:[57,58,60,61,64,69,92,95],tornado:[57,60,61,62,63],toronto:92,tortor:85,total:64,totensor:[58,60,61,64,92],tovec:89,toward:92,tqdm:[57,59,64],trace:[57,59,63,64,88,89,90],traced_mlm_model:59,traced_model:[62,63,88],tracerwarn:64,track:[72,92],track_running_stat:[60,61],trade:63,tradit:[52,92],traget:36,trail:80,train:[31,32,33,34,53,57,58,59,60,63,73,74,89,90,94],trainabl:66,trained_vgg16_qat:64,trainer:57,training_dataload:64,training_dataset:64,traitlet:[57,60,61,62,63],transcrib:57,transfer:81,transform:[57,58,60,61,62,63,64,89,92],transforms_factori:58,translat:[63,89],transmit:82,transpos:74,trash:82,travers:[68,70],treat:[64,94],tree:[46,47,48,49,57,80,92,93],trigger:[62,89],trim:92,trim_sil:57,tristiqu:85,trt:[1,2,4,5,50,52,57,65,66,69,72,74,89],trt_lenet_script:89,trt_mod:[64,89,92,96],trt_model:[59,63,95],trt_model_fp16:[58,59,60],trt_model_fp32:[58,60],trt_model_with_d:61,trt_model_without_d:61,trt_script_modul:62,trt_ts_modul:[57,62,90],trtorch:57,truck:64,truncat:[53,94],truncate_long_and_doubl:[49,53,57,59],trust:[60,61,62,63,64],ts_model:89,tue:[60,83],tune:[57,58,60,62,63,64],tupl:69,tupleconstruct:[66,69],tupleunpack:66,turn:57,turpi:85,tutori:[58,60,61,88,92],two:[57,62,63,66,72,82,83,87,88,91,92,94],type:[1,2,3,32,33,52,53,54,55,57,58,59,60,61,62,63,64,65,69,72,82,89,92,94],typecheck:57,typenam:[4,5,31,32,33,34,48],typer:57,typic:[65,72],typing_extens:58,ubuntu:[57,91],ugli:82,uint64_t:[49,53],ultric:85,unabl:[72,89],unbind:74,unbroken:82,uncas:59,unchang:59,uncom:91,uncorr:[57,58,60,61,62],undefin:63,under:[46,47,48,49,57,58,59,60,61,62,63,70,82,90],underli:[1,2,3,50,72],understand:[58,60],unidecod:57,union:[72,89],uniqu:5,unique_ptr:[5,32,33],unit:[59,62],univers:82,unless:[57,58,59,60,61,62,63],unlik:[61,73,91,95],unlimit:80,unmask:59,unmasked_sent:59,unmasked_sentences_trt:59,unmasked_token:59,unmasked_tokens_trt:59,unpack_addmm:66,unpack_log_softmax:66,unqiue_ptr:5,unreferenc:82,unrestrict:82,unsign:64,unsqueez:[58,60,61,74],unstabl:70,unsupport:[35,53],unsur:72,untest:70,until:[61,65,70,72,91],unwrap:72,unwraptodoubl:72,unwraptoint:89,unzip:91,updat:[57,61,64],upgrad:57,upload:[58,60,61],upon:80,upper:[64,83],upsample_bilinear2d:74,upsample_linear1d:74,upsample_nearest1d:74,upsample_nearest2d:74,upsample_nearest3d:74,upsample_trilinear3d:74,upscale_factor:74,upstream:89,uri:[63,82],url:[80,91],urllib3:[57,59],urna:85,usag:[57,58,60,61,62,82,89],use:[1,2,3,4,5,31,32,33,34,47,50,52,53,57,58,59,60,61,62,63,64,65,66,69,70,72,82,88,89,91,92,93,94,95],use_amp:57,use_cach:[4,5,32,33,48,92],use_cache_:48,use_fb_fake_qu:64,use_input_stat:74,use_start_end_token:57,use_subset:92,usecas:91,used:[1,2,3,4,5,48,50,52,53,57,58,59,60,61,62,63,64,65,66,69,72,82,88,91,92,93,94],useful:[72,82],user:[46,52,53,57,58,59,60,61,62,63,67,68,69,70,82,83,89,91,92],userguid:64,userwarn:[57,58,63],uses:[31,32,33,34,48,58,60,62,63,72,90,91,92,93],using:[1,2,3,36,39,41,48,49,50,52,53,57,58,60,61,62,63,72,73,80,81,82,88,89,92,93,94,95],using_int:[74,89],usr:91,usual:[63,64,80],utf:[82,83],util:[58,60,62,64,72,89,92],val2017:63,val:[63,64],valid:[2,50,57,62,63,64,72],valu:[1,2,3,17,18,49,50,52,59,62,64,65,69,72,74,80,89],value_tensor_map:[65,72],vare:61,vari:[58,59,60],variabl:52,variant:[57,93],varient:66,variou:[57,96],variu:85,vcs_pageview_mod:80,vec:74,vector:[21,22,48,49,52,53,69,89,92,96],vehicula:85,vel:85,velit:85,venenati:85,venv:[57,58,59,60,61,62,63],verbios:94,verbos:[83,94],veri:[64,83,84,92,95],verifi:[59,64],version:[38,40,57,58,59,60,61,62,63,64,70,80,83,91],vertic:[80,82],vestibulum:[83,85],vgg16:[64,92],vgg16_base_ckpt:64,vgg16_qat_ckpt:64,vgg:[63,64,92],via:[57,61,63,73,80,86,90,92,93],view:[74,80],vine_snak:58,virtual:[57,58,59,60,61,62,63,92],vis:82,vision:[58,59,60,61],visit:[58,60,61,63],visitor:80,visual:61,vita:[83,85],vivamu:85,viverra:85,volatil:[57,58,60,61,62],volta:[58,60,62,63],volutpat:85,vulput:85,w1109:64,w_hh:74,w_ih:74,wai:[58,60,64,88,89,91,92,94],walk:[57,58,59,60,62,63],wandb:57,want:[46,58,60,62,63,88,89,92,95],warm:[57,58,59,60,61,62,63,64],warn:[17,48,57,58,59,60,61,62,63,64,72,94],warranti:[57,58,59,60,61,62,63],wash:82,wcwidth:[57,60,61,62,63],weak:82,web:82,webdataset:57,webencod:[57,60,61,62,63],websit:91,weight:[52,53,59,64,65,74,82,89,94],weight_decai:64,welcom:89,welecom:[58,60],well:[53,58,59,60,62,63,82,89,91,92],were:[59,63,89],werkzeug:57,wget:[57,58,60,61],what:[5,63,66,82,88,89],whatev:69,wheel:[57,91],when:[29,48,49,50,58,59,60,62,63,64,65,66,68,69,70,72,80,82,84,88,89,91,92,94],where:[57,58,60,62,65,66,72,83,89,92],whether:[5,81,92,94],which:[2,3,31,34,36,41,50,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,80,82,83,88,89,90,91,92,93,95],white:[63,82],whitespac:82,whl:[58,60,62,63,91],who:82,whole:[58,60,62,63],whose:66,why:82,wide:[61,86],widespread:59,widget:[57,60,61,62,63],widgetsnbextens:[57,60,61,62,63],width:[58,60,61,82],window:82,window_nam:82,wish:83,wit:57,within:[57,58,59,60,61,62,63,68,70,80,82],without:[57,58,59,60,62,63,64,72,80,82,89,92],won:61,wooden:82,word:[57,59,82],wordninja:57,work:[48,62,66,70,72,82,83,92],worker:92,workflow:[64,95],workspac:[53,91,92,94,96],workspace_s:[49,53,57,58,59,60,61,63,92,94,96],world:[58,60,62,63,82],would:[72,89,91,93,94,95],wrap:[64,68,69,70,82,85,89,95],wrapper:72,wrapt:57,write:[4,5,31,32,33,34,48,57,58,59,60,61,62,63,65,73,82,89,92],writecalibrationcach:[4,5,48],writer:64,written:[58,60],wrote:82,www:[57,58,59,60,61,62,63,80,82,89,91,92],x64:91,x86:93,x86_64:[70,91],x_0:82,x_1:82,x_2:82,x_3:82,x_4:82,xavier:[49,58,60,62,63,96],xml:51,xstr:[20,47,54,55],yahoo:83,yaml:[57,71],yarg:57,yarl:57,year:57,yield:59,you:[1,2,3,31,32,33,34,50,52,53,57,58,59,60,61,62,63,64,65,66,69,70,72,73,80,82,83,84,88,89,90,91,92,93,94,95],your:[57,58,59,60,61,62,63,64,72,73,80,82,83,87,88,89,90,91,93,95],yourself:[58,59,60,89],youtokentom:57,zero_grad:64,zero_point:74,zeroth:61,zip:[60,63,69,91],zipp:[57,60,61,62,63],zisserman:92},titles:["Class Hierarchy","Class DataType","Class Device::DeviceType","Class TensorFormat","Template Class Int8CacheCalibrator","Template Class Int8Calibrator","Define STR","Define TORCH_TENSORRT_PATCH_VERSION","Define TORCH_TENSORRT_MAJOR_VERSION","Define TORCH_TENSORRT_MINOR_VERSION","Define TORCHTRT_API","Define XSTR","Define TORCHTRT_HIDDEN","Define TORCH_TENSORRT_VERSION","Directory cpp","Directory include","Directory tensorrt","Enum Level","Enum EngineCapability","File logging.h","File macros.h","File ptq.h","File torch_tensorrt.h","File Hierarchy","Function torch_tensorrt::logging::get_logging_prefix","Function torch_tensorrt::logging::get_reportable_log_level","Function torch_tensorrt::logging::get_is_colored_output_on","Function torch_tensorrt::logging::set_reportable_log_level","Function torch_tensorrt::logging::log","Function torch_tensorrt::logging::set_is_colored_output_on","Function torch_tensorrt::logging::set_logging_prefix","Template Function torch_tensorrt::ptq::make_int8_cache_calibrator","Template Function torch_tensorrt::ptq::make_int8_calibrator","Template Function torch_tensorrt::ptq::make_int8_calibrator","Template Function torch_tensorrt::ptq::make_int8_cache_calibrator","Function torch_tensorrt::torchscript::check_method_operator_support","Function torch_tensorrt::torchscript::compile","Function torch_tensorrt::torchscript::embed_engine_in_new_module","Function torch_tensorrt::get_build_info","Function torch_tensorrt::set_device","Function torch_tensorrt::dump_build_info","Function torch_tensorrt::torchscript::convert_method_to_trt_engine","Namespace torch_tensorrt","Namespace torch_tensorrt::logging","Namespace torch_tensorrt::ptq","Namespace torch_tensorrt::torchscript","Program Listing for File logging.h","Program Listing for File macros.h","Program Listing for File ptq.h","Program Listing for File torch_tensorrt.h","Struct Device","Struct GraphInputs","Struct Input","Struct CompileSpec","Torch-TensorRT C++ API","Full API","Full API","Torch-TensorRT Getting Started - CitriNet","Torch-TensorRT Getting Started - EfficientNet-B0","Masked Language Modeling (MLM) with Hugging Face BERT Transformer","Torch-TensorRT Getting Started - ResNet 50","Torch-TensorRT - Using Dynamic Shapes","Torch-TensorRT Getting Started - LeNet","Object Detection with Torch-TensorRT (SSD)","Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT","Conversion Phase","Lowering Phase","Partitioning Phase","Compiler Phases","Runtime Phase","System Overview","Useful Links for Torch-TensorRT Development","Writing Converters","Torch-TensorRT","Operators Supported","torch_tensorrt.logging","torch_tensorrt.ptq","torch_tensorrt","torch_tensorrt.ts","Changelog","Configuration","5. :mod:`test_py_module`","3. Paragraph Level Markup","4. Lists & Tables","1. Long Sticky Nav","1. Structural Elements","<no title>","Installation","Creating a TorchScript Module","Getting Started with C++","Using Torch-TensorRT in Python","Installation","Post Training Quantization (PTQ)","Deploying Torch-TensorRT Programs","torchtrtc","Using Torch-TensorRT Directly From PyTorch","DLA"],titleterms:{"class":[0,1,2,3,4,5,21,22,42,44,45,54,55,76,77],"enum":[17,18,19,22,42,43,54,55,76,77],"function":[19,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,54,55,61,71,77,78],"long":84,And:82,But:83,The:[82,89],Used:66,Useful:71,Using:[61,89,90,95],aarch64:91,abi:[69,91],addmm:66,admonit:82,advic:72,ahead:73,api:[54,55,56,71,73,91],applic:92,arg:[72,81],avail:71,awar:64,background:[69,72],base:[4,5,80],benchmark:[57,61,63,64],bert:59,binari:91,block:82,branch:66,build:[61,80,91],bullet:83,can:83,caption:83,center:82,changelog:79,check_method_operator_support:35,choos:91,citat:[82,92],citrinet:57,cli:91,code:[66,82],compil:[36,68,70,73,89,91],compilespec:53,compound:82,conclus:[62,63],configur:80,construct:69,content:[19,20,21,22,42,43,44,45,57,58,59,60,62,63,80,81,82,83,84,85],context:[72,80],contigu:66,contract:72,contributor:73,convers:[65,68,70,72],convert:[65,72,74,89],convert_method_to_trt_engin:41,cpp:[14,19,20,21,22],creat:[88,92],creativ:82,cudnn:91,current:74,custom:89,cxx11:91,data:[61,81],datatyp:1,dead:66,debug:91,deeper:83,defin:[6,7,8,9,10,11,12,13,20,54,55],definit:[19,20,21,22,83],depend:91,deploi:[64,93],descript:[58,60,63],deseri:69,detail:63,detect:63,detector:63,develop:71,devic:[2,50],devicetyp:2,dimens:71,direct:82,directli:95,directori:[14,15,16,56],disk:88,distribut:91,dla:96,doctest:82,documen:73,document:[1,2,3,4,5,6,7,8,9,10,11,12,13,17,18,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,50,51,52,53,71,73,85],down:83,download:[61,82,87],dropout:66,dump_build_info:40,dynam:61,easier:71,efficientnet:58,element:85,elimin:66,eliminatecommonsubexpress:66,embed_engine_in_new_modul:37,emphas:82,engin:69,enginecap:18,enumer:83,envior:91,evalu:[65,74],exampl:[82,84],execept:66,executor:69,expect:71,face:59,fallback:66,field:83,figur:82,file:[16,19,20,21,22,23,46,47,48,49,54,56],flatten:66,footnot:82,format:69,fp16:[57,58,60],fp32:[57,58,60],freez:66,from:[61,91,95],full:[54,55,56],fuse:66,gaurd:66,gener:81,get:[57,58,60,61,62,73,89],get_build_info:38,get_is_colored_output_on:26,get_logging_prefix:24,get_reportable_log_level:25,giant:83,git:87,glossari:82,gpu:73,graph:[66,69],graphinput:51,grid:83,guarante:72,half:[57,58,60],have:83,hierarchi:[0,23,54],hlist:83,hole:83,hood:89,how:[80,92],html:80,hub:61,hug:59,ien:82,imag:[82,83],includ:[15,19,20,21,22],index:81,indic:73,infer:63,inherit:[4,5],inlin:82,input:52,instal:[87,91],int8:64,int8cachecalibr:4,int8calibr:5,jetson:91,jit:73,languag:59,layer:71,learn:[57,58,59,60,62,63],lenet:62,level:[17,80,82,83],librari:[91,93],libtorchtrt:93,like:83,line:82,linear:66,link:[71,82],list:[46,47,48,49,83],liter:82,local:91,log:[19,24,25,26,27,28,29,30,43,46,75],logsoftmax:66,loop:66,lower:[66,68,70],macro:[20,47],make_int8_cache_calibr:[31,34],make_int8_calibr:[32,33],markup:82,mask:59,math:82,measur:63,menu:84,meta:82,mlm:59,mod:81,model:[58,59,60,61,62,63,64],modul:[66,88,89],multibox:63,namespac:[19,20,21,22,42,43,44,45,54,55],nativ:91,native_op:71,nav:84,nest:[2,50],next:[57,58,59,60,61,62],node:65,number:[82,83],nvidia:73,object:[57,58,59,60,62,63],one:83,oper:[74,89],optimz:66,option:[80,81,83],other:72,overview:[57,58,60,62,63,64,70],own:92,packag:[91,93],page:80,paragraph:[82,85],paramet:81,partit:[67,68,70],pass:66,pattern:66,peephol:66,perform:64,phase:[65,66,67,68,69,70],plugin:93,post:92,pre:91,precis:[57,58,60],precompil:91,prerequisit:91,program:[46,47,48,49,93],project:80,ptq:[21,31,32,33,34,44,48,76,92],python:[71,73,88,90,91,92],pytorch:[62,71,73,95],quantiz:[64,92],quickstart:89,quot:82,rabbit:83,read:71,redund:66,refer:[63,82],regist:89,relationship:[2,4,5,50],releas:91,remov:66,replac:82,resnet:60,respons:72,result:[63,69],right:91,rubric:82,runtim:[68,69,70,93],sampl:[61,63],save:88,script:62,second:83,section:85,serial:69,set:61,set_devic:39,set_is_colored_output_on:29,set_logging_prefix:30,set_reportable_log_level:27,setup:91,shape:61,shot:63,sidebar:82,simpl:61,singl:[57,58,60,63],sometim:71,sourc:91,speedup:63,ssd:63,start:[57,58,60,62,73,89],sticki:84,str:6,struct:[50,51,52,53,54,55],structur:85,subdirectori:[14,15],submenu:84,submodul:77,subsect:85,subsubmenu:84,subsubsect:85,support:74,system:70,tabl:[80,81,82,83,84,85],tarbal:91,target:82,templat:[4,5,31,32,33,34],tensorformat:3,tensorrt:[16,54,57,58,60,61,62,63,64,69,71,73,89,90,91,93,95],test_py_modul:81,text:82,theme:80,thi:83,through:74,time:73,titl:82,toc:80,topic:82,torch:[54,57,58,60,61,62,63,64,71,73,89,90,93,95],torch_tensorrt:[19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,49,75,76,77,78],torch_tensorrt_major_vers:8,torch_tensorrt_minor_vers:9,torch_tensorrt_patch_vers:7,torch_tensorrt_vers:13,torchscript:[35,36,37,41,45,62,73,88,89],torchtrt_api:10,torchtrt_hidden:12,torchtrtc:[89,94],trace:62,train:[64,92],transform:59,trt:61,tupl:66,type:[4,5,50],under:89,unpack:66,unrol:66,unsupport:89,using:[64,91],util:[57,61,63],version:69,via:87,visual:63,wai:82,weight:72,what:[57,58,59,60,61,62,72],wide:80,without:61,work:[61,88,89],write:72,xstr:11,your:92}}) \ No newline at end of file diff --git a/docs/v1.1.1/sitemap.xml b/docs/v1.1.1/sitemap.xml new file mode 100644 index 0000000000..91f3153893 --- /dev/null +++ b/docs/v1.1.1/sitemap.xml @@ -0,0 +1 @@ +https://nvidia.github.io/Torch-TensorRT/_cpp_api/class_view_hierarchy.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1DataType.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1TensorFormat.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/dir_cpp.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/dir_cpp_include.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/dir_cpp_include_torch_tensorrt.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_view_hierarchy.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/namespace_torch_tensorrt.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/namespace_torch_tensorrt__logging.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/namespace_torch_tensorrt__ptq.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/namespace_torch_tensorrt__torchscript.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/structtorch__tensorrt_1_1Device.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/structtorch__tensorrt_1_1GraphInputs.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/structtorch__tensorrt_1_1Input.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/torch_tensort_cpp.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/unabridged_api.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/unabridged_orphan.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/CitriNet-example.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/EfficientNet-example.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/Hugging-Face-BERT.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/Resnet50-example.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/dynamic-shapes.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/lenet-getting-started.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/ssd-object-detection-demo.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/vgg-qat.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/conversion.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/lowering.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/partitioning.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/phases.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/runtime.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/system_overview.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/useful_links.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/writing_converters.htmlhttps://nvidia.github.io/Torch-TensorRT/index.htmlhttps://nvidia.github.io/Torch-TensorRT/indices/supported_ops.htmlhttps://nvidia.github.io/Torch-TensorRT/py_api/logging.htmlhttps://nvidia.github.io/Torch-TensorRT/py_api/ptq.htmlhttps://nvidia.github.io/Torch-TensorRT/py_api/torch_tensorrt.htmlhttps://nvidia.github.io/Torch-TensorRT/py_api/ts.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/changelog.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/configuring.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/api.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/demo.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/lists_tables.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/long.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/structure.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/index.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/installing.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/creating_torchscript_module_in_python.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/getting_started_with_cpp_api.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/getting_started_with_python_api.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/installation.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/ptq.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/runtime.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/torchtrtc.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/use_from_pytorch.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/using_dla.htmlhttps://nvidia.github.io/Torch-TensorRT/genindex.htmlhttps://nvidia.github.io/Torch-TensorRT/search.html \ No newline at end of file diff --git a/docs/v1.1.1/src/pytorch-sphinx-theme/docs/changelog.html b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/changelog.html new file mode 100644 index 0000000000..45ec179b22 --- /dev/null +++ b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/changelog.html @@ -0,0 +1,511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Changelog — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

+ Changelog + + ¶ + +

+

+ v0.0.1 +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/src/pytorch-sphinx-theme/docs/configuring.html b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/configuring.html new file mode 100644 index 0000000000..647d58c40c --- /dev/null +++ b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/configuring.html @@ -0,0 +1,958 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Configuration — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

+ Configuration + + ¶ + +

+

+ You can configure different parts of the theme. +

+

+ Project-wide Configuration + + ¶ + +

+

+ HTML Theme Options + + ¶ + +

+

+ The theme’s project-wide options are defined in the + + + pytorch_sphinx_theme/theme.conf + + + file of this repository, and can be defined in your project’s + + + conf.py + + + via + + + html_theme_options + + + . For example: +

+
+
+
html_theme_options = {
+    'canonical_url': '',
+    'analytics_id': '',
+    'logo_only': False,
+    'display_version': True,
+    'prev_next_buttons_location': 'bottom',
+    'style_external_links': False,
+    'vcs_pageview_mode': '',
+    # Toc options
+    'collapse_navigation': True,
+    'sticky_navigation': True,
+    'navigation_depth': 4,
+    'includehidden': True,
+    'titles_only': False
+}
+
+
+
+

+ The following options are available: +

+

+ Base options + + ¶ + +

+
    +
  • +

    + + + canonical_url + + + String. This will specify a + + canonical url + + to let search engines know they should give higher ranking to latest version of the docs. +The url points to the root of the documentation and requires a trailing slash. +

    +
  • +
  • +

    + + + analytics_id + + + String. Change the Google Analytics ID that is included on pages. +

    +
  • +
  • +

    + + + display_version + + + Bool. With this disabled, the version number isn’t shown at the top of the sidebar. +

    +
  • +
  • +

    + + + prev_next_buttons_location + + + String. can take the value + + + bottom + + + , + + + top + + + , + + + both + + + , or + + + None + + + and will display the “Next” and “Previous” buttons accordingly. +

    +
  • +
  • +

    + + + style_external_links + + + Bool. Add an icon next to external links. Defaults to + + + False + + + . +

    +
  • +
  • +

    + + + vcs_pageview_mode + + + String. Changes how to view files when using + + display_github + + , + + display_gitlab + + , etc. +When using Github or Gitlab this can be: + + blob + + (default), + + edit + + , or + + raw + + , +on Bitbucket, this can be either: + + view + + (default) or + + edit + + . +

    +
  • +
+

+ TOC Options + + ¶ + +

+

+ These effect how we display the Table of Contents in the side bar. You can read more about them here: + + http://www.sphinx-doc.org/en/stable/templating.html#toctree + +

+
    +
  • +

    + + + collapse_navigation + + + Bool. With this enabled, you will lose the + + + [+] + + + drop downs next to each section in the sidebar. +

    +
  • +
  • +

    + + + sticky_navigation + + + Bool. This causes the sidebar to scroll with the main page content as you scroll the page. +

    +
  • +
  • +

    + + + navigation_depth + + + Int. Indicate the max depth of the tree; by default, 4 levels are included; +set it to -1 to allow unlimited depth. +

    +
  • +
  • +

    + + + includehidden + + + Bool. Specifies if the sidebar includes toctrees marked with the + + + :hidden: + + + option +

    +
  • +
  • +

    + + + titles_only + + + Bool. If True, removes headers within a page from the sidebar. +

    +
  • +
+
+

+ Note +

+

+ Setting + + + collapse_navigation + + + to False and using a high + + + navigation_depth + + + can cause projects with many files and a deep file structure to generate HTML files +that are significantly larger in file size and much longer compilation times. +

+
+

+ HTML Context Options + + ¶ + +

+

+ TODO. +

+

+ Page-level Configuration + + ¶ + +

+

+ Pages support metadata that changes how the theme renders. +You can currently add the following: +

+
    +
  • +

    + + + :github_url: + + + This will force the “Edit on GitHub” to the configured URL +

    +
  • +
  • +

    + + + :bitbucket_url: + + + This will force the “Edit on Bitbucket” to the configured URL +

    +
  • +
  • +

    + + + :gitlab_url: + + + This will force the “Edit on GitLab” to the configured URL +

    +
  • +
+

+ How the Table of Contents builds + + ¶ + +

+

+ Currently the left menu will build based upon any + + + toctree(s) + + + defined in your + + + index.rst + + + file. +It outputs 2 levels of depth, which should give your visitors a high level of access to your +docs. If no toctrees are set the theme reverts to sphinx’s usual local toctree. +

+

+ It’s important to note that if you don’t follow the same styling for your rST headers across +your documents, the toctree will misbuild, and the resulting menu might not show the correct +depth when it renders. +

+

+ Also note that by default the table of contents is set with + + + includehidden=True + + + . This allows you +to set a hidden toc in your index file with the + + :hidden: + + property that will allow you +to build a toc without it rendering in your index. +

+

+ By default, the navigation will “stick” to the screen as you scroll. However if your toc +is vertically too large, it will revert to static positioning. To disable the sticky nav +altogether change the setting in + + + conf.py + + + . +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/api.html b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/api.html new file mode 100644 index 0000000000..d20481a04f --- /dev/null +++ b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/api.html @@ -0,0 +1,715 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 5. :mod:`test_py_module` — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

+ + + 5. + + + + + :mod:`test_py_module` + + + + ¶ + +

+
+

+ Table of Contents +

+ +
+

+ + + 5.1. + + Generated Index + + + ¶ + +

+

+ Part of the sphinx build process in generate and index file: + + + Index + + + . +

+

+ + + 5.2. + + Optional parameter args + + + ¶ + +

+

+ At this point optional parameters + + cannot be generated from code + + . +However, some projects will manually do it, like so: +

+

+ This example comes from + + django-payments module docs + + . +

+
+
+ + payments.dotpay.DotpayProvider(seller_id, pin[, channel=0[, lock=False], lang='pl']) + +
+
+

+ This backend implements payments using a popular Polish gateway, + + Dotpay.pl + + . +

+

+ Due to API limitations there is no support for transferring purchased items. +

+
+
+ Parameters +
+
+
    +
  • +

    + + seller_id + + – Seller ID assigned by Dotpay +

    +
  • +
  • +

    + + pin + + – PIN assigned by Dotpay +

    +
  • +
  • +

    + + channel + + – Default payment channel (consult reference guide) +

    +
  • +
  • +

    + + lang + + – UI language +

    +
  • +
  • +

    + + lock + + – Whether to disable channels other than the default selected above +

    +
  • +
+
+
+
+
+

+ + + 5.3. + + Data + + + ¶ + +

+

+ Some data link + + + :data:`Data_item_1` + + + . +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/demo.html b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/demo.html new file mode 100644 index 0000000000..80308a6de5 --- /dev/null +++ b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/demo.html @@ -0,0 +1,2754 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3. Paragraph Level Markup — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

+ + + 3. + + Paragraph Level Markup + + + ¶ + +

+ +

+ + + 3.1. + + Inline Markup + + + ¶ + +

+

+ Paragraphs contain text and may contain inline markup: + + emphasis + + , + + strong emphasis + + , + + + inline + + + literals + + + , +standalone hyperlinks ( + + http://www.python.org + + ), external hyperlinks ( + + Python + + + 5 + + ), internal cross-references ( + + example + + ), +external hyperlinks with embedded URIs ( + + Python web site + + ), footnote references +(manually numbered + + 1 + + , anonymous auto-numbered + + 3 + + , labeled auto-numbered + + 2 + + , or symbolic + + * + + ), +citation references ( + + 12 + + ), substitution references ( + + EXAMPLE + + ), and + + inline hyperlink targets + + (see + + Targets + + below for a reference back to here). Character-level inline markup is also possible +(although exceedingly ugly!) in + + re + + + + Structured + + + + Text + + . Problems are indicated by + + + |problematic| + + + text (generated by processing errors; this one is intentional). +

+

+ Also with + + + sphinx.ext.autodoc + + + , which I use in the demo, I can link to + + + test_py_module.test.Foo + + + . +It will link you right my code documentation for it. +

+

+ The default role for interpreted text is + + Title Reference + + . Here are some explicit interpreted text roles: +a PEP reference ( + + + + + PEP 287 + + + ); an RFC reference ( + + + + + RFC 2822 + + + ); a + + subscript + + ; a + + superscript + + ; +and explicit roles for + + standard + + + inline + + + + markup + + + . +

+

+ GUI labels are a useful way to indicate that + + Some action + + is to be taken by the user. +The GUI label should not run over + + + line-height + + + so as not to + + interfere + + with text from adjacent lines. +

+

+ Key-bindings indicate that the read is to press a button on the keyboard or mouse, +for example + + MMB + + and + + + Shift + + - + + MMB + + + . Another useful markup to indicate a user action +is to use + + + menuselection + + + this can be used to show short and long menus in software. +For example, and + + + menuselection + + + can be seen here that breaks is too long to fit on this line. + + My ‣ Software ‣ Some menu ‣ Some sub menu 1 ‣ sub menu 2 + + . +

+

+ Let’s test wrapping and whitespace significance in inline literals: + + + This + + + is + + + an + + + example + + + of + + + --inline-literal + + + --text, + + + --including + + + some-- + + + strangely--hyphenated-words. + + + Adjust-the-width-of-your-browser-window + + + to + + + see + + + how + + + the + + + text + + + is + + + wrapped. + + + -- + + + ---- + + + -------- + + + Now + + + note + + + the + + + spacing + + + between + + + the + + + words + + + of + + + this + + + sentence + + + (words + + + should + + + be + + + grouped + + + in + + + pairs). + + +

+

+ If the + + + --pep-references + + + option was supplied, there should be a live link to PEP 258 here. +

+

+ + + 3.2. + + Math + + + ¶ + +

+

+ This is a test. Here is an equation: + + \(X_{0:5} = (X_0, X_1, X_2, X_3, X_4)\) + + . +Here is another: +

+
+ + (1) + + ¶ + + + \[\nabla^2 f = +\frac{1}{r^2} \frac{\partial}{\partial r} +\left( r^2 \frac{\partial f}{\partial r} \right) + +\frac{1}{r^2 \sin \theta} \frac{\partial f}{\partial \theta} +\left( \sin \theta \, \frac{\partial f}{\partial \theta} \right) + +\frac{1}{r^2 \sin^2\theta} \frac{\partial^2 f}{\partial \phi^2}\] +
+

+ You can add a link to equations like the one above + + (1) + + by using + + + :eq: + + + . +

+

+ + + 3.3. + + Meta + + + ¶ + +

+

+ + + 3.4. + + Blocks + + + ¶ + +

+

+ + + 3.4.1. + + Literal Blocks + + + ¶ + +

+

+ Literal blocks are indicated with a double-colon (“::”) at the end of +the preceding paragraph (over there + + + --> + + + ). They can be indented: +

+
+
+
if literal_block:
+    text = 'is left as-is'
+    spaces_and_linebreaks = 'are preserved'
+    markup_processing = None
+
+
+
+

+ Or they can be quoted without indentation: +

+
+
+
>> Great idea!
+>
+> Why didn't I think of that?
+
+
+
+

+ + + 3.4.2. + + Line Blocks + + + ¶ + +

+
+
+ This is a line block. It ends with a blank line. +
+
+
+ Each new line begins with a vertical bar (“|”). +
+
+ Line breaks and initial indents are preserved. +
+
+
+ Continuation lines are wrapped portions of long lines; +they begin with a space in place of the vertical bar. +
+
+
+ The left edge of a continuation line need not be aligned with +the left edge of the text above it. +
+
+
+
+
+ This is a second line block. +
+
+
+
+
+ Blank lines are permitted internally, but they must begin with a “|”. +
+
+

+ Take it away, Eric the Orchestra Leader! +

+
+
+
+
+ A one, two, a one two three four +
+
+
+
+
+ Half a bee, philosophically, +
+
+
+ must, + + ipso facto + + , half not be. +
+
+
+ But half the bee has got to be, +
+
+
+ + vis a vis + + its entity. D’you see? +
+
+
+
+
+
+ But can a bee be said to be +
+
+
+ or not to be an entire bee, +
+
+
+ when half the bee is not a bee, +
+
+
+ due to some ancient injury? +
+
+
+
+
+
+
+
+ Singing… +
+
+
+
+

+ + + 3.4.3. + + Block Quotes + + + ¶ + +

+

+ Block quotes consist of indented body elements: +

+
+
+

+ My theory by A. Elk. Brackets Miss, brackets. This theory goes +as follows and begins now. All brontosauruses are thin at one +end, much much thicker in the middle and then thin again at the +far end. That is my theory, it is mine, and belongs to me and I +own it, and what it is too. +

+

+ —Anne Elk (Miss) +

+
+
+

+ + + 3.4.4. + + Doctest Blocks + + + ¶ + +

+
+
+
>>> print 'Python-specific usage examples; begun with ">>>"'
+Python-specific usage examples; begun with ">>>"
+>>> print '(cut and pasted from interactive Python sessions)'
+(cut and pasted from interactive Python sessions)
+
+
+
+

+ + + 3.4.5. + + Code Blocks + + + ¶ + +

+
# parsed-literal test
+curl -O http://someurl/release-.tar-gz
+
+
+ + Code Blocks can have captions. + + + ¶ + +
+
+
+
{
+"windows": [
+    {
+    "panes": [
+        {
+        "shell_command": [
+            "echo 'did you know'",
+            "echo 'you can inline'"
+        ]
+        },
+        {
+        "shell_command": "echo 'single commands'"
+        },
+        "echo 'for panes'"
+    ],
+    "window_name": "long form"
+    }
+],
+"session_name": "shorthands"
+}
+
+
+
+
+

+ + + 3.4.5.1. + + Emphasized lines with line numbers + + + ¶ + +

+
+ + + + + +
+
+
1
+2
+3
+4
+5
+
+
+
+
def some_function():
+    interesting = False
+    print 'This line is highlighted.'
+    print 'This one is not...'
+    print '...but this one is.'
+
+
+
+
+ + +

+ The first hexagram is made up of six unbroken lines. These unbroken lines stand for the primal power, +which is light-giving, active, strong, and of the spirit. The hexagram is consistently strong in character, +and since it is without weakness, its essence is power or energy. Its image is heaven. +Its energy is represented as unrestricted by any fixed conditions in space and is therefore conceived of as motion. +Time is regarded as the basis of this motion. +Thus the hexagram includes also the power of time and the power of persisting in time, that is, duration. +

+

+ The power represented by the hexagram is to be interpreted in a dual sense in terms of its action +on the universe and of its action on the world of men. In relation to the universe, the hexagram expresses the strong, +creative action of the Deity. In relation to the human world, it denotes the creative action of the holy man or sage, +of the ruler or leader of men, who through his power awakens and develops their higher nature. +

+

+ + + 3.5.1. + + Code with Sidebar + + + ¶ + +

+ +
+
+ + Literal includes can also have captions. + + + ¶ + +
+
+ + + + + +
+
+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+
+
+
+
# -*- coding: utf-8 -*-
+"""Test Module for sphinx_rtd_theme."""
+
+
+class Foo:
+
+    """Docstring for class Foo.
+
+    This text tests for the formatting of docstrings generated from output
+    ``sphinx.ext.autodoc``. Which contain reST, but sphinx nests it in the
+    ``<dl>``, and ``<dt>`` tags. Also, ``<tt>`` is used for class, method names
+    and etc, but those will *always* have the ``.descname`` or
+    ``.descclassname`` class.
+
+    Normal ``<tt>`` (like the <tt> I just wrote here) needs to be shown with
+    the same style as anything else with ````this type of markup````.
+
+    It's common for programmers to give a code example inside of their
+    docstring::
+
+        from test_py_module import Foo
+
+        myclass = Foo()
+        myclass.dothismethod('with this argument')
+        myclass.flush()
+
+        print(myclass)
+
+
+    Here is a link to :py:meth:`capitalize`.
+    Here is a link to :py:meth:`__init__`.
+
+    """
+
+    #: Doc comment for class attribute Foo.bar.
+    #: It can have multiple lines.
+    bar = 1
+
+    flox = 1.5   #: Doc comment for Foo.flox. One line only.
+
+
+
+
+
+
+

+ + + 3.6. + + References + + + ¶ + +

+

+ + + 3.6.1. + + Footnotes + + + ¶ + +

+
+
+ + 1 + + + ( + + 1 + + , + + 2 + + ) + +
+
+

+ A footnote contains body elements, consistently indented by at +least 3 spaces. +

+

+ This is the footnote’s second paragraph. +

+
+
+ + 2 + + + ( + + 1 + + , + + 2 + + ) + +
+
+

+ Footnotes may be numbered, either manually (as in + + 1 + + ) or +automatically using a “#”-prefixed label. This footnote has a +label so it can be referred to from multiple places, both as a +footnote reference ( + + 2 + + ) and as a hyperlink reference +( + + label + + ). +

+
+
+ + + 3 + + +
+
+

+ This footnote is numbered automatically and anonymously using a +label of “#” only. +

+
+
+ + + * + + +
+
+

+ Footnotes may also use symbols, specified with a “*” label. +Here’s a reference to the next footnote: + + † + + . +

+
+
+ + + † + + +
+
+

+ This footnote shows the next symbol in the sequence. +

+
+
+ + 4 + +
+
+

+ Here’s an unreferenced footnote, with a reference to a +nonexistent footnote: + + + [5]_ + + + . +

+
+
+

+ + + 3.6.2. + + Citations + + + ¶ + +

+
+
+ + 11 + +
+
+

+ This is the citation I made, let’s make this extremely long so that we can tell that it doesn’t follow the normal responsive table stuff. +

+
+
+ + 12 + + + ( + + 1 + + , + + 2 + + ) + +
+
+

+ This citation has some + + + code + + + blocks + + + in it, maybe some + + bold + + and + + italics + + too. Heck, lets put a link to a meta citation + + 13 + + too. +

+
+
+ + + 13 + + +
+
+

+ This citation will have two backlinks. +

+
+
+

+ Here’s a reference to the above, + + 12 + + , and a + + [nonexistent] + + citation. +

+

+ Here is another type of citation: + + citation + +

+

+ + + 3.6.3. + + Glossary + + + ¶ + +

+

+ This is a glossary with definition terms for thing like + + + Writing + + + : +

+
+
+ Documentation +
+
+

+ Provides users with the knowledge they need to use something. +

+
+
+ Reading +
+
+

+ The process of taking information into ones mind through the use of eyes. +

+
+
+ Writing +
+
+

+ The process of putting thoughts into a medium for other people to + + + read + + + . +

+
+
+

+ + + 3.6.4. + + Targets + + + ¶ + +

+

+ This paragraph is pointed to by the explicit “example” target. +A reference can be found under + + Inline Markup + + , above. + + Inline +hyperlink targets + + are also possible. +

+

+ Section headers are implicit targets, referred to by name. See + + Targets + + , which is a subsection of + + + `Body Elements`_ + + + . +

+

+ Explicit external targets are interpolated into references such as “ + + Python + + + 5 + + ”. +

+

+ Targets may be indirect and anonymous. Thus + + this phrase + + may also +refer to the + + Targets + + section. +

+

+ Here’s a + + + `hyperlink reference without a target`_ + + + , which generates an error. +

+

+ + + 3.7. + + Directives + + + ¶ + +

+

+ + + 3.7.1. + + Contents + + + ¶ + +

+

+ These are just a sample of the many reStructuredText Directives. For others, please see: + + http://docutils.sourceforge.net/docs/ref/rst/directives.html + + . +

+

+ + + 3.7.2. + + Centered text + + + ¶ + +

+

+ You can create a statement with centered text with + + + .. + + + centered:: + + +

+

+ + This is centered text! + +

+

+ + + 3.7.3. + + Images & Figures + + + ¶ + +

+

+ + + 3.7.3.1. + + Images + + + ¶ + +

+

+ An image directive (also clickable – a hyperlink reference): +

+ + ../../../../_images/yi_jing_01_chien.jpg + +

+ + + 3.7.3.2. + + Figures + + + ¶ + +

+
+ reStructuredText, the markup syntax +

+ + A figure is an image with a caption and/or a legend: + + + ¶ + +

+
+ + + + + + + + + + + + + + + + + + + +
+

+ re +

+
+

+ Revised, revisited, based on ‘re’ module. +

+
+

+ Structured +

+
+

+ Structure-enhanced text, structuredtext. +

+
+

+ Text +

+
+

+ Well it is, isn’t it? +

+
+

+ This paragraph is also part of the legend. +

+
+
+

+ A figure directive with center alignment +

+
+ ../../../../_images/yi_jing_01_chien.jpg +

+ + This caption should be centered. + + + ¶ + +

+
+

+ + + 3.7.4. + + Admonitions + + + ¶ + +

+
+

+ Attention +

+

+ Directives at large. +

+
+
+

+ Caution +

+

+ Don’t take any wooden nickels. +

+
+
+

+ Danger +

+

+ Mad scientist at work! +

+
+
+

+ Error +

+

+ Does not compute. +

+
+
+

+ Hint +

+

+ It’s bigger than a bread box. +

+
+
+

+ Important +

+
    +
  • +

    + Wash behind your ears. +

    +
  • +
  • +

    + Clean up your room. +

    +
      +
    • +

      + Including the closet. +

      +
    • +
    • +

      + The bathroom too. +

      +
        +
      • +

        + Take the trash out of the bathroom. +

        +
      • +
      • +

        + Clean the sink. +

        +
      • +
      +
    • +
    +
  • +
  • +

    + Call your mother. +

    +
  • +
  • +

    + Back up your data. +

    +
  • +
+
+
+

+ Note +

+

+ This is a note. +Equations within a note: + + \(G_{\mu\nu} = 8 \pi G (T_{\mu\nu} + \rho_\Lambda g_{\mu\nu})\) + + . +

+
+
+

+ Tip +

+

+ 15% if the service is good. +

+ + + + + + + + + + + + + + + + + + + + +
+

+ Example +

+
+

+ Thing1 +

+
+

+ Thing2 +

+
+

+ Thing3 +

+
+
+
+

+ Warning +

+

+ Strong prose may provoke extreme mental exertion. +Reader discretion is strongly advised. +

+
+
+

+ And, by the way… +

+

+ You can make up your own admonition too. +

+
+

+ + + 3.7.5. + + Topics, Sidebars, and Rubrics + + + ¶ + +

+ +
+

+ Topic Title +

+

+ This is a topic. +

+
+

+ This is a rubric +

+

+ + + 3.7.6. + + Target Footnotes + + + ¶ + +

+
+
+ + 5 + + + ( + + 1 + + , + + 2 + + , + + 3 + + ) + +
+
+

+ + http://www.python.org/ + +

+
+
+

+ + + 3.7.7. + + Replacement Text + + + ¶ + +

+

+ I recommend you try + + Python, + + the + + best language around + + + 5 + + . +

+

+ + + 3.7.8. + + Compound Paragraph + + + ¶ + +

+
+

+ This paragraph contains a literal block: +

+
+
+
Connecting... OK
+Transmitting data... OK
+Disconnecting... OK
+
+
+
+

+ and thus consists of a simple paragraph, a literal block, and +another simple paragraph. Nonetheless it is semantically + + one + + paragraph. +

+
+

+ This construct is called a + + compound paragraph + + and can be produced +with the “compound” directive. +

+ +

+ + + + This + + + long + + + long + + + long + + + long + + + long + + + long + + + long + + + long + + + long + + + long + + + long + + + long + + + long + + + long + + + long + + + download + + + link + + + should + + + be + + + blue, + + + normal + + + weight + + + text + + + with + + + a + + + leading + + + icon, + + + and + + + should + + + wrap + + + white-spaces + + + +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/lists_tables.html b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/lists_tables.html new file mode 100644 index 0000000000..c9239bb6fe --- /dev/null +++ b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/lists_tables.html @@ -0,0 +1,2452 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 4. Lists & Tables — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

+ + + 4. + + Lists & Tables + + + ¶ + +

+
+

+ Table of Contents +

+ +
+

+ + + 4.1. + + Lists + + + ¶ + +

+

+ + + 4.1.1. + + Enumerated Lists + + + ¶ + +

+
    +
  1. +

    + Arabic numerals. +

    +
      +
    1. +

      + lower alpha) +

      +
        +
      1. +

        + (lower roman) +

        +
          +
        1. +

          + upper alpha. +

          +
            +
          1. +

            + upper roman) +

            +
          2. +
          +
        2. +
        +
      2. +
      +
    2. +
    +
  2. +
  3. +

    + Lists that don’t start at 1: +

    +
      +
    1. +

      + Three +

      +
    2. +
    3. +

      + Four +

      +
    4. +
    +
      +
    1. +

      + C +

      +
    2. +
    3. +

      + D +

      +
    4. +
    +
      +
    1. +

      + iii +

      +
    2. +
    3. +

      + iv +

      +
    4. +
    +
  4. +
  5. +

    + List items may also be auto-enumerated. +

    +
  6. +
+

+ + + 4.1.2. + + Definition Lists + + + ¶ + +

+
+
+ Term +
+
+

+ Definition +

+
+
+ Term + + classifier + +
+
+

+ Definition paragraph 1. +

+

+ Definition paragraph 2. +

+
+
+ Term +
+
+

+ Definition +

+
+
+

+ + + 4.1.3. + + Option Lists + + + ¶ + +

+

+ For listing command-line options: +

+
+
+ + + -a + + +
+
+

+ command-line option “a” +

+
+
+ + + -b + + file + + + +
+
+

+ options can have arguments +and long descriptions +

+
+
+ + + --long + + +
+
+

+ options can be long also +

+
+
+ + + --input= + + file + + + +
+
+

+ long options can also have +arguments +

+
+
+ + + --very-long-option + + +
+
+

+ The description can also start on the next line. +

+

+ The description may contain multiple body elements, +regardless of where it starts. +

+
+
+ + + -x + + , + + -y + + , + + -z + + +
+
+

+ Multiple options are an “option group”. +

+
+
+ + + -v + + , + + --verbose + + +
+
+

+ Commonly-seen: short & long options. +

+
+
+ + + -1 + + file + + + , + + --one= + + file + + + , + + --two + + file + + + +
+
+

+ Multiple options with arguments. +

+
+
+ + + /V + + +
+
+

+ DOS/VMS-style options too +

+
+
+

+ There must be at least two spaces between the option and the description. +

+

+ + + 4.1.4. + + Field list + + + ¶ + +

+
+
+ Author +
+
+

+ David Goodger +

+
+
+ Address +
+
+

+ 123 Example Street +Example, EX Canada +A1B 2C3 +

+
+
+ Contact +
+
+

+ + docutils-develop + + @ + + lists + + . + + sourceforge + + . + + net + +

+
+
+ Authors +
+
+

+ Me; Myself; I +

+
+
+ organization +
+
+

+ humankind +

+
+
+ date +
+
+

+ $Date: 2012-01-03 19:23:53 +0000 (Tue, 03 Jan 2012) $ +

+
+
+ status +
+
+

+ This is a “work in progress” +

+
+
+ revision +
+
+

+ $Revision: 7302 $ +

+
+
+ version +
+
+

+ 1 +

+
+
+ copyright +
+
+

+ This document has been placed in the public domain. You +may do with it as you wish. You may copy, modify, +redistribute, reattribute, sell, buy, rent, lease, +destroy, or improve it, quote it at length, excerpt, +incorporate, collate, fold, staple, or mutilate it, or do +anything else to it that your or anyone else’s heart +desires. +

+
+
+ field name +
+
+

+ This is a generic bibliographic field. +

+
+
+ field name 2 +
+
+

+ Generic bibliographic fields may contain multiple body elements. +

+

+ Like this. +

+
+
+ Dedication +
+
+

+ For Docutils users & co-developers. +

+
+
+ abstract +
+
+

+ This document is a demonstration of the reStructuredText markup +language, containing examples of all basic reStructuredText +constructs and many advanced constructs. +

+
+
+

+ + + 4.1.5. + + Bullet Lists + + + ¶ + +

+
    +
  • +

    + A bullet list +

    +
      +
    • +

      + Nested bullet list. +

      +
    • +
    • +

      + Nested item 2. +

      +
    • +
    +
  • +
  • +

    + Item 2. +

    +

    + Paragraph 2 of item 2. +

    +
      +
    • +

      + Nested bullet list. +

      +
    • +
    • +

      + Nested item 2. +

      +
        +
      • +

        + Third level. +

        +
      • +
      • +

        + Item 2. +

        +
      • +
      +
    • +
    • +

      + Nested item 3. +

      +
    • +
    +
  • +
  • +

    + + + inline + + + literall + + +

    +
  • +
  • +

    + + + inline + + + literall + + +

    +
  • +
  • +

    + + + inline + + + literall + + +

    +
  • +
+

+ + + 4.1.5.1. + + Second list level + + + ¶ + +

+
    +
  • +

    + here is a list in a second-level section. +

    +
  • +
  • +

    + + yahoo + +

    +
  • +
  • +

    + + yahoo + +

    +
      +
    • +

      + + yahoo + +

      +
    • +
    • +

      + here is an inner bullet + + + oh + + +

      +
        +
      • +

        + one more + + + with + + + an + + + inline + + + literally + + + . + + yahoo + +

        +

        + heh heh. child. try to beat this embed: +

        +
        + + + + + +
        +
        +
         1
        + 2
        + 3
        + 4
        + 5
        + 6
        + 7
        + 8
        + 9
        +10
        +
        +
        +
        +
        # -*- coding: utf-8 -*-
        +"""Test Module for sphinx_rtd_theme."""
        +
        +
        +class Foo:
        +
        +    """Docstring for class Foo.
        +
        +    This text tests for the formatting of docstrings generated from output
        +    ``sphinx.ext.autodoc``. Which contain reST, but sphinx nests it in the
        +
        +
        +
        +
        +
      • +
      +
    • +
    • +

      + and another. + + yahoo + +

      +
    • +
    • +

      + + yahoo + +

      +
    • +
    • +

      + + + hi + + +

      +
    • +
    +
  • +
  • +

    + and hehe +

    +
  • +
+
+ + + 4.1.5.1.1. + + But deeper down the rabbit hole + + + ¶ + +
+
    +
  • +

    + I kept saying that, “deeper down the rabbit hole”. + + yahoo + +

    + +
  • +
  • +

    + I’m so lonely here in GZ + + + guangzhou + + +

    +
  • +
  • +

    + A man of python destiny, hopes and dreams. + + yahoo + +

    + +
  • +
+

+ + + 4.1.6. + + Hlists + + + ¶ + +

+ + + + + +
+
    +
  • +

    + First item +

    +
  • +
  • +

    + Second item +

    +
  • +
  • +

    + Third item +

    +
  • +
+
+
    +
  • +

    + Forth item +

    +
  • +
  • +

    + Fifth item +

    +
  • +
  • +

    + Sixths item +

    +
  • +
+
+

+ Hlist with images +

+ + + + + +
+
    +
  • +
    + ../../../../_images/yi_jing_01_chien.jpg +

    + + This is a short caption for a figure. + + + ¶ + +

    +
    +
  • +
+
+
    +
  • +
    + ../../../../_images/yi_jing_01_chien.jpg +

    + + This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non. + + + ¶ + +

    +
    +
  • +
+
+

+ + + 4.1.7. + + Numbered List + + + ¶ + +

+
    +
  1. +

    + One, +

    +
  2. +
  3. +

    + Two. +

    +
  4. +
  5. +

    + Three with long text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Sed feugiat sagittis neque quis eleifend. Duis rutrum lectus sit amet mattis suscipit. +

    +
  6. +
+
    +
  • +
      +
    1. +

      + Using bullets and letters. (A) +

      +
    2. +
    +
  • +
  • +
      +
    1. +

      + Using bullets and letters. (B) +

      +
    2. +
    +
  • +
  • +
      +
    1. +

      + Using bullets and letters. (C) +

      +
    2. +
    +
  • +
+

+ + + 4.2. + + Tables + + + ¶ + +

+

+ + + 4.2.1. + + Grid Tables + + + ¶ + +

+

+ Here’s a grid table followed by a simple table: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Header row, column 1 +(header rows optional) +

+
+

+ Header 2 +

+
+

+ Header 3 +

+
+

+ Header 4 +

+
+

+ body row 1, column 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ column 4 +

+
+

+ body row 2 +

+
+

+ Cells may span columns. +

+
+

+ body row 3 +

+
+

+ Cells may +span rows. +

+
+
    +
  • +

    + Table cells +

    +
  • +
  • +

    + contain +

    +
  • +
  • +

    + body elements. +

    +
  • +
+
+

+ body row 4 +

+
+

+ body row 5 +

+
+

+ Cells may also be +empty: + + + --> + + +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Inputs +

+
+

+ Output +

+
+

+ A +

+
+

+ B +

+
+

+ A or B +

+
+

+ False +

+
+

+ False +

+
+

+ False +

+
+

+ True +

+
+

+ False +

+
+

+ True +

+
+

+ False +

+
+

+ True +

+
+

+ True +

+
+

+ True +

+
+

+ True +

+
+

+ True +

+
+

+ + + 4.2.1.1. + + Giant Tables + + + ¶ + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Header 1 +

+
+

+ Header 2 +

+
+

+ Header 3 +

+
+

+ Header 1 +

+
+

+ Header 2 +

+
+

+ Header 3 +

+
+

+ Header 1 +

+
+

+ Header 2 +

+
+

+ Header 3 +

+
+

+ Header 1 +

+
+

+ Header 2 +

+
+

+ Header 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ body row 1 +

+
+

+ column 2 +

+
+

+ column 3 +

+
+

+ + + 4.2.2. + + List Tables + + + ¶ + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + List tables can have captions like this one. + + + ¶ + +
+

+ List table +

+
+

+ Header 1 +

+
+

+ Header 2 +

+
+

+ Header 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. +

+
+

+ Stub Row 1 +

+
+

+ Row 1 +

+
+

+ Column 2 +

+
+

+ Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. +

+
+

+ Stub Row 2 +

+
+

+ Row 2 +

+
+

+ Column 2 +

+
+

+ Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. +

+
+

+ Stub Row 3 +

+
+

+ Row 3 +

+
+

+ Column 2 +

+
+

+ Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. +

+
+ + + + + + + + + + + + +
+ + This is a list table with images in it. + + + ¶ + +
+
+ ../../../../_images/yi_jing_01_chien.jpg +

+ + This is a short caption for a figure. + + + ¶ + +

+
+
+
+ ../../../../_images/yi_jing_01_chien.jpg +

+ + This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non. + + + ¶ + +

+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/long.html b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/long.html new file mode 100644 index 0000000000..5fab2cf098 --- /dev/null +++ b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/long.html @@ -0,0 +1,1543 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 1. Long Sticky Nav — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

+ + + 1. + + Long Sticky Nav + + + ¶ + +

+ +

+ This section demonstrates how the ‘sticky_navigation’ setting behaves when the menu is very long. +When this section is selected, it will make the menu and the main area scroll when you are at the top of the page. +

+

+ + + 1.1. + + Example Menu 1 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.2. + + Example Menu 2 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.3. + + Example Menu 3 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.4. + + Example Menu 4 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.5. + + Example Menu 5 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.6. + + Example Menu 6 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.7. + + Example Menu 7 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.8. + + Example Menu 8 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.9. + + Example Menu 9 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.10. + + Example Menu 10 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.11. + + Example Menu 11 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.12. + + Example Menu 12 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.13. + + Example Menu 13 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.14. + + Example Menu 14 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.15. + + Example Menu 15 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.16. + + Example Menu 16 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.17. + + Example Menu 17 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.18. + + Example Menu 18 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.19. + + Example Menu 19 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.20. + + Example Menu 20 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.21. + + Example Submenu 1 + + + ¶ + +

+

+ Just a place holder… +

+ +

+ Just a place holder… +

+

+ + + 1.21.1.1. + + Subsubmenu 1 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.21.1.2. + + Subsubmenu 2 + + + ¶ + +

+

+ Just a place holder… +

+ +

+ Just a place holder… +

+

+ + + 1.21.2.1. + + Subsubmenu 1 + + + ¶ + +

+

+ Just a place holder… +

+ +

+ Just a place holder… +

+ +

+ Just a place holder… +

+ +

+ Just a place holder… +

+

+ + + 1.22. + + Example Submenu 2 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.22.1. + + Submenu 1 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.22.1.1. + + Subsubmenu 1 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.22.2. + + Submenu 2 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.22.2.1. + + Subsubmenu 1 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.22.3. + + Submenu 3 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.22.4. + + Submenu 4 + + + ¶ + +

+

+ Just a place holder… +

+

+ + + 1.22.5. + + Submenu 5 + + + ¶ + +

+

+ Just a place holder… +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/structure.html b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/structure.html new file mode 100644 index 0000000000..5fe511a29e --- /dev/null +++ b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/demo/structure.html @@ -0,0 +1,818 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 1. Structural Elements — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+

+ + + 1. + + Structural Elements + + + ¶ + +

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lorem neque, interdum in ipsum nec, +finibus dictum velit. Ut eu efficitur arcu, id aliquam erat. In sit amet diam gravida, imperdiet tellus eu, +gravida nisl. Praesent aliquet odio eget libero elementum, quis rhoncus tellus tincidunt. +Suspendisse quis volutpat ipsum. Sed lobortis scelerisque tristique. Aenean condimentum risus tellus, +quis accumsan ipsum laoreet ut. Integer porttitor maximus suscipit. Mauris in posuere sapien. +Aliquam accumsan feugiat ligula, nec fringilla libero commodo sed. Proin et erat pharetra. +

+
+

+ Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis. +

+

+ + + 1.1. + + Document Section + + + ¶ + +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec. +

+

+ + + 1.1.1. + + Document Subsection + + + ¶ + +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. +

+

+ + + 1.1.1.1. + + Document Subsubsection + + + ¶ + +

+

+ Donec non rutrum lorem. Aenean sagittis metus at pharetra fringilla. Nunc sapien dolor, cursus sed nisi at, +pretium tristique lectus. Sed pellentesque leo lectus, et convallis ipsum euismod a. +Integer at leo vitae felis pretium aliquam fringilla quis odio. Sed pharetra enim accumsan feugiat pretium. +Maecenas at pharetra tortor. Morbi semper eget mi vel finibus. Cras rutrum nulla eros, id feugiat arcu pellentesque ut. +Sed finibus tortor ac nisi ultrices viverra. Duis feugiat malesuada sapien, at commodo ante porttitor ac. +Curabitur posuere mauris mi, vel ornare orci scelerisque sit amet. Suspendisse nec fringilla dui. +

+
+ + + 1.1.1.1.1. + + Document Paragraph + + + ¶ + +
+

+ Pellentesque nec est in odio ultrices elementum. Vestibulum et hendrerit sapien, quis vulputate turpis. +Suspendisse potenti. Curabitur tristique sit amet lectus non viverra. Phasellus rutrum dapibus turpis sed imperdiet. +Mauris maximus viverra ante. Donec eu egestas mauris. Morbi vulputate tincidunt euismod. Integer vel porttitor neque. +Donec at lacus suscipit, lacinia lectus vel, sagittis lectus. +

+

+ + + 2. + + Structural Elements 2 + + + ¶ + +

+

+ Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis. +

+

+ + + 2.1. + + Document Section + + + ¶ + +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec. +

+

+ + + 2.1.1. + + Document Subsection + + + ¶ + +

+
+ ../../../../_images/yi_jing_01_chien.jpg +

+ + This is a caption for a figure. Text should wrap around the caption. + + + ¶ + +

+
+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. Praesent congue sagittis nisl et suscipit. +Vivamus sagittis risus et egestas commodo.Cras venenatis arcu in pharetra interdum. +Donec quis metus porttitor tellus cursus lobortis. Quisque et orci magna. Fusce rhoncus mi mi, +at vehicula massa rhoncus quis. Mauris augue leo, pretium eget molestie vitae, efficitur nec nulla. +In hac habitasse platea dictumst. Sed sit amet imperdiet purus. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/src/pytorch-sphinx-theme/docs/index.html b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/index.html new file mode 100644 index 0000000000..824a3a3571 --- /dev/null +++ b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/index.html @@ -0,0 +1,849 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <no title> — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/src/pytorch-sphinx-theme/docs/installing.html b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/installing.html new file mode 100644 index 0000000000..775ccfb56e --- /dev/null +++ b/docs/v1.1.1/src/pytorch-sphinx-theme/docs/installing.html @@ -0,0 +1,559 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Installation — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

+ Installation + + ¶ + +

+

+ Via Git or Download + + ¶ + +

+

+ Symlink or subtree the + + + pytorch_sphinx_theme + + + repository into your documentation at + + + docs/_themes/pytorch_sphinx_theme + + + then add the following two settings to your Sphinx + + + conf.py + + + file: +

+
+
+
html_theme = "pytorch_sphinx_theme"
+html_theme_path = ["_themes", ]
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/creating_torchscript_module_in_python.html b/docs/v1.1.1/tutorials/creating_torchscript_module_in_python.html new file mode 100644 index 0000000000..cc79e2f3c1 --- /dev/null +++ b/docs/v1.1.1/tutorials/creating_torchscript_module_in_python.html @@ -0,0 +1,845 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Creating a TorchScript Module — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Creating a TorchScript Module + + ¶ + +

+

+ TorchScript is a way to create serializable and optimizable models from PyTorch code. +PyTorch has detailed documentation on how to do this + + https://pytorch.org/tutorials/beginner/Intro_to_TorchScript_tutorial.html + + but briefly here is the +here is key background information and the process: +

+

+ PyTorch programs are based around + + + Module + + + s which can be used to compose higher level modules. + + + Modules + + + contain a constructor to set up the modules, parameters and sub-modules +and a forward function which describes how to use the parameters and submodules when the module is invoked. +

+

+ For example, we can define a LeNet module like this: +

+
+ + + + + +
+
+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+
+
+
+
import torch.nn as nn
+import torch.nn.functional as F
+
+class LeNetFeatExtractor(nn.Module):
+    def __init__(self):
+        super(LeNetFeatExtractor, self).__init__()
+        self.conv1 = nn.Conv2d(1, 6, 3)
+        self.conv2 = nn.Conv2d(6, 16, 3)
+
+    def forward(self, x):
+        x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
+        x = F.max_pool2d(F.relu(self.conv2(x)), 2)
+        return x
+
+class LeNetClassifier(nn.Module):
+    def __init__(self):
+        super(LeNetClassifier, self).__init__()
+        self.fc1 = nn.Linear(16 * 6 * 6, 120)
+        self.fc2 = nn.Linear(120, 84)
+        self.fc3 = nn.Linear(84, 10)
+
+    def forward(self, x):
+        x = torch.flatten(x,1)
+        x = F.relu(self.fc1(x))
+        x = F.relu(self.fc2(x))
+        x = self.fc3(x)
+        return x
+
+class LeNet(nn.Module):
+    def __init__(self):
+        super(LeNet, self).__init__()
+        self.feat = LeNetFeatExtractor()
+        self.classifer = LeNetClassifier()
+
+    def forward(self, x):
+        x = self.feat(x)
+        x = self.classifer(x)
+        return x
+
+
+
+
+

+ . +

+
+
+

+ Obviously you may want to consolidate such a simple model into a single module but we can see the composability of PyTorch here +

+
+
+

+ From here are two pathways for going from PyTorch Python code to TorchScript code: Tracing and Scripting. +

+

+ Tracing follows the path of execution when the module is called and records what happens. +To trace an instance of our LeNet module, we can call + + + torch.jit.trace + + + with an example input. +

+
+
+
import torch
+
+model = LeNet()
+input_data = torch.empty([1,1,32,32])
+traced_model = torch.jit.trace(model, input_data)
+
+
+
+

+ Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing +is following the execution of your module, it cannot pick up control flow for instance. By working from the Python code, the compiler can +include these components. We can run the script compiler on our LeNet module by calling + + + torch.jit.script + + +

+
+
+
import torch
+
+model = LeNet()
+script_model = torch.jit.script(model)
+
+
+
+

+ There are reasons to use one path or another, the PyTorch documentation has information on how to choose. From a Torch-TensorRT prespective, there is +better support (i.e your module is more likely to compile) for traced modules because it doesn’t include all the complexities of a complete +programming language, though both paths supported. +

+

+ After scripting or tracing your module, you are given back a TorchScript Module. This contains the code and parameters used to run the module stored +in a intermediate representation that Torch-TensorRT can consume. +

+

+ Here is what the LeNet traced module IR looks like: +

+
+
+
graph(%self.1 : __torch__.___torch_mangle_10.LeNet,
+    %input.1 : Float(1, 1, 32, 32)):
+    %129 : __torch__.___torch_mangle_9.LeNetClassifier = prim::GetAttr[name="classifer"](%self.1)
+    %119 : __torch__.___torch_mangle_5.LeNetFeatExtractor = prim::GetAttr[name="feat"](%self.1)
+    %137 : Tensor = prim::CallMethod[name="forward"](%119, %input.1)
+    %138 : Tensor = prim::CallMethod[name="forward"](%129, %137)
+    return (%138)
+
+
+
+

+ and the LeNet scripted module IR: +

+
+
+
graph(%self : __torch__.LeNet,
+    %x.1 : Tensor):
+    %2 : __torch__.LeNetFeatExtractor = prim::GetAttr[name="feat"](%self)
+    %x.3 : Tensor = prim::CallMethod[name="forward"](%2, %x.1) # x.py:38:12
+    %5 : __torch__.LeNetClassifier = prim::GetAttr[name="classifer"](%self)
+    %x.5 : Tensor = prim::CallMethod[name="forward"](%5, %x.3) # x.py:39:12
+    return (%x.5)
+
+
+
+

+ You can see that the IR preserves the module structure we have in our python code. +

+ + +

+ Working with TorchScript in Python + + ¶ + +

+

+ TorchScript Modules are run the same way you run normal PyTorch modules. You can run the forward pass using the + + + forward + + + method or just calling the module + + + torch_scirpt_module(in_tensor) + + + The JIT compiler will compile +and optimize the module on the fly and then returns the results. +

+

+ Saving TorchScript Module to Disk + + ¶ + +

+

+ For either traced or scripted modules, you can save the module to disk with the following command +

+
+
+
import torch
+
+model = LeNet()
+script_model = torch.jit.script(model)
+script_model.save("lenet_scripted.ts")
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/getting_started_with_cpp_api.html b/docs/v1.1.1/tutorials/getting_started_with_cpp_api.html new file mode 100644 index 0000000000..f8a8d7ef68 --- /dev/null +++ b/docs/v1.1.1/tutorials/getting_started_with_cpp_api.html @@ -0,0 +1,1280 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Getting Started with C++ — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Getting Started with C++ + + ¶ + +

+

+ If you haven’t already, acquire a tarball of the library by following the instructions in + + + Installation + + +

+

+ Using Torch-TensorRT in C++ + + ¶ + +

+

+ Torch-TensorRT C++ API accepts TorchScript modules (generated either from + + + torch.jit.script + + + or + + + torch.jit.trace + + + ) as an input and returns +a Torchscript module (optimized using TensorRT). This requires users to use Pytorch (in python) to generate torchscript modules beforehand. +Please refer to + + Creating TorchScript modules in Python + + section to generate torchscript graphs. +

+ + +

+ [Torch-TensorRT Quickstart] Compiling TorchScript Modules with + + + torchtrtc + + + + ¶ + +

+

+ An easy way to get started with Torch-TensorRT and to check if your model can be supported without extra work is to run it through + + + torchtrtc + + + , which supports almost all features of the compiler from the command line including post training quantization +(given a previously created calibration cache). For example we can compile our lenet model by setting our preferred operating +precision and input size. This new TorchScript file can be loaded into Python (note: you need to + + + import + + + torch_tensorrt + + + before loading +these compiled modules because the compiler extends the PyTorch the deserializer and runtime to execute compiled modules). +

+
+
+
❯ torchtrtc -p f16 lenet_scripted.ts trt_lenet_scripted.ts "(1,1,32,32)"
+
+❯ python3
+Python 3.6.9 (default, Apr 18 2020, 01:56:04)
+[GCC 8.4.0] on linux
+Type "help", "copyright", "credits" or "license" for more information.
+>>> import torch
+>>> import torch_tensorrt
+>>> ts_model = torch.jit.load(“trt_lenet_scripted.ts”)
+>>> ts_model(torch.randn((1,1,32,32)).to(“cuda”).half())
+
+
+
+

+ You can learn more about + + + torchtrtc + + + usage here: + + + torchtrtc + + +

+ + +

+ Working with TorchScript in C++ + + ¶ + +

+

+ If we are developing an application to deploy with C++, we can save either our traced or scripted module using + + + torch.jit.save + + + which will serialize the TorchScript code, weights and other information into a package. This is also where our dependency on Python ends. +

+
+
+
torch_script_module.save("lenet.jit.pt")
+
+
+
+

+ From here we can now load our TorchScript module in C++ +

+
+
+
#include <torch/script.h> // One-stop header.
+
+#include <iostream>
+#include <memory>
+
+int main(int argc, const char* argv[]) {
+    torch::jit::Module module;
+    try {
+        // Deserialize the ScriptModule from a file using torch::jit::load().
+        module = torch::jit::load("<PATH TO SAVED TS MOD>");
+    }
+    catch (const c10::Error& e) {
+        std::cerr << "error loading the model\n";
+        return -1;
+    }
+
+    std::cout << "ok\n";
+
+
+
+

+ You can do full training and inference in C++ with PyTorch / LibTorch if you would like, you can even define your modules in C++ and +have access to the same powerful tensor library that backs PyTorch. (For more information: + + https://pytorch.org/cppdocs/ + + ). +For instance we can do inference with our LeNet module like this: +

+
+
+
mod.eval();
+torch::Tensor in = torch::randn({1, 1, 32, 32});
+auto out = mod.forward(in);
+
+
+
+

+ and to run on the GPU: +

+
+
+
mod.eval();
+mod.to(torch::kCUDA);
+torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA);
+auto out = mod.forward(in);
+
+
+
+

+ As you can see it is pretty similar to the Python API. When you call the + + + forward + + + method, you invoke the PyTorch JIT compiler, which will optimize and run your TorchScript code. +

+ + +

+ Compiling with Torch-TensorRT in C++ + + ¶ + +

+

+ We are also at the point were we can compile and optimize our module with Torch-TensorRT, but instead of in a JIT fashion we must do it ahead-of-time (AOT) i.e. before we start doing actual inference work +since it takes a bit of time to optimize the module, it would not make sense to do this every time you run the module or even the first time you run it. +

+

+ With our module loaded, we can feed it into the Torch-TensorRT compiler. When we do so we must provide some information on the expected input size and also configure any additional settings. +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA});
+    auto trt_mod = torch_tensorrt::CompileGraph(mod, std::vector<torch_tensorrt::CompileSpec::InputRange>{{in.sizes()}});
+    auto out = trt_mod.forward({in});
+
+
+
+

+ Thats it! Now the graph runs primarily not with the JIT compiler but using TensorRT (though we execute the graph using the JIT runtime). +

+

+ We can also set settings like operating precision to run in FP16. +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF);
+    auto input_sizes = std::vector<torch_tensorrt::CompileSpec::InputRange>({in.sizes()});
+    torch_tensorrt::CompileSpec info(input_sizes);
+    info.enable_precisions.insert(torch::kHALF);
+    auto trt_mod = torch_tensorrt::CompileGraph(mod, info);
+    auto out = trt_mod.forward({in});
+
+
+
+

+ And now we are running the module in FP16 precision. You can then save the module to load later. +

+
+
+
trt_mod.save("<PATH TO SAVED TRT/TS MOD>")
+
+
+
+

+ Torch-TensorRT compiled TorchScript modules are loaded in the same way as normal TorchScript module. Make sure your deployment application is linked against + + + libtorchtrt.so + + +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+
+int main(int argc, const char* argv[]) {
+    torch::jit::Module module;
+    try {
+        // Deserialize the ScriptModule from a file using torch::jit::load().
+        module = torch::jit::load("<PATH TO SAVED TRT/TS MOD>");
+    }
+    catch (const c10::Error& e) {
+        std::cerr << "error loading the model\n";
+        return -1;
+    }
+
+    torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA);
+    auto out = mod.forward(in);
+
+    std::cout << "ok\n";
+}
+
+
+
+

+ If you want to save the engine produced by Torch-TensorRT to use in a TensorRT application you can use the + + + ConvertGraphToTRTEngine + + + API. +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF);
+    auto input_sizes = std::vector<torch_tensorrt::CompileSpec::InputRange>({in.sizes()});
+    torch_tensorrt::CompileSpec info(input_sizes);
+    info.enabled_precisions.insert(torch::kHALF);
+    auto trt_mod = torch_tensorrt::ConvertGraphToTRTEngine(mod, "forward", info);
+    std::ofstream out("/tmp/engine_converted_from_jit.trt");
+    out << engine;
+    out.close();
+
+
+
+ + +

+ Under The Hood + + ¶ + +

+

+ When a module is provided to Torch-TensorRT, the compiler starts by mapping a graph like you saw above to a graph like this: +

+
+
+
graph(%input.2 : Tensor):
+    %2 : Float(84, 10) = prim::Constant[value=<Tensor>]()
+    %3 : Float(120, 84) = prim::Constant[value=<Tensor>]()
+    %4 : Float(576, 120) = prim::Constant[value=<Tensor>]()
+    %5 : int = prim::Constant[value=-1]() # x.py:25:0
+    %6 : int[] = prim::Constant[value=annotate(List[int], [])]()
+    %7 : int[] = prim::Constant[value=[2, 2]]()
+    %8 : int[] = prim::Constant[value=[0, 0]]()
+    %9 : int[] = prim::Constant[value=[1, 1]]()
+    %10 : bool = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %11 : int = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %12 : bool = prim::Constant[value=0]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %self.classifer.fc3.bias : Float(10) = prim::Constant[value= 0.0464  0.0383  0.0678  0.0932  0.1045 -0.0805 -0.0435 -0.0818  0.0208 -0.0358 [ CUDAFloatType{10} ]]()
+    %self.classifer.fc2.bias : Float(84) = prim::Constant[value=<Tensor>]()
+    %self.classifer.fc1.bias : Float(120) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv2.weight : Float(16, 6, 3, 3) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv2.bias : Float(16) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv1.weight : Float(6, 1, 3, 3) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv1.bias : Float(6) = prim::Constant[value= 0.0530 -0.1691  0.2802  0.1502  0.1056 -0.1549 [ CUDAFloatType{6} ]]()
+    %input0.4 : Tensor = aten::_convolution(%input.2, %self.feat.conv1.weight, %self.feat.conv1.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %input0.5 : Tensor = aten::relu(%input0.4) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %input1.2 : Tensor = aten::max_pool2d(%input0.5, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %input0.6 : Tensor = aten::_convolution(%input1.2, %self.feat.conv2.weight, %self.feat.conv2.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %input2.1 : Tensor = aten::relu(%input0.6) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %x.1 : Tensor = aten::max_pool2d(%input2.1, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0
+    %27 : Tensor = aten::matmul(%input.1, %4)
+    %28 : Tensor = trt::const(%self.classifer.fc1.bias)
+    %29 : Tensor = aten::add_(%28, %27, %11)
+    %input0.2 : Tensor = aten::relu(%29) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %31 : Tensor = aten::matmul(%input0.2, %3)
+    %32 : Tensor = trt::const(%self.classifer.fc2.bias)
+    %33 : Tensor = aten::add_(%32, %31, %11)
+    %input1.1 : Tensor = aten::relu(%33) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %35 : Tensor = aten::matmul(%input1.1, %2)
+    %36 : Tensor = trt::const(%self.classifer.fc3.bias)
+    %37 : Tensor = aten::add_(%36, %35, %11)
+    return (%37)
+(CompileGraph)
+
+
+
+

+ The graph has now been transformed from a collection of modules, each managing their own parameters into a single graph with the parameters inlined +into the graph and all of the operations laid out. Torch-TensorRT has also executed a number of optimizations and mappings to make the graph easier to translate to TensorRT. +From here the compiler can assemble the TensorRT engine by following the dataflow through the graph. +

+

+ When the graph construction phase is complete, Torch-TensorRT produces a serialized TensorRT engine. From here depending on the API, this engine is returned +to the user or moves into the graph construction phase. Here Torch-TensorRT creates a JIT Module to execute the TensorRT engine which will be instantiated and managed +by the Torch-TensorRT runtime. +

+

+ Here is the graph that you get back after compilation is complete: +

+
+
+
graph(%self_1 : __torch__.lenet, %input_0 : Tensor):
+    %1 : ...trt.Engine = prim::GetAttr[name="lenet"](%self_1)
+    %3 : Tensor[] = prim::ListConstruct(%input_0)
+    %4 : Tensor[] = trt::execute_engine(%3, %1)
+    %5 : Tensor = prim::ListUnpack(%4)
+    return (%5)
+
+
+
+

+ You can see the call where the engine is executed, after extracting the attribute containing the engine and constructing a list of inputs, then returns the tensors back to the user. +

+ + +

+ Working with Unsupported Operators + + ¶ + +

+

+ Torch-TensorRT is a new library and the PyTorch operator library is quite large, so there will be ops that aren’t supported natively by the compiler. You can either use the composition techinques +shown above to make modules are fully Torch-TensorRT supported and ones that are not and stitch the modules together in the deployment application or you can register converters for missing ops. +

+
+
+

+ You can check support without going through the full compilation pipleine using the + + + torch_tensorrt::CheckMethodOperatorSupport(const + + + torch::jit::Module& + + + module, + + + std::string + + + method_name) + + + api +to see what operators are not supported. + + + torchtrtc + + + automatically checks modules with this method before starting compilation and will print out a list of operators that are not supported. +

+
+
+ + +

+ Registering Custom Converters + + ¶ + +

+

+ Operations are mapped to TensorRT through the use of modular converters, a function that takes a node from a the JIT graph and produces an equivalent layer or subgraph in TensorRT. +Torch-TensorRT ships with a library of these converters stored in a registry, that will be executed depending on the node being parsed. For instance a + + + aten::relu(%input0.4) + + + instruction will trigger +the relu converter to be run on it, producing an activation layer in the TensorRT graph. But since this library is not exhaustive you may need to write your own to get Torch-TensorRT +to support your module. +

+

+ Shipped with the Torch-TensorRT distribution are the internal core API headers. You can therefore access the converter registry and add a converter for the op you need. +

+

+ For example, if we try to compile a graph with a build of Torch-TensorRT that doesn’t support the flatten operation ( + + + aten::flatten + + + ) you may see this error: +

+
+
+
terminate called after throwing an instance of 'torch_tensorrt::Error'
+what():  [enforce fail at core/conversion/conversion.cpp:109] Expected converter to be true but got false
+Unable to convert node: %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 (conversion.AddLayer)
+Schema: aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)
+Converter for aten::flatten requested, but no such converter was found.
+If you need a converter for this operator, you can try implementing one yourself
+or request a converter: https://www.github.com/NVIDIA/Torch-TensorRT/issues
+
+
+
+

+ We can register a converter for this operator in our application. All of the tools required to build a converter can be imported by including + + + torch_tensorrt/core/conversion/converters/converters.h + + + . +We start by creating an instance of the self-registering class + + + torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns() + + + which will register converters +in the global converter registry, associating a function schema like + + + aten::flatten.using_ints(Tensor + + + self, + + + int + + + start_dim=0, + + + int + + + end_dim=-1) + + + -> + + + (Tensor) + + + with a lambda that +will take the state of the conversion, the node/operation in question to convert and all of the inputs to the node and produces as a side effect a new layer in the TensorRT network. +Arguments are passed as a vector of inspectable unions of TensorRT + + + ITensors + + + and Torch + + + IValues + + + in the order arguments are listed in the schema. +

+

+ Below is a implementation of a + + + aten::flatten + + + converter that we can use in our application. You have full access to the Torch and TensorRT libraries in the converter implementation. So +for example we can quickly get the output size by just running the operation in PyTorch instead of implementing the full calculation outself like we do below for this flatten converter. +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+#include "torch_tensorrt/core/conversion/converters/converters.h"
+
+static auto flatten_converter = torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns()
+    .pattern({
+        "aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)",
+        [](torch_tensorrt::core::conversion::ConversionCtx* ctx,
+           const torch::jit::Node* n,
+           torch_tensorrt::core::conversion::converters::args& args) -> bool {
+            auto in = args[0].ITensor();
+            auto start_dim = args[1].unwrapToInt();
+            auto end_dim = args[2].unwrapToInt();
+            auto in_shape = torch_tensorrt::core::util::toVec(in->getDimensions());
+            auto out_shape = torch::flatten(torch::rand(in_shape), start_dim, end_dim).sizes();
+
+            auto shuffle = ctx->net->addShuffle(*in);
+            shuffle->setReshapeDimensions(torch_tensorrt::core::util::toDims(out_shape));
+            shuffle->setName(torch_tensorrt::core::util::node_info(n).c_str());
+
+            auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], shuffle->getOutput(0));
+            return true;
+        }
+    });
+
+int main() {
+    ...
+
+
+
+

+ To use this converter in Python, it is recommended to use PyTorch’s + + C++ / CUDA Extention + + template to wrap your library of converters into a + + + .so + + + that you can load with + + + ctypes.CDLL() + + + in your Python application. +

+

+ You can find more information on all the details of writing converters in the contributors documentation ( + + + Writing Converters + + + ). +If you find yourself with a large library of converter implementations, do consider upstreaming them, PRs are welcome and it would be great for the community to benefit as well. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/getting_started_with_fx_path.html b/docs/v1.1.1/tutorials/getting_started_with_fx_path.html new file mode 100644 index 0000000000..24a04fde69 --- /dev/null +++ b/docs/v1.1.1/tutorials/getting_started_with_fx_path.html @@ -0,0 +1,912 @@ + + + + + + + + + + + + + Torch-TensorRT (FX Frontend) User Guide — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Torch-TensorRT (FX Frontend) User Guide
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Torch-TensorRT (FX Frontend) User Guide

+

Torch-TensorRT (FX Frontend) is a tool that can convert a PyTorch model through torch.fx to an +TensorRT engine optimized targeting running on Nvidia GPUs. TensorRT is the inference engine +developed by NVIDIA which composed of various kinds of optimization including kernel fusion, +graph optimization, low precision, etc.. This tool is developed in Python environment which allows this +workflow to be very accessible to researchers and engineers. There are a few stages that a +user want to use this tool and we will introduce them here.

+

> Torch-TensorRT (FX Frontend) is in Beta and currently it is recommended to work with PyTorch nightly.

+
# Test an example by
+$ python py/torch_tensorrt/fx/example/lower_example.py
+
+
+
+

Converting a PyTorch Model to TensorRT Engine

+

In general, users are welcome to use the compile() to finish the conversion from a model to tensorRT engine. It is a +wrapper API that consists of the major steps needed to finish this converison. Please refer to lower_example.py file in examples/fx.

+

In this section, we will go through an example to illustrate the major steps that fx path uses. +Users can refer to fx2trt_example.py file in examples/fx.

+
    +
  • Step 1: Trace the model with acc_tracer

  • +
+

Acc_tracer is a tracer inheritated from FX tracer. It comes with args normalizer to convert all args to kwargs and pass to TRT converters.

+
import torch_tensorrt.fx.tracer.acc_tracer.acc_tracer as acc_tracer
+
+# Build the model which needs to be a PyTorch nn.Module.
+my_pytorch_model = build_model()
+
+# Prepare inputs to the model. Inputs have to be a List of Tensors
+inputs = [Tensor, Tensor, ...]
+
+# Trace the model with acc_tracer.
+acc_mod = acc_tracer.trace(my_pytorch_model, inputs)
+
+
+

Common Errors:

+

symbolically traced variables cannot be used as inputs to control flow +This means the model contains dynamic control flow. Please refer to section “Dynamic Control Flow” in FX guide.

+
    +
  • Step 2: Build TensorRT engine

  • +
+

There are two different modes for how TensorRT handles batch dimension, explicit batch dimension and implicit batch dimension. This mode was used by early versions of TensorRT, and is now deprecated but continues to be supported for backwards compatibility. In explicit batch mode, all dimensions are explicit and can be dynamic, that is their length can change at execution time. Many new features, such as dynamic shapes and loops, are available only in this mode. User can still choose to use implicit batch mode when they set explicit_batch_dimension=False in compile(). We do not recommend to use it since it will lack of support in future TensorRT versions.

+

Explicit batch is the default mode and it must be set for dynamic shape. For most of vision task, user can choose to enable dynamic_batch in compile() if they want to get the similar effects as implicit mode where only batch dimension changes. It has some requirements: +1. Shapes of inputs, outputs and activations are fixed except batch dimension. +2. Inputs, outputs and activations have batch dimension as the major dimension. +3. All the operators in the model do not modify batch dimension (permute, transpose, split, etc.) or compute over batch dimension (sum, softmax, etc.).

+

For examples of the last path, if we have a 3D tensor t shaped as (batch, sequence, dimension), operations such as torch.transpose(0, 2). If any of these three are not satisfied, we’ll need to specify InputTensorSpec as inputs with dynamic range.

+
import deeplearning.trt.fx2trt.converter.converters
+from torch.fx.experimental.fx2trt.fx2trt import InputTensorSpec, TRTInterpreter
+
+# InputTensorSpec is a dataclass we use to store input information.
+# There're two ways we can build input_specs.
+# Option 1, build it manually.
+input_specs = [
+  InputTensorSpec(shape=(1, 2, 3), dtype=torch.float32),
+  InputTensorSpec(shape=(1, 4, 5), dtype=torch.float32),
+]
+# Option 2, build it using sample_inputs where user provide a sample
+inputs = [
+torch.rand((1,2,3), dtype=torch.float32),
+torch.rand((1,4,5), dtype=torch.float32),
+]
+input_specs = InputTensorSpec.from_tensors(inputs)
+
+# IMPORTANT: If dynamic shape is needed, we need to build it slightly differently.
+input_specs = [
+    InputTensorSpec(
+        shape=(-1, 2, 3),
+        dtype=torch.float32,
+        # Currently we only support one set of dynamic range. User may set other dimensions but it is not promised to work for any models
+        # (min_shape, optimize_target_shape, max_shape)
+        # For more information refer to fx/input_tensor_spec.py
+        shape_ranges = [
+            ((1, 2, 3), (4, 2, 3), (100, 2, 3)),
+        ],
+    ),
+    InputTensorSpec(shape=(1, 4, 5), dtype=torch.float32),
+]
+
+# Build a TRT interpreter. Set explicit_batch_dimension accordingly.
+interpreter = TRTInterpreter(
+    acc_mod, input_specs, explicit_batch_dimension=True/False
+)
+
+# The output of TRTInterpreter run() is wrapped as TRTInterpreterResult.
+# The TRTInterpreterResult contains required parameter to build TRTModule,
+# and other informational output from TRTInterpreter run.
+class TRTInterpreterResult(NamedTuple):
+    engine: Any
+    input_names: Sequence[str]
+    output_names: Sequence[str]
+    serialized_cache: bytearray
+
+#max_batch_size: set accordingly for maximum batch size you will use.
+#max_workspace_size: set to the maximum size we can afford for temporary buffer
+#lower_precision: the precision model layers are running on (TensorRT will choose the best perforamnce precision).
+#sparse_weights: allow the builder to examine weights and use optimized functions when weights have suitable sparsity
+#force_fp32_output: force output to be fp32
+#strict_type_constraints: Usually we should set it to False unless we want to control the precision of certain layer for numeric #reasons.
+#algorithm_selector: set up algorithm selection for certain layer
+#timing_cache: enable timing cache for TensorRT
+#profiling_verbosity: TensorRT logging level
+trt_interpreter_result = interpreter.run(
+    max_batch_size=64,
+    max_workspace_size=1 << 25,
+    sparse_weights=False,
+    force_fp32_output=False,
+    strict_type_constraints=False,
+    algorithm_selector=None,
+    timing_cache=None,
+    profiling_verbosity=None,
+)
+
+
+

Common Errors:

+

RuntimeError: Conversion of function xxx not currently supported! +- This means we don’t have the support for this xxx operator. Please refer to section “How to add a missing op” below for further instructions.

+
    +
  • Step 3: Run the model

  • +
+

One way is using TRTModule, which is basically a PyTorch nn.Module.

+
from torch_tensorrt.fx import TRTModule
+mod = TRTModule(
+    trt_interpreter_result.engine,
+    trt_interpreter_result.input_names,
+    trt_interpreter_result.output_names)
+# Just like all other PyTorch modules
+outputs = mod(*inputs)
+torch.save(mod, "trt.pt")
+reload_trt_mod = torch.load("trt.pt")
+reload_model_output = reload_trt_mod(*inputs)
+
+
+

So far, we give a detailed explanation of major steps in convterting a PyTorch model into TensorRT engine. Users are welcome to refer to the source code for some parameters explanations. In the converting scheme, there are two important actions in it. One is acc tracer which helps us to convert a PyTorch model to acc graph. The other is FX path converter which helps to convert the acc graph’s operation to corresponding TensorRT operation and build up the TensoRT engine for it.

+
+
+

Acc Tracer

+

Acc tracer is a custom FX symbolic tracer. It does a couple more things compare to the vanilla FX symbolic tracer. We mainly depend on it to convert PyTorch ops or builtin ops to acc ops. There are two main purposes for fx2trt to use acc ops:

+
    +
  1. there’re many ops that do similar things in PyTorch ops and builtin ops such like torch.add, builtin.add and torch.Tensor.add. Using acc tracer, we normalize these three ops to a single acc_ops.add. This helps reduce the number of converters we need to write.

  2. +
  3. acc ops only have kwargs which makes writing converter easier as we don’t need to add additional logic to find arguments in args and kwargs.

  4. +
+
+
+

FX2TRT

+

After symbolic tracing, we have the graph representation of a PyTorch model. fx2trt leverages the power of fx.Interpreter. fx.Interpreter goes through the whole graph node by node and calls the function that node represents. fx2trt overrides the original behavior of calling the function with invoking corresponding converts for each node. Each converter function adds corresponding TensorRT layer(s).

+

Below is an example of a converter function. The decorator is used to register this converter function with the corresponding node. In this example, we register this converter to a fx node whose target is acc_ops.sigmoid.

+
@tensorrt_converter(acc_ops.sigmoid)
+def acc_ops_sigmoid(network, target, args, kwargs, name):
+    """
+    network: TensorRT network. We'll be adding layers to it.
+
+    The rest arguments are attributes of fx node.
+    """
+    input_val = kwargs['input']
+
+    if not isinstance(input_val, trt.tensorrt.ITensor):
+        raise RuntimeError(f'Sigmoid received input {input_val} that is not part '
+                        'of the TensorRT region!')
+
+    layer = network.add_activation(input=input_val, type=trt.ActivationType.SIGMOID)
+    layer.name = name
+    return layer.get_output(0)
+
+
+
+

How to Add a Missing Op

+

You can actually add it wherever you want just need to remember import the file so that all acc ops and mapper will be registered before tracing with acc_tracer.

+
    +
  • Step 1. Add a new acc op

  • +
+

TODO: Need to explain more on the logistic of acc op like when we want to break down an op and when we want to reuse other ops.

+

In acc tracer, we convert nodes in the graph to acc ops if there’s a mapping registered for the node to an acc op.

+

In order to make the conversion to acc ops to happen, there’re two things required. One is that there should be an acc op function defined and the other is there should be a mapping registered.

+

Defining an acc op is simple, we first just need a function and register the function as an acc op via this decorator acc_normalizer.py. e.g. the following code adds an acc op named foo() which adds two given inputs.

+
# NOTE: all acc ops should only take kwargs as inputs, therefore we need the "*"
+# at the beginning.
+@register_acc_op
+def foo(*, input, other, alpha):
+    return input + alpha * other
+
+
+

There’re two ways to register a mapping. One is register_acc_op_mapping(). Let’s register a mapping from torch.add to foo() we just created above. We need to add decorator register_acc_op_mapping to it.

+
this_arg_is_optional = True
+
+@register_acc_op_mapping(
+    op_and_target=("call_function", torch.add),
+    arg_replacement_tuples=[
+        ("input", "input"),
+        ("other", "other"),
+        ("alpha", "alpha", this_arg_is_optional),
+    ],
+)
+@register_acc_op
+def foo(*, input, other, alpha=1.0):
+    return input + alpha * other
+
+
+

op_and_target determines which node will trigger this mapping. op and target are the attributes of FX node. In acc_normalization when we see a node with the same op and target as set in the op_and_target, we will trigger the mapping. Since we want to map from torch.add, then op would be call_function and target would be torch.add. arg_replacement_tuples determines how we construct kwargs for new acc op node using args and kwargs from original node. Each tuple in arg_replacement_tuples represents one argument mapping rule. It contains two or three elements. The third element is a boolean variable that determines whether this kwarg is optional in original node. We only need to specify the third element if it’s True. The first element is the argument name in original node which will be used as the acc op node’s argument whose name is the second element in the tuple. The sequence of the tuples does matter because the position of the tuple determines where the argument is in original node’s args. We use this information to map args from original node to kwargs in acc op node. +We don’t have to specify arg_replacement_tuples if none of the followings are true.

+
    +
  1. kwargs of original nodes and acc op nodes have different name.

  2. +
  3. there’re optional arguments.

  4. +
+

The other way to register a mapping is through register_custom_acc_mapper_fn(). This one is designed to reduce the redundant op registration as it allows you to use a function to map to one or more existing acc ops throught some combinations. In the function, you can do basically whatever you want. Let’s use an example to explain how it works.

+
@register_acc_op
+def foo(*, input, other, alpha=1.0):
+    return input + alpha * other
+
+@register_custom_acc_mapper_fn(
+    op_and_target=("call_function", torch.add),
+    arg_replacement_tuples=[
+        ("input", "input"),
+        ("other", "other"),
+        ("alpha", "alpha", this_arg_is_optional),
+    ],
+)
+def custom_mapper(node: torch.fx.Node, _: nn.Module) -> torch.fx.Node:
+    """
+    `node` is original node, which is a call_function node with target
+    being torch.add.
+    """
+    alpha = 1
+    if "alpha" in node.kwargs:
+        alpha = node.kwargs["alpha"]
+    foo_kwargs = {"input": node["input"], "other": node["other"], "alpha": alpha}
+    with node.graph.inserting_before(node):
+        foo_node = node.graph.call_function(foo, kwargs=foo_kwargs)
+        foo_node.meta = node.meta.copy()
+        return foo_node
+
+
+

In the custom mapper function, we construct an acc op node and return it. The node we returns here would take over all the children nodes of original nodes acc_normalizer.py.

+

The last step would be adding unit test for the new acc op or mapper function we added. The place to add the unit test is here test_acc_tracer.py.

+
    +
  • Step 2. Add a new converter

  • +
+

All the developed converters for acc ops are all in acc_op_converter.py. It could give you a good example of how the converter is added.

+

Essentially, the converter is the mapping mechanism that maps the acc ops to a TensorRT layer. If we are able to find all the TensorRT layers we need we can get start to add a converter for the node using TensorRT APIs.

+
@tensorrt_converter(acc_ops.sigmoid)
+def acc_ops_sigmoid(network, target, args, kwargs, name):
+    """
+    network: TensorRT network. We'll be adding layers to it.
+
+    The rest arguments are attributes of fx node.
+    """
+    input_val = kwargs['input']
+
+    if not isinstance(input_val, trt.tensorrt.ITensor):
+        raise RuntimeError(f'Sigmoid received input {input_val} that is not part '
+                        'of the TensorRT region!')
+
+    layer = network.add_activation(input=input_val, type=trt.ActivationType.SIGMOID)
+    layer.name = name
+    return layer.get_output(0)
+
+
+

We need to use tensorrt_converter decorator to register the converter. The argument for the decorator is the target of the fx node that we need to convert. In the converter, we can find the inputs to the fx node in kwargs. As in the example, the original node is acc_ops.sigmoid which only has one argument “input” in acc_ops.py. We get the input and check if it’s a TensorRT tensor. After that, we add a sigmoid layer to TensorRT network and return the output of the layer. The output we returned will be passed to the children nodes of acc_ops.sigmoid by fx.Interpreter.

+

What if we can not find corresponding layers in TensorRT that do the same thing as the node.

+

In this case, we would need to do a bit more work. TensorRT provides plugins which serves as custom layers. We have not implement this feature yet. We will update once it is enabled.

+

Last step would be adding the unit test for the new converter we added. User could add corresponding unit test in this folder.

+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/getting_started_with_python_api.html b/docs/v1.1.1/tutorials/getting_started_with_python_api.html new file mode 100644 index 0000000000..e063850389 --- /dev/null +++ b/docs/v1.1.1/tutorials/getting_started_with_python_api.html @@ -0,0 +1,654 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Using Torch-TensorRT in Python — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Using Torch-TensorRT in Python + + ¶ + +

+

+ Torch-TensorRT Python API accepts a + + + `torch.nn.Module + + + as an input. Under the hood, it uses + + + torch.jit.script + + + to convert the input module into a +TorchScript module. To compile your input + + + `torch.nn.Module + + + with Torch-TensorRT, all you need to do is provide the module and inputs +to Torch-TensorRT and you will be returned an optimized TorchScript module to run or add into another PyTorch module. Inputs +is a list of + + + torch_tensorrt.Input + + + classes which define input’s shape, datatype and memory format. You can also specify settings such as +operating precision for the engine or target device. After compilation you can save the module just like any other module +to load in a deployment application. In order to load a TensorRT/TorchScript module, make sure you first import + + + torch_tensorrt + + + . +

+
+
+
import torch_tensorrt
+
+...
+
+model = MyModel().eval() # torch module needs to be in eval (not training) mode
+
+inputs = [torch_tensorrt.Input(
+            min_shape=[1, 1, 16, 16],
+            opt_shape=[1, 1, 32, 32],
+            max_shape=[1, 1, 64, 64],
+            dtype=torch.half,
+        )]
+enabled_precisions = {torch.float, torch.half} # Run with fp16
+
+trt_ts_module = torch_tensorrt.compile(model, inputs=inputs, enabled_precisions=enabled_precisions)
+
+input_data = input_data.to('cuda').half()
+result = trt_ts_module(input_data)
+torch.jit.save(trt_ts_module, "trt_ts_module.ts")
+
+
+
+
+
+
# Deployment application
+import torch
+import torch_tensorrt
+
+trt_ts_module = torch.jit.load("trt_ts_module.ts")
+input_data = input_data.to('cuda').half()
+result = trt_ts_module(input_data)
+
+
+
+

+ Torch-TensorRT python API also provides + + + torch_tensorrt.ts.compile + + + which accepts a TorchScript module as input. +The torchscript module can be obtained via scripting or tracing (refer to + + creating_torchscript_module_in_python + + ). + + + torch_tensorrt.ts.compile + + + accepts a Torchscript module +and a list of + + + torch_tensorrt.Input + + + classes. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/installation.html b/docs/v1.1.1/tutorials/installation.html new file mode 100644 index 0000000000..2a810c0419 --- /dev/null +++ b/docs/v1.1.1/tutorials/installation.html @@ -0,0 +1,1813 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Installation — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Installation + + ¶ + +

+

+ Precompiled Binaries + + ¶ + +

+

+ Dependencies + + ¶ + +

+

+ You need to have either PyTorch or LibTorch installed based on if you are using Python or C++ +and you must have CUDA, cuDNN and TensorRT installed. +

+
+ +
+

+ Python Package + + ¶ + +

+

+ You can install the python package using +

+
+
+
pip3 install torch-tensorrt -f https://github.com/NVIDIA/Torch-TensorRT/releases
+
+
+
+ + +

+ C++ Binary Distribution + + ¶ + +

+

+ Precompiled tarballs for releases are provided here: + + https://github.com/NVIDIA/Torch-TensorRT/releases + +

+ + +

+ Compiling From Source + + ¶ + +

+ + +

+ Dependencies for Compilation + + ¶ + +

+

+ Torch-TensorRT is built with Bazel, so begin by installing it. +

+
+
+ +
+
+
export BAZEL_VERSION=$(cat <PATH_TO_TORCHTRT_ROOT>/.bazelversion)
+mkdir bazel
+cd bazel
+curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-dist.zip
+unzip bazel-$BAZEL_VERSION-dist.zip
+bash ./compile.sh
+cp output/bazel /usr/local/bin/
+
+
+
+
+
+

+ You will also need to have CUDA installed on the system (or if running in a container, the system must have +the CUDA driver installed and the container must have CUDA) +

+

+ The correct LibTorch version will be pulled down for you by bazel. +

+
+
+

+ NOTE: For best compatability with official PyTorch, use torch==1.10.0+cuda113, TensorRT 8.0 and cuDNN 8.2 for CUDA 11.3 however Torch-TensorRT itself supports +TensorRT and cuDNN for other CUDA versions for usecases such as using NVIDIA compiled distributions of PyTorch that use other versions of CUDA +e.g. aarch64 or custom compiled version of PyTorch. +

+
+
+ + +

+ Choosing the Right ABI + + ¶ + +

+

+ Likely the most complicated thing about compiling Torch-TensorRT is selecting the correct ABI. There are two options +which are incompatible with each other, pre-cxx11-abi and the cxx11-abi. The complexity comes from the fact that while +the most popular distribution of PyTorch (wheels downloaded from pytorch.org/pypi directly) use the pre-cxx11-abi, most +other distributions you might encounter (e.g. ones from NVIDIA - NGC containers, and builds for Jetson as well as certain +libtorch builds and likely if you build PyTorch from source) use the cxx11-abi. It is important you compile Torch-TensorRT +using the correct ABI to function properly. Below is a table with general pairings of PyTorch distribution sources and the +recommended commands: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ PyTorch Source +

+
+

+ Recommended C++ Compilation Command +

+
+

+ Recommended Python Compilation Command +

+
+

+ PyTorch whl file from PyTorch.org +

+
+

+ bazel build //:libtorchtrt -c opt –config pre_cxx11_abi +

+
+

+ python3 setup.py bdist_wheel +

+
+

+ libtorch-shared-with-deps- + + + * + + + .zip from PyTorch.org +

+
+

+ bazel build //:libtorchtrt -c opt –config pre_cxx11_abi +

+
+

+ python3 setup.py bdist_wheel +

+
+

+ libtorch-cxx11-abi-shared-with-deps- + + + * + + + .zip from PyTorch.org +

+
+

+ bazel build //:libtorchtrt -c opt +

+
+

+ python3 setup.py bdist_wheel –use-cxx11-abi +

+
+

+ PyTorch preinstalled in an NGC container +

+
+

+ bazel build //:libtorchtrt -c opt +

+
+

+ python3 setup.py bdist_wheel –use-cxx11-abi +

+
+

+ PyTorch from the NVIDIA Forums for Jetson +

+
+

+ bazel build //:libtorchtrt -c opt +

+
+

+ python3 setup.py bdist_wheel –jetpack-version 4.6 –use-cxx11-abi +

+
+

+ PyTorch built from Source +

+
+

+ bazel build //:libtorchtrt -c opt +

+
+

+ python3 setup.py bdist_wheel –use-cxx11-abi +

+
+
+
+

+ NOTE: For all of the above cases you must correctly declare the source of PyTorch you intend to use in your WORKSPACE file for both Python and C++ builds. See below for more information +

+
+
+

+ You then have two compilation options: +

+ + +

+ + Building using cuDNN & TensorRT tarball distributions + + + ¶ + +

+
+
+

+ This is recommended so as to build Torch-TensorRT hermetically and insures any compilation errors are not caused by version issues +

+

+ Make sure when running Torch-TensorRT that these versions of the libraries are prioritized in your + + + $LD_LIBRARY_PATH + + +

+
+
+
+
+ You need to download the tarball distributions of TensorRT and cuDNN from the NVIDIA website. +
+
+ +
+
+

+ Place these files in a directory (the directories + + + third_party/distdir/[x86_64-linux-gnu + + + | + + + aarch64-linux-gnu] + + + exist for this purpose) +

+

+ Then compile referencing the directory with the tarballs +

+
+
+

+ If you get errors regarding the packages, check their sha256 hashes and make sure they match the ones listed in + + + WORKSPACE + + +

+
+
+

+ Release Build + + ¶ + +

+
+
+
bazel build //:libtorchtrt -c opt --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+ + +

+ Debug Build + + ¶ + +

+

+ To build with debug symbols use the following command +

+
+
+
bazel build //:libtorchtrt -c dbg --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+

+ Pre CXX11 ABI Build + + ¶ + +

+

+ To build using the pre-CXX11 ABI use the + + + pre_cxx11_abi + + + config +

+
+
+
bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+ + +

+ + Building using locally installed cuDNN & TensorRT + + + ¶ + +

+
+
+

+ If you encounter bugs and you compiled using this method please disclose that you used local sources in the issue (an ldd dump would be nice too) +

+
+
+

+ Install TensorRT, CUDA and cuDNN on the system before starting to compile. +

+

+ In WORKSPACE comment out: +

+
+
+
# Downloaded distributions to use with --distdir
+http_archive(
+    name = "cudnn",
+    urls = ["<URL>",],
+
+    build_file = "@//third_party/cudnn/archive:BUILD",
+    sha256 = "<TAR SHA256>",
+    strip_prefix = "cuda"
+)
+
+http_archive(
+    name = "tensorrt",
+    urls = ["<URL>",],
+
+    build_file = "@//third_party/tensorrt/archive:BUILD",
+    sha256 = "<TAR SHA256>",
+    strip_prefix = "TensorRT-<VERSION>"
+)
+
+
+
+

+ and uncomment +

+
+
+
# Locally installed dependencies
+new_local_repository(
+    name = "cudnn",
+    path = "/usr/",
+    build_file = "@//third_party/cudnn/local:BUILD"
+)
+
+new_local_repository(
+name = "tensorrt",
+path = "/usr/",
+build_file = "@//third_party/tensorrt/local:BUILD"
+)
+
+
+
+

+ Release Build + + ¶ + +

+

+ Compile using: +

+
+
+
bazel build //:libtorchtrt -c opt
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+ + +

+ Debug Build + + ¶ + +

+

+ To build with debug symbols use the following command +

+
+
+
bazel build //:libtorchtrt -c dbg
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+

+ Pre CXX11 ABI Build + + ¶ + +

+

+ To build using the pre-CXX11 ABI use the + + + pre_cxx11_abi + + + config +

+
+
+
bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt]
+
+
+
+

+ + Building the Python package + + + ¶ + +

+

+ Begin by installing + + + ninja + + +

+

+ You can build the Python package using + + + setup.py + + + (this will also build the correct version of + + + libtorchtrt.so + + + ) +

+
+
+
python3 setup.py [install/bdist_wheel]
+
+
+
+

+ Debug Build + + ¶ + +

+
+
+
python3 setup.py develop [--user]
+
+
+
+

+ This also compiles a debug build of + + + libtorchtrt.so + + +

+

+ + Building Natively on aarch64 (Jetson) + + + ¶ + +

+

+ Prerequisites + + ¶ + +

+

+ Install or compile a build of PyTorch/LibTorch for aarch64 +

+

+ NVIDIA hosts builds the latest release branch for Jetson here: +

+
+ +
+

+ Enviorment Setup + + ¶ + +

+

+ To build natively on aarch64-linux-gnu platform, configure the + + + WORKSPACE + + + with local available dependencies. +

+
    +
  1. +

    + Disable the rules with + + + http_archive + + + for x86_64 by commenting the following rules: +

    +
  2. +
+
+
+
#http_archive(
+#    name = "libtorch",
+#    build_file = "@//third_party/libtorch:BUILD",
+#    strip_prefix = "libtorch",
+#    urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.5.1.zip"],
+#    sha256 = "cf0691493d05062fe3239cf76773bae4c5124f4b039050dbdd291c652af3ab2a"
+#)
+
+#http_archive(
+#    name = "libtorch_pre_cxx11_abi",
+#    build_file = "@//third_party/libtorch:BUILD",
+#    strip_prefix = "libtorch",
+#    sha256 = "818977576572eadaf62c80434a25afe44dbaa32ebda3a0919e389dcbe74f8656",
+#    urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-shared-with-deps-1.5.1.zip"],
+#)
+
+# Download these tarballs manually from the NVIDIA website
+# Either place them in the distdir directory in third_party and use the --distdir flag
+# or modify the urls to "file:///<PATH TO TARBALL>/<TARBALL NAME>.tar.gz
+
+#http_archive(
+#    name = "cudnn",
+#    urls = ["https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.1.13/10.2_20200626/cudnn-10.2-linux-x64-v8.0.1.13.tgz"],
+#    build_file = "@//third_party/cudnn/archive:BUILD",
+#    sha256 = "0c106ec84f199a0fbcf1199010166986da732f9b0907768c9ac5ea5b120772db",
+#    strip_prefix = "cuda"
+#)
+
+#http_archive(
+#    name = "tensorrt",
+#    urls = ["https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.1/tars/TensorRT-7.1.3.4.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn8.0.tar.gz"],
+#    build_file = "@//third_party/tensorrt/archive:BUILD",
+#    sha256 = "9205bed204e2ae7aafd2e01cce0f21309e281e18d5bfd7172ef8541771539d41",
+#    strip_prefix = "TensorRT-7.1.3.4"
+#)
+
+NOTE: You may also need to configure the CUDA version to 10.2 by setting the path for the cuda new_local_repository
+
+
+
+
    +
  1. +

    + Configure the correct paths to directory roots containing local dependencies in the + + + new_local_repository + + + rules: +

    +
    +
    +

    + NOTE: If you installed PyTorch using a pip package, the correct path is the path to the root of the python torch package. +In the case that you installed with + + + sudo + + + pip + + + install + + + this will be + + + /usr/local/lib/python3.6/dist-packages/torch + + + . +In the case you installed with + + + pip + + + install + + + --user + + + this will be + + + $HOME/.local/lib/python3.6/site-packages/torch + + + . +

    +
    +
    +
  2. +
+

+ In the case you are using NVIDIA compiled pip packages, set the path for both libtorch sources to the same path. This is because unlike +PyTorch on x86_64, NVIDIA aarch64 PyTorch uses the CXX11-ABI. If you compiled for source using the pre_cxx11_abi and only would like to +use that library, set the paths to the same path but when you compile make sure to add the flag + + + --config=pre_cxx11_abi + + +

+
+
+
new_local_repository(
+    name = "libtorch",
+    path = "/usr/local/lib/python3.6/dist-packages/torch",
+    build_file = "third_party/libtorch/BUILD"
+)
+
+new_local_repository(
+    name = "libtorch_pre_cxx11_abi",
+    path = "/usr/local/lib/python3.6/dist-packages/torch",
+    build_file = "third_party/libtorch/BUILD"
+)
+
+new_local_repository(
+    name = "cudnn",
+    path = "/usr/",
+    build_file = "@//third_party/cudnn/local:BUILD"
+)
+
+new_local_repository(
+    name = "tensorrt",
+    path = "/usr/",
+    build_file = "@//third_party/tensorrt/local:BUILD"
+)
+
+
+
+

+ Compile C++ Library and Compiler CLI + + ¶ + +

+
+
+

+ NOTE: Due to shifting dependency locations between Jetpack 4.5 and 4.6 there is a now a flag to inform bazel of the Jetpack version +

+
+
+
--platforms //toolchains:jetpack_4.x
+
+
+
+
+
+

+ Compile Torch-TensorRT library using bazel command: +

+
+
+
bazel build //:libtorchtrt --platforms //toolchains:jetpack_4.6
+
+
+
+

+ Compile Python API + + ¶ + +

+
+
+

+ NOTE: Due to shifting dependencies locations between Jetpack 4.5 and Jetpack 4.6 there is now a flag for + + + setup.py + + + which sets the jetpack version (default: 4.6) +

+
+
+

+ Compile the Python API using the following command from the + + + //py + + + directory: +

+
+
+
python3 setup.py install --use-cxx11-abi
+
+
+
+

+ If you have a build of PyTorch that uses Pre-CXX11 ABI drop the + + + --use-cxx11-abi + + + flag +

+

+ If you are building for Jetpack 4.5 add the + + + --jetpack-version + + + 4.5 + + + flag +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/notebooks.html b/docs/v1.1.1/tutorials/notebooks.html new file mode 100644 index 0000000000..2c50d64563 --- /dev/null +++ b/docs/v1.1.1/tutorials/notebooks.html @@ -0,0 +1,795 @@ + + + + + + + + + + + + + Example notebooks — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Example notebooks
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Example notebooks

+

There exists a number of notebooks which cover specific using specific features and models +with Torch-TensorRT

+
+

Notebooks

+
+

Compiling CitriNet with Torch-TensorRT

+

Citrinet is an acoustic model used for the speech to text recognition task. It is a version +of QuartzNet that extends ContextNet, utilizing subword encoding (via Word Piece tokenization) +and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models. CitriNet +models take in audio segments and transcribe them to letter, byte pair, or word piece sequences.

+

This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, +and running it to test the speedup obtained.

+ +
+
+

Compiling EfficentNet with Torch-TensorRT

+

EfficentNet is a feedforward CNN designed to achieve better performance and accuracy than alternative architectures +by using a “scaling method that uniformly scales all dimensions of depth/width/resolution using a simple yet highly effective compound coefficient”.

+

This notebook demonstrates the steps for optimizing a pretrained EfficentNet model with Torch-TensorRT, +and running it to test the speedup obtained.

+ +
+
+

Masked Language Modeling (MLM) with Hugging Face BERT Transformer accelerated by Torch-TensorRT

+

“BERT is a transformer model pretrained on a large corpus of English data in a self-supervised fashion. +This way, the model learns an inner representation of the English language that can then be used to extract +features useful for downstream tasks: if you have a dataset of labeled sentences for instance, you can train +a standard classifier using the features produced by the BERT model as inputs.” (https://huggingface.co/bert-base-uncased)

+

This notebook demonstrates the steps for optimizing a pretrained EfficentNet model with Torch-TensorRT, +and running it to test the speedup obtained.

+ +
+
+

Serving a model in C++ using Torch-TensorRT

+

This example shows how you can load a pretrained ResNet-50 model, convert it to a Torch-TensorRT +optimized model (via the Torch-TensorRT Python API), save the model as a torchscript module, and +then finally load and serve the model with the PyTorch C++ API.

+ +
+
+

Compiling ResNet50 with Torch-TensorRT

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a +pretrained ResNet-50 network, and running it to test the speedup obtained.

+ +
+
+

Using Dynamic Shapes with Torch-TensorRT

+

Making use of Dynamic Shaped Tensors in Torch TensorRT is quite simple. Let’s say you are +using the torch_tensorrt.compile(...) function to compile a torchscript module. One +of the args in this function in this function is input: which defines an input to a +module in terms of expected shape, data type and tensor format: torch_tensorrt.Input.

+

For the purposes of this walkthrough we just need three kwargs: min_shape, opt_shape` and max_shape.

+
torch_tensorrt.Input(
+        min_shape=(1, 224, 224, 3),
+        opt_shape=(1, 512, 512, 3),
+        max_shape=(1, 1024, 1024, 3),
+        dtype=torch.int32
+        format=torch.channel_last
+    )
+...
+
+
+

In this example, we are going to use a simple ResNet model to demonstrate the use of the API.

+ +
+
+

Using the FX Frontend with Torch-TensorRT

+

The purpose of this example is to demostrate the overall flow of lowering a PyTorch model to TensorRT +conveniently with using FX.

+ +
+
+

Compiling a PyTorch model using FX Frontend with Torch-TensorRT

+

The purpose of this example is to demonstrate the overall flow of lowering a PyTorch +model to TensorRT via FX with existing FX based tooling

+ +
+
+

Compiling LeNet with Torch-TensorRT

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network.

+ +
+
+

Accelerate Deep Learning Models using Quantization in Torch-TensorRT

+

Model Quantization is a popular way of optimization which reduces the size of models thereby +accelerating inference, also opening up the possibilities of deployments on devices with lower +computation power such as Jetson. Simply put, quantization is a process of mapping input values

+
+

from a larger set to output values in a smaller set. In this notebook, we illustrate the workflow +that you can adopt while quantizing a deep learning model in Torch-TensorRT. The notebook takes +you through an example of Mobilenetv2 for a classification task on a subset of Imagenet Dataset +called Imagenette which has 10 classes.

+
+ +
+
+

Object Detection with Torch-TensorRT (SSD)

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained.

+ +
+
+

Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT

+

Quantization Aware training (QAT) simulates quantization during training by +quantizing weights and activation layers. This will help to reduce the loss in +accuracy when we convert the network trained in FP32 to INT8 for faster inference. +QAT introduces additional nodes in the graph which will be used to learn the dynamic +ranges of weights and activation layers. In this notebook, we illustrate the following +steps from training to inference of a QAT model in Torch-TensorRT.

+ +
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/ptq.html b/docs/v1.1.1/tutorials/ptq.html new file mode 100644 index 0000000000..3de05ab124 --- /dev/null +++ b/docs/v1.1.1/tutorials/ptq.html @@ -0,0 +1,1040 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Post Training Quantization (PTQ) — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Post Training Quantization (PTQ) + + ¶ + +

+

+ Post Training Quantization (PTQ) is a technique to reduce the required computational resources for inference +while still preserving the accuracy of your model by mapping the traditional FP32 activation space to a reduced +INT8 space. TensorRT uses a calibration step which executes your model with sample data from the target domain +and track the activations in FP32 to calibrate a mapping to INT8 that minimizes the information loss between +FP32 inference and INT8 inference. +

+

+ Users writing TensorRT applications are required to setup a calibrator class which will provide sample data to +the TensorRT calibrator. With Torch-TensorRT we look to leverage existing infrastructure in PyTorch to make implementing +calibrators easier. +

+

+ LibTorch provides a + + + DataLoader + + + and + + + Dataset + + + API which steamlines preprocessing and batching input data. +These APIs are exposed via both C++ and Python interface which makes it easier for the end user. +For C++ interface, we use + + + torch::Dataset + + + and + + + torch::data::make_data_loader + + + objects to construct and perform pre-processing on datasets. +The equivalent functionality in python interface uses + + + torch.utils.data.Dataset + + + and + + + torch.utils.data.DataLoader + + + . +This section of the PyTorch documentation has more information + + https://pytorch.org/tutorials/advanced/cpp_frontend.html#loading-data + + and + + https://pytorch.org/tutorials/recipes/recipes/loading_data_recipe.html + + . +Torch-TensorRT uses Dataloaders as the base of a generic calibrator implementation. So you will be able to reuse or quickly +implement a + + + torch::Dataset + + + for your target domain, place it in a DataLoader and create a INT8 Calibrator +which you can provide to Torch-TensorRT to run INT8 Calibration during compliation of your module. +

+ + +

+ How to create your own PTQ application in C++ + + ¶ + +

+

+ Here is an example interface of a + + + torch::Dataset + + + class for CIFAR10: +

+
+ + + + + +
+
+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+
+
+
+
//cpp/ptq/datasets/cifar10.h
+#pragma once
+
+#include "torch/data/datasets/base.h"
+#include "torch/data/example.h"
+#include "torch/types.h"
+
+#include <cstddef>
+#include <string>
+
+namespace datasets {
+// The CIFAR10 Dataset
+class CIFAR10 : public torch::data::datasets::Dataset<CIFAR10> {
+public:
+    // The mode in which the dataset is loaded
+    enum class Mode { kTrain, kTest };
+
+    // Loads CIFAR10 from un-tarred file
+    // Dataset can be found https://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz
+    // Root path should be the directory that contains the content of tarball
+    explicit CIFAR10(const std::string& root, Mode mode = Mode::kTrain);
+
+    // Returns the pair at index in the dataset
+    torch::data::Example<> get(size_t index) override;
+
+    // The size of the dataset
+    c10::optional<size_t> size() const override;
+
+    // The mode the dataset is in
+    bool is_train() const noexcept;
+
+    // Returns all images stacked into a single tensor
+    const torch::Tensor& images() const;
+
+    // Returns all targets stacked into a single tensor
+    const torch::Tensor& targets() const;
+
+    // Trims the dataset to the first n pairs
+    CIFAR10&& use_subset(int64_t new_size);
+
+
+private:
+    Mode mode_;
+    torch::Tensor images_, targets_;
+};
+} // namespace datasets
+
+
+
+
+

+ This class’s implementation reads from the binary distribution of the CIFAR10 dataset and builds two tensors which hold the images and labels. +

+

+ We use a subset of the dataset to use for calibration, since we don’t need the the full dataset for effective calibration and calibration does +some take time, then define the preprocessing to apply to the images in the dataset and create a DataLoader from the dataset which will batch the data: +

+
+
+
auto calibration_dataset = datasets::CIFAR10(data_dir, datasets::CIFAR10::Mode::kTest)
+                                    .use_subset(320)
+                                    .map(torch::data::transforms::Normalize<>({0.4914, 0.4822, 0.4465},
+                                                                            {0.2023, 0.1994, 0.2010}))
+                                    .map(torch::data::transforms::Stack<>());
+auto calibration_dataloader = torch::data::make_data_loader(std::move(calibration_dataset),
+                                                            torch::data::DataLoaderOptions().batch_size(32)
+                                                                                            .workers(2));
+
+
+
+

+ Next we create a calibrator from the + + + calibration_dataloader + + + using the calibrator factory (found in + + + torch_tensorrt/ptq.h + + + ): +

+
+
+
#include "torch_tensorrt/ptq.h"
+...
+
+auto calibrator = torch_tensorrt::ptq::make_int8_calibrator(std::move(calibration_dataloader), calibration_cache_file, true);
+
+
+
+

+ Here we also define a location to write a calibration cache file to which we can use to reuse the calibration data without needing the dataset and whether or not +we should use the cache file if it exists. There also exists a + + + torch_tensorrt::ptq::make_int8_cache_calibrator + + + factory which creates a calibrator that uses the cache +only for cases where you may do engine building on a machine that has limited storage (i.e. no space for a full dataset) or to have a simpiler deployment application. +

+

+ The calibrator factories create a calibrator that inherits from a + + + nvinfer1::IInt8Calibrator + + + virtual class ( + + + nvinfer1::IInt8EntropyCalibrator2 + + + by default) which +defines the calibration algorithm used when calibrating. You can explicitly make the selection of calibration algorithm like this: +

+
+
+
// MinMax Calibrator is geared more towards NLP tasks
+auto calibrator = torch_tensorrt::ptq::make_int8_calibrator<nvinfer1::IInt8MinMaxCalibrator>(std::move(calibration_dataloader), calibration_cache_file, true);
+
+
+
+

+ Then all thats required to setup the module for INT8 calibration is to set the following compile settings in the + + torch_tensorrt::CompileSpec + + struct and compiling the module: +

+
+
+
std::vector<std::vector<int64_t>> input_shape = {{32, 3, 32, 32}};
+/// Configure settings for compilation
+auto compile_spec = torch_tensorrt::CompileSpec({input_shape});
+/// Set operating precision to INT8
+compile_spec.enabled_precisions.insert(torch::kF16);
+compile_spec.enabled_precisions.insert(torch::kI8);
+/// Use the TensorRT Entropy Calibrator
+compile_spec.ptq_calibrator = calibrator;
+/// Set a larger workspace (you may get better performace from doing so)
+compile_spec.workspace_size = 1 << 28;
+
+auto trt_mod = torch_tensorrt::CompileGraph(mod, compile_spec);
+
+
+
+

+ If you have an existing Calibrator implementation for TensorRT you may directly set the + + + ptq_calibrator + + + field with a pointer to your calibrator and it will work as well. +From here not much changes in terms of how to execution works. You are still able to fully use LibTorch as the sole interface for inference. Data should remain +in FP32 precision when it’s passed into + + trt_mod.forward + + . There exists an example application in the Torch-TensorRT demo that takes you from training a VGG16 network on +CIFAR10 to deploying in INT8 with Torch-TensorRT here: + + https://github.com/NVIDIA/Torch-TensorRT/tree/master/cpp/ptq + +

+ + +

+ How to create your own PTQ application in Python + + ¶ + +

+

+ Torch-TensorRT Python API provides an easy and convenient way to use pytorch dataloaders with TensorRT calibrators. + + + DataLoaderCalibrator + + + class can be used to create +a TensorRT calibrator by providing desired configuration. The following code demonstrates an example on how to use it +

+
+
+
testing_dataset = torchvision.datasets.CIFAR10(root='./data',
+                                                        train=False,
+                                                        download=True,
+                                                        transform=transforms.Compose([
+                                                            transforms.ToTensor(),
+                                                            transforms.Normalize((0.4914, 0.4822, 0.4465),
+                                                                                 (0.2023, 0.1994, 0.2010))
+                                                        ]))
+
+testing_dataloader = torch.utils.data.DataLoader(testing_dataset,
+                                                      batch_size=1,
+                                                      shuffle=False,
+                                                      num_workers=1)
+calibrator = torch_tensorrt.ptq.DataLoaderCalibrator(testing_dataloader,
+                                              cache_file='./calibration.cache',
+                                              use_cache=False,
+                                              algo_type=torch_tensorrt.ptq.CalibrationAlgo.ENTROPY_CALIBRATION_2,
+                                              device=torch.device('cuda:0'))
+
+compile_spec = {
+         "inputs": [torch_tensorrt.Input((1, 3, 32, 32))],
+         "enabled_precisions": {torch.float, torch.half, torch.int8},
+         "calibrator": calibrator,
+         "device": {
+             "device_type": torch_tensorrt.DeviceType.GPU,
+             "gpu_id": 0,
+             "dla_core": 0,
+             "allow_gpu_fallback": False,
+             "disable_tf32": False
+         }
+     }
+trt_mod = torch_tensorrt.compile(model, compile_spec)
+
+
+
+

+ In the cases where there is a pre-existing calibration cache file that users want to use, + + + CacheCalibrator + + + can be used without any dataloaders. The following example demonstrates how +to use + + + CacheCalibrator + + + to use in INT8 mode. +

+
+
+
calibrator = torch_tensorrt.ptq.CacheCalibrator("./calibration.cache")
+
+compile_settings = {
+      "inputs": [torch_tensorrt.Input([1, 3, 32, 32])],
+      "enabled_precisions": {torch.float, torch.half, torch.int8},
+      "calibrator": calibrator,
+  }
+
+trt_mod = torch_tensorrt.compile(model, compile_settings)
+
+
+
+

+ If you already have an existing calibrator class (implemented directly using TensorRT API), you can directly set the calibrator field to your class which can be very convenient. +For a demo on how PTQ can be performed on a VGG network using Torch-TensorRT API, you can refer to + + https://github.com/NVIDIA/Torch-TensorRT/blob/master/tests/py/test_ptq_dataloader_calibrator.py + + and + + https://github.com/NVIDIA/Torch-TensorRT/blob/master/tests/py/test_ptq_trt_calibrator.py + +

+

+ Citations + + ¶ + +

+

+ Krizhevsky, A., & Hinton, G. (2009). Learning multiple layers of features from tiny images. +

+

+ Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/runtime.html b/docs/v1.1.1/tutorials/runtime.html new file mode 100644 index 0000000000..941d1ec6bf --- /dev/null +++ b/docs/v1.1.1/tutorials/runtime.html @@ -0,0 +1,764 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Deploying Torch-TensorRT Programs — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Deploying Torch-TensorRT Programs + + ¶ + +

+

+ After compiling and saving Torch-TensorRT programs there is no longer a strict dependency on the full +Torch-TensorRT library. All that is required to run a compiled program is the runtime. There are therfore a couple +options to deploy your programs other than shipping the full Torch-TensorRT compiler with your applications. +

+

+ Torch-TensorRT package / libtorchtrt.so + + ¶ + +

+

+ Once a program is compiled, you run it using the standard PyTorch APIs. All that is required is that the package +must be imported in python or linked in C++. +

+

+ Runtime Library + + ¶ + +

+

+ Distributed with the C++ distribution is + + + libtorchtrt_runtime.so + + + . This library only contains the components +necessary to run Torch-TensorRT programs. Instead of linking + + + libtorchtrt.so + + + or importing + + + torch_tensorrt + + + you can +link + + + libtorchtrt_runtime.so + + + in your deployment programs or use + + + DL_OPEN + + + or + + + LD_PRELOAD + + + . For python +you can load the runtime with + + + torch.ops.load_library("libtorchtrt_runtime.so") + + + . You can then continue to use +programs just as you would otherwise via PyTorch API. +

+
+

+ Note +

+

+ If you are using the standard distribution of PyTorch in Python on x86, likely you will need the pre-cxx11-abi variant of + + + libtorchtrt_runtime.so + + + , check + + + Installation + + + documentation for more details. +

+
+
+

+ Note +

+

+ If you are linking + + + libtorchtrt_runtime.so + + + , likely using the following flags will help + + + -Wl,--no-as-needed + + + -ltorchtrt + + + -Wl,--as-needed + + + as theres no direct symbol dependency to anything in the Torch-TensorRT runtime for most Torch-TensorRT runtime applications +

+
+

+ An example of how to use + + + libtorchtrt_runtime.so + + + can be found here: + + https://github.com/NVIDIA/Torch-TensorRT/tree/master/examples/torchtrt_example + +

+

+ Plugin Library + + ¶ + +

+

+ In the case you use Torch-TensorRT as a converter to a TensorRT engine and your engine uses plugins provided by Torch-TensorRT, Torch-TensorRT +ships the library + + + libtorchtrt_plugins.so + + + which contains the implementation of the TensorRT plugins used by Torch-TensorRT during +compilation. This library can be + + + DL_OPEN + + + or + + + LD_PRELOAD + + + similar to other TensorRT plugin libraries. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/serving_torch_tensorrt_with_triton.html b/docs/v1.1.1/tutorials/serving_torch_tensorrt_with_triton.html new file mode 100644 index 0000000000..16029d002c --- /dev/null +++ b/docs/v1.1.1/tutorials/serving_torch_tensorrt_with_triton.html @@ -0,0 +1,826 @@ + + + + + + + + + + + + + Serving a Torch-TensorRT model with Triton — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Serving a Torch-TensorRT model with Triton
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Serving a Torch-TensorRT model with Triton

+

Optimization and deployment go hand in hand in a discussion about Machine +Learning infrastructure. Once network level optimzation are done +to get the maximum performance, the next step would be to deploy it.

+

However, serving this optimized model comes with it’s own set of considerations +and challenges like: building an infrastructure to support concorrent model +executions, supporting clients over HTTP or gRPC and more.

+

The Triton Inference Server +solves the aforementioned and more. Let’s discuss step-by-step, the process of +optimizing a model with Torch-TensorRT, deploying it on Triton Inference +Server, and building a client to query the model.

+
+

Step 1: Optimize your model with Torch-TensorRT

+

Most Torch-TensorRT users will be familiar with this step. For the purpose of +this demonstration, we will be using a ResNet50 model from Torchhub.

+

Let’s first pull the NGC PyTorch Docker container. You may need to create +an account and get the API key from here. +Sign up and login with your key (follow the instructions +here after signing up).

+
# <xx.xx> is the yy:mm for the publishing tag for NVIDIA's Pytorch
+# container; eg. 22.04
+
+docker run -it --gpus all -v ${PWD}:/scratch_space nvcr.io/nvidia/pytorch:<xx.xx>-py3
+cd /scratch_space
+
+
+

Once inside the container, we can proceed to download a ResNet model from +Torchhub and optimize it with Torch-TensorRT.

+
import torch
+import torch_tensorrt
+torch.hub._validate_not_a_forked_repo=lambda a,b,c: True
+
+# load model
+model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True).eval().to("cuda")
+
+# Compile with Torch TensorRT;
+trt_model = torch_tensorrt.compile(model,
+    inputs= [torch_tensorrt.Input((1, 3, 224, 224))],
+    enabled_precisions= { torch.half} # Run with FP32
+)
+
+# Save the model
+torch.jit.save(trt_model, "model.pt")
+
+
+

After copying the model, exit the container. The next step in the process +is to set up a Triton Inference Server.

+
+
+

Step 2: Set Up Triton Inference Server

+

If you are new to the Triton Inference Server and want to learn more, we +highly recommend to checking our Github +Repository.

+

To use Triton, we need to make a model repository. A model repository, as the +name suggested, is a repository of the models the Inference server hosts. While +Triton can serve models from multiple repositories, in this example, we will +discuss the simplest possible form of the model repository.

+

The structure of this repository should look something like this:

+
model_repository
+|
++-- resnet50
+    |
+    +-- config.pbtxt
+    +-- 1
+        |
+        +-- model.pt
+
+
+

There are two files that Triton requires to serve the model: the model itself +and a model configuration file which is typically provided in config.pbtxt. +For the model we prepared in step 1, the following configuration can be used:

+
name: "resnet50"
+platform: "pytorch_libtorch"
+max_batch_size : 0
+input [
+  {
+    name: "input__0"
+    data_type: TYPE_FP32
+    dims: [ 3, 224, 224 ]
+    reshape { shape: [ 1, 3, 224, 224 ] }
+  }
+]
+output [
+  {
+    name: "output__0"
+    data_type: TYPE_FP32
+    dims: [ 1, 1000 ,1, 1]
+    reshape { shape: [ 1, 1000 ] }
+  }
+]
+
+
+

The config.pbtxt file is used to describe the exact model configuration +with details like the names and shapes of the input and output layer(s), +datatypes, scheduling and batching details and more. If you are new to Triton, +we highly encourage you to check out this section of our +documentation +for more details.

+

With the model repository setup, we can proceed to launch the Triton server +with the docker command below. Refer this page for the pull tag for the container.

+
# Make sure that the TensorRT version in the Triton container
+# and TensorRT version in the environment used to optimize the model
+# are the same.
+
+docker run --gpus all --rm -p 8000:8000 -p 8001:8001 -p 8002:8002 -v /full/path/to/the_model_repository/model_repository:/models nvcr.io/nvidia/tritonserver:<xx.yy>-py3 tritonserver --model-repository=/models
+
+
+

This should spin up a Triton Inference server. Next step, building a simple +http client to query the server.

+
+
+

Step 3: Building a Triton Client to Query the Server

+

Before proceeding, make sure to have a sample image on hand. If you don’t +have one, download an example image to test inference. In this section, we +will be going over a very basic client. For a variety of more fleshed out +examples, refer to the Triton Client Repository

+
wget  -O img1.jpg "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg"
+
+
+

We then need to install dependencies for building a python client. These will +change from client to client. For a full list of all languages supported by Triton, +please refer to Triton’s client repository.

+
pip install torchvision
+pip install attrdict
+pip install nvidia-pyindex
+pip install tritonclient[all]
+
+
+

Let’s jump into the client. Firstly, we write a small preprocessing function to +resize and normalize the query image.

+
import numpy as np
+from torchvision import transforms
+from PIL import Image
+import tritonclient.http as httpclient
+from tritonclient.utils import triton_to_np_dtype
+
+# preprocessing function
+def rn50_preprocess(img_path="img1.jpg"):
+    img = Image.open(img_path)
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    return preprocess(img).numpy()
+
+transformed_img = rn50_preprocess()
+
+
+

Building a client requires three basic points. Firstly, we setup a connection +with the Triton Inference Server.

+
# Setting up client
+client = httpclient.InferenceServerClient(url="localhost:8000")
+
+
+

Secondly, we specify the names of the input and output layer(s) of our model.

+
inputs = httpclient.InferInput("input__0", transformed_img.shape, datatype="FP32")
+inputs.set_data_from_numpy(transformed_img, binary_data=True)
+
+outputs = httpclient.InferRequestedOutput("output__0", binary_data=True, class_count=1000)
+
+
+

Lastly, we send an inference request to the Triton Inference Server.

+
# Querying the server
+results = client.infer(model_name="resnet50", inputs=[inputs], outputs=[outputs])
+inference_output = results.as_numpy('output__0')
+print(inference_output[:5])
+
+
+

The output of the same should look like below:

+
[b'12.468750:90' b'11.523438:92' b'9.664062:14' b'8.429688:136'
+ b'8.234375:11']
+
+
+

The output format here is <confidence_score>:<classification_index>. +To learn how to map these to the label names and more, refer to Triton Inference Server’s +documentation.

+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/torchtrtc.html b/docs/v1.1.1/tutorials/torchtrtc.html new file mode 100644 index 0000000000..10fa7cc302 --- /dev/null +++ b/docs/v1.1.1/tutorials/torchtrtc.html @@ -0,0 +1,700 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + torchtrtc — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ torchtrtc + + ¶ + +

+

+ + + torchtrtc + + + is a CLI application for using the Torch-TensorRT compiler. It serves as an easy way to compile a +TorchScript Module with Torch-TensorRT from the command-line to quickly check support or as part of +a deployment pipeline. All basic features of the compiler are supported including post training +quantization (though you must already have a calibration cache file to use the PTQ feature). The compiler can +output two formats, either a TorchScript program with the TensorRT engine embedded or +the TensorRT engine itself as a PLAN file. +

+

+ All that is required to run the program after compilation is for C++ linking against + + + libtorchtrt.so + + + or in Python importing the torch_tensorrt package. All other aspects of using compiled modules are identical +to standard TorchScript. Load with + + + torch.jit.load() + + + and run like you would run any other module. +

+
+
+
torchtrtc [input_file_path] [output_file_path]
+  [input_specs...] {OPTIONS}
+
+  torchtrtc is a compiler for TorchScript, it will compile and optimize
+  TorchScript programs to run on NVIDIA GPUs using TensorRT
+
+OPTIONS:
+
+    -h, --help                        Display this help menu
+    Verbiosity of the compiler
+      -v, --verbose                     Dumps debugging information about the
+                                        compilation process onto the console
+      -w, --warnings                    Disables warnings generated during
+                                        compilation onto the console (warnings
+                                        are on by default)
+      --i, --info                       Dumps info messages generated during
+                                        compilation onto the console
+    --build-debuggable-engine         Creates a debuggable engine
+    --allow-gpu-fallback              (Only used when targeting DLA
+                                      (device-type)) Lets engine run layers on
+                                      GPU if they are not supported on DLA
+    --require-full-compilation        Require that the model should be fully
+                                      compiled to TensorRT or throw an error
+    --check-method-support=[method_name]
+                                      Check the support for end to end
+                                      compilation of a specified method in the
+                                      TorchScript module
+    --disable-tf32                    Prevent Float32 layers from using the
+                                      TF32 data format
+    --sparse-weights                  Enable sparsity for weights of conv and
+                                      FC layers
+    -p[precision...],
+    --enable-precision=[precision...] (Repeatable) Enabling an operating
+                                      precision for kernels to use when
+                                      building the engine (Int8 requires a
+                                      calibration-cache argument) [ float |
+                                      float32 | f32 | fp32 | half | float16 |
+                                      f16 | fp16 | int8 | i8 | char ]
+                                      (default: float)
+    -d[type], --device-type=[type]    The type of device the engine should be
+                                      built for [ gpu | dla ] (default: gpu)
+    --gpu-id=[gpu_id]                 GPU id if running on multi-GPU platform
+                                      (defaults to 0)
+    --dla-core=[dla_core]             DLACore id if running on available DLA
+                                      (defaults to 0)
+    --engine-capability=[capability]  The type of device the engine should be
+                                      built for [ standard | safety |
+                                      dla_standalone ]
+    --calibration-cache-file=[file_path]
+                                      Path to calibration cache file to use
+                                      for post training quantization
+    --teo=[op_name...],
+    --torch-executed-op=[op_name...]  (Repeatable) Operator in the graph that
+                                      should always be run in PyTorch for
+                                      execution (partial compilation must be
+                                      enabled)
+    --tem=[module_name...],
+    --torch-executed-mod=[module_name...]
+                                      (Repeatable) Module that should always
+                                      be run in Pytorch for execution (partial
+                                      compilation must be enabled)
+    --mbs=[num_ops],
+    --min-block-size=[num_ops]        Minimum number of contiguous TensorRT
+                                      supported ops to compile a subgraph to
+                                      TensorRT
+    --embed-engine                    Whether to treat input file as a
+                                      serialized TensorRT engine and embed it
+                                      into a TorchScript module (device spec
+                                      must be provided)
+    --num-min-timing-iter=[num_iters] Number of minimization timing iterations
+                                      used to select kernels
+    --num-avg-timing-iters=[num_iters]
+                                      Number of averaging timing iterations
+                                      used to select kernels
+    --workspace-size=[workspace_size] Maximum size of workspace given to
+                                      TensorRT
+    -t[threshold],
+    --threshold=[threshold]           Maximum acceptable numerical deviation
+                                      from standard torchscript output
+                                      (default 2e-5)
+    --no-threshold-check              Skip checking threshold compliance
+    --truncate-long-double,
+    --truncate, --truncate-64bit      Truncate weights that are provided in
+                                      64bit to 32bit (Long, Double to Int,
+                                      Float)
+    --save-engine                     Instead of compiling a full a
+                                      TorchScript program, save the created
+                                      engine to the path specified as the
+                                      output path
+    input_file_path                   Path to input TorchScript file
+    output_file_path                  Path for compiled TorchScript (or
+                                      TensorRT engine) file
+    input_specs...                    Specs for inputs to engine, can either
+                                      be a single size or a range defined by
+                                      Min, Optimal, Max sizes, e.g.
+                                      "(N,..,C,H,W)"
+                                      "[(MIN_N,..,MIN_C,MIN_H,MIN_W);(OPT_N,..,OPT_C,OPT_H,OPT_W);(MAX_N,..,MAX_C,MAX_H,MAX_W)]".
+                                      Data Type and format can be specified by
+                                      adding an "@" followed by dtype and "%"
+                                      followed by format to the end of the
+                                      shape spec. e.g. "(3, 3, 32,
+                                      32)@f16%NHWC"
+    "--" can be used to terminate flag options and force all following
+    arguments to be treated as positional options
+
+
+
+

+ e.g. +

+
+
+
torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@f16%contiguous" -p f16
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/use_from_pytorch.html b/docs/v1.1.1/tutorials/use_from_pytorch.html new file mode 100644 index 0000000000..cfe1d6d790 --- /dev/null +++ b/docs/v1.1.1/tutorials/use_from_pytorch.html @@ -0,0 +1,686 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Using Torch-TensorRT Directly From PyTorch — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Using Torch-TensorRT Directly From PyTorch + + ¶ + +

+

+ You will now be able to directly access TensorRT from PyTorch APIs. The process to use this feature +is very similar to the compilation workflow described in + + + Using Torch-TensorRT in Python + + +

+

+ Start by loading + + + torch_tensorrt + + + into your application. +

+
+
+
import torch
+import torch_tensorrt
+
+
+
+

+ Then given a TorchScript module, you can compile it with TensorRT using the + + + torch._C._jit_to_backend("tensorrt", + + + ...) + + + API. +

+
+
+
import torchvision.models as models
+
+model = models.mobilenet_v2(pretrained=True)
+script_model = torch.jit.script(model)
+
+
+
+

+ Unlike the + + + compile + + + API in Torch-TensorRT which assumes you are trying to compile the + + + forward + + + function of a module +or the + + + convert_method_to_trt_engine + + + which converts a specified function to a TensorRT engine, the backend API +will take a dictionary which maps names of functions to compile to Compilation Spec objects which wrap the same +sort of dictionary you would provide to + + + compile + + + . For more information on the compile spec dictionary take a look +at the documentation for the Torch-TensorRT + + + TensorRTCompileSpec + + + API. +

+
+
+
spec = {
+    "forward":
+        torch_tensorrt.ts.TensorRTCompileSpec({
+            "inputs": [torch_tensorrt.Input([1, 3, 300, 300])],
+            "enabled_precisions": {torch.float, torch.half},
+            "refit": False,
+            "debug": False,
+            "device": {
+                "device_type": torch_tensorrt.DeviceType.GPU,
+                "gpu_id": 0,
+                "dla_core": 0,
+                "allow_gpu_fallback": True
+            },
+            "capability": torch_tensorrt.EngineCapability.default,
+            "num_min_timing_iters": 2,
+            "num_avg_timing_iters": 1,
+        })
+    }
+
+
+
+

+ Now to compile with Torch-TensorRT, provide the target module objects and the spec dictionary to + + + torch._C._jit_to_backend("tensorrt", + + + ...) + + +

+
+
+
trt_model = torch._C._jit_to_backend("tensorrt", script_model, spec)
+
+
+
+

+ To run explicitly call the function of the method you want to run (vs. how you can just call on the module itself in standard PyTorch) +

+
+
+
input = torch.randn((1, 3, 300, 300)).to("cuda").to(torch.half)
+print(trt_model.forward(input))
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.1.1/tutorials/using_dla.html b/docs/v1.1.1/tutorials/using_dla.html new file mode 100644 index 0000000000..bfedeaf910 --- /dev/null +++ b/docs/v1.1.1/tutorials/using_dla.html @@ -0,0 +1,620 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + DLA — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ DLA + + ¶ + +

+

+ + + DLA + + + NVIDIA Deep Learning Accelerator is a fixed-function accelerator engine targeted for deep learning operations. DLA is designed to do full hardware acceleration of convolutional neural networks. DLA supports various layers such as convolution, deconvolution, fully-connected, activation, pooling, batch normalization, etc. + + + torch_tensorrt + + + supports compilation of TorchScript Module and deployment pipeline on the DLA hardware available on NVIDIA embedded platforms. +

+

+ NOTE: DLA supports fp16 and int8 precision only. +

+

+ Using DLA with torchtrtc +

+
+
+
torchtrtc [input_file_path] [output_file_path] [input_shapes...] -p f16 -d dla {OPTIONS}
+
+
+
+

+ Using DLA in a C++ application +

+
+
+
std::vector<std::vector<int64_t>> input_shape = {{32, 3, 32, 32}};
+auto compile_spec = torch_tensorrt::CompileSpec({input_shape});
+
+# Set a precision. DLA supports fp16 or int8 only
+compile_spec.enabled_precisions = {torch::kF16};
+compile_spec.device.device_type = torch_tensorrt::CompileSpec::DeviceType::kDLA;
+
+# Make sure the gpu id is set to Xavier id for DLA
+compile_spec.device.gpu_id = 0;
+
+# Set the DLA core id
+compile_spec.device.dla_core = 1;
+
+# If a layer fails to run on DLA it will fallback to GPU
+compile_spec.device.allow_gpu_fallback = true;
+
+# Set the workspace size
+compile_spec.workspace_size = 1 << 28;
+
+
+
+

+ Using DLA in a python application +

+
+
+
compile_spec = {
+    "inputs": [torch_tensorrt.Input(self.input.shape)],
+    "device": torch_tensorrt.Device("dla:0", allow_gpu_fallback=True),
+    "enalbed_precisions": {torch.half}
+}
+
+trt_mod = torch_tensorrt.compile(self.scripted_model, compile_spec)
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.2.0/.nojekyll b/docs/v1.2.0/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/v1.2.0/_cpp_api/class_view_hierarchy.html b/docs/v1.2.0/_cpp_api/class_view_hierarchy.html new file mode 100644 index 0000000000..fceda59a56 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/class_view_hierarchy.html @@ -0,0 +1,662 @@ + + + + + + + + + + + + + Class Hierarchy — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+ + +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1DataType.html b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1DataType.html new file mode 100644 index 0000000000..46030d46d5 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1DataType.html @@ -0,0 +1,843 @@ + + + + + + + + + + + + + Class DataType — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Class DataType

+ +
+

Class Documentation

+
+
+class torch_tensorrt::DataType
+

Supported Data Types that can be used with TensorRT engines

+

This class is compatable with c10::DataTypes (but will check for TRT support) so there should not be a reason that you need to use this type explictly.

+
+

Public Types

+
+
+enum Value
+

Underlying enum class to support the DataType Class

+

In the case that you need to use the DataType class itself, interface using this enum vs. normal instatination

+

ex. torch_tensorrt::DataType type = DataType::kFloat;

+

Values:

+
+
+enumerator kFloat
+

FP32.

+
+ +
+
+enumerator kHalf
+

FP16.

+
+ +
+
+enumerator kChar
+

INT8.

+
+ +
+
+enumerator kInt
+

INT.

+
+ +
+
+enumerator kBool
+

Bool.

+
+ +
+
+enumerator kUnknown
+

Sentinel value.

+
+ +
+ +
+
+

Public Functions

+
+
+DataType() = default
+

Construct a new Data Type object.

+
+ +
+
+inline constexpr DataType(Value t)
+

DataType constructor from enum.

+
+ +
+
+TORCHTRT_API DataType(c10::ScalarType t)
+

Construct a new Data Type object from torch type enums.

+
+
Parameters
+

t

+
+
+
+ +
+
+inline operator Value() const
+

Get the enum value of the DataType object.

+
+
Returns
+

Value

+
+
+
+ +
+
+explicit operator bool() = delete
+
+ +
+
+inline constexpr bool operator==(DataType other) const
+

Comparision operator for DataType.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+inline constexpr bool operator==(DataType::Value other) const
+

Comparision operator for DataType.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+inline constexpr bool operator!=(DataType other) const
+

Comparision operator for DataType.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+inline constexpr bool operator!=(DataType::Value other) const
+

Comparision operator for DataType.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.html b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.html new file mode 100644 index 0000000000..5900d36f42 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.html @@ -0,0 +1,792 @@ + + + + + + + + + + + + + Class Device::DeviceType — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Class Device::DeviceType

+ +
+

Nested Relationships

+

This class is a nested type of Struct Device.

+
+
+

Class Documentation

+
+
+class torch_tensorrt::Device::DeviceType
+

Supported Device Types that can be used with TensorRT engines

+

This class is compatable with c10::DeviceTypes (but will check for TRT support) but the only applicable value is at::kCUDA, which maps to DeviceType::kGPU

+

To use the DataType class itself, interface using the enum vs. normal instatination

+

ex. torch_tensorrt::DeviceType type = DeviceType::kGPU;

+
+

Public Types

+
+
+enum Value
+

Underlying enum class to support the DeviceType Class

+

In the case that you need to use the DeviceType class itself, interface using this enum vs. normal instatination

+

ex. torch_tensorrt::DeviceType type = DeviceType::kGPU;

+

Values:

+
+
+enumerator kGPU
+

Target GPU to run engine.

+
+ +
+
+enumerator kDLA
+

Target DLA to run engine.

+
+ +
+ +
+
+

Public Functions

+
+
+DeviceType() = default
+

Construct a new Device Type object.

+
+ +
+
+inline constexpr DeviceType(Value t)
+

Construct a new Device Type object from internal enum.

+
+ +
+
+DeviceType(c10::DeviceType t)
+

Construct a new Device Type object from torch device enums Note: The only valid value is torch::kCUDA (torch::kCPU is not supported)

+
+
Parameters
+

t

+
+
+
+ +
+
+inline operator Value() const
+

Get the internal value from the Device object.

+
+
Returns
+

Value

+
+
+
+ +
+
+explicit operator bool() = delete
+
+ +
+
+inline constexpr bool operator==(DeviceType other) const
+

Comparison operator for DeviceType.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+inline constexpr bool operator!=(DeviceType other) const
+

Comparison operator for DeviceType.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1TensorFormat.html b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1TensorFormat.html new file mode 100644 index 0000000000..c407f12c8e --- /dev/null +++ b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1TensorFormat.html @@ -0,0 +1,824 @@ + + + + + + + + + + + + + Class TensorFormat — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Class TensorFormat

+ +
+

Class Documentation

+
+
+class torch_tensorrt::TensorFormat
+

TensorFormat is an enum class which defines the memeory layout used to store Tensor Data.

+
+

Public Types

+
+
+enum Value
+

Underlying enum class to support the TensorFormat Class

+

In the case that you need to use the TensorFormat class itself, interface using this enum vs. normal instatination

+

ex. torch_tensorrt::TensorFormat type = TensorFormat::kContiguous;

+

Values:

+
+
+enumerator kContiguous
+

Contiguous / NCHW / Linear.

+
+ +
+
+enumerator kChannelsLast
+

Channel Last / NHWC.

+
+ +
+
+enumerator kUnknown
+

Sentinel value.

+
+ +
+ +
+
+

Public Functions

+
+
+TensorFormat() = default
+

Construct a new TensorFormat object.

+
+ +
+
+inline constexpr TensorFormat(Value t)
+

TensorFormat constructor from enum.

+
+ +
+
+TORCHTRT_API TensorFormat(at::MemoryFormat t)
+

Construct a new TensorFormat object from torch type enums.

+
+
Parameters
+

t

+
+
+
+ +
+
+inline operator Value() const
+

Get the enum value of the TensorFormat object.

+
+
Returns
+

Value

+
+
+
+ +
+
+explicit operator bool() = delete
+
+ +
+
+inline constexpr bool operator==(TensorFormat other) const
+

Comparision operator for TensorFormat.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+inline constexpr bool operator==(TensorFormat::Value other) const
+

Comparision operator for TensorFormat.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+inline constexpr bool operator!=(TensorFormat other) const
+

Comparision operator for TensorFormat.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+inline constexpr bool operator!=(TensorFormat::Value other) const
+

Comparision operator for TensorFormat.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.html b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.html new file mode 100644 index 0000000000..d200c82382 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.html @@ -0,0 +1,788 @@ + + + + + + + + + + + + + Template Class Int8CacheCalibrator — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Template Class Int8CacheCalibrator

+ +
+

Inheritance Relationships

+
+

Base Type

+
    +
  • private Algorithm

  • +
+
+
+
+

Class Documentation

+
+
+template<typename Algorithm>
class torch_tensorrt::ptq::Int8CacheCalibrator : private Algorithm
+

Generic Int8Calibrator implementation based on a specified TensorRT calibration algorithm that only reads from a calibration file.

+
+
Template Parameters
+

Algorithm – class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use

+
+
+
+

Public Functions

+
+
+inline Int8CacheCalibrator(const std::string &cache_file_path)
+

Construct a new Int 8 Cache Calibrator object.

+
+
Parameters
+

cache_file_path

+
+
+
+ +
+
+inline int getBatchSize() const noexcept override
+

Get the Batch Size for the next batch (always 1 due to issues with TRT and explicit batch)

+
+
Returns
+

int

+
+
+
+ +
+
+inline bool getBatch(void *bindings[], const char *names[], int nbBindings) noexcept override
+

Get the next Batch.

+

Not used always returns false

+
+
Parameters
+
    +
  • bindings – void*[] - An array of binding pointers (fed in from TensorRT calibrator), these buffers should be filed with batch data for each input

  • +
  • names – const char*[] - Names of bindings

  • +
  • nbBindings – int - Number of bindings

  • +
+
+
Returns
+

false

+
+
+
+ +
+
+inline const void *readCalibrationCache(size_t &length) noexcept override
+

Read calibration cache.

+

How to read from the calibration cache, only enabled if use_cache is set

+
+
Parameters
+

length

+
+
Returns
+

const void* - Pointer to cache data

+
+
+
+ +
+
+inline void writeCalibrationCache(const void *cache, size_t length) noexcept override
+

Write calibration cache.

+

Write a the calibration cache provided by TensorRT to a specified file

+
+
Parameters
+
    +
  • cache – const void* - cache data

  • +
  • length – size_t - length of cache

  • +
+
+
+
+ +
+
+inline operator nvinfer1::IInt8Calibrator*()
+

operator to cast to nvinfer1::IInt8Calibrator*

+

Convience function to convert to a IInt8Calibrator* to easily be assigned to the ptq_calibrator field in CompileSpec

+
+
Returns
+

nvinfer1::IInt8Calibrator*

+
+
+
+ +
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.html b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.html new file mode 100644 index 0000000000..2c9710a636 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.html @@ -0,0 +1,798 @@ + + + + + + + + + + + + + Template Class Int8Calibrator — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Template Class Int8Calibrator

+ +
+

Inheritance Relationships

+
+

Base Type

+
    +
  • private Algorithm

  • +
+
+
+
+

Class Documentation

+
+
+template<typename Algorithm, typename DataLoaderUniquePtr>
class torch_tensorrt::ptq::Int8Calibrator : private Algorithm
+

Generic Int8Calibrator implementation based on a specified TensorRT calibration algorithm and a LibTorch DataLoader.

+
+
Template Parameters
+
    +
  • Algorithm – class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use

  • +
  • DataLoaderUniquePtr – std::unique_ptr<torch::data::DataLoader> - DataLoader type

  • +
+
+
+
+

Public Functions

+
+
+inline Int8Calibrator(DataLoaderUniquePtr dataloader, const std::string &cache_file_path, bool use_cache)
+

Construct a new Int8Calibrator object.

+

Using the provided DataLoader, construct a calibrator that can be used for PTQ with Torch-TensorRT

+
+
Parameters
+
    +
  • dataloader – std::unqiue_ptr<torch::data::DataLoader> - A unique pointer to the DataLoader, should be what is returned from the make_data_loader factory

  • +
  • cache_file_path – const std::string& - A path to store / find the calibration cache

  • +
  • use_cache – : bool - Whether to use the cache (if it exists)

  • +
+
+
+
+ +
+
+inline int getBatchSize() const noexcept override
+

Get the Batch Size for the next batch (always 1 due to issues with TRT and explicit batch)

+
+
Returns
+

int

+
+
+
+ +
+
+inline bool getBatch(void *bindings[], const char *names[], int nbBindings) noexcept override
+

Get the next Batch.

+
+
Parameters
+
    +
  • bindings – void*[] - An array of binding pointers (fed in from TensorRT calibrator), these buffers should be filed with batch data for each input

  • +
  • names – const char*[] - Names of bindings

  • +
  • nbBindings – int - Number of bindings

  • +
+
+
Returns
+

true - There is a new batch for the calibrator to consume

+
+
Returns
+

false - There is not a new batch for the calibrator to consume

+
+
+
+ +
+
+inline const void *readCalibrationCache(size_t &length) noexcept override
+

Read calibration cache.

+

How to read from the calibration cache, only enabled if use_cache is set

+
+
Parameters
+

length

+
+
Returns
+

const void* - Pointer to cache data

+
+
+
+ +
+
+inline void writeCalibrationCache(const void *cache, size_t length) noexcept override
+

Write calibration cache.

+

Write a the calibration cache provided by TensorRT to a specified file

+
+
Parameters
+
    +
  • cache – const void* - cache data

  • +
  • length – size_t - length of cache

  • +
+
+
+
+ +
+
+inline operator nvinfer1::IInt8Calibrator*()
+

operator to cast to nvinfer1::IInt8Calibrator*

+

Convience function to convert to a IInt8Calibrator* to easily be assigned to the ptq_calibrator field in CompileSpec

+
+
Returns
+

nvinfer1::IInt8Calibrator*

+
+
+
+ +
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html b/docs/v1.2.0/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html new file mode 100644 index 0000000000..678c779e61 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Define STR — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Define STR

+ +
+

Define Documentation

+
+
+STR(x)
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.html b/docs/v1.2.0/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.html new file mode 100644 index 0000000000..6f72d85730 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Define TORCH_TENSORRT_PATCH_VERSION — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Define TORCH_TENSORRT_PATCH_VERSION

+ +
+

Define Documentation

+
+
+TORCH_TENSORRT_PATCH_VERSION
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.html b/docs/v1.2.0/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.html new file mode 100644 index 0000000000..62f24353ff --- /dev/null +++ b/docs/v1.2.0/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Define TORCH_TENSORRT_MAJOR_VERSION — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Define TORCH_TENSORRT_MAJOR_VERSION

+ +
+

Define Documentation

+
+
+TORCH_TENSORRT_MAJOR_VERSION
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.html b/docs/v1.2.0/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.html new file mode 100644 index 0000000000..a3ebbd8aed --- /dev/null +++ b/docs/v1.2.0/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Define TORCH_TENSORRT_MINOR_VERSION — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Define TORCH_TENSORRT_MINOR_VERSION

+ +
+

Define Documentation

+
+
+TORCH_TENSORRT_MINOR_VERSION
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.html b/docs/v1.2.0/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.html new file mode 100644 index 0000000000..6114774d30 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Define TORCHTRT_API — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Define TORCHTRT_API

+ +
+

Define Documentation

+
+
+TORCHTRT_API
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html b/docs/v1.2.0/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html new file mode 100644 index 0000000000..6575db57ee --- /dev/null +++ b/docs/v1.2.0/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Define XSTR — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Define XSTR

+ +
+

Define Documentation

+
+
+XSTR(x)
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.html b/docs/v1.2.0/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.html new file mode 100644 index 0000000000..69c328af13 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Define TORCHTRT_HIDDEN — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Define TORCHTRT_HIDDEN

+ +
+

Define Documentation

+
+
+TORCHTRT_HIDDEN
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.html b/docs/v1.2.0/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.html new file mode 100644 index 0000000000..c679a9d995 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Define TORCH_TENSORRT_VERSION — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Define TORCH_TENSORRT_VERSION

+ +
+

Define Documentation

+
+
+TORCH_TENSORRT_VERSION
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/dir_cpp.html b/docs/v1.2.0/_cpp_api/dir_cpp.html new file mode 100644 index 0000000000..9152c1e559 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/dir_cpp.html @@ -0,0 +1,666 @@ + + + + + + + + + + + + + Directory cpp — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+ + +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/dir_cpp_include.html b/docs/v1.2.0/_cpp_api/dir_cpp_include.html new file mode 100644 index 0000000000..3b269944bb --- /dev/null +++ b/docs/v1.2.0/_cpp_api/dir_cpp_include.html @@ -0,0 +1,667 @@ + + + + + + + + + + + + + Directory include — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Directory include
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+ + +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/dir_cpp_include_torch_tensorrt.html b/docs/v1.2.0/_cpp_api/dir_cpp_include_torch_tensorrt.html new file mode 100644 index 0000000000..16de3053b1 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/dir_cpp_include_torch_tensorrt.html @@ -0,0 +1,670 @@ + + + + + + + + + + + + + Directory torch_tensorrt — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Directory torch_tensorrt
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+ + +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.html b/docs/v1.2.0/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.html new file mode 100644 index 0000000000..f1b850d7a6 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.html @@ -0,0 +1,721 @@ + + + + + + + + + + + + + Enum Level — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Enum Level

+ +
+

Enum Documentation

+
+
+enum torch_tensorrt::logging::Level
+

Emum for setting message severity

+

Values:

+
+
+enumerator kINTERNAL_ERROR
+

Only print messages for internal errors.

+
+ +
+
+enumerator kERROR
+

Print all internal errors and errors (default)

+
+ +
+
+enumerator kWARNING
+

Print warnings and errors.

+
+ +
+
+enumerator kINFO
+

Print all info, warnings and errors.

+
+ +
+
+enumerator kDEBUG
+

Print all debug info, info, warnings and errors.

+
+ +
+
+enumerator kGRAPH
+

Print everything including the intermediate graphs of the lowering phase.

+
+ +
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.html b/docs/v1.2.0/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.html new file mode 100644 index 0000000000..b18cb1e03f --- /dev/null +++ b/docs/v1.2.0/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.html @@ -0,0 +1,700 @@ + + + + + + + + + + + + + Enum EngineCapability — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Enum EngineCapability

+ +
+

Enum Documentation

+
+
+enum torch_tensorrt::EngineCapability
+

Emum for selecting engine capability

+

Values:

+
+
+enumerator kSTANDARD
+
+ +
+
+enumerator kSAFETY
+
+ +
+
+enumerator kDLA_STANDALONE
+
+ +
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.html b/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.html new file mode 100644 index 0000000000..b26881d350 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.html @@ -0,0 +1,722 @@ + + + + + + + + + + + + + File logging.h — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

File logging.h

+

Parent directory (cpp/include/torch_tensorrt)

+ +
+

Definition (cpp/include/torch_tensorrt/logging.h)

+ +
+
+

Includes

+ +
+
+

Included By

+ +
+
+

Namespaces

+ +
+
+

Enums

+ +
+
+

Functions

+ +
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.html b/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.html new file mode 100644 index 0000000000..7dffb0a36c --- /dev/null +++ b/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.html @@ -0,0 +1,708 @@ + + + + + + + + + + + + + File macros.h — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

File macros.h

+

Parent directory (cpp/include/torch_tensorrt)

+ +
+

Definition (cpp/include/torch_tensorrt/macros.h)

+ +
+
+

Included By

+ +
+
+

Namespaces

+ +
+
+

Defines

+ +
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.html b/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.html new file mode 100644 index 0000000000..45886bc98f --- /dev/null +++ b/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.html @@ -0,0 +1,719 @@ + + + + + + + + + + + + + File ptq.h — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

File ptq.h

+

Parent directory (cpp/include/torch_tensorrt)

+ +
+

Definition (cpp/include/torch_tensorrt/ptq.h)

+ +
+
+

Includes

+
    +
  • NvInfer.h

  • +
  • fstream

  • +
  • iostream

  • +
  • iterator

  • +
  • memory

  • +
  • sstream

  • +
  • string

  • +
  • torch/torch.h

  • +
  • torch_tensorrt/logging.h (File logging.h)

  • +
  • torch_tensorrt/macros.h (File macros.h)

  • +
  • vector

  • +
+
+
+

Namespaces

+ +
+
+

Classes

+ +
+
+

Functions

+ +
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.html b/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.html new file mode 100644 index 0000000000..ce9e2172b1 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.html @@ -0,0 +1,734 @@ + + + + + + + + + + + + + File torch_tensorrt.h — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • File torch_tensorrt.h
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

File torch_tensorrt.h

+

Parent directory (cpp/include/torch_tensorrt)

+ +
+

Definition (cpp/include/torch_tensorrt/torch_tensorrt.h)

+ +
+
+

Includes

+
    +
  • cuda_runtime.h

  • +
  • iostream

  • +
  • memory

  • +
  • set

  • +
  • string

  • +
  • torch/custom_class.h

  • +
  • torch_tensorrt/macros.h (File macros.h)

  • +
  • vector

  • +
+
+
+

Namespaces

+ +
+
+

Classes

+ +
+
+

Enums

+ +
+
+

Functions

+ +
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/file_view_hierarchy.html b/docs/v1.2.0/_cpp_api/file_view_hierarchy.html new file mode 100644 index 0000000000..e7c708ff3f --- /dev/null +++ b/docs/v1.2.0/_cpp_api/file_view_hierarchy.html @@ -0,0 +1,662 @@ + + + + + + + + + + + + + File Hierarchy — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+ + +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.html b/docs/v1.2.0/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.html new file mode 100644 index 0000000000..70221f90e3 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Function torch_tensorrt::logging::get_logging_prefix — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::logging::get_logging_prefix

+ +
+

Function Documentation

+
+
+TORCHTRT_API std::string torch_tensorrt::logging::get_logging_prefix()
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.html b/docs/v1.2.0/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.html new file mode 100644 index 0000000000..7e6afb628c --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + Function torch_tensorrt::logging::get_reportable_log_level — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::logging::get_reportable_log_level

+ +
+

Function Documentation

+
+
+TORCHTRT_API Level torch_tensorrt::logging::get_reportable_log_level()
+

Get the current reportable log level.

+
+
Returns
+

TORCHTRT_API get_reportable_log_level

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.html b/docs/v1.2.0/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.html new file mode 100644 index 0000000000..5d162fa2e6 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + Function torch_tensorrt::logging::get_is_colored_output_on — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::logging::get_is_colored_output_on

+ +
+

Function Documentation

+
+
+TORCHTRT_API bool torch_tensorrt::logging::get_is_colored_output_on()
+

Is colored output enabled?

+
+
Returns
+

TORCHTRT_API get_is_colored_output_on

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.html b/docs/v1.2.0/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.html new file mode 100644 index 0000000000..44e30565c7 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + Function torch_tensorrt::logging::set_reportable_log_level — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::logging::set_reportable_log_level

+ +
+

Function Documentation

+
+
+TORCHTRT_API void torch_tensorrt::logging::set_reportable_log_level(Level lvl)
+

Sets the level that logging information needs to be to be added to the log.

+
+
Parameters
+

lvl – torch_tensorrt::logging::Level - Level that messages need to be at or above to be added to the log

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html b/docs/v1.2.0/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html new file mode 100644 index 0000000000..f2a441072a --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.html @@ -0,0 +1,692 @@ + + + + + + + + + + + + + Function torch_tensorrt::logging::log — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::logging::log

+ +
+

Function Documentation

+
+
+TORCHTRT_API void torch_tensorrt::logging::log(Level lvl, std::string msg)
+

Adds a message to the global log.

+
+
Parameters
+
    +
  • lvl – torch_tensorrt::logging::Level - Severity of the message

  • +
  • msg – std::string - Message to be logged

  • +
+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.html b/docs/v1.2.0/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.html new file mode 100644 index 0000000000..a2c31c3be7 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + Function torch_tensorrt::logging::set_is_colored_output_on — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::logging::set_is_colored_output_on

+ +
+

Function Documentation

+
+
+TORCHTRT_API void torch_tensorrt::logging::set_is_colored_output_on(bool colored_output_on)
+

Sets if logging prefix will be colored (helpful when debugging but not always supported by terminal)

+
+
Parameters
+

colored_output_on – bool - If the output will be colored or not

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.html b/docs/v1.2.0/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.html new file mode 100644 index 0000000000..78c8e517ec --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + + Function torch_tensorrt::logging::set_logging_prefix — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::logging::set_logging_prefix

+ +
+

Function Documentation

+
+
+TORCHTRT_API void torch_tensorrt::logging::set_logging_prefix(std::string prefix)
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.html b/docs/v1.2.0/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.html new file mode 100644 index 0000000000..58e95d8871 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.html @@ -0,0 +1,698 @@ + + + + + + + + + + + + + Template Function torch_tensorrt::ptq::make_int8_cache_calibrator — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Template Function torch_tensorrt::ptq::make_int8_cache_calibrator

+ +
+

Function Documentation

+
+
+template<typename Algorithm = nvinfer1::IInt8EntropyCalibrator2>
inline Int8CacheCalibrator<Algorithm> torch_tensorrt::ptq::make_int8_cache_calibrator(const std::string &cache_file_path)
+

A factory to build a post training quantization calibrator from a torch dataloader that only uses the calibration cache.

+

Creates a calibrator to use for post training quantization which reads from a previously created calibration cache, therefore you can have a calibration cache generating program that requires a dataloader and a dataset, then save the cache to use later in a different program that needs to calibrate from scratch and not have the dataset dependency. However, the network should also be recalibrated if its structure changes, or the input data set changes, and it is the responsibility of the application to ensure this.

+

By default the returned calibrator uses TensorRT Entropy v2 algorithm to perform calibration. This is recommended for feed forward networks You can override the algorithm selection (such as to use the MinMax Calibrator recomended for NLP tasks) by calling make_int8_calibrator with the calibrator class as a template parameter.

+

e.g. torch_tensorrt::ptq::make_int8_cache_calibrator<nvinfer1::IInt8MinMaxCalibrator>(calibration_cache_file);

+
+
Template Parameters
+

Algorithm – class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use

+
+
Parameters
+

cache_file_path – const std::string& - Path to read/write calibration cache

+
+
Returns
+

Int8CacheCalibrator<Algorithm>

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.html b/docs/v1.2.0/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.html new file mode 100644 index 0000000000..977d3e83ae --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.html @@ -0,0 +1,704 @@ + + + + + + + + + + + + + Template Function torch_tensorrt::ptq::make_int8_calibrator — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Template Function torch_tensorrt::ptq::make_int8_calibrator

+ +
+

Function Documentation

+
+
+template<typename Algorithm = nvinfer1::IInt8EntropyCalibrator2, typename DataLoader>
inline Int8Calibrator<Algorithm, DataLoader> torch_tensorrt::ptq::make_int8_calibrator(DataLoader dataloader, const std::string &cache_file_path, bool use_cache)
+

A factory to build a post training quantization calibrator from a torch dataloader.

+

Creates a calibrator to use for post training quantization. By default the returned calibrator uses TensorRT Entropy v2 algorithm to perform calibration. This is recommended for feed forward networks. You can override the algorithm selection (such as to use the MinMax Calibrator recomended for NLP tasks) by calling make_int8_calibrator with the calibrator class as a template parameter.

+

e.g. torch_tensorrt::ptq::make_int8_calibrator<nvinfer1::IInt8MinMaxCalibrator>(std::move(calibration_dataloader), calibration_cache_file, use_cache);

+
+
Template Parameters
+
    +
  • Algorithm – class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use

  • +
  • DataLoader – std::unique_ptr<torch::data::DataLoader> - DataLoader type

  • +
+
+
Parameters
+
    +
  • dataloader – std::unique_ptr<torch::data::DataLoader> - DataLoader containing data

  • +
  • cache_file_path – const std::string& - Path to read/write calibration cache

  • +
  • use_cache – bool - use calibration cache

  • +
+
+
Returns
+

Int8Calibrator<Algorithm, DataLoader>

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.html b/docs/v1.2.0/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.html new file mode 100644 index 0000000000..450dda4117 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.html @@ -0,0 +1,691 @@ + + + + + + + + + + + + + Template Function torch_tensorrt::ptq::make_int8_calibrator — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Template Function torch_tensorrt::ptq::make_int8_calibrator
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Template Function torch_tensorrt::ptq::make_int8_calibrator

+ +
+

Function Documentation

+
+
+template<typename Algorithm = nvinfer1::IInt8EntropyCalibrator2, typename DataLoader>
inline Int8Calibrator<Algorithm, DataLoader> torch_tensorrt::ptq::make_int8_calibrator(DataLoader dataloader, const std::string &cache_file_path, bool use_cache)
+

A factory to build a post training quantization calibrator from a torch dataloader.

+

Creates a calibrator to use for post training quantization. By default the returned calibrator uses TensorRT Entropy v2 algorithm to perform calibration. This is recommended for feed forward networks. You can override the algorithm selection (such as to use the MinMax Calibrator recomended for NLP tasks) by calling make_int8_calibrator with the calibrator class as a template parameter.

+

e.g. torch_tensorrt::ptq::make_int8_calibrator<nvinfer1::IInt8MinMaxCalibrator>(std::move(calibration_dataloader), calibration_cache_file, use_cache);

+
+
Template Parameters
+
    +
  • Algorithm – class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use

  • +
  • DataLoader – std::unique_ptr<torch::data::DataLoader> - DataLoader type

  • +
+
+
Parameters
+
    +
  • dataloader – std::unique_ptr<torch::data::DataLoader> - DataLoader containing data

  • +
  • cache_file_path – const std::string& - Path to read/write calibration cache

  • +
  • use_cache – bool - use calibration cache

  • +
+
+
Returns
+

Int8Calibrator<Algorithm, DataLoader>

+
+
+
+ +
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.html b/docs/v1.2.0/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.html new file mode 100644 index 0000000000..d83f45f049 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.html @@ -0,0 +1,685 @@ + + + + + + + + + + + + + Template Function torch_tensorrt::ptq::make_int8_cache_calibrator — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Template Function torch_tensorrt::ptq::make_int8_cache_calibrator
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Template Function torch_tensorrt::ptq::make_int8_cache_calibrator

+ +
+

Function Documentation

+
+
+template<typename Algorithm = nvinfer1::IInt8EntropyCalibrator2>
inline Int8CacheCalibrator<Algorithm> torch_tensorrt::ptq::make_int8_cache_calibrator(const std::string &cache_file_path)
+

A factory to build a post training quantization calibrator from a torch dataloader that only uses the calibration cache.

+

Creates a calibrator to use for post training quantization which reads from a previously created calibration cache, therefore you can have a calibration cache generating program that requires a dataloader and a dataset, then save the cache to use later in a different program that needs to calibrate from scratch and not have the dataset dependency. However, the network should also be recalibrated if its structure changes, or the input data set changes, and it is the responsibility of the application to ensure this.

+

By default the returned calibrator uses TensorRT Entropy v2 algorithm to perform calibration. This is recommended for feed forward networks You can override the algorithm selection (such as to use the MinMax Calibrator recomended for NLP tasks) by calling make_int8_calibrator with the calibrator class as a template parameter.

+

e.g. torch_tensorrt::ptq::make_int8_cache_calibrator<nvinfer1::IInt8MinMaxCalibrator>(calibration_cache_file);

+
+
Template Parameters
+

Algorithm – class nvinfer1::IInt8Calibrator (Default: nvinfer1::IInt8EntropyCalibrator2) - Algorithm to use

+
+
Parameters
+

cache_file_path – const std::string& - Path to read/write calibration cache

+
+
Returns
+

Int8CacheCalibrator<Algorithm>

+
+
+
+ +
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html new file mode 100644 index 0000000000..53c7e39139 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.html @@ -0,0 +1,698 @@ + + + + + + + + + + + + + Function torch_tensorrt::torchscript::check_method_operator_support — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::torchscript::check_method_operator_support

+ +
+

Function Documentation

+
+
+TORCHTRT_API bool torch_tensorrt::torchscript::check_method_operator_support(const torch::jit::Module &module, std::string method_name)
+

Check to see if a module is fully supported by the compiler.

+

+Takes a module and a method name and checks if the method graph contains purely convertable operators

+

Will print out a list of unsupported operators if the graph is unsupported

+
+
Parameters
+
    +
  • module – torch::jit::script::Module - Existing TorchScript module

  • +
  • method_name – std::string - Name of method to compile

  • +
+
+
Returns
+

bool: Method is supported by Torch-TensorRT.TorchScript

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.html b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.html new file mode 100644 index 0000000000..c6c749026e --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.html @@ -0,0 +1,698 @@ + + + + + + + + + + + + + Function torch_tensorrt::torchscript::compile — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::torchscript::compile

+ +
+

Function Documentation

+
+
+TORCHTRT_API torch::jit::Module torch_tensorrt::torchscript::compile(const torch::jit::Module &module, CompileSpec info)
+

Compile a TorchScript module for NVIDIA GPUs using TensorRT.

+

+Takes a existing TorchScript module and a set of settings to configure the compiler and will convert methods to JIT Graphs which call equivalent TensorRT engines

+

Converts specifically the forward method of a TorchScript Module

+
+
Parameters
+
    +
  • module – torch::jit::Module - Existing TorchScript module

  • +
  • info – torch_tensorrt::CompileSpec - Compilation settings

  • +
+
+
Returns
+

: A new module trageting a TensorRT engine

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.html b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.html new file mode 100644 index 0000000000..93b5d98730 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.html @@ -0,0 +1,702 @@ + + + + + + + + + + + + + Function torch_tensorrt::torchscript::embed_engine_in_new_module — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::torchscript::embed_engine_in_new_module

+ +
+

Function Documentation

+
+
+TORCHTRT_API torch::jit::Module torch_tensorrt::torchscript::embed_engine_in_new_module(const std::string &engine, Device device)
+

Take a previously created TensorRT engine and embed it in in a TorchScript module.

+

+Takes a pre-built serialized TensorRT engine and embeds it in a TorchScript module. Registers execution of the engine as the forward method of the module Forward is defined as: forward(Tensor[]) -> Tensor[]

+

TensorRT bindings must have names with the following format:

    +
  • [symbol].[index in input / output array] ex.

  • +
  • [x.0, x.1, x.2] -> [y.0]

  • +
+

+
+
Parameters
+
    +
  • engine – std::string - Pre-built serialized TensorRT engine

  • +
  • device – CompileSepc::Device - Device information

  • +
+
+
Returns
+

: A new module targeting a TensorRT engine

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.html b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.html new file mode 100644 index 0000000000..9ee514173e --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + Function torch_tensorrt::get_build_info — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::get_build_info

+ +
+

Function Documentation

+
+
+TORCHTRT_API std::string torch_tensorrt::get_build_info()
+

Get the build information for the library including the dependency versions.

+
+
Returns
+

std::string

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html new file mode 100644 index 0000000000..29a130f6b2 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + Function torch_tensorrt::set_device — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::set_device

+ +
+

Function Documentation

+
+
+TORCHTRT_API void torch_tensorrt::set_device(const int gpu_id)
+

Set gpu device id.

+
+
Parameters
+

gpu_id – Sets gpu id using cudaSetDevice

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html new file mode 100644 index 0000000000..95b359f2da --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.html @@ -0,0 +1,684 @@ + + + + + + + + + + + + + Function torch_tensorrt::dump_build_info — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::dump_build_info

+ +
+

Function Documentation

+
+
+TORCHTRT_API void torch_tensorrt::dump_build_info()
+

Dump the version information for Torch-TensorRT including base libtorch and TensorRT versions to stdout.

+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html new file mode 100644 index 0000000000..d943b24bcc --- /dev/null +++ b/docs/v1.2.0/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.html @@ -0,0 +1,698 @@ + + + + + + + + + + + + + Function torch_tensorrt::torchscript::convert_method_to_trt_engine — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Function torch_tensorrt::torchscript::convert_method_to_trt_engine

+ +
+

Function Documentation

+
+
+TORCHTRT_API std::string torch_tensorrt::torchscript::convert_method_to_trt_engine(const torch::jit::Module &module, std::string method_name, CompileSpec info)
+

Compile a TorchScript method for NVIDIA GPUs using TensorRT.

+

+Takes a existing TorchScript module and a set of settings to configure the compiler and will convert selected method to a serialized TensorRT engine which can be run with TensorRT

+
+
Parameters
+
    +
  • module – torch::jit::Module - Existing TorchScript module

  • +
  • method_name – std::string - Name of method to compile

  • +
  • info – torch_tensorrt::CompileSpec - Compilation settings

  • +
+
+
Returns
+

: std::string: Serialized TensorRT engine equivilant to the method graph

+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt.html b/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt.html new file mode 100644 index 0000000000..5b2c613541 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt.html @@ -0,0 +1,717 @@ + + + + + + + + + + + + + Namespace torch_tensorrt — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Namespace torch_tensorrt

+
+

Contents

+ +
+
+

Namespaces

+ +
+
+

Classes

+ +
+
+

Enums

+ +
+
+

Functions

+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__logging.html b/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__logging.html new file mode 100644 index 0000000000..6f14d2a36d --- /dev/null +++ b/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__logging.html @@ -0,0 +1,698 @@ + + + + + + + + + + + + + Namespace torch_tensorrt::logging — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__ptq.html b/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__ptq.html new file mode 100644 index 0000000000..6707e36528 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__ptq.html @@ -0,0 +1,694 @@ + + + + + + + + + + + + + Namespace torch_tensorrt::ptq — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+ + +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__torchscript.html b/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__torchscript.html new file mode 100644 index 0000000000..9717a7785c --- /dev/null +++ b/docs/v1.2.0/_cpp_api/namespace_torch_tensorrt__torchscript.html @@ -0,0 +1,695 @@ + + + + + + + + + + + + + Namespace torch_tensorrt::torchscript — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+ + +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.html b/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.html new file mode 100644 index 0000000000..73a1ad2dd6 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.html @@ -0,0 +1,698 @@ + + + + + + + + + + + + + Program Listing for File logging.h — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Program Listing for File logging.h
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Program Listing for File logging.h

+

Return to documentation for file (cpp/include/torch_tensorrt/logging.h)

+
/*
+ * Copyright (c) NVIDIA Corporation.
+ * All rights reserved.
+ *
+ * This library is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+#pragma once
+
+#include <string>
+#include "torch_tensorrt/macros.h"
+
+namespace torch_tensorrt {
+namespace logging {
+enum Level {
+  kINTERNAL_ERROR,
+  kERROR,
+  kWARNING,
+  kINFO,
+  kDEBUG,
+  kGRAPH,
+};
+
+// Are these ones necessary for the user?
+TORCHTRT_API std::string get_logging_prefix();
+TORCHTRT_API void set_logging_prefix(std::string prefix);
+
+TORCHTRT_API void set_reportable_log_level(Level lvl);
+
+TORCHTRT_API void set_is_colored_output_on(bool colored_output_on);
+
+TORCHTRT_API Level get_reportable_log_level();
+
+TORCHTRT_API bool get_is_colored_output_on();
+
+// Dont know if we want this?
+TORCHTRT_API void log(Level lvl, std::string msg);
+} // namespace logging
+} // namespace torch_tensorrt
+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.html b/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.html new file mode 100644 index 0000000000..f4316b51cf --- /dev/null +++ b/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.html @@ -0,0 +1,697 @@ + + + + + + + + + + + + + Program Listing for File macros.h — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Program Listing for File macros.h
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Program Listing for File macros.h

+

Return to documentation for file (cpp/include/torch_tensorrt/macros.h)

+
/*
+ * Copyright (c) NVIDIA Corporation.
+ * All rights reserved.
+ *
+ * This library is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+#pragma once
+
+#if defined(USE_CMAKE_GENERATED_EXPORT_HEADER)
+#include <torch_tensorrt_export.h>
+#else
+#if defined(__GNUC__)
+#define TORCHTRT_API __attribute__((__visibility__("default")))
+#define TORCHTRT_HIDDEN __attribute__((__visibility__("hidden")))
+#else
+#define TORCHTRT_API
+#define TORCHTRT_HIDDEN
+#endif // defined(__GNUC__)
+#endif // defined(USE_CMAKE_GENERATED_EXPORT_HEADER)
+
+// Does this need to be gaurded or something?
+#define XSTR(x) #x
+#define STR(x) XSTR(x)
+
+#define TORCH_TENSORRT_MAJOR_VERSION 1
+#define TORCH_TENSORRT_MINOR_VERSION 2
+#define TORCH_TENSORRT_PATCH_VERSION 0
+#define TORCH_TENSORRT_VERSION      \
+  STR(TORCH_TENSORRT_MAJOR_VERSION) \
+  "." STR(TORCH_TENSORRT_MINOR_VERSION) "." STR(TORCH_TENSORRT_PATCH_VERSION)
+
+// Setup namespace aliases for ease of use
+namespace torch_tensorrt {
+namespace torchscript {}
+namespace ts = torchscript;
+} // namespace torch_tensorrt
+namespace torchtrt = torch_tensorrt;
+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.html b/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.html new file mode 100644 index 0000000000..79a470355d --- /dev/null +++ b/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.html @@ -0,0 +1,837 @@ + + + + + + + + + + + + + Program Listing for File ptq.h — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Program Listing for File ptq.h
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Program Listing for File ptq.h

+

Return to documentation for file (cpp/include/torch_tensorrt/ptq.h)

+
/*
+ * Copyright (c) NVIDIA Corporation.
+ * All rights reserved.
+ *
+ * This library is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+#pragma once
+
+#include <fstream>
+#include <iostream>
+#include <iterator>
+#include <memory>
+#include <sstream>
+#include <string>
+#include <vector>
+
+#include "NvInfer.h"
+#include "torch/torch.h"
+#include "torch_tensorrt/logging.h"
+#include "torch_tensorrt/macros.h"
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace nvinfer1 {
+class IInt8Calibrator;
+class IInt8EntropyCalibrator2;
+} // namespace nvinfer1
+
+namespace torch_tensorrt {
+namespace ptq {
+TORCHTRT_API bool get_batch_impl(void* bindings[], const char* names[], int nbBindings, torch::Tensor& data);
+}
+} // namespace torch_tensorrt
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+namespace torch_tensorrt {
+namespace ptq {
+
+template <typename Algorithm, typename DataLoaderUniquePtr>
+class Int8Calibrator : Algorithm {
+  using DataLoader = typename DataLoaderUniquePtr::element_type;
+  using Batch = typename DataLoader::super::BatchType;
+
+ public:
+  Int8Calibrator(DataLoaderUniquePtr dataloader, const std::string& cache_file_path, bool use_cache)
+      : dataloader_(dataloader.get()), cache_file_path_(cache_file_path), use_cache_(use_cache) {
+    for (auto batch : *dataloader_) {
+      batched_data_.push_back(batch.data);
+    }
+    it_ = batched_data_.begin();
+  }
+
+  int getBatchSize() const noexcept override {
+    // HACK: Torch-TensorRT only uses explict batch sizing, INT8 Calibrator does not
+    // work when reporting the batch size here and having explicity batching.
+    // So we just report batch size 1 (warnings will still be printed out).
+    return 1;
+    // return static_cast<int>(dataloader_->options().batch_size);
+  }
+
+  bool getBatch(void* bindings[], const char* names[], int nbBindings) noexcept override {
+    if (it_ != batched_data_.end()) {
+      auto status = get_batch_impl(bindings, names, nbBindings, *it_);
+      it_ = ++it_;
+      return status;
+    } else {
+      // Reset iterator if incase calibrator is going to be used again
+      it_ = batched_data_.begin();
+      return false;
+    }
+  }
+
+  const void* readCalibrationCache(size_t& length) noexcept override {
+    if (use_cache_) {
+      std::stringstream ss;
+      ss << "Reading Calibration Cache from " << cache_file_path_;
+      logging::log(logging::Level::kINFO, ss.str());
+
+      cache_.clear();
+      std::ifstream input(cache_file_path_, std::ios::binary);
+      input >> std::noskipws;
+      if (input.good()) {
+        std::copy(std::istream_iterator<char>(input), std::istream_iterator<char>(), std::back_inserter(cache_));
+        logging::log(logging::Level::kDEBUG, "Cache read");
+      }
+      length = cache_.size();
+      return length ? cache_.data() : nullptr;
+    }
+    return nullptr;
+  }
+
+  void writeCalibrationCache(const void* cache, size_t length) noexcept override {
+    std::ofstream cache_file(cache_file_path_, std::ios::binary);
+    cache_file.write(reinterpret_cast<const char*>(cache), length);
+    std::stringstream ss;
+    ss << "Saved Calibration Cache to " << cache_file_path_;
+    logging::log(logging::Level::kINFO, ss.str());
+  }
+
+  operator nvinfer1::IInt8Calibrator*() {
+    return reinterpret_cast<nvinfer1::IInt8Calibrator*>(this);
+  }
+
+ private:
+  DataLoader* dataloader_;
+  const std::string& cache_file_path_;
+  size_t cache_size_ = 0;
+  bool use_cache_;
+  std::vector<char> cache_;
+  std::vector<torch::Tensor> batched_data_;
+  std::vector<torch::Tensor>::iterator it_;
+};
+
+template <typename Algorithm>
+class Int8CacheCalibrator : Algorithm {
+ public:
+  Int8CacheCalibrator(const std::string& cache_file_path) : cache_file_path_(cache_file_path) {}
+
+  int getBatchSize() const noexcept override {
+    // HACK: Torch-TensorRT only uses explict batch sizing, INT8 Calibrator does not
+    // work when reporting the batch size here and having explicity batching.
+    // So we just report batch size 1 (warnings will still be printed out).
+    return 1;
+  }
+
+  bool getBatch(void* bindings[], const char* names[], int nbBindings) noexcept override {
+    return false;
+  }
+
+  const void* readCalibrationCache(size_t& length) noexcept override {
+    std::stringstream ss;
+    ss << "Reading Calibration Cache from " << cache_file_path_;
+    logging::log(logging::Level::kINFO, ss.str());
+
+    cache_.clear();
+    std::ifstream input(cache_file_path_, std::ios::binary);
+    input >> std::noskipws;
+    if (input.good()) {
+      std::copy(std::istream_iterator<char>(input), std::istream_iterator<char>(), std::back_inserter(cache_));
+      logging::log(logging::Level::kDEBUG, "Cache read");
+    }
+    length = cache_.size();
+    return length ? cache_.data() : nullptr;
+  }
+
+  void writeCalibrationCache(const void* cache, size_t length) noexcept override {
+    std::ofstream cache_file(cache_file_path_, std::ios::binary);
+    cache_file.write(reinterpret_cast<const char*>(cache), length);
+    std::stringstream ss;
+    ss << "Saved Calibration Cache to " << cache_file_path_;
+    logging::log(logging::Level::kINFO, ss.str());
+  }
+
+  operator nvinfer1::IInt8Calibrator*() {
+    return reinterpret_cast<nvinfer1::IInt8Calibrator*>(this);
+  }
+
+ private:
+  const std::string& cache_file_path_;
+  size_t cache_size_ = 0;
+  std::vector<char> cache_;
+};
+
+template <typename Algorithm = nvinfer1::IInt8EntropyCalibrator2, typename DataLoader>
+inline Int8Calibrator<Algorithm, DataLoader> make_int8_calibrator(
+    DataLoader dataloader,
+    const std::string& cache_file_path,
+    bool use_cache) {
+  return Int8Calibrator<Algorithm, DataLoader>(std::move(dataloader), cache_file_path, use_cache);
+}
+
+template <typename Algorithm = nvinfer1::IInt8EntropyCalibrator2>
+inline Int8CacheCalibrator<Algorithm> make_int8_cache_calibrator(const std::string& cache_file_path) {
+  return Int8CacheCalibrator<Algorithm>(cache_file_path);
+}
+
+} // namespace ptq
+} // namespace torch_tensorrt
+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.html b/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.html new file mode 100644 index 0000000000..dc8a9926c8 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.html @@ -0,0 +1,941 @@ + + + + + + + + + + + + + Program Listing for File torch_tensorrt.h — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Program Listing for File torch_tensorrt.h
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Program Listing for File torch_tensorrt.h

+

Return to documentation for file (cpp/include/torch_tensorrt/torch_tensorrt.h)

+
/*
+ * Copyright (c) NVIDIA Corporation.
+ * All rights reserved.
+ *
+ * This library is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+#pragma once
+
+#include <cuda_runtime.h>
+#include <iostream>
+#include <memory>
+#include <set>
+#include <string>
+#include <vector>
+#include "torch/custom_class.h"
+
+#include "torch_tensorrt/macros.h"
+
+// Just include the .h?
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace torch {
+namespace jit {
+struct Graph;
+struct Module;
+} // namespace jit
+} // namespace torch
+
+namespace c10 {
+enum class DeviceType : int8_t;
+enum class ScalarType : int8_t;
+template <class>
+class ArrayRef;
+} // namespace c10
+
+namespace nvinfer1 {
+class IInt8Calibrator;
+}
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+namespace torch_tensorrt {
+class DataType {
+ public:
+  enum Value : int8_t {
+    kFloat,
+    kHalf,
+    kChar,
+    kInt,
+    kBool,
+    kUnknown
+  };
+
+  DataType() = default;
+  constexpr DataType(Value t) : value(t) {}
+  TORCHTRT_API DataType(c10::ScalarType t);
+  operator Value() const {
+    return value;
+  }
+  explicit operator bool() = delete;
+  constexpr bool operator==(DataType other) const {
+    return value == other.value;
+  }
+  constexpr bool operator==(DataType::Value other) const {
+    return value == other;
+  }
+  constexpr bool operator!=(DataType other) const {
+    return value != other.value;
+  }
+  constexpr bool operator!=(DataType::Value other) const {
+    return value != other;
+  }
+
+ private:
+  friend TORCHTRT_API std::ostream& operator<<(std::ostream& os, const DataType& dtype);
+  Value value;
+};
+
+struct Device {
+  class DeviceType {
+   public:
+    enum Value : int8_t {
+      kGPU,
+      kDLA,
+    };
+
+    DeviceType() = default;
+    constexpr DeviceType(Value t) : value(t) {}
+    DeviceType(c10::DeviceType t);
+    operator Value() const {
+      return value;
+    }
+    explicit operator bool() = delete;
+    constexpr bool operator==(DeviceType other) const {
+      return value == other.value;
+    }
+    constexpr bool operator!=(DeviceType other) const {
+      return value != other.value;
+    }
+
+   private:
+    Value value;
+  };
+
+  DeviceType device_type;
+
+  /*
+   * Target gpu id
+   */
+  int64_t gpu_id;
+
+  /*
+   * When using DLA core on NVIDIA AGX platforms gpu_id should be set as Xavier device
+   */
+  int64_t dla_core;
+
+  bool allow_gpu_fallback;
+
+  Device() : device_type(DeviceType::kGPU), gpu_id(0), dla_core(0), allow_gpu_fallback(false) {}
+};
+
+enum class EngineCapability : int8_t {
+  kSTANDARD,
+  kSAFETY,
+  kDLA_STANDALONE,
+};
+
+class TensorFormat {
+ public:
+  enum Value : int8_t {
+    kContiguous,
+    kChannelsLast,
+    kUnknown,
+  };
+
+  TensorFormat() = default;
+  constexpr TensorFormat(Value t) : value(t) {}
+  TORCHTRT_API TensorFormat(at::MemoryFormat t);
+  operator Value() const {
+    return value;
+  }
+  explicit operator bool() = delete;
+  constexpr bool operator==(TensorFormat other) const {
+    return value == other.value;
+  }
+  constexpr bool operator==(TensorFormat::Value other) const {
+    return value == other;
+  }
+  constexpr bool operator!=(TensorFormat other) const {
+    return value != other.value;
+  }
+  constexpr bool operator!=(TensorFormat::Value other) const {
+    return value != other;
+  }
+
+ private:
+  friend TORCHTRT_API std::ostream& operator<<(std::ostream& os, const TensorFormat& format);
+  Value value;
+};
+
+struct Input : torch::CustomClassHolder {
+  std::vector<int64_t> min_shape;
+  std::vector<int64_t> opt_shape;
+  std::vector<int64_t> max_shape;
+  std::vector<int64_t> shape;
+  DataType dtype;
+  TensorFormat format;
+
+  Input() {}
+  TORCHTRT_API Input(std::vector<int64_t> shape, TensorFormat format = TensorFormat::kContiguous);
+
+  TORCHTRT_API Input(std::vector<int64_t> shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous);
+
+  TORCHTRT_API Input(c10::ArrayRef<int64_t> shape, TensorFormat format = TensorFormat::kContiguous);
+
+  TORCHTRT_API Input(c10::ArrayRef<int64_t> shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous);
+
+  TORCHTRT_API Input(
+      std::vector<int64_t> min_shape,
+      std::vector<int64_t> opt_shape,
+      std::vector<int64_t> max_shape,
+      TensorFormat format = TensorFormat::kContiguous);
+
+  TORCHTRT_API Input(
+      std::vector<int64_t> min_shape,
+      std::vector<int64_t> opt_shape,
+      std::vector<int64_t> max_shape,
+      DataType dtype,
+      TensorFormat format = TensorFormat::kContiguous);
+
+  TORCHTRT_API Input(
+      c10::ArrayRef<int64_t> min_shape,
+      c10::ArrayRef<int64_t> opt_shape,
+      c10::ArrayRef<int64_t> max_shape,
+      TensorFormat format = TensorFormat::kContiguous);
+
+  TORCHTRT_API Input(
+      c10::ArrayRef<int64_t> min_shape,
+      c10::ArrayRef<int64_t> opt_shape,
+      c10::ArrayRef<int64_t> max_shape,
+      DataType dtype,
+      TensorFormat format = TensorFormat::kContiguous);
+
+  TORCHTRT_API Input(at::Tensor tensor);
+
+ private:
+  friend TORCHTRT_API std::ostream& operator<<(std::ostream& os, const Input& input);
+  bool input_is_dynamic;
+};
+
+struct GraphInputs {
+  torch::jit::IValue input_signature; // nested Input, full input spec
+  std::vector<Input> inputs; // flatten input spec
+};
+
+TORCHTRT_API std::string get_build_info();
+
+TORCHTRT_API void dump_build_info();
+
+TORCHTRT_API void set_device(const int gpu_id);
+
+namespace torchscript {
+struct CompileSpec {
+  TORCHTRT_API CompileSpec(std::vector<std::vector<int64_t>> fixed_sizes);
+
+  TORCHTRT_API CompileSpec(std::vector<c10::ArrayRef<int64_t>> fixed_sizes);
+
+  TORCHTRT_API CompileSpec(std::vector<Input> inputs);
+
+  TORCHTRT_API CompileSpec(torch::jit::IValue input_signature);
+  // Defaults should reflect TensorRT defaults for BuilderConfig
+
+  GraphInputs graph_inputs;
+  std::set<DataType> enabled_precisions = {DataType::kFloat};
+
+  bool disable_tf32 = false;
+
+  bool sparse_weights = false;
+
+  bool refit = false;
+
+  bool debug = false;
+
+  bool truncate_long_and_double = false;
+
+  Device device;
+
+  EngineCapability capability = EngineCapability::kSTANDARD;
+
+  uint64_t num_avg_timing_iters = 1;
+
+  uint64_t workspace_size = 0;
+
+  uint64_t dla_sram_size = 1048576;
+
+  uint64_t dla_local_dram_size = 1073741824;
+
+  uint64_t dla_global_dram_size = 536870912;
+
+  nvinfer1::IInt8Calibrator* ptq_calibrator = nullptr;
+
+  bool require_full_compilation = false;
+
+  uint64_t min_block_size = 3;
+
+  std::vector<std::string> torch_executed_ops;
+
+  std::vector<std::string> torch_executed_modules;
+};
+
+TORCHTRT_API bool check_method_operator_support(const torch::jit::Module& module, std::string method_name);
+
+TORCHTRT_API torch::jit::Module compile(const torch::jit::Module& module, CompileSpec info);
+
+TORCHTRT_API std::string convert_method_to_trt_engine(
+    const torch::jit::Module& module,
+    std::string method_name,
+    CompileSpec info);
+
+TORCHTRT_API torch::jit::Module embed_engine_in_new_module(const std::string& engine, Device device);
+} // namespace torchscript
+} // namespace torch_tensorrt
+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1Device.html b/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1Device.html new file mode 100644 index 0000000000..59a0881709 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1Device.html @@ -0,0 +1,840 @@ + + + + + + + + + + + + + Struct Device — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Struct Device

+ +
+

Nested Relationships

+
+

Nested Types

+ +
+
+
+

Struct Documentation

+
+
+struct torch_tensorrt::Device
+

Setting data structure for Target device.

+
+

Public Functions

+
+
+inline Device()
+

Constructor for Device structure

+
+ +
+
+

Public Members

+
+
+DeviceType device_type
+

Setting data structure for device This struct will hold Target device related parameters such as device_type, gpu_id, dla_core.

+
+ +
+
+int64_t gpu_id
+
+ +
+
+int64_t dla_core
+
+ +
+
+bool allow_gpu_fallback
+

(Only used when targeting DLA (device)) Lets engine run layers on GPU if they are not supported on DLA

+
+ +
+
+
+class DeviceType
+

Supported Device Types that can be used with TensorRT engines

+

This class is compatable with c10::DeviceTypes (but will check for TRT support) but the only applicable value is at::kCUDA, which maps to DeviceType::kGPU

+

To use the DataType class itself, interface using the enum vs. normal instatination

+

ex. torch_tensorrt::DeviceType type = DeviceType::kGPU;

+
+

Public Types

+
+
+enum Value
+

Underlying enum class to support the DeviceType Class

+

In the case that you need to use the DeviceType class itself, interface using this enum vs. normal instatination

+

ex. torch_tensorrt::DeviceType type = DeviceType::kGPU;

+

Values:

+
+
+enumerator kGPU
+

Target GPU to run engine.

+
+ +
+
+enumerator kDLA
+

Target DLA to run engine.

+
+ +
+ +
+
+

Public Functions

+
+
+DeviceType() = default
+

Construct a new Device Type object.

+
+ +
+
+inline constexpr DeviceType(Value t)
+

Construct a new Device Type object from internal enum.

+
+ +
+
+DeviceType(c10::DeviceType t)
+

Construct a new Device Type object from torch device enums Note: The only valid value is torch::kCUDA (torch::kCPU is not supported)

+
+
Parameters
+

t

+
+
+
+ +
+
+inline operator Value() const
+

Get the internal value from the Device object.

+
+
Returns
+

Value

+
+
+
+ +
+
+explicit operator bool() = delete
+
+ +
+
+inline constexpr bool operator==(DeviceType other) const
+

Comparison operator for DeviceType.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+inline constexpr bool operator!=(DeviceType other) const
+

Comparison operator for DeviceType.

+
+
Parameters
+

other

+
+
Returns
+

true

+
+
Returns
+

false

+
+
+
+ +
+
+ +
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1GraphInputs.html b/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1GraphInputs.html new file mode 100644 index 0000000000..7f59d7979e --- /dev/null +++ b/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1GraphInputs.html @@ -0,0 +1,698 @@ + + + + + + + + + + + + + Struct GraphInputs — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Struct GraphInputs

+ +
+

Struct Documentation

+
+
+struct torch_tensorrt::GraphInputs
+

A struct to hold complex inputs.

+

This struct can either hold a complex inputs of shape or a flattened one,

+
+

Public Members

+
+
+torch::jit::IValue input_signature
+
+ +
+
+std::vector<Input> inputs
+
+ +
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1Input.html b/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1Input.html new file mode 100644 index 0000000000..2f98921cd7 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1Input.html @@ -0,0 +1,881 @@ + + + + + + + + + + + + + Struct Input — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Struct Input

+ +
+

Inheritance Relationships

+
+

Base Type

+
    +
  • public CustomClassHolder

  • +
+
+
+
+

Struct Documentation

+
+
+struct torch_tensorrt::Input : public CustomClassHolder
+

A struct to hold an input range (used by TensorRT Optimization profile)

+

This struct can either hold a single vector representing an input shape, signifying a static input shape or a set of three input shapes representing the min, optiminal and max input shapes allowed for the engine.

+
+

Public Functions

+
+
+inline Input()
+
+ +
+
+TORCHTRT_API Input(std::vector<int64_t> shape, TensorFormat format = TensorFormat::kContiguous)
+

Construct a new Input spec object for static input size from vector, optional arguments allow the user to configure expected input shape tensor format. dtype (Expected data type for the input) defaults to PyTorch / traditional TRT convection (FP32 for FP32 only, FP16 for FP32 and FP16, FP32 for Int8)

+
+
Parameters
+
    +
  • shapeInput tensor shape

  • +
  • format – Expected tensor format for the input (Defaults to contiguous)

  • +
+
+
+
+ +
+
+TORCHTRT_API Input(std::vector<int64_t> shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous)
+

Construct a new Input spec object for static input size from vector, optional arguments allow the user to configure expected input shape tensor format.

+
+
Parameters
+
    +
  • shapeInput tensor shape

  • +
  • dtype – Expected data type for the input (Defaults to the type of the weights in the first tensor calculation if detectable else Float32)

  • +
  • format – Expected tensor format for the input (Defaults to contiguous)

  • +
+
+
+
+ +
+
+TORCHTRT_API Input(c10::ArrayRef<int64_t> shape, TensorFormat format = TensorFormat::kContiguous)
+

Construct a new Input spec object for static input size from c10::ArrayRef (the type produced by tensor.sizes()), vector, optional arguments allow the user to configure expected input shape tensor format dtype (Expected data type for the input) defaults to PyTorch / traditional TRT convection (FP32 for FP32 only, FP16 for FP32 and FP16, FP32 for Int8)

+
+
Parameters
+
    +
  • shapeInput tensor shape

  • +
  • format – Expected tensor format for the input (Defaults to contiguous)

  • +
+
+
+
+ +
+
+TORCHTRT_API Input(c10::ArrayRef<int64_t> shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous)
+

Construct a new Input spec object for static input size from c10::ArrayRef (the type produced by tensor.sizes()), vector, optional arguments allow the user to configure expected input shape tensor format.

+
+
Parameters
+
    +
  • shapeInput tensor shape

  • +
  • dtype – Expected data type for the input (Defaults to the type of the weights in the first tensor calculation if detectable else Float32)

  • +
  • format – Expected tensor format for the input (Defaults to contiguous)

  • +
+
+
+
+ +
+
+TORCHTRT_API Input(std::vector<int64_t> min_shape, std::vector<int64_t> opt_shape, std::vector<int64_t> max_shape, TensorFormat format = TensorFormat::kContiguous)
+

Construct a new Input spec object dynamic input size from c10::ArrayRef (the type produced by tensor.sizes()) for min, opt, and max supported sizes. dtype (Expected data type for the input) defaults to PyTorch / traditional TRT convection (FP32 for FP32 only, FP16 for FP32 and FP16, FP32 for Int8)

+
+
Parameters
+
    +
  • min_shape – Minimum shape for input tensor

  • +
  • opt_shape – Target optimization shape for input tensor

  • +
  • max_shape – Maximum acceptible shape for input tensor

  • +
  • format – Expected tensor format for the input (Defaults to contiguous)

  • +
+
+
+
+ +
+
+TORCHTRT_API Input(std::vector<int64_t> min_shape, std::vector<int64_t> opt_shape, std::vector<int64_t> max_shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous)
+

Construct a new Input spec object for a dynamic input size from vectors for minimum shape, optimal shape, and max shape supported sizes optional arguments allow the user to configure expected input shape tensor format.

+
+
Parameters
+
    +
  • min_shape – Minimum shape for input tensor

  • +
  • opt_shape – Target optimization shape for input tensor

  • +
  • max_shape – Maximum acceptible shape for input tensor

  • +
  • dtype – Expected data type for the input (Defaults to the type of the weights in the first tensor calculation if detectable else Float32)

  • +
  • format – Expected tensor format for the input (Defaults to contiguous)

  • +
+
+
+
+ +
+
+TORCHTRT_API Input(c10::ArrayRef<int64_t> min_shape, c10::ArrayRef<int64_t> opt_shape, c10::ArrayRef<int64_t> max_shape, TensorFormat format = TensorFormat::kContiguous)
+

Construct a new Input spec object dynamic input size from c10::ArrayRef (the type produced by tensor.sizes()) for min, opt, and max supported sizes. dtype (Expected data type for the input) defaults to PyTorch / traditional TRT convection (FP32 for FP32 only, FP16 for FP32 and FP16, FP32 for Int8)

+
+
Parameters
+
    +
  • min_shape – Minimum shape for input tensor

  • +
  • opt_shape – Target optimization shape for input tensor

  • +
  • max_shape – Maximum acceptible shape for input tensor

  • +
  • format – Expected tensor format for the input (Defaults to contiguous)

  • +
+
+
+
+ +
+
+TORCHTRT_API Input(c10::ArrayRef<int64_t> min_shape, c10::ArrayRef<int64_t> opt_shape, c10::ArrayRef<int64_t> max_shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous)
+

Construct a new Input spec object dynamic input size from c10::ArrayRef (the type produced by tensor.sizes()) for min, opt, and max supported sizes.

+
+
Parameters
+
    +
  • min_shape – Minimum shape for input tensor

  • +
  • opt_shape – Target optimization shape for input tensor

  • +
  • max_shape – Maximum acceptible shape for input tensor

  • +
  • dtype – Expected data type for the input (Defaults to the type of the weights in the first tensor calculation if detectable else Float32)

  • +
  • format – Expected tensor format for the input (Defaults to contiguous)

  • +
+
+
+
+ +
+
+TORCHTRT_API Input(at::Tensor tensor)
+

Construct a new Input spec object using a torch tensor as an example The tensor’s shape, type and layout inform the spec’s values.

+

Note: You cannot set dynamic shape through this method, you must use an alternative constructor

+
+
Parameters
+

tensor – Reference tensor to set shape, type and layout

+
+
+
+ +
+
+

Public Members

+
+
+std::vector<int64_t> min_shape
+

Minimum acceptable input size into the engine.

+
+ +
+
+std::vector<int64_t> opt_shape
+

Optimal input size into the engine (size optimized for given kernels accept any size in min max range)

+
+ +
+
+std::vector<int64_t> max_shape
+

Maximum acceptable input size into the engine.

+
+ +
+
+std::vector<int64_t> shape
+

Input shape to be fed to TensorRT, in the event of a dynamic shape, -1’s will hold the place of variable dimensions

+
+ +
+
+DataType dtype
+

Expected data type for the input.

+
+ +
+
+TensorFormat format
+

Expected tensor format for the input.

+
+ +
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.html b/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.html new file mode 100644 index 0000000000..0d9c4b301a --- /dev/null +++ b/docs/v1.2.0/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.html @@ -0,0 +1,852 @@ + + + + + + + + + + + + + Struct CompileSpec — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Struct CompileSpec

+ +
+

Struct Documentation

+
+
+struct torch_tensorrt::torchscript::CompileSpec
+

Settings data structure for Torch-TensorRT TorchScript compilation

+
+

Public Functions

+
+
+TORCHTRT_API CompileSpec(std::vector<std::vector<int64_t>> fixed_sizes)
+

Construct a new Compile Spec object Convienence constructor to set fixed input size from vectors describing size of input tensors. Each entry in the vector represents a input and should be provided in call order.

+

This constructor should be use as a convience in the case that all inputs are static sized and you are okay with default input dtype and formats (FP32 for FP32 and INT8 weights, FP16 for FP16 weights, contiguous)

+
+
Parameters
+

fixed_sizes

+
+
+
+ +
+
+TORCHTRT_API CompileSpec(std::vector<c10::ArrayRef<int64_t>> fixed_sizes)
+

Construct a new Compile Spec object Convienence constructor to set fixed input size from c10::ArrayRef’s (the output of tensor.sizes()) describing size of input tensors. Each entry in the vector represents a input and should be provided in call order.

+

This constructor should be use as a convience in the case that all inputs are static sized and you are okay with default input dtype and formats (FP32 for FP32 and INT8 weights, FP16 for FP16 weights, contiguous)

+
+
Parameters
+

fixed_sizes

+
+
+
+ +
+
+TORCHTRT_API CompileSpec(std::vector<Input> inputs)
+

Construct a new Compile Spec object from input ranges. Each entry in the vector represents a input and should be provided in call order.

+

Use this constructor to define inputs with dynamic shape, specific input types or tensor formats

+
+
Parameters
+

inputs

+
+
+
+ +
+
+TORCHTRT_API CompileSpec(torch::jit::IValue input_signature)
+

Construct a new Compile Spec object from IValue which represents the nesting of input tensors for a module.

+
+
Parameters
+

input_signature

+
+
+
+ +
+
+

Public Members

+
+
+GraphInputs graph_inputs
+

Specifications for inputs to the engine, can store a IValue which has stored complex Input or a flatened Input.

+
+ +
+
+std::set<DataType> enabled_precisions = {DataType::kFloat}
+

The set of precisions TensorRT is allowed to use for kernels during compilation.

+
+ +
+
+bool disable_tf32 = false
+

Prevent Float32 layers from using TF32 data format

+

TF32 computes inner products by rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas. This is the behavior of FP32 layers by default.

+
+ +
+
+bool sparse_weights = false
+

Enable sparsity for weights of conv and FC layers

+
+ +
+
+bool refit = false
+

Build a refitable engine

+
+ +
+
+bool debug = false
+

Build a debugable engine

+
+ +
+
+bool truncate_long_and_double = false
+

Truncate long/double type to int/float type

+
+ +
+
+Device device
+

Target Device

+
+ +
+
+EngineCapability capability = EngineCapability::kSTANDARD
+

Sets the restrictions for the engine (CUDA Safety)

+
+ +
+
+uint64_t num_avg_timing_iters = 1
+

Number of averaging timing iterations used to select kernels

+
+ +
+
+uint64_t workspace_size = 0
+

Maximum size of workspace given to TensorRT

+
+ +
+
+uint64_t dla_sram_size = 1048576
+

Fast software managed RAM used by DLA to communicate within a layer.

+
+ +
+
+uint64_t dla_local_dram_size = 1073741824
+

Host RAM used by DLA to share intermediate tensor data across operations

+
+ +
+
+uint64_t dla_global_dram_size = 536870912
+

host RAM used by DLA to store weights and metadata for execution

+
+ +
+
+nvinfer1::IInt8Calibrator *ptq_calibrator = nullptr
+

Calibration dataloaders for each input for post training quantizatiom

+
+ +
+
+bool require_full_compilation = false
+

Require the full module be compiled to TensorRT instead of potentially running unsupported operations in PyTorch

+
+ +
+
+uint64_t min_block_size = 3
+

Minimum number of contiguous supported operators to compile a subgraph to TensorRT

+
+ +
+
+std::vector<std::string> torch_executed_ops
+

List of aten operators that must be run in PyTorch. An error will be thrown if this list is not empty but require_full_compilation is True

+
+ +
+
+std::vector<std::string> torch_executed_modules
+

List of modules that must be run in PyTorch. An error will be thrown if this list is not empty but require_full_compilation is True

+
+ +
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/torch_tensort_cpp.html b/docs/v1.2.0/_cpp_api/torch_tensort_cpp.html new file mode 100644 index 0000000000..f0abfaaaa6 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/torch_tensort_cpp.html @@ -0,0 +1,1060 @@ + + + + + + + + + + + + + Torch-TensorRT C++ API — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Torch-TensorRT C++ API
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Torch-TensorRT C++ API

+
+

Class Hierarchy

+
+
+

File Hierarchy

+
+
+

Full API

+
+

Namespaces

+ + + + +
+
+

Classes and Structs

+ + + + + + + + + +
+
+

Enums

+ + +
+
+

Functions

+ + + + + + + + + + + + + + + + +
+
+

Defines

+ + + + + + + + +
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/unabridged_api.html b/docs/v1.2.0/_cpp_api/unabridged_api.html new file mode 100644 index 0000000000..9747f4c070 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/unabridged_api.html @@ -0,0 +1,1015 @@ + + + + + + + + + + + + + Full API — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Full API

+
+

Namespaces

+ + + + +
+
+

Classes and Structs

+ + + + + + + + +
+
+

Enums

+ + +
+
+

Functions

+ + + + + + + + + + + + + + + + +
+
+

Defines

+ + + + + + + + +
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_cpp_api/unabridged_orphan.html b/docs/v1.2.0/_cpp_api/unabridged_orphan.html new file mode 100644 index 0000000000..362eeede77 --- /dev/null +++ b/docs/v1.2.0/_cpp_api/unabridged_orphan.html @@ -0,0 +1,755 @@ + + + + + + + + + + + + + Full API — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+ + +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_downloads/26d49aeeb9c710e27197fda28b7c3516/yi_jing_01_chien.jpg b/docs/v1.2.0/_downloads/26d49aeeb9c710e27197fda28b7c3516/yi_jing_01_chien.jpg new file mode 100644 index 0000000000000000000000000000000000000000..523dc2b8b868fa53e3b960d7017908dae486eecb GIT binary patch literal 6614 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_images/_notebooks_EfficientNet-example_12_0.png b/docs/v1.2.0/_images/_notebooks_EfficientNet-example_12_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a308a0d7ddbea230c1746ad9dd482f5697543ad5 GIT binary patch literal 96385 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

sYowpbQ^5o07~=1mQsv27N8sf)$|f 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

Zg)6uIO}&*<%Fzv5Ix)N4l^w&=QH$b zMQGOaO42OmD6Pq*V4sZE87{RWx(+eY#18kD-0ck)uET4E8(KCQ>}CaJHRX-j0sUu> zd8m7w1u-Z@7PwG~+wXoC87!wSAJWb%LcYNDiY`VD^qk$aLfI9kXC3EzbAIW#=K0lg z-U^DNVV_{<{OAXNM0;_`^lHnV54?Zxb?(0XI^X&BH+kp1Z&GF%PhURca=m8v!%w+$ z+%tRqP5ww}o|T|{V5(xGh%b0d^IVBJ8OOU{O#ei#zE zFw0UVnHkc?T!0K|9_9htCYGqT79|8xCKp+6EkoC#6(BV}O0<*=Lkf=*D)9q^aD*U; zTBO2!eJm#?g4EcxXF5xaS|yp(HN!BF7a3WuQA*&9!FortS+i>zHti#xJbc94Z@-DP zj^*A0Q7C*2oS&akO(#5k{*s|-*lwFK$vC29^1e&&QCV7u4c&k-18vh_ogs{A5ecLn z5W*u>K5o%d=x3H^fI#blXa^z@1von-Yi@9q)g&zlg+K^7(%yVZv31FOYMr4h$6)Y~ z7DLWCqIb9~B~s`tPY*g5%4U z_2z=j!4jtwMiAJW26=nP+1%(E$>TjN7uh>@-7`BbJ8 z)V=8~;? zy$APr@cNs$FklD6@pQ^uX{OVf-EK$z@)1Wt@NZA16nAf--nh%5&e(U~WjZNQ5@ySN ztTFuHvnTvV|M;Ks>ifUTckk`-L4G;7ppDKJLa=}Zryvp{;k{Oc}^x(3M$C*^e~kY7c6B_vUhZZ$`#Ka zJ;nOSgFAPbRyAGUaJaYN;p0dA$)^wb(ZfglZ@=b_`}v)&5)_rDsx^5f$x1<%EAm_; z<@L-|5Jf;KNm))Pvl?QC?F~W%y1u6_3*6wa&J##r9Ope<-zH0{5ZG}JsH323c4=cD z6aFtjS`>ZX;aw`ALY8SpC?(drw7k(ONzJUm20sG1Q&djy0Y7fkT?q7jid?QL$)qar zKKZegO!4L}MslTag}}59m1)jTU-9DA3D!C$lSEA0KiFqFo8nAQ+YP)tJ!QRGv)yc1 zt=B2KJvg#FXHwO;7|=1`ZJL{QU6a%eLo!7qKC2j^+1GP(f1^~0qXX)ik>G*@B?)#^ zO$3h-l5#pv$p$2mztW>F+1WJv4#}_(yk{^eErg(g$#nlq^4MJ7$zDiG@HRN z*+1aGTKZ;*B1<%HC?-7x7l)eb;-%u8l9Kizkk5q@hz(9 z3?T&dV!^S_D6X#PhJ--P@R+{m|~zIwrIHf7iBxV&0_ z?d|sSb-KBvn&#BglCsXp%Z#E>=qz=LF@<5Fq9QL!X0ru#zQ8+0-(8`zln`9xV^nzC zBaoDNPSdu;5Ku~wetn0Mnyycp!w_Q{2jp3blyMgC1JN0>a!M3BbzdT+SuUW3B>ISz zsYsEfxupv+aYTb3ZNHjKXAHeTYeiL6*uDp)$+W~cOQ|)nEE$@Xh@@>>v`Xm_L)Y{9 zr=N0gc*qx@e!^n8z9$yv+sY>z%zdNbS

%hodFQnR3n>$4 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

cz}Yh- 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_images/_notebooks_Resnet50-example_12_0.png b/docs/v1.2.0/_images/_notebooks_Resnet50-example_12_0.png new file mode 100644 index 0000000000000000000000000000000000000000..918517c79afa6195f8336580a23a8801389fecde GIT binary patch literal 96469 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 z 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 {k&ZS6rsU$@fQ;^?ggVNx}lZEph5d!mK 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 Qw*UYD07*qoM6N<$f@AU}x&QzG literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_images/_notebooks_Resnet50-example_16_1.png b/docs/v1.2.0/_images/_notebooks_Resnet50-example_16_1.png new file mode 100644 index 0000000000000000000000000000000000000000..67ce9b8c774982fe4685636b2ef314881ee2b360 GIT binary patch literal 99900 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ϊNn>Dqt~fkIv+e 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

;? zsdGg}ZlZDoH!&~c$O?hDDZD`>xxnW+46nQ18%C~woj`EI?Uk8i=RL!w<=r<9S>z>y zH4J#JH=A*unm%sp9DSxh2YLY^<~%iqLY8ECOlc$`;?Ni=XorD9fEAi{aA=V+Xo>fM zoq$LEz{)iAt)=OE76rs+0AYCc@?-k#E9AWcvJi=Rpnh;4b#RC2{Dj+8MjHYbrpMNE ze(}Ap^Z4nfylQ)X@9Y!4``)*?V>^C0oUyfA^zB>xX8kpO;I@2in(;rowZ|v(g8%FK z5#L!Haa+~ACrkeG^Czrx&G)6`FE38movT3DlNu)kO+S$51@&agx4->ezWtr=AcVxaWWd;Mw+Usb zBz>QP3G=c*E1kMiC9&S2gv45dvleRyoN;KWuqZa04FJ%%>BAb?A`hgopDzoOi6-hV^buXL>Ruld@*8 z7Hb`yu|SI?>9n&E0+XRfqMS-=9U;df`Dfn)fpm)cvak5L|AY`y*Lp)9yV-?DkRgl? zBugAMo`ezcC`Ngf{48Mgv!a`zhcz9S(erV) zW;Q9AD;Pq9@2~jalOGdt90r4`psEg%mb)srd;d+gF|ayX5>D>%KfeDR4$7P#txtKf zUGtVcAY>(1+b4MC`Cxm-zkl~Ve*fi)e?Dya;l)$_xA)%T<7bcg$PRpLd%m%^&wq^P z+76g7pbuvJs;{{W14{Iq6cvB>_AS1bt%#yR3C%BxjDOKK7^(Ryiv=&GCySCP20sia zRq@sL|0bu8{uy!e$!BuEn8tVSzwyg_+ z=a_cD8Iv^acA#0G^YZGPpM3h5sAs5;K0-vt>gs|Q&!2L6dB)lK1p(;Vmf!pj|D&IK z&wWAB9g|G0u16YAHMJ=V%%>x^H7VJ_*+}0F^magJCBv{I zPBmFJM~Vr=nx=L1y`eXWooP(!qFoGlyG_|?!J(z3*=^~&hK+~}U5C<&x-287R%5F@+?D1!C(ih^UUT`_Llp+{q{S&|IPOiLePy|+dMBQtBSrK z*sRy|eNUF>R8@^2MXE=sFhftC<#=c5`;@9-jZI(}snVt&!EU$1S;K5Tf6O0T{SMZ;q*9PMUAseT4MO6)qpoYZz8Pb}8Rd5}>6?{eKATb2Gp5rii}^Cm zvy?*Xoc)7a^h3}2#Tnf&jPqlG76Bi@nw~7vw1Xu$lkClUT#_P?Atq^Aa0Dr^#-zFJ zxTJF<^xOD>A*7{+xJi^Ht&u+;BzWT$h~w7(%f4#jN0(PT77kS_LT~u$!9IWd z>?fRiN1+OGbIIgbVa`@;qi6BpZC0x*2GPL&oc#WqoD>;N>6w)UrdjiY(=!^^a?1xM zSZ14Z-ZVW@D(-TPd-gN-&5kY?9Op~wUBe1#TvG{McE38R&-{pM9VwRR%ecvHsWVhL3`ys`nhd8PcBuW=4LR%?Z zjA&$H0Ca}=g9X3zE5C{xde+`C~TQh9Cu6YKpwT76sn>DNtK>}L;yq}f$*l!b}(&?Kfsn;Z-47_K}PZ2_b1Sdbn%=|zu~G0%umrcTo(c1aY1yxDPi`jr36pZqR=_v_#0psEl=vT4EG7+(0uopQnt zuU~R^w#V8zKGh3T=CY! zH~4V4WHR69L>EjQROf4sLPH3z*j>KFhJivVwyHqyTK08H0biCq=IVksd=IOfllhAF z?1~wI&2~n;IO2`z5ylHHY|q#8lKY|{3j(KWrdgmNaNQcN&7A+c+i<@!{3m6_yl?UO zK&d9&o|L%K(c4HKGeB}ECw%MMf1Bq&`z_c$Cs7Rx{)gZBTbvx+W_|jE>laTsd-;;C zGyJ80??0e#ws<>`DM`EAl4S|^+B6Nz<2!ukH*Rx%ea44B_#XRvOQh1MsQ7Dt{omuO z-}(lB{D;5G-}`(2XSPklY_b1^_uCiDbmQnp4OnBi-mSP=C!hY_a*sl5WGoSdrYKTA zymvNn5P~Du8C71BsR>%PXj$Q{0H3}Ux3+_(A@ve!)a*ufyA9R_q|$hAu|tos25Sba zv4BV{-Uz$xj-o11Ql*0JEIP|5@`6p%P!uIqSrUD~Dnq6<(MN<9*uijkc*y_Y*M5zv zDp(IaoiVIdE1We{lL>=Kf3J4|giNSJo8)QEJ9LpFBG`T)&oV-c=$HWNYN8n0Hia@u zNpK~il7yHZD4WfeyLa#M_4mHXAO6uF;jF=Uiw_=S9YTOW(l!lRDSB(tH+YEjwnvHr zV=ZmhQkD&anV?#rtPwTG6&0ZP%oE zvQ{kfijCahr9>7LtyS2eNzOnb!Y6H{{LJmjP59!dNdI%S^|K@Uze-&7zv=5U(6|`$ zP$Pj9P8!Ei3o^WJaYa-kKY8qGxv^~DbhG0_MT~%!7~pdS_vY_RW(G^04NQs*F9Mg_ zHP_o!B0v$-LUu$;4sJke$@JAJo9Os^P0P3MzQJrcrHUEvESH3)W#e1!NWqV`R~%#| zceUkDu1=}43GeDD|Lw~sTwBHcxX0$=5lwSR6E@r`mlX2_$jJSo=C&*uY)#!e4qu%T z)(vv~ij}o=Hga`-fw7kJ7^ZUTc*JyuX3{49)9m0 zpJXM6rKFlnI4(TF2#zu2TCyi#W<8!rp$4j;c)Z(EQSv+Oiu+~cuL;E-$=H%AcV?^|{>nlRvQp^{O{UcIK zCbJ1`XEA+;5Rv8nK5q)etFsHPuCBPgc*zg{aLelQf?xXOU*h8Oib*~H!h7xub-FQv z$^^QCAP0V*OTBSq>Ej2NQ1V=F`xuGZu=JP3s-5$MZ=zE75T0VVz#caBu zs%i*=Ad=u*pb^nCo0T+e&u+J4+cXUQ@LClhMPOEyOeZy3YrGF=r7%NB*S1KVAyjfi zDXEj5SPGQNMu(Sz5ZG?F_z?NV``_WsH{W8n+cFF(V!ap%Uz^oB&6p81ZA(!UbY>V4 zlu1UUrAkZ!7ufkN^>ju*Y%pV&?nq0q>10Ab42fyLmfkF=CpEW@kNEY!{O|JN$DeTi z>IG3Gg@O`dllkOk`2T;t4u6T)p9w7-v(e(~n4ZLQ6(Nuagvo*)HT*wQZr~x6z+A@eeVN7z`V@a^oEIRnY=n@)AT&qt@%)E zzIyb4|MKb2_~z^uKQvqZ;_QUq-@c?R3jT7rcQ;uGw}S+DN7jEvL z=e}UPkp3~NNygq@!EBzR$_UEhe2;MjT4kt^_YFF?e12<{ivHbOu3|!Y9X@zik_Y5VW03aq7LHsMCwK z&XN~7J_MW#ND*F3nS4yyV|iY1`|cg`A}1S?v&#+xP1mt&n`ARK29;+-kpS*~NCf?= zsA#&5tSE>vQkEr~^(sl*x&fgi##`zlC+G?<1a^FIWMz(so=IJkXBl-}pp>K=da9~? z{qTx0V2nW^Fu{(}C5N?!#cW33wfM2P8{H@2cDExqi`JSDJiFb75Csm2E^2a*@=FfRc``yWo4zpAmZp!$9-~O(a*EOv^O-F^)-=p}nWwH5~cCcD>=efdN^*YsjOFr>qO1Xs zT9emPLI711EUOA@E!AYoe0jj($!*SGzM?2|Hdj~7`V;^=pG?QG+Rwkfzy=&qIZS3b z%jJaq{fgNWs3?7<>lW~g} ztV`Wu+YQ7ZFg7jJvb;b^i6+uFTVn9oA%V%8;PD|~`VMOiM30b?{pFI?dV|o30~LZN zBIx@LsWY-HqiNgJ6-$NEimJ-EI!hmCI-91X3FmQTA~gk{cnDQlC7?@|)Av2mN3twS z=77)XfsL~$p(%wzC{3mdjOo#tN=X+ZK5=!uA`&@0eZgk4CPqKLmbBRyh!kEaB*V~? zDTy%y;1Oh0WdSkby~Wvq;0p9)%3!*r^R)&c6=gXCDe=}M>u{!NO%Kt58OX96ofY)P zuz z&8=!i%r2-m=M+Mc>6*Qlr<8u66dCMx$n6D9Z+X@`F3!){v@J1eBpG&b3-XLy=ES1F z1p^_Vqo=l(w(s$Mi|<=-7C9uMTuMSte2MLL$9A_Pdw$B{ts}z2HxP|sRhFnpMdl}D zL9;bmHr^pK$uyP}zT>jLLdeKW!~S%SOS$Gc48*#in4NG{M4H^OKUHMX@zfW*q~%Bj z_VyMW-1#Q+(;rY}1;cKKbrw~X>|VX%^n;&rUOr}ZdCAXy^dsJS`zz>7;p&>asE8_~ zoXyE+V7h^c8eNyh;Jl-pRy_OgLw36j_a5BmPH?4W)B=6k0$E#Pb#$&m|*`!M@v?d#8q|>@&FzK7C zswin5?Aa+;>4*=)Fd`xfi%mieT@c+2%_jrXJS!TOZ090N#+@BtG& zZPzj>%Td9Qn5^|=N~RULk|+t@8M=0d63`oq@rF$0NR^T2Ie|!?7Z_{ErJ}b3gHI1D zAvN{L7bZCBqM&P=)M>{+p%h*U%n;BzCkv5a?P#%fXd&=7mRTvsbZ2;7Xm3UiA)rD+ z3jWzdg)is2agqUPW;+Ys^~7O7M^7#kA_j(Gzy+Uj{G_C5c7ULi8SASx6D<*L#jf2_l^K_4 zYSS<&Dz2ku*lh_?a4s{t%^L3w+bFTymfhwWTtur9TOXt6iOpenHNG!!rAsWjg_l(tY!pY$+<}&g~?6__kmf4aZOYYu! z7kT-F%csvVMZ@vKukglKA7bA$xG3pXm#oLr?B(e*4v!9592^ma#P)`KI!BMb0I4Jr zf%lGXv*YUGoaZlI@&~{7`+WC1-=WSk_V$-llYhMMswyVa3G?NW zI$L4}xV$>!vTtddE!G8eS-;k>#;C}Yq^xQ%j=^enTSL3E+<3-=ckH$s+O|cAMEWYq z#6%d3z&OKvI!Q6-N)tuEnebd(&6kR0dFNJZ3=INGZt@w2WjjvXSYNU8AU z7ueg{( zy2L2a182t24n3JnAfB#i!8>*;L&}2X;ag0n3$`w@GXuG^WY*FV(NQ3EWFyjeDr6b^ zvl;lnQBh+|$C+y|#vz?YbvsQqeYBe($$`o1cCB3B`yfD2p7eHF@y`C6#{#ovx6evm|4x%L$WeMv+(Kc}ZQ( zsH(KkX`3CJ%^Ks}m;j;CDtYat%81q@#U4YyMaDp$Df+?CwjJwTgZG|ERgKH8EEV`X zPm&l>zt%d6=-KUdR7J_OuF15d?OL3(2odS~2ICya4C|71*qS~SB4=5zSInnVGOgKe zwtVox&v^LeTRgmfm+OlQkbnT`V%89CO37^zv?5^$Z;tA5tTrM9 zr1vQ6P(UU;^52pO_Jl;dS@1<k&l518F|zo1oQcn`Qn7x!2$E>oMv;)#rB$Ew?%l%fXAx{LQ&-*J@9j;k}>A^dqckE7|^Wks(1K#~x ze~0qBzrw1$X8GzlGt=UwWM0;kRgMyZT&AK|RVAfJiNMYUoRrL~l8IK7&4y35*W`Ok zPGrrCVuR3<{j6j!D;V0IuIV|}1**uA1hn_aBEyvx)oj7#ddtga=jnM(|@~x=h~j$!tk>eL-i|um61FlbQr0x022{@@zuiOI#S(?FLq> z9bMNkttV7PfwhJZ99`SuhMr8q(cwN-T_>i4?YSy4uGbs7zGuBPxM5&6t5GVW>w26Y zBei{aeYlHK5`CcWlBU*;ftu6ll%gzn=j&hN)~yqM@3;RMi^ZIiU;ZUtoSyUK@u#d; zKTgo_x@LbdLrckKyJ5TAvEJ^+Z^BfB5hNK`+X0gO{UhFc|66?Jov$#PPq@0eqU#5a zj*ofc?YH>&lc(csxS%X7#z1cjf|LkshBU91O5?4e6cP_O8L>WLAiLh6Rs9-1lTw$H zdu{&Y4c9NS%x-GAqVZii9f_LSm!Dsf<|7(0PG% zj;L#1ZZ=$Aow104C?tDXO*uHujUfnyaF*Rv=kjskbC4D=PiC$e~9zx7)}i2xnh65pspuO>Iv2w zc1_Fm>WbBRjTr{K9nx%73i3&nj?B*EoyGddu4yQ$Br79~7EG0%lH2VjiOtIlV!-r< z)8{Xl)dg?7{RS_dzhJxBad^1TgNJXi+wJ)D_ipE`SO&Z8t6?EIPzA-?b^JSLHd@r;$R)0>*i45ac5uD9<&<4k>Lz2)f;t!TAK| z2?42kLI~tpMK>h$rFAxuHq+x4foD>eFo1Fr;RKbgAPZD^w z5sc9=iO(?B)?|B*pPOBegIFhbE}Ma`e(jJK zci!dV>Y8qMh1^}TCps^B^YeML`QjzQ6kv6idCfqu?&&yp$>pC_# zDm`JMYmE081=c#qN`w@65valvdwmXhiRe0_=?H^m{r~!}kwZs#_dOa3yTS5mSn=EE zr&Ji;Sx))tWRJHedmKz>RCz|8X9OSVt)a(LO2txT;5?TX&)L^^xKl2eAHU1(+_E>T zi9wN9sptxyEbzOlD=se1=$eN4e1UV8X0v0~_NikZRoiWo!fvy?03iv^69>!JzWO%% zhl$JJgJ-wh(YO5<-g93FF)z!CI*Kv_p8>FG4#pB z)O0;QrVOuLlQ!bbZcCBFVpbEXv=#K$lSx6QGnR`zigE%%v2Hs0uHowXlA+xaoWq$u zL07ayA()P_>0OrqGyPy`+7_ARXer5+BzYS&0mG(g&{}b@e?VDPeE8@irt=A3``TAH zzI_{^GoF0$Bcx=v zSNY%k`h=lv7`leZB$*W;<)Q7G79|uRTAUlu zN;6o8&UNalNkO2-8uC2HA{bnxHwGVK%F;oO<}i;jJwoafuZ|?wiU<@%$$GOMQJ9*^ zWI{jck(H7ZS%JkQH=1=6nPjh;aImO3*qfnp#dff$O^1<^v!=mpd!mr94FfVlt_Az^ zn%f66_U9Gz>dP;>F-4Q4dG45=aDzvmF43YusgehE&8t^0Fj-Bn6qkc#8#h#wBbIW()%t>+s*r_dSrn|VF7cBoaW1JP zbj>xr3y7mBm=@t3qTS%uXN1j$@K62`RkZZ)eU&(`2*xtRl3u_cwQIh2b;VbTDgUE; zZ}awIpG*s~EJtaWpa?GDtRtd$`_5Y&ERT^|k@Y=gk)veFTg>u&G!`aA?a;P}5V>>b zF7u*h=z5yXmdjU{EXgQmk|;-`lT=74u-2sSnb{QW3U<4OvsceqU9Z?~cFg{D7imJI z_-&;|PFFbw>6|LBaWDmghirmAZmJbb|A`329OJmK-g@k!*n++;U(4xAm61d2x#0Mb~!Z6r?8&dj#RGKW; z@0Pb(U%4GVnZlO z$TjojoT)e5%W6({Ew8TDxL42VyA5_aA%sXJ6^s3Q+@DQGiJ;(obIm47Oi>fG=G1z! zgJb5I;=p@etS;&01Y>qgi=4Soto?x3kzMa8>KY4JC9x_eUly3Y1CgQo4X#-svn4`C zC`#gPgZty}A@`=lue?dr1?()M1*}5(^zV7P+psJu4ktBQL?&65Vyz}qX43;ElRa{k z5tJhOKsBF|$%eMsQBL*|QsAs1^aCM)EGsha*((Yb^Es=F70*6>PIz^JDr-Wf2?RFl zEv|1+JveVTd-|O7von13T)jMHupQgYmN(vbK#~7z+JMuDD~?X6bQ6UD(FbC5M3>}T z-kBs{$`n;qCabRSgs9001Yyvwr!E9VQ8KuJSFZ+wiGtI%?f)E9(%{5t;vE6KGnl?qt#7Nush$5r!JMuhF-JnfTGa*Jy zpEwVz)fHtq;n~w?y!GartT!9-vf%jS1cc!F`if_tKIW=9=cj-AeKu`NZynPjrx|mi za;?d=CJ4!LZ;xB|9#BuGVny9!fZODD!=>)cJKXIG)Hn+Or34GnYF^`WZ#e)4Y7nr;k76 z(@#HU)o!4uneQE;7Y9trDfZ$LUsha9_bK-d*bAP+zGb!9u$37m^z8a8UP>4|=omSg z*N9AU9zkU}c6Y&tuRcjk4_&Z7U-0I^TdY=F1{XNHI%8Ytbli>wCpzbTHRH-Pw6S3m zCg{nGd6u!cIL9nzxV&PKXRIz>;mRrHVxL@+nAfv?qRa`=peJ)&zeB9I*xfb!(f66$ znIWe&J3oMll+JUjD0q8$NU1U`DNVRBj!986Eo=7o?-OK+mx4e2@KbgJl%?do14SV_ zhRq6H%ozqlXc|njBScTL*>LshoV+NQE~dyVC&VP5%(9do7z#sT}M$!Y%uJaYyR2qe#~aK;eYpk_)mZCJ@aSpF^Cb8ZE$WN7XqOY zgu5zga;?ZR&ENxdRWY5;@jh^I@q*3jimvbJI>Byd>DmTo26C0g3Uysm)pJbOjti%T zrfqOG1ukY`7?Ig1f+?i$o7YCzR6<$ zkiKo{haMXOW#w4R7X%-Yg1|beT5@&0!h6qbHskW_1*)#_0S1#uU_J(%PuX-K_>uOX zU@MT8F=1pp=&Yd3QgEeIf=N-~NJ$^`Ee^@@;E;YuBMKKigBg;2TkAw#6Oz2hF~;Cb zhcO*xU1JAB*LPI)gfcJaO^PgOI?LJh3WsAl%ou`a)Ag)(4Q-c_2HfWh6_M!u7@?BJ zBEuI0nf{GmA^6ey8HiDVPyfC`B)e~VC(;N)kW>jW4S8?iK0PtP7Y71o^LLp@1fgrI;qm4OevO=g5%_v30JEXyW9~%&uNjMO@~Lf2)i{~Bt9=O<&5%nLGO0N zOw;Ez(}!=e>pDzyl#2ys*AirfoGhTbMhy)@Xks=e>VmkvVE!kMkiYmIyT+pWfx;V( zCi8UfmQzYypt784kx`X1te*4Jmp$`k#&z4XiY3`Jlw%ga%K`%AadP-GKiNJ2RquFh6#^RjAIE#pZ#ca;e z!9IDGvD!AY-GEk-t{-T-9_NyEI3mzep#*4^ij~qCU6*XHMV>JX7H2Hex<-h|WKz@j zJ)eI12~}CLzg#kuRhr-Kb_gNpyN0g?BHu6$WEvghS@AlpzzhRL zRpUtyM;Ft-fenrjlBM|K;*zo`>47X-Ot7?FN0t`^ADPt^i%F!Ff?d}oO>dT@GrRVh ze(0#`DOxI=_3WHuz1#5W@`CAnhRSnV7r5NE41JR7#c%`tPGYK|H*D7pt6F1+HqqC< z$CtfH2s&w*`@mhhRK4eZs|=#DnT@BoX!YZ5X%gyGjv(fovv^ne2QF@+$lTL=OT#^ z3Ykq2v%5UG*s{60=GBWcHcHTJSJ?AQX8Q-s84rk&<$)hJMa;m30xS`$Ur8%opS@R3xw#YCrh-FOlLFZizS&V zFv`FsY+J`_wPiJ?GE`+j+j{b>WLi%d21nbqm?3qq#u==05CW6BLMY9y8!($T4Y!pX zGp$Cs79vGLYmFK$zCNU+S2LJo&qbhgMp0;d@B|;2j&iikdd;gBFFCn&!t~qU;r89T zJbUtl#bUvFwW8^go_M#r9)lrs%DP5L!S#C0Fm$wSlV-_c$8v9(@R7z4y{Dc|*lxG{ z;D;(8gi}A0ur$@Z!Z8!L-z+#`!NFVoneVO&XHL zSIU40qor4>*TwcV{!yfY8$wbnr0{2vCTJfS&dxbEJ>ItHTq3%jV%yM_l0HPt){tcz_9qY7n@phH(G45Cv7A>0*?dl} zD-QF5+tVf2mlr&{xWMH(aZ+=UDduA9&46fo;$Weu(N&Jzt|_lO%302xyyR$hfD97vELEP<_AT42 zq7Ra@A3f$Y3XJrG>m7IR9aFfTVLFFkQLd%PN)B$_qMA)nN|KcYN(o*(e$1nfKVnu- zneQbhSw1!(P1n;j4Fitt>IxA9)ud+KtarmUX*S)X>3te6}BJv>5qTH!QlbzqlW#x1CH<9 zLMzG1tz*{f6-8bWtmEwL4Cj+OCAdIY6$l}5)^WXFW1Xdv6L#$mAvF63hg4O``NaiN zNS;4^f-wVKvqLLIT@-AaS>W7Qnx)K9f;8rF2Bj1x8kCk;>)AG2 ziaZ~;?io$DqbdserXedP#Aqps0v|L!1fsV%1HAz69g;wn7xdkZY>eeGTH&lo*=*xB zUJ1p}J9;y)+H{DjhN>WBnn?N@z24skPv3dYhMvu8g%%NS+`sJB`|t5evab-uYv-Ke zCc-DZ{dJcs;3g_qh|%;w7&W{CDQ_Hjl3dOB=%WuQa?Q*2HS==G_0uQplw_}*aLaj4 zx7YmaJdhDtN=wtO8N9{0fUqf=sQ`)~Uu%3{t3JWnsB&xoB7MfY%@*Bb5485-Qzjt=_B0YfQ=VC*qif%?T$eg6w5hP7--8Wu_!6M zrynfU$pP-{9FZ5O)sD;zEOgFvv1G6v`+mYw7wlyPwJr(4G08Rivjbdl$d9iF0-B;w zcpEUb!LQC!=xlH-l;WtKa&)j{dHWVcRp6}y@9B08Pd<6Vi?a)Eed{jeq)d#LJfogX zs3#?7XJ<^=qbLiqpdkjDq2+vgPFoI~y?Dvq-h`{mE6y&i_^p5R-|_C(-sd;|`d|OT zJMIhF3n2uoahTrVYD3|`1UOMqYgNt}O;CB%(1XVwvWlz&uK7IO}i_2>WHX#`M z0Tnz1OOd6d*|Uoac5P3cE3CC_niew*RJme0nInY4nGPjWB5)*$oQEOd3*(sKnr5Aj zA}=0s#z>=2}L`>iu ztRY5)%rboR6h%qj_Xs7CN+Dt-Q+hP0M1qISc12N?hzL3>@z#zr%*g)!2^UwF_~?+b zNT|seU$YBt99}oBEj|;J6kO?VM_EnRb!?j*WExr2T*g2)nK9WvLidK!d3FS@mlHZ;kXkbrp5<=M?BWGoUXsmf z;?Q$CpOe3Fmm;gUUCeNw{utXv#9ob4f>%0{KYWX0B4?le5Fa99U$Sl_iw9rf*6KOW zSI=cr-9z1x9BemtCa%}6!UpTnWzi2vaR&kgeb9%PIR1@UYH9o5l z#$t73Jvb&s!ORvE8_VIX8WmxlXBq#Bdble>ZSCdo^sRt%=6-E9#Pf(*zEnyU+nY0hMCnU>bg zmaEN*^X?_KcD(Zo@6$YMFs|gyuYZmCAODCCKKKd0^ozgph4I)Ob@$iXFBsxg+n?eI2md9~y0>=iO35q8sc48wp3308BosM!qz=hrK$ zqTqVFW3$`Rw=KESl*No7WZJ5`L>~(=QdKp(wj~o_?LY_tACikIS%f0iS?V&!k1`*v zB}xiJ@MJ|sEJk=vvrE`VDN`ClUGfM2;tv>xffxh3-IhCdZZoM%@=S516}N8P!uiCF zm`o;ITwE|;EQs43Cnv`Qmy#i5UU2r}Wjcbj4HsuGxn5m!d~(8zmoKTxGP#Iiz?wcW z6{LAx_!!+>0-rRtB$^ong0o~r`Py>pN6TXLhGw@N!R0MNrId^iCB|*3vt=si){21#A1>{+gK8_g>QgHjueO{hDBPfMa5*tHWPTefeZhGAi zM^-^dNAu4BUSIN+P7#9iAbHI~8^=>5O`E2(jaI zbIE+M$C)v>vgFub)N6(N8ofHCM03By2i4(9`}CV_l9rB*f5 ztYTJ9dDL%cvgGV5CN*>CDb8MCO^4e%BqMOyb*$zK@Tp+v&%hJ z7|M6PPAwH-b-|hF@uI?NMK-Ot_x>+n0$f~tiW>yGYRTJscWAl|ZP@a>b^PMPJM_;! z#xUj1Fz0mpBM#IF@B0#GuBghubo!9*o;+ZsG%kWZ*dutT)B)YDO&VaWIm#Ww&@qoW zZ=M{Yg`mzfR%HD2^oomi#r0;(RKwZ?-davstu4FR9v`-W+b8!BI??}hSps0&7TfM{ zeNUbVzWMEUxqEky>7-!0x<&{^*LMgl>H7wu1jY==c1K>72rcMCOEI1Bm%sDZcyRcD zzyDwU7kv2fN4)jkyZnuR|9`@N^`HMgxVYGU;T`vd>ILT#-`0Ciz!PFhc2!vd+Jw<> zu5?7n9BTtoq&aWb^}ISeCs;%9j?H$584P{bAY(+=6}=6-y1GWhNbem@*P?+UE2-+5 zAQeO3(`+|LnKHqq(AQ|76(~)-fshMaFaUAna>wwSwWE{ zFvs*DEtj6ZIOWl&k0^9bR_0u9|HP^-X znqrC#j{#>5c{Ld$w}F`Kzs`A@rlBYuWtnEyj>H)-ZA)HF60f3=>0ySzk-F8zzed%V5FuTzgA5n;~MP@RrIL8rRd81%pVkFO_Td@{;|&XWI`TEq2rJyePl`lzR!z@! zU30Xosa{%kVoMo4FNT))|HAux|HI!!WfjNW6tk6`RaYEc7p>m}cX#*3gS)%CyF+ky z2o8+}Xxu$PgS)$1Xx!aBIGp~@`30v(UDRET(PP)DwfCCynZ_1gAybRxopb*JZuhQk z#QxEvU6EY>b4y%Af`fp$dJOfymhaOns8UB7F=}h~jq;_?VL9B!|nxF}5kKeiWV( zqw$3;d>#c#_{U!YuVZpQb|YE=d*~yhWW6EL`w$}$Rm+fi4{Rya%%U@cbJd+rDfzw< zhL~tekJj#8@8D1G6$6Na0t;BNyZ_Iz2n~6-$bIN#7dTc@R$=pmKdX;XZ1E@3MkT+# zyL))~3mKG@aY1;I9brACgx%C^6S9QN^#_MM4#t%j0vE%T#(7(`U5$bZr1U<>{!X$Y z#2~lqw}4H=!?1_3GNu9zqC^U^;=iPk4}T^4Qm8IQ`mp@FR)ND=-16sl>`$5Yi!@V` zhLccA#$$q?z9DF^WK@)80e`ZoTJRTOqGQ@q)rFt|56&dUFz!WE zPa7wE*0esSVdbmu6$*rN!(+HTwhPEHhedax9=|_Sj8YL{7O%ePcfDxF;VTk zIrM;{G93(y=0ssQqrR`GG**me%zjq(c0WLNGblFaGzQE`q3XLlU^JE*xSUE~f41+L zX5DC?QD7T7@P67^A!Ot#^3O}=?@ueBwN!VT)647h3tbVinsQ_*+Y0?IO@jRXKqKOJ z6Z&u&dX`b>Vab|(GtFMSEG&bAggfECuO)U3yXJhHjg!5Y_OOU(&;MekP*|?H5cpU2 z@0!yRXSSzXC_mKK)hS4<*3I_um&yhAvRDF@d|?~zOjG2y>o7Ek%FE@!^ zy@l# z!j!4)t67{q97s`S2VYg(tR0qu+HtGUe2{8Re2$X@{1Bee&!k4c0`0J*wx1<9aT2Gb zErO*sHkvA{6Ni+9KiWiDV7Hc_NaNMt=mw~6?UtuU*TJ*VJ&F;&zP*Quk{L0qsTtMG zx*@R0fW*s7$t^VhwUS%&z6U3#lf3_QNuG|!UF{UN=1Us=#>Xn;{uhZ`qv@H?U{W*N0}C4M+O~p6E^W+95+5oD%~ooTv5z{ zKhh;?B+?QVdkj~a66{oG!LKsG91>IE7f_-{6q%@P%xoS~HShDOchcPL>Ci}H0|HyV z1)LPtjw>Z0FK`<|Z+CgT zhzfYkhH%fkd&DxW1OsnCXAhAZ`9Zza4IwK7QEzo%!D`BJ|7N|u7U1YoRNk{2T13h1 zmp9;r^~CS3VkYLhGbBsz>8s98N^1@7m9KhAqXf&fxa){X5%a_|N0WyfjnK~eid(Y| z;Ld=LuFc4e%kgEFf67#60&25!%{Ftob=J4#kj zp7D9xM`&0HPp{QJ_hLT6!|S}8R(YQKJn4~!_LujM-{-@QkhB?tFXYH==j+d)v5e_Y z`R$=Ni-$d$87&Lp-!7gFh6Yg16fXQ`^y?_+OHN|8fZ0IJUwTK zdcF{coJ&}~5riy}-YufJ3kSagFNWSE8}WRot1OAgSFda#-!#gVnXGu4WrjZ*8^^Q+ zpm7;C?J8cWTH!*;{-==_a7*vp^G*xqPxD8TEWBoOadnmE%DujSMv5#m>u?;V-iuBK zGNm9mXOu=P&!XUS%tD6b1pOJf6yf-Z|44t|y2j>-i!=yALF?m53ZTaTdRHj)+{22i zXzj!R(Bh*>{|-|e7x^ena|@Y7Cc;90)-QJsSkWhm+xYsC>np&UG5xZ0<$(nj--WhU z{VePAeau3@AP_JfgLKX@?KD=WUK+>CpR885pS4R<13Qs&?sw!*0miQK(A~bDY!kc* zXlVc$(gB-9bOHSEwYm&e-%caf@IyJZhTn|JH7t70EP5p8W}w|=*vaoB&qagsO2}y` zVN{`Kb_meU*FII#*PcUy*_iEI6p}Ch8E{;O7^)q@c-xFbSCZua>61-W&vqQK>e=1j z$tE`HF2G7CVBR>zsRi=Y6Zu#;=XYhyaT?rWBJM3aF+DeK6TSMsoupi0B$l1eAeH4F zI8m`B&ODC<--eq6KXKis9F2~!W=wtWzJtU)PdNvKy*^&LUF~GIn*Isf@!__qaVtv! zS}#GyARsKV=czH!8#r*E$eVAL0PYemLm3eizT$>v!?g8zP5)WG_2Ov!K6iDy;jci7 zBzGp5xgqYNc@g<8;LS&<%~ZE8v~tvE;Qj0LtFzy^lhT&MN>z>T%M)Ar846eccOfw0 zYV&CO30F_8q%P9clAlfzUVS$Z*rHEL0@1phl&ky^cDn+TlxZm~@ep6mJVSJoZ`)xi zPjkg1Z)80XV$XAK4JLMKSp}Cb&6vDc8sn`Y)xp%HCc2a;y_}vhpn=dl@&ZL1y1l!c z1!;Zz&oq{-De;kz(H5;j1^Tip>aXGgdoMc+vV~-FF@5a7tsNtV0`W9EX#fqlqp@?2 zL2jz54_4%B8ze91`iqFuUnBVYchNE&Et*VCn$2ub47EmQTWpdcy&=W7Y6+{X*#9{_ z0wS6c#;7qC{-OQLoG#;CSnz^kou1aM1v~H%X`gulozN1PW->LoSYSPneXt zU-XAf+1=e+))P2NVlO$MPU=J6_f$egrO}#KU8C>}nMzo(lrL;Srefhp$h81jq!SIE zdEzj<3(JSTnQz|(vo4|RNUsZi6Ydzy|J2&|JQB#u_j!-JX(@{1gdFFUb1vDO<7faM zvRF_jk(3gCOmPKj)yE_cS&Fxc;DtIhAhYZO)vtW&#nDu54`{Vm-OB$KAk zPvtYmt9e^5$D#3nlSE~ozXsjGi=x^K1`@ojQf0IOd&e0a8+_jTy)8Wto{;rPIZbTl0hDuuV=LmigTPg_Ivx^<4|$?7C;rpQ`30VR zL(ecq9W)crQBg=mhHfvrpcRMV8oO5g>h5c=*Ju6>LvH% zA62y^Jer1;P=1r`+@hXBP2JvHkDZelLvF3vHg%pVvgT+HO=N%j`lk$8P_KDguips7*uXI!PYDTPRHteo zmo${M9op0_a`!o6YaY=PX+QMH+Dgd2izZ(AkE&7uJ`_z;DmBeom^@Tw=x-O?75rTM zMw^oB&fH#?gl(>Hf;NEuMt*zp2Q>`>Qqnx22n|3#29g}#|G1&pR%BOuI#!jZv39+t zSDDsNfcTR8=CgO2Knxos7MKH5&a!gYw`I`5Cp!BxGftleOZo2sIQcRHWr?XjG91^i z8ua8vX8F>ac7uXqCpNM;N_qY6NXm}zI0wa{VZ> zGwGGPOT7%&Z-OlQNw4?@+AnS6SzTR$#>O?7%7^R0Pd`sKjrGUT^6+UMJksuOsnRW* z+ROB6pY~-$EZf)juJ?a_9y!1BKx}h;mg>cgWgJ2}Iy(0oKQK)uv7Xzc9$`&27HO<9 zdm@KNnfmnDjfs5KgVec-S*+2qrbj-I-Z|5Jt2HWe*wbJC7*}6U&pUW?P9=C9t1-~Avg0T2>E-oY z4#IK#tZW2$Y+~i~5u|)DQ|`-CmJUY@Dxnt>P)<1A9?r+j>88AGQxE+}CJ%&Wmcdsm za2BYjprpi)D@6Yt&7Uotr=GAaNV(AHs6ecRw)xt4%%p&=8Yc+r>}W3TBcSXc#edYcALQJiNuYlR`~Qp%Yp z;oteKu3i`ppfPPb(h@6VU0b(9s_~6G_lE|}&j_Q+$+#yU6Lp^iIR9l)`~wyBI=}^i zxue;Sx;mVDPhdoHoTB{-CZV@hgVR?LmH8EznX)IiJ}=-t!&9C?-evy#9gP1PzP_K* zWakS-;s2(C@l4(6fq@|xoh8VjcD6;osI7M2H%dKvuHBX2cCrXk+&$0Qh z)|gjI833{S^PO(J=kbR@%ayy^D=Ar(K8tc~Qa9}>@LOh5iaS8CC+G;*87CnkVfhSi zzo%5zezq3xSqzLEGM++mE`AUbWR%B3Cb8A3`PRrS!1>E-LLP zjm(lm%SObJN0f}(gC6W7S8q0T2JY&jK zysa&~a+&+_lfFivOe2yEPnCUmjv0SsA4XUu`gy)q+_D}?a7`32K&icUBZb8~TvJ!n9!C4Qg12{8WF6G)UNOp(z$-Xz!z zRRLHL;WzzwqtVez{LKkHV@gCj0mJbQyLcID>b*Y{hupW~C6U8`YVFNu_|R!vyE4vY z$<>zE0N~hdwEp}qgUiIxG(%Ue^4mrsXos-}0$>>E7Z~4l<$CJzKmQ5~iZq0|H@^i`xLc=7?*IkaL zjjTN*H2*K~!;(MK-P2d840=f$-6Mh-sq79)^GemXZ-C);YL9;8{7mQL-@wjC zvUO7-LP9!3h@La|kW?4gZW7V*aUrGMB!eVQ$}qeF0+;TUJod z$g}4*w!w3e+EIOt$2|c2QQ5q&V3_qym?uzLn`;)@g!3qz4_$u7_*#A3&cf^f8ACCU z2$c>JhG{ZPk%q}se#M(#6Nis^MyJw0M7Txj=$Df-|`i)HRZfh)?J8g@qB$K)wqfT@1!+oq<;j67J{hUSA zv4wm_7k#5$7^y15fI=83v z{sU!|YUv0aG0!*6$DV4)r%a3DRWpBvrk`>~tQm=&G>s2ZJVf9N%FSt#g>D1erq5<4 zfvm=Uv06h19LcL|6G&+luuE-2H0(ToZm4CWMIOa|(k}2sXn$nR7{iBPW71<&`sG}} zPrF=jPb$r5)%Y+lw?tSk@#NSKRT#M1v-joa-hNN6y8s&=qM#+vW~A#pG0<6K)>6^l zX-@E^dLq|J928(1Ug)y`=@;Hxp8Xoi9KnKi`Fj;#3+?}v9A4h6847+{oc^)MJDRKq zHh@((gm*ViS+7sWs34QwX<_kB;L`z#(@f&eqN9sFDkmKz+h*d?(YuRC>kZ7RA>_2N zPHW*@Q`o+5x{Y9_boZ*J`!btvV=QDA+qb95GKn*~EVzT)kRFhCS)jnqtMeHGk!Mx$ z{n#hSR*K??Tzgcutzkac=RVzLDF95RwU7HA{R^!Z7-*{X`IuAjeL1HYd7YrvGP<(u zh#XN-dEQTvL4NOb(C7Hg4qhWs2Usuo_O~0?LU=^)#etnI5TvrTLs8mmRKU}mN*jOh zkXv0r2KL(+T5vcvb2)4NwSS_>?&6B?_wPlf&fQPQa4+sP`34@ju~phAHb(-=39z^m z2>WB4|;w`rySx0rcwO;(JYXVxV8IID%qxzF_so)KF%&;+69@(g_&5t zV1@m|5^f`2&JE57d^K6=m}*=t?(mT>giELp+B76}Vb64_3pMN)=_v~?AIaHd zDAD0>aQsH34xya+%_w241)*knDMb2@|YV1}cqot6h%oTjO=uE zNFKR@7m#7GDAnjg)f>4@N!Hune+Zy$iQ{lV2%?&4UR)9*5bOEMC14yg^?-M8Oe?`% z=qOQTj`ELw?u|gt9WlLG)2eB;jk9w;zMy#EjnMnu2ol?N_1^cc!(F#2H^_ErfjTgm zednSmsJi2Rnj;*Q0&BGvfLOM`2kxT2{j|H9%A%gAIh(vf_P(b$jGi1Ftvl=&MW^B(dc@q+VSbIBw0t9t4siCJ6|3L4QAC8lb;BFCIGpnH!`2JN+71|(Z( z3kx4kU@qgU?Gyg`5Pj|bxM6eAw1hZ`=N`@Ulm%Y=O8AuAa$Q0G)iDQ1-x7k+lq%`vpU|X^2IU zqFm$Zs}5Uts$7K=g3XwsufWQ50VPe907X%i6LYoH(cqFj#_47x%RoXPU7H zP>4!eN~FJJUR~;$2f$R}i~EKgSGVhoJ2D85Ga2=R0a5dMP%f@H?Kwa(&FbE9(yF7t zv#9PojQ6NaZLlEU&ADM_pkodB_T0N9wVBCjU`k-)NC8{2`r2c|Y)`&Y+03C$L(SH4 zzf*MXuTEoy3V5({7RSHt7+$d0yn1UdCKg~gQE5KOsj@uvdVUHzy2Bdw?6Y!NCv$T7 z7L~q;P~9=OCQJhbz7(d-;=Qfpn6=p_yexCRo5U$e{O5aCB&JjYs6-L=dq_S!(3l^* z4r`(#Cdps;^TR7Nh6-ptDKG#xxgOV%O>j2G?|nynAk!Dcl5>8)x3zog6j|UET$Qu4 z+n?a5llvSS6T!U$9oA*tt`IG{lf6H%wG5%B<)FghF74+lrs~U;G{J>>#S9NusWEohb`0J0SmRc&!!VUga z4uFIkCno+F4Yu>~BTDe|jexB4Rrr58cI96I|C5^Y2@920AT^GClBW9J1B9rZoTpXIPuc(z=$;B#iJurY z7A0=()zr?_y}l|&xW`WDA*&NsQetONaz%2DVmw)8Y0!53#wBH8L;*)E1-;U2j#@E4 zyx}#KB(SAO7I41Y#1AcJRAgXE5ll-q#`iLY|G2EMBkL4}@ESYw1i8~;(=e%cUwjjT z@^%`(;i}t@z6g!iQv)IrkVD|f1aIp5qUn5WPl24tBvI-=OWWce^dXMsc+S)@4$Y`) zMm0{PeskFr{Azi_Yu+V<0IX>2dy5JEwE8@2=h zgLW9!1C@x^4Xt)UOe9}c3Pk#|INcdHL$#C$Sh95Fl@jKfXg{QYef%27lu7ailqSb$ zj**uFl~jE&KM_rC`LahWD=@iFKi~V6>|4iMGN5AsFP*CF0%M$TbFFiteW^1u{^lZs z6TDARj)LP2=FVi9{+0aY^_^>z^s*ky2D(9EPhOL2&m%~Yt(&^i;P&GOb$#3+k}(Mh z)NZu@)yJ3b$G-x<)X?${30#r61n|=|<{7hE37c%+}>y0W@nqNpXIFFe7M;%D~4z6iDM~aY{EUU z%S*}2x@J*rn}u5|sIPaT4_B8_rv{g4OC?7aL;u}O16|kd_sev+YBs6`>MijGA2&2B zmR}OrpmZ_ino^tW0p3bR8NI5!g}_2b1=jtXG+~AkR(r~t2WNHKav5L3 zCf?gpZ}=aW7OXoy3?V+uV7}A-yymlKg^d`M z)Rvg8_Db$Sp7d8yDSb%x;iR@-2UpcOJzJ>vy|1fX{PBiDSIk2US%Y~PHnalbgI^!J z=Pt5pQZ62jCJt>Lo19v#CSV*vHDsTUNKbN4z8;5!1#A` zOws|>%Xu&46ep#@Hr|e+wbL$zlr6w6&N2Xt9i9wm2%*$q+bG^M@}_O)_Bxp}KGW-k zoLe4W1#i78`%g2+{vOYaWswSFy>0G8OV7~37)+U?+-zr1p!jz)8~5xLkLeEQo}ted z)=wHSF+EnF_XgI?Y3q_CnhAB|Zoe_SnI232d~-#~Hn05p9~#0GGv>`+m+bJs-D7v_ zktk&UK+>)|?)P|4m%N)5KDsEGI9iLt*wBjaCy#EIPFJ^KA}?RA0?#CxFVD>#BsF-R zwtrOs=bj1DM`XfBx37_xxXFElUk|oiJ?=3(pT0G3a+t)eY^@#KKScxN^oaIby~0); zfT&xYWx<~F7gESe?A$!=V6eKMJ>S3sg)3+`jLL`Ez_0p7xjB!;XD7b`$g9jIon%8l zjqs)Gw}NKNLz-_ugtt09clQt={*iD&?np{*y$-YF#nX|>C4`&NxDv1LKf54LoEF&M zSrVdV(Ta*h(Bdx2reDd>ktm_D5)^wGWf#KBQup%=B=Sl?QZPQ8^Mdyqa?$@th! zx5RyV15nI=dfyDwh%v(n>(VS~l`1@vdJ6n1y{u6OHXCg#M3FdQv;jZ<@%tYJ;ugcC zRKeoZ*}b%?Ne~@2j_>;03o5qoW#dW8Nt~4{u7-w934qew!LQ$D5#&nnEfE9+ypL01 zT!jj?Ab!I?DX6~QK2aZ*x!jAqhYr?!kcxVGf-Pj^;^rmKL3F3ZRp^BKME+NvAnK;o zR4u8Dz89QV_RG~cym}R^fsJGE+L2Kl4PJuAcGsy_&2w{%9a_ZU*1G3z`6e|L78dok zjn*?V{Ab3cYa}uFRwJwZV0-h+VmNR3LUT^O zqwQ&yvl^OK0wtlNojw2a^^Lya$ddyaJR7<=Ix6cs1V~a(T~ptCms0m<*VXOCRY32{ zKU&x1Suo9z!(afnMS!OiTc!qtr%VW}#IS1HKECH73%qaPjJI(7My`Z~Yt?r!6!*R% z)XdWYsnTUjXGyeaE0c2{RMbVm2Nf#n3O#hvp#x&mE`NrH!7R8F4r~|)!OQ_tiQ5@& zCXx{o{Y5wU#j+{7oG|Wp%pqC(OGnmG;rM+^%R&w?6h0qr$Oh-2Fy?lpubJ?_r-lr@J_o;0<*~aT4 zbWDr1r0d4ipD$sh%{HE7E7nagtELdM0O4?lLS^g5rPJyh|1qvDU}mgul&Or^El;IW zzzR_$lqn_h>mt?5Q%k3DFK|N`==(WjF6Mw4pz34FpN|_tE3U@c z);@@a=B$Nm0($&mD1k;p%xGaCE%6ew#+Y5jiF)k}Ub0!NgWx@0>2^8U(b?6;F)Bc~ zNE5|3M**rL%UxM1rxbZX*x)X!$$FXz+tO~D++eS(LuENLG4m;z69xHJ7|n0ZL6X2` z2&ApmSVO)5RAgSRK|FLE^LdLLc#hWb6kEe>RjrlY&Gm*Rrg*wMl&lQHO)(HJwbSnj zZR^CdSdvmpO2>$qvOA?g8cit?Dr!{8tHuz3pQ9kVyt-ozdMb~TNpEc)*5X3DyqxEs zSvjG|zUq`o9tLTJG-G5N7#QZ|vy&Qy5)?QlFxp`M{i~X8OdM;hU z=LYLQ?|Nw|59%-P!gca?1~XMz=$0ca9`rPFc*VA7X;N&3EML_uSJrj+hAOGznx2L| z@2j0IMWC~q`)wE7NNkfehp!sJ;j`Nq8q!JM|Dxw8W|6;vw`+P>52I>`F5M)Dfo|!^ z5!P{Ko?jf9Qr*Sr?TLNSuGv2rq~p_8`KlgET*E8v8^78QAsU0=IrV+Bv<=)7nFkH~CrdVdYiybYThYdH^FKFXg6K=qm65Ev+%u5}5or4@bSGhLc!`)N9bVn&Q9Ze;%H4wB8 zR%nX*Sgd=?$eu(8Cf6+m{6oqtLQBW=!>buT{EP2kC*j>q171#k z?zhbJIB7iW*i2+rB~}+#X{?7o<)v{#Wb0<`R8~iqB=bSiZ5eE2Mr`f8g%yY9|E&QX zmxfpQJJvex;h_G*ZNRvzq%W5l=?r+!x|_gY0f4zR9N;H`$tMotTB(Ds{bBxa=NFFd zknkp(d=aV{H|ah4{D6;$IMhe?VLYT$Ke1r@6y9epBD-P2U0zy+*ZVuJ`PRgErkE+& zg*YiLnkQTkX94ysKxNkW+qm1bhkl{Jip-TzU6W>wG}UVHM)-g7asz@scG#JyLGaTG zS_Glnh5E4zwU5wSUQaemmt6I|yRFL!y6WmE z*br`q$vXk2FBV|+1jCortS&=MxyHpw7F*`t?-{Y;_bE{D zN`ss7%%12GRy=RS) zH_B~rE!5m>9Nb}8MuT|_je>?80%Sds*)}_5Sc%Z>ViTBb=J?v3t&pFhNnzo1u=4Z;c~}`DGH7gup~*Cd0XUr5ho5^ z(nW%9kKQ_;qswQ6F_7H8E{x&SFt4m_&^A3IX0btoDWy2*kJ}=zKKoi$R`KUK+4(O6 zwo?*=LLU>T$9r`Tm4*^Owm!3;8__E=k|l9Rvg*HIE0@W`h2=ajQMthks5Wq|Q;^(; zQ@FYfpWIL!6(iB!@mVcI$G3-eT`(u}_Vb_&IZS$R?ws$34(wrV=H$)!MDK+c;8feM ztgi0gmG_u-XG};s<*^f)u;nMP!E)xUG;ZH}L?VVjzVcu&>|d=u2Y!oR!BZtfBWz(G z{AXc~^&U`_DXGxKY?Oa4_~p}2`8)VUXZt7aNu;sqa2I2Mt<6$Imj6-sxR_5lHi=`w z51aE>amZmwR%_1r$iPor`1cmrh7GhZ`+}j!zNsl1>7aidmi0EKkCis-kOSCd$*J3~ zM)D?P&K#LCDJ?{Igk$oUl?sv*Z&4@6rG$g!qzbD02t$|+;TSU#pw0#Aa+alebz*-c zU}Z>bs4gMuhyT&~iKTBJ!QE{CbzF{FF%~z`_IGnNrU3Dkodo*WM9uf+4WBxsf?UI= zD$LDVHViQI>UN2mEme^=lfO9n4$+d|OBhOk!5*8YV{G;JTVv@S5mR;oj{LZ2cedw= zdeZ+PSYx-egR|?{TK_X}N=cd6n+{;F!XB4AU>?=I771N=65+2&p)PoP5SQLAvU;fG zTxuag(6;MycNWL&ZOU_L*$nmektZ~{d0Eu;AVNP;dahllJdWgK+O;&-EZ;$bk6yx| zFRWBQScI>9o%q~(IwprA3rM#NY!L!IFeA$(KE`u~;NV-dc05EocRd7FsBJ@nJOLBx z4uwVV#W;=|+eGoSlyi{Ogg{iy={@hOKTT|=+}$OP-;+moPhrqVh5G?MAI} z9Gjg%Va{A@YaI@bSGV^o8d=RnH45WJCBFn$E$<;z3(A?Uj~`uAU!L{Jh=$^(ReT=~ zxysAS<7}{4q^VfSaW)y7o4Hr?iT=wQ@)&JcEP_4B~^vdFwuUojtz1kA=Jy*gwpqP8o;%uK6ysBJy{!BL6MXTBBKeS*co0kV*KQorMzn+isP>xn+|Xn80`gd_Swu%q zx`|_}r>{drIaninzCBS{3iaNOjPcS;+zGZuy^@d@O5C)1%OcPsb|^raSVmK8sLFG< zikQw&sm3HJt!)4Yg~#PT5Z!^*0Te2bq`49J^HwW;s!U5z4C<_C$2b1 zV@o+yJ&Y|xFXN+vNikF0Y<$wYnmX1+T4zjWE!gte@T+#RfjYIu#cJmwoH@qEE`DD9 zBPt?RoSEN6C4T(w@yrN2<70r!va=#H8{n2eSOh6i!UsfN6lu@ZdpO0e@GTR+Gn}QUhT(etu2rb;#XSl=}}o=__%DC8ExPTNxmuB|K4co{EA`426Z5J zx5HD@3R!smuF^$VoUon4T#zcCRbP5@Ab-pcFQ;AcpB?Kcc!JP1x4O@3iuFo@&J=4_ z+g1}i=;25UQXd?KcWzp+sE#j`EPx9&uw%2ODUacOAD45e>eGtn-0gHI*NO@u#B!;j zNwE0N3iZWP&%CM3F3b?RwG3Kn*t8ml&BEfBLF^4`alwtbrlj|+ukPF;XkM4d0)@Bg z{9ogx2WsQ_zXKrU_h)%nC2Yhc@SrQOS(}(r6rZGqM&8}fAeP+k3|i$}m+Z^)M!2v| zM4uU_WEl};ij_JKZANIjWbPo2X>eLLY+vVOCoZ>1q?+#Di#|l}xd-?z!y0@100$_^ zWG9Tb<2M{F;O*cotg(+AK$*?*?JD@rP|;34VeV%)S%8N{m&U6-c<3F{rE^H$;e5^q!Q??ObG`KRGS#_{wwW7yD>ZW-l{wt zI_0IrcBP}`q^s4w@z`}PX>?tgMNrbV#zEBDf43NGlaot^DUR+(8PcrutD@J(W5~rK zs_R@B&fpdKHE?_=&Rn?2PS8ZDe0^=@a3@SACy(TAN#x~|mtPpRbXmkFT1d!BnCx!% z0FTpi%7gvP4cP0#j6!slz28NVEjJC9Nap@&n%|kPhU;$J6EIe;BC_{(3!L-ld$#Sj zq}^4rCOHX{EQ%2zRcRws%A7*N<>IB8waYsKDM_VSRiVAUnG5dJeokzCBT#wz7e!`{ zBKUbrpRRM%`S4`$HWU1u-YG1&?;QM(W0N@l_S9i=04}df0IoCOA#`PTsmdb)mI{S+ z%Q4B|LiKNBcR{I?Jsb1AG$Fzl0!?_M18b^y#E>A?J_cRR+-juUg&%0gqh4!_%;rpL zlGswZ)wZkJgtGET*k<8GkoKxY^f&`u;aNh>PaUx_en_8B-Zs15;J`ecL=|9fS5Z%N z1cI)Kr--4P^N6NWXU(&6bN!}?qifN(h|i4RNPhr8G%;=ZMjWtU8Yg|G%j6;6>luJh z{V*Qmv%;1h8%@1Enx*wX8frS5MNWvbDF^;Xy4LpC-rUE<<*9{X5GxUI7>bl3yN!t_ zImDbmslSBDm-+R+Pi={dTi%XPEr1AhDRah#cj>1U!ku{n+UylX{^{V8!ikY7PZvhs z*ED&wTTy{??sRFsi|+}e-{es9xUxz7M|cz;)vx4+XV2ubSOT+Lvo-n52~p?;)lPMZ zmwt&yu7Bc{$G4-B)Zp>W>L4J#ynjl($3NFa$QJwlRzLwD7Np&BeidO~tilJz9KM-7 z32v?FN8w4X5!JZxykqj1gxS}n0DxaQ-d4OnVFaE@g#BOWXYxPQr>PuWs*COPcL7#v zT<4_-0$mh(X>NRkYML|*WpYTN!E~p(_P?1RJMTN zX*9>Jj%+2JV-|`ws3xCvkG~JK*%h4s{%$mHEUmHB>HD0VDEz-?^_U7~?|=%K>_Z{ z`1a7OG-y9~Wiu~`HRFRsFzX9aZS56T)7O3O2qyLr<_zDeROs>QV8{wwnfwMgr=SmPe$|Q(?oTv%#-4Jnt%>` zsgx`8**6C=K~JjUeir#(74klVMtej0N?MbnDJZv`XU#e2BLvf2ls_%7a_sHaw54m( z^Sq@SGE{602V7bc*f6pOlmcw8yG?^_V*R~&mNyLPW;FDOdK56kWrFV+d5;c9PR%^x zTT(ZRuL{C(MrUc(iO_p*^R;%3yZ7tIQ_DMQ2+E*Hf+kK|L#&3@Qt>Ze#9fqLlSd+E zz3}{g`#^=RLCC*_7Zn>s@tidFq}Xd=%pcobS2w0t%-oSgZyV(zr4Pnsm|aC)3EfK3 zDLGx$j(&RMKK$t+Q4!exy?VDi-^P~n(&5}Z+lJO*B<2YozP*7aCXg!HlkaAl<}J0D z!M3}j_07#=m;YD>KKRkDM0PK`NOlDaZ@9{%q5|&k^6wT*0{RzasVVlTsZMB3qrymi zlV_Vzj*gB>e-G*D4r1cR=BRxmAhbi__+geIsl zSn%iHKHsrIdO#Fk)}!f-z>k&u4+N3-m6@m81N%+?BS&uT$8Oim_wka~tIx#GJD$~( zC-2Wo9^b~b*7z;SfWWWJOnMx^ni%PH)AU4?N^JbJMc1Y1_DG_3>2-)f>$G*Eq_R7$ zs4#32Tiv~K8b;&gyL?vl#2&ymNB>0f^{ixq{lu7qIBnc}v*V1KSn}F70xjy`zM#~I z^X+`(GorTH_j&S zOt9)mEyn8963i%YbAz8%L|!nonnWu_7kF{4q_Pl=Tm|!r#1oCv8k*YrHm6ZlNV|qE zFHzO9wzIPK2Ji#}U*c3m{D&b8Z?!kIoie;C57+ZI8~?y~G28`B_Zn$;_>kt*jp!v@ zdnUCkvlP;9$HE)Pe;U2>0-Ij!KL2<2FV~QHzop0YhQQF;ri=b{_#6i_cWK8JB0J76j{h8^F)#g*7YmA0w8r9r8OsmAO?s`XbUJ6{zH zTlTENt->y7M_OJx2N+7Fan^oWC4eXJI_K1o#5P1}(m4NE)iJ$Cq2^P0q*e-QJhgt= z$!2waYE~FrnvK-C6@X2H%|EBId$B}H!o8ZRtGMd z8o0UCzckJ-Hg>izh0(|aE&aWra`6LfpKqVt^FD6fjfwNv^YE&i9e|C$z=Lw3b7{s| z?4#~p+>niE|H%r$T~ROB7YnJgmDT9YRob~1(hhsR4xxb&vd_5uk6pU^7rqf0=h1pn z@5}S+(+Bq?w%M$9FG+5Ss|Wb#pv!EYTDkh1vI@OPd1<@_XG7N(xkv7xnLX=f1MQ;u zjCQ>*3Wj@4ONl+cJ+G%g(kM%whX;#*3)fFk4wnCvJrQ~|U@#eqOu8!sTP%JsT_Mr6 z47fT|Z)l}n)M7D>lB>yh=-vR3F_Pq?Q^G~w8-kUSA9zLD3h+wbZW|IuHJ)NcK3I}M zVjJ9PQwY5OG4(CxnB;sj!2V$!6eLv#7;WI^;VN$u-=5g0JfB|2jd=j$HR?I(5;;!WX=AYFn=+V` zWRo+{MHyqk7@K$`@r#&JX#uSvBu;aOM3coCdzCuGd7V4Yc=-!gkE-L>AFpUWcZW20 z5u@{Yc_v;=0&T5ePldFS^Q$X%f&2nh!S2uS5tYr4VI1#l59hr{L2(}RIfR-$9RvTB ze#Xon=cJ6EeueVJ2_d&gc z`6Gj`+&n#p^FMD|*v4Hwy%N+h*0MYHpMTuNx+^Ouu+bh~&?TxeSo{0uKU9-UOIrlp z-X*qX33NY#$nHIZFNJbRDW)UTc1mySE_)W71rg z05>r;kb}cT0oAj;LzVOF6`G{s_&6(1HXaj@ub~LL46SI+d@s(&5ex6pg?q1Yu~o+= z$HdUh`BRvz^Bol>PbK)74Wgd}C`T8Q>di+V#v~61Cd-BevS+HLCir(GLYl>`!w-YR z9@n7_+KsiRt^_M(&56OMt$?em5hYlO$5gGMQvrQErVAFWbft6&%q{HT+HaSpF@LIj zw9317q{xG$*3N~g+bVE`lz{68zgVA2MX{HJx@gX1J*BfLpjW{+IwCLj-7mL%pNA&z zSNIlf{x;dOOuWLKmNphC6(|mu7q_Pe_K;~JM>99K@8cYlaW09w2ZV_Al=E=|`~E=~ zeEWWNW6Qp`y9=^W5!t!l$JwO%9=w@UhGCa%5ofK29q_!!*vQt}eDK|4=;Qz=$_8>u z$}wl(Mp#!(Sr333Ok_@AdP7Ufhsd+Nj;dlLZ2fFY|AXcW!=hI2&LKuSgYNIez7K;a&~gHagO4V zq2rw9$W^{k#u!S|CYbY&ch5X5kttGjy_7)zXO$_Pn%wrbRgm zZI66DJ3n1UZJAYX9o?~t(Cw!c0WzkJ{wgW0!Jdw%lt!YF_6(SO9EcosIS2Q?fKh#g zpN6^q-`mU2A6Y@&9bAB}#glxxWFa@AZjvu(z>cg9=Uz!=M5f~Xb3i2Sq`y9?oS(2v zF^idPg9f^;$~+|1u;Q_Mz$tw;TsFh2p|}!A;JNoz-20EyZH?nl7Y+MvmO#EzM%>8x zy6@-?-iW2$WaUyVMC9RasM=V)GnO)vlSg`&AAF19c(&5hAf<+lEww#0hfq96BbW6D zAb(2@$&Z^^=L0gBCPNd^CzD5hjV&5n4Mzw0kV5ikPeSXfq8C5_Wk?aU2=-2F5;GYD z0b%rG=laamAVHhqqCI#Dlz+7wl|x5=87qzur=!>fhoz%7-+qze*c17P`iyP%SQp{l zo-2MO&LeembBhLt)B{BAax`p7?)o~&u5Co#ut>WeetwvWuKS7yY5WSFOgrLs+WX%X y#8KGuOwr;>^uOyS8@N{D|Nm|c;{JbbKM{T5Z<$otC)NIg{N$vRC2Pb@L;nv_xn2DL literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_images/_notebooks_dynamic-shapes_14_1.png b/docs/v1.2.0/_images/_notebooks_dynamic-shapes_14_1.png new file mode 100644 index 0000000000000000000000000000000000000000..90cc8518bb7ede389ab06eb5998593a3d1f90e63 GIT binary patch literal 99817 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

=jI=6RzF9!Oi>keF2=nRnL_|J0F^qWhq6uqAE*j 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

sYowpbQ^5o07~=1mQsv27N8sf)$|f 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

Zg)6uIO}&*<%Fzv5Ix)N4l^w&=QH$b zMQGOaO42OmD6Pq*V4sZE87{RWx(+eY#18kD-0ck)uET4E8(KCQ>}CaJHRX-j0sUu> zd8m7w1u-Z@7PwG~+wXoC87!wSAJWb%LcYNDiY`VD^qk$aLfI9kXC3EzbAIW#=K0lg z-U^DNVV_{<{OAXNM0;_`^lHnV54?Zxb?(0XI^X&BH+kp1Z&GF%PhURca=m8v!%w+$ z+%tRqP5ww}o|T|{V5(xGh%b0d^IVBJ8OOU{O#ei#zE zFw0UVnHkc?T!0K|9_9htCYGqT79|8xCKp+6EkoC#6(BV}O0<*=Lkf=*D)9q^aD*U; zTBO2!eJm#?g4EcxXF5xaS|yp(HN!BF7a3WuQA*&9!FortS+i>zHti#xJbc94Z@-DP zj^*A0Q7C*2oS&akO(#5k{*s|-*lwFK$vC29^1e&&QCV7u4c&k-18vh_ogs{A5ecLn z5W*u>K5o%d=x3H^fI#blXa^z@1von-Yi@9q)g&zlg+K^7(%yVZv31FOYMr4h$6)Y~ z7DLWCqIb9~B~s`tPY*g5%4U z_2z=j!4jtwMiAJW26=nP+1%(E$>TjN7uh>@-7`BbJ8 z)V=8~;? zy$APr@cNs$FklD6@pQ^uX{OVf-EK$z@)1Wt@NZA16nAf--nh%5&e(U~WjZNQ5@ySN ztTFuHvnTvV|M;Ks>ifUTckk`-L4G;7ppDKJLa=}Zryvp{;k{Oc}^x(3M$C*^e~kY7c6B_vUhZZ$`#Ka zJ;nOSgFAPbRyAGUaJaYN;p0dA$)^wb(ZfglZ@=b_`}v)&5)_rDsx^5f$x1<%EAm_; z<@L-|5Jf;KNm))Pvl?QC?F~W%y1u6_3*6wa&J##r9Ope<-zH0{5ZG}JsH323c4=cD z6aFtjS`>ZX;aw`ALY8SpC?(drw7k(ONzJUm20sG1Q&djy0Y7fkT?q7jid?QL$)qar zKKZegO!4L}MslTag}}59m1)jTU-9DA3D!C$lSEA0KiFqFo8nAQ+YP)tJ!QRGv)yc1 zt=B2KJvg#FXHwO;7|=1`ZJL{QU6a%eLo!7qKC2j^+1GP(f1^~0qXX)ik>G*@B?)#^ zO$3h-l5#pv$p$2mztW>F+1WJv4#}_(yk{^eErg(g$#nlq^4MJ7$zDiG@HRN z*+1aGTKZ;*B1<%HC?-7x7l)eb;-%u8l9Kizkk5q@hz(9 z3?T&dV!^S_D6X#PhJ--P@R+{m|~zIwrIHf7iBxV&0_ z?d|sSb-KBvn&#BglCsXp%Z#E>=qz=LF@<5Fq9QL!X0ru#zQ8+0-(8`zln`9xV^nzC zBaoDNPSdu;5Ku~wetn0Mnyycp!w_Q{2jp3blyMgC1JN0>a!M3BbzdT+SuUW3B>ISz zsYsEfxupv+aYTb3ZNHjKXAHeTYeiL6*uDp)$+W~cOQ|)nEE$@Xh@@>>v`Xm_L)Y{9 zr=N0gc*qx@e!^n8z9$yv+sY>z%zdNbS

%hodFQnR3n>$4 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

cz}Yh- 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 ZgwkVKN0Ioik|;6JadkfLM0B{6^=~%3%Q^r6 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_18_1.png b/docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_18_1.png new file mode 100644 index 0000000000000000000000000000000000000000..45a206ae1c504be3f214f3efb28dda864f571d6b GIT binary patch literal 72163 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 KMNUMnLSTZx*F>=Z literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_18_2.png b/docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_18_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ae7a6c8850bfbdfc5cb465aec90266796738310b GIT binary patch literal 95321 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 JmyolsUq>tc;mI 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≧mo*a!jT1&K*VVw_=pUj^7I2BfG)u#&SDr8O?5RtwdITtt|ao3&tzGWHm< zFZI%bbi0N@PI-DrZ)uj^{4Ck>8h)uwZ_2Z$4Yx0~m~x8upW5V^wE>$&Myr+59~PvE zX7|oroL^mIs@r2Y+`xIr^U4&d>I%H21?i=1TUsJ3^H`J6V3IV50y-l2nD)*2p!s)k zuXyK!=N^G7S0=Zh2y_$DUBv}dM5`?Yx){-SBhH>ZOWJC&u(&{fbB(#d33_e87)>Dw z#yh;$Y+6f^Wo(=2V62Pf(}Kg3BO#H1$ikW$luGg9NCsz?0;=ikuL#W9l!r7@P0lQBv93XlO}9L8N6YF8Jo!(O#rXAQ2*w+E!QFq z>Kd1@x=w;@Rh7+Z-d1JKMQN-UigJYZ_Cj&Rx$!X>BM*qojx=6WpjQ4xd;f*4$py)H z+*=fh?|90-lsPlGPix6&5bpldTK!HB`A|}`?XhcU@(XG z1+1K)BlA4;^bz)KTjT{-A7E*I4xI+E&N@fC)4IsM3hi%;1U&HP5<;y0llT4|zz*;I z$$0)0u;a7#QUgL%pw(P*HPcl=$?AHUq`VV)gD5LEgN*7*Ko=SP)^VWFnwqM5UzzE~ zwpf(l5UeYir63f-uCR!kc%KSzE0tnhY_bOE>bgcWVNLlb2G*FXN+OM8BfPJkFp9_p z2%wp$(^}7cpLvkod$(Z=$NKU*S6s7?84*jD`dJ$f5*hXM1>rGzq}$oW)c~0HK`^2vvDKq7#%3J_dMSBZ1PD zH78n6y{?dU(9d`YwFIh|{%SqzeG;`%Re~5@=1i00Tu#dvbed3PBTgTFik=_QNxRH1 zZRg8hdmG}RpwDBUc$~GBJ~!`QVrTaTT2m>%_ur4;yhZu4PIG3A;w#>GCy5y`90YUc z>gqDjJpE2KPaoryDM-{oT2mc#k}|j0V`F2DOSQi(5_q}y{zb*KYy8UQlkPmeT!p!!`uumLYkxqAy#)ySnvD?X`nkh)GlK<_^C z?;(iw^bo8_NyQa3ECG#=`g<)l#b-KA zk`l|1IjY=<&4@(bK&nbCGt+Gzxc>+@+_)Rn5eh%z#NlO*Jb4(0vl8T$jI}8y;mG$XaEA-B|8_pq*v@BZvm_8oc2Px z*yZVm53y-B*e>(rD;s13&&m}o&K(^IZINN0Y^y7^{4~{#011eP?!bgCe%i-Q2T%cu|Xj*@ry(bM;ewIA3YT-5us+z zTqyNMdx{K=HkvHY@V3O+l3`)l@QOV>VX$_F-~You#<-kenL**%vwMNf72!{R=g*L~ zWqrMm*?*7>Pwp%or6{fCGavg1qv0B(EF;Tu2E!3~o>Pe8=<(Am?bt)25|TQS@Y162 z-wFwM?~ljNGa~YPz+J#;5!vOvKPe)+fHRl4_Z`4H0Azmm7eU8(sN`eaKRekt1@Gi z8E`8E%lKU-+IH)Esz>@u+%wVF7>RiANK6v4ATV8hK@X*{WloYB?taD1cvqsd zVS0LoYp&mcmz{`%rJV~bENmkiwU6PaMm%(Rw)XLw;}Gna*-{aMY2(-zU%?5Lc&h(YthO2;Mpiq zC!neo7lk8MS`K^_m9?f8@8XuK_J&sqg9C9aOP5>>bDNv&+C9a!*WW}cj@IH{KKj_x zNO7DaBh3e%9a8ubk7AElZr{x4&5roBlMd5S+|db1S6dK#GQ?9BmizB}kQ2{7&0x40 z3Z0aeEYB%jNvGXmFdDJ3zRB9!CWFC{!_S=HQtfYy1Vp3Vg623DRu!K(9|8;p42 zbyqTL9LJBHz_?&(Q97aD-(cI~0xPR)Y;J6lwlucVpLiiL303Wa)P$G?Z%b5>A$ZCN zsKz8n1F8Bb!h~u`0TCq8`NyLWZ9sC=#l*>p^{5tBffjO`;=4V%sjzL^4z?|BV}7Q~ zNjrr+bCy)E(U%sh?RiQa#@)$RSzbQFwbxxiF|~({wr1#`#3>U>$g427N(sv==Q#fC zA!fQsh{14G}Yipc8_3R~w{>W&)YJjEvv)? zS1~>fF{F+s@bxq6R%0-!<^4(u6{=toAu$@Mfid2CQ3M%GX45k>Tyx`IMwpesx2h=+gHbo!SsNvq&qvq z`uYl}6rbmu-W+jY$0FNW9m+iC_{j}ciZUQMrAfWe>vlj{y4^NeRxmv?#meet?dF>o zIj#)u#H}iD$(D3WhZRrhsw~oRpH-@tNZkYc27OJd)e6;sZ8>(lwd{rWA<=HTi^THQwV5jB^z+t5j1EY&-!_UwhDDSyGO!_ZwWC29OFu8e zPKY7d-jxuTIZ_uE+F4tx{3FEL$2rQ((rO8bP7oy|sYG9cz)F{%XvUI=2O + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+ + +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/_Device.html b/docs/v1.2.0/_modules/torch_tensorrt/_Device.html new file mode 100644 index 0000000000..5b5708f480 --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/_Device.html @@ -0,0 +1,781 @@ + + + + + + + + + + + + torch_tensorrt._Device — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt._Device

+import torch
+
+from torch_tensorrt import _enums
+from torch_tensorrt import logging
+from torch_tensorrt import _C
+
+import warnings
+
+
+
[docs]class Device(object): + """ + Defines a device that can be used to specify target devices for engines + + Attributes: + device_type (torch_tensorrt.DeviceType): Target device type (GPU or DLA). Set implicitly based on if dla_core is specified. + gpu_id (int): Device ID for target GPU + dla_core (int): Core ID for target DLA core + allow_gpu_fallback (bool): Whether falling back to GPU if DLA cannot support an op should be allowed + """ + + device_type = None #: (torch_tensorrt.DeviceType): Target device type (GPU or DLA). Set implicitly based on if dla_core is specified. + gpu_id = -1 #: (int) Device ID for target GPU + dla_core = -1 #: (int) Core ID for target DLA core + allow_gpu_fallback = False #: (bool) Whether falling back to GPU if DLA cannot support an op should be allowed + +
[docs] def __init__(self, *args, **kwargs): + """__init__ Method for torch_tensorrt.Device + + Device accepts one of a few construction patterns + + Args: + spec (str): String with device spec e.g. "dla:0" for dla, core_id 0 + + Keyword Arguments: + gpu_id (int): ID of target GPU (will get overrided if dla_core is specified to the GPU managing DLA). If specified, no positional arguments should be provided + dla_core (int): ID of target DLA core. If specified, no positional arguments should be provided. + allow_gpu_fallback (bool): Allow TensorRT to schedule operations on GPU if they are not supported on DLA (ignored if device type is not DLA) + + Examples: + - Device("gpu:1") + - Device("cuda:1") + - Device("dla:0", allow_gpu_fallback=True) + - Device(gpu_id=0, dla_core=0, allow_gpu_fallback=True) + - Device(dla_core=0, allow_gpu_fallback=True) + - Device(gpu_id=1) + """ + if len(args) == 1: + if not isinstance(args[0], str): + raise TypeError( + "When specifying Device through positional argument, argument must be str" + ) + else: + (self.device_type, id) = Device._parse_device_str(args[0]) + if self.device_type == _enums.DeviceType.GPU: + self.gpu_id = id + else: + self.dla_core = id + self.gpu_id = 0 + logging.log( + logging.Level.Warning, + "Setting GPU id to 0 for device because device 0 manages DLA on Xavier", + ) + + elif len(args) == 0: + if "gpu_id" in kwargs or "dla_core" in kwargs: + if "dla_core" in kwargs: + self.device_type = _enums.DeviceType.DLA + self.dla_core = kwargs["dla_core"] + if "gpu_id" in kwargs: + self.gpu_id = kwargs["gpu_id"] + else: + self.gpu_id = 0 + logging.log( + logging.Level.Warning, + "Setting GPU id to 0 for device because device 0 manages DLA on Xavier", + ) + else: + self.gpu_id = kwargs["gpu_id"] + self.device_type = _enums.DeviceType.GPU + else: + raise ValueError( + "Either gpu_id or dla_core or both must be defined if no string with device specs is provided as an arg" + ) + + else: + raise ValueError( + "Unexpected number of positional arguments for class Device \n Found {} arguments, expected either zero or a single positional arguments".format( + len(args) + ) + ) + + if "allow_gpu_fallback" in kwargs: + if not isinstance(kwargs["allow_gpu_fallback"], bool): + raise TypeError("allow_gpu_fallback must be a bool") + self.allow_gpu_fallback = kwargs["allow_gpu_fallback"]
+ + def __str__(self) -> str: + return ( + "Device(type={}, gpu_id={}".format(self.device_type, self.gpu_id) + ")" + if self.device_type == _enums.DeviceType.GPU + else ", dla_core={}, allow_gpu_fallback={}".format( + self.dla_core, self.allow_gpu_fallback + ) + ) + + def _to_internal(self) -> _C.Device: + internal_dev = _C.Device() + internal_dev.device_type = self.device_type + internal_dev.gpu_id = self.gpu_id + internal_dev.dla_core = self.dla_core + internal_dev.allow_gpu_fallback = self.allow_gpu_fallback + return internal_dev + + @classmethod + def _from_torch_device(cls, torch_dev: torch.device): + if torch_dev.type != "cuda": + raise ValueError('Torch Device specs must have type "cuda"') + gpu_id = torch_dev.index + return cls(gpu_id=gpu_id) + + @classmethod + def _current_device(cls): + try: + dev = _C._get_current_device() + except RuntimeError: + logging.log(logging.Level.Error, "Cannot get current device") + return None + return cls(gpu_id=dev.gpu_id) + + @staticmethod + def _parse_device_str(s): + s = s.lower() + spec = s.split(":") + if spec[0] == "gpu" or spec[0] == "cuda": + return (_enums.DeviceType.GPU, int(spec[1])) + elif spec[0] == "dla": + return (_enums.DeviceType.DLA, int(spec[1]))
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/_Input.html b/docs/v1.2.0/_modules/torch_tensorrt/_Input.html new file mode 100644 index 0000000000..6d60bb5295 --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/_Input.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + torch_tensorrt._Input — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt._Input

+from enum import Enum
+from typing import List, Dict, Any
+
+import torch
+
+from torch_tensorrt import _enums
+from torch_tensorrt import _C
+
+
+
[docs]class Input(object): + """ + Defines an input to a module in terms of expected shape, data type and tensor format. + + Attributes: + shape_mode (torch_tensorrt.Input._ShapeMode): Is input statically or dynamically shaped + shape (Tuple or Dict): Either a single Tuple or a dict of tuples defining the input shape. + Static shaped inputs will have a single tuple. Dynamic inputs will have a dict of the form + ``{ + "min_shape": Tuple, + "opt_shape": Tuple, + "max_shape": Tuple + }`` + dtype (torch_tensorrt.dtype): The expected data type of the input tensor (default: torch_tensorrt.dtype.float32) + format (torch_tensorrt.TensorFormat): The expected format of the input tensor (default: torch_tensorrt.TensorFormat.NCHW) + """ + + class _ShapeMode(Enum): + STATIC = 0 + DYNAMIC = 1 + + shape_mode = None #: (torch_tensorrt.Input._ShapeMode): Is input statically or dynamically shaped + shape = None #: (Tuple or Dict): Either a single Tuple or a dict of tuples defining the input shape. Static shaped inputs will have a single tuple. Dynamic inputs will have a dict of the form ``{ "min_shape": Tuple, "opt_shape": Tuple, "max_shape": Tuple }`` + dtype = ( + _enums.dtype.unknown + ) #: The expected data type of the input tensor (default: torch_tensorrt.dtype.float32) + _explicit_set_dtype = False + format = ( + _enums.TensorFormat.contiguous + ) #: The expected format of the input tensor (default: torch_tensorrt.TensorFormat.NCHW) + +
[docs] def __init__(self, *args, **kwargs): + """__init__ Method for torch_tensorrt.Input + + Input accepts one of a few construction patterns + + Args: + shape (Tuple or List, optional): Static shape of input tensor + + Keyword Arguments: + shape (Tuple or List, optional): Static shape of input tensor + min_shape (Tuple or List, optional): Min size of input tensor's shape range + Note: All three of min_shape, opt_shape, max_shape must be provided, there must be no positional arguments, shape must not be defined and implictly this sets Input's shape_mode to DYNAMIC + opt_shape (Tuple or List, optional): Opt size of input tensor's shape range + Note: All three of min_shape, opt_shape, max_shape must be provided, there must be no positional arguments, shape must not be defined and implictly this sets Input's shape_mode to DYNAMIC + max_shape (Tuple or List, optional): Max size of input tensor's shape range + Note: All three of min_shape, opt_shape, max_shape must be provided, there must be no positional arguments, shape must not be defined and implictly this sets Input's shape_mode to DYNAMIC + dtype (torch.dtype or torch_tensorrt.dtype): Expected data type for input tensor (default: torch_tensorrt.dtype.float32) + format (torch.memory_format or torch_tensorrt.TensorFormat): The expected format of the input tensor (default: torch_tensorrt.TensorFormat.NCHW) + + Examples: + - Input([1,3,32,32], dtype=torch.float32, format=torch.channel_last) + - Input(shape=(1,3,32,32), dtype=torch_tensorrt.dtype.int32, format=torch_tensorrt.TensorFormat.NCHW) + - Input(min_shape=(1,3,32,32), opt_shape=[2,3,32,32], max_shape=(3,3,32,32)) #Implicitly dtype=torch_tensorrt.dtype.float32, format=torch_tensorrt.TensorFormat.NCHW + """ + if len(args) == 1: + if not Input._supported_input_size_type(args[0]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(args[0])) + ) + if any(k in kwargs for k in ["min_shape", "opt_shape", "max_shape"]): + raise ValueError( + "Found that both shape (as a positional argument), and one or more of min_shape, opt_shape, max_shape were specified\nclass Input expects that only either shape or all three of min_shape, opt_shape, max_shape are defined" + ) + self.shape = tuple(args[0]) + self.shape_mode = Input._ShapeMode.STATIC + + elif len(args) == 0: + if not ("shape" in kwargs) and not ( + all(k in kwargs for k in ["min_shape", "opt_shape", "max_shape"]) + ): + raise ValueError( + "Missing required arguments for class Input\nEither shape or all three of min_shape, opt_shape, max_shape must be defined" + ) + elif ("shape" in kwargs) and all( + k in kwargs for k in ["min_shape", "opt_shape", "max_shape"] + ): + raise ValueError( + "Found that both shape, and one or more of min_shape, opt_shape, max_shape were specified\nclass Input expects that only either shape or all three of min_shape, opt_shape, max_shape are defined" + ) + + if "shape" in kwargs: + if not Input._supported_input_size_type(kwargs["shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(kwargs["shape"])) + ) + self.shape = tuple(kwargs["shape"]) + self.shape_mode = Input._ShapeMode.STATIC + else: + if not Input._supported_input_size_type(kwargs["min_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(kwargs["min_shape"])) + + " for min_shape" + ) + if not Input._supported_input_size_type(kwargs["opt_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(kwargs["opt_shape"])) + + " for opt_shape" + ) + if not Input._supported_input_size_type(kwargs["max_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(kwargs["max_shape"])) + + " for max_shape" + ) + + self.shape = { + "min_shape": tuple(kwargs["min_shape"]), + "opt_shape": tuple(kwargs["opt_shape"]), + "max_shape": tuple(kwargs["max_shape"]), + } + self.shape_mode = Input._ShapeMode.DYNAMIC + + else: + raise ValueError( + "Unexpected number of positional arguments for class Input \n Found {} arguments, expected either zero or a single positional arguments".format( + len(args) + ) + ) + + if "dtype" in kwargs: + self.dtype = Input._parse_dtype(kwargs["dtype"]) + self._explicit_set_dtype = True + + if "format" in kwargs: + self.format = Input._parse_format(kwargs["format"])
+ + def __str__(self) -> str: + if self.shape_mode == Input._ShapeMode.STATIC: + return "Input(shape={}, dtype={}, format={})".format( + self.shape, str(self.dtype), str(self.format) + ) + elif self.shape_mode == Input._ShapeMode.DYNAMIC: + return "Input(min_shape={}, opt_shape={}, max_shape={}, dtype={}, format={})".format( + self.shape["min_shape"], + self.shape["opt_shape"], + self.shape["max_shape"], + str(self.dtype), + str(self.format), + ) + else: + raise RuntimeError("Unknown input shape mode") + + def _to_internal(self) -> _C.Input: + internal_in = _C.Input() + if self.shape_mode == Input._ShapeMode.DYNAMIC: + if not Input._supported_input_size_type(self.shape["min_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(self.shape["min_shape"])) + + " for min_shape" + ) + else: + internal_in.min = self.shape["min_shape"] + + if not Input._supported_input_size_type(self.shape["opt_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(self.shape["opt_shape"])) + + " for opt_shape" + ) + else: + internal_in.opt = self.shape["opt_shape"] + + if not Input._supported_input_size_type(self.shape["max_shape"]): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(self.shape["max_shape"])) + + " for max_shape" + ) + else: + internal_in.max = self.shape["max_shape"] + internal_in.input_is_dynamic = True + else: + if not Input._supported_input_size_type(self.shape): + raise TypeError( + "Input shape specifications for inputs are required to be a List, tuple or torch.Size, found type: " + + str(type(self.shape)) + + " for shape" + ) + else: + internal_in.opt = self.shape + internal_in.input_is_dynamic = False + + if self.dtype != _enums.dtype.unknown: + self._explicit_set_dtype = True + else: + self._explicit_set_dtype = False + + internal_in.dtype = Input._parse_dtype(self.dtype) + internal_in._explicit_set_dtype = self._explicit_set_dtype + internal_in.format = Input._parse_format(self.format) + return internal_in + + @staticmethod + def _supported_input_size_type(input_size: Any) -> bool: + if isinstance(input_size, torch.Size): + return True + elif isinstance(input_size, tuple): + return True + elif isinstance(input_size, list): + return True + else: + return False + + @staticmethod + def _parse_dtype(dtype: Any) -> _enums.dtype: + if isinstance(dtype, torch.dtype): + if dtype == torch.int32: + return _enums.dtype.int32 + elif dtype == torch.half: + return _enums.dtype.half + elif dtype == torch.float: + return _enums.dtype.float + elif dtype == torch.bool: + return _enums.dtype.bool + else: + raise TypeError( + "Provided an unsupported data type as an input data type (support: bool, int32, half, float), got: " + + str(dtype) + ) + + elif isinstance(dtype, _enums.dtype): + return dtype + + else: + raise TypeError( + "Input data type needs to be specified with a torch.dtype or a torch_tensorrt.dtype, got: " + + str(type(dtype)) + ) + + @staticmethod + def _parse_format(format: Any) -> _enums.TensorFormat: + if isinstance(format, torch.memory_format): + if format == torch.contiguous_format: + return _enums.TensorFormat.contiguous + elif format == torch.channels_last: + return _enums.TensorFormat.channels_last + else: + raise ValueError( + "Provided an unsupported tensor format (support: NHCW/contiguous_format, NHWC/channel_last)" + ) + + elif isinstance(format, _enums.TensorFormat): + return format + + else: + raise TypeError( + "Tensor format needs to be specified with either torch.memory_format or torch_tensorrt.TensorFormat" + ) + + @classmethod + def _from_tensor(cls, t: torch.Tensor): + if not any( + [ + t.is_contiguous(memory_format=torch.contiguous_format), + t.is_contiguous(memory_format=torch.channels_last), + ] + ): + raise ValueError( + "Tensor does not have a supported contiguous memory format, supported formats are contiguous or channel_last" + ) + frmt = ( + torch.contiguous_format + if t.is_contiguous(memory_format=torch.contiguous_format) + else torch.channels_last + ) + return cls(shape=t.shape, dtype=t.dtype, format=frmt)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/_compile.html b/docs/v1.2.0/_modules/torch_tensorrt/_compile.html new file mode 100644 index 0000000000..dfe66cbf3c --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/_compile.html @@ -0,0 +1,856 @@ + + + + + + + + + + + + torch_tensorrt._compile — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt._compile

+from typing import List, Dict, Any
+from torch_tensorrt import _enums
+import torch_tensorrt.ts
+from torch_tensorrt import logging
+import torch
+import torch.fx
+from enum import Enum
+
+import torch_tensorrt.fx
+from torch_tensorrt.fx.utils import LowerPrecision
+
+
+class _IRType(Enum):
+    """Enum to set the minimum required logging level to print a message to stdout"""
+
+    ts = 0
+    fx = 1
+
+
+class _ModuleType(Enum):
+    """Enum to set the minimum required logging level to print a message to stdout"""
+
+    nn = 0
+    ts = 1
+    fx = 2
+
+
+def _parse_module_type(module: Any) -> _ModuleType:
+    if any(
+        isinstance(module, t)
+        for t in [torch.jit.ScriptModule, torch.jit.ScriptFunction]
+    ):
+        return _ModuleType.ts
+    elif isinstance(module, torch.fx.GraphModule):
+        return _ModuleType.fx
+    elif isinstance(module, torch.nn.Module):
+        return _ModuleType.nn
+    else:
+        raise RuntimeError("Module is an unknown format")
+
+
+def _get_target_ir(module_type: _ModuleType, ir: str) -> _IRType:
+    module_is_tsable = any([module_type == t for t in [_ModuleType.nn, _ModuleType.ts]])
+    module_is_fxable = any([module_type == t for t in [_ModuleType.nn, _ModuleType.fx]])
+
+    ir_targets_torchscript = any([ir == opt for opt in ["torchscript", "ts"]])
+    ir_targets_fx = ir == "fx"
+
+    if module_is_tsable and ir_targets_torchscript:
+        return _IRType.ts
+    elif module_is_fxable and ir_targets_fx:
+        return _IRType.fx
+    else:
+        if ir == "default":
+            # Options are listed in order of preference
+            if module_is_tsable:
+                logging.log(
+                    logging.Level.Info, "ir was set to default, using TorchScript as ir"
+                )
+                return _IRType.ts
+            elif module_is_fxable:
+                raise ValueError(
+                    "Was given a torch.fx.GraphModule, fx is not currently supported by Torch-TensorRT"
+                )
+                # logging.log(logging.Level.Info, "ir was set to default, using TorchScript as fx")
+                # return _IRType.fx
+            else:
+                raise ValueError("Module was provided with in an unsupported format")
+        else:
+            raise ValueError("Unknown ir was requested")
+
+
+
[docs]def compile( + module: Any, + ir="default", + inputs=[], + enabled_precisions=set([_enums.dtype.float]), + **kwargs, +): + """Compile a PyTorch module for NVIDIA GPUs using TensorRT + + Takes a existing PyTorch module and a set of settings to configure the compiler + and using the path specified in ``ir`` lower and compile the module to TensorRT + returning a PyTorch Module back + + Converts specifically the forward method of a Module + + Arguments: + module (Union(torch.nn.Module,torch.jit.ScriptModule): Source module + + Keyword Arguments: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + ir (str): The requested strategy to compile. (Options: default - Let Torch-TensorRT decide, ts - TorchScript with scripting path) + **kwargs: Additional settings for the specific requested strategy (See submodules for more info) + + Returns: + torch.nn.Module: Compiled Module, when run it will execute via TensorRT + """ + module_type = _parse_module_type(module) + target_ir = _get_target_ir(module_type, ir) + if target_ir == _IRType.ts: + ts_mod = module + if module_type == _ModuleType.nn: + logging.log( + logging.Level.Info, + "Module was provided as a torch.nn.Module, trying to script the module with torch.jit.script. In the event of a failure please preconvert your module to TorchScript", + ) + ts_mod = torch.jit.script(module) + return torch_tensorrt.ts.compile( + ts_mod, inputs=inputs, enabled_precisions=enabled_precisions, **kwargs + ) + elif target_ir == _IRType.fx: + if ( + torch.float16 in enabled_precisions + or torch_tensorrt.dtype.half in enabled_precisions + ): + lower_precision = LowerPrecision.FP16 + elif ( + torch.float32 in enabled_precisions + or torch_tensorrt.dtype.float in enabled_precisions + ): + lower_precision = LowerPrecision.FP32 + else: + raise ValueError(f"Precision {enabled_precisions} not supported on FX") + + return torch_tensorrt.fx.compile( + module, + inputs, + lower_precision=lower_precision, + max_batch_size=inputs[0].size(0), + explicit_batch_dimension=True, + dynamic_batch=False, + ) + else: + raise RuntimeError("Module is an unknown format or the ir requested is unknown")
+ + +
[docs]def convert_method_to_trt_engine( + module: Any, + method_name: str, + ir="default", + inputs=[], + enabled_precisions=set([_enums.dtype.float]), + **kwargs, +): + """Convert a TorchScript module method to a serialized TensorRT engine + + Converts a specified method of a module to a serialized TensorRT engine given a dictionary of conversion settings + + Arguments: + module (Union(torch.nn.Module,torch.jit.ScriptModule): Source module + + Keyword Arguments: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + ir (str): The requested strategy to compile. (Options: default - Let Torch-TensorRT decide, ts - TorchScript with scripting path) + **kwargs: Additional settings for the specific requested strategy (See submodules for more info) + Returns: + bytes: Serialized TensorRT engine, can either be saved to a file or deserialized via TensorRT APIs + """ + module_type = _parse_module_type(module) + target_ir = _get_target_ir(module_type, ir) + if target_ir == _IRType.ts: + ts_mod = module + if module_type == _ModuleType.nn: + logging.log( + logging.Level.Info, + "Module was provided as a torch.nn.Module, trying to script the module with torch.jit.script. In the event of a failure please preconvert your module to TorchScript", + ) + ts_mod = torch.jit.script(module) + return torch_tensorrt.ts.convert_method_to_trt_engine( + ts_mod, + method_name, + inputs=inputs, + enabled_precisions=enabled_precisions, + **kwargs, + ) + elif target_ir == _IRType.fx: + raise RuntimeError("fx is currently not supported") + else: + raise RuntimeError("Module is an unknown format or the ir requested is unknown")
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/_util.html b/docs/v1.2.0/_modules/torch_tensorrt/_util.html new file mode 100644 index 0000000000..0098653b0f --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/_util.html @@ -0,0 +1,676 @@ + + + + + + + + + + + + torch_tensorrt._util — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt._util

+from torch_tensorrt import __version__
+from torch_tensorrt import _C
+
+import torch
+
+
+
[docs]def dump_build_info(): + """Prints build information about the torch_tensorrt distribution to stdout""" + print(get_build_info())
+ + +
[docs]def get_build_info() -> str: + """Returns a string containing the build information of torch_tensorrt distribution + + Returns: + str: String containing the build information for torch_tensorrt distribution + """ + build_info = _C.get_build_info() + build_info = ( + "Torch-TensorRT Version: " + + str(__version__) + + "\n" + + "Using PyTorch Version: " + + str(torch.__version__) + + "\n" + + build_info + ) + return build_info
+ + +
[docs]def set_device(gpu_id): + _C.set_device(gpu_id)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/fx/fx2trt.html b/docs/v1.2.0/_modules/torch_tensorrt/fx/fx2trt.html new file mode 100644 index 0000000000..99468887bf --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/fx/fx2trt.html @@ -0,0 +1,1019 @@ + + + + + + + + + + + + torch_tensorrt.fx.fx2trt — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.fx.fx2trt

+import logging
+import warnings
+from datetime import datetime
+from typing import Any, Callable, Dict, List, NamedTuple, Optional, Sequence
+
+import numpy
+
+# @manual=//deeplearning/trt/python:py_tensorrt
+import tensorrt as trt
+import torch
+import torch.fx
+from torch.fx.node import _get_qualified_name
+from torch.fx.passes.shape_prop import TensorMetadata
+
+from .converter_registry import CONVERTERS
+from .input_tensor_spec import InputTensorSpec
+from .observer import Observer
+from .utils import get_dynamic_dims, LowerPrecision, torch_dtype_to_trt
+
+_LOGGER: logging.Logger = logging.getLogger(__name__)
+
+TRT_INTERPRETER_CALL_PRE_OBSERVER: Observer[
+    Callable[[torch.fx.GraphModule], None]
+] = Observer("TRT_INTERPRETER_CALL_PRE_OBSERVER")
+
+
+
[docs]class TRTInterpreterResult(NamedTuple): + engine: Any + input_names: Sequence[str] + output_names: Sequence[str] + serialized_cache: bytearray
+ + +
[docs]class TRTInterpreter(torch.fx.Interpreter): + def __init__( + self, + module: torch.fx.GraphModule, + input_specs: List[InputTensorSpec], + explicit_batch_dimension: bool = False, + explicit_precision: bool = False, + logger_level=None, + ): + super().__init__(module) + + self.logger = trt.Logger(logger_level or trt.Logger.WARNING) + self.builder = trt.Builder(self.logger) + + flag = 0 + if explicit_batch_dimension: + EXPLICIT_BATCH = 1 << (int)( + trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH + ) + flag |= EXPLICIT_BATCH + + if explicit_precision: + EXPLICIT_PRECISION = 1 << (int)( + trt.NetworkDefinitionCreationFlag.EXPLICIT_PRECISION + ) + flag |= EXPLICIT_PRECISION + self.network = self.builder.create_network(flag) + + missing_ops = self.validate_conversion() + if missing_ops: + warnings.warn( + "Interpretation will fail due to missing operations \n" + + "\n".join(f"{i}" for i in missing_ops) + ) + + self.optimization_profiles: Optional[List] = None + self.input_specs = input_specs + self.input_specs_iter = 0 + self.validate_input_specs() + self._cur_node_name: Optional[str] = None + self._input_names: List[str] = [] + self._output_names: List[str] = [] + self._itensor_to_tensor_meta: Dict[ + trt.tensorrt.ITensor, TensorMetadata + ] = dict() + + def validate_input_specs(self): + for shape, _, _, shape_ranges, has_batch_dim in self.input_specs: + if not self.network.has_implicit_batch_dimension: + assert ( + has_batch_dim + ), "It's required to specify batch dimension when it's explicit in TensorRT network." + + dynamic_dims = get_dynamic_dims(shape) + if len(dynamic_dims): + assert not self.network.has_implicit_batch_dimension, ( + "Can't have dynamic dim when " + f"batch dim is implicit, got {shape}." + ) + assert len( + shape_ranges + ), "shape_ranges must be provided when shape has dynamic dim." + + if self.optimization_profiles: + assert len(shape_ranges) == len(self.optimization_profiles), ( + "Number of optimization " + f"profiles {len(self.optimization_profiles)} doesn't match with the number of shape_range" + f" {len(shape_ranges)} provided." + ) + else: + self.optimization_profiles = [ + self.builder.create_optimization_profile() + for _ in range(len(shape_ranges)) + ] + + for shape_range in shape_ranges: + assert ( + len(shape_range) == 3 + ), f"Expect three elements in shape_range, got {len(shape_range)}" + assert all(len(s) == len(shape) for s in shape_range), ( + "Expect elements in shape_range" + f" {shape_range} have the same number of dimension as the provided shape {len(shape)}" + ) + + for i in range(len(shape)): + if i in dynamic_dims: + assert all( + shape_range[j][i] <= shape_range[j + 1][i] + for j in range(2) + ), ( + "Expect dynamic dim" + f" {i} to have incremental value for shapes in shape_range {shape_range}." + ) + else: + assert all(s[i] == shape[i] for s in shape_range), ( + f"Expect non dynamic dim {i} to be the same" + f" for all shapes in shape_range {shape_range}." + ) + else: + assert ( + len(shape_ranges) == 0 + ), "shape_ranges are provided for input that doesn't have dynamic dim." + + def validate_conversion(self): + missing_converter = set() + + for node in self.module.graph.nodes: + if node.op == "call_function" and not CONVERTERS.get(node.target): + missing_converter.add(f"{node.op} {_get_qualified_name(node.target)}") + elif node.op == "call_method" and not CONVERTERS.get(node.target): + missing_converter.add(f"{node.op} torch.Tensor.{node.target}") + elif node.op == "call_module": + submod = self.fetch_attr(node.target) + submod_type = getattr(submod, "_base_class_origin", type(submod)) + if not CONVERTERS.get(submod_type): + missing_converter.add(f"{node.op} {torch.typename(submod_type)}") + + return missing_converter + + def run( + self, + max_batch_size=64, + max_workspace_size=1 << 25, + lower_precision=LowerPrecision.FP16, + sparse_weights=False, + force_fp32_output=False, + strict_type_constraints=False, + algorithm_selector=None, + timing_cache=None, + profiling_verbosity=None, + tactic_sources=None, + ) -> TRTInterpreterResult: + """ + Build TensorRT engine with some configs. + Args: + max_batch_size: set accordingly for maximum batch size you will use. + max_workspace_size: set to the maximum size we can afford for temporary buffer + lower_precision: the precision model layers are running on (TensorRT will choose the best perforamnce precision). + sparse_weights: allow the builder to examine weights and use optimized functions when weights have suitable sparsity + force_fp32_output: force output to be fp32 + strict_type_constraints: Usually we should set it to False unless we want to control the precision of certain layer for numeric reasons. + algorithm_selector: set up algorithm selection for certain layer + timing_cache: enable timing cache for TensorRT + profiling_verbosity: TensorRT logging level + Return: + TRTInterpreterResult + """ + TRT_INTERPRETER_CALL_PRE_OBSERVER.observe(self.module) + + # For float outputs, we set their dtype to fp16 only if lower_precision == LowerPrecision.FP16 and + # force_fp32_output=False. + self.output_fp16 = ( + not force_fp32_output and lower_precision == LowerPrecision.FP16 + ) + + if ( + lower_precision == LowerPrecision.INT8 + and not self.builder.platform_has_fast_int8 + ): + raise RuntimeError("Current platform doesn't support fast native int8!") + + if ( + lower_precision == LowerPrecision.FP16 + and not self.builder.platform_has_fast_fp16 + ): + warnings.warn("Current platform doesn't support fast native fp16!") + + self.input_specs_iter = 0 + run_module_start_time = datetime.now() + super().run() + _LOGGER.info( + f"Run Module elapsed time: {datetime.now() - run_module_start_time}" + ) + build_engine_start_time = datetime.now() + + self.builder.max_batch_size = max_batch_size + builder_config = self.builder.create_builder_config() + builder_config.max_workspace_size = max_workspace_size + + cache = None + if timing_cache: + cache_file = numpy.array(timing_cache) + cache = builder_config.create_timing_cache(cache_file.tobytes()) + else: + cache = builder_config.create_timing_cache(b"") + builder_config.set_timing_cache(cache, False) + + if trt.__version__ >= "8.2": + builder_config.profiling_verbosity = ( + profiling_verbosity + if profiling_verbosity + else trt.ProfilingVerbosity.LAYER_NAMES_ONLY + ) + if lower_precision == LowerPrecision.FP16: + builder_config.set_flag(trt.BuilderFlag.FP16) + + if lower_precision == LowerPrecision.INT8: + builder_config.set_flag(trt.BuilderFlag.INT8) + + if sparse_weights: + builder_config.set_flag(trt.BuilderFlag.SPARSE_WEIGHTS) + + if strict_type_constraints: + builder_config.set_flag(trt.BuilderFlag.STRICT_TYPES) + + if self.optimization_profiles: + for optimization_profile in self.optimization_profiles: + builder_config.add_optimization_profile(optimization_profile) + + if algorithm_selector: + builder_config.set_flag(trt.BuilderFlag.DISABLE_TIMING_CACHE) + builder_config.algorithm_selector = algorithm_selector + + if tactic_sources is not None: + builder_config.set_tactic_sources(tactic_sources=tactic_sources) + + engine = self.builder.build_engine(self.network, builder_config) + assert engine + + serialized_cache = ( + bytearray(cache.serialize()) + if builder_config.get_timing_cache() + else bytearray() + ) + _LOGGER.info( + f"Build TRT engine elapsed time: {datetime.now() - build_engine_start_time}" + ) + + return TRTInterpreterResult( + engine, self._input_names, self._output_names, serialized_cache + ) + + def run_node(self, n): + self._cur_node_name = str(n) + # add "_itensor_to_tensor_meta" + kwargs = dict(n.kwargs) + kwargs["_itensor_to_tensor_meta"] = self._itensor_to_tensor_meta + n.kwargs = kwargs + + # run the node + trt_node = super().run_node(n) + + # remove "_itensor_to_tensor_meta" + kwargs = dict(n.kwargs) + del kwargs["_itensor_to_tensor_meta"] + n.kwargs = kwargs + + if isinstance(trt_node, trt.tensorrt.ITensor): + self._itensor_to_tensor_meta[trt_node] = n.meta.get("tensor_meta") + + return trt_node + + def placeholder(self, target, args, kwargs): + self._input_names.append(target) + shape, dtype, _, shape_ranges, has_batch_dim = self.input_specs[ + self.input_specs_iter + ] + self.input_specs_iter += 1 + + if self.network.has_implicit_batch_dimension: + if has_batch_dim: + shape = shape[1:] + else: + for i, shape_range in enumerate(shape_ranges): + assert self.optimization_profiles + self.optimization_profiles[i].set_shape(target, *shape_range) + + return self.network.add_input( + name=target, shape=tuple(shape), dtype=torch_dtype_to_trt(dtype) + ) + + def call_module(self, target, args, kwargs): + assert isinstance(target, str) + submod = self.fetch_attr(target) + submod_type = getattr(submod, "_base_class_origin", type(submod)) + converter = CONVERTERS.get(submod_type) + + if not converter: + raise RuntimeError( + f"Conversion of module of type {submod_type} not currently supported!" + ) + + assert self._cur_node_name is not None + return converter(self.network, submod, args, kwargs, self._cur_node_name) + + def call_function(self, target, args, kwargs): + converter = CONVERTERS.get(target) + + if not converter: + raise RuntimeError( + f"Conversion of function {torch.typename(target)} not currently supported!" + ) + + assert self._cur_node_name is not None + return converter(self.network, target, args, kwargs, self._cur_node_name) + + def call_method(self, target, args, kwargs): + assert isinstance(target, str) + converter = CONVERTERS.get(target) + + if not converter: + raise RuntimeError( + f"Conversion of method {target} not currently supported!" + ) + + assert self._cur_node_name is not None + return converter(self.network, target, args, kwargs, self._cur_node_name) + + def output(self, target, args, kwargs): + assert len(args) == 1 + outputs = args[0] if isinstance(args[0], tuple) else (args[0],) + + if not all(isinstance(output, trt.tensorrt.ITensor) for output in outputs): + raise RuntimeError("TensorRT requires all outputs to be Tensor!") + + for i, output in enumerate(outputs): + if any( + op_name in output.name.split("_") + for op_name in ( + "eq", + "gt", + "lt", + "or", + "xor", + "and", + "not", + "ne", + "isinf", + "any", + ) + ): + output_bool = True + else: + output_bool = False + name = f"output{i}" + output.name = name + self.network.mark_output(output) + if output_bool: + output.dtype = trt.bool + elif self.output_fp16 and output.dtype == trt.float32: + output.dtype = trt.float16 + self._output_names.append(name)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/fx/input_tensor_spec.html b/docs/v1.2.0/_modules/torch_tensorrt/fx/input_tensor_spec.html new file mode 100644 index 0000000000..e3abdc42c5 --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/fx/input_tensor_spec.html @@ -0,0 +1,829 @@ + + + + + + + + + + + + torch_tensorrt.fx.input_tensor_spec — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.fx.input_tensor_spec

+from typing import Iterable, List, NamedTuple, Optional, Sequence, Tuple
+
+import torch
+
+from .types import Shape, ShapeRange
+from .utils import get_dynamic_dims
+
+
+def generate_input_specs(inputs, lower_setting, additional_inputs=None):
+    # dynamic_batch is TRT only flag.
+    if (
+        not lower_setting.explicit_batch_dimension
+        or lower_setting.dynamic_batch is False
+    ):
+        return InputTensorSpec.from_tensors(inputs)
+
+    # If we don't have additional inputs, we assume the first dimension
+    # is the dynamic batch dimension. Otherwise, we use the additional
+    # inputs to determine the batch dimension.
+    if additional_inputs is None:
+        return InputTensorSpec.from_tensors_with_dynamic_batch_size(
+            inputs,
+            (
+                0,
+                lower_setting.max_batch_size,
+                lower_setting.max_batch_size,
+            ),
+            lower_setting.opt_profile_replica,
+        )
+    else:
+        batch_dims = []
+
+        for i, j in zip(inputs, additional_inputs):
+            found_batch_dim = False
+
+            for idx, values in enumerate(zip(i.shape, j.shape)):
+                if values[0] != values[1]:
+                    assert (
+                        found_batch_dim is False
+                    ), f"We've already found a batch dim, {i.shape}, {j.shape}."
+                    batch_dims.append(idx)
+                    found_batch_dim = True
+
+            if not found_batch_dim:
+                raise RuntimeError(
+                    f"Failed to find batch dimension because shapes are the same, {i.shape}"
+                )
+
+        return InputTensorSpec.from_tensors_with_dynamic_batch_size(
+            inputs,
+            (
+                0,
+                lower_setting.max_batch_size,
+                lower_setting.max_batch_size,
+            ),
+            lower_setting.opt_profile_replica,
+            batch_dims,
+        )
+
+
+
[docs]class InputTensorSpec(NamedTuple): + """ + This class contains the information of a input tensor. + + shape: shape of the tensor. + + dtype: dtyep of the tensor. + + device: device of the tensor. This is only used to generate inputs to the given model + in order to run shape prop. For TensorRT engine, inputs have to be on cuda device. + + shape_ranges: If dynamic shape is needed (shape has dimensions of -1), then this field + has to be provided (default is empty list). Every shape_range is a tuple of three + tuples ((min_input_shape), (optimized_input_shape), (max_input_shape)). Each shape_range + is used to populate a TensorRT optimization profile. + e.g. If the input shape varies from (1, 224) to (100, 224) and we want to optimize + for (25, 224) because it's the most common input shape, then we set shape_ranges to + ((1, 224), (25, 225), (100, 224)). + + has_batch_dim: Whether the shape includes batch dimension. Batch dimension has to be provided + if the engine want to run with dynamic shape. + """ + + shape: Shape + dtype: torch.dtype + device: torch.device = torch.device("cpu") + shape_ranges: List[ShapeRange] = [] + has_batch_dim: bool = True + + @classmethod + def from_tensor(cls, tensor: torch.Tensor) -> "InputTensorSpec": + """ + Produce an InputTenosrSpec named tuple which contains the + information of the given PyTorch tensor. + + Args: + tensor (torch.Tensor): A PyTorch tensor. + + Returns: + An InputTensorSpec named tuple. + """ + return cls(tensor.shape, tensor.dtype, tensor.device) + + @classmethod + def from_tensors(cls, tensors: Sequence[torch.Tensor]) -> List["InputTensorSpec"]: + """ + Produce a list of InputTenosrSpec named tuples which contain + the information of all the given PyTorch tensors. + + Args: + tensors (Iterable[torch.Tensor]): A list of PyTorch tensors. + + Returns: + A list of InputTensorSpec named tuples. + """ + assert isinstance(tensors, (list, tuple)) + return [cls.from_tensor(t) for t in tensors] + + @classmethod + def from_tensors_with_dynamic_batch_size( + cls, + tensors: Sequence[torch.Tensor], + batch_size_range: Tuple[int, int, int], + opt_profile_replica: int = 1, + batch_dims: Optional[List[int]] = None, + ) -> List["InputTensorSpec"]: + """ + Produce a list of InputTenosrSpec named tuples which would contain + the information of all the given PyTorch tensors. The produced input + tensor specs will treat all tensors' first dimension as batch dimension + and mark them as dynmaic. + + Args: + tensors (Sequence[torch.Tensor]): A list of PyTorch tensors. + batch_size_range (Tuple[int, int, int]): The first integer indicates + the smallest batch size allowed. The second integer indiceates + the batch size that we'll optimize for. The third integer indicates + the largest batch size allowed. + opt_profile_replica (int): If dynamic shape is enabled, each execution + context requires a different optimization profile. This arg determines + how many optimization profile replicas we want to produce. + batch_dims (Optional[List[int]]): The batch dim might not be the leading dim + and allow user to specify the batch dims using this arg. Default we treat + dim 0 as the batch dim. + + Returns: + A list of InputTensorSpec named tuples with dynamic ranges. + """ + if batch_dims is None: + batch_dims = [0] * len(tensors) + + input_specs = [] + batch_size = tensors[0].size(batch_dims[0]) + + for i, tensor in enumerate(tensors): + batch_dim = batch_dims[i] + assert batch_size == tensor.size( + batch_dim + ), f"The {i}th tensor (shape: {tensor.shape}) doesn't have the correct batch size: {batch_size}." + shape = list(tensor.shape) + shape[batch_dim] = -1 + shape_ranges: List[ShapeRange] = [tuple(tuple(shape[0:batch_dim] + [bs] + shape[batch_dim + 1 :]) for bs in batch_size_range)] * opt_profile_replica # type: ignore[list-item] + input_specs.append( + cls(tuple(shape), tensor.dtype, tensor.device, shape_ranges) + ) + + return input_specs + + def to_random_tensor(self): + shape = tuple(self.shape) + if len(get_dynamic_dims(shape)): + shape = tuple(self.shape_ranges[0][1]) + elif not self.has_batch_dim: + shape = (1,) + tuple(shape) + + return torch.randn(shape).to(dtype=self.dtype, device=self.device) + + @staticmethod + def create_inputs_from_specs(input_specs: Iterable["InputTensorSpec"]): + inputs = [] + + for spec in input_specs: + inputs.append(spec.to_random_tensor()) + + return inputs
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/fx/lower.html b/docs/v1.2.0/_modules/torch_tensorrt/fx/lower.html new file mode 100644 index 0000000000..b3ebfbf1cb --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/fx/lower.html @@ -0,0 +1,893 @@ + + + + + + + + + + + + torch_tensorrt.fx.lower — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.fx.lower

+import dataclasses as dc
+import logging
+from typing import Any, Callable, Optional, Sequence
+
+# @manual=//deeplearning/trt/python:py_tensorrt
+import tensorrt as trt
+import torch
+import torch.fx as fx
+import torch.nn as nn
+from torch.fx.passes.splitter_base import SplitResult
+
+from .fx2trt import TRTInterpreter, TRTInterpreterResult
+from .lower_setting import LowerSetting
+from .passes.lower_pass_manager_builder import LowerPassManagerBuilder
+from .passes.pass_utils import decorate_method, PassFunc, validate_inference
+from .tools.timing_cache_utils import TimingCacheManager
+from .tools.trt_splitter import TRTSplitter, TRTSplitterSetting
+
+from .tracer.acc_tracer import acc_tracer
+from .trt_module import TRTModule
+from .utils import LowerPrecision
+
+logger = logging.getLogger(__name__)
+
+Input = Sequence[Any]
+
+
+
[docs]def compile( + module: nn.Module, + input, + max_batch_size: int = 2048, + max_workspace_size=1 << 25, + explicit_batch_dimension=False, + lower_precision=LowerPrecision.FP16, + verbose_log=False, + timing_cache_prefix="", + save_timing_cache=False, + cuda_graph_batch_size=-1, + dynamic_batch=True, +) -> nn.Module: + """ + Takes in original module, input and lowering setting, run lowering workflow to turn module + into lowered module, or so called TRTModule. + + Args: + module: Original module for lowering. + input: Input for module. + max_batch_size: Maximum batch size (must be >= 1 to be set, 0 means not set) + max_workspace_size: Maximum size of workspace given to TensorRT. + explicit_batch_dimension: Use explicit batch dimension in TensorRT if set True, otherwise use implicit batch dimension. + lower_precision: lower_precision config given to TRTModule. + verbose_log: Enable verbose log for TensorRT if set True. + timing_cache_prefix: Timing cache file name for timing cache used by fx2trt. + save_timing_cache: Update timing cache with current timing cache data if set to True. + cuda_graph_batch_size: Cuda graph batch size, default to be -1. + dynamic_batch: batch dimension (dim=0) is dynamic. + Returns: + A torch.nn.Module lowered by TensorRT. + """ + lower_setting = LowerSetting( + max_batch_size=max_batch_size, + max_workspace_size=max_workspace_size, + explicit_batch_dimension=explicit_batch_dimension, + lower_precision=lower_precision, + verbose_log=verbose_log, + timing_cache_prefix=timing_cache_prefix, + save_timing_cache=save_timing_cache, + cuda_graph_batch_size=cuda_graph_batch_size, + dynamic_batch=dynamic_batch, + ) + lowerer = Lowerer.create(lower_setting=lower_setting) + return lowerer(module, input)
+ + +@dc.dataclass +class LowerTrtInterpreter: + lower_setting: LowerSetting + timing_cache_manager: TimingCacheManager + + @classmethod + def create(cls, lower_setting): + timing_cache_manager = TimingCacheManager( + lower_setting.timing_cache_prefix, lower_setting.save_timing_cache + ) + return LowerTrtInterpreter(lower_setting, timing_cache_manager) + + def __call__(self, mod, input, split_name) -> TRTInterpreterResult: + assert self.lower_setting.input_specs, "Can't find input specs for lowering!" + logger.info( + f"split_name={split_name}, input_specs={self.lower_setting.input_specs}" + ) + + # Prepare algorithm selector and timing_cache for TRTInterpreter + algo_selector = None + if self.lower_setting.algo_selector: + algo_selector = self.lower_setting.algo_selector(f"{split_name}.json") + cache_data = None + if self.timing_cache_manager: + try: + cache_data = self.timing_cache_manager.get_timing_cache_trt(split_name) + except Exception as e: + logger.warning(f"Cannot load timing cache for {split_name}: {str(e)}") + cache_data = None + + interpreter = TRTInterpreter( + mod, + input_specs=self.lower_setting.input_specs, + explicit_batch_dimension=self.lower_setting.explicit_batch_dimension, + explicit_precision=self.lower_setting.explicit_precision, + logger_level=trt.Logger.VERBOSE + if self.lower_setting.verbose_log + else trt.Logger.WARNING, + ) + + interp_result: TRTInterpreterResult = interpreter.run( + max_batch_size=self.lower_setting.max_batch_size, + max_workspace_size=self.lower_setting.max_workspace_size, + lower_precision=self.lower_setting.lower_precision, + strict_type_constraints=self.lower_setting.strict_type_constraints, + algorithm_selector=algo_selector, + timing_cache=cache_data, + profiling_verbosity=trt.ProfilingVerbosity.DETAILED + if self.lower_setting.verbose_profile + else trt.ProfilingVerbosity.LAYER_NAMES_ONLY, + tactic_sources=self.lower_setting.tactic_sources, + ) + + # Update timing cache file if needed + timing_cache = interp_result.serialized_cache + if timing_cache and self.timing_cache_manager: + self.timing_cache_manager.update_timing_cache(split_name, timing_cache) + + return interp_result + + +def default_split_function( + model: fx.GraphModule, inputs: Input, lower_setting: LowerSetting +) -> SplitResult: + splitter_setting = TRTSplitterSetting() + splitter_setting.use_implicit_batch_dim = not lower_setting.explicit_batch_dimension + splitter_setting.min_acc_module_size = lower_setting.min_acc_module_size + splitter = TRTSplitter(model, inputs, settings=splitter_setting) + splitter.node_support_preview() + return splitter.generate_split_results() + + +def create_lower_trt_interpreter(lower_setting: LowerSetting) -> LowerTrtInterpreter: + return LowerTrtInterpreter.create(lower_setting) + + +def default_lower_pass( + create_trt_interpreter: Callable[[LowerSetting], LowerTrtInterpreter], +) -> PassFunc: + def lower_pass( + mod: nn.Module, input: Input, lower_setting: LowerSetting, module_name: str + ) -> nn.Module: + """ + Create a module transformation pass which lowers an `fx.GraphModule` into a + `TRTModule` + """ + interpreter = create_trt_interpreter(lower_setting) + interp_res: TRTInterpreterResult = interpreter(mod, input, module_name) + trt_module = TRTModule( + engine=interp_res.engine, + input_names=interp_res.input_names, + output_names=interp_res.output_names, + cuda_graph_batch_size=lower_setting.cuda_graph_batch_size, + ) + return trt_module + + return lower_pass + + +@dc.dataclass(frozen=True) +class Lowerer: + """Lowers a module using fx2trt. + + This is a composable class to facilitate fx2trt. A normal fx2trt process + composes of the following passes to transform an `fx.GraphModule`: + + 1. trace - use torch.fx to trace the module so we can get the graph + representation of the model. + 2. split - the graph module is split into several submodules, + running either via TensorRT, or via regular CUDA. + + For each split that need to run via TRT, the following passes are + invoked: + + 3. `TRTInterpreter` - build the TRT engine for the submodule that + can be supported through `TRTInterpreter`. + 4. Wraps the executable TRT engine into `TRTModule`, which is an `nn.Module`. + 5. The converted submodule is then set back onto the top-level module + + """ + + lower_pass_manager_builder: LowerPassManagerBuilder + + @classmethod + def create( + cls, + lower_setting: LowerSetting, + interpreter_builder: Callable = create_lower_trt_interpreter, + split_func: Callable = default_split_function, + ) -> "Lowerer": + """Instantiate a `Lowerer` instance.""" + + return cls( + lower_pass_manager_builder=LowerPassManagerBuilder( + lower_setting=lower_setting, + trace_func=lambda module, inputs: acc_tracer.trace( + module, + inputs, # type: ignore[arg-type] + ast_rewriter_allow_list=lower_setting.ast_rewriter_allow_list, + leaf_module_list=lower_setting.leaf_module_list, + ), + split_func=split_func, + lower_func=default_lower_pass(interpreter_builder), + ) + ) + + def __call__( + self, + module: nn.Module, + inputs: Input, + additional_inputs: Optional[Input] = None, + ) -> nn.Module: + lower_setting = self.lower_pass_manager_builder.lower_setting + atol = lower_setting.correctness_atol + rtol = lower_setting.correctness_rtol + + @validate_inference(atol=atol, rtol=rtol) + def do_lower(module: nn.Module, inputs: Input) -> nn.Module: + module.eval() + if ( + self.lower_pass_manager_builder.lower_setting.lower_precision + == LowerPrecision.FP16 + ): + module.half() + inputs = tuple( + x.half() if x is not None and x.dtype == torch.float32 else x + for x in inputs + ) + pm = self.lower_pass_manager_builder.build_trt_lower_pipeline( + inputs, additional_inputs + ) + lower_result = pm(module) + return lower_result + + return do_lower(module, inputs) +
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/fx/trt_module.html b/docs/v1.2.0/_modules/torch_tensorrt/fx/trt_module.html new file mode 100644 index 0000000000..05c275a0cb --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/fx/trt_module.html @@ -0,0 +1,883 @@ + + + + + + + + + + + + torch_tensorrt.fx.trt_module — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.fx.trt_module

+from typing import Any, List, Sequence
+
+# @manual=//deeplearning/trt/python:py_tensorrt
+import tensorrt as trt
+import torch
+
+from .utils import torch_dtype_from_trt
+
+
+
[docs]class TRTModule(torch.nn.Module): + def __init__( + self, engine=None, input_names=None, output_names=None, cuda_graph_batch_size=-1 + ): + super(TRTModule, self).__init__() + self._register_state_dict_hook(TRTModule._on_state_dict) + self.engine = engine + self.input_names = input_names + self.output_names = output_names + self.cuda_graph_batch_size = cuda_graph_batch_size + self.initialized = False + + if engine: + self._initialize() + + def _initialize(self): + self.initialized = True + self.context = self.engine.create_execution_context() + + # Indices of inputs/outputs in the trt engine bindings, in the order + # as they are in the original PyTorch model. + self.input_binding_indices_in_order: Sequence[int] = [ + self.engine.get_binding_index(name) for name in self.input_names + ] + self.output_binding_indices_in_order: Sequence[int] = [ + self.engine.get_binding_index(name) for name in self.output_names + ] + primary_input_outputs = set() + primary_input_outputs.update(self.input_binding_indices_in_order) + primary_input_outputs.update(self.output_binding_indices_in_order) + self.hidden_output_binding_indices_in_order: Sequence[int] = [] + self.hidden_output_names: Sequence[str] = [] + for i in range( + self.engine.num_bindings // self.engine.num_optimization_profiles + ): + if i not in primary_input_outputs: + self.hidden_output_binding_indices_in_order.append(i) + self.hidden_output_names.append(self.engine.get_binding_name(i)) + + assert (self.engine.num_bindings // self.engine.num_optimization_profiles) == ( + len(self.input_names) + + len(self.output_names) + + len(self.hidden_output_names) + ) + + self.input_dtypes: Sequence[torch.dtype] = [ + torch_dtype_from_trt(self.engine.get_binding_dtype(idx)) + for idx in self.input_binding_indices_in_order + ] + self.input_shapes: Sequence[Sequence[int]] = [ + tuple(self.engine.get_binding_shape(idx)) + for idx in self.input_binding_indices_in_order + ] + self.output_dtypes: Sequence[torch.dtype] = [ + torch_dtype_from_trt(self.engine.get_binding_dtype(idx)) + for idx in self.output_binding_indices_in_order + ] + self.output_shapes = [ + tuple(self.engine.get_binding_shape(idx)) + if self.engine.has_implicit_batch_dimension + else tuple() + for idx in self.output_binding_indices_in_order + ] + self.hidden_output_dtypes: Sequence[torch.dtype] = [ + torch_dtype_from_trt(self.engine.get_binding_dtype(idx)) + for idx in self.hidden_output_binding_indices_in_order + ] + self.hidden_output_shapes = [ + tuple(self.engine.get_binding_shape(idx)) + if self.engine.has_implicit_batch_dimension + else tuple() + for idx in self.hidden_output_binding_indices_in_order + ] + + def _check_initialized(self): + if not self.initialized: + raise RuntimeError("TRTModule is not initialized.") + + def _on_state_dict(self, state_dict, prefix, local_metadata): + self._check_initialized() + state_dict[prefix + "engine"] = bytearray(self.engine.serialize()) + state_dict[prefix + "input_names"] = self.input_names + state_dict[prefix + "output_names"] = self.output_names + state_dict[prefix + "cuda_graph_batch_size"] = self.cuda_graph_batch_size + + def _load_from_state_dict( + self, + state_dict, + prefix, + local_metadata, + strict, + missing_keys, + unexpected_keys, + error_msgs, + ): + engine_bytes = state_dict[prefix + "engine"] + + logger = trt.Logger() + runtime = trt.Runtime(logger) + self.engine = runtime.deserialize_cuda_engine(engine_bytes) + + self.input_names = state_dict[prefix + "input_names"] + self.output_names = state_dict[prefix + "output_names"] + self._initialize() + + def __getstate__(self): + state = self.__dict__.copy() + state["engine"] = bytearray(self.engine.serialize()) + state.pop("context", None) + return state + + def __setstate__(self, state): + logger = trt.Logger() + runtime = trt.Runtime(logger) + state["engine"] = runtime.deserialize_cuda_engine(state["engine"]) + self.__dict__.update(state) + if self.engine: + self.context = self.engine.create_execution_context() + + def forward(self, *inputs): + with torch.autograd.profiler.record_function("TRTModule:Forward"): + self._check_initialized() + + with torch.autograd.profiler.record_function("TRTModule:ProcessInputs"): + assert len(inputs) == len( + self.input_names + ), f"Wrong number of inputs, expect {len(self.input_names)} get {len(inputs)}." + + # This is only used when the trt engine is using implicit batch dim. + batch_size = inputs[0].shape[0] + contiguous_inputs: List[torch.Tensor] = [i.contiguous() for i in inputs] + bindings: List[Any] = [None] * ( + len(self.input_names) + + len(self.output_names) + + len(self.hidden_output_names) + ) + + for i, input_name in enumerate(self.input_names): + assert inputs[ + i + ].is_cuda, f"{i}th input({input_name}) is not on cuda device." + assert ( + inputs[i].dtype == self.input_dtypes[i] + ), f"Dtype mismatch for {i}th input({input_name}). Expect {self.input_dtypes[i]}, got {inputs[i].dtype}." + + idx = self.input_binding_indices_in_order[i] + bindings[idx] = contiguous_inputs[i].data_ptr() + + if not self.engine.has_implicit_batch_dimension: + self.context.set_binding_shape( + idx, tuple(contiguous_inputs[i].shape) + ) + else: + assert inputs[i].size()[1:] == self.input_shapes[i], ( + f"Shape mismatch for {i}th input({input_name}). " + f"Expect {self.input_shapes[i]}, got {inputs[i].size()[1:]}." + ) + + with torch.autograd.profiler.record_function("TRTModule:ProcessOutputs"): + # create output tensors + outputs: List[torch.Tensor] = [] + + for i, idx in enumerate(self.output_binding_indices_in_order): + if self.engine.has_implicit_batch_dimension: + shape = (batch_size,) + self.output_shapes[i] + else: + shape = tuple(self.context.get_binding_shape(idx)) + + output = torch.empty( # type: ignore[call-overload] + size=shape, + dtype=self.output_dtypes[i], + device=torch.cuda.current_device(), + ) + outputs.append(output) + bindings[idx] = output.data_ptr() + + for i, idx in enumerate(self.hidden_output_binding_indices_in_order): + if self.engine.has_implicit_batch_dimension: + shape = (batch_size,) + self.hidden_output_shapes[i] + else: + shape = tuple(self.context.get_binding_shape(idx)) + + output = torch.empty( # type: ignore[call-overload] + size=shape, + dtype=self.hidden_output_dtypes[i], + device=torch.cuda.current_device(), + ) + bindings[idx] = output.data_ptr() + + with torch.autograd.profiler.record_function("TRTModule:TensorRTRuntime"): + if self.engine.has_implicit_batch_dimension: + self.context.execute_async( + batch_size, bindings, torch.cuda.current_stream().cuda_stream + ) + else: + self.context.execute_async_v2( + bindings, torch.cuda.current_stream().cuda_stream + ) + + if len(outputs) == 1: + return outputs[0] + + return tuple(outputs) + + def enable_profiling(self, profiler: "trt.IProfiler" = None): + """ + Enable TensorRT profiling. After calling this function, TensorRT will report + time spent on each layer in stdout for each forward run. + """ + self._check_initialized() + + if not self.context.profiler: + self.context.profiler = trt.Profiler() if profiler is None else profiler + + def disable_profiling(self): + """ + Disable TensorRT profiling. + """ + self._check_initialized() + + torch.cuda.synchronize() + del self.context + self.context = self.engine.create_execution_context() + + def get_layer_info(self) -> str: + """ + Get layer info of the engine. Only support for TRT > 8.2. + """ + inspector = self.engine.create_engine_inspector() + return inspector.get_engine_information(trt.LayerInformationFormat.JSON)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/logging.html b/docs/v1.2.0/_modules/torch_tensorrt/logging.html new file mode 100644 index 0000000000..ed2e053a7a --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/logging.html @@ -0,0 +1,858 @@ + + + + + + + + + + + + torch_tensorrt.logging — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.logging

+from enum import Enum
+from torch_tensorrt._C import (
+    _get_logging_prefix,
+    _set_logging_prefix,
+    _get_reportable_log_level,
+    _set_reportable_log_level,
+    _get_is_colored_output_on,
+    _set_is_colored_output_on,
+    _log,
+    LogLevel,
+)
+
+
+
[docs]class Level(Enum): + """Enum to set the minimum required logging level to print a message to stdout""" + + InternalError = LogLevel.INTERNAL_ERROR + Error = LogLevel.ERROR + Warning = LogLevel.WARNING + Info = LogLevel.INFO + Debug = LogLevel.DEBUG + Graph = LogLevel.GRAPH + + @staticmethod + def _to_internal_level(external) -> LogLevel: + if external == Level.InternalError: + return LogLevel.INTERNAL_ERROR + if external == Level.Error: + return LogLevel.ERROR + if external == Level.Warning: + return LogLevel.WARNING + if external == Level.Info: + return LogLevel.INFO + if external == Level.Debug: + return LogLevel.DEBUG + if external == Level.Graph: + return LogLevel.GRAPH
+ + +
[docs]def get_logging_prefix() -> str: + """Get the prefix set for logging messages + + Returns: + str: Prefix used for logger + """ + return _get_logging_prefix()
+ + +
[docs]def set_logging_prefix(prefix: str): + """Set the prefix used when logging messages + + Args: + prefix (str): Prefix to use for logging messages + """ + _set_logging_prefix(prefix)
+ + +
[docs]def get_reportable_log_level() -> Level: + """Get the level required for a message to be printed in the log + + Returns: + torch_tensorrt.logging.Level: The enum representing the level required to print + """ + return Level(_get_reportable_log_level())
+ + +
[docs]def set_reportable_log_level(level: Level): + """Set the level required for a message to be printed to the log + + Args: + level (torch_tensorrt.logging.Level): The enum representing the level required to print + """ + _set_reportable_log_level(Level._to_internal_level(level))
+ + +
[docs]def get_is_colored_output_on() -> bool: + """Get if colored output is enabled for logging + + Returns: + bool: If colored output is one + """ + return _get_is_colored_output_on()
+ + +
[docs]def set_is_colored_output_on(colored_output_on: bool): + """Enable or disable color in the log output + + Args: + colored_output_on (bool): If colored output should be enabled or not + """ + _set_is_colored_output_on(colored_output_on)
+ + +
[docs]def log(level: Level, msg: str): + """Add a new message to the log + + Adds a new message to the log at a specified level. The message + will only get printed out if Level > reportable_log_level + + Args: + level (torch_tensorrt.logging.Level): Severity of the message + msg (str): Actual message text + """ + _log(Level._to_internal_level(level), msg) + + InternalError = LogLevel.INTERNAL_ERROR + Error = LogLevel.ERROR + Warning = LogLevel.WARNING + Info = LogLevel.INFO + Debug = LogLevel.DEBUG + Graph = LogLevel.GRAPH
+ + +
[docs]class internal_errors: + """Context-manager to limit displayed log messages to just internal errors + + Example:: + + with torch_tensorrt.logging.internal_errors(): + outputs = model_torchtrt(inputs) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.InternalError) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class errors: + """Context-manager to limit displayed log messages to just errors and above + + Example:: + + with torch_tensorrt.logging.errors(): + outputs = model_torchtrt(inputs) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Error) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class warnings: + """Context-manager to limit displayed log messages to just warnings and above + + Example:: + + with torch_tensorrt.logging.warnings(): + model_trt = torch_tensorrt.compile(model, **spec) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Warning) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class info: + """Context-manager to display all info and greater severity messages + + Example:: + + with torch_tensorrt.logging.info(): + model_trt = torch_tensorrt.compile(model, **spec) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Info) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class debug: + """Context-manager to display full debug information through the logger + + Example:: + + with torch_tensorrt.logging.debug(): + model_trt = torch_tensorrt.compile(model, **spec) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Debug) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+ + +
[docs]class graphs: + """Context-manager to display the results of intermediate lowering passes + as well as full debug information through the logger + + Example:: + + with torch_tensorrt.logging.graphs(): + model_trt = torch_tensorrt.compile(model, **spec) + """ + + def __enter__(self): + self.external_lvl = get_reportable_log_level() + set_reportable_log_level(Level.Graph) + + def __exit__(self, exc_type, exc_value, exc_tb): + set_reportable_log_level(self.external_lvl)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/ptq.html b/docs/v1.2.0/_modules/torch_tensorrt/ptq.html new file mode 100644 index 0000000000..6c5ae50570 --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/ptq.html @@ -0,0 +1,850 @@ + + + + + + + + + + + + torch_tensorrt.ptq — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.ptq

+from typing import List, Dict, Any
+import torch
+import os
+
+from torch_tensorrt import _C
+from torch_tensorrt._version import __version__
+from torch_tensorrt.logging import *
+from types import FunctionType
+from enum import Enum
+
+
+
[docs]class CalibrationAlgo(Enum): + ENTROPY_CALIBRATION = _C.CalibrationAlgo.ENTROPY_CALIBRATION + ENTROPY_CALIBRATION_2 = _C.CalibrationAlgo.ENTROPY_CALIBRATION_2 + LEGACY_CALIBRATION = _C.CalibrationAlgo.LEGACY_CALIBRATION + MINMAX_CALIBRATION = _C.CalibrationAlgo.MINMAX_CALIBRATION
+ + +
[docs]def get_cache_mode_batch(self): + return None
+ + +
[docs]def get_batch_size(self): + return 1
+ + +
[docs]def get_batch(self, names): + if self.current_batch_idx + self.batch_size > len(self.data_loader.dataset): + return None + + batch = next(self.dataset_iterator) + self.current_batch_idx += self.batch_size + inputs_gpu = [] + if isinstance(batch, list): + for example in batch: + inputs_gpu.append(example.to(self.device).data_ptr()) + else: + inputs_gpu.append(batch.to(self.device).data_ptr()) + return inputs_gpu
+ + +
[docs]def read_calibration_cache(self): + if self.cache_file and self.use_cache: + if os.path.exists(self.cache_file): + with open(self.cache_file, "rb") as f: + return f.read() + else: + return b""
+ + +
[docs]def write_calibration_cache(self, cache): + if self.cache_file: + with open(self.cache_file, "wb") as f: + f.write(cache) + else: + return b""
+ + +# deepcopy (which involves pickling) is performed on the compile_spec internally during compilation. +# We register this __reduce__ function for pickler to identity the calibrator object returned by DataLoaderCalibrator during deepcopy. +# This should be the object's local name relative to the module https://docs.python.org/3/library/pickle.html#object.__reduce__ +def __reduce__(self): + return self.__class__.__name__ + + +
[docs]class DataLoaderCalibrator(object): + """ + Constructs a calibrator class in TensorRT and uses pytorch dataloader to load/preproces + data which is passed during calibration. + Args: + dataloader: an instance of pytorch dataloader which iterates through a given dataset. + algo_type: choice of calibration algorithm. + cache_file: path to cache file. + use_cache: flag which enables usage of pre-existing cache. + device: device on which calibration data is copied to. + """ + +
[docs] def __init__(self, **kwargs): + pass
+ + def __new__(cls, *args, **kwargs): + dataloader = args[0] + algo_type = kwargs.get("algo_type", CalibrationAlgo.ENTROPY_CALIBRATION_2) + cache_file = kwargs.get("cache_file", None) + use_cache = kwargs.get("use_cache", False) + device = kwargs.get("device", torch.device("cuda:0")) + + if not isinstance(dataloader, torch.utils.data.DataLoader): + log( + Level.Error, + "Dataloader : {} is not a valid instance of torch.utils.data.DataLoader".format( + dataloader + ), + ) + + if not cache_file: + if use_cache: + log( + Level.Debug, + "Using existing cache_file {} for calibration".format(cache_file), + ) + else: + log(Level.Debug, "Overwriting existing calibration cache file.") + else: + if use_cache: + log( + Level.Error, + "Input cache file is None but use_cache is set to True in INT8 mode.", + ) + + # Define attributes and member functions for the calibrator class + attribute_mapping = { + "data_loader": dataloader, + "current_batch_idx": 0, + "batch_size": dataloader.batch_size, + "dataset_iterator": iter(dataloader), + "cache_file": cache_file, + "device": device, + "use_cache": use_cache, + "get_batch_size": get_batch_size, + "get_batch": get_cache_mode_batch if use_cache else get_batch, + "read_calibration_cache": read_calibration_cache, + "write_calibration_cache": write_calibration_cache, + "__reduce__": __reduce__, # used when you deepcopy the DataLoaderCalibrator object + } + + # Using type metaclass to construct calibrator class based on algorithm type + if algo_type == CalibrationAlgo.ENTROPY_CALIBRATION: + return type( + "Int8EntropyCalibrator", (_C.IInt8EntropyCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.ENTROPY_CALIBRATION_2: + return type( + "Int8EntropyCalibrator2", + (_C.IInt8EntropyCalibrator2,), + attribute_mapping, + )() + elif algo_type == CalibrationAlgo.LEGACY_CALIBRATION: + return type( + "Int8LegacyCalibrator", (_C.IInt8LegacyCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.MINMAX_CALIBRATION: + return type( + "Int8MinMaxCalibrator", (_C.IInt8MinMaxCalibrator,), attribute_mapping + )() + else: + log( + Level.Error, + "Invalid calibration algorithm type. Please select among ENTROPY_CALIBRATION, ENTROPY_CALIBRATION, LEGACY_CALIBRATION or MINMAX_CALIBRATION", + )
+ + +
[docs]class CacheCalibrator(object): + """ + Constructs a calibrator class in TensorRT which directly uses pre-existing cache file for calibration. + Args: + cache_file: path to cache file. + algo_type: choice of calibration algorithm. + """ + +
[docs] def __init__(self, **kwargs): + pass
+ + def __new__(cls, *args, **kwargs): + cache_file = args[0] + algo_type = kwargs.get("algo_type", CalibrationAlgo.ENTROPY_CALIBRATION_2) + + if os.path.isfile(cache_file): + log( + Level.Debug, + "Using existing cache_file {} for calibration".format(cache_file), + ) + else: + log(Level.Error, "Invalid calibration cache file.") + + # Define attributes and member functions for the calibrator class + attribute_mapping = { + "use_cache": True, + "cache_file": cache_file, + "get_batch_size": get_batch_size, + "get_batch": get_cache_mode_batch, + "read_calibration_cache": read_calibration_cache, + "write_calibration_cache": write_calibration_cache, + } + # Using type metaclass to construct calibrator class based on algorithm type + if algo_type == CalibrationAlgo.ENTROPY_CALIBRATION: + return type( + "DataLoaderCalibrator", (_C.IInt8EntropyCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.ENTROPY_CALIBRATION_2: + return type( + "DataLoaderCalibrator", (_C.IInt8MinMaxCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.LEGACY_CALIBRATION: + return type( + "DataLoaderCalibrator", (_C.IInt8LegacyCalibrator,), attribute_mapping + )() + elif algo_type == CalibrationAlgo.MINMAX_CALIBRATION: + return type( + "DataLoaderCalibrator", (_C.IInt8MinMaxCalibrator,), attribute_mapping + )() + else: + log( + Level.Error, + "Invalid calibration algorithm type. Please select among ENTROPY_CALIBRATION, ENTROPY_CALIBRATION, LEGACY_CALIBRATION or MINMAX_CALIBRATION", + )
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/ts/_compile_spec.html b/docs/v1.2.0/_modules/torch_tensorrt/ts/_compile_spec.html new file mode 100644 index 0000000000..245455aaeb --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/ts/_compile_spec.html @@ -0,0 +1,1132 @@ + + + + + + + + + + + + torch_tensorrt.ts._compile_spec — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.ts._compile_spec

+from typing import List, Dict, Any, Set
+import torch
+from torch_tensorrt import _C
+import torch_tensorrt._C.ts as _ts_C
+from torch_tensorrt import _enums
+from torch_tensorrt._Input import Input
+from torch_tensorrt._Device import Device
+from torch_tensorrt.logging import Level, log
+from typing import Tuple, List, Dict
+import warnings
+from copy import deepcopy
+
+
+def _internal_input_to_torch_class_input(i: _C.Input) -> torch.classes.tensorrt._Input:
+    clone = torch.classes.tensorrt._Input()
+    clone._set_min(i.min)
+    clone._set_opt(i.opt)
+    clone._set_max(i.max)
+    clone._set_dtype(i.dtype)
+    clone._set_format(i.format)
+    clone._set_input_is_dynamic(i.input_is_dynamic)
+    clone._set_explicit_set_dtype(i._explicit_set_dtype)
+    return clone
+
+
+def _supported_input_size_type(input_size: Any) -> bool:
+    if isinstance(input_size, torch.Size):
+        return True
+    elif isinstance(input_size, tuple):
+        return True
+    elif isinstance(input_size, list):
+        return True
+    else:
+        raise TypeError(
+            "Input sizes for inputs are required to be a List, tuple or torch.Size or a Dict of three sizes (min, opt, max), found type: "
+            + str(type(input_size))
+        )
+
+
+def _parse_input_ranges(input_sizes: List) -> List:
+
+    if any(
+        not isinstance(i, dict) and not _supported_input_size_type(i)
+        for i in input_sizes
+    ):
+        raise KeyError(
+            "An input size must either be a static size or a range of three sizes (min, opt, max) as Dict"
+        )
+
+    parsed_input_sizes = []
+    for i in input_sizes:
+        if isinstance(i, dict):
+            if all(k in i for k in ["min", "opt", "min"]):
+                parsed_input_sizes.append(
+                    Input(
+                        min_shape=i["min"], opt_shape=i["opt"], max_shape=i["max"]
+                    )._to_internal()
+                )
+
+            elif "opt" in i:
+                parsed_input_sizes.append(Input(shape=i["opt"])._to_internal())
+
+            else:
+                raise KeyError(
+                    "An input size must either be a static size or a range of three sizes (min, opt, max) as Dict"
+                )
+
+        elif isinstance(i, list):
+            parsed_input_sizes.append(Input(shape=i)._to_internal())
+
+        elif isinstance(i, tuple):
+            parsed_input_sizes.append(Input(shape=i)._to_internal())
+
+        elif isinstance(i, torch.Size):
+            parsed_input_sizes.append(Input(shape=i)._to_internal())
+
+    return parsed_input_sizes
+
+
+def _parse_op_precision(precision: Any) -> _enums.dtype:
+    if isinstance(precision, torch.dtype):
+        if precision == torch.int8:
+            return _enums.dtype.int8
+        elif precision == torch.half:
+            return _enums.dtype.half
+        elif precision == torch.float:
+            return _enums.dtype.float
+        else:
+            raise TypeError(
+                "Provided an unsupported dtype as operating precision (support: int8, half, float), got: "
+                + str(precision)
+            )
+
+    elif isinstance(precision, _enums.dtype):
+        return precision
+
+    else:
+        raise TypeError(
+            "Op precision type needs to be specified with a torch.dtype or a torch_tensorrt.dtype, got: "
+            + str(type(precision))
+        )
+
+
+def _parse_enabled_precisions(precisions: Any) -> Set:
+    parsed_precisions = set()
+    if any([isinstance(precisions, type) for type in [list, tuple, set]]):
+        for p in precisions:
+            parsed_precisions.add(_parse_op_precision(p))
+    else:
+        parsed_precisions.add(_parse_op_precision(precisions))
+    return parsed_precisions
+
+
+def _parse_device_type(device: Any) -> _enums.DeviceType:
+    if isinstance(device, torch.device):
+        if device.type == "cuda":
+            return _enums.DeviceType.gpu
+        else:
+            ValueError(
+                "Got a device type other than GPU or DLA (type: "
+                + str(device.type)
+                + ")"
+            )
+    elif isinstance(device, _enums.DeviceType):
+        return device
+    elif isinstance(device, str):
+        if device == "gpu" or device == "GPU":
+            return _enums.DeviceType.gpu
+        elif device == "dla" or device == "DLA":
+            return _enums.DeviceType.dla
+        else:
+            ValueError(
+                "Got a device type other than GPU or DLA (type: " + str(device) + ")"
+            )
+    else:
+        raise TypeError(
+            "Device specification must be of type torch.device, string or torch_tensorrt.DeviceType, but got: "
+            + str(type(device))
+        )
+
+
+def _parse_device(device_info: Any) -> _C.Device:
+    if isinstance(device_info, dict):
+        info = _C.Device()
+        if "device_type" not in device_info:
+            raise KeyError("Device type is required parameter")
+        else:
+            assert isinstance(device_info["device_type"], _enums.DeviceType)
+            info.device_type = _parse_device_type(device_info["device_type"])
+
+        if "gpu_id" in device_info:
+            assert isinstance(device_info["gpu_id"], int)
+            info.gpu_id = device_info["gpu_id"]
+
+        if "dla_core" in device_info:
+            assert isinstance(device_info["dla_core"], int)
+            info.dla_core = device_info["dla_core"]
+
+        if "allow_gpu_fallback" in device_info:
+            assert isinstance(device_info["allow_gpu_fallback"], bool)
+            info.allow_gpu_fallback = device_info["allow_gpu_fallback"]
+
+        return info
+    elif isinstance(device_info, Device):
+        return device_info._to_internal()
+    elif isinstance(device_info, torch.device):
+        return (Device._from_torch_device(device_info))._to_internal()
+    else:
+        raise ValueError(
+            "Unsupported data for device specification. Expected either a dict, torch_tensorrt.Device or torch.Device"
+        )
+
+
+def _parse_torch_fallback(fallback_info: Dict[str, Any]) -> _ts_C.TorchFallback:
+    info = _ts_C.TorchFallback()
+    if "enabled" not in fallback_info:
+        raise KeyError("Enabled is required parameter")
+    else:
+        assert isinstance(fallback_info["enabled"], bool)
+        info.enabled = fallback_info["enabled"]
+    if "min_block_size" in fallback_info:
+        assert isinstance(fallback_info["min_block_size"], int)
+        info.min_block_size = fallback_info["min_block_size"]
+
+    if "forced_fallback_ops" in fallback_info:
+        assert isinstance(fallback_info["forced_fallback_ops"], list)
+        info.forced_fallback_operators = fallback_info["forced_fallback_ops"]
+
+    if "forced_fallback_modules" in fallback_info:
+        assert isinstance(fallback_info["forced_fallback_modules"], list)
+        info.forced_fallback_modules = fallback_info["forced_fallback_modules"]
+
+    return info
+
+
+def _parse_input_signature(input_signature: Any):
+    if isinstance(input_signature, tuple):
+        input_list = []
+        for item in input_signature:
+            input = _parse_input_signature(item)
+            input_list.append(input)
+        return tuple(input_list)
+    elif isinstance(input_signature, list):
+        input_list = []
+        for item in input_signature:
+            input = _parse_input_signature(item)
+            input_list.append(input)
+        return input_list
+    elif isinstance(input_signature, Input) or isinstance(
+        input_signature, torch.Tensor
+    ):
+        i = (
+            Input._from_tensor(input_signature)
+            if isinstance(input_signature, torch.Tensor)
+            else input_signature
+        )
+        clone = _internal_input_to_torch_class_input(i._to_internal())
+        return clone
+    else:
+        raise KeyError(
+            "Input signature contains an unsupported type {}".format(
+                type(input_signature)
+            )
+        )
+
+
+def _parse_compile_spec(compile_spec_: Dict[str, Any]) -> _ts_C.CompileSpec:
+    # TODO: Use deepcopy to support partial compilation of collections
+    compile_spec = deepcopy(compile_spec_)
+    info = _ts_C.CompileSpec()
+
+    if len(compile_spec["inputs"]) > 0:
+        if not all(
+            [
+                isinstance(i, torch.Tensor) or isinstance(i, Input)
+                for i in compile_spec["inputs"]
+            ]
+        ):
+            raise KeyError(
+                "Input specs should be either torch_tensorrt.Input or torch.Tensor, found types: {}".format(
+                    [type(i) for i in compile_spec["inputs"]]
+                )
+            )
+
+        inputs = [
+            Input._from_tensor(i) if isinstance(i, torch.Tensor) else i
+            for i in compile_spec["inputs"]
+        ]
+        info.inputs = [i._to_internal() for i in inputs]
+
+    elif compile_spec["input_signature"] is not None:
+        log(
+            Level.Warning,
+            "Input signature parsing is an experimental feature, behavior and APIs may change",
+        )
+        signature = _parse_input_signature(compile_spec["input_signature"])
+        info.input_signature = _C.InputSignature(signature)  # py_object
+
+        if not compile_spec["torch_fallback"]["enabled"]:
+            raise ValueError(
+                "Grouped inputs currently requires partial compilation to be enabled, this restriction will be relaxed in a future release"
+            )
+
+        log(
+            Level.Debug,
+            "Grouped inputs currently requires additional settings to enable the feature",
+        )
+        log(
+            Level.Debug,
+            """Adding the following ops to torch_executed_ops:
+    - aten::__getitem__
+    - prim::ListConstruct
+    - prim::ListUnpack
+    - prim::TupleIndex
+    - prim::TupleConstruct
+    - prim::TupleUnpack
+""",
+        )
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append(
+            "aten::__getitem__"
+        )
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append(
+            "prim::ListConstruct"
+        )
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append("prim::ListUnpack")
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append("prim::TupleIndex")
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append(
+            "prim::TupleConstruct"
+        )
+        compile_spec["torch_fallback"]["forced_fallback_ops"].append(
+            "prim::TupleUnpack"
+        )
+
+    else:
+        raise KeyError(
+            'Module input definitions are requried to compile module. Provide a list of torch_tensorrt.Input keyed to "inputs" in the compile spec'
+        )
+
+    if "enabled_precisions" in compile_spec:
+        info.enabled_precisions = _parse_enabled_precisions(
+            compile_spec["enabled_precisions"]
+        )
+
+    if "calibrator" in compile_spec and compile_spec["calibrator"]:
+        info.ptq_calibrator = compile_spec["calibrator"]
+
+    if "sparse_weights" in compile_spec:
+        assert isinstance(compile_spec["sparse_weights"], bool)
+        info.sparse_weights = compile_spec["sparse_weights"]
+
+    if "disable_tf32" in compile_spec:
+        assert isinstance(compile_spec["disable_tf32"], bool)
+        info.disable_tf32 = compile_spec["disable_tf32"]
+
+    if "refit" in compile_spec:
+        assert isinstance(compile_spec["refit"], bool)
+        info.refit = compile_spec["refit"]
+
+    if "debug" in compile_spec:
+        assert isinstance(compile_spec["debug"], bool)
+        info.debug = compile_spec["debug"]
+
+    if "device" in compile_spec:
+        info.device = _parse_device(compile_spec["device"])
+
+    if "capability" in compile_spec:
+        assert isinstance(compile_spec["capability"], _enums.EngineCapability)
+        info.capability = compile_spec["capability"]
+
+    if "num_avg_timing_iters" in compile_spec:
+        assert type(compile_spec["num_avg_timing_iters"]) is int
+        info.num_avg_timing_iters = compile_spec["num_avg_timing_iters"]
+
+    if "workspace_size" in compile_spec:
+        assert type(compile_spec["workspace_size"]) is int
+        info.workspace_size = compile_spec["workspace_size"]
+
+    if "dla_sram_size" in compile_spec:
+        assert type(compile_spec["dla_sram_size"]) is int
+        info.dla_sram_size = compile_spec["dla_sram_size"]
+
+    if "dla_local_dram_size" in compile_spec:
+        assert type(compile_spec["dla_local_dram_size"]) is int
+        info.dla_local_dram_size = compile_spec["dla_local_dram_size"]
+
+    if "dla_global_dram_size" in compile_spec:
+        assert type(compile_spec["dla_global_dram_size"]) is int
+        info.dla_global_dram_size = compile_spec["dla_global_dram_size"]
+
+    if "truncate_long_and_double" in compile_spec:
+        assert type(compile_spec["truncate_long_and_double"]) is bool
+        info.truncate_long_and_double = compile_spec["truncate_long_and_double"]
+
+    if "torch_fallback" in compile_spec:
+        info.torch_fallback = _parse_torch_fallback(compile_spec["torch_fallback"])
+
+    log(Level.Debug, str(info))
+
+    return info
+
+
+
[docs]def TensorRTCompileSpec( + inputs=[], + input_signature=None, + device=Device._current_device(), + disable_tf32=False, + sparse_weights=False, + enabled_precisions=set(), + refit=False, + debug=False, + capability=_enums.EngineCapability.default, + num_avg_timing_iters=1, + workspace_size=0, + dla_sram_size=1048576, + dla_local_dram_size=1073741824, + dla_global_dram_size=536870912, + truncate_long_and_double=False, + calibrator=None, +) -> torch.classes.tensorrt.CompileSpec: + """Utility to create a formated spec dictionary for using the PyTorch TensorRT backend + + Keyword Args: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + device (Union(torch_tensorrt.Device, torch.device, dict)): Target device for TensorRT engines to run on :: + + device=torch_tensorrt.Device("dla:1", allow_gpu_fallback=True) + + disable_tf32 (bool): Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + sparse_weights (bool): Enable sparsity for convolution and fully connected layers. + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + refit (bool): Enable refitting + debug (bool): Enable debuggable engine + capability (torch_tensorrt.EngineCapability): Restrict kernel selection to safe gpu kernels or safe dla kernels + num_avg_timing_iters (int): Number of averaging timing iterations used to select kernels + workspace_size (int): Maximum size of workspace given to TensorRT + truncate_long_and_double (bool): Truncate weights provided in int64 or double (float64) to int32 and float32 + calibrator (Union(torch_tensorrt._C.IInt8Calibrator, tensorrt.IInt8Calibrator)): Calibrator object which will provide data to the PTQ system for INT8 Calibration + + Returns: + torch.classes.tensorrt.CompileSpec: List of methods and formated spec objects to be provided to ``torch._C._jit_to_tensorrt`` + """ + + compile_spec = { + "inputs": inputs, + # "input_signature": input_signature, + "device": device, + "disable_tf32": disable_tf32, # Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + "sparse_weights": sparse_weights, # Enable sparsity for convolution and fully connected layers. + "enabled_precisions": enabled_precisions, # Enabling FP16 kernels + "refit": refit, # enable refit + "debug": debug, # enable debuggable engine + "capability": capability, # Restrict kernel selection to safe gpu kernels or safe dla kernels + "num_avg_timing_iters": num_avg_timing_iters, # Number of averaging timing iterations used to select kernels + "workspace_size": workspace_size, # Maximum size of workspace given to TensorRT + "dla_sram_size": dla_sram_size, # Fast software managed RAM used by DLA to communicate within a layer. + "dla_local_dram_size": dla_local_dram_size, # Host RAM used by DLA to share intermediate tensor data across operations + "dla_global_dram_size": dla_global_dram_size, # Host RAM used by DLA to store weights and metadata for execution + "calibrator": calibrator, + "truncate_long_and_double": truncate_long_and_double, + } + + parsed_spec = _parse_compile_spec(compile_spec) + + backend_spec = torch.classes.tensorrt.CompileSpec() + + if input_signature is not None: + raise ValueError( + "Input signature parsing is not currently supported in the TorchScript backend integration" + ) + + for i in parsed_spec.inputs: + clone = _internal_input_to_torch_class_input(i) + backend_spec._append_input(clone) + + d = torch.classes.tensorrt._Device() + d._set_device_type(int(parsed_spec.device.device_type)) + d._set_gpu_id(parsed_spec.device.gpu_id) + d._set_dla_core(parsed_spec.device.dla_core) + d._set_allow_gpu_fallback(parsed_spec.device.allow_gpu_fallback) + + if parsed_spec.torch_fallback.enabled: + raise RuntimeError( + "Partial module compilation is not currently supported via the PyTorch TensorRT backend. If you need partial compilation, use torch_tensorrt.compile" + ) + + torch_fallback = torch.classes.tensorrt._TorchFallback() + torch_fallback._set_enabled(parsed_spec.torch_fallback.enabled) + torch_fallback._set_min_block_size(parsed_spec.torch_fallback.min_block_size) + torch_fallback._set_forced_fallback_operators( + parsed_spec.torch_fallback.forced_fallback_operators + ) + torch_fallback._set_forced_fallback_modules( + parsed_spec.torch_fallback.forced_fallback_modules + ) + + backend_spec._set_device(d) + backend_spec._set_torch_fallback(torch_fallback) + backend_spec._set_precisions([int(i) for i in parsed_spec.enabled_precisions]) + + backend_spec._set_disable_tf32(parsed_spec.disable_tf32) + backend_spec._set_refit(parsed_spec.refit) + backend_spec._set_debug(parsed_spec.debug) + backend_spec._set_refit(parsed_spec.refit) + backend_spec._set_capability(int(parsed_spec.capability)) + backend_spec._set_num_avg_timing_iters(parsed_spec.num_avg_timing_iters) + backend_spec._set_workspace_size(parsed_spec.workspace_size) + backend_spec._set_dla_sram_size(parsed_spec.dla_sram_size) + backend_spec._set_dla_local_dram_size(parsed_spec.dla_local_dram_size) + backend_spec._set_dla_global_dram_size(parsed_spec.dla_global_dram_size) + backend_spec._set_truncate_long_and_double(parsed_spec.truncate_long_and_double) + backend_spec._set_ptq_calibrator(parsed_spec._get_calibrator_handle()) + + return backend_spec
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_modules/torch_tensorrt/ts/_compiler.html b/docs/v1.2.0/_modules/torch_tensorrt/ts/_compiler.html new file mode 100644 index 0000000000..c894f81933 --- /dev/null +++ b/docs/v1.2.0/_modules/torch_tensorrt/ts/_compiler.html @@ -0,0 +1,934 @@ + + + + + + + + + + + + torch_tensorrt.ts._compiler — Torch-TensorRT v1.2.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +

Source code for torch_tensorrt.ts._compiler

+from typing import List, Dict, Any
+import torch
+from torch import nn
+
+import torch_tensorrt._C.ts as _C
+from torch_tensorrt import _enums
+from torch_tensorrt.ts._compile_spec import _parse_compile_spec, _parse_device
+from torch_tensorrt._Device import Device
+from types import FunctionType
+
+
+
[docs]def compile( + module: torch.jit.ScriptModule, + inputs=[], + input_signature=None, + device=Device._current_device(), + disable_tf32=False, + sparse_weights=False, + enabled_precisions=set(), + refit=False, + debug=False, + capability=_enums.EngineCapability.default, + num_avg_timing_iters=1, + workspace_size=0, + dla_sram_size=1048576, + dla_local_dram_size=1073741824, + dla_global_dram_size=536870912, + calibrator=None, + truncate_long_and_double=False, + require_full_compilation=False, + min_block_size=3, + torch_executed_ops=[], + torch_executed_modules=[], +) -> torch.jit.ScriptModule: + """Compile a TorchScript module for NVIDIA GPUs using TensorRT + + Takes a existing TorchScript module and a set of settings to configure the compiler + and will convert methods to JIT Graphs which call equivalent TensorRT engines + + Converts specifically the forward method of a TorchScript Module + + Arguments: + module (torch.jit.ScriptModule): Source module, a result of tracing or scripting a PyTorch + ``torch.nn.Module`` + + Keyword Arguments: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + input_signature Union(List, Tuple, torch_tensorrt.Input, torch.Tensor): A formatted collection of input specifications for the module. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum to select device type. **This API should be considered beta-level stable and may change in the future** :: + + input_signature=([ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + ], torch.randn((1, 3, 224, 244))) # Use an example tensor and let torch_tensorrt infer settings for input #3 + device (Union(torch_tensorrt.Device, torch.device, dict)): Target device for TensorRT engines to run on :: + + device=torch_tensorrt.Device("dla:1", allow_gpu_fallback=True) + + disable_tf32 (bool): Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + sparse_weights (bool): Enable sparsity for convolution and fully connected layers. + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + refit (bool): Enable refitting + debug (bool): Enable debuggable engine + capability (torch_tensorrt.EngineCapability): Restrict kernel selection to safe gpu kernels or safe dla kernels + num_avg_timing_iters (int): Number of averaging timing iterations used to select kernels + workspace_size (int): Maximum size of workspace given to TensorRT + dla_sram_size (int): Fast software managed RAM used by DLA to communicate within a layer. + dla_local_dram_size (int): Host RAM used by DLA to share intermediate tensor data across operations + dla_global_dram_size (int): Host RAM used by DLA to store weights and metadata for execution + truncate_long_and_double (bool): Truncate weights provided in int64 or double (float64) to int32 and float32 + calibrator (Union(torch_tensorrt._C.IInt8Calibrator, tensorrt.IInt8Calibrator)): Calibrator object which will provide data to the PTQ system for INT8 Calibration + require_full_compilation (bool): Require modules to be compiled end to end or return an error as opposed to returning a hybrid graph where operations that cannot be run in TensorRT are run in PyTorch + min_block_size (int): The minimum number of contiguous TensorRT convertable operations in order to run a set of operations in TensorRT + torch_executed_ops (List[str]): List of aten operators that must be run in PyTorch. An error will be thrown if this list is not empty but ``require_full_compilation`` is True + torch_executed_modules (List[str]): List of modules that must be run in PyTorch. An error will be thrown if this list is not empty but ``require_full_compilation`` is True + + Returns: + torch.jit.ScriptModule: Compiled TorchScript Module, when run it will execute via TensorRT + """ + + if isinstance(module, torch.jit.ScriptFunction): + raise TypeError( + "torch.jit.ScriptFunction currently is not directly supported, wrap the function in a module to compile" + ) + + if require_full_compilation and ( + len(torch_executed_modules) > 0 or len(torch_executed_ops) > 0 + ): + raise ValueError( + f"require_full_compilation is enabled however the list of modules and ops to run in torch is not empty. Found: torch_executed_ops: {torch_executed_ops}, torch_executed_modules: {torch_executed_modules}" + ) + + spec = { + "inputs": inputs, + "input_signature": input_signature, + "device": device, + "disable_tf32": disable_tf32, # Force FP32 layers to use traditional as FP32 format + "sparse_weights": sparse_weights, # Enable sparsity for convolution and fully connected layers. + "enabled_precisions": enabled_precisions, # Enabling FP16 kernels + "refit": refit, # enable refit + "debug": debug, # enable debuggable engine + "capability": capability, # Restrict kernel selection to safe gpu kernels or safe dla kernels + "num_avg_timing_iters": num_avg_timing_iters, # Number of averaging timing iterations used to select kernels + "workspace_size": workspace_size, # Maximum size of workspace given to TensorRT + "calibrator": calibrator, + "truncate_long_and_double": truncate_long_and_double, + "torch_fallback": { + "enabled": not require_full_compilation, + "forced_fallback_ops": torch_executed_ops, + "forced_fallback_modules": torch_executed_modules, + "min_block_size": min_block_size, + }, + } + + compiled_cpp_mod = _C.compile_graph(module._c, _parse_compile_spec(spec)) + compiled_module = torch.jit._recursive.wrap_cpp_module(compiled_cpp_mod) + return compiled_module
+ + +
[docs]def convert_method_to_trt_engine( + module: torch.jit.ScriptModule, + method_name: str, + inputs=[], + device=Device._current_device(), + disable_tf32=False, + sparse_weights=False, + enabled_precisions=set(), + refit=False, + debug=False, + capability=_enums.EngineCapability.default, + num_avg_timing_iters=1, + workspace_size=0, + dla_sram_size=1048576, + dla_local_dram_size=1073741824, + dla_global_dram_size=536870912, + truncate_long_and_double=False, + calibrator=None, +) -> str: + """Convert a TorchScript module method to a serialized TensorRT engine + + Converts a specified method of a module to a serialized TensorRT engine given a dictionary of conversion settings + + Arguments: + module (torch.jit.ScriptModule): Source module, a result of tracing or scripting a PyTorch + ``torch.nn.Module`` + method_name (str): Name of method to convert + + Keyword Args: + inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]): **Required** List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum + to select device type. :: + + input=[ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings + ] + + input_signature Union(List, Tuple, torch_tensorrt.Input, torch.Tensor): A formatted collection of input specifications for the module. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using + torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum to select device type. **This API should be considered beta-level stable and may change in the future** :: + + input_signature=([ + torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1 + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ), # Dynamic input shape for input #2 + ], torch.randn((1, 3, 224, 244))) # Use an example tensor and let torch_tensorrt infer settings for input #3 + + device (Union(torch_tensorrt.Device, torch.device, dict)): Target device for TensorRT engines to run on :: + + device=torch_tensorrt.Device("dla:1", allow_gpu_fallback=True) + + disable_tf32 (bool): Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + sparse_weights (bool): Enable sparsity for convolution and fully connected layers. + enabled_precision (Set(Union(torch.dtype, torch_tensorrt.dtype))): The set of datatypes that TensorRT can use when selecting kernels + refit (bool): Enable refitting + debug (bool): Enable debuggable engine + capability (torch_tensorrt.EngineCapability): Restrict kernel selection to safe gpu kernels or safe dla kernels + num_avg_timing_iters (int): Number of averaging timing iterations used to select kernels + workspace_size (int): Maximum size of workspace given to TensorRT + dla_sram_size (int): Fast software managed RAM used by DLA to communicate within a layer. + dla_local_dram_size (int): Host RAM used by DLA to share intermediate tensor data across operations + dla_global_dram_size (int): Host RAM used by DLA to store weights and metadata for execution + truncate_long_and_double (bool): Truncate weights provided in int64 or double (float64) to int32 and float32 + calibrator (Union(torch_tensorrt._C.IInt8Calibrator, tensorrt.IInt8Calibrator)): Calibrator object which will provide data to the PTQ system for INT8 Calibration + + Returns: + bytes: Serialized TensorRT engine, can either be saved to a file or deserialized via TensorRT APIs + """ + if isinstance(module, torch.jit.ScriptFunction): + raise TypeError( + "torch.jit.ScriptFunctions currently are not directly supported, wrap the function in a module to compile" + ) + + compile_spec = { + "inputs": inputs, + "device": device, + "disable_tf32": disable_tf32, # Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas + "sparse_weights": sparse_weights, # Enable sparsity for convolution and fully connected layers. + "enabled_precisions": enabled_precisions, # Enabling FP16 kernels + "refit": refit, # enable refit + "debug": debug, # enable debuggable engine + "capability": capability, # Restrict kernel selection to safe gpu kernels or safe dla kernels + "num_avg_timing_iters": num_avg_timing_iters, # Number of averaging timing iterations used to select kernels + "workspace_size": workspace_size, # Maximum size of workspace given to TensorRT + "calibrator": calibrator, + "truncate_long_and_double": truncate_long_and_double, + } + + return _C.convert_graph_to_trt_engine( + module._c, method_name, _parse_compile_spec(compile_spec) + )
+ + +
[docs]def embed_engine_in_new_module( + serialized_engine: bytes, device=Device._current_device() +) -> torch.jit.ScriptModule: + """Takes a pre-built serialized TensorRT engine and embeds it within a TorchScript module + + Takes a pre-built serialied TensorRT engine (as bytes) and embeds it within a TorchScript module. + Registers the forward method to execute the TensorRT engine with the function signature: + + forward(Tensor[]) -> Tensor[] + + TensorRT bindings must have names with the following format: + - [symbol].[index in input / output array] + ex. + - [x.0, x.1, x.2] -> [y.0] + + Module can be save with engine embedded with torch.jit.save and moved / loaded according to torch_tensorrt portability rules + + Arguments: + serialized_engine (bytes): Serialized TensorRT engine from either torch_tensorrt or TensorRT APIs + + Keyword Arguments: + device (Union(torch_tensorrt.Device, torch.device, dict)): Target device to run engine on. Must be compatible with engine provided. Default: Current active device + + Returns: + torch.jit.ScriptModule: New TorchScript module with engine embedded + """ + cpp_mod = _C.embed_engine_in_new_module(serialized_engine, _parse_device(device)) + return torch.jit._recursive.wrap_cpp_module(cpp_mod)
+ + +
[docs]def check_method_op_support(module: torch.jit.ScriptModule, method_name: str) -> bool: + """Checks to see if a method is fully supported by torch_tensorrt + + Checks if a method of a TorchScript module can be compiled by torch_tensorrt, if not, a list of operators + that are not supported are printed out and the function returns false, else true. + + Arguments: + module (torch.jit.ScriptModule): Source module, a result of tracing or scripting a PyTorch + ``torch.nn.Module`` + method_name (str): Name of method to check + + Returns: + bool: True if supported Method + """ + return _C.check_method_op_support(module._c, method_name)
+
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2022, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_notebooks/CitriNet-example.html b/docs/v1.2.0/_notebooks/CitriNet-example.html new file mode 100644 index 0000000000..8c4ae285bf --- /dev/null +++ b/docs/v1.2.0/_notebooks/CitriNet-example.html @@ -0,0 +1,1753 @@ + + + + + + + + + + + + + Torch-TensorRT Getting Started - CitriNet — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Torch-TensorRT Getting Started - CitriNet
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + +
+
[1]:
+
+
+
# Copyright 2019 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+

198e4deb2921411abba2a37241da72ab

+
+

Torch-TensorRT Getting Started - CitriNet

+
+

Overview

+

Citrinet is an acoustic model used for the speech to text recognition task. It is a version of QuartzNet that extends ContextNet, utilizing subword encoding (via Word Piece tokenization) and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models.

+

CitriNet models take in audio segments and transcribe them to letter, byte pair, or word piece sequences.

+

alt

+
+

Learning objectives

+

This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, and running it to test the speedup obtained.

+
+
+
+

Content

+
    +
  1. Requirements

  2. +
  3. Download Citrinet model

  4. +
  5. Create Torch-TensorRT modules

  6. +
  7. Benchmark Torch-TensorRT models

  8. +
  9. Conclusion

  10. +
+

## 1. Requirements

+

Follow the steps in README to prepare a Docker container, within which you can run this notebook. This notebook assumes that you are within a Jupyter environment in a docker container with Torch-TensorRT installed, such as an NGC monthly release of nvcr.io/nvidia/pytorch:<yy.mm>-py3 (where yy indicates the last two numbers of a calendar year, and mm indicates the month in two-digit numerical form)

+

Now that you are in the docker, the next step is to install the required dependencies.

+
+
[2]:
+
+
+
# Install dependencies
+!pip install wget
+!apt-get update && DEBIAN_FRONTEND=noninteractive  apt-get install -y libsndfile1 ffmpeg
+!pip install Cython
+
+## Install NeMo
+!pip install nemo_toolkit[all]==1.5.1
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (3.2)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
+Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
+Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
+Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
+Reading package lists... Done
+Reading package lists... Done
+Building dependency tree
+Reading state information... Done
+libsndfile1 is already the newest version (1.0.28-7ubuntu0.1).
+ffmpeg is already the newest version (7:4.2.4-1ubuntu0.1).
+0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: Cython in /opt/conda/lib/python3.8/site-packages (0.29.28)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: nemo_toolkit[all]==1.5.1 in /opt/conda/lib/python3.8/site-packages (1.5.1)
+Requirement already satisfied: numpy>=1.18.2 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.22.3)
+Requirement already satisfied: onnx>=1.7.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.10.1)
+Requirement already satisfied: python-dateutil in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.8.2)
+Requirement already satisfied: tqdm>=4.41.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.63.0)
+Requirement already satisfied: sentencepiece<1.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.96)
+Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)
+Requirement already satisfied: numba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.53.1)
+Requirement already satisfied: torch in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.12.0a0+2c916ef)
+Requirement already satisfied: unidecode in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.4)
+Requirement already satisfied: frozendict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.3.2)
+Requirement already satisfied: wrapt in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.14.0)
+Requirement already satisfied: scikit-learn in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.24.2)
+Requirement already satisfied: ruamel.yaml in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.17.21)
+Requirement already satisfied: pesq in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.3)
+Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.13.0a0)
+Requirement already satisfied: gdown in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)
+Requirement already satisfied: editdistance in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.6.0)
+Requirement already satisfied: boto3 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.21.45)
+Requirement already satisfied: isort[requirements]<5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.3.21)
+Requirement already satisfied: hydra-core>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.2)
+Requirement already satisfied: youtokentome>=1.0.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.0.6)
+Requirement already satisfied: pytorch-lightning>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.1)
+Requirement already satisfied: jieba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.42.1)
+Requirement already satisfied: fasttext in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.2)
+Requirement already satisfied: soundfile in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.10.3.post1)
+Requirement already satisfied: kaldiio in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.17.2)
+Requirement already satisfied: pangu in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.0.6.1)
+Requirement already satisfied: kaldi-python-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.2.2)
+Requirement already satisfied: parameterized in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.1)
+Requirement already satisfied: h5py in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.6.0)
+Requirement already satisfied: rapidfuzz in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.10)
+Requirement already satisfied: marshmallow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.15.0)
+Requirement already satisfied: opencc in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.3)
+Requirement already satisfied: braceexpand in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.7)
+Requirement already satisfied: omegaconf>=2.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.2)
+Requirement already satisfied: sphinx in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)
+Requirement already satisfied: pillow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (9.0.0)
+Requirement already satisfied: wordninja==2.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)
+Requirement already satisfied: torch-stft in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.4)
+Requirement already satisfied: sox in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.4.1)
+Requirement already satisfied: librosa in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.1)
+Requirement already satisfied: regex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2022.3.15)
+Requirement already satisfied: sacrebleu[ja] in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)
+Requirement already satisfied: black==19.10b0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (19.10b0)
+Requirement already satisfied: pydub in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.25.1)
+Requirement already satisfied: sphinxcontrib-bibtex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.4.2)
+Requirement already satisfied: inflect in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.5.2)
+Requirement already satisfied: pyannote.core in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (21.3)
+Requirement already satisfied: kaldi-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.4)
+Requirement already satisfied: pyannote.metrics in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)
+Requirement already satisfied: g2p-en in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.0)
+Requirement already satisfied: matplotlib in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.5.1)
+Requirement already satisfied: torchmetrics>=0.4.1rc0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.0)
+Requirement already satisfied: nltk>=3.6.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.7)
+Requirement already satisfied: pyyaml<6 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.4.1)
+Requirement already satisfied: scipy in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.3)
+Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (7.7.0)
+Requirement already satisfied: pytest in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.2.5)
+Requirement already satisfied: pandas in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.5)
+Requirement already satisfied: pytest-runner in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.0.0)
+Requirement already satisfied: transformers>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.18.0)
+Requirement already satisfied: sacremoses>=0.0.43 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.49)
+Requirement already satisfied: pystoi in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.3.3)
+Requirement already satisfied: attrdict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.1)
+Requirement already satisfied: webdataset<=0.1.62,>=0.1.48 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.62)
+Requirement already satisfied: wandb in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.12.15)
+Requirement already satisfied: pypinyin in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.46.0)
+Requirement already satisfied: attrs>=18.1.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (21.4.0)
+Requirement already satisfied: appdirs in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.4.4)
+Requirement already satisfied: typed-ast>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.5.3)
+Requirement already satisfied: pathspec<1,>=0.6 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.9.0)
+Requirement already satisfied: click>=6.5 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (8.0.4)
+Requirement already satisfied: toml>=0.9.4 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.10.2)
+Requirement already satisfied: antlr4-python3-runtime==4.8 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (4.8)
+Requirement already satisfied: importlib-resources<5.3 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (5.2.3)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources<5.3->hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (3.7.0)
+Requirement already satisfied: pip-api in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.0.29)
+Requirement already satisfied: pipreqs in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.4.11)
+Requirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (4.31.2)
+Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (1.4.0)
+Requirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (3.0.7)
+Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (0.11.0)
+Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from nltk>=3.6.5->nemo_toolkit[all]==1.5.1) (1.1.0)
+Requirement already satisfied: typing-extensions>=3.6.2.1 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (4.1.1)
+Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (1.16.0)
+Requirement already satisfied: protobuf>=3.12.2 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (3.19.4)
+Requirement already satisfied: pyDeprecate<0.4.0,>=0.3.1 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.3.2)
+Requirement already satisfied: tensorboard>=2.2.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.8.0)
+Requirement already satisfied: fsspec[http]!=2021.06.0,>=2021.05.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2022.2.0)
+Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.27.1)
+Requirement already satisfied: aiohttp in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.8.1)
+Requirement already satisfied: werkzeug>=0.11.15 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.3)
+Requirement already satisfied: markdown>=2.6.8 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3.6)
+Requirement already satisfied: setuptools>=41.0.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (59.5.0)
+Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.6)
+Requirement already satisfied: google-auth<3,>=1.6.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.6.2)
+Requirement already satisfied: wheel>=0.26 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.37.1)
+Requirement already satisfied: grpcio>=1.24.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.44.0)
+Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.6.1)
+Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.8.1)
+Requirement already satisfied: absl-py>=0.4 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.0.0)
+Requirement already satisfied: cachetools<6.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (5.0.0)
+Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.2.8)
+Requirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.8)
+Requirement already satisfied: requests-oauthlib>=0.7.0 in /opt/conda/lib/python3.8/site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.1)
+Requirement already satisfied: importlib-metadata>=4.4 in /opt/conda/lib/python3.8/site-packages (from markdown>=2.6.8->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.11.3)
+Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.8)
+Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.12)
+Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2021.10.8)
+Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3)
+Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.26.8)
+Requirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.8/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.2.0)
+Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.5.1)
+Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.12.1)
+Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (3.6.0)
+Requirement already satisfied: frozenlist>=1.1.1 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.0)
+Requirement already satisfied: yarl<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.2)
+Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.0.2)
+Requirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (6.0.2)
+Requirement already satisfied: aiosignal>=1.1.2 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.2.0)
+Requirement already satisfied: s3transfer<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (0.5.2)
+Requirement already satisfied: botocore<1.25.0,>=1.24.45 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.24.45)
+Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.0.0)
+Requirement already satisfied: pybind11>=2.2 in /opt/conda/lib/python3.8/site-packages (from fasttext->nemo_toolkit[all]==1.5.1) (2.9.1)
+Requirement already satisfied: distance>=0.1.3 in /opt/conda/lib/python3.8/site-packages (from g2p-en->nemo_toolkit[all]==1.5.1) (0.1.3)
+Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from gdown->nemo_toolkit[all]==1.5.1) (4.10.0)
+Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->gdown->nemo_toolkit[all]==1.5.1) (2.3.1)
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (8.1.1)
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (6.9.2)
+Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (1.1.0)
+Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (3.6.0)
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.2.0)
+Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (7.1.2)
+Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (5.9.0)
+Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (6.1)
+Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.1)
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.4)
+Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.3)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.5)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)
+Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.11.2)
+Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.27)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.8.0)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.4)
+Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (22.3.0)
+Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (4.9.2)
+Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.4.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.5)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.1)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.8.0)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.1)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.3)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.3)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.4)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.3.0)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.21)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.1.1)
+Requirement already satisfied: resampy>=0.2.2 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (0.2.2)
+Requirement already satisfied: pooch>=1.0 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (1.6.0)
+Requirement already satisfied: audioread>=2.1.5 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (2.1.9)
+Requirement already satisfied: llvmlite<0.37,>=0.36.0rc1 in /opt/conda/lib/python3.8/site-packages (from numba->nemo_toolkit[all]==1.5.1) (0.36.0)
+Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from scikit-learn->nemo_toolkit[all]==1.5.1) (3.1.0)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.1)
+Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.13)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.1.0)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.4)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.0)
+Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.6.0)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.2)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.1)
+Requirement already satisfied: pytz>=2017.3 in /opt/conda/lib/python3.8/site-packages (from pandas->nemo_toolkit[all]==1.5.1) (2021.3)
+Requirement already satisfied: pip in /opt/conda/lib/python3.8/site-packages (from pip-api->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (21.2.4)
+Requirement already satisfied: yarg in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.1.9)
+Requirement already satisfied: docopt in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.6.2)
+Requirement already satisfied: simplejson>=3.8.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (3.17.6)
+Requirement already satisfied: sortedcontainers>=2.0.4 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (2.4.0)
+Requirement already satisfied: tabulate>=0.7.7 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.8.9)
+Requirement already satisfied: pyannote.database>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (4.1.3)
+Requirement already satisfied: sympy>=1.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.10.1)
+Requirement already satisfied: typer[all]>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.0)
+Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.8/site-packages (from sympy>=1.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.2.1)
+Requirement already satisfied: colorama<0.5.0,>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.4)
+Requirement already satisfied: shellingham<2.0.0,>=1.3.0 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.4.0)
+Requirement already satisfied: py>=1.8.2 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.11.0)
+Requirement already satisfied: iniconfig in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.1.1)
+Requirement already satisfied: pluggy<2.0,>=0.12 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.0.0)
+Requirement already satisfied: jarowinkler<1.1.0,>=1.0.2 in /opt/conda/lib/python3.8/site-packages (from rapidfuzz->nemo_toolkit[all]==1.5.1) (1.0.2)
+Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.1)
+Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in /opt/conda/lib/python3.8/site-packages (from ruamel.yaml->nemo_toolkit[all]==1.5.1) (0.2.6)
+Requirement already satisfied: portalocker in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (2.4.0)
+Requirement already satisfied: ipadic<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.0)
+Requirement already satisfied: mecab-python3==1.0.3 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.3)
+Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.0.0)
+Requirement already satisfied: alabaster<0.8,>=0.7 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.7.12)
+Requirement already satisfied: babel>=1.3 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.9.1)
+Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.1.5)
+Requirement already satisfied: sphinxcontrib-devhelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)
+Requirement already satisfied: sphinxcontrib-jsmath in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.1)
+Requirement already satisfied: sphinxcontrib-qthelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.3)
+Requirement already satisfied: snowballstemmer>=1.1 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.2.0)
+Requirement already satisfied: imagesize in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.3.0)
+Requirement already satisfied: sphinxcontrib-applehelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)
+Requirement already satisfied: docutils<0.18,>=0.14 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.17.1)
+Requirement already satisfied: pybtex-docutils>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (1.0.1)
+Requirement already satisfied: pybtex>=0.24 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (0.24.0)
+Requirement already satisfied: latexcodec>=1.0.4 in /opt/conda/lib/python3.8/site-packages (from pybtex>=0.24->sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (2.0.1)
+Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.2)
+Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.0.5)
+Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)
+Requirement already satisfied: pathtools in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.1.2)
+Requirement already satisfied: setproctitle in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.2.3)
+Requirement already satisfied: GitPython>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (3.1.27)
+Requirement already satisfied: sentry-sdk>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.5.10)
+Requirement already satisfied: shortuuid>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.0.8)
+Requirement already satisfied: docker-pycreds>=0.4.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.4.0)
+Requirement already satisfied: promise<3,>=2.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (2.3)
+Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (4.0.9)
+Requirement already satisfied: smmap<6,>=3.0.1 in /opt/conda/lib/python3.8/site-packages (from gitdb<5,>=4.0.1->GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (5.0.0)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+

## 2. Download Citrinet model

+

Next, we download a pretrained Nemo Citrinet model and convert it to a Torchscript module:

+
+
[3]:
+
+
+
import nemo
+import torch
+
+import nemo.collections.asr as nemo_asr
+from nemo.core import typecheck
+typecheck.set_typecheck_enabled(False)
+
+
+
+
+
[4]:
+
+
+
variant = 'stt_en_citrinet_256'
+
+print(f"Downloading and saving {variant}...")
+asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name=variant)
+asr_model.export(f"{variant}.ts")
+
+
+
+
+
+
+
+
+Downloading and saving stt_en_citrinet_256...
+[NeMo I 2022-04-21 23:12:45 cloud:56] Found existing object /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.
+[NeMo I 2022-04-21 23:12:45 cloud:62] Re-using file from: /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo
+[NeMo I 2022-04-21 23:12:45 common:728] Instantiating model from pre-trained checkpoint
+[NeMo I 2022-04-21 23:12:46 mixins:146] Tokenizer SentencePieceTokenizer initialized with 1024 tokens
+
+
+
+
+
+
+
+[NeMo W 2022-04-21 23:12:47 modelPT:130] If you intend to do training or fine-tuning, please call the ModelPT.setup_training_data() method and provide a valid configuration file to setup the train data loader.
+    Train config :
+    manifest_filepath: null
+    sample_rate: 16000
+    batch_size: 32
+    trim_silence: true
+    max_duration: 16.7
+    shuffle: true
+    is_tarred: false
+    tarred_audio_filepaths: null
+    use_start_end_token: false
+
+[NeMo W 2022-04-21 23:12:47 modelPT:137] If you intend to do validation, please call the ModelPT.setup_validation_data() or ModelPT.setup_multiple_validation_data() method and provide a valid configuration file to setup the validation data loader(s).
+    Validation config :
+    manifest_filepath: null
+    sample_rate: 16000
+    batch_size: 32
+    shuffle: false
+    use_start_end_token: false
+
+[NeMo W 2022-04-21 23:12:47 modelPT:143] Please call the ModelPT.setup_test_data() or ModelPT.setup_multiple_test_data() method and provide a valid configuration file to setup the test data loader(s).
+    Test config :
+    manifest_filepath: null
+    sample_rate: 16000
+    batch_size: 32
+    shuffle: false
+    use_start_end_token: false
+
+
+
+
+
+
+
+
+[NeMo I 2022-04-21 23:12:47 features:265] PADDING: 16
+[NeMo I 2022-04-21 23:12:47 features:282] STFT using torch
+
+
+
+
+
+
+
+[NeMo W 2022-04-21 23:12:47 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/nemo/collections/asr/parts/preprocessing/features.py:315: FutureWarning: Pass sr=16000, n_fft=512 as keyword args. From version 0.10 passing these as positional arguments will result in an error
+      librosa.filters.mel(sample_rate, self.n_fft, n_mels=nfilt, fmin=lowfreq, fmax=highfreq), dtype=torch.float
+
+
+
+
+
+
+
+
+[NeMo I 2022-04-21 23:12:49 save_restore_connector:149] Model EncDecCTCModelBPE was successfully restored from /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.
+
+
+
+
+
+
+
+[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules
+[NeMo W 2022-04-21 23:12:49 conv_asr:73] Turned off 235 masked convolutions
+[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/jit/_trace.py:916: UserWarning: `optimize` is deprecated and has no effect. Use `with torch.jit.optimized_execution() instead
+      warnings.warn(
+
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.
+      if hasattr(mod, name):
+
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.
+      item = getattr(mod, name)
+
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.
+      if hasattr(mod, name):
+
+[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.
+      item = getattr(mod, name)
+
+
+
+
+
[4]:
+
+
+
+
+(['stt_en_citrinet_256.ts'],
+ ['nemo.collections.asr.models.ctc_bpe_models.EncDecCTCModelBPE exported to ONNX'])
+
+
+
+

Benchmark utility

+

Let us define a helper benchmarking function, then benchmark the original Pytorch model.

+
+
[5]:
+
+
+
from __future__ import print_function
+from __future__ import absolute_import
+from __future__ import division
+
+import argparse
+import timeit
+import numpy as np
+import torch
+import torch_tensorrt as trtorch
+import torch.backends.cudnn as cudnn
+
+def benchmark(model, input_tensor, num_loops, model_name, batch_size):
+    def timeGraph(model, input_tensor, num_loops):
+        print("Warm up ...")
+        with torch.no_grad():
+            for _ in range(20):
+                features = model(input_tensor)
+
+        torch.cuda.synchronize()
+        print("Start timing ...")
+        timings = []
+        with torch.no_grad():
+            for i in range(num_loops):
+                start_time = timeit.default_timer()
+                features = model(input_tensor)
+                torch.cuda.synchronize()
+                end_time = timeit.default_timer()
+                timings.append(end_time - start_time)
+                # print("Iteration {}: {:.6f} s".format(i, end_time - start_time))
+        return timings
+    def printStats(graphName, timings, batch_size):
+        times = np.array(timings)
+        steps = len(times)
+        speeds = batch_size / times
+        time_mean = np.mean(times)
+        time_med = np.median(times)
+        time_99th = np.percentile(times, 99)
+        time_std = np.std(times, ddof=0)
+        speed_mean = np.mean(speeds)
+        speed_med = np.median(speeds)
+        msg = ("\n%s =================================\n"
+                "batch size=%d, num iterations=%d\n"
+                "  Median samples/s: %.1f, mean: %.1f\n"
+                "  Median latency (s): %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\n"
+                ) % (graphName,
+                    batch_size, steps,
+                    speed_med, speed_mean,
+                    time_med, time_mean, time_99th, time_std)
+        print(msg)
+    timings = timeGraph(model, input_tensor, num_loops)
+    printStats(model_name, timings, batch_size)
+
+precisions_str = 'fp32' # Precision (default=fp32, fp16)
+variant = 'stt_en_citrinet_256' # Nemo Citrinet variant
+batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)
+trt = False # If True, infer with Torch-TensorRT engine. Else, infer with Pytorch model.
+precision = torch.float32 if precisions_str =='fp32' else torch.float16
+
+for batch_size in batch_sizes:
+    if trt:
+        model_name = f"{variant}_bs{batch_size}_{precision}.torch-tensorrt"
+    else:
+        model_name = f"{variant}.ts"
+
+    print(f"Loading model: {model_name}")
+    # Load traced model to CPU first
+    model = torch.jit.load(model_name).cuda()
+    cudnn.benchmark = True
+    # Create random input tensor of certain size
+    torch.manual_seed(12345)
+    input_shape=(batch_size, 80, 1488)
+    input_tensor = torch.randn(input_shape).cuda()
+
+    # Timing graph inference
+    benchmark(model, input_tensor, 50, model_name, batch_size)
+
+
+
+
+
+
+
+
+Loading model: stt_en_citrinet_256.ts
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256.ts =================================
+batch size=1, num iterations=50
+  Median samples/s: 102.0, mean: 102.0
+  Median latency (s): 0.009802, mean: 0.009803, 99th_p: 0.009836, std_dev: 0.000014
+
+Loading model: stt_en_citrinet_256.ts
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256.ts =================================
+batch size=8, num iterations=50
+  Median samples/s: 429.1, mean: 429.1
+  Median latency (s): 0.018642, mean: 0.018643, 99th_p: 0.018670, std_dev: 0.000014
+
+Loading model: stt_en_citrinet_256.ts
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256.ts =================================
+batch size=32, num iterations=50
+  Median samples/s: 551.3, mean: 551.2
+  Median latency (s): 0.058047, mean: 0.058053, 99th_p: 0.058375, std_dev: 0.000106
+
+Loading model: stt_en_citrinet_256.ts
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256.ts =================================
+batch size=128, num iterations=50
+  Median samples/s: 594.1, mean: 594.1
+  Median latency (s): 0.215434, mean: 0.215446, 99th_p: 0.215806, std_dev: 0.000116
+
+
+
+

Confirming the GPU we are using here:

+
+
[6]:
+
+
+
!nvidia-smi
+
+
+
+
+
+
+
+
+Thu Apr 21 23:13:32 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA TITAN V      On   | 00000000:17:00.0 Off |                  N/A |
+| 38%   55C    P2    42W / 250W |   2462MiB / 12288MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+|   1  NVIDIA TITAN V      On   | 00000000:65:00.0 Off |                  N/A |
+| 28%   39C    P8    26W / 250W |    112MiB / 12288MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|    0   N/A  N/A      3909      G                                       4MiB |
+|    0   N/A  N/A      6047      C                                    2453MiB |
+|    1   N/A  N/A      3909      G                                      39MiB |
+|    1   N/A  N/A      4161      G                                      67MiB |
++-----------------------------------------------------------------------------+
+
+
+

## 3. Create Torch-TensorRT modules

+

In this step, we optimize the Citrinet Torchscript module with Torch-TensorRT with various precisions and batch sizes.

+
+
[10]:
+
+
+
import torch
+import torch.nn as nn
+import torch_tensorrt as torchtrt
+import argparse
+
+variant = "stt_en_citrinet_256"
+precisions = [torch.float, torch.half]
+batch_sizes = [1,8,32,128]
+
+model = torch.jit.load(f"{variant}.ts")
+
+for precision in precisions:
+    for batch_size in batch_sizes:
+        compile_settings = {
+            "inputs": [torchtrt.Input(shape=[batch_size, 80, 1488])],
+            "enabled_precisions": {precision},
+            "workspace_size": 2000000000,
+            "truncate_long_and_double": True,
+        }
+        print(f"Generating Torchscript-TensorRT module for batchsize {batch_size} precision {precision}")
+        trt_ts_module = torchtrt.compile(model, **compile_settings)
+        torch.jit.save(trt_ts_module, f"{variant}_bs{batch_size}_{precision}.torch-tensorrt")
+
+
+
+
+
+
+
+
+Generating Torchscript-TensorRT module for batchsize 1 precision torch.float32
+Generating Torchscript-TensorRT module for batchsize 8 precision torch.float32
+Generating Torchscript-TensorRT module for batchsize 32 precision torch.float32
+Generating Torchscript-TensorRT module for batchsize 128 precision torch.float32
+Generating Torchscript-TensorRT module for batchsize 1 precision torch.float16
+Generating Torchscript-TensorRT module for batchsize 8 precision torch.float16
+Generating Torchscript-TensorRT module for batchsize 32 precision torch.float16
+Generating Torchscript-TensorRT module for batchsize 128 precision torch.float16
+
+
+

## 4. Benchmark Torch-TensorRT models

+

Finally, we are ready to benchmark the Torch-TensorRT optimized Citrinet models.

+
+
+

FP32 (single precision)

+
+
[13]:
+
+
+
precisions_str = 'fp32' # Precision (default=fp32, fp16)
+batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)
+precision = torch.float32 if precisions_str =='fp32' else torch.float16
+trt = True
+
+for batch_size in batch_sizes:
+    if trt:
+        model_name = f"{variant}_bs{batch_size}_{precision}.torch-tensorrt"
+    else:
+        model_name = f"{variant}.ts"
+
+    print(f"Loading model: {model_name}")
+    # Load traced model to CPU first
+    model = torch.jit.load(model_name).cuda()
+    cudnn.benchmark = True
+    # Create random input tensor of certain size
+    torch.manual_seed(12345)
+    input_shape=(batch_size, 80, 1488)
+    input_tensor = torch.randn(input_shape).cuda()
+
+    # Timing graph inference
+    benchmark(model, input_tensor, 50, model_name, batch_size)
+
+
+
+
+
+
+
+
+Loading model: stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt =================================
+batch size=1, num iterations=50
+  Median samples/s: 242.2, mean: 218.0
+  Median latency (s): 0.004128, mean: 0.004825, 99th_p: 0.008071, std_dev: 0.001270
+
+Loading model: stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt =================================
+batch size=8, num iterations=50
+  Median samples/s: 729.9, mean: 709.0
+  Median latency (s): 0.010961, mean: 0.011388, 99th_p: 0.016114, std_dev: 0.001256
+
+Loading model: stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt =================================
+batch size=32, num iterations=50
+  Median samples/s: 955.6, mean: 953.4
+  Median latency (s): 0.033488, mean: 0.033572, 99th_p: 0.035722, std_dev: 0.000545
+
+Loading model: stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt =================================
+batch size=128, num iterations=50
+  Median samples/s: 1065.8, mean: 1069.4
+  Median latency (s): 0.120097, mean: 0.119708, 99th_p: 0.121618, std_dev: 0.001260
+
+
+
+
+
+

FP16 (half precision)

+
+
[14]:
+
+
+
precisions_str = 'fp16' # Precision (default=fp32, fp16)
+batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)
+precision = torch.float32 if precisions_str =='fp32' else torch.float16
+
+for batch_size in batch_sizes:
+    if trt:
+        model_name = f"{variant}_bs{batch_size}_{precision}.torch-tensorrt"
+    else:
+        model_name = f"{variant}.ts"
+
+    print(f"Loading model: {model_name}")
+    # Load traced model to CPU first
+    model = torch.jit.load(model_name).cuda()
+    cudnn.benchmark = True
+    # Create random input tensor of certain size
+    torch.manual_seed(12345)
+    input_shape=(batch_size, 80, 1488)
+    input_tensor = torch.randn(input_shape).cuda()
+
+    # Timing graph inference
+    benchmark(model, input_tensor, 50, model_name, batch_size)
+
+
+
+
+
+
+
+
+Loading model: stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt =================================
+batch size=1, num iterations=50
+  Median samples/s: 288.9, mean: 272.9
+  Median latency (s): 0.003462, mean: 0.003774, 99th_p: 0.006846, std_dev: 0.000820
+
+Loading model: stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt =================================
+batch size=8, num iterations=50
+  Median samples/s: 1201.0, mean: 1190.9
+  Median latency (s): 0.006661, mean: 0.006733, 99th_p: 0.008453, std_dev: 0.000368
+
+Loading model: stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt =================================
+batch size=32, num iterations=50
+  Median samples/s: 1538.2, mean: 1516.4
+  Median latency (s): 0.020804, mean: 0.021143, 99th_p: 0.024492, std_dev: 0.000973
+
+Loading model: stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt
+Warm up ...
+Start timing ...
+
+stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt =================================
+batch size=128, num iterations=50
+  Median samples/s: 1792.0, mean: 1777.0
+  Median latency (s): 0.071428, mean: 0.072057, 99th_p: 0.076796, std_dev: 0.001351
+
+
+
+

## 5. Conclusion

+

In this notebook, we have walked through the complete process of optimizing the Citrinet model with Torch-TensorRT. On an A100 GPU, with Torch-TensorRT, we observe a speedup of ~2.4X with FP32, and ~2.9X with FP16 at batchsize of 128.

+
+
+

What’s next

+

Now it’s time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.

+
+
[ ]:
+
+
+

+
+
+
+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_notebooks/CitriNet-example.ipynb b/docs/v1.2.0/_notebooks/CitriNet-example.ipynb new file mode 100644 index 0000000000..0573af0176 --- /dev/null +++ b/docs/v1.2.0/_notebooks/CitriNet-example.ipynb @@ -0,0 +1,964 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - CitriNet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "[Citrinet](https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/main/asr/models.html#citrinet) is an acoustic model used for the speech to text recognition task. It is a version of [QuartzNet](https://arxiv.org/pdf/1910.10261.pdf) that extends [ContextNet](https://arxiv.org/pdf/2005.03191.pdf), utilizing subword encoding (via Word Piece tokenization) and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models.\n", + "\n", + "CitriNet models take in audio segments and transcribe them to letter, byte pair, or word piece sequences. \n", + "\n", + "\"alt\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [Download Citrinet model](#2)\n", + "1. [Create Torch-TensorRT modules](#3)\n", + "1. [Benchmark Torch-TensorRT models](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in [README](README.md) to prepare a Docker container, within which you can run this notebook. \n", + "This notebook assumes that you are within a Jupyter environment in a docker container with Torch-TensorRT installed, such as an NGC monthly release of `nvcr.io/nvidia/pytorch:-py3` (where `yy` indicates the last two numbers of a calendar year, and `mm` indicates the month in two-digit numerical form)\n", + "\n", + "Now that you are in the docker, the next step is to install the required dependencies." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (3.2)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease\n", + "Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease\n", + "Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease\n", + "Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease\n", + "Reading package lists... Done\n", + "Reading package lists... Done\n", + "Building dependency tree \n", + "Reading state information... Done\n", + "libsndfile1 is already the newest version (1.0.28-7ubuntu0.1).\n", + "ffmpeg is already the newest version (7:4.2.4-1ubuntu0.1).\n", + "0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: Cython in /opt/conda/lib/python3.8/site-packages (0.29.28)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: nemo_toolkit[all]==1.5.1 in /opt/conda/lib/python3.8/site-packages (1.5.1)\n", + "Requirement already satisfied: numpy>=1.18.2 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.22.3)\n", + "Requirement already satisfied: onnx>=1.7.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.10.1)\n", + "Requirement already satisfied: python-dateutil in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.8.2)\n", + "Requirement already satisfied: tqdm>=4.41.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.63.0)\n", + "Requirement already satisfied: sentencepiece<1.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.96)\n", + "Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)\n", + "Requirement already satisfied: numba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.53.1)\n", + "Requirement already satisfied: torch in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.12.0a0+2c916ef)\n", + "Requirement already satisfied: unidecode in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.4)\n", + "Requirement already satisfied: frozendict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.3.2)\n", + "Requirement already satisfied: wrapt in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.14.0)\n", + "Requirement already satisfied: scikit-learn in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.24.2)\n", + "Requirement already satisfied: ruamel.yaml in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.17.21)\n", + "Requirement already satisfied: pesq in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.3)\n", + "Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.13.0a0)\n", + "Requirement already satisfied: gdown in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: editdistance in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.6.0)\n", + "Requirement already satisfied: boto3 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.21.45)\n", + "Requirement already satisfied: isort[requirements]<5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.3.21)\n", + "Requirement already satisfied: hydra-core>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.2)\n", + "Requirement already satisfied: youtokentome>=1.0.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.0.6)\n", + "Requirement already satisfied: pytorch-lightning>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.1)\n", + "Requirement already satisfied: jieba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.42.1)\n", + "Requirement already satisfied: fasttext in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.2)\n", + "Requirement already satisfied: soundfile in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.10.3.post1)\n", + "Requirement already satisfied: kaldiio in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.17.2)\n", + "Requirement already satisfied: pangu in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.0.6.1)\n", + "Requirement already satisfied: kaldi-python-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.2.2)\n", + "Requirement already satisfied: parameterized in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.1)\n", + "Requirement already satisfied: h5py in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: rapidfuzz in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.10)\n", + "Requirement already satisfied: marshmallow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.15.0)\n", + "Requirement already satisfied: opencc in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.3)\n", + "Requirement already satisfied: braceexpand in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.7)\n", + "Requirement already satisfied: omegaconf>=2.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.2)\n", + "Requirement already satisfied: sphinx in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: pillow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (9.0.0)\n", + "Requirement already satisfied: wordninja==2.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: torch-stft in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.4)\n", + "Requirement already satisfied: sox in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.4.1)\n", + "Requirement already satisfied: librosa in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.1)\n", + "Requirement already satisfied: regex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2022.3.15)\n", + "Requirement already satisfied: sacrebleu[ja] in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: black==19.10b0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (19.10b0)\n", + "Requirement already satisfied: pydub in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.25.1)\n", + "Requirement already satisfied: sphinxcontrib-bibtex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.4.2)\n", + "Requirement already satisfied: inflect in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.5.2)\n", + "Requirement already satisfied: pyannote.core in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (21.3)\n", + "Requirement already satisfied: kaldi-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.4)\n", + "Requirement already satisfied: pyannote.metrics in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)\n", + "Requirement already satisfied: g2p-en in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.0)\n", + "Requirement already satisfied: matplotlib in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.5.1)\n", + "Requirement already satisfied: torchmetrics>=0.4.1rc0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.0)\n", + "Requirement already satisfied: nltk>=3.6.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.7)\n", + "Requirement already satisfied: pyyaml<6 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.4.1)\n", + "Requirement already satisfied: scipy in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.3)\n", + "Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (7.7.0)\n", + "Requirement already satisfied: pytest in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.2.5)\n", + "Requirement already satisfied: pandas in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.5)\n", + "Requirement already satisfied: pytest-runner in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.0.0)\n", + "Requirement already satisfied: transformers>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.18.0)\n", + "Requirement already satisfied: sacremoses>=0.0.43 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.49)\n", + "Requirement already satisfied: pystoi in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.3.3)\n", + "Requirement already satisfied: attrdict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.1)\n", + "Requirement already satisfied: webdataset<=0.1.62,>=0.1.48 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.62)\n", + "Requirement already satisfied: wandb in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.12.15)\n", + "Requirement already satisfied: pypinyin in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.46.0)\n", + "Requirement already satisfied: attrs>=18.1.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (21.4.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: appdirs in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.4.4)\n", + "Requirement already satisfied: typed-ast>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.5.3)\n", + "Requirement already satisfied: pathspec<1,>=0.6 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.9.0)\n", + "Requirement already satisfied: click>=6.5 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (8.0.4)\n", + "Requirement already satisfied: toml>=0.9.4 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.10.2)\n", + "Requirement already satisfied: antlr4-python3-runtime==4.8 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (4.8)\n", + "Requirement already satisfied: importlib-resources<5.3 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (5.2.3)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources<5.3->hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (3.7.0)\n", + "Requirement already satisfied: pip-api in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.0.29)\n", + "Requirement already satisfied: pipreqs in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.4.11)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (4.31.2)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (1.4.0)\n", + "Requirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (3.0.7)\n", + "Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (0.11.0)\n", + "Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from nltk>=3.6.5->nemo_toolkit[all]==1.5.1) (1.1.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.2.1 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (4.1.1)\n", + "Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (1.16.0)\n", + "Requirement already satisfied: protobuf>=3.12.2 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (3.19.4)\n", + "Requirement already satisfied: pyDeprecate<0.4.0,>=0.3.1 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.3.2)\n", + "Requirement already satisfied: tensorboard>=2.2.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.8.0)\n", + "Requirement already satisfied: fsspec[http]!=2021.06.0,>=2021.05.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2022.2.0)\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.27.1)\n", + "Requirement already satisfied: aiohttp in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.8.1)\n", + "Requirement already satisfied: werkzeug>=0.11.15 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.3)\n", + "Requirement already satisfied: markdown>=2.6.8 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3.6)\n", + "Requirement already satisfied: setuptools>=41.0.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (59.5.0)\n", + "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.6)\n", + "Requirement already satisfied: google-auth<3,>=1.6.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.6.2)\n", + "Requirement already satisfied: wheel>=0.26 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.37.1)\n", + "Requirement already satisfied: grpcio>=1.24.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.44.0)\n", + "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.6.1)\n", + "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.8.1)\n", + "Requirement already satisfied: absl-py>=0.4 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (5.0.0)\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.2.8)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.8)\n", + "Requirement already satisfied: requests-oauthlib>=0.7.0 in /opt/conda/lib/python3.8/site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.1)\n", + "Requirement already satisfied: importlib-metadata>=4.4 in /opt/conda/lib/python3.8/site-packages (from markdown>=2.6.8->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.11.3)\n", + "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.8)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2021.10.8)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.26.8)\n", + "Requirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.8/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.2.0)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.5.1)\n", + "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.12.1)\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.0)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.2)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.0.2)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (6.0.2)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.2.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: s3transfer<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (0.5.2)\n", + "Requirement already satisfied: botocore<1.25.0,>=1.24.45 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.24.45)\n", + "Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: pybind11>=2.2 in /opt/conda/lib/python3.8/site-packages (from fasttext->nemo_toolkit[all]==1.5.1) (2.9.1)\n", + "Requirement already satisfied: distance>=0.1.3 in /opt/conda/lib/python3.8/site-packages (from g2p-en->nemo_toolkit[all]==1.5.1) (0.1.3)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from gdown->nemo_toolkit[all]==1.5.1) (4.10.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->gdown->nemo_toolkit[all]==1.5.1) (2.3.1)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (8.1.1)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (6.9.2)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (1.1.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.2.0)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (7.1.2)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (5.9.0)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (6.1)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.4)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.3)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.5)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)\n", + "Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.11.2)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.27)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.8.0)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.4)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (22.3.0)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (4.9.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.5)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.8.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.3)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.3)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.4)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.3.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.1.1)\n", + "Requirement already satisfied: resampy>=0.2.2 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (0.2.2)\n", + "Requirement already satisfied: pooch>=1.0 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (1.6.0)\n", + "Requirement already satisfied: audioread>=2.1.5 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (2.1.9)\n", + "Requirement already satisfied: llvmlite<0.37,>=0.36.0rc1 in /opt/conda/lib/python3.8/site-packages (from numba->nemo_toolkit[all]==1.5.1) (0.36.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from scikit-learn->nemo_toolkit[all]==1.5.1) (3.1.0)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.1)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.13)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.1.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.4)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.0)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.6.0)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.2)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.1)\n", + "Requirement already satisfied: pytz>=2017.3 in /opt/conda/lib/python3.8/site-packages (from pandas->nemo_toolkit[all]==1.5.1) (2021.3)\n", + "Requirement already satisfied: pip in /opt/conda/lib/python3.8/site-packages (from pip-api->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (21.2.4)\n", + "Requirement already satisfied: yarg in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.1.9)\n", + "Requirement already satisfied: docopt in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.6.2)\n", + "Requirement already satisfied: simplejson>=3.8.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (3.17.6)\n", + "Requirement already satisfied: sortedcontainers>=2.0.4 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (2.4.0)\n", + "Requirement already satisfied: tabulate>=0.7.7 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.8.9)\n", + "Requirement already satisfied: pyannote.database>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (4.1.3)\n", + "Requirement already satisfied: sympy>=1.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.10.1)\n", + "Requirement already satisfied: typer[all]>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.0)\n", + "Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.8/site-packages (from sympy>=1.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.2.1)\n", + "Requirement already satisfied: colorama<0.5.0,>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.4)\n", + "Requirement already satisfied: shellingham<2.0.0,>=1.3.0 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.4.0)\n", + "Requirement already satisfied: py>=1.8.2 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.11.0)\n", + "Requirement already satisfied: iniconfig in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.1.1)\n", + "Requirement already satisfied: pluggy<2.0,>=0.12 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: jarowinkler<1.1.0,>=1.0.2 in /opt/conda/lib/python3.8/site-packages (from rapidfuzz->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.1)\n", + "Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in /opt/conda/lib/python3.8/site-packages (from ruamel.yaml->nemo_toolkit[all]==1.5.1) (0.2.6)\n", + "Requirement already satisfied: portalocker in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (2.4.0)\n", + "Requirement already satisfied: ipadic<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: mecab-python3==1.0.3 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.3)\n", + "Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: alabaster<0.8,>=0.7 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.7.12)\n", + "Requirement already satisfied: babel>=1.3 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.9.1)\n", + "Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.1.5)\n", + "Requirement already satisfied: sphinxcontrib-devhelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: sphinxcontrib-jsmath in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.1)\n", + "Requirement already satisfied: sphinxcontrib-qthelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.3)\n", + "Requirement already satisfied: snowballstemmer>=1.1 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.2.0)\n", + "Requirement already satisfied: imagesize in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.3.0)\n", + "Requirement already satisfied: sphinxcontrib-applehelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: docutils<0.18,>=0.14 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.17.1)\n", + "Requirement already satisfied: pybtex-docutils>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (1.0.1)\n", + "Requirement already satisfied: pybtex>=0.24 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (0.24.0)\n", + "Requirement already satisfied: latexcodec>=1.0.4 in /opt/conda/lib/python3.8/site-packages (from pybtex>=0.24->sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (2.0.1)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.2)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.0.5)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)\n", + "Requirement already satisfied: pathtools in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.1.2)\n", + "Requirement already satisfied: setproctitle in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.2.3)\n", + "Requirement already satisfied: GitPython>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (3.1.27)\n", + "Requirement already satisfied: sentry-sdk>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.5.10)\n", + "Requirement already satisfied: shortuuid>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.0.8)\n", + "Requirement already satisfied: docker-pycreds>=0.4.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.4.0)\n", + "Requirement already satisfied: promise<3,>=2.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (2.3)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (4.0.9)\n", + "Requirement already satisfied: smmap<6,>=3.0.1 in /opt/conda/lib/python3.8/site-packages (from gitdb<5,>=4.0.1->GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (5.0.0)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "# Install dependencies\n", + "!pip install wget\n", + "!apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsndfile1 ffmpeg\n", + "!pip install Cython\n", + "\n", + "## Install NeMo\n", + "!pip install nemo_toolkit[all]==1.5.1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. Download Citrinet model\n", + "\n", + "Next, we download a pretrained Nemo Citrinet model and convert it to a Torchscript module:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import nemo\n", + "import torch\n", + "\n", + "import nemo.collections.asr as nemo_asr\n", + "from nemo.core import typecheck\n", + "typecheck.set_typecheck_enabled(False) " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading and saving stt_en_citrinet_256...\n", + "[NeMo I 2022-04-21 23:12:45 cloud:56] Found existing object /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.\n", + "[NeMo I 2022-04-21 23:12:45 cloud:62] Re-using file from: /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo\n", + "[NeMo I 2022-04-21 23:12:45 common:728] Instantiating model from pre-trained checkpoint\n", + "[NeMo I 2022-04-21 23:12:46 mixins:146] Tokenizer SentencePieceTokenizer initialized with 1024 tokens\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:47 modelPT:130] If you intend to do training or fine-tuning, please call the ModelPT.setup_training_data() method and provide a valid configuration file to setup the train data loader.\n", + " Train config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " trim_silence: true\n", + " max_duration: 16.7\n", + " shuffle: true\n", + " is_tarred: false\n", + " tarred_audio_filepaths: null\n", + " use_start_end_token: false\n", + " \n", + "[NeMo W 2022-04-21 23:12:47 modelPT:137] If you intend to do validation, please call the ModelPT.setup_validation_data() or ModelPT.setup_multiple_validation_data() method and provide a valid configuration file to setup the validation data loader(s). \n", + " Validation config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " shuffle: false\n", + " use_start_end_token: false\n", + " \n", + "[NeMo W 2022-04-21 23:12:47 modelPT:143] Please call the ModelPT.setup_test_data() or ModelPT.setup_multiple_test_data() method and provide a valid configuration file to setup the test data loader(s).\n", + " Test config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " shuffle: false\n", + " use_start_end_token: false\n", + " \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[NeMo I 2022-04-21 23:12:47 features:265] PADDING: 16\n", + "[NeMo I 2022-04-21 23:12:47 features:282] STFT using torch\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:47 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/nemo/collections/asr/parts/preprocessing/features.py:315: FutureWarning: Pass sr=16000, n_fft=512 as keyword args. From version 0.10 passing these as positional arguments will result in an error\n", + " librosa.filters.mel(sample_rate, self.n_fft, n_mels=nfilt, fmin=lowfreq, fmax=highfreq), dtype=torch.float\n", + " \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[NeMo I 2022-04-21 23:12:49 save_restore_connector:149] Model EncDecCTCModelBPE was successfully restored from /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules\n", + "[NeMo W 2022-04-21 23:12:49 conv_asr:73] Turned off 235 masked convolutions\n", + "[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules\n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/jit/_trace.py:916: UserWarning: `optimize` is deprecated and has no effect. Use `with torch.jit.optimized_execution() instead\n", + " warnings.warn(\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.\n", + " if hasattr(mod, name):\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.\n", + " item = getattr(mod, name)\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.\n", + " if hasattr(mod, name):\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.\n", + " item = getattr(mod, name)\n", + " \n" + ] + }, + { + "data": { + "text/plain": [ + "(['stt_en_citrinet_256.ts'],\n", + " ['nemo.collections.asr.models.ctc_bpe_models.EncDecCTCModelBPE exported to ONNX'])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "variant = 'stt_en_citrinet_256'\n", + "\n", + "print(f\"Downloading and saving {variant}...\")\n", + "asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name=variant)\n", + "asr_model.export(f\"{variant}.ts\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmark utility\n", + "\n", + "Let us define a helper benchmarking function, then benchmark the original Pytorch model." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 102.0, mean: 102.0\n", + " Median latency (s): 0.009802, mean: 0.009803, 99th_p: 0.009836, std_dev: 0.000014\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 429.1, mean: 429.1\n", + " Median latency (s): 0.018642, mean: 0.018643, 99th_p: 0.018670, std_dev: 0.000014\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 551.3, mean: 551.2\n", + " Median latency (s): 0.058047, mean: 0.058053, 99th_p: 0.058375, std_dev: 0.000106\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 594.1, mean: 594.1\n", + " Median latency (s): 0.215434, mean: 0.215446, 99th_p: 0.215806, std_dev: 0.000116\n", + "\n" + ] + } + ], + "source": [ + "from __future__ import print_function\n", + "from __future__ import absolute_import\n", + "from __future__ import division\n", + "\n", + "import argparse\n", + "import timeit\n", + "import numpy as np\n", + "import torch\n", + "import torch_tensorrt as trtorch\n", + "import torch.backends.cudnn as cudnn\n", + "\n", + "def benchmark(model, input_tensor, num_loops, model_name, batch_size):\n", + " def timeGraph(model, input_tensor, num_loops):\n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(20):\n", + " features = model(input_tensor)\n", + "\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(num_loops):\n", + " start_time = timeit.default_timer()\n", + " features = model(input_tensor)\n", + " torch.cuda.synchronize()\n", + " end_time = timeit.default_timer()\n", + " timings.append(end_time - start_time)\n", + " # print(\"Iteration {}: {:.6f} s\".format(i, end_time - start_time))\n", + " return timings\n", + " def printStats(graphName, timings, batch_size):\n", + " times = np.array(timings)\n", + " steps = len(times)\n", + " speeds = batch_size / times\n", + " time_mean = np.mean(times)\n", + " time_med = np.median(times)\n", + " time_99th = np.percentile(times, 99)\n", + " time_std = np.std(times, ddof=0)\n", + " speed_mean = np.mean(speeds)\n", + " speed_med = np.median(speeds)\n", + " msg = (\"\\n%s =================================\\n\"\n", + " \"batch size=%d, num iterations=%d\\n\"\n", + " \" Median samples/s: %.1f, mean: %.1f\\n\"\n", + " \" Median latency (s): %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\\n\"\n", + " ) % (graphName,\n", + " batch_size, steps,\n", + " speed_med, speed_mean,\n", + " time_med, time_mean, time_99th, time_std)\n", + " print(msg)\n", + " timings = timeGraph(model, input_tensor, num_loops)\n", + " printStats(model_name, timings, batch_size)\n", + "\n", + "precisions_str = 'fp32' # Precision (default=fp32, fp16)\n", + "variant = 'stt_en_citrinet_256' # Nemo Citrinet variant\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "trt = False # If True, infer with Torch-TensorRT engine. Else, infer with Pytorch model.\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Confirming the GPU we are using here:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Thu Apr 21 23:13:32 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA TITAN V On | 00000000:17:00.0 Off | N/A |\n", + "| 38% 55C P2 42W / 250W | 2462MiB / 12288MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + "| 1 NVIDIA TITAN V On | 00000000:65:00.0 Off | N/A |\n", + "| 28% 39C P8 26W / 250W | 112MiB / 12288MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| 0 N/A N/A 3909 G 4MiB |\n", + "| 0 N/A N/A 6047 C 2453MiB |\n", + "| 1 N/A N/A 3909 G 39MiB |\n", + "| 1 N/A N/A 4161 G 67MiB |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Create Torch-TensorRT modules\n", + "\n", + "In this step, we optimize the Citrinet Torchscript module with Torch-TensorRT with various precisions and batch sizes." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating Torchscript-TensorRT module for batchsize 1 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 8 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 32 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 128 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 1 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 8 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 32 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 128 precision torch.float16\n" + ] + } + ], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch_tensorrt as torchtrt\n", + "import argparse\n", + "\n", + "variant = \"stt_en_citrinet_256\"\n", + "precisions = [torch.float, torch.half]\n", + "batch_sizes = [1,8,32,128]\n", + "\n", + "model = torch.jit.load(f\"{variant}.ts\")\n", + "\n", + "for precision in precisions:\n", + " for batch_size in batch_sizes:\n", + " compile_settings = {\n", + " \"inputs\": [torchtrt.Input(shape=[batch_size, 80, 1488])],\n", + " \"enabled_precisions\": {precision},\n", + " \"workspace_size\": 2000000000,\n", + " \"truncate_long_and_double\": True,\n", + " }\n", + " print(f\"Generating Torchscript-TensorRT module for batchsize {batch_size} precision {precision}\")\n", + " trt_ts_module = torchtrt.compile(model, **compile_settings)\n", + " torch.jit.save(trt_ts_module, f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Benchmark Torch-TensorRT models\n", + "\n", + "Finally, we are ready to benchmark the Torch-TensorRT optimized Citrinet models." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 242.2, mean: 218.0\n", + " Median latency (s): 0.004128, mean: 0.004825, 99th_p: 0.008071, std_dev: 0.001270\n", + "\n", + "Loading model: stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 729.9, mean: 709.0\n", + " Median latency (s): 0.010961, mean: 0.011388, 99th_p: 0.016114, std_dev: 0.001256\n", + "\n", + "Loading model: stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 955.6, mean: 953.4\n", + " Median latency (s): 0.033488, mean: 0.033572, 99th_p: 0.035722, std_dev: 0.000545\n", + "\n", + "Loading model: stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 1065.8, mean: 1069.4\n", + " Median latency (s): 0.120097, mean: 0.119708, 99th_p: 0.121618, std_dev: 0.001260\n", + "\n" + ] + } + ], + "source": [ + "precisions_str = 'fp32' # Precision (default=fp32, fp16)\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "trt = True\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 288.9, mean: 272.9\n", + " Median latency (s): 0.003462, mean: 0.003774, 99th_p: 0.006846, std_dev: 0.000820\n", + "\n", + "Loading model: stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 1201.0, mean: 1190.9\n", + " Median latency (s): 0.006661, mean: 0.006733, 99th_p: 0.008453, std_dev: 0.000368\n", + "\n", + "Loading model: stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 1538.2, mean: 1516.4\n", + " Median latency (s): 0.020804, mean: 0.021143, 99th_p: 0.024492, std_dev: 0.000973\n", + "\n", + "Loading model: stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 1792.0, mean: 1777.0\n", + " Median latency (s): 0.071428, mean: 0.072057, 99th_p: 0.076796, std_dev: 0.001351\n", + "\n" + ] + } + ], + "source": [ + "precisions_str = 'fp16' # Precision (default=fp32, fp16)\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of optimizing the Citrinet model with Torch-TensorRT. On an A100 GPU, with Torch-TensorRT, we observe a speedup of ~**2.4X** with FP32, and ~**2.9X** with FP16 at batchsize of 128.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_notebooks/EfficientNet-example.html b/docs/v1.2.0/_notebooks/EfficientNet-example.html new file mode 100644 index 0000000000..62900356fa --- /dev/null +++ b/docs/v1.2.0/_notebooks/EfficientNet-example.html @@ -0,0 +1,1463 @@ + + + + + + + + + + + + + Torch-TensorRT Getting Started - EfficientNet-B0 — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Torch-TensorRT Getting Started - EfficientNet-B0
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + +
+
[1]:
+
+
+
# Copyright 2019 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+

219a0350e192474794f36336bd8c82ef

+
+

Torch-TensorRT Getting Started - EfficientNet-B0

+
+

Overview

+

In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the +best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch’s JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new +world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.

+

When deploying on NVIDIA GPUs TensorRT, NVIDIA’s Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA’s Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that +perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.

+

Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch.

+
+

Learning objectives

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained EfficientNet network, and running it to test the speedup obtained.

+
+
+
+

Content

+
    +
  1. Requirements

  2. +
  3. EfficientNet Overview

  4. +
  5. Running the model without optimizations

  6. +
  7. Accelerating with Torch-TensorRT

  8. +
  9. Conclusion

  10. +
+
+
[1]:
+
+
+
!pip install timm==0.4.12
+!nvidia-smi
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting timm==0.4.12
+  Downloading timm-0.4.12-py3-none-any.whl (376 kB)
+     |████████████████████████████████| 376 kB 11.9 MB/s eta 0:00:01
+Requirement already satisfied: torch>=1.4 in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (1.11.0a0+bfe5ad2)
+Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (0.12.0a0)
+Requirement already satisfied: typing_extensions in /opt/conda/lib/python3.8/site-packages (from torch>=1.4->timm==0.4.12) (4.0.1)
+Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (8.2.0)
+Requirement already satisfied: numpy in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (1.22.0)
+Installing collected packages: timm
+Successfully installed timm-0.4.12
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Fri Feb  4 21:29:36 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA GeForce ...  On   | 00000000:65:00.0 Off |                  N/A |
+| 30%   28C    P8    11W / 350W |      0MiB / 24576MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|  No running processes found                                                 |
++-----------------------------------------------------------------------------+
+
+
+

## 1. Requirements

+

NVIDIA’s NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of latest pytorch container to run this notebook.

+

Otherwise, you can follow the steps in notebooks/README to prepare a Docker container yourself, within which you can run this demo notebook.

+

## 2. EfficientNet Overview

+

PyTorch has a model repository called timm, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet.

+
+

Model Description

+

This model is based on the EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks paper.

+

alt

+

## 3. Running the model without optimizations

+

PyTorch has a model repository called timm, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet.

+
+
[4]:
+
+
+
import torch
+import torch_tensorrt
+import timm
+import time
+import numpy as np
+import torch.backends.cudnn as cudnn
+from timm.data import resolve_data_config
+from timm.data.transforms_factory import create_transform
+import json
+
+efficientnet_b0_model = timm.create_model('efficientnet_b0',pretrained=True)
+model = efficientnet_b0_model.eval().to("cuda")
+
+
+
+

With our model loaded, let’s proceed to downloading some images!

+
+
[5]:
+
+
+
!mkdir -p ./data
+!wget  -O ./data/img0.JPG "https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630"
+!wget  -O ./data/img1.JPG "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg"
+!wget  -O ./data/img2.JPG "https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg"
+!wget  -O ./data/img3.JPG "https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg"
+
+!wget  -O ./data/imagenet_class_index.json "https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json"
+
+
+
+
+
+
+
+
+--2022-02-04 21:30:07--  https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630
+Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.127, 18.65.227.37, 18.65.227.99, ...
+Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.127|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 24112 (24K) [image/jpeg]
+Saving to: ‘./data/img0.JPG’
+
+./data/img0.JPG     100%[===================>]  23.55K  --.-KB/s    in 0.004s
+
+2022-02-04 21:30:07 (6.40 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]
+
+--2022-02-04 21:30:07--  https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg
+Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117
+Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 452718 (442K) [image/jpeg]
+Saving to: ‘./data/img1.JPG’
+
+./data/img1.JPG     100%[===================>] 442.11K  --.-KB/s    in 0.06s
+
+2022-02-04 21:30:07 (6.83 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]
+
+--2022-02-04 21:30:08--  https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg
+Resolving www.artis.nl (www.artis.nl)... 94.75.225.20
+Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 361413 (353K) [image/jpeg]
+Saving to: ‘./data/img2.JPG’
+
+./data/img2.JPG     100%[===================>] 352.94K   246KB/s    in 1.4s
+
+2022-02-04 21:30:10 (246 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]
+
+--2022-02-04 21:30:10--  https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg
+Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.202.107, 104.18.201.107, 2606:4700::6812:ca6b, ...
+Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.202.107|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 90994 (89K) [image/jpeg]
+Saving to: ‘./data/img3.JPG’
+
+./data/img3.JPG     100%[===================>]  88.86K  --.-KB/s    in 0.006s
+
+2022-02-04 21:30:10 (14.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]
+
+--2022-02-04 21:30:11--  https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json
+Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.133.45
+Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.133.45|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 35363 (35K) [application/octet-stream]
+Saving to: ‘./data/imagenet_class_index.json’
+
+./data/imagenet_cla 100%[===================>]  34.53K  --.-KB/s    in 0.07s
+
+2022-02-04 21:30:11 (474 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]
+
+
+
+

All pre-trained models expect input images normalized in the same way, i.e. mini-batches of 3-channel RGB images of shape (3 x H x W), where H and W are expected to be at least 224. The images have to be loaded in to a range of [0, 1] and then normalized using mean = [0.485, 0.456, 0.406] and std = [0.229, 0.224, 0.225].

+

Here’s a sample execution.

+
+
[6]:
+
+
+
from PIL import Image
+from torchvision import transforms
+import matplotlib.pyplot as plt
+
+fig, axes = plt.subplots(nrows=2, ncols=2)
+
+for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    input_tensor = preprocess(img)
+    plt.subplot(2,2,i+1)
+    plt.imshow(img)
+    plt.axis('off')
+
+# loading labels
+with open("./data/imagenet_class_index.json") as json_file:
+    d = json.load(json_file)
+
+
+
+
+
+
+
+../_images/_notebooks_EfficientNet-example_12_0.png +
+
+

Throughout this tutorial, we will be making use of some utility functions; efficientnet_preprocess for preprocessing input images, predict to use the model for prediction and benchmark to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose.

+
+
[7]:
+
+
+
cudnn.benchmark = True
+
+def efficientnet_preprocess():
+    config = resolve_data_config({}, model=model)
+    transform = create_transform(**config)
+    return transform
+
+# decode the results into ([predicted class, description], probability)
+def predict(img_path, model):
+    img = Image.open(img_path)
+    preprocess = efficientnet_preprocess()
+    input_tensor = preprocess(img)
+    input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model
+
+    # move the input and model to GPU for speed if available
+    if torch.cuda.is_available():
+        input_batch = input_batch.to('cuda')
+        model.to('cuda')
+
+    with torch.no_grad():
+        output = model(input_batch)
+        # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes
+        sm_output = torch.nn.functional.softmax(output[0], dim=0)
+
+    ind = torch.argmax(sm_output)
+    return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)
+
+def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            features = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%10==0:
+                print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output features size:", features.size())
+    print('Average throughput: %.2f images/second'%(input_shape[0]/np.mean(timings)))
+
+
+
+

With the model downloaded and the util functions written, let’s just quickly see some predictions, and benchmark the model in its current un-optimized state.

+
+
[8]:
+
+
+
for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+
+    pred, prob = predict(img_path, efficientnet_b0_model)
+    print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))
+
+    plt.subplot(2,2,i+1)
+    plt.imshow(img);
+    plt.axis('off');
+    plt.title(pred[1])
+
+
+
+
+
+
+
+
+/opt/conda/lib/python3.8/site-packages/torchvision/transforms/transforms.py:321: UserWarning: Argument interpolation should be of type InterpolationMode instead of int. Please, use InterpolationMode enum.
+  warnings.warn(
+
+
+
+
+
+
+
+./data/img0.JPG - Predicted: ['n02109961', 'Eskimo_dog'], Probablility: 0.3987298309803009
+./data/img1.JPG - Predicted: ['n01537544', 'indigo_bunting'], Probablility: 0.23344755172729492
+./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9695423245429993
+./data/img3.JPG - Predicted: ['n01739381', 'vine_snake'], Probablility: 0.227739155292511
+
+
+
+
+
+
+../_images/_notebooks_EfficientNet-example_16_2.png +
+
+
+
[9]:
+
+
+
# Model benchmark without Torch-TensorRT
+benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 37.62 ms
+Iteration 20/100, avg batch time 37.66 ms
+Iteration 30/100, avg batch time 37.65 ms
+Iteration 40/100, avg batch time 37.66 ms
+Iteration 50/100, avg batch time 37.70 ms
+Iteration 60/100, avg batch time 37.70 ms
+Iteration 70/100, avg batch time 37.70 ms
+Iteration 80/100, avg batch time 37.71 ms
+Iteration 90/100, avg batch time 37.72 ms
+Iteration 100/100, avg batch time 37.72 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average throughput: 3393.46 images/second
+
+
+

## 4. Accelerating with Torch-TensorRT

+

Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our documentation.

+
+
+

FP32 (single precision)

+
+
[11]:
+
+
+
# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP32 precision.
+trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],
+    enabled_precisions = torch.float32, # Run with FP32
+    workspace_size = 1 << 22
+)
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+
+
+
+
[12]:
+
+
+
# Obtain the average time taken by a batch of input
+benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 27.86 ms
+Iteration 20/100, avg batch time 27.71 ms
+Iteration 30/100, avg batch time 27.99 ms
+Iteration 40/100, avg batch time 27.95 ms
+Iteration 50/100, avg batch time 27.89 ms
+Iteration 60/100, avg batch time 27.85 ms
+Iteration 70/100, avg batch time 28.00 ms
+Iteration 80/100, avg batch time 27.97 ms
+Iteration 90/100, avg batch time 27.95 ms
+Iteration 100/100, avg batch time 27.92 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average throughput: 4584.06 images/second
+
+
+
+
+

FP16 (half precision)

+
+
[17]:
+
+
+
# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP16 precision.
+trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],
+    enabled_precisions = {torch.half}, # Run with FP32
+    workspace_size = 1 << 22
+)
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x.1
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT] - Mean converter disregards dtype
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.
+
+
+
+
[18]:
+
+
+
# Obtain the average time taken by a batch of input
+benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 12.05 ms
+Iteration 20/100, avg batch time 12.56 ms
+Iteration 30/100, avg batch time 12.39 ms
+Iteration 40/100, avg batch time 12.34 ms
+Iteration 50/100, avg batch time 12.33 ms
+Iteration 60/100, avg batch time 12.32 ms
+Iteration 70/100, avg batch time 12.30 ms
+Iteration 80/100, avg batch time 12.28 ms
+Iteration 90/100, avg batch time 12.35 ms
+Iteration 100/100, avg batch time 12.35 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average throughput: 10362.23 images/second
+
+
+

## 5. Conclusion

+

In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of 1.35x with FP32, and 3.13x with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute +cards for maximum acceleration.

+
+
+

What’s next

+

Now it’s time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.

+
+
[ ]:
+
+
+

+
+
+
+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_notebooks/EfficientNet-example.ipynb b/docs/v1.2.0/_notebooks/EfficientNet-example.ipynb new file mode 100644 index 0000000000..31a3dad874 --- /dev/null +++ b/docs/v1.2.0/_notebooks/EfficientNet-example.ipynb @@ -0,0 +1,693 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - EfficientNet-B0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained EfficientNet network, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [EfficientNet Overview](#2)\n", + "1. [Running the model without optimizations](#3)\n", + "1. [Accelerating with Torch-TensorRT](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting timm==0.4.12\n", + " Downloading timm-0.4.12-py3-none-any.whl (376 kB)\n", + "\u001b[K |████████████████████████████████| 376 kB 11.9 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: torch>=1.4 in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (1.11.0a0+bfe5ad2)\n", + "Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (0.12.0a0)\n", + "Requirement already satisfied: typing_extensions in /opt/conda/lib/python3.8/site-packages (from torch>=1.4->timm==0.4.12) (4.0.1)\n", + "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (8.2.0)\n", + "Requirement already satisfied: numpy in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (1.22.0)\n", + "Installing collected packages: timm\n", + "Successfully installed timm-0.4.12\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Fri Feb 4 21:29:36 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:65:00.0 Off | N/A |\n", + "| 30% 28C P8 11W / 350W | 0MiB / 24576MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!pip install timm==0.4.12\n", + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. EfficientNet Overview\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet.\n", + "\n", + "### Model Description\n", + "\n", + "This model is based on the [EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks](https://arxiv.org/abs/1905.11946) paper.\n", + "\n", + "\"alt\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Running the model without optimizations\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "import torch\n", + "import torch_tensorrt\n", + "import timm\n", + "import time\n", + "import numpy as np\n", + "import torch.backends.cudnn as cudnn\n", + "from timm.data import resolve_data_config\n", + "from timm.data.transforms_factory import create_transform\n", + "import json \n", + "\n", + "efficientnet_b0_model = timm.create_model('efficientnet_b0',pretrained=True)\n", + "model = efficientnet_b0_model.eval().to(\"cuda\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our model loaded, let's proceed to downloading some images!" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-02-04 21:30:07-- https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\n", + "Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.127, 18.65.227.37, 18.65.227.99, ...\n", + "Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.127|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 24112 (24K) [image/jpeg]\n", + "Saving to: ‘./data/img0.JPG’\n", + "\n", + "./data/img0.JPG 100%[===================>] 23.55K --.-KB/s in 0.004s \n", + "\n", + "2022-02-04 21:30:07 (6.40 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-02-04 21:30:07-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K --.-KB/s in 0.06s \n", + "\n", + "2022-02-04 21:30:07 (6.83 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-02-04 21:30:08-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 246KB/s in 1.4s \n", + "\n", + "2022-02-04 21:30:10 (246 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-02-04 21:30:10-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.202.107, 104.18.201.107, 2606:4700::6812:ca6b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.202.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 90994 (89K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 88.86K --.-KB/s in 0.006s \n", + "\n", + "2022-02-04 21:30:10 (14.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]\n", + "\n", + "--2022-02-04 21:30:11-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.133.45\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.133.45|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-02-04 21:30:11 (474 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All pre-trained models expect input images normalized in the same way,\n", + "i.e. mini-batches of 3-channel RGB images of shape `(3 x H x W)`, where `H` and `W` are expected to be at least `224`.\n", + "The images have to be loaded in to a range of `[0, 1]` and then normalized using `mean = [0.485, 0.456, 0.406]`\n", + "and `std = [0.229, 0.224, 0.225]`.\n", + "\n", + "Here's a sample execution." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels\n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Throughout this tutorial, we will be making use of some utility functions; `efficientnet_preprocess` for preprocessing input images, `predict` to use the model for prediction and `benchmark` to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "cudnn.benchmark = True\n", + "\n", + "def efficientnet_preprocess():\n", + " config = resolve_data_config({}, model=model)\n", + " transform = create_transform(**config)\n", + " return transform\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = efficientnet_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average throughput: %.2f images/second'%(input_shape[0]/np.mean(timings)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the model downloaded and the util functions written, let's just quickly see some predictions, and benchmark the model in its current un-optimized state." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.8/site-packages/torchvision/transforms/transforms.py:321: UserWarning: Argument interpolation should be of type InterpolationMode instead of int. Please, use InterpolationMode enum.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02109961', 'Eskimo_dog'], Probablility: 0.3987298309803009\n", + "./data/img1.JPG - Predicted: ['n01537544', 'indigo_bunting'], Probablility: 0.23344755172729492\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9695423245429993\n", + "./data/img3.JPG - Predicted: ['n01739381', 'vine_snake'], Probablility: 0.227739155292511\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, efficientnet_b0_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 37.62 ms\n", + "Iteration 20/100, avg batch time 37.66 ms\n", + "Iteration 30/100, avg batch time 37.65 ms\n", + "Iteration 40/100, avg batch time 37.66 ms\n", + "Iteration 50/100, avg batch time 37.70 ms\n", + "Iteration 60/100, avg batch time 37.70 ms\n", + "Iteration 70/100, avg batch time 37.70 ms\n", + "Iteration 80/100, avg batch time 37.71 ms\n", + "Iteration 90/100, avg batch time 37.72 ms\n", + "Iteration 100/100, avg batch time 37.72 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 3393.46 images/second\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Accelerating with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our [documentation](https://nvidia.github.io/Torch-TensorRT/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 27.86 ms\n", + "Iteration 20/100, avg batch time 27.71 ms\n", + "Iteration 30/100, avg batch time 27.99 ms\n", + "Iteration 40/100, avg batch time 27.95 ms\n", + "Iteration 50/100, avg batch time 27.89 ms\n", + "Iteration 60/100, avg batch time 27.85 ms\n", + "Iteration 70/100, avg batch time 28.00 ms\n", + "Iteration 80/100, avg batch time 27.97 ms\n", + "Iteration 90/100, avg batch time 27.95 ms\n", + "Iteration 100/100, avg batch time 27.92 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 4584.06 images/second\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],\n", + " enabled_precisions = {torch.half}, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 12.05 ms\n", + "Iteration 20/100, avg batch time 12.56 ms\n", + "Iteration 30/100, avg batch time 12.39 ms\n", + "Iteration 40/100, avg batch time 12.34 ms\n", + "Iteration 50/100, avg batch time 12.33 ms\n", + "Iteration 60/100, avg batch time 12.32 ms\n", + "Iteration 70/100, avg batch time 12.30 ms\n", + "Iteration 80/100, avg batch time 12.28 ms\n", + "Iteration 90/100, avg batch time 12.35 ms\n", + "Iteration 100/100, avg batch time 12.35 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 10362.23 images/second\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of **1.35x** with FP32, and **3.13x** with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_notebooks/Hugging-Face-BERT.html b/docs/v1.2.0/_notebooks/Hugging-Face-BERT.html new file mode 100644 index 0000000000..6a6b51f0fb --- /dev/null +++ b/docs/v1.2.0/_notebooks/Hugging-Face-BERT.html @@ -0,0 +1,1380 @@ + + + + + + + + + + + + + Masked Language Modeling (MLM) with Hugging Face BERT Transformer — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Masked Language Modeling (MLM) with Hugging Face BERT Transformer
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + +
+
[1]:
+
+
+
# Copyright 2022 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+

05794857f0be4549aac84aed85b14705

+
+

Masked Language Modeling (MLM) with Hugging Face BERT Transformer

+
+

Learning objectives

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained BERT transformer from Hugging Face, and running it to test the speedup obtained.

+
+
+

Contents

+
    +
  1. Requirements

  2. +
  3. BERT Overview

  4. +
  5. Creating TorchScript modules

  6. +
  7. Compiling with Torch-TensorRT

  8. +
  9. Benchmarking

  10. +
  11. Conclusion

  12. +
+

## 1. Requirements

+

NVIDIA’s NGC provides a PyTorch Docker Container which contains PyTorch and Torch-TensorRT. Starting with version 22.05-py3, we can make use of latest pytorch container to run this notebook.

+

Otherwise, you can follow the steps in notebooks/README to prepare a Docker container yourself, within which you can run this demo notebook.

+
+
[2]:
+
+
+
!pip install transformers
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: transformers in /opt/conda/lib/python3.8/site-packages (4.18.0)
+Requirement already satisfied: tqdm>=4.27 in /opt/conda/lib/python3.8/site-packages (from transformers) (4.63.0)
+Requirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (2022.3.15)
+Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.5.1)
+Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.12.1)
+Requirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (1.22.3)
+Requirement already satisfied: sacremoses in /opt/conda/lib/python3.8/site-packages (from transformers) (0.0.49)
+Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from transformers) (2.27.1)
+Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (6.0)
+Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers) (3.6.0)
+Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (21.3)
+Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.8/site-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (4.1.1)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->transformers) (3.0.7)
+Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (1.26.8)
+Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2.0.12)
+Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2021.10.8)
+Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (3.3)
+Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.16.0)
+Requirement already satisfied: click in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (8.0.4)
+Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.1.0)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+
+
[3]:
+
+
+
from transformers import BertTokenizer, BertForMaskedLM
+import torch
+import timeit
+import numpy as np
+import torch_tensorrt
+import torch.backends.cudnn as cudnn
+
+
+
+

## 2. BERT Overview

+

Transformers comprise a class of deep learning algorithms employing self-attention; broadly speaking, the models learn large matrices of numbers, each element of which denotes how important one component of input data is to another. Since their introduction in 2017, transformers have enjoyed widespread adoption, particularly in natural language processing, but also in computer vision problems. This is largely because they are easier to parallelize than the sequence models which attention +mechanisms were originally designed to augment.

+

Hugging Face is a company that maintains a huge respository of pre-trained transformer models. The company also provides tools for integrating those models into PyTorch code and running inference with them.

+

One of the most popular transformer models is BERT (Bidirectional Encoder Representations from Transformers). First developed at Google and released in 2018, it has become the backbone of Google’s search engine and a standard benchmark for NLP experiments. BERT was originally trained for next sentence prediction and masked language modeling (MLM), which aims to predict hidden words in sentences. In this notebook, we will use Hugging Face’s bert-base-uncased model (BERT’s smallest and +simplest form, which does not employ text capitalization) for MLM.

+

## 3. Creating TorchScript modules

+

First, create a pretrained BERT tokenizer from the bert-base-uncased model

+
+
[4]:
+
+
+
enc = BertTokenizer.from_pretrained('bert-base-uncased')
+
+
+
+

Create dummy inputs to generate a traced TorchScript model later

+
+
[5]:
+
+
+
batch_size = 4
+
+batched_indexed_tokens = [[101, 64]*64]*batch_size
+batched_segment_ids = [[0, 1]*64]*batch_size
+batched_attention_masks = [[1, 1]*64]*batch_size
+
+tokens_tensor = torch.tensor(batched_indexed_tokens)
+segments_tensor = torch.tensor(batched_segment_ids)
+attention_masks_tensor = torch.tensor(batched_attention_masks)
+
+
+
+

Obtain a BERT masked language model from Hugging Face in the (scripted) TorchScript, then use the dummy inputs to trace it

+
+
[6]:
+
+
+
mlm_model_ts = BertForMaskedLM.from_pretrained('bert-base-uncased', torchscript=True)
+traced_mlm_model = torch.jit.trace(mlm_model_ts, [tokens_tensor, segments_tensor, attention_masks_tensor])
+
+
+
+
+
+
+
+
+Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertForMaskedLM: ['cls.seq_relationship.bias', 'cls.seq_relationship.weight']
+- This IS expected if you are initializing BertForMaskedLM from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).
+- This IS NOT expected if you are initializing BertForMaskedLM from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).
+
+
+

Define 4 masked sentences, with 1 word in each sentence hidden from the model. Fluent English speakers will probably be able to guess the masked words, but just in case, they are 'capital', 'language', 'innings', and 'mathematics'.

+

Also create a list containing the position of the masked word within each sentence. Given Python’s 0-based indexing convention, the numbers are each higher by 1 than might be expected. This is because the token at index 0 in each sentence is a beginning-of-sentence token, denoted [CLS] when entered explicitly.

+
+
[7]:
+
+
+
masked_sentences = ['Paris is the [MASK] of France.',
+                    'The primary [MASK] of the United States is English.',
+                    'A baseball game consists of at least nine [MASK].',
+                    'Topology is a branch of [MASK] concerned with the properties of geometric objects that remain unchanged under continuous transformations.']
+pos_masks = [4, 3, 9, 6]
+
+
+
+

Pass the masked sentences into the (scripted) TorchScript MLM model and verify that the unmasked sentences yield the expected results.

+

Because the sentences are of different lengths, we must specify the padding argument in calling our encoder/tokenizer. There are several possible padding strategies, but we’ll use 'max_length' padding with max_length=128. Later, when we compile an optimized version of the model with Torch-TensorRT, the optimized model will expect inputs of length 128, hence our choice of padding strategy and length here.

+
+
[8]:
+
+
+
encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)
+outputs = mlm_model_ts(**encoded_inputs)
+most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]
+unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')
+unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]
+for sentence in unmasked_sentences:
+    print(sentence)
+
+
+
+
+
+
+
+
+Paris is the capital of France.
+The primary language of the United States is English.
+A baseball game consists of at least nine innings.
+Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.
+
+
+

Pass the masked sentences into the traced MLM model and verify that the unmasked sentences yield the expected results.

+

Note the difference in how the encoded_inputs are passed into the model in the following cell compared to the previous one. If you examine encoded_inputs, you’ll find that it’s a dictionary with 3 keys, 'input_ids', 'token_type_ids', and 'attention_mask', each with a PyTorch tensor as an associated value. The traced model will accept **encoded_inputs as an input, but the Torch-TensorRT-optimized model (to be defined later) will not.

+
+
[9]:
+
+
+
encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)
+outputs = traced_mlm_model(encoded_inputs['input_ids'], encoded_inputs['token_type_ids'], encoded_inputs['attention_mask'])
+most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]
+unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')
+unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]
+for sentence in unmasked_sentences:
+    print(sentence)
+
+
+
+
+
+
+
+
+Paris is the capital of France.
+The primary language of the United States is English.
+A baseball game consists of at least nine innings.
+Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.
+
+
+

## 4. Compiling with Torch-TensorRT

+

Change the logging level to avoid long printouts

+
+
[10]:
+
+
+
new_level = torch_tensorrt.logging.Level.Error
+torch_tensorrt.logging.set_reportable_log_level(new_level)
+
+
+
+

Compile the model

+
+
[11]:
+
+
+
trt_model = torch_tensorrt.compile(traced_mlm_model,
+    inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32),  # input_ids
+             torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32),  # token_type_ids
+             torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask
+    enabled_precisions= {torch.float32}, # Run with 32-bit precision
+    workspace_size=2000000000,
+    truncate_long_and_double=True
+)
+
+
+
+

Pass the masked sentences into the compiled model and verify that the unmasked sentences yield the expected results.

+
+
[12]:
+
+
+
enc_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)
+enc_inputs = {k: v.type(torch.int32).cuda() for k, v in enc_inputs.items()}
+output_trt = trt_model(enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+most_likely_token_ids_trt = [torch.argmax(output_trt[i, pos, :]) for i, pos in enumerate(pos_masks)]
+unmasked_tokens_trt = enc.decode(most_likely_token_ids_trt).split(' ')
+unmasked_sentences_trt = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens_trt)]
+for sentence in unmasked_sentences_trt:
+    print(sentence)
+
+
+
+
+
+
+
+
+Paris is the capital of France.
+The primary language of the United States is English.
+A baseball game consists of at least nine innings.
+Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.
+
+
+

Compile the model again, this time with 16-bit precision

+
+
[13]:
+
+
+
trt_model_fp16 = torch_tensorrt.compile(traced_mlm_model,
+    inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32),  # input_ids
+             torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32),  # token_type_ids
+             torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask
+    enabled_precisions= {torch.half}, # Run with 16-bit precision
+    workspace_size=2000000000,
+    truncate_long_and_double=True
+)
+
+
+
+

## 5. Benchmarking

+

In developing this notebook, we conducted our benchmarking on a single NVIDIA A100 GPU. Your results may differ from those shown, particularly on a different GPU.

+

This function passes the inputs into the model and runs inference num_loops times, then returns a list of length containing the amount of time in seconds that each instance of inference took.

+
+
[14]:
+
+
+
def timeGraph(model, input_tensor1, input_tensor2, input_tensor3, num_loops=50):
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(20):
+            features = model(input_tensor1, input_tensor2, input_tensor3)
+
+    torch.cuda.synchronize()
+
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(num_loops):
+            start_time = timeit.default_timer()
+            features = model(input_tensor1, input_tensor2, input_tensor3)
+            torch.cuda.synchronize()
+            end_time = timeit.default_timer()
+            timings.append(end_time - start_time)
+            # print("Iteration {}: {:.6f} s".format(i, end_time - start_time))
+
+    return timings
+
+
+
+

This function prints the number of input batches the model is able to process each second and summary statistics of the model’s latency.

+
+
[15]:
+
+
+
def printStats(graphName, timings, batch_size):
+    times = np.array(timings)
+    steps = len(times)
+    speeds = batch_size / times
+    time_mean = np.mean(times)
+    time_med = np.median(times)
+    time_99th = np.percentile(times, 99)
+    time_std = np.std(times, ddof=0)
+    speed_mean = np.mean(speeds)
+    speed_med = np.median(speeds)
+
+    msg = ("\n%s =================================\n"
+            "batch size=%d, num iterations=%d\n"
+            "  Median text batches/second: %.1f, mean: %.1f\n"
+            "  Median latency: %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\n"
+            ) % (graphName,
+                batch_size, steps,
+                speed_med, speed_mean,
+                time_med, time_mean, time_99th, time_std)
+    print(msg)
+
+
+
+
+
[16]:
+
+
+
cudnn.benchmark = True
+
+
+
+

Benchmark the (scripted) TorchScript model on GPU

+
+
[17]:
+
+
+
timings = timeGraph(mlm_model_ts.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+
+printStats("BERT", timings, batch_size)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+
+BERT =================================
+batch size=4, num iterations=50
+  Median text batches/second: 599.1, mean: 597.6
+  Median latency: 0.006677, mean: 0.006693, 99th_p: 0.006943, std_dev: 0.000059
+
+
+
+

Benchmark the traced model on GPU

+
+
[18]:
+
+
+
timings = timeGraph(traced_mlm_model.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+
+printStats("BERT", timings, batch_size)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+
+BERT =================================
+batch size=4, num iterations=50
+  Median text batches/second: 951.2, mean: 951.0
+  Median latency: 0.004205, mean: 0.004206, 99th_p: 0.004256, std_dev: 0.000015
+
+
+
+

Benchmark the compiled FP32 model on GPU

+
+
[19]:
+
+
+
timings = timeGraph(trt_model, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+
+printStats("BERT", timings, batch_size)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+
+BERT =================================
+batch size=4, num iterations=50
+  Median text batches/second: 1216.9, mean: 1216.4
+  Median latency: 0.003287, mean: 0.003289, 99th_p: 0.003317, std_dev: 0.000007
+
+
+
+

Benchmark the compiled FP16 model on GPU

+
+
[20]:
+
+
+
timings = timeGraph(trt_model_fp16, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])
+
+printStats("BERT", timings, batch_size)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+
+BERT =================================
+batch size=4, num iterations=50
+  Median text batches/second: 1776.7, mean: 1771.1
+  Median latency: 0.002251, mean: 0.002259, 99th_p: 0.002305, std_dev: 0.000015
+
+
+
+

## 6. Conclusion

+

In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for Masked Language Modeling with Hugging Face’s bert-base-uncased transformer and testing the performance impact of the optimization. With Torch-TensorRT on an NVIDIA A100 GPU, we observe the speedups indicated below. These acceleration numbers will vary from GPU to GPU (as well as implementation to implementation based on the ops used) and we encorage you to try out latest +generation of Data center compute cards for maximum acceleration.

+

Scripted (GPU): 1.0x Traced (GPU): 1.62x Torch-TensorRT (FP32): 2.14x Torch-TensorRT (FP16): 3.15x

+
+

What’s next

+

Now it’s time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.

+
+
[ ]:
+
+
+

+
+
+
+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_notebooks/Hugging-Face-BERT.ipynb b/docs/v1.2.0/_notebooks/Hugging-Face-BERT.ipynb new file mode 100644 index 0000000000..9b027b473e --- /dev/null +++ b/docs/v1.2.0/_notebooks/Hugging-Face-BERT.ipynb @@ -0,0 +1,714 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "9369b63c", + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2022 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "id": "d0a97ac5", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Masked Language Modeling (MLM) with Hugging Face BERT Transformer" + ] + }, + { + "cell_type": "markdown", + "id": "83f47edb", + "metadata": {}, + "source": [ + "## Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained BERT transformer from Hugging Face, and running it to test the speedup obtained.\n", + "\n", + "## Contents\n", + "1. [Requirements](#1)\n", + "2. [BERT Overview](#2)\n", + "3. [Creating TorchScript modules](#3)\n", + "4. [Compiling with Torch-TensorRT](#4)\n", + "5. [Benchmarking](#5)\n", + "6. [Conclusion](#6)" + ] + }, + { + "cell_type": "markdown", + "id": "596fa151", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides a PyTorch Docker Container which contains PyTorch and Torch-TensorRT. Starting with version `22.05-py3`, we can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "58e687d1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: transformers in /opt/conda/lib/python3.8/site-packages (4.18.0)\n", + "Requirement already satisfied: tqdm>=4.27 in /opt/conda/lib/python3.8/site-packages (from transformers) (4.63.0)\n", + "Requirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (2022.3.15)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.5.1)\n", + "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.12.1)\n", + "Requirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (1.22.3)\n", + "Requirement already satisfied: sacremoses in /opt/conda/lib/python3.8/site-packages (from transformers) (0.0.49)\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from transformers) (2.27.1)\n", + "Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (6.0)\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers) (3.6.0)\n", + "Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (21.3)\n", + "Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.8/site-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (4.1.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->transformers) (3.0.7)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (1.26.8)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2021.10.8)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (3.3)\n", + "Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.16.0)\n", + "Requirement already satisfied: click in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (8.0.4)\n", + "Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.1.0)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install transformers" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1104c4f1", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import BertTokenizer, BertForMaskedLM\n", + "import torch\n", + "import timeit\n", + "import numpy as np\n", + "import torch_tensorrt\n", + "import torch.backends.cudnn as cudnn" + ] + }, + { + "cell_type": "markdown", + "id": "acf67a5e", + "metadata": {}, + "source": [ + "\n", + "## 2. BERT Overview\n", + "\n", + "Transformers comprise a class of deep learning algorithms employing self-attention; broadly speaking, the models learn large matrices of numbers, each element of which denotes how important one component of input data is to another. Since their introduction in 2017, transformers have enjoyed widespread adoption, particularly in natural language processing, but also in computer vision problems. This is largely because they are easier to parallelize than the sequence models which attention mechanisms were originally designed to augment. \n", + "\n", + "Hugging Face is a company that maintains a huge respository of pre-trained transformer models. The company also provides tools for integrating those models into PyTorch code and running inference with them. \n", + "\n", + "One of the most popular transformer models is BERT (Bidirectional Encoder Representations from Transformers). First developed at Google and released in 2018, it has become the backbone of Google's search engine and a standard benchmark for NLP experiments. BERT was originally trained for next sentence prediction and masked language modeling (MLM), which aims to predict hidden words in sentences. In this notebook, we will use Hugging Face's `bert-base-uncased` model (BERT's smallest and simplest form, which does not employ text capitalization) for MLM." + ] + }, + { + "cell_type": "markdown", + "id": "19e711c0", + "metadata": {}, + "source": [ + "\n", + "## 3. Creating TorchScript modules " + ] + }, + { + "cell_type": "markdown", + "id": "81d4c6f6", + "metadata": {}, + "source": [ + "First, create a pretrained BERT tokenizer from the `bert-base-uncased` model" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c7c8721e", + "metadata": {}, + "outputs": [], + "source": [ + "enc = BertTokenizer.from_pretrained('bert-base-uncased')" + ] + }, + { + "cell_type": "markdown", + "id": "b7c1c679", + "metadata": {}, + "source": [ + "Create dummy inputs to generate a traced TorchScript model later" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c3827087", + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 4\n", + "\n", + "batched_indexed_tokens = [[101, 64]*64]*batch_size\n", + "batched_segment_ids = [[0, 1]*64]*batch_size\n", + "batched_attention_masks = [[1, 1]*64]*batch_size\n", + "\n", + "tokens_tensor = torch.tensor(batched_indexed_tokens)\n", + "segments_tensor = torch.tensor(batched_segment_ids)\n", + "attention_masks_tensor = torch.tensor(batched_attention_masks)" + ] + }, + { + "cell_type": "markdown", + "id": "7e31b27f", + "metadata": {}, + "source": [ + "Obtain a BERT masked language model from Hugging Face in the (scripted) TorchScript, then use the dummy inputs to trace it" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a3cd5a35", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertForMaskedLM: ['cls.seq_relationship.bias', 'cls.seq_relationship.weight']\n", + "- This IS expected if you are initializing BertForMaskedLM from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n", + "- This IS NOT expected if you are initializing BertForMaskedLM from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n" + ] + } + ], + "source": [ + "mlm_model_ts = BertForMaskedLM.from_pretrained('bert-base-uncased', torchscript=True)\n", + "traced_mlm_model = torch.jit.trace(mlm_model_ts, [tokens_tensor, segments_tensor, attention_masks_tensor])" + ] + }, + { + "cell_type": "markdown", + "id": "d8d2217a", + "metadata": {}, + "source": [ + "Define 4 masked sentences, with 1 word in each sentence hidden from the model. Fluent English speakers will probably be able to guess the masked words, but just in case, they are `'capital'`, `'language'`, `'innings'`, and `'mathematics'`.\n", + "\n", + "Also create a list containing the position of the masked word within each sentence. Given Python's 0-based indexing convention, the numbers are each higher by 1 than might be expected. This is because the token at index 0 in each sentence is a beginning-of-sentence token, denoted `[CLS]` when entered explicitly. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4d1af982", + "metadata": {}, + "outputs": [], + "source": [ + "masked_sentences = ['Paris is the [MASK] of France.', \n", + " 'The primary [MASK] of the United States is English.', \n", + " 'A baseball game consists of at least nine [MASK].', \n", + " 'Topology is a branch of [MASK] concerned with the properties of geometric objects that remain unchanged under continuous transformations.']\n", + "pos_masks = [4, 3, 9, 6]" + ] + }, + { + "cell_type": "markdown", + "id": "4d89b4c8", + "metadata": {}, + "source": [ + "Pass the masked sentences into the (scripted) TorchScript MLM model and verify that the unmasked sentences yield the expected results. \n", + "\n", + "Because the sentences are of different lengths, we must specify the `padding` argument in calling our encoder/tokenizer. There are several possible padding strategies, but we'll use `'max_length'` padding with `max_length=128`. Later, when we compile an optimized version of the model with Torch-TensorRT, the optimized model will expect inputs of length 128, hence our choice of padding strategy and length here. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d2d7546b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "outputs = mlm_model_ts(**encoded_inputs)\n", + "most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]\n", + "unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')\n", + "unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]\n", + "for sentence in unmasked_sentences:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "b0b423ff", + "metadata": {}, + "source": [ + "Pass the masked sentences into the traced MLM model and verify that the unmasked sentences yield the expected results. \n", + "\n", + "Note the difference in how the `encoded_inputs` are passed into the model in the following cell compared to the previous one. If you examine `encoded_inputs`, you'll find that it's a dictionary with 3 keys, `'input_ids'`, `'token_type_ids'`, and `'attention_mask'`, each with a PyTorch tensor as an associated value. The traced model will accept `**encoded_inputs` as an input, but the Torch-TensorRT-optimized model (to be defined later) will not. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "683a4a73", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "outputs = traced_mlm_model(encoded_inputs['input_ids'], encoded_inputs['token_type_ids'], encoded_inputs['attention_mask'])\n", + "most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]\n", + "unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')\n", + "unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]\n", + "for sentence in unmasked_sentences:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "7a31b545", + "metadata": {}, + "source": [ + "\n", + "## 4. Compiling with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "id": "413d8b4f", + "metadata": {}, + "source": [ + "Change the logging level to avoid long printouts" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "42862893", + "metadata": {}, + "outputs": [], + "source": [ + "new_level = torch_tensorrt.logging.Level.Error\n", + "torch_tensorrt.logging.set_reportable_log_level(new_level)" + ] + }, + { + "cell_type": "markdown", + "id": "121d6d59", + "metadata": {}, + "source": [ + "Compile the model" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "eab90150", + "metadata": {}, + "outputs": [], + "source": [ + "trt_model = torch_tensorrt.compile(traced_mlm_model, \n", + " inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # input_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # token_type_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask\n", + " enabled_precisions= {torch.float32}, # Run with 32-bit precision\n", + " workspace_size=2000000000,\n", + " truncate_long_and_double=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a96751ce", + "metadata": {}, + "source": [ + "Pass the masked sentences into the compiled model and verify that the unmasked sentences yield the expected results." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "097ea381", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "enc_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "enc_inputs = {k: v.type(torch.int32).cuda() for k, v in enc_inputs.items()}\n", + "output_trt = trt_model(enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "most_likely_token_ids_trt = [torch.argmax(output_trt[i, pos, :]) for i, pos in enumerate(pos_masks)] \n", + "unmasked_tokens_trt = enc.decode(most_likely_token_ids_trt).split(' ')\n", + "unmasked_sentences_trt = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens_trt)]\n", + "for sentence in unmasked_sentences_trt:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "a398271d", + "metadata": {}, + "source": [ + "Compile the model again, this time with 16-bit precision" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "a063dee2", + "metadata": {}, + "outputs": [], + "source": [ + "trt_model_fp16 = torch_tensorrt.compile(traced_mlm_model, \n", + " inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # input_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # token_type_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask\n", + " enabled_precisions= {torch.half}, # Run with 16-bit precision\n", + " workspace_size=2000000000,\n", + " truncate_long_and_double=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a926334a", + "metadata": {}, + "source": [ + "\n", + "## 5. Benchmarking\n", + "\n", + "In developing this notebook, we conducted our benchmarking on a single NVIDIA A100 GPU. Your results may differ from those shown, particularly on a different GPU." + ] + }, + { + "cell_type": "markdown", + "id": "976c6fb9", + "metadata": {}, + "source": [ + "This function passes the inputs into the model and runs inference `num_loops` times, then returns a list of length containing the amount of time in seconds that each instance of inference took." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b72a091e", + "metadata": {}, + "outputs": [], + "source": [ + "def timeGraph(model, input_tensor1, input_tensor2, input_tensor3, num_loops=50):\n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(20):\n", + " features = model(input_tensor1, input_tensor2, input_tensor3)\n", + "\n", + " torch.cuda.synchronize()\n", + "\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(num_loops):\n", + " start_time = timeit.default_timer()\n", + " features = model(input_tensor1, input_tensor2, input_tensor3)\n", + " torch.cuda.synchronize()\n", + " end_time = timeit.default_timer()\n", + " timings.append(end_time - start_time)\n", + " # print(\"Iteration {}: {:.6f} s\".format(i, end_time - start_time))\n", + "\n", + " return timings" + ] + }, + { + "cell_type": "markdown", + "id": "0b44dcf8", + "metadata": {}, + "source": [ + "This function prints the number of input batches the model is able to process each second and summary statistics of the model's latency." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "2ef71ab7", + "metadata": {}, + "outputs": [], + "source": [ + "def printStats(graphName, timings, batch_size):\n", + " times = np.array(timings)\n", + " steps = len(times)\n", + " speeds = batch_size / times\n", + " time_mean = np.mean(times)\n", + " time_med = np.median(times)\n", + " time_99th = np.percentile(times, 99)\n", + " time_std = np.std(times, ddof=0)\n", + " speed_mean = np.mean(speeds)\n", + " speed_med = np.median(speeds)\n", + "\n", + " msg = (\"\\n%s =================================\\n\"\n", + " \"batch size=%d, num iterations=%d\\n\"\n", + " \" Median text batches/second: %.1f, mean: %.1f\\n\"\n", + " \" Median latency: %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\\n\"\n", + " ) % (graphName,\n", + " batch_size, steps,\n", + " speed_med, speed_mean,\n", + " time_med, time_mean, time_99th, time_std)\n", + " print(msg)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "afe97b9b", + "metadata": {}, + "outputs": [], + "source": [ + "cudnn.benchmark = True" + ] + }, + { + "cell_type": "markdown", + "id": "eba98b24", + "metadata": {}, + "source": [ + "Benchmark the (scripted) TorchScript model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "bab5fa8f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 599.1, mean: 597.6\n", + " Median latency: 0.006677, mean: 0.006693, 99th_p: 0.006943, std_dev: 0.000059\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(mlm_model_ts.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "bc79c452", + "metadata": {}, + "source": [ + "Benchmark the traced model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "5c0bd8e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 951.2, mean: 951.0\n", + " Median latency: 0.004205, mean: 0.004206, 99th_p: 0.004256, std_dev: 0.000015\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(traced_mlm_model.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "41db22a1", + "metadata": {}, + "source": [ + "Benchmark the compiled FP32 model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "ade7b508", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 1216.9, mean: 1216.4\n", + " Median latency: 0.003287, mean: 0.003289, 99th_p: 0.003317, std_dev: 0.000007\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(trt_model, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "57b696de", + "metadata": {}, + "source": [ + "Benchmark the compiled FP16 model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f61b83fd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 1776.7, mean: 1771.1\n", + " Median latency: 0.002251, mean: 0.002259, 99th_p: 0.002305, std_dev: 0.000015\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(trt_model_fp16, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "43f67ba3", + "metadata": {}, + "source": [ + "\n", + "## 6. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for Masked Language Modeling with Hugging Face's `bert-base-uncased` transformer and testing the performance impact of the optimization. With Torch-TensorRT on an NVIDIA A100 GPU, we observe the speedups indicated below. These acceleration numbers will vary from GPU to GPU (as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "Scripted (GPU): 1.0x\n", + "Traced (GPU): 1.62x\n", + "Torch-TensorRT (FP32): 2.14x\n", + "Torch-TensorRT (FP16): 3.15x\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ebd152d", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.2.0/_notebooks/Resnet50-example.html b/docs/v1.2.0/_notebooks/Resnet50-example.html new file mode 100644 index 0000000000..232a1e38d9 --- /dev/null +++ b/docs/v1.2.0/_notebooks/Resnet50-example.html @@ -0,0 +1,1674 @@ + + + + + + + + + + + + + Torch-TensorRT Getting Started - ResNet 50 — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Torch-TensorRT Getting Started - ResNet 50
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + +
+
[1]:
+
+
+
# Copyright 2019 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+

72eea9f56ee749e080dacfcd4ab2364a

+
+

Torch-TensorRT Getting Started - ResNet 50

+
+

Overview

+

In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the +best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch’s JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new +world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.

+

When deploying on NVIDIA GPUs TensorRT, NVIDIA’s Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA’s Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that +perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.

+

Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch.

+
+

Learning objectives

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained ResNet-50 network, and running it to test the speedup obtained.

+
+
+
+

Content

+
    +
  1. Requirements

  2. +
  3. ResNet-50 Overview

  4. +
  5. Running the model without optimizations

  6. +
  7. Accelerating with Torch-TensorRT

  8. +
  9. Conclusion

  10. +
+
+
[2]:
+
+
+
!nvidia-smi
+!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+
+
+
+
+
+
+
+
+Tue Feb  8 19:16:53 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA GeForce ...  On   | 00000000:65:00.0 Off |                  N/A |
+| 30%   29C    P8    15W / 350W |      0MiB / 24576MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|  No running processes found                                                 |
++-----------------------------------------------------------------------------+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting ipywidgets
+  Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)
+     |████████████████████████████████| 121 kB 5.3 MB/s eta 0:00:01
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)
+Collecting jupyterlab-widgets>=1.0.0
+  Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)
+     |████████████████████████████████| 243 kB 2.6 MB/s eta 0:00:01
+Collecting widgetsnbextension~=3.5.0
+  Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)
+     |████████████████████████████████| 1.6 MB 3.5 MB/s eta 0:00:01
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)
+Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)
+Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)
+Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)
+Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)
+Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)
+Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)
+Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)
+Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)
+Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)
+Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)
+Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)
+Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)
+Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)
+Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)
+Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)
+Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets
+Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+

## 1. Requirements

+

NVIDIA’s NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of latest pytorch container to run this notebook.

+

Otherwise, you can follow the steps in notebooks/README to prepare a Docker container yourself, within which you can run this demo notebook.

+

## 2. ResNet-50 Overview

+

PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our ResNet-50 model from there pretrained on ImageNet.

+
+

Model Description

+

This ResNet-50 model is based on the Deep Residual Learning for Image Recognition paper, which describes ResNet as “a method for detecting objects in images using a single deep neural network”. The input size is fixed to 32x32.

+

alt

+

## 3. Running the model without optimizations

+

PyTorch has a model repository called timm, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet.

+
+
[3]:
+
+
+
import torch
+import torchvision
+
+torch.hub._validate_not_a_forked_repo=lambda a,b,c: True
+
+resnet50_model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)
+resnet50_model.eval()
+
+
+
+
+
+
+
+
+Downloading: "https://github.com/pytorch/vision/archive/v0.10.0.zip" to /root/.cache/torch/hub/v0.10.0.zip
+Downloading: "https://download.pytorch.org/models/resnet50-0676ba61.pth" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth
+
+
+
+
+
+
+
+
+
+
[3]:
+
+
+
+
+ResNet(
+  (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
+  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+  (relu): ReLU(inplace=True)
+  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
+  (layer1): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer2): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (3): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer3): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (3): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (4): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (5): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer4): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
+  (fc): Linear(in_features=2048, out_features=1000, bias=True)
+)
+
+
+

With our model loaded, let’s proceed to downloading some images!

+
+
[4]:
+
+
+
!mkdir -p ./data
+!wget  -O ./data/img0.JPG "https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630"
+!wget  -O ./data/img1.JPG "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg"
+!wget  -O ./data/img2.JPG "https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg"
+!wget  -O ./data/img3.JPG "https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg"
+
+!wget  -O ./data/imagenet_class_index.json "https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json"
+
+
+
+
+
+
+
+
+--2022-02-08 19:17:19--  https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630
+Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.99, 18.65.227.37, 18.65.227.223, ...
+Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.99|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 24112 (24K) [image/jpeg]
+Saving to: ‘./data/img0.JPG’
+
+./data/img0.JPG     100%[===================>]  23.55K  --.-KB/s    in 0.002s
+
+2022-02-08 19:17:19 (14.6 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]
+
+--2022-02-08 19:17:19--  https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg
+Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117
+Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 452718 (442K) [image/jpeg]
+Saving to: ‘./data/img1.JPG’
+
+./data/img1.JPG     100%[===================>] 442.11K  2.40MB/s    in 0.2s
+
+2022-02-08 19:17:19 (2.40 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]
+
+--2022-02-08 19:17:20--  https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg
+Resolving www.artis.nl (www.artis.nl)... 94.75.225.20
+Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 361413 (353K) [image/jpeg]
+Saving to: ‘./data/img2.JPG’
+
+./data/img2.JPG     100%[===================>] 352.94K   366KB/s    in 1.0s
+
+2022-02-08 19:17:24 (366 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]
+
+--2022-02-08 19:17:24--  https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg
+Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:ca6b, ...
+Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 94328 (92K) [image/jpeg]
+Saving to: ‘./data/img3.JPG’
+
+./data/img3.JPG     100%[===================>]  92.12K  --.-KB/s    in 0.005s
+
+2022-02-08 19:17:25 (16.8 MB/s) - ‘./data/img3.JPG’ saved [94328/94328]
+
+--2022-02-08 19:17:25--  https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json
+Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.41.222
+Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.41.222|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 35363 (35K) [application/octet-stream]
+Saving to: ‘./data/imagenet_class_index.json’
+
+./data/imagenet_cla 100%[===================>]  34.53K  --.-KB/s    in 0.07s
+
+2022-02-08 19:17:26 (481 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]
+
+
+
+

All pre-trained models expect input images normalized in the same way, i.e. mini-batches of 3-channel RGB images of shape (3 x H x W), where H and W are expected to be at least 224. The images have to be loaded in to a range of [0, 1] and then normalized using mean = [0.485, 0.456, 0.406] and std = [0.229, 0.224, 0.225].

+

Here’s a sample execution.

+
+
[5]:
+
+
+
from PIL import Image
+from torchvision import transforms
+import matplotlib.pyplot as plt
+import json
+
+fig, axes = plt.subplots(nrows=2, ncols=2)
+
+for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    input_tensor = preprocess(img)
+    plt.subplot(2,2,i+1)
+    plt.imshow(img)
+    plt.axis('off')
+
+# loading labels
+with open("./data/imagenet_class_index.json") as json_file:
+    d = json.load(json_file)
+
+
+
+
+
+
+
+../_images/_notebooks_Resnet50-example_12_0.png +
+
+

Throughout this tutorial, we will be making use of some utility functions; rn50_preprocess for preprocessing input images, predict to use the model for prediction and benchmark to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose.

+
+
[6]:
+
+
+
import numpy as np
+import time
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+def rn50_preprocess():
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    return preprocess
+
+# decode the results into ([predicted class, description], probability)
+def predict(img_path, model):
+    img = Image.open(img_path)
+    preprocess = rn50_preprocess()
+    input_tensor = preprocess(img)
+    input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model
+
+    # move the input and model to GPU for speed if available
+    if torch.cuda.is_available():
+        input_batch = input_batch.to('cuda')
+        model.to('cuda')
+
+    with torch.no_grad():
+        output = model(input_batch)
+        # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes
+        sm_output = torch.nn.functional.softmax(output[0], dim=0)
+
+    ind = torch.argmax(sm_output)
+    return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)
+
+def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            features = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%10==0:
+                print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output features size:", features.size())
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+

With the model downloaded and the util functions written, let’s just quickly see some predictions, and benchmark the model in its current un-optimized state.

+
+
[7]:
+
+
+
for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+
+    pred, prob = predict(img_path, resnet50_model)
+    print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))
+
+    plt.subplot(2,2,i+1)
+    plt.imshow(img);
+    plt.axis('off');
+    plt.title(pred[1])
+
+
+
+
+
+
+
+
+./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49785590171813965
+./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6445754766464233
+./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899807572364807
+./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.39485082030296326
+
+
+
+
+
+
+../_images/_notebooks_Resnet50-example_16_1.png +
+
+
+
[8]:
+
+
+
# Model benchmark without Torch-TensorRT
+model = resnet50_model.eval().to("cuda")
+benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 75.34 ms
+Iteration 20/100, ave batch time 75.33 ms
+Iteration 30/100, ave batch time 75.35 ms
+Iteration 40/100, ave batch time 75.37 ms
+Iteration 50/100, ave batch time 75.38 ms
+Iteration 60/100, ave batch time 75.38 ms
+Iteration 70/100, ave batch time 75.39 ms
+Iteration 80/100, ave batch time 75.39 ms
+Iteration 90/100, ave batch time 75.40 ms
+Iteration 100/100, ave batch time 75.41 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average batch time: 75.41 ms
+
+
+

## 4. Accelerating with Torch-TensorRT

+

Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our documentation.

+
+
+

FP32 (single precision)

+
+
[9]:
+
+
+
import torch_tensorrt
+
+# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP32 precision.
+trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],
+    enabled_precisions = torch.float32, # Run with FP32
+    workspace_size = 1 << 22
+)
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+
+
+
+
[10]:
+
+
+
# Obtain the average time taken by a batch of input
+benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 41.02 ms
+Iteration 20/100, ave batch time 41.12 ms
+Iteration 30/100, ave batch time 41.22 ms
+Iteration 40/100, ave batch time 41.14 ms
+Iteration 50/100, ave batch time 41.20 ms
+Iteration 60/100, ave batch time 41.20 ms
+Iteration 70/100, ave batch time 41.19 ms
+Iteration 80/100, ave batch time 41.23 ms
+Iteration 90/100, ave batch time 41.20 ms
+Iteration 100/100, ave batch time 41.21 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average batch time: 41.21 ms
+
+
+
+
+

FP16 (half precision)

+
+
[11]:
+
+
+
import torch_tensorrt
+
+# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP16 precision.
+trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],
+    enabled_precisions = {torch.half}, # Run with FP32
+    workspace_size = 1 << 22
+)
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x.1
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+
+
+
+
[13]:
+
+
+
# Obtain the average time taken by a batch of input
+benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 14.48 ms
+Iteration 20/100, ave batch time 14.58 ms
+Iteration 30/100, ave batch time 14.72 ms
+Iteration 40/100, ave batch time 14.73 ms
+Iteration 50/100, ave batch time 14.70 ms
+Iteration 60/100, ave batch time 14.79 ms
+Iteration 70/100, ave batch time 14.73 ms
+Iteration 80/100, ave batch time 14.69 ms
+Iteration 90/100, ave batch time 14.68 ms
+Iteration 100/100, ave batch time 14.69 ms
+Input shape: torch.Size([128, 3, 224, 224])
+Output features size: torch.Size([128, 1000])
+Average batch time: 14.69 ms
+
+
+

## 5. Conclusion

+

In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of 1.84x with FP32, and 5.2x with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute +cards for maximum acceleration.

+
+
+

What’s next

+

Now it’s time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.

+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_notebooks/Resnet50-example.ipynb b/docs/v1.2.0/_notebooks/Resnet50-example.ipynb new file mode 100644 index 0000000000..f020662c73 --- /dev/null +++ b/docs/v1.2.0/_notebooks/Resnet50-example.ipynb @@ -0,0 +1,925 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - ResNet 50" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained ResNet-50 network, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [ResNet-50 Overview](#2)\n", + "1. [Running the model without optimizations](#3)\n", + "1. [Accelerating with Torch-TensorRT](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tue Feb 8 19:16:53 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:65:00.0 Off | N/A |\n", + "| 30% 29C P8 15W / 350W | 0MiB / 24576MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)\n", + "\u001b[K |████████████████████████████████| 121 kB 5.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)\n", + "\u001b[K |████████████████████████████████| 243 kB 2.6 MB/s eta 0:00:01\n", + "\u001b[?25hCollecting widgetsnbextension~=3.5.0\n", + " Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 3.5 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)\n", + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!nvidia-smi\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. ResNet-50 Overview\n", + "\n", + "\n", + "PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our ResNet-50 model from there pretrained on ImageNet.\n", + "\n", + "### Model Description\n", + "\n", + "This ResNet-50 model is based on the [Deep Residual Learning for Image Recognition](https://arxiv.org/pdf/1512.03385.pdf) paper, which describes ResNet as “a method for detecting objects in images using a single deep neural network\". The input size is fixed to 32x32.\n", + "\n", + "\"alt\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Running the model without optimizations\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading: \"https://github.com/pytorch/vision/archive/v0.10.0.zip\" to /root/.cache/torch/hub/v0.10.0.zip\n", + "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a7036a6122874340b14aaef7b8319260", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0.00/97.8M [00:00] 23.55K --.-KB/s in 0.002s \n", + "\n", + "2022-02-08 19:17:19 (14.6 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-02-08 19:17:19-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K 2.40MB/s in 0.2s \n", + "\n", + "2022-02-08 19:17:19 (2.40 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-02-08 19:17:20-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 366KB/s in 1.0s \n", + "\n", + "2022-02-08 19:17:24 (366 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-02-08 19:17:24-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:ca6b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 94328 (92K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 92.12K --.-KB/s in 0.005s \n", + "\n", + "2022-02-08 19:17:25 (16.8 MB/s) - ‘./data/img3.JPG’ saved [94328/94328]\n", + "\n", + "--2022-02-08 19:17:25-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.41.222\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.41.222|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-02-08 19:17:26 (481 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All pre-trained models expect input images normalized in the same way,\n", + "i.e. mini-batches of 3-channel RGB images of shape `(3 x H x W)`, where `H` and `W` are expected to be at least `224`.\n", + "The images have to be loaded in to a range of `[0, 1]` and then normalized using `mean = [0.485, 0.456, 0.406]`\n", + "and `std = [0.229, 0.224, 0.225]`.\n", + "\n", + "Here's a sample execution." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "import json \n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels \n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Throughout this tutorial, we will be making use of some utility functions; `rn50_preprocess` for preprocessing input images, `predict` to use the model for prediction and `benchmark` to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import time\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def rn50_preprocess():\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " return preprocess\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = rn50_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the model downloaded and the util functions written, let's just quickly see some predictions, and benchmark the model in its current un-optimized state." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49785590171813965\n", + "./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6445754766464233\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899807572364807\n", + "./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.39485082030296326\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, resnet50_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 75.34 ms\n", + "Iteration 20/100, ave batch time 75.33 ms\n", + "Iteration 30/100, ave batch time 75.35 ms\n", + "Iteration 40/100, ave batch time 75.37 ms\n", + "Iteration 50/100, ave batch time 75.38 ms\n", + "Iteration 60/100, ave batch time 75.38 ms\n", + "Iteration 70/100, ave batch time 75.39 ms\n", + "Iteration 80/100, ave batch time 75.39 ms\n", + "Iteration 90/100, ave batch time 75.40 ms\n", + "Iteration 100/100, ave batch time 75.41 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 75.41 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = resnet50_model.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Accelerating with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our [documentation](https://nvidia.github.io/Torch-TensorRT/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 41.02 ms\n", + "Iteration 20/100, ave batch time 41.12 ms\n", + "Iteration 30/100, ave batch time 41.22 ms\n", + "Iteration 40/100, ave batch time 41.14 ms\n", + "Iteration 50/100, ave batch time 41.20 ms\n", + "Iteration 60/100, ave batch time 41.20 ms\n", + "Iteration 70/100, ave batch time 41.19 ms\n", + "Iteration 80/100, ave batch time 41.23 ms\n", + "Iteration 90/100, ave batch time 41.20 ms\n", + "Iteration 100/100, ave batch time 41.21 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 41.21 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],\n", + " enabled_precisions = {torch.half}, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 14.48 ms\n", + "Iteration 20/100, ave batch time 14.58 ms\n", + "Iteration 30/100, ave batch time 14.72 ms\n", + "Iteration 40/100, ave batch time 14.73 ms\n", + "Iteration 50/100, ave batch time 14.70 ms\n", + "Iteration 60/100, ave batch time 14.79 ms\n", + "Iteration 70/100, ave batch time 14.73 ms\n", + "Iteration 80/100, ave batch time 14.69 ms\n", + "Iteration 90/100, ave batch time 14.68 ms\n", + "Iteration 100/100, ave batch time 14.69 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 14.69 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of **1.84x** with FP32, and **5.2x** with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_notebooks/dynamic-shapes.html b/docs/v1.2.0/_notebooks/dynamic-shapes.html new file mode 100644 index 0000000000..6cc136aedf --- /dev/null +++ b/docs/v1.2.0/_notebooks/dynamic-shapes.html @@ -0,0 +1,1750 @@ + + + + + + + + + + + + + Torch-TensorRT - Using Dynamic Shapes — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Torch-TensorRT - Using Dynamic Shapes
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + +
+
[1]:
+
+
+
# Copyright 2020 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+
+

Torch-TensorRT - Using Dynamic Shapes

+

Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA’s TensorRT Deep Learning Optimizer and Runtime. Unlike PyTorch’s Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into +the JIT runtime seamlessly. After compilation using the optimized graph should feel no different than running a TorchScript module. You also have access to TensorRT’s suite of configurations at compile time, so you are able to specify operating precision (FP32/FP16/INT8) and other settings for your module.

+

We highly encorage users to use our NVIDIA’s PyTorch container to run this notebook. It comes packaged with a host of NVIDIA libraries and optimizations to widely used third party libraries. This container is tested and updated on a monthly cadence!

+

This notebook has the following sections: 1. TL;DR Explanation 1. Setting up the model 1. Working with Dynamic shapes in Torch TRT

+

torch_tensorrt.Input( min_shape=(1, 224, 224, 3), opt_shape=(1, 512, 512, 3), max_shape=(1, 1024, 1024, 3), dtype=torch.int32 format=torch.channel_last ) … ``` In this example, we are going to use a simple ResNet model to demonstrate the use of the API. We will be using different batch sizes in the example, but you can use the same method to alter any of the dimensions of the tensor.

+
+
[2]:
+
+
+
!nvidia-smi
+!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+
+
+
+
+
+
+
+
+Mon May  2 20:40:30 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA Graphics...  On   | 00000000:01:00.0 Off |                    0 |
+| 41%   51C    P0    62W / 200W |      0MiB / 47681MiB |      0%      Default |
+|                               |                      |             Disabled |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|  No running processes found                                                 |
++-----------------------------------------------------------------------------+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (7.7.0)
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.3.0)
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.13.0)
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)
+Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (3.6.0)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.2.0)
+Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (1.1.0)
+Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (5.9.0)
+Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (21.3)
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.5)
+Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)
+Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.2.2)
+Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.6.0)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)
+Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.29)
+Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)
+Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (22.3.0)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (0.4)
+Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (2.8.2)
+Requirement already satisfied: jupyter-core>=4.9.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (4.9.2)
+Requirement already satisfied: jsonschema>=2.6 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)
+Requirement already satisfied: fastjsonschema in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (2.15.3)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (0.18.1)
+Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (21.4.0)
+Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (5.7.0)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (3.8.0)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)
+Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (1.16.0)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.1.1)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.14.1)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.5.0)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.3)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.1.1)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.2.2)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)
+Requirement already satisfied: nbclient>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.6.0)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (5.0.0)
+Requirement already satisfied: tinycss2 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.1.1)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)
+Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.11.1)
+Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.3.1)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->ipykernel>=4.5.1->ipywidgets) (3.0.8)
+Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)
+Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)
+Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.3)
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+
+
+

Setting up the model

+

In this section, we will: * Get sample data. * Download model from torch hub. * Build simple utility functions

+
+

Getting sample data

+
+
[3]:
+
+
+
!mkdir -p ./data
+!wget  -O ./data/img0.JPG "https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630"
+!wget  -O ./data/img1.JPG "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg"
+!wget  -O ./data/img2.JPG "https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg"
+!wget  -O ./data/img3.JPG "https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg"
+
+!wget  -O ./data/imagenet_class_index.json "https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json"
+
+
+
+
+
+
+
+
+--2022-05-02 20:40:33--  https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630
+Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.37, 18.65.227.99, 18.65.227.223, ...
+Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.37|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 24112 (24K) [image/jpeg]
+Saving to: ‘./data/img0.JPG’
+
+./data/img0.JPG     100%[===================>]  23.55K  --.-KB/s    in 0.005s
+
+2022-05-02 20:40:33 (4.69 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]
+
+--2022-05-02 20:40:34--  https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg
+Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117
+Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 452718 (442K) [image/jpeg]
+Saving to: ‘./data/img1.JPG’
+
+./data/img1.JPG     100%[===================>] 442.11K  --.-KB/s    in 0.02s
+
+2022-05-02 20:40:34 (26.2 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]
+
+--2022-05-02 20:40:34--  https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg
+Resolving www.artis.nl (www.artis.nl)... 94.75.225.20
+Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 361413 (353K) [image/jpeg]
+Saving to: ‘./data/img2.JPG’
+
+./data/img2.JPG     100%[===================>] 352.94K   608KB/s    in 0.6s
+
+2022-05-02 20:40:36 (608 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]
+
+--2022-05-02 20:40:37--  https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg
+Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:c96b, ...
+Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 90994 (89K) [image/jpeg]
+Saving to: ‘./data/img3.JPG’
+
+./data/img3.JPG     100%[===================>]  88.86K  --.-KB/s    in 0.006s
+
+2022-05-02 20:40:37 (15.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]
+
+--2022-05-02 20:40:37--  https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json
+Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.33.238
+Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.33.238|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 35363 (35K) [application/octet-stream]
+Saving to: ‘./data/imagenet_class_index.json’
+
+./data/imagenet_cla 100%[===================>]  34.53K  --.-KB/s    in 0.07s
+
+2022-05-02 20:40:38 (489 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]
+
+
+
+
+
[4]:
+
+
+
# visualizing the downloaded images
+
+from PIL import Image
+from torchvision import transforms
+import matplotlib.pyplot as plt
+import json
+
+fig, axes = plt.subplots(nrows=2, ncols=2)
+
+for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    input_tensor = preprocess(img)
+    plt.subplot(2,2,i+1)
+    plt.imshow(img)
+    plt.axis('off')
+
+# loading labels
+with open("./data/imagenet_class_index.json") as json_file:
+    d = json.load(json_file)
+
+
+
+
+
+
+
+../_images/_notebooks_dynamic-shapes_8_0.png +
+
+
+
+

Download model from torch hub.

+
+
[5]:
+
+
+
import torch
+
+torch.hub._validate_not_a_forked_repo=lambda a,b,c: True
+
+resnet50_model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)
+resnet50_model.eval()
+
+
+
+
+
+
+
+
+Using cache found in /root/.cache/torch/hub/pytorch_vision_v0.10.0
+
+
+
+
[5]:
+
+
+
+
+ResNet(
+  (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
+  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+  (relu): ReLU(inplace=True)
+  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
+  (layer1): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer2): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (3): Bottleneck(
+      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer3): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (3): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (4): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (5): Bottleneck(
+      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (layer4): Sequential(
+    (0): Bottleneck(
+      (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+      (downsample): Sequential(
+        (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
+        (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      )
+    )
+    (1): Bottleneck(
+      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+    (2): Bottleneck(
+      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
+      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
+      (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+      (relu): ReLU(inplace=True)
+    )
+  )
+  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
+  (fc): Linear(in_features=2048, out_features=1000, bias=True)
+)
+
+
+
+
+

Build simple utility functions

+
+
[6]:
+
+
+
import numpy as np
+import time
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+def rn50_preprocess():
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    return preprocess
+
+# decode the results into ([predicted class, description], probability)
+def predict(img_path, model):
+    img = Image.open(img_path)
+    preprocess = rn50_preprocess()
+    input_tensor = preprocess(img)
+    input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model
+
+    # move the input and model to GPU for speed if available
+    if torch.cuda.is_available():
+        input_batch = input_batch.to('cuda')
+        model.to('cuda')
+
+    with torch.no_grad():
+        output = model(input_batch)
+        # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes
+        sm_output = torch.nn.functional.softmax(output[0], dim=0)
+
+    ind = torch.argmax(sm_output)
+    return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)
+
+# benchmarking models
+def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            features = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%10==0:
+                print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+                print('Images processed per second=', int(1000*input_shape[0]/(np.mean(timings)*1000)))
+    print("Input shape:", input_data.size())
+    print("Output features size:", features.size())
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+

Let’s test our util functions on the model we have set up, starting with simple predictions

+
+
[7]:
+
+
+
for i in range(4):
+    img_path = './data/img%d.JPG'%i
+    img = Image.open(img_path)
+
+    pred, prob = predict(img_path, resnet50_model)
+    print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))
+
+    plt.subplot(2,2,i+1)
+    plt.imshow(img);
+    plt.axis('off');
+    plt.title(pred[1])
+
+
+
+
+
+
+
+
+./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49788108468055725
+./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6442285180091858
+./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899841547012329
+./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.45675724744796753
+
+
+
+
+
+
+../_images/_notebooks_dynamic-shapes_14_1.png +
+
+

Onwards, to benchmarking.

+
+
[8]:
+
+
+
# Model benchmark without Torch-TensorRT
+model = resnet50_model.eval().to("cuda")
+benchmark(model, input_shape=(16, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 10.01 ms
+Images processed per second= 1598
+Iteration 20/100, ave batch time 10.01 ms
+Images processed per second= 1598
+Iteration 30/100, ave batch time 10.21 ms
+Images processed per second= 1566
+Iteration 40/100, ave batch time 10.33 ms
+Images processed per second= 1549
+Iteration 50/100, ave batch time 10.31 ms
+Images processed per second= 1552
+Iteration 60/100, ave batch time 10.25 ms
+Images processed per second= 1560
+Iteration 70/100, ave batch time 10.20 ms
+Images processed per second= 1568
+Iteration 80/100, ave batch time 10.18 ms
+Images processed per second= 1572
+Iteration 90/100, ave batch time 10.16 ms
+Images processed per second= 1574
+Iteration 100/100, ave batch time 10.15 ms
+Images processed per second= 1575
+Input shape: torch.Size([16, 3, 224, 224])
+Output features size: torch.Size([16, 1000])
+Average batch time: 10.15 ms
+
+
+
+
+
+
+

Benchmarking with Torch-TRT (without dynamic shapes)

+
+
[9]:
+
+
+
import torch_tensorrt
+
+trt_model_without_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((32, 3, 224, 224), dtype=torch.float32)],
+    enabled_precisions = torch.float32, # Run with FP32
+    workspace_size = 1 << 33
+)
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+
+
+
+
[10]:
+
+
+
benchmark(trt_model_without_ds, input_shape=(32, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 6.10 ms
+Images processed per second= 5242
+Iteration 20/100, ave batch time 6.12 ms
+Images processed per second= 5231
+Iteration 30/100, ave batch time 6.14 ms
+Images processed per second= 5215
+Iteration 40/100, ave batch time 6.14 ms
+Images processed per second= 5207
+Iteration 50/100, ave batch time 6.15 ms
+Images processed per second= 5202
+Iteration 60/100, ave batch time 6.28 ms
+Images processed per second= 5094
+Iteration 70/100, ave batch time 6.26 ms
+Images processed per second= 5110
+Iteration 80/100, ave batch time 6.25 ms
+Images processed per second= 5118
+Iteration 90/100, ave batch time 6.25 ms
+Images processed per second= 5115
+Iteration 100/100, ave batch time 6.40 ms
+Images processed per second= 5002
+Input shape: torch.Size([32, 3, 224, 224])
+Output features size: torch.Size([32, 1000])
+Average batch time: 6.40 ms
+
+
+

With the baseline ready, we can proceed to the section working discussing dynamic shapes!

+
+
+
+

Working with Dynamic shapes in Torch TRT

+

Enabling “Dynamic Shaped” tensors to be used is essentially enabling the ability to defer defining the shape of tensors until runetime. Torch TensorRT simply leverages TensorRT’s Dynamic shape support. You can read more about TensorRT’s implementation in the TensorRT Documentation.

+

To make use of dynamic shapes, you need to provide three shapes: * min_shape: The minimum size of the tensor considered for optimizations. * opt_shape: The optimizations will be done with an effort to maximize performance for this shape. * min_shape: The maximum size of the tensor considered for optimizations.

+

Generally, users can expect best performance within the specified ranges. Performance for other shapes may be be lower for other shapes (depending on the model ops and GPU used)

+

In the following example, we will showcase varing batch size, which is the zeroth dimension of our input tensors. As Convolution operations require that the channel dimension be a build-time constant, we won’t be changing sizes of other channels in this example, but for models which contain ops conducive to changes in other channels, this functionality can be freely used.

+
+
[11]:
+
+
+
# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP32 precision.
+trt_model_with_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input(
+        min_shape=(16, 3, 224, 224),
+        opt_shape=(32, 3, 224, 224),
+        max_shape=(64, 3, 224, 224),
+        dtype=torch.float32)],
+    enabled_precisions = torch.float32, # Run with FP32
+    workspace_size = 1 << 33
+)
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+
+
+
+
[12]:
+
+
+
benchmark(trt_model_with_ds, input_shape=(16, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 3.88 ms
+Images processed per second= 4122
+Iteration 20/100, ave batch time 3.89 ms
+Images processed per second= 4116
+Iteration 30/100, ave batch time 3.88 ms
+Images processed per second= 4123
+Iteration 40/100, ave batch time 3.86 ms
+Images processed per second= 4142
+Iteration 50/100, ave batch time 3.85 ms
+Images processed per second= 4156
+Iteration 60/100, ave batch time 3.84 ms
+Images processed per second= 4166
+Iteration 70/100, ave batch time 3.84 ms
+Images processed per second= 4170
+Iteration 80/100, ave batch time 3.83 ms
+Images processed per second= 4172
+Iteration 90/100, ave batch time 3.83 ms
+Images processed per second= 4176
+Iteration 100/100, ave batch time 3.83 ms
+Images processed per second= 4178
+Input shape: torch.Size([16, 3, 224, 224])
+Output features size: torch.Size([16, 1000])
+Average batch time: 3.83 ms
+
+
+
+
[13]:
+
+
+
benchmark(trt_model_with_ds, input_shape=(32, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 6.71 ms
+Images processed per second= 4767
+Iteration 20/100, ave batch time 6.48 ms
+Images processed per second= 4935
+Iteration 30/100, ave batch time 6.39 ms
+Images processed per second= 5005
+Iteration 40/100, ave batch time 6.38 ms
+Images processed per second= 5014
+Iteration 50/100, ave batch time 6.38 ms
+Images processed per second= 5016
+Iteration 60/100, ave batch time 6.37 ms
+Images processed per second= 5020
+Iteration 70/100, ave batch time 6.37 ms
+Images processed per second= 5024
+Iteration 80/100, ave batch time 6.37 ms
+Images processed per second= 5027
+Iteration 90/100, ave batch time 6.37 ms
+Images processed per second= 5026
+Iteration 100/100, ave batch time 6.38 ms
+Images processed per second= 5018
+Input shape: torch.Size([32, 3, 224, 224])
+Output features size: torch.Size([32, 1000])
+Average batch time: 6.38 ms
+
+
+
+
[14]:
+
+
+
benchmark(trt_model_with_ds, input_shape=(64, 3, 224, 224), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, ave batch time 12.31 ms
+Images processed per second= 5197
+Iteration 20/100, ave batch time 12.42 ms
+Images processed per second= 5153
+Iteration 30/100, ave batch time 12.85 ms
+Images processed per second= 4980
+Iteration 40/100, ave batch time 12.71 ms
+Images processed per second= 5033
+Iteration 50/100, ave batch time 12.67 ms
+Images processed per second= 5052
+Iteration 60/100, ave batch time 12.63 ms
+Images processed per second= 5067
+Iteration 70/100, ave batch time 12.58 ms
+Images processed per second= 5088
+Iteration 80/100, ave batch time 12.56 ms
+Images processed per second= 5096
+Iteration 90/100, ave batch time 12.55 ms
+Images processed per second= 5100
+Iteration 100/100, ave batch time 12.57 ms
+Images processed per second= 5091
+Input shape: torch.Size([64, 3, 224, 224])
+Output features size: torch.Size([64, 1000])
+Average batch time: 12.57 ms
+
+
+
+
+

What’s Next?

+

Check out the TensorRT Getting started page for more tutorials, or visit the Torch-TensorRT documentation for more information!

+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_notebooks/dynamic-shapes.ipynb b/docs/v1.2.0/_notebooks/dynamic-shapes.ipynb new file mode 100644 index 0000000000..a0ceaab576 --- /dev/null +++ b/docs/v1.2.0/_notebooks/dynamic-shapes.ipynb @@ -0,0 +1,1023 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "332a2ed8", + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2020 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "id": "18ee9d62", + "metadata": {}, + "source": [ + "# Torch-TensorRT - Using Dynamic Shapes" + ] + }, + { + "cell_type": "markdown", + "id": "73703695", + "metadata": {}, + "source": [ + "Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA's TensorRT Deep Learning Optimizer and Runtime. Unlike PyTorch's Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into the JIT runtime seamlessly. After compilation using the optimized graph should feel no different than running a TorchScript module. You also have access to TensorRT's suite of configurations at compile time, so you are able to specify operating precision (FP32/FP16/INT8) and other settings for your module.\n", + "\n", + "We highly encorage users to use our NVIDIA's [PyTorch container](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) to run this notebook. It comes packaged with a host of NVIDIA libraries and optimizations to widely used third party libraries. This container is tested and updated on a monthly cadence!\n", + "\n", + "This notebook has the following sections:\n", + "1. [TL;DR Explanation](#1)\n", + "1. [Setting up the model](#2)\n", + "1. [Working with Dynamic shapes in Torch TRT](#3)" + ] + }, + { + "cell_type": "markdown", + "id": "1603028d", + "metadata": {}, + "source": [ + "---\n", + "## TL;DR Explanation\n", + "\n", + "Making use of Dynamic Shaped Tensors in Torch TensorRT is quite simple. Let's say you are using the `torch_tensorrt.compile(...)` function to compile a torchscript module.\n", + "\n", + "One of the `args` in this function in this function is `input`: which defines an input to a module in terms of expected shape, data type and tensor format: `torch_tensorrt.Input`. \n", + "\n", + "For the purposes of this walkthrough we just need three `kwargs`: `min_shape`, `opt_shape` and `max_shape`. \n", + "```\n", + "...\n", + "torch_tensorrt.Input(\n", + " min_shape=(1, 224, 224, 3),\n", + " opt_shape=(1, 512, 512, 3),\n", + " max_shape=(1, 1024, 1024, 3),\n", + " dtype=torch.int32\n", + " format=torch.channel_last\n", + " )\n", + "...\n", + "```\n", + "In this example, we are going to use a simple ResNet model to demonstrate the use of the API. We will be using different batch sizes in the example, but you can use the same method to alter any of the dimensions of the tensor." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "db3493d2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mon May 2 20:40:30 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA Graphics... On | 00000000:01:00.0 Off | 0 |\n", + "| 41% 51C P0 62W / 200W | 0MiB / 47681MiB | 0% Default |\n", + "| | | Disabled |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (7.7.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.3.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.13.0)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (3.6.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.2.0)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (1.1.0)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (5.9.0)\n", + "Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (21.3)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.5)\n", + "Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.2.2)\n", + "Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.6.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.29)\n", + "Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (0.4)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jupyter-core>=4.9.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (4.9.2)\n", + "Requirement already satisfied: jsonschema>=2.6 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: fastjsonschema in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (2.15.3)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (5.7.0)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (3.8.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.1.1)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.14.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.5.0)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.3)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.1.1)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: nbclient>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.6.0)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (5.0.0)\n", + "Requirement already satisfied: tinycss2 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.1.1)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.11.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.3.1)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->ipykernel>=4.5.1->ipywidgets) (3.0.8)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!nvidia-smi\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "id": "0ed1b4f7", + "metadata": {}, + "source": [ + "---\n", + "## Setting up the model\n", + "\n", + "In this section, we will:\n", + "* Get sample data.\n", + "* Download model from torch hub.\n", + "* Build simple utility functions" + ] + }, + { + "cell_type": "markdown", + "id": "5934504f", + "metadata": {}, + "source": [ + "### Getting sample data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e46814cc", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-05-02 20:40:33-- https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\n", + "Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.37, 18.65.227.99, 18.65.227.223, ...\n", + "Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.37|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 24112 (24K) [image/jpeg]\n", + "Saving to: ‘./data/img0.JPG’\n", + "\n", + "./data/img0.JPG 100%[===================>] 23.55K --.-KB/s in 0.005s \n", + "\n", + "2022-05-02 20:40:33 (4.69 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-05-02 20:40:34-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K --.-KB/s in 0.02s \n", + "\n", + "2022-05-02 20:40:34 (26.2 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-05-02 20:40:34-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 608KB/s in 0.6s \n", + "\n", + "2022-05-02 20:40:36 (608 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-05-02 20:40:37-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:c96b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 90994 (89K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 88.86K --.-KB/s in 0.006s \n", + "\n", + "2022-05-02 20:40:37 (15.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]\n", + "\n", + "--2022-05-02 20:40:37-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.33.238\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.33.238|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-05-02 20:40:38 (489 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7392a8ec", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# visualizing the downloaded images\n", + "\n", + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "import json \n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels \n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "id": "1374edab", + "metadata": {}, + "source": [ + "### Download model from torch hub." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "659fa798", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using cache found in /root/.cache/torch/hub/pytorch_vision_v0.10.0\n" + ] + }, + { + "data": { + "text/plain": [ + "ResNet(\n", + " (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", + " (layer1): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer2): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer3): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (4): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (5): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer4): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))\n", + " (fc): Linear(in_features=2048, out_features=1000, bias=True)\n", + ")" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import torch\n", + "\n", + "torch.hub._validate_not_a_forked_repo=lambda a,b,c: True\n", + "\n", + "resnet50_model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)\n", + "resnet50_model.eval()" + ] + }, + { + "cell_type": "markdown", + "id": "0a67e8db", + "metadata": {}, + "source": [ + "### Build simple utility functions" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "60286396", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import time\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def rn50_preprocess():\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " return preprocess\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = rn50_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "# benchmarking models\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + " print('Images processed per second=', int(1000*input_shape[0]/(np.mean(timings)*1000)))\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))" + ] + }, + { + "cell_type": "markdown", + "id": "21402d53", + "metadata": {}, + "source": [ + "Let's test our util functions on the model we have set up, starting with simple predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bb3e4a0d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49788108468055725\n", + "./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6442285180091858\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899841547012329\n", + "./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.45675724744796753\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAD3CAYAAAC+eIeLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOz9eZRlSX7fh31+cde3Zb7ca6+u3nu60bNjMEMMAIIEuO+maAoSKckSBVGWdWQdH8mSLFMURUtH9iF9jo9MH9ISSZEEF3MBSIgACJJYZgAMZuuZnul9qepac898+7tLhP+IiHvvy6rq7gFRjS4xf91Z+fK+u8aN+Mb3t4YYYziVUzmVUzmVD0bUb/QNnMqpnMqp/Mskp6B7KqdyKqfyAcop6J7KqZzKqXyAcgq6p3Iqp3IqH6Ccgu6pnMqpnMoHKKegeyqnciqn8gHKQwu6IvIjIvIzjb+NiDz+63j+kYg8+ut1vnuc/0+JyF97AOe9KiK/9df7vKdyKqfy6yMfetAVke8VkV8SkWMRORCRL4rIp40xf90Y88MP6rrGmK4x5q0Hdf5TOZVT+ZdTwt/oG3g3EZEl4B8B/x7wt4EY+Dwwf4DXDI0xxYM6/6mcyqn8yy0fdqb7JIAx5seMMaUxZmqM+RljzDdF5N8QkS+c2P93ishbIrInIv+9iFTPJyL/loi8LCKHIvLTInK58Z0RkX9fRF4HXm9se9x9/l0i8nURGYjIdRH5U41jH3H7/nERecdd+z9/n88Xi8hfFZGhiHxbRD514p4eb/z9l0Xkz7jP6yLyj0TkyLH/X2w+a+OYZ0TkbRH5oyLyLRH5PY3vInevH3+f93oqp3Iqvw7yYQfd14BSRP6KiPwOEVl5j/3/APAp4BPA7wP+LQAR+X3Afwb8QWAD+EXgx04c+/uBzwAfucd5x8AfA/rA7wL+PRH5/Sf2+V7gKeC3AP+liDzz3o/H7wX+pjvvTwD/r/dxDMB/DNzAPssW9tkW8rlF5BPATwP/gTHmx4C/CvxrjV1+J3DbGPP193nNUzmVU/l1kA816BpjBlgwM8BfBHZF5CdEZOs+h/x3xpgDY8w7wJ8H/qjb/qPA/80Y87IzHfxZ4GNNtuu+PzDGTO9xHz9njHnRGKONMd/EAvb3n9jtv3JM/BvAN4CPvo9H/IIx5n8xxpTA//w+jwHIgbPAZWNMboz5RbNYROPzWBD/Y8aYf+S2/TWsJrDk/v7X3TVP5VRO5QOUDzXoAjig/DeMMReA54BzWEC9l1xvfL7m9gW4DPw/nTp+BBwAApy/z7ELIiKfEZF/LiK7InKMBfH1E7vdaXyeAN13fbB7H5OKyPuxs//3wBvAzzhzyn964vsfBX7JGPNzfoMx5hbwReAPiUgf+B3AX38f1zqVUzmVX0f50INuU4wxrwB/GQu+95KLjc+XgFvu83Xg3zXG9Bs/LWPMLzVP/y6X/htY5njRGLMM/AUsaD9ImQDtxt9n/AdjzNAY8x8bYx7Fmij+jyLyWxr7/ihwSUT+3Ilz/hWsieEPA79sjLn5YG79VE7lVO4nH2rQFZGnReQ/FpEL7u+LWJPBr9znkP+TiKy4/f5D4G+57X8B+D+LyLPuPMsi8oe/g1vpAQfGmJmIfDfwr/5anuc7lBeAf1VEAhH57TTMGSLyu0XkcRER4BgoAd04dgj8duD7ROS/bWz/B1h793+ItfGeyqmcygcsH2rQxYLHZ4AvicgYC7bfwjqS7iU/DnwVC1g/Cfx/AYwxfx/474C/KSIDd47f8R3cx58E/rSIDIH/Ehu+9qDlPwR+D3AE/AgWML08AfwsMAJ+GfgfjDH/vHmwMeYI+CHgd4jIf+22TYG/C1wB/t4DvftTOZVTuafIaRHzf7lERP5L4EljzL/2njufyqmcyq+7fKiTI07l11dEZBX432EjF07lVE7lN0A+7OaFh1pE5B+7Gg4nf/6z34B7+XewDsV/bIz5hQ/6+qdyKqdi5dS8cCqn8r8iEZGrwL9tjPnZ7/C4zwN/yRjz1L/IeU7lveWU6Z7KqZwKLsHmqQd5jQdVWe9hkwdi0/2xX/y6mUwm1d8igo1uAqUUWmu01gvH+H1EBGNM9dPcLkpABKUURkNZakpdkra7RGGMoSQMQlqtLmmaEoYhQRARRSFKBSgxBCGIAsGAO28ggjEarZvXMwRKCAV7nJLqPhfEaQpicJG7i98bt8lg47qMMfXGk/s2tA57HeNObD8adyJjDKUBo0FrqnZSSkBAl4YiyynygrzIESBKEgTQecF8NmOaZxSmfgfvGXRs6n18GzTb4gefPv+g45ZP5QHJaZGnD1YeCNMNgoAoiqofC34BQRBYkGt8H4bhXfuEYbjwUx2r7O16wA6UIgzs92EUkSQJaSslTdPG+QOUEpSCKBQiB6Shsp+jQAgCEIEgEAJlf8JACBQVMDcnjgUROxEYJWgRNFQ/xuFqDbSLYkHW/9hTvV+RBmY3JyoMGG1AG0xZks8zZtMZ2XRGPs+Yz+dkRc77NStV53XXUUottIN/n6fy4RIRSUTkz4vILffz50Ukcd/9gIjcEJH/RETuAP+T33afc1WFk9zfv1tEXnAZnr8kIs839j0nIn/XZW++LSL/B7f9t2NrhPwR59f4xgNvhA+pPBCmq9T9sbw5YN9r4PtBXu+vF74zxrJVJQ58Q0jipALcIAhQyjLbwP04jKy223OB8Z8BhbFMuNpiYdHfefObu56gAZxm4c+7/7LP5O+hCbwnTnKftpETO2ht71sXBbooKPIcU5YIkM/njiEbSqMxlje/axqevRPLngW5C2zvBcKn8qGR/xz4HuBj2Nf848B/Afxf3PdngFVsirzCxsPfJa5w0j8A/qQx5h+5qnT/IzaG/CvYDMefEJGnsDVB/qG71h8FLgA/KyKvGmN+SkT+LPD4v+zhig+E6b7bIGwC7UnQFRHH+wREISpEKeUYsrID3wDaOLQSwiBGRBEoiIOQSIVEgRCFiigQQgWhCIFjhhZwBVsJ0ZoRBAjcPoHUwCcIyoGhJ6u/drejvXdxaro0TySG+r+7j7vLFHGifZvmmDy3YJvnOWVRVOCojaEwhkKXaLN4HaFmrGHjR4nY9kJQ93in92X/p/JhkB8B/rQxZscYswv8VyyGCmrg/2qMmd+ryJOTexVO+hPA/8cY8yVXbvWvYOtbfw/waWDDGPOnjTGZWwTgLwL/21//x3t45YHG6TZttwu22YY6fHLQ2u8ErTVhKCgVuH3seYzRFVhrYwiDgCAMCAKFEkWgFEopBxieyzmWaSyoa20s0xULpuJY38mStErsj73uSXur+/w+2sE+0+K+xrHHCsalZr1Ndb7a/6RWYLgLoo0xlGVBXhQUZYE2dnLyDLewRg8qI7Ms2mmDIEA17rKkXHh/zXs4ZbgfejmHLfrkpVkACmDXGDN7j3P8KPDzzcJJWGb8x0XkP2hsi925S+Cc2KJSXgJsKdVTcfJAQNcYQ1EUlGVZb6xApgYTD7zebmuMQagHdxAEBFEMCLosEAym1NWxglVvwyBExIFtENxl3jDGoLXGoBzLBZwJQSlPbe/mmKZxj9VjeKRGrM2W9wZeY+5tWrjrYtUHbzgwC98170Obu89rTQ5usgkVpS7RhcZo7WzMi8i/MAk02ry6htZ3ge1Jk8+pfGjlFhYgv+3+bhaAgventP0o8J+IyJ8zxvxHbtt14L8xxvw3J3cWkc8CbxtjnrjP+U7jU3lA5oWyrBmSI5gVgEHNgJt/1wPbszxFGKUkaZsoTgiCCEFZM4NYz5eEQWXbFGPZV6CcGcKdTVd2TOPUaq/fN9Vjb8PViBhrUhALbIWBEqF0fPheZuj36ZJCYyquuSj2hqr/Gmp75WozoI1QlFCUYIwgJ16f1hqNwQgoZR2SKlCVQ+9eERP+It70EYYBURRazWHBnm44aU44Zbofavkx4L8QkQ0RWcfWDPlOw7XuVTjpLwI/KrbcqYhIR+zKKj3gV4Ghc9C1xBZrek5EPu2O3QYekXuscvIvkzyQh5/P7RJmXq2u2GLD+XI/McZQFgUgiAoceESEYYQKQkTsNlEBKrDMVpSykQ2iKLGOotIYy/SaIKv8j41mCJSFLRekgBKpfsCFeWkoSmN/G1kATeNNy41nbP4sPJc/7i6cknv81AcZY9DG3kdZ2hAxrW24mG1SZ7PVmrIsq+sqby5oRH3c6yp+ghIR64CM7U8QBohaNAmd/PHv6zTB5kMpfwbr6Pom8CLwNbftO5KThZOMMV8B/h3sKieH2LrO/4bbtwR+N9Z59zawB/wlYNmd7u+43/si8rVfwzP9r0IeSEbaX/mnXzJeLdXGoI0P8QoIlHK2x3JBpfVqrTUFgAoi2p0eaauFiJDnOdl8TlkW6FJjRBOEAe1WlyRJCaPYhZ+FBKEDT6Wso8zH43qgDYRADIGAMg0SaJukiqktNejSsmU7WdgICOUcbrWYe5oYmsCEyHvG6Z4UYywzboKsbzdvUxXn7CpLXZl0fLuWZUme5xRFQVEUd8U9V/fptIR2u00UR4hAURTMZxlFUdTP0Himk6D7fY9vndLeUzmV9yEPxKYbx/GCs0y73179BwsIZVnWgOhsun5wh2FAUwkREYIwtKxOaUQJSZqQJi3iOCYIQ4LAqcUCQaAIAsHlC1jQFI1SLtlBaoa7YG8VrIpuxKn0pnK8GSPohhXE45aSxTAy/8XCdPa+JrdF8LZhXfYZtPh70XbSURoJbGSHZbUKEWsb9+abpj1W8OB/IvxLHOgGASqwE4t/BBUIAY0YXFM/5YKT73082amcyqlYeSCgG4Y21KsCXWez9ds9c22yJr+/1tolKSiC0IYuGWOIowiFoXTMTlRAkqTEceySKJpJEDY+VykPrPY6yrFUcaECZsFJVDuvatBtMHWjEG1hUSvn7moEAqgGWjaB04PwyTAtL4tOqvou/LHN/AljDEZryjynMAYVhpCASFhPLMo/q6omNqtFmAXgP8lYlYv6qLBYbGidMXLP/QWbIdhMWjmVUzmV95YHynSBu0B3QeXmbgeN/xxGIVEY4a2RIoIWkNDuF7hMNgu6ClEWJJRY00EVY+psucBCOJRpxATbWzEuKMFFJjRSbP0ziIT2frWzDTuWXNtrxfLC+4TCvRfbNcaHkt0dmQBAaaM3dFGSZRkqDGpbtJu0qms12rKyo98n5KuK0Q1Dx5g9gAcnUqObTjRTn+cUdE/lVN63PCDQjXDQYYFEa4yxKj/3idFtmiMQsQCgapulNtoCK4Io5cwH9Y+Nu3XA4MMZoMKtKlbWhYt5sDW6kWvRCKa1Kro1LThMpsTUdRuqyQKMAqPqDDFlg2jvabE1d31woWFmMQeuuj93W96soIuSsijQLkKkCGyEgk+xtvdeT2j+2ZUoEGviCcPQOspc5AfiNIvA1qcQEcJQuUmHRrv5tlxM4zgF3VM5lfcvDwR0kzgGPMs1GF3bdP12CR0IO/EkzId0BSpAjLED3JQYUyBox9CsbThUUtlmldPzBYMRgzY2dAxtHHOrgUMb+482YLRQau0SCepn0Ea7+67uEADRHn1KGwUhytlCBaWs40uhGiDVZLcnYNiiK9rZjo2WikH6HTzLLgvtHGI5ZVmbZoo8Q+UBXhsQaYTguYgEnz5tTS5BNVE1w9KsecJGsvt70F4bODlTiE8neXjlx//GnzXGhRDWr95OJdW7a/g8BXEBf40v3aTlDS72l9Tt2Twn9TUWk2ukOn+zf1hNTdnYanPiGsqbyKzGhjGN8EH7TIEnPf7MxmuVoJGaGHjNzlRUBJ94YyPb/fs3GKORyu9iz6zRJzQ4sedxbVeK/awd2dFYU5tg0EYwohFjtVh7XvccjRBSa+LSrhEV/uT23WjqGBzfPxU2kMLeIdh2lOo9e4udRmHbw9619QdpQExzbNjWNaIwRiFSYoxtQ4NXeU0V8umP+qN/7E/dc5A8ENBN07Ry5uiyNi8sOHaUVFENcFLzNojYrLIqurUCTQsszYgHe7ypz6NtZ1I209cBbj1IKmZpbHRCqamcfeCZYt256ms0nVP2HsWxR6UMKnAvSOx39T3Xg6tJG+2EYicmXeoqSgF3Vc/KLeiWFFlGkWf2HO7hSmMTUcQxVfD3YdV+O9EZl8pLdV8+Fnmx8YUFRtuoR2EfuWEaknvHLD8s4kGl+XfgQAEa/cSngVdbrefxZIx00zF5Up3xZxPswLWiENHV9zbN3V+zHrxibBJOgM/JlNpMJh4w7KtRDtzCyg6vanCobt2a3yo7VnUH7gmlBmcxgnZA7Gt12H1cWKQIYhTGOjtqgPfP4fpdKfYsJSCmHlsWywUtHlhN9ZR3R7OK63+LGmzd4GLb1Bv7RGFjkKTyi9QTqwVxByfuFdtxoo0lTc03bgeFPbOS0rWJwkidE2AWb+pd5YGAbq/XI6/y/235RW9iqEDXCKqhUjc7gQDKJUEYsQxQGzDODhm41GCjNabhsGsCbxUVIbIQb1pfwcW8ls5Zpq26XmrLcKGe+b3JwrgsD99hxDMUx7zFmzjwZo6aZVtWbxwQq+plGge4ZVlSFoY8L6vIA3+sNhZ0tS5QxhCFIUGcWLbq8pmDILTtEmjLkpS4KA7b6RRiw+PEN3cNsNXUYhaZvfH36LZXnde4oeG1k3vZnz/0YtlgWQ3FmqtAox2Mg6RqbNeAVU2kNBu2nizhhMd1AbgAlC0r2rwt1zdE6mHv2SngQNigKkCsAV/EAbI4hkoNuPY2asYnWLATY4HKAqh2O2ps8k0NcLUC5pilEd9DAMFIQK4DSiBAYUxOqEr3DMZxQjepGVMvXV0Rm0ZnXADSZuu4bY4hVy+paixfyMmb+gL7t3igr9+0BWVdvQuDrkBdO10ArCZrx7qbUtxYstcK3ATkW8GRQ6MW3+kJeUBMNyaKQooiJssysiyzTM7pcVo7Qm9ONrS7eWlWrzJoJeiymosdsFl1B11S4tKNjapss55ZlxUA2VCG2u6pa7AuS7QuKYrCmkMWmErtSPIRDScdVvcKxfLXt6nJEEVBFVlQZcFVgCY2pjbLyYsCW1/CXt8TY8E6F+M4Io4josgmL6AD8qJkNsvA5GhTkuUZRVailKHVimm1WiRxQJpYmy0GtFjHmoEF4Kks08Z27spZ6JiCB197j5YB6HfrYR9SqVicqeCx6oZNC484mi8VKfBszgGvAMZrXB5xG0NfHLPyIO3aWlWAbRmvcYO/AnhqZdUfparvAguIYgFTub5m1WLLLqsredZsrMaosBmKxoBqMkdT94Eqv91tryFQHHc1aIHCxByWK7wz2WI/67EzSTBFQY5gyjmr0YyL7R0eXTmkG47tWYx7VuO5sOeIJcYEWHOBY/h+WqkmOguSvt/VvgU7EVUtZjwoUj+Tu4p/n37Mer5gjNVQdaUlOG1GHMc1Jw1A9Txr92tMHCf60El5QKUdLZtTjmFqrSmlREpTsTh7016FqOemKnrBhYEhTr0uXS0Ho2w2mni7lLahXGJB2GhBa1PVfaiATykkaAJdbfbQZYkuixqEMdX9QM3OQTU+U+0v7h6bE7Z1tAWIBATaRlY0B6ehrhnt2yOKQ5I0qtqlmS5dJX4EiiC0nWE4mDKflxRFCaLJsik7O7scH4/ACEejMVevXuPyhYvMZxmXH7nIE49e5NzZVcLAVM9QGs32nQNef/Umn/nssyRp1HhGz/xMBbq6QTK0hrI5SB8S0dXv2m7pna2AxQeHyMqBjGU+4gaUVAPTiCdbUkGIt97oahx6M4A4AG9qdi7SBmVttG6rHbzG3yGAy5asnbhivP/AsWipe65yE4WvU1KbOWpU8L7jqusu2FLrycg2hakmiLFZ4YsHz/LKaIVbI02SZ7RDmOuIUZYznYdovcR0nrIsm/zWK0d876XrhCpz9lYPuTV7tcCrKmZcseQqj71x/zUFq87li7JKBbjGzYP2WCPWjGibV1fbBGdu86O+egWmMcH6ujCqOr6y3nvzSnN+eJe+90BAt3JcASa0Bcu1NiB1MoTdrwZfJfU8ErmC5GHk6bsFH5td5YzY7hhle6s1EZSGsnpdVhZSc0tv47Gxtzbu1bhOgI07Vco5xSxf8PbW0kUzUHeThWcNA8EX3anDtOxPECib7CFB1cO1ru1GfnLyxyrlBm+l1ps6ASKwiSXbu8ccH49Y6XdZasN8ljGbTeklEReeuMLB/hFH+3s8c+USH/uup7hze5e//mN/h7Uzm3zuez/H+QsXOT4acP2da2TjGe1OytPPPGEZdMXWqZ63bs/qLbsJDhpljR4iaZqjarXSv1k/gJCGhuVYnjc3qWqQ2/MJDiTdpGnEgaTx3zulvxqUtYPGA69x+9kzqKq0qLfdQn0/yg3wGugbCGo3+aepwb/axZoT7ESq6/5MU+MxlVmlAi6jGOYJ39g9y5tHEV/dGTEezUnjkEyEyEArNMwKg55PmKPYzwL+0rfP8e39Hv/6s6/STUZ2bPmkemOf1XNf+xNQabP+uY2fcJz5Q+x+lZkADRL45nY4XRlZHJh7hryoebge0TBB2pZuUK+qQcUDvFdssBhmfU/iHmlxZZymPBim6yi8duFHQRgRGTBZRmFygsh60ENXEcw6pNxLBoIgJI5sdAKiMChKY5MBgjyn1No60qqyjxY8i0JDXtjKWl49Vk49WnDaGRvV4BmDUoSRqjLaPJMwxqAL4wr4lBQN04KPjbWF0i0gKhcRoATLOPxgdJNDbaZw51lQYx3wii26Y+N67WoUYiAyhlIMB4MpL774Gkv9HluryywlAaYsmOVzVpa6KLXEeDrl8GCXR89skSQRxXTK5voK0+ERb+7tsHvrGutnLjIYz7m40eeHfugHOLO1TquTkASOZ7gpv0rqaNI2Ywevr0PxEFoX8PyxhNqhZlz2n+esrg08i63sehVJME5dFQfOdhR6rlYRSvcOPUdrxosjaiGBx/p7HTM1tWnCWhjr6APLDLUDX//OPJ+tTQLuIg7uGyYE946tGi+O8jrYc+PXq9UoodQwGMGr1wZIpJnd+P/xxjdKsuAZsvgxMqNJVc7vWT1idnCVvrT5ifSTjKWFSSIKA1+41eNo/BR/4pNvsNY6gsZ9WtNHrU2Zikn6+y3wvNuyTf90td3YddLqvTThtGoJZ9/10QkKqeqzuGmlek/+SHuPqvq+Bu/6Pqy12pkhGnbee8mDqafrbZ5gV20IBYgQEeI4cuUY67Al8czOiU1wgNCzZRECI5Ril9nxzK85K2mMA82AoCgoy5rve+cWjf39dRaK36haVcP98iUUtSuPCI7dGmoTiiuiI+LVSlPv5wGYpj/W2YcXhkXNnqTRAZQpQRTaCHd2BnzxK9/i8OCAH/z8J1nupASUZIUhDEJUGDA4PKS7tEQ7CvmHf/fv8dzHvovv+sRHuX7tGgd722iteefa61y6uMvv+yN/hI1+j+1b77Cy3GJzo2/5RQNQffEfjdU1xbgHcRE8ItZr/tCJgbJi8hUHtepnxYQcY8VNppgTxdy9k8UO9koxF/udo4iOxbrJumLGvjFpXMn2cfvR89q6b0DDqir+uFpFlqYN3jnMFmy11dVwbMxzXmpGizvG1BlAewczrl4fs9Jf4eL58zz25BO8/E3Nd9/8Cd648xVeObhCGk44Eyzz4vV3kJVNRm+8wA/88BZ/f/ooOheM6mDKGS8dJfw/fvUj/KefeZFea7hAhmpOq91kQD0h+KcQt6d4DcWNN+WjFLzjzH9Xw2hzq2mYkiofS3VEk+/742qmWzHuxjRWTXJSG67uJw+mni5+QFrmEFbqdmRv0K304NcgU54R+OdSPva2HtBaXI0DcdFxXuUx9rvSdzwJUKFCl0Cjs/uGte3m1QS7PXDnrg3j9XNYVgHGqKqJvSpYPWPjmIaVpD5XxVwabXSXpd0N84Vj7QDTRtgfTPjKt17j7Wvv8IPf90nWl9vEAeRZwWQyptSGbJbR7ba5+c41vvhzP8fx4Ji02+HNN9/kF37hCwQKjg72WF/fZGV9Ba0zfvHnfo7P/abv4czmBqlLaqm6uCPjvl00tv6w1vUzqSZ2PERijI+7NQTgbKmG2mnmQ4qkBiLHeOv52zg7rHGAJ56muQnUc07tgNvtV2/BXcKK2H6tGiYNG2Va81bjgd4e4BTrpqOPmqFSs1vL7jyTdINNvGlB3J71vkYUZl6wt33E/tff4Zk4ZvSrX2NeFLzzwx9nLV3h3/9jv58XvvFF/v4Le2wfT1ma7fKtgwOO37nK46sdLmZ36Pef5di00MdTCAJ0KVzdh//xK4/wJz/7KnE4c45Yf23dAESzAMoVIBrBpSpVE4aPpnAkvYr/rWaY6vxStUWlpVTf1iO/Hsa1YQf/yfcD57fBNA1sJeY9ijc+ENB1wRS1F1UMgTIY5edtC4Y+N8KCbpP1gX9AhR3UCg+6tlGVqhtA4zpqYCMdSiO1z6qBgKrhZPDL9CCgjFlQ8RZQ092/fSsNrir1b2l04pqfmIXX7K/vX6+mjllesBxV7MtbuYS94YwvvfA6b759lScfO89qLyVSysbuFprZfEanvUQnDZjMh0zGI1785ots7x/R+pWvMpmPmWdT5rMp0+NjOr0uEnf4xjdfIUJ47InH6LZaFQjYcDJn7waMdu9N7ARnJyPbhqqe4k92gw+1GCkdjrpynQaU6GpS9r3Xe7eDpqOiaSAQx1NF2zhZtw1jKiBfUFf9ZO3+rfuENI4Fb56qLblVBKqb5O03Jf587vxO0bX20OYDQ302FxWg6zAo7wDyk4tCUN96h0//3C/TGmwz3h0ybbe5c+ks+fI6Uavg6PrbJDs3+W2PLPOTr3QZcMyPfG+HSTblu9Nn+SfxFdplRlGUqJWIY5Ogj2eA4itHK/zkq5f4vc+8gbgJTlehhz5Kwd+4fzo/eVH9jSdFjsz57X7ipEIhOxn5kXUyY7XRSHiteEEHEoVdSNEnXYDz4Fctjkcsc/K8i/LAzAseHCs2qepOA84m6j57UK1b0ykWIqi6Fnr1tWdfTYi0Dgm78X4hTLLwuWYZdTps4wabBzXdkc0G9ZsrNtT4zgW1V6dr6J4WtBrMouH9FzeDF1oYT3MOB2N+9evf5ng05czGCo9dvkCv1QaxYWbz+RylAtJ2zHw+5eb2HX7+S1+mc/YyH3vuU+RFiWghDiLOPvIYpVaknSUkbhEkXdppiEp6to7Dicf37eLfZR2nW1eOs+zu4UsDrpmUWIbpQMpXpfM2XDvZ1AMqwLNPn9nlgM7FtTbVe+9pEVxNjsakZtmkVNcCakeYqIYd2V7bGNPodm6bIwy2I56Y5E2jO3t1uCLAHtgcWHlTl3vBYgRVljzyS9/mzPEubFyhfbmg01rjkWc+ytuf/h0ErRZxGDJU/3e2X30RHX2Gq3rC8PAOZ9bO8GJ5kfk0IFoStsKCcRgzzTPmoQZsTY+fvH6By61dnru4RxiqhfuyWUKehTbYptFVezVUBLxBrJ7g6rhbixfuHRo/w/jjvU7RGLyyEHRXk7FGvLUFV58dpxApbMgbDtzfJaLngZkX/OyjjFO/xQ1ed8+ewXrxITBAQ/U2NGzVC+yiyQ/rWYYTO97rzirYXzjXux4rJz6cOMbPozXgLiK3vaqh1PXJtVo4sjpdiWKaa96+vsfXvvEyR8cHDEcDHrl8nqcfv8zGyjKRsokhPiyuv7JClhe89sZNfvGXv0amU9bOXGb/YA9jDFtnz3H+wgaBCK+fOcvOzh5bFy8znRaMZhkvvnSVxy6eIVYn2vHuR1lQQoEqxfthY7q+HL3xHUxATJ2LpJzx2k88TS2pLuXpIl+NTyd1fdFFBSz4HMSAKDfgarNBPYwtu6p4maEyn5ViCN3Vve0XaLR7QzlumMEqU4LXqPy4WninLjyrwiM3GUwnzL76NfQTF0mHE5LVy8wpkW/8PF/Lp+Rra7RailuvvME3b/WYRFsU6SVu6YJbUYulWFgtR3RmQ6YooiKjE/aQWDFHQ9RiUsLfeesJHjs7paNGVlX3wGhb7cRbs89bgbDx7eaB2kcmGNd+Da5jvI7QPJf7XXVf3z5+8vObzIljBCirC4jYLNBSFZCrE8fcLQ8meqFhzTLizAqCtWc1nGzNzqLwdimp2GAFAXfhqW8N46737kPeNPua3GvPRnympwj1X9S8mMWXcz+prqErFqR9FpPxP74DQaFLhsOM8WTOtVv7vHHtJjdv3sbogtnkmH6/x9Zan5WlNpEyTKZT4jimyEsyI+zc2eP1N97mjbdvooM24/E+4+Eho+MjknaLfr/Dd3/iu+gv9ei221y/scPzn/wo337pba698Q5ZUVjTQZVoXzeAcZpDKb5GhNQMFxeq926u2g+51LzVLPSNGniFQGrw9a9fi2O2plbjfWRKHcvrOJSPeqhA1qcYmGqkiNT9uEqtcK8iMHWvrz6Yel/vBKymREd4qiEigNNMPDO30Sc1mCyGOBnKTpvD9Q5Lb19nvZsQFRmsdTl6fBVRb3LnV36Kw2HA8SigOPd76YUB7e4qxf4Raj7HJCkFIX0KukHBLaMZGyHtttEEJJTMVciteZ9/cO2j/MgTX0YoKnuz8THGtR5APfprhoqU1Oaeisq7c5wkA2VlxxVptJE7rp4knR7jnXlmMVLBRif4PmOvURSCjqboriY2Pdqd7n373IOJ0/WzcpUlUt1vQ01oMFVpsALTOEYWm6wih5VqUJ/vXXmWb+D6NhY+3T0FsLBXfeS9r3bXxFa9d9sZQncSg6bEhoFlGibjOXfu7PPCN1/nF3/pqyRpi2k+ZnV1mcnoiMP9PVb6Szxy6QytNKbMM4ogYF4WjAYzjIZ5WTAeDVnudfnUx57jjbff4WB3m82tVVppyMrqKh995mmeunQRFSiuPHKJ5f4azzx+id3bx0yWj/jdv/lTxMpYW7hv88bzeMXN+MlQauBV6uHMSAOoQ7gWQ4dCpFL9m0Pcg5u3QfrkgRLPfk1lHxaafd+SCd/LTBXlYmdhx6mpNSkbRRE0zG3WD1KbGZrRBhV0utxs/1/lSPIdVKhBTYyL6XdROY2aH+gCVMj03/tDvP3n/gbhfEx77x1uFH1u/ujv42w+4/E7u2CEN1SPH9/bY3jlY6QUjJOIiYlZGR4QmBkTpmRBwJ3+k8h8RpZ2CdoRUZTQQkhSxfVZzLf3n+bZ1RfxHvV6THkzTNN8UrdLnTVJfZwH6oUU3XqM+3cilUlGqmPtXhbIm1ZF7yMFGiFrshCrG+RtpJxS9veZpx8w06W6eacumXpLc5b2zqtmmJbfjtvkDxWoPL92k1k857uwzwXWfM8d6iBwh9D42gmN3JbKm9+gNlA9h//ecwbHhDCUCPO8ZDzNODgccGd7n6+98DJf+tJX2dnZJYoCzp47T6etiMjZuXnNpuyajNHwkF43JQ4VOi+YMuNoNHTsuWRzZYVzayt0Wm3CIODT3/UUx6PPEqcJ+4fHREmLteU2rRgKDfPJjH6vxVov5eMfeYIf/k3Ps7rUwjte9AlyYBbUhGbwuFTf31N5+JCLn9QD47QxqCIQfLyrfa92VCnBVphzhlHbH92KHu6MnjlpV/sAd+4auA1ahBAP0oIYIbxH+6lqFDQgxk10lf11wdfgGaL/20VnVOFNVsvUvg9XAA0+JtdUvFIsgl+5zOhP/bu8srPL8v4tkpu30QhBlJBcfIqLe99mnUPebB3ws3nJQAQdBhSZtXfvqzat47eYdS9hdm5SkKB7W8gcWgEkquByW+gnAdfGV7jQ2aYX366YuX82mwTiTAoiYE6aHao3SgWGGJetZ+q2a05tFavzDVJPlIuETmxjeYdGdY1KhVi4BykTOAzIOLjHPVp5cKDbDAXzA7TCSPdqBaShevk2aPbBhceURVWjdqy9O9WS+3yurtHAEammLntO5XPnqVUdy0x8GqHlSD4cRwOTWcHgeMrNmzsMBlP2BmNu3LrN3vYdjg4OeenFF8l0wdLKMsurbZ78rufpdHocHe7DfEI+nzM6GrC1scbh0QEH+7ucO7fJPAoZTSbkxrB3cES/32N1uUcnCgmDAEFIuzGrvTUKo9m/vc1f+H//VZ566gn++B/7g8znGbNJxsaZdUajktWVDhfPLVmfgFkMafNSJQG49jEGjBJbqGfB3f6Qibjyh9WELYhyyTmN/lrVZ669wlXSgla4WgfUDBSvcVqAVe481unlyILUuU61ZqEq5iXmZC+tZ0IPuLXV4ISKJYY6Ksb+K66EiwcL8RONqVmxP2cVu2ks4QhXemQrfXZ4FNEF2miUaLIL5+h95WuYtSf5pDzCL3T6zHVElEaYyZDZYJss6aKSLQbSJVaGKI1IRm+xvNTm0vyQi60DHlsa811nJ8hSwOYju4yOI27dTMhmnt2rxvh2kw2148s6q7V7JjtpLviKatCxv8RqbFUsvSNKC076E9dCmjy4nprAVx2sW9sOlxB1tHzfrveAzAsVLFYPe1L79pkhNfVtRBC4Y0/WOdANZnnyeu/CY+8pvmaCvXQj0LlxE2IE0UKdZW1c3LhhMi+Y5wVHx0MGx2Pyecb+3gFf+pWv8u2XX4U4QitYO3MGRLh59Q1Gx0dMZ3OW+6usJAkbZ89y8cqjdil5UzA53udof598PiNNIq5fe5t2O+X2zRucO3+WyWhMXhQ2HRpFPI4pCo3E3uZo4waNsSFOTzx+id/+Q9/Lq6+/SV7YokOPXDqPiOLbL77OZz/7FFFgZ3If/1m1acPcE0jdSf3E8h0294dOvE01cKm8SG1mAE8InIHAzrKVKuvZoTKOQ7pBWZq6z9fncSueYAHBVv2SOlKh6vDOtuz/bPo15ITGUXXU+o158PAq2SLs4gDEl2BsSDVZ2LAoY+pwLau1GWzsqQZCMBptYNxJkCAg3P8WT633+fhyi3fmMQcTQcsE3e+x3rrJ1uAal5cDLvVeYDk5onNOUcaPs3VmRHfzFVq9jE5Ps7raZa27hs5ynnn2B3j1lSWuv11SFC50rrLxUgNmowxkHYrn2mPhnzru1jTeYUV2G525ClRotF6tp5jGrIprp2Zr1hpw8S5+jgfGdBdu4h4j9NdzzDafr+kxfredvWfY2yox1jaZ5yXTWcbR0YjhaMI7N3c4OJqQlyU7+/tkeY7WsLt9wGQ0Zmf7DqPRIcPjPcQUDA5uM50MiFs9HrnyOJPhMVvnLrLc7WHKKWfObXE0GBLFwqOPXmTj3CY3rl/n5jvX2Ll5i+1bN0jiiJW1VebTCbqcc3S4z8H+HkmrzfHxgCzLWF5eYzYt+Oo3XuJTH/sIS52UWFkFSjsAaaUxP/xDn+fz3/9ZkiQk6CjSVoJG8dj5s/S6zYRRn7l3YoJsOIeMcaoeJzPLH1YEdln0UpuEXNYrzWeyTNS1TEMTqwau8VOWqohzNbCNrw520r8hdUIFpuqPPjrULAxst49ZNAJ4u21lAjPUg2FBHfa3LlY1dyB+kiVbwPUqdukOt1WG7fGl6ykGo2Dv4ioXxzO2s4DBeEIYFXzv1k9z7tF/ytnWNc6cndJJhaAQiiLnzDlIWkKR3ySIDGkKKjNICeVoQJkElIUC/Q94/vlHefTKR/nm13vs7doGtZOiqms2NCC2mqKMf68NzaNqrfqdVMlSntd6041ZxBBp9IWKmDnfBydIoSeOpRj+ybV/wo/w357scMADBF0/U1ZmAFPPNv5BqljbewJlg/I3vOX+pXtTTHPm8/uCQWshK0rGkxlZVpBnBaPhhHmWc3AwINeasigoi4LpbM7u7iFHRyPu3NllOpvy1rXrHA+OaaUhnW6PJG2jkpB2q02722GWTWl1U3pli7gN7W7Mwe5tequb9JZXOD7Y5vUXv0K7u8x0uIcJhKX+Km+8/G2Wl3ssba2zuraCUDIZDRkNBsynY5QuGBwOSOKIVqvF/u4dttOE0XhCGKds377N4cEhG1tTzl16hDu7e7zx1lUev3KJficFha2qBtg/DO0ksitGKFhqx3blXwWBCSi9zetE29ey6MCpGUO9z0mQejjE1bmowNJUCRA22aHRPxcAuOHSqXEYbwNuKMKAOBNDfbwPt1/cSxoH1sy5ud22uW7E2S72fGP8uhYelE21h9/HlWSpzAr1/defm0Ai1CtD+Dt1owsjMLryHFdvbPGno+8jkZ/lP/rkX+H8hW16fcimMJ8L7RYkqeHq28J4YihLQy9VpC1Dqx1RFBlpALk27O7tk7baBNmU0fFLLK3c5gd/6I/zwtfHvPmKRhtVOed9W/okCF/Q0msavjJZ0zLuE0ncDvfEFxVKlWBWpxOfWDGk8QsMJ0nta8ev8PbBC9xPHjDTtVLVn8XU2TSyOEyrOas5g7jZzafi+vhmbTzDN3iHghYhm+e8/dYNvvrCy3zthZe4fnObUmJynTEYH2LKko2NDR59/FGStEWSxJTZjOPDAbdu3cKgGQ0H9JaXefZTH6HV7RCHIVlWMBlP2N/dYTY6oixnaFMymw1J44QiDJEw4twjjzGdTlAGLj7+NPu7d8hmE6Ikob+2ymQypdtuk7ZbPPL4FUJXK+Fgb4/5ZAoGoiBiVhomgxEiEEcxhzv7HOwdcjQYsLe7y+DgiPm8IGl36C93GQwn7OweIGaF5U7L1qxwqnEg4rzgLuhdbEBfYJRVextqrFfDanW0aU+zg612MuCd8g+lI82WBVWVT6HOSHTmgSp8VyqS6xmiz/jy/KqOufWRBSegWqqgtDqDz4FnRRzE/eUyahTNqlsNndE40Ku2mpqFe6DV2HX7mgfimK3452qAr585ah5bHQNU9l+qby0jPFr7bv764RpX4r/OH/oDf41oqWA8EcIwINKa3hJQWAK01YIoULT7GjMtkRFMxiFra4rZYEYrMhDB0ShndUkRi2Z2fIci/Rmef26LbvsyL35DUZZhxSi9A76+s7oNK5ImVATNmt8WWa9tVA/WJcXaEDXpIKOoNtksTHQnpWFycn9vpWt8/sJn7rGvlQdW2vFe9yeNxhLubwqoANjUzAr8ORvBH8aQl3A4nPJzv/Alfu6ffZEvfenLFPmY6XQIaKK4w9rWWc5dusLlJx/lkSsX6HYTlrpLtNMWZTbn2vUbXHziIqPhiKOjY1rtFqtrq3R7HUQUt27eoSgz9m7fYDYYEbVTgihgPp0SRhFaBZw9f4FShLWzZ1EilCbnwpOPMRkNSUPF9bffYnJ8SJq2OHPhEhcvnqcoCo4OD7j99ltMxmOiJKW/vk4Qh0zHE8ajEWmaMjg84rVvfZPLTzxBK20xCoeMjg4ZHB2zsrzMJJuBEvYO9inzHiurq3bVCFUXrAEaK1KcmPFoMte7TQz1TvUbqkDiYURcoKod4cHS+xR8gohXU71jpsEKq+oHrs2UG5hqQeOVilwAjewzu493ttnVHDzb9eSkhpImE21mZtnDXdQNDQezKV3tgjpkrAZbs/hiF8Df1Onsja+rfcSyXt9Ncpb4W6+12R38BJ/+6N9hMjdciiEODKNZiSmFcgrtNOFokJGmBtHC+lbA3nbJ6BCy+RSjO8TtiPJ2Ti+FdpCxtx2wub7EfDrjsPwWyxvHnF/dpfubnufLX4qZZzHSqEFRVXJrNLDV9v2ERKMAkH8/VO/OOFu6QciPM2adO/Q6jxCO08XZDhpan1TvRZc2HT6ME4q8YDXcZGNl475d74E50hb1ovrj+xqjfgC44xrJW/hZWYAC4Re/+gZff/ltdrZvEa+v8/Hv/zxGG/Z3d4mjiFavTZKEbG2ts9RfYjYZE1BSzOfM2y1b7SyEw1s7DIdjQBEGgM4RnTMZz3j7jVcZj6aI0sTtiCASJqMjdm/eotXr0V1aYTocosOI8xfO0+4mtOOQ2WTKdHDMay9+mzvvXKXT7bJ0sc/Tzz6LUoqyzBgcH7F/5xbj8ZjNC5dZPbfF6rlNJoMhx4eH5LOMTq/HO2++iSmtE6YoCqbjMZPRmMlkSto6iwpCummLw8GQIEqIwohOK0GCZuF1w3yeE0URyjnfqoUPF8JknFLV7KBuHxdB5caqLA7ih0iUW7oGgspphviomhOqpI8HdMPcD7jKBFBpYrKwrbYbuuQfGgVsRLMQwuTR2LMwH0VjDEZZguGdyyL1e/JsvLJzSgOwKz5XUb3a0+6fxzRq0VLrOn5SsPdC1TbWKRjy1rVzvHXtW/Sf/3tMTZ9vvblDGWhKBfOx0EpgbVmYBRo6htkYJDLs7hl6GzG7OznTqeFwb0SvG9BrKd55TfHohZKkELhmWFldRkYRwZkOxRlNr3iJT370El/66oYtaCVCM0evWXWsMjU4aRYaEve3cVmCdc6AkM7XyM0Rh9HLnF/9boqjklKXvhGq8/mJ2mjN8PXb8FjCmTPPcudv/B2uHaR89xOX79v3HlBG2qK5X8ndWWP+3b+n48uL60ye/Ral4Ytfe50v/OorbJ5b4XLnAjdv3aLQhvl8xrnLlwiCgDgJuPLIBdIkIA4CojBkOpsRKGE4HAJwsHfA9s3baG3YPzhgaa3P2bNnSZOEWTYHUWTzOb2lHkcHB8ymE452tymyMUWeMJ3NODjYZ23rDPPZlI2NPpQFWZ4xn00Zj4YYYyjKgvl8Rr+/xOrKCteH161dOZ+Tz8aIQLu3zJmtDYaDY6698QbDw2OmM4MKY27fvEGv3ydqpRBiV9agoCgKMIZABfSW+4ynM7qd0GaaqdDNzAajhUmmKbMJ62FI6lZn1tVgdHbJhkbhK2S6V2AddcaWjkZsptq7OGo/tKLFryRtwNtwqRnpQgxRpY8LfqFIqMljtaKuY/4N3QJwIHvSxuhMGdbB1rTyeqB2Desusrjdn87UlgFqE4DP+jTmbha4sBynfyZqMHJnwrNFf3btWLUIzPUa3/r6NV786t/iT/zwFpfOt0DtcPVmTFbmZBNY7kKpDON5QasDMwPdEuZDQ6uTs7YRcJSXtNYMk6ua2X5AJIaXv6D46LNtirjEvBoQRH3K/YjWToxe7xLlfa70hDeP6tCwutCNN/NYM9gJUmufqhG6IKhmExMFisIIvfwxxNzmOH2NM+c/wvHtKbrQjZINhkgC2oTMDgccr+6yvnqW1975Jn/z73+NbqIoRrf5w/fpex+ITRdosIXv5Jj6owcCIyVa4MbuhC++cI2l9Ygsy7h1+yqDgyOm04L1s1vEUcDF82fodFPSOCJxS90MBgPm8ykHB2NGoyHT6ZTR8ZDh4JhWq814MCAIFPOVFSaTCb2lLpcvX0SMoZzPCDC88cpLzEYDCqPoLq/SW1mn11/GiKHXaREIlEaj85xWnBDHMe12m9lswnQ8YjoeEkVbdLsdOp0WUZowvTlifDxAa1BRxPmL54hC4e3X36bY3sG02gwGA6K84NFnLlMWOWGg6XVbZPMJR4Nj0Jr+ap92nKCUoiiBrLbRDUYzXn79bWbZlE88+ySXzqxVYFCzIqlfV+Mbu60OF194Rw8h6HrTAr5qVTMc0TN7r7N51ukZpmOA2kiV5OD+dzjWaMdmazXsFKbxjbcwLsTnim4k41hI97q0d5N5AlJXegaf6OOXsKquUUUrCPVyOfUx3nlXPb6rZ1BbJLxxQ8hHa5jhy+jhPuMbv409NWbz4jaoPRQwV4a3doWbu0K3B7ECExh6CvrLwvyGnRi6XUi3Ay4/2+WlL4/pdRUbZwy8kdHabMOmoI5CzCSm2O6gxgLFlCfiFQ5UyCFzMIWb9FRdt0I8xbOt41rPbbHaop8m/VtSAmGoKPMCkYhecZ7JwQ3uZN9mZfMCehCjp0IvSWjnGbPJiHkp3J4ecM18GTl4ivks5vJHVuhQMI7y+/a9B2TTfW/2urBHY0q615GLZihhOC748Z/4RfJiiMxShCm6zLlz6ya93hqXHrnI6lKblaUOhoLJeMrx8ZiyLBiPh2htCMOAOI4Zj8dk2YzpZEiRZWTTCfM45ujwkCAIOBtukaYxvV6X6/t7HG7fZHS4jy4KVs9cpr9+hqTTxojQ7/cIQ0EXOceHBxwfHrC7vYNSiqws0EWOLguGg2P29/fQuuDixfNsbG2y89ZVZqMRg8GQIIxpdVqcvXieotCYsuTo4AgVJHT7PdrdLmtrqyRBQBQpuzpEWaKVYp5lmCBES0mn3WaW5RhjGevP/Owv8Ff/8o+Rpi1+3+/7nfzJf/sPVcvB3NXmpv7x7+XknnKf7Q+DVCFejr1Z4HGqahUS5LV+qaNlqgwmQaReYLV20nBXQL63J9bGCW/KWGSTtVvL1LWwocF4aTBps+Dg8vv5ClcecH1ok4f6qlpZdZiu4ob9XVAd71++qci+ADdfeYt8uk3SajO5c5k7h4fsXH+Gxz/xK6RLM4LEEKUwHUI+F7RWRKFmoIVRBsFYYTKhLYolrYmnBfFKl8NjRXeaEwgMxynptEc4bzMearrzgqBYpi1j8tEtPte+xNfbm9yWOxhjayrYoj3evVnRUtfq3lRS29nrBAuDEDDLCn7553+WJx57jo0LF0jVBfQ442ByzFJHuHCmxf7tKTdzwYQpRMBqm3e+sE9+56tsnTvH93/P9zAYDBnNBvftew8wOaJJU932Ex62eo007spEu1ucmqOFn/pnX+Xm4QFnzq9yfDxgNp1wuH1ANst59BOPYLIJokOEhMytq7Z/cMRgcIyIIU5C4igkDBXtdkqRdRkcH5FNp6hAkEAxHo0JggBdFKxvbhKlEcV8xq03X2U2zzl75WnOXrpCe7lP2kooy4zlfo+8mHN0PGN3e5vjg0PKPEOAQAW0V9ZZO3OGtN2hzHM7u0aKRx5/nDe/+QKj4z0mx0fowhDHLbqdNtk8Y3h8xHQ2Q8XC+uYZLl26SH+lRxrHxGHM4PgYAZaW+wQqJAwj4iggDoVuq8P+0ZCyNKyurtFqddk6s8bHnn+awKuXruHtOPfryNmkkAo43I/GqqLaZfZUqutDJnWgQsOc4JxfpkIlZ5dtxGBW2UgVKEvNlL2rHH9udx7jnT72XEY5GKjAtIrOrYDYs1cxDTsrTX4iC6YFD8wLMeuVo62+b89ljZT23C5pwtfXsOhq8GFiHti9sq4JmB3uUcxHnN84y8H+iI+strj96iWGyQHmzNssbwzpJNBfMgz3BT01LG0ahsfCrIQsNOhcM52kDAvFyARoFXFQnuERAvQsR8qE4zImDUJCHTGblGg1QToRJuzSHu/zyVzz6vIyb3Bk28f45JLayVU5LPHQqxt93rerK0QvirOPPco/+Mm/TS9cIkhCokcE3Sn5nqcuooPz5MUVELt+W6paTHavwbjN1fGUVnpMD4WJ5jz3sY/ft+89uII30py/a8Z0177Njg/Vy73HSQHDjTvH/PwvfYWVjVUCUexub1OUOa1uwh/9kf8N61vrHOwdcOv2TebzKQa7usJsNmM2mxNGClEwnUyIo4goiohiu/ptURQkSYzWBTrP2N/Z5vjggMlwyNHhITffepnZPGPz3BXWL1ziytNP0lnqkc+mlEVGr9clCJVdyaEsOT4+piwKjAitTodWu0Wn12U0HNHttEjThDiK2Lp4jt76OqOrN9m9eYOdO3dYW1ui3eqQtloknTab57YYDKbEaUq7u8Tq6gpxGBKHEXlecHh4RJK0WV1acs8VkISKdiy015fJioL17/8kn//kM3Q7LZa6LXBJAcpItTKHX3/LS4OIuRq6Ug1ureXeafAPgQiW3VXOhirEyLDYBR2YUbO9SuWXuuCJoTY7VIusiqlBu7pwbbKoE3R8EBrYpWhMXYCmAg4a76UGxIrQ+Xut7tA0wqU8f/YMsMGs3TmqdeG8kcExZE3NgD0rD/OAnhRMektMhm8R9B/loswpv3me2dfndD+zS7k8Q6UZ8W6PeGNCMS/RKmRpZcaNGyG6o5nmBctmjXwvJJpEFCbgn725zO/sQjgxBFIyUyCFRoigbKMJSVownxVkWnjWaLJ+l+tmhJYScUncVUu5dO/Gk+EB2khdXhP3Pq5cfpylTzxO8UrGaOeQ4fURj3ymxaWnn+fGjddZl0cRo4nDlJ4s8dwjH6MVbfHNV36R2zde4slPGi6sfbczcdxbHrhNt+oQC2y3/rtqHs8cqv0Wz2KAPDf8w//lixRiSFPFO1ev2pjY8+f4zZ//DGfXV8mKnDLLuX6j5Mat23TaLeaz3C5aiSFQikApZkXBfDYjDEN6vR5pmjI8PAJRqEA42N1BFznDowPeLDXj4YgiL9m8/CQXnniK/so67VabbppgkpBWKyVOQg4OD8jmc+bzOe1OB4B8PnHLqyf0lpbJs4zJdEIQKLTWpElMu7eMinfIJmP2t7cZXDhDHNvv+6srtDptgviYTrdHFCUsL/dRxhAGAZtbWxRFSafdxS4EGhCGAWEU2ucRQysKSaOAlW4M2LhmjaC8WmnwIaL41NVqJYQmo/KWMWMB92F0ooHjQqrJUnFF/+u0z5q9Ug3KZhRDk0X48DnV6M+ejXoS0qQUUuv+tdXRxc1W5U9rWltd0m9r5gT6Y+1+umGCsKqz0X6JcJ9L6CDIvXhTncM62bQPrxLbPzRSLeApxrDRjTh0391SIW8PbvJUmrIeFRSjZeKvJZQdjQ4y1GydXaWJH92huzFjNj0mywqKUU4kBqYh8Shjnu2yvzPj6u2AO5M5f+IT52lNZxgdEQUBBAHBrCQIt8gGU+I0Z1KOeXkYczlapegU3GbeeDdOKsenZb8+O3BBf2hEigiKjz/yLF/+8j+jraYsr4R83+/6KHvjXduOwFJ3nUT30EXBtet3mE8zLqQpTzz528iZUGX+3UceOOgudM1GewhU65+9H7MCGF594wYvfPtlljf6jCcj9vbusLm1yW//LZ/n3EYfUxqKLKPTSrhw4TyTyZTJeETYiTk8GhBGEVEYc7i3z3Q2QQWKTqeDtCNm0xnZfEbc65K020RRwvj4mPlkwmQy4cylS4RJj0effoq1s1soYziztUa7kwA2BnY8HhGqACWKta1N2t0JRZYxHgWUeUaSJASB4vjoiKWVLhJYVhxEIY8+8QQ7127RW+4xPN5nNBzS6baZz3PCKCZJW/SW+hwdDplOZ8RBylKnjWBYamuUCmi1WrTSFGMMiVLEoioHpK2XsMhgbcSNVItMoiGUugaDEo02Quk6pF0fzYUYOdalMfUqwQ+RiPhgI6v+C25ZbwebumE7BU8cGrTSa+J+osKbJhqg7c/gAdgf2gROnxnlVP2FZBTx4Gwv1Ez/xanNBhDtvjf6hAmvBlIPqr76mAVv3WCAurb/usmgbJgV7JpiBiHjwtk26Uv7zDqP8OPZiGG8zAt6wDNxhOqs0TI5MksoleIwTZmV+8j1ZfLtkihLWV0yZF0NrZC8mLOvNb045dxGh8mdkJeHE/7itw7431/oECpDaWICHYEEFJMcCBBtWOnkZGS8ul1yablNsR6xi00n8xNKM4Nw8a14EK6B1z52yZObl+n/gR/g+PBNVj6+Qm91hWt3XmEreJSV1mX6aZfr166zv7fP4e5rBOGIRz7+McKkx53dN5nND0ni5fv2vQ8geqHZCagYgzS+fS8xgC6Ev/t3f4qinBPFcPPWLba2NvkDv/d3cvHsJiElM10wnU/JsowoDFlbW2Op1wUM/X6P27dvc/vWHQSh1AYVBnR6S3Q7XaIgYnA04MzSEiv9PmEQMOl1Sbsd1jY2WOovU2Ql/bUVoiSm3UoRBbPZHF2WjMZjijwnCAKMMURRhGm3oJWStCJEG7I8I4isKePw4JAoigjDkEgpJrMJcSultdQjThKKPGM8GjKejCmKgrNnz7DSX+bxRxPKomQ2nbHW7xNgmE6ntDst0jS1Ky0rIQkbC8QIjSG/yAWaqmTzS+8t95lUPhEycHGNRrBZT1qa1oiHSKT68ZWnmozAJzp421/T7FDbfd3f0mjXqv0amUq1PcLury3L9nZci3yWHSlsGN7Cmn3iOZnNz6wmTCeLJhGnkxgbB2wvXS8OZW25gqGotRfHki35tgBkNR2/sLi2ZgZjmXJwLuDJ9TZvDvZ5RAXodsIwOObV1pikHaBmEUVZ0NYFcQwqDgnZY5Qfk6Y5aVnQmQgEM8btGbluMZleZulWn0+uCo8trfON/Tn/8805/+b5ABXNkNDYYvKlxmSxU99bbKgYZsccRIqtwxbD/pyZ0nWwlPie25gtHeu3T2+sGchgV0Fxk+b6pYt0P2Io04zRuKTIx/TTZ5gfjLld7HHz6svMp7dYvXCO3saTgEKbgvXVi+wdf5X16JP37XkfAOg26ezdumhzFroLgl3vEgzXrt7iF7/wSzz1iWcxGLbOXuCHfvP3cfnsFolosnnOZDJlnufMszk7Ozt0e0tsba4RhQoxJf1eShwGHB6PKI8NyysrhFFC2mpz4bHHGE4mhArybEZndYWz588yGg6dTbbNdDJHm5JWEoMpieOIbF4wGIyZzaYoFTAYHJFlGX7ZdlGCBIGdLJKYKIlJ05S0FdNqtYiiiMl4QqvdodXr0l1ZZX1zC1Ewz2aUZUkcx2xurLOxukS3u0xZGkwJRZGTtFJSWmi/fI9AO4oJhAbrulfLv8crk8VjxJkiwA7MoAEiD6NZVzldvep/ohzggAVIVfU/z2TBupykgXpSfU9tUnBSncodv2hRc+aECgCMa3MPCo0R4TOrHNNu1oi117al1CtXX4UvBl/Exm6oytFTQ5GpLSjV/ZUY4/UAC7na3y8lo9aAtSvnWHn1gIvDGd/cGZOcX8P0x6jOHmpaEGYwnwb00phCZ5BCHCsm+ZxkKWI6yRnmhrQNGTPUbogqFTmGvmT84LmYl8Yx/ziL+YOtiGw2wHQSJIwh1hSFolUKpdLMZzHz413UuWXOd5a4lsyaU0r1vhf0CGMa79u2dSiGPBHyeEzWPqQoBpjMcDzZIw4Ms/2CfPAWe7euE7XGnHv2WYKk7aJ8DOJKPaZpm6wY3bfvfWBxus0lzoHKfgg11N6bMBlKo/nJn/7npMttojSl1epyZmuLy2c3SEPrAJvnBUoFtNM23c6cJE2ZjCeMxwkrS116rTZJEJJfPEfSOkApRbvT4+btW4gots6cZWVlmU6SMBwOOTg6ZDqbkiQxS0tdxpMxgSop85Ld7duEsWJ3ZwdjAopSk2dzRAyTyQStNUEQkKRppe7FSYxoQxzHrK6t0O31iKIQMZpOq0V3qceTzz/H1oVLbG5tkeczojhkaanHan+ZC2c3WO62abe6KBWhS5hNpwhClERgDHk+p9PuESfRr+EN1QbD2uLl3p0x1VI9nv1aB9y7vrgPtWhxS6975bth9qq82y6iwTI+qMK8pmOk3a21g8rEYAeychvMwndQsSw89DmGWdnV/QTQMGd4u3LFNGlQaqzJoIpL9QTGgqbjpw0V21/fVPuWAoGP4a38Lco+s9hMN200hhJcFl9Bxu7jl+gdjbkwGHGgNT//K28Rbyku/UDK0tYO3XJKkSvmsy6tdEKWDSFQRG3FdpnR7isiDfuTEBUskbZSsn6L8WTKfAQbaD62CnuS8q2wxbPZhHx8iFoJyaZdlOlhspg0arEaj/mZN96hN9njSniZzvlljlVGHafXaDtqDeJkGntuNLNkm2l6SISCQGEyRVEek2R9xnvbbG+/w5lL63S2nrRn0LWrUWsBUSTRFQ5Hr9y37z1Y0PWdiLqiz71ieM3is9fiDP8HRxO+8o1XeOrZjzCajVmVkicfv8RyxzLOeZ4zyzPrAxa7Sq4oRRzHJElCWWqKomA0GpDPp6yvLtPtdBmNZ1y6cIk8L8iKOWsryzxx5REm4wm7B/ts7+xgjCHPMw729jg8OLSMT4WoSJG2OiRxyzHsOe12m3anjdYQxzFRFKICIUmW7bpZWtPupCwv9+j2lhGjMWVBNs/or/TZPHOG9fVNur0uk6k1Vywt9bh04Twbqyu0kgSlApREmFCIwgCtNUogiRMwhjQMq8LZdxXDbk56ddT73V8u2B78h3toIebkAQ+P2ILhiqpIttHuM9VE6Rlu3Uz2OQuZEtLGrhqrqtq49luFTwXzx1aMsprKGm3fANx7aSP1MbXm4t+dduOqYrPiccbdA5Z91Yq0T6swDohq7M5G2wTdNUIJ0WLNC9pYB5xU4YPuumIYdjXhMxfYfO1tPjksuHnxMt/45gt0zAVav2WTrP9toniC6gwQk5K0I7SeoLRBT0JGkx5IQKQD4lsfYWmmaMcFekmTdA23Jzl3hhFpu+Bv7xzy+9sxn2ivIPM2JgIyYZ5rlBGW0z5XLpzhb995m9904xYrukQuLWGrj1m7ua7MSX6CUa7JvF3btlA86TNLZsyLGYHA/ugqAIObMePt17n83HcRtVrO3OJqIJvKFYoYTaBiDB9wcsQ95R7j9j0PcezqF77wAssbZ8jyGabMWOm3SUODMiVFXjLL5szyKbN5TqmhKEqUUpWNE6AsNdqUdFoJ7XaPErhZ7DIcTvCpkE89doWldspar8uZzTVWljscHB0xnc4IRLHUXybPS4bDEYOjQ0IV2AiH42PCOCZO+yRpm6XeEmEYIWLodluEoUIpkFKTpBGtVkKgQkxZUIqmLIRz586wtNxndXWNMFDM5m2mkwkbq+tsra7QjmNUoAiCEL/keRhGHB0dE4QBSRjRTlJaYdxI5X1/72Uhvv49dzeuJoODJPGlHR8u8Uuv15ZcV//OmwjEp5k2Q68ABJUq8nJKHHbdFiu+GApIFUyANwz7OFoHdnVSRCN6oGmqqBCxWapbGvdTLxvvRYx1pvkoCDuZOMcZPsPNVNcwzp5tbVIBb27/NI+f/Z11BT9wxgWbwdZcBr4Uzd6ZNmefOc/KS1f52PAl8mefY+/WdYpXLjM420JFx8TdF2H10K6aoUJ0WZK0CoY7ipX972ZJBwSmxWw2YDocsNoXui1DqzdnXGbcOtDkrZi/elgQRyt8PIaWrKLTGEWHYjKmiHr8tsc+zp0k5pXpTZ48HpBuh0RnUpvwUkUS1MaGejrz78zajJN4hZG6QV5MyOaKstgnCfuk7WXOfPJxjIps6KQHb4rq1PYsJWJClltP3LfvPXjQNQZRDc2l8dV7j1VhNJ7zM//kC6xe2OD44ID+cp+N9TU67QhMSV7mSCA2/MqUDIZDpvOCdishm8+ZTQ1zoynjiDiKKUtNqUtUEBFHEUaX7Ozu8diVC/Q6bTqthDiJybKMJx67wnQ2I8tKDg6OGOc54+mc8XjK9XeuMzg+YDafYLCOsziOieOIMApJkoilbpd2OwU0YajotVMA4jhC5zlFnlMWIWVRcnZzg/7KKu12G2003U5K1m7T63TptNrEcUxtv/MLQhpaaYIKQtIoppckdnn2euTes5UXVuRwvyslacGW6wP1WUiU8DbKk5k9D5NUYGNKEGtoqB/QQVK1AmztAUcMStoM9ZCIbpXZVqX+VrS0hjb7/z2WE3fhXTUrtZ99mC8oxNQr7i3afHHGdH9eX3PAmxFqVUQ807MrUbowQaEUQ+AmgyjoM8qvsj36Jme6z1d2yvr8DaOIfzRR7H/6Mc7sbnPxrW1aN7/M1849S5zNOXgnxRQJgztP8fxn2ozVG7TTgDyLmA5bqEKhjzLGaNZb2tYrUC1GuwPGS7C8ASvdGfHKjO3DHoPeCj9eaGJp82yyAqMBLX0Vc3iDgDWCKONfOfck/8MeHKYTgnf2OL98Hlo+5aRmo/XacfapwiBgfXmd/uqTvDN9mzIfo8uAo+GrxGGEVprVrfOY3DrL6nRFg7V/B0AJJnD9oCRSH/BqwF6sE8CtlYZ5n+OyuZPhjbdu8Nrrr3HRjNi+8RYECU8//RiTyZi823PsQmO0RilodVq0ejHT6YzjoyPybE6nnZLlGUZHzLMCLRmtTkK31yPLbxAEiqVexwJmGJPlBSoIWOp06HS7YBRLS32OBkMOByNmkzskSYv+2gZaZwyPB7SSlFYrtc6xMKDTSlhfWSZNEpQS0jSiFUd2iIqQZzPG4zFRGBJFMVEU0+12ieMYsHbqNExot1qoIEQksHn+jVqhgWPzoQrotlILuK4JFxwj71MWPPKN4+uweTf4qVeS+E6v8eERx3Ko+6kv/VKzvLoFwKv3CpGEMtxpONFMdY5mnK1pHLdgTnCM02vsVegX3gzn2ak3gdSM2GKkB3JTh+eKqQCaBot2uonbaXFiNS4lwk6gMf1kk+3h12gny7TCiy7rsMGahYbzzvaDrJ2w89u+h81/8HP0BhPCwVvsHL2EbFxhp3OGZGkNc7hGp+gzGh2itKadLpPnBSQa0XOGWUaHkg6GXtpiOJqwMxDSR2Laq1POXzpkaQbHo4SfDVqsTKc8MrkKAnG3hwq66ME1OlnGH16/xP90uE3GPsFLB5z9+FpNJBrvRUTRTlI21y6ztnyeWVGwvfcOt8wvkIvm6HAbVRYsm6cIpUWchOjMmWXwk5HgVwa277SoVvd4N/fyA2a6Xn35tYhd+PALX/wG6xurmLJACQwOdnnxa1/n0UtnKYocsKUOvWqmdUmWTcjznCAQ0AHT6ZRWkjCezRhPp/TimCIvMAba7TZBEJLECVEU0W53KHRJEAQghtCFRS0HEVEU0m53GI+mbO/ukAQpZRli9IBOt8vKygpJkrCxtk6v22Kp06UVJQShoBTEUWSdEsYwdys82KgDQ6tlQ74EZ5wvNSoQlLKlGX0GkzinSRAoazoxhnYcEYf1+gS+xf9FuGezvu7dyLp45lphfXjECCijMRL4LUAjscBrZh7AxBf7MRgCEmUodU6oYmroNQ5UPdukYrIOWx0BNRi3jDvVkY0qZaZ2flU1bhvRDPZc2n3QzhJRv31d2SkdS64mYTupaKiu4e9TKWFr5XvYvvN3uT34MldW2sAyHp798TaLS1XPo4FpN6H9+Y+T/PyLbAURV3orTOf7fGl7wLXNJylVRBp3CIohhSmYDvbopm3mU0MZR8yNMClzxnpOX2mW0ohlE7N/u+T6AfQuKTYvGFpLx+wNu/zTIuZfVRu0ix3mGURJDAbC2ZxHlzW/q3+On0xT3rn6Nu0bQ5YudvDmBCWK5e4KW+uP0E5WGR4fcvvqKxzsXWXUMRSrAyajEWY+5FLyg8RmFTMvMZlecGRWsb2uzY3xwe4B1sTg+9Xd8kBA178QaNih/Bde5Wl6zuTk0XbQD8dz3rh6g7STMBzsMx2NCCiZTsaU2jCbZzblsgraB58nrsQwmYzQZUkYKDQJk9mc6SyjuyyIUhTljCRN6PeXWV3pkyYtVGDto8Y9hARugCroqi5xXPLE44+yubXJG2++xf7BPvsIk/GErTMR7bTFcq/D6tISrSQhCkKCUKGqJQOwJR4R0rRlYwONcYkbIbiOHEexfSap2av9ZQiCgDAMCUSIw5AkqIHibltuY4NZHLiNt3WP7TibetPBU6dTmpNOuodQqmoEjUQIcYukVb1WqoWP8LZ0QeiZNmOOidikAtgmSIILxaodaLaH6nrxF1O9kmqbBTK3+Ix4qLCmJHFgXZs7mqqGDwRr2nPrsuf2WFMf4ur5YkCLRhloJWfpRF0m2R0OBl9mZfkH3DPbWhvKmCqhpDnRGgz7lzdZ+65HiL99k2AwZasT8nsizWt73+B2+xMchy1UFFKM7Moq+4cDuq0IaNt7VCljrZlLTpYbegIbcURPdbh5Nef1g4yNCytsLPfY2y/5ubjkt+XLJPERZWFThnNdEk8O+XSyyst7B3yz1+H2m3v0zrSJkoiVpQ22Nq8QkFBMhuwcvMGd21e5c+Mad+5c5dwPnqXMhfnkiAvx54hZsc/nJ0tvj6esTQzNseBt6tIwR91DHrB5oa5oVM2V9xird21yToTX376FxJC0E1SwhM6mDI4OuHPnDkeHx1w5d5Y0ipkVGUEQ2MQErcmzjKIoyLM5SgUMR2PCOCErSrSBJE6J4hg9HNPvL9Ff6rK1uU6apCRxVN2RXZrFoMUFpAchoFjtL9NKYpQpyS6f4+knHmc4HNLr9eh02myurdJJE0I3IdQTjG5EDYgtTBNEiEBRlpRFafcVIYoj5llmPciCoyuKQIQoEMJQSIOIsKI+9wLce7fxyd1MtYc5sV3qAey2GBSl8U/j14l9+AC4qjNbL6TjzDKCdnGxVaSAPaIOKxMQtcZEX6crm9iCNroCTL9EexUGSp3f7zls06xgRFz4nWe6DnhNVcSxOkt9nipQqXpzPpbW/1WtiuGfobq+Z8llNeEYIDCKc71P8+r+T7PDDVT6EsvxcxW8nuwdVX6cCz86eP4R1ocT4rd2yIlYO3+OZ/dusnn7m7wSr7LdWSGPE4oso5u2GEynyOyA1d4SIjFZ0GaoIFc5pSooUXRFuNJaZj8PufGNGb1NQ5AkXFttcW1ylUtmjSRUSGkImTDLQtLgDn9otcc3f/VXGKx1ON7O+dwPfC9KB0wOdjjc22Y0OubGjdcoijHttRWunPsoefuY8WiXc+HHSFi3YGp09Q7tB139rpoVGyVi+5CvufAbmAbs69EbXOHr9ymlgdyELPU7aDNBScry5hoqBKMN+XzOfDYnUkGViDCbTl1o2IijoyPyPEeFCYU2jKcz5llGGISUZcl4PEOXhnYSc35rk5XlJVppRBKGVIHwjmlqXWKMoTCOoQugYy6eP8tkPmPez8myjFarRRJFRGFAHIV1CidYu7OxQJ5lGYPhkE6rTXetDcA8y8iyDLBmhzi2TNdo+2wYHODaIjdJGNQDoXGd910UvhK5x4Dy0gRct8XUUZ4agzbWDPTwmReak6Gzm0oASBV/3Fy9oWbDuIcPKc2MgozQhDRckfj6ulQtJdSw5c0Fqrl3FZHgq7x5ULa7uII4ziThgZ1qwqsrktltxvFes3BVcdOoNz74CceyM7vHUucJ2Pl5BvMh4eDrtFaEJHoSrQOM0iQSMi28x95gpMQlUVMGiv3veZoLs4LyzoDi8IClUhO2W7TCjFuHr/N2uMK2QKkSuklMXhr2BkNQ0Gstk6ctch0yMwWb7YA8DGkZYaMVsdRJ2StzMgHTbvHmep/49h1iDO3Ohk1WmhyxqxUX+mf4Tz7+Uf7M13+Vb774Fsv9c3SLHfaH+xwe71GqMSvnLtHpPwYq4Btfep3r37zN05ttWk9sOZOexi9JX2kQxtXZO6ES2jm8DsvjgzYvVPdCPUjrHPV779cwQiACeQlvX79pQ62UIY4jjo/mKBFa/SVUFNJqtWxspbN3BmFI6eyxeZ7bFXQj7co7avIsZ6Vvi5NHcUorTVjt91hd7tFtt0ijqHJGCWCCwDaoCjEYQgOh0hQ6IFaKvCxRyqr4ZZKQJAlhELhn1ZXNFaAsDaUuKfKCyXTKeDSm224j4k0jxrL0IrfAnGeAECcJYRASBSFpGBJHEXEQVKtzeKkDvut/76/i1OHyNVG+395SO1CMf5/iIhrcy3rIABfAp9TathDqOqsVrFHH2fpVKn0Mrt0vCVIm5Yie9KnKM5pa9W6eo/L605wYvYqiEQmoWau/F1Nfz03aeIbsUpcdx3ZX8SysWgy+oYfU9Mc09veOOe3YWyABZ5ef4fW9r9FSQ/aHv8Ll1Rsc6B7D4ZCz/d9S1YrQ7nreRowoijjk1uefZfOffo3J9j6TbEzZSYm7qzwblWyWO9wIEt4uY45UFxW0SJOYSZYxK6dkgwlx0qPV6bJThEwElnod0iKnn0acjVNGespMxxSDEdfLY6Qo6WclQbDFOCuIgclolysrG/ybVy7yV/bG/NN//ks8upXRXRdWLp8javeQwDLTIg/Y29O88isv8bl/6wcxRmELvZ9wqlYEqlYtay0EP3M2mNC95QOoMvZuim0tdeCL/RmMCkqj6XRa7O0VZPmUMAyYZRnZfMLewQFZURLFgQM3RRBGiCiiKGJpaYnhaMxgOEJrmM9K2p2E0XhEq9NmqdtipddjfbVPr9umHUeETTaDH1v1YAyAyIVqFWFAVpaEoWWfftFHG8pVs1p7Cgtc2hjmeUZRFi70bZ04DCgKQxKFxGFAWZYUWjOeTihLzVJviVac0Ipi2klo888NVZxpU+TuTQstXqnKJx5SdDX8XbZpzcFMdQ6pYkx91akK4hdWZHw4xIhuLJLDYrZkg4NKA2T9Zw/JbbXCkR7QM0v2HNX7xoKwqgeqN615rnmyhGmtrEMVmVtpMM2Vgc2CmWKBx4q/Rzvw/TE1VpuqOHnTKuttyKVjwVtLz/PSjRcYhiWp1twcvslYG5aC34TWjXI+4ieS2okIhrwVs/1bP8XWP/sy4e2MYJZDNCZLu6wlmqQoWBnd5HbQ5e2gzyBcIQ4joiRlrgtmZsbu/oz+2hpFsMR0DJsb58jQdKQkDDThwS3SeU4uXYw+ZjC5TU8ySm24fjhl2XSQbptLFy/xu8Lb/MzxkFuDNt/zyStEQb2gmMkVL/zCS3z5n/8sf/APf5reuXNYo5mhTnpoxj67522GBFaUpX4rSHnfvvfgFqb0HbXaen/APSmFgdt7A8ajIUFgHU5BoFAokjjg4OCQ6dTWWUiTGG1wpRsVSdJGMyUvS4qyJEkS8twavoMgJkkiumnCxvKyjfdNY9pJTByoev0qWByFLAJoIEKgIAoVcagoIk2WW0O+NhpKP16svUsp5WrRWidYq9UCI8RxjBjLlqMoQimFEmtbbLfb7B8c0Eoj0jgkdYBbqb4nWtfeYz1pvWuLn8RIudtmZ23PJ9STxgzutW7rCHyvN/rhE7s6xIkWNIZ6yQanDVSd2Q0uPyGJEOqUQvYoKVEmbPQZO/v5a1QstWEPqoevdhXNTN3OUuFXxVdrU4+3odbOab+PVAO/XvNMmwZki39M7aIQasgurYEAY4Qw6tFNexThMdNsTlYYTBFw4ewT1aRcr7XmHqoxXoyBIo24/UOfZv0rr9B96U30aIqJ2kSxot9L6CpDfziin+9w02TstTcY0SIOE0JJCVTGbHZEbkqC9TPsHgzpJRFznSPTYzZWljleWSe9+iLZMCNXSzCeEwQlS3GPt69v013a4E65Qr9/kd/aucUvDee8/NWbPPepC4gYyjkc3LnFnZf+OZ/71HkeefYxVBhW8cnG9xO8ScE+Z9PHYfuSqeK0bfdQvMvo+wAz0t5N/P2595Zr2D0cMBkPOTjYZTqdEMcJKgwIJWG532d3Z5fjwYBuu+UKzAhGQ14UjCZjCl3SarcJw5TpdA4I62sb9Hstzm+us766QieJacURaRA2Ord3mDRUd05gsPsqACS0C17GYci8LMh1SVFYxupB16bqCmEY2ipgYYR30pRFWbFk7whUoui0WgTrayRRRByGhMoCrldY9Yl7WWzOxsb3IqDVrm7wNBDU3Gs36iI6AqAEc/9J/UMsi4TAPp9yLNOq+ovP3xhofgJWtuD9lCkdY2sn+4gF24VqxuyjUOxy7VZ99fY/O1EqbKiRuFUM7KTni+HUbMuDp0ZcfQX7NA32azw419EMvuKYcY4h5RkxBr9ke0ORZq2/yc3JMcO5phUKoWkTqLSy3/t96wnZuEmsvnYZhex+5jmm/Tadb34bdnfR/SXaoojihNVkTjsLOCNT7ux8m914jb31Rzlu94laHSbzCUZgdrRH0O4zE6GVjWnHIfO8oJCS1tYV+rQ4KiZkpWFTGQIVs7JykZ9/4Q0+/7HP8cJ4TtrZ5LPnSl4rj7nx5m1WN5eJwpLzScL3/oHfQvfMefdefOlSP8VVhjSq2dBrEW6uqbV5acRu/waaF96vCLVqPBnn7OztkusZSZqidUmaRoRBwt7ugG6vx+raGr2lZQIVoIKQcp4xnc8ZTyZMJlO0hiwv0dh43a2NTS6e2WKp12JluUuS2LjbOAyrXHvEd7n3ryr7e44CIVS2+n0ZGrTRtuaD1pSuApjRIT7Y3AakK7tEunPYZXmOwZAEEQKkbin1SAUEDQSwg3dR7jWv3neuPalK+0LPYkFBOxNCNcAbk6LyTAvlguffvYN9eMW4hqxbUvCs3RsQcP4CXRelEeeK0iO2szvoACbhiHbWcfGwzkFlTFUYzAOpqpxt3kbcMGHgCte443wMrIIaECPQpUG0n3pN/RzO7lvDgy8BaXlvbRA2NCOTaQCuxXk3/UQR7QiKQmjHKeSdBt+uJ6C6a4gNt6ts/M4UJTB85nGy9R7rP/8r6NEBhKD6KTqNaIeaOAhoqQkbZsBo+gr7h8KebnHc22SytMkMMDpHFSBRBKFCRx3m4xHD6YhBGnFGNrk1H7I/m7DZ7oPSrK8XfOG1N7ny5Mf56v4N9iLNI/2AYVchEYRxjFZ7dLcu2nY3ZT2Z+Lq8VV/xz6SrMVP7WOtIEttvFL5K273kQwO6XozAcJrRbsWkrYTpZEwYhoRhwHyuWVlfI4oilvvLKFHkeUFRFuRFxnA44PDwgHk+J5vbZcmXu13ObG6ysbpGt2WN9mkck4QRaRzbBAqgUptPItW98ETqD/VEb212kSgiBaDQoVvCnJrxeqefEiEvS6ZzjQosSIsElGVOoTVKNEEQ2klFqfqyJ8w2tZr63tKs+1qpRo7Zm4o9eyeZ3AW4dmavFwyvwp/u378+xOKQqmEfXYhoqBxihrrMYYlohVEGISGZGSbBHbI2ZKpPopOK9Sy8IffRrsVVum+aNQHc90ZXqzYYdw9afBSCYTib8Nr4JT6+/MlqGR6nm9XsCzv0A/xKxdrBbFkx7Xry8BOoe8mi7XvP5yyFayxvPMfr178FJrcx5DT2rRx81Gpgs0atvy9s7Op8Y5OdH/5+Vt9+i+JgSjcvCNY2YHhEmWvSdotAGxKBeH5EZ36L8fAtjl5PGa5eJvvIU0zHmiBURJ1lpkcHZJMpITnJ8hKv3b7DcrfLYZQwKo9ITEBMxnJXsbd9lUsrfa4e7jAtQy7nEa3IYGYj5ivLVGFhlc/DOimbz1vHhDS2VU1Rx1T7QfNuQUQPLDnC3rupanW+9xF2r1LDaJ5TljmihNF4RLfbpXCVw9qdNuPxmKIomU4nlHPheHzMYDTicHBc1bJVgeLc2bM8cuECayurLpRLiMOIOIxox7ZOQXX1BtiqSm3AeXUbsmD8bJggpN5SKati1x+rWiCorcYCKFFkRUnh0pitnS1AG0OuS0Rs7HHTpHqyLSsgvY9h9b5sl3qgGKA0tW1WG7HPLTh1ySycSGgW+a4Lsjxs4qt2+boGVds23+8J+6kR7d5pwHJ6mVT32S9ucxTscoYLC+/fVDZxv9UeZ6pBKQ5YcfUR7DZ1YmD7oKV22OL6eJskeoFn2x9v9FtvQAAtJaqyQ7qawBTYPDJd2bFrCPGQrKvzSRCz0fsYWuYQvoYoTai9vdIsDhjxhdVdvITbp+Fuw7PerLfE9nPPs1doNl55lfMTTRLGzPKMWVmi4hLSDrJ2ljiIkdV10u4G60aj+uvMsohXX9xhNhqj8glhGKElIMsLwk7CcsvQGWsOg4gijCna63C0QyqKo33YWl5lb3zIG0eKR8KIDkdIq23zP8RrIR4468iFqnOY2k4uVat7k0KV8vKegPdAQNevr2WlZlT3uxevhikMk8xwZ2fPLpVeGEIJ7HsNhH5vg2w2o93q2eNMxnQyZTgYMC8K2mmbdtomTWNaaYuVlRWW2m3SNCFQAYGyqzSkaUwU3U3PKjBxty1irXsVGC0A7v2kGa9xF0TWM6CBUCkCFSBSL50narEqUqgUvhzLdyLmxOWb7LbuWx5pnE/dHVQpjcaz4GosVWqtlpphB99xbPCHQMSwuIihz/yqa3pZzHBp2HVT4UuOKkJawSprOuBA3WYezInLGL/Au2U89YCs+0+dsOAjCfwnX/8KvPZh3FI59i6f7T/NN/e/zlZ6gVW1VvFqg7ZgYGo4sOdYnBKbV/XhbXZfVV3RQ0pATCdYYpYNSYPEgXVdKtLv5yctqit7S7UzUnk7tYFSBBNFbH/kKdT1OerWPsdmyKzfI3nuCiVCGQQUaZcyDBECAmNrHNx6c5+f/cf/C3sT+OzHnuX5jz6NFCXT0YBOOyE4t0E6vk4rj9g+LinygHDlLNlkRF8dsj/M2erA8bzg5Zt7nO+3WX55m/hyn2I5oQ6r0yee0BXIcdpEc0FSOy/Xcc5U09/95QM0L/ihe/8BWmLY2R8xnU6ZTsfs7u7Q6y8zGh1jSsN4NEaXJcu9JS6eO0e31SJXEI4ntIIQpQKSJKXbbtFut0mThDS2WV9BoBCEJIlIo8h2iwV1e1HqMn01uVV+EjzxVAvHnXy+2iZw11ECNpNOu3LaplbHBGteCIOgwSzendXeW+pZevE4aYTz2+Gh8SFHzqho3HFSP6d2zMyXYzlBgh8ecct1WydXDXK1m7JeMwwW32CTt4LQUn06+RGDaJtVLlaQ60HKdoEa7qql0StQLx34NwDL6ErbUL6QDnCxdYk3Wm/yle1f5dNnP8Oq6iNlHYDmQdP+p+t3VznVqF6YvaYFW2XsAj4esn24xVJ6nr3hi4TdZWz6a/22beibqu66UreracQ9VcNk4qZsylCxs7REZ77Ea9mA3LzBxaU1aqefqvp9Pte8/o232H7nbR672KI/HDGbXOfMpee4va0IJGZlq4/px8zWHkUwrM1ybl7fgVmEafUp8zGdJCcrQ5bCggDDtaMpm+0uWzczWnNNvpHUy/356JNGy9rYSg+sda/wz2rfc1Mvvbd8oPV0Ddzb1uGQrDCaWW4AjTbWTmukjQFGgwEShKgg4Mknn+TZp58mIWceRWhCSl0QhjGtVpskCm1tgiAgUtZ+qhCSOKKV2KVs7iUVPt6jvRpGAjDezO52P3nMXedf/LI59YhrEw/y3hBv05rDan+Pu+ZdXub7Bz/LukpDBfSl8eFFHnObkaS1Jctg3GKV9sENoHXziR4Osev01e6oWtU3qMA6rNxUC27VhLpvqArQxAgimmV1gd3yVfJwSlyk1a7inZQIYjTKGErHaJvVxerfFX2ygIs1/YCNcElUxPnWWd4qrvPTb/w9fvjSb2U9uuS0EM/R6sw16/Dx78+Hplkfgt+3Zq6OWxsBZS3JK53L3N5/kSRZrpzAjVZ0PgrfTo2ncF3CA3htD5VKY5AkZlrkzIoj1p7erHuZC90TCRjuj3j9q99iOBgxGA5Ju20++9xFnvrEp0GFJK09uisxajmhkBwxAQb41uB1Xjp6kcd1j43kEywvrWCKjNAodF7QizPiQDM0hp0sYv1Qo4ZHJJfWyeOiMbf4+8dGSLFoc7+X/u7Z8P3kgYCuar6XxmxQuhs5WfTad7qiDBhP55Q6Q+uSKIopC40uS7L5lHZ/hec+8jwff/55WrGiLDRhnNJbCm3WVhSjlLLrkhm7OB3KhmIlUUwrDm2BnGqmctc3J+/53cQeXzuTFjSLWoV8DwzyQC0i6NI4i0Lt1Q7cqsL+dPc7pf/untc4eefO/uoIbOV99c9T2xkX5x7lbrZ03xs3LmoryMMFuED14hbaVkCMwqiSeTojmSTgIkuqxncJDxY4LBjaDLKQpfIsh+VNNuVRC9KVldYy1yaMe5D3ZNqIcbZYd1/OYakdQ3URZIiBR1pXuJVdZTCtLKkOWG2UBT5utFJWGg43cPy0CdKm8Q34bBmDoZ1sEEpImvRYzNDyHZjqDCI2cagOSvYN3dSy6mN02OFOfpt5b0h36wl7/wSgoMwVBzePeP3r38aYHJGSbqfgue/+OBsXL9lwS6PZ2Fpx/bGskMZg+Mr1r3Jj/5BJvMNFU/CY+hzdsI3ogsEcWkFESxX08jEj6XJ9rDjX6pK9ekzrYhf6XuN0YXsLWq/77LNAK4Z/IlX8PvJgmG7lBWzcROPlVPtUXk/AQJYVxGlIt9shyzJbaassGA6GKFE8/+yzfO9nv4deq4UpM0QFhIEQRrFdxsaVQVSuSlQghiiyBb7jMGqA/T1mp0YfsQOhbrW7Zi1fJMSYuxr5PkT57uvRZM/uk2c3rkiOjXJ4nye838x64pmNWbTyKTdQfJ2I0nhF98RFPUifmAZM3R8fLml6TpusRgRyQasxk25Ga7hcDWYbW60aaiZ42mYwJGoZVdwmi6ckZduBsanA0mtF4gDZiFgtQeprVy0vtqZFDdV1n+yFXZQp6HfPkmHDDEu0X/uCRcdnw0FWFfLxa6f5Z7Jn8BOwNbnY4wIJubxymU7YIq/OWQ8WcY5BD9I2M8g53cyic8kHPACUeZ+3X3iDqDvhsWcu4nU8EMYHc17+8uvcees1OssBErfYurDFlWc+TdhZtiYuU1Cv4KyB0IGk7cufufhJxuUXmOqMV4ZXkbDDU53vg5kiCoVbB8e00g4rMYTzCfOoxY0i5UIScvTWmHQ1oHWpTSnzRp9p9PWmSUpcmFjV6O8+aB9osM9dLMwzJHPvWwoCod2OCaOQra1NojhiODpmOBzyqU99hu//7OdY7kQoKazJQKkqnCwIApdgYJcgjwNFO03opS3SMLQV8u/n4RfLULX8i5G27xh7xKu5LISSecA9eSvvZlp4X/dnvCnj/vdsGu1QcRMPys0jGnPnd2Zj/nCIMY38LXGZY+IdQIbWfBWTzxj3jqrYVaAebAu2KGXPp0JWw6cZlbdcZITbxzNOByriruPLkNoh20jqdQNEsOzXMmD/26C1YTnaZKt/iWExYqcY8MXrP1WzVq+RUAODwU6onqvaOOBF+PVONbv+V/1uz3c/wfo0s9+7etD23mvrdd0/VDWIHMf1DYefWHTe551fvsbKmZJzT2+g4hag0GWLm28N+dWf+iLf/pWvQmC4dTDizOUVHvv4RwhaPbQu0dpqhsYYG/Vj3MRh7Oox2mieXn+SP/TM76DXXubpC5f4vo9/hq3HIg6SOTMJ6S/3GM1GbM9jgiilLSURObd0ChJw/Z0Rt79xhJm75d4X6h8rquWdqs9+uzNbvUsc5QMBXW3qF1sBbyM4239fVawy9kai0NrPlpd7LC0v0+6kGFNy9uwWn/3MZ2jFsSUZ2qoWQRhUtlsURIGiFUV005ilTpt2khJ4eruo7Sz8nCQ9uvHjFUifxnsvgDE0Fa97XOce4m8nVEIg1pTgC5wLFnx9FpNUP+8+I5x8tPtd+V5nKbWhWY3Av7uS2pEmrq0CqFKhw+D+JPvDLOLTOj3v94s7mtq92Jmto3TOfGngXpgmiH2FWlOBsXd8lkXJwfEBiWkzD4Yeb09c16qtvt+J36lRMMees+K3rg/U0CjG8Gj6BNN8Qhko3ty7STdcaqi+ziTRmBk9pPr10uwL1u653YLllenNQ6ldCXiuEuKh0Cn9+d35jC3u6W2eWpo6lG9X75B2Pdkscefre6w9ErJ8sY8oQZcB80HK4dVjbr/2Fm9cP4BhxpuvH/DZ7/soj370eUsGTOEmpLKaAGziR4ktUONYurH3dKZzlt/9xG/n8098P6FKyDjisPWT5O0C0+mwsb6ClFMO51CikKJApGRXItIk4o3tEW98dY9itIQYG6cslZP55GQCdWgg3L08Uy0PJmTMzdBGjNdJ3e01Z97qNVQ3rgR6nRZJJEyWlzh7dgtMyXKnSxpHGK0pHVPw9XMFCJQQBwFpFBOq2v5WnbuhFtwLH8yJ7c3Y4rsHzd3Mzpw48f2Orb+vrU+B4OzMru2Ms2s1CGXdRu9Tmkx2wdssVf9o7GB/eZUQFlRi5V+Uksq0qZ2e6CMZwuihRF0HeM4R5FR8QdDzOZKEGAJak1Um/QPy1RnhcZt5cgxRQjyNPXOo7AYzlZKlCWkAc3NAQgcq7z61+cCykAq0qzXMXHytPZ2pTKPio1rQVcnH1XCFft5js7WFSQ653H3esxt8nKlpXKtW9A1mwblmxVS53Kq6B/9vEYZcX23zZCa8nBoXkVE7zupqZU235N2jQJcpuy8cES4P6J5bsslAsxapdJmMtjEq5GsvvsHxwSGray3+lT/ym1i9cM4RHk2dAu8GtLFLxIu4NH5XU6I54JeTVURKtCk4Hu0wvTnhrfk/5vHNH0Ilq3SSFtPBgGsHY86sdkkRTKfHcD6i0+vw6p0jtNpl65ENljeGGFVYaK9prwvTq92yFn8/4Iw07eyD7wYXdfB042aU0IkDQhOytbZKFCg2Vlfo93q0khgwVXZWENqyi0opWmFIKwpoxgt+Jxj1LyqNeeXXcKwQBgHzIsdoXWV32QFjqogGz4B/rWLu8xloDBgrvji54MjPXaaOpvroPz1kwOtMJs2qah54VRQyK/c5lCPayRpR1mLSHtBe0ZiyZCbHzEMIyhAKMKVBmZi5OSIMFcPpnFaa0OuWjIa1ScGVlEEaNmGLHeIWi7T3YaMO7L2Im9GbjjSfbPpEeoWJHLMWZiRhl8qz6dQUb72tgBEqLUqbmtF67t5cjFy763mHbxEorhYjzpo2N33khn8AvG1Xqvv2+O9F6xZ735pTyDZbj23QStYpxjFmNuRwdJvpNEPKfYoCPvfxLk985lMsnz/rakkbq+Ibja6SmMX9HzhfjTNxeI0FhaZkng+5c3CN23vXKOYFcWuV9W7JhXMT5uYsh/sxURix3OpwY2+XtSAmK0a2zkMSs7K5yvZcMLtzVte6aHW0AK4Vga8e1puP7o8IDywjrVJJK0eBY1pUgSsVa/SpqGIgVKCjgG7aIloNWFtZIQoClLiOYCAMg0pNi4KAJLbUv2mPvReoc88tbvsJJnzXflL15ervkx3rOwVeHyamlDPC+6I3eIOCvZBvz/td4C47tDnxyivWbJp/1g/iiYNjRKU2lH6UY5mvMmohYgMsQ68H68MmLvFDe5WRuhOogJRNVnTMKNtlWEzRM8U4uEMcLyFhiLiCLqVkmGBm+5uek2ihTCckZUjn6lXKlc8xUc1BajCuuA2mNm1Zo4BX2+248MnHtgRPzVZ9jYSUmOloTgcNukTE9iNft8GONZ/iKigx1Tv2b1FTT+z4+6K6iG0nx+bHccLm0Zy0EzKL7XP4fLnG3dmzG8tAFQodPMZ8r2D/4Bf56OcfJQlXSegwC0bcvL3NeLxPry8k6yu0FFx67AzLZ8+jtV9518XsGvd8CD6WXCEcjO5QzGB1dYko7KIpGM52eOvWK+xvX6edpETdZTq9Llm5z/Pnv58wXqEtA9pRi9G8zXgSEyaKWI955EoXI3Om4ymlTjEkRMGMPJhTvTTj7bx+KvO9yt/jB8x0KwyovPvu1hrJCFXhF5/W4QaBUrgFGYU4DAjFrgVWFjlBYMsflqUmQJFEEe04bITg1Nc4cSfvSsTutSR5dVgDhbUfm/d62H8BoqcExFXrKgpDEltDqTeFWeeW9+3eh1Y3bszgTAD4kO3a0udFN2xSHop9eTolysWTuhMbFo5fcNzT7HIPm9R5W3BCYxFoBSuk9CnMmMl8j8PyKkN1g1bcIcnmTJMWWZGhizkGCEpNy3RpqzOEwTr7acyFGwfcuLhK0fR2u4voaps3IfjvHNvEVgPzpgBlas7qFcmV+CxMMkTVKnVpDNODCe01F0HhQsj8Mdroqgh+09TnTRJUIOyZiP8tvNMTnjo0vLxeZyvWmo4hyAVTTtFpGwmfod05w7UbY+7ceYtnP/lxVB4zm83ZG7zDKLvGsNjjzKNnCFWbWy9d5eln+iz3tzAVY20StdpI4sHuODvmn3z5ZyhmMzrtNpublxiOjynmByx1O6xdWKGbtgiNcKb3OPv5FkWZERhb7jWJx8TJmNUlhdkyqCBFJMfQobPk76HAV2ezZM/jgqrux05Bgi0N+u6w+uCSI5xadNdm0wCy5q7uk1iFAaUEE9rlU3zsoeCLQgmhGNpuSZw63ORf4HbvChEz1f3aK97j/L8OWCNYZ5QSsfZqvzxPYF/NvfB1kdmeVOWsh7rA2si9CmQWjlg8usnyq1VlnepRsWNT23yRRQB/GMXGxTbawo3vRf1CECVEpsty1KMXXWQ/f5mJ7GCyEVOdoQhYjrZIsiWSeIVOuIGv45XHcDPM2bg1YPdcj1KZiheCa2vjV4uogda/h8o+6tByNh4SdxPERATizHgSEKuAuSMcCmiVAUfDQ9prLURcqRsD5bRABRoVR1U5R6uZa1fNzNslaSrQ1OFQmiII2ElKNiYl2x1bFa2cGoI4tKn6BwHzVsBYPUGW97h94za3blzj4PYbfPTc8xT5kN39O4zGdzjqXaOMDeXOMe1uyLkzZ9h67lHCWYGRkOl4h1ZnBbCrw9aV0zSZzrm+f51f+vqXKWYTJAQzmZDdfJ3NrS5rZ9bodgypBGyml2knZxGJOBuvgynwtngjPs7aODOFHQ92VQzfO+oxZkS7TlKp73UtXReD0pzI7yUPxrxg6tfWDCxf6OBQ2UK8Q8NtsmprECBKoTToInexeb47G5IoqiMTqMH8fuFL77V2WPN7afxbfWywyPct92GkJ29RVWaFwg64BujbjtE8pQPB5raGvbdyzuBNBvU+J27D+riNdaxY1iLVeT3jadp6fZNoLJtaNMU8XGxXsGxfSV1Qxpu4KjXZN5KHIIlYTT7CmBGztMVF9SjKKGbRlLZqkQRnQNccURDKNGZnzbB5bcBwI2Qax5SBTWlol12MKRirccNE48KxTP2uva9C9JRZuc3W0hWYZGAU02vv8OWX30H1bvGJT3+G4HjCkQlZu/AYURCBj2nVmvnhHsGygtCWFC2lRBubH6fcu7eER6FLGI0ElRaAXRAgjBUiJXtLAU9cG3GUdJmHCiLD7HjCO28ds1r02fzIFmudLtnwBm+/9AvM85SiKHn55a8RpUJ3NeLMhbOEgxl3Om8zlZLl7lmIOhzdPiYwO9w5HPH2tZsEURuCkF4Hrqw8yeraWRDFP/3ST3Fjb4ckES5e7LG8lCJJj1m+S6td0FWKs+lFesljKBVV4wEUSsWun9fUwVR240avdkjbSI525SsbWCOur/jO443dH7QjzXcfX5HSLyftMbhSVxsZHR5sbKUkMCqwtimtKXUJElSl95RAFEW2MdyIMe48TbbixTb4+4PLe0FHkwkunOU9TnnyXKZxMt04vnQDPfQI4O7XiKGkBFTDTnfva1dWXPcrwMaeNqukLQJwY50zGnbjqiC5VLGsWjxAN9RbHEg3HKYPlRg/lLwnnor5ivikgXp3X0hGRJC5cC58nkhaCEK71Bzmu7x0/Mt8/NxHaU07SGEjUGbDGaPRMdu3j7i4LfDIKrER2vMeT92eU5QFe+dSrl7KUL4AkgqIgxBREVEQg9aUhOjeZWblTbJBSre7zmAw5sbBbYYDw8tfep2LrS5HB/scTzUXHn+WpdUlWp0uqiwxuqS7cgatC/RoThT1mI5GlPMpaatvF0Atc/uudQgSwd4R145m3L7+NmMVcmajzTNPLGGWFDe22px745jbj60xCyFcSbl4XhNO23zXo08wGk3RK20+/T2f5M1dzbffuIMEr3H+macwJgQp2eg9ypq5Qq4Lboe36RYxZn2H4ljTMSkXLy0xn0M+L0njgFF2nen+NcIwZX0zZu38eXSQ0W61mObHRGpAL4wAeGTto6TBBsYE+DBADdY3ROA0DJfi7QmXMSwkvuCBFerMw4YmSAXFtUoJaFMi77IM7wMKGVM1yFL/lhOeqAZ7dyqV3Y4xrsiHUBoPCxAohV+HzF6Hu8a7mLrG03e+Mm4DmO4+9XfGct3+J4+pJqSFLwQVKLvCRMWqLBCUrkJfw691Dzk5HcjCpuaqtn6BSY2retU0nJjGqYyxoI2LWXYPY79qBPI/pHYGr4tVeo1j+l4x8xl6vu6XPUYQrTgTPk1Eq1ZGgoibd27zC2/+LD0d8WR0hjjcgiwnGk+4+a03+Nbr17mwcZaNWLiwtcF4/yrR5mVWzp0l6S1xdnUZJbYg/3QyYT6bkRUleweHzLMpeTand8bw2i+/StJZ48z6Ea+++Y7tGKttwg3Fz3z1JS5sppgw5vWrX0eua/LSIGFCHMaEKkAFEfncPnM3TQkUaLNDO4CD/QPSdsrRZM44A4KQ116/hZ6O+f+z999BviVZfh/2OZnX/HzZ5/u1927Mzs6sAXYXllySIEBvFQBoJJIhKqgQKSooioKCAsmQGIIoUQGIDAZBkaAIMgjQCpbYBbGLncWO35npmWn3TD9fvn7muszUH5l5763q1697d7anZ7h1uutV/X7X5c2b95vnfI/JYr7iqU89idy2fPOvfI+nX/00wiHjN0cc2YaL2xnPnrtMvvU4t967QWUcb33328g79zDrayz2DM/9zKs0OiY2iFemgJvyFoe2ZNho9sp7XBg8xsb0HNPFGvXigOH6Bg84QNsUJyVOLOPBOermCMGQ2pLJbAtshZOMcnVMkozxjjeDOOX9MdFn4eHXl8FsITDE+bru3XF0YX20Nl98Gbs3J4bl+dWkH/bWn5SPBXRN8Ai3ccThe0X0kXIy46pHP/h+8c4cF/5GPLfW3n5IGnif2tlz1EVzQk58H42+3jH9BsRvet7/flHr91EOJ2D54UEi/e9aB0hrsvRolXBP1jmf/GGsJ7CNo8tae/h5/RdhSJyw+fsHuJZu6IZFFzXSL18Yt1vXLVbigiocPeudlvsjKtE6ItJb0r6UJ9PT+8/V4RpDqqe9rnVYY3jlwqfQoljef4+7r14mU3uMzYhsbYtnL2+y/dkXMAvDxniT+nDBztGSg/Qe2/oi9f4D9t/6dWpXQD3H2QqLxdmGfJRjMeys7nNVX+DykxsobVgu3uOF17Z8oXt9kZ/6XZ9uIxG6wpK+sI0jZpFZxFhuffMev/BXv461JXVdcunSmFd/8jnGTw+ZTMeM3QTR3kq6+MyAw/sP2Lt3wI2DPQpTsrs4ZH1xyI39I44Odnnq8jbzXUP2mSG/8tf/GkfFEntvh9WdA37Hbcs3nt3F5k9jv3ED9fpVjJjWkX6Q7LMw74Ha5q3Dr7CuzqHTBEFYn1zBja8AoG3Goj5gJYaiKbDNISM9Yl2fZ00ukw3XsDgW9pD78haFPWDExGuz0tWoaJ+6uBNvfSzX6D8GB2OkScWG43uJHgF0nXRRGz7WWbcT9gfJx+RICw/dSevxj/GFCugvCBhBKIJj1Oa0dYFmUIjyCzjGDkASuphAONGfdHGHJy4iEeBcRzO7fvpiT6R/yg/ovNNf9yaOD9Ju407uxDYJ84UmGQyoq5raOiyGDBBR1MZ67zTdJGBPPFTp3bvr1Zjw22JaqQuUw4nQugCscSyZeKoQV2qDVtKONRez9Vy7zFDHg/4oiW3B1i+lE0Vaa8M7lnpHWOfXhLMxOL7bqpTiua1X+NU7X+Q7d+fo9JCnJy/x7OgPkaXrjIaa1WrF3r2bPDi4zfDGLapf/TJ7f/a/YWNZMPr9L5P8zBfQah1USAoWbzG+u3uDo6ZmNt4EnWKdZTSb9a7etOpESBTuvfMegpUCQeMSoSFjO4H1l67w6Z96iWw6walYrMYGy8azzONNuPDMeZyzLPaPufPWA0a5Y6c44P684tqNm2wMluzWlltHO2w+ucZjL11BDvcZuku8e/Rtdqevk+Xr3Pr1b/Lk1hrNlTGOhmyQ887y1xgN1inqErvcQ0bnGQwmQByHgBMG6hyD9ALWLZgne9wzDef0jM3xpwkEJgpY0xNE4GBxnfH0MljBSYIKkefRmjkR+AxtyOQJYA3joYvLbcsLhfb1ndBeC45Ki8hpFOjk46EXIk0ivRhIidDqzQvrpwqi5hkzm0MmXUxWbAe3dy548FgVJU3jGOQ54e7pB/CHy/WeGr0tft/+yr+9UrVhs5zc9khxJ3/JSVBt9+p9KYQBHicn8Y9zlOWsUNRVhTgC2Fqc9Q6OaD341yc4Kl2kWSJ9IB0tG6eA1rEZNNio3cVKVNERFzXYts1Rs+1ohC51W3BOtdt/1KQNputptdKr6hblZGxz390V/nWhAoET7u79OgsM55qEZ9f+di5MfgerJdy+c49ycQ9nDhmNE5556TLDL32V6lvvkGqhfHqT+TNX2U4HEDRTf3oLovne/Hs8lj0GcaXalnzvzOEuBDNOoIHFDL6BONNuHGlmw4zH/uhPI2vrIQTWW1c2FL1xREAJ4ys8/HPnNhmvT8FpiiNh8M3rlMU+d0zNy5++yvSxc4zPjchWexxs3GJej9GqoXjzbcr1AxaLe9T3z+GujHFOURYVAzUlT8bsFvts5DNcswzxxnQDq6dVKhkxkyH1oGasJ9iYXecEF1bNmCWXMWqFVcdot96O6Kj1xpPGxJ/wGvlB0C6/TgciDjytEIaK64+RyEV4FHNhnbtH5cZ/PKDbq4ZnVcsQtLZv95JK+D/wJWGwqOBN9zVew8MPxV6tdSxWS6xdMZvNyCLwBiCJgNvCZuygHrD21f8Yx9rXDqNDUlwsYdEdy4nP4Rytti6tJvh+cSf+itwqxPdBSETQKqGkoWpqUi1QW7TWWO2XYHcodEvdnMx8ce970HEa7vrduG7NrUhvdOfpOim2L66y3H8JnI30gv+++REEXeiIJs/EddaRuBiT3Yfck7NpXKhSBJTKGI7WuDr6FE8/+fPUi4T5wQ5vXf8yqBXDyYCN7SlpdgEbHHLFP/GHUL/zU1TFHPviM2znA3w6bW/VAvEv8u7yLs8kl9oZ3QXA9f/7hzMYDiiKkhhP6nrPXjmLQrF+f87ageXac1O0Tn1YlPVgbQKAd8fHMRBdUMLKNKTDexxce5Gjd95kNr7Aucu3ufqaZvqYoOWQ3YM3GKjHaF64xF33HrODhNGDQzg8YHgu52s3bvPSZ66Gd8UxlG0ae8wsGaHsgadFuymRCGrxOfjCP4pNLiPlChkqusJBkX/XrI+eJav3MBKAsP9uSC/BIn5u34F+vlk3yUZ/VGclhn1cHEfd+ToUerh8PNELnrWO4B8A1yHWDyRD1CK7kKQ20KYlFv1DsQg2rIemk5TJeMhoMMI5R9M0oBQqTSFkTAld0ZDTYNpqo+327oHGWb3tu5Anr6IW7YKh1pvF/Esq4YF3oNUHedcDvK4djlhryAHO2pB26bnrxglV1ZAqS5Ym6MaRakjTBOUsBjyXJwp5xMNtQ12Cxh+v0WqzrSfyVH84wVlvdsdM+xMhHD6sxNeedb+RWsQ/PBJDpDzAhhKa0aqKioCEAuIxHbCXPSFKk+oB65Nz6Hyd2qTcfy9h5+73EHPMZKI4f2UDlW77A5wLxd6tL2Kuwb74NN2DCPHZ+PciPlaHYFSJSyfRTsRZhaVBq7jEjuPOcpfvHH6PVzdeZqQyxEZayTEgZfZglzKx7F6a0QSKpEuN6KDGW5VRi3a0q9+KwxgwRwnFg3tsbm2yf/A2L/1uzWw0wjyoufbNd7n6hZdJk/OgphSb32L0j7zO4/sJNtFMnrvItgo2mngtPEtTsmyD5fyY23tHPHVh3DqR/WXjS9l/hxw6HUAyDudq4bgDVKBWmygrwfclPS1X062b0vUh9CerkxDcKm+hXR0jLP0vARXu7QcMum0MWM9U7bT63s0Fsyimw8oJgIpOAZhXFTv799lcX2e1FIaDnGK1YjD0RYnFCEonKCQsKintO9K+Sz30bWEmKtd4DTryeKan1bRarNACcFAu6Go9SPxEy49ErrOHth28SWemg1+JwXkHZGUtB/OC48NDHty5xcb6BsM8YWN9jel4Ck2NMpbxbEbhKgbDQRyT74Pf1lQMvK0hlvZzoTB51zLXO8iFuHAbNN3QA2E7bdhevxTsj5pEhq6rwCcdECOUNSTisGG580QlaJ2TpAOwmmJVY0t4b3+f3b23WC3uUqn7PPvk82TZRT+xOesBrM3hdnTJED39LZoSIWuse5aWvfKIhTmiyv1iOlXjuP7eG2xsj9mcXA6Tg7BXLPjLb/wNvph9jXPTK2yNZmwNpsyyEZcNHGwYXjj3Etd29sEldMGCbWmc0L4IvNCvxhApOJuP0M7yi19+mzx7i898bpv9B3eY3dvkyouvk+hNrIM0mZDrGfv6e4wvPsbGxksUxQHjHIy72I6nYZpyZBuO7q44PHYkFzpyLD6n1nFOp2SE0kRBqfFFojx89CIIBJwOioTq4lCEDmR9/wuESUAQXy3N0YYJ+o7qwDUqLWH9EAhtpO0z1TozHyYfz8oRqnNQtb+Vj1yLL2lQvoikoOpUDZSAMb6TtIJFaXnn+j2KBhLVUK1WvHf7PZ5+6mkS7XjisYusr019ZUuh1Vp83G+n9bboBG195dhX3gSJXdw9EhfaGGOC++3uwqY706LjOGPIVfsFLe+KB8CocRvrqZTaWKyxzMYjmtUc5QyJWI73D7C15cHOgtViwXg84LyB6ShjNAjLfj9kYo38noh02qgNjrMwkxOANUYlRLEthwsxagGcjyI54dE/abn9qIhWvsZFVPZtZRmkOQf7JceLivt3D0ltyXRtjcFoRGUaVos9juYLjvf32Lv2JjopefWnPsNsc0qZ3GU0SEizcYjBjtqRfzVpJ9lA20hcDj1QBi3ghp4Nz+2bd79MluQsbQ1Y3r75JYrRDQxPsM4ljuuCt4/v8he/+wuIgtoVHC5usFdobqYJTdWQOeFnrr6MPneXWlXkrLegFePFhVhytUd7tVo+oIQyOWC+2OHmzRHvXrvBZ3//gvm8YD15HHnyBdJkEO5IsE7Y3n6Vu+WvIMlt9osHpPoQtxKGg88jXMUCo2xMUdfcv3GXTClSNQwX772ghH6RCHWBkJQIxaqrLtapecQgfum914ifDFsOsZ1WejjhogXsl0jq/DrdtogsLaXhHOAd/Kd9RKfl46m9EDnHqIEJiPKDTIW2x+0K9b6uAl8b1zlH7RzT0ZirTzyLKBiP1hnP1hlvbDCbjElcw2wyJgtgeyKzLNAU9LqnlbjuXfjY9qt0c0H7fQTUE/HO3XXeN6e5nuZILzHQdVfs166NAEfq13eyOC5Or/LKU1dC/3X7dsFm0p7ZxInktEdLaItjg0OcJQlHNWHfGLkQ+dt4nu7FI3C6YWCaoEHYk8f8qMk3v7FHYRzLvX22zq8znmySuhU33n2Xu3eu8+Bwn/EgYXsjYzTOGY5GpDjuvnOHN2/c5+L5Kb//7/rdzLYu8Nf/2q9xsP3X+bGnfp522XUXrYOY+Bs6ko6haSdnaB+Cky4H0Dnh6uwxvnPvq5SrXVh7lmzrkFoLx+Uuf+XaX+Kda9c4MBV24hgPUgZZSjkvKBtH0gx5cXqVz1x+nWw6Y1EvGNqc++UNzg8f7yXouNYCapWOdtUHi2hYuRss7S758lU2z4/48R/fZeupXab2RfLxC3gocb2xbxgNL3Ele5YqueFrRqsr1E3NQt5C2UNG8jylqpmucjJZMtCKRIZRdwyNC4HqrY7rR390xCssSL8EfP+4zjrzdIF47rblZ0PBmtaZ5nrPwXFCc2w5/PA8o2Xeo4II9+2v88HQ+rGmAcf2+i9pOYYOMDpHVQe6nQHhANGOy9tDrmw9iYrOLxFsACIlrtOg+9ejPSH9XokE/slvT/bvyf07sR+AL3LqUwTG9+/48BNY6e7f0QeymCjRdxL2AbztpQ9oV68tcTKxvb9jk4L3t2um3+or9HcOs76V0ILx6Y0/IvI//KVfRBSc31rn7TffZGMr57knt3jq2U1e+czrpHlOlg9A6W4CNQZ19De5/c5Nfu6nfjc/s7uJ7O7hHr/IrenvZKJHiLOhvxw41a6pFpeS8Uuq9x11ru1fbwVGq8hDy5Nrz3LhYJuq2sWKI5nk2KNDRtmE2dixtWXYatb4rttj2RjEGH7GrLO2/SRXHnuVTA9xIjRS01hLKgNWy5Lb9hoXx08AXXtbJ1ocW86R5I4ivYcrj2E+4fi7DfP5fdYvV2wMX2SUv4hzwaR33Tj2osj1pxjpKcPRHRpb0yTrzIsSZ48pq2+h5hvkFGyMUlYGMpf3iv6cHFMOCfVEoqIWgTEsodRHjjYN14NyWPM4AK20AIyYOCUSpx3XOtpcF8PetkFF8w9aBIsbO6B2p3qiLx/7asCu7cAgcupz+LKzDkIChRA6RoekChUrzSECOpq7p8H9A0T6yP7oPR++40Ms+Ieern+rH9Qo1w/Miod1s1NX/wCcKE5U3n/fueXEhPbBcrKf2oQLnLdCBL9AZk/bbQdxQGfnOjD2lEMPkH/E5Gd+52XWZ+s0jWU0G3PuwhbD0SToVY6mjd5wPc4VXvi9P8GTz1/ip+9tsnnj13Fjw+8y9/j67/w59gd5Sy145cmFNR5DckL/VXSxvkLsvz5d1X6JAl5d+xxvH32bJi2oljtk4/MIwsiNeOnSS8ySc/wY8Ks3v85Pjy9zKTmHu+zrQjhnPX9vE4zxuViPbTzNf//GX+Dzzw3ZzrY9VriopXaVxtKRUGe72KbhuDpmUD3Jleee4Gtf+QZNtmCYvkS3Emvn64+WYlQI6vo51Gqd0fodtFpQ2RJsQVUVZHcOqEcpx6uKPMvI1JjoN/HvXGfOd3IqTlpiZH4c0cGh1jrVXEsTtlSh+EQGFybBbsaI9xMnkdaePPWahf1aPIt0gzvltHu/fGxrpPVN1LY/4qyEwrpwMw/BpTZIJZgPItZ3IhaFL0vn6YnfqHYVgUc+8Cfud4Iikd4t0BEGKsy5qqexx3Z9WNtc78dPJGGQSMdLK/GPUoe/P/CM4cHH4/vX7+4tarXh6mG8dAxZ5OK7cygFOpFQ2c231lfc6zhga0Oq8o+YfOYLX+Dpl1/g+U+9zGNPPUE2Ggf+PWh+1rU/9DR6UZrR5atcv/4dbCrIxSdROw+48st/Hj8BRm0RPAyZFoxiMFh80S2uG08BECSAsXW2dcQ+Pn6Ko9U+91bfRrI1Ej1BlGKYj2gSx77Z44npi/zPnvjbuDy4gFx8FrEKa33NXovBlkuWx0vE+eWhXj7/Cv/t1/4Kd4oHAeM6zQ4gHeQ0+Yrjcs7x/AFZCZfSp5lOZ6SDFefXtxDyXnp4nIjjxC34sAKFYKjKTZb7z6KYkqcjxgmM9BWGa5/GudfZP3AkNiPNp/44CccDkZjsxnCPMkM66yCMUb9LAMIw2bWxzX0wDMv62DaSAbocTPyTceBCvJVEBYeuXd11wzVdgvsQWJWPI5Xz20e+zIqI9w5LAJVEAu3sOiBLemDSRTH42gtiOzrB0ydxhns/4H4Y/PZjeE/Lw/qgq/T1Qf3zsLMF5rM/Dn6D8tClgB5yzT69YE/s9/C7bP3TYTI0IRa6z+kCGGdxVnXnd3iKAR9d0dIN8TwhY+0nrvwoutPO5Ex+8PKxaLrvB7GgJRFeculA4qELPZ6yWaUHYj/s+f5tMgc9LTnO0N+XPPwEJ4K8P6J0oUon2xrPd1pbPr1f34pRj1TBz+RMzuS0fHzJETEJpIefsdhv947GsKq4b+C0eo4kX0y4f8wH6as/KOlf+/0TgJIeW/v98p3S3bfrn7TfgsBR9aPSTm/3G3qnjVq/SC/YNuxzgtMNX4dg+hPtkJB9505XTDuTMzmTR8nH5Ejrv7herVVJB0bdIhcdReJw6Hhc+IkUekxSO1nn8rdCewyt/cgnioD/wbRDx/t0u/9GlPN+Wx5JNATQi+Eu/bCyk/t19IGLDogevaNUzxnWu4RS8oFWiIO2Tm+0Xs7kTM7ko8nHQi/opCOjYxHgvie4X8XHO2NOqoSRa4wr2TtrPwjjfqilz5V+rBd5pMiJyclaF6pJxeNPVyzrn7rnwQ8798/lgqPnUdk3Z3ImZ3JSPhZNN02EugHv/YvabgwujtqstP/6z3TgHN/snjYVNd/vV7v9zS7n8xuRfpWy9znVQvTARwXjD+Wwe6Ffpy7SO0f8qtcu10Vi9CkRzzgEGijch7VdgZBYljPy1NYJ+kzVPZMz+cjy8YAu0PQDY10I7mjDmPzX3UIpficPyvGYh8YZEDNBHlXo5VHS4vlHVs4+6Dof8fo9yrRzHn7ES79vR3nfJsFnm5sWdj+gXS5w6tFJFsKgejRu21gFWNPPvOlRFIFXCAud4JAzTvdMzuQ3IB9bcoQjlPRVDkKucweUp0tOQBvrh0NUr8rQKfO41Uh/007zoGF/JK71+wRc3g+43790Z+wXC/qwZgmgexNZVE4fltEWQ/2cjf0dCsMYe3LfQD34ifKD14Q6kzM5k04+1oUpIZihvTVkupxqD70eVvsEwkOwo4cL3oHWOdza6/wm2vkbYRS6kKlTpvtD/jqZyHz6RPR64DcvMSPnRPGZvgPvxL7C6RkuHv/wxBl3oo3OhaQIfOlJbKfxnkXnnsmZ/Mbk49F0g4PFibTFgWOmVXyZJZixWlybgtimL5zmCONx7v2g9/01sneB7/NMpwIWWrG9neI2kd6iu79pEeKaXqcjDz5MwuMh1luNJeochKqc0qZcdyW1e8f345AdPkTwTM7kTD6SfEya7mnnmf8+psvG0uWemz1Zxf2E2f/Qd9mf29oPzk77oDZ9gB79g5EAUBDvr9NQf1OrFj+M743esQ+4fndwpym3mx8WE9yGl3V6b9RwfSqmC4muZ6B7JmfyUeVj03Tje6skcrL9Wuuu43Cj+uc4yU9Cq3nF0Nf3aXQRPH5LgnY/2GkFoW2n9pITfz8M0vuFfOg09pZW+RDpz0AtRdDrnzYV+HT5nA+XPmafphIeNTGJ8mp6G2bmPjjk7EzO5EzeLx9PEXPpM7eupQUctEuk+KLaD3+5u1qVvkaAcuEAiQ66Psid5IM/SPrBFA+54um9P3Qv+YC/P6qcrJn08KZ5wG4LAPb10pOcbjvx/Mba0F+9wn/ulcfrR13ED32glo4PPuN1z+RMPrp8LAVvzuRMzuRMzuTh8rGVdjyTMzmTMzmT98sZ6J7JmZzJmfwA5Qx0z+RMzuRMfoByBrpnciZnciY/QDkD3TM5kzP5oRMReVJEnIh87Os4/qDlDHTP5EzO5Ex+gHIGumdyJj8C8j9Fje+3q5yB7pmcyScoIvJZEfmqiByLyH8hIn9WRP7PIvJzIvKeiPzLInIX+A9FRInI/05E3haRXRH5z0Vks3eunxCRvykiByLydRH5ud62XxSRf11Efjlc6y+LyPaHtC2a+H9URG6KyL6I/DMi8uMi8o1wnX+3t/8zIvLXQtt2ROTPiMh6b/s1EfmXwrELEfkPROSCiPyF0Ka/KiIbp5rxT4jIbRG5IyL/Yu9cnxeRXwltuCMi/66IZL/pB/EDlDPQPZMz+YQkgMSfB/40sAn8f4G/p7fLxfD9E8D/HPjngT8E/CxwGdgH/l/hXFeA/x74P4dj/kXgvxSRc73z/aPAHwXOA1nY56PIF4DngH8I+L8D/3vg9wKvAP+giPxsvCXg3wxtewm4CvyxU+f6+4DfBzwP/AHgLwD/CnAOj0f/q1P7/65w7d8P/Msi8nvD9wb4XwPbwE8Cvwf45z7i/XyyEld6Pfs5+zn7+cH+AD8D3CJkhobvfgkPnD8HVMCgt+0N4Pf0Pl8Canw6/78M/Menzv+XgD8c/v5F4F/tbfvngL/4Ie17Ep/8faX33S7wD/U+/5fAv/ABx/8h4Ku9z9eAf+zUsX+y9/mfB/6rU9d+sbf9/wL8Bx9wrX8B+POf9DP9KD//k9R0ReSPiMgvPWL7XxCRP/yDbNOZnMlD5DJwywXUCHKz9/cD51zR+/wE8OeDSX2AB2EDXAjb/oG4LWz/HXhgjnK39/cSmHzEdt7r/b16yOcJQKAK/jMRuSUiR8B/gtdEf8Pn6km/P67j+wwReV5E/jsRuRuu9W885Fo/lPI/SdD9MHHO/bxz7j/6pNtxJr/t5Q5wRU7W9rza+/t0YZSbwM8759Z7PwPn3K2w7T8+tW3snPu3PuZ76Mu/Edr8mnNuBvzjfP+1VPv98ThwO/z9J4HvAM+Fa/0rvwXX+oHIb0vQPZMz+SGRX8Frqv9LEUlE5A8Cn3/E/n8K+OMi8gSAiJwLx4DXKv+AiPxtIqJFZBCccY99rHdwUqbAHDgMHPO/9Ftwzv+DiIxE5BU8H/1ne9c6AuYi8iLwz/4WXOsHIj/yoCsiV0Xkz4nIg+A17XtT/+3gcX1XRH6+9/0visg/Ff7+I8Gj+yeCWfaOiPxU+P6miNzvUxEi8qdF5E+JyF8JHte/Hl+CsP3fCccdiciXReR39rb9seBx/v+EY78lIp8L2/4hEZn3fkoR+cWwLQ/3ckNE7oXrD3vn/btE5Guh/X9TRF7/mLr7TH4LxTlXAX8v8E8CB3jN8L8Dyg845N8B/hvgL4vIMfBFvJML59xN4A/iNb4HeM33X+IH+47/n4DPAod4p96f+y04518H3gL+B+Dfds795fD9v4h3DB4D/z4dGP/wyydNKn8/P/jVEL8O/AlgDAzwPNYfwTsY/umwzz+LN0tiKctfBP6p8PcfARr8LKrxTowbeK9wjveaHgOTsP+fDp9/Jmz/d4Bf6rXpHwe28M6N/w2eRxuEbX8MKIC/I1zr3wS++JD7muH5uv9F+Pwn8C/bJn6G/2+BfzNs+wxwH//yaeAP4x0W+Sf9fM5+flNj+leBP/pJt+Ps52N8xp90A76vxvtQkQdAcur7PwK81fs8wnNNF8Pn06D7Zm/f18K+F3rf7QKfDn//aeA/622b4E3Eqx/Qxn3gU+HvPwb81d62l4HVqf0VXtv5k+GzAAvgmVP3/W74+08C//qpc3wX+NlP+vmc/XykMfyz+NCwJEyYK+DSJ92us5+P7+dHPcvlKnDdOdc8ZFvrqXXOLYOv4oO8tac9qDjnHuVVbT2qzrm5iOzhvao3QwD3Pxk+O7zW2veqnvYgD0Qk6d3DH8drszFe8Rx+0vhyz98idGuePwH8YRH553vnzcL1z+SHX14A/nO8pfYO8Pc75+78oC4uIv8Y8P9+yKbrzrlXflDt+O0kP+qgexN4/BRo/SCk9aiKyARv9t8O/O3/Fh+o/S3nnBWRfT6iV1VE/mHgHwF+3DlXh6938KD/ivNe6tNyE/jjzrk//pu+mzP5xMQ59+8B/94neP0/A/yZT+r6vx3lR92R9rfwYTf/loiMg8f2p38A1/07ROR3hIyifx3Py97Ea6gNgfIQkX8Nr+l+qIjIZ4D/J/CHnHMP4vfOL1z27wN/QkTOh32viMjfFnb594F/RkS+IF7GIvJ3isj0t+hez+RMzuS3UH6kNV3nnBGRPwD8P/DOLwf8p8BXPuZL/6fA/xHPrX4F7zwDnwH0F4Hv4XnYP8HJ4O5HyR8ENoBf6tEIf8M59/P4bKN/Dfii+Hz5W3gu9y85574kIv808O/i0yVX+Kym//H7ucHfLvKFv/cJF/tb2tVLXfgMIgqRBFEapVKUTlBKo5SifU5OwEl7vHPhePxqzp7LA2sNuP6C9Q3GGvy8CifbEcW1i0KLSLvNn9P29jNhbwdYwCLicOFv5ywu/nYGsFhncM5gncHaBmst7eqxp0SpTj+L9xfbFkUERJ0MLfZ96NvtxIXeVSilEUlROkVJEj6Lb7dyCIKI7voirhr+vja0V2ovKJKiRaMlQWsdflS7mKtf1FahXLe4qkNwToVnqdrvcA6Hafu0PaA3Rron5fv7v/gTX3+kZXu2MOVvUETkTwPvOef+1U+6LWfy/cvn/57HXR/k/J/Og4xSiGi0SlAqQYlGdNICbguSCBKMxvZ9isDVc1ZH8BNn28/GNAEYXa8NJ9ea7oNxXCHag4E/RzdZhBWdpQNexJ/bWg+wfeBtQdcarK39ZxPPc7IdJ9vEqfbG337V6NNAHG4j/oMTQakEVBIAN0GkP5HZtn/7/RyB92GYFb8SpQAPuIlKSZIErVU7afg+fBjoKlyYPDsCoPfc2smsf+2Tkw7isFj+i//bo0H3R1rTPZMz+X7FA55/myX+FoUojSiFBMAVNIgK4KoAwYn0jgzanHO9c3kwcM4h1uGcYBEc4rVQ639zGkQcQWMLZ5KeltYDIIdDpK+BglIRbAXnNCIO6wxKCc5J0HiNb7sTrBVQDue018Ll/c3x53YPAd7QkBbwJXxyfYz12q2L7RWUbzw4D2dYG9oHEO/VtX3p4n1/gH7YgXDYRx7yPaBUr0Fdq9vtvs0OnAd9R9Re/TN6/+1Lu8dvJBfuDHTP5Le1OOdVM0GBKBBBaY0kGiWCoAPoBS1MKZwITkn7YgqCEuX1J6WCduvPH0FMiRCVUBNQyJ/PYq3mNKJEgPBA56918js4ARutBijtjwtqnCKyBuK1XSdYZ9rz4lyANh1M6e58J+mMk8Dbbetrtx74nHjgdc4rj5bePsEKcNZ5wMdTJdaCepiXqafdxsns4RNA2Pn0N9L1Y7uL6/ovzgCur1HH78O+cQL0X3S0jnPOP9SWavqAZvXkDHR/g+Kc+yOfdBvO5LdSPIcnygOr0hqlNaBQBLBFBzNX4QRECagI1gHgIhy0//i3VQgmbTTXnQd4az3HKlajVA9UWg60a18EfI/5qscrEgAscLcSEK69vgk7qW5f8d8rOiAUHCIOEYsIWGwPSfvcZQfAUas/jX3xu6Cs0v6Kp5IO7xwOCaDlj+v48JNkqWuv3782fAD4huuc5sg7zl26dsUxgNe6O56+0179U45P2LXtQFz7vNypYx4lZ6B7Jr+tpdPSBCUaReJ/omYbtFhEgxIkaLh9SkFFPje+fIHYjGDbRx/lXTZYazFiCD4tDz49jrD7rYJDSXlOWQQn1uNnAC3XB0hnW2PZWgKnG7VljfXMA5ZQYlDAicbhUOK1PU0TaIjg+DqpyoZ+i+B3Evh8mzrsaY33OBlIvDmBwKO60EfW2qDpeoiL9I0K208D7+l2gHeEndBq22fcfRch1N+79GaFFlJ7vkTHaedZp/727jl8/ig+sjPQPZPf1tJRB96jrnV07ESw7Zw5TjowjY4ZTytIAEXP9bbnRlqAUdAzaR1iLSK1B0ATOIgQYeDbJW37VNTCI38rOpzfIWIQEazYYAZLC3BK2ahrt+1SSnlgcRqsarVsaxXiEvr2dHT4eRdSiGyQh3O7Lmzrm+0Rzzoc6rVFVNAdO9AFAvAq79CLjjVxPEwBPnFtunO8f/up71sLJbY7arfS+9UBbdRvXZ+OENdu83f2EVTcII8E3T/1p/6vDidUdcXe/iH3H+ywd7iLyjUvP/cMzz3xNNuzNVJJMXXDwcEBb127xtfe+C5vvnuTo6MlZWWojcEYg3MO0+s8HTo1UQqthTiUlEjL7USzzqvwCuMcxjbYxtAYi7MWa53/HgtOsC50VGvKSCDybW+u8jOdiuac0n6GdnGvMNOKYjya8NKrr7GxtsbP/o6f4XCxZDge4xpDmqY4LBe2tlkWJWIbHuzucP/BDnfv3OG9W9f59htvUNUVTmlcqrFJglUO68BZi7OuvTbW4BqLa2pcYzHRCQOIOFTQrjTO84TiDUVxkWmSMAk7bI+Pcq5nBIsE085/b6XjyxztuxUOsp7rCzt7PjAOxjgMXWC6wnmjDSkWcZ5R9P3f8WHxGtXB3Y8+Wj8G0aK9hqtSH6GgkmDCK6/Z0sGoBO43gl/8rMMxojwYR+94a9b3zG3BP2djDUY894l4ftPZ2G/+oDj2ieFUEYj7N9CatvGfvukfNVyFc6oLTQvPGeXAOpRyHqCDeewkRazB0xOudz3rn/0Jy//9QOcQpPcOtt+12q3CWcEFKju2s9V4nW0HrQd8f5/KxYkITvPLHZgTtGfXjuX403VZ2DfQFvbEPcipIyJ/e1rb7fbp988HUs09eSTo2rrGAlVV4ZxFJ5rBaMzm9hqXL13msUuXOb++wTAdgrXM50esTSdMx0PG4yHfffMGD3YPUVVDLYrGmECY+1nTWIsgWOvQVtCBt0qUNztECYmIB2SVhNnRYq3CJpa6aTCNwRiLdhasYFycXX2nG4IjQRzGqbYLJZgU8T+FkKQJ+WCAc45z589z/uJlptMZF85f5NOf+gznz10kSbMw8BQ61di6IdOKxXIOkuKc40I65PLlx0h/7As8eHCP77z9Pd5+601u3r3FwWJOo4TGOVZlQVPXEMw9/0KDBJNQlPKTVXwg3qYMylPQFETAKVAuTr4QDMNO04L4zirpNDCvXLnAr/njVHC7tI4Q8W3ykxDeGRT0sc58jj3oNaKwO97j33F//omoqF5gP8oI/bglRCooFcA3mPKiFC70qYh3nHkQPhnKpFvtWCE6RDzgKYF+7pEigFqczKyPFvAhZL7fXHwmAVAi6J6ICY4S6IgIGKfBTwL4RID1h6sWsDzeepKh0/ZtMLc7x17kWaP5LD3FpWtKAMB2HMW5IwKntJNGF5blHYuuFx4Wb8v5oGZE+WiP+F+kVN533d7U6Fw3SXShev1+6U1c7+Ole/faA92TgN11f1DCT3DMH0UeCbp1XfnxYRqyNGM2mzGZrXH58jkubV9ge2OLrY1NhukAASaTEYM8I8tSsnTAKB/ynXeuc+feLqtlSdmAMoIR8Y4E5weNFcFYUAhaCU47tHh2DeW1u0QJWissCusczlq0+PVMtAqOCWtRYWDbMAJM6Azr/ExpgybrQg8q8ecGD0gvvfASz73wMq+88jKXL18FFHmeoZTi8GDO8fECrTVWFGmSoBXMi5LFaoUxhrppGA5ymgZWxYLhaMRnX/sxXn7hNQ4O91kuF7z34DZf/+63uXnvDkuDn4icaQeUCP6ld8aDmkQTKg7lMFFIeCnipm5ovO97Pzb9/eo4wHEYFQZa65DtzeACbbiS0DpffF/aYE2Gvuu1rgX89sJ037qo/cj7geQTEFEakZjwEH60Dhqfi29VZ3ER6YUEFQPvlQ++J9ASHf+q8RqcQ9okBQdWvCbp0qB9ugAANlhl/Wt2pnAUa2O8aBzJp3W5eHPSPp8ISy48KRWVcaMxnHSk+QO83dlpx5468Rp7x/c+omc7LtVJO9e04B+3u8A9R/D1GhLh4t19tOFj7Vc9OaV+0wPc8NNtjQ7PU62Plln7IV6bXg92O7dOOfmgfT5YHgm6VV2DMSCaPM/Ih0MGgwGXL1zk3OY20/GU0XBMPhgAkKaaJAaRi0KnCYPhgHx4jdu37nN0vKSuG4wRGqCxLnBFFuPA4DAoHAqnwktvnA94DvEkftCDBBDW1s/QSmmMFTD+fOLAiqCs1yIUHnBVsB7ihKu1JksTtrbP8dyLL/LjP/YFnn7yGYxtqJYr5vMFRVV5ykI0SZpQ1w2NdYxGAxBFtVwyX65o6hqtE/b2DFVVMh7kjCcTjGko65qmbpiNxnz62Rd5/MJl3n3vBm/eeJe3b1zneD7HOovGIc5TG9bZYNaHQRbMU+eCViQ+1jLOxj4OMhj+QmfihfGggRRB4R0m8XWyzoX9o47s2yBBs1Go4NQQny1kHAZ/gNeGgxf6xNCOSrejdVyc4CvdRxyiH6947VYFikEjSuPauKUIukGrx0+GHmxTtE7abCelFEqSoJl6RJPA8XrA0ICn2FB+knNWo2zSTbjOh5upMNmFh+3H6ymtrQ1Vegjg9iMAXHxOQd1tPfAKxAZwd1HTTRBpWq0SF8dU9Pj3CahouTxKIq1ED0il5Xp93wiBFSSOitZR6br76SbodmR94DW9BuEtqn51r16rTkz40lqG8Y66kLDT4XldG9pHgwuTWHuvHyKPBF2VptRNhYgjSUdk+ZDJaMpsMmE6GjPIByRJCmniNSEZMgQ2nfGclXU+nlEr0kRz6859jo7mlGWDNIIzBmvBGdPGrzjreSPjBI2lQUAa3y3OtdxZfJHjgO9mfwlOAcCa9r2JiGWtazNidJLy/AvP8dLzL/Dcsy+wsbGFaRw7Ozs4Z1kulhR1Q1PXFE2Ds47BYAAiGNuQ6pQ8z6nrmt3dXZrGQvAEj0ZDyqJkWVZMRpkfAKZh9/AAFJRVxcZwxo+/8Crba2v8+ptvMp8fUy5XgWO1CApNxzGrMLOqOPDCYI3DRcJAiwqaiyZ9tPejiSh0EZniiYEI291Q7MKdVPAPCeJ5Ypz3uhOOlZ5mbdsh2XJwFoty4UUOYTYPUU4+Eek7z5RKwvOLWrgNGmBnfaAVkkTtVgfg9eDbUhOtyUvvtyMmJ0RNyQWAtyoAROTWA3C3YGE70Oin4HrT3YNiew26CboT/9wUwRS2/YiGqKMJPjQugGoYROJ0D4jCGAufdTtFn75e28Le39I6GuOjb5Mo8FSDVR3QEmizGEd8cqy490VN0D+r81y0E9Va1H3gPcl5x+9j2FrfqjwN+KGnWiMucPsu9tlvAegO8iEYQ12XiLNopVBakeiEVCckOkElunvKCag8ITcDJtMp57ZrCtNQVBW1qUE5klRzeLikKiqkFnRjqB00OG+2BI3XWesHX+gM67wSq5VqB7hSglJp0BS8XyBJUmrjIcQUhacTnH9hptMJaZYzGI1Z39hke/scr73yGpcvXibRKdY0NFXBfLnCOstqueTg8IjVagWi0EnCIcr7WIJpmSYZaE2xWlE1DVa8tnJ0eAjOMZnNWI6HbKz5yUor4XC+oDaORBRaCZ965iWee+xxvv69N3jjrbc4PjrCOkGnGSLe2lAibKyvM55McI1jd/cBpqlbzcWJeAI7EE1Rk2gHd/uy+hfOO+Bc4HS7KbqvN1nX1Y+Mmq9G+RdThRc8amZBM7HisK0jI2pErf1FpBg6jveTFRUjFyRBSMLUpnrgE7RDEURrdNJxuFprVOLrMeiQMuy1S2gN8jaPP2Q5OeUtO3GgNWI12ibemRrbFBQLH1VgvTXYocEp6c9gp/vbQXsv/pPFEf0BHiUipxr2s4owkLpjw+lbKqSlB2JSRQ/0e2Z7vIZrA+V8X9vQbGmVgUhd+MgKIpjhLbmo8PecFg8B3Hiu+KfDikXwPiRrLf2ok5M87EktNvLerWnZO/dDGTF53x+PlA8HXWsDcFnEOZq6pm5qcA4dX1HbhBfXBm+oIs9zxuMRs9mI7e0N5uWcqqkAh1aa46M5uhDKKkQrGOvpAWu9UykOOAtO+9Nb6zBKo50jS+Ow9jOR1prpbJ0XX36N4WjErdu3uH37DgcH+1Sm8XnWKuPc+cu8+uorPHn1KpPxFCeasqpplKUqC+bzBcvVirqpMY1FpxmZCPPFgsXeIeIsdV0zGk8YjsZMxpCoHGstTVWzKiuWxZymMQwHQxprqMqC5WrF2mTI+mzK2mRMluVYY0iU0BjLMB/zqRdeYWM65e33brG7u8Pi6Bhswud+7PO8/MKLPP/McyyOjvmVL/0tvvqNr7Bz73ZMb2q5385EI1iRLvqtYoYjVkngvh3i+jxW710leHVDqqqIC6+FRYlgddSqpbs+eO3Ier4uas9Rq4p/u6CGq482Rj9W8REHJ51jXU8EOksJSiuUTkhUoCNC7QDR/ocQTxstgUi3RD6279CyNvK+CqcUTmm0JlhyERBoWyHKP4cYt9rGptJCAe3ecgpA8BOmEukxwI5gqrQapf/TA5NxkaGP4sI+fXDva/OddhzHUnd0nIx8NEc7NiXQV3Ky79uW9ya7E4MyXvG0BtpuljBBeI1XEKzTraYbQ9JOni/QCf143Pgco/XQzhKqfc/6l+4ReR8qjwTdRCuSNCOzFpQ3D42pWS4XFGVBXVfkdYV2fhZ2zquj1jZYcbhESPOU4WTAbH3C+nJKUa2w1qC0Qx9rpChRZYOuDU1jaJwgxkT8xuEwBow1aOvQ2uFI0MqhxL/WWmmeeOpZfvZ3/R6efOIpnnn6WZwo3r32Lu+88w7Xr1/n6OiICxcv8PiVy6ytbYKzlGXN4fGCyWjogXE+5+joMBTNUBg86NI0LFcrFsslpqnQIqytrWGN8aaac97JZxsW80NqU6PTzHOy1lCVJVqEhThEFKnWaCxpkmJMjQBplpPnQy5/+iLPPHnAm9ff4e6d2/zBn/8DfOYzn+V//IW/yv/wl/8SmU545fkXcAp+7W+uODg88JxsOziCARfnQ5zXrqJG4gKFowiB9b2h4t/t9sUG7+G2TqFbDdnvoOMgtEGrldAC60/kJGjR7fC0gRoJwIv7qGP0YxVpvfdyQgNstdsAuIn2nK9WIZog8L+RD/bA4rX++AJGhyftJ688qECz+JTiBKssifT7pHv5ldKIE4yrUcqH64n18NkB7ikt9yEd60/bTZCePAFB+1aK6aiUaIZHHVYkREJoOm6+c7pFvre1r+RkH0YNt5si/G8V2q4iikUwDtN7BOV4P9Z1u8WImu5Bih/bBGVCxI/vUE3NWO2fJQrrrB+HLWncTR6uPW2c9U75HiJf/H3II0HXNDXgSJKUJE1IEg0O5vM5+wd7zIYD0lQzyP1prDFY6yjrmlVZUNYVBovSQpanjMcDpmsjKlvjFOhUk61SimVFsago6xrdNN7JRgiHsR4AGgcGPzjFWBrToEhI8ozLj13l53725/jSr3yR//rP/Xk+/+Nf4Od+7veyuXGOqz/zBKujY27cvE5tG5aLgtt37lKWJaKE0XDEcrng7r37lFXFYrEg0Qnj8QStEpaLJQf7uywXK8qyQrCIUhRFwWjoTU1nvJa8WBwHDlwh1tLUNSaxJImjqkpEHKPhEJWmpNkAnKOsDFVRQ1UzyFIW8zlrwxGfff4lhp/5MV59+TXG+YDf/3v/dmazdf7Mf/Kn+da3f53PfObHuHL1KvPVgqZsMJHHohswMWxOAvnrAGUdWhzKeo3TujC5tZxh1BLoMqyMd9wprVpDUKT7bYRQ0MV1x4fWdB7rTiuOL4v7Iajm3GpYEjln6aqIKRAdaIQAsFFDVbEgThtuFfnQeGLXi9SIExkd3IiPzCGAdwtx1rX+iX6ChHMaX6rAtcDSf/ld1Fw5bXp7sSecSd2E12qZrqMYVDT5pX+twAO71qNwKqIm0hrSabFOhXoGqqUMTrZReg6+7lyn9ciIr9FuUu24ig6+gLltFbBg3YXxaa3CqsaPcwkZbtJZZ93VT4ePeUqlew60130Yz/BQ9uch8kjQLYoFSjQ6ScizjEQlNKZhvphzf1czHQ3IBxmJHiPiMLWlahqKumK5WnmTfLWkbHycb5IJw3HCxOQglixXFKuMRV6x1CXLZUFZllQiIJamMVghaEwuhK9ZrBhMAxXCpfMXee21T/OX/qv/irevXcMILI4OKcuCT33mJxmPRyRacTxfcnh8jHM+Pna1WjGZjEnTlGK5Is0yjpdLcJbJbII4zbIsONg/YLlasSwLqroiUUKeJjgLo/EIYw1lsUAHLleLZlWu/MNSGsGRpGtkyRgtwu6DB8ymE2azNUajIdONTZargqoqWCzmpEmKpWaYpTz7+FMo5zjY2+NgdxdXNWzM1rh+7R1+7Yu/xAsvv8rq6uO8e+1dbGVbK6mDvDiYLM5JG6/spGXPiDrTiQBx5wezDRxeI54D1iGWVBRo6SIaYrietQ5rwfQymfz77SN7JWg02lkPF/aT5xf8uxOL3fScYOJpB9VzkiklHeC2PGiXENE6Vlp4iJ9CNAihpm0018UiWqFIQuy6Q5QJUQUnTWhRgsT+agHMtWDbpuTSIkPbhr4TriUI+vRFuBdiUoKHNa9ghL+hz4Gq3gQaYC72RxtT7MOPbKBoEELsd3zmXUyLBOspTlptpEhE2h4Q+nv2DmXrbOecO1FbOO7rQdPSeOC1nRMsOnxjxlvXn911WuWgBfhOgWiryf0mhvAjQbdpKkQ0mVYkiSZVCTjHvCx5cLDH1tqUjbUZ40GOUlA3DWXdUJYVi2LJwWLOfLlguVxQ1isMFTpz5GONUxlZrsnzhjTJSCUhUYqFCEpV+KAyobE+Pz0OSoejMb4E3Wg85vnnXuB//IVf4Nr1GyRJQpalHK8Kvvy1r5JkIy5fuoISYXdvj3lZes7KNFy6dJFBnrNYrnCNAesYj0YwGmEdHB/PKcqSoq6obUOeaFytMaaiaTQKyJOUbDBkuZhTlzXWNCwWR1RVRdXU5PkAwVM0GxtbZGnCdDajWC04Op4jSqjqmjTLSbOMkZtwvFiymi8Z5SlvvfMOw8GQo6NDDo8OuHvnLkmasbaxSd00PLh/n8cvXeHg4IDdnR2fkdeNt/44DQOl47KsdGDcaqTdeIR2WzAdnQWncMq7m5xyAUT88caCsc4/rzhQncJJCLFoTUtHTLz6YRBRUUvVQUPzTiy0RmnloxSU7gGs10rppQ5HikL1wLCb+gLMOIdfVMS1IBVMDNpoBRsKP6rArUkX7aCCZmytbbXHvhbmXEhu6NXx5WGA0FohtLUXCNqmkwCwEmJmemPCV2EzYQwRzO4AbCIQE0tOZOTFCxA01QCucYvgJx6Jmio9APRfdBEG8VQeA2zbryF94gPQL4KxtY13xIuDULioVaHb0dg5f0WiBh/7WtpJoSs6r1sgfj/of7A8EnRHowlVXWBcDVi0Fhrju3pVVCyLFXVZYeoaSRKMtTRNQ1nVLFYF89WC+XLBolhQVCsa40O/ktQy1hkmtaRpSiIZysbBC2qlwZVYqaHxfJNpfAabCS9/Ioonn3yGu+/d5Pbde4zHI4bDIdlgxGAyYTSasLu/w/psRpKmIdvH0dQNFy6eZ5jnHBweoZRmuVwFIFckWlEuF5ignddNzXwxZ7VYURUrnxChfeaaiSsBiHC8OKZuGqqmZlWuqOuaxlh0krFcLrl//x6PX7lCkqacW7vEarHg+PAInaaIXjEaDcmHQxBBJ5p6VfDGd95gYzblcH7M4cEha2tbXLr8JKPZBk1VkumE9fU1tjbPsTw+xhhD0zTEKJDoJe5428jVhRRiuiwzE0xMxAXz61SMpwOrbDA9Y0AbHjQi1ruoEXlKw8nJN9/1/vExxh95nH5s4mssSESA1txWSrXJEic02vAbiVEMHVfYN7M7yrEfitRdw4cynW4MIdsxcOcd0gRzvefsa8Oc/DWgb94GIAmHt2UZoSuP8LC+oO9IJJwzxFmL7mNTa+7TOsG6kLmuDbFH/E8sDITYtm98PHJwDIohRo93N927n16bur/9TXU0Q/e7X5HMugZMSABROrrgo0pxgjvu0xPdnNHFXHdpy673LE6261HySNDd2L7AcjmnKJY4a9rq80prMKEAsvgb1KJJxCIWitKD7nJVsixWLFcrimpF2RTUtkQ0ZJmGJEVrixiLM4pI9KvEV5HXhVCUNXWjqBGUMSH0w4d/XbpwgTe++U1G4zHTyZTZ2jrrG1usrW+Sj4YkOmX38AClfISCdY7ZdIqtK/b2K86fP0+xKjk8PGY8GTFIU+7cv4dtGgZ5yuH8kOOjfY4PD7DWorVikGdMhwNmsxnT6RQQEp0wm85IlaIsCkzttV5rapbzfXA1eaLZ298jny8Yj8fMphOS6ZRVsaScL2iqAivSUinGWGbrG5RVyWpZ8OzLrzMYTVgtFjxuLY1tmB8fo7XihRfg6HCfw/1dn66KhKyx4GBz0Vz0EhNUbdRVpFdxKvy20IKtE4kUHyJtsFGIw3VY8V53ZRVWLLotZq2CM+NkCBuuy2D7pMVB22eqNeVVF5rYA1qfAKEhxPaKeEVBuRg2GYZwrLsQVonwk2CbgI53XsWYVx8LbHvL9tiexixhRnNttkKXYHLyHe9TGv46MerpRP3aAJidBufa80rI2ozO0li7JCbZhGTmkMjgtX2iI1F1BX88cOuWPxXAYnDiC+o4sSixsTqm11zFUxuC8dc7pbhGSIxhasoPzPa7rk9i6JkLz7NTBKx1GOMjS2LylY+HtqdohvCc2qL1/QkuTKvthHpqPH0E4H006G5skQ9GHB8fYOuCqqq8A6sXo6iVRqHQwdwy1lFWFcuipChKVmXJsigo6pLa1hhX+0wyJUiqsI0iGzhsrbDeF0SWZ2RZTlakJIsVq2WJEqiVhMw0zWg0ZrVckuQDzo1nbK5vs7G5wWQ8ZX1j03uGTc3B4T77uzsUdc36+gaNaTie1zzz7DPYxnB4cMBgkNNUDdfv3MU4Q7kqaEzNvbt3KMuSQZ4BikxrRqMRa7MNsjxnNBpjrPP0QJoxGU/JBiOyvYzFYuFBR3yIynxx7F8uY1mfrjHMH2e2tk4+GFCNKvZ3d3xCiXMsFks0glb+pcyGY8rlijwbcvniRWrToFAsN1Yo07C2tsbNG+9QlyuWyznOCto5mlDbInJyutWa/GDxcaQ+hAzX+b0dgnJgVBjYwYQK2BuHJMH+i68viRawCiehhkOrMccB6luiwgD/YYjTbYEqajShaI3W3fpcrbNJhVRfHSMXgmYXuG0Xteao7YunALp8/r4GFsBcVMh2DBZErzmtXdLX7OLvvlOMTsuNmu9JbVCCU6g7RGLNXE4DRYgciEWObJea7HcLtk6oWeHCxNOZ+AmQopR3a5mQWjvdfIELVz/LbH0NWxzw4M53uPfgbZp6CWICiNtuYg/LDL1vhJwwnk5qv10onR/3RqKi0EVKGOsnPSU+KsQ52jXZ6D2HE1aLuI8Epr8lmu5wNCZNByilmR/vs5gfU1UVCKSpB1xPaDuMddTGUNYVy7JgVRQedJcrirKgbGosBpQikRRxCttYnNMkSpMmijyzaNE01pAPKrIiI88zjpI5y8WKpArFcZKExy5fJhtNmK5tMFvfYm1ji7XZhCzLWS4WHOztsre/x7IsSJKENMuZL+aMx2Oef+55yqJg//CY8WRKVRW8d+s9yqJkMT9kvpgDQp6lvPD8C16zV4qmrCirmuFwyGQ8YphnqHyAdY6mLCmKAuemiIKtTcNgMKBxDXu7+9RV5cPK6pr58pj7Ow8oq5LxZMZkMsOubTCfH+Gco0orbt2+TV0UjMcj8nzA3v4uzjRcvXyV5195nY2NDbbEZ/IUxYKf/KnfyeHRIUWxQrRQV1UcMmEI0Wq03YQdY2Y7rSACrmv37eIp+ySFcw4t3TvgRNDK4cKyKzEsyb/gMdU4gHiwnH8Yai946iU4jcI6XRFwW6ANACOiw/I9MVQsakJ9LrN7+eJ6ZO1zaE1lH4qGCxqvsQGgHSKmnZz6mVJdLYHey+0EnAqrQPQBtONtW2ANGiouREnEbMFAc5wAjPDMfHiJ6q5N4DhDnzilAtxqnErIp9tsnHuGi1dfZTpZxzlDWR5z+/YdzIMlL82e4qgWvnK34PXP/uN8fqw42LnJ4dF7HOzfYXfvJsvVAUmSkGeao/kuzq7QVCESxLUWRZSTVEuYyGPqvAt05QlKJcQhW5/g4pwE2iHSJHFcSgySDAkucRJWYRI6SXn0n/uHySNBV0ST5QnDZkRTVyyXCxpr/IqoOsEpwRqLsb58Y13VrIqSxcqbxMvlkuVyRdHUNM4i2vngchKc03j60c+sSjlfKCfLsVjyOifLMoZ5TpImpJlmuSioy5o0yRgNh1RFxebmec5dusJwOMTVBbv37/H2u28zn8+xwHA4ojYG0SnOWKaTGQ929zxVMMjZ39/j5s2bHB8fUxcrdJJw/tIVPv2p1/nxz32WC+cvopOU5apAacXh0RE79x5w5+4dilUJzjDMM1yWsHV+i83NTba3txjkA8bjKTpNaOqK/f193rl2gze+/W2uvfMO7926zXJVckk04/GYtbUZjbMcHByQZRnr62vcub3g/v27lKuSLM9omoYb19/lwe4DPv/5n2K2sUWxWmFMw5NXHufCxUvcf3CP5WqFiynQgS+LxG4bWBTMur7GFEEy1Dgj0oInIiyjlSuOBgngGnhQujRK5wJoO6/xqBAR0VEYPxwEgwfFzmRXoapXf/FJ0cpnj50AXB/f6k1r3TtffPkDXeA6WudE8L+TUEtE+9q6bd85CFEOMVm3D7quB65Bqe0oAn/mjueVXg9LZ820tFHUfluvUgTzfv8EcEa1hd1FFFYUyiWgFPn4HM+8/LvRs6fY3LrIfFmyYyqy0ZBSldx/8BZP7t6heOsrPP7MS3x3tcPf+M4bXH78WV7c+hQvXP0Cx8s5icBUw9pgxGQ8Ynd5h3dufoVf+qX/GFM/eN+ze39WmiHSL4iP041TYacu+OQU/8x1iMkPSkCPc1dK41yMXQ5WYHCmxe7l1OU/6mh+dMGbqkaHNF+tE5IkJ88MBHW9qmpWZUlRViSpsCwLlquC5WrJfLFksVhSFiGGVAFakeoMrTKcEbwTSgX+yJJkKmjW/tx5nlKZjCQXslzIBynLeYEzCiXCcJAjOme1mNOUS4rFMe/deo+bN26QD4esra3T1BUq0TR1xeaVq4gIaZowyAfcv3+PG+/d4PDokExrLl59nM/++I/z+qdeJxHFzu4uu/e+zXRtjarxsbaT8ZjxaMzrr79O0xiODw8QhGyQM56tIc5RFgXFsuB4/z0QxWQyZpBmvPLiC7z28ktcu36dL37xV7hz+za3bt3E1DUXL11ibTZjVZQc7O2idMJkMmU4HLD74D4PHtzz1kTpw/GKcsULL72OAKvVimGWsrG+iVYp2ALT+JEQA/H74yP6t+ILF2MQpH0xfRC+jTvHaiR9L4zF19Vwrt3sRKHFtfVPxflIBe2ILBwWh0Y8D/xDEDLmnE/i8MpbiEVWgTJQGtHa1+lQ3dLrugfKiDph0veXOsd1lVyEDiSiY617yZXnKQVQCThLI5auhnEEyBDB02q9Pe3XnzncVQBRZ1pwaHnPVlsOgNpyxeFZuFOTsQAh3taJtPesENAJa1d/gq0nfoxv3Nyl2rkF334Hk6TUG9uMaVjt7SA37yB33uHezWvwtb/FfZPxYHaee9fvce/ceXJlef6ZZ7Ey4vzaOuO1TWySMx3k/MRrz3N8dMiXvvwfIpjePXbPL/Q+voqQO0nNQghVcy1n7hCwBodCBw+H55bD83DR6ogZr32lo8c3/yZ1hkeHjNUlTQN13fiU1SRlMBhhTIO1cLxYsntwSCqKfDBiWRQcr5YslksWywVFUVE1Bqc8P5nmKXmSgVM0TShwLT7XWylf8SvPU+/ESBSpTRiQkOSQpYo0TUjSlKbwNRzKcsXhfAcRzSDPqMqSu/fu0jhLphRVXdM0NdN8wsXLV5jOZqRJwiBJ2bl/j3ffeZfd/R2SLOOVV17jp3/qp1lfm3G4f8DR4SGLo2OOjufcuX2TBzsPaIxhkOdcvHiZp559luFoTF03jMcT7ty+Q5rnvPHtb3L39nsoB5PxgDTL2D5/iQsXLjNb3yRNE65cOM/f9/f8vfytL32ZX/vyr3H95k3myyXb5y4wHo1IleLg8ACNZv9gl/XNbebzBQ/u3qGu/cC7fv0d9vd3GQyGDPIBg3xIUa0wxlLUPk3bx+VKZBICQEbz0r90znpzrM3gCZRDZ8J6flZCUgUoX3zbAs6nBOPw1EIAWJHoQOOkOSygrH9BJBbA+YTFGoNLgqarIp0QCexu6XUtSY9S6HjyeJMe/MIy564PfhBf6igRnMX5MpkexHxVPHHt6+2v04btRWOlezYdyD9cJFgmrX4cnkmseXzS0okacCi36kIxcWKCg+v6xQlOEvJzn+Z48hzf/vV3sPWK2hjsakU+G7PYvcmlrXUe3N8nX9aMcUht2DvYYb5+mbV0TH7rLdI3v0ipFX/1lxzqwjMkl15g47GnePbiBq9ceozzjeMLn//7ee+9r3D3/ldDP0rX57Ef2nvuBZQ53SoUHjzjMX7RA9/Xnt91J+o/uODMC8DruogOEV91L66X95uRRy/XI0JVrVitVjhjUOKz03COuq44Oi58/QULk1GNcZbVasVqsaRYFdS1weFTZPM8YZjnZCqnaQw1FYivmyuJf9hKaxIdYiEV5NoT9UnmaSSU53TnpqIsC5rScXSwR1M3PuRqMMJYf05bG9RIGI2HrG9sc/7cOcbDEbPplLfefou793c4nh+BKF555RV+8guf5/hgl6P9Paqy5NatW+zs3OfundvcvnWTsi5BadIk5eZ71/n617/E2voGW+cvk6cZh4dH3LzxFsPhiMPjOYf7u4zyjK2tTYyB3Qc7TCZjHnvyaSS5hHKWz3/ucyit+eIXf4UHu3sUVcXmxiaz2ZSNjTVEHEU5Yr445ty5cxwfHbE62CNJFIPhkGI5p1wu2XeOjfVNJE+omooYkmQDkMYpOWYw2sCxSvvCRg4sjGcrHSUQtos4z0PivcCRYzMttQAOG0LPbCh1F7IKWz4w1KoKx4r7ILj4wYmNUTmh1m1rskatDtp10bx26zf7lWxtC4T+vbZ0xWJOvpGeN/bj17lQ7c51wNEWnAkSVwgx+Iy/Vpc94VTr0wGuvWRn+fbTNBz0JgvjbG+/2P6T9EUUEUGHspM+rFDD+jPsJxe4/e4bqIFh7bEttM3YOvcYA4GjYodtnbF55UmOdi6w+5WGSlWUn36czZd/B80Xf4Xsm98gEYu98jyj4RQ7P2Lj+tf48p1vcfPJF/jWjZtMhwPOn7tIM3sad+9rIWLk/RpvexuuR9OIaZ9CR7nYyCWAA2MsThnaWO14XulNqC1w+xNZ2rnnfX6Jj+KneCTo6uDVbuoCa2zgdADx+ctFWXOoVqQ6paw87XA8nzOfzynKAusatFakiZCGwuZaEpomBnuHAuQSPPXKaxMtAGeeT1Pa115ojKUoGuoKjG3Is5zjoyMaa8E2pDqhWPkKXuvr6yRaMZuuc/XKYwzThOVyyf7ePru7uyznR9RVxdNPPc0XPvd58uEY54R33nmL7377W1x75y2Ojvao6wpjHShF1RgQH5M7GU9QScb+4Xco65JEaZbLBbdu3fBhbUpT1yuOjg64dv06OkmZTSdcvn6Nx596hueefY6qMTxx9Ql2dvf47htvcPfuXVargsXSa8RFZXDWMZtusL/3gIsXzrNaLnDGkic+g64oK6yzTEZDttcv+MFgTfu6tRn60QS1tk2W9HZvRxn4MdaiSltS0oojkUhD+D0tsUwmrUambMhlkggxjmARo+REkmaPsfxkxTobgLfGuYwYz+oXQ/S8H9ASoX1YdDaCcFdKpit9eEoCOHvHlSGuhQZBU4tOouDEkRD9EU1b61xLu57geFvqKGjFkpAmCp1OGIzWGGQDGuvIB0OapqZYHLOqFiwXu1AvfFEx50Hehf4wzoSaHf6S0WJq2ysp5fQx7hvDZL3iCy9vsa4btKt5O1WsqoIvbM24MhuyuXaFulnj61e3GE6mJBcv8eahofq7/wBPPv8kuVXsPPUSDTPu3L/O6O1vcdEekTX32Hn7m+wmW7y3eIbt/eskKHS4Z9uO4B74Spza48TRC9NrudiOHnCBZ/FhqAYk9c7U+LjFF7D01zDECnTx2HilPtC6j6D+PlrTddJWxq/LwvNNokPBGk02GOIkZVE7ajMHU3N0fMR8Oadp6jaNMkkVg3RAotKOb1EhNEVLWypRnDevLM7HSmqNJA4riqzJSHNDmpfo1EcjDJJRm555vFxhbAy2Nhwc7HPuwnnWZ2u+HkRV4xrH/sEeuwd7zBcLLl+8xPPPPU9Vlrz95ve4f/cu3/7213n3nTfZOzikKCtMqHqmxE8cgzTDJAnWWJZFXC2iJssHvgaDaairmrIsaYxp61FYB1mWcevuXe7cu4sxlgvnzzOdrfH4Y4/x4P493r12wLXr73JhtWRjY4vGOrI8w5iG6doGOw/uk2UZOk2oqiLQPD7cJstyEE2aJN4yDhNji6EtbSetUhQnc29OxS/6Eb0Q10izEVy7IR1e0rjkjII4gbZe5HYg4ZxfPNERcV5+KDRdwE8wtr8Kw+ntHci1oVFxcUgBD8yBww1yWuNxeO64Xa4K19ZD8O93P1wfnx0Wnpd2Hlzq3kuPM74ov86YTi+wvnWVze0neOLx50iHG1gZMB3k5MMh1w7mrDvN+njIsilQNKyO7/Odt77C229+kf37b4OrW9641XdbbS9y9v4fM7rAneUx+dqcH7sy5PVsyc79A+bHDWvqHhfHQ3RZsXt0g2K54o5tePXFz1PnE45NzoYrKefHPPF7/k7GaxNsccx8YVhMNlnLr/D6QYoc7XNu+zwLW3MwmrN/5zZ9Hb43AwWtlvdv6/d+dGjGTLPeeJcwKJ2Y0PfhaCE42sKiX+E6fcD1w6OzVvgIY/rRnK5pfGWlJANZUTcNSeKn3iwfMRz5+FVxjlV5TLU45vjoiLIscBi0zsgy7eNu0xytE2zVoJxCi8ZqC2JDjK+fU61VSAMqlt2QBO3zKEi1Q+sSawsOj4/INyckOgFbY9CUVcX62hp37t3HJRlaJ9R15ddSM4ad3V1u3b1NWVXMJjPWplMOdu5x463vsFzO2dl5wHu3b3M8n3O8WrEoChrr0KJJU0XZNKx0RSKKTCfoxDuHdMhqE6UpiwJrG5rGUja1rx8R4mWrpvGaxPW3KVdznnj8STY3z7F58RJrazPGoyF1XXP3wX2qumYynWHCop5FsWQ0nbG3t0OaJBwc7PtllDKfGZdlnj+era1h6oZVsQrrmfWHXhyT0pq7fhyboPSGegDReYLr1lQjgq7rXkA8kkvQXCVyXyHH3i+42WkZFtr6Ac65LpLik5Q+qEQ6JIhEysB5Z5lfeSSm/HY92xXMUYEj7zSu6FgjLk8VQ7QIFAUecGNEQdcs/z740puhzoUkvv8lYby2wbkLT/PSC19gOLtKaYSqUezj2NkrmVkDo4a39m5yGYWZDfnusqKpHT82HZENr7Lx5AZ/4KXfw+2bX+OXf/nPsth/1y/R3nNGSTvZeo7ZSsIyHbGyJdt2jdVywC/u71KvasyywRrHJXWO+7fu8NJTz3P0vdtcuPoS71y7wWAy4ddToZmto8/nPJB97l1/A333AcPrN3l+7z5UDdetY3uwTpKmTKXmtcmQLyeasvRrJPaM/fbhyamRfqL4UP9Ru257rNXbsjcuxgZbX4s3xBh7MNXdSSREiESrpJ2b2jzNR8ojQbcsS7IsJUlSdJJjzBJrGp+PnmUMRmOUS6irirJYsCoqFssVTdOgNCQa0lQYZDlpmuOso2lsKEXojVSlHFpDNNe0VZiof7kwczhFjBn0xL5/eWNWTKK8h9kX9XZsrK3h0FgLtbWszda4c+sWt+7dpShLcBZna+qq4O23v8difsRyuWRvd4/D42PmRUnVWEbjGUopmrAEUK58LQhjHZUYMiskiW4LvNRV6Qu/GEdVGyzCaDQlzzPKqmK1XLIsysAl3aGpa/b2d1k/2GO2toUzhiz1FsRiucJhmY6nNCF0ZX1tymprm0GaMJ8fogJHOBmPmYzHOGVZ31rHKUiOjkhEQPuJwYSVLxA/toz1k4EP+fPFaiQWkgo8bAyboeWFI5HVcbWeXohkQscl+iiIvhbnM9hsLBwCaN7/Yvzg5WQbXGvlS8jQgmjExlWmo5xMmQ3hdMq1f8e+iwkSzkYtN/S3dOeJoN+XMPf5OFzr0MmQ85de4LGnP0+dbJFNxuzLkLd3CyRR3Khq7u6t+ByKtzPLW2XKdmXZXBvzxXqFq1OeQ/GWMxzOlwxdwnJpabZe5Sd/3zm+9Uv/ETfe/TWA3qQiJ36UwNIu0VkCywajBSkGDFUCqgRlWC4O0eMB39m/z/mtS9yzFU19iDm4wbfmdxnkOVfUiGKVsnfrDsca3jzcZX0441ZxxGTrErdYsT4bcnG2SWIcudKUJ2wRaTXPnjYRfvXGa+jXNgKhjUfnxIjtjvbhfj4x1KGcI1aQ8xE+qlODrVcWXZx0XVQtHi2PBN2j4zmbG+t+HbFsgGlqH4IFpIkmTzOQtF0So6gqqrrG4Ui0QqWgc0WeJaTKa6LG+Ko/TnwguEoUSgtioTEdZ+bCzOOcX7iu86j69ONB5hMnppMJ84UP+TICaZpw/sJFDucr0jwnSzNu37nF/QcPKMqC48ND0lQxHQ+Zzw+ZH+xz//59FosFi7KkrA1lXaOUZjKasFjOGQwyRuMJpq6oy5KmrsmznFhDSSfQWMhEqKylrD0lkSi/2oSzDtsYBsMM0xjKxmCXK9zOfYq64nix4OKlBpVozNKwWh6RpCmL5RJr/BJBeTpktTzmhWeeZXF8SFMV4CDPMmbTNfLBgGw2JBsMmW5pNs9fZGttxrnz5xkMMq+ZhoLdzglNVVMUKxbLOcvjOauiwJpgXiGUZcVqfky1WuFMQ1k1VHV4foEyMc75ARQ1W4dfRjxovZHHiAs6Wgn7u+hQ++RB17leO068vJHN7DLTTnPQXVSGtC90l5fvzXQbtFvaSmx9J1AMO+tom5NGcfgnGTHbep7k8musjc7znaOSS7Mpt289QKea56fb/MXb73FPDXiprLl2fo230pwN4NW1Md9TBSs95DU9YHOQcqOq2RyMeG19nTf277FfwtPTKzz92b+f+/dusFzdpVvzrsssjPpkZg2ZKTCScvvBCrcqSXXCIBNMXTIeK7LUMcwaYB935z4DB5loPn1wQNY4rGjedg6XZjhjefXC42hJOKgKzpPTaGFMjV3scZwWrFb7nEDYDxw6EnmQSJJ0HK4LCoA4jy0xlOz0c8UrhJ5Lp01LFhxIrD4SIx2EmFN8Yiw9Qh4Jurt7ewzyjMEwJ0kSkjSjbirqpmbgrF+AT/zMbYyhqr09qzNIcyHPNVmWoBLx25vaa4rOE9eifYUxrRVN5YJ5ZyA42ayf/nHOtMVc6trQNI7DYs7VS4rLVy5z42aD4FADxWA05sqlx7hgau4fHjJINbfv3+dgfsT8eI6pK5JkyHgwYLE4piwLyqqibAyNtTTOopxhfTTk0vlt6nLEtdv3yNOULE0RYxnlvqRlXVcMdIITRWUMOk0oihXueIFdFQzEcvHKk5wfKr757jss58dkSRrWFIOqqDlURwhQLI5ApdR1jTE1jWkYj2fUTUOOI0+Fy48/RZ6lvLtaMcgHOOvQacalS5dRiWZ9NuPFF17k/tERVVFx9cpVnrhyhcevPsZ0fZ00S1tTylhDXVfMj4+ZHx1QVCU+KqWmrjxfeHC4w8HuDvODA46P5xwcHXJ87EMBLQ60JUnDAqH4DMOyrCjLCmcdSZ6Sj8YMhyOSNCXNcwaDoXcyGsNqvvjQAfrxS+C4nXcmxVqy7eq3J2gE/9L6Whbdy9wCbtjPBW3JWet5XCs4a3Cu6YAg1meIFA/gUNiwel3kVNfXnyC78mN848CyvA+1e8B2teDdowfs2oLXBjP+f2qHd4YpjzcJwwtjbq+nfC7f4gVj+KopySYbvCKatUb4UjlnOx/wjMp4+2CX5XDIxSzzFfU2rvCZn/gH+OVf+FPgq514U15CAFu44YGrkHRGgmaYpSxNQV0vsCt8kSqjqdMxVQFVs6JZFgxQrEzNQKUc2pLJbExxuMPl8ZQsn4XEk4xXLj6DJCNGgwFlfcgkddx/61eozNL3W1vPN+iqvYmyXyfBS5zgYlq2tLy8X66qH8FBD3yD16JP97hINfitSjzVEUt0tkE6pwD8YfJI0L2/s8d4NGBLb3jnjFLoJMXUJU3gSZU4XwzHNBhn0akmTVPSXJEPfUaZFk1tDaYxOFsjyoCuUNqhEt853hseanqGB6wkpKkCWG8G101D3TQUq4q6MaRZwtpsDVOXGBxpqn3et4HpeMre4TEHhwccHc0pylD31mTs7e3gV48oqU1NbRtPo2QDioXjsXHCdrPDWwdLBgmk2RBxcOHSOTY3t9GJopgfIU5YFSXH8yPGszWcCLvqDlW9w9bActXdpVlqEmMYJBojCcNhBtYi1gYAtBwfH5GPZigRTwUoRVUWDIdjnA0540po6oqiXJHnQ5JEk2Qpzz31JPf2DhiPZ4zW1ynsDeqRIx9PmK2tcf78RS5evMBoPG7jFHFQ1zWrxYK68skWxipWqxVVVSAOyrrg6GCPe3dvc7h/wP7BATt7+xwdz3HKkWaK0TAh0QRaxVJXhqIo0VnG5tZ5NrfOsba2yWx9k7XZBoPhGOOgLCqOjw4+dIB+3CKthgIx4yvM9Sc0pNaZRgy0745vd2qTHzr+NlqBtFqQ6+160gT2cbMNYEnTMbMLLzDdfoEv37MMm5q7yyOqVc0wt7y1eZEfn1xiiuPt3PCzk8tcWFT8IgesFY7H6oqdCxMa69h0BecXGfe3cy6N1lhbVNTLgvrCCHb2mLicN13JlfUZ9qlPceU7r3Lvztc8vddOLJ0WnxdL0qlQOsXa2jqjBBJnUBYW5TEqSch0wnQ6w9iKPMtpbEPdGNZH65SrQ1LX8OpjzzNOZlROcWfxgO3JJhvJmEVjGIxTmqZi5/Z3qFcPAm978rnZjqTt4LL33Gi/c7w/lCtaMiftC9cddOK8pykJ5xzK+UnTCl1Fve83emFvf5+N2ZBBnjAcDtC4sApqglJgTY2IxpoaZxtEOVQawsMGiTeLswycpna157iURWmLKEuaanQKtjHEfGaJ9V3FVyZKJEByeBMUwmQ85rmnnuPy5SvcvX2H6WjEwVHN2mQCSrMoCpZFzdH8mKqufclF472zSeqTL6pihVKCMTVpkpAlluFkiiNhOpqxyDIqk2DznM1Jzua582il2NjcYG22TtMY9Po21ln29ncZjicMJ77gjVmWWCsczg+4VeSsGljbuoROfJUmRCiWc1bLBUqEpqooypp06DzgNobKViSJXyxzVSzQ4ym7B77wkBLFeDwFZzh/7gLffeddxusb7B8c47RDoyhtRdVU2MDrppkvIjTIPE9uraVpMiajAatVEaItLOfOCU3jS3mWRcFqe4v1jTUOdnfZ3T9keu8e+4cHWGcYDFNGw4xE+9oF1lia2pe6XNu8yObGeWbTdaYbG2xsnGcynpHo1E+cVUlRrj50gP4gxAVryrbOruhnCEBpu6WK2mSEtng2nQbk4gtpcaarGuYBG7xzMlA4LobMdXSEtTXWWUaj89i1Z7i+GLBzcAepGt4zPrlgbTbme2tTnmhgqOFvziBrMpLC8LXtIfkQ1qVhegy37JLNrOGKEmQ6468d7yAHc36fjLm3MeVX793l75xOKI8rpjMN+0fMjeWxxz/FvdvfRElIG+85uh2KTDKSdEg6GHF4sMtj62ukCpqyYms6wWBZ1iVNUzBOEsQ10JRMh1NG2ZDpYI08SUlIGGZTKoTn1jYZpgOWRcFkNsWomjv37nBw/F5474NmiWupq/ivB9oYWRI12NZFFiTgi8Rn5qdPi+DrEAf3nODPH5al7wWG0QK8C/4k/ySJadTufcD+cHkk6C6WK46P5wxyjTFjsiRFAVmakSQJMbXOWl/MJkkUhpQk8UkUWZaT6Iy6tnHchg4xiBZ06jN+DKartKQ6PibmlrhQcShJEmZra2ysZWinWCwW5MMhdVlwPj+PUgmD0ZBVVTFfHbKqKuqyYLlaUK1WKO3D3QyWZWlItUJUwnAwAp2xuXkOEcVquSQdDJhO17iQ5YyGw5CRlzGbTpmtr1NXNYMsAyUMRxOMMd7pmA5IUVwsV8yPDkkTn99tm4bFcg7WkuUD9rTCWItWnt8sq5pkufSpp2kClcUYy7JcsZ7NWC0XyGCAsj4GOUtzxsMBR8sFR8uCdDTjwrkxg9GAS+fOc7hcIKnG1DX3HuywLGoGWc4ozXDOMhkN0GlKUZUoUWgRhsMBg1GGVoqmLjHDIdV4TBon0NEInSUMpiOapmI0ypgOM9LEG3bGNdjGMBpOmK5dYDxZZzSeMVvfYDpZZ5AP/fM2DXVdB37zkxVrrY8htj511xpPlflA+ZipptqYZMDXYQhLILULKJ4gY3txtK2NGjVaiFy3cybW7PJAbSHJz6O3XuPagSZxjvurBU9ubLKsFjw5r5iPHXprxkuD81znkNod83K2yWXR3M1KhrbhUm25v5Xz5+b3MAeH/IPVBteHS75Zvst5N6Eh5ZcW32WOsGDI37Ir1K0Fj2UpW8OU0WMvMJico1jsBGtT4VRKmk5Z27rKxuOvsxxsc3v/Frm6w/HxIetZRqYTUutQ1jJLcpJsiIiQMGF9lmIxDPIhidKsVitkMMQOcoaNINaQaMXW+W3m5R5vvfXL3Lv/XZQrW8ujLSkJdFpqwIt2e+hjOdnvDzX7A0dkYzp2sAAJUQ3xI0C7OnQEZ1TvkQf7x8UJ4dHySNBdFiXFakWxSklTR5OkpDojyYakWvuZ0BhMUwGWNPHpkmnqSDMdstfANg7n8wrQCm+aphqdeq+gc/iVgIPH2HNkPnTJYvxKxOJXYBgMhFE+YzqaoSThwe4ejYPxIGc8GrGqLfPlCpxjtVoxPz5mtVz6blE+E6usarJEo1RKUxu0ThjrnFRr1tY2qGeeS51OpqH9BqV83OtoMkWJJtUGW1cYa3CmYTwYoBK/JP3G5jp237WOtkQr6qpEpQploWpqXxayqVHOp1mjNbVpfEZdkuEqn8JsrS8/ub6xjnOOc+cukiWa0SDn4HCfB/v7WEnYOzhA65TLF7dZm445N5nRIOzc2eHa2zdJkoy12RqSaIaDnCxLfU2IfIDWigvnN9nc3iDPEkQcaapwboBaLpgy8QV0BGpjcArqpmaUJ6yPc1LtE2miiTwYThiON5iMZgzHE8aTMYNR3lIiprHUVRk8+Z+sxFRaa50vkm8NjWlABA1eO7IKlGBCnrML4/H0Krb9183ZjoKI0R9tEAgxtlSwrgnArCDd4nY54+5334FFya6zzNa2+MbS8Ey2hrk6Yn+W8UppWY6W7G6nDKkomgVfHW/y1w6uk5Yr/pC9THpwjbXle4xWhyRcJEsMr+9d43y6QT1eka5u80Q+ZTFzHBa3eWX7Gb7nlrxQJkxWhhde+b3sL/cpmprpZI2NzausbTyByScsnWbQNOxay9s797icDBg2BldXZFlKiuCMIJUjSQYMByMcYLSwrBpEGibTbbTOfdH9PGE6WEMpeO/2t3njzV+kaY5RYlvg65TISIBL0ER9PeIIlnGfno8zPALbabkx8EHiJKhOnl/8c49X81Eq/bTsuH8P0CO78P1GL5RFRVmVKK3Isgxw1KZCTNrjpwzG1L48Y56DJOjU+NKPktAYv7yOw4AYRFtUAkmWkCbaPxzwZDTOF4nGgQIVKiArEfIsB6dodEKiMpI0pVyVmMZQO6ExFRsbF6n2jmmahvlyQV0VVLVfmVcrG4qXCGVRoocDSIV0kIUC5Sl5lqGcY5wPKVNDWS6ZjCY4Y1iWBVevPo5WgmkKRoNBSEgQsF5Lr40v/TgajWmsY2fnPrPxmKKsOTrcI8syJEk8j1xUnq81tZ9slPJL3oB30OUDjo8PWFvbwClhVRRMhhNwfn2ywWDI7Te/w+FixWw6wwqUTc3+4ZxBPsDYiuPjOfd2dz2HWjXc0r52xWg48nHB0wkXzm3z9FOP8+QTVxiPMyBkCeIoygKUJUlCrPVgyGA0YliuSGrFaJAwHGVkqfYFY6xP4VZpynCQkg9S8jwjTRVJKiSZoLT4koCS4prqQwfoxy3OGaxTbWaaaRqf7hxUJiu9FGClME5w2sd5+qXb1UnQje9/+KNLpY57SMfvCjgxGAHbjHmwGlIUFfXd95D1NTaeeJbLk3Ps65rN2Xm+qw5YDg8YrD1BheP4zi020zHPmpyvHXyP4e53GBYNTo44lwqfObhHc3wMyQ4rGjYWh0zTXRajW2xWNecmGyyLkoumYqp3UfUxt4bbZPWK15//Ak89+yqHq5KBHnBwVJAPckpTctzUfHvnDreVo3riCtfe+RbHh8dM04xxoVnPByjRjEYJWmmMtagkQ6uENJswzMekac68PGRvfgt3XLOrEnZ332Jv5xrO1S2QGun0SuV84lPsy8gzuz7YEj8Hk5/THK9raYYTjG3LBcdY8wi8nlKR9pwdrRTb4fE+Ot++z+iFVciqGk1mbGyexzlYrZbUTeWdLUDT1DTGoJOUAT7rCO2rhzXGUVd+gcnGmsBnKlKVoXWOSBIynRzaV9sNVd0ViVIobXHKF0kx+EUptaiwVhvkeeYL46QZRgm7Ryt29g8oywJRmiwdkiQl1hoaIyitvfMvSdH5AOecTz/W4guKpwPqpoY0wVlDlqYsjo4YTWc8/fRV8jwnSxQXLlzxJnmaslwWZEmCCYst1nXFrdt3GeQpr77yGu+++zZ1XbB9/gL7+3vYpibLMkb5kKYp/eoSuqBqfHF42xic8+cRpVgsF2xubpHmuSfsFUymE67dvsHN+/d9AZzAVc+VQjsfmpRlKUW5oipLauNjbrEOjPUanDGMhwO2z22xvrmJsbBclR5A05TaGhrb+BUwGoMSFVaFTlGJ9vkUMfQmDD4lOrBDjrJcIlohiYIErPbcvOiEJpjwTdMA0w8dpB+3RE7X87qNL6jvGhpNq8lqrUO0cY0LYWTOKZTWKLrA+b7jpXcF3vcuirSxztYOeW8+4NbhHpW1qOGYajrlUlXzttvj0rGm2Vph1hSbxTGpO+JN2/Dg4B0Km7FQF/gsNbMHe9jjArF7FIOMbLVkYB16aJhXKyYWMluxs39MJgmSWI7LQ9Yk5/5yyWaSc1cdcHn7AktjuLk4ZJAOaFyFDBNWYpmLsG8N84Hh3KUxy3e+x6o+4l5RgEuwiaKqCzbGI8xiTlbVTNbWSEVIkpzxaILFcv3217h5/atU5SFKbFvHQKQB8fRNdFpasX4lZCIJENXKGAGCp3taPqBHPYQJTpQ6Aay0TtFeCIpTYRkrf2zH6cYduiKn0YHWf9S/JfV0V0VFZb1Jvb11Hq0T5ssF+/sPfKprsaL2NQRJswE6sdSmxtgK2/hBVRUNVe3r7RrxLK3SKdpqmkZjG190BKfbpV18XUGN692oMY48G5HJgDwdMMgHHM4LJtOpX4dsVbB3cIS1hiTLKPb2WBYFSimqsvKdGaIs8uGQRPyqDjrNGKUJpjHYTBhPZz6TSjmUdVx+6ilG4wlVWbIxm7KxuclgMGR3Z4eN8YhE5zjbsH+wz3Q68fG8Fm7dusXxfM6l85e4dfsG712/xngyIR+NEYtP12XA4dEeaZL6xCd82nQmwmrVMMhyGmMpVwXT0YTJ0C+C+a17t7i7s4MLPNiqWHJ0lIBtQir2AYtQXlPpNKRHQz7wa8gtlgvW6w2G4yG7u7sMBjnjYcrm+hQtQllVvrhQ01DWNVVd4Zzn1IfDEVmeQq3ItUbHiqVOtaF9zloaY8M74SNQyqZEVgkWn+lYmwZjHC9fuPCRBurHJS4speOsBWNAGkx4kbXzlJQSjXM+HZfEW7FK65aHjXHKUd/1iRX9a/Sv6LnAeF3rhMNFzoNbOyQC+XSNbJiTXnqasal5zx3z2GNP8WOzNXZ336VYTTinVhTskuwfMCwNVbVHkmu2i5LSwTBR1M4wSBLG2QDrDEmSMEkHLOuSJM1IdcLe8SIssbNkWdfk03XSJGE+TDg0josYTOqYm5pjBcbByhlqbbiihtTXD7jx4D2acsFsNMUBy7IkyXOMg8Q6VOapKJUJIoZ3b32T+3e+y3JxByWxeL6OvYJPmRG6JAbTVgPrQNJn+Sl8wo2LscQBVT0w9yIT+nHWreobKrqFbQohkwGzdI1JPmRlGi5ffJ7bD27w4PgmJpzRWy6dU61jkPrRDY+WR4LufFUwX5ZYUQxHU8bjCaPJDFGO/d0dVvO5X3xRZySpjxul1jRlQ1M11HVDVTS+qpi1VNToVKFU4rUgEZyBpgRT4+tYAoimsQ5pFCpRpHoEqaFeGmplGQxTytqQJgnYAmcMTV1ztJizXC5YrpaYpsY5R9OE+r9pKKZjHcPBgNFgQFMV5GmCNYaqqXwSiNZsnz/HcDj2S7JoRVGWPHb1Kue2t8nznDwdIE7Ih0N2d/dwpmZ7+xx5nuNQzDZgMF3j3p33ePedd5itrTMaTVgWC0xdY4xFuQYbPP5+CRiLcX45n6oqSbLUm7NViQFKY1hVFdZUvHvrFvP5nDRLGA1HqCTDmQZnDfP5wiem4CvYLldLn5yow0yvNInWvhhR5kPOZrMpSinKusGYYCoZD9RaC4nWvhqT9UXotWgft60zkkT5kDFxUDsfj21KJEnRaUJd10ixwtZLDBZjXeBNQz77JyzR2eWz82qsaHwthfAyOr/um1iLdQqN57wdvi8JxVfUCUIXOo3IS8cfxut6Hrlqch7sFRzZhvrcJaa24ejSjK3qkDtPzLA4poOKXz24xRvXvsS2ZCzTS7w8VGwsDVVVkWCxTUaKxmlIB0OWZeEpQa2o6oY8zzlaLVAoUqUpVgVa686qMpbjgz3cMGfv5orsasLg3Te59NglZrMJQ6XIE83hasm1/T2+e+sm33vjm5ijBqkVa9MBpipZn4yYDMbUzjAZTsnGE5I852i+w723vsNqeQ9xDXH5nJZDbXusi16KoOrhNXKlrqMG2gQO157HiwqarFes2ufRErz9h+K154SUqVtne77JleFlnnjxNV568WfYP9rl/vw637j+Jd5+75scFbutRts6ReNJJWrfj5ZHgu7xsmD/aM7R8YKqMaynKUmW0phtmqZhsZhTG8MoS0jTFGvxq+pawdSWurSURUPVGEpjaYDM+sLQxoVUSQumAls7UvFLXsdamMZ4xw3OIC4nyYTxYERdNSyXSxaFoSoKVsWSqiywTYmWUBZPi39BmhqtNYlOMaYhy1K0aB/rmmgfyC/45WbSxBdtd57XVHmGqQ1PP/0065tbrIqSm++9yadee51z589RVT5UTilhY2MTcY7bt2/yzTe+w/Mvv85zz7/IdDzhG1/7CmmWMktmOOcoVkuUbcBWZGszEp1xtFywc3CATjUY5UtpBi21aRoSnVLWNVmSkCSeU6/KmiRpyERTW8vB/j7GOVbFCiUqhOwNQCfoNCFR2i8tZCrKumRnd4+1zTV293cZj3PGowyVaA9CrmFVVtSVp4/qxlBVJatihWksShISnfgaxxpqU/nCPo2lKldYWWL9coRYn3mAw+LCEil+hYb0Qwfoxy+uB7wGYxv62qhf7Tcubx6LWjtEO7rVB3xZQK+h+bP2HTgn6QWLs75Qkakdd27ts3Os0MmQaaLZmmxw+2jJk+tbqN0FS+tIzA6L6oAni4oNV1O426jVgEs6ZV+Bdgk6myBSkmmLVY7alVRl6WmeRGMbYZRtUVcllStJVULVmF7NB8cg1VQ0sGq4eesadaq59SCDvT1q27DX1KRK8879W+y9dx23qNhQGedm60zTMdlonaFKGA0mJHnGYLSGsQ137r2LVCs2Ni+ydf4KZV2jUaDBiq8rYm2FaQqausA0JX7lDQOujMa+xwvxYXcti+6igysWIo99Lr2fjmro2AEXUFORJwPODS8hu4ob37rGpc88xitP/iTnNy6wMbvAE+4lfvyl38e9+T2+8+6X+M6Nr/L2zTcomjmNrX3FvLZa3/cZvVCtKnb3Drlz9x67B3vMZlOGgyHDwZjJeJ3B8IC6PkK0rwiGczRNTVX6rKa6slSVpahqCtPQODBO0wTNyye0OVzjO8CHkfmVeyXRWKXRSQ4IzirWZusMsxw7CEsDLQ4oi4K6rrzGFcovijWMh2PMYoVCSIcjyqIg0d7h0zRNWD7dkqgEnSRgDIeHh57QUIokTRHTcPHiZTa2ziFK8/Zb3+KLv/wLZMrx7LMvMZ5tgGiG4xFJknHr2pt8641v8ZWvfY3tc+eZjUdsnzvPa69/imvXruOAe3duUdYlpiypV3O01jx55SqD4RhrHMdlgcniMxRGwxHWGMQ68iynKpdMZzOaquR4McfZBmMU1kGDD9UToAzLwNcDg0o01vpymVk+oMozjHNUzqGHaZt1OF8ekyYJo2EO1jtIj+aH1GWNMVAUJaaqyLTCOo3Wio7H8n7bJtSmRQnG1n4p+6YhyTJfOEkpX4rTgdL5hw7Qj1uithI1T2Ut4tlnnPOlBJULqcDB+RXz+H2IUagtrISTlcfaK7Q/zoUkItN4zbpJgIzZ5oTKapJhysHGhN3mHvubcH3/FnJ4n2b4GJ/JRxykM4qqYJJoGiBXKXmiqYAqccwP77Bc3Kcs5iEqIsQEW6/1lcPLjDefxjhDVRUo4zV4pZTPmKsdSiWMkoT5cs696+9g79+hcAW1a7BO0M5gF3OSowMu50O0aLaH21ibkugB49EE0SnZeJ3PvfRZhumYqrEMhgNs7SNEnNKgFaIgwZIkjkwcq6rgYHXEfHFE3aw4Ot7l/u67PNh/j2q5R7nYoWkW6FbDNW1EQfzdgisnnWUxQcIFZU9ZjTi/7NJj60/y+OhJrt14m43JFi+98gqr/XvcqQ3pcIokmjTNWFfn+akX/y5+6uWfR1LDvDzizt4t3rz2Tb7z7te48eC71Lb+0DH3SNA1xrCzd8TNm3e4+8Rd1mdT1OYWiJCkKePJ1JuP+HjHqi4oVnPvnW98vYGqsVS1o6odjSRYSaiMxgKJEpQ4tIMUqLTBNZAPB9ROqGqHKWtGwxHrkwl5muFrMTgOj44xTc3R8SFVVTLMB1RFSdNUrG9usiwqjuYLtF+oi0QpEu1XxI0ViJJ04J2BTiiLgpjqN5nMfChVlnPu3DlfaS3L2Tp/iaKo+W//u/+aZ5/6Fq9/5ifIhmNGs3W+8Y2v8jf/xl/l3RvXOXfuMuPRBKUSqqpkbW2TS5cqdh/ssrmxwXe/9wbFaoFxBmcM+4eHTKczNja3aXA+isHattiG1YrlcuHDxqxlsViQZikjJtR1CdS+2pqzNFVFohRlcA751TaytsxkYxvEJRR1wbCZ8ODBDq6peLD7gM21DUZDH0KWaIVgGQ1Tv2xS3dDUNVgfW+oXYvRh1UolaGsx+JKfiQxBKVSSISohSRIG2YA0zUCExoRU8CT70AH6gxIb2i9iUM57q511oP2Lq5Tysbwmal3dT7vir/RVqb6EKB/beEddyFS7v3vErf2KbGLIx+uM50dU53MuG8V0fsj28Q6DpkGVh6i64PHBgJXOKGrDYVMxTsdkw5T93Xe5e+c2mFXrBPIOIb8asac3LfPFe7C+hVx4Adm7gz48RlmHCuBsmwY8HjIRRbk8olruMVAwE0hESESo6gKT5oyUIssmlMYwyFPybMyydBgHj022ePPmEcM1x+Y44RvffQDZAKs1pAOSxq9usr29Adoy0pqRmnJx8wLFumUliu3G8bwrMU0NquRg7yZv3fwyu/e+zc6dNzD1AuVqerXCvBIQuNoYfSBRq5W4jGbCWr7Bp577HGvjKTfefosb377Ge2+9x+/43M/y5POvcu7KYxzsztnfecD+zh5F2ZDnA8braxweHPPiqy9yfusSVx6/zOee/Dzmdxu++eYX+cq3f/VDx9qH1NOF5aLgwf4ee7sP2N9d96v25jlKHIPBkPF4TLlaUVcFq9WSsq6919v55XeyFKra8x2JysAlmMaHXDQiaO01CFGGPM8RoCgMs/VtZlmGdeCsZTKaMcpTbFOzsziiLCsW8wV16aMTdvd2UQj5aEI+HHO0WGGbhjTNaBpLmiSUhV9ccpoPyLKE4WhEsVwhtmE69umpw4EP4E+SjCtXLpNlOTrRJNmAtdkazz3/Al//+t/iV7/0Rb79nW/z41/4ad59d8a1t7/Le7dvMh5PePmV19g+f5HhyPPCMhhwXvl6Bw92bpMPhsyXC0AzGo8xVUlV1xwvFtTWUpaeHkizjFRn1NaR57mv62A9jX90fEyifV3fVbVEiaJpGpqmxokiUQmjydiDt7Wegx0OGY5GvjhPmpOIxqxqHpS77O/sszabMZ1OUSKMRwOmo5xdEawx3hrAkSlfFyNRUIfsH1/PRaibsNKqaD/AJcM57UOyjMPqUBrRSKhuoB85/H4Q0i3q6CkGE4r+KAeoBBPLXkb11XjSxKg+8FrEGboVYvthTCGW3VaYWF/ZGIyxlIuGzekm+XDErnak52aslgX3H8x54fwaPzk8z6E6YgDYRNMYR64TVKZZknLU7HNw9x3q8shzpDENOVxXRMVqhQF0DEd33iAZzXDjNQbLggyDrn3ta1yocewEnCHBkShfupRQFWKkE+YohpMR86KgMZYkydg/XnKwu8fxwrK1+Ri3d7/F9OJjJLccuIZbZshyMGRgFKuy5MrGOcphQtM0bFcVW/mAl7a3eWt1QIWwlQw4L8I9I7gkY5AMGWys8dObL7E5sXzz3V/lq9/6a9y5/iUod3y746IQvcSImAno/XKCOMWnnv48f/dP/cM8deUV3nr7qySLjPcOr/NgsMuly1d9vLaD6dY6q2LFe/d3cMmAq1vb6DxjPM44fHAXWxdkA83iYJ9UJ1yQC/x9P/mPfuiYezTo4pd9KYr/P3P/9avbmqX3Yb83zPjFFXc++VSdVKkz2WR3k2IwQYsgZcM2CRgSbMNwuPDf4AvDvhUN+MI3hg0YtiHQtC1YhEjJlJod2Gx2dXV3pRN3Dit/aaY3+uKda59TTak2IZmunoW9T521NvZZ31rzG3O8YzzP70lQ7r5r6dodKfBOkGtFWVZYa+h2LT44lC6oJznOWIbBIlWKBkmJvyl+J47RL5mQSJESKapCo8cOajqZoXWODynNty4ysiwnyzSdtbjBYYaBq9UK791I43LkZc0kL1IhdpYszwGBUJGha7HWUsgcmWVkOkPINL9M6bt7OJMWfs47Dm4cMt/bQwiNGre9Rzdu8XO/8OcQIvL08X26ZsfFyTNu3Sso8oLbt17jna99wHsffot6usB6l2Rq1tF1PUWRwCLGGPb2UmKwCB5vB9quZdu2WJeUHpnOKOqa3XZLpgsEAufSwm+73dB3qTDrIntpUsl0ipXO8oJy1BHrLMnrYvB4Ewl5hhSKXGgyBNN6hg+erl1z2p/R9wNFXdL0HdtWkWeSxXRGPxicDZRZNsY2KfAe5yQ2S0u2wTiQPi3RhEJ4hZfgTMCMQY1x1MJKqdD/Gpvef9NXSg1I9LUEMk9xO1H6xHSWMrnU8C9TgsOodLiOpY8xElVA+PBlYOXLK+JDGilcF900Eoq0Ls1fu+hQR3O06DGbDZOwYWgrjheH3JxmmODpjWNjTDp1TSqG9gkXJ58RsaMC4Ev1xPXXdL0kup6HpD7PYx/8Edndj+jnC2yzpUKgnEfJUXjlHIj0YI0uoEetrAsOEwXGedx2R0Ty9NkpzarhonX4fMnh4W1Ou46rVcM0RkymaXRBqQxmfcns6CZXewtWpSZzhmormGvFbw+WP15dcpznfFBVbF3HVmc8cQ7ZBT4MBQudc3/wNHnJG2/8Om/d/RU+fvTb/NZv/Z/oTj8BDJHIKO//CZtCeu5ECpHxrXs/z3F5lyqbc3P/Nbr5OZ9dfJ+7t+7yznvvUWjN6sljsqrCdltc39K5nkfO8tE3PuDt997GDgN5VVNO62SwIkL02ObVEKefHsEeAzLyJVU/gneevmtTqoMg6WlFAl4XRUldF8QoGfqOi8tLMBadpewsnSV6UoggpKDIRx1KEAgtybOcup7Sm8TFFSpJjNZNRyaHlLsVAh6BC0nC1HVNuomdTU/7EBlMT4iehL6URGtwzqK0YFpPvnRCxaT1LYoiKSpkwhYWeYZSEtP1IDTtrmEyXzLb2+fdr73P3t4ez548oNtumM6mPH/+lIPDYz744Nu8/tbbLPePuFqt2G6u0Ery+NFD2u2Ww+NDdF4QpSJTOdOqRsSAdZrtbsvgDFKlZAitNaYfAMGu2XJcV+PcMXVeznmUhjD06Y3iA0LmZKNtuSjLVEyQFOVIidPJHDE4Czi6rkVKTVYUVPUeMaaF59X5GT44JmVBXRVcbLfJieMcVZaTa02RZ5i6pMoTzJ0YEyw+BsgcdTVFe49zIKLBZQJn08MBl+bM8mfvAuaagRqug3tf2jxTxyeF+FL6dr07A6JNR9YY0rw8hICU/iWk/eXfD0Sf4oCu5XQxOAhQZhkiz3BaMIsatx34elkTq4xSSbZ+YCEylA9MdEnQiiGXXG0fsz79ZBxfXlOJvwSPxygIIzsAKVG6JM8n1PWC6eyAyWyfgxtvks+O+dGjh5w9+YLd+hxtXMosCw6Ew0WHVJJhPVBlRUrNlpKrqxVXl2ts03O13hHyKfmteyyOjoizgq+98TWeW89W5fhgwUecLumFwGaS3raUVU6O4CRaTmWgnk34hWnJ07NTfj8uWUzmHOn0gNNCcNUYzqeSnYDVRcM7k4LXZlPef+cvsVjc4T/5x3+fy6e/zygTTyzkaxIY1woGeP34Dd649RHdZkebnyF2Hfd/+H1Onj/l3q030bkiPcoAHwAAhUpJREFUn05pm4Gmt1TTBX/rv/vvkNVTfG/QuaZrG8o8vR+dDSxv3sANPSJ46vrVe4qfWnRDjPgYRtzgaJX0ybZobUSpfJzrSfKyoCgmVOUshUc2O5q+YbAJ66ZCQOnrKIN0LC3yHKzAB0lZ5FRFhZRQ5AoXDNYN9P2OGBV1UUKMeBdwAabzBW3bslqvkFJR1SWT+SwxEjJJbBJpX0qBH8cb9WRKVuRpYTJKp8Ro2B76LikviNy+dYeqrJFKMZnMqCaz9NCxljyvuPv6m+wf7GP7Ducs9954O/F3pwuyoqLvWspMMr1xzHa75cbxDYrXX0dJ2HtyyLNnL3BuwLuSLEsPFik1BE9eF7R9R1ZN2XYtZZaPEpp09Gt2DZN6Rt92MGoHsyxpmcu8JCsqAOyoytBKp/mrSoVeCE1V5AilcN7RNluq6MnyAofHBstqs8ZEz6PTjrJQ5Hme5nkyS1rdLGNW1UyqnEmZk2fZeDyVuBjSA7UaKMs6Lf9sRKsBLZMtnBBeal1/1leCiV93u2H82NgnidTRvjxxp3czMcYU0+7SkkqEZPb4V7rc651OcEmOFlJSsBx3ByjoMJiqwPUt0Xs+PHyNpRbsQgLinzcbCOnh2euMt7/zqxxf3uP86LVk4LA9g+nRqkBLPe5bKqaTvXTvVjXTyZJJvQCR42OK33IhcLprOb79Pq0+IKzXdBfPGLZn2PaS1dkLuvUZ/W5D1ydZZr9rEErgMkUsa5SqyA6P6AuNW5b084pqMeO7zz+hn+4xP7hNmU1wJnJeLxDzKe/WJQ9PT1nXOavlEW/VBbOz5/zIbPkuOcs7dwlty4+vVry/KPlGMeVHfmA3VcydRdmBGHIenzfspCQPgUX1Ln/xN/7n/Mf/0f+a7vL7iBheavR+QqoXI8t6j/3FDfbnB4nyJy3WOG7feIdf/fW/ChQ0m4bNdsdmvSHPCoyHm6+/Rj2bgHecnz8nny1RRYUWSUDQri85e/QFSipuvP+tn3rP/dSiG8fj4ND1bHcN/dDh3AStJcPQoZQZI14iZVlTz2ZMqwXRhyTPyjRCOpR0BBlA+hGuopFKUZUCWdZ468l1RTdqC5Uu8dZRFhVRCLxL7qXBePzoIptNp2zrmr39JQqBsT5pYKUimJgUFWOxlVKnGbKPCJUhhaMqC2KEMi8Zuo4gNSjFcr7gjTffYLF/wHa9YbtdI6QkL0qUynBuABfJdUG5qMdFkiIS0gPBWrRSKFngbEq10pmm6zsWsxnvvPU2jx48ZGi3iNiz3V0XoDR+8d7jzEDft5iuI9caMUZ0Awz9kLp4lYp0VZboTDKfzqmrCVrlhOixdmAwZnzqe4IdsDFghUZlGULnVGVFWZZpaSbBGUcQghgV2y7JBJvBIkSH847eDlRZyomrioJZXVHnBZnOk1FCKaJIrAmlk5wsLwrKvCRXGVrnFFqn5aV3yeb9M75iCEQhkTIQgkhY0JD8/IGQ9M8xEAhJoSP19QQ4SeCiRMSUDSeleul4+lISmnCNIThiCLwM7oyRQiaLdFXUSF2QVzkr31HLgj2VsTMtcvz5D84jb9/mtbe/yeztIrEvBPTO4tzo3lJ61FrHJJGMDsbT03nX4UO6z5q+ZeM6miA43W4JMuepCyhVsRsE2iv6wfPs4VM8DlllxCInP36DLM9wWIqjm8z2bjMn4+mTj1H7JfJ2zVv33uXZFw94VvQMB5Gv3XqN14eC//Pn38PlRzyY3OU73/yIixfP+NRfcd4X7B3t81YY+Nj3nLvI3z04oKi2/EhLtmXkl4sZL9YbTjx8VM5otaKJkSxGDqVkbRzT/ff4uV/7H/E7/+h/SezO02n6J2RcAS1zjha3kT4mrTyCy9Nzzk8v+eibv8ytd96n2zUMg+fw6JA7d+8SpWKzuuTJj/+Y/cN9QoDLkxOyTUu1t0ez3vD4/hc8+PxTFLBc7vFrr7jnXlF0029d17NebWmajvnc4L2k7waCd2mZEyWqKsjzgizP8T6gtETp9GKdM9hoiCKJ64UuiOSYoUVrQaZrApDnGV3fonVA6oLdmDsGAtsZmr4lzzK88+w2G3KtWC6WrNdbbLQEH8hkAun41mO8Q4kcH9Ii6JogVZUTyrpm6DuMdQzGUtUFi719PvrgQ/YPjlivN+N8NEuZbzFSFJEoNVLE8aio0EWRJChCptxOoVPXbC1Nu8NYS1GU4ykhcPf2HX7913+dP/7ed+l2V1jTExCUswXr5jnepu6v79okWmeWQEIqJW/oTLHZNjhnyLViUpXUVU09nTGZ7bNY7DMpcopMsdluePb8EU3f4+N1mgXgI1Fdx8gkc4sSkjIvaUzHbDKh8YaLJjkPvbfkWYFzlvVmg5TJFptpTZEV5CpLqD6dkSlNLpMBJtOpqxIqaV0zpZLNWCgCKS/uZ32FmPLr0uknJnmVvB4XpMxiYkSEL2cL8aUhdVQIBPESiPRS4n+tbCC8tBi/TGge5606k2ycx2wb3nv9kHlRYsyAiYHVepuisYQEIWmdZ8glUUcGIMSMJ4MhVwVZDsMYx2TRGAFtbygEGKnpBosWGUMucS7QSMH9rmdlWvrOsOt6FgXE1hCV4cmLz+m3J8g7B+gIMY9M791DHdxmOj/iZpXThcC56XD1nJ9//30ePn7Iadvxe6cP+M4H3+Sm7fjBcMrO7tA3b/KXq6/zJ27L1+YZ/72bezxY5vwfLr/gG8sj7uia91TJ//X0Aetc8QPh+Y2bN2jOnvDEeF6Pnl88OuJf9A3nWcFtofCtYakklRacDw4TBK/d/gUefv2v8eSP/gOIDhVfThUQCN668XXePPw6fWsQsiXYnu/9iz9gsrzNYD2mN9x68w2UlIgQaNcr1hdPKOua1clTfvSHv8fgNd/4xV/F6Yyr8wukEhzdvcXBnZtMZzOsGV55z71CvZC+6n4wXK7WrNYblosFVVngHPTDgLcbdF4yL2uUTBvuGBzBuZSO6wxNt8EGhxCCLCsRsSDPJSHkxJggGMZYbIj4EIlOYQczFpkcKQTBB4ILnK8usN4yyTXWWdp2QOsc7RxKZczmU8xgadvduL1Nc2StMvqhx3nPdDYhkxonBE0/kOcF9WTKt771Hb717W8jhMS6ZMDYbbcJZakkfR/SEqos0Eqn7lRJ7PjmsNbgrMXaAWccWiosis1mA8B0UlNWFR999CH37t3j93/vn/Po0RdcnJ8j8oJ6vmAYLFlRsV6vmNST5AaTSXgfRkmYIsn3Z7MZZZFmuFU5SU67yYTl3g0IlunykKKsePjoPsYa3KhNFjK51awZGO3/zKcTgnXokFB+h/M9nHes24b1bk1nejIkk7JmsBZrHZ2xQIsk6bQzIZFSkJESiZPRZRS0i7TguH4TBNIp6md+XVvPGTtcKcaRwzW9dVxI+TAupuzY3SpUlGPs1FfnqNcypQSdh+uCG8aZ63XhBakii2nFbG9JXmiW1YQiL+naHUJJ0AWBROayznG52fCH2xP+8s13aL0gKwQ2wGaw6Cx9DT3glMDpknU/cOYs07xiazvc0HERPffbNdNJyTST9OwI3YpP7/+QGC2HvkdVUFWHuBhwdcmdu2+wjoGrwyXxxj3+G69/i/2y4IfrZzzZrHhLHxCyisvtI7zyfLY95W/e+YDff7HmXwwbvn/+iP/ZvQ/54vEDvhgG7tueD5b7/Pdj4Mr2mDig53P+3N6U82AQynJcRP6927f4nl6BKMmE5ufI+YOmwciMX9tbcoYlQ1FjCL1BqZqvffRv8+SL3yVu7ifI+XjikCLjw9d/mXff/WXqoqYoSk6eXnH7rY/49b/997B9y2wxZ7KYY7oBN5ikabc9u/U5Ly7P+OGDBwg9RX/+GSJ4rlbnPH/ymIvzU07PzwhA17b8W//tv/tTb7lXFN3kcQ7WcXm54uzsgr3FHkLIl+GLfdcjjaea2pQF5tMR25qU7OBspO8Gejugs5Jh2BGnmiybI8UEYk3TOvre0BsDEYxJXbSLAW+3KTstOLSUNLstfdewEZGh61BaUZclB8tFSsAFzq7O0UIlwE7wFFmOxTL0gTzLUFIw2AHrPLP5lL3lPm+//Q4ffeMjhBB0I9c2zwvKqqLvBzbrNX3fk+U5VVUjSJHqUSrM0JNnOd5Z+j6lalhjExhGqrTpR7Db7XDWMJvPODo84q/89b/Bb/3mf8bvXf4W1rqkUpA5XbtDaw1C4ryjrmu6vhkjXxjldzLpm5ViPptR1jOm0ymL+TLNf5VC65z9g5v0Q8/Z+SndMIzzY4EWSRZjTU+WadrBEpxJ9mY9LkkRyBCTtCw4ghRYY9LcdlzSuZiUC8YPDGPoogjiy4XUV6LEGQtY+kck/hnodK8jNa+lYyEEpEq4FRkSuElc/+96UUXqdgMJPypE+p6OZ9oxyjuBksWYtfUT4fXjkDFXlsFYJlnJjcUebvDs2pZmvSYGC1IgRvt2DJFwueKff/IJ3z64xd0RHBNkgZGCjUsIVJUFpFLY3qDykq8Xcz67uOSxMKha4YeBdw73+N6TH6O8o1A5mT1ncqzoT1dsomPx2tusVhdY0RIPFuT33uRmkdEVgVmVY3drfvDklMa33PSRGsdsc8YbpkdJyR2ucE8+Yc9sKXM4zhbUTcM8L5jNJzzpewYLb9YH/P72BX/iN/zBmeV/vLjNf7h6wu/3l3zuLf/uwU1ubx2dMEjd8p29GWEqibIgRJj0kQfDlg90RZiWxOi5yVvce+cv8vi7TwjYlwqOg9kdvvbmL1BWU4btGqLFmo7Fcsn+zWN2F+eE4JFEilGaamyg6Xo+++QL2h7uvPYuH3/2Gf/P/9f/g2lVMSlKjo6PuWoaHp28IEYSt+QV108fLwBEgfeB1WbLyekFe8s5WguKPEfLjDyrCDLdVsE6vLAYM4xRPgqtSkLQrNcrsixy6+YbTOvDZKkMAqXSvFYC3jr6oU/SmiDGhAHDMPQwFv/NdoU1ye67nM9YzNKSq+87RIzsNltsP6R49BBHNYJE6YIQ0w3pYkQjEwOgM8xfW/CLv/wruKFnvd2OoBwFEk5PTogxMnR9YiM4R5QpFVWPm/9u6JlUE5SAZtdQlGk0kusMmedjlpxkNp2kYkqC/Nw8PuTd99/nD//ou2y2DUEKtNQUeYEtCrz3yVVmx6OjdyDT+MH7yG67pcgy2q4nK2YIkWGGgcz5ZGuOCXJzcHiTXbPFGPNSNO+ReGuRKkvfp+CxLhC8Q/hkIb612E96UmfxIdANPc5b3MhQkJDoTeF6/p+SnpNm8logGrjGlMSx2/uS7fSzn+kCXxobxq43hkgUgShTh8o1jyFGog/j99CPsejwpS73WrQlxmUOvCy04k8VXQFRGozdYr2hVCU6c4S4w2cZIPGjIsS5JE8rmh1Xzx7zv//D3+bf/fBb7FUVUgSOpyVzGzhxcKuc8P3L59ye77Fxgc+257x3Y4/D9SU/MFfcWM5wXc9rU8F2teLk6SWFmnFDLPjEPCYUGXkueeuN1/msv6Re7HND5UycoNquOAo7fDxje/Ec6wdyqdjqAr1t2dcOpWBZGszVOa+5nrgquDlf0Z1fMYuB7WbKennEa7NjhiC4MANfLyruUaECeF0yzTw7Ipet4crM+Qdmxb2q539SFsz6BpcPFHrCzWmJKx2DDRQxgyhZyBnf+Pbf5smP/z/E3VMQkMuKf+vb/01u7t9k9ewhq+dPOH3xnLZz/Nrf/Hfomx3ODGRa0e62ZFlBCIGmbVgc3eE7v36Lq8tTPvmT77G/t5eAXWj+6l/7G3z9mx/y3T/4Hf63f//fZ9s0HMz3X3m/vWKmG7lOzrTGcLVbcblOPv295R6F1shYIgpNUWQIEfHOJg5CcOQ6o8prMjVByxYtK7wV4NNbcWs7aBqSVF6Nmt3IbrfBuoBUGu8tdugx1mDNgDUWEInFG2G33VFUBUqqVLCdRWcZRV6waRqKoqQqS6IPWGXItCb6iNACOxgODw/5c7/6q1RVwXro6YxhtVrhrKGaTBhM+u96F0DIhEq0SZ7mvEMXOSKC7QfyLCPEiI4JoK4miqFtUyijlARXIipJiOmBstlsuXPnDu9/8A3+5R/8Ac4ajLf44DHWjfJKSds0aKXorUmwlRDpbY8UBcZa2q6lLBsGM0G1QFkjiAzBIZhQVhV1WWGHgfVul1QNoqCu51hncdYym8xQtaJtO9quSfNkrVjmFRu5wUuJLCpaq7BDk47TRIS/3shzXWOTTOfl0S7+qdo68mXTWv9foyT+m72+hJfEMQ81ptlsBBFksvem+UKSMKCuI2Kv/8GXxfZ6UDHOdL90JvDVb0KKhgEhLHWWRmVeOi63K642qwQjYYQLybTkG/qBLFNMTp6xiY7/3a7jG/deZ7acUMWMd/b28G3L2jfcVJIfbC/Zzwtu5o4/unxGldW8m035z5894tJK7rJkc36fdndJE7fcLJcUsxlIuFtMuKVKBltR95aD0+e4TYNcnbCyls5GLs7OsdZyFiOPULTOIeqC+WxCtTwAqdFVhvaG0kVWmy1T7xFXOXq6h9+/y0Ndsl8K6smE42KP6ATHcSDXgj0Bc5sW57kyFFHzcLulouK3myvulZ6/UizZJxmbsl7yebMlz0qOb73Bwb1vc/6jZxA9t+a3eOfOB3QXl5x+8TkxQFnNufnaDcDTrq9wfUsxW7x0rCotmUwntL3F9B1CwGJ/nzeE4vT0nMvLS67OT/iTf7ljdXHBL/3SL3F+cUldz195z71SpxsjqEygKwhywLiGpl2R5xI1WaBVSnTQUifdmvdYk5IbiqJgPp9y2O3Rm4a+d5ih5cHDS2bTBVVVQxAEkfR4Ao2IntmspGl7drsd26Zh6IeXqgApArOqZDqp0VrjfUArhRk6urZF6gyhkiNKSZ30xFKgVDY6vBSEwHa7xYfIhx99mzfffIvdbsswpIj1YiR8bVbrNGNG0LQtRVHQmWFEUKb3oJYqMQlcYOe31NMZ/bDBjF26Iy3FppMJ/TAkpgFberOgntTcPD7i137jL/Pp5/c5O3lOFEmhoEbeqo8O5xwx6jGNIME+lNSEmGhMQkqstexWF8iZYzqZYvoGZ3v0KM1azmZpwec8m90GGxIwvqymOO/Y9R1HB/soZDJr9C1VOUEJyUE9wwVPs9vhQ4qfH2wC3FzP/YnXR/TRFvRSL3W967+G3sV/tQ7/DK+fCC0cI3miDGk0IOMIqE+mh2sRaKJLpDj5keVD5MsAlziu2l4uzXhZnV/+t1Kt98jY0qyfM3vtHYzKGDJNkD7tMIKnt5YgYF4VrHvDxLVMTs7YtD0Pui33leSdo3v8g0cf88HiFj8YNvzy7Bb/YvOcrsj5i/U+v716Rh8yfjmb8nR3yabvUYNk4iMXITIPluXQcscknvCkXRGDgvPnrHdbmnZguFxzdX6J6TrcYAnOvfz5C0hGIxFRWvFFXVNMKiZHexzcOKY+vokpSlxZUISMzAa6zrNygbzWiKrCTw95qiui8tSVZr+cJS53dHyYWw58YC/3dBgEPevBsQsVV16yiZZ3ygnLoiBzEmMy3v/mX+c///S3KWzD+/e+wf58n1IUZO9Iogvc+toH5FXJ6uQ5q7MXZCqdMKVKnoMwApC6ZkfbJkTq/tEt8nLKYAPOBYx3+NWa9dUGrXJyXTArJ6+8514xXkgOsWqSsbdXMJvnqDKCsjjfY1yBVhkq5HhrsFybJ7rxSKQpi5yD/QXG9+x2azrToYtAZ1e40FPkJVlWI9GJ02A8xtjE4HXpzTuYgegMgiyFT4q07GjbBiEEbedSnHpvKOr0oq2z5EWOD+kbJEV4KWXyMWWP5XnBrTu3yYucbEjOLjsMNF3Hrm2SzdgYVJ4RRQK4+6EnLwuqoqLpOrKiIMZIWZZs1qskbesGhJIYb6mLnKArvBDY8cGRlTkieiZ1TZ5l1HWBUpJu6Kmq8uXDK8aAMQaBwASbbgbnsNawmM3ouxY/Fneje7I8o+t2BGfRWhOCZ7fbEKLAIdFFTW5SKoVxBmM6ohBUZY1CMFjP4d4e1lvatqHru/SgEop5MUHojHZoac0w1tkIzuOMeVlc4vXT6LqsvgyuEqR0kH81gfVnfY2nfb7ahV9TxxBJk/vS1ivGR0gMY0Kz/MojZUw8i4msJr7SyV+rd69zJMR4ClDS0HZn/OHTx8Q+wGAQziBFTJljWhFHrOck02jnaZodhz6wW2/52nJGszpH5DnmoKMxOy52PdrvEEqhOs9+c4ENgglbyrMzQrvjIGZk2zWuaVj4SBUHiotz1rsVz3c9D3c9F+eXOBtAZ2Q6JxYzQjFHegdDT3QD0VlwnmAdeI8PgZ1Zs11tuHp+ysX0MRc3bjA53KM62Ge5v6Q6iKw7Tw/ULqMeBore88IYWhEQZUaczHlGwU4EqlIzq6dkk8jjYDkuPEf5HF1FHvuGR7GFeIN5hL2yhkpw7+5HFIs7HHRX/MpHf4H95QH91RrTrAjeY01DPUuL6rNnT1kuDyjKCogpzbieEiLoomCvqrDWUk2mzJf7HB7f5OzkhKIs2FxeMu8HIoL5ZDqO1X769QobcETlMJnlLJcT9vcrZvOc6d6E5XRJJiqsC1hnaNsduc4xztD17cgv0Mm+qzPKMmPwGWiPDxKlCiCDoLEudYttNxCDwNi0UMvyAiUlmkjfbInBY4cEJm9C+gGbvsNaA9EjpGR/uWS13iC0JtmYPRFB33dInZFlGU3bpq5YKpRWVFXG5Wn6e6azaUqacB5XjhpNn3gIVVkloEuW0/c90UeyLEvmgK/ogY2zKKEphUIoTaYLjOnRmUpJFyM+cXW1IhJ59uw5m82aGP34WtJmXyBSeKWQDENPpiTGDCS6UkZVFqnz8hZnB4Ir0JMpg+mSztcahFSU5QykxFuTrMOZpjU9RAdmIMtydFbQG8O218xnczbbHU3bIEbdZ0SAlMlR511KunAO7SOllFjj0uJSxpGo/2XqaqoyX8qpgNRJ/llYpL0kVl0/JCKCsdsR/isdqnw5mb6OMYiRBIiXYVy1ha88cNISmpfchi9f+1eAZek32xCHLUV1EzWeQIwf6Ieks5ZSUmpNZw24yLwo2TUtldZkq4A57/lwcUBzesXX8pxl1fKgX3GjmhDzS+r1GbmQ5Lpm7/kzyjBQyAy2DWJ7TtsbnvSO89NzNl1DRCNjhlvcII6Bk+QlNhjwkYJAYS1d3+H6Ft+3CGsRxqYiHBKO1YfAbrejaRr004KDG8eEN16D1rDOS9S0IndTdFRs7YaNd4hMMo2RLPRc9FegAjMl2JvucS5XXMYBUZWU0xtcVp42cyynilw5nvicU3YcysjeYsnh7Y+YP/9jal0y7HYYZ9BVydXJKc8/+YTz8jGri3M+/sH3efPtd9CZwtYVRVETVUYxnZFP55h+YCJH16UxOG8pZzVPPv2U3W7DvdfucTs4Xjx7+qcs4P/F1ysdaXkmqCrNbFawWNTMZxP29va4sX8TLWra1tF2W4aueVkAXYSiKGCECCspmNZTVC5w0WJsxPYl1mR0Q0fXbegHS99143E+oIUmKokPDikizjtECKg8AxFp2jR31CJFbAghqCZTIBGysixj13ZJP+kd3TBQypR6m+AkCXB+cvqCZy9OyYoMPwz0u83LMMnbt+9ycnIyHssdziZdcqE12TgjndYlg0lvrqqukDrHR6jrOiUuoCnKgrLIaZqWZrPh1q2brLdb5pMK4y1XqzXej8oH619GcSMlwgdM9LRdy6QsRwVDspLWkymZVuRKoiR4Z+jaHUpAbyzGGzKVI1VGnucEInleYKwhl4reDgw+PayE1NQjX5jgqIuCrm1Spx0DhVJ4KTBDApxkIRKsHS3WDi3EmGeVinMY3UAvi811cQsBFUJCesaffbd7LQ+7voRIKoRIko/FaymZSLhKSdLsCg9RgpcBGdL9l+K8R5nYGJgo/hSoXfwX/Yvw7NafU8yPudqmLlJFTy4UxMAwxmYpnZFLSdPsAEkpBevLFROtUO6Kpt1SlTmXQlENDdOiYh01w26Dl4JTkdFv1vhg2SLxm4Zmsyb6gJYlbnJEtriBCRGjMqJQ5FEwk5qGyDSfUAfPLlgabQhFiZjOUWbADz1x6BBmgK5JyQSJPoNQSR988vwZRmj6ySG+3XBgBw6jpHNwCYRCMRUTZlrgTYqr2s9ychkpreXS7FA4in5ANJb77hGrxZTjo5vMZOQ+LVd+xyzfo1Ald26+B5ePOH/8lL5sufHG27x2701uvmkIQdCuL1lvdxhjuHj+jMOjIxYHh0SR1B/1dIYcfQFyjGvy3tFudlyen/L0+Qt+73f/OT/37W9T5Rl7+3tUk/qV99yrO12hyDJFUeZUVUVVVUymE+bLJXW2xAxwcXnKRd/SNlusC+iyfqlhjVGRKUlZ1WAcg9XstoZ2Z7lWQgbv2G03tG2LEIn0VZSJiTAYgXGG+XSSYs6VJoqAM+mhoETaOBdFQakVInjKoiCOeV2DtYmQFSPOGHrTk2uFkoKu3XL/8y947d5rtJsNfd/StR3nL56luWXfUSiByAsyrTGmp8wKqrrCW8eNWzeQeYHUDqU0aVwsyLMEtS7zDOscXdtgreXhF59TFAXLvX2Ojo958uQZi4ND/vC732MYhmQJDv7aLU4mJM5brLVJxhYCZa7JpMA7h3OGLKtRmSaQYOe73QYlE5siAkKL9EDsWvquRWs9Bmc6XHC0/QBSkZX1KCkTyUmoJFmmcaZPfAxniSqidEZNBO+wMgWtyHH+jFRELYmjvToyFt5RDCxGQpoMARV+9gU3XeIni3+aEoyM6y/HINdgnDQtScwFMY6wgwIhwjXdNUnhRv2ulGMhH0fCScWbLinky5mo787ZPPmXzPbegvyQdnXJpm/w1qS5vBCYvh+5Gcm9uNrscFGgioLT1UXKIWwd66GDGHB64NRYGtORASGmpWwMHmSOkjl7h28ymS7YOs+psWTOopyjjwEdBUrDVoBDEnTGfjVD+MBxUTGYnnPbpvBX61H9DtduCbMF9B0YQ3QDiYdpIARWp0/wec7rv/pXiNMJV65ntWtRWrCUE0ovCM4TCsW8LCl0Rq0yWjNQZDm1qlhkOW3T0tmBaTTs64Jzn7HNIzfnS3YCnvZb7u4f8+Gv/i1uT46xxlMt9lgc3U51YbDM9g6o9w+xZuDZZ1+kIIWyRuUFXW9xxidwkxC0m01aoEtJ1+z43d/8Z3zy+X3y6/FikVJU8uLV1vZX6nSFBJ2lIXNdTphUM4q8Is9L6mpGVaWFTtvs2GzWGOfGBAiNVslrL1VGtB4p9hj6LTIG8kzRD4a27VjvGrz3TKpqXHZlqcDnOYJIJuqXWkcRPbvdjqoomdY1mZa0XYtzKUG07xuMcyAzrEvaYWv6VIicZb1eMZ9OybRmu9nyyScf88abb/HGvTtcnZ+DFGTVhEcPH6DUC24cH1HP5qgsQwlBXRRMqhKXpy5pc3FJ27YppaHQ7LY9zlmsNRhjODk9oW0aqnrG7Rs3+PAb30RlGRcXFyz297l59y7TxWy0iIqxQ5So0Xa63qxGzavH2YEmeJSIFDoj8xEfBC4qCpnwdXmWMRhDlmWYUS+djYGb1jukHa25ZcUwGHLt6bqWvKjHhSQQ0tIuy7JROx2TAcI5fBhwMrA3qRAKYtYQrcJHaBG0QiZm6lhsoxiDA0NAeo+yDgVkwiP/DESwhxHifT2PjoAM4qXyIlnr40/8SkvfceQg5VhgX1osXhbx8aUnJkPkZUJ4agC/7HmvGbhDd0o/XFEdf0h5eBtzek5wK7phoB+6pMwRCYrZDgYfYFJP8J1BOM9cZygvqWOGkhJF6pSnYVx0C8F8PmOxOGJ2cMhsOme3ueJye4XZbhHOYqLHy5gYHXlB7Hv8qFkXWvMsOKSATCveufMu1dkFl82Gbbsh5jlCF0hrEdOQJJr9Dt+swQwwjh62z57y8X/6H/Le3/p7lN/5C6ybFfPTZ8xsi1OCw7Kmror035Gp6FVVSSlARZFIfFIwr0omWlM0Gx5uLsn2FhzrCSf5FrRkWZTsZTlD09M2Pcc6H9VGEe09UmSYsqSaLbhYbXnx9Iy9G3eYHOZkWU7wjE5E6NqGvutQWTJFLZdLVusr3rn3Dh9955sslxPuf/Ijfv93v8u//e/9T3/qPfdKna5UijwvmU2XzGeHlOUcRUbwY2S6lJRlzWS2JLs6pzPrL2/oGPDeJBi5lXTGkWcT+l7iwsBuN7Ba7ei6jmk9oSoKrDWE4OjaFjf0ZBKODvep6joxHWzPZZFxtU4gjvXW4IaB2axGqYyuS4zPMM5ir7uKKCXRB/ouaWrdGKg5nU4pyoJ33v86N2/e4Hd/87dZLObc+KVf5PmzMx49fMB69cMEDa9r9hcztJRsthu2ux3r7e7lmzCENKgz1tK2HSDZ3z/ig4++ybvvvMtsPuHy8pKuHzg6Pub1t9/i8/uPx9lwQVlYjIHemDTqswYzpHm1VBpvDaWQeMDJiPUJA9n1Bq3ql/CZMG7LtVIMbsC7niAUNkSCG7DeUVZT8rLGeIvynr5rUEozneb0gxk5qlkymYiA8KCco8ShdaRSkeW8Qs1yYvA4pdm6wFln2BiPu56AjqMfokc6R64VUxGoRESKPwPd7qi9TcPX9KFAIlSJcS6dxnlxpNMl8hgipjl1vB41jOe2cU59zW+9LtRcF9qYvicAIV7zeAGRI/Oa5d5t9vZvcHz8Ftm3/jwf379P8/Q+24sXDLsdOjqIoKucTOdMZxOUGuHcWVocBx8o8iJJHJF4mUE5RRclxjmirjjZrLm4PGVOejAu8prMOs6HAS81whuarMZlU6LUHNQTlj4gioxoDaebK/5Fuyb6SK01y6rkfLeFeppMO97SDw0hW5JN54ihwfctsd1B32HWV3z/H/4f2WtXbD/6Fn7/BuXukoVt+NAb3icjj5GZkEzLfMz9U3Qmacb36mm6f0LkaugI0bHcaWx2ga8rjmYL1utLNjGyrCbsH92kKOvxh+mI0WFNj2kb1leXPHnyiElRcfvNNyjmC7KyZsQUEkLEDgNKKeazObtd5MaNG3zrvfd572vvc3TrBsEPGJfm3K+6fnrRFanbmc/2mdX7VNmCXFZEL+nbgVy0ZHm6sXKddJ9d1+FDOvpGa+m6gb5P1skir1ivt/TDwGaEyXjnONw/xPl0DCcG8lyxP19Q1xMm9QRrDbum5Wp1yWq9xgwD3g5ptioF+aRKR2bn8c5ifWTXNBRVkpURUvGNSuBcYLvdEIUgLzOIAdMbnj19wawueP3t13n+9DnbzY7Dw31ee+MtdrsdDz7/nM8//5TPP/2Ermnpho5+1OxqlTi2RV4wX+xx5/Zdfv47b/P2W+8yXS7Y7jacX57w+GmaWb/34Qe8+dY77JqW58+e8r0/+gO2m0167VqjXAAVaNqOlLBr0SGm+a5NSb0qz7E+jRRCFjDOY4MgHwFBea4xNh3JohB0u22CpkiVumrVE0Igzyq6IaEvrbOJtPlyE++Z1CUMoJxEOEGlK8gCVR45muRMqwKhFH2Ay84htw3d+YrgxkImx6ISBBrBtM44mmTMSkWV/ezjesRXxhwpaOC6CKb59PV0RAjG2BvG7MHrpdmoe7gu3GO/K6RItuf4ldn19c5OkBJBtCIr9jg4epvD5T1uHr3J4fHrVPUCISTnzcDXvn7E89vvoy8v6XeXyN05CxkZInTOsigL9iYTmrbBDB17izlS1Vw2LauupQuafHFI5xz95Rmr3YaeNWG3TfJPAl3XEKxJjOtqwkxXqL5jtWsQZU2IA5cSLoNHGVjUE27euMtJ09Gajo3wVLpkqipM9FgB1jlEXhFFilAvwxJ7dQ55CX1HHDpCb7n6j/8jdD8Q33ufRkHTOE4uL/lnp0+phOXt5YR3J/u8PdnjcDqnynPyPBl6emPoYqCSmqXOEc5zefaM/Zt3uF0umB1/nVu5Z29WEoOmqKp0MvERZwe2F5dcnJ/SNQ3z2QLnLM1mm4INVI5A4mygbRratiUryrSv8IFoHF//2tscHE64OnlG8I7tdkvX9q+8514JMS/LijqvyFWBHOEe1gR2mxY3QFENyWMvAmU5oa7nDEPH0KcnUtP1+JgyvHZN2og3uy1FDotZTajSXMtbTyYFmc5YLvYoygkIxbrp6LuGy6sLhnZLcA5n+gRd0RKFYDrGpnddAsz0g6VpW2SWo6UkV5LkbdAEDJumQWvFwf4BZVXx6RefMZ1P+PrX3+X41i2Eznj04CGrzYbLyyuOj27w67/xa/yVv/pXMIN5+UNYr1eEEKjrCVVZpYj1skZIyW6zot1c8umP/4Rt1zCfL9k7PKQsSuaLfbbbHdtdw5PHjxjahqFrmEySWQFSHtquaVFCEaLFuQE9UqR0rlNXTQoCNdaQ5zkWweDSzehDTFk6yNEclnKxhNQpXh1JrhOLtShK1pv1iMLUTCYT+lGPrJSkyAosaWvrrKPIJHvVhINFzcHeDJUrtoNFbTqMlJw2DWbbE4V8aRiQEXIt2J/X3DqYsT+vmFc/+6IbR61pHB8QKebl+pPpfn8Z9SuuO9f0WBIjQVC8dJulXwlzeV1hr/8uEs1MF9STI27cfI/jm29ydPA6i8UtMlWC1LSuZ9VbtsZxbgI7D1dImmqBqxbIvWPqXNA7SxsF52ZguLyAjUVESSEVLjjYtfRNQ5/n1OsH9JkiyyS+zNGbNcomlGSMkaNixkl7QiMCRkKDRVdp5qtVya2q4uTkOTabYJTksrfs/IaqPmIxXXC1vmCnKlSpWOQF68tLwmRGmAtqBd3uit5FxPEUMbQIbxHtBrc6I2y3mN/8x9TR0H/wNcKsxluHj9ALyXebDX90ecW7xZS/dvdt3loekClBluVIJaiQRBdx1hJRvHP7Lfb3jpFKkfU9ZZGohEGm5GtEehB65zBdCyFy+/YdFr9a03cDzWbHxck5CzTlLJ2Ou65DqbQjstYQgXI2JXM5213DyckzVldXbDdbppPpK++5n26OECl+W6kRVB4gWDDe4URgaA16t6OqaxCKIi+YTOaECMY4pMwQssD7QDtKwoQQ7O3VGOswVqBJqQ65ADLNZDJluthnMIa22TIMA8PQYYaOiMD4MBofEvT8cG/O4CIXV5dEkn532zRY5xkGg/COarlACYFxiQG8a1pSYyI5Oz1hGAb+6T8+papKbhwdU9U1r73xGhdn5zx59IiHDz/ji89/RK40+/uHFJMZeV2z2N9LfAlj2W5XXJ49Z7PZsGp2KfFXSarJnNliia4qprMZu02S0DjnePrs2ehiqZKqQmkGk/jF3dBDjCPlrE1Lw1FnFEIkBo8WEoTAxUjTD5R1SEcnJM5ZpNKEEb4tpCJXOYM1RKUwzpBn6biVhYR5bJsNKkvQorqsErjIp8SH6/llsAE3eKJ3SKXJck1elDgUeeEpckuh9XikdteCVGIIlIVmMZ9wdLjgaH/C/F9j0/tv+vJjFLwcj/4iXn+9SQTGtdxLJrJYusdStR0bYoT8UgEhxqWifNn0RlA59d5N7t39iDdf/xY3jl5jNjnGjUu6wXl6L+gHx3ZI75HWGtrWsLGe7WaFNA12t2F7+ozPzp6xdoYw3SOImv3BUmUZpiiwFxtiWUCWMVvMmPiBu/mE59uGk8sL3Okz+m6LndSEGCmlYnHzLvdmNbumQXjJxfqKbZSYoiIozQsbyA6OqTJN7j3PVxd0asJgdkyLnJmUbH2H0zm73lPWNQ6wSuBURrlI/A8hNFm/wbarkUsCsSyJuy3me99F7k0J774JGcSdgTYSnUwBmhGebTcsi4rDyQQlIpNMI4Ugm0yZTQ+pJ0tynROlJnpPPZ+SyZZut6OY7iGkwFuD7w0hgCwqMufZKwoW8wWr8xVP7j8lqAtkOSFmGZ7AZr3BdSlv0XnD6ZOnnJ6eEqLn4sUzBtux3W54/bXXKfL/mou0a6F3ckIBMXVN0QdidESX5FzemSRfyhRVVSarrvCEqMkJBGHQrqcuBEVRMriBk5OB4CKm2yFCwAVHWZbYUZDsQwLadMOAMT1EMMYQg2dSV5SZ5mBvQYiC1eaKLMvYbrY0TZuiZWKk7XtEkdH3HXmep27QpqiZECOmT5yH1eqSspzw5PET3nrzTdabDXlZcHzjBgjB1dUlTx485LI548ff/x6btqW3jmmR0/SJXJZrTa41QUiWe3vcvPsa9XRKXlRIKdiuNxRZwXQ2w/Qd69UV6/WKTz75EUJ4sjGR1QyGrmvQWTZuyj0hhNGBNs4LVUrz7Y1hVqa0iK7v2TYt00kFwSdOA5aqqumtQ+sCoTx4kVgXUic28bhZL4sKYz1D3+F9IM9ylBR471A6MWSDS8AdZzx2sJje0PYWlMJag3cu/fKJ4SCjIIgxqDx6lMqY1AWz2YTZdEZV/uwj2L33o8ogpcMSBTGkr/ullCzyFW1umuUmF5YcT39jLPvLhjh1uVEIlkdv88s//zd5+/Vvsb88RAnFECOtdbTGIYNn13WJxOYD/fkJl5eX9LsN25MnPHz0GQ8efM6q3SCKiunyiGyxz6ScYc7OGcqay8k+5d4ee8FzMERW6x07qTCxZ9ddcSLBOFBEDucTyDTnEZTKsLsLPn3x4CXVbH++4PX9N1mtthgfOL88Y5trRFYgY86xzrlTz7iyLV1o2YYaXU+ZZznr83PsfIYvCpZZxuX5Ka6akC32KFoS81ofEGVGwKKmM1zXItcb/O6K+Id/xOz2DGY1OzcgTKRwgZtFyVvLQ0qd4YgIKemMpS5KpuWE/f17BJnY2z/45AG7AcpS8cGBJJc9w2bFQTXDDANd02KahhATHvbq5IyiKJgsZsgsJ5K4yFmWJYKgTbTBfrOmzDOQgrOzE+5/8TmmbylyhfWG3W7Fb//OF2x2G/4X/6u//1PvuVeMF1KYoo8JuTgYl27IUcTv3EAuBEIlOHJV1ORakWWawQfqqmI6neN94Pz8OZvVJV3f03WC3c7StQ3ODOQqjRXquqaq55iuHRdODU3b4GwKXMy0YjGdsJilX9tuoO17vHesN2khN9iUQYaSRGeJWjD0Q+rYdUooVkLgfKC3icWQqYzV5QXNbsOLFycIIVitLrm6uqSuKgZjqGcTikmFF9CfnnL69Am7bQLSRFJk+xtvvsli/5C+bemHHhsCZeVYzBcEH5KCwDqqWnJ5tcJ7z2w24+L0Oaqu8AEGk0hgPgacT9l0IfiXtH953TmOHVXXdeisoMxScKVUgklR4UhJH/QtDsny4JB+SCMKFz2DGZJ9W+tEXhOSvMgxxuBMhzEdZV1jB0PXd1T1hDIv6M1Almc0neX0aoXDMR1mDMGz6XrWu4a264je477CNYBI9H6MUEljkeHVQKZ/41dSLwgCYyaaH0evIhLkaOcNJDfdOCdJEJw0FgsxzW+FiF9RJQhCFOwt7vJXf/Xvsrd8Dd8bXjw/pTWGK2foe0dzecWD0wc44wlDRxbgwYPP2e3WbFdrdusLnO9SiGeeE1VGFz12MEjZc1RNORt6vDnHPn/EZak5nUzRgHaOg+kcOdvnyfqC2PeEbsfzSYUXCqk0y0nBUX7MZbtBVAuC1ly0G062ayKa2WTKTTfhanVFUziC73leJZXL0eEN4m7NFoHPS0w5p7pV0vkdQSvaomb25pvsuhYTPcVsgWlavKpR0zmxvUKbBiFzyGf4LIftOZM/+QL9cx+way2y7ym95XAypx8GsnJCoXNUllMWGXUxw2YzfnzSMVtmrJueVSzQ05yLZsejF+cMwxmlKti7nRbczeWKzdUlWVVw9uwFD374MW+8+y6L4xssjzS7VYuuJ0znU6rZhNhAWdb4viUrcqTSoCSzxZRd6Pn6++/w8OEXfPe7n7Nt2xRX9Yrr1ZQxBMFHhs7QyI4+N3jf0fc7Sp0hs4yh00ACuWiVo7RmOsuYLQ+YVDPsYLFmoNm2tINjddWw26b5LN7hpWZaT6nqKRGSi2W3wRmLcw7jLCIGFrM5Rwf75FnGatvQdgNaSbp+oO16nEvW4YhIsBABWqVipXRG1yXba5FnDIPFGcu0rhEiMpnU9H3Pgwf3qcqS/eWSoazS/Ha3QwhB33UM1nJwfAOkHF/TNvF3Q8CGSAyBzXaD95HZfI41HucC+weHRB9YLJf0g2Wz3XJ1ccG0rrmI8WUUknXJ9quFZjsYhn6EIr/UM6XRQZ4VxJCO/WYYKKoaT3o4unFGace4b+c95+cXlEVJD2TRYoKl7TqyvCD4yKyuWEwirRTsui5perMcrQt27RX90FHVU7RUOOvZOcd6t+Hk4pzpfIbKc1oXuNi2DH2S6sVwDf1OrIKhN2zXDataY4c2zT5/xte1IkGI8GUxHUHmhEAYH3Ivk3+JIK/fWCl2KqkU0p9JYxVFUVS89fqv8sPPXuDlCYOxhCDZ7QaempbdYDiuSopu4KTdMHQ7dITMWDanZwzCQ5GBjUitqOoJMq+Y65J2d0Xbr3mUVal4ZiV5t+VyZ3G7GT4r8AQeuwalJFFr9pZ7mN2GF6fnuGoG9QwvOlazObrIWU5mHBcl/ccnbDMNhWbbbekKSfn6PW7JgufPPsMrhStyLnZrjo6PkH3LRgh2k4rp9JD82Wd0eU4/nTKd5DTdllDPMfWCatLQm5C6arPFhpzgJBQaoTOysqR7uibMHqAWBXeKikxm7OU1d+b76FHlLIRC5VPE/DaPzhvWF+fo5+fsJOy2V9jzK2Z7+0zVFbI/4+7dt8nKiiwrxrGGZHd5ybPHj1itrhBKUc+mqLnCGcdqtRsJf4Zut8PagXJS4/qOq2fnnJ48p9klk8liMeWdd9/h9GzDZ198wbPnz155z71ipptmuUM3sNnswEd0JnBhSCMD6QkRnBuIXSBETz1ZopVkOpsxXyzJVIFRBi5g2zpWqy2rMZWhKgva1pNnJdN6yjA42q7FDKl7Nc5gnYMQmNQVQml23YDZtONwWyacIKNcC4HzHq01arT4+lGHaQaT7LkIlM4oCo0PCSwyHeVom/Wak+cvuHHzBtNvfZtbd+7w5NEjFosF69WKpkt64t3uagyGzCnrGiUFV+s1w9DRtk2aJYsdy71lwkcak2ZM0wnb7ZY//pM/Rhcl66srpICiLCGAsQbT9yk2XpiUthvTDj11VHK0o0pcSFQs6yJIh+h7hIhs+gG1l5x8Smn6waKUZOhbpJ6C0qhMogKE4HDWoKWks5ZJnmDweYCua8jLmrqakOclXdvQNg1KKobBIaTi4nJL3+1w6in5dEJQObsYMSHNcK9pYzGCj5G2HXj+/JRgWupS4/yfBYg5I44y/X8pIiIkNq0YNaJwXXRJLAYYxwnpoZdUCl/SFUT07C/eQIgl690Wr+DsdMegHbJ36cgaHQ/XZ7w2nZL5yPr8jO3Q4UxLnklk15HtWkIpGXzEbFdk2Za9+nWWkwmx2dEPa7yxnFUF+WxOns04KEpuT/Y4v7zg2fkpPs+Jk5qLTDK/dYe5EJResRDw8PIZm2GHLmd03hLKgoMbt5gYR7u+ZKUDfVYweAXTmhtvvEfrW1a2xU4rXjjPnTtv4npDk0GvI3e/8/OsXzxjrTK21YSDr3/A+WaHz3JqqRienRKqGXr/AGsGRNsTB4coKrIyR+82iKuOcppzqy45mk2QQRKcQ+d5Ss3OKrogOH36iOdBYEXAX225e+eYwvaYiUN4i3YtRVZycPMm5WyKUinLUSl4/vAR9z//nFk9Yb6/pJpMyIq0f2q6gbZtGfBsV5eIGChnNat2zeNHD3jw6D79dsWNwz2GvmG5XPBLv/Qr/KW/8jf44Y9++Mpb7qcWXSVA+IjtLV3TJxIPkigsUTu8lKAFUSYwi/UpM6qqpxRFTiaA0cxwer5is2np2p4YHUrEJFMKnv2qItOCpu0wQ88wdPjgGZzDWEumJCrLaQfP1foSpQQxBjKV3rj5GKlurEkaSCFQUiTNqnXkVYWzluBdWsLpZHSwPo0tyqrC9gM//uGPODg8oP2iYX/vgOPbN9FKcuPmMev1iiIvCdZxenqK8xYlFcEFyqpACImzjqv1GusslZywa3cIodk/OKSqSs7Oz5FC8vTxI4wZ6JodWinqomDbNBjjsHZARFCyTMUgveXHWVOyNEuZowRpzOMMSilMNCgtsdazbbYUeT5u3jOabkdVFPRNQ1ZMiNFSFAU+aHwIRG9xBnqRbI6SQJYX9N2ObIzlMVrhrEnZbGkVn+aTvaM3A6tNh6hqqApCphMC5jqAEYjB03ee06Fns1qhRcQb91+lTP7//IpR4MOXYEY1ciJSoy6+7HIFI0NCfiXfLd3zISSQeeIqSHI15bNPP6YoMk7WK6bVnIvHT2iVYFlOuOE9zzdXfHr+HE1kLhy7bo13ls4GhDOoTJAjKBJKDiKcrs8SgEblHM4WxM2GZ7st3gf6qqJtdnRNx+L4JneWS7TQyMHyeey49I5cZjRKIIeO/d6i1y1hOrCblDyMNaiarC44nt3Dn56x05agIysim7riaHmD+cljdkoSsoLnneX28QLz+D5usc/WS+7uz1lttwxZSbmcUsWetqyJRUnpHf1gKecHuNNzZFYS1zsy0zPPCqaLJcY27IWapS7YywoqXUJwTHLF/uwAWx3yw6ueEHOKQuFtYDAN7uosvWe8Y5ErDqsJx3tLlrduklcF3qasum7X8PDBQ56fnnHzm7co6zKpobKMejalnpScnp4yPdyjqAoyn8xCzdBxtj2jyw0n2xP2lhMuLq84Pb/kn/zjf8p7733Er/+1v/7K++2V7IUQAtY4TG9wtSVDg3TAkDovnSyPwUW8HfC7iBeCqh/QsqdpLQ8eP+X84gqCTQjGfkAFD8FSZClp9vT8nF3bU+cKay2bpsUMA1WumE7mCKFwpkPJlAgckaMvPeELIwHP9azTUeQlIgqyTCVAS0xFQOoIcbQKx8Q8TYtmT9vviOcerTLOTl/wyWcf887bb3Pzzi329/eShbIsWUynnF9ekOUVbozWLsuCqqzoB4t3aQY7my5Z7O+NScOOtm148MV9+r5ns7kk+IiSgtlsjtusGYaewaTtdWp0PSJeW2yT/EpqhZTptSipiQLMWHhzlSNEpGt2CDFFYMnLCSImcA7WEKNKfvLoKYqSvu8RSiKVQsRIpvRoUIkED5vtiqIoERF0VuKtTUyCGNnfv8H55QU+OqQsEmoyxpfsAmIaLYzmLvwYdNmanmgN0f3sO92v2jNiTCxdMZoWECSt7nXRvU6HGIE2cnQBfsnkDcQoUEpzdbnj6vKcWVVwdbHiAkVUirbrGOQJB8s9Kq2wbY/1hsvgyWYTdNej6Fg7x5ApVJaRKcVBVtH1HbtmBzpDlDWXMZBNZ0z2D9GDpXCONnqulhWtGVBas8AzbdbU5y/os4J8NiEMA89mU4p7t8jzmlvFjMcPfsSmaZH7NU4rThQUb7zFDSInD76fwD77klWjWN57l8nqGU9XT0FF4pBxe3/BU7PlqvO8du9NjuSas8qyqyPfObzHH+xabFZxkN3gxekKW1eIqyuCKsEarA5shsT8mLqMfGs5vFmjIizyjMPJHnVRYPUez1xF5yz986fcmGi0ccxCw+UXj1npgvZsxS/9hV+gmhTs3bxBXlfEEPHG4AfD0PVsNkleKrXG2J52tyUqSRQBmQl2VxcU04LJ3iLtTnZbrtZXnHWn2Inj3e98QPO0w9qCN9//Oos/+AGf/vhH/OLP/8or77lXpgE76+i6nt4OhFAhhMDHASVDKrjaJ+hvyMElW6oxlr7t8DZwcbnj9PQEGRxd19B0HcMwIEKC1RwtanbDwNnViqoouNru2Oy29G1LrjRlMSMImbbqzrw8DlZVza5tyQRYOxBCwIfkokJ4IKbE1DLHj7QxrSVKCkTwZEVGLEZ4TrNL2EcpUxpDXfJ7v/97DMNAjIHdbsvt27eY1CV5prjUips3b+J84kZMJhPOz8+ZLxbE7Y4bN44JLiVDyLzg9PkL7OBo2obz0xdcra44vnGD5y9eUJVl4i3EgDV9YipI87LwMbq5BD5pbEk0MwgEZ5Nge1Tw+xBGh5Wh2W1HcHmLUCklI0SJcVvqbJkKurXkWU7wZnTUBYy1aKkJweKCZ+hd+pzzeAF5VqS/xwwIKbh1+x4vTp8QlMIpiY2JAyuvl2cvbV7XR/hACOlH9GfBkJYouOJlR540u7yc3yaWQlqMSVLybwyCqNNsN8ZkIU7z3PTvSmdMJoeI2PF8fcl8scfZYPFVwZ3ZnG2748wYMqG4tzxktb7krFkRA2R4oh3QIRCMJ3iH9ZHTiSefTKhUzSSrmJcTPu+3NCqB/8u6ZuYc5uyE7OkT3N4+gshZ13M5nyPv3mUuMqbbDSddg9mbYX0A4XBioHznfSZS4lcXnNNhRI1TmmxWcvej72B95OziMdbAplry9t5Nmm5NF3Y83Tl+4c3b9I8/ZwgTbg0Lnm1+xIG8yYe+xA1rqtIzm5R84+Y9/pkUmCjRB0ushzLTdNuGXmmutOQwrzB9xzQWvH3jAC0EtdZYkfHjpxectytWmw0TBRsTeHNvynpl2M33+Lxx3Dq+C1lOoTNUWQIC23WYdocfOrJM8M1vvsed2/tMJwXb1RUIxaTvEVrS9zukBDv0dK2iqEpEJhhiRzmZ8Bvf+au8dnSX//v/7T/gk88/5a0Pv87f+Nt/h3/4f/kHXJxvX3nHvVK94Fzi23rvCXhCTINolSWgTRgRdkpHlMyxNiBFmvN2Xc/J6RnBGoJ3bLY7zGDouwYZI7qu6G3g5PIKESO9dzRdiwaKrKSqa4JUDH1Ps90gZcoEm06nhBiIzuK0pO86olSgNPEaQi4EfoSwi5cWTEHb9iitUVkCmjvnaJqWxXLJYjrn1FywvlqP0eqSF89P2N/b59NPP+XuvTuYfuBydcWknrDeJNykznLm8wVZVlBkA3meMz1Iy6Wnz5/xxYMvKHROVuZcra7w3jJ0LUWeI4Sk6TrM2CGLGDHWAREl9ShNEggkuS7G1xSJI4HKWUNeTdAqe5lcq5XCOU/TNBSloyzTzNqNxcG0LXk1SbyKQqaHGQLHtW51XDCNkBdBUrEYZxjsQFlUlEVNb3uKvCKrJvTuSylCDAluk4yx44AkxBEInhY7ggj+JwlcP4tLxGvLLqNwPj0qvgrBifDSGPHyY4Exsl287HavlQtSFGmMpiQuBDbRYMzAYDsyNWG+2GO4eIGxHU+6luliziJaGHrWzmKmU4iRwjsqY2jtQF8WDICOAZ1rdF6y3w/sBgPWYTcNT4uC/GifMq/RXU88OeHq+JBeOIQNGGVhVlLGJdHlhEIRjGGtZXJo5hNuL/cx/YauLogMrJqey7rieDmhOnHsREMZPc9Ny4c//xHf+/R3KLKKw37KsFljGs9mdZ97bc/DH32XT/QXvHHviDeXC26/eczdbEVVegL7iOmO0LZInSOkIC8VavAopfB5zWXv+aYM5CqlHP/w1PCjyy1VNuXm3oxCSU5fPORfXpxxfvYcEwUXes43DpdsXjwl3tkjzzNE8PTdlr7ZYLoOpQKHN+YUlUcEnbIN2wY79AQ8q/NzonAEN7C6SCqeKDzzesb/4O/8D1Eh8lu/+Zu8ODlHhZ7f+sf/iJ//c3+ev/Pf+jvE/tXL4VfqdKP1+OgQpCeqlBGpJblOpCMfLSZAJiKZVhQyxYV762h2PabrqDLFg5NL7DDQ9x3WDAlmkS25XG9wxpCNN2gmNUprdJGOdM4aurbFWktZZASRCFr9GELphgEfQOoMO3QQPZkuk501gvNuFL4Hog/s+oEiC5SloyhyyBRd32KHCuctUgomVUlEJKPD1SW/889/h73Fgnoyoagqbty6RfSBwVh0rlifXzKZ1FT1DB8DWitidAzW8OTxY9ZXVxg74GPyxCuhaJqGrMhQWjN0LcPQEbwfO6vUqXsPSqiRnJJiz0VMc12CgygxrkdKjSzTiAAhEx4zeLyIWCso8zrh9QZDnhcMfUsQY4GNgFCpII967JSilmbehMgg1QhviXTbLcE6ZtMFRVbQMyDzAh8MPsZ0NP+K9VXEMUkijlpWpVKVU+rPBE838RVGo0MEiEQp8DEiv1JI4Ro/fq1SECkbTkRiSAixKCIhCAQ5AcHFasXR4pjPdhcs5nOmTcfzKqMxAzerKavQcK6h6VrmSjMjYx0HQlYQZcAPYAdHPqlgsMRKopBsdyva8edeZzmzxvKo1PhJRR88gxuY5jA7WBC9pzc5ITSYPOdsMkfcfY1qtuB1H/ji4Q+IdoI+lAjjee4L8v1DXq9L7r/4BF/MkBSIvuXmO1/D9i2Pzj5BvnYErmApMqam5MGPXzDtJ3z86Q954iBrt2RFzs1D2J2cchIG2reeceuv/wY/f/Mep3GKyW7x/dMrnMwQ/TOEVBB3RJG07eet5dHJQ8zuKStucTH5JlRz6mDoVxf88NkL1s0FVyHJQfeyGe8uCvLtU3S+YG95l6LKid5g+zV9s2a32rK6vMKanr7fkWcTyuk+KtM4M7DdrNht1skJ6gxCCLrNhkld8drxa1w9O2O6mPH48VNm9QRjJN//+FOGtuVX/vyvcvfNr7/ynnsFZQx8TKF4UoPOIjqLqFyhM50cHsHhQ8QTiEpQqAlKpnnrbrtFa8nVap3y4IPDDkNaPtUTmsHQ9sMY1w4omY7CMaCEwnQNQkjavkPFiEeihaJpOqzrCTGFWaIyXAjYrqPINXmWJzCGdwwmouJoeR9JXqmzCeRaEdC0bUemEjthWjmUVlxdphSIy/NTrPNEH3jx7DmHR8dcrC7JVJrxGWOYLZYURUnTttRlSdt39NaSlx39kHCSzo0W2rwaRdiRYXBUIsOYROAP3iFUctO85NHKBDMJYzx9QkgqvBtwwY1cYEPoIdMapTMEJCyjc6PyweONww7dKGkKuN0GpXM21jKpJzibwNORwKSq8GPh9M5QUSZDhu8JMeIGQ8OWvMgpyopcZwkoNLIGxEhveFnUXj78JWQCgRo/87OXjMXr34SAa7qY/3KeyzXcZrxeysK4tgSP5fjlxyPTag8RSvrecHRUIs8t62HNfr5Abnc4bzjrd1TlhKx3ED3b7Q4zLSnnM/RqRWjW9ErSLOYorcmlYJ+M1hkutSO6DjHSxA73l9zuDReuw2uFG1o2GexmBWU15Y3ZAf1nD7mve5wFMShEFrhQipvvfhsZLKfP79POK0K+wPWKLkYO9JzdtELZFadnHed7c37uuObp1VPeCoqjYZ9g5/zge39Ie3HJ9GrLng+8d+d1br/9Ot/65oe88/UPKbOMx8+fcLles/v+p9w67pm9/iZ/qDRPSlA+sNUF38jhvWFgvlyiEZQ+IvyKzWbH89BTlpbF1RmxP+d3nl8QsxkbNUNMa3Jh2K8XHANLpThazJjNZ4kuaFpM39Js1zx/+pzLi0s22xW7bcPXvv5Nbi/2KCcTmvUq7YtGaaaPpIDbGJjPlpy/eI4JloeP7vP42SkPHz1iNp/w4uSKZtdyenbOO+++x1/+7/y9n3rP/dSim9JeI3kORSHRWTJC6Eynbo4wJu5aovBkKgcp0AqccyOUPGDdQJlLzoaefhgSujDLUiaZGdLGXIAMaR7mAdsmlqi3FiUEUSYXWW8tQ9ehFSA1Pkq0lAxDCo8TKvEDhHCEIIhapMJ8fSwnJoLU2LVnOkuMWiWZ1DXDMJAXGVmuUUrgjMF6R7NZs2saNu0DHt1/wNtvv4m1juXeAlEofAycn59STSc8fvqcoWnYbpsxyTiiZPK+S+9RWVqIDd2AMQNt02CdIYxpEQmkHRDCI1U+btFT6GeWZ4BA64JoByIRBTg7JGtucJTVJC0IhUAIOdLefEqxdcl8ap2hLMdg8JAWQ845one4LCVS6CxPD0RrCSFwHahonGHMzUXnBXVZIU2D8+4lEyIydrwycRdAJkeXlKnbHW21P/tr/Hpfgsau9SLi5WcF/Ktf6ji6Il5jLL/8lB0GcDsW8yWPt1ccCs3TomRbFxxftqw3F2wOljilODIRe7nmfF5glSIEy839Q5ztaXH4kBaOQmf4umKeTQndGh8CQ4xsTc+nMp2g7kxvEK+2PIxbjJDJIGM7LvoVx2+8zsHlc3rhidrSrl5wms8R3cDre3ss0OyaLXkBpfWst4Z8VvD+/h4/ePQ94uGU/XnJtLPcbhTmwRm/+b2H/NobX+fHj57Cw2dMZzXf+uA9vvXRB9y5d4d7r7+JCwN2MBxPp8yVZjqt2e125M8fcBQEf2kypbh9A/XGbQ51xr77NtNJiZIwW+5jjeF7nz3i3/8n/4wX3/0dvn1nj0dC0FqPtlsIlqrbcHD7NgfDimV03L2xx2tv3aasc7zpsLs1fbNle3XF44cPuVhtcd4xn+1z48499m/cJM9zMqlSUEGWp4eplLhgKYuSvaMjVK54+uAx1kfu3brNtKrp+obDvQX3Hz7gjz+9zw/uP+B/84o77qd3ukpQVJqq1uSVJCsFWa7Ic42U1zNTQRQBpSRlOaHMaogZtjcIEej6nroscIPDOk8ggXGc93R9myypQmDHOaCOgq7ZpY19TPi/BGlR9H2Hd6mAClmmGaGUWO/S8karJDWzBhv8COROUTnBB/y4UXch0PcpcrmqJJOqxPvkx1YyxZu7GMmVwhUC0zpUpjk/fcGzFydY65hMEjFt/2Cf6WyKMz1tN/D89JT1as12s2G1Xqfo9uDI8pxJVeNiQMeAt2lu2nVNUjcMyRSR+KxihGZfz839S6VCHB1Q14wEFxwoSbCjaiJ4jJCU03lKNiCJ/JUedcnOptl3SIaF4D2DSXHxceysnfNIGdJykshgBvK6JgaHkippqO2QusBmx2wypdBbhhGXGUXqYqMcu9xwvZQSoNLHURLkK1cK//+5IrwU6vIT9fNlCX75R1+OHK4/LsaPffmRKKE1O7JyRnN1xryYkK3WtNEwKzS5EDTrK/q6QgbBYlJTrDcME40Ums1gmOwfcGAtfbNGTTI2IvLCG1T0HM/3mO0GnrqGLgeHx3rDiWt5/eiQ5RVc+AYpI9H2nO48p2LLfFZyyyoe3H+In1VQO7K8Qq5h72jB0cE9VifnPDZr3HxBlgW63Tl5f0WtB5ZuxgMTuLV8je/90W+iY+C7X9ynf3jCfia5dTDDDA1/9Cd/yOeff8zB4QFlPeeD9z5gaDpCcLx4nvTPRZGnE6zOqdaXrNYbhqpkNZnwzW9+i2GwnP74KV3b8Z9+dsZalJjDYx4Mnj+62BHzCZ0zhL1bFKrmw6MjbnUX3FED3/rmexzfuUWWCdr1BcNmTdfu2G22XF5dcnK2Rucld+8esHd8g2o6QwhBvVhwrDOKqyu6ISFQMzym7zl5+pgsyzk/O6Nrd2gtODxcEMWS5y+eMZtN2TU7Lq/Wr7zdfrpON5dU05x6WlLWOXmZURQKnaVOMaYwLFRU5EXJbLagzhd4p+i7K3SWEoKLfIwKb3sEkjLPadqWGAJK6dGv71BS0/VJcxhiTOOAPEuRMs7ifSA6Q1ZOiUKn7kuENMsFtJBEH7EyFSmyNLd0ISaOaPCj7VeT6YyhN2itqKoK2/egNJmWGGcptSaWJUPTEpG0bYtWKT1i6Ho+//RTDg4P+eLTT1gsF1jv2DUt+OTJJ0aa3RalRm5BiLiQ0Iq9sUTn8M5jbI+zfnTN6dERleRIETmyAcTLI2zwgaqo0tLMB0TwqJi69+AdIbqxO7eIqCB6vHcIrdPfo1Ost1cCZwYkKUlYiJRGEX1ASUmm5CiJSgYTZ5KJwkeHUioxi4NPeXLWcjzbow+W3gwvi1C6O9K881qChZSJM/BnYriQiuh/NWNcckddYx+/+vGu7SCbEHLFQmesSsm945tcbtecKcnhm28xPb2gzeBSCryCg3mFuFhzKQLrUtHISFlW3J5UdM2OlR+IKKJM6beL6YRZK+j6LdSggmC7veJj11HvL3l9qFg9fcLlTOGqCllMGAqFWs65N5mxsT0udDTdFV8MVwQz50gNvLGY8ejsY2o/4Vjc4kZ+l8MbH3FxfsbHn/8xbjAEnTNbt2yennDRGOZVxvHeDEHEGMNkksJh+77n5Oycjz/+MR998BFlpujajnuvvcVqvabrep6fncH3v89rd+6xlpL9gwX/73/4GZ98/DkxeNR8jweTe2R7d6lmFaeXp8yPD6mrmt32ijeKintZ4C3RMMstbx7vc3hjn2pSMTQrhu0G7ywCRVHW7O3tcXK2ZjaZc+/1N5gul4QQRq6IYDKdJb18iKiiYLW6ZLde8cUPvs9sucfR8SH/6J/8I06eP6euJ8hM05uOi4sL+m5AylfzRH5q0b0G2FR1SVnmL6ExMktwlow0BiNCmdfU1Yy6mEFQNNsepRVaBSDJztq2I88yRExFNfiAjw5rbJqHqcQy6LoUPpnneUqydamTVUSysiTLs7QEkhLT9VibYsFdTMfbUiWTgCD5rVPQ4/VxMOWtKVWilE6hc3WVgh1tKiJaSjKlxuNe6jidc7Rdn5IonAVgvVrhnaXZ7miaHe3Qo1ROXmQwHsezPH/ZiQ9mIFdpUei8JziDMyZ9LyLkSiKlxoXETRCjGSLLrvPm0ozRWJP84CTFgJIgfQQtRxhRoG87qqoiIhiMoRCpiDqb/j6lHMF5RKZp25Y4qh6892nRWZYooBh5DN7axITwdpzYps299x47DIhMMq+mEAMmpNEO1zsoIMjr+agkXjNrf6Kn/NlcCpW+TJEANf9lX5H4SnG9/jkIEVNMu7iOZ09zfpkJui7N3IPznDYrJnpCIaDxLSEo3l7OEEPPiduOEU85d48PadYrpG2JRUzg+cmUyWTK3tVlOuURaLuWz8tIsT/nNVfTvTjhpDK4SY3DMwxrZnvHLN1NOrfGxJ5CFNjthk/aHaIsef/Oa8Rn5/xwsibqgSpTfPPgfSoLR52lFpbd5RX/9NP/jBuzKW/PlmTbFTeyAn36gvUnTyB66knJpMxSejXQth1t16G0oqxKqqKkazt+8IM/ZlLPuHf7Nl3f8fEnn4KQrDZb6qpkvVtTFgXf+95D7t19jVu37nHj1j0+Xu84e7pC+iuCHgiTOTkZh8Lz7p1bvFU4Fjrgrp6T0VPXOT5a+nbD7vSUZrNJD32lEUIzqSfkWcZsOmN5fJg0584RvUdnBZCARv3QIrSgmtT8/u98jIyej+/f587dO0xnM8qspiwKbt++yeB7fvv3fpfN9lmKtnrF9Qr1gkQpRVkU1NV14U3H0CAESIWMKeupyGuUzMjzAmsgLwryTKOVwBqXEnpl2sD3dsB7QzM0eOfJdIZ3Fu9ht0ux6mrccndD92WMjQStUgyNEIpoLNb049A7EfPTciPZgWVMc1CVZbgQybTGj1toJVWacUpB3/dsm4YQICsyiAIzDCgh0FIgMoWxhq1ZpeRcleRaxnSICN1uk1J2lUoAd5Peg0pprDM4O0DIkUKmsMgQ8D4kqVEIY9R3UlsIkZxnUoLSCmvTUi0vMpTSow43xYMLrVMMdgiAT/bhkNKEU2SQJssyrPVIMZCVJVoXyJhOBRaLDx4hI23XUOYFAom1BiEidZ4jpUoLR5lmw8opzNCDVFhnyWSSfw19h4sGhETrLFl/vU/fbwEyxtEtGMfkBf50i/gzvb4cI/ykSuFf/YNpnCC/8kT5ctowPhT9QLG4xXa9pb5xk+XZCU/7hqO9I2anTxGy41lQHNw4Zvm0J0hHN/Q8nRfMb92Ex48JJrB2HY+MQZUlB0f7zJ6dcBUGTKWx0TO4lnqxYKZfY9Nc0NodWaHIhOBsuyZOFQez2+yvBp63l5zINSKryTTMypw4rVletmTBMFWH3H/yiHqxx8+9+5f5gz/+F5ztHiJ1RGWe/cWUD6oSc3FFaBp+8cM300M8OLpuIIwJJs4HiqJA+sB6s2U+nVKVJU3Tsrfc58X5JZ/df0qWq8QjiRtu377DbJIUC7/4S7/IdDLn8iItq1dGEnSNK0vq+T6qs+i85I0avnk84YgGuzrh0flzpDccHCxpVht2wfPiwQMuz8+RMunzh77j7PKCtmkQhJE61hGL1BzpLGPoW7q+o202eG+JSnJ845jf/me/hQ2WLx7dZzrd48//8i8znxas1hf8yQ8e4pxjvlhQ5q9mRP/UouttoG89wUGmSvKsJNNJm4tQ45E2ItBoUY4C+wRxrqoCnecondG0HW3b431AF6mz8M4TAwih6LouLWxiJFMqHT2lxBqDVCrNHoNHqwIX0udCCIn5ECNa6vSAApTO8c4iSR1tjCRYc0jprknHmiK2++EntaV21MciJM4YxGiBFSLQ9x0hRrR0ZCpDRj+aF5L2NJlDRdIPB0+UKikHnEv2XUJKL5YSPXaIPoZ0+h4LrSAt0JTK8NIgpaAoCpxPAZ5Kq5fNYQyQZQV26HAhEqKkVBlRpxifJNsKyTU4vt5gB8oqydoICqVznHNkSjGYHieTBjtX6fUHrcl1DipDikhnDEom84Qcf07OWiSCXGu0S+jNyPjAH/XF6YgRyJWkrDKKqkBlii9Nwj+76yWGEUi58P/lqooRd/OVTlf8RPcrxveEjB5ne4I3rNyWqTVc5YJnWI6Eou0azjLJqsu4Ude40+ecTTTbbs2Fa3jtcMLw4gpfZcRM4nWkzwLFck5pHAMdOgOlBFe7jotywvTgTe41G9rdmifNc1xdIFTJnsi5c+Mtzp+sqUPDPC+YZhUXbU9185CvV9/h5NF9nveWnX2APL2PW97m1uwQFXvevHHErXqB2G04lPB0u6ZZN0Q7YAbLdF4zm04xw8B6GNA6Y7GcY62lNz3G2LSPCIHLy3PuPzxhuVgSguPyasXBwSFNs+PNN+5y9uIZTx89ZrPpcNZw8+4tdleWcnKDbP8WQWhK45hWOe/cWlJ2L3DdGU8/+xGPHz/n6GCfYBzNekfbtjx6/Iz79+8zdB3z6YS6zlhvkzX/mn64vlozlJaDoz28t7Rtgm1JIVnuH/DpZx9zeXbCcjGjqCv++PvfpxUNz1484ncffsbJ6RnWeGSU7M3n/1p9xE8tus5FVquG07MdN44GFssJ5GPQnhRImSQrIqaiYawlkz1SJUlUnhdIrcfcoCSvCdGjhMYZRwwBa1LabQiePM/RKs1qnbXoLHtJ+8nzAiESOUujcM5gXUr6lUKkxVCI6DzxBJwLBO/TUieEl3jKTKWib51PsdZCMgyOiCDT6XPDiJvsraPQGud6Iqk7VCIiVcrQ8iNf9lpBkEmIUeGJKAHRW7iWHeEROumFvUuv3TkPwSeivfOpQ5Rpbitiit3JigLpHVIqlMqS5E0pYvRopcjzCmd7tE68CSElmkiRaXKdpa+rqIjBJimZVuioMSEQCDgHmdKEPP3Mknbvy4eAVGn0IZWmrJLqIALGWYqyxllHPwxUesqsqNiGAedHg0YMYxiDQGrFrCrYW9QcH8yYT+o/E0U3XeJLAcJXEyS/+if+FG1MComUIr0+yUs4lBCSiKHQPXVdoJWkLxS1CETX0eeCLBZoYZE4GuGpD/aQQ0uuJNOqYtW11PdusjQOpdO4YrVb0+aaelHyps0pDPy4eUGfZ6D3UKbh+PgtroLguX3AVLbsl6+xLPfZ7pV8bf8XePYjgw41Dy96tmd/DCLwzt5NptUe/fkjSmU4qvZ5c7nPzcmE8xXkEhbOEoOlzDPCwT6PuiEVWt0zqUokkSLPqaqCoipZrdbsmhY5cpqHIf35s4sNu7YlRIeWmsVij8V8wZ1bt1FSs1weMvQDk8kcITw/fvCAF2bGtg8cH9yFMkfNFhRuIGyv8Lbh5NEXfP7FA45u3OK9jz7k6O4dgktkv2YwmBCJWuO1orUB4+DWrXvcfuNtdFHRNgNKZWlXM3RsN2ua7Y6yLFPmnEmqLOcMZw9foAisVmf81m89Q0rBarXGWsfe3n5q7NR/XXNEDHjruFyvOb9Ys1xU5MU0SZ+kHGNJ9EvdpXeeIXQImdB+RVEwnf5/2zuvJsmy6zp/x1ybtrJcl2kzPYMx8IagAFAixGDoQRT5A/SP9Bv0pGe9KUKhB+lJQVIgIkAM3AzG9PS0qe7ylfbmteccPZybWdUgNa0IigBCqN1R3VWVmTezM8/dd5+1116rT92c4HBkywwCDbaiMZWHFKzHqbRS62EGB6C8/fhKuFsHAQgvqq2VoCpylFRgvWlj4xoQCoHEmJra+im4lTKXn6FXOGuoG8uyrAiV8Bq1QG2atvkj2pPOY6P1ysp8xRzAEWmNdQK0n9RaeWFJ61AS7z6w0loVnrOMc5jGEQQhdTsBZozB2gbdys1p5SUikZ4f7btlCTpsdTyFQCtNGKVUjZepDJMUJbzjshIG5yq0CoijiCCOETjCMATjKzglvbhLEERUziJkTWMatNY0xhIE3lMO5RkGSmnvbxaGhHgqmHUOkecIZwmjEKk1WTYlSRK6OuSqWdIYr7FsnUUgiIOAXjfmYNTl/t4WvTT5PWmlrarda2bx+mWtURDxSnW7KjqE8NoLUviLnWy/BFBXY6zrENaWZ7JgJ/SGjY8o6HdSHpqQojE8yyeeSpZ22ZEJj7NTZlXOGMPd/gb7S8FReYoxl1jdpRA9+ntvEM4a0vE5yAsSIbmTPORxnRHf3+fhZYOYXZGXPX757An104+JI8V3Bm9wcnJOzRKaGSrU5PmUt/r3WJoRu6OUQdRnL03RJmdDOIZYTDHDmAow7G2PSKKILM8ZVzlN0xBGfrJy/HxGEFeEYYCUCts0TMcTDg8P2Bht8dGP3yftxGgdMhps8Z1v/hEbWyMO9u8wn13w6LNPePbkGRvDbaqqopQhamOHQMcU+ZyNwYiqcgQBNFiyPGMyndDr9Pja17/O4ZtvEEYRFyfHnJ+dcX5xyXQ2p6wLllVOJ04ZdIe8/e57bGzvEMVddCIJAiiLkqoomE+mntFTFn7aUwd0ez3effc9Pnv0Ke+98y5lVTCfz6iammfPjzg5O6OsCqQSKB2+dr19MU9XC8KORAeWslmyyBYknRAdJK2BX0tyd8JTsZraV2lSonVMHEV00i5CKD9KbBuauqFuu+seNrBI1UIVzq6NE401rSCNp0dJAVVdIIQkz2pM06BCve6Me49A2Q5rGLC+Uaelxjae8oWz62rQOT/irJSv3Ezjk7cUYKylKnJkO4hAZf1lRUBjHVHkvahkLakrnyCVVDRYP8kvZOsQ7DEPHYQ0ZekFvJ2jrGuCIGiZrnjGgNIoHVLmc4IgwaiApvbwCs4h22raOushDxn54QVj0alvYAlvBEc37dBNE+/qKgSxViTdDkVR4IRABgpHgHWWcNVgxOIs1FVJHPgdhxCQxKkf69UKISQbcewnzxAtti68opnzLIY4CpGiwDiLMZ7e5nAEArqhZpDEDOOEfpJwwxPydxwOMP4CicIK92rCXVHJVglWiPW/oq1uV1WuF8aBUEMnjVHEDJgwTFOavCSxDS4s6YkRZjkmTHNsaOgPtggWkKiKOi0Jk5RBr0cZa/rZDBkEyDRBxSM+z3O6gy4Pe18mu/qcMN3l88sxM3OMUIp3N+7Qc5KXiwm2mROFksQlWFdxZzBisTwnjrrsdwc8HOywFSSgtqlNgSznnC9PyKdj4rIh6faJAs1kkfH8+ARQDHoDDu4eIPqWyuZgKpwVfOndQ05PM5wxdDsxi2yJNY7LqwmPPntOp+ttvQ52D/mT73+ftJMyGPaJo4AX0wmz8YSvfvk9NkYjsmVOVsP8ynBVFvSilF4cM6mW0EJ3eVGR5TUPHjxg/+4h3UGf+XjM2fEJnz1+zMvTY168fNE6gKc8OLzPH3/7y9x78wGD0QZCBThnkMJSFjlXZ6dehyWKOHn5kouTY770zrts7+7w0Ye/ZGNjwNn5CdubG9y7u8fnT59wsL9DnMacnJ6RJBFB8PrR9i9MunGqGQxjhhsRUSpAGj+xYQDthVek02Bborv1laqpLTGCNE4pwpAoinwDRSo/ClwWOOPN4aQQBGGIaRoE0vt/tckk0CHOWqI49l5dQF3XNHXlm2/Gb82tbVohHIMVbQXZmgeummVhGHjHVum753XdYIVFCu271s5bzOighUyk8kknCskrz6bAefk+a8Fi/YCFajFm5x8jW8cGZ/2EXqAVoZKIwDsGm7byC3RIXecIIdHSK4eVraCPVL6BWdeuPblVS9NqCHWMEKxx1bquQSpMnVNbQ5IkbG2O0EpT1AYnBWkS0U067aCEwGkvOo+pES7yvnMYqBtvRhkEpGmHKAzodToIqbxVEn4ScXMguRhf+c/D+MELrTw9UDkIpSavq3ZJ+P+DbTy3d5kvWSyX+Ovl70elu4rr9PoPb4EWVltVuqsEe6P6Xd9Oa3NU5pgg4eHwDkE0oEwc75SWtDfiYmLpJjHvEdBJtng2tYwTx2bnAd1yStIZ8fhiSqUd94f7bGYDVBDx6/GCJUsm+RzT2+R+dJ+LRYGpK7S0hNKrZu1u77CcCUrZwYiGQIdsJB22Bj26VYpxJakS7KQh+fKKJjumKE4pmyXGVmijmV4Irl5ekUYh87ygrBoCLZjOM+7sHzDY7vHBi0/9eyMksR4w+NJXuDq7Qjc1EYqjo1Pi3LG1sUW2WPD2m2/yb/78z3ECyjLnw589YT6fE0eaJIl59uwZnz3+nHk2RypNPrhHkcM5H5AmEaOtO/QQ5MePyE6OGaZdHrz9Ft2NIRjL5PyCk+NjJtMp2TKnLBs6acre9g7f/c53efcrX2ZzdwcVBFRVjXWGsiwZX5xzeXKCCDw8OBhsgHN8/MkHvDx+hnOOq6srjDVkyyn7u7ucnRwTRDGDXgfTbLDI5muPvS+KL066nYD+IGE0ShkMYjqDlP6wTxjEWGfamXPVUpv81tM46/mnoiQMY5QSpEmMMX4LV1cFot160xLNrfGVYm0blJBYK1GtH1UQhS0rwVe/pqk9XCDVmtdqvWCAb361FbfE+155SEB5XMZ5CMEYDxNYh7cgwmPCgXJYAXEcUTc+uadakUYxRV4CFolvHnpfSwnSYhrftFKqvco5i9I+UQZae/0E5Xy3t2VrrE5Qge/q18YRSIul1VhohyRE2/EPooiyqrDG+8kJ/My/0n4rVxcZOMmoP2TY6/oqUnksOAxjyqYhDAIaB0mcUBuoco2WBuMESgUoB85Z0jAkkope2iUIQ9Kk4zGyZY5UkihwDPp9JrMZSkPT7iwaYxDW0o86FE3dVvu+TVWWhvl0yTkgjGU6TdCv11v6LYRvgbJWvblmJtycgXCt8M86sa6qXNrPqN1BrWAIBJgmw5YNQXcTbUvSzSE76h3yScY8qREiYKQe0ExKjMtohMZ2Nrkbb3ORLQnimtpmzEzO/uYdyquMYadHVzVEgaCXROxs79LNc8JqRiNq0iRmO+7xTv8O/emQOpUYlzFKUg66fYr5Aj3LOb04p6onPDmbU1ZLnKsBL2rl8D0QgpAmt9TSu34Y4/sOtXEs85LN/W3US03jagyGhStYCkPR3yAfj9GxoLM5Qi4r7h/e47vf+gbDfo/BsMNPfvJT6tpweHDI4Z0Dgkjz81+9z9nlJUEYEoQh4/EFCzVE9fZwrmI6veBwd4eha3Amo64y7r2xz/buFkEgmY2vuDw/ZTqdsMjmNI1hY3ODu7sjvvWNb/C1r7/HYGuTMI6pqyX5YkK2WDAdT1jOMoq8wGlFfjUmL5ecnr3kZz//e+q6YdDrEcXei/Dq8oL93V22Rlu8PD2h0+mQRAGLhcHWr19xX7jqo1jT7XgjwX4vpd8bsLG5g0azWM688r/0mJjF45j+Z0tVZxS5RmJRShBHodcUaCUYrfVqVsZaHJ4ytcISBR5bdAivIVAbrDE+2TmHUm11oTzVTCrZ2t1YVOATuTHWQxbWIKRsKVqCyjRoB01jCSU0gMA3tMIk9DY8TdMmP03d1PR6PSbzBXVlCHXrSNGKwRjjvLyf8++DUqrdrntxFy0lznjlJKBNzoqm5fpKPORgrEUR+IuYUOC8QZ6HX+R6tNk3JH3Sl64hjrreZNN6c8wg9MfQWhEhUUJ7NoIBHWmU9U0u12K9VkBTlCRxh0Z6ip8UliSOPGRSG0pZ+4WVJlRFQQaUJqLf67NcLglVhHUCC8yzOc750W3TQha+aQgLk+HKmsl44W1Tft8oY+shDvFK42yVRG++3pX6mhDXiVjcfBxeAEfrGmkX9PsbJKEm3dzkTn+bJJtQyIY0TEiSkrDMuKAmimMGSY/NZcWgyli4nDROGCQD9vYespPNmNmcKHL00i73u1sMg5jzfI4RFY3JiaUgETmb5ZJlXTKevuRlNuF5ldM0S4yrWNnIG2twbaL10pTGa3U4g0oVtpRULQxnnfX6H1qRFyVpERDpDnU9AfzajuIOYdwlTYaEBmzwkq/s7/Nn3/8e08kVtvGatvf2dmms5fz0mNHbbxPFIUWZI7VmtLnJ5eU5k8kE1CVSpzRFxpKKOgmIN3ukqqB39w779w8I44A6zxifnTCbXpIXS6qqRipFEka8/dZbvPXWQzZGQ3QAZT5nOr7g7OSY0xfHjCdzwjCmOxyyzDJm8ylPnjzmxclL7uzcJdCauvH+gy9PTsizBSdn59w73OfF8QuOnj9Ba0W/k6D1P3U4QknC0Jf9SZKSdGK63S6hiGkay6Kc4fyO3dOlhE+6KEFTNSzzGVXuCALNaGPA0+fHKK2xtWnpW+3cv3PUTYmSonU7kERxTFX4bb1zNRZvyuilGiU4Q1N7ypd1Hhdd3e7ND0073GUIlPbKXcKjqEpJGuOQSlMa4ylltSHt4H2xrG2NGjWVMWhricMAU1VIAVp7K3ivRCCRwlI33jVXSYnTAtuKfSshMdK1E2ZuTcKvmqatZv2Za63x02cIrK1xArT2bIVAR0jpk6XEH8s0K8ax16m1dYWMY3TL5tBKUTWWINRIqUgC/7zCWKQKCJQliGNqa4kir4UhtYamIgk1OtB0OylBEFFWNdly6e17egPiThc5mbJYSkxtPO4slTe4VJJxsaBjA5xpMNYirMfuC+M5nRivBbyCjH6nIW58rarbdnBjrb8gHFKuWArXAue01a5saWbXdN028TqwyqBchrEZITERDdsHe2xVIyZlhgsUO3d7HC4KTpZzCleTRBEHd3vcL0rGxRwVKOIoYFtHHNYxkzxjkV9R5qdcTD/jsq4oqpKiyj3TxtQ4Z/y5ZO36/HHO+C8s1tl2yGWVaG3r+m0wtsE5SZRIhsku46NxW1R5MnkUhr7PYEJ6yYCsGmOFQEjFdn+DQHZgtkBPxhx86QHvvvkmSajItOT+wzcpsiUX56dEgaDb0SyLGR9+8oSL81NmWc5kcslymfkG+fwKE6Y0QYfqLGcRCppyl61hzNbeLnE3Jl8uyCYTxpenFGVGbWpq46dPNwZDdra26Xa7gCOfT1hMZ5wdn/Ls+REX4wnGCgajiNA5FnnOfDGjrArCIOLewSG7u9scnxzx6aNHpEnKdDrnw0ePEUrQ6aZMr5ZUy5zu5sgPRr0mvngMWCvCMCSJu3TTAXHYRQeaSCfEccKynONsA8I3oARQC4uT3mG1LDLm8xLZyj5aawm1pjQVEuErRD8hgBC+Ye6sbxSpFn5wxvqq0jmPh0rpnX6txdmmxT9DL+EovZeStdaLquCv5FoKhNS+EhW+qpRCUlUVQRhR1iWNNVS1Q+IhiCDQCOmQTrYLLaJQBRZH3VhfeUqBw2AaEMo7AguAxtNUgiBEOItu3xwvsu41uKRzCKn81lw6z1l2bZPPeiGexlqfRJUC6/Fp05h27Ruk87KUUZxial+ZdOIUqfwuQbdNuNU4VdPUOAs66WKamlBHVLrG2gohIE46ZPMaJzUyiKhqSxQHpJ2I5XJBMRtjTJ8gDOh00jVUU1YladqlqL3ouxGSrMgJnaBxgpZm7HcF1mKNAwOu+X3opHnJSVYFwyrhrqAfiWcqKOedgG9Ww1Ig1c1G2m9WyP4zNaZmfPWUxfSY4CRhurtPJ+l5XD7QXAQXUDckdU3oLNWy4OlphmiV8hpbclEsedoUyLYiXfHBr1kXNwjcKzlN2wqrY6FNuNb573HeiNO2fG7rrC8+2u+FkIz623zn4Z/wq/rnfPTpB0SB56/MZ2NMk7O7u+W1VnzJhcYxDBTVLKdjGr79ja+yteE5u1J5SdYPfv4+xni1PaEUWV3yo//x38gWSzodr4HQ6aYEoaIsa1wD1BW93ibDOCU0OQNqRsMd4l4HYwzT0wvOTl5yMblklmUUVY2QCi0Eu5ubRKHn7ueLKfPJgvPTc16enPHi9JzaQhBF9IXvR402N/nk41956dVAkaQJi+mEbD5FKZDCMl/knJ5ngOVge4NBv0tVFmTz+T99DDgMQ3rdIcPeFkm8gZbRWoJRKS+wvbIcXlUI0oGTnpfpr6aGMNKIVvbONA1S4QcQnAXjrbm1FEgcTmlUu+CjOMLhGxO1NTi32r47FILGGWzTkCYdsA4VhFRVCc6hVNAuHo1EoNtJKNdOFAU6oG5qwjAkyzJQmrquvbuE8G7CQlho8a0oDImjyI87Wq8SppWHLUwLK6iWA2xbsZxQBxhTeQEd42EOcUNdy0mwBv/eSD9UIpVum4D+pPZMiwaLQipJ0/hqw1lL45yXvGyrZt2OFxsH0vgLnxae96tUgFaOxhnfKNQBQeMte5zzwjemsXR7G9imwqIomwZdVqSdhG63x2w2JZtNCFNv8pckHZrG0LQXv83uFlOlMA42zYjTq5PWfNKtFcq8ypvzY8H/F5zGf+64TpKAsH5qrqUurCCHlRiOH/u96Zl2jee2bpXr494UwQFwtsbQ4FzB0fMJOIGjaTHhtppmvTLQCJT0a9F7U3hR+NWwiXD2xuycT5yre/nq1a1/8onUJ1zbjsSvNI4d1msCO4tt3aOd8Kp4e5v3+cpb36aaOD769EOKokC14/lKSpqyxtUCJQIikbCT3OVAJLzx9h6bGz0W00vqqiQMA0yZc+/efZQSPP70Y+bLBacvzzk6OsIa2NraYXNrm08efULTVFRVQZ6XFKVF6YhOr8swcBz0uuxu9Oj0u6ggZHJ5xvMXR5ydnTFdzLicTLial1gLW5ubbA77CGHJ53OmF2dMxwvOLq44vhgzzdrdWxiwLHKW+ZJuN+XOnT2CIOT88owPf/0Bf/6nf8JkdsV0MmeR5+v3ezqZsz3oECUBg8EAh2I6z1675r4w6Xa7Q3rpBnHQJZAxwmrKpUEaL8folaPsugIArwPg8ElBBV6HNxCSIFAtR7TBWTC2RrSKWca1xH6xGv/1DhEKP+FWSwG1XzCh1jSmRugAV9deP6Gp/dZZehzWCL+Fdo2nNGH9Y1UQItrq0TUWFUYordcaB5VpYQ8EocSbXVZN66YgCKMQ6tr7h1lAitZtWKOVT3rWOeqqIgxa1S4krvXTQijAtLKLtBWgQQqJahuSvnr2nXTVmkB6Bwn/uqRw2MbzoK0zOOmQVdnuFLwuAwKSMAIpkFq2sozWD18gWBYZYZiSdjuIzCd70zS+0YhGhwGNcahAsshzjHMMuh2GG5ssswVhGFCWJYvGeGflMGI8G9MYy3C07RNxU7Ps9LH5grIsMa5Gak9fk9J/Ji34/TsOC6j1hoD2Quuzbvu+i2sOLtJ43ecble1NeMH/7tWEC/gka9tzw61goWtnjpVk74pxQ0un9GJHbWGDr8adu3kRu/7ZJ2W/a6Jtirp2h+icP55rB+Fdq8Xsy6Jr8aJVvyAOOtzduc+ov0XaTel1OiwWC4IwYGPYJY1CAi05GNwnIGa3v8udwR53D+/T73XIsgXd3gauLnj+/AgpBPtKcXZ1ydn5KR98/BHT2Yxev8+9+w+YTsd89tkjssWcbDEnDAM6UUwcgNKC3SRgr5/wxsEe23u7hElCkS05Pz3j+fEJ4+mcs4srLsZjyqZh1Bu0EpEWWxVcnudMpldkWc14mlNU3qRWKkUce874x59+xNGLJ7zz9jt871/8gL/567+mzhecnZ5w73Cfphb86qOPSJMF1hXMZwXjScHu1i7FcgHCEqe91664L0y6nTAhkhESBVZiasgXBXXRUNtiLXTt7adFq/vhRz9FW+1GUYSpQLfNL2tdK2DjkNrTqLQKadtMCCEIlfK81VaPtVKKAtortFlrMUjhE5R3+vUnsdIKU9a+EWf9dlq0GKhSDmMawjCksn4goCoKtJTUjfMXAa75l4FSaK29mLFSVI1GWYMSUNsWE2tPPgtrupoQEq1DtAKDZqXNadqmnnBt/rVe5o52ukkgME1FGMZIrb1DBHhGh2kI4hTTVF4QvTEgfLOttg0O/3/z9DntGRxKQqDawROLEzG180wDaRqUjohCTVVXWKmwVUntCtJOj6rIAEUQxlS1Ia8MnSSg0/VqUlorP43T4kIKwfnlKVVV0e9vgJRk1ZKyLimrnCQJ6cQhvU5IGGnCUBCq3wf2wo3qFD81KaVc/2YFPaz7aTf5u21mfVXu8dVj+qP4hOkc69Hx9oHrx7M6Zius41qYw7YwwKqRt6pS3erxzl8kVs1b61yLzbZYrb2B2a4q3dV5a9uUu8Z3fUihSfUGJrc8efIp5xcvcc55eiKOpq4phGM6HjPY2GYnOeTu5j6DTpdiuSDPptS15cl8zsH2JvfvPeDs4oS//dHfcHJyCkJwcHgffXZCls14+uwxTVkxmy38JcE5X0lTszEckaYDNqOUd994yN3DfTrdhDzPeP78Gb/++CMur8aM50suJ3Nm2RLnQA39xU8Hvuk9nc4YT6bMs4K8AisUYRCSpilFXZIkCcNBj199MOV//fjvmE2nfPW9L6OV4PGTj7gaX/LwwZf5sz/9IS9evuCnP/sZL04ueH4+4f69Q+7sHfLs+VMWy8VrV9wXr3op1g0v226RG2kQVDQ2p6FBSm9aaJVkpZrqBLi2ctOBRDhHtxOhBSzr1tallcVz1iEDL5oihPRiLEFAEARoKaibxjeQhPRQhPLcWGt9cnO4lgmxkj+UeEUukNpvg3QQ0dQF7YiXFzdHILSmLovW58oncKkUURB4TYcwILbes8xfHBRlCVppMBVK+oS2knL0Cl+gpWc42LpGKYmUobfQcQ7T8iWklGsnYtH+5S8iPgEHWq2rd+c8Bi1xXqPCGp+1rUW37r2mqTF1RVWWhFpj8D5zzjhU4OES47yKWxgENKYhMH4K0DpDVVXoIKauveJbvz8kyxYYU5MkEVmeYR10OylR4De8URx5mUrTVlimIcvmCOl33DujHVQYIsYgRcNo2GVr1GPYS+j3OsTh66d3/rlDtMnN70B8BXsd9hpjaLfj/t5+Cy9aMfz2SL8BO7g15CZWlXOrQXFd4V+7TaxfDy0M3/7WYpFrZ2Xxyp1WRp+4NZBAa97mG2Ku5YxznXSxrTZIm4Cta9acdtoCapBu8/1v/Gu2kl0++uQjHn/2CCWV11JuGqq6JgxiirLhThyznfZIk4Sr6YxlsSQIJNk849vf+iZxGPPxr3/J8dkpz1+ckiQJcZLy/NlTqqbyk11VSVMZwiggUYosW+KMI0xi4iil1+nypXt32d/fIekkVGXFi2fP+PnP3+ezx0+ZLRZYociLCmcdvW7XN/ts7bFWYcnzgsV8SVbUGKcQWpL2EnqDPmVV8eLoOZPpFV/7xrf4yU9+wkefPELJgHt373B+Nebs/IyXJxccHtznwYM3+M63v83o6IhfffART45O2NrZZe/wPi9ePH/tmvtiC3bjPzSs9NNKzmJrizM11hUIbZGR9hQTK5EtKiWdanVXRSvSYojTkCDUuIUfkvCL0KJ06GlRWrdryWsorDrwddO0ljW0tCvX7su9iIzWcbtoHFr6TrLWAQiJVs6PxypNXbYVOJbG+maUsJ6yZqxP1s6txGu819ey5aV62M7T3vKyJAhDyrrynfnAc5QlnuuLUKTdLnEcYMqSINQggnbAoGY29dsfrX073ApPJ5OR8q/VQRzFCClpnHeTMM4Rxcl6rFZZP1VWVTWqqVr+cuPdI6yfdRetK4SQXnEtaTFs6yxV7UeFTRBRlqXnEfsyDK0lZb4gjTZI46StlCAME4ypvUCOjnyDp2n8yPXK805JltmM2tT0+0OUChj1R1hXY23O/vYmB3sb7IyGpGns18bvRfhadMXTvf4Z1ns3IW/ct61+pX2FxfBqhSvWWDDi2nvO3eCn3zTAFC2k0CLg62fG0WpUtAl7dWi82hxt0naYNZyAcy3t65oG5vC4vU+4qyRs2qrX3rQQZau3yTff/gb3dt9ioz/ig1+/77WgtcJaPxAjdEgQpeyOtuikMdN5hsVS5CXZvGZ/b4vPP/sEYyyT6YSLyQylAx48fMjFxRlXVxeUlV+7jWk8z782aCUJg4DBYIPtrV0G3SH37z5gb3+bMI2obcPZixf8/Be/4Ge//ICryZwoigijmCiK6KQ9Br0OaRzSNDUXFxfEUUhRlORlRVn7XKOlIowTb6xQG85OzpjNZxwe3uXBvQdURc7unR2CJAEZIGTMbD7n0edPeP7iJWkn5c7ePn/yvT/m/Z+9z5NnR7zzpbcYjXZeu9rETYfT27iNP7S4+43Q3axSvd6vbKEbj/kJKT2uLkUrPOQZJUqpG5NoXoNEtpoMcjVvsUq8Hnz1zAFexXzXAxZtspVCePbOGu9dJWbPbXermrd1bHZrOphtLwkrKMGr662V7+zNZGtbGlkLSTjaMeeQ+8O3+NaD77Ex2uPJs6f8rx/9T7Ll0rOT6pqd7W32N7f44Q++x9bWkKsL78bw5NkLDg/3yeYTlssM8A3tp8+PmGY5GxsbXFxeUpZLJJCX3m0ligOE0MznczZ6KWmScnhwyP7uPg8fvMn2zjZhHBEEAWfnx3z08af86sNPeHL0ktpYRsMhOgipmoaN/pCDO9v00og6X3gZUjwv3yGxUhNGHaJOj/7mNq4xmDKnKJb0B0OuJpeUZUZdVUShn8RM044X/5pOyPMlUnlvxNl4zFe+8jVOzy+YTCY8fHCfw4ND/sN//E9f2CH+fQDVbuM2fofRVorOV7JCtF194al9gtZZQrSTa78BD6yxXOdeuY9zN25bwQiu/b6FC1Y3y9XLECvkwGHdjSHpNfZ7/ZpXFe2KCrYqnnwiba7hg5Ves10Zj66QkrYPgbv+4zwTocwNnz16QpSMObs4R8mIh/cfUJcFR8dPefPuXb779XfpdxTjyxM6aUo3Vrx174DpbEKRZaRpynw+5/jkBdkyJw79jhYpCUIPLy1fnFCWOcZWFPkSh6BJJDs7dzjY2+fBvfts7WygIr9zfv7Z53z86ac8eXnGNMsZboyo6wYhJGEYoaQmjWN6nYTt4YA6jTg7P2exzGkav4sLtEYFIelgk2Cwx84gYbuj+fCD93n/lz+l2+1wfPyCJEm4c2eHo6PPvYyBlFSVQeuQfqeDcw2DQZ8XL54TJSlVWZMtCsaX89euuNukext/4HETWmgdfsVqaONV8ZJrju71Y92N5HnzeKvkuQZor49yfc/faMDdvJsV7ejNqspllXRXFwlvZ7V6DTcZDLbFeG076OOc8zRD51gTzdyae+Qf37JjFJpAhIRhxPd+8KdESZeLsws6Qcwnv/4lnQj+5R99jVAJLs8vmM0W7O7u4kzDxeUp2TIHJJeXV+TLnDTuM9raZ7aYcXF1RlF49xgpAw4P7xGE5yyyGbNZSRCEbG/vsL29y+6dO3S6qVcarB0nL4/56Ncf8+T4nNl8gQ4jojhlFCZUVUUURkRhSBpHRGHUvrcKIbSHD9vGvg4C0t6QoD+iSYcsdcjp+Ijj0xc8/uwzut0OQijeffddXrx4RrZcAo7ziyvf/2iblFVVk0Qx+/u7LC7mSCd4495DHr7x5mtX3G3SvY0/8HA4cZ0ofU+iNZvEtdOPPvnerDR/E//1RCvXVrgOz+3iOp9z3awVzlMH5eo+/uZ1Al/l1jUGvDqEXT1P68zsHNJ3rVuy2ArDdW2Va9YVdjv46ZOu8EndJ2vfFPVPIBFGUywanl4+pfnb/86b9+7R7e3T29pjPD7jB3/0FZQ0XF1eAiGbmzt00h6XlxecnZwgVchbb76BEAFbW3sMN7e5mEz5+1/8gknW8M237hJoQacb8stffshwo09VL+n3E6TwgkphFKF1wNV4QhiGzOYTPn/6nGfHZ5ycXpDnJRtbW8jAYhwMhyN63W4rLuU/u8UyZ7nMyMqipXxKrAMdpkSDDWyYYnTMmZE0R2ecX11ysH/Ie299iRrLrz/5gOUyIwgiwiAljiqveSJ84z6KQqraMy6qwrC/c4+vvfdV7r358LUr7jbp3sYfdKzoWSt1qNVwAojrhHgjrtkG7sbvrlkQq236K80wVre98sz/6Ov5zcJ4VcFeJ+5Vs9nrQK/xWFbV7TU1bVXBOrtKxGBXAlGse3A3XovEWZ+0msbwNz/6W55+/pi//Lf/Hqk0e3e2sHXO8csxO6NNytqyubPN0bMjPv7kU0ajDb70xn2OTk84ObvkfHJJ92SDTrfPd7/9Te5PF1xdnfPJxx9wdnrkm3K19w+M44AoSlHKO8l8/uR5q1HSMJ5MOL+64vjsivFkjrEOezVhi6B1H5fEcUwYaLANs/mExXzOIltgWt0TrQKkcai4QyNClo0gX5ZYIdkZ7NDvjqjmV3TSIct6QRp1OD+5ZHtnhFSS0WjY6opYiqLwbB8d4qxmb+cuf/Hv/pKDhw/ob229ds3dJt3b+IMO+w+mGHysoYT/Q3K85she38c3vXxp69pmmWsx4Fdt29sneIW5cOPQq9fmbvTh2sr7OqkLGtdqNnMNP6wEhpxbTaP5ZGucpyOumW/CrrHd1QFWzcRAB16jQ0BeFCwXM5pqiW0c0/ECrR1JnPDk+SOeH5+xObpDmva5e++Qk8tz/u6nP6UoG5x7hNYhw9Emd3Z3eHFyQtNYZvM51jrCIKQRrb5LHCEtCOXNKicuwzlB3dTkZcH51YyrqxnGQZJ2SJIuYRARhxFRFFHXDaapaZqS+XzBcpHRNA1xnBJG7WSrDnEE5EZwNV9yNS2xUjEcRkDAX/zVX3H/4X1+8uO/4+tf/hqDbpdHnz/GWU2eL1lkGVVd0TSOqrQkseK9r7zFv/rhD3nnq19msLlN2vknDkfcxm38/x7rilT8Y5XtFyn+rrBVe83tdaKFCW5WwmZ9LP+355GvMIQvUlpzeDaFaEfMvG4C6yJ8heUCrVxqCynY6+aYtbaFHkQLMbxaob/yQzvo07Q2VIEK6Hd7ZIsp8+mUnd03OHp8ysYg5NnRcx599hjrJKaRvPnmQ07Pjvnx3/+MurHs7W2yXOYUheXl8QmTyRVRHLHMC9IoYDTskFnLsrCoKEYHksh5jv+yKNAqwjmB1iFNUTKbZ+RlQRjF6DBie+sOezs7DHpdL6ZULFujg5xsmZPnBThHtxOQpj1vois1jfOUt8v5lJOiIe5u8Mw4RmmfZZ3xX//Lf8YUhsO7Bzx4cI+XZyecnh4hJRR5DkJgjUCKkPfefo8ffO+PeePhA7q9HmHkPSFfF7eUsdu4jdu4jd9ivN5b4jZu4zZu4zb+n8Vt0r2N27iN2/gtxm3SvY3buI3b+C3GbdK9jdu4jdv4LcZt0r2N27iN2/gtxm3SvY3buI3b+C3G/wYxQwjAP3dewQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, resnet50_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "markdown", + "id": "2fc7f347", + "metadata": {}, + "source": [ + "Onwards, to benchmarking." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f182b433", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 10.01 ms\n", + "Images processed per second= 1598\n", + "Iteration 20/100, ave batch time 10.01 ms\n", + "Images processed per second= 1598\n", + "Iteration 30/100, ave batch time 10.21 ms\n", + "Images processed per second= 1566\n", + "Iteration 40/100, ave batch time 10.33 ms\n", + "Images processed per second= 1549\n", + "Iteration 50/100, ave batch time 10.31 ms\n", + "Images processed per second= 1552\n", + "Iteration 60/100, ave batch time 10.25 ms\n", + "Images processed per second= 1560\n", + "Iteration 70/100, ave batch time 10.20 ms\n", + "Images processed per second= 1568\n", + "Iteration 80/100, ave batch time 10.18 ms\n", + "Images processed per second= 1572\n", + "Iteration 90/100, ave batch time 10.16 ms\n", + "Images processed per second= 1574\n", + "Iteration 100/100, ave batch time 10.15 ms\n", + "Images processed per second= 1575\n", + "Input shape: torch.Size([16, 3, 224, 224])\n", + "Output features size: torch.Size([16, 1000])\n", + "Average batch time: 10.15 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = resnet50_model.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(16, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "21e56cdf", + "metadata": {}, + "source": [ + "---\n", + "## Benchmarking with Torch-TRT (without dynamic shapes)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "8c9ed780", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "trt_model_without_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((32, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 33\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "58a4ba94", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 6.10 ms\n", + "Images processed per second= 5242\n", + "Iteration 20/100, ave batch time 6.12 ms\n", + "Images processed per second= 5231\n", + "Iteration 30/100, ave batch time 6.14 ms\n", + "Images processed per second= 5215\n", + "Iteration 40/100, ave batch time 6.14 ms\n", + "Images processed per second= 5207\n", + "Iteration 50/100, ave batch time 6.15 ms\n", + "Images processed per second= 5202\n", + "Iteration 60/100, ave batch time 6.28 ms\n", + "Images processed per second= 5094\n", + "Iteration 70/100, ave batch time 6.26 ms\n", + "Images processed per second= 5110\n", + "Iteration 80/100, ave batch time 6.25 ms\n", + "Images processed per second= 5118\n", + "Iteration 90/100, ave batch time 6.25 ms\n", + "Images processed per second= 5115\n", + "Iteration 100/100, ave batch time 6.40 ms\n", + "Images processed per second= 5002\n", + "Input shape: torch.Size([32, 3, 224, 224])\n", + "Output features size: torch.Size([32, 1000])\n", + "Average batch time: 6.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_without_ds, input_shape=(32, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "cd233b85", + "metadata": {}, + "source": [ + "With the baseline ready, we can proceed to the section working discussing dynamic shapes!" + ] + }, + { + "cell_type": "markdown", + "id": "bd5746da", + "metadata": {}, + "source": [ + "---\n", + "## Working with Dynamic shapes in Torch TRT\n", + "\n", + "Enabling \"Dynamic Shaped\" tensors to be used is essentially enabling the ability to defer defining the shape of tensors until runetime. Torch TensorRT simply leverages TensorRT's Dynamic shape support. You can read more about TensorRT's implementation in the [TensorRT Documentation](https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#work_dynamic_shapes).\n", + "\n", + "#### How can you use this feature?\n", + "\n", + "To make use of dynamic shapes, you need to provide three shapes:\n", + "* `min_shape`: The minimum size of the tensor considered for optimizations.\n", + "* `opt_shape`: The optimizations will be done with an effort to maximize performance for this shape.\n", + "* `min_shape`: The maximum size of the tensor considered for optimizations.\n", + "\n", + "Generally, users can expect best performance within the specified ranges. Performance for other shapes may be be lower for other shapes (depending on the model ops and GPU used)\n", + "\n", + "In the following example, we will showcase varing batch size, which is the zeroth dimension of our input tensors. As Convolution operations require that the channel dimension be a build-time constant, we won't be changing sizes of other channels in this example, but for models which contain ops conducive to changes in other channels, this functionality can be freely used." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9a04007d", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_with_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input(\n", + " min_shape=(16, 3, 224, 224),\n", + " opt_shape=(32, 3, 224, 224),\n", + " max_shape=(64, 3, 224, 224),\n", + " dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 33\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f0babc85", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 3.88 ms\n", + "Images processed per second= 4122\n", + "Iteration 20/100, ave batch time 3.89 ms\n", + "Images processed per second= 4116\n", + "Iteration 30/100, ave batch time 3.88 ms\n", + "Images processed per second= 4123\n", + "Iteration 40/100, ave batch time 3.86 ms\n", + "Images processed per second= 4142\n", + "Iteration 50/100, ave batch time 3.85 ms\n", + "Images processed per second= 4156\n", + "Iteration 60/100, ave batch time 3.84 ms\n", + "Images processed per second= 4166\n", + "Iteration 70/100, ave batch time 3.84 ms\n", + "Images processed per second= 4170\n", + "Iteration 80/100, ave batch time 3.83 ms\n", + "Images processed per second= 4172\n", + "Iteration 90/100, ave batch time 3.83 ms\n", + "Images processed per second= 4176\n", + "Iteration 100/100, ave batch time 3.83 ms\n", + "Images processed per second= 4178\n", + "Input shape: torch.Size([16, 3, 224, 224])\n", + "Output features size: torch.Size([16, 1000])\n", + "Average batch time: 3.83 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(16, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "e86a3541", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 6.71 ms\n", + "Images processed per second= 4767\n", + "Iteration 20/100, ave batch time 6.48 ms\n", + "Images processed per second= 4935\n", + "Iteration 30/100, ave batch time 6.39 ms\n", + "Images processed per second= 5005\n", + "Iteration 40/100, ave batch time 6.38 ms\n", + "Images processed per second= 5014\n", + "Iteration 50/100, ave batch time 6.38 ms\n", + "Images processed per second= 5016\n", + "Iteration 60/100, ave batch time 6.37 ms\n", + "Images processed per second= 5020\n", + "Iteration 70/100, ave batch time 6.37 ms\n", + "Images processed per second= 5024\n", + "Iteration 80/100, ave batch time 6.37 ms\n", + "Images processed per second= 5027\n", + "Iteration 90/100, ave batch time 6.37 ms\n", + "Images processed per second= 5026\n", + "Iteration 100/100, ave batch time 6.38 ms\n", + "Images processed per second= 5018\n", + "Input shape: torch.Size([32, 3, 224, 224])\n", + "Output features size: torch.Size([32, 1000])\n", + "Average batch time: 6.38 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(32, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "35800f63", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 12.31 ms\n", + "Images processed per second= 5197\n", + "Iteration 20/100, ave batch time 12.42 ms\n", + "Images processed per second= 5153\n", + "Iteration 30/100, ave batch time 12.85 ms\n", + "Images processed per second= 4980\n", + "Iteration 40/100, ave batch time 12.71 ms\n", + "Images processed per second= 5033\n", + "Iteration 50/100, ave batch time 12.67 ms\n", + "Images processed per second= 5052\n", + "Iteration 60/100, ave batch time 12.63 ms\n", + "Images processed per second= 5067\n", + "Iteration 70/100, ave batch time 12.58 ms\n", + "Images processed per second= 5088\n", + "Iteration 80/100, ave batch time 12.56 ms\n", + "Images processed per second= 5096\n", + "Iteration 90/100, ave batch time 12.55 ms\n", + "Images processed per second= 5100\n", + "Iteration 100/100, ave batch time 12.57 ms\n", + "Images processed per second= 5091\n", + "Input shape: torch.Size([64, 3, 224, 224])\n", + "Output features size: torch.Size([64, 1000])\n", + "Average batch time: 12.57 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(64, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "f87a75bd", + "metadata": {}, + "source": [ + "## What's Next?\n", + "\n", + "Check out the [TensorRT Getting started page](https://developer.nvidia.com/tensorrt-getting-started) for more tutorials, or visit the Torch-TensorRT [documentation](https://nvidia.github.io/Torch-TensorRT/) for more information!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.2.0/_notebooks/lenet-getting-started.html b/docs/v1.2.0/_notebooks/lenet-getting-started.html new file mode 100644 index 0000000000..9d4a4102c2 --- /dev/null +++ b/docs/v1.2.0/_notebooks/lenet-getting-started.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + Torch-TensorRT Getting Started - LeNet — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Torch-TensorRT Getting Started - LeNet
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + +
+
[1]:
+
+
+
# Copyright 2019 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+

6e5fd25e8d6b4ce79aa5fcb073d51b40

+
+

Torch-TensorRT Getting Started - LeNet

+
+

Overview

+

In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the +best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch’s JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new +world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.

+

When deploying on NVIDIA GPUs TensorRT, NVIDIA’s Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA’s Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that +perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.

+

Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch.

+
+

Learning objectives

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network.

+
+
+
+

Content

+
    +
  1. Requirements

  2. +
  3. Creating TorchScript modules

  4. +
  5. Compiling with Torch-TensorRT

  6. +
+

## 1. Requirements

+

Follow the steps in notebooks/README to prepare a Docker container, within which you can run this notebook.

+
+
[1]:
+
+
+
!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+!nvidia-smi
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting ipywidgets
+  Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)
+     |████████████████████████████████| 121 kB 12.7 MB/s eta 0:00:01
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)
+Collecting jupyterlab-widgets>=1.0.0
+  Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)
+     |████████████████████████████████| 243 kB 115.0 MB/s eta 0:00:01
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)
+Collecting widgetsnbextension~=3.5.0
+  Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)
+     |████████████████████████████████| 1.6 MB 122.5 MB/s eta 0:00:01
+Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)
+Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)
+Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)
+Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)
+Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)
+Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)
+Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)
+Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)
+Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)
+Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)
+Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)
+Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)
+Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)
+Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)
+Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)
+Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets
+Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Thu Feb 10 22:01:27 2022
++-----------------------------------------------------------------------------+
+| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
+|-------------------------------+----------------------+----------------------+
+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
+| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
+|                               |                      |               MIG M. |
+|===============================+======================+======================|
+|   0  NVIDIA GeForce ...  On   | 00000000:09:00.0 Off |                  N/A |
+|  0%   42C    P8    20W / 320W |      0MiB / 10240MiB |      0%      Default |
+|                               |                      |                  N/A |
++-------------------------------+----------------------+----------------------+
+
++-----------------------------------------------------------------------------+
+| Processes:                                                                  |
+|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
+|        ID   ID                                                   Usage      |
+|=============================================================================|
+|  No running processes found                                                 |
++-----------------------------------------------------------------------------+
+
+
+

## 2. Creating TorchScript modules

+

Here we create two submodules for a feature extractor and a classifier and stitch them together in a single LeNet module. In this case this is overkill but modules give us granular control over our program including where we decide to optimize and where we don’t. It is also the unit that the TorchScript compiler operates on. So you can decide to only convert/optimize the feature extractor and leave the classifier in standard PyTorch or you can convert the whole thing. When compiling your module +to TorchScript, there are two paths: Tracing and Scripting.

+
+
[2]:
+
+
+
import torch
+from torch import nn
+import torch.nn.functional as F
+
+class LeNetFeatExtractor(nn.Module):
+    def __init__(self):
+        super(LeNetFeatExtractor, self).__init__()
+        self.conv1 = nn.Conv2d(1, 128, 3)
+        self.conv2 = nn.Conv2d(128, 16, 3)
+
+    def forward(self, x):
+        x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
+        x = F.max_pool2d(F.relu(self.conv2(x)), 2)
+        return x
+
+class LeNetClassifier(nn.Module):
+    def __init__(self):
+        super(LeNetClassifier, self).__init__()
+        self.fc1 = nn.Linear(16 * 6 * 6, 120)
+        self.fc2 = nn.Linear(120, 84)
+        self.fc3 = nn.Linear(84, 10)
+
+    def forward(self, x):
+        x = torch.flatten(x,1)
+        x = F.relu(self.fc1(x))
+        x = F.relu(self.fc2(x))
+        x = self.fc3(x)
+        return x
+
+class LeNet(nn.Module):
+    def __init__(self):
+        super(LeNet, self).__init__()
+        self.feat = LeNetFeatExtractor()
+        self.classifer = LeNetClassifier()
+
+    def forward(self, x):
+        x = self.feat(x)
+        x = self.classifer(x)
+        return x
+
+
+
+

Let us define a helper function to benchmark a model.

+
+
[3]:
+
+
+
import time
+import numpy as np
+
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            features = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%100==0:
+                print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output features size:", features.size())
+
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+
+

PyTorch model

+
+
[4]:
+
+
+
model = LeNet()
+model.to("cuda").eval()
+
+
+
+
+
[4]:
+
+
+
+
+LeNet(
+  (feat): LeNetFeatExtractor(
+    (conv1): Conv2d(1, 128, kernel_size=(3, 3), stride=(1, 1))
+    (conv2): Conv2d(128, 16, kernel_size=(3, 3), stride=(1, 1))
+  )
+  (classifer): LeNetClassifier(
+    (fc1): Linear(in_features=576, out_features=120, bias=True)
+    (fc2): Linear(in_features=120, out_features=84, bias=True)
+    (fc3): Linear(in_features=84, out_features=10, bias=True)
+  )
+)
+
+
+
+
[5]:
+
+
+
benchmark(model)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 5.56 ms
+Iteration 200/1000, ave batch time 5.56 ms
+Iteration 300/1000, ave batch time 5.56 ms
+Iteration 400/1000, ave batch time 5.56 ms
+Iteration 500/1000, ave batch time 5.56 ms
+Iteration 600/1000, ave batch time 5.56 ms
+Iteration 700/1000, ave batch time 5.56 ms
+Iteration 800/1000, ave batch time 5.56 ms
+Iteration 900/1000, ave batch time 5.56 ms
+Iteration 1000/1000, ave batch time 5.56 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 5.56 ms
+
+
+

When compiling your module to TorchScript, there are two paths: Tracing and Scripting.

+
+
+

Tracing

+

Tracing follows the path of execution when the module is called and records what happens. This recording is what the TorchScript IR will describe. To trace an instance of our LeNet module, we can call torch.jit.trace with an example input.

+
+
[6]:
+
+
+
traced_model = torch.jit.trace(model, torch.empty([1,1,32,32]).to("cuda"))
+traced_model
+
+
+
+
+
[6]:
+
+
+
+
+LeNet(
+  original_name=LeNet
+  (feat): LeNetFeatExtractor(
+    original_name=LeNetFeatExtractor
+    (conv1): Conv2d(original_name=Conv2d)
+    (conv2): Conv2d(original_name=Conv2d)
+  )
+  (classifer): LeNetClassifier(
+    original_name=LeNetClassifier
+    (fc1): Linear(original_name=Linear)
+    (fc2): Linear(original_name=Linear)
+    (fc3): Linear(original_name=Linear)
+  )
+)
+
+
+
+
[7]:
+
+
+
benchmark(traced_model)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 5.56 ms
+Iteration 200/1000, ave batch time 5.56 ms
+Iteration 300/1000, ave batch time 5.56 ms
+Iteration 400/1000, ave batch time 5.56 ms
+Iteration 500/1000, ave batch time 5.56 ms
+Iteration 600/1000, ave batch time 5.56 ms
+Iteration 700/1000, ave batch time 5.56 ms
+Iteration 800/1000, ave batch time 5.56 ms
+Iteration 900/1000, ave batch time 5.56 ms
+Iteration 1000/1000, ave batch time 5.56 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 5.56 ms
+
+
+
+
+

Scripting

+

Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing simply follows the execution of your module, it cannot pick up control flow for instance, it will only follow the code path that a particular input triggers. By working from the Python code, the compiler can include these components. We can run the script compiler on our LeNet module by calling torch.jit.script.

+
+
[8]:
+
+
+
model = LeNet().to("cuda").eval()
+script_model = torch.jit.script(model)
+
+
+
+
+
[9]:
+
+
+
script_model
+
+
+
+
+
[9]:
+
+
+
+
+RecursiveScriptModule(
+  original_name=LeNet
+  (feat): RecursiveScriptModule(
+    original_name=LeNetFeatExtractor
+    (conv1): RecursiveScriptModule(original_name=Conv2d)
+    (conv2): RecursiveScriptModule(original_name=Conv2d)
+  )
+  (classifer): RecursiveScriptModule(
+    original_name=LeNetClassifier
+    (fc1): RecursiveScriptModule(original_name=Linear)
+    (fc2): RecursiveScriptModule(original_name=Linear)
+    (fc3): RecursiveScriptModule(original_name=Linear)
+  )
+)
+
+
+
+
[10]:
+
+
+
benchmark(script_model)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 5.56 ms
+Iteration 200/1000, ave batch time 5.56 ms
+Iteration 300/1000, ave batch time 5.56 ms
+Iteration 400/1000, ave batch time 5.56 ms
+Iteration 500/1000, ave batch time 5.56 ms
+Iteration 600/1000, ave batch time 5.56 ms
+Iteration 700/1000, ave batch time 5.56 ms
+Iteration 800/1000, ave batch time 5.56 ms
+Iteration 900/1000, ave batch time 5.56 ms
+Iteration 1000/1000, ave batch time 5.56 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 5.56 ms
+
+
+

## 3. Compiling with Torch-TensorRT

+
+
+

TorchScript traced model

+

First, we compile the TorchScript traced model with Torch-TensorRT. Notice the performance impact.

+
+
[13]:
+
+
+
import torch_tensorrt
+
+# We use a batch-size of 1024, and half precision
+trt_ts_module = torch_tensorrt.compile(traced_model, inputs=[torch_tensorrt.Input(
+            min_shape=[1024, 1, 32, 32],
+            opt_shape=[1024, 1, 33, 33],
+            max_shape=[1024, 1, 34, 34],
+            dtype=torch.half
+            )],
+            enabled_precisions = {torch.half})
+
+input_data = torch.randn((1024, 1, 32, 32))
+input_data = input_data.half().to("cuda")
+
+input_data = input_data.half()
+result = trt_ts_module(input_data)
+torch.jit.save(trt_ts_module, "trt_ts_module.ts")
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x.1
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid
+
+
+
+
[14]:
+
+
+
benchmark(trt_ts_module, input_shape=(1024, 1, 32, 32), dtype="fp16")
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 1.41 ms
+Iteration 200/1000, ave batch time 1.40 ms
+Iteration 300/1000, ave batch time 1.40 ms
+Iteration 400/1000, ave batch time 1.39 ms
+Iteration 500/1000, ave batch time 1.40 ms
+Iteration 600/1000, ave batch time 1.40 ms
+Iteration 700/1000, ave batch time 1.40 ms
+Iteration 800/1000, ave batch time 1.40 ms
+Iteration 900/1000, ave batch time 1.40 ms
+Iteration 1000/1000, ave batch time 1.40 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 1.40 ms
+
+
+
+
+

TorchScript script model

+

Next, we compile the TorchScript script model with Torch-TensorRT. Notice the performance impact.

+
+
[16]:
+
+
+
import torch_tensorrt
+
+trt_script_module = torch_tensorrt.compile(script_model, inputs = [torch_tensorrt.Input(
+            min_shape=[1024, 1, 32, 32],
+            opt_shape=[1024, 1, 33, 33],
+            max_shape=[1024, 1, 34, 34],
+            dtype=torch.half
+            )],
+            enabled_precisions={torch.half})
+
+input_data = torch.randn((1024, 1, 32, 32))
+input_data = input_data.half().to("cuda")
+
+input_data = input_data.half()
+result = trt_script_module(input_data)
+torch.jit.save(trt_script_module, "trt_script_module.ts")
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x.1
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid
+
+
+
+
[17]:
+
+
+
benchmark(trt_script_module, input_shape=(1024, 1, 32, 32), dtype="fp16")
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, ave batch time 1.43 ms
+Iteration 200/1000, ave batch time 1.41 ms
+Iteration 300/1000, ave batch time 1.40 ms
+Iteration 400/1000, ave batch time 1.42 ms
+Iteration 500/1000, ave batch time 1.42 ms
+Iteration 600/1000, ave batch time 1.41 ms
+Iteration 700/1000, ave batch time 1.41 ms
+Iteration 800/1000, ave batch time 1.40 ms
+Iteration 900/1000, ave batch time 1.40 ms
+Iteration 1000/1000, ave batch time 1.40 ms
+Input shape: torch.Size([1024, 1, 32, 32])
+Output features size: torch.Size([1024, 10])
+Average batch time: 1.40 ms
+
+
+
+
+
+

Conclusion

+

In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT and test the performance impact of the optimization.

+
+

What’s next

+

Now it’s time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.

+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_notebooks/lenet-getting-started.ipynb b/docs/v1.2.0/_notebooks/lenet-getting-started.ipynb new file mode 100644 index 0000000000..2db954946d --- /dev/null +++ b/docs/v1.2.0/_notebooks/lenet-getting-started.ipynb @@ -0,0 +1,718 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - LeNet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network. \n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [Creating TorchScript modules](#2)\n", + "1. [Compiling with Torch-TensorRT](#3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in `notebooks/README` to prepare a Docker container, within which you can run this notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)\n", + "\u001b[K |████████████████████████████████| 121 kB 12.7 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)\n", + "\u001b[K |████████████████████████████████| 243 kB 115.0 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)\n", + "Collecting widgetsnbextension~=3.5.0\n", + " Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 122.5 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Thu Feb 10 22:01:27 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:09:00.0 Off | N/A |\n", + "| 0% 42C P8 20W / 320W | 0MiB / 10240MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org\n", + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. Creating TorchScript modules\n", + "\n", + "Here we create two submodules for a feature extractor and a classifier and stitch them together in a single LeNet module. In this case this is overkill but modules give us granular control over our program including where we decide to optimize and where we don't. It is also the unit that the TorchScript compiler operates on. So you can decide to only convert/optimize the feature extractor and leave the classifier in standard PyTorch or you can convert the whole thing. When compiling your module to TorchScript, there are two paths: Tracing and Scripting. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import torch \n", + "from torch import nn\n", + "import torch.nn.functional as F\n", + "\n", + "class LeNetFeatExtractor(nn.Module):\n", + " def __init__(self):\n", + " super(LeNetFeatExtractor, self).__init__()\n", + " self.conv1 = nn.Conv2d(1, 128, 3)\n", + " self.conv2 = nn.Conv2d(128, 16, 3)\n", + "\n", + " def forward(self, x):\n", + " x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))\n", + " x = F.max_pool2d(F.relu(self.conv2(x)), 2)\n", + " return x\n", + "\n", + "class LeNetClassifier(nn.Module):\n", + " def __init__(self):\n", + " super(LeNetClassifier, self).__init__()\n", + " self.fc1 = nn.Linear(16 * 6 * 6, 120)\n", + " self.fc2 = nn.Linear(120, 84)\n", + " self.fc3 = nn.Linear(84, 10)\n", + "\n", + " def forward(self, x):\n", + " x = torch.flatten(x,1)\n", + " x = F.relu(self.fc1(x))\n", + " x = F.relu(self.fc2(x))\n", + " x = self.fc3(x)\n", + " return x\n", + "\n", + "class LeNet(nn.Module):\n", + " def __init__(self):\n", + " super(LeNet, self).__init__()\n", + " self.feat = LeNetFeatExtractor()\n", + " self.classifer = LeNetClassifier()\n", + "\n", + " def forward(self, x):\n", + " x = self.feat(x)\n", + " x = self.classifer(x)\n", + " return x\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us define a helper function to benchmark a model." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%100==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " \n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### PyTorch model" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LeNet(\n", + " (feat): LeNetFeatExtractor(\n", + " (conv1): Conv2d(1, 128, kernel_size=(3, 3), stride=(1, 1))\n", + " (conv2): Conv2d(128, 16, kernel_size=(3, 3), stride=(1, 1))\n", + " )\n", + " (classifer): LeNetClassifier(\n", + " (fc1): Linear(in_features=576, out_features=120, bias=True)\n", + " (fc2): Linear(in_features=120, out_features=84, bias=True)\n", + " (fc3): Linear(in_features=84, out_features=10, bias=True)\n", + " )\n", + ")" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = LeNet()\n", + "model.to(\"cuda\").eval()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When compiling your module to TorchScript, there are two paths: Tracing and Scripting. \n", + " \n", + "### Tracing\n", + "\n", + "Tracing follows the path of execution when the module is called and records what happens. This recording is what the TorchScript IR will describe. To trace an instance of our LeNet module, we can call torch.jit.trace with an example input. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LeNet(\n", + " original_name=LeNet\n", + " (feat): LeNetFeatExtractor(\n", + " original_name=LeNetFeatExtractor\n", + " (conv1): Conv2d(original_name=Conv2d)\n", + " (conv2): Conv2d(original_name=Conv2d)\n", + " )\n", + " (classifer): LeNetClassifier(\n", + " original_name=LeNetClassifier\n", + " (fc1): Linear(original_name=Linear)\n", + " (fc2): Linear(original_name=Linear)\n", + " (fc3): Linear(original_name=Linear)\n", + " )\n", + ")" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "traced_model = torch.jit.trace(model, torch.empty([1,1,32,32]).to(\"cuda\"))\n", + "traced_model" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(traced_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Scripting\n", + "\n", + "Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing simply follows the execution of your module, it cannot pick up control flow for instance, it will only follow the code path that a particular input triggers. By working from the Python code, the compiler can include these components. We can run the script compiler on our LeNet module by calling torch.jit.script.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "model = LeNet().to(\"cuda\").eval()\n", + "script_model = torch.jit.script(model)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RecursiveScriptModule(\n", + " original_name=LeNet\n", + " (feat): RecursiveScriptModule(\n", + " original_name=LeNetFeatExtractor\n", + " (conv1): RecursiveScriptModule(original_name=Conv2d)\n", + " (conv2): RecursiveScriptModule(original_name=Conv2d)\n", + " )\n", + " (classifer): RecursiveScriptModule(\n", + " original_name=LeNetClassifier\n", + " (fc1): RecursiveScriptModule(original_name=Linear)\n", + " (fc2): RecursiveScriptModule(original_name=Linear)\n", + " (fc3): RecursiveScriptModule(original_name=Linear)\n", + " )\n", + ")" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "script_model" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(script_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Compiling with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TorchScript traced model\n", + "\n", + "First, we compile the TorchScript traced model with Torch-TensorRT. Notice the performance impact." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# We use a batch-size of 1024, and half precision\n", + "trt_ts_module = torch_tensorrt.compile(traced_model, inputs=[torch_tensorrt.Input(\n", + " min_shape=[1024, 1, 32, 32],\n", + " opt_shape=[1024, 1, 33, 33],\n", + " max_shape=[1024, 1, 34, 34],\n", + " dtype=torch.half\n", + " )], \n", + " enabled_precisions = {torch.half})\n", + "\n", + "input_data = torch.randn((1024, 1, 32, 32))\n", + "input_data = input_data.half().to(\"cuda\")\n", + "\n", + "input_data = input_data.half()\n", + "result = trt_ts_module(input_data)\n", + "torch.jit.save(trt_ts_module, \"trt_ts_module.ts\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 1.41 ms\n", + "Iteration 200/1000, ave batch time 1.40 ms\n", + "Iteration 300/1000, ave batch time 1.40 ms\n", + "Iteration 400/1000, ave batch time 1.39 ms\n", + "Iteration 500/1000, ave batch time 1.40 ms\n", + "Iteration 600/1000, ave batch time 1.40 ms\n", + "Iteration 700/1000, ave batch time 1.40 ms\n", + "Iteration 800/1000, ave batch time 1.40 ms\n", + "Iteration 900/1000, ave batch time 1.40 ms\n", + "Iteration 1000/1000, ave batch time 1.40 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 1.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_ts_module, input_shape=(1024, 1, 32, 32), dtype=\"fp16\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TorchScript script model\n", + "\n", + "Next, we compile the TorchScript script model with Torch-TensorRT. Notice the performance impact." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "trt_script_module = torch_tensorrt.compile(script_model, inputs = [torch_tensorrt.Input(\n", + " min_shape=[1024, 1, 32, 32],\n", + " opt_shape=[1024, 1, 33, 33],\n", + " max_shape=[1024, 1, 34, 34],\n", + " dtype=torch.half\n", + " )],\n", + " enabled_precisions={torch.half})\n", + "\n", + "input_data = torch.randn((1024, 1, 32, 32))\n", + "input_data = input_data.half().to(\"cuda\")\n", + "\n", + "input_data = input_data.half()\n", + "result = trt_script_module(input_data)\n", + "torch.jit.save(trt_script_module, \"trt_script_module.ts\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 1.43 ms\n", + "Iteration 200/1000, ave batch time 1.41 ms\n", + "Iteration 300/1000, ave batch time 1.40 ms\n", + "Iteration 400/1000, ave batch time 1.42 ms\n", + "Iteration 500/1000, ave batch time 1.42 ms\n", + "Iteration 600/1000, ave batch time 1.41 ms\n", + "Iteration 700/1000, ave batch time 1.41 ms\n", + "Iteration 800/1000, ave batch time 1.40 ms\n", + "Iteration 900/1000, ave batch time 1.40 ms\n", + "Iteration 1000/1000, ave batch time 1.40 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 1.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_script_module, input_shape=(1024, 1, 32, 32), dtype=\"fp16\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT and test the performance impact of the optimization.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_notebooks/ssd-object-detection-demo.html b/docs/v1.2.0/_notebooks/ssd-object-detection-demo.html new file mode 100644 index 0000000000..9ad9fef7cb --- /dev/null +++ b/docs/v1.2.0/_notebooks/ssd-object-detection-demo.html @@ -0,0 +1,1635 @@ + + + + + + + + + + + + + Object Detection with Torch-TensorRT (SSD) — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Object Detection with Torch-TensorRT (SSD)
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + +
+
[1]:
+
+
+
# Copyright 2020 NVIDIA Corporation. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+
+
+

0651fd225e2f45ecadc9b43b60a4e5ff

+
+

Object Detection with Torch-TensorRT (SSD)

+
+
+

Overview

+

In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the +best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch’s JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new +world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.

+

When deploying on NVIDIA GPUs TensorRT, NVIDIA’s Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA’s Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that +perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.

+

Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch.

+
+

Learning objectives

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained.

+
+
+
+

Contents

+
    +
  1. Requirements

  2. +
  3. SSD Overview

  4. +
  5. Creating TorchScript modules

  6. +
  7. Compiling with Torch-TensorRT

  8. +
  9. Running Inference

  10. +
  11. Measuring Speedup

  12. +
  13. Conclusion

  14. +
+
+

## 1. Requirements

+

Follow the steps in notebooks/README to prepare a Docker container, within which you can run this demo notebook.

+

In addition to that, run the following cell to obtain additional libraries specific to this demo.

+
+
[2]:
+
+
+
!pip install scikit-image==0.19.1
+!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+
+
+
+
+
+
+
+
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting scikit-image==0.19.1
+  Downloading scikit_image-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.8 MB)
+     |████████████████████████████████| 13.8 MB 8.8 MB/s eta 0:00:01
+Requirement already satisfied: networkx>=2.2 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (2.6.3)
+Collecting tifffile>=2019.7.26
+  Downloading tifffile-2022.3.16-py3-none-any.whl (179 kB)
+     |████████████████████████████████| 179 kB 110.1 MB/s eta 0:00:01
+Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (21.3)
+Requirement already satisfied: scipy>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.6.3)
+Requirement already satisfied: numpy>=1.17.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.22.2)
+Collecting imageio>=2.4.1
+  Downloading imageio-2.16.1-py3-none-any.whl (3.3 MB)
+     |████████████████████████████████| 3.3 MB 42.3 MB/s eta 0:00:01
+Requirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (9.0.0)
+Collecting PyWavelets>=1.1.1
+  Downloading PyWavelets-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB)
+     |████████████████████████████████| 6.9 MB 61.3 MB/s eta 0:00:01
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->scikit-image==0.19.1) (3.0.7)
+Installing collected packages: tifffile, PyWavelets, imageio, scikit-image
+Successfully installed PyWavelets-1.3.0 imageio-2.16.1 scikit-image-0.19.1 tifffile-2022.3.16
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
+Collecting ipywidgets
+  Downloading ipywidgets-7.7.0-py2.py3-none-any.whl (123 kB)
+     |████████████████████████████████| 123 kB 12.1 MB/s eta 0:00:01
+Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.9.0)
+Collecting jupyterlab-widgets>=1.0.0
+  Downloading jupyterlab_widgets-1.1.0-py3-none-any.whl (245 kB)
+     |████████████████████████████████| 245 kB 60.6 MB/s eta 0:00:01
+Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)
+Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)
+Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.0.1)
+Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)
+Collecting widgetsnbextension~=3.6.0
+  Downloading widgetsnbextension-3.6.0-py2.py3-none-any.whl (1.6 MB)
+     |████████████████████████████████| 1.6 MB 35.2 MB/s eta 0:00:01
+Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)
+Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)
+Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)
+Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)
+Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)
+Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.1.4)
+Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.26)
+Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)
+Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)
+Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)
+Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)
+Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
+Requirement already satisfied: black in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (22.1.0)
+Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)
+Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)
+Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)
+Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)
+Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)
+Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)
+Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)
+Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)
+Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)
+Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)
+Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)
+Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)
+Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)
+Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)
+Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)
+Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)
+Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)
+Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)
+Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.3)
+Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.4.2)
+Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)
+Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)
+Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)
+Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)
+Requirement already satisfied: pathspec>=0.9.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.9.0)
+Requirement already satisfied: tomli>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.0.1)
+Requirement already satisfied: mypy-extensions>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.4.3)
+Requirement already satisfied: click>=8.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (8.0.3)
+Requirement already satisfied: platformdirs>=2 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.4.1)
+Requirement already satisfied: typing-extensions>=3.10.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (4.0.1)
+Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.0.1)
+Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)
+Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)
+Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.11)
+Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.0)
+Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.1.2)
+Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.1.0)
+Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)
+Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)
+Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3)
+Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.7)
+Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.2)
+Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)
+Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)
+Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets
+Successfully installed ipywidgets-7.7.0 jupyterlab-widgets-1.1.0 widgetsnbextension-3.6.0
+WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+
+
+
+

## 2. SSD

+
+

Single Shot MultiBox Detector model for object detection

+ ++++ + + + + + + + + + + +

_

_

alt

image1

+

PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our SSD model pretrained on COCO from there.

+
+
+

Model Description

+

This SSD300 model is based on the SSD: Single Shot MultiBox Detector paper, which describes SSD as “a method for detecting objects in images using a single deep neural network”. The input size is fixed to 300x300.

+

The main difference between this model and the one described in the paper is in the backbone. Specifically, the VGG model is obsolete and is replaced by the ResNet-50 model.

+

From the Speed/accuracy trade-offs for modern convolutional object detectors paper, the following enhancements were made to the backbone: * The conv5_x, avgpool, fc and softmax layers were removed from the original classification model. * All strides in conv4_x are set to 1x1.

+

The backbone is followed by 5 additional convolutional layers. In addition to the convolutional layers, we attached 6 detection heads: * The first detection head is attached to the last conv4_x layer. * The other five detection heads are attached to the corresponding 5 additional layers.

+

Detector heads are similar to the ones referenced in the paper, however, they are enhanced by additional BatchNorm layers after each convolution.

+

More information about this SSD model is available at Nvidia’s “DeepLearningExamples” Github here.

+
+
[3]:
+
+
+
import torch
+torch.hub._validate_not_a_forked_repo=lambda a,b,c: True
+
+
+
+
+
[4]:
+
+
+
# List of available models in PyTorch Hub from Nvidia/DeepLearningExamples
+torch.hub.list('NVIDIA/DeepLearningExamples:torchhub')
+
+
+
+
+
+
+
+
+Downloading: "https://github.com/NVIDIA/DeepLearningExamples/archive/torchhub.zip" to /root/.cache/torch/hub/torchhub.zip
+/root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub/PyTorch/Classification/ConvNets/image_classification/models/efficientnet.py:17: UserWarning: pytorch_quantization module not found, quantization will not be available
+  warnings.warn(
+
+
+
+
[4]:
+
+
+
+
+['nvidia_convnets_processing_utils',
+ 'nvidia_efficientnet',
+ 'nvidia_efficientnet_b0',
+ 'nvidia_efficientnet_b4',
+ 'nvidia_efficientnet_widese_b0',
+ 'nvidia_efficientnet_widese_b4',
+ 'nvidia_resneXt',
+ 'nvidia_resnet50',
+ 'nvidia_resnext101_32x4d',
+ 'nvidia_se_resnext101_32x4d',
+ 'nvidia_ssd',
+ 'nvidia_ssd_processing_utils',
+ 'nvidia_tacotron2',
+ 'nvidia_tts_utils',
+ 'nvidia_waveglow']
+
+
+
+
[5]:
+
+
+
# load SSD model pretrained on COCO from Torch Hub
+precision = 'fp32'
+ssd300 = torch.hub.load('NVIDIA/DeepLearningExamples:torchhub', 'nvidia_ssd', model_math=precision);
+
+
+
+
+
+
+
+
+Using cache found in /root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub
+Downloading: "https://download.pytorch.org/models/resnet50-0676ba61.pth" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth
+
+
+
+
+
+
+
+
+
+
+
+
+
+Downloading checkpoint from https://api.ngc.nvidia.com/v2/models/nvidia/ssd_pyt_ckpt_amp/versions/20.06.0/files/nvidia_ssdpyt_amp_200703.pt
+
+
+

Setting precision="fp16" will load a checkpoint trained with mixed precision into architecture enabling execution on Tensor Cores. Handling mixed precision data requires the Apex library.

+
+
+

Sample Inference

+

We can now run inference on the model. This is demonstrated below using sample images from the COCO 2017 Validation set.

+
+
[6]:
+
+
+
# Sample images from the COCO validation set
+uris = [
+    'http://images.cocodataset.org/val2017/000000397133.jpg',
+    'http://images.cocodataset.org/val2017/000000037777.jpg',
+    'http://images.cocodataset.org/val2017/000000252219.jpg'
+]
+
+# For convenient and comprehensive formatting of input and output of the model, load a set of utility methods.
+utils = torch.hub.load('NVIDIA/DeepLearningExamples:torchhub', 'nvidia_ssd_processing_utils')
+
+# Format images to comply with the network input
+inputs = [utils.prepare_input(uri) for uri in uris]
+tensor = utils.prepare_tensor(inputs, False)
+
+# The model was trained on COCO dataset, which we need to access in order to
+# translate class IDs into object names.
+classes_to_labels = utils.get_coco_object_dictionary()
+
+
+
+
+
+
+
+
+Using cache found in /root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub
+
+
+
+
+
+
+
+Downloading COCO annotations.
+Downloading finished.
+
+
+
+
[7]:
+
+
+
# Next, we run object detection
+model = ssd300.eval().to("cuda")
+detections_batch = model(tensor)
+
+# By default, raw output from SSD network per input image contains 8732 boxes with
+# localization and class probability distribution.
+# Let’s filter this output to only get reasonable detections (confidence>40%) in a more comprehensive format.
+results_per_input = utils.decode_results(detections_batch)
+best_results_per_input = [utils.pick_best(results, 0.40) for results in results_per_input]
+
+
+
+
+
+

Visualize results

+
+
[8]:
+
+
+
from matplotlib import pyplot as plt
+import matplotlib.patches as patches
+
+# The utility plots the images and predicted bounding boxes (with confidence scores).
+def plot_results(best_results):
+    for image_idx in range(len(best_results)):
+        fig, ax = plt.subplots(1)
+        # Show original, denormalized image...
+        image = inputs[image_idx] / 2 + 0.5
+        ax.imshow(image)
+        # ...with detections
+        bboxes, classes, confidences = best_results[image_idx]
+        for idx in range(len(bboxes)):
+            left, bot, right, top = bboxes[idx]
+            x, y, w, h = [val * 300 for val in [left, bot, right - left, top - bot]]
+            rect = patches.Rectangle((x, y), w, h, linewidth=1, edgecolor='r', facecolor='none')
+            ax.add_patch(rect)
+            ax.text(x, y, "{} {:.0f}%".format(classes_to_labels[classes[idx] - 1], confidences[idx]*100), bbox=dict(facecolor='white', alpha=0.5))
+    plt.show()
+
+
+
+
+
[9]:
+
+
+
# Visualize results without Torch-TensorRT
+plot_results(best_results_per_input)
+
+
+
+
+
+
+
+../_images/_notebooks_ssd-object-detection-demo_18_0.png +
+
+
+
+
+
+../_images/_notebooks_ssd-object-detection-demo_18_1.png +
+
+
+
+
+
+../_images/_notebooks_ssd-object-detection-demo_18_2.png +
+
+
+
+

Benchmark utility

+
+
[10]:
+
+
+
import time
+import numpy as np
+
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+# Helper function to benchmark the model
+def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            pred_loc, pred_label  = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%10==0:
+                print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output location prediction size:", pred_loc.size())
+    print("Output label prediction size:", pred_label.size())
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+

We check how well the model performs before we use Torch-TensorRT

+
+
[11]:
+
+
+
# Model benchmark without Torch-TensorRT
+model = ssd300.eval().to("cuda")
+benchmark(model, input_shape=(128, 3, 300, 300), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 165.38 ms
+Iteration 20/100, avg batch time 165.99 ms
+Iteration 30/100, avg batch time 166.04 ms
+Iteration 40/100, avg batch time 166.32 ms
+Iteration 50/100, avg batch time 166.49 ms
+Iteration 60/100, avg batch time 166.74 ms
+Iteration 70/100, avg batch time 166.88 ms
+Iteration 80/100, avg batch time 167.05 ms
+Iteration 90/100, avg batch time 167.18 ms
+Iteration 100/100, avg batch time 167.31 ms
+Input shape: torch.Size([128, 3, 300, 300])
+Output location prediction size: torch.Size([128, 4, 8732])
+Output label prediction size: torch.Size([128, 81, 8732])
+Average batch time: 167.31 ms
+
+
+
+

## 3. Creating TorchScript modules

+

To compile with Torch-TensorRT, the model must first be in TorchScript. TorchScript is a programming language included in PyTorch which removes the Python dependency normal PyTorch models have. This conversion is done via a JIT compiler which given a PyTorch Module will generate an equivalent TorchScript Module. There are two paths that can be used to generate TorchScript: Tracing and Scripting. - Tracing follows execution of PyTorch generating ops in TorchScript corresponding to +what it sees. - Scripting does an analysis of the Python code and generates TorchScript, this allows the resulting graph to include control flow which tracing cannot do.

+

Tracing however due to its simplicity is more likely to compile successfully with Torch-TensorRT (though both systems are supported).

+
+
[12]:
+
+
+
model = ssd300.eval().to("cuda")
+traced_model = torch.jit.trace(model, [torch.randn((1,3,300,300)).to("cuda")])
+
+
+
+

If required, we can also save this model and use it independently of Python.

+
+
[13]:
+
+
+
# This is just an example, and not required for the purposes of this demo
+torch.jit.save(traced_model, "ssd_300_traced.jit.pt")
+
+
+
+
+
[14]:
+
+
+
# Obtain the average time taken by a batch of input with Torchscript compiled modules
+benchmark(traced_model, input_shape=(128, 3, 300, 300), nruns=100)
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 165.53 ms
+Iteration 20/100, avg batch time 166.19 ms
+Iteration 30/100, avg batch time 166.12 ms
+Iteration 40/100, avg batch time 166.16 ms
+Iteration 50/100, avg batch time 166.24 ms
+Iteration 60/100, avg batch time 166.33 ms
+Iteration 70/100, avg batch time 166.43 ms
+Iteration 80/100, avg batch time 166.44 ms
+Iteration 90/100, avg batch time 166.53 ms
+Iteration 100/100, avg batch time 166.59 ms
+Input shape: torch.Size([128, 3, 300, 300])
+Output location prediction size: torch.Size([128, 4, 8732])
+Output label prediction size: torch.Size([128, 81, 8732])
+Average batch time: 166.59 ms
+
+
+
+

## 4. Compiling with Torch-TensorRT TorchScript modules behave just like normal PyTorch modules and are intercompatible. From TorchScript we can now compile a TensorRT based module. This module will still be implemented in TorchScript but all the computation will be done in TensorRT.

+
+
[15]:
+
+
+
import torch_tensorrt
+
+# The compiled module will have precision as specified by "op_precision".
+# Here, it will have FP16 precision.
+trt_model = torch_tensorrt.compile(traced_model,
+    inputs= [torch_tensorrt.Input((3, 3, 300, 300), dtype=torch.half)],
+    enabled_precisions= {torch.half}, # Run with FP16
+    workspace_size= 1 << 20
+)
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+
+
+
+

## 5. Running Inference

+

Next, we run object detection

+
+
[16]:
+
+
+
# using a Torch-TensorRT module is exactly the same as how we usually do inference in PyTorch i.e. model(inputs)
+detections_batch = trt_model(tensor.to(torch.half)) # convert the input to half precision
+
+# By default, raw output from SSD network per input image contains 8732 boxes with
+# localization and class probability distribution.
+# Let’s filter this output to only get reasonable detections (confidence>40%) in a more comprehensive format.
+results_per_input = utils.decode_results(detections_batch)
+best_results_per_input_trt = [utils.pick_best(results, 0.40) for results in results_per_input]
+
+
+
+

Now, let’s visualize our predictions!

+
+
[17]:
+
+
+
# Visualize results with Torch-TensorRT
+plot_results(best_results_per_input_trt)
+
+
+
+
+
+
+
+../_images/_notebooks_ssd-object-detection-demo_35_0.png +
+
+
+
+
+
+../_images/_notebooks_ssd-object-detection-demo_35_1.png +
+
+
+
+
+
+../_images/_notebooks_ssd-object-detection-demo_35_2.png +
+
+

We get similar results as before!

+
+
+
+
+

6. Measuring Speedup

+

We can run the benchmark function again to see the speedup gained! Compare this result with the same batch-size of input in the case without Torch-TensorRT above.

+
+
[18]:
+
+
+
batch_size = 128
+
+# Recompiling with batch_size we use for evaluating performance
+trt_model = torch_tensorrt.compile(traced_model,
+    inputs = [torch_tensorrt.Input((batch_size, 3, 300, 300), dtype=torch.half)],
+    enabled_precisions= {torch.half}, # Run with FP16
+    workspace_size= 1 << 20
+)
+
+benchmark(trt_model, input_shape=(batch_size, 3, 300, 300), dtype='fp16', nruns=100)
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float
+The compiler is going to use the user setting Float16
+This conflict may cause an error at runtime due to partial compilation being enabled and therefore
+compatibility with PyTorch's data type convention is required.
+If you do indeed see errors at runtime either:
+- Remove the dtype spec for x
+- Disable partial compilation by setting require_full_compilation to True
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 10/100, avg batch time 45.88 ms
+Iteration 20/100, avg batch time 46.20 ms
+Iteration 30/100, avg batch time 46.10 ms
+Iteration 40/100, avg batch time 46.19 ms
+Iteration 50/100, avg batch time 46.15 ms
+Iteration 60/100, avg batch time 46.17 ms
+Iteration 70/100, avg batch time 46.19 ms
+Iteration 80/100, avg batch time 46.20 ms
+Iteration 90/100, avg batch time 46.22 ms
+Iteration 100/100, avg batch time 46.21 ms
+Input shape: torch.Size([128, 3, 300, 300])
+Output location prediction size: torch.Size([128, 4, 8732])
+Output label prediction size: torch.Size([128, 81, 8732])
+Average batch time: 46.21 ms
+
+
+
+
+
+

7. Conclusion

+

In this notebook, we have walked through the complete process of compiling a TorchScript SSD300 model with Torch-TensorRT, and tested the performance impact of the optimization. We find that using the Torch-TensorRT compiled model, we gain significant speedup in inference without any noticeable drop in performance!

+
+

Details

+

For detailed information on model input and output, training recipies, inference and performance visit: github and/or NGC

+
+
+

References

+ +
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_notebooks/ssd-object-detection-demo.ipynb b/docs/v1.2.0/_notebooks/ssd-object-detection-demo.ipynb new file mode 100644 index 0000000000..f2a0bd8063 --- /dev/null +++ b/docs/v1.2.0/_notebooks/ssd-object-detection-demo.ipynb @@ -0,0 +1,943 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2020 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Object Detection with Torch-TensorRT (SSD)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained.\n", + "\n", + "## Contents\n", + "1. [Requirements](#1)\n", + "2. [SSD Overview](#2)\n", + "3. [Creating TorchScript modules](#3)\n", + "4. [Compiling with Torch-TensorRT](#4)\n", + "5. [Running Inference](#5)\n", + "6. [Measuring Speedup](#6)\n", + "7. [Conclusion](#7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in `notebooks/README` to prepare a Docker container, within which you can run this demo notebook.\n", + "\n", + "In addition to that, run the following cell to obtain additional libraries specific to this demo." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting scikit-image==0.19.1\n", + " Downloading scikit_image-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.8 MB)\n", + "\u001b[K |████████████████████████████████| 13.8 MB 8.8 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: networkx>=2.2 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (2.6.3)\n", + "Collecting tifffile>=2019.7.26\n", + " Downloading tifffile-2022.3.16-py3-none-any.whl (179 kB)\n", + "\u001b[K |████████████████████████████████| 179 kB 110.1 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (21.3)\n", + "Requirement already satisfied: scipy>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.6.3)\n", + "Requirement already satisfied: numpy>=1.17.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.22.2)\n", + "Collecting imageio>=2.4.1\n", + " Downloading imageio-2.16.1-py3-none-any.whl (3.3 MB)\n", + "\u001b[K |████████████████████████████████| 3.3 MB 42.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (9.0.0)\n", + "Collecting PyWavelets>=1.1.1\n", + " Downloading PyWavelets-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB)\n", + "\u001b[K |████████████████████████████████| 6.9 MB 61.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->scikit-image==0.19.1) (3.0.7)\n", + "Installing collected packages: tifffile, PyWavelets, imageio, scikit-image\n", + "Successfully installed PyWavelets-1.3.0 imageio-2.16.1 scikit-image-0.19.1 tifffile-2022.3.16\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.7.0-py2.py3-none-any.whl (123 kB)\n", + "\u001b[K |████████████████████████████████| 123 kB 12.1 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.9.0)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.1.0-py3-none-any.whl (245 kB)\n", + "\u001b[K |████████████████████████████████| 245 kB 60.6 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.0.1)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Collecting widgetsnbextension~=3.6.0\n", + " Downloading widgetsnbextension-3.6.0-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 35.2 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.1.4)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.26)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: black in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (22.1.0)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.4.2)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: pathspec>=0.9.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.9.0)\n", + "Requirement already satisfied: tomli>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: mypy-extensions>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.4.3)\n", + "Requirement already satisfied: click>=8.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (8.0.3)\n", + "Requirement already satisfied: platformdirs>=2 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.4.1)\n", + "Requirement already satisfied: typing-extensions>=3.10.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (4.0.1)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.11)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.7)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.2)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)\n", + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.7.0 jupyterlab-widgets-1.1.0 widgetsnbextension-3.6.0\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install scikit-image==0.19.1\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 2. SSD\n", + "\n", + "### Single Shot MultiBox Detector model for object detection\n", + "\n", + "_ | _\n", + "- | -\n", + "![alt](https://pytorch.org/assets/images/ssd_diagram.png) | ![alt](https://pytorch.org/assets/images/ssd.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our SSD model pretrained on [COCO](https://cocodataset.org/#home) from there.\n", + "\n", + "### Model Description\n", + "\n", + "This SSD300 model is based on the\n", + "[SSD: Single Shot MultiBox Detector](https://arxiv.org/abs/1512.02325) paper, which\n", + "describes SSD as “a method for detecting objects in images using a single deep neural network\".\n", + "The input size is fixed to 300x300.\n", + "\n", + "The main difference between this model and the one described in the paper is in the backbone.\n", + "Specifically, the VGG model is obsolete and is replaced by the ResNet-50 model.\n", + "\n", + "From the\n", + "[Speed/accuracy trade-offs for modern convolutional object detectors](https://arxiv.org/abs/1611.10012)\n", + "paper, the following enhancements were made to the backbone:\n", + "* The conv5_x, avgpool, fc and softmax layers were removed from the original classification model.\n", + "* All strides in conv4_x are set to 1x1.\n", + "\n", + "The backbone is followed by 5 additional convolutional layers.\n", + "In addition to the convolutional layers, we attached 6 detection heads:\n", + "* The first detection head is attached to the last conv4_x layer.\n", + "* The other five detection heads are attached to the corresponding 5 additional layers.\n", + "\n", + "Detector heads are similar to the ones referenced in the paper, however,\n", + "they are enhanced by additional BatchNorm layers after each convolution.\n", + "\n", + "More information about this SSD model is available at Nvidia's \"DeepLearningExamples\" Github [here](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "torch.hub._validate_not_a_forked_repo=lambda a,b,c: True" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading: \"https://github.com/NVIDIA/DeepLearningExamples/archive/torchhub.zip\" to /root/.cache/torch/hub/torchhub.zip\n", + "/root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub/PyTorch/Classification/ConvNets/image_classification/models/efficientnet.py:17: UserWarning: pytorch_quantization module not found, quantization will not be available\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "['nvidia_convnets_processing_utils',\n", + " 'nvidia_efficientnet',\n", + " 'nvidia_efficientnet_b0',\n", + " 'nvidia_efficientnet_b4',\n", + " 'nvidia_efficientnet_widese_b0',\n", + " 'nvidia_efficientnet_widese_b4',\n", + " 'nvidia_resneXt',\n", + " 'nvidia_resnet50',\n", + " 'nvidia_resnext101_32x4d',\n", + " 'nvidia_se_resnext101_32x4d',\n", + " 'nvidia_ssd',\n", + " 'nvidia_ssd_processing_utils',\n", + " 'nvidia_tacotron2',\n", + " 'nvidia_tts_utils',\n", + " 'nvidia_waveglow']" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# List of available models in PyTorch Hub from Nvidia/DeepLearningExamples\n", + "torch.hub.list('NVIDIA/DeepLearningExamples:torchhub')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using cache found in /root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub\n", + "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1c7cf3e1635d4a2b9c8731b7fc9ce724", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0.00/97.8M [00:0040%) in a more comprehensive format.\n", + "results_per_input = utils.decode_results(detections_batch)\n", + "best_results_per_input = [utils.pick_best(results, 0.40) for results in results_per_input]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualize results" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "import matplotlib.patches as patches\n", + "\n", + "# The utility plots the images and predicted bounding boxes (with confidence scores).\n", + "def plot_results(best_results):\n", + " for image_idx in range(len(best_results)):\n", + " fig, ax = plt.subplots(1)\n", + " # Show original, denormalized image...\n", + " image = inputs[image_idx] / 2 + 0.5\n", + " ax.imshow(image)\n", + " # ...with detections\n", + " bboxes, classes, confidences = best_results[image_idx]\n", + " for idx in range(len(bboxes)):\n", + " left, bot, right, top = bboxes[idx]\n", + " x, y, w, h = [val * 300 for val in [left, bot, right - left, top - bot]]\n", + " rect = patches.Rectangle((x, y), w, h, linewidth=1, edgecolor='r', facecolor='none')\n", + " ax.add_patch(rect)\n", + " ax.text(x, y, \"{} {:.0f}%\".format(classes_to_labels[classes[idx] - 1], confidences[idx]*100), bbox=dict(facecolor='white', alpha=0.5))\n", + " plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Visualize results without Torch-TensorRT\n", + "plot_results(best_results_per_input)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmark utility" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "# Helper function to benchmark the model\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " pred_loc, pred_label = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output location prediction size:\", pred_loc.size())\n", + " print(\"Output label prediction size:\", pred_label.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We check how well the model performs **before** we use Torch-TensorRT" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 165.38 ms\n", + "Iteration 20/100, avg batch time 165.99 ms\n", + "Iteration 30/100, avg batch time 166.04 ms\n", + "Iteration 40/100, avg batch time 166.32 ms\n", + "Iteration 50/100, avg batch time 166.49 ms\n", + "Iteration 60/100, avg batch time 166.74 ms\n", + "Iteration 70/100, avg batch time 166.88 ms\n", + "Iteration 80/100, avg batch time 167.05 ms\n", + "Iteration 90/100, avg batch time 167.18 ms\n", + "Iteration 100/100, avg batch time 167.31 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 167.31 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = ssd300.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(128, 3, 300, 300), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 3. Creating TorchScript modules " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To compile with Torch-TensorRT, the model must first be in **TorchScript**. TorchScript is a programming language included in PyTorch which removes the Python dependency normal PyTorch models have. This conversion is done via a JIT compiler which given a PyTorch Module will generate an equivalent TorchScript Module. There are two paths that can be used to generate TorchScript: **Tracing** and **Scripting**.
\n", + "- Tracing follows execution of PyTorch generating ops in TorchScript corresponding to what it sees.
\n", + "- Scripting does an analysis of the Python code and generates TorchScript, this allows the resulting graph to include control flow which tracing cannot do. \n", + "\n", + "Tracing however due to its simplicity is more likely to compile successfully with Torch-TensorRT (though both systems are supported)." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "model = ssd300.eval().to(\"cuda\")\n", + "traced_model = torch.jit.trace(model, [torch.randn((1,3,300,300)).to(\"cuda\")])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If required, we can also save this model and use it independently of Python." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# This is just an example, and not required for the purposes of this demo\n", + "torch.jit.save(traced_model, \"ssd_300_traced.jit.pt\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 165.53 ms\n", + "Iteration 20/100, avg batch time 166.19 ms\n", + "Iteration 30/100, avg batch time 166.12 ms\n", + "Iteration 40/100, avg batch time 166.16 ms\n", + "Iteration 50/100, avg batch time 166.24 ms\n", + "Iteration 60/100, avg batch time 166.33 ms\n", + "Iteration 70/100, avg batch time 166.43 ms\n", + "Iteration 80/100, avg batch time 166.44 ms\n", + "Iteration 90/100, avg batch time 166.53 ms\n", + "Iteration 100/100, avg batch time 166.59 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 166.59 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input with Torchscript compiled modules\n", + "benchmark(traced_model, input_shape=(128, 3, 300, 300), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 4. Compiling with Torch-TensorRT\n", + "TorchScript modules behave just like normal PyTorch modules and are intercompatible. From TorchScript we can now compile a TensorRT based module. This module will still be implemented in TorchScript but all the computation will be done in TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model = torch_tensorrt.compile(traced_model, \n", + " inputs= [torch_tensorrt.Input((3, 3, 300, 300), dtype=torch.half)],\n", + " enabled_precisions= {torch.half}, # Run with FP16\n", + " workspace_size= 1 << 20\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 5. Running Inference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we run object detection" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# using a Torch-TensorRT module is exactly the same as how we usually do inference in PyTorch i.e. model(inputs)\n", + "detections_batch = trt_model(tensor.to(torch.half)) # convert the input to half precision\n", + "\n", + "# By default, raw output from SSD network per input image contains 8732 boxes with \n", + "# localization and class probability distribution. \n", + "# Let’s filter this output to only get reasonable detections (confidence>40%) in a more comprehensive format.\n", + "results_per_input = utils.decode_results(detections_batch)\n", + "best_results_per_input_trt = [utils.pick_best(results, 0.40) for results in results_per_input]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's visualize our predictions!\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Visualize results with Torch-TensorRT\n", + "plot_results(best_results_per_input_trt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We get similar results as before!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 6. Measuring Speedup\n", + "We can run the benchmark function again to see the speedup gained! Compare this result with the same batch-size of input in the case without Torch-TensorRT above." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 45.88 ms\n", + "Iteration 20/100, avg batch time 46.20 ms\n", + "Iteration 30/100, avg batch time 46.10 ms\n", + "Iteration 40/100, avg batch time 46.19 ms\n", + "Iteration 50/100, avg batch time 46.15 ms\n", + "Iteration 60/100, avg batch time 46.17 ms\n", + "Iteration 70/100, avg batch time 46.19 ms\n", + "Iteration 80/100, avg batch time 46.20 ms\n", + "Iteration 90/100, avg batch time 46.22 ms\n", + "Iteration 100/100, avg batch time 46.21 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 46.21 ms\n" + ] + } + ], + "source": [ + "batch_size = 128\n", + "\n", + "# Recompiling with batch_size we use for evaluating performance\n", + "trt_model = torch_tensorrt.compile(traced_model,\n", + " inputs = [torch_tensorrt.Input((batch_size, 3, 300, 300), dtype=torch.half)],\n", + " enabled_precisions= {torch.half}, # Run with FP16\n", + " workspace_size= 1 << 20\n", + ")\n", + "\n", + "benchmark(trt_model, input_shape=(batch_size, 3, 300, 300), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 7. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling a TorchScript SSD300 model with Torch-TensorRT, and tested the performance impact of the optimization. We find that using the Torch-TensorRT compiled model, we gain significant speedup in inference without any noticeable drop in performance!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Details\n", + "For detailed information on model input and output,\n", + "training recipies, inference and performance visit:\n", + "[github](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)\n", + "and/or [NGC](https://ngc.nvidia.com/catalog/model-scripts/nvidia:ssd_for_pytorch)\n", + "\n", + "### References\n", + "\n", + " - [SSD: Single Shot MultiBox Detector](https://arxiv.org/abs/1512.02325) paper\n", + " - [Speed/accuracy trade-offs for modern convolutional object detectors](https://arxiv.org/abs/1611.10012) paper\n", + " - [SSD on NGC](https://ngc.nvidia.com/catalog/model-scripts/nvidia:ssd_for_pytorch)\n", + " - [SSD on github](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_notebooks/vgg-qat.html b/docs/v1.2.0/_notebooks/vgg-qat.html new file mode 100644 index 0000000000..71940b30cb --- /dev/null +++ b/docs/v1.2.0/_notebooks/vgg-qat.html @@ -0,0 +1,1917 @@ + + + + + + + + + + + + + Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + +
+

Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT

+
+

Overview

+

Quantization Aware training (QAT) simulates quantization during training by quantizing weights and activation layers. This will help to reduce the loss in accuracy when we convert the network trained in FP32 to INT8 for faster inference. QAT introduces additional nodes in the graph which will be used to learn the dynamic ranges of weights and activation layers. In this notebook, we illustrate the following steps from training to inference of a QAT model in Torch-TensorRT.

+
    +
  1. Requirements

  2. +
  3. VGG16 Overview

  4. +
  5. Training a baseline VGG16 model

  6. +
  7. Apply Quantization

  8. +
  9. Model calibration

  10. +
  11. Quantization Aware training

  12. +
  13. Export to Torchscript

  14. +
  15. Inference using Torch-TensorRT

  16. +
  17. References

  18. +
+

## 1. Requirements Please install the required dependencies and import these libraries accordingly

+
+
[ ]:
+
+
+
!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org
+
+
+
+
+
[1]:
+
+
+
import torch
+import torch.nn as nn
+import torch.nn.functional as F
+import torch.optim as optim
+import torch.utils.data as data
+import torchvision.transforms as transforms
+import torchvision.datasets as datasets
+import torch_tensorrt
+
+from torch.utils.tensorboard import SummaryWriter
+
+import pytorch_quantization
+from pytorch_quantization import nn as quant_nn
+from pytorch_quantization import quant_modules
+from pytorch_quantization.tensor_quant import QuantDescriptor
+from pytorch_quantization import calib
+from tqdm import tqdm
+
+print(pytorch_quantization.__version__)
+
+import os
+import sys
+sys.path.insert(0, "../examples/int8/training/vgg16")
+from vgg16 import vgg16
+
+
+
+
+
+
+
+
+2.1.0
+
+
+

## 2. VGG16 Overview ### Very Deep Convolutional Networks for Large-Scale Image Recognition VGG is one of the earliest family of image classification networks that first used small (3x3) convolution filters and achieved significant improvements on ImageNet recognition challenge. The network architecture looks as follows beac8a15065243e699379551998f212b

+

## 3. Training a baseline VGG16 model We train VGG16 on CIFAR10 dataset. Define training and testing datasets and dataloaders. This will download the CIFAR 10 data in your data directory. Data preprocessing is performed using torchvision transforms.

+
+
[2]:
+
+
+
classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')
+
+# ========== Define Training dataset and dataloaders =============#
+training_dataset = datasets.CIFAR10(root='./data',
+                                        train=True,
+                                        download=True,
+                                        transform=transforms.Compose([
+                                            transforms.RandomCrop(32, padding=4),
+                                            transforms.RandomHorizontalFlip(),
+                                            transforms.ToTensor(),
+                                            transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
+                                        ]))
+
+training_dataloader = torch.utils.data.DataLoader(training_dataset,
+                                                      batch_size=32,
+                                                      shuffle=True,
+                                                      num_workers=2)
+
+# ========== Define Testing dataset and dataloaders =============#
+testing_dataset = datasets.CIFAR10(root='./data',
+                                   train=False,
+                                   download=True,
+                                   transform=transforms.Compose([
+                                       transforms.ToTensor(),
+                                       transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
+                                   ]))
+
+testing_dataloader = torch.utils.data.DataLoader(testing_dataset,
+                                                 batch_size=16,
+                                                 shuffle=False,
+                                                 num_workers=2)
+
+
+
+
+
+
+
+
+Files already downloaded and verified
+Files already downloaded and verified
+
+
+
+
[3]:
+
+
+
def train(model, dataloader, crit, opt, epoch):
+#     global writer
+    model.train()
+    running_loss = 0.0
+    for batch, (data, labels) in enumerate(dataloader):
+        data, labels = data.cuda(), labels.cuda(non_blocking=True)
+        opt.zero_grad()
+        out = model(data)
+        loss = crit(out, labels)
+        loss.backward()
+        opt.step()
+
+        running_loss += loss.item()
+        if batch % 500 == 499:
+            print("Batch: [%5d | %5d] loss: %.3f" % (batch + 1, len(dataloader), running_loss / 100))
+            running_loss = 0.0
+
+def test(model, dataloader, crit, epoch):
+    global writer
+    global classes
+    total = 0
+    correct = 0
+    loss = 0.0
+    class_probs = []
+    class_preds = []
+    model.eval()
+    with torch.no_grad():
+        for data, labels in dataloader:
+            data, labels = data.cuda(), labels.cuda(non_blocking=True)
+            out = model(data)
+            loss += crit(out, labels)
+            preds = torch.max(out, 1)[1]
+            class_probs.append([F.softmax(i, dim=0) for i in out])
+            class_preds.append(preds)
+            total += labels.size(0)
+            correct += (preds == labels).sum().item()
+
+    test_probs = torch.cat([torch.stack(batch) for batch in class_probs])
+    test_preds = torch.cat(class_preds)
+
+    return loss / total, correct / total
+
+def save_checkpoint(state, ckpt_path="checkpoint.pth"):
+    torch.save(state, ckpt_path)
+    print("Checkpoint saved")
+
+
+
+

Define the VGG model that we are going to perfom QAT on.

+
+
[4]:
+
+
+
# CIFAR 10 has 10 classes
+model = vgg16(num_classes=len(classes), init_weights=False)
+model = model.cuda()
+
+
+
+
+
[5]:
+
+
+
# Declare Learning rate
+lr = 0.1
+state = {}
+state["lr"] = lr
+
+# Use cross entropy loss for classification and SGD optimizer
+crit = nn.CrossEntropyLoss()
+opt = optim.SGD(model.parameters(), lr=state["lr"], momentum=0.9, weight_decay=1e-4)
+
+
+# Adjust learning rate based on epoch number
+def adjust_lr(optimizer, epoch):
+    global state
+    new_lr = lr * (0.5**(epoch // 12)) if state["lr"] > 1e-7 else state["lr"]
+    if new_lr != state["lr"]:
+        state["lr"] = new_lr
+        print("Updating learning rate: {}".format(state["lr"]))
+        for param_group in optimizer.param_groups:
+            param_group["lr"] = state["lr"]
+
+
+
+
+
[6]:
+
+
+
# Train the model for 25 epochs to get ~80% accuracy.
+num_epochs=25
+for epoch in range(num_epochs):
+    adjust_lr(opt, epoch)
+    print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state["lr"]))
+
+    train(model, training_dataloader, crit, opt, epoch)
+    test_loss, test_acc = test(model, testing_dataloader, crit, epoch)
+
+    print("Test Loss: {:.5f} Test Acc: {:.2f}%".format(test_loss, 100 * test_acc))
+
+save_checkpoint({'epoch': epoch + 1,
+                 'model_state_dict': model.state_dict(),
+                 'acc': test_acc,
+                 'opt_state_dict': opt.state_dict(),
+                 'state': state},
+                ckpt_path="vgg16_base_ckpt")
+
+
+
+
+
+
+
+
+Epoch: [    1 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 13.288
+Batch: [ 1000 |  1563] loss: 11.345
+Batch: [ 1500 |  1563] loss: 11.008
+Test Loss: 0.13388 Test Acc: 13.23%
+Epoch: [    2 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 10.742
+Batch: [ 1000 |  1563] loss: 10.311
+Batch: [ 1500 |  1563] loss: 10.141
+Test Loss: 0.11888 Test Acc: 23.96%
+Epoch: [    3 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.877
+Batch: [ 1000 |  1563] loss: 9.821
+Batch: [ 1500 |  1563] loss: 9.818
+Test Loss: 0.11879 Test Acc: 24.68%
+Epoch: [    4 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.677
+Batch: [ 1000 |  1563] loss: 9.613
+Batch: [ 1500 |  1563] loss: 9.504
+Test Loss: 0.11499 Test Acc: 23.68%
+Epoch: [    5 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.560
+Batch: [ 1000 |  1563] loss: 9.536
+Batch: [ 1500 |  1563] loss: 9.309
+Test Loss: 0.10990 Test Acc: 27.84%
+Epoch: [    6 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.254
+Batch: [ 1000 |  1563] loss: 9.234
+Batch: [ 1500 |  1563] loss: 9.188
+Test Loss: 0.11594 Test Acc: 23.29%
+Epoch: [    7 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.141
+Batch: [ 1000 |  1563] loss: 9.110
+Batch: [ 1500 |  1563] loss: 9.013
+Test Loss: 0.10732 Test Acc: 29.24%
+Epoch: [    8 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 9.120
+Batch: [ 1000 |  1563] loss: 9.086
+Batch: [ 1500 |  1563] loss: 8.948
+Test Loss: 0.10732 Test Acc: 27.24%
+Epoch: [    9 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 8.941
+Batch: [ 1000 |  1563] loss: 8.997
+Batch: [ 1500 |  1563] loss: 9.028
+Test Loss: 0.11299 Test Acc: 25.52%
+Epoch: [   10 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 8.927
+Batch: [ 1000 |  1563] loss: 8.837
+Batch: [ 1500 |  1563] loss: 8.860
+Test Loss: 0.10130 Test Acc: 34.61%
+Epoch: [   11 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 8.953
+Batch: [ 1000 |  1563] loss: 8.738
+Batch: [ 1500 |  1563] loss: 8.724
+Test Loss: 0.10018 Test Acc: 32.27%
+Epoch: [   12 /    25] LR: 0.100000
+Batch: [  500 |  1563] loss: 8.721
+Batch: [ 1000 |  1563] loss: 8.716
+Batch: [ 1500 |  1563] loss: 8.701
+Test Loss: 0.10070 Test Acc: 29.57%
+Updating learning rate: 0.05
+Epoch: [   13 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 7.944
+Batch: [ 1000 |  1563] loss: 7.649
+Batch: [ 1500 |  1563] loss: 7.511
+Test Loss: 0.08555 Test Acc: 44.62%
+Epoch: [   14 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 7.057
+Batch: [ 1000 |  1563] loss: 6.944
+Batch: [ 1500 |  1563] loss: 6.687
+Test Loss: 0.08331 Test Acc: 52.27%
+Epoch: [   15 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 6.470
+Batch: [ 1000 |  1563] loss: 6.439
+Batch: [ 1500 |  1563] loss: 6.126
+Test Loss: 0.07266 Test Acc: 58.02%
+Epoch: [   16 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 5.834
+Batch: [ 1000 |  1563] loss: 5.801
+Batch: [ 1500 |  1563] loss: 5.622
+Test Loss: 0.06340 Test Acc: 65.17%
+Epoch: [   17 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 5.459
+Batch: [ 1000 |  1563] loss: 5.442
+Batch: [ 1500 |  1563] loss: 5.314
+Test Loss: 0.05945 Test Acc: 67.22%
+Epoch: [   18 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 5.071
+Batch: [ 1000 |  1563] loss: 5.145
+Batch: [ 1500 |  1563] loss: 5.063
+Test Loss: 0.06567 Test Acc: 64.46%
+Epoch: [   19 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 4.796
+Batch: [ 1000 |  1563] loss: 4.781
+Batch: [ 1500 |  1563] loss: 4.732
+Test Loss: 0.05374 Test Acc: 71.87%
+Epoch: [   20 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 4.568
+Batch: [ 1000 |  1563] loss: 4.564
+Batch: [ 1500 |  1563] loss: 4.484
+Test Loss: 0.05311 Test Acc: 71.12%
+Epoch: [   21 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 4.385
+Batch: [ 1000 |  1563] loss: 4.302
+Batch: [ 1500 |  1563] loss: 4.285
+Test Loss: 0.05080 Test Acc: 74.29%
+Epoch: [   22 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 4.069
+Batch: [ 1000 |  1563] loss: 4.105
+Batch: [ 1500 |  1563] loss: 4.096
+Test Loss: 0.04807 Test Acc: 75.20%
+Epoch: [   23 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 3.959
+Batch: [ 1000 |  1563] loss: 3.898
+Batch: [ 1500 |  1563] loss: 3.916
+Test Loss: 0.04743 Test Acc: 75.81%
+Epoch: [   24 /    25] LR: 0.050000
+Batch: [  500 |  1563] loss: 3.738
+Batch: [ 1000 |  1563] loss: 3.847
+Batch: [ 1500 |  1563] loss: 3.797
+Test Loss: 0.04609 Test Acc: 76.42%
+Updating learning rate: 0.025
+Epoch: [   25 /    25] LR: 0.025000
+Batch: [  500 |  1563] loss: 2.952
+Batch: [ 1000 |  1563] loss: 2.906
+Batch: [ 1500 |  1563] loss: 2.735
+Test Loss: 0.03466 Test Acc: 82.00%
+Checkpoint saved
+
+
+

## 4. Apply Quantization

+

quant_modules.initialize() will ensure quantized version of modules will be called instead of original modules. For example, when you define a model with convolution, linear, pooling layers, QuantConv2d, QuantLinear and QuantPooling will be called. QuantConv2d basically wraps quantizer nodes around inputs and weights of regular Conv2d. Please refer to all the quantized modules in pytorch-quantization toolkit for more information. A QuantConv2d is represented in +pytorch-quantization toolkit as follows.

+
def forward(self, input):
+        # the actual quantization happens in the next level of the class hierarchy
+        quant_input, quant_weight = self._quant(input)
+
+        if self.padding_mode == 'circular':
+            expanded_padding = ((self.padding[1] + 1) // 2, self.padding[1] // 2,
+                                (self.padding[0] + 1) // 2, self.padding[0] // 2)
+            output = F.conv2d(F.pad(quant_input, expanded_padding, mode='circular'),
+                              quant_weight, self.bias, self.stride,
+                              _pair(0), self.dilation, self.groups)
+        else:
+            output = F.conv2d(quant_input, quant_weight, self.bias, self.stride, self.padding, self.dilation,
+                              self.groups)
+
+        return output
+
+
+
+
[7]:
+
+
+
quant_modules.initialize()
+
+
+
+
+
[8]:
+
+
+
# All the regular conv, FC layers will be converted to their quantozed counterparts due to quant_modules.initialize()
+qat_model = vgg16(num_classes=len(classes), init_weights=False)
+qat_model = qat_model.cuda()
+
+
+
+
+
[9]:
+
+
+
# vgg16_base_ckpt is the checkpoint generated from Step 3 : Training a baseline VGG16 model.
+ckpt = torch.load("./vgg16_base_ckpt")
+modified_state_dict={}
+for key, val in ckpt["model_state_dict"].items():
+    # Remove 'module.' from the key names
+    if key.startswith('module'):
+        modified_state_dict[key[7:]] = val
+    else:
+        modified_state_dict[key] = val
+
+# Load the pre-trained checkpoint
+qat_model.load_state_dict(modified_state_dict)
+opt.load_state_dict(ckpt["opt_state_dict"])
+
+
+
+

## 5. Model Calibration

+

The quantizer nodes introduced in the model around desired layers capture the dynamic range (min_value, max_value) that is observed by the layer. Calibration is the process of computing the dynamic range of these layers by passing calibration data, which is usually a subset of training or validation data. There are different ways of calibration: max, histogram and entropy. We use max calibration technique as it is simple and effective.

+
+
[10]:
+
+
+
def compute_amax(model, **kwargs):
+    # Load calib result
+    for name, module in model.named_modules():
+        if isinstance(module, quant_nn.TensorQuantizer):
+            if module._calibrator is not None:
+                if isinstance(module._calibrator, calib.MaxCalibrator):
+                    module.load_calib_amax()
+                else:
+                    module.load_calib_amax(**kwargs)
+            print(F"{name:40}: {module}")
+    model.cuda()
+
+def collect_stats(model, data_loader, num_batches):
+    """Feed data to the network and collect statistics"""
+    # Enable calibrators
+    for name, module in model.named_modules():
+        if isinstance(module, quant_nn.TensorQuantizer):
+            if module._calibrator is not None:
+                module.disable_quant()
+                module.enable_calib()
+            else:
+                module.disable()
+
+    # Feed data to the network for collecting stats
+    for i, (image, _) in tqdm(enumerate(data_loader), total=num_batches):
+        model(image.cuda())
+        if i >= num_batches:
+            break
+
+    # Disable calibrators
+    for name, module in model.named_modules():
+        if isinstance(module, quant_nn.TensorQuantizer):
+            if module._calibrator is not None:
+                module.enable_quant()
+                module.disable_calib()
+            else:
+                module.enable()
+
+def calibrate_model(model, model_name, data_loader, num_calib_batch, calibrator, hist_percentile, out_dir):
+    """
+        Feed data to the network and calibrate.
+        Arguments:
+            model: classification model
+            model_name: name to use when creating state files
+            data_loader: calibration data set
+            num_calib_batch: amount of calibration passes to perform
+            calibrator: type of calibration to use (max/histogram)
+            hist_percentile: percentiles to be used for historgram calibration
+            out_dir: dir to save state files in
+    """
+
+    if num_calib_batch > 0:
+        print("Calibrating model")
+        with torch.no_grad():
+            collect_stats(model, data_loader, num_calib_batch)
+
+        if not calibrator == "histogram":
+            compute_amax(model, method="max")
+            calib_output = os.path.join(
+                out_dir,
+                F"{model_name}-max-{num_calib_batch*data_loader.batch_size}.pth")
+            torch.save(model.state_dict(), calib_output)
+        else:
+            for percentile in hist_percentile:
+                print(F"{percentile} percentile calibration")
+                compute_amax(model, method="percentile")
+                calib_output = os.path.join(
+                    out_dir,
+                    F"{model_name}-percentile-{percentile}-{num_calib_batch*data_loader.batch_size}.pth")
+                torch.save(model.state_dict(), calib_output)
+
+            for method in ["mse", "entropy"]:
+                print(F"{method} calibration")
+                compute_amax(model, method=method)
+                calib_output = os.path.join(
+                    out_dir,
+                    F"{model_name}-{method}-{num_calib_batch*data_loader.batch_size}.pth")
+                torch.save(model.state_dict(), calib_output)
+
+
+
+
+
[11]:
+
+
+
#Calibrate the model using max calibration technique.
+with torch.no_grad():
+    calibrate_model(
+        model=qat_model,
+        model_name="vgg16",
+        data_loader=training_dataloader,
+        num_calib_batch=32,
+        calibrator="max",
+        hist_percentile=[99.9, 99.99, 99.999, 99.9999],
+        out_dir="./")
+
+
+
+
+
+
+
+
+Calibrating model
+
+
+
+
+
+
+
+100%|███████████████████████████████████████████████████████| 32/32 [00:00<00:00, 96.04it/s]
+WARNING: Logging before flag parsing goes to stderr.
+W1109 04:01:43.512364 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.513354 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.514046 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.514638 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.515270 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.515859 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.516441 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.517009 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.517600 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.518167 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.518752 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.519333 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.519911 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.520473 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.521038 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.521596 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.522170 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.522742 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.523360 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.523957 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.524581 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.525059 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.525366 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.525675 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.525962 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.526257 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.526566 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.526885 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.527188 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.527489 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.527792 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.528097 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.528387 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator
+W1109 04:01:43.528834 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.529163 139704147265344 tensor_quantizer.py:238] Call .cuda() if running on GPU after loading calibrated amax.
+W1109 04:01:43.532748 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).
+W1109 04:01:43.533468 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.534033 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).
+W1109 04:01:43.534684 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.535320 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).
+W1109 04:01:43.535983 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.536569 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).
+W1109 04:01:43.537248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.537833 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).
+W1109 04:01:43.538480 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.539074 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).
+W1109 04:01:43.539724 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.540307 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).
+W1109 04:01:43.540952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.541534 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.542075 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.542596 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.543248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.543719 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.544424 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.544952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.545530 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.546114 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.546713 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.547292 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).
+W1109 04:01:43.547902 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.548453 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.549015 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).
+W1109 04:01:43.549665 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.550436 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).
+W1109 04:01:43.551925 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).
+W1109 04:01:43.553105 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([10, 1]).
+
+
+
+
+
+
+
+features.0._input_quantizer             : TensorQuantizer(8bit narrow fake per-tensor amax=2.7537 calibrator=MaxCalibrator scale=1.0 quant)
+features.0._weight_quantizer            : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0263, 2.7454](64) calibrator=MaxCalibrator scale=1.0 quant)
+features.3._input_quantizer             : TensorQuantizer(8bit narrow fake per-tensor amax=27.5676 calibrator=MaxCalibrator scale=1.0 quant)
+features.3._weight_quantizer            : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0169, 1.8204](64) calibrator=MaxCalibrator scale=1.0 quant)
+features.7._input_quantizer             : TensorQuantizer(8bit narrow fake per-tensor amax=15.2002 calibrator=MaxCalibrator scale=1.0 quant)
+features.7._weight_quantizer            : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0493, 1.3207](128) calibrator=MaxCalibrator scale=1.0 quant)
+features.10._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=7.7376 calibrator=MaxCalibrator scale=1.0 quant)
+features.10._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0163, 0.9624](128) calibrator=MaxCalibrator scale=1.0 quant)
+features.14._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=8.8351 calibrator=MaxCalibrator scale=1.0 quant)
+features.14._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0622, 0.8791](256) calibrator=MaxCalibrator scale=1.0 quant)
+features.17._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=12.5746 calibrator=MaxCalibrator scale=1.0 quant)
+features.17._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0505, 0.5117](256) calibrator=MaxCalibrator scale=1.0 quant)
+features.20._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=9.7203 calibrator=MaxCalibrator scale=1.0 quant)
+features.20._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0296, 0.5335](256) calibrator=MaxCalibrator scale=1.0 quant)
+features.24._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=8.9367 calibrator=MaxCalibrator scale=1.0 quant)
+features.24._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0220, 0.3763](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.27._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=6.6539 calibrator=MaxCalibrator scale=1.0 quant)
+features.27._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0151, 0.1777](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.30._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=3.7099 calibrator=MaxCalibrator scale=1.0 quant)
+features.30._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0087, 0.1906](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.34._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=4.0491 calibrator=MaxCalibrator scale=1.0 quant)
+features.34._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0106, 0.1971](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.37._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=2.1531 calibrator=MaxCalibrator scale=1.0 quant)
+features.37._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0070, 0.2305](512) calibrator=MaxCalibrator scale=1.0 quant)
+features.40._input_quantizer            : TensorQuantizer(8bit narrow fake per-tensor amax=3.3631 calibrator=MaxCalibrator scale=1.0 quant)
+features.40._weight_quantizer           : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0023, 0.4726](512) calibrator=MaxCalibrator scale=1.0 quant)
+avgpool._input_quantizer                : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)
+classifier.0._input_quantizer           : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)
+classifier.0._weight_quantizer          : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0026, 0.5320](4096) calibrator=MaxCalibrator scale=1.0 quant)
+classifier.3._input_quantizer           : TensorQuantizer(8bit narrow fake per-tensor amax=6.6733 calibrator=MaxCalibrator scale=1.0 quant)
+classifier.3._weight_quantizer          : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0018, 0.5172](4096) calibrator=MaxCalibrator scale=1.0 quant)
+classifier.6._input_quantizer           : TensorQuantizer(8bit narrow fake per-tensor amax=9.4352 calibrator=MaxCalibrator scale=1.0 quant)
+classifier.6._weight_quantizer          : TensorQuantizer(8bit narrow fake axis=0 amax=[0.3877, 0.5620](10) calibrator=MaxCalibrator scale=1.0 quant)
+
+
+

## 6. Quantization Aware Training

+

In this phase, we finetune the model weights and leave the quantizer node values frozen. The dynamic ranges for each layer obtained from the calibration are kept constant while the weights of the model are finetuned to be close to the accuracy of original FP32 model (model without quantizer nodes) is preserved. Usually the finetuning of QAT model should be quick compared to the full training of the original model. Use QAT to fine-tune for around 10% of the original training schedule with an +annealing learning-rate. Please refer to Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT for detailed recommendations. For this VGG model, it is enough to finetune for 1 epoch to get acceptable accuracy. During finetuning with QAT, the quantization is applied as a composition of max, clamp, round and mul ops.

+
# amax is absolute maximum value for an input
+# The upper bound for integer quantization (127 for int8)
+max_bound = torch.tensor((2.0**(num_bits - 1 + int(unsigned))) - 1.0, device=amax.device)
+scale = max_bound / amax
+outputs = torch.clamp((inputs * scale).round_(), min_bound, max_bound)
+
+
+

tensor_quant function in pytorch_quantization toolkit is responsible for the above tensor quantization. Usually, per channel quantization is recommended for weights, while per tensor quantization is recommended for activations in a network. During inference, we use torch.fake_quantize_per_tensor_affine and torch.fake_quantize_per_channel_affine to perform quantization as this is easier to convert into corresponding TensorRT operators. Please refer to next sections for more details on +how these operators are exported in torchscript and converted in Torch-TensorRT.

+
+
[12]:
+
+
+
# Finetune the QAT model for 1 epoch
+num_epochs=1
+for epoch in range(num_epochs):
+    adjust_lr(opt, epoch)
+    print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state["lr"]))
+
+    train(qat_model, training_dataloader, crit, opt, epoch)
+    test_loss, test_acc = test(qat_model, testing_dataloader, crit, epoch)
+
+    print("Test Loss: {:.5f} Test Acc: {:.2f}%".format(test_loss, 100 * test_acc))
+
+save_checkpoint({'epoch': epoch + 1,
+                 'model_state_dict': qat_model.state_dict(),
+                 'acc': test_acc,
+                 'opt_state_dict': opt.state_dict(),
+                 'state': state},
+                ckpt_path="vgg16_qat_ckpt")
+
+
+
+
+
+
+
+
+Updating learning rate: 0.1
+Epoch: [    1 /     1] LR: 0.100000
+Batch: [  500 |  1563] loss: 2.635
+Batch: [ 1000 |  1563] loss: 2.655
+Batch: [ 1500 |  1563] loss: 2.646
+Test Loss: 0.03291 Test Acc: 82.98%
+Checkpoint saved
+
+
+

## 7. Export to Torchscript Export the model to Torch script. Trace the model and convert it into torchscript for deployment. To learn more about Torchscript, please refer to https://pytorch.org/docs/stable/jit.html. Setting quant_nn.TensorQuantizer.use_fb_fake_quant = True enables the QAT model to use torch.fake_quantize_per_tensor_affine and torch.fake_quantize_per_channel_affine operators instead of tensor_quant function to export quantization operators. In torchscript, they +are represented as aten::fake_quantize_per_tensor_affine and aten::fake_quantize_per_channel_affine.

+
+
[13]:
+
+
+
quant_nn.TensorQuantizer.use_fb_fake_quant = True
+with torch.no_grad():
+    data = iter(testing_dataloader)
+    images, _ = data.next()
+    jit_model = torch.jit.trace(qat_model, images.to("cuda"))
+    torch.jit.save(jit_model, "trained_vgg16_qat.jit.pt")
+
+
+
+
+
+
+
+
+E1109 04:02:37.101168 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.102248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.107194 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.107625 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.115269 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.115740 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.117969 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.118358 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.126382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.126834 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.128674 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.129518 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.135453 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.135936 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.137858 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.138366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.145539 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.146053 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.147871 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.148353 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.154252 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.154685 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.156558 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.157159 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.163197 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.163676 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.165549 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.165991 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.173305 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.173926 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.176034 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.176697 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.182843 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.183426 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.185377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.185962 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.191966 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.192424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.194325 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.194817 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.201988 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.202665 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.204763 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.205461 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.211393 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.211987 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.213899 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.214450 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.220892 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.221533 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.223519 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.224037 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.233809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.234434 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.238212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.239042 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.241022 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.241654 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.247820 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.248445 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.250366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.250959 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.257248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.257854 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.259968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.260660 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+W1109 04:02:37.268160 139704147265344 tensor_quantizer.py:280] Use Pytorch's native experimental fake quantization.
+/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:285: TracerWarning: Converting a tensor to a Python number might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
+  inputs, amax.item() / bound, 0,
+/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:291: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
+  quant_dim = list(amax.shape).index(list(amax_sequeeze.shape)[0])
+E1109 04:02:37.329273 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.330212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.332529 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.333365 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.339547 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.340248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.342257 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.342890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.350619 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.351372 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.353470 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.354121 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.360090 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.360806 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.362803 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.363274 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.370369 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.371057 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.373071 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.373766 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.379890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.380538 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.382532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.383128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.389077 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.389760 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.391815 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.392399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.399809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.400472 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.402399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.402939 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.408818 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.409424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.411513 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.412097 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.418537 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.419128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.421343 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.421946 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.429382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.430156 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.432259 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.433079 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.439297 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.440027 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.442149 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.442826 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.449377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.449968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.452122 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.452754 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.462532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.463295 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.466963 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.467725 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.469692 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.470336 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.476204 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.476738 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.478809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.479375 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.485666 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.486219 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.488416 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+E1109 04:02:37.488986 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!
+
+
+

## 8. Inference using Torch-TensorRT In this phase, we run the exported torchscript graph of VGG QAT using Torch-TensorRT. Torch-TensorRT is a Pytorch-TensorRT compiler which converts Torchscript graphs into TensorRT. TensorRT 8.0 supports inference of quantization aware trained models and introduces new APIs; QuantizeLayer and DequantizeLayer. We can observe the entire VGG QAT graph quantization nodes from the debug log of Torch-TensorRT. To enable debug logging, you can set +torch_tensorrt.logging.set_reportable_log_level(torch_tensorrt.logging.Level.Debug). For example, QuantConv2d layer from pytorch_quantization toolkit is represented as follows in Torchscript

+
%quant_input : Tensor = aten::fake_quantize_per_tensor_affine(%x, %636, %637, %638, %639)
+%quant_weight : Tensor = aten::fake_quantize_per_channel_affine(%394, %640, %641, %637, %638, %639)
+%input.2 : Tensor = aten::_convolution(%quant_input, %quant_weight, %395, %687, %688, %689, %643, %690, %642, %643, %643, %644, %644)
+
+
+

aten::fake_quantize_per_*_affine is converted into QuantizeLayer + DequantizeLayer in Torch-TensorRT internally. Please refer to quantization op converters in Torch-TensorRT.

+
+
[14]:
+
+
+
qat_model = torch.jit.load("trained_vgg16_qat.jit.pt").eval()
+
+compile_spec = {"inputs": [torch_tensorrt.Input([16, 3, 32, 32])],
+                "enabled_precisions": torch.int8,
+                }
+trt_mod = torch_tensorrt.compile(qat_model, **compile_spec)
+
+test_loss, test_acc = test(trt_mod, testing_dataloader, crit, 0)
+print("VGG QAT accuracy using TensorRT: {:.2f}%".format(100 * test_acc))
+
+
+
+
+
+
+
+
+WARNING: [Torch-TensorRT] - Cannot infer input type from calcuations in graph for input x.2. Assuming it is Float32. If not, specify input type explicity
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter
+WARNING: [Torch-TensorRT TorchScript Conversion Context] - Detected invalid timing cache, setup a local cache instead
+
+
+
+
+
+
+
+VGG QAT accuracy using TensorRT: 82.97%
+
+
+
+

Performance benchmarking

+
+
[15]:
+
+
+
import time
+import numpy as np
+
+import torch.backends.cudnn as cudnn
+cudnn.benchmark = True
+
+# Helper function to benchmark the model
+def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):
+    input_data = torch.randn(input_shape)
+    input_data = input_data.to("cuda")
+    if dtype=='fp16':
+        input_data = input_data.half()
+
+    print("Warm up ...")
+    with torch.no_grad():
+        for _ in range(nwarmup):
+            features = model(input_data)
+    torch.cuda.synchronize()
+    print("Start timing ...")
+    timings = []
+    with torch.no_grad():
+        for i in range(1, nruns+1):
+            start_time = time.time()
+            output = model(input_data)
+            torch.cuda.synchronize()
+            end_time = time.time()
+            timings.append(end_time - start_time)
+            if i%100==0:
+                print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))
+
+    print("Input shape:", input_data.size())
+    print("Output shape:", output.shape)
+    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))
+
+
+
+
+
[16]:
+
+
+
benchmark(jit_model, input_shape=(16, 3, 32, 32))
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, avg batch time 4.83 ms
+Iteration 200/1000, avg batch time 4.83 ms
+Iteration 300/1000, avg batch time 4.83 ms
+Iteration 400/1000, avg batch time 4.83 ms
+Iteration 500/1000, avg batch time 4.83 ms
+Iteration 600/1000, avg batch time 4.83 ms
+Iteration 700/1000, avg batch time 4.83 ms
+Iteration 800/1000, avg batch time 4.83 ms
+Iteration 900/1000, avg batch time 4.83 ms
+Iteration 1000/1000, avg batch time 4.83 ms
+Input shape: torch.Size([16, 3, 32, 32])
+Output shape: torch.Size([16, 10])
+Average batch time: 4.83 ms
+
+
+
+
[17]:
+
+
+
benchmark(trt_mod, input_shape=(16, 3, 32, 32))
+
+
+
+
+
+
+
+
+Warm up ...
+Start timing ...
+Iteration 100/1000, avg batch time 1.87 ms
+Iteration 200/1000, avg batch time 1.84 ms
+Iteration 300/1000, avg batch time 1.85 ms
+Iteration 400/1000, avg batch time 1.83 ms
+Iteration 500/1000, avg batch time 1.82 ms
+Iteration 600/1000, avg batch time 1.81 ms
+Iteration 700/1000, avg batch time 1.81 ms
+Iteration 800/1000, avg batch time 1.80 ms
+Iteration 900/1000, avg batch time 1.80 ms
+Iteration 1000/1000, avg batch time 1.79 ms
+Input shape: torch.Size([16, 3, 32, 32])
+Output shape: torch.Size([16, 10])
+Average batch time: 1.79 ms
+
+
+

## 9. References * Very Deep Convolution Networks for large scale Image Recognition * Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT * QAT workflow for VGG16 * Deploying VGG QAT model in C++ using Torch-TensorRT * Pytorch-quantization toolkit from NVIDIA * Pytorch quantization toolkit userguide * Quantization basics

+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_notebooks/vgg-qat.ipynb b/docs/v1.2.0/_notebooks/vgg-qat.ipynb new file mode 100644 index 0000000000..cca771ad92 --- /dev/null +++ b/docs/v1.2.0/_notebooks/vgg-qat.ipynb @@ -0,0 +1,1200 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8033b2eb", + "metadata": {}, + "source": [ + "# Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "id": "69ec3ca7", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "Quantization Aware training (QAT) simulates quantization during training by quantizing weights and activation layers. This will help to reduce the loss in accuracy when we convert the network trained in FP32 to INT8 for faster inference. QAT introduces additional nodes in the graph which will be used to learn the dynamic ranges of weights and activation layers. In this notebook, we illustrate the following steps from training to inference of a QAT model in Torch-TensorRT.\n", + "\n", + "1. [Requirements](#1)\n", + "2. [VGG16 Overview](#2)\n", + "3. [Training a baseline VGG16 model](#3)\n", + "4. [Apply Quantization](#4)\n", + "5. [Model calibration](#5)\n", + "6. [Quantization Aware training](#6)\n", + "7. [Export to Torchscript](#7)\n", + "8. [Inference using Torch-TensorRT](#8)\n", + "8. [References](#8)" + ] + }, + { + "cell_type": "markdown", + "id": "79655ea8", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "Please install the required dependencies and import these libraries accordingly" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14a72941", + "metadata": {}, + "outputs": [], + "source": [ + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6493e915", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.1.0\n" + ] + } + ], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "import torch.optim as optim\n", + "import torch.utils.data as data\n", + "import torchvision.transforms as transforms\n", + "import torchvision.datasets as datasets\n", + "import torch_tensorrt\n", + "\n", + "from torch.utils.tensorboard import SummaryWriter\n", + "\n", + "import pytorch_quantization\n", + "from pytorch_quantization import nn as quant_nn\n", + "from pytorch_quantization import quant_modules\n", + "from pytorch_quantization.tensor_quant import QuantDescriptor\n", + "from pytorch_quantization import calib\n", + "from tqdm import tqdm\n", + "\n", + "print(pytorch_quantization.__version__)\n", + "\n", + "import os\n", + "import sys\n", + "sys.path.insert(0, \"../examples/int8/training/vgg16\")\n", + "from vgg16 import vgg16\n" + ] + }, + { + "cell_type": "markdown", + "id": "4de5060a", + "metadata": {}, + "source": [ + "\n", + "## 2. VGG16 Overview\n", + "### Very Deep Convolutional Networks for Large-Scale Image Recognition\n", + "VGG is one of the earliest family of image classification networks that first used small (3x3) convolution filters and achieved significant improvements on ImageNet recognition challenge. The network architecture looks as follows\n", + "\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "7a5afc49", + "metadata": {}, + "source": [ + "\n", + "## 3. Training a baseline VGG16 model\n", + "We train VGG16 on CIFAR10 dataset. Define training and testing datasets and dataloaders. This will download the CIFAR 10 data in your `data` directory. Data preprocessing is performed using `torchvision` transforms. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5d2c4c45", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Files already downloaded and verified\n", + "Files already downloaded and verified\n" + ] + } + ], + "source": [ + "classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n", + "\n", + "# ========== Define Training dataset and dataloaders =============#\n", + "training_dataset = datasets.CIFAR10(root='./data',\n", + " train=True,\n", + " download=True,\n", + " transform=transforms.Compose([\n", + " transforms.RandomCrop(32, padding=4),\n", + " transforms.RandomHorizontalFlip(),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n", + " ]))\n", + "\n", + "training_dataloader = torch.utils.data.DataLoader(training_dataset,\n", + " batch_size=32,\n", + " shuffle=True,\n", + " num_workers=2)\n", + "\n", + "# ========== Define Testing dataset and dataloaders =============#\n", + "testing_dataset = datasets.CIFAR10(root='./data',\n", + " train=False,\n", + " download=True,\n", + " transform=transforms.Compose([\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n", + " ]))\n", + "\n", + "testing_dataloader = torch.utils.data.DataLoader(testing_dataset,\n", + " batch_size=16,\n", + " shuffle=False,\n", + " num_workers=2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2bd092b3", + "metadata": {}, + "outputs": [], + "source": [ + "def train(model, dataloader, crit, opt, epoch):\n", + "# global writer\n", + " model.train()\n", + " running_loss = 0.0\n", + " for batch, (data, labels) in enumerate(dataloader):\n", + " data, labels = data.cuda(), labels.cuda(non_blocking=True)\n", + " opt.zero_grad()\n", + " out = model(data)\n", + " loss = crit(out, labels)\n", + " loss.backward()\n", + " opt.step()\n", + "\n", + " running_loss += loss.item()\n", + " if batch % 500 == 499:\n", + " print(\"Batch: [%5d | %5d] loss: %.3f\" % (batch + 1, len(dataloader), running_loss / 100))\n", + " running_loss = 0.0\n", + " \n", + "def test(model, dataloader, crit, epoch):\n", + " global writer\n", + " global classes\n", + " total = 0\n", + " correct = 0\n", + " loss = 0.0\n", + " class_probs = []\n", + " class_preds = []\n", + " model.eval()\n", + " with torch.no_grad():\n", + " for data, labels in dataloader:\n", + " data, labels = data.cuda(), labels.cuda(non_blocking=True)\n", + " out = model(data)\n", + " loss += crit(out, labels)\n", + " preds = torch.max(out, 1)[1]\n", + " class_probs.append([F.softmax(i, dim=0) for i in out])\n", + " class_preds.append(preds)\n", + " total += labels.size(0)\n", + " correct += (preds == labels).sum().item()\n", + "\n", + " test_probs = torch.cat([torch.stack(batch) for batch in class_probs])\n", + " test_preds = torch.cat(class_preds)\n", + "\n", + " return loss / total, correct / total\n", + "\n", + "def save_checkpoint(state, ckpt_path=\"checkpoint.pth\"):\n", + " torch.save(state, ckpt_path)\n", + " print(\"Checkpoint saved\")" + ] + }, + { + "cell_type": "markdown", + "id": "c80a86cc", + "metadata": {}, + "source": [ + "*Define the VGG model that we are going to perfom QAT on.*" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8c564b8f", + "metadata": {}, + "outputs": [], + "source": [ + "# CIFAR 10 has 10 classes\n", + "model = vgg16(num_classes=len(classes), init_weights=False)\n", + "model = model.cuda()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "abc00452", + "metadata": {}, + "outputs": [], + "source": [ + "# Declare Learning rate\n", + "lr = 0.1\n", + "state = {}\n", + "state[\"lr\"] = lr\n", + "\n", + "# Use cross entropy loss for classification and SGD optimizer\n", + "crit = nn.CrossEntropyLoss()\n", + "opt = optim.SGD(model.parameters(), lr=state[\"lr\"], momentum=0.9, weight_decay=1e-4)\n", + "\n", + "\n", + "# Adjust learning rate based on epoch number\n", + "def adjust_lr(optimizer, epoch):\n", + " global state\n", + " new_lr = lr * (0.5**(epoch // 12)) if state[\"lr\"] > 1e-7 else state[\"lr\"]\n", + " if new_lr != state[\"lr\"]:\n", + " state[\"lr\"] = new_lr\n", + " print(\"Updating learning rate: {}\".format(state[\"lr\"]))\n", + " for param_group in optimizer.param_groups:\n", + " param_group[\"lr\"] = state[\"lr\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d80865a2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch: [ 1 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 13.288\n", + "Batch: [ 1000 | 1563] loss: 11.345\n", + "Batch: [ 1500 | 1563] loss: 11.008\n", + "Test Loss: 0.13388 Test Acc: 13.23%\n", + "Epoch: [ 2 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 10.742\n", + "Batch: [ 1000 | 1563] loss: 10.311\n", + "Batch: [ 1500 | 1563] loss: 10.141\n", + "Test Loss: 0.11888 Test Acc: 23.96%\n", + "Epoch: [ 3 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.877\n", + "Batch: [ 1000 | 1563] loss: 9.821\n", + "Batch: [ 1500 | 1563] loss: 9.818\n", + "Test Loss: 0.11879 Test Acc: 24.68%\n", + "Epoch: [ 4 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.677\n", + "Batch: [ 1000 | 1563] loss: 9.613\n", + "Batch: [ 1500 | 1563] loss: 9.504\n", + "Test Loss: 0.11499 Test Acc: 23.68%\n", + "Epoch: [ 5 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.560\n", + "Batch: [ 1000 | 1563] loss: 9.536\n", + "Batch: [ 1500 | 1563] loss: 9.309\n", + "Test Loss: 0.10990 Test Acc: 27.84%\n", + "Epoch: [ 6 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.254\n", + "Batch: [ 1000 | 1563] loss: 9.234\n", + "Batch: [ 1500 | 1563] loss: 9.188\n", + "Test Loss: 0.11594 Test Acc: 23.29%\n", + "Epoch: [ 7 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.141\n", + "Batch: [ 1000 | 1563] loss: 9.110\n", + "Batch: [ 1500 | 1563] loss: 9.013\n", + "Test Loss: 0.10732 Test Acc: 29.24%\n", + "Epoch: [ 8 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.120\n", + "Batch: [ 1000 | 1563] loss: 9.086\n", + "Batch: [ 1500 | 1563] loss: 8.948\n", + "Test Loss: 0.10732 Test Acc: 27.24%\n", + "Epoch: [ 9 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.941\n", + "Batch: [ 1000 | 1563] loss: 8.997\n", + "Batch: [ 1500 | 1563] loss: 9.028\n", + "Test Loss: 0.11299 Test Acc: 25.52%\n", + "Epoch: [ 10 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.927\n", + "Batch: [ 1000 | 1563] loss: 8.837\n", + "Batch: [ 1500 | 1563] loss: 8.860\n", + "Test Loss: 0.10130 Test Acc: 34.61%\n", + "Epoch: [ 11 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.953\n", + "Batch: [ 1000 | 1563] loss: 8.738\n", + "Batch: [ 1500 | 1563] loss: 8.724\n", + "Test Loss: 0.10018 Test Acc: 32.27%\n", + "Epoch: [ 12 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.721\n", + "Batch: [ 1000 | 1563] loss: 8.716\n", + "Batch: [ 1500 | 1563] loss: 8.701\n", + "Test Loss: 0.10070 Test Acc: 29.57%\n", + "Updating learning rate: 0.05\n", + "Epoch: [ 13 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 7.944\n", + "Batch: [ 1000 | 1563] loss: 7.649\n", + "Batch: [ 1500 | 1563] loss: 7.511\n", + "Test Loss: 0.08555 Test Acc: 44.62%\n", + "Epoch: [ 14 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 7.057\n", + "Batch: [ 1000 | 1563] loss: 6.944\n", + "Batch: [ 1500 | 1563] loss: 6.687\n", + "Test Loss: 0.08331 Test Acc: 52.27%\n", + "Epoch: [ 15 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 6.470\n", + "Batch: [ 1000 | 1563] loss: 6.439\n", + "Batch: [ 1500 | 1563] loss: 6.126\n", + "Test Loss: 0.07266 Test Acc: 58.02%\n", + "Epoch: [ 16 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.834\n", + "Batch: [ 1000 | 1563] loss: 5.801\n", + "Batch: [ 1500 | 1563] loss: 5.622\n", + "Test Loss: 0.06340 Test Acc: 65.17%\n", + "Epoch: [ 17 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.459\n", + "Batch: [ 1000 | 1563] loss: 5.442\n", + "Batch: [ 1500 | 1563] loss: 5.314\n", + "Test Loss: 0.05945 Test Acc: 67.22%\n", + "Epoch: [ 18 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.071\n", + "Batch: [ 1000 | 1563] loss: 5.145\n", + "Batch: [ 1500 | 1563] loss: 5.063\n", + "Test Loss: 0.06567 Test Acc: 64.46%\n", + "Epoch: [ 19 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.796\n", + "Batch: [ 1000 | 1563] loss: 4.781\n", + "Batch: [ 1500 | 1563] loss: 4.732\n", + "Test Loss: 0.05374 Test Acc: 71.87%\n", + "Epoch: [ 20 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.568\n", + "Batch: [ 1000 | 1563] loss: 4.564\n", + "Batch: [ 1500 | 1563] loss: 4.484\n", + "Test Loss: 0.05311 Test Acc: 71.12%\n", + "Epoch: [ 21 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.385\n", + "Batch: [ 1000 | 1563] loss: 4.302\n", + "Batch: [ 1500 | 1563] loss: 4.285\n", + "Test Loss: 0.05080 Test Acc: 74.29%\n", + "Epoch: [ 22 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.069\n", + "Batch: [ 1000 | 1563] loss: 4.105\n", + "Batch: [ 1500 | 1563] loss: 4.096\n", + "Test Loss: 0.04807 Test Acc: 75.20%\n", + "Epoch: [ 23 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 3.959\n", + "Batch: [ 1000 | 1563] loss: 3.898\n", + "Batch: [ 1500 | 1563] loss: 3.916\n", + "Test Loss: 0.04743 Test Acc: 75.81%\n", + "Epoch: [ 24 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 3.738\n", + "Batch: [ 1000 | 1563] loss: 3.847\n", + "Batch: [ 1500 | 1563] loss: 3.797\n", + "Test Loss: 0.04609 Test Acc: 76.42%\n", + "Updating learning rate: 0.025\n", + "Epoch: [ 25 / 25] LR: 0.025000\n", + "Batch: [ 500 | 1563] loss: 2.952\n", + "Batch: [ 1000 | 1563] loss: 2.906\n", + "Batch: [ 1500 | 1563] loss: 2.735\n", + "Test Loss: 0.03466 Test Acc: 82.00%\n", + "Checkpoint saved\n" + ] + } + ], + "source": [ + "# Train the model for 25 epochs to get ~80% accuracy.\n", + "num_epochs=25\n", + "for epoch in range(num_epochs):\n", + " adjust_lr(opt, epoch)\n", + " print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state[\"lr\"]))\n", + "\n", + " train(model, training_dataloader, crit, opt, epoch)\n", + " test_loss, test_acc = test(model, testing_dataloader, crit, epoch)\n", + "\n", + " print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n", + " \n", + "save_checkpoint({'epoch': epoch + 1,\n", + " 'model_state_dict': model.state_dict(),\n", + " 'acc': test_acc,\n", + " 'opt_state_dict': opt.state_dict(),\n", + " 'state': state},\n", + " ckpt_path=\"vgg16_base_ckpt\")" + ] + }, + { + "cell_type": "markdown", + "id": "e1044537", + "metadata": {}, + "source": [ + "\n", + "## 4. Apply Quantization" + ] + }, + { + "cell_type": "markdown", + "id": "c33b7f4e", + "metadata": {}, + "source": [ + "`quant_modules.initialize()` will ensure quantized version of modules will be called instead of original modules. For example, when you define a model with convolution, linear, pooling layers, `QuantConv2d`, `QuantLinear` and `QuantPooling` will be called. `QuantConv2d` basically wraps quantizer nodes around inputs and weights of regular `Conv2d`. Please refer to all the quantized modules in pytorch-quantization toolkit for more information. A `QuantConv2d` is represented in `pytorch-quantization` toolkit as follows.\n", + "\n", + "```\n", + "def forward(self, input):\n", + " # the actual quantization happens in the next level of the class hierarchy\n", + " quant_input, quant_weight = self._quant(input)\n", + "\n", + " if self.padding_mode == 'circular':\n", + " expanded_padding = ((self.padding[1] + 1) // 2, self.padding[1] // 2,\n", + " (self.padding[0] + 1) // 2, self.padding[0] // 2)\n", + " output = F.conv2d(F.pad(quant_input, expanded_padding, mode='circular'),\n", + " quant_weight, self.bias, self.stride,\n", + " _pair(0), self.dilation, self.groups)\n", + " else:\n", + " output = F.conv2d(quant_input, quant_weight, self.bias, self.stride, self.padding, self.dilation,\n", + " self.groups)\n", + "\n", + " return output\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "985dc59e", + "metadata": {}, + "outputs": [], + "source": [ + "quant_modules.initialize()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "164ce8cb", + "metadata": {}, + "outputs": [], + "source": [ + "# All the regular conv, FC layers will be converted to their quantozed counterparts due to quant_modules.initialize()\n", + "qat_model = vgg16(num_classes=len(classes), init_weights=False)\n", + "qat_model = qat_model.cuda()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "8e5f7fb5", + "metadata": {}, + "outputs": [], + "source": [ + "# vgg16_base_ckpt is the checkpoint generated from Step 3 : Training a baseline VGG16 model.\n", + "ckpt = torch.load(\"./vgg16_base_ckpt\")\n", + "modified_state_dict={}\n", + "for key, val in ckpt[\"model_state_dict\"].items():\n", + " # Remove 'module.' from the key names\n", + " if key.startswith('module'):\n", + " modified_state_dict[key[7:]] = val\n", + " else:\n", + " modified_state_dict[key] = val\n", + "\n", + "# Load the pre-trained checkpoint\n", + "qat_model.load_state_dict(modified_state_dict)\n", + "opt.load_state_dict(ckpt[\"opt_state_dict\"])" + ] + }, + { + "cell_type": "markdown", + "id": "8f8a74e8", + "metadata": {}, + "source": [ + "\n", + "## 5. Model Calibration" + ] + }, + { + "cell_type": "markdown", + "id": "d2a321f9", + "metadata": {}, + "source": [ + "The quantizer nodes introduced in the model around desired layers capture the dynamic range (min_value, max_value) that is observed by the layer. Calibration is the process of computing the dynamic range of these layers by passing calibration data, which is usually a subset of training or validation data. There are different ways of calibration: `max`, `histogram` and `entropy`. We use `max` calibration technique as it is simple and effective. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "039423dc", + "metadata": {}, + "outputs": [], + "source": [ + "def compute_amax(model, **kwargs):\n", + " # Load calib result\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " if isinstance(module._calibrator, calib.MaxCalibrator):\n", + " module.load_calib_amax()\n", + " else:\n", + " module.load_calib_amax(**kwargs)\n", + " print(F\"{name:40}: {module}\")\n", + " model.cuda()\n", + "\n", + "def collect_stats(model, data_loader, num_batches):\n", + " \"\"\"Feed data to the network and collect statistics\"\"\"\n", + " # Enable calibrators\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " module.disable_quant()\n", + " module.enable_calib()\n", + " else:\n", + " module.disable()\n", + "\n", + " # Feed data to the network for collecting stats\n", + " for i, (image, _) in tqdm(enumerate(data_loader), total=num_batches):\n", + " model(image.cuda())\n", + " if i >= num_batches:\n", + " break\n", + "\n", + " # Disable calibrators\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " module.enable_quant()\n", + " module.disable_calib()\n", + " else:\n", + " module.enable()\n", + "\n", + "def calibrate_model(model, model_name, data_loader, num_calib_batch, calibrator, hist_percentile, out_dir):\n", + " \"\"\"\n", + " Feed data to the network and calibrate.\n", + " Arguments:\n", + " model: classification model\n", + " model_name: name to use when creating state files\n", + " data_loader: calibration data set\n", + " num_calib_batch: amount of calibration passes to perform\n", + " calibrator: type of calibration to use (max/histogram)\n", + " hist_percentile: percentiles to be used for historgram calibration\n", + " out_dir: dir to save state files in\n", + " \"\"\"\n", + "\n", + " if num_calib_batch > 0:\n", + " print(\"Calibrating model\")\n", + " with torch.no_grad():\n", + " collect_stats(model, data_loader, num_calib_batch)\n", + "\n", + " if not calibrator == \"histogram\":\n", + " compute_amax(model, method=\"max\")\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-max-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)\n", + " else:\n", + " for percentile in hist_percentile:\n", + " print(F\"{percentile} percentile calibration\")\n", + " compute_amax(model, method=\"percentile\")\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-percentile-{percentile}-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)\n", + "\n", + " for method in [\"mse\", \"entropy\"]:\n", + " print(F\"{method} calibration\")\n", + " compute_amax(model, method=method)\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-{method}-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "78504a6f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calibrating model\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|███████████████████████████████████████████████████████| 32/32 [00:00<00:00, 96.04it/s]\n", + "WARNING: Logging before flag parsing goes to stderr.\n", + "W1109 04:01:43.512364 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.513354 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.514046 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.514638 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.515270 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.515859 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.516441 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.517009 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.517600 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.518167 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.518752 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.519333 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.519911 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.520473 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.521038 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.521596 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.522170 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.522742 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.523360 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.523957 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.524581 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525059 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525366 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525675 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525962 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526257 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526566 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526885 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527188 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527489 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527792 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528097 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528387 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528834 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.529163 139704147265344 tensor_quantizer.py:238] Call .cuda() if running on GPU after loading calibrated amax.\n", + "W1109 04:01:43.532748 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).\n", + "W1109 04:01:43.533468 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.534033 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).\n", + "W1109 04:01:43.534684 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.535320 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).\n", + "W1109 04:01:43.535983 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.536569 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).\n", + "W1109 04:01:43.537248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.537833 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.538480 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.539074 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.539724 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.540307 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.540952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.541534 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.542075 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.542596 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.543248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.543719 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.544424 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.544952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.545530 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.546114 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.546713 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.547292 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.547902 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.548453 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.549015 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).\n", + "W1109 04:01:43.549665 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.550436 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).\n", + "W1109 04:01:43.551925 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.553105 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([10, 1]).\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "features.0._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=2.7537 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.0._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0263, 2.7454](64) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.3._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=27.5676 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.3._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0169, 1.8204](64) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.7._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=15.2002 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.7._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0493, 1.3207](128) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.10._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=7.7376 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.10._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0163, 0.9624](128) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.14._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=8.8351 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.14._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0622, 0.8791](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.17._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=12.5746 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.17._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0505, 0.5117](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.20._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=9.7203 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.20._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0296, 0.5335](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.24._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=8.9367 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.24._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0220, 0.3763](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.27._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=6.6539 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.27._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0151, 0.1777](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.30._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=3.7099 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.30._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0087, 0.1906](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.34._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=4.0491 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.34._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0106, 0.1971](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.37._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=2.1531 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.37._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0070, 0.2305](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.40._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=3.3631 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.40._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0023, 0.4726](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "avgpool._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.0._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.0._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0026, 0.5320](4096) calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.3._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=6.6733 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.3._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0018, 0.5172](4096) calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.6._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=9.4352 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.6._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.3877, 0.5620](10) calibrator=MaxCalibrator scale=1.0 quant)\n" + ] + } + ], + "source": [ + "#Calibrate the model using max calibration technique.\n", + "with torch.no_grad():\n", + " calibrate_model(\n", + " model=qat_model,\n", + " model_name=\"vgg16\",\n", + " data_loader=training_dataloader,\n", + " num_calib_batch=32,\n", + " calibrator=\"max\",\n", + " hist_percentile=[99.9, 99.99, 99.999, 99.9999],\n", + " out_dir=\"./\")" + ] + }, + { + "cell_type": "markdown", + "id": "1aa0c109", + "metadata": {}, + "source": [ + "\n", + "## 6. Quantization Aware Training" + ] + }, + { + "cell_type": "markdown", + "id": "9fe8ec11", + "metadata": {}, + "source": [ + "In this phase, we finetune the model weights and leave the quantizer node values frozen. The dynamic ranges for each layer obtained from the calibration are kept constant while the weights of the model are finetuned to be close to the accuracy of original FP32 model (model without quantizer nodes) is preserved. Usually the finetuning of QAT model should be quick compared to the full training of the original model. Use QAT to fine-tune for around 10% of the original training schedule with an annealing learning-rate. Please refer to Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT for detailed recommendations. For this VGG model, it is enough to finetune for 1 epoch to get acceptable accuracy. \n", + "During finetuning with QAT, the quantization is applied as a composition of `max`, `clamp`, `round` and `mul` ops. \n", + "```\n", + "# amax is absolute maximum value for an input\n", + "# The upper bound for integer quantization (127 for int8)\n", + "max_bound = torch.tensor((2.0**(num_bits - 1 + int(unsigned))) - 1.0, device=amax.device)\n", + "scale = max_bound / amax\n", + "outputs = torch.clamp((inputs * scale).round_(), min_bound, max_bound)\n", + "```\n", + "tensor_quant function in `pytorch_quantization` toolkit is responsible for the above tensor quantization. Usually, per channel quantization is recommended for weights, while per tensor quantization is recommended for activations in a network.\n", + "During inference, we use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` to perform quantization as this is easier to convert into corresponding TensorRT operators. Please refer to next sections for more details on how these operators are exported in torchscript and converted in Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "1f28d228", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Updating learning rate: 0.1\n", + "Epoch: [ 1 / 1] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 2.635\n", + "Batch: [ 1000 | 1563] loss: 2.655\n", + "Batch: [ 1500 | 1563] loss: 2.646\n", + "Test Loss: 0.03291 Test Acc: 82.98%\n", + "Checkpoint saved\n" + ] + } + ], + "source": [ + "# Finetune the QAT model for 1 epoch\n", + "num_epochs=1\n", + "for epoch in range(num_epochs):\n", + " adjust_lr(opt, epoch)\n", + " print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state[\"lr\"]))\n", + "\n", + " train(qat_model, training_dataloader, crit, opt, epoch)\n", + " test_loss, test_acc = test(qat_model, testing_dataloader, crit, epoch)\n", + "\n", + " print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n", + " \n", + "save_checkpoint({'epoch': epoch + 1,\n", + " 'model_state_dict': qat_model.state_dict(),\n", + " 'acc': test_acc,\n", + " 'opt_state_dict': opt.state_dict(),\n", + " 'state': state},\n", + " ckpt_path=\"vgg16_qat_ckpt\")" + ] + }, + { + "cell_type": "markdown", + "id": "7a4dcaa2", + "metadata": {}, + "source": [ + "\n", + "## 7. Export to Torchscript\n", + "Export the model to Torch script. Trace the model and convert it into torchscript for deployment. To learn more about Torchscript, please refer to https://pytorch.org/docs/stable/jit.html. Setting `quant_nn.TensorQuantizer.use_fb_fake_quant = True` enables the QAT model to use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` operators instead of `tensor_quant` function to export quantization operators. In torchscript, they are represented as `aten::fake_quantize_per_tensor_affine` and `aten::fake_quantize_per_channel_affine`. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3d34f526", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "E1109 04:02:37.101168 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.102248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.107194 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.107625 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.115269 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.115740 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.117969 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.118358 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.126382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.126834 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.128674 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.129518 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.135453 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.135936 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.137858 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.138366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.145539 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.146053 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.147871 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.148353 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.154252 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.154685 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.156558 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.157159 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.163197 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.163676 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.165549 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.165991 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.173305 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.173926 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.176034 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.176697 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.182843 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.183426 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.185377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.185962 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.191966 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.192424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.194325 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.194817 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.201988 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.202665 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.204763 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.205461 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.211393 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.211987 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.213899 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.214450 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.220892 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.221533 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.223519 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.224037 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.233809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.234434 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.238212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.239042 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.241022 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.241654 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.247820 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.248445 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.250366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.250959 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.257248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.257854 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.259968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.260660 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "W1109 04:02:37.268160 139704147265344 tensor_quantizer.py:280] Use Pytorch's native experimental fake quantization.\n", + "/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:285: TracerWarning: Converting a tensor to a Python number might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " inputs, amax.item() / bound, 0,\n", + "/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:291: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " quant_dim = list(amax.shape).index(list(amax_sequeeze.shape)[0])\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "E1109 04:02:37.329273 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.330212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.332529 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.333365 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.339547 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.340248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.342257 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.342890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.350619 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.351372 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.353470 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.354121 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.360090 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.360806 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.362803 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.363274 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.370369 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.371057 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.373071 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.373766 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.379890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.380538 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.382532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.383128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.389077 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.389760 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.391815 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.392399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.399809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.400472 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.402399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.402939 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.408818 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.409424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.411513 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.412097 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.418537 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.419128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.421343 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.421946 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.429382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.430156 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.432259 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.433079 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.439297 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.440027 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.442149 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.442826 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.449377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.449968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.452122 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.452754 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.462532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.463295 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.466963 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.467725 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.469692 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.470336 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.476204 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.476738 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.478809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.479375 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.485666 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.486219 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.488416 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.488986 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n" + ] + } + ], + "source": [ + "quant_nn.TensorQuantizer.use_fb_fake_quant = True\n", + "with torch.no_grad():\n", + " data = iter(testing_dataloader)\n", + " images, _ = data.next()\n", + " jit_model = torch.jit.trace(qat_model, images.to(\"cuda\"))\n", + " torch.jit.save(jit_model, \"trained_vgg16_qat.jit.pt\")" + ] + }, + { + "cell_type": "markdown", + "id": "7341418a", + "metadata": {}, + "source": [ + "\n", + "## 8. Inference using Torch-TensorRT\n", + "In this phase, we run the exported torchscript graph of VGG QAT using Torch-TensorRT. Torch-TensorRT is a Pytorch-TensorRT compiler which converts Torchscript graphs into TensorRT. TensorRT 8.0 supports inference of quantization aware trained models and introduces new APIs; `QuantizeLayer` and `DequantizeLayer`. We can observe the entire VGG QAT graph quantization nodes from the debug log of Torch-TensorRT. To enable debug logging, you can set `torch_tensorrt.logging.set_reportable_log_level(torch_tensorrt.logging.Level.Debug)`. For example, `QuantConv2d` layer from `pytorch_quantization` toolkit is represented as follows in Torchscript\n", + "```\n", + "%quant_input : Tensor = aten::fake_quantize_per_tensor_affine(%x, %636, %637, %638, %639)\n", + "%quant_weight : Tensor = aten::fake_quantize_per_channel_affine(%394, %640, %641, %637, %638, %639)\n", + "%input.2 : Tensor = aten::_convolution(%quant_input, %quant_weight, %395, %687, %688, %689, %643, %690, %642, %643, %643, %644, %644)\n", + "```\n", + "`aten::fake_quantize_per_*_affine` is converted into `QuantizeLayer` + `DequantizeLayer` in Torch-TensorRT internally. Please refer to quantization op converters in Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "aa7495e0", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Cannot infer input type from calcuations in graph for input x.2. Assuming it is Float32. If not, specify input type explicity\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Detected invalid timing cache, setup a local cache instead\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VGG QAT accuracy using TensorRT: 82.97%\n" + ] + } + ], + "source": [ + "qat_model = torch.jit.load(\"trained_vgg16_qat.jit.pt\").eval()\n", + "\n", + "compile_spec = {\"inputs\": [torch_tensorrt.Input([16, 3, 32, 32])],\n", + " \"enabled_precisions\": torch.int8,\n", + " }\n", + "trt_mod = torch_tensorrt.compile(qat_model, **compile_spec)\n", + "\n", + "test_loss, test_acc = test(trt_mod, testing_dataloader, crit, 0)\n", + "print(\"VGG QAT accuracy using TensorRT: {:.2f}%\".format(100 * test_acc))" + ] + }, + { + "cell_type": "markdown", + "id": "9df5a90e", + "metadata": {}, + "source": [ + "### Performance benchmarking" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "9eb2cd2d", + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "# Helper function to benchmark the model\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " output = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%100==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output shape:\", output.shape)\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "5c2514ae", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, avg batch time 4.83 ms\n", + "Iteration 200/1000, avg batch time 4.83 ms\n", + "Iteration 300/1000, avg batch time 4.83 ms\n", + "Iteration 400/1000, avg batch time 4.83 ms\n", + "Iteration 500/1000, avg batch time 4.83 ms\n", + "Iteration 600/1000, avg batch time 4.83 ms\n", + "Iteration 700/1000, avg batch time 4.83 ms\n", + "Iteration 800/1000, avg batch time 4.83 ms\n", + "Iteration 900/1000, avg batch time 4.83 ms\n", + "Iteration 1000/1000, avg batch time 4.83 ms\n", + "Input shape: torch.Size([16, 3, 32, 32])\n", + "Output shape: torch.Size([16, 10])\n", + "Average batch time: 4.83 ms\n" + ] + } + ], + "source": [ + "benchmark(jit_model, input_shape=(16, 3, 32, 32))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "c5378ed6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, avg batch time 1.87 ms\n", + "Iteration 200/1000, avg batch time 1.84 ms\n", + "Iteration 300/1000, avg batch time 1.85 ms\n", + "Iteration 400/1000, avg batch time 1.83 ms\n", + "Iteration 500/1000, avg batch time 1.82 ms\n", + "Iteration 600/1000, avg batch time 1.81 ms\n", + "Iteration 700/1000, avg batch time 1.81 ms\n", + "Iteration 800/1000, avg batch time 1.80 ms\n", + "Iteration 900/1000, avg batch time 1.80 ms\n", + "Iteration 1000/1000, avg batch time 1.79 ms\n", + "Input shape: torch.Size([16, 3, 32, 32])\n", + "Output shape: torch.Size([16, 10])\n", + "Average batch time: 1.79 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_mod, input_shape=(16, 3, 32, 32))" + ] + }, + { + "cell_type": "markdown", + "id": "d6a5ec1c", + "metadata": {}, + "source": [ + "\n", + "## 9. References\n", + "* Very Deep Convolution Networks for large scale Image Recognition\n", + "* Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT\n", + "* QAT workflow for VGG16\n", + "* Deploying VGG QAT model in C++ using Torch-TensorRT\n", + "* Pytorch-quantization toolkit from NVIDIA\n", + "* Pytorch quantization toolkit userguide\n", + "* Quantization basics" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.2.0/_sources/_cpp_api/class_view_hierarchy.rst.txt b/docs/v1.2.0/_sources/_cpp_api/class_view_hierarchy.rst.txt new file mode 100644 index 0000000000..a75671077c --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/class_view_hierarchy.rst.txt @@ -0,0 +1,18 @@ + +Class Hierarchy +--------------- + + +.. raw:: html + + + +.. end raw html for treeView + + diff --git a/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1DataType.rst.txt b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1DataType.rst.txt new file mode 100644 index 0000000000..6a40d653a7 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1DataType.rst.txt @@ -0,0 +1,17 @@ +.. _exhale_class_classtorch__tensorrt_1_1DataType: + +Class DataType +============== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::DataType + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst.txt b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst.txt new file mode 100644 index 0000000000..5479dea0ee --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst.txt @@ -0,0 +1,23 @@ +.. _exhale_class_classtorch__tensorrt_1_1Device_1_1DeviceType: + +Class Device::DeviceType +======================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Nested Relationships +-------------------- + +This class is a nested type of :ref:`exhale_struct_structtorch__tensorrt_1_1Device`. + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::Device::DeviceType + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst.txt b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst.txt new file mode 100644 index 0000000000..3f2030e8f2 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst.txt @@ -0,0 +1,17 @@ +.. _exhale_class_classtorch__tensorrt_1_1TensorFormat: + +Class TensorFormat +================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::TensorFormat + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt new file mode 100644 index 0000000000..7e76229f19 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst.txt @@ -0,0 +1,26 @@ +.. _exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator: + +Template Class Int8CacheCalibrator +================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Inheritance Relationships +------------------------- + +Base Type +********* + +- ``private Algorithm`` + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::ptq::Int8CacheCalibrator + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt new file mode 100644 index 0000000000..6ef15f8ff1 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst.txt @@ -0,0 +1,26 @@ +.. _exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8Calibrator: + +Template Class Int8Calibrator +============================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Inheritance Relationships +------------------------- + +Base Type +********* + +- ``private Algorithm`` + + +Class Documentation +------------------- + + +.. doxygenclass:: torch_tensorrt::ptq::Int8Calibrator + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst.txt b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst.txt new file mode 100644 index 0000000000..70809499b3 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_define_macros_8h_1a18d295a837ac71add5578860b55e5502: + +Define STR +========== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: STR + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst.txt b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst.txt new file mode 100644 index 0000000000..10850f77a2 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268: + +Define TORCH_TENSORRT_PATCH_VERSION +=================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCH_TENSORRT_PATCH_VERSION + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst.txt b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst.txt new file mode 100644 index 0000000000..9a3d3c8aa8 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e: + +Define TORCH_TENSORRT_MAJOR_VERSION +=================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCH_TENSORRT_MAJOR_VERSION + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst.txt b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst.txt new file mode 100644 index 0000000000..0c495bc60c --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827: + +Define TORCH_TENSORRT_MINOR_VERSION +=================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCH_TENSORRT_MINOR_VERSION + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst.txt b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst.txt new file mode 100644 index 0000000000..40ad2fd99f --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b: + +Define TORCHTRT_API +=================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCHTRT_API + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst.txt b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst.txt new file mode 100644 index 0000000000..75d62d3b65 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da: + +Define XSTR +=========== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: XSTR + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst.txt b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst.txt new file mode 100644 index 0000000000..262bd89acd --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_define_macros_8h_1ad19939408f7be171a74a89928b36eb59: + +Define TORCHTRT_HIDDEN +====================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCHTRT_HIDDEN + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst.txt b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst.txt new file mode 100644 index 0000000000..ea5d28d205 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883: + +Define TORCH_TENSORRT_VERSION +============================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_macros.h` + + +Define Documentation +-------------------- + + +.. doxygendefine:: TORCH_TENSORRT_VERSION + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/dir_cpp.rst.txt b/docs/v1.2.0/_sources/_cpp_api/dir_cpp.rst.txt new file mode 100644 index 0000000000..f09e39c518 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/dir_cpp.rst.txt @@ -0,0 +1,16 @@ +.. _dir_cpp: + + +Directory cpp +============= + + +*Directory path:* ``cpp`` + +Subdirectories +-------------- + +- :ref:`dir_cpp_include` + + + diff --git a/docs/v1.2.0/_sources/_cpp_api/dir_cpp_include.rst.txt b/docs/v1.2.0/_sources/_cpp_api/dir_cpp_include.rst.txt new file mode 100644 index 0000000000..e262b4a9af --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/dir_cpp_include.rst.txt @@ -0,0 +1,20 @@ +.. _dir_cpp_include: + + +Directory include +================= + + +|exhale_lsh| :ref:`Parent directory ` (``cpp``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +*Directory path:* ``cpp/include`` + +Subdirectories +-------------- + +- :ref:`dir_cpp_include_torch_tensorrt` + + + diff --git a/docs/v1.2.0/_sources/_cpp_api/dir_cpp_include_torch_tensorrt.rst.txt b/docs/v1.2.0/_sources/_cpp_api/dir_cpp_include_torch_tensorrt.rst.txt new file mode 100644 index 0000000000..f1da041e12 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/dir_cpp_include_torch_tensorrt.rst.txt @@ -0,0 +1,23 @@ +.. _dir_cpp_include_torch_tensorrt: + + +Directory torch_tensorrt +======================== + + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +*Directory path:* ``cpp/include/torch_tensorrt`` + + +Files +----- + +- :ref:`file_cpp_include_torch_tensorrt_logging.h` +- :ref:`file_cpp_include_torch_tensorrt_macros.h` +- :ref:`file_cpp_include_torch_tensorrt_ptq.h` +- :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + diff --git a/docs/v1.2.0/_sources/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst.txt b/docs/v1.2.0/_sources/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst.txt new file mode 100644 index 0000000000..6a1c2671ae --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558: + +Enum Level +========== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Enum Documentation +------------------ + + +.. doxygenenum:: torch_tensorrt::logging::Level + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst.txt b/docs/v1.2.0/_sources/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst.txt new file mode 100644 index 0000000000..a004103bfe --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb: + +Enum EngineCapability +===================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Enum Documentation +------------------ + + +.. doxygenenum:: torch_tensorrt::EngineCapability + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst.txt b/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst.txt new file mode 100644 index 0000000000..ea89d38038 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst.txt @@ -0,0 +1,80 @@ + +.. _file_cpp_include_torch_tensorrt_logging.h: + +File logging.h +============== + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include/torch_tensorrt``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. contents:: Contents + :local: + :backlinks: none + +Definition (``cpp/include/torch_tensorrt/logging.h``) +----------------------------------------------------- + + +.. toctree:: + :maxdepth: 1 + + program_listing_file_cpp_include_torch_tensorrt_logging.h.rst + + + + + +Includes +-------- + + +- ``string`` + +- ``torch_tensorrt/macros.h`` (:ref:`file_cpp_include_torch_tensorrt_macros.h`) + + + +Included By +----------- + + +- :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt` + +- :ref:`namespace_torch_tensorrt__logging` + + +Enums +----- + + +- :ref:`exhale_enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558` + + +Functions +--------- + + +- :ref:`exhale_function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a` + +- :ref:`exhale_function_logging_8h_1a0593f776f469c20469e2f729fc7861a3` + +- :ref:`exhale_function_logging_8h_1a0c012cb374addd90eb1f42eaec570650` + +- :ref:`exhale_function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8` + +- :ref:`exhale_function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5` + +- :ref:`exhale_function_logging_8h_1af8f3443813315af7901903d25dd495cc` + +- :ref:`exhale_function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2` + diff --git a/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst.txt b/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst.txt new file mode 100644 index 0000000000..61447e1ada --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst.txt @@ -0,0 +1,71 @@ + +.. _file_cpp_include_torch_tensorrt_macros.h: + +File macros.h +============= + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include/torch_tensorrt``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. contents:: Contents + :local: + :backlinks: none + +Definition (``cpp/include/torch_tensorrt/macros.h``) +---------------------------------------------------- + + +.. toctree:: + :maxdepth: 1 + + program_listing_file_cpp_include_torch_tensorrt_macros.h.rst + + + + + + + +Included By +----------- + + +- :ref:`file_cpp_include_torch_tensorrt_logging.h` + +- :ref:`file_cpp_include_torch_tensorrt_ptq.h` + +- :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt` + +- :ref:`namespace_torch_tensorrt__torchscript` + + +Defines +------- + + +- :ref:`exhale_define_macros_8h_1a18d295a837ac71add5578860b55e5502` + +- :ref:`exhale_define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e` + +- :ref:`exhale_define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827` + +- :ref:`exhale_define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268` + +- :ref:`exhale_define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883` + +- :ref:`exhale_define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b` + +- :ref:`exhale_define_macros_8h_1ad19939408f7be171a74a89928b36eb59` + +- :ref:`exhale_define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da` + diff --git a/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst.txt b/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst.txt new file mode 100644 index 0000000000..34b64af6e0 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst.txt @@ -0,0 +1,84 @@ + +.. _file_cpp_include_torch_tensorrt_ptq.h: + +File ptq.h +========== + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include/torch_tensorrt``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. contents:: Contents + :local: + :backlinks: none + +Definition (``cpp/include/torch_tensorrt/ptq.h``) +------------------------------------------------- + + +.. toctree:: + :maxdepth: 1 + + program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst + + + + + +Includes +-------- + + +- ``NvInfer.h`` + +- ``fstream`` + +- ``iostream`` + +- ``iterator`` + +- ``memory`` + +- ``sstream`` + +- ``string`` + +- ``torch/torch.h`` + +- ``torch_tensorrt/logging.h`` (:ref:`file_cpp_include_torch_tensorrt_logging.h`) + +- ``torch_tensorrt/macros.h`` (:ref:`file_cpp_include_torch_tensorrt_macros.h`) + +- ``vector`` + + + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt` + +- :ref:`namespace_torch_tensorrt__ptq` + + +Classes +------- + + +- :ref:`exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator` + +- :ref:`exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8Calibrator` + + +Functions +--------- + + +- :ref:`exhale_function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c` + +- :ref:`exhale_function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178` + diff --git a/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt b/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt new file mode 100644 index 0000000000..e29afa26a3 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt @@ -0,0 +1,105 @@ + +.. _file_cpp_include_torch_tensorrt_torch_tensorrt.h: + +File torch_tensorrt.h +===================== + +|exhale_lsh| :ref:`Parent directory ` (``cpp/include/torch_tensorrt``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. contents:: Contents + :local: + :backlinks: none + +Definition (``cpp/include/torch_tensorrt/torch_tensorrt.h``) +------------------------------------------------------------ + + +.. toctree:: + :maxdepth: 1 + + program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst + + + + + +Includes +-------- + + +- ``cuda_runtime.h`` + +- ``iostream`` + +- ``memory`` + +- ``set`` + +- ``string`` + +- ``torch/custom_class.h`` + +- ``torch_tensorrt/macros.h`` (:ref:`file_cpp_include_torch_tensorrt_macros.h`) + +- ``vector`` + + + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt` + +- :ref:`namespace_torch_tensorrt__torchscript` + + +Classes +------- + + +- :ref:`exhale_struct_structtorch__tensorrt_1_1Device` + +- :ref:`exhale_struct_structtorch__tensorrt_1_1GraphInputs` + +- :ref:`exhale_struct_structtorch__tensorrt_1_1Input` + +- :ref:`exhale_struct_structtorch__tensorrt_1_1torchscript_1_1CompileSpec` + +- :ref:`exhale_class_classtorch__tensorrt_1_1DataType` + +- :ref:`exhale_class_classtorch__tensorrt_1_1Device_1_1DeviceType` + +- :ref:`exhale_class_classtorch__tensorrt_1_1TensorFormat` + + +Enums +----- + + +- :ref:`exhale_enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb` + + +Functions +--------- + + +- :ref:`exhale_function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1` + +- :ref:`exhale_function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528` + +- :ref:`exhale_function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384` + +- :ref:`exhale_function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797` + +- :ref:`exhale_function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9` + +- :ref:`exhale_function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2` + +- :ref:`exhale_function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef` + diff --git a/docs/v1.2.0/_sources/_cpp_api/file_view_hierarchy.rst.txt b/docs/v1.2.0/_sources/_cpp_api/file_view_hierarchy.rst.txt new file mode 100644 index 0000000000..c47d5aa483 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/file_view_hierarchy.rst.txt @@ -0,0 +1,18 @@ + +File Hierarchy +-------------- + + +.. raw:: html + + + +.. end raw html for treeView + + diff --git a/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst.txt new file mode 100644 index 0000000000..8cab943a9a --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_logging_8h_1a0593f776f469c20469e2f729fc7861a3: + +Function torch_tensorrt::logging::get_logging_prefix +==================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::get_logging_prefix() + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst.txt new file mode 100644 index 0000000000..55bb2bde5c --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_logging_8h_1a0c012cb374addd90eb1f42eaec570650: + +Function torch_tensorrt::logging::get_reportable_log_level +========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::get_reportable_log_level() + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt new file mode 100644 index 0000000000..e8b0ac046d --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a: + +Function torch_tensorrt::logging::get_is_colored_output_on +========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::get_is_colored_output_on() + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst.txt new file mode 100644 index 0000000000..95380eb157 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2: + +Function torch_tensorrt::logging::set_reportable_log_level +========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::set_reportable_log_level(Level) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt new file mode 100644 index 0000000000..0ca83fe039 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8: + +Function torch_tensorrt::logging::log +===================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::log(Level, std::string) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst.txt new file mode 100644 index 0000000000..86c2c7d61e --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5: + +Function torch_tensorrt::logging::set_is_colored_output_on +========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::set_is_colored_output_on(bool) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst.txt new file mode 100644 index 0000000000..9d0a42d2bd --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_logging_8h_1af8f3443813315af7901903d25dd495cc: + +Function torch_tensorrt::logging::set_logging_prefix +==================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_logging.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::logging::set_logging_prefix(std::string) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst.txt new file mode 100644 index 0000000000..5d9188270f --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c: + +Template Function torch_tensorrt::ptq::make_int8_cache_calibrator +================================================================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::ptq::make_int8_cache_calibrator(const std::string&) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt new file mode 100644 index 0000000000..9551f48bb6 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178: + +Template Function torch_tensorrt::ptq::make_int8_calibrator +=========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::ptq::make_int8_calibrator(DataLoader, const std::string&, bool) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst.txt new file mode 100644 index 0000000000..caa9ad6226 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039: + +Template Function torch_tensorrt::ptq::make_int8_calibrator +=========================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::ptq::make_int8_calibrator(DataLoader, const std::string&, bool) diff --git a/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst.txt new file mode 100644 index 0000000000..477c2655ae --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst.txt @@ -0,0 +1,13 @@ +.. _exhale_function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa: + +Template Function torch_tensorrt::ptq::make_int8_cache_calibrator +================================================================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_ptq.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::ptq::make_int8_cache_calibrator(const std::string&) diff --git a/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt new file mode 100644 index 0000000000..54f7c29df3 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797: + +Function torch_tensorrt::torchscript::check_method_operator_support +=================================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::torchscript::check_method_operator_support(const torch::jit::Module&, std::string) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt new file mode 100644 index 0000000000..b80699688a --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9: + +Function torch_tensorrt::torchscript::compile +============================================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::torchscript::compile(const torch::jit::Module&, CompileSpec) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst.txt new file mode 100644 index 0000000000..a49fea74a1 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef: + +Function torch_tensorrt::torchscript::embed_engine_in_new_module +================================================================ + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::torchscript::embed_engine_in_new_module(const std::string&, Device) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst.txt new file mode 100644 index 0000000000..d551c4894d --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528: + +Function torch_tensorrt::get_build_info +======================================= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::get_build_info() + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt new file mode 100644 index 0000000000..e296177bfa --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384: + +Function torch_tensorrt::set_device +=================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::set_device(const int) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt new file mode 100644 index 0000000000..06b03cbfd9 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1: + +Function torch_tensorrt::dump_build_info +======================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::dump_build_info() + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt new file mode 100644 index 0000000000..2a1f0c89d0 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst.txt @@ -0,0 +1,14 @@ +.. _exhale_function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2: + +Function torch_tensorrt::torchscript::convert_method_to_trt_engine +================================================================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Function Documentation +---------------------- + + +.. doxygenfunction:: torch_tensorrt::torchscript::convert_method_to_trt_engine(const torch::jit::Module&, std::string, CompileSpec) + :project: Torch-TensorRT \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt.rst.txt b/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt.rst.txt new file mode 100644 index 0000000000..43a0afb20d --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt.rst.txt @@ -0,0 +1,59 @@ + +.. _namespace_torch_tensorrt: + +Namespace torch_tensorrt +======================== + + +.. contents:: Contents + :local: + :backlinks: none + + + + + +Namespaces +---------- + + +- :ref:`namespace_torch_tensorrt__logging` + +- :ref:`namespace_torch_tensorrt__ptq` + +- :ref:`namespace_torch_tensorrt__torchscript` + + +Classes +------- + + +- :ref:`exhale_struct_structtorch__tensorrt_1_1Device` + +- :ref:`exhale_struct_structtorch__tensorrt_1_1GraphInputs` + +- :ref:`exhale_struct_structtorch__tensorrt_1_1Input` + +- :ref:`exhale_class_classtorch__tensorrt_1_1DataType` + +- :ref:`exhale_class_classtorch__tensorrt_1_1Device_1_1DeviceType` + +- :ref:`exhale_class_classtorch__tensorrt_1_1TensorFormat` + + +Enums +----- + + +- :ref:`exhale_enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb` + + +Functions +--------- + + +- :ref:`exhale_function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1` + +- :ref:`exhale_function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528` + +- :ref:`exhale_function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384` diff --git a/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__logging.rst.txt b/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__logging.rst.txt new file mode 100644 index 0000000000..49f946f937 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__logging.rst.txt @@ -0,0 +1,39 @@ + +.. _namespace_torch_tensorrt__logging: + +Namespace torch_tensorrt::logging +================================= + + +.. contents:: Contents + :local: + :backlinks: none + + + + + +Enums +----- + + +- :ref:`exhale_enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558` + + +Functions +--------- + + +- :ref:`exhale_function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a` + +- :ref:`exhale_function_logging_8h_1a0593f776f469c20469e2f729fc7861a3` + +- :ref:`exhale_function_logging_8h_1a0c012cb374addd90eb1f42eaec570650` + +- :ref:`exhale_function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8` + +- :ref:`exhale_function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5` + +- :ref:`exhale_function_logging_8h_1af8f3443813315af7901903d25dd495cc` + +- :ref:`exhale_function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2` diff --git a/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__ptq.rst.txt b/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__ptq.rst.txt new file mode 100644 index 0000000000..bdc39cb326 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__ptq.rst.txt @@ -0,0 +1,31 @@ + +.. _namespace_torch_tensorrt__ptq: + +Namespace torch_tensorrt::ptq +============================= + + +.. contents:: Contents + :local: + :backlinks: none + + + + + +Classes +------- + + +- :ref:`exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator` + +- :ref:`exhale_class_classtorch__tensorrt_1_1ptq_1_1Int8Calibrator` + + +Functions +--------- + + +- :ref:`exhale_function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c` + +- :ref:`exhale_function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178` diff --git a/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__torchscript.rst.txt b/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__torchscript.rst.txt new file mode 100644 index 0000000000..b56b3f738e --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/namespace_torch_tensorrt__torchscript.rst.txt @@ -0,0 +1,33 @@ + +.. _namespace_torch_tensorrt__torchscript: + +Namespace torch_tensorrt::torchscript +===================================== + + +.. contents:: Contents + :local: + :backlinks: none + + + + + +Classes +------- + + +- :ref:`exhale_struct_structtorch__tensorrt_1_1torchscript_1_1CompileSpec` + + +Functions +--------- + + +- :ref:`exhale_function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797` + +- :ref:`exhale_function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9` + +- :ref:`exhale_function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2` + +- :ref:`exhale_function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef` diff --git a/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst.txt b/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst.txt new file mode 100644 index 0000000000..af68cbb678 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst.txt @@ -0,0 +1,51 @@ + +.. _program_listing_file_cpp_include_torch_tensorrt_logging.h: + +Program Listing for File logging.h +================================== + +|exhale_lsh| :ref:`Return to documentation for file ` (``cpp/include/torch_tensorrt/logging.h``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. code-block:: cpp + + /* + * Copyright (c) NVIDIA Corporation. + * All rights reserved. + * + * This library is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + #pragma once + + #include + #include "torch_tensorrt/macros.h" + + namespace torch_tensorrt { + namespace logging { + enum Level { + kINTERNAL_ERROR, + kERROR, + kWARNING, + kINFO, + kDEBUG, + kGRAPH, + }; + + // Are these ones necessary for the user? + TORCHTRT_API std::string get_logging_prefix(); + TORCHTRT_API void set_logging_prefix(std::string prefix); + + TORCHTRT_API void set_reportable_log_level(Level lvl); + + TORCHTRT_API void set_is_colored_output_on(bool colored_output_on); + + TORCHTRT_API Level get_reportable_log_level(); + + TORCHTRT_API bool get_is_colored_output_on(); + + // Dont know if we want this? + TORCHTRT_API void log(Level lvl, std::string msg); + } // namespace logging + } // namespace torch_tensorrt diff --git a/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst.txt b/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst.txt new file mode 100644 index 0000000000..66f0005450 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst.txt @@ -0,0 +1,50 @@ + +.. _program_listing_file_cpp_include_torch_tensorrt_macros.h: + +Program Listing for File macros.h +================================= + +|exhale_lsh| :ref:`Return to documentation for file ` (``cpp/include/torch_tensorrt/macros.h``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. code-block:: cpp + + /* + * Copyright (c) NVIDIA Corporation. + * All rights reserved. + * + * This library is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + #pragma once + + #if defined(USE_CMAKE_GENERATED_EXPORT_HEADER) + #include + #else + #if defined(__GNUC__) + #define TORCHTRT_API __attribute__((__visibility__("default"))) + #define TORCHTRT_HIDDEN __attribute__((__visibility__("hidden"))) + #else + #define TORCHTRT_API + #define TORCHTRT_HIDDEN + #endif // defined(__GNUC__) + #endif // defined(USE_CMAKE_GENERATED_EXPORT_HEADER) + + // Does this need to be gaurded or something? + #define XSTR(x) #x + #define STR(x) XSTR(x) + + #define TORCH_TENSORRT_MAJOR_VERSION 1 + #define TORCH_TENSORRT_MINOR_VERSION 2 + #define TORCH_TENSORRT_PATCH_VERSION 0 + #define TORCH_TENSORRT_VERSION \ + STR(TORCH_TENSORRT_MAJOR_VERSION) \ + "." STR(TORCH_TENSORRT_MINOR_VERSION) "." STR(TORCH_TENSORRT_PATCH_VERSION) + + // Setup namespace aliases for ease of use + namespace torch_tensorrt { + namespace torchscript {} + namespace ts = torchscript; + } // namespace torch_tensorrt + namespace torchtrt = torch_tensorrt; diff --git a/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst.txt b/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst.txt new file mode 100644 index 0000000000..65834c370b --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst.txt @@ -0,0 +1,190 @@ + +.. _program_listing_file_cpp_include_torch_tensorrt_ptq.h: + +Program Listing for File ptq.h +============================== + +|exhale_lsh| :ref:`Return to documentation for file ` (``cpp/include/torch_tensorrt/ptq.h``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. code-block:: cpp + + /* + * Copyright (c) NVIDIA Corporation. + * All rights reserved. + * + * This library is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + #pragma once + + #include + #include + #include + #include + #include + #include + #include + + #include "NvInfer.h" + #include "torch/torch.h" + #include "torch_tensorrt/logging.h" + #include "torch_tensorrt/macros.h" + + #ifndef DOXYGEN_SHOULD_SKIP_THIS + namespace nvinfer1 { + class IInt8Calibrator; + class IInt8EntropyCalibrator2; + } // namespace nvinfer1 + + namespace torch_tensorrt { + namespace ptq { + TORCHTRT_API bool get_batch_impl(void* bindings[], const char* names[], int nbBindings, torch::Tensor& data); + } + } // namespace torch_tensorrt + #endif // DOXYGEN_SHOULD_SKIP_THIS + + namespace torch_tensorrt { + namespace ptq { + + template + class Int8Calibrator : Algorithm { + using DataLoader = typename DataLoaderUniquePtr::element_type; + using Batch = typename DataLoader::super::BatchType; + + public: + Int8Calibrator(DataLoaderUniquePtr dataloader, const std::string& cache_file_path, bool use_cache) + : dataloader_(dataloader.get()), cache_file_path_(cache_file_path), use_cache_(use_cache) { + for (auto batch : *dataloader_) { + batched_data_.push_back(batch.data); + } + it_ = batched_data_.begin(); + } + + int getBatchSize() const noexcept override { + // HACK: Torch-TensorRT only uses explict batch sizing, INT8 Calibrator does not + // work when reporting the batch size here and having explicity batching. + // So we just report batch size 1 (warnings will still be printed out). + return 1; + // return static_cast(dataloader_->options().batch_size); + } + + bool getBatch(void* bindings[], const char* names[], int nbBindings) noexcept override { + if (it_ != batched_data_.end()) { + auto status = get_batch_impl(bindings, names, nbBindings, *it_); + it_ = ++it_; + return status; + } else { + // Reset iterator if incase calibrator is going to be used again + it_ = batched_data_.begin(); + return false; + } + } + + const void* readCalibrationCache(size_t& length) noexcept override { + if (use_cache_) { + std::stringstream ss; + ss << "Reading Calibration Cache from " << cache_file_path_; + logging::log(logging::Level::kINFO, ss.str()); + + cache_.clear(); + std::ifstream input(cache_file_path_, std::ios::binary); + input >> std::noskipws; + if (input.good()) { + std::copy(std::istream_iterator(input), std::istream_iterator(), std::back_inserter(cache_)); + logging::log(logging::Level::kDEBUG, "Cache read"); + } + length = cache_.size(); + return length ? cache_.data() : nullptr; + } + return nullptr; + } + + void writeCalibrationCache(const void* cache, size_t length) noexcept override { + std::ofstream cache_file(cache_file_path_, std::ios::binary); + cache_file.write(reinterpret_cast(cache), length); + std::stringstream ss; + ss << "Saved Calibration Cache to " << cache_file_path_; + logging::log(logging::Level::kINFO, ss.str()); + } + + operator nvinfer1::IInt8Calibrator*() { + return reinterpret_cast(this); + } + + private: + DataLoader* dataloader_; + const std::string& cache_file_path_; + size_t cache_size_ = 0; + bool use_cache_; + std::vector cache_; + std::vector batched_data_; + std::vector::iterator it_; + }; + + template + class Int8CacheCalibrator : Algorithm { + public: + Int8CacheCalibrator(const std::string& cache_file_path) : cache_file_path_(cache_file_path) {} + + int getBatchSize() const noexcept override { + // HACK: Torch-TensorRT only uses explict batch sizing, INT8 Calibrator does not + // work when reporting the batch size here and having explicity batching. + // So we just report batch size 1 (warnings will still be printed out). + return 1; + } + + bool getBatch(void* bindings[], const char* names[], int nbBindings) noexcept override { + return false; + } + + const void* readCalibrationCache(size_t& length) noexcept override { + std::stringstream ss; + ss << "Reading Calibration Cache from " << cache_file_path_; + logging::log(logging::Level::kINFO, ss.str()); + + cache_.clear(); + std::ifstream input(cache_file_path_, std::ios::binary); + input >> std::noskipws; + if (input.good()) { + std::copy(std::istream_iterator(input), std::istream_iterator(), std::back_inserter(cache_)); + logging::log(logging::Level::kDEBUG, "Cache read"); + } + length = cache_.size(); + return length ? cache_.data() : nullptr; + } + + void writeCalibrationCache(const void* cache, size_t length) noexcept override { + std::ofstream cache_file(cache_file_path_, std::ios::binary); + cache_file.write(reinterpret_cast(cache), length); + std::stringstream ss; + ss << "Saved Calibration Cache to " << cache_file_path_; + logging::log(logging::Level::kINFO, ss.str()); + } + + operator nvinfer1::IInt8Calibrator*() { + return reinterpret_cast(this); + } + + private: + const std::string& cache_file_path_; + size_t cache_size_ = 0; + std::vector cache_; + }; + + template + inline Int8Calibrator make_int8_calibrator( + DataLoader dataloader, + const std::string& cache_file_path, + bool use_cache) { + return Int8Calibrator(std::move(dataloader), cache_file_path, use_cache); + } + + template + inline Int8CacheCalibrator make_int8_cache_calibrator(const std::string& cache_file_path) { + return Int8CacheCalibrator(cache_file_path); + } + + } // namespace ptq + } // namespace torch_tensorrt diff --git a/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt b/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt new file mode 100644 index 0000000000..6526f355aa --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst.txt @@ -0,0 +1,294 @@ + +.. _program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h: + +Program Listing for File torch_tensorrt.h +========================================= + +|exhale_lsh| :ref:`Return to documentation for file ` (``cpp/include/torch_tensorrt/torch_tensorrt.h``) + +.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS + +.. code-block:: cpp + + /* + * Copyright (c) NVIDIA Corporation. + * All rights reserved. + * + * This library is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + + #pragma once + + #include + #include + #include + #include + #include + #include + #include "torch/custom_class.h" + + #include "torch_tensorrt/macros.h" + + // Just include the .h? + #ifndef DOXYGEN_SHOULD_SKIP_THIS + namespace torch { + namespace jit { + struct Graph; + struct Module; + } // namespace jit + } // namespace torch + + namespace c10 { + enum class DeviceType : int8_t; + enum class ScalarType : int8_t; + template + class ArrayRef; + } // namespace c10 + + namespace nvinfer1 { + class IInt8Calibrator; + } + #endif // DOXYGEN_SHOULD_SKIP_THIS + + namespace torch_tensorrt { + class DataType { + public: + enum Value : int8_t { + kFloat, + kHalf, + kChar, + kInt, + kBool, + kUnknown + }; + + DataType() = default; + constexpr DataType(Value t) : value(t) {} + TORCHTRT_API DataType(c10::ScalarType t); + operator Value() const { + return value; + } + explicit operator bool() = delete; + constexpr bool operator==(DataType other) const { + return value == other.value; + } + constexpr bool operator==(DataType::Value other) const { + return value == other; + } + constexpr bool operator!=(DataType other) const { + return value != other.value; + } + constexpr bool operator!=(DataType::Value other) const { + return value != other; + } + + private: + friend TORCHTRT_API std::ostream& operator<<(std::ostream& os, const DataType& dtype); + Value value; + }; + + struct Device { + class DeviceType { + public: + enum Value : int8_t { + kGPU, + kDLA, + }; + + DeviceType() = default; + constexpr DeviceType(Value t) : value(t) {} + DeviceType(c10::DeviceType t); + operator Value() const { + return value; + } + explicit operator bool() = delete; + constexpr bool operator==(DeviceType other) const { + return value == other.value; + } + constexpr bool operator!=(DeviceType other) const { + return value != other.value; + } + + private: + Value value; + }; + + DeviceType device_type; + + /* + * Target gpu id + */ + int64_t gpu_id; + + /* + * When using DLA core on NVIDIA AGX platforms gpu_id should be set as Xavier device + */ + int64_t dla_core; + + bool allow_gpu_fallback; + + Device() : device_type(DeviceType::kGPU), gpu_id(0), dla_core(0), allow_gpu_fallback(false) {} + }; + + enum class EngineCapability : int8_t { + kSTANDARD, + kSAFETY, + kDLA_STANDALONE, + }; + + class TensorFormat { + public: + enum Value : int8_t { + kContiguous, + kChannelsLast, + kUnknown, + }; + + TensorFormat() = default; + constexpr TensorFormat(Value t) : value(t) {} + TORCHTRT_API TensorFormat(at::MemoryFormat t); + operator Value() const { + return value; + } + explicit operator bool() = delete; + constexpr bool operator==(TensorFormat other) const { + return value == other.value; + } + constexpr bool operator==(TensorFormat::Value other) const { + return value == other; + } + constexpr bool operator!=(TensorFormat other) const { + return value != other.value; + } + constexpr bool operator!=(TensorFormat::Value other) const { + return value != other; + } + + private: + friend TORCHTRT_API std::ostream& operator<<(std::ostream& os, const TensorFormat& format); + Value value; + }; + + struct Input : torch::CustomClassHolder { + std::vector min_shape; + std::vector opt_shape; + std::vector max_shape; + std::vector shape; + DataType dtype; + TensorFormat format; + + Input() {} + TORCHTRT_API Input(std::vector shape, TensorFormat format = TensorFormat::kContiguous); + + TORCHTRT_API Input(std::vector shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous); + + TORCHTRT_API Input(c10::ArrayRef shape, TensorFormat format = TensorFormat::kContiguous); + + TORCHTRT_API Input(c10::ArrayRef shape, DataType dtype, TensorFormat format = TensorFormat::kContiguous); + + TORCHTRT_API Input( + std::vector min_shape, + std::vector opt_shape, + std::vector max_shape, + TensorFormat format = TensorFormat::kContiguous); + + TORCHTRT_API Input( + std::vector min_shape, + std::vector opt_shape, + std::vector max_shape, + DataType dtype, + TensorFormat format = TensorFormat::kContiguous); + + TORCHTRT_API Input( + c10::ArrayRef min_shape, + c10::ArrayRef opt_shape, + c10::ArrayRef max_shape, + TensorFormat format = TensorFormat::kContiguous); + + TORCHTRT_API Input( + c10::ArrayRef min_shape, + c10::ArrayRef opt_shape, + c10::ArrayRef max_shape, + DataType dtype, + TensorFormat format = TensorFormat::kContiguous); + + TORCHTRT_API Input(at::Tensor tensor); + + private: + friend TORCHTRT_API std::ostream& operator<<(std::ostream& os, const Input& input); + bool input_is_dynamic; + }; + + struct GraphInputs { + torch::jit::IValue input_signature; // nested Input, full input spec + std::vector inputs; // flatten input spec + }; + + TORCHTRT_API std::string get_build_info(); + + TORCHTRT_API void dump_build_info(); + + TORCHTRT_API void set_device(const int gpu_id); + + namespace torchscript { + struct CompileSpec { + TORCHTRT_API CompileSpec(std::vector> fixed_sizes); + + TORCHTRT_API CompileSpec(std::vector> fixed_sizes); + + TORCHTRT_API CompileSpec(std::vector inputs); + + TORCHTRT_API CompileSpec(torch::jit::IValue input_signature); + // Defaults should reflect TensorRT defaults for BuilderConfig + + GraphInputs graph_inputs; + std::set enabled_precisions = {DataType::kFloat}; + + bool disable_tf32 = false; + + bool sparse_weights = false; + + bool refit = false; + + bool debug = false; + + bool truncate_long_and_double = false; + + Device device; + + EngineCapability capability = EngineCapability::kSTANDARD; + + uint64_t num_avg_timing_iters = 1; + + uint64_t workspace_size = 0; + + uint64_t dla_sram_size = 1048576; + + uint64_t dla_local_dram_size = 1073741824; + + uint64_t dla_global_dram_size = 536870912; + + nvinfer1::IInt8Calibrator* ptq_calibrator = nullptr; + + bool require_full_compilation = false; + + uint64_t min_block_size = 3; + + std::vector torch_executed_ops; + + std::vector torch_executed_modules; + }; + + TORCHTRT_API bool check_method_operator_support(const torch::jit::Module& module, std::string method_name); + + TORCHTRT_API torch::jit::Module compile(const torch::jit::Module& module, CompileSpec info); + + TORCHTRT_API std::string convert_method_to_trt_engine( + const torch::jit::Module& module, + std::string method_name, + CompileSpec info); + + TORCHTRT_API torch::jit::Module embed_engine_in_new_module(const std::string& engine, Device device); + } // namespace torchscript + } // namespace torch_tensorrt diff --git a/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1Device.rst.txt b/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1Device.rst.txt new file mode 100644 index 0000000000..a090eaa324 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1Device.rst.txt @@ -0,0 +1,27 @@ +.. _exhale_struct_structtorch__tensorrt_1_1Device: + +Struct Device +============= + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Nested Relationships +-------------------- + + +Nested Types +************ + +- :ref:`exhale_class_classtorch__tensorrt_1_1Device_1_1DeviceType` + + +Struct Documentation +-------------------- + + +.. doxygenstruct:: torch_tensorrt::Device + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst.txt b/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst.txt new file mode 100644 index 0000000000..60bc3285c6 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst.txt @@ -0,0 +1,17 @@ +.. _exhale_struct_structtorch__tensorrt_1_1GraphInputs: + +Struct GraphInputs +================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Struct Documentation +-------------------- + + +.. doxygenstruct:: torch_tensorrt::GraphInputs + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1Input.rst.txt b/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1Input.rst.txt new file mode 100644 index 0000000000..74c594cd94 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1Input.rst.txt @@ -0,0 +1,26 @@ +.. _exhale_struct_structtorch__tensorrt_1_1Input: + +Struct Input +============ + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Inheritance Relationships +------------------------- + +Base Type +********* + +- ``public CustomClassHolder`` + + +Struct Documentation +-------------------- + + +.. doxygenstruct:: torch_tensorrt::Input + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst.txt b/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst.txt new file mode 100644 index 0000000000..31f2296658 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst.txt @@ -0,0 +1,17 @@ +.. _exhale_struct_structtorch__tensorrt_1_1torchscript_1_1CompileSpec: + +Struct CompileSpec +================== + +- Defined in :ref:`file_cpp_include_torch_tensorrt_torch_tensorrt.h` + + +Struct Documentation +-------------------- + + +.. doxygenstruct:: torch_tensorrt::torchscript::CompileSpec + :project: Torch-TensorRT + :members: + :protected-members: + :undoc-members: \ No newline at end of file diff --git a/docs/v1.2.0/_sources/_cpp_api/torch_tensort_cpp.rst.txt b/docs/v1.2.0/_sources/_cpp_api/torch_tensort_cpp.rst.txt new file mode 100644 index 0000000000..1b34d45a77 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/torch_tensort_cpp.rst.txt @@ -0,0 +1,10 @@ +====================== +Torch-TensorRT C++ API +====================== + +.. include:: class_view_hierarchy.rst.include + +.. include:: file_view_hierarchy.rst.include + +.. include:: unabridged_api.rst.include + diff --git a/docs/v1.2.0/_sources/_cpp_api/unabridged_api.rst.txt b/docs/v1.2.0/_sources/_cpp_api/unabridged_api.rst.txt new file mode 100644 index 0000000000..29689c465f --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/unabridged_api.rst.txt @@ -0,0 +1,213 @@ + +Full API +-------- + +Namespaces +********** + + +.. toctree:: + :maxdepth: 5 + + namespace_torch_tensorrt.rst + +.. toctree:: + :maxdepth: 5 + + namespace_torch_tensorrt__logging.rst + +.. toctree:: + :maxdepth: 5 + + namespace_torch_tensorrt__ptq.rst + +.. toctree:: + :maxdepth: 5 + + namespace_torch_tensorrt__torchscript.rst + +Classes and Structs +******************* + + +.. toctree:: + :maxdepth: 5 + + structtorch__tensorrt_1_1Device.rst + +.. toctree:: + :maxdepth: 5 + + structtorch__tensorrt_1_1Input.rst + +.. toctree:: + :maxdepth: 5 + + structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1DataType.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1Device_1_1DeviceType.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst + +.. toctree:: + :maxdepth: 5 + + classtorch__tensorrt_1_1TensorFormat.rst + +Enums +***** + + +.. toctree:: + :maxdepth: 5 + + enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst + +.. toctree:: + :maxdepth: 5 + + enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst + +Functions +********* + + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst + +.. toctree:: + :maxdepth: 5 + + function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst + +.. toctree:: + :maxdepth: 5 + + function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst + +.. toctree:: + :maxdepth: 5 + + function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst + +.. toctree:: + :maxdepth: 5 + + function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst + +Defines +******* + + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst + +.. toctree:: + :maxdepth: 5 + + define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst diff --git a/docs/v1.2.0/_sources/_cpp_api/unabridged_orphan.rst.txt b/docs/v1.2.0/_sources/_cpp_api/unabridged_orphan.rst.txt new file mode 100644 index 0000000000..5789e581e8 --- /dev/null +++ b/docs/v1.2.0/_sources/_cpp_api/unabridged_orphan.rst.txt @@ -0,0 +1,48 @@ +:orphan: + + +Full API +======== + +Directories +*********** + + +.. toctree:: + :maxdepth: 5 + + dir_cpp.rst + +.. toctree:: + :maxdepth: 5 + + dir_cpp_include.rst + +.. toctree:: + :maxdepth: 5 + + dir_cpp_include_torch_tensorrt.rst + +Files +***** + + +.. toctree:: + :maxdepth: 5 + + file_cpp_include_torch_tensorrt_logging.h.rst + +.. toctree:: + :maxdepth: 5 + + file_cpp_include_torch_tensorrt_macros.h.rst + +.. toctree:: + :maxdepth: 5 + + file_cpp_include_torch_tensorrt_ptq.h.rst + +.. toctree:: + :maxdepth: 5 + + file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst diff --git a/docs/v1.2.0/_sources/_notebooks/CitriNet-example.ipynb.txt b/docs/v1.2.0/_sources/_notebooks/CitriNet-example.ipynb.txt new file mode 100644 index 0000000000..0573af0176 --- /dev/null +++ b/docs/v1.2.0/_sources/_notebooks/CitriNet-example.ipynb.txt @@ -0,0 +1,964 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - CitriNet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "[Citrinet](https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/main/asr/models.html#citrinet) is an acoustic model used for the speech to text recognition task. It is a version of [QuartzNet](https://arxiv.org/pdf/1910.10261.pdf) that extends [ContextNet](https://arxiv.org/pdf/2005.03191.pdf), utilizing subword encoding (via Word Piece tokenization) and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models.\n", + "\n", + "CitriNet models take in audio segments and transcribe them to letter, byte pair, or word piece sequences. \n", + "\n", + "\"alt\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [Download Citrinet model](#2)\n", + "1. [Create Torch-TensorRT modules](#3)\n", + "1. [Benchmark Torch-TensorRT models](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in [README](README.md) to prepare a Docker container, within which you can run this notebook. \n", + "This notebook assumes that you are within a Jupyter environment in a docker container with Torch-TensorRT installed, such as an NGC monthly release of `nvcr.io/nvidia/pytorch:-py3` (where `yy` indicates the last two numbers of a calendar year, and `mm` indicates the month in two-digit numerical form)\n", + "\n", + "Now that you are in the docker, the next step is to install the required dependencies." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (3.2)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease\n", + "Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease\n", + "Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease\n", + "Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease\n", + "Reading package lists... Done\n", + "Reading package lists... Done\n", + "Building dependency tree \n", + "Reading state information... Done\n", + "libsndfile1 is already the newest version (1.0.28-7ubuntu0.1).\n", + "ffmpeg is already the newest version (7:4.2.4-1ubuntu0.1).\n", + "0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: Cython in /opt/conda/lib/python3.8/site-packages (0.29.28)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: nemo_toolkit[all]==1.5.1 in /opt/conda/lib/python3.8/site-packages (1.5.1)\n", + "Requirement already satisfied: numpy>=1.18.2 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.22.3)\n", + "Requirement already satisfied: onnx>=1.7.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.10.1)\n", + "Requirement already satisfied: python-dateutil in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.8.2)\n", + "Requirement already satisfied: tqdm>=4.41.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.63.0)\n", + "Requirement already satisfied: sentencepiece<1.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.96)\n", + "Requirement already satisfied: wget in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)\n", + "Requirement already satisfied: numba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.53.1)\n", + "Requirement already satisfied: torch in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.12.0a0+2c916ef)\n", + "Requirement already satisfied: unidecode in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.4)\n", + "Requirement already satisfied: frozendict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.3.2)\n", + "Requirement already satisfied: wrapt in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.14.0)\n", + "Requirement already satisfied: scikit-learn in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.24.2)\n", + "Requirement already satisfied: ruamel.yaml in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.17.21)\n", + "Requirement already satisfied: pesq in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.3)\n", + "Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.13.0a0)\n", + "Requirement already satisfied: gdown in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: editdistance in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.6.0)\n", + "Requirement already satisfied: boto3 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.21.45)\n", + "Requirement already satisfied: isort[requirements]<5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.3.21)\n", + "Requirement already satisfied: hydra-core>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.2)\n", + "Requirement already satisfied: youtokentome>=1.0.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.0.6)\n", + "Requirement already satisfied: pytorch-lightning>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.1)\n", + "Requirement already satisfied: jieba in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.42.1)\n", + "Requirement already satisfied: fasttext in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.2)\n", + "Requirement already satisfied: soundfile in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.10.3.post1)\n", + "Requirement already satisfied: kaldiio in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.17.2)\n", + "Requirement already satisfied: pangu in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.0.6.1)\n", + "Requirement already satisfied: kaldi-python-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.2.2)\n", + "Requirement already satisfied: parameterized in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.1)\n", + "Requirement already satisfied: h5py in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: rapidfuzz in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.10)\n", + "Requirement already satisfied: marshmallow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.15.0)\n", + "Requirement already satisfied: opencc in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.1.3)\n", + "Requirement already satisfied: braceexpand in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.7)\n", + "Requirement already satisfied: omegaconf>=2.1.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.2)\n", + "Requirement already satisfied: sphinx in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: pillow in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (9.0.0)\n", + "Requirement already satisfied: wordninja==2.0.0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: torch-stft in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.4)\n", + "Requirement already satisfied: sox in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.4.1)\n", + "Requirement already satisfied: librosa in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.1)\n", + "Requirement already satisfied: regex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2022.3.15)\n", + "Requirement already satisfied: sacrebleu[ja] in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: black==19.10b0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (19.10b0)\n", + "Requirement already satisfied: pydub in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.25.1)\n", + "Requirement already satisfied: sphinxcontrib-bibtex in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.4.2)\n", + "Requirement already satisfied: inflect in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.5.2)\n", + "Requirement already satisfied: pyannote.core in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.4)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (21.3)\n", + "Requirement already satisfied: kaldi-io in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.9.4)\n", + "Requirement already satisfied: pyannote.metrics in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.2)\n", + "Requirement already satisfied: g2p-en in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.1.0)\n", + "Requirement already satisfied: matplotlib in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.5.1)\n", + "Requirement already satisfied: torchmetrics>=0.4.1rc0 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.8.0)\n", + "Requirement already satisfied: nltk>=3.6.5 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (3.7)\n", + "Requirement already satisfied: pyyaml<6 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (5.4.1)\n", + "Requirement already satisfied: scipy in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.6.3)\n", + "Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (7.7.0)\n", + "Requirement already satisfied: pytest in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.2.5)\n", + "Requirement already satisfied: pandas in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (1.3.5)\n", + "Requirement already satisfied: pytest-runner in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (6.0.0)\n", + "Requirement already satisfied: transformers>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (4.18.0)\n", + "Requirement already satisfied: sacremoses>=0.0.43 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.0.49)\n", + "Requirement already satisfied: pystoi in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.3.3)\n", + "Requirement already satisfied: attrdict in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (2.0.1)\n", + "Requirement already satisfied: webdataset<=0.1.62,>=0.1.48 in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.1.62)\n", + "Requirement already satisfied: wandb in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.12.15)\n", + "Requirement already satisfied: pypinyin in /opt/conda/lib/python3.8/site-packages (from nemo_toolkit[all]==1.5.1) (0.46.0)\n", + "Requirement already satisfied: attrs>=18.1.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (21.4.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: appdirs in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.4.4)\n", + "Requirement already satisfied: typed-ast>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (1.5.3)\n", + "Requirement already satisfied: pathspec<1,>=0.6 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.9.0)\n", + "Requirement already satisfied: click>=6.5 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (8.0.4)\n", + "Requirement already satisfied: toml>=0.9.4 in /opt/conda/lib/python3.8/site-packages (from black==19.10b0->nemo_toolkit[all]==1.5.1) (0.10.2)\n", + "Requirement already satisfied: antlr4-python3-runtime==4.8 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (4.8)\n", + "Requirement already satisfied: importlib-resources<5.3 in /opt/conda/lib/python3.8/site-packages (from hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (5.2.3)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources<5.3->hydra-core>=1.1.0->nemo_toolkit[all]==1.5.1) (3.7.0)\n", + "Requirement already satisfied: pip-api in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.0.29)\n", + "Requirement already satisfied: pipreqs in /opt/conda/lib/python3.8/site-packages (from isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.4.11)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (4.31.2)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (1.4.0)\n", + "Requirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (3.0.7)\n", + "Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.8/site-packages (from matplotlib->nemo_toolkit[all]==1.5.1) (0.11.0)\n", + "Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from nltk>=3.6.5->nemo_toolkit[all]==1.5.1) (1.1.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.2.1 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (4.1.1)\n", + "Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (1.16.0)\n", + "Requirement already satisfied: protobuf>=3.12.2 in /opt/conda/lib/python3.8/site-packages (from onnx>=1.7.0->nemo_toolkit[all]==1.5.1) (3.19.4)\n", + "Requirement already satisfied: pyDeprecate<0.4.0,>=0.3.1 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.3.2)\n", + "Requirement already satisfied: tensorboard>=2.2.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.8.0)\n", + "Requirement already satisfied: fsspec[http]!=2021.06.0,>=2021.05.0 in /opt/conda/lib/python3.8/site-packages (from pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2022.2.0)\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.27.1)\n", + "Requirement already satisfied: aiohttp in /opt/conda/lib/python3.8/site-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.8.1)\n", + "Requirement already satisfied: werkzeug>=0.11.15 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.3)\n", + "Requirement already satisfied: markdown>=2.6.8 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3.6)\n", + "Requirement already satisfied: setuptools>=41.0.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (59.5.0)\n", + "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.6)\n", + "Requirement already satisfied: google-auth<3,>=1.6.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.6.2)\n", + "Requirement already satisfied: wheel>=0.26 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.37.1)\n", + "Requirement already satisfied: grpcio>=1.24.3 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.44.0)\n", + "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.6.1)\n", + "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.8.1)\n", + "Requirement already satisfied: absl-py>=0.4 in /opt/conda/lib/python3.8/site-packages (from tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (5.0.0)\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.2.8)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.8)\n", + "Requirement already satisfied: requests-oauthlib>=0.7.0 in /opt/conda/lib/python3.8/site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.1)\n", + "Requirement already satisfied: importlib-metadata>=4.4 in /opt/conda/lib/python3.8/site-packages (from markdown>=2.6.8->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.11.3)\n", + "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (0.4.8)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (2021.10.8)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.3)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.26.8)\n", + "Requirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.8/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (3.2.0)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.5.1)\n", + "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (0.12.1)\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers>=4.0.1->nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.3.0)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.2)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (4.0.2)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (6.0.2)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /opt/conda/lib/python3.8/site-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.2.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: s3transfer<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (0.5.2)\n", + "Requirement already satisfied: botocore<1.25.0,>=1.24.45 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.24.45)\n", + "Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /opt/conda/lib/python3.8/site-packages (from boto3->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: pybind11>=2.2 in /opt/conda/lib/python3.8/site-packages (from fasttext->nemo_toolkit[all]==1.5.1) (2.9.1)\n", + "Requirement already satisfied: distance>=0.1.3 in /opt/conda/lib/python3.8/site-packages (from g2p-en->nemo_toolkit[all]==1.5.1) (0.1.3)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from gdown->nemo_toolkit[all]==1.5.1) (4.10.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->gdown->nemo_toolkit[all]==1.5.1) (2.3.1)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (8.1.1)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (6.9.2)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (1.1.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (3.6.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets->nemo_toolkit[all]==1.5.1) (5.2.0)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (7.1.2)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (5.9.0)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (6.1)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.4)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.3)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.5)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (5.1.1)\n", + "Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.11.2)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.27)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.8.0)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (0.4)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (22.3.0)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets->nemo_toolkit[all]==1.5.1) (4.9.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.18.1)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.5)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.8.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.13.3)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (3.0.3)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (6.4.4)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.3.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.1.1)\n", + "Requirement already satisfied: resampy>=0.2.2 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (0.2.2)\n", + "Requirement already satisfied: pooch>=1.0 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (1.6.0)\n", + "Requirement already satisfied: audioread>=2.1.5 in /opt/conda/lib/python3.8/site-packages (from librosa->nemo_toolkit[all]==1.5.1) (2.1.9)\n", + "Requirement already satisfied: llvmlite<0.37,>=0.36.0rc1 in /opt/conda/lib/python3.8/site-packages (from numba->nemo_toolkit[all]==1.5.1) (0.36.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from scikit-learn->nemo_toolkit[all]==1.5.1) (3.1.0)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.7.1)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.13)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (4.1.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.4)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (1.5.0)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.6.0)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.1.2)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.5.1)\n", + "Requirement already satisfied: pytz>=2017.3 in /opt/conda/lib/python3.8/site-packages (from pandas->nemo_toolkit[all]==1.5.1) (2021.3)\n", + "Requirement already satisfied: pip in /opt/conda/lib/python3.8/site-packages (from pip-api->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (21.2.4)\n", + "Requirement already satisfied: yarg in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.1.9)\n", + "Requirement already satisfied: docopt in /opt/conda/lib/python3.8/site-packages (from pipreqs->isort[requirements]<5->nemo_toolkit[all]==1.5.1) (0.6.2)\n", + "Requirement already satisfied: simplejson>=3.8.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (3.17.6)\n", + "Requirement already satisfied: sortedcontainers>=2.0.4 in /opt/conda/lib/python3.8/site-packages (from pyannote.core->nemo_toolkit[all]==1.5.1) (2.4.0)\n", + "Requirement already satisfied: tabulate>=0.7.7 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.8.9)\n", + "Requirement already satisfied: pyannote.database>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (4.1.3)\n", + "Requirement already satisfied: sympy>=1.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.10.1)\n", + "Requirement already satisfied: typer[all]>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.0)\n", + "Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.8/site-packages (from sympy>=1.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.2.1)\n", + "Requirement already satisfied: colorama<0.5.0,>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (0.4.4)\n", + "Requirement already satisfied: shellingham<2.0.0,>=1.3.0 in /opt/conda/lib/python3.8/site-packages (from typer[all]>=0.2.1->pyannote.database>=4.0.1->pyannote.metrics->nemo_toolkit[all]==1.5.1) (1.4.0)\n", + "Requirement already satisfied: py>=1.8.2 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.11.0)\n", + "Requirement already satisfied: iniconfig in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.1.1)\n", + "Requirement already satisfied: pluggy<2.0,>=0.12 in /opt/conda/lib/python3.8/site-packages (from pytest->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: jarowinkler<1.1.0,>=1.0.2 in /opt/conda/lib/python3.8/site-packages (from rapidfuzz->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /opt/conda/lib/python3.8/site-packages (from requests->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.5.0->nemo_toolkit[all]==1.5.1) (1.7.1)\n", + "Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in /opt/conda/lib/python3.8/site-packages (from ruamel.yaml->nemo_toolkit[all]==1.5.1) (0.2.6)\n", + "Requirement already satisfied: portalocker in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (2.4.0)\n", + "Requirement already satisfied: ipadic<2.0,>=1.0 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.0)\n", + "Requirement already satisfied: mecab-python3==1.0.3 in /opt/conda/lib/python3.8/site-packages (from sacrebleu[ja]->nemo_toolkit[all]==1.5.1) (1.0.3)\n", + "Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.0.0)\n", + "Requirement already satisfied: alabaster<0.8,>=0.7 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.7.12)\n", + "Requirement already satisfied: babel>=1.3 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.9.1)\n", + "Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.1.5)\n", + "Requirement already satisfied: sphinxcontrib-devhelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: sphinxcontrib-jsmath in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.1)\n", + "Requirement already satisfied: sphinxcontrib-qthelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.3)\n", + "Requirement already satisfied: snowballstemmer>=1.1 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (2.2.0)\n", + "Requirement already satisfied: imagesize in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.3.0)\n", + "Requirement already satisfied: sphinxcontrib-applehelp in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (1.0.2)\n", + "Requirement already satisfied: docutils<0.18,>=0.14 in /opt/conda/lib/python3.8/site-packages (from sphinx->nemo_toolkit[all]==1.5.1) (0.17.1)\n", + "Requirement already satisfied: pybtex-docutils>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (1.0.1)\n", + "Requirement already satisfied: pybtex>=0.24 in /opt/conda/lib/python3.8/site-packages (from sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (0.24.0)\n", + "Requirement already satisfied: latexcodec>=1.0.4 in /opt/conda/lib/python3.8/site-packages (from pybtex>=0.24->sphinxcontrib-bibtex->nemo_toolkit[all]==1.5.1) (2.0.1)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.2.2)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (2.0.5)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets->nemo_toolkit[all]==1.5.1) (0.8.3)\n", + "Requirement already satisfied: pathtools in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.1.2)\n", + "Requirement already satisfied: setproctitle in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.2.3)\n", + "Requirement already satisfied: GitPython>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (3.1.27)\n", + "Requirement already satisfied: sentry-sdk>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.5.10)\n", + "Requirement already satisfied: shortuuid>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (1.0.8)\n", + "Requirement already satisfied: docker-pycreds>=0.4.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (0.4.0)\n", + "Requirement already satisfied: promise<3,>=2.0 in /opt/conda/lib/python3.8/site-packages (from wandb->nemo_toolkit[all]==1.5.1) (2.3)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/conda/lib/python3.8/site-packages (from GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (4.0.9)\n", + "Requirement already satisfied: smmap<6,>=3.0.1 in /opt/conda/lib/python3.8/site-packages (from gitdb<5,>=4.0.1->GitPython>=1.0.0->wandb->nemo_toolkit[all]==1.5.1) (5.0.0)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "# Install dependencies\n", + "!pip install wget\n", + "!apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsndfile1 ffmpeg\n", + "!pip install Cython\n", + "\n", + "## Install NeMo\n", + "!pip install nemo_toolkit[all]==1.5.1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. Download Citrinet model\n", + "\n", + "Next, we download a pretrained Nemo Citrinet model and convert it to a Torchscript module:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import nemo\n", + "import torch\n", + "\n", + "import nemo.collections.asr as nemo_asr\n", + "from nemo.core import typecheck\n", + "typecheck.set_typecheck_enabled(False) " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading and saving stt_en_citrinet_256...\n", + "[NeMo I 2022-04-21 23:12:45 cloud:56] Found existing object /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.\n", + "[NeMo I 2022-04-21 23:12:45 cloud:62] Re-using file from: /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo\n", + "[NeMo I 2022-04-21 23:12:45 common:728] Instantiating model from pre-trained checkpoint\n", + "[NeMo I 2022-04-21 23:12:46 mixins:146] Tokenizer SentencePieceTokenizer initialized with 1024 tokens\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:47 modelPT:130] If you intend to do training or fine-tuning, please call the ModelPT.setup_training_data() method and provide a valid configuration file to setup the train data loader.\n", + " Train config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " trim_silence: true\n", + " max_duration: 16.7\n", + " shuffle: true\n", + " is_tarred: false\n", + " tarred_audio_filepaths: null\n", + " use_start_end_token: false\n", + " \n", + "[NeMo W 2022-04-21 23:12:47 modelPT:137] If you intend to do validation, please call the ModelPT.setup_validation_data() or ModelPT.setup_multiple_validation_data() method and provide a valid configuration file to setup the validation data loader(s). \n", + " Validation config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " shuffle: false\n", + " use_start_end_token: false\n", + " \n", + "[NeMo W 2022-04-21 23:12:47 modelPT:143] Please call the ModelPT.setup_test_data() or ModelPT.setup_multiple_test_data() method and provide a valid configuration file to setup the test data loader(s).\n", + " Test config : \n", + " manifest_filepath: null\n", + " sample_rate: 16000\n", + " batch_size: 32\n", + " shuffle: false\n", + " use_start_end_token: false\n", + " \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[NeMo I 2022-04-21 23:12:47 features:265] PADDING: 16\n", + "[NeMo I 2022-04-21 23:12:47 features:282] STFT using torch\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:47 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/nemo/collections/asr/parts/preprocessing/features.py:315: FutureWarning: Pass sr=16000, n_fft=512 as keyword args. From version 0.10 passing these as positional arguments will result in an error\n", + " librosa.filters.mel(sample_rate, self.n_fft, n_mels=nfilt, fmin=lowfreq, fmax=highfreq), dtype=torch.float\n", + " \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[NeMo I 2022-04-21 23:12:49 save_restore_connector:149] Model EncDecCTCModelBPE was successfully restored from /root/.cache/torch/NeMo/NeMo_1.5.1/stt_en_citrinet_256/91a9cc5850784b2065e8a0aa3d526fd9/stt_en_citrinet_256.nemo.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules\n", + "[NeMo W 2022-04-21 23:12:49 conv_asr:73] Turned off 235 masked convolutions\n", + "[NeMo W 2022-04-21 23:12:49 export_utils:198] Swapped 0 modules\n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/jit/_trace.py:916: UserWarning: `optimize` is deprecated and has no effect. Use `with torch.jit.optimized_execution() instead\n", + " warnings.warn(\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.\n", + " if hasattr(mod, name):\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: The `LightningModule.model_size` property was deprecated in v1.5 and will be removed in v1.7. Please use the `pytorch_lightning.utilities.memory.get_model_size_mb`.\n", + " item = getattr(mod, name)\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:668: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.\n", + " if hasattr(mod, name):\n", + " \n", + "[NeMo W 2022-04-21 23:12:50 nemo_logging:349] /opt/conda/lib/python3.8/site-packages/torch/_jit_internal.py:669: LightningDeprecationWarning: `LightningModule.use_amp` was deprecated in v1.6 and will be removed in v1.8. Please use `Trainer.amp_backend`.\n", + " item = getattr(mod, name)\n", + " \n" + ] + }, + { + "data": { + "text/plain": [ + "(['stt_en_citrinet_256.ts'],\n", + " ['nemo.collections.asr.models.ctc_bpe_models.EncDecCTCModelBPE exported to ONNX'])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "variant = 'stt_en_citrinet_256'\n", + "\n", + "print(f\"Downloading and saving {variant}...\")\n", + "asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name=variant)\n", + "asr_model.export(f\"{variant}.ts\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmark utility\n", + "\n", + "Let us define a helper benchmarking function, then benchmark the original Pytorch model." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 102.0, mean: 102.0\n", + " Median latency (s): 0.009802, mean: 0.009803, 99th_p: 0.009836, std_dev: 0.000014\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 429.1, mean: 429.1\n", + " Median latency (s): 0.018642, mean: 0.018643, 99th_p: 0.018670, std_dev: 0.000014\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 551.3, mean: 551.2\n", + " Median latency (s): 0.058047, mean: 0.058053, 99th_p: 0.058375, std_dev: 0.000106\n", + "\n", + "Loading model: stt_en_citrinet_256.ts\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256.ts =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 594.1, mean: 594.1\n", + " Median latency (s): 0.215434, mean: 0.215446, 99th_p: 0.215806, std_dev: 0.000116\n", + "\n" + ] + } + ], + "source": [ + "from __future__ import print_function\n", + "from __future__ import absolute_import\n", + "from __future__ import division\n", + "\n", + "import argparse\n", + "import timeit\n", + "import numpy as np\n", + "import torch\n", + "import torch_tensorrt as trtorch\n", + "import torch.backends.cudnn as cudnn\n", + "\n", + "def benchmark(model, input_tensor, num_loops, model_name, batch_size):\n", + " def timeGraph(model, input_tensor, num_loops):\n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(20):\n", + " features = model(input_tensor)\n", + "\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(num_loops):\n", + " start_time = timeit.default_timer()\n", + " features = model(input_tensor)\n", + " torch.cuda.synchronize()\n", + " end_time = timeit.default_timer()\n", + " timings.append(end_time - start_time)\n", + " # print(\"Iteration {}: {:.6f} s\".format(i, end_time - start_time))\n", + " return timings\n", + " def printStats(graphName, timings, batch_size):\n", + " times = np.array(timings)\n", + " steps = len(times)\n", + " speeds = batch_size / times\n", + " time_mean = np.mean(times)\n", + " time_med = np.median(times)\n", + " time_99th = np.percentile(times, 99)\n", + " time_std = np.std(times, ddof=0)\n", + " speed_mean = np.mean(speeds)\n", + " speed_med = np.median(speeds)\n", + " msg = (\"\\n%s =================================\\n\"\n", + " \"batch size=%d, num iterations=%d\\n\"\n", + " \" Median samples/s: %.1f, mean: %.1f\\n\"\n", + " \" Median latency (s): %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\\n\"\n", + " ) % (graphName,\n", + " batch_size, steps,\n", + " speed_med, speed_mean,\n", + " time_med, time_mean, time_99th, time_std)\n", + " print(msg)\n", + " timings = timeGraph(model, input_tensor, num_loops)\n", + " printStats(model_name, timings, batch_size)\n", + "\n", + "precisions_str = 'fp32' # Precision (default=fp32, fp16)\n", + "variant = 'stt_en_citrinet_256' # Nemo Citrinet variant\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "trt = False # If True, infer with Torch-TensorRT engine. Else, infer with Pytorch model.\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Confirming the GPU we are using here:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Thu Apr 21 23:13:32 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA TITAN V On | 00000000:17:00.0 Off | N/A |\n", + "| 38% 55C P2 42W / 250W | 2462MiB / 12288MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + "| 1 NVIDIA TITAN V On | 00000000:65:00.0 Off | N/A |\n", + "| 28% 39C P8 26W / 250W | 112MiB / 12288MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| 0 N/A N/A 3909 G 4MiB |\n", + "| 0 N/A N/A 6047 C 2453MiB |\n", + "| 1 N/A N/A 3909 G 39MiB |\n", + "| 1 N/A N/A 4161 G 67MiB |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Create Torch-TensorRT modules\n", + "\n", + "In this step, we optimize the Citrinet Torchscript module with Torch-TensorRT with various precisions and batch sizes." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating Torchscript-TensorRT module for batchsize 1 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 8 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 32 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 128 precision torch.float32\n", + "Generating Torchscript-TensorRT module for batchsize 1 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 8 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 32 precision torch.float16\n", + "Generating Torchscript-TensorRT module for batchsize 128 precision torch.float16\n" + ] + } + ], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch_tensorrt as torchtrt\n", + "import argparse\n", + "\n", + "variant = \"stt_en_citrinet_256\"\n", + "precisions = [torch.float, torch.half]\n", + "batch_sizes = [1,8,32,128]\n", + "\n", + "model = torch.jit.load(f\"{variant}.ts\")\n", + "\n", + "for precision in precisions:\n", + " for batch_size in batch_sizes:\n", + " compile_settings = {\n", + " \"inputs\": [torchtrt.Input(shape=[batch_size, 80, 1488])],\n", + " \"enabled_precisions\": {precision},\n", + " \"workspace_size\": 2000000000,\n", + " \"truncate_long_and_double\": True,\n", + " }\n", + " print(f\"Generating Torchscript-TensorRT module for batchsize {batch_size} precision {precision}\")\n", + " trt_ts_module = torchtrt.compile(model, **compile_settings)\n", + " torch.jit.save(trt_ts_module, f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Benchmark Torch-TensorRT models\n", + "\n", + "Finally, we are ready to benchmark the Torch-TensorRT optimized Citrinet models." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs1_torch.float32.torch-tensorrt =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 242.2, mean: 218.0\n", + " Median latency (s): 0.004128, mean: 0.004825, 99th_p: 0.008071, std_dev: 0.001270\n", + "\n", + "Loading model: stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs8_torch.float32.torch-tensorrt =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 729.9, mean: 709.0\n", + " Median latency (s): 0.010961, mean: 0.011388, 99th_p: 0.016114, std_dev: 0.001256\n", + "\n", + "Loading model: stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs32_torch.float32.torch-tensorrt =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 955.6, mean: 953.4\n", + " Median latency (s): 0.033488, mean: 0.033572, 99th_p: 0.035722, std_dev: 0.000545\n", + "\n", + "Loading model: stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs128_torch.float32.torch-tensorrt =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 1065.8, mean: 1069.4\n", + " Median latency (s): 0.120097, mean: 0.119708, 99th_p: 0.121618, std_dev: 0.001260\n", + "\n" + ] + } + ], + "source": [ + "precisions_str = 'fp32' # Precision (default=fp32, fp16)\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "trt = True\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading model: stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs1_torch.float16.torch-tensorrt =================================\n", + "batch size=1, num iterations=50\n", + " Median samples/s: 288.9, mean: 272.9\n", + " Median latency (s): 0.003462, mean: 0.003774, 99th_p: 0.006846, std_dev: 0.000820\n", + "\n", + "Loading model: stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs8_torch.float16.torch-tensorrt =================================\n", + "batch size=8, num iterations=50\n", + " Median samples/s: 1201.0, mean: 1190.9\n", + " Median latency (s): 0.006661, mean: 0.006733, 99th_p: 0.008453, std_dev: 0.000368\n", + "\n", + "Loading model: stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs32_torch.float16.torch-tensorrt =================================\n", + "batch size=32, num iterations=50\n", + " Median samples/s: 1538.2, mean: 1516.4\n", + " Median latency (s): 0.020804, mean: 0.021143, 99th_p: 0.024492, std_dev: 0.000973\n", + "\n", + "Loading model: stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt\n", + "Warm up ...\n", + "Start timing ...\n", + "\n", + "stt_en_citrinet_256_bs128_torch.float16.torch-tensorrt =================================\n", + "batch size=128, num iterations=50\n", + " Median samples/s: 1792.0, mean: 1777.0\n", + " Median latency (s): 0.071428, mean: 0.072057, 99th_p: 0.076796, std_dev: 0.001351\n", + "\n" + ] + } + ], + "source": [ + "precisions_str = 'fp16' # Precision (default=fp32, fp16)\n", + "batch_sizes = [1, 8, 32, 128] # Batch sizes (default=1,8,32,128)\n", + "precision = torch.float32 if precisions_str =='fp32' else torch.float16\n", + "\n", + "for batch_size in batch_sizes:\n", + " if trt:\n", + " model_name = f\"{variant}_bs{batch_size}_{precision}.torch-tensorrt\"\n", + " else:\n", + " model_name = f\"{variant}.ts\"\n", + "\n", + " print(f\"Loading model: {model_name}\") \n", + " # Load traced model to CPU first\n", + " model = torch.jit.load(model_name).cuda()\n", + " cudnn.benchmark = True\n", + " # Create random input tensor of certain size\n", + " torch.manual_seed(12345)\n", + " input_shape=(batch_size, 80, 1488)\n", + " input_tensor = torch.randn(input_shape).cuda()\n", + "\n", + " # Timing graph inference\n", + " benchmark(model, input_tensor, 50, model_name, batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of optimizing the Citrinet model with Torch-TensorRT. On an A100 GPU, with Torch-TensorRT, we observe a speedup of ~**2.4X** with FP32, and ~**2.9X** with FP16 at batchsize of 128.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_sources/_notebooks/EfficientNet-example.ipynb.txt b/docs/v1.2.0/_sources/_notebooks/EfficientNet-example.ipynb.txt new file mode 100644 index 0000000000..31a3dad874 --- /dev/null +++ b/docs/v1.2.0/_sources/_notebooks/EfficientNet-example.ipynb.txt @@ -0,0 +1,693 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - EfficientNet-B0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained EfficientNet network, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [EfficientNet Overview](#2)\n", + "1. [Running the model without optimizations](#3)\n", + "1. [Accelerating with Torch-TensorRT](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting timm==0.4.12\n", + " Downloading timm-0.4.12-py3-none-any.whl (376 kB)\n", + "\u001b[K |████████████████████████████████| 376 kB 11.9 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: torch>=1.4 in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (1.11.0a0+bfe5ad2)\n", + "Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from timm==0.4.12) (0.12.0a0)\n", + "Requirement already satisfied: typing_extensions in /opt/conda/lib/python3.8/site-packages (from torch>=1.4->timm==0.4.12) (4.0.1)\n", + "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (8.2.0)\n", + "Requirement already satisfied: numpy in /opt/conda/lib/python3.8/site-packages (from torchvision->timm==0.4.12) (1.22.0)\n", + "Installing collected packages: timm\n", + "Successfully installed timm-0.4.12\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Fri Feb 4 21:29:36 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:65:00.0 Off | N/A |\n", + "| 30% 28C P8 11W / 350W | 0MiB / 24576MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!pip install timm==0.4.12\n", + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. EfficientNet Overview\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet.\n", + "\n", + "### Model Description\n", + "\n", + "This model is based on the [EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks](https://arxiv.org/abs/1905.11946) paper.\n", + "\n", + "\"alt\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Running the model without optimizations\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "import torch\n", + "import torch_tensorrt\n", + "import timm\n", + "import time\n", + "import numpy as np\n", + "import torch.backends.cudnn as cudnn\n", + "from timm.data import resolve_data_config\n", + "from timm.data.transforms_factory import create_transform\n", + "import json \n", + "\n", + "efficientnet_b0_model = timm.create_model('efficientnet_b0',pretrained=True)\n", + "model = efficientnet_b0_model.eval().to(\"cuda\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our model loaded, let's proceed to downloading some images!" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-02-04 21:30:07-- https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\n", + "Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.127, 18.65.227.37, 18.65.227.99, ...\n", + "Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.127|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 24112 (24K) [image/jpeg]\n", + "Saving to: ‘./data/img0.JPG’\n", + "\n", + "./data/img0.JPG 100%[===================>] 23.55K --.-KB/s in 0.004s \n", + "\n", + "2022-02-04 21:30:07 (6.40 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-02-04 21:30:07-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K --.-KB/s in 0.06s \n", + "\n", + "2022-02-04 21:30:07 (6.83 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-02-04 21:30:08-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 246KB/s in 1.4s \n", + "\n", + "2022-02-04 21:30:10 (246 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-02-04 21:30:10-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.202.107, 104.18.201.107, 2606:4700::6812:ca6b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.202.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 90994 (89K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 88.86K --.-KB/s in 0.006s \n", + "\n", + "2022-02-04 21:30:10 (14.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]\n", + "\n", + "--2022-02-04 21:30:11-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.133.45\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.133.45|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-02-04 21:30:11 (474 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All pre-trained models expect input images normalized in the same way,\n", + "i.e. mini-batches of 3-channel RGB images of shape `(3 x H x W)`, where `H` and `W` are expected to be at least `224`.\n", + "The images have to be loaded in to a range of `[0, 1]` and then normalized using `mean = [0.485, 0.456, 0.406]`\n", + "and `std = [0.229, 0.224, 0.225]`.\n", + "\n", + "Here's a sample execution." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels\n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Throughout this tutorial, we will be making use of some utility functions; `efficientnet_preprocess` for preprocessing input images, `predict` to use the model for prediction and `benchmark` to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "cudnn.benchmark = True\n", + "\n", + "def efficientnet_preprocess():\n", + " config = resolve_data_config({}, model=model)\n", + " transform = create_transform(**config)\n", + " return transform\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = efficientnet_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average throughput: %.2f images/second'%(input_shape[0]/np.mean(timings)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the model downloaded and the util functions written, let's just quickly see some predictions, and benchmark the model in its current un-optimized state." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.8/site-packages/torchvision/transforms/transforms.py:321: UserWarning: Argument interpolation should be of type InterpolationMode instead of int. Please, use InterpolationMode enum.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02109961', 'Eskimo_dog'], Probablility: 0.3987298309803009\n", + "./data/img1.JPG - Predicted: ['n01537544', 'indigo_bunting'], Probablility: 0.23344755172729492\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9695423245429993\n", + "./data/img3.JPG - Predicted: ['n01739381', 'vine_snake'], Probablility: 0.227739155292511\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, efficientnet_b0_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 37.62 ms\n", + "Iteration 20/100, avg batch time 37.66 ms\n", + "Iteration 30/100, avg batch time 37.65 ms\n", + "Iteration 40/100, avg batch time 37.66 ms\n", + "Iteration 50/100, avg batch time 37.70 ms\n", + "Iteration 60/100, avg batch time 37.70 ms\n", + "Iteration 70/100, avg batch time 37.70 ms\n", + "Iteration 80/100, avg batch time 37.71 ms\n", + "Iteration 90/100, avg batch time 37.72 ms\n", + "Iteration 100/100, avg batch time 37.72 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 3393.46 images/second\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Accelerating with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our [documentation](https://nvidia.github.io/Torch-TensorRT/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 27.86 ms\n", + "Iteration 20/100, avg batch time 27.71 ms\n", + "Iteration 30/100, avg batch time 27.99 ms\n", + "Iteration 40/100, avg batch time 27.95 ms\n", + "Iteration 50/100, avg batch time 27.89 ms\n", + "Iteration 60/100, avg batch time 27.85 ms\n", + "Iteration 70/100, avg batch time 28.00 ms\n", + "Iteration 80/100, avg batch time 27.97 ms\n", + "Iteration 90/100, avg batch time 27.95 ms\n", + "Iteration 100/100, avg batch time 27.92 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 4584.06 images/second\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT] - Mean converter disregards dtype\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Tensor DataType is determined at build time for tensors not marked as input or output.\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],\n", + " enabled_precisions = {torch.half}, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 12.05 ms\n", + "Iteration 20/100, avg batch time 12.56 ms\n", + "Iteration 30/100, avg batch time 12.39 ms\n", + "Iteration 40/100, avg batch time 12.34 ms\n", + "Iteration 50/100, avg batch time 12.33 ms\n", + "Iteration 60/100, avg batch time 12.32 ms\n", + "Iteration 70/100, avg batch time 12.30 ms\n", + "Iteration 80/100, avg batch time 12.28 ms\n", + "Iteration 90/100, avg batch time 12.35 ms\n", + "Iteration 100/100, avg batch time 12.35 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average throughput: 10362.23 images/second\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of **1.35x** with FP32, and **3.13x** with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_sources/_notebooks/Hugging-Face-BERT.ipynb.txt b/docs/v1.2.0/_sources/_notebooks/Hugging-Face-BERT.ipynb.txt new file mode 100644 index 0000000000..9b027b473e --- /dev/null +++ b/docs/v1.2.0/_sources/_notebooks/Hugging-Face-BERT.ipynb.txt @@ -0,0 +1,714 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "9369b63c", + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2022 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "id": "d0a97ac5", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Masked Language Modeling (MLM) with Hugging Face BERT Transformer" + ] + }, + { + "cell_type": "markdown", + "id": "83f47edb", + "metadata": {}, + "source": [ + "## Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained BERT transformer from Hugging Face, and running it to test the speedup obtained.\n", + "\n", + "## Contents\n", + "1. [Requirements](#1)\n", + "2. [BERT Overview](#2)\n", + "3. [Creating TorchScript modules](#3)\n", + "4. [Compiling with Torch-TensorRT](#4)\n", + "5. [Benchmarking](#5)\n", + "6. [Conclusion](#6)" + ] + }, + { + "cell_type": "markdown", + "id": "596fa151", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides a PyTorch Docker Container which contains PyTorch and Torch-TensorRT. Starting with version `22.05-py3`, we can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "58e687d1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: transformers in /opt/conda/lib/python3.8/site-packages (4.18.0)\n", + "Requirement already satisfied: tqdm>=4.27 in /opt/conda/lib/python3.8/site-packages (from transformers) (4.63.0)\n", + "Requirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (2022.3.15)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.5.1)\n", + "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (0.12.1)\n", + "Requirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.8/site-packages (from transformers) (1.22.3)\n", + "Requirement already satisfied: sacremoses in /opt/conda/lib/python3.8/site-packages (from transformers) (0.0.49)\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from transformers) (2.27.1)\n", + "Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.8/site-packages (from transformers) (6.0)\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers) (3.6.0)\n", + "Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from transformers) (21.3)\n", + "Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.8/site-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (4.1.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->transformers) (3.0.7)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (1.26.8)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (2021.10.8)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->transformers) (3.3)\n", + "Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.16.0)\n", + "Requirement already satisfied: click in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (8.0.4)\n", + "Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers) (1.1.0)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install transformers" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1104c4f1", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import BertTokenizer, BertForMaskedLM\n", + "import torch\n", + "import timeit\n", + "import numpy as np\n", + "import torch_tensorrt\n", + "import torch.backends.cudnn as cudnn" + ] + }, + { + "cell_type": "markdown", + "id": "acf67a5e", + "metadata": {}, + "source": [ + "\n", + "## 2. BERT Overview\n", + "\n", + "Transformers comprise a class of deep learning algorithms employing self-attention; broadly speaking, the models learn large matrices of numbers, each element of which denotes how important one component of input data is to another. Since their introduction in 2017, transformers have enjoyed widespread adoption, particularly in natural language processing, but also in computer vision problems. This is largely because they are easier to parallelize than the sequence models which attention mechanisms were originally designed to augment. \n", + "\n", + "Hugging Face is a company that maintains a huge respository of pre-trained transformer models. The company also provides tools for integrating those models into PyTorch code and running inference with them. \n", + "\n", + "One of the most popular transformer models is BERT (Bidirectional Encoder Representations from Transformers). First developed at Google and released in 2018, it has become the backbone of Google's search engine and a standard benchmark for NLP experiments. BERT was originally trained for next sentence prediction and masked language modeling (MLM), which aims to predict hidden words in sentences. In this notebook, we will use Hugging Face's `bert-base-uncased` model (BERT's smallest and simplest form, which does not employ text capitalization) for MLM." + ] + }, + { + "cell_type": "markdown", + "id": "19e711c0", + "metadata": {}, + "source": [ + "\n", + "## 3. Creating TorchScript modules " + ] + }, + { + "cell_type": "markdown", + "id": "81d4c6f6", + "metadata": {}, + "source": [ + "First, create a pretrained BERT tokenizer from the `bert-base-uncased` model" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c7c8721e", + "metadata": {}, + "outputs": [], + "source": [ + "enc = BertTokenizer.from_pretrained('bert-base-uncased')" + ] + }, + { + "cell_type": "markdown", + "id": "b7c1c679", + "metadata": {}, + "source": [ + "Create dummy inputs to generate a traced TorchScript model later" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c3827087", + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 4\n", + "\n", + "batched_indexed_tokens = [[101, 64]*64]*batch_size\n", + "batched_segment_ids = [[0, 1]*64]*batch_size\n", + "batched_attention_masks = [[1, 1]*64]*batch_size\n", + "\n", + "tokens_tensor = torch.tensor(batched_indexed_tokens)\n", + "segments_tensor = torch.tensor(batched_segment_ids)\n", + "attention_masks_tensor = torch.tensor(batched_attention_masks)" + ] + }, + { + "cell_type": "markdown", + "id": "7e31b27f", + "metadata": {}, + "source": [ + "Obtain a BERT masked language model from Hugging Face in the (scripted) TorchScript, then use the dummy inputs to trace it" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a3cd5a35", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertForMaskedLM: ['cls.seq_relationship.bias', 'cls.seq_relationship.weight']\n", + "- This IS expected if you are initializing BertForMaskedLM from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n", + "- This IS NOT expected if you are initializing BertForMaskedLM from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n" + ] + } + ], + "source": [ + "mlm_model_ts = BertForMaskedLM.from_pretrained('bert-base-uncased', torchscript=True)\n", + "traced_mlm_model = torch.jit.trace(mlm_model_ts, [tokens_tensor, segments_tensor, attention_masks_tensor])" + ] + }, + { + "cell_type": "markdown", + "id": "d8d2217a", + "metadata": {}, + "source": [ + "Define 4 masked sentences, with 1 word in each sentence hidden from the model. Fluent English speakers will probably be able to guess the masked words, but just in case, they are `'capital'`, `'language'`, `'innings'`, and `'mathematics'`.\n", + "\n", + "Also create a list containing the position of the masked word within each sentence. Given Python's 0-based indexing convention, the numbers are each higher by 1 than might be expected. This is because the token at index 0 in each sentence is a beginning-of-sentence token, denoted `[CLS]` when entered explicitly. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4d1af982", + "metadata": {}, + "outputs": [], + "source": [ + "masked_sentences = ['Paris is the [MASK] of France.', \n", + " 'The primary [MASK] of the United States is English.', \n", + " 'A baseball game consists of at least nine [MASK].', \n", + " 'Topology is a branch of [MASK] concerned with the properties of geometric objects that remain unchanged under continuous transformations.']\n", + "pos_masks = [4, 3, 9, 6]" + ] + }, + { + "cell_type": "markdown", + "id": "4d89b4c8", + "metadata": {}, + "source": [ + "Pass the masked sentences into the (scripted) TorchScript MLM model and verify that the unmasked sentences yield the expected results. \n", + "\n", + "Because the sentences are of different lengths, we must specify the `padding` argument in calling our encoder/tokenizer. There are several possible padding strategies, but we'll use `'max_length'` padding with `max_length=128`. Later, when we compile an optimized version of the model with Torch-TensorRT, the optimized model will expect inputs of length 128, hence our choice of padding strategy and length here. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d2d7546b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "outputs = mlm_model_ts(**encoded_inputs)\n", + "most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]\n", + "unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')\n", + "unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]\n", + "for sentence in unmasked_sentences:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "b0b423ff", + "metadata": {}, + "source": [ + "Pass the masked sentences into the traced MLM model and verify that the unmasked sentences yield the expected results. \n", + "\n", + "Note the difference in how the `encoded_inputs` are passed into the model in the following cell compared to the previous one. If you examine `encoded_inputs`, you'll find that it's a dictionary with 3 keys, `'input_ids'`, `'token_type_ids'`, and `'attention_mask'`, each with a PyTorch tensor as an associated value. The traced model will accept `**encoded_inputs` as an input, but the Torch-TensorRT-optimized model (to be defined later) will not. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "683a4a73", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "encoded_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "outputs = traced_mlm_model(encoded_inputs['input_ids'], encoded_inputs['token_type_ids'], encoded_inputs['attention_mask'])\n", + "most_likely_token_ids = [torch.argmax(outputs[0][i, pos, :]) for i, pos in enumerate(pos_masks)]\n", + "unmasked_tokens = enc.decode(most_likely_token_ids).split(' ')\n", + "unmasked_sentences = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens)]\n", + "for sentence in unmasked_sentences:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "7a31b545", + "metadata": {}, + "source": [ + "\n", + "## 4. Compiling with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "id": "413d8b4f", + "metadata": {}, + "source": [ + "Change the logging level to avoid long printouts" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "42862893", + "metadata": {}, + "outputs": [], + "source": [ + "new_level = torch_tensorrt.logging.Level.Error\n", + "torch_tensorrt.logging.set_reportable_log_level(new_level)" + ] + }, + { + "cell_type": "markdown", + "id": "121d6d59", + "metadata": {}, + "source": [ + "Compile the model" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "eab90150", + "metadata": {}, + "outputs": [], + "source": [ + "trt_model = torch_tensorrt.compile(traced_mlm_model, \n", + " inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # input_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # token_type_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask\n", + " enabled_precisions= {torch.float32}, # Run with 32-bit precision\n", + " workspace_size=2000000000,\n", + " truncate_long_and_double=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a96751ce", + "metadata": {}, + "source": [ + "Pass the masked sentences into the compiled model and verify that the unmasked sentences yield the expected results." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "097ea381", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paris is the capital of France.\n", + "The primary language of the United States is English.\n", + "A baseball game consists of at least nine innings.\n", + "Topology is a branch of mathematics concerned with the properties of geometric objects that remain unchanged under continuous transformations.\n" + ] + } + ], + "source": [ + "enc_inputs = enc(masked_sentences, return_tensors='pt', padding='max_length', max_length=128)\n", + "enc_inputs = {k: v.type(torch.int32).cuda() for k, v in enc_inputs.items()}\n", + "output_trt = trt_model(enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "most_likely_token_ids_trt = [torch.argmax(output_trt[i, pos, :]) for i, pos in enumerate(pos_masks)] \n", + "unmasked_tokens_trt = enc.decode(most_likely_token_ids_trt).split(' ')\n", + "unmasked_sentences_trt = [masked_sentences[i].replace('[MASK]', token) for i, token in enumerate(unmasked_tokens_trt)]\n", + "for sentence in unmasked_sentences_trt:\n", + " print(sentence)" + ] + }, + { + "cell_type": "markdown", + "id": "a398271d", + "metadata": {}, + "source": [ + "Compile the model again, this time with 16-bit precision" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "a063dee2", + "metadata": {}, + "outputs": [], + "source": [ + "trt_model_fp16 = torch_tensorrt.compile(traced_mlm_model, \n", + " inputs= [torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # input_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32), # token_type_ids\n", + " torch_tensorrt.Input(shape=[batch_size, 128], dtype=torch.int32)], # attention_mask\n", + " enabled_precisions= {torch.half}, # Run with 16-bit precision\n", + " workspace_size=2000000000,\n", + " truncate_long_and_double=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a926334a", + "metadata": {}, + "source": [ + "\n", + "## 5. Benchmarking\n", + "\n", + "In developing this notebook, we conducted our benchmarking on a single NVIDIA A100 GPU. Your results may differ from those shown, particularly on a different GPU." + ] + }, + { + "cell_type": "markdown", + "id": "976c6fb9", + "metadata": {}, + "source": [ + "This function passes the inputs into the model and runs inference `num_loops` times, then returns a list of length containing the amount of time in seconds that each instance of inference took." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b72a091e", + "metadata": {}, + "outputs": [], + "source": [ + "def timeGraph(model, input_tensor1, input_tensor2, input_tensor3, num_loops=50):\n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(20):\n", + " features = model(input_tensor1, input_tensor2, input_tensor3)\n", + "\n", + " torch.cuda.synchronize()\n", + "\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(num_loops):\n", + " start_time = timeit.default_timer()\n", + " features = model(input_tensor1, input_tensor2, input_tensor3)\n", + " torch.cuda.synchronize()\n", + " end_time = timeit.default_timer()\n", + " timings.append(end_time - start_time)\n", + " # print(\"Iteration {}: {:.6f} s\".format(i, end_time - start_time))\n", + "\n", + " return timings" + ] + }, + { + "cell_type": "markdown", + "id": "0b44dcf8", + "metadata": {}, + "source": [ + "This function prints the number of input batches the model is able to process each second and summary statistics of the model's latency." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "2ef71ab7", + "metadata": {}, + "outputs": [], + "source": [ + "def printStats(graphName, timings, batch_size):\n", + " times = np.array(timings)\n", + " steps = len(times)\n", + " speeds = batch_size / times\n", + " time_mean = np.mean(times)\n", + " time_med = np.median(times)\n", + " time_99th = np.percentile(times, 99)\n", + " time_std = np.std(times, ddof=0)\n", + " speed_mean = np.mean(speeds)\n", + " speed_med = np.median(speeds)\n", + "\n", + " msg = (\"\\n%s =================================\\n\"\n", + " \"batch size=%d, num iterations=%d\\n\"\n", + " \" Median text batches/second: %.1f, mean: %.1f\\n\"\n", + " \" Median latency: %.6f, mean: %.6f, 99th_p: %.6f, std_dev: %.6f\\n\"\n", + " ) % (graphName,\n", + " batch_size, steps,\n", + " speed_med, speed_mean,\n", + " time_med, time_mean, time_99th, time_std)\n", + " print(msg)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "afe97b9b", + "metadata": {}, + "outputs": [], + "source": [ + "cudnn.benchmark = True" + ] + }, + { + "cell_type": "markdown", + "id": "eba98b24", + "metadata": {}, + "source": [ + "Benchmark the (scripted) TorchScript model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "bab5fa8f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 599.1, mean: 597.6\n", + " Median latency: 0.006677, mean: 0.006693, 99th_p: 0.006943, std_dev: 0.000059\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(mlm_model_ts.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "bc79c452", + "metadata": {}, + "source": [ + "Benchmark the traced model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "5c0bd8e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 951.2, mean: 951.0\n", + " Median latency: 0.004205, mean: 0.004206, 99th_p: 0.004256, std_dev: 0.000015\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(traced_mlm_model.cuda(), enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "41db22a1", + "metadata": {}, + "source": [ + "Benchmark the compiled FP32 model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "ade7b508", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 1216.9, mean: 1216.4\n", + " Median latency: 0.003287, mean: 0.003289, 99th_p: 0.003317, std_dev: 0.000007\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(trt_model, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "57b696de", + "metadata": {}, + "source": [ + "Benchmark the compiled FP16 model on GPU" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f61b83fd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "\n", + "BERT =================================\n", + "batch size=4, num iterations=50\n", + " Median text batches/second: 1776.7, mean: 1771.1\n", + " Median latency: 0.002251, mean: 0.002259, 99th_p: 0.002305, std_dev: 0.000015\n", + "\n" + ] + } + ], + "source": [ + "timings = timeGraph(trt_model_fp16, enc_inputs['input_ids'], enc_inputs['token_type_ids'], enc_inputs['attention_mask'])\n", + "\n", + "printStats(\"BERT\", timings, batch_size)" + ] + }, + { + "cell_type": "markdown", + "id": "43f67ba3", + "metadata": {}, + "source": [ + "\n", + "## 6. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for Masked Language Modeling with Hugging Face's `bert-base-uncased` transformer and testing the performance impact of the optimization. With Torch-TensorRT on an NVIDIA A100 GPU, we observe the speedups indicated below. These acceleration numbers will vary from GPU to GPU (as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "Scripted (GPU): 1.0x\n", + "Traced (GPU): 1.62x\n", + "Torch-TensorRT (FP32): 2.14x\n", + "Torch-TensorRT (FP16): 3.15x\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ebd152d", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.2.0/_sources/_notebooks/Resnet50-example.ipynb.txt b/docs/v1.2.0/_sources/_notebooks/Resnet50-example.ipynb.txt new file mode 100644 index 0000000000..f020662c73 --- /dev/null +++ b/docs/v1.2.0/_sources/_notebooks/Resnet50-example.ipynb.txt @@ -0,0 +1,925 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - ResNet 50" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained ResNet-50 network, and running it to test the speedup obtained.\n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [ResNet-50 Overview](#2)\n", + "1. [Running the model without optimizations](#3)\n", + "1. [Accelerating with Torch-TensorRT](#4)\n", + "1. [Conclusion](#5)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tue Feb 8 19:16:53 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:65:00.0 Off | N/A |\n", + "| 30% 29C P8 15W / 350W | 0MiB / 24576MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)\n", + "\u001b[K |████████████████████████████████| 121 kB 5.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)\n", + "\u001b[K |████████████████████████████████| 243 kB 2.6 MB/s eta 0:00:01\n", + "\u001b[?25hCollecting widgetsnbextension~=3.5.0\n", + " Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 3.5 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)\n", + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!nvidia-smi\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "NVIDIA's NGC provides PyTorch Docker Container which contains PyTorch and Torch-TensorRT. We can make use of [latest pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) container to run this notebook.\n", + "\n", + "Otherwise, you can follow the steps in `notebooks/README` to prepare a Docker container yourself, within which you can run this demo notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. ResNet-50 Overview\n", + "\n", + "\n", + "PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our ResNet-50 model from there pretrained on ImageNet.\n", + "\n", + "### Model Description\n", + "\n", + "This ResNet-50 model is based on the [Deep Residual Learning for Image Recognition](https://arxiv.org/pdf/1512.03385.pdf) paper, which describes ResNet as “a method for detecting objects in images using a single deep neural network\". The input size is fixed to 32x32.\n", + "\n", + "\"alt\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Running the model without optimizations\n", + "\n", + "\n", + "PyTorch has a model repository called `timm`, which is a source for high quality implementations of computer vision models. We can get our EfficientNet model from there pretrained on ImageNet." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading: \"https://github.com/pytorch/vision/archive/v0.10.0.zip\" to /root/.cache/torch/hub/v0.10.0.zip\n", + "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a7036a6122874340b14aaef7b8319260", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0.00/97.8M [00:00] 23.55K --.-KB/s in 0.002s \n", + "\n", + "2022-02-08 19:17:19 (14.6 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-02-08 19:17:19-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K 2.40MB/s in 0.2s \n", + "\n", + "2022-02-08 19:17:19 (2.40 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-02-08 19:17:20-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 366KB/s in 1.0s \n", + "\n", + "2022-02-08 19:17:24 (366 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-02-08 19:17:24-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:ca6b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 94328 (92K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 92.12K --.-KB/s in 0.005s \n", + "\n", + "2022-02-08 19:17:25 (16.8 MB/s) - ‘./data/img3.JPG’ saved [94328/94328]\n", + "\n", + "--2022-02-08 19:17:25-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.41.222\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.41.222|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-02-08 19:17:26 (481 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All pre-trained models expect input images normalized in the same way,\n", + "i.e. mini-batches of 3-channel RGB images of shape `(3 x H x W)`, where `H` and `W` are expected to be at least `224`.\n", + "The images have to be loaded in to a range of `[0, 1]` and then normalized using `mean = [0.485, 0.456, 0.406]`\n", + "and `std = [0.229, 0.224, 0.225]`.\n", + "\n", + "Here's a sample execution." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "import json \n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels \n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Throughout this tutorial, we will be making use of some utility functions; `rn50_preprocess` for preprocessing input images, `predict` to use the model for prediction and `benchmark` to benchmark the inference. You do not need to understand/go through these utilities to make use of Torch TensorRT, but are welecomed to do so if you choose." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import time\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def rn50_preprocess():\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " return preprocess\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = rn50_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the model downloaded and the util functions written, let's just quickly see some predictions, and benchmark the model in its current un-optimized state." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49785590171813965\n", + "./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6445754766464233\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899807572364807\n", + "./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.39485082030296326\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, resnet50_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 75.34 ms\n", + "Iteration 20/100, ave batch time 75.33 ms\n", + "Iteration 30/100, ave batch time 75.35 ms\n", + "Iteration 40/100, ave batch time 75.37 ms\n", + "Iteration 50/100, ave batch time 75.38 ms\n", + "Iteration 60/100, ave batch time 75.38 ms\n", + "Iteration 70/100, ave batch time 75.39 ms\n", + "Iteration 80/100, ave batch time 75.39 ms\n", + "Iteration 90/100, ave batch time 75.40 ms\n", + "Iteration 100/100, ave batch time 75.41 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 75.41 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = resnet50_model.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 4. Accelerating with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Onwards to the next step, accelerating with Torch TensorRT. In these examples we showcase the results for FP32 (single precision) and FP16 (half precision). We do not demonstrat specific tuning, just showcase the simplicity of usage. If you want to learn more about the possible customizations, visit our [documentation](https://nvidia.github.io/Torch-TensorRT/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP32 (single precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_fp32 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 41.02 ms\n", + "Iteration 20/100, ave batch time 41.12 ms\n", + "Iteration 30/100, ave batch time 41.22 ms\n", + "Iteration 40/100, ave batch time 41.14 ms\n", + "Iteration 50/100, ave batch time 41.20 ms\n", + "Iteration 60/100, ave batch time 41.20 ms\n", + "Iteration 70/100, ave batch time 41.19 ms\n", + "Iteration 80/100, ave batch time 41.23 ms\n", + "Iteration 90/100, ave batch time 41.20 ms\n", + "Iteration 100/100, ave batch time 41.21 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 41.21 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp32, input_shape=(128, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FP16 (half precision)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model_fp16 = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((128, 3, 224, 224), dtype=torch.half)],\n", + " enabled_precisions = {torch.half}, # Run with FP32\n", + " workspace_size = 1 << 22\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 14.48 ms\n", + "Iteration 20/100, ave batch time 14.58 ms\n", + "Iteration 30/100, ave batch time 14.72 ms\n", + "Iteration 40/100, ave batch time 14.73 ms\n", + "Iteration 50/100, ave batch time 14.70 ms\n", + "Iteration 60/100, ave batch time 14.79 ms\n", + "Iteration 70/100, ave batch time 14.73 ms\n", + "Iteration 80/100, ave batch time 14.69 ms\n", + "Iteration 90/100, ave batch time 14.68 ms\n", + "Iteration 100/100, ave batch time 14.69 ms\n", + "Input shape: torch.Size([128, 3, 224, 224])\n", + "Output features size: torch.Size([128, 1000])\n", + "Average batch time: 14.69 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input\n", + "benchmark(trt_model_fp16, input_shape=(128, 3, 224, 224), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 5. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT for EfficientNet-B0 model and test the performance impact of the optimization. With Torch-TensorRT, we observe a speedup of **1.84x** with FP32, and **5.2x** with FP16 on an NVIDIA 3090 GPU. These acceleration numbers will vary from GPU to GPU(as well as implementation to implementation based on the ops used) and we encorage you to try out latest generation of Data center compute cards for maximum acceleration.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. If you run into any issues, you can fill them at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_sources/_notebooks/dynamic-shapes.ipynb.txt b/docs/v1.2.0/_sources/_notebooks/dynamic-shapes.ipynb.txt new file mode 100644 index 0000000000..a0ceaab576 --- /dev/null +++ b/docs/v1.2.0/_sources/_notebooks/dynamic-shapes.ipynb.txt @@ -0,0 +1,1023 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "332a2ed8", + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2020 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "id": "18ee9d62", + "metadata": {}, + "source": [ + "# Torch-TensorRT - Using Dynamic Shapes" + ] + }, + { + "cell_type": "markdown", + "id": "73703695", + "metadata": {}, + "source": [ + "Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA's TensorRT Deep Learning Optimizer and Runtime. Unlike PyTorch's Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into the JIT runtime seamlessly. After compilation using the optimized graph should feel no different than running a TorchScript module. You also have access to TensorRT's suite of configurations at compile time, so you are able to specify operating precision (FP32/FP16/INT8) and other settings for your module.\n", + "\n", + "We highly encorage users to use our NVIDIA's [PyTorch container](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch) to run this notebook. It comes packaged with a host of NVIDIA libraries and optimizations to widely used third party libraries. This container is tested and updated on a monthly cadence!\n", + "\n", + "This notebook has the following sections:\n", + "1. [TL;DR Explanation](#1)\n", + "1. [Setting up the model](#2)\n", + "1. [Working with Dynamic shapes in Torch TRT](#3)" + ] + }, + { + "cell_type": "markdown", + "id": "1603028d", + "metadata": {}, + "source": [ + "---\n", + "## TL;DR Explanation\n", + "\n", + "Making use of Dynamic Shaped Tensors in Torch TensorRT is quite simple. Let's say you are using the `torch_tensorrt.compile(...)` function to compile a torchscript module.\n", + "\n", + "One of the `args` in this function in this function is `input`: which defines an input to a module in terms of expected shape, data type and tensor format: `torch_tensorrt.Input`. \n", + "\n", + "For the purposes of this walkthrough we just need three `kwargs`: `min_shape`, `opt_shape` and `max_shape`. \n", + "```\n", + "...\n", + "torch_tensorrt.Input(\n", + " min_shape=(1, 224, 224, 3),\n", + " opt_shape=(1, 512, 512, 3),\n", + " max_shape=(1, 1024, 1024, 3),\n", + " dtype=torch.int32\n", + " format=torch.channel_last\n", + " )\n", + "...\n", + "```\n", + "In this example, we are going to use a simple ResNet model to demonstrate the use of the API. We will be using different batch sizes in the example, but you can use the same method to alter any of the dimensions of the tensor." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "db3493d2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mon May 2 20:40:30 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA Graphics... On | 00000000:01:00.0 Off | 0 |\n", + "| 41% 51C P0 62W / 200W | 0MiB / 47681MiB | 0% Default |\n", + "| | | Disabled |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.8/site-packages (7.7.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.3.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.13.0)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (3.6.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.2.0)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (1.1.0)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (5.9.0)\n", + "Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (21.3)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.5)\n", + "Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.2.2)\n", + "Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.6.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.29)\n", + "Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (0.4)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jupyter-core>=4.9.2 in /opt/conda/lib/python3.8/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (4.9.2)\n", + "Requirement already satisfied: jsonschema>=2.6 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: fastjsonschema in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (2.15.3)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (5.7.0)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (3.8.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.1.1)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.14.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.5.0)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.3)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.1.1)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: nbclient>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.6.0)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (5.0.0)\n", + "Requirement already satisfied: tinycss2 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.1.1)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.11.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.8/site-packages (from beautifulsoup4->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.3.1)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->ipykernel>=4.5.1->ipywidgets) (3.0.8)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!nvidia-smi\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "id": "0ed1b4f7", + "metadata": {}, + "source": [ + "---\n", + "## Setting up the model\n", + "\n", + "In this section, we will:\n", + "* Get sample data.\n", + "* Download model from torch hub.\n", + "* Build simple utility functions" + ] + }, + { + "cell_type": "markdown", + "id": "5934504f", + "metadata": {}, + "source": [ + "### Getting sample data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e46814cc", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-05-02 20:40:33-- https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\n", + "Resolving d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)... 18.65.227.37, 18.65.227.99, 18.65.227.223, ...\n", + "Connecting to d17fnq9dkz9hgj.cloudfront.net (d17fnq9dkz9hgj.cloudfront.net)|18.65.227.37|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 24112 (24K) [image/jpeg]\n", + "Saving to: ‘./data/img0.JPG’\n", + "\n", + "./data/img0.JPG 100%[===================>] 23.55K --.-KB/s in 0.005s \n", + "\n", + "2022-05-02 20:40:33 (4.69 MB/s) - ‘./data/img0.JPG’ saved [24112/24112]\n", + "\n", + "--2022-05-02 20:40:34-- https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\n", + "Resolving www.hakaimagazine.com (www.hakaimagazine.com)... 164.92.73.117\n", + "Connecting to www.hakaimagazine.com (www.hakaimagazine.com)|164.92.73.117|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 452718 (442K) [image/jpeg]\n", + "Saving to: ‘./data/img1.JPG’\n", + "\n", + "./data/img1.JPG 100%[===================>] 442.11K --.-KB/s in 0.02s \n", + "\n", + "2022-05-02 20:40:34 (26.2 MB/s) - ‘./data/img1.JPG’ saved [452718/452718]\n", + "\n", + "--2022-05-02 20:40:34-- https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\n", + "Resolving www.artis.nl (www.artis.nl)... 94.75.225.20\n", + "Connecting to www.artis.nl (www.artis.nl)|94.75.225.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 361413 (353K) [image/jpeg]\n", + "Saving to: ‘./data/img2.JPG’\n", + "\n", + "./data/img2.JPG 100%[===================>] 352.94K 608KB/s in 0.6s \n", + "\n", + "2022-05-02 20:40:36 (608 KB/s) - ‘./data/img2.JPG’ saved [361413/361413]\n", + "\n", + "--2022-05-02 20:40:37-- https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\n", + "Resolving www.familyhandyman.com (www.familyhandyman.com)... 104.18.201.107, 104.18.202.107, 2606:4700::6812:c96b, ...\n", + "Connecting to www.familyhandyman.com (www.familyhandyman.com)|104.18.201.107|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 90994 (89K) [image/jpeg]\n", + "Saving to: ‘./data/img3.JPG’\n", + "\n", + "./data/img3.JPG 100%[===================>] 88.86K --.-KB/s in 0.006s \n", + "\n", + "2022-05-02 20:40:37 (15.4 MB/s) - ‘./data/img3.JPG’ saved [90994/90994]\n", + "\n", + "--2022-05-02 20:40:37-- https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.33.238\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.33.238|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 35363 (35K) [application/octet-stream]\n", + "Saving to: ‘./data/imagenet_class_index.json’\n", + "\n", + "./data/imagenet_cla 100%[===================>] 34.53K --.-KB/s in 0.07s \n", + "\n", + "2022-05-02 20:40:38 (489 KB/s) - ‘./data/imagenet_class_index.json’ saved [35363/35363]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir -p ./data\n", + "!wget -O ./data/img0.JPG \"https://d17fnq9dkz9hgj.cloudfront.net/breed-uploads/2018/08/siberian-husky-detail.jpg?bust=1535566590&width=630\"\n", + "!wget -O ./data/img1.JPG \"https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg\"\n", + "!wget -O ./data/img2.JPG \"https://www.artis.nl/media/filer_public_thumbnails/filer_public/00/f1/00f1b6db-fbed-4fef-9ab0-84e944ff11f8/chimpansee_amber_r_1920x1080.jpg__1920x1080_q85_subject_location-923%2C365_subsampling-2.jpg\"\n", + "!wget -O ./data/img3.JPG \"https://www.familyhandyman.com/wp-content/uploads/2018/09/How-to-Avoid-Snakes-Slithering-Up-Your-Toilet-shutterstock_780480850.jpg\"\n", + "\n", + "!wget -O ./data/imagenet_class_index.json \"https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7392a8ec", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# visualizing the downloaded images\n", + "\n", + "from PIL import Image\n", + "from torchvision import transforms\n", + "import matplotlib.pyplot as plt\n", + "import json \n", + "\n", + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "\n", + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " input_tensor = preprocess(img) \n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img)\n", + " plt.axis('off')\n", + "\n", + "# loading labels \n", + "with open(\"./data/imagenet_class_index.json\") as json_file: \n", + " d = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "id": "1374edab", + "metadata": {}, + "source": [ + "### Download model from torch hub." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "659fa798", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using cache found in /root/.cache/torch/hub/pytorch_vision_v0.10.0\n" + ] + }, + { + "data": { + "text/plain": [ + "ResNet(\n", + " (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", + " (layer1): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer2): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer3): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (3): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (4): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (5): Bottleneck(\n", + " (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (layer4): Sequential(\n", + " (0): Bottleneck(\n", + " (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " (downsample): Sequential(\n", + " (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", + " (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " )\n", + " (1): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " (2): Bottleneck(\n", + " (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", + " (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", + " (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (relu): ReLU(inplace=True)\n", + " )\n", + " )\n", + " (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))\n", + " (fc): Linear(in_features=2048, out_features=1000, bias=True)\n", + ")" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import torch\n", + "\n", + "torch.hub._validate_not_a_forked_repo=lambda a,b,c: True\n", + "\n", + "resnet50_model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)\n", + "resnet50_model.eval()" + ] + }, + { + "cell_type": "markdown", + "id": "0a67e8db", + "metadata": {}, + "source": [ + "### Build simple utility functions" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "60286396", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import time\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def rn50_preprocess():\n", + " preprocess = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n", + " ])\n", + " return preprocess\n", + "\n", + "# decode the results into ([predicted class, description], probability)\n", + "def predict(img_path, model):\n", + " img = Image.open(img_path)\n", + " preprocess = rn50_preprocess()\n", + " input_tensor = preprocess(img)\n", + " input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model\n", + " \n", + " # move the input and model to GPU for speed if available\n", + " if torch.cuda.is_available():\n", + " input_batch = input_batch.to('cuda')\n", + " model.to('cuda')\n", + "\n", + " with torch.no_grad():\n", + " output = model(input_batch)\n", + " # Tensor of shape 1000, with confidence scores over Imagenet's 1000 classes\n", + " sm_output = torch.nn.functional.softmax(output[0], dim=0)\n", + " \n", + " ind = torch.argmax(sm_output)\n", + " return d[str(ind.item())], sm_output[ind] #([predicted class, description], probability)\n", + "\n", + "# benchmarking models\n", + "def benchmark(model, input_shape=(1024, 1, 224, 224), dtype='fp32', nwarmup=50, nruns=10000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + " print('Images processed per second=', int(1000*input_shape[0]/(np.mean(timings)*1000)))\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))" + ] + }, + { + "cell_type": "markdown", + "id": "21402d53", + "metadata": {}, + "source": [ + "Let's test our util functions on the model we have set up, starting with simple predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bb3e4a0d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/img0.JPG - Predicted: ['n02110185', 'Siberian_husky'], Probablility: 0.49788108468055725\n", + "./data/img1.JPG - Predicted: ['n01820546', 'lorikeet'], Probablility: 0.6442285180091858\n", + "./data/img2.JPG - Predicted: ['n02481823', 'chimpanzee'], Probablility: 0.9899841547012329\n", + "./data/img3.JPG - Predicted: ['n01749939', 'green_mamba'], Probablility: 0.45675724744796753\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAD3CAYAAAC+eIeLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOz9eZRlSX7fh31+cde3Zb7ca6+u3nu60bNjMEMMAIIEuO+maAoSKckSBVGWdWQdH8mSLFMURUtH9iF9jo9MH9ISSZEEF3MBSIgACJJYZgAMZuuZnul9qepac898+7tLhP+IiHvvy6rq7gFRjS4xf91Z+fK+u8aN+Mb3t4YYYziVUzmVUzmVD0bUb/QNnMqpnMqp/Mskp6B7KqdyKqfyAcop6J7KqZzKqXyAcgq6p3Iqp3IqH6Ccgu6pnMqpnMoHKKegeyqnciqn8gHKQwu6IvIjIvIzjb+NiDz+63j+kYg8+ut1vnuc/0+JyF97AOe9KiK/9df7vKdyKqfy6yMfetAVke8VkV8SkWMRORCRL4rIp40xf90Y88MP6rrGmK4x5q0Hdf5TOZVT+ZdTwt/oG3g3EZEl4B8B/x7wt4EY+Dwwf4DXDI0xxYM6/6mcyqn8yy0fdqb7JIAx5seMMaUxZmqM+RljzDdF5N8QkS+c2P93ishbIrInIv+9iFTPJyL/loi8LCKHIvLTInK58Z0RkX9fRF4HXm9se9x9/l0i8nURGYjIdRH5U41jH3H7/nERecdd+z9/n88Xi8hfFZGhiHxbRD514p4eb/z9l0Xkz7jP6yLyj0TkyLH/X2w+a+OYZ0TkbRH5oyLyLRH5PY3vInevH3+f93oqp3Iqvw7yYQfd14BSRP6KiPwOEVl5j/3/APAp4BPA7wP+LQAR+X3Afwb8QWAD+EXgx04c+/uBzwAfucd5x8AfA/rA7wL+PRH5/Sf2+V7gKeC3AP+liDzz3o/H7wX+pjvvTwD/r/dxDMB/DNzAPssW9tkW8rlF5BPATwP/gTHmx4C/CvxrjV1+J3DbGPP193nNUzmVU/l1kA816BpjBlgwM8BfBHZF5CdEZOs+h/x3xpgDY8w7wJ8H/qjb/qPA/80Y87IzHfxZ4GNNtuu+PzDGTO9xHz9njHnRGKONMd/EAvb3n9jtv3JM/BvAN4CPvo9H/IIx5n8xxpTA//w+jwHIgbPAZWNMboz5RbNYROPzWBD/Y8aYf+S2/TWsJrDk/v7X3TVP5VRO5QOUDzXoAjig/DeMMReA54BzWEC9l1xvfL7m9gW4DPw/nTp+BBwAApy/z7ELIiKfEZF/LiK7InKMBfH1E7vdaXyeAN13fbB7H5OKyPuxs//3wBvAzzhzyn964vsfBX7JGPNzfoMx5hbwReAPiUgf+B3AX38f1zqVUzmVX0f50INuU4wxrwB/GQu+95KLjc+XgFvu83Xg3zXG9Bs/LWPMLzVP/y6X/htY5njRGLMM/AUsaD9ImQDtxt9n/AdjzNAY8x8bYx7Fmij+jyLyWxr7/ihwSUT+3Ilz/hWsieEPA79sjLn5YG79VE7lVO4nH2rQFZGnReQ/FpEL7u+LWJPBr9znkP+TiKy4/f5D4G+57X8B+D+LyLPuPMsi8oe/g1vpAQfGmJmIfDfwr/5anuc7lBeAf1VEAhH57TTMGSLyu0XkcRER4BgoAd04dgj8duD7ROS/bWz/B1h793+ItfGeyqmcygcsH2rQxYLHZ4AvicgYC7bfwjqS7iU/DnwVC1g/Cfx/AYwxfx/474C/KSIDd47f8R3cx58E/rSIDIH/Ehu+9qDlPwR+D3AE/AgWML08AfwsMAJ+GfgfjDH/vHmwMeYI+CHgd4jIf+22TYG/C1wB/t4DvftTOZVTuafIaRHzf7lERP5L4EljzL/2njufyqmcyq+7fKiTI07l11dEZBX432EjF07lVE7lN0A+7OaFh1pE5B+7Gg4nf/6z34B7+XewDsV/bIz5hQ/6+qdyKqdi5dS8cCqn8r8iEZGrwL9tjPnZ7/C4zwN/yRjz1L/IeU7lveWU6Z7KqZwKLsHmqQd5jQdVWe9hkwdi0/2xX/y6mUwm1d8igo1uAqUUWmu01gvH+H1EBGNM9dPcLkpABKUURkNZakpdkra7RGGMoSQMQlqtLmmaEoYhQRARRSFKBSgxBCGIAsGAO28ggjEarZvXMwRKCAV7nJLqPhfEaQpicJG7i98bt8lg47qMMfXGk/s2tA57HeNObD8adyJjDKUBo0FrqnZSSkBAl4YiyynygrzIESBKEgTQecF8NmOaZxSmfgfvGXRs6n18GzTb4gefPv+g45ZP5QHJaZGnD1YeCNMNgoAoiqofC34BQRBYkGt8H4bhXfuEYbjwUx2r7O16wA6UIgzs92EUkSQJaSslTdPG+QOUEpSCKBQiB6Shsp+jQAgCEIEgEAJlf8JACBQVMDcnjgUROxEYJWgRNFQ/xuFqDbSLYkHW/9hTvV+RBmY3JyoMGG1AG0xZks8zZtMZ2XRGPs+Yz+dkRc77NStV53XXUUottIN/n6fy4RIRSUTkz4vILffz50Ukcd/9gIjcEJH/RETuAP+T33afc1WFk9zfv1tEXnAZnr8kIs839j0nIn/XZW++LSL/B7f9t2NrhPwR59f4xgNvhA+pPBCmq9T9sbw5YN9r4PtBXu+vF74zxrJVJQ58Q0jipALcIAhQyjLbwP04jKy223OB8Z8BhbFMuNpiYdHfefObu56gAZxm4c+7/7LP5O+hCbwnTnKftpETO2ht71sXBbooKPIcU5YIkM/njiEbSqMxlje/axqevRPLngW5C2zvBcKn8qGR/xz4HuBj2Nf848B/Afxf3PdngFVsirzCxsPfJa5w0j8A/qQx5h+5qnT/IzaG/CvYDMefEJGnsDVB/qG71h8FLgA/KyKvGmN+SkT+LPD4v+zhig+E6b7bIGwC7UnQFRHH+wREISpEKeUYsrID3wDaOLQSwiBGRBEoiIOQSIVEgRCFiigQQgWhCIFjhhZwBVsJ0ZoRBAjcPoHUwCcIyoGhJ6u/drejvXdxaro0TySG+r+7j7vLFHGifZvmmDy3YJvnOWVRVOCojaEwhkKXaLN4HaFmrGHjR4nY9kJQ93in92X/p/JhkB8B/rQxZscYswv8VyyGCmrg/2qMmd+ryJOTexVO+hPA/8cY8yVXbvWvYOtbfw/waWDDGPOnjTGZWwTgLwL/21//x3t45YHG6TZttwu22YY6fHLQ2u8ErTVhKCgVuH3seYzRFVhrYwiDgCAMCAKFEkWgFEopBxieyzmWaSyoa20s0xULpuJY38mStErsj73uSXur+/w+2sE+0+K+xrHHCsalZr1Ndb7a/6RWYLgLoo0xlGVBXhQUZYE2dnLyDLewRg8qI7Ms2mmDIEA17rKkXHh/zXs4ZbgfejmHLfrkpVkACmDXGDN7j3P8KPDzzcJJWGb8x0XkP2hsi925S+Cc2KJSXgJsKdVTcfJAQNcYQ1EUlGVZb6xApgYTD7zebmuMQagHdxAEBFEMCLosEAym1NWxglVvwyBExIFtENxl3jDGoLXGoBzLBZwJQSlPbe/mmKZxj9VjeKRGrM2W9wZeY+5tWrjrYtUHbzgwC98170Obu89rTQ5usgkVpS7RhcZo7WzMi8i/MAk02ry6htZ3ge1Jk8+pfGjlFhYgv+3+bhaAgventP0o8J+IyJ8zxvxHbtt14L8xxvw3J3cWkc8CbxtjnrjP+U7jU3lA5oWyrBmSI5gVgEHNgJt/1wPbszxFGKUkaZsoTgiCCEFZM4NYz5eEQWXbFGPZV6CcGcKdTVd2TOPUaq/fN9Vjb8PViBhrUhALbIWBEqF0fPheZuj36ZJCYyquuSj2hqr/Gmp75WozoI1QlFCUYIwgJ16f1hqNwQgoZR2SKlCVQ+9eERP+It70EYYBURRazWHBnm44aU44Zbofavkx4L8QkQ0RWcfWDPlOw7XuVTjpLwI/KrbcqYhIR+zKKj3gV4Ghc9C1xBZrek5EPu2O3QYekXuscvIvkzyQh5/P7RJmXq2u2GLD+XI/McZQFgUgiAoceESEYYQKQkTsNlEBKrDMVpSykQ2iKLGOotIYy/SaIKv8j41mCJSFLRekgBKpfsCFeWkoSmN/G1kATeNNy41nbP4sPJc/7i6cknv81AcZY9DG3kdZ2hAxrW24mG1SZ7PVmrIsq+sqby5oRH3c6yp+ghIR64CM7U8QBohaNAmd/PHv6zTB5kMpfwbr6Pom8CLwNbftO5KThZOMMV8B/h3sKieH2LrO/4bbtwR+N9Z59zawB/wlYNmd7u+43/si8rVfwzP9r0IeSEbaX/mnXzJeLdXGoI0P8QoIlHK2x3JBpfVqrTUFgAoi2p0eaauFiJDnOdl8TlkW6FJjRBOEAe1WlyRJCaPYhZ+FBKEDT6Wso8zH43qgDYRADIGAMg0SaJukiqktNejSsmU7WdgICOUcbrWYe5oYmsCEyHvG6Z4UYywzboKsbzdvUxXn7CpLXZl0fLuWZUme5xRFQVEUd8U9V/fptIR2u00UR4hAURTMZxlFUdTP0Himk6D7fY9vndLeUzmV9yEPxKYbx/GCs0y73179BwsIZVnWgOhsun5wh2FAUwkREYIwtKxOaUQJSZqQJi3iOCYIQ4LAqcUCQaAIAsHlC1jQFI1SLtlBaoa7YG8VrIpuxKn0pnK8GSPohhXE45aSxTAy/8XCdPa+JrdF8LZhXfYZtPh70XbSURoJbGSHZbUKEWsb9+abpj1W8OB/IvxLHOgGASqwE4t/BBUIAY0YXFM/5YKT73082amcyqlYeSCgG4Y21KsCXWez9ds9c22yJr+/1tolKSiC0IYuGWOIowiFoXTMTlRAkqTEceySKJpJEDY+VykPrPY6yrFUcaECZsFJVDuvatBtMHWjEG1hUSvn7moEAqgGWjaB04PwyTAtL4tOqvou/LHN/AljDEZryjynMAYVhpCASFhPLMo/q6omNqtFmAXgP8lYlYv6qLBYbGidMXLP/QWbIdhMWjmVUzmV95YHynSBu0B3QeXmbgeN/xxGIVEY4a2RIoIWkNDuF7hMNgu6ClEWJJRY00EVY+psucBCOJRpxATbWzEuKMFFJjRSbP0ziIT2frWzDTuWXNtrxfLC+4TCvRfbNcaHkt0dmQBAaaM3dFGSZRkqDGpbtJu0qms12rKyo98n5KuK0Q1Dx5g9gAcnUqObTjRTn+cUdE/lVN63PCDQjXDQYYFEa4yxKj/3idFtmiMQsQCgapulNtoCK4Io5cwH9Y+Nu3XA4MMZoMKtKlbWhYt5sDW6kWvRCKa1Kro1LThMpsTUdRuqyQKMAqPqDDFlg2jvabE1d31woWFmMQeuuj93W96soIuSsijQLkKkCGyEgk+xtvdeT2j+2ZUoEGviCcPQOspc5AfiNIvA1qcQEcJQuUmHRrv5tlxM4zgF3VM5lfcvDwR0kzgGPMs1GF3bdP12CR0IO/EkzId0BSpAjLED3JQYUyBox9CsbThUUtlmldPzBYMRgzY2dAxtHHOrgUMb+482YLRQau0SCepn0Ea7+67uEADRHn1KGwUhytlCBaWs40uhGiDVZLcnYNiiK9rZjo2WikH6HTzLLgvtHGI5ZVmbZoo8Q+UBXhsQaYTguYgEnz5tTS5BNVE1w9KsecJGsvt70F4bODlTiE8neXjlx//GnzXGhRDWr95OJdW7a/g8BXEBf40v3aTlDS72l9Tt2Twn9TUWk2ukOn+zf1hNTdnYanPiGsqbyKzGhjGN8EH7TIEnPf7MxmuVoJGaGHjNzlRUBJ94YyPb/fs3GKORyu9iz6zRJzQ4sedxbVeK/awd2dFYU5tg0EYwohFjtVh7XvccjRBSa+LSrhEV/uT23WjqGBzfPxU2kMLeIdh2lOo9e4udRmHbw9619QdpQExzbNjWNaIwRiFSYoxtQ4NXeU0V8umP+qN/7E/dc5A8ENBN07Ry5uiyNi8sOHaUVFENcFLzNojYrLIqurUCTQsszYgHe7ypz6NtZ1I209cBbj1IKmZpbHRCqamcfeCZYt256ms0nVP2HsWxR6UMKnAvSOx39T3Xg6tJG+2EYicmXeoqSgF3Vc/KLeiWFFlGkWf2HO7hSmMTUcQxVfD3YdV+O9EZl8pLdV8+Fnmx8YUFRtuoR2EfuWEaknvHLD8s4kGl+XfgQAEa/cSngVdbrefxZIx00zF5Up3xZxPswLWiENHV9zbN3V+zHrxibBJOgM/JlNpMJh4w7KtRDtzCyg6vanCobt2a3yo7VnUH7gmlBmcxgnZA7Gt12H1cWKQIYhTGOjtqgPfP4fpdKfYsJSCmHlsWywUtHlhN9ZR3R7OK63+LGmzd4GLb1Bv7RGFjkKTyi9QTqwVxByfuFdtxoo0lTc03bgeFPbOS0rWJwkidE2AWb+pd5YGAbq/XI6/y/235RW9iqEDXCKqhUjc7gQDKJUEYsQxQGzDODhm41GCjNabhsGsCbxUVIbIQb1pfwcW8ls5Zpq26XmrLcKGe+b3JwrgsD99hxDMUx7zFmzjwZo6aZVtWbxwQq+plGge4ZVlSFoY8L6vIA3+sNhZ0tS5QxhCFIUGcWLbq8pmDILTtEmjLkpS4KA7b6RRiw+PEN3cNsNXUYhaZvfH36LZXnde4oeG1k3vZnz/0YtlgWQ3FmqtAox2Mg6RqbNeAVU2kNBu2nizhhMd1AbgAlC0r2rwt1zdE6mHv2SngQNigKkCsAV/EAbI4hkoNuPY2asYnWLATY4HKAqh2O2ps8k0NcLUC5pilEd9DAMFIQK4DSiBAYUxOqEr3DMZxQjepGVMvXV0Rm0ZnXADSZuu4bY4hVy+paixfyMmb+gL7t3igr9+0BWVdvQuDrkBdO10ArCZrx7qbUtxYstcK3ATkW8GRQ6MW3+kJeUBMNyaKQooiJssysiyzTM7pcVo7Qm9ONrS7eWlWrzJoJeiymosdsFl1B11S4tKNjapss55ZlxUA2VCG2u6pa7AuS7QuKYrCmkMWmErtSPIRDScdVvcKxfLXt6nJEEVBFVlQZcFVgCY2pjbLyYsCW1/CXt8TY8E6F+M4Io4josgmL6AD8qJkNsvA5GhTkuUZRVailKHVimm1WiRxQJpYmy0GtFjHmoEF4Kks08Z27spZ6JiCB197j5YB6HfrYR9SqVicqeCx6oZNC484mi8VKfBszgGvAMZrXB5xG0NfHLPyIO3aWlWAbRmvcYO/AnhqZdUfparvAguIYgFTub5m1WLLLqsredZsrMaosBmKxoBqMkdT94Eqv91tryFQHHc1aIHCxByWK7wz2WI/67EzSTBFQY5gyjmr0YyL7R0eXTmkG47tWYx7VuO5sOeIJcYEWHOBY/h+WqkmOguSvt/VvgU7EVUtZjwoUj+Tu4p/n37Mer5gjNVQdaUlOG1GHMc1Jw1A9Txr92tMHCf60El5QKUdLZtTjmFqrSmlREpTsTh7016FqOemKnrBhYEhTr0uXS0Ho2w2mni7lLahXGJB2GhBa1PVfaiATykkaAJdbfbQZYkuixqEMdX9QM3OQTU+U+0v7h6bE7Z1tAWIBATaRlY0B6ehrhnt2yOKQ5I0qtqlmS5dJX4EiiC0nWE4mDKflxRFCaLJsik7O7scH4/ACEejMVevXuPyhYvMZxmXH7nIE49e5NzZVcLAVM9QGs32nQNef/Umn/nssyRp1HhGz/xMBbq6QTK0hrI5SB8S0dXv2m7pna2AxQeHyMqBjGU+4gaUVAPTiCdbUkGIt97oahx6M4A4AG9qdi7SBmVttG6rHbzG3yGAy5asnbhivP/AsWipe65yE4WvU1KbOWpU8L7jqusu2FLrycg2hakmiLFZ4YsHz/LKaIVbI02SZ7RDmOuIUZYznYdovcR0nrIsm/zWK0d876XrhCpz9lYPuTV7tcCrKmZcseQqj71x/zUFq87li7JKBbjGzYP2WCPWjGibV1fbBGdu86O+egWmMcH6ujCqOr6y3nvzSnN+eJe+90BAt3JcASa0Bcu1NiB1MoTdrwZfJfU8ErmC5GHk6bsFH5td5YzY7hhle6s1EZSGsnpdVhZSc0tv47Gxtzbu1bhOgI07Vco5xSxf8PbW0kUzUHeThWcNA8EX3anDtOxPECib7CFB1cO1ru1GfnLyxyrlBm+l1ps6ASKwiSXbu8ccH49Y6XdZasN8ljGbTeklEReeuMLB/hFH+3s8c+USH/uup7hze5e//mN/h7Uzm3zuez/H+QsXOT4acP2da2TjGe1OytPPPGEZdMXWqZ63bs/qLbsJDhpljR4iaZqjarXSv1k/gJCGhuVYnjc3qWqQ2/MJDiTdpGnEgaTx3zulvxqUtYPGA69x+9kzqKq0qLfdQn0/yg3wGugbCGo3+aepwb/axZoT7ESq6/5MU+MxlVmlAi6jGOYJ39g9y5tHEV/dGTEezUnjkEyEyEArNMwKg55PmKPYzwL+0rfP8e39Hv/6s6/STUZ2bPmkemOf1XNf+xNQabP+uY2fcJz5Q+x+lZkADRL45nY4XRlZHJh7hryoebge0TBB2pZuUK+qQcUDvFdssBhmfU/iHmlxZZymPBim6yi8duFHQRgRGTBZRmFygsh60ENXEcw6pNxLBoIgJI5sdAKiMChKY5MBgjyn1No60qqyjxY8i0JDXtjKWl49Vk49WnDaGRvV4BmDUoSRqjLaPJMwxqAL4wr4lBQN04KPjbWF0i0gKhcRoATLOPxgdJNDbaZw51lQYx3wii26Y+N67WoUYiAyhlIMB4MpL774Gkv9HluryywlAaYsmOVzVpa6KLXEeDrl8GCXR89skSQRxXTK5voK0+ERb+7tsHvrGutnLjIYz7m40eeHfugHOLO1TquTkASOZ7gpv0rqaNI2Ywevr0PxEFoX8PyxhNqhZlz2n+esrg08i63sehVJME5dFQfOdhR6rlYRSvcOPUdrxosjaiGBx/p7HTM1tWnCWhjr6APLDLUDX//OPJ+tTQLuIg7uGyYE946tGi+O8jrYc+PXq9UoodQwGMGr1wZIpJnd+P/xxjdKsuAZsvgxMqNJVc7vWT1idnCVvrT5ifSTjKWFSSIKA1+41eNo/BR/4pNvsNY6gsZ9WtNHrU2Zikn6+y3wvNuyTf90td3YddLqvTThtGoJZ9/10QkKqeqzuGmlek/+SHuPqvq+Bu/6Pqy12pkhGnbee8mDqafrbZ5gV20IBYgQEeI4cuUY67Al8czOiU1wgNCzZRECI5Ril9nxzK85K2mMA82AoCgoy5rve+cWjf39dRaK36haVcP98iUUtSuPCI7dGmoTiiuiI+LVSlPv5wGYpj/W2YcXhkXNnqTRAZQpQRTaCHd2BnzxK9/i8OCAH/z8J1nupASUZIUhDEJUGDA4PKS7tEQ7CvmHf/fv8dzHvovv+sRHuX7tGgd722iteefa61y6uMvv+yN/hI1+j+1b77Cy3GJzo2/5RQNQffEfjdU1xbgHcRE8ItZr/tCJgbJi8hUHtepnxYQcY8VNppgTxdy9k8UO9koxF/udo4iOxbrJumLGvjFpXMn2cfvR89q6b0DDqir+uFpFlqYN3jnMFmy11dVwbMxzXmpGizvG1BlAewczrl4fs9Jf4eL58zz25BO8/E3Nd9/8Cd648xVeObhCGk44Eyzz4vV3kJVNRm+8wA/88BZ/f/ooOheM6mDKGS8dJfw/fvUj/KefeZFea7hAhmpOq91kQD0h+KcQt6d4DcWNN+WjFLzjzH9Xw2hzq2mYkiofS3VEk+/742qmWzHuxjRWTXJSG67uJw+mni5+QFrmEFbqdmRv0K304NcgU54R+OdSPva2HtBaXI0DcdFxXuUx9rvSdzwJUKFCl0Cjs/uGte3m1QS7PXDnrg3j9XNYVgHGqKqJvSpYPWPjmIaVpD5XxVwabXSXpd0N84Vj7QDTRtgfTPjKt17j7Wvv8IPf90nWl9vEAeRZwWQyptSGbJbR7ba5+c41vvhzP8fx4Ji02+HNN9/kF37hCwQKjg72WF/fZGV9Ba0zfvHnfo7P/abv4czmBqlLaqm6uCPjvl00tv6w1vUzqSZ2PERijI+7NQTgbKmG2mnmQ4qkBiLHeOv52zg7rHGAJ56muQnUc07tgNvtV2/BXcKK2H6tGiYNG2Va81bjgd4e4BTrpqOPmqFSs1vL7jyTdINNvGlB3J71vkYUZl6wt33E/tff4Zk4ZvSrX2NeFLzzwx9nLV3h3/9jv58XvvFF/v4Le2wfT1ma7fKtgwOO37nK46sdLmZ36Pef5di00MdTCAJ0KVzdh//xK4/wJz/7KnE4c45Yf23dAESzAMoVIBrBpSpVE4aPpnAkvYr/rWaY6vxStUWlpVTf1iO/Hsa1YQf/yfcD57fBNA1sJeY9ijc+ENB1wRS1F1UMgTIY5edtC4Y+N8KCbpP1gX9AhR3UCg+6tlGVqhtA4zpqYCMdSiO1z6qBgKrhZPDL9CCgjFlQ8RZQ092/fSsNrir1b2l04pqfmIXX7K/vX6+mjllesBxV7MtbuYS94YwvvfA6b759lScfO89qLyVSysbuFprZfEanvUQnDZjMh0zGI1785ots7x/R+pWvMpmPmWdT5rMp0+NjOr0uEnf4xjdfIUJ47InH6LZaFQjYcDJn7waMdu9N7ARnJyPbhqqe4k92gw+1GCkdjrpynQaU6GpS9r3Xe7eDpqOiaSAQx1NF2zhZtw1jKiBfUFf9ZO3+rfuENI4Fb56qLblVBKqb5O03Jf587vxO0bX20OYDQ302FxWg6zAo7wDyk4tCUN96h0//3C/TGmwz3h0ybbe5c+ks+fI6Uavg6PrbJDs3+W2PLPOTr3QZcMyPfG+HSTblu9Nn+SfxFdplRlGUqJWIY5Ogj2eA4itHK/zkq5f4vc+8gbgJTlehhz5Kwd+4fzo/eVH9jSdFjsz57X7ipEIhOxn5kXUyY7XRSHiteEEHEoVdSNEnXYDz4Fctjkcsc/K8i/LAzAseHCs2qepOA84m6j57UK1b0ykWIqi6Fnr1tWdfTYi0Dgm78X4hTLLwuWYZdTps4wabBzXdkc0G9ZsrNtT4zgW1V6dr6J4WtBrMouH9FzeDF1oYT3MOB2N+9evf5ng05czGCo9dvkCv1QaxYWbz+RylAtJ2zHw+5eb2HX7+S1+mc/YyH3vuU+RFiWghDiLOPvIYpVaknSUkbhEkXdppiEp6to7Dicf37eLfZR2nW1eOs+zu4UsDrpmUWIbpQMpXpfM2XDvZ1AMqwLNPn9nlgM7FtTbVe+9pEVxNjsakZtmkVNcCakeYqIYd2V7bGNPodm6bIwy2I56Y5E2jO3t1uCLAHtgcWHlTl3vBYgRVljzyS9/mzPEubFyhfbmg01rjkWc+ytuf/h0ErRZxGDJU/3e2X30RHX2Gq3rC8PAOZ9bO8GJ5kfk0IFoStsKCcRgzzTPmoQZsTY+fvH6By61dnru4RxiqhfuyWUKehTbYptFVezVUBLxBrJ7g6rhbixfuHRo/w/jjvU7RGLyyEHRXk7FGvLUFV58dpxApbMgbDtzfJaLngZkX/OyjjFO/xQ1ed8+ewXrxITBAQ/U2NGzVC+yiyQ/rWYYTO97rzirYXzjXux4rJz6cOMbPozXgLiK3vaqh1PXJtVo4sjpdiWKaa96+vsfXvvEyR8cHDEcDHrl8nqcfv8zGyjKRsokhPiyuv7JClhe89sZNfvGXv0amU9bOXGb/YA9jDFtnz3H+wgaBCK+fOcvOzh5bFy8znRaMZhkvvnSVxy6eIVYn2vHuR1lQQoEqxfthY7q+HL3xHUxATJ2LpJzx2k88TS2pLuXpIl+NTyd1fdFFBSz4HMSAKDfgarNBPYwtu6p4maEyn5ViCN3Vve0XaLR7QzlumMEqU4LXqPy4WninLjyrwiM3GUwnzL76NfQTF0mHE5LVy8wpkW/8PF/Lp+Rra7RailuvvME3b/WYRFsU6SVu6YJbUYulWFgtR3RmQ6YooiKjE/aQWDFHQ9RiUsLfeesJHjs7paNGVlX3wGhb7cRbs89bgbDx7eaB2kcmGNd+Da5jvI7QPJf7XXVf3z5+8vObzIljBCirC4jYLNBSFZCrE8fcLQ8meqFhzTLizAqCtWc1nGzNzqLwdimp2GAFAXfhqW8N46737kPeNPua3GvPRnympwj1X9S8mMWXcz+prqErFqR9FpPxP74DQaFLhsOM8WTOtVv7vHHtJjdv3sbogtnkmH6/x9Zan5WlNpEyTKZT4jimyEsyI+zc2eP1N97mjbdvooM24/E+4+Eho+MjknaLfr/Dd3/iu+gv9ei221y/scPzn/wo337pba698Q5ZUVjTQZVoXzeAcZpDKb5GhNQMFxeq926u2g+51LzVLPSNGniFQGrw9a9fi2O2plbjfWRKHcvrOJSPeqhA1qcYmGqkiNT9uEqtcK8iMHWvrz6Yel/vBKymREd4qiEigNNMPDO30Sc1mCyGOBnKTpvD9Q5Lb19nvZsQFRmsdTl6fBVRb3LnV36Kw2HA8SigOPd76YUB7e4qxf4Raj7HJCkFIX0KukHBLaMZGyHtttEEJJTMVciteZ9/cO2j/MgTX0YoKnuz8THGtR5APfprhoqU1Oaeisq7c5wkA2VlxxVptJE7rp4knR7jnXlmMVLBRif4PmOvURSCjqboriY2Pdqd7n373IOJ0/WzcpUlUt1vQ01oMFVpsALTOEYWm6wih5VqUJ/vXXmWb+D6NhY+3T0FsLBXfeS9r3bXxFa9d9sZQncSg6bEhoFlGibjOXfu7PPCN1/nF3/pqyRpi2k+ZnV1mcnoiMP9PVb6Szxy6QytNKbMM4ogYF4WjAYzjIZ5WTAeDVnudfnUx57jjbff4WB3m82tVVppyMrqKh995mmeunQRFSiuPHKJ5f4azzx+id3bx0yWj/jdv/lTxMpYW7hv88bzeMXN+MlQauBV6uHMSAOoQ7gWQ4dCpFL9m0Pcg5u3QfrkgRLPfk1lHxaafd+SCd/LTBXlYmdhx6mpNSkbRRE0zG3WD1KbGZrRBhV0utxs/1/lSPIdVKhBTYyL6XdROY2aH+gCVMj03/tDvP3n/gbhfEx77x1uFH1u/ujv42w+4/E7u2CEN1SPH9/bY3jlY6QUjJOIiYlZGR4QmBkTpmRBwJ3+k8h8RpZ2CdoRUZTQQkhSxfVZzLf3n+bZ1RfxHvV6THkzTNN8UrdLnTVJfZwH6oUU3XqM+3cilUlGqmPtXhbIm1ZF7yMFGiFrshCrG+RtpJxS9veZpx8w06W6eacumXpLc5b2zqtmmJbfjtvkDxWoPL92k1k857uwzwXWfM8d6iBwh9D42gmN3JbKm9+gNlA9h//ecwbHhDCUCPO8ZDzNODgccGd7n6+98DJf+tJX2dnZJYoCzp47T6etiMjZuXnNpuyajNHwkF43JQ4VOi+YMuNoNHTsuWRzZYVzayt0Wm3CIODT3/UUx6PPEqcJ+4fHREmLteU2rRgKDfPJjH6vxVov5eMfeYIf/k3Ps7rUwjte9AlyYBbUhGbwuFTf31N5+JCLn9QD47QxqCIQfLyrfa92VCnBVphzhlHbH92KHu6MnjlpV/sAd+4auA1ahBAP0oIYIbxH+6lqFDQgxk10lf11wdfgGaL/20VnVOFNVsvUvg9XAA0+JtdUvFIsgl+5zOhP/bu8srPL8v4tkpu30QhBlJBcfIqLe99mnUPebB3ws3nJQAQdBhSZtXfvqzat47eYdS9hdm5SkKB7W8gcWgEkquByW+gnAdfGV7jQ2aYX366YuX82mwTiTAoiYE6aHao3SgWGGJetZ+q2a05tFavzDVJPlIuETmxjeYdGdY1KhVi4BykTOAzIOLjHPVp5cKDbDAXzA7TCSPdqBaShevk2aPbBhceURVWjdqy9O9WS+3yurtHAEammLntO5XPnqVUdy0x8GqHlSD4cRwOTWcHgeMrNmzsMBlP2BmNu3LrN3vYdjg4OeenFF8l0wdLKMsurbZ78rufpdHocHe7DfEI+nzM6GrC1scbh0QEH+7ucO7fJPAoZTSbkxrB3cES/32N1uUcnCgmDAEFIuzGrvTUKo9m/vc1f+H//VZ566gn++B/7g8znGbNJxsaZdUajktWVDhfPLVmfgFkMafNSJQG49jEGjBJbqGfB3f6Qibjyh9WELYhyyTmN/lrVZ669wlXSgla4WgfUDBSvcVqAVe481unlyILUuU61ZqEq5iXmZC+tZ0IPuLXV4ISKJYY6Ksb+K66EiwcL8RONqVmxP2cVu2ks4QhXemQrfXZ4FNEF2miUaLIL5+h95WuYtSf5pDzCL3T6zHVElEaYyZDZYJss6aKSLQbSJVaGKI1IRm+xvNTm0vyQi60DHlsa811nJ8hSwOYju4yOI27dTMhmnt2rxvh2kw2148s6q7V7JjtpLviKatCxv8RqbFUsvSNKC076E9dCmjy4nprAVx2sW9sOlxB1tHzfrveAzAsVLFYPe1L79pkhNfVtRBC4Y0/WOdANZnnyeu/CY+8pvmaCvXQj0LlxE2IE0UKdZW1c3LhhMi+Y5wVHx0MGx2Pyecb+3gFf+pWv8u2XX4U4QitYO3MGRLh59Q1Gx0dMZ3OW+6usJAkbZ89y8cqjdil5UzA53udof598PiNNIq5fe5t2O+X2zRucO3+WyWhMXhQ2HRpFPI4pCo3E3uZo4waNsSFOTzx+id/+Q9/Lq6+/SV7YokOPXDqPiOLbL77OZz/7FFFgZ3If/1m1acPcE0jdSf3E8h0294dOvE01cKm8SG1mAE8InIHAzrKVKuvZoTKOQ7pBWZq6z9fncSueYAHBVv2SOlKh6vDOtuz/bPo15ITGUXXU+o158PAq2SLs4gDEl2BsSDVZ2LAoY+pwLau1GWzsqQZCMBptYNxJkCAg3P8WT633+fhyi3fmMQcTQcsE3e+x3rrJ1uAal5cDLvVeYDk5onNOUcaPs3VmRHfzFVq9jE5Ps7raZa27hs5ynnn2B3j1lSWuv11SFC50rrLxUgNmowxkHYrn2mPhnzru1jTeYUV2G525ClRotF6tp5jGrIprp2Zr1hpw8S5+jgfGdBdu4h4j9NdzzDafr+kxfredvWfY2yox1jaZ5yXTWcbR0YjhaMI7N3c4OJqQlyU7+/tkeY7WsLt9wGQ0Zmf7DqPRIcPjPcQUDA5uM50MiFs9HrnyOJPhMVvnLrLc7WHKKWfObXE0GBLFwqOPXmTj3CY3rl/n5jvX2Ll5i+1bN0jiiJW1VebTCbqcc3S4z8H+HkmrzfHxgCzLWF5eYzYt+Oo3XuJTH/sIS52UWFkFSjsAaaUxP/xDn+fz3/9ZkiQk6CjSVoJG8dj5s/S6zYRRn7l3YoJsOIeMcaoeJzPLH1YEdln0UpuEXNYrzWeyTNS1TEMTqwau8VOWqohzNbCNrw520r8hdUIFpuqPPjrULAxst49ZNAJ4u21lAjPUg2FBHfa3LlY1dyB+kiVbwPUqdukOt1WG7fGl6ykGo2Dv4ioXxzO2s4DBeEIYFXzv1k9z7tF/ytnWNc6cndJJhaAQiiLnzDlIWkKR3ySIDGkKKjNICeVoQJkElIUC/Q94/vlHefTKR/nm13vs7doGtZOiqms2NCC2mqKMf68NzaNqrfqdVMlSntd6041ZxBBp9IWKmDnfBydIoSeOpRj+ybV/wo/w357scMADBF0/U1ZmAFPPNv5BqljbewJlg/I3vOX+pXtTTHPm8/uCQWshK0rGkxlZVpBnBaPhhHmWc3AwINeasigoi4LpbM7u7iFHRyPu3NllOpvy1rXrHA+OaaUhnW6PJG2jkpB2q02722GWTWl1U3pli7gN7W7Mwe5tequb9JZXOD7Y5vUXv0K7u8x0uIcJhKX+Km+8/G2Wl3ssba2zuraCUDIZDRkNBsynY5QuGBwOSOKIVqvF/u4dttOE0XhCGKds377N4cEhG1tTzl16hDu7e7zx1lUev3KJficFha2qBtg/DO0ksitGKFhqx3blXwWBCSi9zetE29ey6MCpGUO9z0mQejjE1bmowNJUCRA22aHRPxcAuOHSqXEYbwNuKMKAOBNDfbwPt1/cSxoH1sy5ud22uW7E2S72fGP8uhYelE21h9/HlWSpzAr1/defm0Ai1CtD+Dt1owsjMLryHFdvbPGno+8jkZ/lP/rkX+H8hW16fcimMJ8L7RYkqeHq28J4YihLQy9VpC1Dqx1RFBlpALk27O7tk7baBNmU0fFLLK3c5gd/6I/zwtfHvPmKRhtVOed9W/okCF/Q0msavjJZ0zLuE0ncDvfEFxVKlWBWpxOfWDGk8QsMJ0nta8ev8PbBC9xPHjDTtVLVn8XU2TSyOEyrOas5g7jZzafi+vhmbTzDN3iHghYhm+e8/dYNvvrCy3zthZe4fnObUmJynTEYH2LKko2NDR59/FGStEWSxJTZjOPDAbdu3cKgGQ0H9JaXefZTH6HV7RCHIVlWMBlP2N/dYTY6oixnaFMymw1J44QiDJEw4twjjzGdTlAGLj7+NPu7d8hmE6Ikob+2ymQypdtuk7ZbPPL4FUJXK+Fgb4/5ZAoGoiBiVhomgxEiEEcxhzv7HOwdcjQYsLe7y+DgiPm8IGl36C93GQwn7OweIGaF5U7L1qxwqnEg4rzgLuhdbEBfYJRVextqrFfDanW0aU+zg612MuCd8g+lI82WBVWVT6HOSHTmgSp8VyqS6xmiz/jy/KqOufWRBSegWqqgtDqDz4FnRRzE/eUyahTNqlsNndE40Ku2mpqFe6DV2HX7mgfimK3452qAr585ah5bHQNU9l+qby0jPFr7bv764RpX4r/OH/oDf41oqWA8EcIwINKa3hJQWAK01YIoULT7GjMtkRFMxiFra4rZYEYrMhDB0ShndUkRi2Z2fIci/Rmef26LbvsyL35DUZZhxSi9A76+s7oNK5ImVATNmt8WWa9tVA/WJcXaEDXpIKOoNtksTHQnpWFycn9vpWt8/sJn7rGvlQdW2vFe9yeNxhLubwqoANjUzAr8ORvBH8aQl3A4nPJzv/Alfu6ffZEvfenLFPmY6XQIaKK4w9rWWc5dusLlJx/lkSsX6HYTlrpLtNMWZTbn2vUbXHziIqPhiKOjY1rtFqtrq3R7HUQUt27eoSgz9m7fYDYYEbVTgihgPp0SRhFaBZw9f4FShLWzZ1EilCbnwpOPMRkNSUPF9bffYnJ8SJq2OHPhEhcvnqcoCo4OD7j99ltMxmOiJKW/vk4Qh0zHE8ajEWmaMjg84rVvfZPLTzxBK20xCoeMjg4ZHB2zsrzMJJuBEvYO9inzHiurq3bVCFUXrAEaK1KcmPFoMte7TQz1TvUbqkDiYURcoKod4cHS+xR8gohXU71jpsEKq+oHrs2UG5hqQeOVilwAjewzu493ttnVHDzb9eSkhpImE21mZtnDXdQNDQezKV3tgjpkrAZbs/hiF8Df1Onsja+rfcSyXt9Ncpb4W6+12R38BJ/+6N9hMjdciiEODKNZiSmFcgrtNOFokJGmBtHC+lbA3nbJ6BCy+RSjO8TtiPJ2Ti+FdpCxtx2wub7EfDrjsPwWyxvHnF/dpfubnufLX4qZZzHSqEFRVXJrNLDV9v2ERKMAkH8/VO/OOFu6QciPM2adO/Q6jxCO08XZDhpan1TvRZc2HT6ME4q8YDXcZGNl475d74E50hb1ovrj+xqjfgC44xrJW/hZWYAC4Re/+gZff/ltdrZvEa+v8/Hv/zxGG/Z3d4mjiFavTZKEbG2ts9RfYjYZE1BSzOfM2y1b7SyEw1s7DIdjQBEGgM4RnTMZz3j7jVcZj6aI0sTtiCASJqMjdm/eotXr0V1aYTocosOI8xfO0+4mtOOQ2WTKdHDMay9+mzvvXKXT7bJ0sc/Tzz6LUoqyzBgcH7F/5xbj8ZjNC5dZPbfF6rlNJoMhx4eH5LOMTq/HO2++iSmtE6YoCqbjMZPRmMlkSto6iwpCummLw8GQIEqIwohOK0GCZuF1w3yeE0URyjnfqoUPF8JknFLV7KBuHxdB5caqLA7ih0iUW7oGgspphviomhOqpI8HdMPcD7jKBFBpYrKwrbYbuuQfGgVsRLMQwuTR2LMwH0VjDEZZguGdyyL1e/JsvLJzSgOwKz5XUb3a0+6fxzRq0VLrOn5SsPdC1TbWKRjy1rVzvHXtW/Sf/3tMTZ9vvblDGWhKBfOx0EpgbVmYBRo6htkYJDLs7hl6GzG7OznTqeFwb0SvG9BrKd55TfHohZKkELhmWFldRkYRwZkOxRlNr3iJT370El/66oYtaCVCM0evWXWsMjU4aRYaEve3cVmCdc6AkM7XyM0Rh9HLnF/9boqjklKXvhGq8/mJ2mjN8PXb8FjCmTPPcudv/B2uHaR89xOX79v3HlBG2qK5X8ndWWP+3b+n48uL60ye/Ral4Ytfe50v/OorbJ5b4XLnAjdv3aLQhvl8xrnLlwiCgDgJuPLIBdIkIA4CojBkOpsRKGE4HAJwsHfA9s3baG3YPzhgaa3P2bNnSZOEWTYHUWTzOb2lHkcHB8ymE452tymyMUWeMJ3NODjYZ23rDPPZlI2NPpQFWZ4xn00Zj4YYYyjKgvl8Rr+/xOrKCteH161dOZ+Tz8aIQLu3zJmtDYaDY6698QbDw2OmM4MKY27fvEGv3ydqpRBiV9agoCgKMIZABfSW+4ynM7qd0GaaqdDNzAajhUmmKbMJ62FI6lZn1tVgdHbJhkbhK2S6V2AddcaWjkZsptq7OGo/tKLFryRtwNtwqRnpQgxRpY8LfqFIqMljtaKuY/4N3QJwIHvSxuhMGdbB1rTyeqB2Desusrjdn87UlgFqE4DP+jTmbha4sBynfyZqMHJnwrNFf3btWLUIzPUa3/r6NV786t/iT/zwFpfOt0DtcPVmTFbmZBNY7kKpDON5QasDMwPdEuZDQ6uTs7YRcJSXtNYMk6ua2X5AJIaXv6D46LNtirjEvBoQRH3K/YjWToxe7xLlfa70hDeP6tCwutCNN/NYM9gJUmufqhG6IKhmExMFisIIvfwxxNzmOH2NM+c/wvHtKbrQjZINhkgC2oTMDgccr+6yvnqW1975Jn/z73+NbqIoRrf5w/fpex+ITRdosIXv5Jj6owcCIyVa4MbuhC++cI2l9Ygsy7h1+yqDgyOm04L1s1vEUcDF82fodFPSOCJxS90MBgPm8ykHB2NGoyHT6ZTR8ZDh4JhWq814MCAIFPOVFSaTCb2lLpcvX0SMoZzPCDC88cpLzEYDCqPoLq/SW1mn11/GiKHXaREIlEaj85xWnBDHMe12m9lswnQ8YjoeEkVbdLsdOp0WUZowvTlifDxAa1BRxPmL54hC4e3X36bY3sG02gwGA6K84NFnLlMWOWGg6XVbZPMJR4Nj0Jr+ap92nKCUoiiBrLbRDUYzXn79bWbZlE88+ySXzqxVYFCzIqlfV+Mbu60OF194Rw8h6HrTAr5qVTMc0TN7r7N51ukZpmOA2kiV5OD+dzjWaMdmazXsFKbxjbcwLsTnim4k41hI97q0d5N5AlJXegaf6OOXsKquUUUrCPVyOfUx3nlXPb6rZ1BbJLxxQ8hHa5jhy+jhPuMbv409NWbz4jaoPRQwV4a3doWbu0K3B7ECExh6CvrLwvyGnRi6XUi3Ay4/2+WlL4/pdRUbZwy8kdHabMOmoI5CzCSm2O6gxgLFlCfiFQ5UyCFzMIWb9FRdt0I8xbOt41rPbbHaop8m/VtSAmGoKPMCkYhecZ7JwQ3uZN9mZfMCehCjp0IvSWjnGbPJiHkp3J4ecM18GTl4ivks5vJHVuhQMI7y+/a9B2TTfW/2urBHY0q615GLZihhOC748Z/4RfJiiMxShCm6zLlz6ya93hqXHrnI6lKblaUOhoLJeMrx8ZiyLBiPh2htCMOAOI4Zj8dk2YzpZEiRZWTTCfM45ujwkCAIOBtukaYxvV6X6/t7HG7fZHS4jy4KVs9cpr9+hqTTxojQ7/cIQ0EXOceHBxwfHrC7vYNSiqws0EWOLguGg2P29/fQuuDixfNsbG2y89ZVZqMRg8GQIIxpdVqcvXieotCYsuTo4AgVJHT7PdrdLmtrqyRBQBQpuzpEWaKVYp5lmCBES0mn3WaW5RhjGevP/Owv8Ff/8o+Rpi1+3+/7nfzJf/sPVcvB3NXmpv7x7+XknnKf7Q+DVCFejr1Z4HGqahUS5LV+qaNlqgwmQaReYLV20nBXQL63J9bGCW/KWGSTtVvL1LWwocF4aTBps+Dg8vv5ClcecH1ok4f6qlpZdZiu4ob9XVAd71++qci+ADdfeYt8uk3SajO5c5k7h4fsXH+Gxz/xK6RLM4LEEKUwHUI+F7RWRKFmoIVRBsFYYTKhLYolrYmnBfFKl8NjRXeaEwgMxynptEc4bzMearrzgqBYpi1j8tEtPte+xNfbm9yWOxhjayrYoj3evVnRUtfq3lRS29nrBAuDEDDLCn7553+WJx57jo0LF0jVBfQ442ByzFJHuHCmxf7tKTdzwYQpRMBqm3e+sE9+56tsnTvH93/P9zAYDBnNBvftew8wOaJJU932Ex62eo007spEu1ucmqOFn/pnX+Xm4QFnzq9yfDxgNp1wuH1ANst59BOPYLIJokOEhMytq7Z/cMRgcIyIIU5C4igkDBXtdkqRdRkcH5FNp6hAkEAxHo0JggBdFKxvbhKlEcV8xq03X2U2zzl75WnOXrpCe7lP2kooy4zlfo+8mHN0PGN3e5vjg0PKPEOAQAW0V9ZZO3OGtN2hzHM7u0aKRx5/nDe/+QKj4z0mx0fowhDHLbqdNtk8Y3h8xHQ2Q8XC+uYZLl26SH+lRxrHxGHM4PgYAZaW+wQqJAwj4iggDoVuq8P+0ZCyNKyurtFqddk6s8bHnn+awKuXruHtOPfryNmkkAo43I/GqqLaZfZUqutDJnWgQsOc4JxfpkIlZ5dtxGBW2UgVKEvNlL2rHH9udx7jnT72XEY5GKjAtIrOrYDYs1cxDTsrTX4iC6YFD8wLMeuVo62+b89ljZT23C5pwtfXsOhq8GFiHti9sq4JmB3uUcxHnN84y8H+iI+strj96iWGyQHmzNssbwzpJNBfMgz3BT01LG0ahsfCrIQsNOhcM52kDAvFyARoFXFQnuERAvQsR8qE4zImDUJCHTGblGg1QToRJuzSHu/zyVzz6vIyb3Bk28f45JLayVU5LPHQqxt93rerK0QvirOPPco/+Mm/TS9cIkhCokcE3Sn5nqcuooPz5MUVELt+W6paTHavwbjN1fGUVnpMD4WJ5jz3sY/ft+89uII30py/a8Z0177Njg/Vy73HSQHDjTvH/PwvfYWVjVUCUexub1OUOa1uwh/9kf8N61vrHOwdcOv2TebzKQa7usJsNmM2mxNGClEwnUyIo4goiohiu/ptURQkSYzWBTrP2N/Z5vjggMlwyNHhITffepnZPGPz3BXWL1ziytNP0lnqkc+mlEVGr9clCJVdyaEsOT4+piwKjAitTodWu0Wn12U0HNHttEjThDiK2Lp4jt76OqOrN9m9eYOdO3dYW1ui3eqQtloknTab57YYDKbEaUq7u8Tq6gpxGBKHEXlecHh4RJK0WV1acs8VkISKdiy015fJioL17/8kn//kM3Q7LZa6LXBJAcpItTKHX3/LS4OIuRq6Ug1ureXeafAPgQiW3VXOhirEyLDYBR2YUbO9SuWXuuCJoTY7VIusiqlBu7pwbbKoE3R8EBrYpWhMXYCmAg4a76UGxIrQ+Xut7tA0wqU8f/YMsMGs3TmqdeG8kcExZE3NgD0rD/OAnhRMektMhm8R9B/loswpv3me2dfndD+zS7k8Q6UZ8W6PeGNCMS/RKmRpZcaNGyG6o5nmBctmjXwvJJpEFCbgn725zO/sQjgxBFIyUyCFRoigbKMJSVownxVkWnjWaLJ+l+tmhJYScUncVUu5dO/Gk+EB2khdXhP3Pq5cfpylTzxO8UrGaOeQ4fURj3ymxaWnn+fGjddZl0cRo4nDlJ4s8dwjH6MVbfHNV36R2zde4slPGi6sfbczcdxbHrhNt+oQC2y3/rtqHs8cqv0Wz2KAPDf8w//lixRiSFPFO1ev2pjY8+f4zZ//DGfXV8mKnDLLuX6j5Mat23TaLeaz3C5aiSFQikApZkXBfDYjDEN6vR5pmjI8PAJRqEA42N1BFznDowPeLDXj4YgiL9m8/CQXnniK/so67VabbppgkpBWKyVOQg4OD8jmc+bzOe1OB4B8PnHLqyf0lpbJs4zJdEIQKLTWpElMu7eMinfIJmP2t7cZXDhDHNvv+6srtDptgviYTrdHFCUsL/dRxhAGAZtbWxRFSafdxS4EGhCGAWEU2ucRQysKSaOAlW4M2LhmjaC8WmnwIaL41NVqJYQmo/KWMWMB92F0ooHjQqrJUnFF/+u0z5q9Ug3KZhRDk0X48DnV6M+ejXoS0qQUUuv+tdXRxc1W5U9rWltd0m9r5gT6Y+1+umGCsKqz0X6JcJ9L6CDIvXhTncM62bQPrxLbPzRSLeApxrDRjTh0391SIW8PbvJUmrIeFRSjZeKvJZQdjQ4y1GydXaWJH92huzFjNj0mywqKUU4kBqYh8Shjnu2yvzPj6u2AO5M5f+IT52lNZxgdEQUBBAHBrCQIt8gGU+I0Z1KOeXkYczlapegU3GbeeDdOKsenZb8+O3BBf2hEigiKjz/yLF/+8j+jraYsr4R83+/6KHvjXduOwFJ3nUT30EXBtet3mE8zLqQpTzz528iZUGX+3UceOOgudM1GewhU65+9H7MCGF594wYvfPtlljf6jCcj9vbusLm1yW//LZ/n3EYfUxqKLKPTSrhw4TyTyZTJeETYiTk8GhBGEVEYc7i3z3Q2QQWKTqeDtCNm0xnZfEbc65K020RRwvj4mPlkwmQy4cylS4RJj0effoq1s1soYziztUa7kwA2BnY8HhGqACWKta1N2t0JRZYxHgWUeUaSJASB4vjoiKWVLhJYVhxEIY8+8QQ7127RW+4xPN5nNBzS6baZz3PCKCZJW/SW+hwdDplOZ8RBylKnjWBYamuUCmi1WrTSFGMMiVLEoioHpK2XsMhgbcSNVItMoiGUugaDEo02Quk6pF0fzYUYOdalMfUqwQ+RiPhgI6v+C25ZbwebumE7BU8cGrTSa+J+osKbJhqg7c/gAdgf2gROnxnlVP2FZBTx4Gwv1Ez/xanNBhDtvjf6hAmvBlIPqr76mAVv3WCAurb/usmgbJgV7JpiBiHjwtk26Uv7zDqP8OPZiGG8zAt6wDNxhOqs0TI5MksoleIwTZmV+8j1ZfLtkihLWV0yZF0NrZC8mLOvNb045dxGh8mdkJeHE/7itw7431/oECpDaWICHYEEFJMcCBBtWOnkZGS8ul1yablNsR6xi00n8xNKM4Nw8a14EK6B1z52yZObl+n/gR/g+PBNVj6+Qm91hWt3XmEreJSV1mX6aZfr166zv7fP4e5rBOGIRz7+McKkx53dN5nND0ni5fv2vQ8geqHZCagYgzS+fS8xgC6Ev/t3f4qinBPFcPPWLba2NvkDv/d3cvHsJiElM10wnU/JsowoDFlbW2Op1wUM/X6P27dvc/vWHQSh1AYVBnR6S3Q7XaIgYnA04MzSEiv9PmEQMOl1Sbsd1jY2WOovU2Ql/bUVoiSm3UoRBbPZHF2WjMZjijwnCAKMMURRhGm3oJWStCJEG7I8I4isKePw4JAoigjDkEgpJrMJcSultdQjThKKPGM8GjKejCmKgrNnz7DSX+bxRxPKomQ2nbHW7xNgmE6ntDst0jS1Ky0rIQkbC8QIjSG/yAWaqmTzS+8t95lUPhEycHGNRrBZT1qa1oiHSKT68ZWnmozAJzp421/T7FDbfd3f0mjXqv0amUq1PcLury3L9nZci3yWHSlsGN7Cmn3iOZnNz6wmTCeLJhGnkxgbB2wvXS8OZW25gqGotRfHki35tgBkNR2/sLi2ZgZjmXJwLuDJ9TZvDvZ5RAXodsIwOObV1pikHaBmEUVZ0NYFcQwqDgnZY5Qfk6Y5aVnQmQgEM8btGbluMZleZulWn0+uCo8trfON/Tn/8805/+b5ABXNkNDYYvKlxmSxU99bbKgYZsccRIqtwxbD/pyZ0nWwlPie25gtHeu3T2+sGchgV0Fxk+b6pYt0P2Io04zRuKTIx/TTZ5gfjLld7HHz6svMp7dYvXCO3saTgEKbgvXVi+wdf5X16JP37XkfAOg26ezdumhzFroLgl3vEgzXrt7iF7/wSzz1iWcxGLbOXuCHfvP3cfnsFolosnnOZDJlnufMszk7Ozt0e0tsba4RhQoxJf1eShwGHB6PKI8NyysrhFFC2mpz4bHHGE4mhArybEZndYWz588yGg6dTbbNdDJHm5JWEoMpieOIbF4wGIyZzaYoFTAYHJFlGX7ZdlGCBIGdLJKYKIlJ05S0FdNqtYiiiMl4QqvdodXr0l1ZZX1zC1Ewz2aUZUkcx2xurLOxukS3u0xZGkwJRZGTtFJSWmi/fI9AO4oJhAbrulfLv8crk8VjxJkiwA7MoAEiD6NZVzldvep/ohzggAVIVfU/z2TBupykgXpSfU9tUnBSncodv2hRc+aECgCMa3MPCo0R4TOrHNNu1oi117al1CtXX4UvBl/Exm6oytFTQ5GpLSjV/ZUY4/UAC7na3y8lo9aAtSvnWHn1gIvDGd/cGZOcX8P0x6jOHmpaEGYwnwb00phCZ5BCHCsm+ZxkKWI6yRnmhrQNGTPUbogqFTmGvmT84LmYl8Yx/ziL+YOtiGw2wHQSJIwh1hSFolUKpdLMZzHz413UuWXOd5a4lsyaU0r1vhf0CGMa79u2dSiGPBHyeEzWPqQoBpjMcDzZIw4Ms/2CfPAWe7euE7XGnHv2WYKk7aJ8DOJKPaZpm6wY3bfvfWBxus0lzoHKfgg11N6bMBlKo/nJn/7npMttojSl1epyZmuLy2c3SEPrAJvnBUoFtNM23c6cJE2ZjCeMxwkrS116rTZJEJJfPEfSOkApRbvT4+btW4gots6cZWVlmU6SMBwOOTg6ZDqbkiQxS0tdxpMxgSop85Ld7duEsWJ3ZwdjAopSk2dzRAyTyQStNUEQkKRppe7FSYxoQxzHrK6t0O31iKIQMZpOq0V3qceTzz/H1oVLbG5tkeczojhkaanHan+ZC2c3WO62abe6KBWhS5hNpwhClERgDHk+p9PuESfRr+EN1QbD2uLl3p0x1VI9nv1aB9y7vrgPtWhxS6975bth9qq82y6iwTI+qMK8pmOk3a21g8rEYAeychvMwndQsSw89DmGWdnV/QTQMGd4u3LFNGlQaqzJoIpL9QTGgqbjpw0V21/fVPuWAoGP4a38Lco+s9hMN200hhJcFl9Bxu7jl+gdjbkwGHGgNT//K28Rbyku/UDK0tYO3XJKkSvmsy6tdEKWDSFQRG3FdpnR7isiDfuTEBUskbZSsn6L8WTKfAQbaD62CnuS8q2wxbPZhHx8iFoJyaZdlOlhspg0arEaj/mZN96hN9njSniZzvlljlVGHafXaDtqDeJkGntuNLNkm2l6SISCQGEyRVEek2R9xnvbbG+/w5lL63S2nrRn0LWrUWsBUSTRFQ5Hr9y37z1Y0PWdiLqiz71ieM3is9fiDP8HRxO+8o1XeOrZjzCajVmVkicfv8RyxzLOeZ4zyzPrAxa7Sq4oRRzHJElCWWqKomA0GpDPp6yvLtPtdBmNZ1y6cIk8L8iKOWsryzxx5REm4wm7B/ts7+xgjCHPMw729jg8OLSMT4WoSJG2OiRxyzHsOe12m3anjdYQxzFRFKICIUmW7bpZWtPupCwv9+j2lhGjMWVBNs/or/TZPHOG9fVNur0uk6k1Vywt9bh04Twbqyu0kgSlApREmFCIwgCtNUogiRMwhjQMq8LZdxXDbk56ddT73V8u2B78h3toIebkAQ+P2ILhiqpIttHuM9VE6Rlu3Uz2OQuZEtLGrhqrqtq49luFTwXzx1aMsprKGm3fANx7aSP1MbXm4t+dduOqYrPiccbdA5Z91Yq0T6swDohq7M5G2wTdNUIJ0WLNC9pYB5xU4YPuumIYdjXhMxfYfO1tPjksuHnxMt/45gt0zAVav2WTrP9toniC6gwQk5K0I7SeoLRBT0JGkx5IQKQD4lsfYWmmaMcFekmTdA23Jzl3hhFpu+Bv7xzy+9sxn2ivIPM2JgIyYZ5rlBGW0z5XLpzhb995m9904xYrukQuLWGrj1m7ua7MSX6CUa7JvF3btlA86TNLZsyLGYHA/ugqAIObMePt17n83HcRtVrO3OJqIJvKFYoYTaBiDB9wcsQ95R7j9j0PcezqF77wAssbZ8jyGabMWOm3SUODMiVFXjLL5szyKbN5TqmhKEqUUpWNE6AsNdqUdFoJ7XaPErhZ7DIcTvCpkE89doWldspar8uZzTVWljscHB0xnc4IRLHUXybPS4bDEYOjQ0IV2AiH42PCOCZO+yRpm6XeEmEYIWLodluEoUIpkFKTpBGtVkKgQkxZUIqmLIRz586wtNxndXWNMFDM5m2mkwkbq+tsra7QjmNUoAiCEL/keRhGHB0dE4QBSRjRTlJaYdxI5X1/72Uhvv49dzeuJoODJPGlHR8u8Uuv15ZcV//OmwjEp5k2Q68ABJUq8nJKHHbdFiu+GApIFUyANwz7OFoHdnVSRCN6oGmqqBCxWapbGvdTLxvvRYx1pvkoCDuZOMcZPsPNVNcwzp5tbVIBb27/NI+f/Z11BT9wxgWbwdZcBr4Uzd6ZNmefOc/KS1f52PAl8mefY+/WdYpXLjM420JFx8TdF2H10K6aoUJ0WZK0CoY7ipX972ZJBwSmxWw2YDocsNoXui1DqzdnXGbcOtDkrZi/elgQRyt8PIaWrKLTGEWHYjKmiHr8tsc+zp0k5pXpTZ48HpBuh0RnUpvwUkUS1MaGejrz78zajJN4hZG6QV5MyOaKstgnCfuk7WXOfPJxjIps6KQHb4rq1PYsJWJClltP3LfvPXjQNQZRDc2l8dV7j1VhNJ7zM//kC6xe2OD44ID+cp+N9TU67QhMSV7mSCA2/MqUDIZDpvOCdishm8+ZTQ1zoynjiDiKKUtNqUtUEBFHEUaX7Ozu8diVC/Q6bTqthDiJybKMJx67wnQ2I8tKDg6OGOc54+mc8XjK9XeuMzg+YDafYLCOsziOieOIMApJkoilbpd2OwU0YajotVMA4jhC5zlFnlMWIWVRcnZzg/7KKu12G2003U5K1m7T63TptNrEcUxtv/MLQhpaaYIKQtIoppckdnn2euTes5UXVuRwvyslacGW6wP1WUiU8DbKk5k9D5NUYGNKEGtoqB/QQVK1AmztAUcMStoM9ZCIbpXZVqX+VrS0hjb7/z2WE3fhXTUrtZ99mC8oxNQr7i3afHHGdH9eX3PAmxFqVUQ807MrUbowQaEUQ+AmgyjoM8qvsj36Jme6z1d2yvr8DaOIfzRR7H/6Mc7sbnPxrW1aN7/M1849S5zNOXgnxRQJgztP8fxn2ozVG7TTgDyLmA5bqEKhjzLGaNZb2tYrUC1GuwPGS7C8ASvdGfHKjO3DHoPeCj9eaGJp82yyAqMBLX0Vc3iDgDWCKONfOfck/8MeHKYTgnf2OL98Hlo+5aRmo/XacfapwiBgfXmd/uqTvDN9mzIfo8uAo+GrxGGEVprVrfOY3DrL6nRFg7V/B0AJJnD9oCRSH/BqwF6sE8CtlYZ5n+OyuZPhjbdu8Nrrr3HRjNi+8RYECU8//RiTyZi823PsQmO0RilodVq0ejHT6YzjoyPybE6nnZLlGUZHzLMCLRmtTkK31yPLbxAEiqVexwJmGJPlBSoIWOp06HS7YBRLS32OBkMOByNmkzskSYv+2gZaZwyPB7SSlFYrtc6xMKDTSlhfWSZNEpQS0jSiFUd2iIqQZzPG4zFRGBJFMVEU0+12ieMYsHbqNExot1qoIEQksHn+jVqhgWPzoQrotlILuK4JFxwj71MWPPKN4+uweTf4qVeS+E6v8eERx3Ko+6kv/VKzvLoFwKv3CpGEMtxpONFMdY5mnK1pHLdgTnCM02vsVegX3gzn2ak3gdSM2GKkB3JTh+eKqQCaBot2uonbaXFiNS4lwk6gMf1kk+3h12gny7TCiy7rsMGahYbzzvaDrJ2w89u+h81/8HP0BhPCwVvsHL2EbFxhp3OGZGkNc7hGp+gzGh2itKadLpPnBSQa0XOGWUaHkg6GXtpiOJqwMxDSR2Laq1POXzpkaQbHo4SfDVqsTKc8MrkKAnG3hwq66ME1OlnGH16/xP90uE3GPsFLB5z9+FpNJBrvRUTRTlI21y6ztnyeWVGwvfcOt8wvkIvm6HAbVRYsm6cIpUWchOjMmWXwk5HgVwa277SoVvd4N/fyA2a6Xn35tYhd+PALX/wG6xurmLJACQwOdnnxa1/n0UtnKYocsKUOvWqmdUmWTcjznCAQ0AHT6ZRWkjCezRhPp/TimCIvMAba7TZBEJLECVEU0W53KHRJEAQghtCFRS0HEVEU0m53GI+mbO/ukAQpZRli9IBOt8vKygpJkrCxtk6v22Kp06UVJQShoBTEUWSdEsYwdys82KgDQ6tlQ74EZ5wvNSoQlLKlGX0GkzinSRAoazoxhnYcEYf1+gS+xf9FuGezvu7dyLp45lphfXjECCijMRL4LUAjscBrZh7AxBf7MRgCEmUodU6oYmroNQ5UPdukYrIOWx0BNRi3jDvVkY0qZaZ2flU1bhvRDPZc2n3QzhJRv31d2SkdS64mYTupaKiu4e9TKWFr5XvYvvN3uT34MldW2sAyHp798TaLS1XPo4FpN6H9+Y+T/PyLbAURV3orTOf7fGl7wLXNJylVRBp3CIohhSmYDvbopm3mU0MZR8yNMClzxnpOX2mW0ohlE7N/u+T6AfQuKTYvGFpLx+wNu/zTIuZfVRu0ix3mGURJDAbC2ZxHlzW/q3+On0xT3rn6Nu0bQ5YudvDmBCWK5e4KW+uP0E5WGR4fcvvqKxzsXWXUMRSrAyajEWY+5FLyg8RmFTMvMZlecGRWsb2uzY3xwe4B1sTg+9Xd8kBA178QaNih/Bde5Wl6zuTk0XbQD8dz3rh6g7STMBzsMx2NCCiZTsaU2jCbZzblsgraB58nrsQwmYzQZUkYKDQJk9mc6SyjuyyIUhTljCRN6PeXWV3pkyYtVGDto8Y9hARugCroqi5xXPLE44+yubXJG2++xf7BPvsIk/GErTMR7bTFcq/D6tISrSQhCkKCUKGqJQOwJR4R0rRlYwONcYkbIbiOHEexfSap2av9ZQiCgDAMCUSIw5AkqIHibltuY4NZHLiNt3WP7TibetPBU6dTmpNOuodQqmoEjUQIcYukVb1WqoWP8LZ0QeiZNmOOidikAtgmSIILxaodaLaH6nrxF1O9kmqbBTK3+Ix4qLCmJHFgXZs7mqqGDwRr2nPrsuf2WFMf4ur5YkCLRhloJWfpRF0m2R0OBl9mZfkH3DPbWhvKmCqhpDnRGgz7lzdZ+65HiL99k2AwZasT8nsizWt73+B2+xMchy1UFFKM7Moq+4cDuq0IaNt7VCljrZlLTpYbegIbcURPdbh5Nef1g4yNCytsLPfY2y/5ubjkt+XLJPERZWFThnNdEk8O+XSyyst7B3yz1+H2m3v0zrSJkoiVpQ22Nq8QkFBMhuwcvMGd21e5c+Mad+5c5dwPnqXMhfnkiAvx54hZsc/nJ0tvj6esTQzNseBt6tIwR91DHrB5oa5oVM2V9xird21yToTX376FxJC0E1SwhM6mDI4OuHPnDkeHx1w5d5Y0ipkVGUEQ2MQErcmzjKIoyLM5SgUMR2PCOCErSrSBJE6J4hg9HNPvL9Ff6rK1uU6apCRxVN2RXZrFoMUFpAchoFjtL9NKYpQpyS6f4+knHmc4HNLr9eh02myurdJJE0I3IdQTjG5EDYgtTBNEiEBRlpRFafcVIYoj5llmPciCoyuKQIQoEMJQSIOIsKI+9wLce7fxyd1MtYc5sV3qAey2GBSl8U/j14l9+AC4qjNbL6TjzDKCdnGxVaSAPaIOKxMQtcZEX6crm9iCNroCTL9EexUGSp3f7zls06xgRFz4nWe6DnhNVcSxOkt9nipQqXpzPpbW/1WtiuGfobq+Z8llNeEYIDCKc71P8+r+T7PDDVT6EsvxcxW8nuwdVX6cCz86eP4R1ocT4rd2yIlYO3+OZ/dusnn7m7wSr7LdWSGPE4oso5u2GEynyOyA1d4SIjFZ0GaoIFc5pSooUXRFuNJaZj8PufGNGb1NQ5AkXFttcW1ylUtmjSRUSGkImTDLQtLgDn9otcc3f/VXGKx1ON7O+dwPfC9KB0wOdjjc22Y0OubGjdcoijHttRWunPsoefuY8WiXc+HHSFi3YGp09Q7tB139rpoVGyVi+5CvufAbmAbs69EbXOHr9ymlgdyELPU7aDNBScry5hoqBKMN+XzOfDYnUkGViDCbTl1o2IijoyPyPEeFCYU2jKcz5llGGISUZcl4PEOXhnYSc35rk5XlJVppRBKGVIHwjmlqXWKMoTCOoQugYy6eP8tkPmPez8myjFarRRJFRGFAHIV1CidYu7OxQJ5lGYPhkE6rTXetDcA8y8iyDLBmhzi2TNdo+2wYHODaIjdJGNQDoXGd910UvhK5x4Dy0gRct8XUUZ4agzbWDPTwmReak6Gzm0oASBV/3Fy9oWbDuIcPKc2MgozQhDRckfj6ulQtJdSw5c0Fqrl3FZHgq7x5ULa7uII4ziThgZ1qwqsrktltxvFes3BVcdOoNz74CceyM7vHUucJ2Pl5BvMh4eDrtFaEJHoSrQOM0iQSMi28x95gpMQlUVMGiv3veZoLs4LyzoDi8IClUhO2W7TCjFuHr/N2uMK2QKkSuklMXhr2BkNQ0Gstk6ctch0yMwWb7YA8DGkZYaMVsdRJ2StzMgHTbvHmep/49h1iDO3Ohk1WmhyxqxUX+mf4Tz7+Uf7M13+Vb774Fsv9c3SLHfaH+xwe71GqMSvnLtHpPwYq4Btfep3r37zN05ttWk9sOZOexi9JX2kQxtXZO6ES2jm8DsvjgzYvVPdCPUjrHPV779cwQiACeQlvX79pQ62UIY4jjo/mKBFa/SVUFNJqtWxspbN3BmFI6eyxeZ7bFXQj7co7avIsZ6Vvi5NHcUorTVjt91hd7tFtt0ijqHJGCWCCwDaoCjEYQgOh0hQ6IFaKvCxRyqr4ZZKQJAlhELhn1ZXNFaAsDaUuKfKCyXTKeDSm224j4k0jxrL0IrfAnGeAECcJYRASBSFpGBJHEXEQVKtzeKkDvut/76/i1OHyNVG+395SO1CMf5/iIhrcy3rIABfAp9TathDqOqsVrFHH2fpVKn0Mrt0vCVIm5Yie9KnKM5pa9W6eo/L605wYvYqiEQmoWau/F1Nfz03aeIbsUpcdx3ZX8SysWgy+oYfU9Mc09veOOe3YWyABZ5ef4fW9r9FSQ/aHv8Ll1Rsc6B7D4ZCz/d9S1YrQ7nreRowoijjk1uefZfOffo3J9j6TbEzZSYm7qzwblWyWO9wIEt4uY45UFxW0SJOYSZYxK6dkgwlx0qPV6bJThEwElnod0iKnn0acjVNGespMxxSDEdfLY6Qo6WclQbDFOCuIgclolysrG/ybVy7yV/bG/NN//ks8upXRXRdWLp8javeQwDLTIg/Y29O88isv8bl/6wcxRmELvZ9wqlYEqlYtay0EP3M2mNC95QOoMvZuim0tdeCL/RmMCkqj6XRa7O0VZPmUMAyYZRnZfMLewQFZURLFgQM3RRBGiCiiKGJpaYnhaMxgOEJrmM9K2p2E0XhEq9NmqdtipddjfbVPr9umHUeETTaDH1v1YAyAyIVqFWFAVpaEoWWfftFHG8pVs1p7Cgtc2hjmeUZRFi70bZ04DCgKQxKFxGFAWZYUWjOeTihLzVJviVac0Ipi2klo888NVZxpU+TuTQstXqnKJx5SdDX8XbZpzcFMdQ6pYkx91akK4hdWZHw4xIhuLJLDYrZkg4NKA2T9Zw/JbbXCkR7QM0v2HNX7xoKwqgeqN615rnmyhGmtrEMVmVtpMM2Vgc2CmWKBx4q/Rzvw/TE1VpuqOHnTKuttyKVjwVtLz/PSjRcYhiWp1twcvslYG5aC34TWjXI+4ieS2okIhrwVs/1bP8XWP/sy4e2MYJZDNCZLu6wlmqQoWBnd5HbQ5e2gzyBcIQ4joiRlrgtmZsbu/oz+2hpFsMR0DJsb58jQdKQkDDThwS3SeU4uXYw+ZjC5TU8ySm24fjhl2XSQbptLFy/xu8Lb/MzxkFuDNt/zyStEQb2gmMkVL/zCS3z5n/8sf/APf5reuXNYo5mhTnpoxj67522GBFaUpX4rSHnfvvfgFqb0HbXaen/APSmFgdt7A8ajIUFgHU5BoFAokjjg4OCQ6dTWWUiTGG1wpRsVSdJGMyUvS4qyJEkS8twavoMgJkkiumnCxvKyjfdNY9pJTByoev0qWByFLAJoIEKgIAoVcagoIk2WW0O+NhpKP16svUsp5WrRWidYq9UCI8RxjBjLlqMoQimFEmtbbLfb7B8c0Eoj0jgkdYBbqb4nWtfeYz1pvWuLn8RIudtmZ23PJ9STxgzutW7rCHyvN/rhE7s6xIkWNIZ6yQanDVSd2Q0uPyGJEOqUQvYoKVEmbPQZO/v5a1QstWEPqoevdhXNTN3OUuFXxVdrU4+3odbOab+PVAO/XvNMmwZki39M7aIQasgurYEAY4Qw6tFNexThMdNsTlYYTBFw4ewT1aRcr7XmHqoxXoyBIo24/UOfZv0rr9B96U30aIqJ2kSxot9L6CpDfziin+9w02TstTcY0SIOE0JJCVTGbHZEbkqC9TPsHgzpJRFznSPTYzZWljleWSe9+iLZMCNXSzCeEwQlS3GPt69v013a4E65Qr9/kd/aucUvDee8/NWbPPepC4gYyjkc3LnFnZf+OZ/71HkeefYxVBhW8cnG9xO8ScE+Z9PHYfuSqeK0bfdQvMvo+wAz0t5N/P2595Zr2D0cMBkPOTjYZTqdEMcJKgwIJWG532d3Z5fjwYBuu+UKzAhGQ14UjCZjCl3SarcJw5TpdA4I62sb9Hstzm+us766QieJacURaRA2Ord3mDRUd05gsPsqACS0C17GYci8LMh1SVFYxupB16bqCmEY2ipgYYR30pRFWbFk7whUoui0WgTrayRRRByGhMoCrldY9Yl7WWzOxsb3IqDVrm7wNBDU3Gs36iI6AqAEc/9J/UMsi4TAPp9yLNOq+ovP3xhofgJWtuD9lCkdY2sn+4gF24VqxuyjUOxy7VZ99fY/O1EqbKiRuFUM7KTni+HUbMuDp0ZcfQX7NA32azw419EMvuKYcY4h5RkxBr9ke0ORZq2/yc3JMcO5phUKoWkTqLSy3/t96wnZuEmsvnYZhex+5jmm/Tadb34bdnfR/SXaoojihNVkTjsLOCNT7ux8m914jb31Rzlu94laHSbzCUZgdrRH0O4zE6GVjWnHIfO8oJCS1tYV+rQ4KiZkpWFTGQIVs7JykZ9/4Q0+/7HP8cJ4TtrZ5LPnSl4rj7nx5m1WN5eJwpLzScL3/oHfQvfMefdefOlSP8VVhjSq2dBrEW6uqbV5acRu/waaF96vCLVqPBnn7OztkusZSZqidUmaRoRBwt7ugG6vx+raGr2lZQIVoIKQcp4xnc8ZTyZMJlO0hiwv0dh43a2NTS6e2WKp12JluUuS2LjbOAyrXHvEd7n3ryr7e44CIVS2+n0ZGrTRtuaD1pSuApjRIT7Y3AakK7tEunPYZXmOwZAEEQKkbin1SAUEDQSwg3dR7jWv3neuPalK+0LPYkFBOxNCNcAbk6LyTAvlguffvYN9eMW4hqxbUvCs3RsQcP4CXRelEeeK0iO2szvoACbhiHbWcfGwzkFlTFUYzAOpqpxt3kbcMGHgCte443wMrIIaECPQpUG0n3pN/RzO7lvDgy8BaXlvbRA2NCOTaQCuxXk3/UQR7QiKQmjHKeSdBt+uJ6C6a4gNt6ts/M4UJTB85nGy9R7rP/8r6NEBhKD6KTqNaIeaOAhoqQkbZsBo+gr7h8KebnHc22SytMkMMDpHFSBRBKFCRx3m4xHD6YhBGnFGNrk1H7I/m7DZ7oPSrK8XfOG1N7ny5Mf56v4N9iLNI/2AYVchEYRxjFZ7dLcu2nY3ZT2Z+Lq8VV/xz6SrMVP7WOtIEttvFL5K273kQwO6XozAcJrRbsWkrYTpZEwYhoRhwHyuWVlfI4oilvvLKFHkeUFRFuRFxnA44PDwgHk+J5vbZcmXu13ObG6ysbpGt2WN9mkck4QRaRzbBAqgUptPItW98ETqD/VEb212kSgiBaDQoVvCnJrxeqefEiEvS6ZzjQosSIsElGVOoTVKNEEQ2klFqfqyJ8w2tZr63tKs+1qpRo7Zm4o9eyeZ3AW4dmavFwyvwp/u378+xOKQqmEfXYhoqBxihrrMYYlohVEGISGZGSbBHbI2ZKpPopOK9Sy8IffRrsVVum+aNQHc90ZXqzYYdw9afBSCYTib8Nr4JT6+/MlqGR6nm9XsCzv0A/xKxdrBbFkx7Xry8BOoe8mi7XvP5yyFayxvPMfr178FJrcx5DT2rRx81Gpgs0atvy9s7Op8Y5OdH/5+Vt9+i+JgSjcvCNY2YHhEmWvSdotAGxKBeH5EZ36L8fAtjl5PGa5eJvvIU0zHmiBURJ1lpkcHZJMpITnJ8hKv3b7DcrfLYZQwKo9ITEBMxnJXsbd9lUsrfa4e7jAtQy7nEa3IYGYj5ivLVGFhlc/DOimbz1vHhDS2VU1Rx1T7QfNuQUQPLDnC3rupanW+9xF2r1LDaJ5TljmihNF4RLfbpXCVw9qdNuPxmKIomU4nlHPheHzMYDTicHBc1bJVgeLc2bM8cuECayurLpRLiMOIOIxox7ZOQXX1BtiqSm3AeXUbsmD8bJggpN5SKati1x+rWiCorcYCKFFkRUnh0pitnS1AG0OuS0Rs7HHTpHqyLSsgvY9h9b5sl3qgGKA0tW1WG7HPLTh1ySycSGgW+a4Lsjxs4qt2+boGVds23+8J+6kR7d5pwHJ6mVT32S9ucxTscoYLC+/fVDZxv9UeZ6pBKQ5YcfUR7DZ1YmD7oKV22OL6eJskeoFn2x9v9FtvQAAtJaqyQ7qawBTYPDJd2bFrCPGQrKvzSRCz0fsYWuYQvoYoTai9vdIsDhjxhdVdvITbp+Fuw7PerLfE9nPPs1doNl55lfMTTRLGzPKMWVmi4hLSDrJ2ljiIkdV10u4G60aj+uvMsohXX9xhNhqj8glhGKElIMsLwk7CcsvQGWsOg4gijCna63C0QyqKo33YWl5lb3zIG0eKR8KIDkdIq23zP8RrIR4468iFqnOY2k4uVat7k0KV8vKegPdAQNevr2WlZlT3uxevhikMk8xwZ2fPLpVeGEIJ7HsNhH5vg2w2o93q2eNMxnQyZTgYMC8K2mmbdtomTWNaaYuVlRWW2m3SNCFQAYGyqzSkaUwU3U3PKjBxty1irXsVGC0A7v2kGa9xF0TWM6CBUCkCFSBSL50narEqUqgUvhzLdyLmxOWb7LbuWx5pnE/dHVQpjcaz4GosVWqtlpphB99xbPCHQMSwuIihz/yqa3pZzHBp2HVT4UuOKkJawSprOuBA3WYezInLGL/Au2U89YCs+0+dsOAjCfwnX/8KvPZh3FI59i6f7T/NN/e/zlZ6gVW1VvFqg7ZgYGo4sOdYnBKbV/XhbXZfVV3RQ0pATCdYYpYNSYPEgXVdKtLv5yctqit7S7UzUnk7tYFSBBNFbH/kKdT1OerWPsdmyKzfI3nuCiVCGQQUaZcyDBECAmNrHNx6c5+f/cf/C3sT+OzHnuX5jz6NFCXT0YBOOyE4t0E6vk4rj9g+LinygHDlLNlkRF8dsj/M2erA8bzg5Zt7nO+3WX55m/hyn2I5oQ6r0yee0BXIcdpEc0FSOy/Xcc5U09/95QM0L/ihe/8BWmLY2R8xnU6ZTsfs7u7Q6y8zGh1jSsN4NEaXJcu9JS6eO0e31SJXEI4ntIIQpQKSJKXbbtFut0mThDS2WV9BoBCEJIlIo8h2iwV1e1HqMn01uVV+EjzxVAvHnXy+2iZw11ECNpNOu3LaplbHBGteCIOgwSzendXeW+pZevE4aYTz2+Gh8SFHzqho3HFSP6d2zMyXYzlBgh8ecct1WydXDXK1m7JeMwwW32CTt4LQUn06+RGDaJtVLlaQ60HKdoEa7qql0StQLx34NwDL6ErbUL6QDnCxdYk3Wm/yle1f5dNnP8Oq6iNlHYDmQdP+p+t3VznVqF6YvaYFW2XsAj4esn24xVJ6nr3hi4TdZWz6a/22beibqu66UreracQ9VcNk4qZsylCxs7REZ77Ea9mA3LzBxaU1aqefqvp9Pte8/o232H7nbR672KI/HDGbXOfMpee4va0IJGZlq4/px8zWHkUwrM1ybl7fgVmEafUp8zGdJCcrQ5bCggDDtaMpm+0uWzczWnNNvpHUy/356JNGy9rYSg+sda/wz2rfc1Mvvbd8oPV0Ddzb1uGQrDCaWW4AjTbWTmukjQFGgwEShKgg4Mknn+TZp58mIWceRWhCSl0QhjGtVpskCm1tgiAgUtZ+qhCSOKKV2KVs7iUVPt6jvRpGAjDezO52P3nMXedf/LI59YhrEw/y3hBv05rDan+Pu+ZdXub7Bz/LukpDBfSl8eFFHnObkaS1Jctg3GKV9sENoHXziR4Osev01e6oWtU3qMA6rNxUC27VhLpvqArQxAgimmV1gd3yVfJwSlyk1a7inZQIYjTKGErHaJvVxerfFX2ygIs1/YCNcElUxPnWWd4qrvPTb/w9fvjSb2U9uuS0EM/R6sw16/Dx78+Hplkfgt+3Zq6OWxsBZS3JK53L3N5/kSRZrpzAjVZ0PgrfTo2ncF3CA3htD5VKY5AkZlrkzIoj1p7erHuZC90TCRjuj3j9q99iOBgxGA5Ju20++9xFnvrEp0GFJK09uisxajmhkBwxAQb41uB1Xjp6kcd1j43kEywvrWCKjNAodF7QizPiQDM0hp0sYv1Qo4ZHJJfWyeOiMbf4+8dGSLFoc7+X/u7Z8P3kgYCuar6XxmxQuhs5WfTad7qiDBhP55Q6Q+uSKIopC40uS7L5lHZ/hec+8jwff/55WrGiLDRhnNJbCm3WVhSjlLLrkhm7OB3KhmIlUUwrDm2BnGqmctc3J+/53cQeXzuTFjSLWoV8DwzyQC0i6NI4i0Lt1Q7cqsL+dPc7pf/untc4eefO/uoIbOV99c9T2xkX5x7lbrZ03xs3LmoryMMFuED14hbaVkCMwqiSeTojmSTgIkuqxncJDxY4LBjaDLKQpfIsh+VNNuVRC9KVldYy1yaMe5D3ZNqIcbZYd1/OYakdQ3URZIiBR1pXuJVdZTCtLKkOWG2UBT5utFJWGg43cPy0CdKm8Q34bBmDoZ1sEEpImvRYzNDyHZjqDCI2cagOSvYN3dSy6mN02OFOfpt5b0h36wl7/wSgoMwVBzePeP3r38aYHJGSbqfgue/+OBsXL9lwS6PZ2Fpx/bGskMZg+Mr1r3Jj/5BJvMNFU/CY+hzdsI3ogsEcWkFESxX08jEj6XJ9rDjX6pK9ekzrYhf6XuN0YXsLWq/77LNAK4Z/IlX8PvJgmG7lBWzcROPlVPtUXk/AQJYVxGlIt9shyzJbaassGA6GKFE8/+yzfO9nv4deq4UpM0QFhIEQRrFdxsaVQVSuSlQghiiyBb7jMGqA/T1mp0YfsQOhbrW7Zi1fJMSYuxr5PkT57uvRZM/uk2c3rkiOjXJ4nye838x64pmNWbTyKTdQfJ2I0nhF98RFPUifmAZM3R8fLml6TpusRgRyQasxk25Ga7hcDWYbW60aaiZ42mYwJGoZVdwmi6ckZduBsanA0mtF4gDZiFgtQeprVy0vtqZFDdV1n+yFXZQp6HfPkmHDDEu0X/uCRcdnw0FWFfLxa6f5Z7Jn8BOwNbnY4wIJubxymU7YIq/OWQ8WcY5BD9I2M8g53cyic8kHPACUeZ+3X3iDqDvhsWcu4nU8EMYHc17+8uvcees1OssBErfYurDFlWc+TdhZtiYuU1Cv4KyB0IGk7cufufhJxuUXmOqMV4ZXkbDDU53vg5kiCoVbB8e00g4rMYTzCfOoxY0i5UIScvTWmHQ1oHWpTSnzRp9p9PWmSUpcmFjV6O8+aB9osM9dLMwzJHPvWwoCod2OCaOQra1NojhiODpmOBzyqU99hu//7OdY7kQoKazJQKkqnCwIApdgYJcgjwNFO03opS3SMLQV8u/n4RfLULX8i5G27xh7xKu5LISSecA9eSvvZlp4X/dnvCnj/vdsGu1QcRMPys0jGnPnd2Zj/nCIMY38LXGZY+IdQIbWfBWTzxj3jqrYVaAebAu2KGXPp0JWw6cZlbdcZITbxzNOByriruPLkNoh20jqdQNEsOzXMmD/26C1YTnaZKt/iWExYqcY8MXrP1WzVq+RUAODwU6onqvaOOBF+PVONbv+V/1uz3c/wfo0s9+7etD23mvrdd0/VDWIHMf1DYefWHTe551fvsbKmZJzT2+g4hag0GWLm28N+dWf+iLf/pWvQmC4dTDizOUVHvv4RwhaPbQu0dpqhsYYG/Vj3MRh7Oox2mieXn+SP/TM76DXXubpC5f4vo9/hq3HIg6SOTMJ6S/3GM1GbM9jgiilLSURObd0ChJw/Z0Rt79xhJm75d4X6h8rquWdqs9+uzNbvUsc5QMBXW3qF1sBbyM4239fVawy9kai0NrPlpd7LC0v0+6kGFNy9uwWn/3MZ2jFsSUZ2qoWQRhUtlsURIGiFUV005ilTpt2khJ4eruo7Sz8nCQ9uvHjFUifxnsvgDE0Fa97XOce4m8nVEIg1pTgC5wLFnx9FpNUP+8+I5x8tPtd+V5nKbWhWY3Av7uS2pEmrq0CqFKhw+D+JPvDLOLTOj3v94s7mtq92Jmto3TOfGngXpgmiH2FWlOBsXd8lkXJwfEBiWkzD4Yeb09c16qtvt+J36lRMMees+K3rg/U0CjG8Gj6BNN8Qhko3ty7STdcaqi+ziTRmBk9pPr10uwL1u653YLllenNQ6ldCXiuEuKh0Cn9+d35jC3u6W2eWpo6lG9X75B2Pdkscefre6w9ErJ8sY8oQZcB80HK4dVjbr/2Fm9cP4BhxpuvH/DZ7/soj370eUsGTOEmpLKaAGziR4ktUONYurH3dKZzlt/9xG/n8098P6FKyDjisPWT5O0C0+mwsb6ClFMO51CikKJApGRXItIk4o3tEW98dY9itIQYG6cslZP55GQCdWgg3L08Uy0PJmTMzdBGjNdJ3e01Z97qNVQ3rgR6nRZJJEyWlzh7dgtMyXKnSxpHGK0pHVPw9XMFCJQQBwFpFBOq2v5WnbuhFtwLH8yJ7c3Y4rsHzd3Mzpw48f2Orb+vrU+B4OzMru2Ms2s1CGXdRu9Tmkx2wdssVf9o7GB/eZUQFlRi5V+Uksq0qZ2e6CMZwuihRF0HeM4R5FR8QdDzOZKEGAJak1Um/QPy1RnhcZt5cgxRQjyNPXOo7AYzlZKlCWkAc3NAQgcq7z61+cCykAq0qzXMXHytPZ2pTKPio1rQVcnH1XCFft5js7WFSQ653H3esxt8nKlpXKtW9A1mwblmxVS53Kq6B/9vEYZcX23zZCa8nBoXkVE7zupqZU235N2jQJcpuy8cES4P6J5bsslAsxapdJmMtjEq5GsvvsHxwSGray3+lT/ym1i9cM4RHk2dAu8GtLFLxIu4NH5XU6I54JeTVURKtCk4Hu0wvTnhrfk/5vHNH0Ilq3SSFtPBgGsHY86sdkkRTKfHcD6i0+vw6p0jtNpl65ENljeGGFVYaK9prwvTq92yFn8/4Iw07eyD7wYXdfB042aU0IkDQhOytbZKFCg2Vlfo93q0khgwVXZWENqyi0opWmFIKwpoxgt+Jxj1LyqNeeXXcKwQBgHzIsdoXWV32QFjqogGz4B/rWLu8xloDBgrvji54MjPXaaOpvroPz1kwOtMJs2qah54VRQyK/c5lCPayRpR1mLSHtBe0ZiyZCbHzEMIyhAKMKVBmZi5OSIMFcPpnFaa0OuWjIa1ScGVlEEaNmGLHeIWi7T3YaMO7L2Im9GbjjSfbPpEeoWJHLMWZiRhl8qz6dQUb72tgBEqLUqbmtF67t5cjFy763mHbxEorhYjzpo2N33khn8AvG1Xqvv2+O9F6xZ735pTyDZbj23QStYpxjFmNuRwdJvpNEPKfYoCPvfxLk985lMsnz/rakkbq+Ibja6SmMX9HzhfjTNxeI0FhaZkng+5c3CN23vXKOYFcWuV9W7JhXMT5uYsh/sxURix3OpwY2+XtSAmK0a2zkMSs7K5yvZcMLtzVte6aHW0AK4Vga8e1puP7o8IDywjrVJJK0eBY1pUgSsVa/SpqGIgVKCjgG7aIloNWFtZIQoClLiOYCAMg0pNi4KAJLbUv2mPvReoc88tbvsJJnzXflL15ervkx3rOwVeHyamlDPC+6I3eIOCvZBvz/td4C47tDnxyivWbJp/1g/iiYNjRKU2lH6UY5mvMmohYgMsQ68H68MmLvFDe5WRuhOogJRNVnTMKNtlWEzRM8U4uEMcLyFhiLiCLqVkmGBm+5uek2ihTCckZUjn6lXKlc8xUc1BajCuuA2mNm1Zo4BX2+248MnHtgRPzVZ9jYSUmOloTgcNukTE9iNft8GONZ/iKigx1Tv2b1FTT+z4+6K6iG0nx+bHccLm0Zy0EzKL7XP4fLnG3dmzG8tAFQodPMZ8r2D/4Bf56OcfJQlXSegwC0bcvL3NeLxPry8k6yu0FFx67AzLZ8+jtV9518XsGvd8CD6WXCEcjO5QzGB1dYko7KIpGM52eOvWK+xvX6edpETdZTq9Llm5z/Pnv58wXqEtA9pRi9G8zXgSEyaKWI955EoXI3Om4ymlTjEkRMGMPJhTvTTj7bx+KvO9yt/jB8x0KwyovPvu1hrJCFXhF5/W4QaBUrgFGYU4DAjFrgVWFjlBYMsflqUmQJFEEe04bITg1Nc4cSfvSsTutSR5dVgDhbUfm/d62H8BoqcExFXrKgpDEltDqTeFWeeW9+3eh1Y3bszgTAD4kO3a0udFN2xSHop9eTolysWTuhMbFo5fcNzT7HIPm9R5W3BCYxFoBSuk9CnMmMl8j8PyKkN1g1bcIcnmTJMWWZGhizkGCEpNy3RpqzOEwTr7acyFGwfcuLhK0fR2u4voaps3IfjvHNvEVgPzpgBlas7qFcmV+CxMMkTVKnVpDNODCe01F0HhQsj8Mdroqgh+09TnTRJUIOyZiP8tvNMTnjo0vLxeZyvWmo4hyAVTTtFpGwmfod05w7UbY+7ceYtnP/lxVB4zm83ZG7zDKLvGsNjjzKNnCFWbWy9d5eln+iz3tzAVY20StdpI4sHuODvmn3z5ZyhmMzrtNpublxiOjynmByx1O6xdWKGbtgiNcKb3OPv5FkWZERhb7jWJx8TJmNUlhdkyqCBFJMfQobPk76HAV2ezZM/jgqrux05Bgi0N+u6w+uCSI5xadNdm0wCy5q7uk1iFAaUEE9rlU3zsoeCLQgmhGNpuSZw63ORf4HbvChEz1f3aK97j/L8OWCNYZ5QSsfZqvzxPYF/NvfB1kdmeVOWsh7rA2si9CmQWjlg8usnyq1VlnepRsWNT23yRRQB/GMXGxTbawo3vRf1CECVEpsty1KMXXWQ/f5mJ7GCyEVOdoQhYjrZIsiWSeIVOuIGv45XHcDPM2bg1YPdcj1KZiheCa2vjV4uogda/h8o+6tByNh4SdxPERATizHgSEKuAuSMcCmiVAUfDQ9prLURcqRsD5bRABRoVR1U5R6uZa1fNzNslaSrQ1OFQmiII2ElKNiYl2x1bFa2cGoI4tKn6BwHzVsBYPUGW97h94za3blzj4PYbfPTc8xT5kN39O4zGdzjqXaOMDeXOMe1uyLkzZ9h67lHCWYGRkOl4h1ZnBbCrw9aV0zSZzrm+f51f+vqXKWYTJAQzmZDdfJ3NrS5rZ9bodgypBGyml2knZxGJOBuvgynwtngjPs7aODOFHQ92VQzfO+oxZkS7TlKp73UtXReD0pzI7yUPxrxg6tfWDCxf6OBQ2UK8Q8NtsmprECBKoTToInexeb47G5IoqiMTqMH8fuFL77V2WPN7afxbfWywyPct92GkJ29RVWaFwg64BujbjtE8pQPB5raGvbdyzuBNBvU+J27D+riNdaxY1iLVeT3jadp6fZNoLJtaNMU8XGxXsGxfSV1Qxpu4KjXZN5KHIIlYTT7CmBGztMVF9SjKKGbRlLZqkQRnQNccURDKNGZnzbB5bcBwI2Qax5SBTWlol12MKRirccNE48KxTP2uva9C9JRZuc3W0hWYZGAU02vv8OWX30H1bvGJT3+G4HjCkQlZu/AYURCBj2nVmvnhHsGygtCWFC2lRBubH6fcu7eER6FLGI0ElRaAXRAgjBUiJXtLAU9cG3GUdJmHCiLD7HjCO28ds1r02fzIFmudLtnwBm+/9AvM85SiKHn55a8RpUJ3NeLMhbOEgxl3Om8zlZLl7lmIOhzdPiYwO9w5HPH2tZsEURuCkF4Hrqw8yeraWRDFP/3ST3Fjb4ckES5e7LG8lCJJj1m+S6td0FWKs+lFesljKBVV4wEUSsWun9fUwVR240avdkjbSI525SsbWCOur/jO443dH7QjzXcfX5HSLyftMbhSVxsZHR5sbKUkMCqwtimtKXUJElSl95RAFEW2MdyIMe48TbbixTb4+4PLe0FHkwkunOU9TnnyXKZxMt04vnQDPfQI4O7XiKGkBFTDTnfva1dWXPcrwMaeNqukLQJwY50zGnbjqiC5VLGsWjxAN9RbHEg3HKYPlRg/lLwnnor5ivikgXp3X0hGRJC5cC58nkhaCEK71Bzmu7x0/Mt8/NxHaU07SGEjUGbDGaPRMdu3j7i4LfDIKrER2vMeT92eU5QFe+dSrl7KUL4AkgqIgxBREVEQg9aUhOjeZWblTbJBSre7zmAw5sbBbYYDw8tfep2LrS5HB/scTzUXHn+WpdUlWp0uqiwxuqS7cgatC/RoThT1mI5GlPMpaatvF0Atc/uudQgSwd4R145m3L7+NmMVcmajzTNPLGGWFDe22px745jbj60xCyFcSbl4XhNO23zXo08wGk3RK20+/T2f5M1dzbffuIMEr3H+macwJgQp2eg9ypq5Qq4Lboe36RYxZn2H4ljTMSkXLy0xn0M+L0njgFF2nen+NcIwZX0zZu38eXSQ0W61mObHRGpAL4wAeGTto6TBBsYE+DBADdY3ROA0DJfi7QmXMSwkvuCBFerMw4YmSAXFtUoJaFMi77IM7wMKGVM1yFL/lhOeqAZ7dyqV3Y4xrsiHUBoPCxAohV+HzF6Hu8a7mLrG03e+Mm4DmO4+9XfGct3+J4+pJqSFLwQVKLvCRMWqLBCUrkJfw691Dzk5HcjCpuaqtn6BSY2retU0nJjGqYyxoI2LWXYPY79qBPI/pHYGr4tVeo1j+l4x8xl6vu6XPUYQrTgTPk1Eq1ZGgoibd27zC2/+LD0d8WR0hjjcgiwnGk+4+a03+Nbr17mwcZaNWLiwtcF4/yrR5mVWzp0l6S1xdnUZJbYg/3QyYT6bkRUleweHzLMpeTand8bw2i+/StJZ48z6Ea+++Y7tGKttwg3Fz3z1JS5sppgw5vWrX0eua/LSIGFCHMaEKkAFEfncPnM3TQkUaLNDO4CD/QPSdsrRZM44A4KQ116/hZ6O+f+z999BviVZfh/2OZnX/HzZ5/u1927Mzs6sAXYXllySIEBvFQBoJJIhKqgQKSooioKCAsmQGIIoUQGIDAZBkaAIMgjQCpbYBbGLncWO35npmWn3TD9fvn7muszUH5l5763q1697d7anZ7h1uutV/X7X5c2b95vnfI/JYr7iqU89idy2fPOvfI+nX/00wiHjN0cc2YaL2xnPnrtMvvU4t967QWUcb33328g79zDrayz2DM/9zKs0OiY2iFemgJvyFoe2ZNho9sp7XBg8xsb0HNPFGvXigOH6Bg84QNsUJyVOLOPBOermCMGQ2pLJbAtshZOMcnVMkozxjjeDOOX9MdFn4eHXl8FsITDE+bru3XF0YX20Nl98Gbs3J4bl+dWkH/bWn5SPBXRN8Ai3ccThe0X0kXIy46pHP/h+8c4cF/5GPLfW3n5IGnif2tlz1EVzQk58H42+3jH9BsRvet7/flHr91EOJ2D54UEi/e9aB0hrsvRolXBP1jmf/GGsJ7CNo8tae/h5/RdhSJyw+fsHuJZu6IZFFzXSL18Yt1vXLVbigiocPeudlvsjKtE6ItJb0r6UJ9PT+8/V4RpDqqe9rnVYY3jlwqfQoljef4+7r14mU3uMzYhsbYtnL2+y/dkXMAvDxniT+nDBztGSg/Qe2/oi9f4D9t/6dWpXQD3H2QqLxdmGfJRjMeys7nNVX+DykxsobVgu3uOF17Z8oXt9kZ/6XZ9uIxG6wpK+sI0jZpFZxFhuffMev/BXv461JXVdcunSmFd/8jnGTw+ZTMeM3QTR3kq6+MyAw/sP2Lt3wI2DPQpTsrs4ZH1xyI39I44Odnnq8jbzXUP2mSG/8tf/GkfFEntvh9WdA37Hbcs3nt3F5k9jv3ED9fpVjJjWkX6Q7LMw74Ha5q3Dr7CuzqHTBEFYn1zBja8AoG3Goj5gJYaiKbDNISM9Yl2fZ00ukw3XsDgW9pD78haFPWDExGuz0tWoaJ+6uBNvfSzX6D8GB2OkScWG43uJHgF0nXRRGz7WWbcT9gfJx+RICw/dSevxj/GFCugvCBhBKIJj1Oa0dYFmUIjyCzjGDkASuphAONGfdHGHJy4iEeBcRzO7fvpiT6R/yg/ovNNf9yaOD9Ju407uxDYJ84UmGQyoq5raOiyGDBBR1MZ67zTdJGBPPFTp3bvr1Zjw22JaqQuUw4nQugCscSyZeKoQV2qDVtKONRez9Vy7zFDHg/4oiW3B1i+lE0Vaa8M7lnpHWOfXhLMxOL7bqpTiua1X+NU7X+Q7d+fo9JCnJy/x7OgPkaXrjIaa1WrF3r2bPDi4zfDGLapf/TJ7f/a/YWNZMPr9L5P8zBfQah1USAoWbzG+u3uDo6ZmNt4EnWKdZTSb9a7etOpESBTuvfMegpUCQeMSoSFjO4H1l67w6Z96iWw6walYrMYGy8azzONNuPDMeZyzLPaPufPWA0a5Y6c44P684tqNm2wMluzWlltHO2w+ucZjL11BDvcZuku8e/Rtdqevk+Xr3Pr1b/Lk1hrNlTGOhmyQ887y1xgN1inqErvcQ0bnGQwmQByHgBMG6hyD9ALWLZgne9wzDef0jM3xpwkEJgpY0xNE4GBxnfH0MljBSYIKkefRmjkR+AxtyOQJYA3joYvLbcsLhfb1ndBeC45Ki8hpFOjk46EXIk0ivRhIidDqzQvrpwqi5hkzm0MmXUxWbAe3dy548FgVJU3jGOQ54e7pB/CHy/WeGr0tft/+yr+9UrVhs5zc9khxJ3/JSVBt9+p9KYQBHicn8Y9zlOWsUNRVhTgC2Fqc9Q6OaD341yc4Kl2kWSJ9IB0tG6eA1rEZNNio3cVKVNERFzXYts1Rs+1ohC51W3BOtdt/1KQNputptdKr6hblZGxz390V/nWhAoET7u79OgsM55qEZ9f+di5MfgerJdy+c49ycQ9nDhmNE5556TLDL32V6lvvkGqhfHqT+TNX2U4HEDRTf3oLovne/Hs8lj0GcaXalnzvzOEuBDNOoIHFDL6BONNuHGlmw4zH/uhPI2vrIQTWW1c2FL1xREAJ4ys8/HPnNhmvT8FpiiNh8M3rlMU+d0zNy5++yvSxc4zPjchWexxs3GJej9GqoXjzbcr1AxaLe9T3z+GujHFOURYVAzUlT8bsFvts5DNcswzxxnQDq6dVKhkxkyH1oGasJ9iYXecEF1bNmCWXMWqFVcdot96O6Kj1xpPGxJ/wGvlB0C6/TgciDjytEIaK64+RyEV4FHNhnbtH5cZ/PKDbq4ZnVcsQtLZv95JK+D/wJWGwqOBN9zVew8MPxV6tdSxWS6xdMZvNyCLwBiCJgNvCZuygHrD21f8Yx9rXDqNDUlwsYdEdy4nP4Rytti6tJvh+cSf+itwqxPdBSETQKqGkoWpqUi1QW7TWWO2XYHcodEvdnMx8ce970HEa7vrduG7NrUhvdOfpOim2L66y3H8JnI30gv+++REEXeiIJs/EddaRuBiT3Yfck7NpXKhSBJTKGI7WuDr6FE8/+fPUi4T5wQ5vXf8yqBXDyYCN7SlpdgEbHHLFP/GHUL/zU1TFHPviM2znA3w6bW/VAvEv8u7yLs8kl9oZ3QXA9f/7hzMYDiiKkhhP6nrPXjmLQrF+f87ageXac1O0Tn1YlPVgbQKAd8fHMRBdUMLKNKTDexxce5Gjd95kNr7Aucu3ufqaZvqYoOWQ3YM3GKjHaF64xF33HrODhNGDQzg8YHgu52s3bvPSZ66Gd8UxlG0ae8wsGaHsgadFuymRCGrxOfjCP4pNLiPlChkqusJBkX/XrI+eJav3MBKAsP9uSC/BIn5u34F+vlk3yUZ/VGclhn1cHEfd+ToUerh8PNELnrWO4B8A1yHWDyRD1CK7kKQ20KYlFv1DsQg2rIemk5TJeMhoMMI5R9M0oBQqTSFkTAld0ZDTYNpqo+327oHGWb3tu5Anr6IW7YKh1pvF/Esq4YF3oNUHedcDvK4djlhryAHO2pB26bnrxglV1ZAqS5Ym6MaRakjTBOUsBjyXJwp5xMNtQ12Cxh+v0WqzrSfyVH84wVlvdsdM+xMhHD6sxNeedb+RWsQ/PBJDpDzAhhKa0aqKioCEAuIxHbCXPSFKk+oB65Nz6Hyd2qTcfy9h5+73EHPMZKI4f2UDlW77A5wLxd6tL2Kuwb74NN2DCPHZ+PciPlaHYFSJSyfRTsRZhaVBq7jEjuPOcpfvHH6PVzdeZqQyxEZayTEgZfZglzKx7F6a0QSKpEuN6KDGW5VRi3a0q9+KwxgwRwnFg3tsbm2yf/A2L/1uzWw0wjyoufbNd7n6hZdJk/OgphSb32L0j7zO4/sJNtFMnrvItgo2mngtPEtTsmyD5fyY23tHPHVh3DqR/WXjS9l/hxw6HUAyDudq4bgDVKBWmygrwfclPS1X062b0vUh9CerkxDcKm+hXR0jLP0vARXu7QcMum0MWM9U7bT63s0Fsyimw8oJgIpOAZhXFTv799lcX2e1FIaDnGK1YjD0RYnFCEonKCQsKintO9K+Sz30bWEmKtd4DTryeKan1bRarNACcFAu6Go9SPxEy49ErrOHth28SWemg1+JwXkHZGUtB/OC48NDHty5xcb6BsM8YWN9jel4Ck2NMpbxbEbhKgbDQRyT74Pf1lQMvK0hlvZzoTB51zLXO8iFuHAbNN3QA2E7bdhevxTsj5pEhq6rwCcdECOUNSTisGG580QlaJ2TpAOwmmJVY0t4b3+f3b23WC3uUqn7PPvk82TZRT+xOesBrM3hdnTJED39LZoSIWuse5aWvfKIhTmiyv1iOlXjuP7eG2xsj9mcXA6Tg7BXLPjLb/wNvph9jXPTK2yNZmwNpsyyEZcNHGwYXjj3Etd29sEldMGCbWmc0L4IvNCvxhApOJuP0M7yi19+mzx7i898bpv9B3eY3dvkyouvk+hNrIM0mZDrGfv6e4wvPsbGxksUxQHjHIy72I6nYZpyZBuO7q44PHYkFzpyLD6n1nFOp2SE0kRBqfFFojx89CIIBJwOioTq4lCEDmR9/wuESUAQXy3N0YYJ+o7qwDUqLWH9EAhtpO0z1TozHyYfz8oRqnNQtb+Vj1yLL2lQvoikoOpUDZSAMb6TtIJFaXnn+j2KBhLVUK1WvHf7PZ5+6mkS7XjisYusr019ZUuh1Vp83G+n9bboBG195dhX3gSJXdw9EhfaGGOC++3uwqY706LjOGPIVfsFLe+KB8CocRvrqZTaWKyxzMYjmtUc5QyJWI73D7C15cHOgtViwXg84LyB6ShjNAjLfj9kYo38noh02qgNjrMwkxOANUYlRLEthwsxagGcjyI54dE/abn9qIhWvsZFVPZtZRmkOQf7JceLivt3D0ltyXRtjcFoRGUaVos9juYLjvf32Lv2JjopefWnPsNsc0qZ3GU0SEizcYjBjtqRfzVpJ9lA20hcDj1QBi3ghp4Nz+2bd79MluQsbQ1Y3r75JYrRDQxPsM4ljuuCt4/v8he/+wuIgtoVHC5usFdobqYJTdWQOeFnrr6MPneXWlXkrLegFePFhVhytUd7tVo+oIQyOWC+2OHmzRHvXrvBZ3//gvm8YD15HHnyBdJkEO5IsE7Y3n6Vu+WvIMlt9osHpPoQtxKGg88jXMUCo2xMUdfcv3GXTClSNQwX772ghH6RCHWBkJQIxaqrLtapecQgfum914ifDFsOsZ1WejjhogXsl0jq/DrdtogsLaXhHOAd/Kd9RKfl46m9EDnHqIEJiPKDTIW2x+0K9b6uAl8b1zlH7RzT0ZirTzyLKBiP1hnP1hlvbDCbjElcw2wyJgtgeyKzLNAU9LqnlbjuXfjY9qt0c0H7fQTUE/HO3XXeN6e5nuZILzHQdVfs166NAEfq13eyOC5Or/LKU1dC/3X7dsFm0p7ZxInktEdLaItjg0OcJQlHNWHfGLkQ+dt4nu7FI3C6YWCaoEHYk8f8qMk3v7FHYRzLvX22zq8znmySuhU33n2Xu3eu8+Bwn/EgYXsjYzTOGY5GpDjuvnOHN2/c5+L5Kb//7/rdzLYu8Nf/2q9xsP3X+bGnfp522XUXrYOY+Bs6ko6haSdnaB+Cky4H0Dnh6uwxvnPvq5SrXVh7lmzrkFoLx+Uuf+XaX+Kda9c4MBV24hgPUgZZSjkvKBtH0gx5cXqVz1x+nWw6Y1EvGNqc++UNzg8f7yXouNYCapWOdtUHi2hYuRss7S758lU2z4/48R/fZeupXab2RfLxC3gocb2xbxgNL3Ele5YqueFrRqsr1E3NQt5C2UNG8jylqpmucjJZMtCKRIZRdwyNC4HqrY7rR390xCssSL8EfP+4zjrzdIF47rblZ0PBmtaZ5nrPwXFCc2w5/PA8o2Xeo4II9+2v88HQ+rGmAcf2+i9pOYYOMDpHVQe6nQHhANGOy9tDrmw9iYrOLxFsACIlrtOg+9ejPSH9XokE/slvT/bvyf07sR+AL3LqUwTG9+/48BNY6e7f0QeymCjRdxL2AbztpQ9oV68tcTKxvb9jk4L3t2um3+or9HcOs76V0ILx6Y0/IvI//KVfRBSc31rn7TffZGMr57knt3jq2U1e+czrpHlOlg9A6W4CNQZ19De5/c5Nfu6nfjc/s7uJ7O7hHr/IrenvZKJHiLOhvxw41a6pFpeS8Uuq9x11ru1fbwVGq8hDy5Nrz3LhYJuq2sWKI5nk2KNDRtmE2dixtWXYatb4rttj2RjEGH7GrLO2/SRXHnuVTA9xIjRS01hLKgNWy5Lb9hoXx08AXXtbJ1ocW86R5I4ivYcrj2E+4fi7DfP5fdYvV2wMX2SUv4hzwaR33Tj2osj1pxjpKcPRHRpb0yTrzIsSZ48pq2+h5hvkFGyMUlYGMpf3iv6cHFMOCfVEoqIWgTEsodRHjjYN14NyWPM4AK20AIyYOCUSpx3XOtpcF8PetkFF8w9aBIsbO6B2p3qiLx/7asCu7cAgcupz+LKzDkIChRA6RoekChUrzSECOpq7p8H9A0T6yP7oPR++40Ms+Ieern+rH9Qo1w/Miod1s1NX/wCcKE5U3n/fueXEhPbBcrKf2oQLnLdCBL9AZk/bbQdxQGfnOjD2lEMPkH/E5Gd+52XWZ+s0jWU0G3PuwhbD0SToVY6mjd5wPc4VXvi9P8GTz1/ip+9tsnnj13Fjw+8y9/j67/w59gd5Sy145cmFNR5DckL/VXSxvkLsvz5d1X6JAl5d+xxvH32bJi2oljtk4/MIwsiNeOnSS8ySc/wY8Ks3v85Pjy9zKTmHu+zrQjhnPX9vE4zxuViPbTzNf//GX+Dzzw3ZzrY9VriopXaVxtKRUGe72KbhuDpmUD3Jleee4Gtf+QZNtmCYvkS3Emvn64+WYlQI6vo51Gqd0fodtFpQ2RJsQVUVZHcOqEcpx6uKPMvI1JjoN/HvXGfOd3IqTlpiZH4c0cGh1jrVXEsTtlSh+EQGFybBbsaI9xMnkdaePPWahf1aPIt0gzvltHu/fGxrpPVN1LY/4qyEwrpwMw/BpTZIJZgPItZ3IhaFL0vn6YnfqHYVgUc+8Cfud4Iikd4t0BEGKsy5qqexx3Z9WNtc78dPJGGQSMdLK/GPUoe/P/CM4cHH4/vX7+4tarXh6mG8dAxZ5OK7cygFOpFQ2c231lfc6zhga0Oq8o+YfOYLX+Dpl1/g+U+9zGNPPUE2Ggf+PWh+1rU/9DR6UZrR5atcv/4dbCrIxSdROw+48st/Hj8BRm0RPAyZFoxiMFh80S2uG08BECSAsXW2dcQ+Pn6Ko9U+91bfRrI1Ej1BlGKYj2gSx77Z44npi/zPnvjbuDy4gFx8FrEKa33NXovBlkuWx0vE+eWhXj7/Cv/t1/4Kd4oHAeM6zQ4gHeQ0+Yrjcs7x/AFZCZfSp5lOZ6SDFefXtxDyXnp4nIjjxC34sAKFYKjKTZb7z6KYkqcjxgmM9BWGa5/GudfZP3AkNiPNp/44CccDkZjsxnCPMkM66yCMUb9LAMIw2bWxzX0wDMv62DaSAbocTPyTceBCvJVEBYeuXd11wzVdgvsQWJWPI5Xz20e+zIqI9w5LAJVEAu3sOiBLemDSRTH42gtiOzrB0ydxhns/4H4Y/PZjeE/Lw/qgq/T1Qf3zsLMF5rM/Dn6D8tClgB5yzT69YE/s9/C7bP3TYTI0IRa6z+kCGGdxVnXnd3iKAR9d0dIN8TwhY+0nrvwoutPO5Ex+8PKxaLrvB7GgJRFeculA4qELPZ6yWaUHYj/s+f5tMgc9LTnO0N+XPPwEJ4K8P6J0oUon2xrPd1pbPr1f34pRj1TBz+RMzuS0fHzJETEJpIefsdhv947GsKq4b+C0eo4kX0y4f8wH6as/KOlf+/0TgJIeW/v98p3S3bfrn7TfgsBR9aPSTm/3G3qnjVq/SC/YNuxzgtMNX4dg+hPtkJB9505XTDuTMzmTR8nH5Ejrv7herVVJB0bdIhcdReJw6Hhc+IkUekxSO1nn8rdCewyt/cgnioD/wbRDx/t0u/9GlPN+Wx5JNATQi+Eu/bCyk/t19IGLDogevaNUzxnWu4RS8oFWiIO2Tm+0Xs7kTM7ko8nHQi/opCOjYxHgvie4X8XHO2NOqoSRa4wr2TtrPwjjfqilz5V+rBd5pMiJyclaF6pJxeNPVyzrn7rnwQ8798/lgqPnUdk3Z3ImZ3JSPhZNN02EugHv/YvabgwujtqstP/6z3TgHN/snjYVNd/vV7v9zS7n8xuRfpWy9znVQvTARwXjD+Wwe6Ffpy7SO0f8qtcu10Vi9CkRzzgEGijch7VdgZBYljPy1NYJ+kzVPZMz+cjy8YAu0PQDY10I7mjDmPzX3UIpficPyvGYh8YZEDNBHlXo5VHS4vlHVs4+6Dof8fo9yrRzHn7ES79vR3nfJsFnm5sWdj+gXS5w6tFJFsKgejRu21gFWNPPvOlRFIFXCAud4JAzTvdMzuQ3IB9bcoQjlPRVDkKucweUp0tOQBvrh0NUr8rQKfO41Uh/007zoGF/JK71+wRc3g+43790Z+wXC/qwZgmgexNZVE4fltEWQ/2cjf0dCsMYe3LfQD34ifKD14Q6kzM5k04+1oUpIZihvTVkupxqD70eVvsEwkOwo4cL3oHWOdza6/wm2vkbYRS6kKlTpvtD/jqZyHz6RPR64DcvMSPnRPGZvgPvxL7C6RkuHv/wxBl3oo3OhaQIfOlJbKfxnkXnnsmZ/Mbk49F0g4PFibTFgWOmVXyZJZixWlybgtimL5zmCONx7v2g9/01sneB7/NMpwIWWrG9neI2kd6iu79pEeKaXqcjDz5MwuMh1luNJeochKqc0qZcdyW1e8f345AdPkTwTM7kTD6SfEya7mnnmf8+psvG0uWemz1Zxf2E2f/Qd9mf29oPzk77oDZ9gB79g5EAUBDvr9NQf1OrFj+M743esQ+4fndwpym3mx8WE9yGl3V6b9RwfSqmC4muZ6B7JmfyUeVj03Tje6skcrL9Wuuu43Cj+uc4yU9Cq3nF0Nf3aXQRPH5LgnY/2GkFoW2n9pITfz8M0vuFfOg09pZW+RDpz0AtRdDrnzYV+HT5nA+XPmafphIeNTGJ8mp6G2bmPjjk7EzO5EzeLx9PEXPpM7eupQUctEuk+KLaD3+5u1qVvkaAcuEAiQ66Psid5IM/SPrBFA+54um9P3Qv+YC/P6qcrJn08KZ5wG4LAPb10pOcbjvx/Mba0F+9wn/ulcfrR13ED32glo4PPuN1z+RMPrp8LAVvzuRMzuRMzuTh8rGVdjyTMzmTMzmT98sZ6J7JmZzJmfwA5Qx0z+RMzuRMfoByBrpnciZnciY/QDkD3TM5kzP5oRMReVJEnIh87Os4/qDlDHTP5EzO5Ex+gHIGumdyJj8C8j9Fje+3q5yB7pmcyScoIvJZEfmqiByLyH8hIn9WRP7PIvJzIvKeiPzLInIX+A9FRInI/05E3haRXRH5z0Vks3eunxCRvykiByLydRH5ud62XxSRf11Efjlc6y+LyPaHtC2a+H9URG6KyL6I/DMi8uMi8o1wnX+3t/8zIvLXQtt2ROTPiMh6b/s1EfmXwrELEfkPROSCiPyF0Ka/KiIbp5rxT4jIbRG5IyL/Yu9cnxeRXwltuCMi/66IZL/pB/EDlDPQPZMz+YQkgMSfB/40sAn8f4G/p7fLxfD9E8D/HPjngT8E/CxwGdgH/l/hXFeA/x74P4dj/kXgvxSRc73z/aPAHwXOA1nY56PIF4DngH8I+L8D/3vg9wKvAP+giPxsvCXg3wxtewm4CvyxU+f6+4DfBzwP/AHgLwD/CnAOj0f/q1P7/65w7d8P/Msi8nvD9wb4XwPbwE8Cvwf45z7i/XyyEld6Pfs5+zn7+cH+AD8D3CJkhobvfgkPnD8HVMCgt+0N4Pf0Pl8Canw6/78M/Menzv+XgD8c/v5F4F/tbfvngL/4Ie17Ep/8faX33S7wD/U+/5fAv/ABx/8h4Ku9z9eAf+zUsX+y9/mfB/6rU9d+sbf9/wL8Bx9wrX8B+POf9DP9KD//k9R0ReSPiMgvPWL7XxCRP/yDbNOZnMlD5DJwywXUCHKz9/cD51zR+/wE8OeDSX2AB2EDXAjb/oG4LWz/HXhgjnK39/cSmHzEdt7r/b16yOcJQKAK/jMRuSUiR8B/gtdEf8Pn6km/P67j+wwReV5E/jsRuRuu9W885Fo/lPI/SdD9MHHO/bxz7j/6pNtxJr/t5Q5wRU7W9rza+/t0YZSbwM8759Z7PwPn3K2w7T8+tW3snPu3PuZ76Mu/Edr8mnNuBvzjfP+1VPv98ThwO/z9J4HvAM+Fa/0rvwXX+oHIb0vQPZMz+SGRX8Frqv9LEUlE5A8Cn3/E/n8K+OMi8gSAiJwLx4DXKv+AiPxtIqJFZBCccY99rHdwUqbAHDgMHPO/9Ftwzv+DiIxE5BU8H/1ne9c6AuYi8iLwz/4WXOsHIj/yoCsiV0Xkz4nIg+A17XtT/+3gcX1XRH6+9/0visg/Ff7+I8Gj+yeCWfaOiPxU+P6miNzvUxEi8qdF5E+JyF8JHte/Hl+CsP3fCccdiciXReR39rb9seBx/v+EY78lIp8L2/4hEZn3fkoR+cWwLQ/3ckNE7oXrD3vn/btE5Guh/X9TRF7/mLr7TH4LxTlXAX8v8E8CB3jN8L8Dyg845N8B/hvgL4vIMfBFvJML59xN4A/iNb4HeM33X+IH+47/n4DPAod4p96f+y04518H3gL+B+Dfds795fD9v4h3DB4D/z4dGP/wyydNKn8/P/jVEL8O/AlgDAzwPNYfwTsY/umwzz+LN0tiKctfBP6p8PcfARr8LKrxTowbeK9wjveaHgOTsP+fDp9/Jmz/d4Bf6rXpHwe28M6N/w2eRxuEbX8MKIC/I1zr3wS++JD7muH5uv9F+Pwn8C/bJn6G/2+BfzNs+wxwH//yaeAP4x0W+Sf9fM5+flNj+leBP/pJt+Ps52N8xp90A76vxvtQkQdAcur7PwK81fs8wnNNF8Pn06D7Zm/f18K+F3rf7QKfDn//aeA/622b4E3Eqx/Qxn3gU+HvPwb81d62l4HVqf0VXtv5k+GzAAvgmVP3/W74+08C//qpc3wX+NlP+vmc/XykMfyz+NCwJEyYK+DSJ92us5+P7+dHPcvlKnDdOdc8ZFvrqXXOLYOv4oO8tac9qDjnHuVVbT2qzrm5iOzhvao3QwD3Pxk+O7zW2veqnvYgD0Qk6d3DH8drszFe8Rx+0vhyz98idGuePwH8YRH553vnzcL1z+SHX14A/nO8pfYO8Pc75+78oC4uIv8Y8P9+yKbrzrlXflDt+O0kP+qgexN4/BRo/SCk9aiKyARv9t8O/O3/Fh+o/S3nnBWRfT6iV1VE/mHgHwF+3DlXh6938KD/ivNe6tNyE/jjzrk//pu+mzP5xMQ59+8B/94neP0/A/yZT+r6vx3lR92R9rfwYTf/loiMg8f2p38A1/07ROR3hIyifx3Py97Ea6gNgfIQkX8Nr+l+qIjIZ4D/J/CHnHMP4vfOL1z27wN/QkTOh32viMjfFnb594F/RkS+IF7GIvJ3isj0t+hez+RMzuS3UH6kNV3nnBGRPwD8P/DOLwf8p8BXPuZL/6fA/xHPrX4F7zwDnwH0F4Hv4XnYP8HJ4O5HyR8ENoBf6tEIf8M59/P4bKN/Dfii+Hz5W3gu9y85574kIv808O/i0yVX+Kym//H7ucHfLvKFv/cJF/tb2tVLXfgMIgqRBFEapVKUTlBKo5SifU5OwEl7vHPhePxqzp7LA2sNuP6C9Q3GGvy8CifbEcW1i0KLSLvNn9P29jNhbwdYwCLicOFv5ywu/nYGsFhncM5gncHaBmst7eqxp0SpTj+L9xfbFkUERJ0MLfZ96NvtxIXeVSilEUlROkVJEj6Lb7dyCIKI7voirhr+vja0V2ovKJKiRaMlQWsdflS7mKtf1FahXLe4qkNwToVnqdrvcA6Hafu0PaA3Rron5fv7v/gTX3+kZXu2MOVvUETkTwPvOef+1U+6LWfy/cvn/57HXR/k/J/Og4xSiGi0SlAqQYlGdNICbguSCBKMxvZ9isDVc1ZH8BNn28/GNAEYXa8NJ9ea7oNxXCHag4E/RzdZhBWdpQNexJ/bWg+wfeBtQdcarK39ZxPPc7IdJ9vEqfbG337V6NNAHG4j/oMTQakEVBIAN0GkP5HZtn/7/RyB92GYFb8SpQAPuIlKSZIErVU7afg+fBjoKlyYPDsCoPfc2smsf+2Tkw7isFj+i//bo0H3R1rTPZMz+X7FA55/myX+FoUojSiFBMAVNIgK4KoAwYn0jgzanHO9c3kwcM4h1uGcYBEc4rVQ639zGkQcQWMLZ5KeltYDIIdDpK+BglIRbAXnNCIO6wxKCc5J0HiNb7sTrBVQDue018Ll/c3x53YPAd7QkBbwJXxyfYz12q2L7RWUbzw4D2dYG9oHEO/VtX3p4n1/gH7YgXDYRx7yPaBUr0Fdq9vtvs0OnAd9R9Re/TN6/+1Lu8dvJBfuDHTP5Le1OOdVM0GBKBBBaY0kGiWCoAPoBS1MKZwITkn7YgqCEuX1J6WCduvPH0FMiRCVUBNQyJ/PYq3mNKJEgPBA56918js4ARutBijtjwtqnCKyBuK1XSdYZ9rz4lyANh1M6e58J+mMk8Dbbetrtx74nHjgdc4rj5bePsEKcNZ5wMdTJdaCepiXqafdxsns4RNA2Pn0N9L1Y7uL6/ovzgCur1HH78O+cQL0X3S0jnPOP9SWavqAZvXkDHR/g+Kc+yOfdBvO5LdSPIcnygOr0hqlNaBQBLBFBzNX4QRECagI1gHgIhy0//i3VQgmbTTXnQd4az3HKlajVA9UWg60a18EfI/5qscrEgAscLcSEK69vgk7qW5f8d8rOiAUHCIOEYsIWGwPSfvcZQfAUas/jX3xu6Cs0v6Kp5IO7xwOCaDlj+v48JNkqWuv3782fAD4huuc5sg7zl26dsUxgNe6O56+0179U45P2LXtQFz7vNypYx4lZ6B7Jr+tpdPSBCUaReJ/omYbtFhEgxIkaLh9SkFFPje+fIHYjGDbRx/lXTZYazFiCD4tDz49jrD7rYJDSXlOWQQn1uNnAC3XB0hnW2PZWgKnG7VljfXMA5ZQYlDAicbhUOK1PU0TaIjg+DqpyoZ+i+B3Evh8mzrsaY33OBlIvDmBwKO60EfW2qDpeoiL9I0K208D7+l2gHeEndBq22fcfRch1N+79GaFFlJ7vkTHaedZp/727jl8/ig+sjPQPZPf1tJRB96jrnV07ESw7Zw5TjowjY4ZTytIAEXP9bbnRlqAUdAzaR1iLSK1B0ATOIgQYeDbJW37VNTCI38rOpzfIWIQEazYYAZLC3BK2ahrt+1SSnlgcRqsarVsaxXiEvr2dHT4eRdSiGyQh3O7Lmzrm+0Rzzoc6rVFVNAdO9AFAvAq79CLjjVxPEwBPnFtunO8f/up71sLJbY7arfS+9UBbdRvXZ+OENdu83f2EVTcII8E3T/1p/6vDidUdcXe/iH3H+ywd7iLyjUvP/cMzz3xNNuzNVJJMXXDwcEBb127xtfe+C5vvnuTo6MlZWWojcEYg3MO0+s8HTo1UQqthTiUlEjL7USzzqvwCuMcxjbYxtAYi7MWa53/HgtOsC50VGvKSCDybW+u8jOdiuac0n6GdnGvMNOKYjya8NKrr7GxtsbP/o6f4XCxZDge4xpDmqY4LBe2tlkWJWIbHuzucP/BDnfv3OG9W9f59htvUNUVTmlcqrFJglUO68BZi7OuvTbW4BqLa2pcYzHRCQOIOFTQrjTO84TiDUVxkWmSMAk7bI+Pcq5nBIsE085/b6XjyxztuxUOsp7rCzt7PjAOxjgMXWC6wnmjDSkWcZ5R9P3f8WHxGtXB3Y8+Wj8G0aK9hqtSH6GgkmDCK6/Z0sGoBO43gl/8rMMxojwYR+94a9b3zG3BP2djDUY894l4ftPZ2G/+oDj2ieFUEYj7N9CatvGfvukfNVyFc6oLTQvPGeXAOpRyHqCDeewkRazB0xOudz3rn/0Jy//9QOcQpPcOtt+12q3CWcEFKju2s9V4nW0HrQd8f5/KxYkITvPLHZgTtGfXjuX403VZ2DfQFvbEPcipIyJ/e1rb7fbp988HUs09eSTo2rrGAlVV4ZxFJ5rBaMzm9hqXL13msUuXOb++wTAdgrXM50esTSdMx0PG4yHfffMGD3YPUVVDLYrGmECY+1nTWIsgWOvQVtCBt0qUNztECYmIB2SVhNnRYq3CJpa6aTCNwRiLdhasYFycXX2nG4IjQRzGqbYLJZgU8T+FkKQJ+WCAc45z589z/uJlptMZF85f5NOf+gznz10kSbMw8BQ61di6IdOKxXIOkuKc40I65PLlx0h/7As8eHCP77z9Pd5+601u3r3FwWJOo4TGOVZlQVPXEMw9/0KDBJNQlPKTVXwg3qYMylPQFETAKVAuTr4QDMNO04L4zirpNDCvXLnAr/njVHC7tI4Q8W3ykxDeGRT0sc58jj3oNaKwO97j33F//omoqF5gP8oI/bglRCooFcA3mPKiFC70qYh3nHkQPhnKpFvtWCE6RDzgKYF+7pEigFqczKyPFvAhZL7fXHwmAVAi6J6ICY4S6IgIGKfBTwL4RID1h6sWsDzeepKh0/ZtMLc7x17kWaP5LD3FpWtKAMB2HMW5IwKntJNGF5blHYuuFx4Wb8v5oGZE+WiP+F+kVN533d7U6Fw3SXShev1+6U1c7+Ole/faA92TgN11f1DCT3DMH0UeCbp1XfnxYRqyNGM2mzGZrXH58jkubV9ge2OLrY1NhukAASaTEYM8I8tSsnTAKB/ynXeuc+feLqtlSdmAMoIR8Y4E5weNFcFYUAhaCU47tHh2DeW1u0QJWissCusczlq0+PVMtAqOCWtRYWDbMAJM6Azr/ExpgybrQg8q8ecGD0gvvfASz73wMq+88jKXL18FFHmeoZTi8GDO8fECrTVWFGmSoBXMi5LFaoUxhrppGA5ymgZWxYLhaMRnX/sxXn7hNQ4O91kuF7z34DZf/+63uXnvDkuDn4icaQeUCP6ld8aDmkQTKg7lMFFIeCnipm5ovO97Pzb9/eo4wHEYFQZa65DtzeACbbiS0DpffF/aYE2Gvuu1rgX89sJ037qo/cj7geQTEFEakZjwEH60Dhqfi29VZ3ER6YUEFQPvlQ++J9ASHf+q8RqcQ9okBQdWvCbp0qB9ugAANlhl/Wt2pnAUa2O8aBzJp3W5eHPSPp8ISy48KRWVcaMxnHSk+QO83dlpx5468Rp7x/c+omc7LtVJO9e04B+3u8A9R/D1GhLh4t19tOFj7Vc9OaV+0wPc8NNtjQ7PU62Plln7IV6bXg92O7dOOfmgfT5YHgm6VV2DMSCaPM/Ih0MGgwGXL1zk3OY20/GU0XBMPhgAkKaaJAaRi0KnCYPhgHx4jdu37nN0vKSuG4wRGqCxLnBFFuPA4DAoHAqnwktvnA94DvEkftCDBBDW1s/QSmmMFTD+fOLAiqCs1yIUHnBVsB7ihKu1JksTtrbP8dyLL/LjP/YFnn7yGYxtqJYr5vMFRVV5ykI0SZpQ1w2NdYxGAxBFtVwyX65o6hqtE/b2DFVVMh7kjCcTjGko65qmbpiNxnz62Rd5/MJl3n3vBm/eeJe3b1zneD7HOovGIc5TG9bZYNaHQRbMU+eCViQ+1jLOxj4OMhj+QmfihfGggRRB4R0m8XWyzoX9o47s2yBBs1Go4NQQny1kHAZ/gNeGgxf6xNCOSrejdVyc4CvdRxyiH6947VYFikEjSuPauKUIukGrx0+GHmxTtE7abCelFEqSoJl6RJPA8XrA0ICn2FB+knNWo2zSTbjOh5upMNmFh+3H6ymtrQ1Vegjg9iMAXHxOQd1tPfAKxAZwd1HTTRBpWq0SF8dU9Pj3CahouTxKIq1ED0il5Xp93wiBFSSOitZR6br76SbodmR94DW9BuEtqn51r16rTkz40lqG8Y66kLDT4XldG9pHgwuTWHuvHyKPBF2VptRNhYgjSUdk+ZDJaMpsMmE6GjPIByRJCmniNSEZMgQ2nfGclXU+nlEr0kRz6859jo7mlGWDNIIzBmvBGdPGrzjreSPjBI2lQUAa3y3OtdxZfJHjgO9mfwlOAcCa9r2JiGWtazNidJLy/AvP8dLzL/Dcsy+wsbGFaRw7Ozs4Z1kulhR1Q1PXFE2Ds47BYAAiGNuQ6pQ8z6nrmt3dXZrGQvAEj0ZDyqJkWVZMRpkfAKZh9/AAFJRVxcZwxo+/8Crba2v8+ptvMp8fUy5XgWO1CApNxzGrMLOqOPDCYI3DRcJAiwqaiyZ9tPejiSh0EZniiYEI291Q7MKdVPAPCeJ5Ypz3uhOOlZ5mbdsh2XJwFoty4UUOYTYPUU4+Eek7z5RKwvOLWrgNGmBnfaAVkkTtVgfg9eDbUhOtyUvvtyMmJ0RNyQWAtyoAROTWA3C3YGE70Oin4HrT3YNiew26CboT/9wUwRS2/YiGqKMJPjQugGoYROJ0D4jCGAufdTtFn75e28Le39I6GuOjb5Mo8FSDVR3QEmizGEd8cqy490VN0D+r81y0E9Va1H3gPcl5x+9j2FrfqjwN+KGnWiMucPsu9tlvAegO8iEYQ12XiLNopVBakeiEVCckOkElunvKCag8ITcDJtMp57ZrCtNQVBW1qUE5klRzeLikKiqkFnRjqB00OG+2BI3XWesHX+gM67wSq5VqB7hSglJp0BS8XyBJUmrjIcQUhacTnH9hptMJaZYzGI1Z39hke/scr73yGpcvXibRKdY0NFXBfLnCOstqueTg8IjVagWi0EnCIcr7WIJpmSYZaE2xWlE1DVa8tnJ0eAjOMZnNWI6HbKz5yUor4XC+oDaORBRaCZ965iWee+xxvv69N3jjrbc4PjrCOkGnGSLe2lAibKyvM55McI1jd/cBpqlbzcWJeAI7EE1Rk2gHd/uy+hfOO+Bc4HS7KbqvN1nX1Y+Mmq9G+RdThRc8amZBM7HisK0jI2pErf1FpBg6jveTFRUjFyRBSMLUpnrgE7RDEURrdNJxuFprVOLrMeiQMuy1S2gN8jaPP2Q5OeUtO3GgNWI12ibemRrbFBQLH1VgvTXYocEp6c9gp/vbQXsv/pPFEf0BHiUipxr2s4owkLpjw+lbKqSlB2JSRQ/0e2Z7vIZrA+V8X9vQbGmVgUhd+MgKIpjhLbmo8PecFg8B3Hiu+KfDikXwPiRrLf2ok5M87EktNvLerWnZO/dDGTF53x+PlA8HXWsDcFnEOZq6pm5qcA4dX1HbhBfXBm+oIs9zxuMRs9mI7e0N5uWcqqkAh1aa46M5uhDKKkQrGOvpAWu9UykOOAtO+9Nb6zBKo50jS+Ow9jOR1prpbJ0XX36N4WjErdu3uH37DgcH+1Sm8XnWKuPc+cu8+uorPHn1KpPxFCeasqpplKUqC+bzBcvVirqpMY1FpxmZCPPFgsXeIeIsdV0zGk8YjsZMxpCoHGstTVWzKiuWxZymMQwHQxprqMqC5WrF2mTI+mzK2mRMluVYY0iU0BjLMB/zqRdeYWM65e33brG7u8Pi6Bhswud+7PO8/MKLPP/McyyOjvmVL/0tvvqNr7Bz73ZMb2q5385EI1iRLvqtYoYjVkngvh3i+jxW710leHVDqqqIC6+FRYlgddSqpbs+eO3Ier4uas9Rq4p/u6CGq482Rj9W8REHJ51jXU8EOksJSiuUTkhUoCNC7QDR/ocQTxstgUi3RD6279CyNvK+CqcUTmm0JlhyERBoWyHKP4cYt9rGptJCAe3ecgpA8BOmEukxwI5gqrQapf/TA5NxkaGP4sI+fXDva/OddhzHUnd0nIx8NEc7NiXQV3Ky79uW9ya7E4MyXvG0BtpuljBBeI1XEKzTraYbQ9JOni/QCf143Pgco/XQzhKqfc/6l+4ReR8qjwTdRCuSNCOzFpQ3D42pWS4XFGVBXVfkdYV2fhZ2zquj1jZYcbhESPOU4WTAbH3C+nJKUa2w1qC0Qx9rpChRZYOuDU1jaJwgxkT8xuEwBow1aOvQ2uFI0MqhxL/WWmmeeOpZfvZ3/R6efOIpnnn6WZwo3r32Lu+88w7Xr1/n6OiICxcv8PiVy6ytbYKzlGXN4fGCyWjogXE+5+joMBTNUBg86NI0LFcrFsslpqnQIqytrWGN8aaac97JZxsW80NqU6PTzHOy1lCVJVqEhThEFKnWaCxpkmJMjQBplpPnQy5/+iLPPHnAm9ff4e6d2/zBn/8DfOYzn+V//IW/yv/wl/8SmU545fkXcAp+7W+uODg88JxsOziCARfnQ5zXrqJG4gKFowiB9b2h4t/t9sUG7+G2TqFbDdnvoOMgtEGrldAC60/kJGjR7fC0gRoJwIv7qGP0YxVpvfdyQgNstdsAuIn2nK9WIZog8L+RD/bA4rX++AJGhyftJ688qECz+JTiBKssifT7pHv5ldKIE4yrUcqH64n18NkB7ikt9yEd60/bTZCePAFB+1aK6aiUaIZHHVYkREJoOm6+c7pFvre1r+RkH0YNt5si/G8V2q4iikUwDtN7BOV4P9Z1u8WImu5Bih/bBGVCxI/vUE3NWO2fJQrrrB+HLWncTR6uPW2c9U75HiJf/H3II0HXNDXgSJKUJE1IEg0O5vM5+wd7zIYD0lQzyP1prDFY6yjrmlVZUNYVBovSQpanjMcDpmsjKlvjFOhUk61SimVFsago6xrdNN7JRgiHsR4AGgcGPzjFWBrToEhI8ozLj13l53725/jSr3yR//rP/Xk+/+Nf4Od+7veyuXGOqz/zBKujY27cvE5tG5aLgtt37lKWJaKE0XDEcrng7r37lFXFYrEg0Qnj8QStEpaLJQf7uywXK8qyQrCIUhRFwWjoTU1nvJa8WBwHDlwh1tLUNSaxJImjqkpEHKPhEJWmpNkAnKOsDFVRQ1UzyFIW8zlrwxGfff4lhp/5MV59+TXG+YDf/3v/dmazdf7Mf/Kn+da3f53PfObHuHL1KvPVgqZsMJHHohswMWxOAvnrAGUdWhzKeo3TujC5tZxh1BLoMqyMd9wprVpDUKT7bYRQ0MV1x4fWdB7rTiuOL4v7Iajm3GpYEjln6aqIKRAdaIQAsFFDVbEgThtuFfnQeGLXi9SIExkd3IiPzCGAdwtx1rX+iX6ChHMaX6rAtcDSf/ld1Fw5bXp7sSecSd2E12qZrqMYVDT5pX+twAO71qNwKqIm0hrSabFOhXoGqqUMTrZReg6+7lyn9ciIr9FuUu24ig6+gLltFbBg3YXxaa3CqsaPcwkZbtJZZ93VT4ePeUqlew60130Yz/BQ9uch8kjQLYoFSjQ6ScizjEQlNKZhvphzf1czHQ3IBxmJHiPiMLWlahqKumK5WnmTfLWkbHycb5IJw3HCxOQglixXFKuMRV6x1CXLZUFZllQiIJamMVghaEwuhK9ZrBhMAxXCpfMXee21T/OX/qv/irevXcMILI4OKcuCT33mJxmPRyRacTxfcnh8jHM+Pna1WjGZjEnTlGK5Is0yjpdLcJbJbII4zbIsONg/YLlasSwLqroiUUKeJjgLo/EIYw1lsUAHLleLZlWu/MNSGsGRpGtkyRgtwu6DB8ymE2azNUajIdONTZargqoqWCzmpEmKpWaYpTz7+FMo5zjY2+NgdxdXNWzM1rh+7R1+7Yu/xAsvv8rq6uO8e+1dbGVbK6mDvDiYLM5JG6/spGXPiDrTiQBx5wezDRxeI54D1iGWVBRo6SIaYrietQ5rwfQymfz77SN7JWg02lkPF/aT5xf8uxOL3fScYOJpB9VzkiklHeC2PGiXENE6Vlp4iJ9CNAihpm0018UiWqFIQuy6Q5QJUQUnTWhRgsT+agHMtWDbpuTSIkPbhr4TriUI+vRFuBdiUoKHNa9ghL+hz4Gq3gQaYC72RxtT7MOPbKBoEELsd3zmXUyLBOspTlptpEhE2h4Q+nv2DmXrbOecO1FbOO7rQdPSeOC1nRMsOnxjxlvXn911WuWgBfhOgWiryf0mhvAjQbdpKkQ0mVYkiSZVCTjHvCx5cLDH1tqUjbUZ40GOUlA3DWXdUJYVi2LJwWLOfLlguVxQ1isMFTpz5GONUxlZrsnzhjTJSCUhUYqFCEpV+KAyobE+Pz0OSoejMb4E3Wg85vnnXuB//IVf4Nr1GyRJQpalHK8Kvvy1r5JkIy5fuoISYXdvj3lZes7KNFy6dJFBnrNYrnCNAesYj0YwGmEdHB/PKcqSoq6obUOeaFytMaaiaTQKyJOUbDBkuZhTlzXWNCwWR1RVRdXU5PkAwVM0GxtbZGnCdDajWC04Op4jSqjqmjTLSbOMkZtwvFiymi8Z5SlvvfMOw8GQo6NDDo8OuHvnLkmasbaxSd00PLh/n8cvXeHg4IDdnR2fkdeNt/44DQOl47KsdGDcaqTdeIR2WzAdnQWncMq7m5xyAUT88caCsc4/rzhQncJJCLFoTUtHTLz6YRBRUUvVQUPzTiy0RmnloxSU7gGs10rppQ5HikL1wLCb+gLMOIdfVMS1IBVMDNpoBRsKP6rArUkX7aCCZmytbbXHvhbmXEhu6NXx5WGA0FohtLUXCNqmkwCwEmJmemPCV2EzYQwRzO4AbCIQE0tOZOTFCxA01QCucYvgJx6Jmio9APRfdBEG8VQeA2zbryF94gPQL4KxtY13xIuDULioVaHb0dg5f0WiBh/7WtpJoSs6r1sgfj/of7A8EnRHowlVXWBcDVi0Fhrju3pVVCyLFXVZYeoaSRKMtTRNQ1nVLFYF89WC+XLBolhQVCsa40O/ktQy1hkmtaRpSiIZysbBC2qlwZVYqaHxfJNpfAabCS9/Ioonn3yGu+/d5Pbde4zHI4bDIdlgxGAyYTSasLu/w/psRpKmIdvH0dQNFy6eZ5jnHBweoZRmuVwFIFckWlEuF5ignddNzXwxZ7VYURUrnxChfeaaiSsBiHC8OKZuGqqmZlWuqOuaxlh0krFcLrl//x6PX7lCkqacW7vEarHg+PAInaaIXjEaDcmHQxBBJ5p6VfDGd95gYzblcH7M4cEha2tbXLr8JKPZBk1VkumE9fU1tjbPsTw+xhhD0zTEKJDoJe5428jVhRRiuiwzE0xMxAXz61SMpwOrbDA9Y0AbHjQi1ruoEXlKw8nJN9/1/vExxh95nH5s4mssSESA1txWSrXJEic02vAbiVEMHVfYN7M7yrEfitRdw4cynW4MIdsxcOcd0gRzvefsa8Oc/DWgb94GIAmHt2UZoSuP8LC+oO9IJJwzxFmL7mNTa+7TOsG6kLmuDbFH/E8sDITYtm98PHJwDIohRo93N927n16bur/9TXU0Q/e7X5HMugZMSABROrrgo0pxgjvu0xPdnNHFXHdpy673LE6261HySNDd2L7AcjmnKJY4a9rq80prMKEAsvgb1KJJxCIWitKD7nJVsixWLFcrimpF2RTUtkQ0ZJmGJEVrixiLM4pI9KvEV5HXhVCUNXWjqBGUMSH0w4d/XbpwgTe++U1G4zHTyZTZ2jrrG1usrW+Sj4YkOmX38AClfISCdY7ZdIqtK/b2K86fP0+xKjk8PGY8GTFIU+7cv4dtGgZ5yuH8kOOjfY4PD7DWorVikGdMhwNmsxnT6RQQEp0wm85IlaIsCkzttV5rapbzfXA1eaLZ298jny8Yj8fMphOS6ZRVsaScL2iqAivSUinGWGbrG5RVyWpZ8OzLrzMYTVgtFjxuLY1tmB8fo7XihRfg6HCfw/1dn66KhKyx4GBz0Vz0EhNUbdRVpFdxKvy20IKtE4kUHyJtsFGIw3VY8V53ZRVWLLotZq2CM+NkCBuuy2D7pMVB22eqNeVVF5rYA1qfAKEhxPaKeEVBuRg2GYZwrLsQVonwk2CbgI53XsWYVx8LbHvL9tiexixhRnNttkKXYHLyHe9TGv46MerpRP3aAJidBufa80rI2ozO0li7JCbZhGTmkMjgtX2iI1F1BX88cOuWPxXAYnDiC+o4sSixsTqm11zFUxuC8dc7pbhGSIxhasoPzPa7rk9i6JkLz7NTBKx1GOMjS2LylY+HtqdohvCc2qL1/QkuTKvthHpqPH0E4H006G5skQ9GHB8fYOuCqqq8A6sXo6iVRqHQwdwy1lFWFcuipChKVmXJsigo6pLa1hhX+0wyJUiqsI0iGzhsrbDeF0SWZ2RZTlakJIsVq2WJEqiVhMw0zWg0ZrVckuQDzo1nbK5vs7G5wWQ8ZX1j03uGTc3B4T77uzsUdc36+gaNaTie1zzz7DPYxnB4cMBgkNNUDdfv3MU4Q7kqaEzNvbt3KMuSQZ4BikxrRqMRa7MNsjxnNBpjrPP0QJoxGU/JBiOyvYzFYuFBR3yIynxx7F8uY1mfrjHMH2e2tk4+GFCNKvZ3d3xCiXMsFks0glb+pcyGY8rlijwbcvniRWrToFAsN1Yo07C2tsbNG+9QlyuWyznOCto5mlDbInJyutWa/GDxcaQ+hAzX+b0dgnJgVBjYwYQK2BuHJMH+i68viRawCiehhkOrMccB6luiwgD/YYjTbYEqajShaI3W3fpcrbNJhVRfHSMXgmYXuG0Xteao7YunALp8/r4GFsBcVMh2DBZErzmtXdLX7OLvvlOMTsuNmu9JbVCCU6g7RGLNXE4DRYgciEWObJea7HcLtk6oWeHCxNOZ+AmQopR3a5mQWjvdfIELVz/LbH0NWxzw4M53uPfgbZp6CWICiNtuYg/LDL1vhJwwnk5qv10onR/3RqKi0EVKGOsnPSU+KsQ52jXZ6D2HE1aLuI8Epr8lmu5wNCZNByilmR/vs5gfU1UVCKSpB1xPaDuMddTGUNYVy7JgVRQedJcrirKgbGosBpQikRRxCttYnNMkSpMmijyzaNE01pAPKrIiI88zjpI5y8WKpArFcZKExy5fJhtNmK5tMFvfYm1ji7XZhCzLWS4WHOztsre/x7IsSJKENMuZL+aMx2Oef+55yqJg//CY8WRKVRW8d+s9yqJkMT9kvpgDQp6lvPD8C16zV4qmrCirmuFwyGQ8YphnqHyAdY6mLCmKAuemiIKtTcNgMKBxDXu7+9RV5cPK6pr58pj7Ow8oq5LxZMZkMsOubTCfH+Gco0orbt2+TV0UjMcj8nzA3v4uzjRcvXyV5195nY2NDbbEZ/IUxYKf/KnfyeHRIUWxQrRQV1UcMmEI0Wq03YQdY2Y7rSACrmv37eIp+ySFcw4t3TvgRNDK4cKyKzEsyb/gMdU4gHiwnH8Yai946iU4jcI6XRFwW6ANACOiw/I9MVQsakJ9LrN7+eJ6ZO1zaE1lH4qGCxqvsQGgHSKmnZz6mVJdLYHey+0EnAqrQPQBtONtW2ANGiouREnEbMFAc5wAjPDMfHiJ6q5N4DhDnzilAtxqnErIp9tsnHuGi1dfZTpZxzlDWR5z+/YdzIMlL82e4qgWvnK34PXP/uN8fqw42LnJ4dF7HOzfYXfvJsvVAUmSkGeao/kuzq7QVCESxLUWRZSTVEuYyGPqvAt05QlKJcQhW5/g4pwE2iHSJHFcSgySDAkucRJWYRI6SXn0n/uHySNBV0ST5QnDZkRTVyyXCxpr/IqoOsEpwRqLsb58Y13VrIqSxcqbxMvlkuVyRdHUNM4i2vngchKc03j60c+sSjlfKCfLsVjyOifLMoZ5TpImpJlmuSioy5o0yRgNh1RFxebmec5dusJwOMTVBbv37/H2u28zn8+xwHA4ojYG0SnOWKaTGQ929zxVMMjZ39/j5s2bHB8fUxcrdJJw/tIVPv2p1/nxz32WC+cvopOU5apAacXh0RE79x5w5+4dilUJzjDMM1yWsHV+i83NTba3txjkA8bjKTpNaOqK/f193rl2gze+/W2uvfMO7926zXJVckk04/GYtbUZjbMcHByQZRnr62vcub3g/v27lKuSLM9omoYb19/lwe4DPv/5n2K2sUWxWmFMw5NXHufCxUvcf3CP5WqFiynQgS+LxG4bWBTMur7GFEEy1Dgj0oInIiyjlSuOBgngGnhQujRK5wJoO6/xqBAR0VEYPxwEgwfFzmRXoapXf/FJ0cpnj50AXB/f6k1r3TtffPkDXeA6WudE8L+TUEtE+9q6bd85CFEOMVm3D7quB65Bqe0oAn/mjueVXg9LZ820tFHUfluvUgTzfv8EcEa1hd1FFFYUyiWgFPn4HM+8/LvRs6fY3LrIfFmyYyqy0ZBSldx/8BZP7t6heOsrPP7MS3x3tcPf+M4bXH78WV7c+hQvXP0Cx8s5icBUw9pgxGQ8Ynd5h3dufoVf+qX/GFM/eN+ze39WmiHSL4iP041TYacu+OQU/8x1iMkPSkCPc1dK41yMXQ5WYHCmxe7l1OU/6mh+dMGbqkaHNF+tE5IkJ88MBHW9qmpWZUlRViSpsCwLlquC5WrJfLFksVhSFiGGVAFakeoMrTKcEbwTSgX+yJJkKmjW/tx5nlKZjCQXslzIBynLeYEzCiXCcJAjOme1mNOUS4rFMe/deo+bN26QD4esra3T1BUq0TR1xeaVq4gIaZowyAfcv3+PG+/d4PDokExrLl59nM/++I/z+qdeJxHFzu4uu/e+zXRtjarxsbaT8ZjxaMzrr79O0xiODw8QhGyQM56tIc5RFgXFsuB4/z0QxWQyZpBmvPLiC7z28ktcu36dL37xV7hz+za3bt3E1DUXL11ibTZjVZQc7O2idMJkMmU4HLD74D4PHtzz1kTpw/GKcsULL72OAKvVimGWsrG+iVYp2ALT+JEQA/H74yP6t+ILF2MQpH0xfRC+jTvHaiR9L4zF19Vwrt3sRKHFtfVPxflIBe2ILBwWh0Y8D/xDEDLmnE/i8MpbiEVWgTJQGtHa1+lQ3dLrugfKiDph0veXOsd1lVyEDiSiY617yZXnKQVQCThLI5auhnEEyBDB02q9Pe3XnzncVQBRZ1pwaHnPVlsOgNpyxeFZuFOTsQAh3taJtPesENAJa1d/gq0nfoxv3Nyl2rkF334Hk6TUG9uMaVjt7SA37yB33uHezWvwtb/FfZPxYHaee9fvce/ceXJlef6ZZ7Ey4vzaOuO1TWySMx3k/MRrz3N8dMiXvvwfIpjePXbPL/Q+voqQO0nNQghVcy1n7hCwBodCBw+H55bD83DR6ogZr32lo8c3/yZ1hkeHjNUlTQN13fiU1SRlMBhhTIO1cLxYsntwSCqKfDBiWRQcr5YslksWywVFUVE1Bqc8P5nmKXmSgVM0TShwLT7XWylf8SvPU+/ESBSpTRiQkOSQpYo0TUjSlKbwNRzKcsXhfAcRzSDPqMqSu/fu0jhLphRVXdM0NdN8wsXLV5jOZqRJwiBJ2bl/j3ffeZfd/R2SLOOVV17jp3/qp1lfm3G4f8DR4SGLo2OOjufcuX2TBzsPaIxhkOdcvHiZp559luFoTF03jMcT7ty+Q5rnvPHtb3L39nsoB5PxgDTL2D5/iQsXLjNb3yRNE65cOM/f9/f8vfytL32ZX/vyr3H95k3myyXb5y4wHo1IleLg8ACNZv9gl/XNbebzBQ/u3qGu/cC7fv0d9vd3GQyGDPIBg3xIUa0wxlLUPk3bx+VKZBICQEbz0r90znpzrM3gCZRDZ8J6flZCUgUoX3zbAs6nBOPw1EIAWJHoQOOkOSygrH9BJBbA+YTFGoNLgqarIp0QCexu6XUtSY9S6HjyeJMe/MIy564PfhBf6igRnMX5MpkexHxVPHHt6+2v04btRWOlezYdyD9cJFgmrX4cnkmseXzS0okacCi36kIxcWKCg+v6xQlOEvJzn+Z48hzf/vV3sPWK2hjsakU+G7PYvcmlrXUe3N8nX9aMcUht2DvYYb5+mbV0TH7rLdI3v0ipFX/1lxzqwjMkl15g47GnePbiBq9ceozzjeMLn//7ee+9r3D3/ldDP0rX57Ef2nvuBZQ53SoUHjzjMX7RA9/Xnt91J+o/uODMC8DruogOEV91L66X95uRRy/XI0JVrVitVjhjUOKz03COuq44Oi58/QULk1GNcZbVasVqsaRYFdS1weFTZPM8YZjnZCqnaQw1FYivmyuJf9hKaxIdYiEV5NoT9UnmaSSU53TnpqIsC5rScXSwR1M3PuRqMMJYf05bG9RIGI2HrG9sc/7cOcbDEbPplLfefou793c4nh+BKF555RV+8guf5/hgl6P9Paqy5NatW+zs3OfundvcvnWTsi5BadIk5eZ71/n617/E2voGW+cvk6cZh4dH3LzxFsPhiMPjOYf7u4zyjK2tTYyB3Qc7TCZjHnvyaSS5hHKWz3/ucyit+eIXf4UHu3sUVcXmxiaz2ZSNjTVEHEU5Yr445ty5cxwfHbE62CNJFIPhkGI5p1wu2XeOjfVNJE+omooYkmQDkMYpOWYw2sCxSvvCRg4sjGcrHSUQtos4z0PivcCRYzMttQAOG0LPbCh1F7IKWz4w1KoKx4r7ILj4wYmNUTmh1m1rskatDtp10bx26zf7lWxtC4T+vbZ0xWJOvpGeN/bj17lQ7c51wNEWnAkSVwgx+Iy/Vpc94VTr0wGuvWRn+fbTNBz0JgvjbG+/2P6T9EUUEUGHspM+rFDD+jPsJxe4/e4bqIFh7bEttM3YOvcYA4GjYodtnbF55UmOdi6w+5WGSlWUn36czZd/B80Xf4Xsm98gEYu98jyj4RQ7P2Lj+tf48p1vcfPJF/jWjZtMhwPOn7tIM3sad+9rIWLk/RpvexuuR9OIaZ9CR7nYyCWAA2MsThnaWO14XulNqC1w+xNZ2rnnfX6Jj+KneCTo6uDVbuoCa2zgdADx+ctFWXOoVqQ6paw87XA8nzOfzynKAusatFakiZCGwuZaEpomBnuHAuQSPPXKaxMtAGeeT1Pa115ojKUoGuoKjG3Is5zjoyMaa8E2pDqhWPkKXuvr6yRaMZuuc/XKYwzThOVyyf7ePru7uyznR9RVxdNPPc0XPvd58uEY54R33nmL7377W1x75y2Ojvao6wpjHShF1RgQH5M7GU9QScb+4Xco65JEaZbLBbdu3fBhbUpT1yuOjg64dv06OkmZTSdcvn6Nx596hueefY6qMTxx9Ql2dvf47htvcPfuXVargsXSa8RFZXDWMZtusL/3gIsXzrNaLnDGkic+g64oK6yzTEZDttcv+MFgTfu6tRn60QS1tk2W9HZvRxn4MdaiSltS0oojkUhD+D0tsUwmrUambMhlkggxjmARo+REkmaPsfxkxTobgLfGuYwYz+oXQ/S8H9ASoX1YdDaCcFdKpit9eEoCOHvHlSGuhQZBU4tOouDEkRD9EU1b61xLu57geFvqKGjFkpAmCp1OGIzWGGQDGuvIB0OapqZYHLOqFiwXu1AvfFEx50Hehf4wzoSaHf6S0WJq2ysp5fQx7hvDZL3iCy9vsa4btKt5O1WsqoIvbM24MhuyuXaFulnj61e3GE6mJBcv8eahofq7/wBPPv8kuVXsPPUSDTPu3L/O6O1vcdEekTX32Hn7m+wmW7y3eIbt/eskKHS4Z9uO4B74Spza48TRC9NrudiOHnCBZ/FhqAYk9c7U+LjFF7D01zDECnTx2HilPtC6j6D+PlrTddJWxq/LwvNNokPBGk02GOIkZVE7ajMHU3N0fMR8Oadp6jaNMkkVg3RAotKOb1EhNEVLWypRnDevLM7HSmqNJA4riqzJSHNDmpfo1EcjDJJRm555vFxhbAy2Nhwc7HPuwnnWZ2u+HkRV4xrH/sEeuwd7zBcLLl+8xPPPPU9Vlrz95ve4f/cu3/7213n3nTfZOzikKCtMqHqmxE8cgzTDJAnWWJZFXC2iJssHvgaDaairmrIsaYxp61FYB1mWcevuXe7cu4sxlgvnzzOdrfH4Y4/x4P493r12wLXr73JhtWRjY4vGOrI8w5iG6doGOw/uk2UZOk2oqiLQPD7cJstyEE2aJN4yDhNji6EtbSetUhQnc29OxS/6Eb0Q10izEVy7IR1e0rjkjII4gbZe5HYg4ZxfPNERcV5+KDRdwE8wtr8Kw+ntHci1oVFxcUgBD8yBww1yWuNxeO64Xa4K19ZD8O93P1wfnx0Wnpd2Hlzq3kuPM74ov86YTi+wvnWVze0neOLx50iHG1gZMB3k5MMh1w7mrDvN+njIsilQNKyO7/Odt77C229+kf37b4OrW9641XdbbS9y9v4fM7rAneUx+dqcH7sy5PVsyc79A+bHDWvqHhfHQ3RZsXt0g2K54o5tePXFz1PnE45NzoYrKefHPPF7/k7GaxNsccx8YVhMNlnLr/D6QYoc7XNu+zwLW3MwmrN/5zZ9Hb43AwWtlvdv6/d+dGjGTLPeeJcwKJ2Y0PfhaCE42sKiX+E6fcD1w6OzVvgIY/rRnK5pfGWlJANZUTcNSeKn3iwfMRz5+FVxjlV5TLU45vjoiLIscBi0zsgy7eNu0xytE2zVoJxCi8ZqC2JDjK+fU61VSAMqlt2QBO3zKEi1Q+sSawsOj4/INyckOgFbY9CUVcX62hp37t3HJRlaJ9R15ddSM4ad3V1u3b1NWVXMJjPWplMOdu5x463vsFzO2dl5wHu3b3M8n3O8WrEoChrr0KJJU0XZNKx0RSKKTCfoxDuHdMhqE6UpiwJrG5rGUja1rx8R4mWrpvGaxPW3KVdznnj8STY3z7F58RJrazPGoyF1XXP3wX2qumYynWHCop5FsWQ0nbG3t0OaJBwc7PtllDKfGZdlnj+era1h6oZVsQrrmfWHXhyT0pq7fhyboPSGegDReYLr1lQjgq7rXkA8kkvQXCVyXyHH3i+42WkZFtr6Ac65LpLik5Q+qEQ6JIhEysB5Z5lfeSSm/HY92xXMUYEj7zSu6FgjLk8VQ7QIFAUecGNEQdcs/z740puhzoUkvv8lYby2wbkLT/PSC19gOLtKaYSqUezj2NkrmVkDo4a39m5yGYWZDfnusqKpHT82HZENr7Lx5AZ/4KXfw+2bX+OXf/nPsth/1y/R3nNGSTvZeo7ZSsIyHbGyJdt2jdVywC/u71KvasyywRrHJXWO+7fu8NJTz3P0vdtcuPoS71y7wWAy4ddToZmto8/nPJB97l1/A333AcPrN3l+7z5UDdetY3uwTpKmTKXmtcmQLyeasvRrJPaM/fbhyamRfqL4UP9Ru257rNXbsjcuxgZbX4s3xBh7MNXdSSREiESrpJ2b2jzNR8ojQbcsS7IsJUlSdJJjzBJrGp+PnmUMRmOUS6irirJYsCoqFssVTdOgNCQa0lQYZDlpmuOso2lsKEXojVSlHFpDNNe0VZiof7kwczhFjBn0xL5/eWNWTKK8h9kX9XZsrK3h0FgLtbWszda4c+sWt+7dpShLcBZna+qq4O23v8difsRyuWRvd4/D42PmRUnVWEbjGUopmrAEUK58LQhjHZUYMiskiW4LvNRV6Qu/GEdVGyzCaDQlzzPKqmK1XLIsysAl3aGpa/b2d1k/2GO2toUzhiz1FsRiucJhmY6nNCF0ZX1tymprm0GaMJ8fogJHOBmPmYzHOGVZ31rHKUiOjkhEQPuJwYSVLxA/toz1k4EP+fPFaiQWkgo8bAyboeWFI5HVcbWeXohkQscl+iiIvhbnM9hsLBwCaN7/Yvzg5WQbXGvlS8jQgmjExlWmo5xMmQ3hdMq1f8e+iwkSzkYtN/S3dOeJoN+XMPf5OFzr0MmQ85de4LGnP0+dbJFNxuzLkLd3CyRR3Khq7u6t+ByKtzPLW2XKdmXZXBvzxXqFq1OeQ/GWMxzOlwxdwnJpabZe5Sd/3zm+9Uv/ETfe/TWA3qQiJ36UwNIu0VkCywajBSkGDFUCqgRlWC4O0eMB39m/z/mtS9yzFU19iDm4wbfmdxnkOVfUiGKVsnfrDsca3jzcZX0441ZxxGTrErdYsT4bcnG2SWIcudKUJ2wRaTXPnjYRfvXGa+jXNgKhjUfnxIjtjvbhfj4x1KGcI1aQ8xE+qlODrVcWXZx0XVQtHi2PBN2j4zmbG+t+HbFsgGlqH4IFpIkmTzOQtF0So6gqqrrG4Ui0QqWgc0WeJaTKa6LG+Ko/TnwguEoUSgtioTEdZ+bCzOOcX7iu86j69ONB5hMnppMJ84UP+TICaZpw/sJFDucr0jwnSzNu37nF/QcPKMqC48ND0lQxHQ+Zzw+ZH+xz//59FosFi7KkrA1lXaOUZjKasFjOGQwyRuMJpq6oy5KmrsmznFhDSSfQWMhEqKylrD0lkSi/2oSzDtsYBsMM0xjKxmCXK9zOfYq64nix4OKlBpVozNKwWh6RpCmL5RJr/BJBeTpktTzmhWeeZXF8SFMV4CDPMmbTNfLBgGw2JBsMmW5pNs9fZGttxrnz5xkMMq+ZhoLdzglNVVMUKxbLOcvjOauiwJpgXiGUZcVqfky1WuFMQ1k1VHV4foEyMc75ARQ1W4dfRjxovZHHiAs6Wgn7u+hQ++RB17leO068vJHN7DLTTnPQXVSGtC90l5fvzXQbtFvaSmx9J1AMO+tom5NGcfgnGTHbep7k8musjc7znaOSS7Mpt289QKea56fb/MXb73FPDXiprLl2fo230pwN4NW1Md9TBSs95DU9YHOQcqOq2RyMeG19nTf277FfwtPTKzz92b+f+/dusFzdpVvzrsssjPpkZg2ZKTCScvvBCrcqSXXCIBNMXTIeK7LUMcwaYB935z4DB5loPn1wQNY4rGjedg6XZjhjefXC42hJOKgKzpPTaGFMjV3scZwWrFb7nEDYDxw6EnmQSJJ0HK4LCoA4jy0xlOz0c8UrhJ5Lp01LFhxIrD4SIx2EmFN8Yiw9Qh4Jurt7ewzyjMEwJ0kSkjSjbirqpmbgrF+AT/zMbYyhqr09qzNIcyHPNVmWoBLx25vaa4rOE9eifYUxrRVN5YJ5ZyA42ayf/nHOtMVc6trQNI7DYs7VS4rLVy5z42aD4FADxWA05sqlx7hgau4fHjJINbfv3+dgfsT8eI6pK5JkyHgwYLE4piwLyqqibAyNtTTOopxhfTTk0vlt6nLEtdv3yNOULE0RYxnlvqRlXVcMdIITRWUMOk0oihXueIFdFQzEcvHKk5wfKr757jss58dkSRrWFIOqqDlURwhQLI5ApdR1jTE1jWkYj2fUTUOOI0+Fy48/RZ6lvLtaMcgHOOvQacalS5dRiWZ9NuPFF17k/tERVVFx9cpVnrhyhcevPsZ0fZ00S1tTylhDXVfMj4+ZHx1QVCU+KqWmrjxfeHC4w8HuDvODA46P5xwcHXJ87EMBLQ60JUnDAqH4DMOyrCjLCmcdSZ6Sj8YMhyOSNCXNcwaDoXcyGsNqvvjQAfrxS+C4nXcmxVqy7eq3J2gE/9L6Whbdy9wCbtjPBW3JWet5XCs4a3Cu6YAg1meIFA/gUNiwel3kVNfXnyC78mN848CyvA+1e8B2teDdowfs2oLXBjP+f2qHd4YpjzcJwwtjbq+nfC7f4gVj+KopySYbvCKatUb4UjlnOx/wjMp4+2CX5XDIxSzzFfU2rvCZn/gH+OVf+FPgq514U15CAFu44YGrkHRGgmaYpSxNQV0vsCt8kSqjqdMxVQFVs6JZFgxQrEzNQKUc2pLJbExxuMPl8ZQsn4XEk4xXLj6DJCNGgwFlfcgkddx/61eozNL3W1vPN+iqvYmyXyfBS5zgYlq2tLy8X66qH8FBD3yD16JP97hINfitSjzVEUt0tkE6pwD8YfJI0L2/s8d4NGBLb3jnjFLoJMXUJU3gSZU4XwzHNBhn0akmTVPSXJEPfUaZFk1tDaYxOFsjyoCuUNqhEt853hseanqGB6wkpKkCWG8G101D3TQUq4q6MaRZwtpsDVOXGBxpqn3et4HpeMre4TEHhwccHc0pylD31mTs7e3gV48oqU1NbRtPo2QDioXjsXHCdrPDWwdLBgmk2RBxcOHSOTY3t9GJopgfIU5YFSXH8yPGszWcCLvqDlW9w9bActXdpVlqEmMYJBojCcNhBtYi1gYAtBwfH5GPZigRTwUoRVUWDIdjnA0540po6oqiXJHnQ5JEk2Qpzz31JPf2DhiPZ4zW1ynsDeqRIx9PmK2tcf78RS5evMBoPG7jFHFQ1zWrxYK68skWxipWqxVVVSAOyrrg6GCPe3dvc7h/wP7BATt7+xwdz3HKkWaK0TAh0QRaxVJXhqIo0VnG5tZ5NrfOsba2yWx9k7XZBoPhGOOgLCqOjw4+dIB+3CKthgIx4yvM9Sc0pNaZRgy0745vd2qTHzr+NlqBtFqQ6+160gT2cbMNYEnTMbMLLzDdfoEv37MMm5q7yyOqVc0wt7y1eZEfn1xiiuPt3PCzk8tcWFT8IgesFY7H6oqdCxMa69h0BecXGfe3cy6N1lhbVNTLgvrCCHb2mLicN13JlfUZ9qlPceU7r3Lvztc8vddOLJ0WnxdL0qlQOsXa2jqjBBJnUBYW5TEqSch0wnQ6w9iKPMtpbEPdGNZH65SrQ1LX8OpjzzNOZlROcWfxgO3JJhvJmEVjGIxTmqZi5/Z3qFcPAm978rnZjqTt4LL33Gi/c7w/lCtaMiftC9cddOK8pykJ5xzK+UnTCl1Fve83emFvf5+N2ZBBnjAcDtC4sApqglJgTY2IxpoaZxtEOVQawsMGiTeLswycpna157iURWmLKEuaanQKtjHEfGaJ9V3FVyZKJEByeBMUwmQ85rmnnuPy5SvcvX2H6WjEwVHN2mQCSrMoCpZFzdH8mKqufclF472zSeqTL6pihVKCMTVpkpAlluFkiiNhOpqxyDIqk2DznM1Jzua582il2NjcYG22TtMY9Po21ln29ncZjicMJ77gjVmWWCsczg+4VeSsGljbuoROfJUmRCiWc1bLBUqEpqooypp06DzgNobKViSJXyxzVSzQ4ym7B77wkBLFeDwFZzh/7gLffeddxusb7B8c47RDoyhtRdVU2MDrppkvIjTIPE9uraVpMiajAatVEaItLOfOCU3jS3mWRcFqe4v1jTUOdnfZ3T9keu8e+4cHWGcYDFNGw4xE+9oF1lia2pe6XNu8yObGeWbTdaYbG2xsnGcynpHo1E+cVUlRrj50gP4gxAVryrbOruhnCEBpu6WK2mSEtng2nQbk4gtpcaarGuYBG7xzMlA4LobMdXSEtTXWWUaj89i1Z7i+GLBzcAepGt4zPrlgbTbme2tTnmhgqOFvziBrMpLC8LXtIfkQ1qVhegy37JLNrOGKEmQ6468d7yAHc36fjLm3MeVX793l75xOKI8rpjMN+0fMjeWxxz/FvdvfRElIG+85uh2KTDKSdEg6GHF4sMtj62ukCpqyYms6wWBZ1iVNUzBOEsQ10JRMh1NG2ZDpYI08SUlIGGZTKoTn1jYZpgOWRcFkNsWomjv37nBw/F5474NmiWupq/ivB9oYWRI12NZFFiTgi8Rn5qdPi+DrEAf3nODPH5al7wWG0QK8C/4k/ySJadTufcD+cHkk6C6WK46P5wxyjTFjsiRFAVmakSQJMbXOWl/MJkkUhpQk8UkUWZaT6Iy6tnHchg4xiBZ06jN+DKartKQ6PibmlrhQcShJEmZra2ysZWinWCwW5MMhdVlwPj+PUgmD0ZBVVTFfHbKqKuqyYLlaUK1WKO3D3QyWZWlItUJUwnAwAp2xuXkOEcVquSQdDJhO17iQ5YyGw5CRlzGbTpmtr1NXNYMsAyUMRxOMMd7pmA5IUVwsV8yPDkkTn99tm4bFcg7WkuUD9rTCWItWnt8sq5pkufSpp2kClcUYy7JcsZ7NWC0XyGCAsj4GOUtzxsMBR8sFR8uCdDTjwrkxg9GAS+fOc7hcIKnG1DX3HuywLGoGWc4ozXDOMhkN0GlKUZUoUWgRhsMBg1GGVoqmLjHDIdV4TBon0NEInSUMpiOapmI0ypgOM9LEG3bGNdjGMBpOmK5dYDxZZzSeMVvfYDpZZ5AP/fM2DXVdB37zkxVrrY8htj511xpPlflA+ZipptqYZMDXYQhLILULKJ4gY3txtK2NGjVaiFy3cybW7PJAbSHJz6O3XuPagSZxjvurBU9ubLKsFjw5r5iPHXprxkuD81znkNod83K2yWXR3M1KhrbhUm25v5Xz5+b3MAeH/IPVBteHS75Zvst5N6Eh5ZcW32WOsGDI37Ir1K0Fj2UpW8OU0WMvMJico1jsBGtT4VRKmk5Z27rKxuOvsxxsc3v/Frm6w/HxIetZRqYTUutQ1jJLcpJsiIiQMGF9lmIxDPIhidKsVitkMMQOcoaNINaQaMXW+W3m5R5vvfXL3Lv/XZQrW8ujLSkJdFpqwIt2e+hjOdnvDzX7A0dkYzp2sAAJUQ3xI0C7OnQEZ1TvkQf7x8UJ4dHySNBdFiXFakWxSklTR5OkpDojyYakWvuZ0BhMUwGWNPHpkmnqSDMdstfANg7n8wrQCm+aphqdeq+gc/iVgIPH2HNkPnTJYvxKxOJXYBgMhFE+YzqaoSThwe4ejYPxIGc8GrGqLfPlCpxjtVoxPz5mtVz6blE+E6usarJEo1RKUxu0ThjrnFRr1tY2qGeeS51OpqH9BqV83OtoMkWJJtUGW1cYa3CmYTwYoBK/JP3G5jp237WOtkQr6qpEpQploWpqXxayqVHOp1mjNbVpfEZdkuEqn8JsrS8/ub6xjnOOc+cukiWa0SDn4HCfB/v7WEnYOzhA65TLF7dZm445N5nRIOzc2eHa2zdJkoy12RqSaIaDnCxLfU2IfIDWigvnN9nc3iDPEkQcaapwboBaLpgy8QV0BGpjcArqpmaUJ6yPc1LtE2miiTwYThiON5iMZgzHE8aTMYNR3lIiprHUVRk8+Z+sxFRaa50vkm8NjWlABA1eO7IKlGBCnrML4/H0Krb9183ZjoKI0R9tEAgxtlSwrgnArCDd4nY54+5334FFya6zzNa2+MbS8Ey2hrk6Yn+W8UppWY6W7G6nDKkomgVfHW/y1w6uk5Yr/pC9THpwjbXle4xWhyRcJEsMr+9d43y6QT1eka5u80Q+ZTFzHBa3eWX7Gb7nlrxQJkxWhhde+b3sL/cpmprpZI2NzausbTyByScsnWbQNOxay9s797icDBg2BldXZFlKiuCMIJUjSQYMByMcYLSwrBpEGibTbbTOfdH9PGE6WEMpeO/2t3njzV+kaY5RYlvg65TISIBL0ER9PeIIlnGfno8zPALbabkx8EHiJKhOnl/8c49X81Eq/bTsuH8P0CO78P1GL5RFRVmVKK3Isgxw1KZCTNrjpwzG1L48Y56DJOjU+NKPktAYv7yOw4AYRFtUAkmWkCbaPxzwZDTOF4nGgQIVKiArEfIsB6dodEKiMpI0pVyVmMZQO6ExFRsbF6n2jmmahvlyQV0VVLVfmVcrG4qXCGVRoocDSIV0kIUC5Sl5lqGcY5wPKVNDWS6ZjCY4Y1iWBVevPo5WgmkKRoNBSEgQsF5Lr40v/TgajWmsY2fnPrPxmKKsOTrcI8syJEk8j1xUnq81tZ9slPJL3oB30OUDjo8PWFvbwClhVRRMhhNwfn2ywWDI7Te/w+FixWw6wwqUTc3+4ZxBPsDYiuPjOfd2dz2HWjXc0r52xWg48nHB0wkXzm3z9FOP8+QTVxiPMyBkCeIoygKUJUlCrPVgyGA0YliuSGrFaJAwHGVkqfYFY6xP4VZpynCQkg9S8jwjTRVJKiSZoLT4koCS4prqQwfoxy3OGaxTbWaaaRqf7hxUJiu9FGClME5w2sd5+qXb1UnQje9/+KNLpY57SMfvCjgxGAHbjHmwGlIUFfXd95D1NTaeeJbLk3Ps65rN2Xm+qw5YDg8YrD1BheP4zi020zHPmpyvHXyP4e53GBYNTo44lwqfObhHc3wMyQ4rGjYWh0zTXRajW2xWNecmGyyLkoumYqp3UfUxt4bbZPWK15//Ak89+yqHq5KBHnBwVJAPckpTctzUfHvnDreVo3riCtfe+RbHh8dM04xxoVnPByjRjEYJWmmMtagkQ6uENJswzMekac68PGRvfgt3XLOrEnZ332Jv5xrO1S2QGun0SuV84lPsy8gzuz7YEj8Hk5/THK9raYYTjG3LBcdY8wi8nlKR9pwdrRTb4fE+Ot++z+iFVciqGk1mbGyexzlYrZbUTeWdLUDT1DTGoJOUAT7rCO2rhzXGUVd+gcnGmsBnKlKVoXWOSBIynRzaV9sNVd0ViVIobXHKF0kx+EUptaiwVhvkeeYL46QZRgm7Ryt29g8oywJRmiwdkiQl1hoaIyitvfMvSdH5AOecTz/W4guKpwPqpoY0wVlDlqYsjo4YTWc8/fRV8jwnSxQXLlzxJnmaslwWZEmCCYst1nXFrdt3GeQpr77yGu+++zZ1XbB9/gL7+3vYpibLMkb5kKYp/eoSuqBqfHF42xic8+cRpVgsF2xubpHmuSfsFUymE67dvsHN+/d9AZzAVc+VQjsfmpRlKUW5oipLauNjbrEOjPUanDGMhwO2z22xvrmJsbBclR5A05TaGhrb+BUwGoMSFVaFTlGJ9vkUMfQmDD4lOrBDjrJcIlohiYIErPbcvOiEJpjwTdMA0w8dpB+3RE7X87qNL6jvGhpNq8lqrUO0cY0LYWTOKZTWKLrA+b7jpXcF3vcuirSxztYOeW8+4NbhHpW1qOGYajrlUlXzttvj0rGm2Vph1hSbxTGpO+JN2/Dg4B0Km7FQF/gsNbMHe9jjArF7FIOMbLVkYB16aJhXKyYWMluxs39MJgmSWI7LQ9Yk5/5yyWaSc1cdcHn7AktjuLk4ZJAOaFyFDBNWYpmLsG8N84Hh3KUxy3e+x6o+4l5RgEuwiaKqCzbGI8xiTlbVTNbWSEVIkpzxaILFcv3217h5/atU5SFKbFvHQKQB8fRNdFpasX4lZCIJENXKGAGCp3taPqBHPYQJTpQ6Aay0TtFeCIpTYRkrf2zH6cYduiKn0YHWf9S/JfV0V0VFZb1Jvb11Hq0T5ssF+/sPfKprsaL2NQRJswE6sdSmxtgK2/hBVRUNVe3r7RrxLK3SKdpqmkZjG190BKfbpV18XUGN692oMY48G5HJgDwdMMgHHM4LJtOpX4dsVbB3cIS1hiTLKPb2WBYFSimqsvKdGaIs8uGQRPyqDjrNGKUJpjHYTBhPZz6TSjmUdVx+6ilG4wlVWbIxm7KxuclgMGR3Z4eN8YhE5zjbsH+wz3Q68fG8Fm7dusXxfM6l85e4dfsG712/xngyIR+NEYtP12XA4dEeaZL6xCd82nQmwmrVMMhyGmMpVwXT0YTJ0C+C+a17t7i7s4MLPNiqWHJ0lIBtQir2AYtQXlPpNKRHQz7wa8gtlgvW6w2G4yG7u7sMBjnjYcrm+hQtQllVvrhQ01DWNVVd4Zzn1IfDEVmeQq3ItUbHiqVOtaF9zloaY8M74SNQyqZEVgkWn+lYmwZjHC9fuPCRBurHJS4speOsBWNAGkx4kbXzlJQSjXM+HZfEW7FK65aHjXHKUd/1iRX9a/Sv6LnAeF3rhMNFzoNbOyQC+XSNbJiTXnqasal5zx3z2GNP8WOzNXZ336VYTTinVhTskuwfMCwNVbVHkmu2i5LSwTBR1M4wSBLG2QDrDEmSMEkHLOuSJM1IdcLe8SIssbNkWdfk03XSJGE+TDg0josYTOqYm5pjBcbByhlqbbiihtTXD7jx4D2acsFsNMUBy7IkyXOMg8Q6VOapKJUJIoZ3b32T+3e+y3JxByWxeL6OvYJPmRG6JAbTVgPrQNJn+Sl8wo2LscQBVT0w9yIT+nHWreobKrqFbQohkwGzdI1JPmRlGi5ffJ7bD27w4PgmJpzRWy6dU61jkPrRDY+WR4LufFUwX5ZYUQxHU8bjCaPJDFGO/d0dVvO5X3xRZySpjxul1jRlQ1M11HVDVTS+qpi1VNToVKFU4rUgEZyBpgRT4+tYAoimsQ5pFCpRpHoEqaFeGmplGQxTytqQJgnYAmcMTV1ztJizXC5YrpaYpsY5R9OE+r9pKKZjHcPBgNFgQFMV5GmCNYaqqXwSiNZsnz/HcDj2S7JoRVGWPHb1Kue2t8nznDwdIE7Ih0N2d/dwpmZ7+xx5nuNQzDZgMF3j3p33ePedd5itrTMaTVgWC0xdY4xFuQYbPP5+CRiLcX45n6oqSbLUm7NViQFKY1hVFdZUvHvrFvP5nDRLGA1HqCTDmQZnDfP5wiem4CvYLldLn5yow0yvNInWvhhR5kPOZrMpSinKusGYYCoZD9RaC4nWvhqT9UXotWgft60zkkT5kDFxUDsfj21KJEnRaUJd10ixwtZLDBZjXeBNQz77JyzR2eWz82qsaHwthfAyOr/um1iLdQqN57wdvi8JxVfUCUIXOo3IS8cfxut6Hrlqch7sFRzZhvrcJaa24ejSjK3qkDtPzLA4poOKXz24xRvXvsS2ZCzTS7w8VGwsDVVVkWCxTUaKxmlIB0OWZeEpQa2o6oY8zzlaLVAoUqUpVgVa686qMpbjgz3cMGfv5orsasLg3Te59NglZrMJQ6XIE83hasm1/T2+e+sm33vjm5ijBqkVa9MBpipZn4yYDMbUzjAZTsnGE5I852i+w723vsNqeQ9xDXH5nJZDbXusi16KoOrhNXKlrqMG2gQO157HiwqarFes2ufRErz9h+K154SUqVtne77JleFlnnjxNV568WfYP9rl/vw637j+Jd5+75scFbutRts6ReNJJWrfj5ZHgu7xsmD/aM7R8YKqMaynKUmW0phtmqZhsZhTG8MoS0jTFGvxq+pawdSWurSURUPVGEpjaYDM+sLQxoVUSQumAls7UvFLXsdamMZ4xw3OIC4nyYTxYERdNSyXSxaFoSoKVsWSqiywTYmWUBZPi39BmhqtNYlOMaYhy1K0aB/rmmgfyC/45WbSxBdtd57XVHmGqQ1PP/0065tbrIqSm++9yadee51z589RVT5UTilhY2MTcY7bt2/yzTe+w/Mvv85zz7/IdDzhG1/7CmmWMktmOOcoVkuUbcBWZGszEp1xtFywc3CATjUY5UtpBi21aRoSnVLWNVmSkCSeU6/KmiRpyERTW8vB/j7GOVbFCiUqhOwNQCfoNCFR2i8tZCrKumRnd4+1zTV293cZj3PGowyVaA9CrmFVVtSVp4/qxlBVJatihWksShISnfgaxxpqU/nCPo2lKldYWWL9coRYn3mAw+LCEil+hYb0Qwfoxy+uB7wGYxv62qhf7Tcubx6LWjtEO7rVB3xZQK+h+bP2HTgn6QWLs75Qkakdd27ts3Os0MmQaaLZmmxw+2jJk+tbqN0FS+tIzA6L6oAni4oNV1O426jVgEs6ZV+Bdgk6myBSkmmLVY7alVRl6WmeRGMbYZRtUVcllStJVULVmF7NB8cg1VQ0sGq4eesadaq59SCDvT1q27DX1KRK8879W+y9dx23qNhQGedm60zTMdlonaFKGA0mJHnGYLSGsQ137r2LVCs2Ni+ydf4KZV2jUaDBiq8rYm2FaQqausA0JX7lDQOujMa+xwvxYXcti+6igysWIo99Lr2fjmro2AEXUFORJwPODS8hu4ob37rGpc88xitP/iTnNy6wMbvAE+4lfvyl38e9+T2+8+6X+M6Nr/L2zTcomjmNrX3FvLZa3/cZvVCtKnb3Drlz9x67B3vMZlOGgyHDwZjJeJ3B8IC6PkK0rwiGczRNTVX6rKa6slSVpahqCtPQODBO0wTNyye0OVzjO8CHkfmVeyXRWKXRSQ4IzirWZusMsxw7CEsDLQ4oi4K6rrzGFcovijWMh2PMYoVCSIcjyqIg0d7h0zRNWD7dkqgEnSRgDIeHh57QUIokTRHTcPHiZTa2ziFK8/Zb3+KLv/wLZMrx7LMvMZ5tgGiG4xFJknHr2pt8641v8ZWvfY3tc+eZjUdsnzvPa69/imvXruOAe3duUdYlpiypV3O01jx55SqD4RhrHMdlgcniMxRGwxHWGMQ68iynKpdMZzOaquR4McfZBmMU1kGDD9UToAzLwNcDg0o01vpymVk+oMozjHNUzqGHaZt1OF8ekyYJo2EO1jtIj+aH1GWNMVAUJaaqyLTCOo3Wio7H8n7bJtSmRQnG1n4p+6YhyTJfOEkpX4rTgdL5hw7Qj1uithI1T2Ut4tlnnPOlBJULqcDB+RXz+H2IUagtrISTlcfaK7Q/zoUkItN4zbpJgIzZ5oTKapJhysHGhN3mHvubcH3/FnJ4n2b4GJ/JRxykM4qqYJJoGiBXKXmiqYAqccwP77Bc3Kcs5iEqIsQEW6/1lcPLjDefxjhDVRUo4zV4pZTPmKsdSiWMkoT5cs696+9g79+hcAW1a7BO0M5gF3OSowMu50O0aLaH21ibkugB49EE0SnZeJ3PvfRZhumYqrEMhgNs7SNEnNKgFaIgwZIkjkwcq6rgYHXEfHFE3aw4Ot7l/u67PNh/j2q5R7nYoWkW6FbDNW1EQfzdgisnnWUxQcIFZU9ZjTi/7NJj60/y+OhJrt14m43JFi+98gqr/XvcqQ3pcIokmjTNWFfn+akX/y5+6uWfR1LDvDzizt4t3rz2Tb7z7te48eC71Lb+0DH3SNA1xrCzd8TNm3e4+8Rd1mdT1OYWiJCkKePJ1JuP+HjHqi4oVnPvnW98vYGqsVS1o6odjSRYSaiMxgKJEpQ4tIMUqLTBNZAPB9ROqGqHKWtGwxHrkwl5muFrMTgOj44xTc3R8SFVVTLMB1RFSdNUrG9usiwqjuYLtF+oi0QpEu1XxI0ViJJ04J2BTiiLgpjqN5nMfChVlnPu3DlfaS3L2Tp/iaKo+W//u/+aZ5/6Fq9/5ifIhmNGs3W+8Y2v8jf/xl/l3RvXOXfuMuPRBKUSqqpkbW2TS5cqdh/ssrmxwXe/9wbFaoFxBmcM+4eHTKczNja3aXA+isHattiG1YrlcuHDxqxlsViQZikjJtR1CdS+2pqzNFVFohRlcA751TaytsxkYxvEJRR1wbCZ8ODBDq6peLD7gM21DUZDH0KWaIVgGQ1Tv2xS3dDUNVgfW+oXYvRh1UolaGsx+JKfiQxBKVSSISohSRIG2YA0zUCExoRU8CT70AH6gxIb2i9iUM57q511oP2Lq5Tysbwmal3dT7vir/RVqb6EKB/beEddyFS7v3vErf2KbGLIx+uM50dU53MuG8V0fsj28Q6DpkGVh6i64PHBgJXOKGrDYVMxTsdkw5T93Xe5e+c2mFXrBPIOIb8asac3LfPFe7C+hVx4Adm7gz48RlmHCuBsmwY8HjIRRbk8olruMVAwE0hESESo6gKT5oyUIssmlMYwyFPybMyydBgHj022ePPmEcM1x+Y44RvffQDZAKs1pAOSxq9usr29Adoy0pqRmnJx8wLFumUliu3G8bwrMU0NquRg7yZv3fwyu/e+zc6dNzD1AuVqerXCvBIQuNoYfSBRq5W4jGbCWr7Bp577HGvjKTfefosb377Ge2+9x+/43M/y5POvcu7KYxzsztnfecD+zh5F2ZDnA8braxweHPPiqy9yfusSVx6/zOee/Dzmdxu++eYX+cq3f/VDx9qH1NOF5aLgwf4ee7sP2N9d96v25jlKHIPBkPF4TLlaUVcFq9WSsq6919v55XeyFKra8x2JysAlmMaHXDQiaO01CFGGPM8RoCgMs/VtZlmGdeCsZTKaMcpTbFOzsziiLCsW8wV16aMTdvd2UQj5aEI+HHO0WGGbhjTNaBpLmiSUhV9ccpoPyLKE4WhEsVwhtmE69umpw4EP4E+SjCtXLpNlOTrRJNmAtdkazz3/Al//+t/iV7/0Rb79nW/z41/4ad59d8a1t7/Le7dvMh5PePmV19g+f5HhyPPCMhhwXvl6Bw92bpMPhsyXC0AzGo8xVUlV1xwvFtTWUpaeHkizjFRn1NaR57mv62A9jX90fEyifV3fVbVEiaJpGpqmxokiUQmjydiDt7Wegx0OGY5GvjhPmpOIxqxqHpS77O/sszabMZ1OUSKMRwOmo5xdEawx3hrAkSlfFyNRUIfsH1/PRaibsNKqaD/AJcM57UOyjMPqUBrRSKhuoB85/H4Q0i3q6CkGE4r+KAeoBBPLXkb11XjSxKg+8FrEGboVYvthTCGW3VaYWF/ZGIyxlIuGzekm+XDErnak52aslgX3H8x54fwaPzk8z6E6YgDYRNMYR64TVKZZknLU7HNw9x3q8shzpDENOVxXRMVqhQF0DEd33iAZzXDjNQbLggyDrn3ta1yocewEnCHBkShfupRQFWKkE+YohpMR86KgMZYkydg/XnKwu8fxwrK1+Ri3d7/F9OJjJLccuIZbZshyMGRgFKuy5MrGOcphQtM0bFcVW/mAl7a3eWt1QIWwlQw4L8I9I7gkY5AMGWys8dObL7E5sXzz3V/lq9/6a9y5/iUod3y746IQvcSImAno/XKCOMWnnv48f/dP/cM8deUV3nr7qySLjPcOr/NgsMuly1d9vLaD6dY6q2LFe/d3cMmAq1vb6DxjPM44fHAXWxdkA83iYJ9UJ1yQC/x9P/mPfuiYezTo4pd9KYr/P3P/9avbmqX3Yb83zPjFFXc++VSdVKkz2WR3k2IwQYsgZcM2CRgSbMNwuPDf4AvDvhUN+MI3hg0YtiHQtC1YhEjJlJod2Gx2dXV3pRN3Dit/aaY3+uKda59TTak2IZmunoW9T521NvZZ31rzG3O8YzzP70lQ7r5r6dodKfBOkGtFWVZYa+h2LT44lC6oJznOWIbBIlWKBkmJvyl+J47RL5mQSJESKapCo8cOajqZoXWODynNty4ysiwnyzSdtbjBYYaBq9UK791I43LkZc0kL1IhdpYszwGBUJGha7HWUsgcmWVkOkPINL9M6bt7OJMWfs47Dm4cMt/bQwiNGre9Rzdu8XO/8OcQIvL08X26ZsfFyTNu3Sso8oLbt17jna99wHsffot6usB6l2Rq1tF1PUWRwCLGGPb2UmKwCB5vB9quZdu2WJeUHpnOKOqa3XZLpgsEAufSwm+73dB3qTDrIntpUsl0ipXO8oJy1BHrLMnrYvB4Ewl5hhSKXGgyBNN6hg+erl1z2p/R9wNFXdL0HdtWkWeSxXRGPxicDZRZNsY2KfAe5yQ2S0u2wTiQPi3RhEJ4hZfgTMCMQY1x1MJKqdD/Gpvef9NXSg1I9LUEMk9xO1H6xHSWMrnU8C9TgsOodLiOpY8xElVA+PBlYOXLK+JDGilcF900Eoq0Ls1fu+hQR3O06DGbDZOwYWgrjheH3JxmmODpjWNjTDp1TSqG9gkXJ58RsaMC4Ev1xPXXdL0kup6HpD7PYx/8Edndj+jnC2yzpUKgnEfJUXjlHIj0YI0uoEetrAsOEwXGedx2R0Ty9NkpzarhonX4fMnh4W1Ou46rVcM0RkymaXRBqQxmfcns6CZXewtWpSZzhmormGvFbw+WP15dcpznfFBVbF3HVmc8cQ7ZBT4MBQudc3/wNHnJG2/8Om/d/RU+fvTb/NZv/Z/oTj8BDJHIKO//CZtCeu5ECpHxrXs/z3F5lyqbc3P/Nbr5OZ9dfJ+7t+7yznvvUWjN6sljsqrCdltc39K5nkfO8tE3PuDt997GDgN5VVNO62SwIkL02ObVEKefHsEeAzLyJVU/gneevmtTqoMg6WlFAl4XRUldF8QoGfqOi8tLMBadpewsnSV6UoggpKDIRx1KEAgtybOcup7Sm8TFFSpJjNZNRyaHlLsVAh6BC0nC1HVNuomdTU/7EBlMT4iehL6URGtwzqK0YFpPvnRCxaT1LYoiKSpkwhYWeYZSEtP1IDTtrmEyXzLb2+fdr73P3t4ez548oNtumM6mPH/+lIPDYz744Nu8/tbbLPePuFqt2G6u0Ery+NFD2u2Ww+NDdF4QpSJTOdOqRsSAdZrtbsvgDFKlZAitNaYfAMGu2XJcV+PcMXVeznmUhjD06Y3iA0LmZKNtuSjLVEyQFOVIidPJHDE4Czi6rkVKTVYUVPUeMaaF59X5GT44JmVBXRVcbLfJieMcVZaTa02RZ5i6pMoTzJ0YEyw+BsgcdTVFe49zIKLBZQJn08MBl+bM8mfvAuaagRqug3tf2jxTxyeF+FL6dr07A6JNR9YY0rw8hICU/iWk/eXfD0Sf4oCu5XQxOAhQZhkiz3BaMIsatx34elkTq4xSSbZ+YCEylA9MdEnQiiGXXG0fsz79ZBxfXlOJvwSPxygIIzsAKVG6JM8n1PWC6eyAyWyfgxtvks+O+dGjh5w9+YLd+hxtXMosCw6Ew0WHVJJhPVBlRUrNlpKrqxVXl2ts03O13hHyKfmteyyOjoizgq+98TWeW89W5fhgwUecLumFwGaS3raUVU6O4CRaTmWgnk34hWnJ07NTfj8uWUzmHOn0gNNCcNUYzqeSnYDVRcM7k4LXZlPef+cvsVjc4T/5x3+fy6e/zygTTyzkaxIY1woGeP34Dd649RHdZkebnyF2Hfd/+H1Onj/l3q030bkiPcoAHwAAhUpJREFUn05pm4Gmt1TTBX/rv/vvkNVTfG/QuaZrG8o8vR+dDSxv3sANPSJ46vrVe4qfWnRDjPgYRtzgaJX0ybZobUSpfJzrSfKyoCgmVOUshUc2O5q+YbAJ66ZCQOnrKIN0LC3yHKzAB0lZ5FRFhZRQ5AoXDNYN9P2OGBV1UUKMeBdwAabzBW3bslqvkFJR1SWT+SwxEjJJbBJpX0qBH8cb9WRKVuRpYTJKp8Ro2B76LikviNy+dYeqrJFKMZnMqCaz9NCxljyvuPv6m+wf7GP7Ducs9954O/F3pwuyoqLvWspMMr1xzHa75cbxDYrXX0dJ2HtyyLNnL3BuwLuSLEsPFik1BE9eF7R9R1ZN2XYtZZaPEpp09Gt2DZN6Rt92MGoHsyxpmcu8JCsqAOyoytBKp/mrSoVeCE1V5AilcN7RNluq6MnyAofHBstqs8ZEz6PTjrJQ5Hme5nkyS1rdLGNW1UyqnEmZk2fZeDyVuBjSA7UaKMs6Lf9sRKsBLZMtnBBeal1/1leCiV93u2H82NgnidTRvjxxp3czMcYU0+7SkkqEZPb4V7rc651OcEmOFlJSsBx3ByjoMJiqwPUt0Xs+PHyNpRbsQgLinzcbCOnh2euMt7/zqxxf3uP86LVk4LA9g+nRqkBLPe5bKqaTvXTvVjXTyZJJvQCR42OK33IhcLprOb79Pq0+IKzXdBfPGLZn2PaS1dkLuvUZ/W5D1ydZZr9rEErgMkUsa5SqyA6P6AuNW5b084pqMeO7zz+hn+4xP7hNmU1wJnJeLxDzKe/WJQ9PT1nXOavlEW/VBbOz5/zIbPkuOcs7dwlty4+vVry/KPlGMeVHfmA3VcydRdmBGHIenzfspCQPgUX1Ln/xN/7n/Mf/0f+a7vL7iBheavR+QqoXI8t6j/3FDfbnB4nyJy3WOG7feIdf/fW/ChQ0m4bNdsdmvSHPCoyHm6+/Rj2bgHecnz8nny1RRYUWSUDQri85e/QFSipuvP+tn3rP/dSiG8fj4ND1bHcN/dDh3AStJcPQoZQZI14iZVlTz2ZMqwXRhyTPyjRCOpR0BBlA+hGuopFKUZUCWdZ468l1RTdqC5Uu8dZRFhVRCLxL7qXBePzoIptNp2zrmr39JQqBsT5pYKUimJgUFWOxlVKnGbKPCJUhhaMqC2KEMi8Zuo4gNSjFcr7gjTffYLF/wHa9YbtdI6QkL0qUynBuABfJdUG5qMdFkiIS0gPBWrRSKFngbEq10pmm6zsWsxnvvPU2jx48ZGi3iNiz3V0XoDR+8d7jzEDft5iuI9caMUZ0Awz9kLp4lYp0VZboTDKfzqmrCVrlhOixdmAwZnzqe4IdsDFghUZlGULnVGVFWZZpaSbBGUcQghgV2y7JBJvBIkSH847eDlRZyomrioJZXVHnBZnOk1FCKaJIrAmlk5wsLwrKvCRXGVrnFFqn5aV3yeb9M75iCEQhkTIQgkhY0JD8/IGQ9M8xEAhJoSP19QQ4SeCiRMSUDSeleul4+lISmnCNIThiCLwM7oyRQiaLdFXUSF2QVzkr31HLgj2VsTMtcvz5D84jb9/mtbe/yeztIrEvBPTO4tzo3lJ61FrHJJGMDsbT03nX4UO6z5q+ZeM6miA43W4JMuepCyhVsRsE2iv6wfPs4VM8DlllxCInP36DLM9wWIqjm8z2bjMn4+mTj1H7JfJ2zVv33uXZFw94VvQMB5Gv3XqN14eC//Pn38PlRzyY3OU73/yIixfP+NRfcd4X7B3t81YY+Nj3nLvI3z04oKi2/EhLtmXkl4sZL9YbTjx8VM5otaKJkSxGDqVkbRzT/ff4uV/7H/E7/+h/SezO02n6J2RcAS1zjha3kT4mrTyCy9Nzzk8v+eibv8ytd96n2zUMg+fw6JA7d+8SpWKzuuTJj/+Y/cN9QoDLkxOyTUu1t0ez3vD4/hc8+PxTFLBc7vFrr7jnXlF0029d17NebWmajvnc4L2k7waCd2mZEyWqKsjzgizP8T6gtETp9GKdM9hoiCKJ64UuiOSYoUVrQaZrApDnGV3fonVA6oLdmDsGAtsZmr4lzzK88+w2G3KtWC6WrNdbbLQEH8hkAun41mO8Q4kcH9Ii6JogVZUTyrpm6DuMdQzGUtUFi719PvrgQ/YPjlivN+N8NEuZbzFSFJEoNVLE8aio0EWRJChCptxOoVPXbC1Nu8NYS1GU4ykhcPf2HX7913+dP/7ed+l2V1jTExCUswXr5jnepu6v79okWmeWQEIqJW/oTLHZNjhnyLViUpXUVU09nTGZ7bNY7DMpcopMsdluePb8EU3f4+N1mgXgI1Fdx8gkc4sSkjIvaUzHbDKh8YaLJjkPvbfkWYFzlvVmg5TJFptpTZEV5CpLqD6dkSlNLpMBJtOpqxIqaV0zpZLNWCgCKS/uZ32FmPLr0uknJnmVvB4XpMxiYkSEL2cL8aUhdVQIBPESiPRS4n+tbCC8tBi/TGge5606k2ycx2wb3nv9kHlRYsyAiYHVepuisYQEIWmdZ8glUUcGIMSMJ4MhVwVZDsMYx2TRGAFtbygEGKnpBosWGUMucS7QSMH9rmdlWvrOsOt6FgXE1hCV4cmLz+m3J8g7B+gIMY9M791DHdxmOj/iZpXThcC56XD1nJ9//30ePn7Iadvxe6cP+M4H3+Sm7fjBcMrO7tA3b/KXq6/zJ27L1+YZ/72bezxY5vwfLr/gG8sj7uia91TJ//X0Aetc8QPh+Y2bN2jOnvDEeF6Pnl88OuJf9A3nWcFtofCtYakklRacDw4TBK/d/gUefv2v8eSP/gOIDhVfThUQCN668XXePPw6fWsQsiXYnu/9iz9gsrzNYD2mN9x68w2UlIgQaNcr1hdPKOua1clTfvSHv8fgNd/4xV/F6Yyr8wukEhzdvcXBnZtMZzOsGV55z71CvZC+6n4wXK7WrNYblosFVVngHPTDgLcbdF4yL2uUTBvuGBzBuZSO6wxNt8EGhxCCLCsRsSDPJSHkxJggGMZYbIj4EIlOYQczFpkcKQTBB4ILnK8usN4yyTXWWdp2QOsc7RxKZczmU8xgadvduL1Nc2StMvqhx3nPdDYhkxonBE0/kOcF9WTKt771Hb717W8jhMS6ZMDYbbcJZakkfR/SEqos0Eqn7lRJ7PjmsNbgrMXaAWccWiosis1mA8B0UlNWFR999CH37t3j93/vn/Po0RdcnJ8j8oJ6vmAYLFlRsV6vmNST5AaTSXgfRkmYIsn3Z7MZZZFmuFU5SU67yYTl3g0IlunykKKsePjoPsYa3KhNFjK51awZGO3/zKcTgnXokFB+h/M9nHes24b1bk1nejIkk7JmsBZrHZ2xQIsk6bQzIZFSkJESiZPRZRS0i7TguH4TBNIp6md+XVvPGTtcKcaRwzW9dVxI+TAupuzY3SpUlGPs1FfnqNcypQSdh+uCG8aZ63XhBakii2nFbG9JXmiW1YQiL+naHUJJ0AWBROayznG52fCH2xP+8s13aL0gKwQ2wGaw6Cx9DT3glMDpknU/cOYs07xiazvc0HERPffbNdNJyTST9OwI3YpP7/+QGC2HvkdVUFWHuBhwdcmdu2+wjoGrwyXxxj3+G69/i/2y4IfrZzzZrHhLHxCyisvtI7zyfLY95W/e+YDff7HmXwwbvn/+iP/ZvQ/54vEDvhgG7tueD5b7/Pdj4Mr2mDig53P+3N6U82AQynJcRP6927f4nl6BKMmE5ufI+YOmwciMX9tbcoYlQ1FjCL1BqZqvffRv8+SL3yVu7ifI+XjikCLjw9d/mXff/WXqoqYoSk6eXnH7rY/49b/997B9y2wxZ7KYY7oBN5ikabc9u/U5Ly7P+OGDBwg9RX/+GSJ4rlbnPH/ymIvzU07PzwhA17b8W//tv/tTb7lXFN3kcQ7WcXm54uzsgr3FHkLIl+GLfdcjjaea2pQF5tMR25qU7OBspO8Gejugs5Jh2BGnmiybI8UEYk3TOvre0BsDEYxJXbSLAW+3KTstOLSUNLstfdewEZGh61BaUZclB8tFSsAFzq7O0UIlwE7wFFmOxTL0gTzLUFIw2AHrPLP5lL3lPm+//Q4ffeMjhBB0I9c2zwvKqqLvBzbrNX3fk+U5VVUjSJHqUSrM0JNnOd5Z+j6lalhjExhGqrTpR7Db7XDWMJvPODo84q/89b/Bb/3mf8bvXf4W1rqkUpA5XbtDaw1C4ryjrmu6vhkjXxjldzLpm5ViPptR1jOm0ymL+TLNf5VC65z9g5v0Q8/Z+SndMIzzY4EWSRZjTU+WadrBEpxJ9mY9LkkRyBCTtCw4ghRYY9LcdlzSuZiUC8YPDGPoogjiy4XUV6LEGQtY+kck/hnodK8jNa+lYyEEpEq4FRkSuElc/+96UUXqdgMJPypE+p6OZ9oxyjuBksWYtfUT4fXjkDFXlsFYJlnJjcUebvDs2pZmvSYGC1IgRvt2DJFwueKff/IJ3z64xd0RHBNkgZGCjUsIVJUFpFLY3qDykq8Xcz67uOSxMKha4YeBdw73+N6TH6O8o1A5mT1ncqzoT1dsomPx2tusVhdY0RIPFuT33uRmkdEVgVmVY3drfvDklMa33PSRGsdsc8YbpkdJyR2ucE8+Yc9sKXM4zhbUTcM8L5jNJzzpewYLb9YH/P72BX/iN/zBmeV/vLjNf7h6wu/3l3zuLf/uwU1ubx2dMEjd8p29GWEqibIgRJj0kQfDlg90RZiWxOi5yVvce+cv8vi7TwjYlwqOg9kdvvbmL1BWU4btGqLFmo7Fcsn+zWN2F+eE4JFEilGaamyg6Xo+++QL2h7uvPYuH3/2Gf/P/9f/g2lVMSlKjo6PuWoaHp28IEYSt+QV108fLwBEgfeB1WbLyekFe8s5WguKPEfLjDyrCDLdVsE6vLAYM4xRPgqtSkLQrNcrsixy6+YbTOvDZKkMAqXSvFYC3jr6oU/SmiDGhAHDMPQwFv/NdoU1ye67nM9YzNKSq+87RIzsNltsP6R49BBHNYJE6YIQ0w3pYkQjEwOgM8xfW/CLv/wruKFnvd2OoBwFEk5PTogxMnR9YiM4R5QpFVWPm/9u6JlUE5SAZtdQlGk0kusMmedjlpxkNp2kYkqC/Nw8PuTd99/nD//ou2y2DUEKtNQUeYEtCrz3yVVmx6OjdyDT+MH7yG67pcgy2q4nK2YIkWGGgcz5ZGuOCXJzcHiTXbPFGPNSNO+ReGuRKkvfp+CxLhC8Q/hkIb612E96UmfxIdANPc5b3MhQkJDoTeF6/p+SnpNm8logGrjGlMSx2/uS7fSzn+kCXxobxq43hkgUgShTh8o1jyFGog/j99CPsejwpS73WrQlxmUOvCy04k8VXQFRGozdYr2hVCU6c4S4w2cZIPGjIsS5JE8rmh1Xzx7zv//D3+bf/fBb7FUVUgSOpyVzGzhxcKuc8P3L59ye77Fxgc+257x3Y4/D9SU/MFfcWM5wXc9rU8F2teLk6SWFmnFDLPjEPCYUGXkueeuN1/msv6Re7HND5UycoNquOAo7fDxje/Ec6wdyqdjqAr1t2dcOpWBZGszVOa+5nrgquDlf0Z1fMYuB7WbKennEa7NjhiC4MANfLyruUaECeF0yzTw7Ipet4crM+Qdmxb2q539SFsz6BpcPFHrCzWmJKx2DDRQxgyhZyBnf+Pbf5smP/z/E3VMQkMuKf+vb/01u7t9k9ewhq+dPOH3xnLZz/Nrf/Hfomx3ODGRa0e62ZFlBCIGmbVgc3eE7v36Lq8tTPvmT77G/t5eAXWj+6l/7G3z9mx/y3T/4Hf63f//fZ9s0HMz3X3m/vWKmG7lOzrTGcLVbcblOPv295R6F1shYIgpNUWQIEfHOJg5CcOQ6o8prMjVByxYtK7wV4NNbcWs7aBqSVF6Nmt3IbrfBuoBUGu8tdugx1mDNgDUWEInFG2G33VFUBUqqVLCdRWcZRV6waRqKoqQqS6IPWGXItCb6iNACOxgODw/5c7/6q1RVwXro6YxhtVrhrKGaTBhM+u96F0DIhEq0SZ7mvEMXOSKC7QfyLCPEiI4JoK4miqFtUyijlARXIipJiOmBstlsuXPnDu9/8A3+5R/8Ac4ajLf44DHWjfJKSds0aKXorUmwlRDpbY8UBcZa2q6lLBsGM0G1QFkjiAzBIZhQVhV1WWGHgfVul1QNoqCu51hncdYym8xQtaJtO9quSfNkrVjmFRu5wUuJLCpaq7BDk47TRIS/3shzXWOTTOfl0S7+qdo68mXTWv9foyT+m72+hJfEMQ81ptlsBBFksvem+UKSMKCuI2Kv/8GXxfZ6UDHOdL90JvDVb0KKhgEhLHWWRmVeOi63K642qwQjYYQLybTkG/qBLFNMTp6xiY7/3a7jG/deZ7acUMWMd/b28G3L2jfcVJIfbC/Zzwtu5o4/unxGldW8m035z5894tJK7rJkc36fdndJE7fcLJcUsxlIuFtMuKVKBltR95aD0+e4TYNcnbCyls5GLs7OsdZyFiOPULTOIeqC+WxCtTwAqdFVhvaG0kVWmy1T7xFXOXq6h9+/y0Ndsl8K6smE42KP6ATHcSDXgj0Bc5sW57kyFFHzcLulouK3myvulZ6/UizZJxmbsl7yebMlz0qOb73Bwb1vc/6jZxA9t+a3eOfOB3QXl5x+8TkxQFnNufnaDcDTrq9wfUsxW7x0rCotmUwntL3F9B1CwGJ/nzeE4vT0nMvLS67OT/iTf7ljdXHBL/3SL3F+cUldz195z71SpxsjqEygKwhywLiGpl2R5xI1WaBVSnTQUifdmvdYk5IbiqJgPp9y2O3Rm4a+d5ih5cHDS2bTBVVVQxAEkfR4Ao2IntmspGl7drsd26Zh6IeXqgApArOqZDqp0VrjfUArhRk6urZF6gyhkiNKSZ30xFKgVDY6vBSEwHa7xYfIhx99mzfffIvdbsswpIj1YiR8bVbrNGNG0LQtRVHQmWFEUKb3oJYqMQlcYOe31NMZ/bDBjF26Iy3FppMJ/TAkpgFberOgntTcPD7i137jL/Pp5/c5O3lOFEmhoEbeqo8O5xwx6jGNIME+lNSEmGhMQkqstexWF8iZYzqZYvoGZ3v0KM1azmZpwec8m90GGxIwvqymOO/Y9R1HB/soZDJr9C1VOUEJyUE9wwVPs9vhQ4qfH2wC3FzP/YnXR/TRFvRSL3W967+G3sV/tQ7/DK+fCC0cI3miDGk0IOMIqE+mh2sRaKJLpDj5keVD5MsAlziu2l4uzXhZnV/+t1Kt98jY0qyfM3vtHYzKGDJNkD7tMIKnt5YgYF4VrHvDxLVMTs7YtD0Pui33leSdo3v8g0cf88HiFj8YNvzy7Bb/YvOcrsj5i/U+v716Rh8yfjmb8nR3yabvUYNk4iMXITIPluXQcscknvCkXRGDgvPnrHdbmnZguFxzdX6J6TrcYAnOvfz5C0hGIxFRWvFFXVNMKiZHexzcOKY+vokpSlxZUISMzAa6zrNygbzWiKrCTw95qiui8tSVZr+cJS53dHyYWw58YC/3dBgEPevBsQsVV16yiZZ3ygnLoiBzEmMy3v/mX+c///S3KWzD+/e+wf58n1IUZO9Iogvc+toH5FXJ6uQ5q7MXZCqdMKVKnoMwApC6ZkfbJkTq/tEt8nLKYAPOBYx3+NWa9dUGrXJyXTArJ6+8514xXkgOsWqSsbdXMJvnqDKCsjjfY1yBVhkq5HhrsFybJ7rxSKQpi5yD/QXG9+x2azrToYtAZ1e40FPkJVlWI9GJ02A8xtjE4HXpzTuYgegMgiyFT4q07GjbBiEEbedSnHpvKOr0oq2z5EWOD+kbJEV4KWXyMWWP5XnBrTu3yYucbEjOLjsMNF3Hrm2SzdgYVJ4RRQK4+6EnLwuqoqLpOrKiIMZIWZZs1qskbesGhJIYb6mLnKArvBDY8cGRlTkieiZ1TZ5l1HWBUpJu6Kmq8uXDK8aAMQaBwASbbgbnsNawmM3ouxY/Fneje7I8o+t2BGfRWhOCZ7fbEKLAIdFFTW5SKoVxBmM6ohBUZY1CMFjP4d4e1lvatqHru/SgEop5MUHojHZoac0w1tkIzuOMeVlc4vXT6LqsvgyuEqR0kH81gfVnfY2nfb7ahV9TxxBJk/vS1ivGR0gMY0Kz/MojZUw8i4msJr7SyV+rd69zJMR4ClDS0HZn/OHTx8Q+wGAQziBFTJljWhFHrOck02jnaZodhz6wW2/52nJGszpH5DnmoKMxOy52PdrvEEqhOs9+c4ENgglbyrMzQrvjIGZk2zWuaVj4SBUHiotz1rsVz3c9D3c9F+eXOBtAZ2Q6JxYzQjFHegdDT3QD0VlwnmAdeI8PgZ1Zs11tuHp+ysX0MRc3bjA53KM62Ge5v6Q6iKw7Tw/ULqMeBore88IYWhEQZUaczHlGwU4EqlIzq6dkk8jjYDkuPEf5HF1FHvuGR7GFeIN5hL2yhkpw7+5HFIs7HHRX/MpHf4H95QH91RrTrAjeY01DPUuL6rNnT1kuDyjKCogpzbieEiLoomCvqrDWUk2mzJf7HB7f5OzkhKIs2FxeMu8HIoL5ZDqO1X769QobcETlMJnlLJcT9vcrZvOc6d6E5XRJJiqsC1hnaNsduc4xztD17cgv0Mm+qzPKMmPwGWiPDxKlCiCDoLEudYttNxCDwNi0UMvyAiUlmkjfbInBY4cEJm9C+gGbvsNaA9EjpGR/uWS13iC0JtmYPRFB33dInZFlGU3bpq5YKpRWVFXG5Wn6e6azaUqacB5XjhpNn3gIVVkloEuW0/c90UeyLEvmgK/ogY2zKKEphUIoTaYLjOnRmUpJFyM+cXW1IhJ59uw5m82aGP34WtJmXyBSeKWQDENPpiTGDCS6UkZVFqnz8hZnB4Ir0JMpg+mSztcahFSU5QykxFuTrMOZpjU9RAdmIMtydFbQG8O218xnczbbHU3bIEbdZ0SAlMlR511KunAO7SOllFjj0uJSxpGo/2XqaqoyX8qpgNRJ/llYpL0kVl0/JCKCsdsR/isdqnw5mb6OMYiRBIiXYVy1ha88cNISmpfchi9f+1eAZek32xCHLUV1EzWeQIwf6Ieks5ZSUmpNZw24yLwo2TUtldZkq4A57/lwcUBzesXX8pxl1fKgX3GjmhDzS+r1GbmQ5Lpm7/kzyjBQyAy2DWJ7TtsbnvSO89NzNl1DRCNjhlvcII6Bk+QlNhjwkYJAYS1d3+H6Ft+3CGsRxqYiHBKO1YfAbrejaRr004KDG8eEN16D1rDOS9S0IndTdFRs7YaNd4hMMo2RLPRc9FegAjMl2JvucS5XXMYBUZWU0xtcVp42cyynilw5nvicU3YcysjeYsnh7Y+YP/9jal0y7HYYZ9BVydXJKc8/+YTz8jGri3M+/sH3efPtd9CZwtYVRVETVUYxnZFP55h+YCJH16UxOG8pZzVPPv2U3W7DvdfucTs4Xjx7+qcs4P/F1ysdaXkmqCrNbFawWNTMZxP29va4sX8TLWra1tF2W4aueVkAXYSiKGCECCspmNZTVC5w0WJsxPYl1mR0Q0fXbegHS99143E+oIUmKokPDikizjtECKg8AxFp2jR31CJFbAghqCZTIBGysixj13ZJP+kd3TBQypR6m+AkCXB+cvqCZy9OyYoMPwz0u83LMMnbt+9ycnIyHssdziZdcqE12TgjndYlg0lvrqqukDrHR6jrOiUuoCnKgrLIaZqWZrPh1q2brLdb5pMK4y1XqzXej8oH619GcSMlwgdM9LRdy6QsRwVDspLWkymZVuRKoiR4Z+jaHUpAbyzGGzKVI1VGnucEInleYKwhl4reDgw+PayE1NQjX5jgqIuCrm1Spx0DhVJ4KTBDApxkIRKsHS3WDi3EmGeVinMY3UAvi811cQsBFUJCesaffbd7LQ+7voRIKoRIko/FaymZSLhKSdLsCg9RgpcBGdL9l+K8R5nYGJgo/hSoXfwX/Yvw7NafU8yPudqmLlJFTy4UxMAwxmYpnZFLSdPsAEkpBevLFROtUO6Kpt1SlTmXQlENDdOiYh01w26Dl4JTkdFv1vhg2SLxm4Zmsyb6gJYlbnJEtriBCRGjMqJQ5FEwk5qGyDSfUAfPLlgabQhFiZjOUWbADz1x6BBmgK5JyQSJPoNQSR988vwZRmj6ySG+3XBgBw6jpHNwCYRCMRUTZlrgTYqr2s9ychkpreXS7FA4in5ANJb77hGrxZTjo5vMZOQ+LVd+xyzfo1Ald26+B5ePOH/8lL5sufHG27x2701uvmkIQdCuL1lvdxhjuHj+jMOjIxYHh0SR1B/1dIYcfQFyjGvy3tFudlyen/L0+Qt+73f/OT/37W9T5Rl7+3tUk/qV99yrO12hyDJFUeZUVUVVVUymE+bLJXW2xAxwcXnKRd/SNlusC+iyfqlhjVGRKUlZ1WAcg9XstoZ2Z7lWQgbv2G03tG2LEIn0VZSJiTAYgXGG+XSSYs6VJoqAM+mhoETaOBdFQakVInjKoiCOeV2DtYmQFSPOGHrTk2uFkoKu3XL/8y947d5rtJsNfd/StR3nL56luWXfUSiByAsyrTGmp8wKqrrCW8eNWzeQeYHUDqU0aVwsyLMEtS7zDOscXdtgreXhF59TFAXLvX2Ojo958uQZi4ND/vC732MYhmQJDv7aLU4mJM5brLVJxhYCZa7JpMA7h3OGLKtRmSaQYOe73QYlE5siAkKL9EDsWvquRWs9Bmc6XHC0/QBSkZX1KCkTyUmoJFmmcaZPfAxniSqidEZNBO+wMgWtyHH+jFRELYmjvToyFt5RDCxGQpoMARV+9gU3XeIni3+aEoyM6y/HINdgnDQtScwFMY6wgwIhwjXdNUnhRv2ulGMhH0fCScWbLinky5mo787ZPPmXzPbegvyQdnXJpm/w1qS5vBCYvh+5Gcm9uNrscFGgioLT1UXKIWwd66GDGHB64NRYGtORASGmpWwMHmSOkjl7h28ymS7YOs+psWTOopyjjwEdBUrDVoBDEnTGfjVD+MBxUTGYnnPbpvBX61H9DtduCbMF9B0YQ3QDiYdpIARWp0/wec7rv/pXiNMJV65ntWtRWrCUE0ovCM4TCsW8LCl0Rq0yWjNQZDm1qlhkOW3T0tmBaTTs64Jzn7HNIzfnS3YCnvZb7u4f8+Gv/i1uT46xxlMt9lgc3U51YbDM9g6o9w+xZuDZZ1+kIIWyRuUFXW9xxidwkxC0m01aoEtJ1+z43d/8Z3zy+X3y6/FikVJU8uLV1vZX6nSFBJ2lIXNdTphUM4q8Is9L6mpGVaWFTtvs2GzWGOfGBAiNVslrL1VGtB4p9hj6LTIG8kzRD4a27VjvGrz3TKpqXHZlqcDnOYJIJuqXWkcRPbvdjqoomdY1mZa0XYtzKUG07xuMcyAzrEvaYWv6VIicZb1eMZ9OybRmu9nyyScf88abb/HGvTtcnZ+DFGTVhEcPH6DUC24cH1HP5qgsQwlBXRRMqhKXpy5pc3FJ27YppaHQ7LY9zlmsNRhjODk9oW0aqnrG7Rs3+PAb30RlGRcXFyz297l59y7TxWy0iIqxQ5So0Xa63qxGzavH2YEmeJSIFDoj8xEfBC4qCpnwdXmWMRhDlmWYUS+djYGb1jukHa25ZcUwGHLt6bqWvKjHhSQQ0tIuy7JROx2TAcI5fBhwMrA3qRAKYtYQrcJHaBG0QiZm6lhsoxiDA0NAeo+yDgVkwiP/DESwhxHifT2PjoAM4qXyIlnr40/8SkvfceQg5VhgX1osXhbx8aUnJkPkZUJ4agC/7HmvGbhDd0o/XFEdf0h5eBtzek5wK7phoB+6pMwRCYrZDgYfYFJP8J1BOM9cZygvqWOGkhJF6pSnYVx0C8F8PmOxOGJ2cMhsOme3ueJye4XZbhHOYqLHy5gYHXlB7Hv8qFkXWvMsOKSATCveufMu1dkFl82Gbbsh5jlCF0hrEdOQJJr9Dt+swQwwjh62z57y8X/6H/Le3/p7lN/5C6ybFfPTZ8xsi1OCw7Kmror035Gp6FVVSSlARZFIfFIwr0omWlM0Gx5uLsn2FhzrCSf5FrRkWZTsZTlD09M2Pcc6H9VGEe09UmSYsqSaLbhYbXnx9Iy9G3eYHOZkWU7wjE5E6NqGvutQWTJFLZdLVusr3rn3Dh9955sslxPuf/Ijfv93v8u//e/9T3/qPfdKna5UijwvmU2XzGeHlOUcRUbwY2S6lJRlzWS2JLs6pzPrL2/oGPDeJBi5lXTGkWcT+l7iwsBuN7Ba7ei6jmk9oSoKrDWE4OjaFjf0ZBKODvep6joxHWzPZZFxtU4gjvXW4IaB2axGqYyuS4zPMM5ir7uKKCXRB/ouaWrdGKg5nU4pyoJ33v86N2/e4Hd/87dZLObc+KVf5PmzMx49fMB69cMEDa9r9hcztJRsthu2ux3r7e7lmzCENKgz1tK2HSDZ3z/ig4++ybvvvMtsPuHy8pKuHzg6Pub1t9/i8/uPx9lwQVlYjIHemDTqswYzpHm1VBpvDaWQeMDJiPUJA9n1Bq3ql/CZMG7LtVIMbsC7niAUNkSCG7DeUVZT8rLGeIvynr5rUEozneb0gxk5qlkymYiA8KCco8ShdaRSkeW8Qs1yYvA4pdm6wFln2BiPu56AjqMfokc6R64VUxGoRESKPwPd7qi9TcPX9KFAIlSJcS6dxnlxpNMl8hgipjl1vB41jOe2cU59zW+9LtRcF9qYvicAIV7zeAGRI/Oa5d5t9vZvcHz8Ftm3/jwf379P8/Q+24sXDLsdOjqIoKucTOdMZxOUGuHcWVocBx8o8iJJHJF4mUE5RRclxjmirjjZrLm4PGVOejAu8prMOs6HAS81whuarMZlU6LUHNQTlj4gioxoDaebK/5Fuyb6SK01y6rkfLeFeppMO97SDw0hW5JN54ihwfctsd1B32HWV3z/H/4f2WtXbD/6Fn7/BuXukoVt+NAb3icjj5GZkEzLfMz9U3Qmacb36mm6f0LkaugI0bHcaWx2ga8rjmYL1utLNjGyrCbsH92kKOvxh+mI0WFNj2kb1leXPHnyiElRcfvNNyjmC7KyZsQUEkLEDgNKKeazObtd5MaNG3zrvfd572vvc3TrBsEPGJfm3K+6fnrRFanbmc/2mdX7VNmCXFZEL+nbgVy0ZHm6sXKddJ9d1+FDOvpGa+m6gb5P1skir1ivt/TDwGaEyXjnONw/xPl0DCcG8lyxP19Q1xMm9QRrDbum5Wp1yWq9xgwD3g5ptioF+aRKR2bn8c5ifWTXNBRVkpURUvGNSuBcYLvdEIUgLzOIAdMbnj19wawueP3t13n+9DnbzY7Dw31ee+MtdrsdDz7/nM8//5TPP/2Ermnpho5+1OxqlTi2RV4wX+xx5/Zdfv47b/P2W+8yXS7Y7jacX57w+GmaWb/34Qe8+dY77JqW58+e8r0/+gO2m0167VqjXAAVaNqOlLBr0SGm+a5NSb0qz7E+jRRCFjDOY4MgHwFBea4xNh3JohB0u22CpkiVumrVE0Igzyq6IaEvrbOJtPlyE++Z1CUMoJxEOEGlK8gCVR45muRMqwKhFH2Ay84htw3d+YrgxkImx6ISBBrBtM44mmTMSkWV/ezjesRXxhwpaOC6CKb59PV0RAjG2BvG7MHrpdmoe7gu3GO/K6RItuf4ldn19c5OkBJBtCIr9jg4epvD5T1uHr3J4fHrVPUCISTnzcDXvn7E89vvoy8v6XeXyN05CxkZInTOsigL9iYTmrbBDB17izlS1Vw2LauupQuafHFI5xz95Rmr3YaeNWG3TfJPAl3XEKxJjOtqwkxXqL5jtWsQZU2IA5cSLoNHGVjUE27euMtJ09Gajo3wVLpkqipM9FgB1jlEXhFFilAvwxJ7dQ55CX1HHDpCb7n6j/8jdD8Q33ufRkHTOE4uL/lnp0+phOXt5YR3J/u8PdnjcDqnynPyPBl6emPoYqCSmqXOEc5zefaM/Zt3uF0umB1/nVu5Z29WEoOmqKp0MvERZwe2F5dcnJ/SNQ3z2QLnLM1mm4INVI5A4mygbRratiUryrSv8IFoHF//2tscHE64OnlG8I7tdkvX9q+8514JMS/LijqvyFWBHOEe1gR2mxY3QFENyWMvAmU5oa7nDEPH0KcnUtP1+JgyvHZN2og3uy1FDotZTajSXMtbTyYFmc5YLvYoygkIxbrp6LuGy6sLhnZLcA5n+gRd0RKFYDrGpnddAsz0g6VpW2SWo6UkV5LkbdAEDJumQWvFwf4BZVXx6RefMZ1P+PrX3+X41i2Eznj04CGrzYbLyyuOj27w67/xa/yVv/pXMIN5+UNYr1eEEKjrCVVZpYj1skZIyW6zot1c8umP/4Rt1zCfL9k7PKQsSuaLfbbbHdtdw5PHjxjahqFrmEySWQFSHtquaVFCEaLFuQE9UqR0rlNXTQoCNdaQ5zkWweDSzehDTFk6yNEclnKxhNQpXh1JrhOLtShK1pv1iMLUTCYT+lGPrJSkyAosaWvrrKPIJHvVhINFzcHeDJUrtoNFbTqMlJw2DWbbE4V8aRiQEXIt2J/X3DqYsT+vmFc/+6IbR61pHB8QKebl+pPpfn8Z9SuuO9f0WBIjQVC8dJulXwlzeV1hr/8uEs1MF9STI27cfI/jm29ydPA6i8UtMlWC1LSuZ9VbtsZxbgI7D1dImmqBqxbIvWPqXNA7SxsF52ZguLyAjUVESSEVLjjYtfRNQ5/n1OsH9JkiyyS+zNGbNcomlGSMkaNixkl7QiMCRkKDRVdp5qtVya2q4uTkOTabYJTksrfs/IaqPmIxXXC1vmCnKlSpWOQF68tLwmRGmAtqBd3uit5FxPEUMbQIbxHtBrc6I2y3mN/8x9TR0H/wNcKsxluHj9ALyXebDX90ecW7xZS/dvdt3loekClBluVIJaiQRBdx1hJRvHP7Lfb3jpFKkfU9ZZGohEGm5GtEehB65zBdCyFy+/YdFr9a03cDzWbHxck5CzTlLJ2Ou65DqbQjstYQgXI2JXM5213DyckzVldXbDdbppPpK++5n26OECl+W6kRVB4gWDDe4URgaA16t6OqaxCKIi+YTOaECMY4pMwQssD7QDtKwoQQ7O3VGOswVqBJqQ65ADLNZDJluthnMIa22TIMA8PQYYaOiMD4MBofEvT8cG/O4CIXV5dEkn532zRY5xkGg/COarlACYFxiQG8a1pSYyI5Oz1hGAb+6T8+papKbhwdU9U1r73xGhdn5zx59IiHDz/ji89/RK40+/uHFJMZeV2z2N9LfAlj2W5XXJ49Z7PZsGp2KfFXSarJnNliia4qprMZu02S0DjnePrs2ehiqZKqQmkGk/jF3dBDjCPlrE1Lw1FnFEIkBo8WEoTAxUjTD5R1SEcnJM5ZpNKEEb4tpCJXOYM1RKUwzpBn6biVhYR5bJsNKkvQorqsErjIp8SH6/llsAE3eKJ3SKXJck1elDgUeeEpckuh9XikdteCVGIIlIVmMZ9wdLjgaH/C/F9j0/tv+vJjFLwcj/4iXn+9SQTGtdxLJrJYusdStR0bYoT8UgEhxqWifNn0RlA59d5N7t39iDdf/xY3jl5jNjnGjUu6wXl6L+gHx3ZI75HWGtrWsLGe7WaFNA12t2F7+ozPzp6xdoYw3SOImv3BUmUZpiiwFxtiWUCWMVvMmPiBu/mE59uGk8sL3Okz+m6LndSEGCmlYnHzLvdmNbumQXjJxfqKbZSYoiIozQsbyA6OqTJN7j3PVxd0asJgdkyLnJmUbH2H0zm73lPWNQ6wSuBURrlI/A8hNFm/wbarkUsCsSyJuy3me99F7k0J774JGcSdgTYSnUwBmhGebTcsi4rDyQQlIpNMI4Ugm0yZTQ+pJ0tynROlJnpPPZ+SyZZut6OY7iGkwFuD7w0hgCwqMufZKwoW8wWr8xVP7j8lqAtkOSFmGZ7AZr3BdSlv0XnD6ZOnnJ6eEqLn4sUzBtux3W54/bXXKfL/mou0a6F3ckIBMXVN0QdidESX5FzemSRfyhRVVSarrvCEqMkJBGHQrqcuBEVRMriBk5OB4CKm2yFCwAVHWZbYUZDsQwLadMOAMT1EMMYQg2dSV5SZ5mBvQYiC1eaKLMvYbrY0TZuiZWKk7XtEkdH3HXmep27QpqiZECOmT5yH1eqSspzw5PET3nrzTdabDXlZcHzjBgjB1dUlTx485LI548ff/x6btqW3jmmR0/SJXJZrTa41QUiWe3vcvPsa9XRKXlRIKdiuNxRZwXQ2w/Qd69UV6/WKTz75EUJ4sjGR1QyGrmvQWTZuyj0hhNGBNs4LVUrz7Y1hVqa0iK7v2TYt00kFwSdOA5aqqumtQ+sCoTx4kVgXUic28bhZL4sKYz1D3+F9IM9ylBR471A6MWSDS8AdZzx2sJje0PYWlMJag3cu/fKJ4SCjIIgxqDx6lMqY1AWz2YTZdEZV/uwj2L33o8ogpcMSBTGkr/ullCzyFW1umuUmF5YcT39jLPvLhjh1uVEIlkdv88s//zd5+/Vvsb88RAnFECOtdbTGIYNn13WJxOYD/fkJl5eX9LsN25MnPHz0GQ8efM6q3SCKiunyiGyxz6ScYc7OGcqay8k+5d4ee8FzMERW6x07qTCxZ9ddcSLBOFBEDucTyDTnEZTKsLsLPn3x4CXVbH++4PX9N1mtthgfOL88Y5trRFYgY86xzrlTz7iyLV1o2YYaXU+ZZznr83PsfIYvCpZZxuX5Ka6akC32KFoS81ofEGVGwKKmM1zXItcb/O6K+Id/xOz2DGY1OzcgTKRwgZtFyVvLQ0qd4YgIKemMpS5KpuWE/f17BJnY2z/45AG7AcpS8cGBJJc9w2bFQTXDDANd02KahhATHvbq5IyiKJgsZsgsJ5K4yFmWJYKgTbTBfrOmzDOQgrOzE+5/8TmmbylyhfWG3W7Fb//OF2x2G/4X/6u//1PvuVeMF1KYoo8JuTgYl27IUcTv3EAuBEIlOHJV1ORakWWawQfqqmI6neN94Pz8OZvVJV3f03WC3c7StQ3ODOQqjRXquqaq55iuHRdODU3b4GwKXMy0YjGdsJilX9tuoO17vHesN2khN9iUQYaSRGeJWjD0Q+rYdUooVkLgfKC3icWQqYzV5QXNbsOLFycIIVitLrm6uqSuKgZjqGcTikmFF9CfnnL69Am7bQLSRFJk+xtvvsli/5C+bemHHhsCZeVYzBcEH5KCwDqqWnJ5tcJ7z2w24+L0Oaqu8AEGk0hgPgacT9l0IfiXtH953TmOHVXXdeisoMxScKVUgklR4UhJH/QtDsny4JB+SCMKFz2DGZJ9W+tEXhOSvMgxxuBMhzEdZV1jB0PXd1T1hDIv6M1Almc0neX0aoXDMR1mDMGz6XrWu4a264je477CNYBI9H6MUEljkeHVQKZ/41dSLwgCYyaaH0evIhLkaOcNJDfdOCdJEJw0FgsxzW+FiF9RJQhCFOwt7vJXf/Xvsrd8Dd8bXjw/pTWGK2foe0dzecWD0wc44wlDRxbgwYPP2e3WbFdrdusLnO9SiGeeE1VGFz12MEjZc1RNORt6vDnHPn/EZak5nUzRgHaOg+kcOdvnyfqC2PeEbsfzSYUXCqk0y0nBUX7MZbtBVAuC1ly0G062ayKa2WTKTTfhanVFUziC73leJZXL0eEN4m7NFoHPS0w5p7pV0vkdQSvaomb25pvsuhYTPcVsgWlavKpR0zmxvUKbBiFzyGf4LIftOZM/+QL9cx+way2y7ym95XAypx8GsnJCoXNUllMWGXUxw2YzfnzSMVtmrJueVSzQ05yLZsejF+cMwxmlKti7nRbczeWKzdUlWVVw9uwFD374MW+8+y6L4xssjzS7VYuuJ0znU6rZhNhAWdb4viUrcqTSoCSzxZRd6Pn6++/w8OEXfPe7n7Nt2xRX9Yrr1ZQxBMFHhs7QyI4+N3jf0fc7Sp0hs4yh00ACuWiVo7RmOsuYLQ+YVDPsYLFmoNm2tINjddWw26b5LN7hpWZaT6nqKRGSi2W3wRmLcw7jLCIGFrM5Rwf75FnGatvQdgNaSbp+oO16nEvW4YhIsBABWqVipXRG1yXba5FnDIPFGcu0rhEiMpnU9H3Pgwf3qcqS/eWSoazS/Ha3QwhB33UM1nJwfAOkHF/TNvF3Q8CGSAyBzXaD95HZfI41HucC+weHRB9YLJf0g2Wz3XJ1ccG0rrmI8WUUknXJ9quFZjsYhn6EIr/UM6XRQZ4VxJCO/WYYKKoaT3o4unFGace4b+c95+cXlEVJD2TRYoKl7TqyvCD4yKyuWEwirRTsui5perMcrQt27RX90FHVU7RUOOvZOcd6t+Hk4pzpfIbKc1oXuNi2DH2S6sVwDf1OrIKhN2zXDataY4c2zT5/xte1IkGI8GUxHUHmhEAYH3Ivk3+JIK/fWCl2KqkU0p9JYxVFUVS89fqv8sPPXuDlCYOxhCDZ7QaempbdYDiuSopu4KTdMHQ7dITMWDanZwzCQ5GBjUitqOoJMq+Y65J2d0Xbr3mUVal4ZiV5t+VyZ3G7GT4r8AQeuwalJFFr9pZ7mN2GF6fnuGoG9QwvOlazObrIWU5mHBcl/ccnbDMNhWbbbekKSfn6PW7JgufPPsMrhStyLnZrjo6PkH3LRgh2k4rp9JD82Wd0eU4/nTKd5DTdllDPMfWCatLQm5C6arPFhpzgJBQaoTOysqR7uibMHqAWBXeKikxm7OU1d+b76FHlLIRC5VPE/DaPzhvWF+fo5+fsJOy2V9jzK2Z7+0zVFbI/4+7dt8nKiiwrxrGGZHd5ybPHj1itrhBKUc+mqLnCGcdqtRsJf4Zut8PagXJS4/qOq2fnnJ48p9klk8liMeWdd9/h9GzDZ198wbPnz155z71ipptmuUM3sNnswEd0JnBhSCMD6QkRnBuIXSBETz1ZopVkOpsxXyzJVIFRBi5g2zpWqy2rMZWhKgva1pNnJdN6yjA42q7FDKl7Nc5gnYMQmNQVQml23YDZtONwWyacIKNcC4HzHq01arT4+lGHaQaT7LkIlM4oCo0PCSwyHeVom/Wak+cvuHHzBtNvfZtbd+7w5NEjFosF69WKpkt64t3uagyGzCnrGiUFV+s1w9DRtk2aJYsdy71lwkcak2ZM0wnb7ZY//pM/Rhcl66srpICiLCGAsQbT9yk2XpiUthvTDj11VHK0o0pcSFQs6yJIh+h7hIhs+gG1l5x8Smn6waKUZOhbpJ6C0qhMogKE4HDWoKWks5ZJnmDweYCua8jLmrqakOclXdvQNg1KKobBIaTi4nJL3+1w6in5dEJQObsYMSHNcK9pYzGCj5G2HXj+/JRgWupS4/yfBYg5I44y/X8pIiIkNq0YNaJwXXRJLAYYxwnpoZdUCl/SFUT07C/eQIgl690Wr+DsdMegHbJ36cgaHQ/XZ7w2nZL5yPr8jO3Q4UxLnklk15HtWkIpGXzEbFdk2Za9+nWWkwmx2dEPa7yxnFUF+WxOns04KEpuT/Y4v7zg2fkpPs+Jk5qLTDK/dYe5EJResRDw8PIZm2GHLmd03hLKgoMbt5gYR7u+ZKUDfVYweAXTmhtvvEfrW1a2xU4rXjjPnTtv4npDk0GvI3e/8/OsXzxjrTK21YSDr3/A+WaHz3JqqRienRKqGXr/AGsGRNsTB4coKrIyR+82iKuOcppzqy45mk2QQRKcQ+d5Ss3OKrogOH36iOdBYEXAX225e+eYwvaYiUN4i3YtRVZycPMm5WyKUinLUSl4/vAR9z//nFk9Yb6/pJpMyIq0f2q6gbZtGfBsV5eIGChnNat2zeNHD3jw6D79dsWNwz2GvmG5XPBLv/Qr/KW/8jf44Y9++Mpb7qcWXSVA+IjtLV3TJxIPkigsUTu8lKAFUSYwi/UpM6qqpxRFTiaA0cxwer5is2np2p4YHUrEJFMKnv2qItOCpu0wQ88wdPjgGZzDWEumJCrLaQfP1foSpQQxBjKV3rj5GKlurEkaSCFQUiTNqnXkVYWzluBdWsLpZHSwPo0tyqrC9gM//uGPODg8oP2iYX/vgOPbN9FKcuPmMev1iiIvCdZxenqK8xYlFcEFyqpACImzjqv1GusslZywa3cIodk/OKSqSs7Oz5FC8vTxI4wZ6JodWinqomDbNBjjsHZARFCyTMUgveXHWVOyNEuZowRpzOMMSilMNCgtsdazbbYUeT5u3jOabkdVFPRNQ1ZMiNFSFAU+aHwIRG9xBnqRbI6SQJYX9N2ObIzlMVrhrEnZbGkVn+aTvaM3A6tNh6hqqApCphMC5jqAEYjB03ee06Fns1qhRcQb91+lTP7//IpR4MOXYEY1ciJSoy6+7HIFI0NCfiXfLd3zISSQeeIqSHI15bNPP6YoMk7WK6bVnIvHT2iVYFlOuOE9zzdXfHr+HE1kLhy7bo13ls4GhDOoTJAjKBJKDiKcrs8SgEblHM4WxM2GZ7st3gf6qqJtdnRNx+L4JneWS7TQyMHyeey49I5cZjRKIIeO/d6i1y1hOrCblDyMNaiarC44nt3Dn56x05agIysim7riaHmD+cljdkoSsoLnneX28QLz+D5usc/WS+7uz1lttwxZSbmcUsWetqyJRUnpHf1gKecHuNNzZFYS1zsy0zPPCqaLJcY27IWapS7YywoqXUJwTHLF/uwAWx3yw6ueEHOKQuFtYDAN7uosvWe8Y5ErDqsJx3tLlrduklcF3qasum7X8PDBQ56fnnHzm7co6zKpobKMejalnpScnp4yPdyjqAoyn8xCzdBxtj2jyw0n2xP2lhMuLq84Pb/kn/zjf8p7733Er/+1v/7K++2V7IUQAtY4TG9wtSVDg3TAkDovnSyPwUW8HfC7iBeCqh/QsqdpLQ8eP+X84gqCTQjGfkAFD8FSZClp9vT8nF3bU+cKay2bpsUMA1WumE7mCKFwpkPJlAgckaMvPeELIwHP9azTUeQlIgqyTCVAS0xFQOoIcbQKx8Q8TYtmT9vviOcerTLOTl/wyWcf887bb3Pzzi329/eShbIsWUynnF9ekOUVbozWLsuCqqzoB4t3aQY7my5Z7O+NScOOtm148MV9+r5ns7kk+IiSgtlsjtusGYaewaTtdWp0PSJeW2yT/EpqhZTptSipiQLMWHhzlSNEpGt2CDFFYMnLCSImcA7WEKNKfvLoKYqSvu8RSiKVQsRIpvRoUIkED5vtiqIoERF0VuKtTUyCGNnfv8H55QU+OqQsEmoyxpfsAmIaLYzmLvwYdNmanmgN0f3sO92v2jNiTCxdMZoWECSt7nXRvU6HGIE2cnQBfsnkDcQoUEpzdbnj6vKcWVVwdbHiAkVUirbrGOQJB8s9Kq2wbY/1hsvgyWYTdNej6Fg7x5ApVJaRKcVBVtH1HbtmBzpDlDWXMZBNZ0z2D9GDpXCONnqulhWtGVBas8AzbdbU5y/os4J8NiEMA89mU4p7t8jzmlvFjMcPfsSmaZH7NU4rThQUb7zFDSInD76fwD77klWjWN57l8nqGU9XT0FF4pBxe3/BU7PlqvO8du9NjuSas8qyqyPfObzHH+xabFZxkN3gxekKW1eIqyuCKsEarA5shsT8mLqMfGs5vFmjIizyjMPJHnVRYPUez1xF5yz986fcmGi0ccxCw+UXj1npgvZsxS/9hV+gmhTs3bxBXlfEEPHG4AfD0PVsNkleKrXG2J52tyUqSRQBmQl2VxcU04LJ3iLtTnZbrtZXnHWn2Inj3e98QPO0w9qCN9//Oos/+AGf/vhH/OLP/8or77lXpgE76+i6nt4OhFAhhMDHASVDKrjaJ+hvyMElW6oxlr7t8DZwcbnj9PQEGRxd19B0HcMwIEKC1RwtanbDwNnViqoouNru2Oy29G1LrjRlMSMImbbqzrw8DlZVza5tyQRYOxBCwIfkokJ4IKbE1DLHj7QxrSVKCkTwZEVGLEZ4TrNL2EcpUxpDXfJ7v/97DMNAjIHdbsvt27eY1CV5prjUips3b+J84kZMJhPOz8+ZLxbE7Y4bN44JLiVDyLzg9PkL7OBo2obz0xdcra44vnGD5y9eUJVl4i3EgDV9YipI87LwMbq5BD5pbEk0MwgEZ5Nge1Tw+xBGh5Wh2W1HcHmLUCklI0SJcVvqbJkKurXkWU7wZnTUBYy1aKkJweKCZ+hd+pzzeAF5VqS/xwwIKbh1+x4vTp8QlMIpiY2JAyuvl2cvbV7XR/hACOlH9GfBkJYouOJlR540u7yc3yaWQlqMSVLybwyCqNNsN8ZkIU7z3PTvSmdMJoeI2PF8fcl8scfZYPFVwZ3ZnG2748wYMqG4tzxktb7krFkRA2R4oh3QIRCMJ3iH9ZHTiSefTKhUzSSrmJcTPu+3NCqB/8u6ZuYc5uyE7OkT3N4+gshZ13M5nyPv3mUuMqbbDSddg9mbYX0A4XBioHznfSZS4lcXnNNhRI1TmmxWcvej72B95OziMdbAplry9t5Nmm5NF3Y83Tl+4c3b9I8/ZwgTbg0Lnm1+xIG8yYe+xA1rqtIzm5R84+Y9/pkUmCjRB0ushzLTdNuGXmmutOQwrzB9xzQWvH3jAC0EtdZYkfHjpxectytWmw0TBRsTeHNvynpl2M33+Lxx3Dq+C1lOoTNUWQIC23WYdocfOrJM8M1vvsed2/tMJwXb1RUIxaTvEVrS9zukBDv0dK2iqEpEJhhiRzmZ8Bvf+au8dnSX//v/7T/gk88/5a0Pv87f+Nt/h3/4f/kHXJxvX3nHvVK94Fzi23rvCXhCTINolSWgTRgRdkpHlMyxNiBFmvN2Xc/J6RnBGoJ3bLY7zGDouwYZI7qu6G3g5PIKESO9dzRdiwaKrKSqa4JUDH1Ps90gZcoEm06nhBiIzuK0pO86olSgNPEaQi4EfoSwi5cWTEHb9iitUVkCmjvnaJqWxXLJYjrn1FywvlqP0eqSF89P2N/b59NPP+XuvTuYfuBydcWknrDeJNykznLm8wVZVlBkA3meMz1Iy6Wnz5/xxYMvKHROVuZcra7w3jJ0LUWeI4Sk6TrM2CGLGDHWAREl9ShNEggkuS7G1xSJI4HKWUNeTdAqe5lcq5XCOU/TNBSloyzTzNqNxcG0LXk1SbyKQqaHGQLHtW51XDCNkBdBUrEYZxjsQFlUlEVNb3uKvCKrJvTuSylCDAluk4yx44AkxBEInhY7ggj+JwlcP4tLxGvLLqNwPj0qvgrBifDSGPHyY4Exsl287HavlQtSFGmMpiQuBDbRYMzAYDsyNWG+2GO4eIGxHU+6luliziJaGHrWzmKmU4iRwjsqY2jtQF8WDICOAZ1rdF6y3w/sBgPWYTcNT4uC/GifMq/RXU88OeHq+JBeOIQNGGVhVlLGJdHlhEIRjGGtZXJo5hNuL/cx/YauLogMrJqey7rieDmhOnHsREMZPc9Ny4c//xHf+/R3KLKKw37KsFljGs9mdZ97bc/DH32XT/QXvHHviDeXC26/eczdbEVVegL7iOmO0LZInSOkIC8VavAopfB5zWXv+aYM5CqlHP/w1PCjyy1VNuXm3oxCSU5fPORfXpxxfvYcEwUXes43DpdsXjwl3tkjzzNE8PTdlr7ZYLoOpQKHN+YUlUcEnbIN2wY79AQ8q/NzonAEN7C6SCqeKDzzesb/4O/8D1Eh8lu/+Zu8ODlHhZ7f+sf/iJ//c3+ev/Pf+jvE/tXL4VfqdKP1+OgQpCeqlBGpJblOpCMfLSZAJiKZVhQyxYV762h2PabrqDLFg5NL7DDQ9x3WDAlmkS25XG9wxpCNN2gmNUprdJGOdM4aurbFWktZZASRCFr9GELphgEfQOoMO3QQPZkuk501gvNuFL4Hog/s+oEiC5SloyhyyBRd32KHCuctUgomVUlEJKPD1SW/889/h73Fgnoyoagqbty6RfSBwVh0rlifXzKZ1FT1DB8DWitidAzW8OTxY9ZXVxg74GPyxCuhaJqGrMhQWjN0LcPQEbwfO6vUqXsPSqiRnJJiz0VMc12CgygxrkdKjSzTiAAhEx4zeLyIWCso8zrh9QZDnhcMfUsQY4GNgFCpII967JSilmbehMgg1QhviXTbLcE6ZtMFRVbQMyDzAh8MPsZ0NP+K9VXEMUkijlpWpVKVU+rPBE838RVGo0MEiEQp8DEiv1JI4Ro/fq1SECkbTkRiSAixKCIhCAQ5AcHFasXR4pjPdhcs5nOmTcfzKqMxAzerKavQcK6h6VrmSjMjYx0HQlYQZcAPYAdHPqlgsMRKopBsdyva8edeZzmzxvKo1PhJRR88gxuY5jA7WBC9pzc5ITSYPOdsMkfcfY1qtuB1H/ji4Q+IdoI+lAjjee4L8v1DXq9L7r/4BF/MkBSIvuXmO1/D9i2Pzj5BvnYErmApMqam5MGPXzDtJ3z86Q954iBrt2RFzs1D2J2cchIG2reeceuv/wY/f/Mep3GKyW7x/dMrnMwQ/TOEVBB3RJG07eet5dHJQ8zuKStucTH5JlRz6mDoVxf88NkL1s0FVyHJQfeyGe8uCvLtU3S+YG95l6LKid5g+zV9s2a32rK6vMKanr7fkWcTyuk+KtM4M7DdrNht1skJ6gxCCLrNhkld8drxa1w9O2O6mPH48VNm9QRjJN//+FOGtuVX/vyvcvfNr7/ynnsFZQx8TKF4UoPOIjqLqFyhM50cHsHhQ8QTiEpQqAlKpnnrbrtFa8nVap3y4IPDDkNaPtUTmsHQ9sMY1w4omY7CMaCEwnQNQkjavkPFiEeihaJpOqzrCTGFWaIyXAjYrqPINXmWJzCGdwwmouJoeR9JXqmzCeRaEdC0bUemEjthWjmUVlxdphSIy/NTrPNEH3jx7DmHR8dcrC7JVJrxGWOYLZYURUnTttRlSdt39NaSlx39kHCSzo0W2rwaRdiRYXBUIsOYROAP3iFUctO85NHKBDMJYzx9QkgqvBtwwY1cYEPoIdMapTMEJCyjc6PyweONww7dKGkKuN0GpXM21jKpJzibwNORwKSq8GPh9M5QUSZDhu8JMeIGQ8OWvMgpyopcZwkoNLIGxEhveFnUXj78JWQCgRo/87OXjMXr34SAa7qY/3KeyzXcZrxeysK4tgSP5fjlxyPTag8RSvrecHRUIs8t62HNfr5Abnc4bzjrd1TlhKx3ED3b7Q4zLSnnM/RqRWjW9ErSLOYorcmlYJ+M1hkutSO6DjHSxA73l9zuDReuw2uFG1o2GexmBWU15Y3ZAf1nD7mve5wFMShEFrhQipvvfhsZLKfP79POK0K+wPWKLkYO9JzdtELZFadnHed7c37uuObp1VPeCoqjYZ9g5/zge39Ie3HJ9GrLng+8d+d1br/9Ot/65oe88/UPKbOMx8+fcLles/v+p9w67pm9/iZ/qDRPSlA+sNUF38jhvWFgvlyiEZQ+IvyKzWbH89BTlpbF1RmxP+d3nl8QsxkbNUNMa3Jh2K8XHANLpThazJjNZ4kuaFpM39Js1zx/+pzLi0s22xW7bcPXvv5Nbi/2KCcTmvUq7YtGaaaPpIDbGJjPlpy/eI4JloeP7vP42SkPHz1iNp/w4uSKZtdyenbOO+++x1/+7/y9n3rP/dSim9JeI3kORSHRWTJC6Eynbo4wJu5aovBkKgcp0AqccyOUPGDdQJlLzoaefhgSujDLUiaZGdLGXIAMaR7mAdsmlqi3FiUEUSYXWW8tQ9ehFSA1Pkq0lAxDCo8TKvEDhHCEIIhapMJ8fSwnJoLU2LVnOkuMWiWZ1DXDMJAXGVmuUUrgjMF6R7NZs2saNu0DHt1/wNtvv4m1juXeAlEofAycn59STSc8fvqcoWnYbpsxyTiiZPK+S+9RWVqIDd2AMQNt02CdIYxpEQmkHRDCI1U+btFT6GeWZ4BA64JoByIRBTg7JGtucJTVJC0IhUAIOdLefEqxdcl8ap2hLMdg8JAWQ845one4LCVS6CxPD0RrCSFwHahonGHMzUXnBXVZIU2D8+4lEyIydrwycRdAJkeXlKnbHW21P/tr/Hpfgsau9SLi5WcF/Ktf6ji6Il5jLL/8lB0GcDsW8yWPt1ccCs3TomRbFxxftqw3F2wOljilODIRe7nmfF5glSIEy839Q5ztaXH4kBaOQmf4umKeTQndGh8CQ4xsTc+nMp2g7kxvEK+2PIxbjJDJIGM7LvoVx2+8zsHlc3rhidrSrl5wms8R3cDre3ss0OyaLXkBpfWst4Z8VvD+/h4/ePQ94uGU/XnJtLPcbhTmwRm/+b2H/NobX+fHj57Cw2dMZzXf+uA9vvXRB9y5d4d7r7+JCwN2MBxPp8yVZjqt2e125M8fcBQEf2kypbh9A/XGbQ51xr77NtNJiZIwW+5jjeF7nz3i3/8n/4wX3/0dvn1nj0dC0FqPtlsIlqrbcHD7NgfDimV03L2xx2tv3aasc7zpsLs1fbNle3XF44cPuVhtcd4xn+1z48499m/cJM9zMqlSUEGWp4eplLhgKYuSvaMjVK54+uAx1kfu3brNtKrp+obDvQX3Hz7gjz+9zw/uP+B/84o77qd3ukpQVJqq1uSVJCsFWa7Ic42U1zNTQRQBpSRlOaHMaogZtjcIEej6nroscIPDOk8ggXGc93R9myypQmDHOaCOgq7ZpY19TPi/BGlR9H2Hd6mAClmmGaGUWO/S8karJDWzBhv8COROUTnBB/y4UXch0PcpcrmqJJOqxPvkx1YyxZu7GMmVwhUC0zpUpjk/fcGzFydY65hMEjFt/2Cf6WyKMz1tN/D89JT1as12s2G1Xqfo9uDI8pxJVeNiQMeAt2lu2nVNUjcMyRSR+KxihGZfz839S6VCHB1Q14wEFxwoSbCjaiJ4jJCU03lKNiCJ/JUedcnOptl3SIaF4D2DSXHxceysnfNIGdJykshgBvK6JgaHkippqO2QusBmx2wypdBbhhGXGUXqYqMcu9xwvZQSoNLHURLkK1cK//+5IrwU6vIT9fNlCX75R1+OHK4/LsaPffmRKKE1O7JyRnN1xryYkK3WtNEwKzS5EDTrK/q6QgbBYlJTrDcME40Ums1gmOwfcGAtfbNGTTI2IvLCG1T0HM/3mO0GnrqGLgeHx3rDiWt5/eiQ5RVc+AYpI9H2nO48p2LLfFZyyyoe3H+In1VQO7K8Qq5h72jB0cE9VifnPDZr3HxBlgW63Tl5f0WtB5ZuxgMTuLV8je/90W+iY+C7X9ynf3jCfia5dTDDDA1/9Cd/yOeff8zB4QFlPeeD9z5gaDpCcLx4nvTPRZGnE6zOqdaXrNYbhqpkNZnwzW9+i2GwnP74KV3b8Z9+dsZalJjDYx4Mnj+62BHzCZ0zhL1bFKrmw6MjbnUX3FED3/rmexzfuUWWCdr1BcNmTdfu2G22XF5dcnK2Rucld+8esHd8g2o6QwhBvVhwrDOKqyu6ISFQMzym7zl5+pgsyzk/O6Nrd2gtODxcEMWS5y+eMZtN2TU7Lq/Wr7zdfrpON5dU05x6WlLWOXmZURQKnaVOMaYwLFRU5EXJbLagzhd4p+i7K3SWEoKLfIwKb3sEkjLPadqWGAJK6dGv71BS0/VJcxhiTOOAPEuRMs7ifSA6Q1ZOiUKn7kuENMsFtJBEH7EyFSmyNLd0ISaOaPCj7VeT6YyhN2itqKoK2/egNJmWGGcptSaWJUPTEpG0bYtWKT1i6Ho+//RTDg4P+eLTT1gsF1jv2DUt+OTJJ0aa3RalRm5BiLiQ0Iq9sUTn8M5jbI+zfnTN6dERleRIETmyAcTLI2zwgaqo0tLMB0TwqJi69+AdIbqxO7eIqCB6vHcIrdPfo1Ost1cCZwYkKUlYiJRGEX1ASUmm5CiJSgYTZ5KJwkeHUioxi4NPeXLWcjzbow+W3gwvi1C6O9K881qChZSJM/BnYriQiuh/NWNcckddYx+/+vGu7SCbEHLFQmesSsm945tcbtecKcnhm28xPb2gzeBSCryCg3mFuFhzKQLrUtHISFlW3J5UdM2OlR+IKKJM6beL6YRZK+j6LdSggmC7veJj11HvL3l9qFg9fcLlTOGqCllMGAqFWs65N5mxsT0udDTdFV8MVwQz50gNvLGY8ejsY2o/4Vjc4kZ+l8MbH3FxfsbHn/8xbjAEnTNbt2yennDRGOZVxvHeDEHEGMNkksJh+77n5Oycjz/+MR998BFlpujajnuvvcVqvabrep6fncH3v89rd+6xlpL9gwX/73/4GZ98/DkxeNR8jweTe2R7d6lmFaeXp8yPD6mrmt32ijeKintZ4C3RMMstbx7vc3hjn2pSMTQrhu0G7ywCRVHW7O3tcXK2ZjaZc+/1N5gul4QQRq6IYDKdJb18iKiiYLW6ZLde8cUPvs9sucfR8SH/6J/8I06eP6euJ8hM05uOi4sL+m5AylfzRH5q0b0G2FR1SVnmL6ExMktwlow0BiNCmdfU1Yy6mEFQNNsepRVaBSDJztq2I88yRExFNfiAjw5rbJqHqcQy6LoUPpnneUqydamTVUSysiTLs7QEkhLT9VibYsFdTMfbUiWTgCD5rVPQ4/VxMOWtKVWilE6hc3WVgh1tKiJaSjKlxuNe6jidc7Rdn5IonAVgvVrhnaXZ7miaHe3Qo1ROXmQwHsezPH/ZiQ9mIFdpUei8JziDMyZ9LyLkSiKlxoXETRCjGSLLrvPm0ozRWJP84CTFgJIgfQQtRxhRoG87qqoiIhiMoRCpiDqb/j6lHMF5RKZp25Y4qh6892nRWZYooBh5DN7axITwdpzYps299x47DIhMMq+mEAMmpNEO1zsoIMjr+agkXjNrf6Kn/NlcCpW+TJEANf9lX5H4SnG9/jkIEVNMu7iOZ09zfpkJui7N3IPznDYrJnpCIaDxLSEo3l7OEEPPiduOEU85d48PadYrpG2JRUzg+cmUyWTK3tVlOuURaLuWz8tIsT/nNVfTvTjhpDK4SY3DMwxrZnvHLN1NOrfGxJ5CFNjthk/aHaIsef/Oa8Rn5/xwsibqgSpTfPPgfSoLR52lFpbd5RX/9NP/jBuzKW/PlmTbFTeyAn36gvUnTyB66knJpMxSejXQth1t16G0oqxKqqKkazt+8IM/ZlLPuHf7Nl3f8fEnn4KQrDZb6qpkvVtTFgXf+95D7t19jVu37nHj1j0+Xu84e7pC+iuCHgiTOTkZh8Lz7p1bvFU4Fjrgrp6T0VPXOT5a+nbD7vSUZrNJD32lEUIzqSfkWcZsOmN5fJg0584RvUdnBZCARv3QIrSgmtT8/u98jIyej+/f587dO0xnM8qspiwKbt++yeB7fvv3fpfN9lmKtnrF9Qr1gkQpRVkU1NV14U3H0CAESIWMKeupyGuUzMjzAmsgLwryTKOVwBqXEnpl2sD3dsB7QzM0eOfJdIZ3Fu9ht0ux6mrccndD92WMjQStUgyNEIpoLNb049A7EfPTciPZgWVMc1CVZbgQybTGj1toJVWacUpB3/dsm4YQICsyiAIzDCgh0FIgMoWxhq1ZpeRcleRaxnSICN1uk1J2lUoAd5Peg0pprDM4O0DIkUKmsMgQ8D4kqVEIY9R3UlsIkZxnUoLSCmvTUi0vMpTSow43xYMLrVMMdgiAT/bhkNKEU2SQJssyrPVIMZCVJVoXyJhOBRaLDx4hI23XUOYFAom1BiEidZ4jpUoLR5lmw8opzNCDVFhnyWSSfw19h4sGhETrLFl/vU/fbwEyxtEtGMfkBf50i/gzvb4cI/ykSuFf/YNpnCC/8kT5ctowPhT9QLG4xXa9pb5xk+XZCU/7hqO9I2anTxGy41lQHNw4Zvm0J0hHN/Q8nRfMb92Ex48JJrB2HY+MQZUlB0f7zJ6dcBUGTKWx0TO4lnqxYKZfY9Nc0NodWaHIhOBsuyZOFQez2+yvBp63l5zINSKryTTMypw4rVletmTBMFWH3H/yiHqxx8+9+5f5gz/+F5ztHiJ1RGWe/cWUD6oSc3FFaBp+8cM300M8OLpuIIwJJs4HiqJA+sB6s2U+nVKVJU3Tsrfc58X5JZ/df0qWq8QjiRtu377DbJIUC7/4S7/IdDLn8iItq1dGEnSNK0vq+T6qs+i85I0avnk84YgGuzrh0flzpDccHCxpVht2wfPiwQMuz8+RMunzh77j7PKCtmkQhJE61hGL1BzpLGPoW7q+o202eG+JSnJ845jf/me/hQ2WLx7dZzrd48//8i8znxas1hf8yQ8e4pxjvlhQ5q9mRP/UouttoG89wUGmSvKsJNNJm4tQ45E2ItBoUY4C+wRxrqoCnecondG0HW3b431AF6mz8M4TAwih6LouLWxiJFMqHT2lxBqDVCrNHoNHqwIX0udCCIn5ECNa6vSAApTO8c4iSR1tjCRYc0jprknHmiK2++EntaV21MciJM4YxGiBFSLQ9x0hRrR0ZCpDRj+aF5L2NJlDRdIPB0+UKikHnEv2XUJKL5YSPXaIPoZ0+h4LrSAt0JTK8NIgpaAoCpxPAZ5Kq5fNYQyQZQV26HAhEqKkVBlRpxifJNsKyTU4vt5gB8oqydoICqVznHNkSjGYHieTBjtX6fUHrcl1DipDikhnDEom84Qcf07OWiSCXGu0S+jNyPjAH/XF6YgRyJWkrDKKqkBlii9Nwj+76yWGEUi58P/lqooRd/OVTlf8RPcrxveEjB5ne4I3rNyWqTVc5YJnWI6Eou0azjLJqsu4Ude40+ecTTTbbs2Fa3jtcMLw4gpfZcRM4nWkzwLFck5pHAMdOgOlBFe7jotywvTgTe41G9rdmifNc1xdIFTJnsi5c+Mtzp+sqUPDPC+YZhUXbU9185CvV9/h5NF9nveWnX2APL2PW97m1uwQFXvevHHErXqB2G04lPB0u6ZZN0Q7YAbLdF4zm04xw8B6GNA6Y7GcY62lNz3G2LSPCIHLy3PuPzxhuVgSguPyasXBwSFNs+PNN+5y9uIZTx89ZrPpcNZw8+4tdleWcnKDbP8WQWhK45hWOe/cWlJ2L3DdGU8/+xGPHz/n6GCfYBzNekfbtjx6/Iz79+8zdB3z6YS6zlhvkzX/mn64vlozlJaDoz28t7Rtgm1JIVnuH/DpZx9zeXbCcjGjqCv++PvfpxUNz1484ncffsbJ6RnWeGSU7M3n/1p9xE8tus5FVquG07MdN44GFssJ5GPQnhRImSQrIqaiYawlkz1SJUlUnhdIrcfcoCSvCdGjhMYZRwwBa1LabQiePM/RKs1qnbXoLHtJ+8nzAiESOUujcM5gXUr6lUKkxVCI6DzxBJwLBO/TUieEl3jKTKWib51PsdZCMgyOiCDT6XPDiJvsraPQGud6Iqk7VCIiVcrQ8iNf9lpBkEmIUeGJKAHRW7iWHeEROumFvUuv3TkPwSeivfOpQ5Rpbitiit3JigLpHVIqlMqS5E0pYvRopcjzCmd7tE68CSElmkiRaXKdpa+rqIjBJimZVuioMSEQCDgHmdKEPP3Mknbvy4eAVGn0IZWmrJLqIALGWYqyxllHPwxUesqsqNiGAedHg0YMYxiDQGrFrCrYW9QcH8yYT+o/E0U3XeJLAcJXEyS/+if+FG1MComUIr0+yUs4lBCSiKHQPXVdoJWkLxS1CETX0eeCLBZoYZE4GuGpD/aQQ0uuJNOqYtW11PdusjQOpdO4YrVb0+aaelHyps0pDPy4eUGfZ6D3UKbh+PgtroLguX3AVLbsl6+xLPfZ7pV8bf8XePYjgw41Dy96tmd/DCLwzt5NptUe/fkjSmU4qvZ5c7nPzcmE8xXkEhbOEoOlzDPCwT6PuiEVWt0zqUokkSLPqaqCoipZrdbsmhY5cpqHIf35s4sNu7YlRIeWmsVij8V8wZ1bt1FSs1weMvQDk8kcITw/fvCAF2bGtg8cH9yFMkfNFhRuIGyv8Lbh5NEXfP7FA45u3OK9jz7k6O4dgktkv2YwmBCJWuO1orUB4+DWrXvcfuNtdFHRNgNKZWlXM3RsN2ua7Y6yLFPmnEmqLOcMZw9foAisVmf81m89Q0rBarXGWsfe3n5q7NR/XXNEDHjruFyvOb9Ys1xU5MU0SZ+kHGNJ9EvdpXeeIXQImdB+RVEwnf5/2zuvJsmy6zp/x1ybtrJcl2kzPYMx8IagAFAixGDoQRT5A/SP9Bv0pGe9KUKhB+lJQVIgIkAM3AzG9PS0qe7ylfbmteccPZybWdUgNa0IigBCqN1R3VWVmTezM8/dd5+1116rT92c4HBkywwCDbaiMZWHFKzHqbRS62EGB6C8/fhKuFsHAQgvqq2VoCpylFRgvWlj4xoQCoHEmJra+im4lTKXn6FXOGuoG8uyrAiV8Bq1QG2atvkj2pPOY6P1ysp8xRzAEWmNdQK0n9RaeWFJ61AS7z6w0loVnrOMc5jGEQQhdTsBZozB2gbdys1p5SUikZ4f7btlCTpsdTyFQCtNGKVUjZepDJMUJbzjshIG5yq0CoijiCCOETjCMATjKzglvbhLEERUziJkTWMatNY0xhIE3lMO5RkGSmnvbxaGhHgqmHUOkecIZwmjEKk1WTYlSRK6OuSqWdIYr7FsnUUgiIOAXjfmYNTl/t4WvTT5PWmlrarda2bx+mWtURDxSnW7KjqE8NoLUviLnWy/BFBXY6zrENaWZ7JgJ/SGjY8o6HdSHpqQojE8yyeeSpZ22ZEJj7NTZlXOGMPd/gb7S8FReYoxl1jdpRA9+ntvEM4a0vE5yAsSIbmTPORxnRHf3+fhZYOYXZGXPX757An104+JI8V3Bm9wcnJOzRKaGSrU5PmUt/r3WJoRu6OUQdRnL03RJmdDOIZYTDHDmAow7G2PSKKILM8ZVzlN0xBGfrJy/HxGEFeEYYCUCts0TMcTDg8P2Bht8dGP3yftxGgdMhps8Z1v/hEbWyMO9u8wn13w6LNPePbkGRvDbaqqopQhamOHQMcU+ZyNwYiqcgQBNFiyPGMyndDr9Pja17/O4ZtvEEYRFyfHnJ+dcX5xyXQ2p6wLllVOJ04ZdIe8/e57bGzvEMVddCIJAiiLkqoomE+mntFTFn7aUwd0ez3effc9Pnv0Ke+98y5lVTCfz6iammfPjzg5O6OsCqQSKB2+dr19MU9XC8KORAeWslmyyBYknRAdJK2BX0tyd8JTsZraV2lSonVMHEV00i5CKD9KbBuauqFuu+seNrBI1UIVzq6NE401rSCNp0dJAVVdIIQkz2pM06BCve6Me49A2Q5rGLC+Uaelxjae8oWz62rQOT/irJSv3Ezjk7cUYKylKnJkO4hAZf1lRUBjHVHkvahkLakrnyCVVDRYP8kvZOsQ7DEPHYQ0ZekFvJ2jrGuCIGiZrnjGgNIoHVLmc4IgwaiApvbwCs4h22raOushDxn54QVj0alvYAlvBEc37dBNE+/qKgSxViTdDkVR4IRABgpHgHWWcNVgxOIs1FVJHPgdhxCQxKkf69UKISQbcewnzxAtti68opnzLIY4CpGiwDiLMZ7e5nAEArqhZpDEDOOEfpJwwxPydxwOMP4CicIK92rCXVHJVglWiPW/oq1uV1WuF8aBUEMnjVHEDJgwTFOavCSxDS4s6YkRZjkmTHNsaOgPtggWkKiKOi0Jk5RBr0cZa/rZDBkEyDRBxSM+z3O6gy4Pe18mu/qcMN3l88sxM3OMUIp3N+7Qc5KXiwm2mROFksQlWFdxZzBisTwnjrrsdwc8HOywFSSgtqlNgSznnC9PyKdj4rIh6faJAs1kkfH8+ARQDHoDDu4eIPqWyuZgKpwVfOndQ05PM5wxdDsxi2yJNY7LqwmPPntOp+ttvQ52D/mT73+ftJMyGPaJo4AX0wmz8YSvfvk9NkYjsmVOVsP8ynBVFvSilF4cM6mW0EJ3eVGR5TUPHjxg/+4h3UGf+XjM2fEJnz1+zMvTY168fNE6gKc8OLzPH3/7y9x78wGD0QZCBThnkMJSFjlXZ6dehyWKOHn5kouTY770zrts7+7w0Ye/ZGNjwNn5CdubG9y7u8fnT59wsL9DnMacnJ6RJBFB8PrR9i9MunGqGQxjhhsRUSpAGj+xYQDthVek02Bborv1laqpLTGCNE4pwpAoinwDRSo/ClwWOOPN4aQQBGGIaRoE0vt/tckk0CHOWqI49l5dQF3XNHXlm2/Gb82tbVohHIMVbQXZmgeummVhGHjHVum753XdYIVFCu271s5bzOighUyk8kknCskrz6bAefk+a8Fi/YCFajFm5x8jW8cGZ/2EXqAVoZKIwDsGm7byC3RIXecIIdHSK4eVraCPVL6BWdeuPblVS9NqCHWMEKxx1bquQSpMnVNbQ5IkbG2O0EpT1AYnBWkS0U067aCEwGkvOo+pES7yvnMYqBtvRhkEpGmHKAzodToIqbxVEn4ScXMguRhf+c/D+MELrTw9UDkIpSavq3ZJ+P+DbTy3d5kvWSyX+Ovl70elu4rr9PoPb4EWVltVuqsEe6P6Xd9Oa3NU5pgg4eHwDkE0oEwc75SWtDfiYmLpJjHvEdBJtng2tYwTx2bnAd1yStIZ8fhiSqUd94f7bGYDVBDx6/GCJUsm+RzT2+R+dJ+LRYGpK7S0hNKrZu1u77CcCUrZwYiGQIdsJB22Bj26VYpxJakS7KQh+fKKJjumKE4pmyXGVmijmV4Irl5ekUYh87ygrBoCLZjOM+7sHzDY7vHBi0/9eyMksR4w+NJXuDq7Qjc1EYqjo1Pi3LG1sUW2WPD2m2/yb/78z3ECyjLnw589YT6fE0eaJIl59uwZnz3+nHk2RypNPrhHkcM5H5AmEaOtO/QQ5MePyE6OGaZdHrz9Ft2NIRjL5PyCk+NjJtMp2TKnLBs6acre9g7f/c53efcrX2ZzdwcVBFRVjXWGsiwZX5xzeXKCCDw8OBhsgHN8/MkHvDx+hnOOq6srjDVkyyn7u7ucnRwTRDGDXgfTbLDI5muPvS+KL066nYD+IGE0ShkMYjqDlP6wTxjEWGfamXPVUpv81tM46/mnoiQMY5QSpEmMMX4LV1cFot160xLNrfGVYm0blJBYK1GtH1UQhS0rwVe/pqk9XCDVmtdqvWCAb361FbfE+155SEB5XMZ5CMEYDxNYh7cgwmPCgXJYAXEcUTc+uadakUYxRV4CFolvHnpfSwnSYhrftFKqvco5i9I+UQZae/0E5Xy3t2VrrE5Qge/q18YRSIul1VhohyRE2/EPooiyqrDG+8kJ/My/0n4rVxcZOMmoP2TY6/oqUnksOAxjyqYhDAIaB0mcUBuoco2WBuMESgUoB85Z0jAkkope2iUIQ9Kk4zGyZY5UkihwDPp9JrMZSkPT7iwaYxDW0o86FE3dVvu+TVWWhvl0yTkgjGU6TdCv11v6LYRvgbJWvblmJtycgXCt8M86sa6qXNrPqN1BrWAIBJgmw5YNQXcTbUvSzSE76h3yScY8qREiYKQe0ExKjMtohMZ2Nrkbb3ORLQnimtpmzEzO/uYdyquMYadHVzVEgaCXROxs79LNc8JqRiNq0iRmO+7xTv8O/emQOpUYlzFKUg66fYr5Aj3LOb04p6onPDmbU1ZLnKsBL2rl8D0QgpAmt9TSu34Y4/sOtXEs85LN/W3US03jagyGhStYCkPR3yAfj9GxoLM5Qi4r7h/e47vf+gbDfo/BsMNPfvJT6tpweHDI4Z0Dgkjz81+9z9nlJUEYEoQh4/EFCzVE9fZwrmI6veBwd4eha3Amo64y7r2xz/buFkEgmY2vuDw/ZTqdsMjmNI1hY3ODu7sjvvWNb/C1r7/HYGuTMI6pqyX5YkK2WDAdT1jOMoq8wGlFfjUmL5ecnr3kZz//e+q6YdDrEcXei/Dq8oL93V22Rlu8PD2h0+mQRAGLhcHWr19xX7jqo1jT7XgjwX4vpd8bsLG5g0azWM688r/0mJjF45j+Z0tVZxS5RmJRShBHodcUaCUYrfVqVsZaHJ4ytcISBR5bdAivIVAbrDE+2TmHUm11oTzVTCrZ2t1YVOATuTHWQxbWIKRsKVqCyjRoB01jCSU0gMA3tMIk9DY8TdMmP03d1PR6PSbzBXVlCHXrSNGKwRjjvLyf8++DUqrdrntxFy0lznjlJKBNzoqm5fpKPORgrEUR+IuYUOC8QZ6HX+R6tNk3JH3Sl64hjrreZNN6c8wg9MfQWhEhUUJ7NoIBHWmU9U0u12K9VkBTlCRxh0Z6ip8UliSOPGRSG0pZ+4WVJlRFQQaUJqLf67NcLglVhHUCC8yzOc750W3TQha+aQgLk+HKmsl44W1Tft8oY+shDvFK42yVRG++3pX6mhDXiVjcfBxeAEfrGmkX9PsbJKEm3dzkTn+bJJtQyIY0TEiSkrDMuKAmimMGSY/NZcWgyli4nDROGCQD9vYespPNmNmcKHL00i73u1sMg5jzfI4RFY3JiaUgETmb5ZJlXTKevuRlNuF5ldM0S4yrWNnIG2twbaL10pTGa3U4g0oVtpRULQxnnfX6H1qRFyVpERDpDnU9AfzajuIOYdwlTYaEBmzwkq/s7/Nn3/8e08kVtvGatvf2dmms5fz0mNHbbxPFIUWZI7VmtLnJ5eU5k8kE1CVSpzRFxpKKOgmIN3ukqqB39w779w8I44A6zxifnTCbXpIXS6qqRipFEka8/dZbvPXWQzZGQ3QAZT5nOr7g7OSY0xfHjCdzwjCmOxyyzDJm8ylPnjzmxclL7uzcJdCauvH+gy9PTsizBSdn59w73OfF8QuOnj9Ba0W/k6D1P3U4QknC0Jf9SZKSdGK63S6hiGkay6Kc4fyO3dOlhE+6KEFTNSzzGVXuCALNaGPA0+fHKK2xtWnpW+3cv3PUTYmSonU7kERxTFX4bb1zNRZvyuilGiU4Q1N7ypd1Hhdd3e7ND0073GUIlPbKXcKjqEpJGuOQSlMa4ylltSHt4H2xrG2NGjWVMWhricMAU1VIAVp7K3ivRCCRwlI33jVXSYnTAtuKfSshMdK1E2ZuTcKvmqatZv2Za63x02cIrK1xArT2bIVAR0jpk6XEH8s0K8ax16m1dYWMY3TL5tBKUTWWINRIqUgC/7zCWKQKCJQliGNqa4kir4UhtYamIgk1OtB0OylBEFFWNdly6e17egPiThc5mbJYSkxtPO4slTe4VJJxsaBjA5xpMNYirMfuC+M5nRivBbyCjH6nIW58rarbdnBjrb8gHFKuWArXAue01a5saWbXdN028TqwyqBchrEZITERDdsHe2xVIyZlhgsUO3d7HC4KTpZzCleTRBEHd3vcL0rGxRwVKOIoYFtHHNYxkzxjkV9R5qdcTD/jsq4oqpKiyj3TxtQ4Z/y5ZO36/HHO+C8s1tl2yGWVaG3r+m0wtsE5SZRIhsku46NxW1R5MnkUhr7PYEJ6yYCsGmOFQEjFdn+DQHZgtkBPxhx86QHvvvkmSajItOT+wzcpsiUX56dEgaDb0SyLGR9+8oSL81NmWc5kcslymfkG+fwKE6Y0QYfqLGcRCppyl61hzNbeLnE3Jl8uyCYTxpenFGVGbWpq46dPNwZDdra26Xa7gCOfT1hMZ5wdn/Ls+REX4wnGCgajiNA5FnnOfDGjrArCIOLewSG7u9scnxzx6aNHpEnKdDrnw0ePEUrQ6aZMr5ZUy5zu5sgPRr0mvngMWCvCMCSJu3TTAXHYRQeaSCfEccKynONsA8I3oARQC4uT3mG1LDLm8xLZyj5aawm1pjQVEuErRD8hgBC+Ye6sbxSpFn5wxvqq0jmPh0rpnX6txdmmxT9DL+EovZeStdaLquCv5FoKhNS+EhW+qpRCUlUVQRhR1iWNNVS1Q+IhiCDQCOmQTrYLLaJQBRZH3VhfeUqBw2AaEMo7AguAxtNUgiBEOItu3xwvsu41uKRzCKn81lw6z1l2bZPPeiGexlqfRJUC6/Fp05h27Ruk87KUUZxial+ZdOIUqfwuQbdNuNU4VdPUOAs66WKamlBHVLrG2gohIE46ZPMaJzUyiKhqSxQHpJ2I5XJBMRtjTJ8gDOh00jVUU1YladqlqL3ouxGSrMgJnaBxgpZm7HcF1mKNAwOu+X3opHnJSVYFwyrhrqAfiWcqKOedgG9Ww1Ig1c1G2m9WyP4zNaZmfPWUxfSY4CRhurtPJ+l5XD7QXAQXUDckdU3oLNWy4OlphmiV8hpbclEsedoUyLYiXfHBr1kXNwjcKzlN2wqrY6FNuNb573HeiNO2fG7rrC8+2u+FkIz623zn4Z/wq/rnfPTpB0SB56/MZ2NMk7O7u+W1VnzJhcYxDBTVLKdjGr79ja+yteE5u1J5SdYPfv4+xni1PaEUWV3yo//x38gWSzodr4HQ6aYEoaIsa1wD1BW93ibDOCU0OQNqRsMd4l4HYwzT0wvOTl5yMblklmUUVY2QCi0Eu5ubRKHn7ueLKfPJgvPTc16enPHi9JzaQhBF9IXvR402N/nk41956dVAkaQJi+mEbD5FKZDCMl/knJ5ngOVge4NBv0tVFmTz+T99DDgMQ3rdIcPeFkm8gZbRWoJRKS+wvbIcXlUI0oGTnpfpr6aGMNKIVvbONA1S4QcQnAXjrbm1FEgcTmlUu+CjOMLhGxO1NTi32r47FILGGWzTkCYdsA4VhFRVCc6hVNAuHo1EoNtJKNdOFAU6oG5qwjAkyzJQmrquvbuE8G7CQlho8a0oDImjyI87Wq8SppWHLUwLK6iWA2xbsZxQBxhTeQEd42EOcUNdy0mwBv/eSD9UIpVum4D+pPZMiwaLQipJ0/hqw1lL45yXvGyrZt2OFxsH0vgLnxae96tUgFaOxhnfKNQBQeMte5zzwjemsXR7G9imwqIomwZdVqSdhG63x2w2JZtNCFNv8pckHZrG0LQXv83uFlOlMA42zYjTq5PWfNKtFcq8ypvzY8H/F5zGf+64TpKAsH5qrqUurCCHlRiOH/u96Zl2jee2bpXr494UwQFwtsbQ4FzB0fMJOIGjaTHhtppmvTLQCJT0a9F7U3hR+NWwiXD2xuycT5yre/nq1a1/8onUJ1zbjsSvNI4d1msCO4tt3aOd8Kp4e5v3+cpb36aaOD769EOKokC14/lKSpqyxtUCJQIikbCT3OVAJLzx9h6bGz0W00vqqiQMA0yZc+/efZQSPP70Y+bLBacvzzk6OsIa2NraYXNrm08efULTVFRVQZ6XFKVF6YhOr8swcBz0uuxu9Oj0u6ggZHJ5xvMXR5ydnTFdzLicTLial1gLW5ubbA77CGHJ53OmF2dMxwvOLq44vhgzzdrdWxiwLHKW+ZJuN+XOnT2CIOT88owPf/0Bf/6nf8JkdsV0MmeR5+v3ezqZsz3oECUBg8EAh2I6z1675r4w6Xa7Q3rpBnHQJZAxwmrKpUEaL8folaPsugIArwPg8ElBBV6HNxCSIFAtR7TBWTC2RrSKWca1xH6xGv/1DhEKP+FWSwG1XzCh1jSmRugAV9deP6Gp/dZZehzWCL+Fdo2nNGH9Y1UQItrq0TUWFUYordcaB5VpYQ8EocSbXVZN66YgCKMQ6tr7h1lAitZtWKOVT3rWOeqqIgxa1S4krvXTQijAtLKLtBWgQQqJahuSvnr2nXTVmkB6Bwn/uqRw2MbzoK0zOOmQVdnuFLwuAwKSMAIpkFq2sozWD18gWBYZYZiSdjuIzCd70zS+0YhGhwGNcahAsshzjHMMuh2GG5ssswVhGFCWJYvGeGflMGI8G9MYy3C07RNxU7Ps9LH5grIsMa5Gak9fk9J/Ji34/TsOC6j1hoD2Quuzbvu+i2sOLtJ43ecble1NeMH/7tWEC/gka9tzw61goWtnjpVk74pxQ0un9GJHbWGDr8adu3kRu/7ZJ2W/a6Jtirp2h+icP55rB+Fdq8Xsy6Jr8aJVvyAOOtzduc+ov0XaTel1OiwWC4IwYGPYJY1CAi05GNwnIGa3v8udwR53D+/T73XIsgXd3gauLnj+/AgpBPtKcXZ1ydn5KR98/BHT2Yxev8+9+w+YTsd89tkjssWcbDEnDAM6UUwcgNKC3SRgr5/wxsEe23u7hElCkS05Pz3j+fEJ4+mcs4srLsZjyqZh1Bu0EpEWWxVcnudMpldkWc14mlNU3qRWKkUce874x59+xNGLJ7zz9jt871/8gL/567+mzhecnZ5w73Cfphb86qOPSJMF1hXMZwXjScHu1i7FcgHCEqe91664L0y6nTAhkhESBVZiasgXBXXRUNtiLXTt7adFq/vhRz9FW+1GUYSpQLfNL2tdK2DjkNrTqLQKadtMCCEIlfK81VaPtVKKAtortFlrMUjhE5R3+vUnsdIKU9a+EWf9dlq0GKhSDmMawjCksn4goCoKtJTUjfMXAa75l4FSaK29mLFSVI1GWYMSUNsWE2tPPgtrupoQEq1DtAKDZqXNadqmnnBt/rVe5o52ukkgME1FGMZIrb1DBHhGh2kI4hTTVF4QvTEgfLOttg0O/3/z9DntGRxKQqDawROLEzG180wDaRqUjohCTVVXWKmwVUntCtJOj6rIAEUQxlS1Ia8MnSSg0/VqUlorP43T4kIKwfnlKVVV0e9vgJRk1ZKyLimrnCQJ6cQhvU5IGGnCUBCq3wf2wo3qFD81KaVc/2YFPaz7aTf5u21mfVXu8dVj+qP4hOkc69Hx9oHrx7M6Zius41qYw7YwwKqRt6pS3erxzl8kVs1b61yLzbZYrb2B2a4q3dV5a9uUu8Z3fUihSfUGJrc8efIp5xcvcc55eiKOpq4phGM6HjPY2GYnOeTu5j6DTpdiuSDPptS15cl8zsH2JvfvPeDs4oS//dHfcHJyCkJwcHgffXZCls14+uwxTVkxmy38JcE5X0lTszEckaYDNqOUd994yN3DfTrdhDzPeP78Gb/++CMur8aM50suJ3Nm2RLnQA39xU8Hvuk9nc4YT6bMs4K8AisUYRCSpilFXZIkCcNBj199MOV//fjvmE2nfPW9L6OV4PGTj7gaX/LwwZf5sz/9IS9evuCnP/sZL04ueH4+4f69Q+7sHfLs+VMWy8VrV9wXr3op1g0v226RG2kQVDQ2p6FBSm9aaJVkpZrqBLi2ctOBRDhHtxOhBSzr1tallcVz1iEDL5oihPRiLEFAEARoKaibxjeQhPRQhPLcWGt9cnO4lgmxkj+UeEUukNpvg3QQ0dQF7YiXFzdHILSmLovW58oncKkUURB4TYcwILbes8xfHBRlCVppMBVK+oS2knL0Cl+gpWc42LpGKYmUobfQcQ7T8iWklGsnYtH+5S8iPgEHWq2rd+c8Bi1xXqPCGp+1rUW37r2mqTF1RVWWhFpj8D5zzjhU4OES47yKWxgENKYhMH4K0DpDVVXoIKauveJbvz8kyxYYU5MkEVmeYR10OylR4De8URx5mUrTVlimIcvmCOl33DujHVQYIsYgRcNo2GVr1GPYS+j3OsTh66d3/rlDtMnN70B8BXsd9hpjaLfj/t5+Cy9aMfz2SL8BO7g15CZWlXOrQXFd4V+7TaxfDy0M3/7WYpFrZ2Xxyp1WRp+4NZBAa97mG2Ku5YxznXSxrTZIm4Cta9acdtoCapBu8/1v/Gu2kl0++uQjHn/2CCWV11JuGqq6JgxiirLhThyznfZIk4Sr6YxlsSQIJNk849vf+iZxGPPxr3/J8dkpz1+ckiQJcZLy/NlTqqbyk11VSVMZwiggUYosW+KMI0xi4iil1+nypXt32d/fIekkVGXFi2fP+PnP3+ezx0+ZLRZYociLCmcdvW7XN/ts7bFWYcnzgsV8SVbUGKcQWpL2EnqDPmVV8eLoOZPpFV/7xrf4yU9+wkefPELJgHt373B+Nebs/IyXJxccHtznwYM3+M63v83o6IhfffART45O2NrZZe/wPi9ePH/tmvtiC3bjPzSs9NNKzmJrizM11hUIbZGR9hQTK5EtKiWdanVXRSvSYojTkCDUuIUfkvCL0KJ06GlRWrdryWsorDrwddO0ljW0tCvX7su9iIzWcbtoHFr6TrLWAQiJVs6PxypNXbYVOJbG+maUsJ6yZqxP1s6txGu819ey5aV62M7T3vKyJAhDyrrynfnAc5QlnuuLUKTdLnEcYMqSINQggnbAoGY29dsfrX073ApPJ5OR8q/VQRzFCClpnHeTMM4Rxcl6rFZZP1VWVTWqqVr+cuPdI6yfdRetK4SQXnEtaTFs6yxV7UeFTRBRlqXnEfsyDK0lZb4gjTZI46StlCAME4ypvUCOjnyDp2n8yPXK805JltmM2tT0+0OUChj1R1hXY23O/vYmB3sb7IyGpGns18bvRfhadMXTvf4Z1ns3IW/ct61+pX2FxfBqhSvWWDDi2nvO3eCn3zTAFC2k0CLg62fG0WpUtAl7dWi82hxt0naYNZyAcy3t65oG5vC4vU+4qyRs2qrX3rQQZau3yTff/gb3dt9ioz/ig1+/77WgtcJaPxAjdEgQpeyOtuikMdN5hsVS5CXZvGZ/b4vPP/sEYyyT6YSLyQylAx48fMjFxRlXVxeUlV+7jWk8z782aCUJg4DBYIPtrV0G3SH37z5gb3+bMI2obcPZixf8/Be/4Ge//ICryZwoigijmCiK6KQ9Br0OaRzSNDUXFxfEUUhRlORlRVn7XKOlIowTb6xQG85OzpjNZxwe3uXBvQdURc7unR2CJAEZIGTMbD7n0edPeP7iJWkn5c7ePn/yvT/m/Z+9z5NnR7zzpbcYjXZeu9rETYfT27iNP7S4+43Q3axSvd6vbKEbj/kJKT2uLkUrPOQZJUqpG5NoXoNEtpoMcjVvsUq8Hnz1zAFexXzXAxZtspVCePbOGu9dJWbPbXermrd1bHZrOphtLwkrKMGr662V7+zNZGtbGlkLSTjaMeeQ+8O3+NaD77Ex2uPJs6f8rx/9T7Ll0rOT6pqd7W32N7f44Q++x9bWkKsL78bw5NkLDg/3yeYTlssM8A3tp8+PmGY5GxsbXFxeUpZLJJCX3m0ligOE0MznczZ6KWmScnhwyP7uPg8fvMn2zjZhHBEEAWfnx3z08af86sNPeHL0ktpYRsMhOgipmoaN/pCDO9v00og6X3gZUjwv3yGxUhNGHaJOj/7mNq4xmDKnKJb0B0OuJpeUZUZdVUShn8RM044X/5pOyPMlUnlvxNl4zFe+8jVOzy+YTCY8fHCfw4ND/sN//E9f2CH+fQDVbuM2fofRVorOV7JCtF194al9gtZZQrSTa78BD6yxXOdeuY9zN25bwQiu/b6FC1Y3y9XLECvkwGHdjSHpNfZ7/ZpXFe2KCrYqnnwiba7hg5Ves10Zj66QkrYPgbv+4zwTocwNnz16QpSMObs4R8mIh/cfUJcFR8dPefPuXb779XfpdxTjyxM6aUo3Vrx174DpbEKRZaRpynw+5/jkBdkyJw79jhYpCUIPLy1fnFCWOcZWFPkSh6BJJDs7dzjY2+fBvfts7WygIr9zfv7Z53z86ac8eXnGNMsZboyo6wYhJGEYoaQmjWN6nYTt4YA6jTg7P2exzGkav4sLtEYFIelgk2Cwx84gYbuj+fCD93n/lz+l2+1wfPyCJEm4c2eHo6PPvYyBlFSVQeuQfqeDcw2DQZ8XL54TJSlVWZMtCsaX89euuNukext/4HETWmgdfsVqaONV8ZJrju71Y92N5HnzeKvkuQZor49yfc/faMDdvJsV7ejNqspllXRXFwlvZ7V6DTcZDLbFeG076OOc8zRD51gTzdyae+Qf37JjFJpAhIRhxPd+8KdESZeLsws6Qcwnv/4lnQj+5R99jVAJLs8vmM0W7O7u4kzDxeUp2TIHJJeXV+TLnDTuM9raZ7aYcXF1RlF49xgpAw4P7xGE5yyyGbNZSRCEbG/vsL29y+6dO3S6qVcarB0nL4/56Ncf8+T4nNl8gQ4jojhlFCZUVUUURkRhSBpHRGHUvrcKIbSHD9vGvg4C0t6QoD+iSYcsdcjp+Ijj0xc8/uwzut0OQijeffddXrx4RrZcAo7ziyvf/2iblFVVk0Qx+/u7LC7mSCd4495DHr7x5mtX3G3SvY0/8HA4cZ0ofU+iNZvEtdOPPvnerDR/E//1RCvXVrgOz+3iOp9z3awVzlMH5eo+/uZ1Al/l1jUGvDqEXT1P68zsHNJ3rVuy2ArDdW2Va9YVdjv46ZOu8EndJ2vfFPVPIBFGUywanl4+pfnb/86b9+7R7e3T29pjPD7jB3/0FZQ0XF1eAiGbmzt00h6XlxecnZwgVchbb76BEAFbW3sMN7e5mEz5+1/8gknW8M237hJoQacb8stffshwo09VL+n3E6TwgkphFKF1wNV4QhiGzOYTPn/6nGfHZ5ycXpDnJRtbW8jAYhwMhyN63W4rLuU/u8UyZ7nMyMqipXxKrAMdpkSDDWyYYnTMmZE0R2ecX11ysH/Ie299iRrLrz/5gOUyIwgiwiAljiqveSJ84z6KQqraMy6qwrC/c4+vvfdV7r358LUr7jbp3sYfdKzoWSt1qNVwAojrhHgjrtkG7sbvrlkQq236K80wVre98sz/6Ov5zcJ4VcFeJ+5Vs9nrQK/xWFbV7TU1bVXBOrtKxGBXAlGse3A3XovEWZ+0msbwNz/6W55+/pi//Lf/Hqk0e3e2sHXO8csxO6NNytqyubPN0bMjPv7kU0ajDb70xn2OTk84ObvkfHJJ92SDTrfPd7/9Te5PF1xdnfPJxx9wdnrkm3K19w+M44AoSlHKO8l8/uR5q1HSMJ5MOL+64vjsivFkjrEOezVhi6B1H5fEcUwYaLANs/mExXzOIltgWt0TrQKkcai4QyNClo0gX5ZYIdkZ7NDvjqjmV3TSIct6QRp1OD+5ZHtnhFSS0WjY6opYiqLwbB8d4qxmb+cuf/Hv/pKDhw/ob229ds3dJt3b+IMO+w+mGHysoYT/Q3K85she38c3vXxp69pmmWsx4Fdt29sneIW5cOPQq9fmbvTh2sr7OqkLGtdqNnMNP6wEhpxbTaP5ZGucpyOumW/CrrHd1QFWzcRAB16jQ0BeFCwXM5pqiW0c0/ECrR1JnPDk+SOeH5+xObpDmva5e++Qk8tz/u6nP6UoG5x7hNYhw9Emd3Z3eHFyQtNYZvM51jrCIKQRrb5LHCEtCOXNKicuwzlB3dTkZcH51YyrqxnGQZJ2SJIuYRARhxFRFFHXDaapaZqS+XzBcpHRNA1xnBJG7WSrDnEE5EZwNV9yNS2xUjEcRkDAX/zVX3H/4X1+8uO/4+tf/hqDbpdHnz/GWU2eL1lkGVVd0TSOqrQkseK9r7zFv/rhD3nnq19msLlN2vknDkfcxm38/x7rilT8Y5XtFyn+rrBVe83tdaKFCW5WwmZ9LP+355GvMIQvUlpzeDaFaEfMvG4C6yJ8heUCrVxqCynY6+aYtbaFHkQLMbxaob/yQzvo07Q2VIEK6Hd7ZIsp8+mUnd03OHp8ysYg5NnRcx599hjrJKaRvPnmQ07Pjvnx3/+MurHs7W2yXOYUheXl8QmTyRVRHLHMC9IoYDTskFnLsrCoKEYHksh5jv+yKNAqwjmB1iFNUTKbZ+RlQRjF6DBie+sOezs7DHpdL6ZULFujg5xsmZPnBThHtxOQpj1vois1jfOUt8v5lJOiIe5u8Mw4RmmfZZ3xX//Lf8YUhsO7Bzx4cI+XZyecnh4hJRR5DkJgjUCKkPfefo8ffO+PeePhA7q9HmHkPSFfF7eUsdu4jdu4jd9ivN5b4jZu4zZu4zb+n8Vt0r2N27iN2/gtxm3SvY3buI3b+C3GbdK9jdu4jdv4LcZt0r2N27iN2/gtxm3SvY3buI3b+C3G/wYxQwjAP3dewQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(4):\n", + " img_path = './data/img%d.JPG'%i\n", + " img = Image.open(img_path)\n", + " \n", + " pred, prob = predict(img_path, resnet50_model)\n", + " print('{} - Predicted: {}, Probablility: {}'.format(img_path, pred, prob))\n", + "\n", + " plt.subplot(2,2,i+1)\n", + " plt.imshow(img);\n", + " plt.axis('off');\n", + " plt.title(pred[1])" + ] + }, + { + "cell_type": "markdown", + "id": "2fc7f347", + "metadata": {}, + "source": [ + "Onwards, to benchmarking." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f182b433", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 10.01 ms\n", + "Images processed per second= 1598\n", + "Iteration 20/100, ave batch time 10.01 ms\n", + "Images processed per second= 1598\n", + "Iteration 30/100, ave batch time 10.21 ms\n", + "Images processed per second= 1566\n", + "Iteration 40/100, ave batch time 10.33 ms\n", + "Images processed per second= 1549\n", + "Iteration 50/100, ave batch time 10.31 ms\n", + "Images processed per second= 1552\n", + "Iteration 60/100, ave batch time 10.25 ms\n", + "Images processed per second= 1560\n", + "Iteration 70/100, ave batch time 10.20 ms\n", + "Images processed per second= 1568\n", + "Iteration 80/100, ave batch time 10.18 ms\n", + "Images processed per second= 1572\n", + "Iteration 90/100, ave batch time 10.16 ms\n", + "Images processed per second= 1574\n", + "Iteration 100/100, ave batch time 10.15 ms\n", + "Images processed per second= 1575\n", + "Input shape: torch.Size([16, 3, 224, 224])\n", + "Output features size: torch.Size([16, 1000])\n", + "Average batch time: 10.15 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = resnet50_model.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(16, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "21e56cdf", + "metadata": {}, + "source": [ + "---\n", + "## Benchmarking with Torch-TRT (without dynamic shapes)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "8c9ed780", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "trt_model_without_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input((32, 3, 224, 224), dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 33\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "58a4ba94", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 6.10 ms\n", + "Images processed per second= 5242\n", + "Iteration 20/100, ave batch time 6.12 ms\n", + "Images processed per second= 5231\n", + "Iteration 30/100, ave batch time 6.14 ms\n", + "Images processed per second= 5215\n", + "Iteration 40/100, ave batch time 6.14 ms\n", + "Images processed per second= 5207\n", + "Iteration 50/100, ave batch time 6.15 ms\n", + "Images processed per second= 5202\n", + "Iteration 60/100, ave batch time 6.28 ms\n", + "Images processed per second= 5094\n", + "Iteration 70/100, ave batch time 6.26 ms\n", + "Images processed per second= 5110\n", + "Iteration 80/100, ave batch time 6.25 ms\n", + "Images processed per second= 5118\n", + "Iteration 90/100, ave batch time 6.25 ms\n", + "Images processed per second= 5115\n", + "Iteration 100/100, ave batch time 6.40 ms\n", + "Images processed per second= 5002\n", + "Input shape: torch.Size([32, 3, 224, 224])\n", + "Output features size: torch.Size([32, 1000])\n", + "Average batch time: 6.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_without_ds, input_shape=(32, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "cd233b85", + "metadata": {}, + "source": [ + "With the baseline ready, we can proceed to the section working discussing dynamic shapes!" + ] + }, + { + "cell_type": "markdown", + "id": "bd5746da", + "metadata": {}, + "source": [ + "---\n", + "## Working with Dynamic shapes in Torch TRT\n", + "\n", + "Enabling \"Dynamic Shaped\" tensors to be used is essentially enabling the ability to defer defining the shape of tensors until runetime. Torch TensorRT simply leverages TensorRT's Dynamic shape support. You can read more about TensorRT's implementation in the [TensorRT Documentation](https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#work_dynamic_shapes).\n", + "\n", + "#### How can you use this feature?\n", + "\n", + "To make use of dynamic shapes, you need to provide three shapes:\n", + "* `min_shape`: The minimum size of the tensor considered for optimizations.\n", + "* `opt_shape`: The optimizations will be done with an effort to maximize performance for this shape.\n", + "* `min_shape`: The maximum size of the tensor considered for optimizations.\n", + "\n", + "Generally, users can expect best performance within the specified ranges. Performance for other shapes may be be lower for other shapes (depending on the model ops and GPU used)\n", + "\n", + "In the following example, we will showcase varing batch size, which is the zeroth dimension of our input tensors. As Convolution operations require that the channel dimension be a build-time constant, we won't be changing sizes of other channels in this example, but for models which contain ops conducive to changes in other channels, this functionality can be freely used." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9a04007d", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n" + ] + } + ], + "source": [ + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP32 precision.\n", + "trt_model_with_ds = torch_tensorrt.compile(model, inputs = [torch_tensorrt.Input(\n", + " min_shape=(16, 3, 224, 224),\n", + " opt_shape=(32, 3, 224, 224),\n", + " max_shape=(64, 3, 224, 224),\n", + " dtype=torch.float32)],\n", + " enabled_precisions = torch.float32, # Run with FP32\n", + " workspace_size = 1 << 33\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f0babc85", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 3.88 ms\n", + "Images processed per second= 4122\n", + "Iteration 20/100, ave batch time 3.89 ms\n", + "Images processed per second= 4116\n", + "Iteration 30/100, ave batch time 3.88 ms\n", + "Images processed per second= 4123\n", + "Iteration 40/100, ave batch time 3.86 ms\n", + "Images processed per second= 4142\n", + "Iteration 50/100, ave batch time 3.85 ms\n", + "Images processed per second= 4156\n", + "Iteration 60/100, ave batch time 3.84 ms\n", + "Images processed per second= 4166\n", + "Iteration 70/100, ave batch time 3.84 ms\n", + "Images processed per second= 4170\n", + "Iteration 80/100, ave batch time 3.83 ms\n", + "Images processed per second= 4172\n", + "Iteration 90/100, ave batch time 3.83 ms\n", + "Images processed per second= 4176\n", + "Iteration 100/100, ave batch time 3.83 ms\n", + "Images processed per second= 4178\n", + "Input shape: torch.Size([16, 3, 224, 224])\n", + "Output features size: torch.Size([16, 1000])\n", + "Average batch time: 3.83 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(16, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "e86a3541", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 6.71 ms\n", + "Images processed per second= 4767\n", + "Iteration 20/100, ave batch time 6.48 ms\n", + "Images processed per second= 4935\n", + "Iteration 30/100, ave batch time 6.39 ms\n", + "Images processed per second= 5005\n", + "Iteration 40/100, ave batch time 6.38 ms\n", + "Images processed per second= 5014\n", + "Iteration 50/100, ave batch time 6.38 ms\n", + "Images processed per second= 5016\n", + "Iteration 60/100, ave batch time 6.37 ms\n", + "Images processed per second= 5020\n", + "Iteration 70/100, ave batch time 6.37 ms\n", + "Images processed per second= 5024\n", + "Iteration 80/100, ave batch time 6.37 ms\n", + "Images processed per second= 5027\n", + "Iteration 90/100, ave batch time 6.37 ms\n", + "Images processed per second= 5026\n", + "Iteration 100/100, ave batch time 6.38 ms\n", + "Images processed per second= 5018\n", + "Input shape: torch.Size([32, 3, 224, 224])\n", + "Output features size: torch.Size([32, 1000])\n", + "Average batch time: 6.38 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(32, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "35800f63", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, ave batch time 12.31 ms\n", + "Images processed per second= 5197\n", + "Iteration 20/100, ave batch time 12.42 ms\n", + "Images processed per second= 5153\n", + "Iteration 30/100, ave batch time 12.85 ms\n", + "Images processed per second= 4980\n", + "Iteration 40/100, ave batch time 12.71 ms\n", + "Images processed per second= 5033\n", + "Iteration 50/100, ave batch time 12.67 ms\n", + "Images processed per second= 5052\n", + "Iteration 60/100, ave batch time 12.63 ms\n", + "Images processed per second= 5067\n", + "Iteration 70/100, ave batch time 12.58 ms\n", + "Images processed per second= 5088\n", + "Iteration 80/100, ave batch time 12.56 ms\n", + "Images processed per second= 5096\n", + "Iteration 90/100, ave batch time 12.55 ms\n", + "Images processed per second= 5100\n", + "Iteration 100/100, ave batch time 12.57 ms\n", + "Images processed per second= 5091\n", + "Input shape: torch.Size([64, 3, 224, 224])\n", + "Output features size: torch.Size([64, 1000])\n", + "Average batch time: 12.57 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_model_with_ds, input_shape=(64, 3, 224, 224), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "id": "f87a75bd", + "metadata": {}, + "source": [ + "## What's Next?\n", + "\n", + "Check out the [TensorRT Getting started page](https://developer.nvidia.com/tensorrt-getting-started) for more tutorials, or visit the Torch-TensorRT [documentation](https://nvidia.github.io/Torch-TensorRT/) for more information!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.2.0/_sources/_notebooks/lenet-getting-started.ipynb.txt b/docs/v1.2.0/_sources/_notebooks/lenet-getting-started.ipynb.txt new file mode 100644 index 0000000000..2db954946d --- /dev/null +++ b/docs/v1.2.0/_sources/_notebooks/lenet-getting-started.ipynb.txt @@ -0,0 +1,718 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2019 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Torch-TensorRT Getting Started - LeNet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network. \n", + "\n", + "## Content\n", + "1. [Requirements](#1)\n", + "1. [Creating TorchScript modules](#2)\n", + "1. [Compiling with Torch-TensorRT](#3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in `notebooks/README` to prepare a Docker container, within which you can run this notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)\n", + "\u001b[K |████████████████████████████████| 121 kB 12.7 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)\n", + "\u001b[K |████████████████████████████████| 243 kB 115.0 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.7.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.31.0)\n", + "Collecting widgetsnbextension~=3.5.0\n", + " Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 122.5 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.13.0)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.4.0)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.10)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.6)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Thu Feb 10 22:01:27 2022 \n", + "+-----------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.6 |\n", + "|-------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|===============================+======================+======================|\n", + "| 0 NVIDIA GeForce ... On | 00000000:09:00.0 Off | N/A |\n", + "| 0% 42C P8 20W / 320W | 0MiB / 10240MiB | 0% Default |\n", + "| | | N/A |\n", + "+-------------------------------+----------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=============================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org\n", + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 2. Creating TorchScript modules\n", + "\n", + "Here we create two submodules for a feature extractor and a classifier and stitch them together in a single LeNet module. In this case this is overkill but modules give us granular control over our program including where we decide to optimize and where we don't. It is also the unit that the TorchScript compiler operates on. So you can decide to only convert/optimize the feature extractor and leave the classifier in standard PyTorch or you can convert the whole thing. When compiling your module to TorchScript, there are two paths: Tracing and Scripting. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import torch \n", + "from torch import nn\n", + "import torch.nn.functional as F\n", + "\n", + "class LeNetFeatExtractor(nn.Module):\n", + " def __init__(self):\n", + " super(LeNetFeatExtractor, self).__init__()\n", + " self.conv1 = nn.Conv2d(1, 128, 3)\n", + " self.conv2 = nn.Conv2d(128, 16, 3)\n", + "\n", + " def forward(self, x):\n", + " x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))\n", + " x = F.max_pool2d(F.relu(self.conv2(x)), 2)\n", + " return x\n", + "\n", + "class LeNetClassifier(nn.Module):\n", + " def __init__(self):\n", + " super(LeNetClassifier, self).__init__()\n", + " self.fc1 = nn.Linear(16 * 6 * 6, 120)\n", + " self.fc2 = nn.Linear(120, 84)\n", + " self.fc3 = nn.Linear(84, 10)\n", + "\n", + " def forward(self, x):\n", + " x = torch.flatten(x,1)\n", + " x = F.relu(self.fc1(x))\n", + " x = F.relu(self.fc2(x))\n", + " x = self.fc3(x)\n", + " return x\n", + "\n", + "class LeNet(nn.Module):\n", + " def __init__(self):\n", + " super(LeNet, self).__init__()\n", + " self.feat = LeNetFeatExtractor()\n", + " self.classifer = LeNetClassifier()\n", + "\n", + " def forward(self, x):\n", + " x = self.feat(x)\n", + " x = self.classifer(x)\n", + " return x\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us define a helper function to benchmark a model." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%100==0:\n", + " print('Iteration %d/%d, ave batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output features size:\", features.size())\n", + " \n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### PyTorch model" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LeNet(\n", + " (feat): LeNetFeatExtractor(\n", + " (conv1): Conv2d(1, 128, kernel_size=(3, 3), stride=(1, 1))\n", + " (conv2): Conv2d(128, 16, kernel_size=(3, 3), stride=(1, 1))\n", + " )\n", + " (classifer): LeNetClassifier(\n", + " (fc1): Linear(in_features=576, out_features=120, bias=True)\n", + " (fc2): Linear(in_features=120, out_features=84, bias=True)\n", + " (fc3): Linear(in_features=84, out_features=10, bias=True)\n", + " )\n", + ")" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = LeNet()\n", + "model.to(\"cuda\").eval()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When compiling your module to TorchScript, there are two paths: Tracing and Scripting. \n", + " \n", + "### Tracing\n", + "\n", + "Tracing follows the path of execution when the module is called and records what happens. This recording is what the TorchScript IR will describe. To trace an instance of our LeNet module, we can call torch.jit.trace with an example input. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LeNet(\n", + " original_name=LeNet\n", + " (feat): LeNetFeatExtractor(\n", + " original_name=LeNetFeatExtractor\n", + " (conv1): Conv2d(original_name=Conv2d)\n", + " (conv2): Conv2d(original_name=Conv2d)\n", + " )\n", + " (classifer): LeNetClassifier(\n", + " original_name=LeNetClassifier\n", + " (fc1): Linear(original_name=Linear)\n", + " (fc2): Linear(original_name=Linear)\n", + " (fc3): Linear(original_name=Linear)\n", + " )\n", + ")" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "traced_model = torch.jit.trace(model, torch.empty([1,1,32,32]).to(\"cuda\"))\n", + "traced_model" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(traced_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Scripting\n", + "\n", + "Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing simply follows the execution of your module, it cannot pick up control flow for instance, it will only follow the code path that a particular input triggers. By working from the Python code, the compiler can include these components. We can run the script compiler on our LeNet module by calling torch.jit.script.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "model = LeNet().to(\"cuda\").eval()\n", + "script_model = torch.jit.script(model)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RecursiveScriptModule(\n", + " original_name=LeNet\n", + " (feat): RecursiveScriptModule(\n", + " original_name=LeNetFeatExtractor\n", + " (conv1): RecursiveScriptModule(original_name=Conv2d)\n", + " (conv2): RecursiveScriptModule(original_name=Conv2d)\n", + " )\n", + " (classifer): RecursiveScriptModule(\n", + " original_name=LeNetClassifier\n", + " (fc1): RecursiveScriptModule(original_name=Linear)\n", + " (fc2): RecursiveScriptModule(original_name=Linear)\n", + " (fc3): RecursiveScriptModule(original_name=Linear)\n", + " )\n", + ")" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "script_model" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 5.56 ms\n", + "Iteration 200/1000, ave batch time 5.56 ms\n", + "Iteration 300/1000, ave batch time 5.56 ms\n", + "Iteration 400/1000, ave batch time 5.56 ms\n", + "Iteration 500/1000, ave batch time 5.56 ms\n", + "Iteration 600/1000, ave batch time 5.56 ms\n", + "Iteration 700/1000, ave batch time 5.56 ms\n", + "Iteration 800/1000, ave batch time 5.56 ms\n", + "Iteration 900/1000, ave batch time 5.56 ms\n", + "Iteration 1000/1000, ave batch time 5.56 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 5.56 ms\n" + ] + } + ], + "source": [ + "benchmark(script_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 3. Compiling with Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TorchScript traced model\n", + "\n", + "First, we compile the TorchScript traced model with Torch-TensorRT. Notice the performance impact." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# We use a batch-size of 1024, and half precision\n", + "trt_ts_module = torch_tensorrt.compile(traced_model, inputs=[torch_tensorrt.Input(\n", + " min_shape=[1024, 1, 32, 32],\n", + " opt_shape=[1024, 1, 33, 33],\n", + " max_shape=[1024, 1, 34, 34],\n", + " dtype=torch.half\n", + " )], \n", + " enabled_precisions = {torch.half})\n", + "\n", + "input_data = torch.randn((1024, 1, 32, 32))\n", + "input_data = input_data.half().to(\"cuda\")\n", + "\n", + "input_data = input_data.half()\n", + "result = trt_ts_module(input_data)\n", + "torch.jit.save(trt_ts_module, \"trt_ts_module.ts\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 1.41 ms\n", + "Iteration 200/1000, ave batch time 1.40 ms\n", + "Iteration 300/1000, ave batch time 1.40 ms\n", + "Iteration 400/1000, ave batch time 1.39 ms\n", + "Iteration 500/1000, ave batch time 1.40 ms\n", + "Iteration 600/1000, ave batch time 1.40 ms\n", + "Iteration 700/1000, ave batch time 1.40 ms\n", + "Iteration 800/1000, ave batch time 1.40 ms\n", + "Iteration 900/1000, ave batch time 1.40 ms\n", + "Iteration 1000/1000, ave batch time 1.40 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 1.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_ts_module, input_shape=(1024, 1, 32, 32), dtype=\"fp16\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TorchScript script model\n", + "\n", + "Next, we compile the TorchScript script model with Torch-TensorRT. Notice the performance impact." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x.1\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Max value of this profile is not valid\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "trt_script_module = torch_tensorrt.compile(script_model, inputs = [torch_tensorrt.Input(\n", + " min_shape=[1024, 1, 32, 32],\n", + " opt_shape=[1024, 1, 33, 33],\n", + " max_shape=[1024, 1, 34, 34],\n", + " dtype=torch.half\n", + " )],\n", + " enabled_precisions={torch.half})\n", + "\n", + "input_data = torch.randn((1024, 1, 32, 32))\n", + "input_data = input_data.half().to(\"cuda\")\n", + "\n", + "input_data = input_data.half()\n", + "result = trt_script_module(input_data)\n", + "torch.jit.save(trt_script_module, \"trt_script_module.ts\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, ave batch time 1.43 ms\n", + "Iteration 200/1000, ave batch time 1.41 ms\n", + "Iteration 300/1000, ave batch time 1.40 ms\n", + "Iteration 400/1000, ave batch time 1.42 ms\n", + "Iteration 500/1000, ave batch time 1.42 ms\n", + "Iteration 600/1000, ave batch time 1.41 ms\n", + "Iteration 700/1000, ave batch time 1.41 ms\n", + "Iteration 800/1000, ave batch time 1.40 ms\n", + "Iteration 900/1000, ave batch time 1.40 ms\n", + "Iteration 1000/1000, ave batch time 1.40 ms\n", + "Input shape: torch.Size([1024, 1, 32, 32])\n", + "Output features size: torch.Size([1024, 10])\n", + "Average batch time: 1.40 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_script_module, input_shape=(1024, 1, 32, 32), dtype=\"fp16\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling TorchScript models with Torch-TensorRT and test the performance impact of the optimization.\n", + "\n", + "### What's next\n", + "Now it's time to try Torch-TensorRT on your own model. Fill out issues at https://github.com/NVIDIA/Torch-TensorRT. Your involvement will help future development of Torch-TensorRT.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_sources/_notebooks/ssd-object-detection-demo.ipynb.txt b/docs/v1.2.0/_sources/_notebooks/ssd-object-detection-demo.ipynb.txt new file mode 100644 index 0000000000..f2a0bd8063 --- /dev/null +++ b/docs/v1.2.0/_sources/_notebooks/ssd-object-detection-demo.ipynb.txt @@ -0,0 +1,943 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2020 NVIDIA Corporation. All Rights Reserved.\n", + "#\n", + "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License.\n", + "# ==============================================================================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Object Detection with Torch-TensorRT (SSD)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## Overview\n", + "\n", + "In the practice of developing machine learning models, there are few tools as approachable as PyTorch for developing and experimenting in designing machine learning models. The power of PyTorch comes from its deep integration into Python, its flexibility and its approach to automatic differentiation and execution (eager execution). However, when moving from research into production, the requirements change and we may no longer want that deep Python integration and we want optimization to get the best performance we can on our deployment platform. In PyTorch 1.0, TorchScript was introduced as a method to separate your PyTorch model from Python, make it portable and optimizable. TorchScript uses PyTorch's JIT compiler to transform your normal PyTorch code which gets interpreted by the Python interpreter to an intermediate representation (IR) which can have optimizations run on it and at runtime can get interpreted by the PyTorch JIT interpreter. For PyTorch this has opened up a whole new world of possibilities, including deployment in other languages like C++. It also introduces a structured graph based format that we can use to do down to the kernel level optimization of models for inference.\n", + "\n", + "When deploying on NVIDIA GPUs TensorRT, NVIDIA's Deep Learning Optimization SDK and Runtime is able to take models from any major framework and specifically tune them to perform better on specific target hardware in the NVIDIA family be it an A100, TITAN V, Jetson Xavier or NVIDIA's Deep Learning Accelerator. TensorRT performs a couple sets of optimizations to achieve this. TensorRT fuses layers and tensors in the model graph, it then uses a large kernel library to select implementations that perform best on the target GPU. TensorRT also has strong support for reduced operating precision execution which allows users to leverage the Tensor Cores on Volta and newer GPUs as well as reducing memory and computation footprints on device.\n", + "\n", + "Torch-TensorRT is a compiler that uses TensorRT to optimize TorchScript code, compiling standard TorchScript modules into ones that internally run with TensorRT optimizations. This enables you to continue to remain in the PyTorch ecosystem, using all the great features PyTorch has such as module composability, its flexible tensor implementation, data loaders and more. Torch-TensorRT is available to use with both PyTorch and LibTorch." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning objectives\n", + "\n", + "This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained.\n", + "\n", + "## Contents\n", + "1. [Requirements](#1)\n", + "2. [SSD Overview](#2)\n", + "3. [Creating TorchScript modules](#3)\n", + "4. [Compiling with Torch-TensorRT](#4)\n", + "5. [Running Inference](#5)\n", + "6. [Measuring Speedup](#6)\n", + "7. [Conclusion](#7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 1. Requirements\n", + "\n", + "Follow the steps in `notebooks/README` to prepare a Docker container, within which you can run this demo notebook.\n", + "\n", + "In addition to that, run the following cell to obtain additional libraries specific to this demo." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting scikit-image==0.19.1\n", + " Downloading scikit_image-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.8 MB)\n", + "\u001b[K |████████████████████████████████| 13.8 MB 8.8 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: networkx>=2.2 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (2.6.3)\n", + "Collecting tifffile>=2019.7.26\n", + " Downloading tifffile-2022.3.16-py3-none-any.whl (179 kB)\n", + "\u001b[K |████████████████████████████████| 179 kB 110.1 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (21.3)\n", + "Requirement already satisfied: scipy>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.6.3)\n", + "Requirement already satisfied: numpy>=1.17.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (1.22.2)\n", + "Collecting imageio>=2.4.1\n", + " Downloading imageio-2.16.1-py3-none-any.whl (3.3 MB)\n", + "\u001b[K |████████████████████████████████| 3.3 MB 42.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in /opt/conda/lib/python3.8/site-packages (from scikit-image==0.19.1) (9.0.0)\n", + "Collecting PyWavelets>=1.1.1\n", + " Downloading PyWavelets-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB)\n", + "\u001b[K |████████████████████████████████| 6.9 MB 61.3 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->scikit-image==0.19.1) (3.0.7)\n", + "Installing collected packages: tifffile, PyWavelets, imageio, scikit-image\n", + "Successfully installed PyWavelets-1.3.0 imageio-2.16.1 scikit-image-0.19.1 tifffile-2022.3.16\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", + "Collecting ipywidgets\n", + " Downloading ipywidgets-7.7.0-py2.py3-none-any.whl (123 kB)\n", + "\u001b[K |████████████████████████████████| 123 kB 12.1 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.9.0)\n", + "Collecting jupyterlab-widgets>=1.0.0\n", + " Downloading jupyterlab_widgets-1.1.0-py3-none-any.whl (245 kB)\n", + "\u001b[K |████████████████████████████████| 245 kB 60.6 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (8.0.1)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.1)\n", + "Collecting widgetsnbextension~=3.6.0\n", + " Downloading widgetsnbextension-3.6.0-py2.py3-none-any.whl (1.6 MB)\n", + "\u001b[K |████████████████████████████████| 1.6 MB 35.2 MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: nest-asyncio in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", + "Requirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.2)\n", + "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", + "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", + "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.1.4)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.26)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", + "Requirement already satisfied: black in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (22.1.0)\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (59.5.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", + "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", + "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.9.1)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.1)\n", + "Requirement already satisfied: importlib-resources>=1.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (5.4.0)\n", + "Requirement already satisfied: zipp>=3.1.0 in /opt/conda/lib/python3.8/site-packages (from importlib-resources>=1.4.0->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (3.7.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.1)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)\n", + "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.13.1)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.3)\n", + "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.4.2)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)\n", + "Requirement already satisfied: pathspec>=0.9.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.9.0)\n", + "Requirement already satisfied: tomli>=1.1.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: mypy-extensions>=0.4.3 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.4.3)\n", + "Requirement already satisfied: click>=8.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (8.0.3)\n", + "Requirement already satisfied: platformdirs>=2 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.4.1)\n", + "Requirement already satisfied: typing-extensions>=3.10.0.0 in /opt/conda/lib/python3.8/site-packages (from black->ipython>=4.0.0->ipywidgets) (4.0.1)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.0.1)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.11)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.0)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.1.2)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.1.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.7)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.2)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.8/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)\n", + "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", + "Successfully installed ipywidgets-7.7.0 jupyterlab-widgets-1.1.0 widgetsnbextension-3.6.0\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install scikit-image==0.19.1\n", + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 2. SSD\n", + "\n", + "### Single Shot MultiBox Detector model for object detection\n", + "\n", + "_ | _\n", + "- | -\n", + "![alt](https://pytorch.org/assets/images/ssd_diagram.png) | ![alt](https://pytorch.org/assets/images/ssd.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "PyTorch has a model repository called the PyTorch Hub, which is a source for high quality implementations of common models. We can get our SSD model pretrained on [COCO](https://cocodataset.org/#home) from there.\n", + "\n", + "### Model Description\n", + "\n", + "This SSD300 model is based on the\n", + "[SSD: Single Shot MultiBox Detector](https://arxiv.org/abs/1512.02325) paper, which\n", + "describes SSD as “a method for detecting objects in images using a single deep neural network\".\n", + "The input size is fixed to 300x300.\n", + "\n", + "The main difference between this model and the one described in the paper is in the backbone.\n", + "Specifically, the VGG model is obsolete and is replaced by the ResNet-50 model.\n", + "\n", + "From the\n", + "[Speed/accuracy trade-offs for modern convolutional object detectors](https://arxiv.org/abs/1611.10012)\n", + "paper, the following enhancements were made to the backbone:\n", + "* The conv5_x, avgpool, fc and softmax layers were removed from the original classification model.\n", + "* All strides in conv4_x are set to 1x1.\n", + "\n", + "The backbone is followed by 5 additional convolutional layers.\n", + "In addition to the convolutional layers, we attached 6 detection heads:\n", + "* The first detection head is attached to the last conv4_x layer.\n", + "* The other five detection heads are attached to the corresponding 5 additional layers.\n", + "\n", + "Detector heads are similar to the ones referenced in the paper, however,\n", + "they are enhanced by additional BatchNorm layers after each convolution.\n", + "\n", + "More information about this SSD model is available at Nvidia's \"DeepLearningExamples\" Github [here](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "torch.hub._validate_not_a_forked_repo=lambda a,b,c: True" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading: \"https://github.com/NVIDIA/DeepLearningExamples/archive/torchhub.zip\" to /root/.cache/torch/hub/torchhub.zip\n", + "/root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub/PyTorch/Classification/ConvNets/image_classification/models/efficientnet.py:17: UserWarning: pytorch_quantization module not found, quantization will not be available\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "['nvidia_convnets_processing_utils',\n", + " 'nvidia_efficientnet',\n", + " 'nvidia_efficientnet_b0',\n", + " 'nvidia_efficientnet_b4',\n", + " 'nvidia_efficientnet_widese_b0',\n", + " 'nvidia_efficientnet_widese_b4',\n", + " 'nvidia_resneXt',\n", + " 'nvidia_resnet50',\n", + " 'nvidia_resnext101_32x4d',\n", + " 'nvidia_se_resnext101_32x4d',\n", + " 'nvidia_ssd',\n", + " 'nvidia_ssd_processing_utils',\n", + " 'nvidia_tacotron2',\n", + " 'nvidia_tts_utils',\n", + " 'nvidia_waveglow']" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# List of available models in PyTorch Hub from Nvidia/DeepLearningExamples\n", + "torch.hub.list('NVIDIA/DeepLearningExamples:torchhub')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using cache found in /root/.cache/torch/hub/NVIDIA_DeepLearningExamples_torchhub\n", + "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1c7cf3e1635d4a2b9c8731b7fc9ce724", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0.00/97.8M [00:0040%) in a more comprehensive format.\n", + "results_per_input = utils.decode_results(detections_batch)\n", + "best_results_per_input = [utils.pick_best(results, 0.40) for results in results_per_input]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualize results" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "import matplotlib.patches as patches\n", + "\n", + "# The utility plots the images and predicted bounding boxes (with confidence scores).\n", + "def plot_results(best_results):\n", + " for image_idx in range(len(best_results)):\n", + " fig, ax = plt.subplots(1)\n", + " # Show original, denormalized image...\n", + " image = inputs[image_idx] / 2 + 0.5\n", + " ax.imshow(image)\n", + " # ...with detections\n", + " bboxes, classes, confidences = best_results[image_idx]\n", + " for idx in range(len(bboxes)):\n", + " left, bot, right, top = bboxes[idx]\n", + " x, y, w, h = [val * 300 for val in [left, bot, right - left, top - bot]]\n", + " rect = patches.Rectangle((x, y), w, h, linewidth=1, edgecolor='r', facecolor='none')\n", + " ax.add_patch(rect)\n", + " ax.text(x, y, \"{} {:.0f}%\".format(classes_to_labels[classes[idx] - 1], confidences[idx]*100), bbox=dict(facecolor='white', alpha=0.5))\n", + " plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Visualize results without Torch-TensorRT\n", + "plot_results(best_results_per_input)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmark utility" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "# Helper function to benchmark the model\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " pred_loc, pred_label = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%10==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output location prediction size:\", pred_loc.size())\n", + " print(\"Output label prediction size:\", pred_label.size())\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We check how well the model performs **before** we use Torch-TensorRT" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 165.38 ms\n", + "Iteration 20/100, avg batch time 165.99 ms\n", + "Iteration 30/100, avg batch time 166.04 ms\n", + "Iteration 40/100, avg batch time 166.32 ms\n", + "Iteration 50/100, avg batch time 166.49 ms\n", + "Iteration 60/100, avg batch time 166.74 ms\n", + "Iteration 70/100, avg batch time 166.88 ms\n", + "Iteration 80/100, avg batch time 167.05 ms\n", + "Iteration 90/100, avg batch time 167.18 ms\n", + "Iteration 100/100, avg batch time 167.31 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 167.31 ms\n" + ] + } + ], + "source": [ + "# Model benchmark without Torch-TensorRT\n", + "model = ssd300.eval().to(\"cuda\")\n", + "benchmark(model, input_shape=(128, 3, 300, 300), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 3. Creating TorchScript modules " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To compile with Torch-TensorRT, the model must first be in **TorchScript**. TorchScript is a programming language included in PyTorch which removes the Python dependency normal PyTorch models have. This conversion is done via a JIT compiler which given a PyTorch Module will generate an equivalent TorchScript Module. There are two paths that can be used to generate TorchScript: **Tracing** and **Scripting**.
\n", + "- Tracing follows execution of PyTorch generating ops in TorchScript corresponding to what it sees.
\n", + "- Scripting does an analysis of the Python code and generates TorchScript, this allows the resulting graph to include control flow which tracing cannot do. \n", + "\n", + "Tracing however due to its simplicity is more likely to compile successfully with Torch-TensorRT (though both systems are supported)." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "model = ssd300.eval().to(\"cuda\")\n", + "traced_model = torch.jit.trace(model, [torch.randn((1,3,300,300)).to(\"cuda\")])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If required, we can also save this model and use it independently of Python." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# This is just an example, and not required for the purposes of this demo\n", + "torch.jit.save(traced_model, \"ssd_300_traced.jit.pt\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 165.53 ms\n", + "Iteration 20/100, avg batch time 166.19 ms\n", + "Iteration 30/100, avg batch time 166.12 ms\n", + "Iteration 40/100, avg batch time 166.16 ms\n", + "Iteration 50/100, avg batch time 166.24 ms\n", + "Iteration 60/100, avg batch time 166.33 ms\n", + "Iteration 70/100, avg batch time 166.43 ms\n", + "Iteration 80/100, avg batch time 166.44 ms\n", + "Iteration 90/100, avg batch time 166.53 ms\n", + "Iteration 100/100, avg batch time 166.59 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 166.59 ms\n" + ] + } + ], + "source": [ + "# Obtain the average time taken by a batch of input with Torchscript compiled modules\n", + "benchmark(traced_model, input_shape=(128, 3, 300, 300), nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 4. Compiling with Torch-TensorRT\n", + "TorchScript modules behave just like normal PyTorch modules and are intercompatible. From TorchScript we can now compile a TensorRT based module. This module will still be implemented in TorchScript but all the computation will be done in TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n" + ] + } + ], + "source": [ + "import torch_tensorrt\n", + "\n", + "# The compiled module will have precision as specified by \"op_precision\".\n", + "# Here, it will have FP16 precision.\n", + "trt_model = torch_tensorrt.compile(traced_model, \n", + " inputs= [torch_tensorrt.Input((3, 3, 300, 300), dtype=torch.half)],\n", + " enabled_precisions= {torch.half}, # Run with FP16\n", + " workspace_size= 1 << 20\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 5. Running Inference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we run object detection" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# using a Torch-TensorRT module is exactly the same as how we usually do inference in PyTorch i.e. model(inputs)\n", + "detections_batch = trt_model(tensor.to(torch.half)) # convert the input to half precision\n", + "\n", + "# By default, raw output from SSD network per input image contains 8732 boxes with \n", + "# localization and class probability distribution. \n", + "# Let’s filter this output to only get reasonable detections (confidence>40%) in a more comprehensive format.\n", + "results_per_input = utils.decode_results(detections_batch)\n", + "best_results_per_input_trt = [utils.pick_best(results, 0.40) for results in results_per_input]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's visualize our predictions!\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Visualize results with Torch-TensorRT\n", + "plot_results(best_results_per_input_trt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We get similar results as before!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 6. Measuring Speedup\n", + "We can run the benchmark function again to see the speedup gained! Compare this result with the same batch-size of input in the case without Torch-TensorRT above." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - For input x, found user specified input dtype as Float16, however when inspecting the graph, the input type expected was inferred to be Float\n", + "The compiler is going to use the user setting Float16\n", + "This conflict may cause an error at runtime due to partial compilation being enabled and therefore\n", + "compatibility with PyTorch's data type convention is required.\n", + "If you do indeed see errors at runtime either:\n", + "- Remove the dtype spec for x\n", + "- Disable partial compilation by setting require_full_compilation to True\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n", + "WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 10/100, avg batch time 45.88 ms\n", + "Iteration 20/100, avg batch time 46.20 ms\n", + "Iteration 30/100, avg batch time 46.10 ms\n", + "Iteration 40/100, avg batch time 46.19 ms\n", + "Iteration 50/100, avg batch time 46.15 ms\n", + "Iteration 60/100, avg batch time 46.17 ms\n", + "Iteration 70/100, avg batch time 46.19 ms\n", + "Iteration 80/100, avg batch time 46.20 ms\n", + "Iteration 90/100, avg batch time 46.22 ms\n", + "Iteration 100/100, avg batch time 46.21 ms\n", + "Input shape: torch.Size([128, 3, 300, 300])\n", + "Output location prediction size: torch.Size([128, 4, 8732])\n", + "Output label prediction size: torch.Size([128, 81, 8732])\n", + "Average batch time: 46.21 ms\n" + ] + } + ], + "source": [ + "batch_size = 128\n", + "\n", + "# Recompiling with batch_size we use for evaluating performance\n", + "trt_model = torch_tensorrt.compile(traced_model,\n", + " inputs = [torch_tensorrt.Input((batch_size, 3, 300, 300), dtype=torch.half)],\n", + " enabled_precisions= {torch.half}, # Run with FP16\n", + " workspace_size= 1 << 20\n", + ")\n", + "\n", + "benchmark(trt_model, input_shape=(batch_size, 3, 300, 300), dtype='fp16', nruns=100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 7. Conclusion\n", + "\n", + "In this notebook, we have walked through the complete process of compiling a TorchScript SSD300 model with Torch-TensorRT, and tested the performance impact of the optimization. We find that using the Torch-TensorRT compiled model, we gain significant speedup in inference without any noticeable drop in performance!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Details\n", + "For detailed information on model input and output,\n", + "training recipies, inference and performance visit:\n", + "[github](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)\n", + "and/or [NGC](https://ngc.nvidia.com/catalog/model-scripts/nvidia:ssd_for_pytorch)\n", + "\n", + "### References\n", + "\n", + " - [SSD: Single Shot MultiBox Detector](https://arxiv.org/abs/1512.02325) paper\n", + " - [Speed/accuracy trade-offs for modern convolutional object detectors](https://arxiv.org/abs/1611.10012) paper\n", + " - [SSD on NGC](https://ngc.nvidia.com/catalog/model-scripts/nvidia:ssd_for_pytorch)\n", + " - [SSD on github](https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Detection/SSD)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/v1.2.0/_sources/_notebooks/vgg-qat.ipynb.txt b/docs/v1.2.0/_sources/_notebooks/vgg-qat.ipynb.txt new file mode 100644 index 0000000000..cca771ad92 --- /dev/null +++ b/docs/v1.2.0/_sources/_notebooks/vgg-qat.ipynb.txt @@ -0,0 +1,1200 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8033b2eb", + "metadata": {}, + "source": [ + "# Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT" + ] + }, + { + "cell_type": "markdown", + "id": "69ec3ca7", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "Quantization Aware training (QAT) simulates quantization during training by quantizing weights and activation layers. This will help to reduce the loss in accuracy when we convert the network trained in FP32 to INT8 for faster inference. QAT introduces additional nodes in the graph which will be used to learn the dynamic ranges of weights and activation layers. In this notebook, we illustrate the following steps from training to inference of a QAT model in Torch-TensorRT.\n", + "\n", + "1. [Requirements](#1)\n", + "2. [VGG16 Overview](#2)\n", + "3. [Training a baseline VGG16 model](#3)\n", + "4. [Apply Quantization](#4)\n", + "5. [Model calibration](#5)\n", + "6. [Quantization Aware training](#6)\n", + "7. [Export to Torchscript](#7)\n", + "8. [Inference using Torch-TensorRT](#8)\n", + "8. [References](#8)" + ] + }, + { + "cell_type": "markdown", + "id": "79655ea8", + "metadata": {}, + "source": [ + "\n", + "## 1. Requirements\n", + "Please install the required dependencies and import these libraries accordingly" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14a72941", + "metadata": {}, + "outputs": [], + "source": [ + "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6493e915", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.1.0\n" + ] + } + ], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "import torch.optim as optim\n", + "import torch.utils.data as data\n", + "import torchvision.transforms as transforms\n", + "import torchvision.datasets as datasets\n", + "import torch_tensorrt\n", + "\n", + "from torch.utils.tensorboard import SummaryWriter\n", + "\n", + "import pytorch_quantization\n", + "from pytorch_quantization import nn as quant_nn\n", + "from pytorch_quantization import quant_modules\n", + "from pytorch_quantization.tensor_quant import QuantDescriptor\n", + "from pytorch_quantization import calib\n", + "from tqdm import tqdm\n", + "\n", + "print(pytorch_quantization.__version__)\n", + "\n", + "import os\n", + "import sys\n", + "sys.path.insert(0, \"../examples/int8/training/vgg16\")\n", + "from vgg16 import vgg16\n" + ] + }, + { + "cell_type": "markdown", + "id": "4de5060a", + "metadata": {}, + "source": [ + "\n", + "## 2. VGG16 Overview\n", + "### Very Deep Convolutional Networks for Large-Scale Image Recognition\n", + "VGG is one of the earliest family of image classification networks that first used small (3x3) convolution filters and achieved significant improvements on ImageNet recognition challenge. The network architecture looks as follows\n", + "\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "7a5afc49", + "metadata": {}, + "source": [ + "\n", + "## 3. Training a baseline VGG16 model\n", + "We train VGG16 on CIFAR10 dataset. Define training and testing datasets and dataloaders. This will download the CIFAR 10 data in your `data` directory. Data preprocessing is performed using `torchvision` transforms. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5d2c4c45", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Files already downloaded and verified\n", + "Files already downloaded and verified\n" + ] + } + ], + "source": [ + "classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n", + "\n", + "# ========== Define Training dataset and dataloaders =============#\n", + "training_dataset = datasets.CIFAR10(root='./data',\n", + " train=True,\n", + " download=True,\n", + " transform=transforms.Compose([\n", + " transforms.RandomCrop(32, padding=4),\n", + " transforms.RandomHorizontalFlip(),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n", + " ]))\n", + "\n", + "training_dataloader = torch.utils.data.DataLoader(training_dataset,\n", + " batch_size=32,\n", + " shuffle=True,\n", + " num_workers=2)\n", + "\n", + "# ========== Define Testing dataset and dataloaders =============#\n", + "testing_dataset = datasets.CIFAR10(root='./data',\n", + " train=False,\n", + " download=True,\n", + " transform=transforms.Compose([\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),\n", + " ]))\n", + "\n", + "testing_dataloader = torch.utils.data.DataLoader(testing_dataset,\n", + " batch_size=16,\n", + " shuffle=False,\n", + " num_workers=2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2bd092b3", + "metadata": {}, + "outputs": [], + "source": [ + "def train(model, dataloader, crit, opt, epoch):\n", + "# global writer\n", + " model.train()\n", + " running_loss = 0.0\n", + " for batch, (data, labels) in enumerate(dataloader):\n", + " data, labels = data.cuda(), labels.cuda(non_blocking=True)\n", + " opt.zero_grad()\n", + " out = model(data)\n", + " loss = crit(out, labels)\n", + " loss.backward()\n", + " opt.step()\n", + "\n", + " running_loss += loss.item()\n", + " if batch % 500 == 499:\n", + " print(\"Batch: [%5d | %5d] loss: %.3f\" % (batch + 1, len(dataloader), running_loss / 100))\n", + " running_loss = 0.0\n", + " \n", + "def test(model, dataloader, crit, epoch):\n", + " global writer\n", + " global classes\n", + " total = 0\n", + " correct = 0\n", + " loss = 0.0\n", + " class_probs = []\n", + " class_preds = []\n", + " model.eval()\n", + " with torch.no_grad():\n", + " for data, labels in dataloader:\n", + " data, labels = data.cuda(), labels.cuda(non_blocking=True)\n", + " out = model(data)\n", + " loss += crit(out, labels)\n", + " preds = torch.max(out, 1)[1]\n", + " class_probs.append([F.softmax(i, dim=0) for i in out])\n", + " class_preds.append(preds)\n", + " total += labels.size(0)\n", + " correct += (preds == labels).sum().item()\n", + "\n", + " test_probs = torch.cat([torch.stack(batch) for batch in class_probs])\n", + " test_preds = torch.cat(class_preds)\n", + "\n", + " return loss / total, correct / total\n", + "\n", + "def save_checkpoint(state, ckpt_path=\"checkpoint.pth\"):\n", + " torch.save(state, ckpt_path)\n", + " print(\"Checkpoint saved\")" + ] + }, + { + "cell_type": "markdown", + "id": "c80a86cc", + "metadata": {}, + "source": [ + "*Define the VGG model that we are going to perfom QAT on.*" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8c564b8f", + "metadata": {}, + "outputs": [], + "source": [ + "# CIFAR 10 has 10 classes\n", + "model = vgg16(num_classes=len(classes), init_weights=False)\n", + "model = model.cuda()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "abc00452", + "metadata": {}, + "outputs": [], + "source": [ + "# Declare Learning rate\n", + "lr = 0.1\n", + "state = {}\n", + "state[\"lr\"] = lr\n", + "\n", + "# Use cross entropy loss for classification and SGD optimizer\n", + "crit = nn.CrossEntropyLoss()\n", + "opt = optim.SGD(model.parameters(), lr=state[\"lr\"], momentum=0.9, weight_decay=1e-4)\n", + "\n", + "\n", + "# Adjust learning rate based on epoch number\n", + "def adjust_lr(optimizer, epoch):\n", + " global state\n", + " new_lr = lr * (0.5**(epoch // 12)) if state[\"lr\"] > 1e-7 else state[\"lr\"]\n", + " if new_lr != state[\"lr\"]:\n", + " state[\"lr\"] = new_lr\n", + " print(\"Updating learning rate: {}\".format(state[\"lr\"]))\n", + " for param_group in optimizer.param_groups:\n", + " param_group[\"lr\"] = state[\"lr\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d80865a2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch: [ 1 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 13.288\n", + "Batch: [ 1000 | 1563] loss: 11.345\n", + "Batch: [ 1500 | 1563] loss: 11.008\n", + "Test Loss: 0.13388 Test Acc: 13.23%\n", + "Epoch: [ 2 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 10.742\n", + "Batch: [ 1000 | 1563] loss: 10.311\n", + "Batch: [ 1500 | 1563] loss: 10.141\n", + "Test Loss: 0.11888 Test Acc: 23.96%\n", + "Epoch: [ 3 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.877\n", + "Batch: [ 1000 | 1563] loss: 9.821\n", + "Batch: [ 1500 | 1563] loss: 9.818\n", + "Test Loss: 0.11879 Test Acc: 24.68%\n", + "Epoch: [ 4 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.677\n", + "Batch: [ 1000 | 1563] loss: 9.613\n", + "Batch: [ 1500 | 1563] loss: 9.504\n", + "Test Loss: 0.11499 Test Acc: 23.68%\n", + "Epoch: [ 5 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.560\n", + "Batch: [ 1000 | 1563] loss: 9.536\n", + "Batch: [ 1500 | 1563] loss: 9.309\n", + "Test Loss: 0.10990 Test Acc: 27.84%\n", + "Epoch: [ 6 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.254\n", + "Batch: [ 1000 | 1563] loss: 9.234\n", + "Batch: [ 1500 | 1563] loss: 9.188\n", + "Test Loss: 0.11594 Test Acc: 23.29%\n", + "Epoch: [ 7 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.141\n", + "Batch: [ 1000 | 1563] loss: 9.110\n", + "Batch: [ 1500 | 1563] loss: 9.013\n", + "Test Loss: 0.10732 Test Acc: 29.24%\n", + "Epoch: [ 8 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 9.120\n", + "Batch: [ 1000 | 1563] loss: 9.086\n", + "Batch: [ 1500 | 1563] loss: 8.948\n", + "Test Loss: 0.10732 Test Acc: 27.24%\n", + "Epoch: [ 9 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.941\n", + "Batch: [ 1000 | 1563] loss: 8.997\n", + "Batch: [ 1500 | 1563] loss: 9.028\n", + "Test Loss: 0.11299 Test Acc: 25.52%\n", + "Epoch: [ 10 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.927\n", + "Batch: [ 1000 | 1563] loss: 8.837\n", + "Batch: [ 1500 | 1563] loss: 8.860\n", + "Test Loss: 0.10130 Test Acc: 34.61%\n", + "Epoch: [ 11 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.953\n", + "Batch: [ 1000 | 1563] loss: 8.738\n", + "Batch: [ 1500 | 1563] loss: 8.724\n", + "Test Loss: 0.10018 Test Acc: 32.27%\n", + "Epoch: [ 12 / 25] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 8.721\n", + "Batch: [ 1000 | 1563] loss: 8.716\n", + "Batch: [ 1500 | 1563] loss: 8.701\n", + "Test Loss: 0.10070 Test Acc: 29.57%\n", + "Updating learning rate: 0.05\n", + "Epoch: [ 13 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 7.944\n", + "Batch: [ 1000 | 1563] loss: 7.649\n", + "Batch: [ 1500 | 1563] loss: 7.511\n", + "Test Loss: 0.08555 Test Acc: 44.62%\n", + "Epoch: [ 14 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 7.057\n", + "Batch: [ 1000 | 1563] loss: 6.944\n", + "Batch: [ 1500 | 1563] loss: 6.687\n", + "Test Loss: 0.08331 Test Acc: 52.27%\n", + "Epoch: [ 15 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 6.470\n", + "Batch: [ 1000 | 1563] loss: 6.439\n", + "Batch: [ 1500 | 1563] loss: 6.126\n", + "Test Loss: 0.07266 Test Acc: 58.02%\n", + "Epoch: [ 16 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.834\n", + "Batch: [ 1000 | 1563] loss: 5.801\n", + "Batch: [ 1500 | 1563] loss: 5.622\n", + "Test Loss: 0.06340 Test Acc: 65.17%\n", + "Epoch: [ 17 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.459\n", + "Batch: [ 1000 | 1563] loss: 5.442\n", + "Batch: [ 1500 | 1563] loss: 5.314\n", + "Test Loss: 0.05945 Test Acc: 67.22%\n", + "Epoch: [ 18 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 5.071\n", + "Batch: [ 1000 | 1563] loss: 5.145\n", + "Batch: [ 1500 | 1563] loss: 5.063\n", + "Test Loss: 0.06567 Test Acc: 64.46%\n", + "Epoch: [ 19 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.796\n", + "Batch: [ 1000 | 1563] loss: 4.781\n", + "Batch: [ 1500 | 1563] loss: 4.732\n", + "Test Loss: 0.05374 Test Acc: 71.87%\n", + "Epoch: [ 20 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.568\n", + "Batch: [ 1000 | 1563] loss: 4.564\n", + "Batch: [ 1500 | 1563] loss: 4.484\n", + "Test Loss: 0.05311 Test Acc: 71.12%\n", + "Epoch: [ 21 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.385\n", + "Batch: [ 1000 | 1563] loss: 4.302\n", + "Batch: [ 1500 | 1563] loss: 4.285\n", + "Test Loss: 0.05080 Test Acc: 74.29%\n", + "Epoch: [ 22 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 4.069\n", + "Batch: [ 1000 | 1563] loss: 4.105\n", + "Batch: [ 1500 | 1563] loss: 4.096\n", + "Test Loss: 0.04807 Test Acc: 75.20%\n", + "Epoch: [ 23 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 3.959\n", + "Batch: [ 1000 | 1563] loss: 3.898\n", + "Batch: [ 1500 | 1563] loss: 3.916\n", + "Test Loss: 0.04743 Test Acc: 75.81%\n", + "Epoch: [ 24 / 25] LR: 0.050000\n", + "Batch: [ 500 | 1563] loss: 3.738\n", + "Batch: [ 1000 | 1563] loss: 3.847\n", + "Batch: [ 1500 | 1563] loss: 3.797\n", + "Test Loss: 0.04609 Test Acc: 76.42%\n", + "Updating learning rate: 0.025\n", + "Epoch: [ 25 / 25] LR: 0.025000\n", + "Batch: [ 500 | 1563] loss: 2.952\n", + "Batch: [ 1000 | 1563] loss: 2.906\n", + "Batch: [ 1500 | 1563] loss: 2.735\n", + "Test Loss: 0.03466 Test Acc: 82.00%\n", + "Checkpoint saved\n" + ] + } + ], + "source": [ + "# Train the model for 25 epochs to get ~80% accuracy.\n", + "num_epochs=25\n", + "for epoch in range(num_epochs):\n", + " adjust_lr(opt, epoch)\n", + " print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state[\"lr\"]))\n", + "\n", + " train(model, training_dataloader, crit, opt, epoch)\n", + " test_loss, test_acc = test(model, testing_dataloader, crit, epoch)\n", + "\n", + " print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n", + " \n", + "save_checkpoint({'epoch': epoch + 1,\n", + " 'model_state_dict': model.state_dict(),\n", + " 'acc': test_acc,\n", + " 'opt_state_dict': opt.state_dict(),\n", + " 'state': state},\n", + " ckpt_path=\"vgg16_base_ckpt\")" + ] + }, + { + "cell_type": "markdown", + "id": "e1044537", + "metadata": {}, + "source": [ + "\n", + "## 4. Apply Quantization" + ] + }, + { + "cell_type": "markdown", + "id": "c33b7f4e", + "metadata": {}, + "source": [ + "`quant_modules.initialize()` will ensure quantized version of modules will be called instead of original modules. For example, when you define a model with convolution, linear, pooling layers, `QuantConv2d`, `QuantLinear` and `QuantPooling` will be called. `QuantConv2d` basically wraps quantizer nodes around inputs and weights of regular `Conv2d`. Please refer to all the quantized modules in pytorch-quantization toolkit for more information. A `QuantConv2d` is represented in `pytorch-quantization` toolkit as follows.\n", + "\n", + "```\n", + "def forward(self, input):\n", + " # the actual quantization happens in the next level of the class hierarchy\n", + " quant_input, quant_weight = self._quant(input)\n", + "\n", + " if self.padding_mode == 'circular':\n", + " expanded_padding = ((self.padding[1] + 1) // 2, self.padding[1] // 2,\n", + " (self.padding[0] + 1) // 2, self.padding[0] // 2)\n", + " output = F.conv2d(F.pad(quant_input, expanded_padding, mode='circular'),\n", + " quant_weight, self.bias, self.stride,\n", + " _pair(0), self.dilation, self.groups)\n", + " else:\n", + " output = F.conv2d(quant_input, quant_weight, self.bias, self.stride, self.padding, self.dilation,\n", + " self.groups)\n", + "\n", + " return output\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "985dc59e", + "metadata": {}, + "outputs": [], + "source": [ + "quant_modules.initialize()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "164ce8cb", + "metadata": {}, + "outputs": [], + "source": [ + "# All the regular conv, FC layers will be converted to their quantozed counterparts due to quant_modules.initialize()\n", + "qat_model = vgg16(num_classes=len(classes), init_weights=False)\n", + "qat_model = qat_model.cuda()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "8e5f7fb5", + "metadata": {}, + "outputs": [], + "source": [ + "# vgg16_base_ckpt is the checkpoint generated from Step 3 : Training a baseline VGG16 model.\n", + "ckpt = torch.load(\"./vgg16_base_ckpt\")\n", + "modified_state_dict={}\n", + "for key, val in ckpt[\"model_state_dict\"].items():\n", + " # Remove 'module.' from the key names\n", + " if key.startswith('module'):\n", + " modified_state_dict[key[7:]] = val\n", + " else:\n", + " modified_state_dict[key] = val\n", + "\n", + "# Load the pre-trained checkpoint\n", + "qat_model.load_state_dict(modified_state_dict)\n", + "opt.load_state_dict(ckpt[\"opt_state_dict\"])" + ] + }, + { + "cell_type": "markdown", + "id": "8f8a74e8", + "metadata": {}, + "source": [ + "\n", + "## 5. Model Calibration" + ] + }, + { + "cell_type": "markdown", + "id": "d2a321f9", + "metadata": {}, + "source": [ + "The quantizer nodes introduced in the model around desired layers capture the dynamic range (min_value, max_value) that is observed by the layer. Calibration is the process of computing the dynamic range of these layers by passing calibration data, which is usually a subset of training or validation data. There are different ways of calibration: `max`, `histogram` and `entropy`. We use `max` calibration technique as it is simple and effective. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "039423dc", + "metadata": {}, + "outputs": [], + "source": [ + "def compute_amax(model, **kwargs):\n", + " # Load calib result\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " if isinstance(module._calibrator, calib.MaxCalibrator):\n", + " module.load_calib_amax()\n", + " else:\n", + " module.load_calib_amax(**kwargs)\n", + " print(F\"{name:40}: {module}\")\n", + " model.cuda()\n", + "\n", + "def collect_stats(model, data_loader, num_batches):\n", + " \"\"\"Feed data to the network and collect statistics\"\"\"\n", + " # Enable calibrators\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " module.disable_quant()\n", + " module.enable_calib()\n", + " else:\n", + " module.disable()\n", + "\n", + " # Feed data to the network for collecting stats\n", + " for i, (image, _) in tqdm(enumerate(data_loader), total=num_batches):\n", + " model(image.cuda())\n", + " if i >= num_batches:\n", + " break\n", + "\n", + " # Disable calibrators\n", + " for name, module in model.named_modules():\n", + " if isinstance(module, quant_nn.TensorQuantizer):\n", + " if module._calibrator is not None:\n", + " module.enable_quant()\n", + " module.disable_calib()\n", + " else:\n", + " module.enable()\n", + "\n", + "def calibrate_model(model, model_name, data_loader, num_calib_batch, calibrator, hist_percentile, out_dir):\n", + " \"\"\"\n", + " Feed data to the network and calibrate.\n", + " Arguments:\n", + " model: classification model\n", + " model_name: name to use when creating state files\n", + " data_loader: calibration data set\n", + " num_calib_batch: amount of calibration passes to perform\n", + " calibrator: type of calibration to use (max/histogram)\n", + " hist_percentile: percentiles to be used for historgram calibration\n", + " out_dir: dir to save state files in\n", + " \"\"\"\n", + "\n", + " if num_calib_batch > 0:\n", + " print(\"Calibrating model\")\n", + " with torch.no_grad():\n", + " collect_stats(model, data_loader, num_calib_batch)\n", + "\n", + " if not calibrator == \"histogram\":\n", + " compute_amax(model, method=\"max\")\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-max-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)\n", + " else:\n", + " for percentile in hist_percentile:\n", + " print(F\"{percentile} percentile calibration\")\n", + " compute_amax(model, method=\"percentile\")\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-percentile-{percentile}-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)\n", + "\n", + " for method in [\"mse\", \"entropy\"]:\n", + " print(F\"{method} calibration\")\n", + " compute_amax(model, method=method)\n", + " calib_output = os.path.join(\n", + " out_dir,\n", + " F\"{model_name}-{method}-{num_calib_batch*data_loader.batch_size}.pth\")\n", + " torch.save(model.state_dict(), calib_output)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "78504a6f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calibrating model\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|███████████████████████████████████████████████████████| 32/32 [00:00<00:00, 96.04it/s]\n", + "WARNING: Logging before flag parsing goes to stderr.\n", + "W1109 04:01:43.512364 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.513354 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.514046 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.514638 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.515270 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.515859 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.516441 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.517009 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.517600 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.518167 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.518752 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.519333 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.519911 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.520473 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.521038 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.521596 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.522170 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.522742 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.523360 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.523957 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.524581 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525059 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525366 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525675 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.525962 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526257 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526566 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.526885 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527188 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527489 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.527792 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528097 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528387 139704147265344 tensor_quantizer.py:173] Disable MaxCalibrator\n", + "W1109 04:01:43.528834 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.529163 139704147265344 tensor_quantizer.py:238] Call .cuda() if running on GPU after loading calibrated amax.\n", + "W1109 04:01:43.532748 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).\n", + "W1109 04:01:43.533468 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.534033 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([64, 1, 1, 1]).\n", + "W1109 04:01:43.534684 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.535320 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).\n", + "W1109 04:01:43.535983 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.536569 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([128, 1, 1, 1]).\n", + "W1109 04:01:43.537248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.537833 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.538480 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.539074 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.539724 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.540307 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([256, 1, 1, 1]).\n", + "W1109 04:01:43.540952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.541534 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.542075 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.542596 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.543248 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.543719 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.544424 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.544952 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.545530 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.546114 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.546713 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.547292 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([512, 1, 1, 1]).\n", + "W1109 04:01:43.547902 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.548453 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.549015 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).\n", + "W1109 04:01:43.549665 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.550436 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([4096, 1]).\n", + "W1109 04:01:43.551925 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([]).\n", + "W1109 04:01:43.553105 139704147265344 tensor_quantizer.py:237] Load calibrated amax, shape=torch.Size([10, 1]).\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "features.0._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=2.7537 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.0._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0263, 2.7454](64) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.3._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=27.5676 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.3._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0169, 1.8204](64) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.7._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=15.2002 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.7._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0493, 1.3207](128) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.10._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=7.7376 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.10._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0163, 0.9624](128) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.14._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=8.8351 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.14._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0622, 0.8791](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.17._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=12.5746 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.17._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0505, 0.5117](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.20._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=9.7203 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.20._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0296, 0.5335](256) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.24._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=8.9367 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.24._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0220, 0.3763](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.27._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=6.6539 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.27._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0151, 0.1777](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.30._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=3.7099 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.30._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0087, 0.1906](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.34._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=4.0491 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.34._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0106, 0.1971](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.37._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=2.1531 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.37._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0070, 0.2305](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.40._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=3.3631 calibrator=MaxCalibrator scale=1.0 quant)\n", + "features.40._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0023, 0.4726](512) calibrator=MaxCalibrator scale=1.0 quant)\n", + "avgpool._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.0._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=5.3550 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.0._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0026, 0.5320](4096) calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.3._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=6.6733 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.3._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.0018, 0.5172](4096) calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.6._input_quantizer : TensorQuantizer(8bit narrow fake per-tensor amax=9.4352 calibrator=MaxCalibrator scale=1.0 quant)\n", + "classifier.6._weight_quantizer : TensorQuantizer(8bit narrow fake axis=0 amax=[0.3877, 0.5620](10) calibrator=MaxCalibrator scale=1.0 quant)\n" + ] + } + ], + "source": [ + "#Calibrate the model using max calibration technique.\n", + "with torch.no_grad():\n", + " calibrate_model(\n", + " model=qat_model,\n", + " model_name=\"vgg16\",\n", + " data_loader=training_dataloader,\n", + " num_calib_batch=32,\n", + " calibrator=\"max\",\n", + " hist_percentile=[99.9, 99.99, 99.999, 99.9999],\n", + " out_dir=\"./\")" + ] + }, + { + "cell_type": "markdown", + "id": "1aa0c109", + "metadata": {}, + "source": [ + "\n", + "## 6. Quantization Aware Training" + ] + }, + { + "cell_type": "markdown", + "id": "9fe8ec11", + "metadata": {}, + "source": [ + "In this phase, we finetune the model weights and leave the quantizer node values frozen. The dynamic ranges for each layer obtained from the calibration are kept constant while the weights of the model are finetuned to be close to the accuracy of original FP32 model (model without quantizer nodes) is preserved. Usually the finetuning of QAT model should be quick compared to the full training of the original model. Use QAT to fine-tune for around 10% of the original training schedule with an annealing learning-rate. Please refer to Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT for detailed recommendations. For this VGG model, it is enough to finetune for 1 epoch to get acceptable accuracy. \n", + "During finetuning with QAT, the quantization is applied as a composition of `max`, `clamp`, `round` and `mul` ops. \n", + "```\n", + "# amax is absolute maximum value for an input\n", + "# The upper bound for integer quantization (127 for int8)\n", + "max_bound = torch.tensor((2.0**(num_bits - 1 + int(unsigned))) - 1.0, device=amax.device)\n", + "scale = max_bound / amax\n", + "outputs = torch.clamp((inputs * scale).round_(), min_bound, max_bound)\n", + "```\n", + "tensor_quant function in `pytorch_quantization` toolkit is responsible for the above tensor quantization. Usually, per channel quantization is recommended for weights, while per tensor quantization is recommended for activations in a network.\n", + "During inference, we use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` to perform quantization as this is easier to convert into corresponding TensorRT operators. Please refer to next sections for more details on how these operators are exported in torchscript and converted in Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "1f28d228", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Updating learning rate: 0.1\n", + "Epoch: [ 1 / 1] LR: 0.100000\n", + "Batch: [ 500 | 1563] loss: 2.635\n", + "Batch: [ 1000 | 1563] loss: 2.655\n", + "Batch: [ 1500 | 1563] loss: 2.646\n", + "Test Loss: 0.03291 Test Acc: 82.98%\n", + "Checkpoint saved\n" + ] + } + ], + "source": [ + "# Finetune the QAT model for 1 epoch\n", + "num_epochs=1\n", + "for epoch in range(num_epochs):\n", + " adjust_lr(opt, epoch)\n", + " print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, state[\"lr\"]))\n", + "\n", + " train(qat_model, training_dataloader, crit, opt, epoch)\n", + " test_loss, test_acc = test(qat_model, testing_dataloader, crit, epoch)\n", + "\n", + " print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n", + " \n", + "save_checkpoint({'epoch': epoch + 1,\n", + " 'model_state_dict': qat_model.state_dict(),\n", + " 'acc': test_acc,\n", + " 'opt_state_dict': opt.state_dict(),\n", + " 'state': state},\n", + " ckpt_path=\"vgg16_qat_ckpt\")" + ] + }, + { + "cell_type": "markdown", + "id": "7a4dcaa2", + "metadata": {}, + "source": [ + "\n", + "## 7. Export to Torchscript\n", + "Export the model to Torch script. Trace the model and convert it into torchscript for deployment. To learn more about Torchscript, please refer to https://pytorch.org/docs/stable/jit.html. Setting `quant_nn.TensorQuantizer.use_fb_fake_quant = True` enables the QAT model to use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` operators instead of `tensor_quant` function to export quantization operators. In torchscript, they are represented as `aten::fake_quantize_per_tensor_affine` and `aten::fake_quantize_per_channel_affine`. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3d34f526", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "E1109 04:02:37.101168 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.102248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.107194 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.107625 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.115269 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.115740 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.117969 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.118358 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.126382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.126834 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.128674 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.129518 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.135453 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.135936 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.137858 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.138366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.145539 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.146053 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.147871 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.148353 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.154252 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.154685 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.156558 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.157159 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.163197 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.163676 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.165549 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.165991 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.173305 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.173926 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.176034 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.176697 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.182843 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.183426 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.185377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.185962 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.191966 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.192424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.194325 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.194817 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.201988 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.202665 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.204763 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.205461 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.211393 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.211987 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.213899 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.214450 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.220892 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.221533 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.223519 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.224037 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.233809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.234434 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.238212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.239042 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.241022 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.241654 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.247820 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.248445 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.250366 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.250959 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.257248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.257854 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.259968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.260660 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "W1109 04:02:37.268160 139704147265344 tensor_quantizer.py:280] Use Pytorch's native experimental fake quantization.\n", + "/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:285: TracerWarning: Converting a tensor to a Python number might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " inputs, amax.item() / bound, 0,\n", + "/opt/conda/lib/python3.8/site-packages/pytorch_quantization/nn/modules/tensor_quantizer.py:291: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " quant_dim = list(amax.shape).index(list(amax_sequeeze.shape)[0])\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "E1109 04:02:37.329273 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.330212 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.332529 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.333365 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.339547 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.340248 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.342257 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.342890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.350619 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.351372 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.353470 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.354121 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.360090 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.360806 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.362803 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.363274 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.370369 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.371057 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.373071 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.373766 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.379890 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.380538 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.382532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.383128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.389077 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.389760 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.391815 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.392399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.399809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.400472 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.402399 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.402939 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.408818 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.409424 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.411513 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.412097 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.418537 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.419128 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.421343 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.421946 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.429382 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.430156 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.432259 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.433079 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.439297 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.440027 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.442149 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.442826 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.449377 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.449968 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.452122 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.452754 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.462532 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.463295 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.466963 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.467725 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.469692 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.470336 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.476204 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.476738 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.478809 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.479375 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.485666 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.486219 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.488416 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n", + "E1109 04:02:37.488986 139704147265344 tensor_quantizer.py:120] Fake quantize mode doesn't use scale explicitly!\n" + ] + } + ], + "source": [ + "quant_nn.TensorQuantizer.use_fb_fake_quant = True\n", + "with torch.no_grad():\n", + " data = iter(testing_dataloader)\n", + " images, _ = data.next()\n", + " jit_model = torch.jit.trace(qat_model, images.to(\"cuda\"))\n", + " torch.jit.save(jit_model, \"trained_vgg16_qat.jit.pt\")" + ] + }, + { + "cell_type": "markdown", + "id": "7341418a", + "metadata": {}, + "source": [ + "\n", + "## 8. Inference using Torch-TensorRT\n", + "In this phase, we run the exported torchscript graph of VGG QAT using Torch-TensorRT. Torch-TensorRT is a Pytorch-TensorRT compiler which converts Torchscript graphs into TensorRT. TensorRT 8.0 supports inference of quantization aware trained models and introduces new APIs; `QuantizeLayer` and `DequantizeLayer`. We can observe the entire VGG QAT graph quantization nodes from the debug log of Torch-TensorRT. To enable debug logging, you can set `torch_tensorrt.logging.set_reportable_log_level(torch_tensorrt.logging.Level.Debug)`. For example, `QuantConv2d` layer from `pytorch_quantization` toolkit is represented as follows in Torchscript\n", + "```\n", + "%quant_input : Tensor = aten::fake_quantize_per_tensor_affine(%x, %636, %637, %638, %639)\n", + "%quant_weight : Tensor = aten::fake_quantize_per_channel_affine(%394, %640, %641, %637, %638, %639)\n", + "%input.2 : Tensor = aten::_convolution(%quant_input, %quant_weight, %395, %687, %688, %689, %643, %690, %642, %643, %643, %644, %644)\n", + "```\n", + "`aten::fake_quantize_per_*_affine` is converted into `QuantizeLayer` + `DequantizeLayer` in Torch-TensorRT internally. Please refer to quantization op converters in Torch-TensorRT." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "aa7495e0", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: [Torch-TensorRT] - Cannot infer input type from calcuations in graph for input x.2. Assuming it is Float32. If not, specify input type explicity\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT] - Dilation not used in Max pooling converter\n", + "WARNING: [Torch-TensorRT TorchScript Conversion Context] - Detected invalid timing cache, setup a local cache instead\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VGG QAT accuracy using TensorRT: 82.97%\n" + ] + } + ], + "source": [ + "qat_model = torch.jit.load(\"trained_vgg16_qat.jit.pt\").eval()\n", + "\n", + "compile_spec = {\"inputs\": [torch_tensorrt.Input([16, 3, 32, 32])],\n", + " \"enabled_precisions\": torch.int8,\n", + " }\n", + "trt_mod = torch_tensorrt.compile(qat_model, **compile_spec)\n", + "\n", + "test_loss, test_acc = test(trt_mod, testing_dataloader, crit, 0)\n", + "print(\"VGG QAT accuracy using TensorRT: {:.2f}%\".format(100 * test_acc))" + ] + }, + { + "cell_type": "markdown", + "id": "9df5a90e", + "metadata": {}, + "source": [ + "### Performance benchmarking" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "9eb2cd2d", + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "\n", + "import torch.backends.cudnn as cudnn\n", + "cudnn.benchmark = True\n", + "\n", + "# Helper function to benchmark the model\n", + "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n", + " input_data = torch.randn(input_shape)\n", + " input_data = input_data.to(\"cuda\")\n", + " if dtype=='fp16':\n", + " input_data = input_data.half()\n", + " \n", + " print(\"Warm up ...\")\n", + " with torch.no_grad():\n", + " for _ in range(nwarmup):\n", + " features = model(input_data)\n", + " torch.cuda.synchronize()\n", + " print(\"Start timing ...\")\n", + " timings = []\n", + " with torch.no_grad():\n", + " for i in range(1, nruns+1):\n", + " start_time = time.time()\n", + " output = model(input_data)\n", + " torch.cuda.synchronize()\n", + " end_time = time.time()\n", + " timings.append(end_time - start_time)\n", + " if i%100==0:\n", + " print('Iteration %d/%d, avg batch time %.2f ms'%(i, nruns, np.mean(timings)*1000))\n", + "\n", + " print(\"Input shape:\", input_data.size())\n", + " print(\"Output shape:\", output.shape)\n", + " print('Average batch time: %.2f ms'%(np.mean(timings)*1000))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "5c2514ae", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, avg batch time 4.83 ms\n", + "Iteration 200/1000, avg batch time 4.83 ms\n", + "Iteration 300/1000, avg batch time 4.83 ms\n", + "Iteration 400/1000, avg batch time 4.83 ms\n", + "Iteration 500/1000, avg batch time 4.83 ms\n", + "Iteration 600/1000, avg batch time 4.83 ms\n", + "Iteration 700/1000, avg batch time 4.83 ms\n", + "Iteration 800/1000, avg batch time 4.83 ms\n", + "Iteration 900/1000, avg batch time 4.83 ms\n", + "Iteration 1000/1000, avg batch time 4.83 ms\n", + "Input shape: torch.Size([16, 3, 32, 32])\n", + "Output shape: torch.Size([16, 10])\n", + "Average batch time: 4.83 ms\n" + ] + } + ], + "source": [ + "benchmark(jit_model, input_shape=(16, 3, 32, 32))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "c5378ed6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warm up ...\n", + "Start timing ...\n", + "Iteration 100/1000, avg batch time 1.87 ms\n", + "Iteration 200/1000, avg batch time 1.84 ms\n", + "Iteration 300/1000, avg batch time 1.85 ms\n", + "Iteration 400/1000, avg batch time 1.83 ms\n", + "Iteration 500/1000, avg batch time 1.82 ms\n", + "Iteration 600/1000, avg batch time 1.81 ms\n", + "Iteration 700/1000, avg batch time 1.81 ms\n", + "Iteration 800/1000, avg batch time 1.80 ms\n", + "Iteration 900/1000, avg batch time 1.80 ms\n", + "Iteration 1000/1000, avg batch time 1.79 ms\n", + "Input shape: torch.Size([16, 3, 32, 32])\n", + "Output shape: torch.Size([16, 10])\n", + "Average batch time: 1.79 ms\n" + ] + } + ], + "source": [ + "benchmark(trt_mod, input_shape=(16, 3, 32, 32))" + ] + }, + { + "cell_type": "markdown", + "id": "d6a5ec1c", + "metadata": {}, + "source": [ + "\n", + "## 9. References\n", + "* Very Deep Convolution Networks for large scale Image Recognition\n", + "* Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT\n", + "* QAT workflow for VGG16\n", + "* Deploying VGG QAT model in C++ using Torch-TensorRT\n", + "* Pytorch-quantization toolkit from NVIDIA\n", + "* Pytorch quantization toolkit userguide\n", + "* Quantization basics" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/v1.2.0/_sources/cli/torchtrtc.rst.txt b/docs/v1.2.0/_sources/cli/torchtrtc.rst.txt new file mode 100644 index 0000000000..69292c491c --- /dev/null +++ b/docs/v1.2.0/_sources/cli/torchtrtc.rst.txt @@ -0,0 +1,149 @@ +.. _torchtrtc: + +torchtrtc +================================= + +``torchtrtc`` is a CLI application for using the Torch-TensorRT compiler. It serves as an easy way to compile a +TorchScript Module with Torch-TensorRT from the command-line to quickly check support or as part of +a deployment pipeline. All basic features of the compiler are supported including post training +quantization (though you must already have a calibration cache file to use the PTQ feature). The compiler can +output two formats, either a TorchScript program with the TensorRT engine embedded or +the TensorRT engine itself as a PLAN file. + +All that is required to run the program after compilation is for C++ linking against ``libtorchtrt.so`` +or in Python importing the torch_tensorrt package. All other aspects of using compiled modules are identical +to standard TorchScript. Load with ``torch.jit.load()`` and run like you would run any other module. + +.. code-block:: txt + + torchtrtc [input_file_path] [output_file_path] + [input_specs...] {OPTIONS} + + torchtrtc is a compiler for TorchScript, it will compile and optimize + TorchScript programs to run on NVIDIA GPUs using TensorRT + + OPTIONS: + + -h, --help Display this help menu + Verbiosity of the compiler + -v, --verbose Dumps debugging information about the + compilation process onto the console + -w, --warnings Disables warnings generated during + compilation onto the console (warnings + are on by default) + --i, --info Dumps info messages generated during + compilation onto the console + --build-debuggable-engine Creates a debuggable engine + --allow-gpu-fallback (Only used when targeting DLA + (device-type)) Lets engine run layers on + GPU if they are not supported on DLA + --require-full-compilation Require that the model should be fully + compiled to TensorRT or throw an error + --check-method-support=[method_name] + Check the support for end to end + compilation of a specified method in the + TorchScript module + --disable-tf32 Prevent Float32 layers from using the + TF32 data format + --sparse-weights Enable sparsity for weights of conv and + FC layers + -p[precision...], + --enable-precision=[precision...] (Repeatable) Enabling an operating + precision for kernels to use when + building the engine (Int8 requires a + calibration-cache argument) [ float | + float32 | f32 | fp32 | half | float16 | + f16 | fp16 | int8 | i8 | char ] + (default: float) + -d[type], --device-type=[type] The type of device the engine should be + built for [ gpu | dla ] (default: gpu) + --gpu-id=[gpu_id] GPU id if running on multi-GPU platform + (defaults to 0) + --dla-core=[dla_core] DLACore id if running on available DLA + (defaults to 0) + --engine-capability=[capability] The type of device the engine should be + built for [ standard | safety | + dla_standalone ] + --calibration-cache-file=[file_path] + Path to calibration cache file to use + for post training quantization + --teo=[op_name...], + --torch-executed-op=[op_name...] (Repeatable) Operator in the graph that + should always be run in PyTorch for + execution (partial compilation must be + enabled) + --tem=[module_name...], + --torch-executed-mod=[module_name...] + (Repeatable) Module that should always + be run in Pytorch for execution (partial + compilation must be enabled) + --mbs=[num_ops], + --min-block-size=[num_ops] Minimum number of contiguous TensorRT + supported ops to compile a subgraph to + TensorRT + --embed-engine Whether to treat input file as a + serialized TensorRT engine and embed it + into a TorchScript module (device spec + must be provided) + --num-avg-timing-iters=[num_iters] + Number of averaging timing iterations + used to select kernels + --workspace-size=[workspace_size] Maximum size of workspace given to + TensorRT + --dla-sram-size=[dla_sram_size] Fast software managed RAM used by DLA + to communicate within a layer. + --dla-local-dram-size=[dla_local_dram_size] Host RAM used by DLA to share + intermediate tensor data across operations. + --dla-global-dram-size=[dla_global_dram_size] Host RAM used by DLA to store + weights and metadata for execution + --atol=[atol] Absolute tolerance threshold for acceptable + numerical deviation from standard torchscript + output (default 1e-8) + --rtol=[rtol] Relative tolerance threshold for acceptable + numerical deviation from standard torchscript + output (default 1e-5) + --no-threshold-check Skip checking threshold compliance + --truncate-long-double, + --truncate, --truncate-64bit Truncate weights that are provided in + 64bit to 32bit (Long, Double to Int, + Float) + --save-engine Instead of compiling a full a + TorchScript program, save the created + engine to the path specified as the + output path + --custom-torch-ops (repeatable) Shared object/DLL containing custom torch operators + --custom-converters (repeatable) Shared object/DLL containing custom converters + input_file_path Path to input TorchScript file + output_file_path Path for compiled TorchScript (or + TensorRT engine) file + input_specs... Specs for inputs to engine, can either + be a single size or a range defined by + Min, Optimal, Max sizes, e.g. + "(N,..,C,H,W)" + "[(MIN_N,..,MIN_C,MIN_H,MIN_W);(OPT_N,..,OPT_C,OPT_H,OPT_W);(MAX_N,..,MAX_C,MAX_H,MAX_W)]". + Data Type and format can be specified by + adding an "@" followed by dtype and "%" + followed by format to the end of the + shape spec. e.g. "(3, 3, 32, + 32)@f16%NHWC" + "--" can be used to terminate flag options and force all following + arguments to be treated as positional options + +e.g. + +.. code-block:: shell + + torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@f16%contiguous" -p f16 + +- To include a set of custom operators + +.. code-block:: shell + + torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts --custom-torch-ops= "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@fp16%contiguous" -p f16 + + +- To include a set of custom converters + +.. code-block:: shell + + torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts --custom-converters= "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@fp16%contiguous" -p f16 diff --git a/docs/v1.2.0/_sources/contributors/conversion.rst.txt b/docs/v1.2.0/_sources/contributors/conversion.rst.txt new file mode 100644 index 0000000000..f19fc5eba8 --- /dev/null +++ b/docs/v1.2.0/_sources/contributors/conversion.rst.txt @@ -0,0 +1,53 @@ +.. _conversion: + +Conversion Phase +================== + +Once the graph has be simplified to a form thats easy to convert, we then set up a conversion context +to manage the construction of a TensorRT ``INetworkDefinition`` from the blocks nodes. The conversion context +records the set of converted nodes, block inputs and outputs and other information about the conversion +of the graph. This data is then used to help converters link together layers and also hold build time +information like weights required to construct the engine. After the context is created, the block +converter starts iterating through the list of nodes, for each node, the converter will look at its +inputs and assemble an array of resources to pass to the converter. Inputs can be in a couple of states: + +* The input is a block parameter + + * In this case the input should have already been stored in as an IValue in the + conversion context ``evaluated_value_map``. The conversion stage will add the IValue to the list of args for the + converter + +* The input is an output of a node that has already been converted + + * In this case the ITensor of the output has added to the ``value_tensor_map``, + The conversion stage will add the ITensor to the list of args for the converter + +* The input is from a node that produces a static value + + * There are nodes that produce static values, typically used to store parameters for operators, we need to + evaluate these nodes at conversion time to be able to convert a op. The conversion system will look for a node + evaluator in the evaluator registry and run it on the node. The IValue produced will be entered in the + conversion context ``evaluated_value_map`` and added to the list of args for the converter. If the node + to be evaluated takes inputs, the conversion stage will recursively resolve dependencies until the final + static value has been evaluated + +* The input is from a node that has not been converted + + * Torch-TensorRT will error out here + +Node Evaluation +----------------- +There are some nodes that contain static data and are resources for operations. These can be evaluated at +conversion time so that you can use those values when doing node conversion. In theory any node kind can have +a conversion time evaluator as long as it produces a static IValue, This IValue will be stored in the conversion +context so it can be consumed by any node that takes the evaluated node as an input. Common node types are +``prim::Constant`` which emits a constant and ``prim::ListConstruct`` which makes lists. + +Node Converters +---------------- + +Node converters map JIT nodes to layers or subgraphs of layers. They then associate outputs from the JIT graph +and the TRT graph together in the conversion context. This allows the conversion stage to assemble the inputs +for the next node. There are some cases where a node produces an output that is not a Tensor but a static result +from a calculation done on inputs which need to be converted first. In this case the converter may associate the outputs in +the ``evaluated_value_map`` instead of the ``value_tensor_map``. For more information take a look at: :ref:`writing_converters` diff --git a/docs/v1.2.0/_sources/contributors/lowering.rst.txt b/docs/v1.2.0/_sources/contributors/lowering.rst.txt new file mode 100644 index 0000000000..956c2004e1 --- /dev/null +++ b/docs/v1.2.0/_sources/contributors/lowering.rst.txt @@ -0,0 +1,207 @@ +.. _lowering: + +Lowering Phase +=============== + +The lowering phase is made up out of passes which are operations which map a graph from a high level representation +to a lower level one. Each pass does something specific for instance inlining method calls. The idea is to +significantly reduce what the conversion phase needs to be able to handle when actually mapping to TensorRT. +We aim for closer to 1->1 op conversion vs looking for applicable subgraphs, limiting the number of converters and +reduce the scope of each converter. + +You can see the effects of each pass by setting the log level to ``Level::kGraph`` + +Passes Used +------------- + +EliminateCommonSubexpression +*********************************** + + `torch/csrc/jit/passes/common_subexpression_elimination.h `_ + +Removes common subexpressions in the graph + + + +Eliminate Dead Code +************************** + + `torch/csrc/jit/passes/dead_code_elimination.h `_ + +Dead code elimination will check if a node has side effects and not delete it if it does. + +Eliminate Exeception Or Pass Pattern +*************************************** + + `Torch-TensorRT/core/lowering/passes/exception_elimination.cpp `_ + +A common pattern in scripted modules are dimension gaurds which will throw execptions if +the input dimension is not what was expected. + +.. code-block:: none + + %1013 : bool = aten::ne(%1012, %24) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:248:11 + = prim::If(%1013) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:248:8 + block0(): + = prim::RaiseException(%23) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:249:12 + -> () + block1(): + -> () + +Since we are resolving all of this at compile time and there are no execptions in the TensorRT graph, we just remove it. + +Eliminate Redundant Gaurds +*************************************** + + `torch/csrc/jit/passes/guard_elimination.h `_ + +Eliminate redundant guards for ops whose outputs are fully determined by their inputs i.e. if inputs to such ops are +guarded we are allowed to remove a guard on ops' outputs + +Freeze Module +*************************************** + + `torch/csrc/jit/passes/freeze_module.h `_ + +Freeze attributes and inline constants and modules. Propogates constants in the graph. + +Fuse AddMM Branches +*************************************** + + `Torch-TensorRT/core/lowering/passes/fuse_addmm_branches.cpp `_ + +A common pattern in scripted modules is tensors of different dimensions use different constructions for implementing linear layers. We fuse these +different varients into a single one that will get caught by the Unpack AddMM pass. + +.. code-block:: none + + %ret : Tensor = prim::If(%622) + block0(): + %ret.1 : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3) + -> (%ret.1) + block1(): + %output.1 : Tensor = aten::matmul(%x9.1, %3677) + %output0.1 : Tensor = aten::add_(%output.1, %self.fc.bias, %3) + -> (%output0.1) + +We fuse this set of blocks into a graph like this: + +.. code-block:: none + + %ret : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3) + +Fuse Linear +*************************************** + + `torch/csrc/jit/passes/fuse_linear.h `_ + +Match the ``aten::linear`` pattern and fuse it into a single ``aten::linear`` +This pass fuse the addmm or matmul + add generated by JIT back to linear + +Fuse Flatten Linear +*************************************** + + `Torch-TensorRT/core/lowering/passes/fuse_flatten_linear.cpp `_ + +TensorRT implicity flattens input layers into fully connected layers when they are higher than 1D. So when there is a +``aten::flatten`` -> ``aten::linear`` pattern we remove the ``aten::flatten``. + +Lower Graph +*************************************** + + `torch/csrc/jit/passes/lower_graph.h `_ + +Given a graph with of a method which first argument is %self, lower it to a graph where +all attributes accesses are replaced with explicit inputs of the graph +(rather than results of prim::GetAttr executed on %self). Returns a tuple +(graph, parameters) where the last module.parameters.size() inputs to the +graph are the trainable parameters used in this method. The remaining inputs +are the true inputs to the function. + +Lower Tuples +*************************************** + + `torch/csrc/jit/passes/lower_tuples.h `_ + +* ``LowerSimpleTuples``: + +Removes tuples where TupleConstruct and TupleUnpack are matched but leaves tuples in place across if statements, loops, and as inputs/outputs + +* ``LowerAllTuples``: + +Removes _all_ tuples and raises an error if some cannot be removed, this is used by ONNX to ensure there are not tuples before conversion, but will not work on graphs whose inputs contain tuples. + +Module Fallback +***************** + + `Torch-TensorRT/core/lowering/passes/module_fallback.cpp `_ + +Module fallback consists of two lowering passes that must be run as a pair. The first pass is run before freezing to place delimiters in the graph around modules +that should run in PyTorch. The second pass marks nodes between these delimiters after freezing to signify they should run in PyTorch. + +* ``NotateModuleForFallback`` + +Places delimiting nodes around module calls pre freezing to signify where in the graph nodes should run in PyTorch + +* ``MarkNodesForFallback`` + +Looks for delimiters then marks all nodes between the delimiters to tell partitioning to run them in PyTorch + +Peephole Optimze +*************************************** + + `torch/csrc/jit/passes/peephole_optimze.h `_ + +The intent for this optimization pass is to catch all of the small, easy to catch peephole optimizations you might be interested in doing. + +Right now, it does: + - Eliminate no-op 'expand' nodes + - Simply x.t().t() to x + + +Remove Contiguous +*************************************** + + `Torch-TensorRT/core/lowering/passes/remove_contiguous.cpp `_ + +Removes contiguous operators since we are doing TensorRT memory is already contiguous. + + +Remove Dropout +*************************************** + + `Torch-TensorRT/core/lowering/passes/remove_dropout.cpp `_ + +Removes dropout operators since we are doing inference. + +Remove To +*************************************** + + `Torch-TensorRT/core/lowering/passes/remove_to.cpp `_ + +Removes ``aten::to`` operators that do casting, since TensorRT mangages it itself. It is important that this is one of the last passes run so that +other passes have a change to move required cast operators out of the main namespace. + +Unpack AddMM +*************************************** + + `Torch-TensorRT/core/lowering/passes/unpack_addmm.cpp `_ + +Unpacks ``aten::addmm`` into ``aten::matmul`` and ``aten::add_`` (with an additional ``trt::const`` +op to freeze the bias in the TensorRT graph). This lets us reuse the ``aten::matmul`` and ``aten::add_`` +converters instead of needing a dedicated converter. + +Unpack LogSoftmax +*************************************** + + `Torch-TensorRT/core/lowering/passes/unpack_log_softmax.cpp `_ + +Unpacks ``aten::logsoftmax`` into ``aten::softmax`` and ``aten::log``. This lets us reuse the +``aten::softmax`` and ``aten::log`` converters instead of needing a dedicated converter. + +Unroll Loops +*************************************** + + `torch/csrc/jit/passes/loop_unrolling.h `_ + +Unrolls the operations of compatable loops (e.g. sufficently short) so that you only have to go through the loop once. diff --git a/docs/v1.2.0/_sources/contributors/partitioning.rst.txt b/docs/v1.2.0/_sources/contributors/partitioning.rst.txt new file mode 100644 index 0000000000..2d027c57f4 --- /dev/null +++ b/docs/v1.2.0/_sources/contributors/partitioning.rst.txt @@ -0,0 +1,93 @@ +.. _partitioning: + +Partitioning Phase +==================== + +The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes. + +On a high level, Torch-TensorRT partitioning phase does the following: + +* Segmentation. Go through the set of operators in order and verify if there is converter for each operator. Then, roughly separate the graph into parts that Torch-TensorRT can support and parts Torch-TensorRT cannot. + +* Dependency Analysis. For every to be compiled operator there is a "complete dependency graph", which means that every input can to traced back to an input as Tensor or TensorList. Go through all segments after segmentation then do dependency analysis to ensure that there are only Tensor/TensorList inputs and outputs for TensorRT segments. + +* Shape Analysis. For each segments, figure out the input and outputs shapes starting from the provided input shape from the user. Shapes can be calculated by running the graphs with JIT. + +* Conversion. Every TensorRT segments will be converted to TensorRT engine. This part is done in compiler.cpp, but it's still a phase in our partitioning process. + +* Stitching. Stitch all TensorRT engines with PyTorch nodes altogether. + +Here are the brief description of these functions of each file: + +PartitonInfo.h/.cpp +*********************************** + + `core/partitioning/PartitionInfo.h `_ + +The automatic fallback APIs that is used for partitioning. + + +SegmentedBlock.h/.cpp +*********************************** + + `core/partitioning/SegmentedBlock.h `_ + +The main data structures that is used to maintain information for each segments after segmentation. + + +shape_analysis.h/.cpp +*********************************** + + `core/partitioning/shape_analysis.h `_ + +Code implementation to get the shapes for each segments by running them in JIT. + + +partitioning.h/.cpp +*********************************** + `core/partitioning/partitioning.h `_ + +APIs and main code implementation for partitioning phase. + +Automatic Fallback +==================== + +To enable automatic fallback feature, you can set following attributes in Python: + +.. code-block:: none + + import torch + import torch_tensorrt as torchtrt + + ... + model = MyModel() + ts_model = torch.jit.script(model) + trt_model = torchtrt.ts.compile(model, **{ + ... + "min_block_size" : 3, + "torch_executed_ops": ["aten::add"], + "torch_executed_modules": [], + }) + +* enabled: By default automatic fallback will be off. It is enabled by setting it to True. +* min_block_size: The minimum number of consecutive operations that must satisfy to be converted to TensorRT. For example, if it's set to 3, then there must be 3 consecutive supported operators then this segments will be converted. +* forced_fallback_ops: A list of strings that will be the names of operations that the user explicitly want to be in PyTorch nodes. + + +.. code-block:: none + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + + ... + auto in = torch::randn({1, 3, 224, 224}, {torch::kCUDA}); + + auto mod = torch::jit::load("trt_ts_module.ts"); + auto input_sizes = std::vector{{in.sizes()}}; + torchtrt::ts::CompileSpec cfg(input_sizes); + cfg.min_block_size = 2; + cfg.torch_executed_ops.push_back("aten::relu"); + auto trt_mod = torchtrt::ts::compile(mod, cfg); + auto out = trt_mod.forward({in}); diff --git a/docs/v1.2.0/_sources/contributors/phases.rst.txt b/docs/v1.2.0/_sources/contributors/phases.rst.txt new file mode 100644 index 0000000000..e99af77faa --- /dev/null +++ b/docs/v1.2.0/_sources/contributors/phases.rst.txt @@ -0,0 +1,46 @@ +Compiler Phases +---------------- + +.. toctree:: + :caption: Compiler Phases + :maxdepth: 1 + :hidden: + + lowering + partitioning + conversion + runtime + +Lowering +^^^^^^^^^^^ +:ref:`lowering` + +The lowering is made up of a set of passes (some from PyTorch and some specific to Torch-TensorRT) +run over the graph IR to map the large PyTorch opset to a reduced opset that is easier to convert to +TensorRT. + +Partitioning +^^^^^^^^^^^^^ +:ref:`partitioning` + +The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes. + +Conversion +^^^^^^^^^^^ +:ref:`conversion` + +In the conversion phase we traverse the lowered graph and construct an equivalent TensorRT graph. +The conversion phase is made up of three main components, a context to manage compile time data, +a evaluator library which will execute operations that can be resolved at compile time and a converter +library which maps an op from JIT to TensorRT. + +Compilation and Runtime +^^^^^^^^^^^^^^^^^^^^^^^^ +:ref:`runtime` + +The final compilation phase constructs a TorchScript program to run the converted TensorRT engine. It +takes a serialized engine and instantiates it within a engine manager, then the compiler will +build out a JIT graph that references this engine and wraps it in a module to return to the user. +When the user executes the module, the JIT program run in the JIT runtime extended by Torch-TensorRT with the data providied from the user. diff --git a/docs/v1.2.0/_sources/contributors/runtime.rst.txt b/docs/v1.2.0/_sources/contributors/runtime.rst.txt new file mode 100644 index 0000000000..23d83b6db2 --- /dev/null +++ b/docs/v1.2.0/_sources/contributors/runtime.rst.txt @@ -0,0 +1,85 @@ +.. _execution: + +Runtime Phase +================ + +The Runtime phase is responsible for constructing self standing TorchScript graphs with embedded TensorRT engines and serving as the runtime +when these engines are called. The main interface accepts a serialized TensorRT engine. The execution phase +will deserialize and wrap this engine in a class which maintains a execution context for each engine +and some metadata about its inputs and outputs and is compatable with the TorchScript interpreter so that +it can be moved around and used like other TorchScript IValues. The engine is run by providing it and inputs +to the ``tensorrt::execute_engine`` operator which will take the engine and its inputs and return the results of engine exeuction. + + +Background +------------ +PyTorch JIT's runtime is based around a stack machine, all operators pop off arguments from the stack, pass them to +some implementation of the operator then push results back onto the stack. The actual elements of the stack +are ``torch::jit::IValues``, the same type we evaluate in the conversion phase (the realization of the abstract +torch::jit::Value type). + +TensorRT Engine Executor Op +---------------------------- + +When the Torch-TensorRT is loaded, it registers an operator in the PyTorch JIT operator library called +``trt::execute_engine(Tensor[] inputs, __torch__.torch.classes.tensorrt.Engine engine) -> Tensor[]`` which takes an +instantiated engine and list of inputs. Compiled graphs store this engine in an attribute so that it is portable and serializable. +When the op is called, an instnantiated engine and input tensors are popped off the runtime stack. These inputs are passed into a generic engine execution function which +will run the tensors through the TensorRT engine and return new tensors as results. These tensors are pushed on to the +stack so that the next op whatever it is can use it. + +Constructing the Resulting Graph +----------------------------------- + +Once the engine is deserialized and instantiated, the compiler will construct a graph that will execute the engine when the module is called. +Here is an example: + +.. code-block:: + + graph(%self_1 : __torch__.torchvision.models.resnet.___torch_mangle_4847.ResNet_trt, + %input_0 : Tensor): + %1 : __torch__.torch.classes.tensorrt.Engine = prim::GetAttr[name="__torch___torchvision_models_resnet____torch_mangle_4847_ResNet_trt_engine"](%self_1) + %3 : Tensor[] = prim::ListConstruct(%input_0) + %4 : Tensor[] = trt::execute_engine(%3, %1) + %5 : Tensor = prim::ListUnpack(%4) + return (%5) + +You can see the engine attribute in the graph and the ``trt::execute_engine`` op taking a list of input tensors and an engine in +and produces a list of output tensors which is returned. When ``forward`` is called on the module this graph is executed, thereby +running the TensorRT engine. + +In the case of multiple outputs, the compiled graph may repack output tensors into a Tuple to return back to the user. + +.. code-block:: + + graph(%self_1 : __torch__.PyTorch.Detection.SSD.src.model.SSD300_trt, + %input_0 : Tensor): + %1 : __torch__.torch.classes.tensorrt.Engine = prim::GetAttr[name="__torch___PyTorch_Detection_SSD_src_model_SSD300_trt_engine"](%self_1) + %3 : Tensor[] = prim::ListConstruct(%input_0) + %4 : Tensor[] = trt::execute_engine(%3, %1) + %5 : Tensor, %6 : Tensor = prim::ListUnpack(%4) + %7 : (Tensor, Tensor) = prim::TupleConstruct(%5, %6) + return (%7) + +Serialization and Deserialization +---------------------------------- + +Serialization and deserialization of TensorRT engines embedded in TorchScript graphs are handled by the holder class for the engine and TorchBind. +When a TorchScript module is saved, the pickler will run serilization on the cuda engine and store the serialized engine in the zip file created. +When deserializing, the depickler will call a constructor for the engine holder class with the serialized engine so that it can be set up again for +execution. + +ABI Versioning and Serialization Format +========================================= + +Torch-TensorRT programs are standard TorchScript with TensorRT engines as objects embedded in the graph. Therefore there is a serialization format +for the TensorRT engines. The format for Torch-TensorRT serialized programs are versioned with an "ABI" version which tells the runtime about runtime compatibility. + +> Current ABI version is 3 + +The format is a vector of serialized strings. They encode the following information + +* ABI Version for the program +* Name of the TRT engine +* Device information: Includes the target device the engine was built on, SM capability and other device information. This information is used at deserialization time to select the correct device to run the engine +* Serialized TensorRT engine diff --git a/docs/v1.2.0/_sources/contributors/system_overview.rst.txt b/docs/v1.2.0/_sources/contributors/system_overview.rst.txt new file mode 100644 index 0000000000..d16697e3a3 --- /dev/null +++ b/docs/v1.2.0/_sources/contributors/system_overview.rst.txt @@ -0,0 +1,29 @@ +.. _system_overview: + +System Overview +================ + +Torch-TensorRT is primarily a C++ Library with a Python API planned. We use Bazel as our build system and target Linux x86_64 and +Linux aarch64 (only natively) right now. The compiler we use is GCC 7.5.0 and the library is untested with compilers before that +version so there may be compilation errors if you try to use an older compiler. + +The repository is structured into: + +* core: Main compiler source code +* cpp: C++ API +* tests: tests of the C++ API, the core and converters +* py: Python API +* notebooks: Example applications built with Torch-TensorRT +* docs: Documentation +* docsrc: Documentation Source +* third_party: BUILD files for dependency libraries +* toolchains: Toolchains for different platforms + + +The C++ API is unstable and subject to change until the library matures, though most work is done under the hood in the core. + +The core has a couple major parts: The top level compiler interface which coordinates ingesting a module, lowering, +converting and generating a new module and returning it back to the user. There are the three main phases of the +compiler, the lowering phase, the conversion phase, and the execution phase. + +.. include:: phases.rst diff --git a/docs/v1.2.0/_sources/contributors/useful_links.rst.txt b/docs/v1.2.0/_sources/contributors/useful_links.rst.txt new file mode 100644 index 0000000000..d5903a16b0 --- /dev/null +++ b/docs/v1.2.0/_sources/contributors/useful_links.rst.txt @@ -0,0 +1,34 @@ +.. _useful_links: + +Useful Links for Torch-TensorRT Development +============================================== + +TensorRT Available Layers and Expected Dimensions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html#layers-matrix + +TensorRT C++ Documentation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://docs.nvidia.com/deeplearning/tensorrt/api/c_api/index.html + +TensorRT Python Documentation (Sometimes easier to read) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/python_api/index.html + +PyTorch Functional API +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://pytorch.org/docs/stable/nn.functional.html + +PyTorch native_ops +^^^^^^^^^^^^^^^^^^^^^ + +* https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/native_functions.yaml + +PyTorch IR Documentation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* https://github.com/pytorch/pytorch/blob/master/torch/csrc/jit/OVERVIEW.md diff --git a/docs/v1.2.0/_sources/contributors/writing_converters.rst.txt b/docs/v1.2.0/_sources/contributors/writing_converters.rst.txt new file mode 100644 index 0000000000..990c4dc77d --- /dev/null +++ b/docs/v1.2.0/_sources/contributors/writing_converters.rst.txt @@ -0,0 +1,129 @@ +.. _writing_converters: + +Writing Converters +=================== + +Background +------------ + +In the JIT IR, operations are represented as nodes in a graph. A node has inputs and outputs, represented by ``torch::jit::Values`` +which are typed abstract representation of data flowing into and out of a node. TensorRT represents its graph though the +use of ``nvinfer1::ILayers`` and ``nvinfer1::ITensors`` which are its analogues to nodes and values. The goal of +converters create new ILayers and subgraphs that do operation specified by the node and associate produced ITensors +and Values together. + +Converters +------------ + +Converters should be functions which will use a list of inputs (either ``nvinfer1::ITensors`` or ``torch::jit::IValues``) to +construct an equivalent layer to the LibTorch op. + +Converters can be registered using the ``RegisterNodeConversionPatterns`` helper class where you instantiate a +RegisterNodeConversionPatterns object and call the pattern function on it (like below) which takes a string +which describes the function schema of the op that will cause the converter to be run and a lambda or function +which will do the actual conversion: + + Note the pattern function can be chained + +.. code-block:: c++ + + auto acthardtanh TORCHTRT_UNUSED = RegisterNodeConversionPatterns() + .pattern({ + "aten::hardtanh(Tensor self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor)", + [](ConversionCtx* ctx, const torch::jit::Node* n, args& args) -> bool { + auto in = args[0].ITensor(); + auto min = args[1].unwrapToDouble(); + auto max = args[2].unwrapToDouble(); + + auto new_layer = ctx->net->addActivation(*in, nvinfer1::ActivationType::kCLIP); + TORCHTRT_CHECK(new_layer, "Unable to create layer for aten::hardtanh"); + + new_layer->setAlpha(min); + new_layer->setBeta(max); + + new_layer->setName(util::node_info(n).c_str()); + auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], new_layer->getOutput(0)); + + LOG_DEBUG("Output shape: " << out_tensor->getDimensions()); + return true; + } + }); + + +Converter Contract +---------------------- + +What is guaranteed to converters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. In the args there will be an entry for each node input value, either a ITensor or IValue +2. Inputs will be provided in order according to the function schema + +Responsibilities of a converter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Args must be guaranteed to be a type to unwrap the Arg union without checking, typically input tensor arguments can be expected to be ITensors +2. Any weights or static values must guaranteed to be valid until the end of conversion time + + a. A helpful tool is the Weights helper class described below + +3. Converters are expected to produce an IValue or ITensor for each output of a node. The compiler will check this and produce warnings if there are Values that don't have associated ITensors or IValues. +4. Outputs must be annotated + + a. There must be an association between a JIT nodes output values and the new TRT layers output tensors in the ``value_tensor_map`` in the conversion context + +5. Name your layers + + a. Its much easier to debug when we can track which layers and nodes correspond with each other. The system we are currently using is to use the "node info" of the node as the name of the layer + +6. Name your tensors + + a. Use the output value debug name as the name for the new ITensor (again for debugging) + +Conversion Context +-------------------- + +The conversion context maintains the state of conversion, it manages the Network Definition, two maps +one that stores associations between Values and IValues (the evaluated_value_map) and one that stores +associations between Values and ITensors, and any sort of memory that needs to live until the end of +conversion. The main apis that you will interface with in converters is directly accessing the network +definition to add layers ``ctx->net`` and data association functions ``ctx->AssociateValueAndTensor()`` +and ``ctx->AssociateValueAndIValue()``, which you will use to add layers to the TRT layers and log +pairs of node outputs and static values or TensorRT layer outputs. + +Args +------- + +Arguments provided to the converter are inspectable unions of ``nvinfer1::ITensors`` and ``torch::jit::IValues`` (i.e. +abstract dataflow in the TensorRT graph and static values). You are guaranteed that you will have some +argument for each input value for the node. They are provided in the order of the function schema. +It can be expected that inputs (meaning the parameters that would be passed into the forward +function of a module in PyTorch) will be ITensors but the Arg class also has mechanisms to inspect arguments safely +before unwrapping if you are unsure. Args also have deep unwrap methods that let you get straight to the +underlying data in an IValue if you know it's safe. You can also pass in a fallback value if there is a +chance the IValue is None. IValues have been extended to be able to hold a wrapper around ITensors only in the case of TensorLists. +You can get an ITensor from an IValue by a pattern similar to this: ``ivalue.toCustomClass()->tensor()``. +You can tell if an IValue contains a Tensor or an ITensor by using ``ivalue.isTensor()`` or ``ivalue.isCustomClass()``. + + +Weights +-------------- + +Weights are used during build time, so any weights need to be guaranteed to live until the end of the conversion phase. +TensorRT also uses its own weights structure to hold the weights. There is a wrapper around this class available +to converts which abstracts a lot of this. + +The weights wrapper class can accept either ``at::Tensors`` or singular values (right now). You also need to pass the +conversion context when constructing these weights because internally the weights class will allocate memory managed +by the conversion context to store a copy of the tensor data. This data gets freed when the conversion context +destructor gets destroyed so converters don't really need to think about it. + +There is metadata generated from the shape of the input data which becomes useful in interfacing with TensorRT, such +as number of input maps, number of output maps and kernel shape. + +Other advice +-------------- + +You have the benefit of the full aten library when dealing with weights and other static values. This means that you +can do quite a bit of work during conversion time to produce efficient conversion. A good example is batch_norm +converter where the converter does fusion of operations with PyTorch before creating the TensorRT layer. diff --git a/docs/v1.2.0/_sources/getting_started/getting_started_with_cpp_api.rst.txt b/docs/v1.2.0/_sources/getting_started/getting_started_with_cpp_api.rst.txt new file mode 100644 index 0000000000..7f7f60a669 --- /dev/null +++ b/docs/v1.2.0/_sources/getting_started/getting_started_with_cpp_api.rst.txt @@ -0,0 +1,338 @@ +.. _getting_started_cpp: + +Using Torch-TensorRT in C++ +============================== + +If you haven't already, acquire a tarball of the library by following the instructions in :ref:`Installation` + +Using Torch-TensorRT in C++ +*************************** +Torch-TensorRT C++ API accepts TorchScript modules (generated either from ``torch.jit.script`` or ``torch.jit.trace``) as an input and returns +a Torchscript module (optimized using TensorRT). This requires users to use Pytorch (in python) to generate torchscript modules beforehand. +Please refer to `Creating TorchScript modules in Python `_ section to generate torchscript graphs. + + +.. _torch_tensorrt_quickstart: + +[Torch-TensorRT Quickstart] Compiling TorchScript Modules with ``torchtrtc`` +--------------------------------------------------------------------------------- + +An easy way to get started with Torch-TensorRT and to check if your model can be supported without extra work is to run it through +``torchtrtc``, which supports almost all features of the compiler from the command line including post training quantization +(given a previously created calibration cache). For example we can compile our lenet model by setting our preferred operating +precision and input size. This new TorchScript file can be loaded into Python (note: you need to ``import torch_tensorrt`` before loading +these compiled modules because the compiler extends the PyTorch the deserializer and runtime to execute compiled modules). + +.. code-block:: shell + + ❯ torchtrtc -p f16 lenet_scripted.ts trt_lenet_scripted.ts "(1,1,32,32)" + + ❯ python3 + Python 3.6.9 (default, Apr 18 2020, 01:56:04) + [GCC 8.4.0] on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> import torch + >>> import torch_tensorrt + >>> ts_model = torch.jit.load(“trt_lenet_scripted.ts”) + >>> ts_model(torch.randn((1,1,32,32)).to(“cuda”).half()) + +You can learn more about ``torchtrtc`` usage here: :ref:`torchtrtc` + +.. _ts_in_cc: + +Working with TorchScript in C++ +-------------------------------- + +If we are developing an application to deploy with C++, we can save either our traced or scripted module using ``torch.jit.save`` +which will serialize the TorchScript code, weights and other information into a package. This is also where our dependency on Python ends. + +.. code-block:: python + + torch_script_module.save("lenet.jit.pt") + +From here we can now load our TorchScript module in C++ + +.. code-block:: c++ + + #include // One-stop header. + + #include + #include + + int main(int argc, const char* argv[]) { + torch::jit::Module module; + try { + // Deserialize the ScriptModule from a file using torch::jit::load(). + module = torch::jit::load(""); + } + catch (const c10::Error& e) { + std::cerr << "error loading the model\n"; + return -1; + } + + std::cout << "ok\n"; + + +You can do full training and inference in C++ with PyTorch / LibTorch if you would like, you can even define your modules in C++ and +have access to the same powerful tensor library that backs PyTorch. (For more information: https://pytorch.org/cppdocs/). +For instance we can do inference with our LeNet module like this: + +.. code-block:: c++ + + mod.eval(); + torch::Tensor in = torch::randn({1, 1, 32, 32}); + auto out = mod.forward(in); + +and to run on the GPU: + +.. code-block:: c++ + + mod.eval(); + mod.to(torch::kCUDA); + torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA); + auto out = mod.forward(in); + +As you can see it is pretty similar to the Python API. When you call the ``forward`` method, you invoke the PyTorch JIT compiler, which will optimize and run your TorchScript code. + +.. _compile_cpp: + +Compiling with Torch-TensorRT in C++ +------------------------------------- +We are also at the point were we can compile and optimize our module with Torch-TensorRT, but instead of in a JIT fashion we must do it ahead-of-time (AOT) i.e. before we start doing actual inference work +since it takes a bit of time to optimize the module, it would not make sense to do this every time you run the module or even the first time you run it. + +With our module loaded, we can feed it into the Torch-TensorRT compiler. When we do so we must provide some information on the expected input size and also configure any additional settings. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}); + auto trt_mod = torch_tensorrt::CompileGraph(mod, std::vector{{in.sizes()}}); + auto out = trt_mod.forward({in}); + +Thats it! Now the graph runs primarily not with the JIT compiler but using TensorRT (though we execute the graph using the JIT runtime). + +We can also set settings like operating precision to run in FP16. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF); + auto input_sizes = std::vector({in.sizes()}); + torch_tensorrt::CompileSpec info(input_sizes); + info.enable_precisions.insert(torch::kHALF); + auto trt_mod = torch_tensorrt::CompileGraph(mod, info); + auto out = trt_mod.forward({in}); + +And now we are running the module in FP16 precision. You can then save the module to load later. + +.. code-block:: c++ + + trt_mod.save("") + +Torch-TensorRT compiled TorchScript modules are loaded in the same way as normal TorchScript module. Make sure your deployment application is linked against ``libtorchtrt.so`` + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + + int main(int argc, const char* argv[]) { + torch::jit::Module module; + try { + // Deserialize the ScriptModule from a file using torch::jit::load(). + module = torch::jit::load(""); + } + catch (const c10::Error& e) { + std::cerr << "error loading the model\n"; + return -1; + } + + torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA); + auto out = mod.forward(in); + + std::cout << "ok\n"; + } + +If you want to save the engine produced by Torch-TensorRT to use in a TensorRT application you can use the ``ConvertGraphToTRTEngine`` API. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF); + auto input_sizes = std::vector({in.sizes()}); + torch_tensorrt::CompileSpec info(input_sizes); + info.enabled_precisions.insert(torch::kHALF); + auto trt_mod = torch_tensorrt::ConvertGraphToTRTEngine(mod, "forward", info); + std::ofstream out("/tmp/engine_converted_from_jit.trt"); + out << engine; + out.close(); + +.. _under_the_hood: + +Under The Hood +--------------- + +When a module is provided to Torch-TensorRT, the compiler starts by mapping a graph like you saw above to a graph like this: + +.. code-block:: none + + graph(%input.2 : Tensor): + %2 : Float(84, 10) = prim::Constant[value=]() + %3 : Float(120, 84) = prim::Constant[value=]() + %4 : Float(576, 120) = prim::Constant[value=]() + %5 : int = prim::Constant[value=-1]() # x.py:25:0 + %6 : int[] = prim::Constant[value=annotate(List[int], [])]() + %7 : int[] = prim::Constant[value=[2, 2]]() + %8 : int[] = prim::Constant[value=[0, 0]]() + %9 : int[] = prim::Constant[value=[1, 1]]() + %10 : bool = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %11 : int = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %12 : bool = prim::Constant[value=0]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %self.classifer.fc3.bias : Float(10) = prim::Constant[value= 0.0464 0.0383 0.0678 0.0932 0.1045 -0.0805 -0.0435 -0.0818 0.0208 -0.0358 [ CUDAFloatType{10} ]]() + %self.classifer.fc2.bias : Float(84) = prim::Constant[value=]() + %self.classifer.fc1.bias : Float(120) = prim::Constant[value=]() + %self.feat.conv2.weight : Float(16, 6, 3, 3) = prim::Constant[value=]() + %self.feat.conv2.bias : Float(16) = prim::Constant[value=]() + %self.feat.conv1.weight : Float(6, 1, 3, 3) = prim::Constant[value=]() + %self.feat.conv1.bias : Float(6) = prim::Constant[value= 0.0530 -0.1691 0.2802 0.1502 0.1056 -0.1549 [ CUDAFloatType{6} ]]() + %input0.4 : Tensor = aten::_convolution(%input.2, %self.feat.conv1.weight, %self.feat.conv1.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %input0.5 : Tensor = aten::relu(%input0.4) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %input1.2 : Tensor = aten::max_pool2d(%input0.5, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %input0.6 : Tensor = aten::_convolution(%input1.2, %self.feat.conv2.weight, %self.feat.conv2.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %input2.1 : Tensor = aten::relu(%input0.6) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %x.1 : Tensor = aten::max_pool2d(%input2.1, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 + %27 : Tensor = aten::matmul(%input.1, %4) + %28 : Tensor = trt::const(%self.classifer.fc1.bias) + %29 : Tensor = aten::add_(%28, %27, %11) + %input0.2 : Tensor = aten::relu(%29) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %31 : Tensor = aten::matmul(%input0.2, %3) + %32 : Tensor = trt::const(%self.classifer.fc2.bias) + %33 : Tensor = aten::add_(%32, %31, %11) + %input1.1 : Tensor = aten::relu(%33) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %35 : Tensor = aten::matmul(%input1.1, %2) + %36 : Tensor = trt::const(%self.classifer.fc3.bias) + %37 : Tensor = aten::add_(%36, %35, %11) + return (%37) + (CompileGraph) + +The graph has now been transformed from a collection of modules, each managing their own parameters into a single graph with the parameters inlined +into the graph and all of the operations laid out. Torch-TensorRT has also executed a number of optimizations and mappings to make the graph easier to translate to TensorRT. +From here the compiler can assemble the TensorRT engine by following the dataflow through the graph. + +When the graph construction phase is complete, Torch-TensorRT produces a serialized TensorRT engine. From here depending on the API, this engine is returned +to the user or moves into the graph construction phase. Here Torch-TensorRT creates a JIT Module to execute the TensorRT engine which will be instantiated and managed +by the Torch-TensorRT runtime. + +Here is the graph that you get back after compilation is complete: + +.. code-block:: none + + graph(%self_1 : __torch__.lenet, %input_0 : Tensor): + %1 : ...trt.Engine = prim::GetAttr[name="lenet"](%self_1) + %3 : Tensor[] = prim::ListConstruct(%input_0) + %4 : Tensor[] = trt::execute_engine(%3, %1) + %5 : Tensor = prim::ListUnpack(%4) + return (%5) + + +You can see the call where the engine is executed, after extracting the attribute containing the engine and constructing a list of inputs, then returns the tensors back to the user. + +.. _unsupported_ops: + +Working with Unsupported Operators +----------------------------------- + +Torch-TensorRT is a new library and the PyTorch operator library is quite large, so there will be ops that aren't supported natively by the compiler. You can either use the composition techinques +shown above to make modules are fully Torch-TensorRT supported and ones that are not and stitch the modules together in the deployment application or you can register converters for missing ops. + + You can check support without going through the full compilation pipleine using the ``torch_tensorrt::CheckMethodOperatorSupport(const torch::jit::Module& module, std::string method_name)`` api + to see what operators are not supported. ``torchtrtc`` automatically checks modules with this method before starting compilation and will print out a list of operators that are not supported. + +.. _custom_converters: + +Registering Custom Converters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Operations are mapped to TensorRT through the use of modular converters, a function that takes a node from a the JIT graph and produces an equivalent layer or subgraph in TensorRT. +Torch-TensorRT ships with a library of these converters stored in a registry, that will be executed depending on the node being parsed. For instance a ``aten::relu(%input0.4)`` instruction will trigger +the relu converter to be run on it, producing an activation layer in the TensorRT graph. But since this library is not exhaustive you may need to write your own to get Torch-TensorRT +to support your module. + +Shipped with the Torch-TensorRT distribution are the internal core API headers. You can therefore access the converter registry and add a converter for the op you need. + +For example, if we try to compile a graph with a build of Torch-TensorRT that doesn't support the flatten operation (``aten::flatten``) you may see this error: + +.. code-block:: none + + terminate called after throwing an instance of 'torch_tensorrt::Error' + what(): [enforce fail at core/conversion/conversion.cpp:109] Expected converter to be true but got false + Unable to convert node: %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 (conversion.AddLayer) + Schema: aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor) + Converter for aten::flatten requested, but no such converter was found. + If you need a converter for this operator, you can try implementing one yourself + or request a converter: https://www.github.com/NVIDIA/Torch-TensorRT/issues + +We can register a converter for this operator in our application. All of the tools required to build a converter can be imported by including ``torch_tensorrt/core/conversion/converters/converters.h``. +We start by creating an instance of the self-registering class ``torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns()`` which will register converters +in the global converter registry, associating a function schema like ``aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)`` with a lambda that +will take the state of the conversion, the node/operation in question to convert and all of the inputs to the node and produces as a side effect a new layer in the TensorRT network. +Arguments are passed as a vector of inspectable unions of TensorRT ``ITensors`` and Torch ``IValues`` in the order arguments are listed in the schema. + +Below is a implementation of a ``aten::flatten`` converter that we can use in our application. You have full access to the Torch and TensorRT libraries in the converter implementation. So +for example we can quickly get the output size by just running the operation in PyTorch instead of implementing the full calculation outself like we do below for this flatten converter. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + #include "torch_tensorrt/core/conversion/converters/converters.h" + + static auto flatten_converter = torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns() + .pattern({ + "aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)", + [](torch_tensorrt::core::conversion::ConversionCtx* ctx, + const torch::jit::Node* n, + torch_tensorrt::core::conversion::converters::args& args) -> bool { + auto in = args[0].ITensor(); + auto start_dim = args[1].unwrapToInt(); + auto end_dim = args[2].unwrapToInt(); + auto in_shape = torch_tensorrt::core::util::toVec(in->getDimensions()); + auto out_shape = torch::flatten(torch::rand(in_shape), start_dim, end_dim).sizes(); + + auto shuffle = ctx->net->addShuffle(*in); + shuffle->setReshapeDimensions(torch_tensorrt::core::util::toDims(out_shape)); + shuffle->setName(torch_tensorrt::core::util::node_info(n).c_str()); + + auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], shuffle->getOutput(0)); + return true; + } + }); + + int main() { + ... + +To use this converter in Python, it is recommended to use PyTorch's `C++ / CUDA Extention `_ +template to wrap your library of converters into a ``.so`` that you can load with ``ctypes.CDLL()`` in your Python application. + +You can find more information on all the details of writing converters in the contributors documentation (:ref:`writing_converters`). +If you find yourself with a large library of converter implementations, do consider upstreaming them, PRs are welcome and it would be great for the community to benefit as well. diff --git a/docs/v1.2.0/_sources/getting_started/getting_started_with_python_api.rst.txt b/docs/v1.2.0/_sources/getting_started/getting_started_with_python_api.rst.txt new file mode 100644 index 0000000000..fece176156 --- /dev/null +++ b/docs/v1.2.0/_sources/getting_started/getting_started_with_python_api.rst.txt @@ -0,0 +1,58 @@ +.. _getting_started_with_python_api: + +Using Torch-TensorRT in Python +******************************* + +The Torch-TensorRT Python API supports a number of unique usecases compared to the CLI and C++ APIs which solely support TorchScript compilation. + +Torch-TensorRT Python API can accept a ``torch.nn.Module``, ``torch.jit.ScriptModule``, or ``torch.fx.GraphModule`` as an input. +Depending on what is provided one of the two frontends (TorchScript or FX) will be selected to compile the module. Provided the +module type is supported, users may explicitly set which frontend they would like to use using the ``ir`` flag for ``compile``. +If given a ``torch.nn.Module`` and the ``ir`` flag is set to either ``default`` or ``torchscript`` the module will be run through +``torch.jit.script`` to convert the input module into a TorchScript module. + + +To compile your input ``torch.nn.Module`` with Torch-TensorRT, all you need to do is provide the module and inputs +to Torch-TensorRT and you will be returned an optimized TorchScript module to run or add into another PyTorch module. Inputs +is a list of ``torch_tensorrt.Input`` classes which define input's shape, datatype and memory format. You can also specify settings such as +operating precision for the engine or target device. After compilation you can save the module just like any other module +to load in a deployment application. In order to load a TensorRT/TorchScript module, make sure you first import ``torch_tensorrt``. + +.. code-block:: python + + import torch_tensorrt + + ... + + model = MyModel().eval() # torch module needs to be in eval (not training) mode + + inputs = [ + torch_tensorrt.Input( + min_shape=[1, 1, 16, 16], + opt_shape=[1, 1, 32, 32], + max_shape=[1, 1, 64, 64], + dtype=torch.half, + ) + ] + enabled_precisions = {torch.float, torch.half} # Run with fp16 + + trt_ts_module = torch_tensorrt.compile( + model, inputs=inputs, enabled_precisions=enabled_precisions + ) + + input_data = input_data.to("cuda").half() + result = trt_ts_module(input_data) + torch.jit.save(trt_ts_module, "trt_ts_module.ts") + +.. code-block:: python + + # Deployment application + import torch + import torch_tensorrt + + trt_ts_module = torch.jit.load("trt_ts_module.ts") + input_data = input_data.to("cuda").half() + result = trt_ts_module(input_data) + +Torch-TensorRT Python API also provides ``torch_tensorrt.ts.compile`` which accepts a TorchScript module as input and ``torch_tensorrt.fx.compile`` which accepts a FX GraphModule as input. + diff --git a/docs/v1.2.0/_sources/getting_started/getting_started_with_windows.rst.txt b/docs/v1.2.0/_sources/getting_started/getting_started_with_windows.rst.txt new file mode 100644 index 0000000000..04eba960e0 --- /dev/null +++ b/docs/v1.2.0/_sources/getting_started/getting_started_with_windows.rst.txt @@ -0,0 +1,78 @@ +.. _getting_started_windows: + +Building Torch-TensorRT on Windows +==================================== + +Torch-TensorRT has community support for Windows platform using CMake + +Prerequisite: + +* Microsoft Visual Studio +* LibTorch +* TensorRT +* CUDA +* cuDNN + + +Build configuration +------------------- + +* Open Microsoft Visual Studio +* Open Torch-TensorRT source code folder +* Open Manage configurations -> Edit JSON to open CMakeSettings.json file. +* Configure the CMake build configurations. Following is an example configuration: + +.. code-block:: none + + { + "configurations": [ + { + "name": "x64-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "inheritEnvironments": [ "msvc_x64_x64" ], + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "-S . -B out", + "buildCommandArgs": "cmake --build out", + "ctestCommandArgs": "", + "variables": [ + { + "name": "CMAKE_MODULE_PATH", + "value": "$PWD\cmake\Modules", + "type": "FILEPATH" + }, + { + "name": "Torch_DIR", + "value": "\share\cmake\Torch", + "type": "FILEPATH" + }, + { + "name": "TensorRT_ROOT", + "value": "", + "type": "FILEPATH" + }, + { + "name": "CMAKE_BUILD_TYPE", + "value": "Release", + "type": " STRING" + } + ] + } + ] + } + + +Compilation +----------- + +* Click Build -> Build All or directly press Ctrl + Shift + B + +Note: After successful compilation, the build artifacts will be present at buildRoot path configured. + +Installation +------------ + +* Build -> Install Torch-TensorRT + +Note: After successful installation, the artifacts will be present at installRoot. \ No newline at end of file diff --git a/docs/v1.2.0/_sources/getting_started/installation.rst.txt b/docs/v1.2.0/_sources/getting_started/installation.rst.txt new file mode 100644 index 0000000000..937dd1dde9 --- /dev/null +++ b/docs/v1.2.0/_sources/getting_started/installation.rst.txt @@ -0,0 +1,362 @@ +.. _installation: + +Installation +============= + +Precompiled Binaries +********************* + +Dependencies +--------------- + +You need to have either PyTorch or LibTorch installed based on if you are using Python or C++ +and you must have CUDA, cuDNN and TensorRT installed. + + * https://www.pytorch.org + * https://developer.nvidia.com/cuda + * https://developer.nvidia.com/cudnn + * https://developer.nvidia.com/tensorrt + + +Python Package +--------------- + +You can install the python package using + +.. code-block:: sh + + pip3 install torch-tensorrt -f https://github.com/pytorch/TensorRT/releases + +.. _bin-dist: + +C++ Binary Distribution +------------------------ + +Precompiled tarballs for releases are provided here: https://github.com/pytorch/TensorRT/releases + +.. _compile-from-source: + +Compiling From Source +****************************************** + +.. _installing-deps: + +Dependencies for Compilation +------------------------------- + +Torch-TensorRT is built with Bazel, so begin by installing it. + + * The easiest way is to install bazelisk using the method of your choosing https://github.com/bazelbuild/bazelisk + * Otherwise you can use the following instructions to install binaries https://docs.bazel.build/versions/master/install.html + * Finally if you need to compile from source (e.g. aarch64 until bazel distributes binaries for the architecture) you can use these instructions + + .. code-block:: shell + + export BAZEL_VERSION=$(cat /.bazelversion) + mkdir bazel + cd bazel + curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-dist.zip + unzip bazel-$BAZEL_VERSION-dist.zip + bash ./compile.sh + cp output/bazel /usr/local/bin/ + + +You will also need to have CUDA installed on the system (or if running in a container, the system must have +the CUDA driver installed and the container must have CUDA) + +The correct LibTorch version will be pulled down for you by bazel. + + NOTE: For best compatability with official PyTorch, use torch==1.10.0+cuda113, TensorRT 8.0 and cuDNN 8.2 for CUDA 11.3 however Torch-TensorRT itself supports + TensorRT and cuDNN for other CUDA versions for usecases such as using NVIDIA compiled distributions of PyTorch that use other versions of CUDA + e.g. aarch64 or custom compiled version of PyTorch. + +.. _abis: + +Choosing the Right ABI +^^^^^^^^^^^^^^^^^^^^^^^^ + +Likely the most complicated thing about compiling Torch-TensorRT is selecting the correct ABI. There are two options +which are incompatible with each other, pre-cxx11-abi and the cxx11-abi. The complexity comes from the fact that while +the most popular distribution of PyTorch (wheels downloaded from pytorch.org/pypi directly) use the pre-cxx11-abi, most +other distributions you might encounter (e.g. ones from NVIDIA - NGC containers, and builds for Jetson as well as certain +libtorch builds and likely if you build PyTorch from source) use the cxx11-abi. It is important you compile Torch-TensorRT +using the correct ABI to function properly. Below is a table with general pairings of PyTorch distribution sources and the +recommended commands: + ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch Source | Recommended C++ Compilation Command | Recommended Python Compilation Command | ++=============================================================+==========================================================+====================================================================+ +| PyTorch whl file from PyTorch.org | bazel build //:libtorchtrt -c opt --config pre_cxx11_abi | python3 setup.py bdist_wheel | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| libtorch-shared-with-deps-*.zip from PyTorch.org | bazel build //:libtorchtrt -c opt --config pre_cxx11_abi | python3 setup.py bdist_wheel | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| libtorch-cxx11-abi-shared-with-deps-*.zip from PyTorch.org | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch preinstalled in an NGC container | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch from the NVIDIA Forums for Jetson | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --jetpack-version 4.6 --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch built from Source | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ + + NOTE: For all of the above cases you must correctly declare the source of PyTorch you intend to use in your WORKSPACE file for both Python and C++ builds. See below for more information + +You then have two compilation options: + +.. _build-from-archive: + +**Building using cuDNN & TensorRT tarball distributions** +-------------------------------------------------------------- + + This is recommended so as to build Torch-TensorRT hermetically and insures any compilation errors are not caused by version issues + + Make sure when running Torch-TensorRT that these versions of the libraries are prioritized in your ``$LD_LIBRARY_PATH`` + +You need to download the tarball distributions of TensorRT and cuDNN from the NVIDIA website. + * https://developer.nvidia.com/cudnn + * https://developer.nvidia.com/tensorrt + +Place these files in a directory (the directories ``third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]`` exist for this purpose) + +Then compile referencing the directory with the tarballs + + If you get errors regarding the packages, check their sha256 hashes and make sure they match the ones listed in ``WORKSPACE`` + +Release Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: shell + + bazel build //:libtorchtrt -c opt --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-archive-debug: + +Debug Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build with debug symbols use the following command + +.. code-block:: shell + + bazel build //:libtorchtrt -c dbg --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +Pre CXX11 ABI Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build using the pre-CXX11 ABI use the ``pre_cxx11_abi`` config + +.. code-block:: shell + + bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-local: + +**Building using locally installed cuDNN & TensorRT** +-------------------------------------------------------------- + + If you encounter bugs and you compiled using this method please disclose that you used local sources in the issue (an ldd dump would be nice too) + +Install TensorRT, CUDA and cuDNN on the system before starting to compile. + +In WORKSPACE comment out: + +.. code-block:: python + + # Downloaded distributions to use with --distdir + http_archive( + name="cudnn", + urls=[ + "", + ], + build_file="@//third_party/cudnn/archive:BUILD", + sha256="", + strip_prefix="cuda", + ) + + http_archive( + name="tensorrt", + urls=[ + "", + ], + build_file="@//third_party/tensorrt/archive:BUILD", + sha256="", + strip_prefix="TensorRT-", + ) + +and uncomment + +.. code-block:: python + + # Locally installed dependencies + new_local_repository( + name="cudnn", path="/usr/", build_file="@//third_party/cudnn/local:BUILD" + ) + + new_local_repository( + name="tensorrt", path="/usr/", build_file="@//third_party/tensorrt/local:BUILD" + ) + +Release Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +Compile using: + +.. code-block:: shell + + bazel build //:libtorchtrt -c opt + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-local-debug: + +Debug Build +^^^^^^^^^^^^ + +To build with debug symbols use the following command + +.. code-block:: shell + + bazel build //:libtorchtrt -c dbg + + +A tarball with the include files and library can then be found in ``bazel-bin`` + +Pre CXX11 ABI Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build using the pre-CXX11 ABI use the ``pre_cxx11_abi`` config + +.. code-block:: shell + + bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] + +**Building with CMake** +----------------------- + +It is possible to build the API libraries (in cpp/) and the torchtrtc executable using CMake instead of Bazel. +Currently, the python API and the tests cannot be built with CMake. +Begin by installing CMake. + + * Latest releases of CMake and instructions on how to install are available for different platforms + [on their website](https://cmake.org/download/). + +A few useful CMake options include: + + * CMake finders for TensorRT and cuDNN are provided in `cmake/Modules`. In order for CMake to use them, pass + `-DCMAKE_MODULE_PATH=cmake/Modules` when configuring the project with CMake. + * Libtorch provides its own CMake finder. In case CMake doesn't find it, pass the path to your install of + libtorch with `-DTorch_DIR=/share/cmake/Torch` + * If TensorRT is not found with the provided cmake finder, specify `-DTensorRT_ROOT=` + * Finally, configure and build the project in a build directory of your choice with the following command + from the root of Torch-TensorRT project: + + .. code-block:: shell + + cmake -S. -B \ + [-DCMAKE_MODULE_PATH=cmake/Module] \ + [-DTorch_DIR=/share/cmake/Torch] \ + [-DTensorRT_ROOT=] \ + [-DCMAKE_BUILD_TYPE=Debug|Release] + cmake --build + +**Building the Python package** +-------------------------------- + +Begin by installing ``ninja`` + +You can build the Python package using ``setup.py`` (this will also build the correct version of ``libtorchtrt.so``) + +.. code-block:: shell + + python3 setup.py [install/bdist_wheel] + +Debug Build +^^^^^^^^^^^^ + +.. code-block:: shell + + python3 setup.py develop [--user] + +This also compiles a debug build of ``libtorchtrt.so`` + +**Building Natively on aarch64 (Jetson)** +------------------------------------------- + +Prerequisites +^^^^^^^^^^^^^^ + +Install or compile a build of PyTorch/LibTorch for aarch64 + +NVIDIA hosts builds the latest release branch for Jetson here: + + https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-10-now-available/72048 + + +Enviorment Setup +^^^^^^^^^^^^^^^^^ + +To build natively on aarch64-linux-gnu platform, configure the ``WORKSPACE`` with local available dependencies. + +1. Replace ``WORKSPACE`` with the corresponding WORKSPACE file in ``//toolchains/jp_workspaces`` + +2. Configure the correct paths to directory roots containing local dependencies in the ``new_local_repository`` rules: + + NOTE: If you installed PyTorch using a pip package, the correct path is the path to the root of the python torch package. + In the case that you installed with ``sudo pip install`` this will be ``/usr/local/lib/python3.8/dist-packages/torch``. + In the case you installed with ``pip install --user`` this will be ``$HOME/.local/lib/python3.8/site-packages/torch``. + +In the case you are using NVIDIA compiled pip packages, set the path for both libtorch sources to the same path. This is because unlike +PyTorch on x86_64, NVIDIA aarch64 PyTorch uses the CXX11-ABI. If you compiled for source using the pre_cxx11_abi and only would like to +use that library, set the paths to the same path but when you compile make sure to add the flag ``--config=pre_cxx11_abi`` + +.. code-block:: shell + + new_local_repository( + name = "libtorch", + path = "/usr/local/lib/python3.8/dist-packages/torch", + build_file = "third_party/libtorch/BUILD" + ) + + new_local_repository( + name = "libtorch_pre_cxx11_abi", + path = "/usr/local/lib/python3.8/dist-packages/torch", + build_file = "third_party/libtorch/BUILD" + ) + + +Compile C++ Library and Compiler CLI +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + NOTE: Due to shifting dependency locations between Jetpack 4.5 and 4.6 there is a now a flag to inform bazel of the Jetpack version + + .. code-block:: shell + + --platforms //toolchains:jetpack_x.x + + +Compile Torch-TensorRT library using bazel command: + +.. code-block:: shell + + bazel build //:libtorchtrt --platforms //toolchains:jetpack_5.0 + +Compile Python API +^^^^^^^^^^^^^^^^^^^^ + + NOTE: Due to shifting dependencies locations between Jetpack 4.5 and newer Jetpack verisons there is now a flag for ``setup.py`` which sets the jetpack version (default: 5.0) + +Compile the Python API using the following command from the ``//py`` directory: + +.. code-block:: shell + + python3 setup.py install --use-cxx11-abi + +If you have a build of PyTorch that uses Pre-CXX11 ABI drop the ``--use-cxx11-abi`` flag + +If you are building for Jetpack 4.5 add the ``--jetpack-version 5.0`` flag diff --git a/docs/v1.2.0/_sources/index.rst.txt b/docs/v1.2.0/_sources/index.rst.txt new file mode 100644 index 0000000000..c0de8dd400 --- /dev/null +++ b/docs/v1.2.0/_sources/index.rst.txt @@ -0,0 +1,139 @@ +.. Torch-TensorRT documentation master file, created by + sphinx-quickstart on Mon May 4 13:43:16 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Torch-TensorRT +============== +Ahead-of-time compilation of TorchScript / PyTorch JIT for NVIDIA GPUs +----------------------------------------------------------------------- +Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA's TensorRT Deep Learning Optimizer and Runtime. +Unlike PyTorch's Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your +TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting +a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into the JIT runtime seamlessly. +After compilation using the optimized graph should feel no different than running a TorchScript module. +You also have access to TensorRT's suite of configurations at compile time, so you are able to specify +operating precision (FP32/FP16/INT8) and other settings for your module. + +More Information / System Architecture: + +* `GTC 2020 Talk `_ + +Getting Started +---------------- +* :ref:`installation` +* :ref:`getting_started_with_python_api` +* :ref:`getting_started_cpp` + +.. toctree:: + :caption: Getting Started + :maxdepth: 1 + :hidden: + + getting_started/installation + getting_started/getting_started_with_python_api + getting_started/getting_started_with_cpp_api + + +Tutorials +------------ +* :ref:`creating_a_ts_mod` +* :ref:`getting_started_with_fx` +* :ref:`ptq` +* :ref:`runtime` +* :ref:`serving_torch_tensorrt_with_triton` +* :ref:`use_from_pytorch` +* :ref:`using_dla` +* :ref:`notebooks` + +.. toctree:: + :caption: Tutorials + :maxdepth: 1 + :hidden: + + tutorials/creating_torchscript_module_in_python + tutorials/getting_started_with_fx_path + tutorials/ptq + tutorials/runtime + tutorials/serving_torch_tensorrt_with_triton + tutorials/use_from_pytorch + tutorials/using_dla + tutorials/notebooks + +Python API Documenation +------------------------ +* :ref:`torch_tensorrt_py` +* :ref:`torch_tensorrt_logging_py` +* :ref:`torch_tensorrt_ptq_py` +* :ref:`torch_tensorrt_ts_py` +* :ref:`torch_tensorrt_fx_py` + +.. toctree:: + :caption: Python API Documenation + :maxdepth: 0 + :hidden: + + py_api/torch_tensorrt + py_api/logging + py_api/ptq + py_api/ts + py_api/fx + +C++ API Documenation +---------------------- +* :ref:`namespace_torch_tensorrt` +* :ref:`namespace_torch_tensorrt__logging` +* :ref:`namespace_torch_tensorrt__ptq` +* :ref:`namespace_torch_tensorrt__torchscript` + + +.. toctree:: + :caption: C++ API Documenation + :maxdepth: 1 + :hidden: + + _cpp_api/torch_tensort_cpp + _cpp_api/namespace_torch_tensorrt + _cpp_api/namespace_torch_tensorrt__logging + _cpp_api/namespace_torch_tensorrt__torchscript + _cpp_api/namespace_torch_tensorrt__ptq + +CLI Documentation +--------------------- +* :ref:`torchtrtc` + +.. toctree:: + :caption: CLI Documenation + :maxdepth: 0 + :hidden: + + cli/torchtrtc + + +Contributor Documentation +-------------------------------- +* :ref:`system_overview` +* :ref:`writing_converters` +* :ref:`useful_links` + +.. toctree:: + :caption: Contributor Documentation + :maxdepth: 1 + :hidden: + + contributors/system_overview + contributors/writing_converters + contributors/useful_links + +Indices +---------------- +* :ref:`supported_ops` +* :ref:`genindex` +* :ref:`search` + +.. toctree:: + :caption: Indices + :maxdepth: 1 + :hidden: + + indices/supported_ops diff --git a/docs/v1.2.0/_sources/indices/supported_ops.rst.txt b/docs/v1.2.0/_sources/indices/supported_ops.rst.txt new file mode 100644 index 0000000000..0367c02710 --- /dev/null +++ b/docs/v1.2.0/_sources/indices/supported_ops.rst.txt @@ -0,0 +1,285 @@ + +.. _supported_ops: + +================================= +Operators Supported +================================= + + +Operators Currently Supported Through Converters +------------------------------------------------- + +- aten::_convolution(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool benchmark, bool deterministic, bool cudnn_enabled, bool allow_tf32) -> (Tensor) +- aten::_convolution.deprecated(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool benchmark, bool deterministic, bool cudnn_enabled) -> (Tensor) +- aten::abs(Tensor self) -> (Tensor) +- aten::acos(Tensor self) -> (Tensor) +- aten::acosh(Tensor self) -> (Tensor) +- aten::adaptive_avg_pool1d(Tensor self, int[1] output_size) -> (Tensor) +- aten::adaptive_avg_pool2d(Tensor self, int[2] output_size) -> (Tensor) +- aten::adaptive_avg_pool3d(Tensor self, int[3] output_size) -> (Tensor) +- aten::adaptive_max_pool1d(Tensor self, int[2] output_size) -> (Tensor, Tensor) +- aten::adaptive_max_pool2d(Tensor self, int[2] output_size) -> (Tensor, Tensor) +- aten::adaptive_max_pool3d(Tensor self, int[3] output_size) -> (Tensor, Tensor) +- aten::add.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) +- aten::add.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +- aten::add_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> (Tensor(a!)) +- aten::argmax(Tensor self, int dim, bool keepdim=False) -> (Tensor) +- aten::argmin(Tensor self, int dim, bool keepdim=False) -> (Tensor) +- aten::asin(Tensor self) -> (Tensor) +- aten::asinh(Tensor self) -> (Tensor) +- aten::atan(Tensor self) -> (Tensor) +- aten::atanh(Tensor self) -> (Tensor) +- aten::avg_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=[0], bool ceil_mode=False, bool count_include_pad=True) -> (Tensor) +- aten::avg_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=[0, 0], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor) +- aten::avg_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=[], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor) +- aten::batch_norm(Tensor input, Tensor? gamma, Tensor? beta, Tensor? mean, Tensor? var, bool training, float momentum, float eps, bool cudnn_enabled) -> (Tensor) +- aten::bitwise_not(Tensor self) -> (Tensor) +- aten::bmm(Tensor self, Tensor mat2) -> (Tensor) +- aten::cat(Tensor[] tensors, int dim=0) -> (Tensor) +- aten::ceil(Tensor self) -> (Tensor) +- aten::clamp(Tensor self, Scalar? min=None, Scalar? max=None) -> (Tensor) +- aten::clamp_max(Tensor self, Scalar max) -> (Tensor) +- aten::clamp_min(Tensor self, Scalar min) -> (Tensor) +- aten::constant_pad_nd(Tensor self, int[] pad, Scalar value=0) -> (Tensor) +- aten::cos(Tensor self) -> (Tensor) +- aten::cosh(Tensor self) -> (Tensor) +- aten::cumsum(Tensor self, int dim, *, int? dtype=None) -> (Tensor) +- aten::div.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::div.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::div.Tensor_mode(Tensor self, Tensor other, *, str? rounding_mode) -> (Tensor) +- aten::div_.Scalar(Tensor(a!) self, Scalar other) -> (Tensor(a!)) +- aten::div_.Tensor(Tensor(a!) self, Tensor other) -> (Tensor(a!)) +- aten::elu(Tensor self, Scalar alpha=1, Scalar scale=1, Scalar input_scale=1) -> (Tensor) +- aten::embedding(Tensor weight, Tensor indices, int padding_idx=-1, bool scale_grad_by_freq=False, bool sparse=False) -> (Tensor) +- aten::eq.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::eq.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::erf(Tensor self) -> (Tensor) +- aten::exp(Tensor self) -> (Tensor) +- aten::expand(Tensor(a) self, int[] size, *, bool implicit=False) -> (Tensor(a)) +- aten::expand_as(Tensor(a) self, Tensor other) -> (Tensor(a)) +- aten::fake_quantize_per_channel_affine(Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max) -> (Tensor) +- aten::fake_quantize_per_tensor_affine(Tensor self, float scale, int zero_point, int quant_min, int quant_max) -> (Tensor) +- aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor) +- aten::floor(Tensor self) -> (Tensor) +- aten::floor_divide(Tensor self, Tensor other) -> (Tensor) +- aten::floor_divide.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::ge.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::ge.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::gru_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor) +- aten::gt.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::gt.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::hardtanh(Tensor self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor) +- aten::hardtanh_(Tensor(a!) self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor(a!)) +- aten::index.Tensor(Tensor self, Tensor?[] indices) -> (Tensor) +- aten::instance_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool use_input_stats, float momentum, float eps, bool cudnn_enabled) -> (Tensor) +- aten::layer_norm(Tensor input, int[] normalized_shape, Tensor? gamma, Tensor? beta, float eps, bool cudnn_enabled) -> (Tensor) +- aten::le.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::le.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::leaky_relu(Tensor self, Scalar negative_slope=0.01) -> (Tensor) +- aten::leaky_relu_(Tensor(a!) self, Scalar negative_slope=0.01) -> (Tensor(a!)) +- aten::linear(Tensor input, Tensor weight, Tensor? bias=None) -> (Tensor) +- aten::log(Tensor self) -> (Tensor) +- aten::lstm_cell(Tensor input, Tensor[] hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor, Tensor) +- aten::lt.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::lt.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::masked_fill.Scalar(Tensor self, Tensor mask, Scalar value) -> (Tensor) +- aten::matmul(Tensor self, Tensor other) -> (Tensor) +- aten::max(Tensor self) -> (Tensor) +- aten::max.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices) +- aten::max.other(Tensor self, Tensor other) -> (Tensor) +- aten::max_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=[], int[1] dilation=[], bool ceil_mode=False) -> (Tensor) +- aten::max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=[0, 0], int[2] dilation=[1, 1], bool ceil_mode=False) -> (Tensor) +- aten::max_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=[], int[3] dilation=[], bool ceil_mode=False) -> (Tensor) +- aten::mean(Tensor self, *, int? dtype=None) -> (Tensor) +- aten::mean.dim(Tensor self, int[] dim, bool keepdim=False, *, int? dtype=None) -> (Tensor) +- aten::min(Tensor self) -> (Tensor) +- aten::min.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices) +- aten::min.other(Tensor self, Tensor other) -> (Tensor) +- aten::mul.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::mul.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::mul_.Tensor(Tensor(a!) self, Tensor other) -> (Tensor(a!)) +- aten::narrow(Tensor(a) self, int dim, int start, int length) -> (Tensor(a)) +- aten::narrow.Tensor(Tensor(a) self, int dim, Tensor start, int length) -> (Tensor(a)) +- aten::ne.Scalar(Tensor self, Scalar other) -> (Tensor) +- aten::ne.Tensor(Tensor self, Tensor other) -> (Tensor) +- aten::neg(Tensor self) -> (Tensor) +- aten::norm.ScalarOpt_dim(Tensor self, Scalar? p, int[1] dim, bool keepdim=False) -> (Tensor) +- aten::permute(Tensor(a) self, int[] dims) -> (Tensor(a)) +- aten::pixel_shuffle(Tensor self, int upscale_factor) -> (Tensor) +- aten::pow.Tensor_Scalar(Tensor self, Scalar exponent) -> (Tensor) +- aten::pow.Tensor_Tensor(Tensor self, Tensor exponent) -> (Tensor) +- aten::prelu(Tensor self, Tensor weight) -> (Tensor) +- aten::prod(Tensor self, *, int? dtype=None) -> (Tensor) +- aten::prod.dim_int(Tensor self, int dim, bool keepdim=False, *, int? dtype=None) -> (Tensor) +- aten::reciprocal(Tensor self) -> (Tensor) +- aten::reflection_pad1d(Tensor self, int[2] padding) -> (Tensor) +- aten::reflection_pad2d(Tensor self, int[4] padding) -> (Tensor) +- aten::relu(Tensor input) -> (Tensor) +- aten::relu_(Tensor(a!) self) -> (Tensor(a!)) +- aten::repeat(Tensor self, int[] repeats) -> (Tensor) +- aten::repeat_interleave.self_int(Tensor self, int repeats, int? dim=None, *, int? output_size=None) -> (Tensor) +- aten::replication_pad1d(Tensor self, int[2] padding) -> (Tensor) +- aten::replication_pad2d(Tensor self, int[4] padding) -> (Tensor) +- aten::replication_pad3d(Tensor self, int[6] padding) -> (Tensor) +- aten::reshape(Tensor self, int[] shape) -> (Tensor) +- aten::roll(Tensor self, int[1] shifts, int[1] dims=[]) -> (Tensor) +- aten::rsub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) +- aten::rsub.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +- aten::scatter.src(Tensor self, int dim, Tensor index, Tensor src) -> (Tensor) +- aten::scatter.value(Tensor self, int dim, Tensor index, Scalar value) -> (Tensor) +- aten::select.int(Tensor(a) self, int dim, int index) -> (Tensor(a)) +- aten::sigmoid(Tensor input) -> (Tensor) +- aten::sigmoid_(Tensor(a!) self) -> (Tensor(a!)) +- aten::sin(Tensor self) -> (Tensor) +- aten::sinh(Tensor self) -> (Tensor) +- aten::slice.Tensor(Tensor(a) self, int dim=0, int? start=None, int? end=None, int step=1) -> (Tensor(a)) +- aten::softmax.int(Tensor self, int dim, int? dtype=None) -> (Tensor) +- aten::split(Tensor self, int[] split_sizes, int dim=0) -> (Tensor[]) +- aten::split.Tensor(Tensor(a) self, int split_size, int dim=0) -> (Tensor[]) +- aten::split.sizes(Tensor(a -> *) self, int[] split_size, int dim=0) -> (Tensor[]) +- aten::split_with_sizes(Tensor(a) self, int[] split_sizes, int dim=0) -> (Tensor[]) +- aten::sqrt(Tensor self) -> (Tensor) +- aten::square(Tensor self) -> (Tensor) +- aten::squeeze.dim(Tensor(a) self, int dim) -> (Tensor(a)) +- aten::stack(Tensor[] tensors, int dim=0) -> (Tensor) +- aten::sub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) +- aten::sub.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +- aten::sub_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> (Tensor(a!)) +- aten::sum(Tensor self, *, int? dtype=None) -> (Tensor) +- aten::sum.dim_IntList(Tensor self, int[1] dim, bool keepdim=False, *, int? dtype=None) -> (Tensor) +- aten::t(Tensor self) -> (Tensor) +- aten::tan(Tensor self) -> (Tensor) +- aten::tanh(Tensor input) -> (Tensor) +- aten::tanh_(Tensor(a!) self) -> (Tensor(a!)) +- aten::to.device(Tensor(a) self, Device device, int dtype, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor(a)) +- aten::to.dtype(Tensor self, int dtype, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor) +- aten::to.other(Tensor self, Tensor other, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor) +- aten::to.prim_Device(Tensor(a) self, Device? device, int? dtype=None, bool non_blocking=False, bool copy=False) -> (Tensor(a|b)) +- aten::topk(Tensor self, int k, int dim=-1, bool largest=True, bool sorted=True) -> (Tensor values, Tensor indices) +- aten::transpose.int(Tensor(a) self, int dim0, int dim1) -> (Tensor(a)) +- aten::unbind.int(Tensor(a -> *) self, int dim=0) -> (Tensor[]) +- aten::unsqueeze(Tensor(a) self, int dim) -> (Tensor(a)) +- aten::upsample_bilinear2d(Tensor self, int[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> (Tensor) +- aten::upsample_bilinear2d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor) +- aten::upsample_linear1d(Tensor self, int[1] output_size, bool align_corners, float? scales=None) -> (Tensor) +- aten::upsample_linear1d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor) +- aten::upsample_nearest1d(Tensor self, int[1] output_size, float? scales=None) -> (Tensor) +- aten::upsample_nearest1d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor) +- aten::upsample_nearest2d(Tensor self, int[2] output_size, float? scales_h=None, float? scales_w=None) -> (Tensor) +- aten::upsample_nearest2d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor) +- aten::upsample_nearest3d(Tensor self, int[3] output_size, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> (Tensor) +- aten::upsample_nearest3d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor) +- aten::upsample_trilinear3d(Tensor self, int[3] output_size, bool align_corners, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> (Tensor) +- aten::upsample_trilinear3d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor) +- aten::view(Tensor(a) self, int[] size) -> (Tensor(a)) +- trt::const(Tensor self) -> (Tensor) + +Operators Currently Supported Through Evaluators +------------------------------------------------- + +- aten::Bool.float(float b) -> (bool) +- aten::Bool.int(int a) -> (bool) +- aten::Float.Scalar(Scalar a) -> float +- aten::Float.bool(bool a) -> float +- aten::Float.int(int a) -> float +- aten::Int.Scalar(Scalar a) -> int +- aten::Int.bool(bool a) -> int +- aten::Int.float(float a) -> int +- aten::Int.int(int a) -> int +- aten::__and__(int a, int b) -> (bool) +- aten::__and__.bool(bool a, bool b) -> (bool) +- aten::__derive_index(int idx, int start, int step) -> int +- aten::__getitem__.t(t[](a) list, int idx) -> (t(*)) +- aten::__is__(t1 self, t2 obj) -> bool +- aten::__isnot__(t1 self, t2 obj) -> bool +- aten::__not__(bool self) -> bool +- aten::__or__(int a, int b) -> (bool) +- aten::__range_length(int lo, int hi, int step) -> int +- aten::__round_to_zero_floordiv(int a, int b) -> (int) +- aten::__xor__(int a, int b) -> (bool) +- aten::add.float(float a, float b) -> (float) +- aten::add.int(int a, int b) -> (int) +- aten::add.str(str a, str b) -> (str) +- aten::add_.t(t[](a!) self, t[] b) -> (t[]) +- aten::append.t(t[](a!) self, t(c -> *) el) -> (t[](a!)) +- aten::arange(Scalar end, *, int? dtype=None, int? layout=None, + Device? device=None, bool? pin_memory=None) -> (Tensor) +- aten::arange.start(Scalar start, Scalar end, *, ScalarType? dtype=None, + Layout? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor) +- aten::arange.start_step(Scalar start, Scalar end, Scalar step, *, ScalarType? dtype=None, + Layout? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor) +- aten::clone(Tensor self, *, int? memory_format=None) -> (Tensor) +- aten::copy_(Tensor(a!) self, Tensor src, bool non_blocking=False) -> (Tensor(a!)) +- aten::dim(Tensor self) -> int +- aten::div.float(float a, float b) -> (float) +- aten::div.int(int a, int b) -> (float) +- aten::eq.bool(bool a, bool b) -> (bool) +- aten::eq.float(float a, float b) -> (bool) +- aten::eq.float_int(float a, int b) -> (bool) +- aten::eq.int(int a, int b) -> (bool) +- aten::eq.int_float(int a, float b) -> (bool) +- aten::eq.str(str a, str b) -> (bool) +- aten::extend.t(t[](a!) self, t[] other) -> () +- aten::floor.float(float a) -> (int) +- aten::floor.int(int a) -> (int) +- aten::floordiv.float(float a, float b) -> (int) +- aten::floordiv.int(int a, int b) -> (int) +- aten::format(str self, ...) -> (str) +- aten::ge.bool(bool a, bool b) -> (bool) +- aten::ge.float(float a, float b) -> (bool) +- aten::ge.float_int(float a, int b) -> (bool) +- aten::ge.int(int a, int b) -> (bool) +- aten::ge.int_float(int a, float b) -> (bool) +- aten::gt.bool(bool a, bool b) -> (bool) +- aten::gt.float(float a, float b) -> (bool) +- aten::gt.float_int(float a, int b) -> (bool) +- aten::gt.int(int a, int b) -> (bool) +- aten::gt.int_float(int a, float b) -> (bool) +- aten::is_floating_point(Tensor self) -> (bool) +- aten::le.bool(bool a, bool b) -> (bool) +- aten::le.float(float a, float b) -> (bool) +- aten::le.float_int(float a, int b) -> (bool) +- aten::le.int(int a, int b) -> (bool) +- aten::le.int_float(int a, float b) -> (bool) +- aten::len.t(t[] a) -> (int) +- aten::lt.bool(bool a, bool b) -> (bool) +- aten::lt.float(float a, float b) -> (bool) +- aten::lt.float_int(float a, int b) -> (bool) +- aten::lt.int(int a, int b) -> (bool) +- aten::lt.int_float(int a, float b) -> (bool) +- aten::mul.float(float a, float b) -> (float) +- aten::mul.int(int a, int b) -> (int) +- aten::ne.bool(bool a, bool b) -> (bool) +- aten::ne.float(float a, float b) -> (bool) +- aten::ne.float_int(float a, int b) -> (bool) +- aten::ne.int(int a, int b) -> (bool) +- aten::ne.int_float(int a, float b) -> (bool) +- aten::neg.int(int a) -> (int) +- aten::numel(Tensor self) -> int +- aten::pow.float(float a, float b) -> (float) +- aten::pow.float_int(float a, int b) -> (float) +- aten::pow.int(int a, int b) -> (float) +- aten::pow.int_float(int a, float b) -> (float) +- aten::size(Tensor self) -> (int[]) +- aten::size.int(Tensor self, int dim) -> (int) +- aten::slice.t(t[] l, int start, int end=9223372036854775807, int step=1) -> (t[]) +- aten::sqrt.float(float a) -> (float) +- aten::sqrt.int(int a) -> (float) +- aten::sub.float(float a, float b) -> (float) +- aten::sub.int(int a, int b) -> (int) +- aten::tensor(t[] data, *, int? dtype=None, Device? device=None, bool requires_grad=False) -> (Tensor) +- prim::TupleIndex(Any tup, int i) -> (Any) +- prim::dtype(Tensor a) -> (int) +- prim::max.bool(bool a, bool b) -> (bool) +- prim::max.float(float a, float b) -> (bool) +- prim::max.float_int(float a, int b) -> (bool) +- prim::max.int(int a, int b) -> (bool) +- prim::max.int_float(int a, float b) -> (bool) +- prim::max.self_int(int[] self) -> (int) +- prim::min.bool(bool a, bool b) -> (bool) +- prim::min.float(float a, float b) -> (bool) +- prim::min.float_int(float a, int b) -> (bool) +- prim::min.int(int a, int b) -> (bool) +- prim::min.int_float(int a, float b) -> (bool) +- prim::min.self_int(int[] self) -> (int) +- prim::shape(Tensor a) -> (int[]) diff --git a/docs/v1.2.0/_sources/py_api/fx.rst.txt b/docs/v1.2.0/_sources/py_api/fx.rst.txt new file mode 100644 index 0000000000..8ce591f5ee --- /dev/null +++ b/docs/v1.2.0/_sources/py_api/fx.rst.txt @@ -0,0 +1,31 @@ +.. _torch_tensorrt_fx_py: + +torch_tensorrt.fx +=================== + +.. currentmodule:: torch_tensorrt.fx + +.. automodule torch_tensorrt.ts + :undoc-members: + +.. automodule:: torch_tensorrt.fx + :members: + :undoc-members: + :show-inheritance: + +Functions +------------ + +.. autofunction:: compile + + +Classes +-------- + +.. autoclass:: TRTModule + +.. autoclass:: InputTensorSpec + +.. autoclass:: TRTInterpreter + +.. autoclass:: TRTInterpreterResult \ No newline at end of file diff --git a/docs/v1.2.0/_sources/py_api/logging.rst.txt b/docs/v1.2.0/_sources/py_api/logging.rst.txt new file mode 100644 index 0000000000..7918fe7f86 --- /dev/null +++ b/docs/v1.2.0/_sources/py_api/logging.rst.txt @@ -0,0 +1,13 @@ +.. _torch_tensorrt_logging_py: + +torch_tensorrt.logging +---------------------- + +.. currentmodule:: torch_tensorrt.logging + +.. automodule:: torch_tensorrt.logging + :members: + :undoc-members: + :show-inheritance: + +.. autoclass:: py torch_tensorrt.logging.Level diff --git a/docs/v1.2.0/_sources/py_api/ptq.rst.txt b/docs/v1.2.0/_sources/py_api/ptq.rst.txt new file mode 100644 index 0000000000..ec83662efb --- /dev/null +++ b/docs/v1.2.0/_sources/py_api/ptq.rst.txt @@ -0,0 +1,27 @@ +.. _torch_tensorrt_ptq_py: + +torch_tensorrt.ptq +=================== + +.. currentmodule:: torch_tensorrt.ptq + +.. automodule:: torch_tensorrt.ptq + :members: + :undoc-members: + :show-inheritance: + +Classes +--------- + +.. autoclass:: DataLoaderCalibrator + :members: + :special-members: __init__ + +.. autoclass:: CacheCalibrator + :members: + :special-members: __init__ + +Enums +------- + +.. autoclass:: CalibrationAlgo diff --git a/docs/v1.2.0/_sources/py_api/torch_tensorrt.rst.txt b/docs/v1.2.0/_sources/py_api/torch_tensorrt.rst.txt new file mode 100644 index 0000000000..2ccf7c60e2 --- /dev/null +++ b/docs/v1.2.0/_sources/py_api/torch_tensorrt.rst.txt @@ -0,0 +1,60 @@ +.. _torch_tensorrt_py: + +torch_tensorrt +=============== + +.. automodule torch_tensorrt + :undoc-members: + + + +.. automodule:: torch_tensorrt + :members: + :undoc-members: + :show-inheritance: + +Functions +------------ + +.. autofunction:: set_device + +.. autofunction:: compile + +.. autofunction:: convert_method_to_trt_engine + +.. autofunction:: get_build_info + +.. autofunction:: dump_build_info + +Classes +--------- + +.. autoclass:: Input + :members: + :special-members: __init__ + +.. autoclass:: Device + :members: + :special-members: __init__ + +Enums +------- + +.. autoclass:: dtype + +.. autoclass:: DeviceType + +.. autoclass:: EngineCapability + +.. autoclass:: TensorFormat + +Submodules +---------- + +.. toctree:: + :maxdepth: 1 + + logging + ptq + ts + fx diff --git a/docs/v1.2.0/_sources/py_api/ts.rst.txt b/docs/v1.2.0/_sources/py_api/ts.rst.txt new file mode 100644 index 0000000000..45f6418eb7 --- /dev/null +++ b/docs/v1.2.0/_sources/py_api/ts.rst.txt @@ -0,0 +1,27 @@ +.. _torch_tensorrt_ts_py: + +torch_tensorrt.ts +=================== + +.. currentmodule:: torch_tensorrt.ts + +.. automodule torch_tensorrt.ts + :undoc-members: + +.. automodule:: torch_tensorrt.ts + :members: + :undoc-members: + :show-inheritance: + +Functions +------------ + +.. autofunction:: compile + +.. autofunction:: convert_method_to_trt_engine + +.. autofunction:: check_method_op_support + +.. autofunction:: embed_engine_in_new_module + +.. autofunction:: TensorRTCompileSpec diff --git a/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/changelog.rst.txt b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/changelog.rst.txt new file mode 100644 index 0000000000..d1ad81a0df --- /dev/null +++ b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/changelog.rst.txt @@ -0,0 +1,6 @@ + +********* +Changelog +********* + +v0.0.1 diff --git a/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/configuring.rst.txt b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/configuring.rst.txt new file mode 100644 index 0000000000..3afcb7bc62 --- /dev/null +++ b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/configuring.rst.txt @@ -0,0 +1,108 @@ + +************* +Configuration +************* + +You can configure different parts of the theme. + +Project-wide Configuration +========================== + +HTML Theme Options +------------------ + +The theme's project-wide options are defined in the ``pytorch_sphinx_theme/theme.conf`` +file of this repository, and can be defined in your project's ``conf.py`` via +``html_theme_options``. For example: + +.. code:: python + + html_theme_options = { + 'canonical_url': '', + 'analytics_id': '', + 'logo_only': False, + 'display_version': True, + 'prev_next_buttons_location': 'bottom', + 'style_external_links': False, + 'vcs_pageview_mode': '', + # Toc options + 'collapse_navigation': True, + 'sticky_navigation': True, + 'navigation_depth': 4, + 'includehidden': True, + 'titles_only': False + } + +The following options are available: + +Base options +~~~~~~~~~~~~ + +* ``canonical_url`` String. This will specify a `canonical url `__ + to let search engines know they should give higher ranking to latest version of the docs. + The url points to the root of the documentation and requires a trailing slash. +* ``analytics_id`` String. Change the Google Analytics ID that is included on pages. +* ``display_version`` Bool. With this disabled, the version number isn't shown at the top of the sidebar. +* ``prev_next_buttons_location`` String. can take the value ``bottom``, ``top``, ``both`` , or ``None`` + and will display the "Next" and "Previous" buttons accordingly. +* ``style_external_links`` Bool. Add an icon next to external links. Defaults to ``False``. +* ``vcs_pageview_mode`` String. Changes how to view files when using `display_github`, `display_gitlab`, etc. + When using Github or Gitlab this can be: `blob` (default), `edit`, or `raw`, + on Bitbucket, this can be either: `view` (default) or `edit`. + +TOC Options +~~~~~~~~~~~ + +These effect how we display the Table of Contents in the side bar. You can read more about them here: http://www.sphinx-doc.org/en/stable/templating.html#toctree + +* ``collapse_navigation`` Bool. With this enabled, you will lose the ``[+]`` drop downs next to each section in the sidebar. +* ``sticky_navigation`` Bool. This causes the sidebar to scroll with the main page content as you scroll the page. +* ``navigation_depth`` Int. Indicate the max depth of the tree; by default, 4 levels are included; + set it to -1 to allow unlimited depth. +* ``includehidden`` Bool. Specifies if the sidebar includes toctrees marked with the ``:hidden:`` option +* ``titles_only`` Bool. If True, removes headers within a page from the sidebar. + +.. note:: + + Setting ``collapse_navigation`` to False and using a high ``navigation_depth`` + can cause projects with many files and a deep file structure to generate HTML files + that are significantly larger in file size and much longer compilation times. + + +HTML Context Options +-------------------- + +TODO. + + +Page-level Configuration +======================== + +Pages support metadata that changes how the theme renders. +You can currently add the following: + +* ``:github_url:`` This will force the "Edit on GitHub" to the configured URL +* ``:bitbucket_url:`` This will force the "Edit on Bitbucket" to the configured URL +* ``:gitlab_url:`` This will force the "Edit on GitLab" to the configured URL + + +How the Table of Contents builds +================================ + +Currently the left menu will build based upon any ``toctree(s)`` defined in your ``index.rst`` file. +It outputs 2 levels of depth, which should give your visitors a high level of access to your +docs. If no toctrees are set the theme reverts to sphinx's usual local toctree. + +It's important to note that if you don't follow the same styling for your rST headers across +your documents, the toctree will misbuild, and the resulting menu might not show the correct +depth when it renders. + +Also note that by default the table of contents is set with ``includehidden=True``. This allows you +to set a hidden toc in your index file with the `:hidden: `_ property that will allow you +to build a toc without it rendering in your index. + +By default, the navigation will "stick" to the screen as you scroll. However if your toc +is vertically too large, it will revert to static positioning. To disable the sticky nav +altogether change the setting in ``conf.py``. + +.. _hidden: http://sphinx-doc.org/markup/toctree.html diff --git a/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/api.rst.txt b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/api.rst.txt new file mode 100644 index 0000000000..b49bc248ac --- /dev/null +++ b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/api.rst.txt @@ -0,0 +1,53 @@ + +********************* +:mod:`test_py_module` +********************* + +.. contents:: Table of Contents + +.. automodule:: test_py_module.test + :members: + :private-members: + :special-members: + +Generated Index +=============== + +Part of the sphinx build process in generate and index file: :ref:`genindex`. + + +Optional parameter args +======================= + +At this point optional parameters `cannot be generated from code`_. +However, some projects will manually do it, like so: + +This example comes from `django-payments module docs`_. + +.. class:: payments.dotpay.DotpayProvider(seller_id, pin[, channel=0[, lock=False], lang='pl']) + + This backend implements payments using a popular Polish gateway, `Dotpay.pl `_. + + Due to API limitations there is no support for transferring purchased items. + + + :param seller_id: Seller ID assigned by Dotpay + :param pin: PIN assigned by Dotpay + :param channel: Default payment channel (consult reference guide) + :param lang: UI language + :param lock: Whether to disable channels other than the default selected above + +.. _cannot be generated from code: https://groups.google.com/forum/#!topic/sphinx-users/_qfsVT5Vxpw +.. _django-payments module docs: http://django-payments.readthedocs.org/en/latest/modules.html#payments.authorizenet.AuthorizeNetProvide + + +Data +==== + +.. data:: Data_item_1 + Data_item_2 + Data_item_3 + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce congue elit eu hendrerit mattis. + +Some data link :data:`Data_item_1`. diff --git a/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/demo.rst.txt b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/demo.rst.txt new file mode 100644 index 0000000000..66f19cc899 --- /dev/null +++ b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/demo.rst.txt @@ -0,0 +1,475 @@ +.. This is a comment. Note how any initial comments are moved by + transforms to after the document title, subtitle, and docinfo. + +.. demo.rst from: http://docutils.sourceforge.net/docs/user/rst/demo.txt + +.. |EXAMPLE| image:: static/yi_jing_01_chien.jpg + :width: 1em + +********************** +Paragraph Level Markup +********************** + +.. contents:: Table of Contents + +Inline Markup +============= + +Paragraphs contain text and may contain inline markup: *emphasis*, **strong emphasis**, ``inline literals``, +standalone hyperlinks (http://www.python.org), external hyperlinks (Python_), internal cross-references (example_), +external hyperlinks with embedded URIs (`Python web site `__), footnote references +(manually numbered [1]_, anonymous auto-numbered [#]_, labeled auto-numbered [#label]_, or symbolic [*]_), +citation references ([12]_), substitution references (|example|), and _`inline hyperlink targets` +(see Targets_ below for a reference back to here). Character-level inline markup is also possible +(although exceedingly ugly!) in *re*\ ``Structured``\ *Text*. Problems are indicated by |problematic| +text (generated by processing errors; this one is intentional). + +Also with ``sphinx.ext.autodoc``, which I use in the demo, I can link to :class:`test_py_module.test.Foo`. +It will link you right my code documentation for it. + +The default role for interpreted text is `Title Reference`. Here are some explicit interpreted text roles: +a PEP reference (:PEP:`287`); an RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`; +and explicit roles for :emphasis:`standard` :strong:`inline` :literal:`markup`. + +GUI labels are a useful way to indicate that :guilabel:`Some action` is to be taken by the user. +The GUI label should not run over ``line-height`` so as not to :guilabel:`interfere` with text from adjacent lines. + +Key-bindings indicate that the read is to press a button on the keyboard or mouse, +for example :kbd:`MMB` and :kbd:`Shift-MMB`. Another useful markup to indicate a user action +is to use ``menuselection`` this can be used to show short and long menus in software. +For example, and ``menuselection`` can be seen here that breaks is too long to fit on this line. +:menuselection:`My --> Software --> Some menu --> Some sub menu 1 --> sub menu 2`. + +.. DO NOT RE-WRAP THE FOLLOWING PARAGRAPH! + +Let's test wrapping and whitespace significance in inline literals: +``This is an example of --inline-literal --text, --including some-- +strangely--hyphenated-words. Adjust-the-width-of-your-browser-window +to see how the text is wrapped. -- ---- -------- Now note the +spacing between the words of this sentence (words +should be grouped in pairs).`` + +If the ``--pep-references`` option was supplied, there should be a live link to PEP 258 here. + +Math +==== + +This is a test. Here is an equation: +:math:`X_{0:5} = (X_0, X_1, X_2, X_3, X_4)`. +Here is another: + +.. math:: + :label: This is a label + + \nabla^2 f = + \frac{1}{r^2} \frac{\partial}{\partial r} + \left( r^2 \frac{\partial f}{\partial r} \right) + + \frac{1}{r^2 \sin \theta} \frac{\partial f}{\partial \theta} + \left( \sin \theta \, \frac{\partial f}{\partial \theta} \right) + + \frac{1}{r^2 \sin^2\theta} \frac{\partial^2 f}{\partial \phi^2} + +You can add a link to equations like the one above :eq:`This is a label` by using ``:eq:``. + +Meta +==== + +.. meta:: + :keywords: reStructuredText, demonstration, demo, parser + :description lang=en: A demonstration of the reStructuredText + markup language, containing examples of all basic + constructs and many advanced constructs. + +Blocks +====== + +Literal Blocks +-------------- + +Literal blocks are indicated with a double-colon ("::") at the end of +the preceding paragraph (over there ``-->``). They can be indented:: + + if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None + +Or they can be quoted without indentation:: + +>> Great idea! +> +> Why didn't I think of that? + +Line Blocks +----------- + +| This is a line block. It ends with a blank line. +| Each new line begins with a vertical bar ("|"). +| Line breaks and initial indents are preserved. +| Continuation lines are wrapped portions of long lines; + they begin with a space in place of the vertical bar. +| The left edge of a continuation line need not be aligned with + the left edge of the text above it. + +| This is a second line block. +| +| Blank lines are permitted internally, but they must begin with a "|". + +Take it away, Eric the Orchestra Leader! + + | A one, two, a one two three four + | + | Half a bee, philosophically, + | must, *ipso facto*, half not be. + | But half the bee has got to be, + | *vis a vis* its entity. D'you see? + | + | But can a bee be said to be + | or not to be an entire bee, + | when half the bee is not a bee, + | due to some ancient injury? + | + | Singing... + +Block Quotes +------------ + +Block quotes consist of indented body elements: + + My theory by A. Elk. Brackets Miss, brackets. This theory goes + as follows and begins now. All brontosauruses are thin at one + end, much much thicker in the middle and then thin again at the + far end. That is my theory, it is mine, and belongs to me and I + own it, and what it is too. + + -- Anne Elk (Miss) + +Doctest Blocks +-------------- + +>>> print 'Python-specific usage examples; begun with ">>>"' +Python-specific usage examples; begun with ">>>" +>>> print '(cut and pasted from interactive Python sessions)' +(cut and pasted from interactive Python sessions) + +Code Blocks +----------- + +.. parsed-literal:: + + # parsed-literal test + curl -O http://someurl/release-|version|.tar-gz + + +.. code-block:: json + :caption: Code Blocks can have captions. + + { + "windows": [ + { + "panes": [ + { + "shell_command": [ + "echo 'did you know'", + "echo 'you can inline'" + ] + }, + { + "shell_command": "echo 'single commands'" + }, + "echo 'for panes'" + ], + "window_name": "long form" + } + ], + "session_name": "shorthands" + } + +Emphasized lines with line numbers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: python + :linenos: + :emphasize-lines: 3,5 + + def some_function(): + interesting = False + print 'This line is highlighted.' + print 'This one is not...' + print '...but this one is.' + +Sidebar +======= + +.. sidebar:: Ch'ien / The Creative + + .. image:: static/yi_jing_01_chien.jpg + + *Above* CH'IEN THE CREATIVE, HEAVEN + + *Below* CH'IEN THE CREATIVE, HEAVEN + +The first hexagram is made up of six unbroken lines. These unbroken lines stand for the primal power, +which is light-giving, active, strong, and of the spirit. The hexagram is consistently strong in character, +and since it is without weakness, its essence is power or energy. Its image is heaven. +Its energy is represented as unrestricted by any fixed conditions in space and is therefore conceived of as motion. +Time is regarded as the basis of this motion. +Thus the hexagram includes also the power of time and the power of persisting in time, that is, duration. + +The power represented by the hexagram is to be interpreted in a dual sense in terms of its action +on the universe and of its action on the world of men. In relation to the universe, the hexagram expresses the strong, +creative action of the Deity. In relation to the human world, it denotes the creative action of the holy man or sage, +of the ruler or leader of men, who through his power awakens and develops their higher nature. + +Code with Sidebar +----------------- + +.. sidebar:: A code example + + With a sidebar on the right. + +.. literalinclude:: test_py_module/test.py + :language: python + :caption: Literal includes can also have captions. + :linenos: + :lines: 1-40 + +References +========== + +Footnotes +--------- + +.. [1] A footnote contains body elements, consistently indented by at + least 3 spaces. + + This is the footnote's second paragraph. + +.. [#label] Footnotes may be numbered, either manually (as in [1]_) or + automatically using a "#"-prefixed label. This footnote has a + label so it can be referred to from multiple places, both as a + footnote reference ([#label]_) and as a hyperlink reference + (label_). + +.. [#] This footnote is numbered automatically and anonymously using a + label of "#" only. + +.. [*] Footnotes may also use symbols, specified with a "*" label. + Here's a reference to the next footnote: [*]_. + +.. [*] This footnote shows the next symbol in the sequence. + +.. [4] Here's an unreferenced footnote, with a reference to a + nonexistent footnote: [5]_. + +Citations +--------- + +.. [11] This is the citation I made, let's make this extremely long so that we can tell that it doesn't follow the normal responsive table stuff. + +.. [12] This citation has some ``code blocks`` in it, maybe some **bold** and + *italics* too. Heck, lets put a link to a meta citation [13]_ too. + +.. [13] This citation will have two backlinks. + + +Here's a reference to the above, [12]_, and a [nonexistent]_ citation. + +Here is another type of citation: `citation` + +Glossary +-------- + +This is a glossary with definition terms for thing like :term:`Writing`: + +.. glossary:: + + Documentation + Provides users with the knowledge they need to use something. + + Reading + The process of taking information into ones mind through the use of eyes. + + Writing + The process of putting thoughts into a medium for other people to :term:`read `. + +Targets +------- + +.. _example: + +This paragraph is pointed to by the explicit "example" target. +A reference can be found under `Inline Markup`_, above. `Inline +hyperlink targets`_ are also possible. + +Section headers are implicit targets, referred to by name. See +Targets_, which is a subsection of `Body Elements`_. + +Explicit external targets are interpolated into references such as "Python_". + +.. _Python: http://www.python.org/ + +Targets may be indirect and anonymous. Thus `this phrase`__ may also +refer to the Targets_ section. + +__ Targets_ + +Here's a `hyperlink reference without a target`_, which generates an error. + + +Directives +========== + +Contents +-------- + +.. contents:: :local: + +These are just a sample of the many reStructuredText Directives. For others, please see: +http://docutils.sourceforge.net/docs/ref/rst/directives.html. + + +Centered text +------------- + +You can create a statement with centered text with ``.. centered::`` + +.. centered:: This is centered text! + +Images & Figures +---------------- + +Images +^^^^^^ + +An image directive (also clickable -- a hyperlink reference): + +.. image:: static/yi_jing_01_chien.jpg + :target: directives_ + +Figures +^^^^^^^ + +.. figure:: static/yi_jing_01_chien.jpg + :alt: reStructuredText, the markup syntax + + A figure is an image with a caption and/or a legend: + + +------------+-----------------------------------------------+ + | re | Revised, revisited, based on 're' module. | + +------------+-----------------------------------------------+ + | Structured | Structure-enhanced text, structuredtext. | + +------------+-----------------------------------------------+ + | Text | Well it is, isn't it? | + +------------+-----------------------------------------------+ + + This paragraph is also part of the legend. + +A figure directive with center alignment + +.. figure:: static/yi_jing_01_chien.jpg + :align: center + + This caption should be centered. + +Admonitions +----------- + +.. Attention:: Directives at large. + +.. Caution:: Don't take any wooden nickels. + +.. DANGER:: Mad scientist at work! + +.. Error:: Does not compute. + +.. Hint:: It's bigger than a bread box. + +.. Important:: + - Wash behind your ears. + - Clean up your room. + + - Including the closet. + - The bathroom too. + + - Take the trash out of the bathroom. + - Clean the sink. + - Call your mother. + - Back up your data. + +.. Note:: This is a note. + Equations within a note: + :math:`G_{\mu\nu} = 8 \pi G (T_{\mu\nu} + \rho_\Lambda g_{\mu\nu})`. + +.. Tip:: 15% if the service is good. + + +---------+ + | Example | + +=========+ + | Thing1 | + +---------+ + | Thing2 | + +---------+ + | Thing3 | + +---------+ + +.. WARNING:: Strong prose may provoke extreme mental exertion. + Reader discretion is strongly advised. + +.. admonition:: And, by the way... + + You can make up your own admonition too. + +Topics, Sidebars, and Rubrics +----------------------------- + +.. sidebar:: Sidebar Title + :subtitle: Optional Subtitle + + This is a sidebar. It is for text outside the flow of the main + text. + + .. rubric:: This is a rubric inside a sidebar + + Sidebars often appears beside the main text with a border and + background color. + +.. topic:: Topic Title + + This is a topic. + +.. rubric:: This is a rubric + +Target Footnotes +---------------- + +.. target-notes:: + +Replacement Text +---------------- + +I recommend you try |Python|_. + +.. |Python| replace:: Python, *the* best language around + +Compound Paragraph +------------------ + +.. compound:: + + This paragraph contains a literal block:: + + Connecting... OK + Transmitting data... OK + Disconnecting... OK + + and thus consists of a simple paragraph, a literal block, and + another simple paragraph. Nonetheless it is semantically *one* + paragraph. + +This construct is called a *compound paragraph* and can be produced +with the "compound" directive. + +Download Links +============== + +:download:`This long long long long long long long long long long long long long long long download link should be blue, normal weight text with a leading icon, and should wrap white-spaces ` diff --git a/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/lists_tables.rst.txt b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/lists_tables.rst.txt new file mode 100644 index 0000000000..a31d213924 --- /dev/null +++ b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/lists_tables.rst.txt @@ -0,0 +1,302 @@ + +************** +Lists & Tables +************** + +.. contents:: Table of Contents + +Lists +===== + +Enumerated Lists +---------------- + +1. Arabic numerals. + + a) lower alpha) + + (i) (lower roman) + + A. upper alpha. + + I) upper roman) + +2. Lists that don't start at 1: + + 3. Three + + 4. Four + + C. C + + D. D + + iii. iii + + iv. iv + +#. List items may also be auto-enumerated. + +Definition Lists +---------------- + +Term + Definition +Term : classifier + Definition paragraph 1. + + Definition paragraph 2. +Term + Definition + + +Option Lists +------------ + +For listing command-line options: + +-a command-line option "a" +-b file options can have arguments + and long descriptions +--long options can be long also +--input=file long options can also have + arguments + +--very-long-option + The description can also start on the next line. + + The description may contain multiple body elements, + regardless of where it starts. + +-x, -y, -z Multiple options are an "option group". +-v, --verbose Commonly-seen: short & long options. +-1 file, --one=file, --two file + Multiple options with arguments. +/V DOS/VMS-style options too + +There must be at least two spaces between the option and the description. + +Field list +---------- + +.. bibliographic fields (which also require a transform): + +:Author: David Goodger +:Address: 123 Example Street + Example, EX Canada + A1B 2C3 +:Contact: docutils-develop@lists.sourceforge.net +:Authors: Me; Myself; I +:organization: humankind +:date: $Date: 2012-01-03 19:23:53 +0000 (Tue, 03 Jan 2012) $ +:status: This is a "work in progress" +:revision: $Revision: 7302 $ +:version: 1 +:copyright: This document has been placed in the public domain. You + may do with it as you wish. You may copy, modify, + redistribute, reattribute, sell, buy, rent, lease, + destroy, or improve it, quote it at length, excerpt, + incorporate, collate, fold, staple, or mutilate it, or do + anything else to it that your or anyone else's heart + desires. +:field name: This is a generic bibliographic field. +:field name 2: + Generic bibliographic fields may contain multiple body elements. + + Like this. + +:Dedication: + + For Docutils users & co-developers. + +:abstract: + + This document is a demonstration of the reStructuredText markup + language, containing examples of all basic reStructuredText + constructs and many advanced constructs. + +Bullet Lists +------------ + +- A bullet list + + + Nested bullet list. + + Nested item 2. + +- Item 2. + + Paragraph 2 of item 2. + + * Nested bullet list. + * Nested item 2. + + - Third level. + - Item 2. + + * Nested item 3. + +- ``inline literall`` +- ``inline literall`` +- ``inline literall`` + +Second list level +^^^^^^^^^^^^^^^^^ + +- here is a list in a second-level section. +- `yahoo `_ +- `yahoo `_ + + - `yahoo `_ + - here is an inner bullet ``oh`` + + - one more ``with an inline literally``. `yahoo `_ + + heh heh. child. try to beat this embed: + + .. literalinclude:: test_py_module/test.py + :language: python + :linenos: + :lines: 1-10 + - and another. `yahoo `_ + - `yahoo `_ + - ``hi`` +- and hehe + +But deeper down the rabbit hole +""""""""""""""""""""""""""""""" + +- I kept saying that, "deeper down the rabbit hole". `yahoo `_ + + - I cackle at night `yahoo `_. +- I'm so lonely here in GZ ``guangzhou`` +- A man of python destiny, hopes and dreams. `yahoo `_ + + - `yahoo `_ + + - `yahoo `_ ``hi`` + - ``destiny`` + +Hlists +------ + +.. hlist:: + :columns: 2 + + - First item + - Second item + - Third item + - Forth item + - Fifth item + - Sixths item + +.. rubric:: Hlist with images + +.. hlist:: + :columns: 2 + + - .. figure:: static/yi_jing_01_chien.jpg + + This is a short caption for a figure. + + - .. figure:: static/yi_jing_01_chien.jpg + + This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non. + +Numbered List +------------- + +#. One, +#. Two. +#. Three with long text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Sed feugiat sagittis neque quis eleifend. Duis rutrum lectus sit amet mattis suscipit. + +- A) Using bullets and letters. (A) +- B) Using bullets and letters. (B) +- C) Using bullets and letters. (C) + +Tables +====== + +Grid Tables +----------- + +Here's a grid table followed by a simple table: + ++------------------------+------------+----------+----------+ +| Header row, column 1 | Header 2 | Header 3 | Header 4 | +| (header rows optional) | | | | ++========================+============+==========+==========+ +| body row 1, column 1 | column 2 | column 3 | column 4 | ++------------------------+------------+----------+----------+ +| body row 2 | Cells may span columns. | ++------------------------+------------+---------------------+ +| body row 3 | Cells may | - Table cells | ++------------------------+ span rows. | - contain | +| body row 4 | | - body elements. | ++------------------------+------------+----------+----------+ +| body row 5 | Cells may also be | | +| | empty: ``-->`` | | ++------------------------+-----------------------+----------+ + +===== ===== ====== + Inputs Output +------------ ------ + A B A or B +===== ===== ====== +False False False +True False True +False True True +True True True +===== ===== ====== + +Giant Tables +^^^^^^^^^^^^ + ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | ++============+============+===========+============+============+===========+============+============+===========+============+============+===========+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ + +List Tables +----------- + +.. list-table:: List tables can have captions like this one. + :widths: 10 5 10 50 + :header-rows: 1 + :stub-columns: 1 + + * - List table + - Header 1 + - Header 2 + - Header 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + * - Stub Row 1 + - Row 1 + - Column 2 + - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + * - Stub Row 2 + - Row 2 + - Column 2 + - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + * - Stub Row 3 + - Row 3 + - Column 2 + - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + +.. list-table:: This is a list table with images in it. + + * - .. figure:: static/yi_jing_01_chien.jpg + + This is a short caption for a figure. + + - .. figure:: static/yi_jing_01_chien.jpg + + This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non. diff --git a/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/long.rst.txt b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/long.rst.txt new file mode 100644 index 0000000000..26b1add9d1 --- /dev/null +++ b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/long.rst.txt @@ -0,0 +1,214 @@ + +*************** +Long Sticky Nav +*************** + +.. contents:: Table of Contents + +This section demonstrates how the 'sticky_navigation' setting behaves when the menu is very long. +When this section is selected, it will make the menu and the main area scroll when you are at the top of the page. + + +Example Menu 1 +============== + +Just a place holder... + + +Example Menu 2 +============== + +Just a place holder... + + +Example Menu 3 +============== + +Just a place holder... + + +Example Menu 4 +============== + +Just a place holder... + + +Example Menu 5 +============== + +Just a place holder... + + +Example Menu 6 +============== + +Just a place holder... + + +Example Menu 7 +============== + +Just a place holder... + + +Example Menu 8 +============== + +Just a place holder... + + +Example Menu 9 +============== + +Just a place holder... + + +Example Menu 10 +=============== + +Just a place holder... + + +Example Menu 11 +=============== + +Just a place holder... + + +Example Menu 12 +=============== + +Just a place holder... + + +Example Menu 13 +=============== + +Just a place holder... + + +Example Menu 14 +=============== + +Just a place holder... + + +Example Menu 15 +=============== + +Just a place holder... + + +Example Menu 16 +=============== + +Just a place holder... + + +Example Menu 17 +=============== + +Just a place holder... + + +Example Menu 18 +=============== + +Just a place holder... + + +Example Menu 19 +=============== + +Just a place holder... + + +Example Menu 20 +=============== + +Just a place holder... + +Example Submenu 1 +================= + +Just a place holder... + +Submenu 1 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Subsubmenu 2 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 2 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 3 +--------- + +Just a place holder... + +Submenu 4 +--------- + +Just a place holder... + +Submenu 5 +--------- + +Just a place holder... + +Example Submenu 2 +================= + +Just a place holder... + +Submenu 1 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 2 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 3 +--------- + +Just a place holder... + +Submenu 4 +--------- + +Just a place holder... + +Submenu 5 +--------- + +Just a place holder... diff --git a/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/structure.rst.txt b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/structure.rst.txt new file mode 100644 index 0000000000..d21fc96321 --- /dev/null +++ b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/demo/structure.rst.txt @@ -0,0 +1,101 @@ + +******************* +Structural Elements +******************* + +.. contents:: Table of Contents + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lorem neque, interdum in ipsum nec, +finibus dictum velit. Ut eu efficitur arcu, id aliquam erat. In sit amet diam gravida, imperdiet tellus eu, +gravida nisl. Praesent aliquet odio eget libero elementum, quis rhoncus tellus tincidunt. +Suspendisse quis volutpat ipsum. Sed lobortis scelerisque tristique. Aenean condimentum risus tellus, +quis accumsan ipsum laoreet ut. Integer porttitor maximus suscipit. Mauris in posuere sapien. +Aliquam accumsan feugiat ligula, nec fringilla libero commodo sed. Proin et erat pharetra. + +--------- + +Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis. + +Document Section +================ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec. + +Document Subsection +------------------- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. + +Document Subsubsection +^^^^^^^^^^^^^^^^^^^^^^ + +Donec non rutrum lorem. Aenean sagittis metus at pharetra fringilla. Nunc sapien dolor, cursus sed nisi at, +pretium tristique lectus. Sed pellentesque leo lectus, et convallis ipsum euismod a. +Integer at leo vitae felis pretium aliquam fringilla quis odio. Sed pharetra enim accumsan feugiat pretium. +Maecenas at pharetra tortor. Morbi semper eget mi vel finibus. Cras rutrum nulla eros, id feugiat arcu pellentesque ut. +Sed finibus tortor ac nisi ultrices viverra. Duis feugiat malesuada sapien, at commodo ante porttitor ac. +Curabitur posuere mauris mi, vel ornare orci scelerisque sit amet. Suspendisse nec fringilla dui. + +Document Paragraph +"""""""""""""""""" + +Pellentesque nec est in odio ultrices elementum. Vestibulum et hendrerit sapien, quis vulputate turpis. +Suspendisse potenti. Curabitur tristique sit amet lectus non viverra. Phasellus rutrum dapibus turpis sed imperdiet. +Mauris maximus viverra ante. Donec eu egestas mauris. Morbi vulputate tincidunt euismod. Integer vel porttitor neque. +Donec at lacus suscipit, lacinia lectus vel, sagittis lectus. + +********************* +Structural Elements 2 +********************* + +Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis. + +Document Section +================ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec. + +Document Subsection +------------------- + +.. figure:: static/yi_jing_01_chien.jpg + :align: right + :figwidth: 200px + + This is a caption for a figure. Text should wrap around the caption. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. Praesent congue sagittis nisl et suscipit. +Vivamus sagittis risus et egestas commodo.Cras venenatis arcu in pharetra interdum. +Donec quis metus porttitor tellus cursus lobortis. Quisque et orci magna. Fusce rhoncus mi mi, +at vehicula massa rhoncus quis. Mauris augue leo, pretium eget molestie vitae, efficitur nec nulla. +In hac habitasse platea dictumst. Sed sit amet imperdiet purus. diff --git a/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/index.rst.txt b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/index.rst.txt new file mode 100644 index 0000000000..ba42326fd7 --- /dev/null +++ b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/index.rst.txt @@ -0,0 +1,27 @@ +.. include:: ../README.rst + +.. toctree:: + :caption: Theme Documentation + :maxdepth: 2 + + installing + configuring + changelog + + +.. toctree:: + :maxdepth: 2 + :numbered: + :caption: Demo Documents + + demo/structure + demo/demo + demo/lists_tables + demo/api + +.. toctree:: + :maxdepth: 3 + :numbered: + :caption: This is an incredibly long caption for a long menu + + demo/long diff --git a/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/installing.rst.txt b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/installing.rst.txt new file mode 100644 index 0000000000..df406b999d --- /dev/null +++ b/docs/v1.2.0/_sources/src/pytorch-sphinx-theme/docs/installing.rst.txt @@ -0,0 +1,17 @@ + +************ +Installation +************ + +Via Git or Download +=================== + +Symlink or subtree the ``pytorch_sphinx_theme`` repository into your documentation at +``docs/_themes/pytorch_sphinx_theme`` then add the following two settings to your Sphinx +``conf.py`` file: + +.. code:: python + + html_theme = "pytorch_sphinx_theme" + html_theme_path = ["_themes", ] + diff --git a/docs/v1.2.0/_sources/tutorials/creating_torchscript_module_in_python.rst.txt b/docs/v1.2.0/_sources/tutorials/creating_torchscript_module_in_python.rst.txt new file mode 100644 index 0000000000..1d1cdba574 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/creating_torchscript_module_in_python.rst.txt @@ -0,0 +1,140 @@ +.. _creating_a_ts_mod: + +Creating a TorchScript Module +------------------------------ +TorchScript is a way to create serializable and optimizable models from PyTorch code. +PyTorch has detailed documentation on how to do this https://pytorch.org/tutorials/beginner/Intro_to_TorchScript_tutorial.html but briefly here is the +here is key background information and the process: + +PyTorch programs are based around ``Module`` s which can be used to compose higher level modules. ``Modules`` contain a constructor to set up the modules, parameters and sub-modules +and a forward function which describes how to use the parameters and submodules when the module is invoked. + +For example, we can define a LeNet module like this: + +.. code-block:: python + :linenos: + + import torch.nn as nn + import torch.nn.functional as F + + + class LeNetFeatExtractor(nn.Module): + def __init__(self): + super(LeNetFeatExtractor, self).__init__() + self.conv1 = nn.Conv2d(1, 6, 3) + self.conv2 = nn.Conv2d(6, 16, 3) + + def forward(self, x): + x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2)) + x = F.max_pool2d(F.relu(self.conv2(x)), 2) + return x + + + class LeNetClassifier(nn.Module): + def __init__(self): + super(LeNetClassifier, self).__init__() + self.fc1 = nn.Linear(16 * 6 * 6, 120) + self.fc2 = nn.Linear(120, 84) + self.fc3 = nn.Linear(84, 10) + + def forward(self, x): + x = torch.flatten(x, 1) + x = F.relu(self.fc1(x)) + x = F.relu(self.fc2(x)) + x = self.fc3(x) + return x + + + class LeNet(nn.Module): + def __init__(self): + super(LeNet, self).__init__() + self.feat = LeNetFeatExtractor() + self.classifer = LeNetClassifier() + + def forward(self, x): + x = self.feat(x) + x = self.classifer(x) + return x + +. + + Obviously you may want to consolidate such a simple model into a single module but we can see the composability of PyTorch here + +From here are two pathways for going from PyTorch Python code to TorchScript code: Tracing and Scripting. + +Tracing follows the path of execution when the module is called and records what happens. +To trace an instance of our LeNet module, we can call ``torch.jit.trace`` with an example input. + +.. code-block:: python + + import torch + + model = LeNet() + input_data = torch.empty([1, 1, 32, 32]) + traced_model = torch.jit.trace(model, input_data) + +Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing +is following the execution of your module, it cannot pick up control flow for instance. By working from the Python code, the compiler can +include these components. We can run the script compiler on our LeNet module by calling ``torch.jit.script`` + +.. code-block:: python + + import torch + + model = LeNet() + script_model = torch.jit.script(model) + +There are reasons to use one path or another, the PyTorch documentation has information on how to choose. From a Torch-TensorRT prespective, there is +better support (i.e your module is more likely to compile) for traced modules because it doesn't include all the complexities of a complete +programming language, though both paths supported. + +After scripting or tracing your module, you are given back a TorchScript Module. This contains the code and parameters used to run the module stored +in a intermediate representation that Torch-TensorRT can consume. + +Here is what the LeNet traced module IR looks like: + +.. code-block:: none + + graph(%self.1 : __torch__.___torch_mangle_10.LeNet, + %input.1 : Float(1, 1, 32, 32)): + %129 : __torch__.___torch_mangle_9.LeNetClassifier = prim::GetAttr[name="classifer"](%self.1) + %119 : __torch__.___torch_mangle_5.LeNetFeatExtractor = prim::GetAttr[name="feat"](%self.1) + %137 : Tensor = prim::CallMethod[name="forward"](%119, %input.1) + %138 : Tensor = prim::CallMethod[name="forward"](%129, %137) + return (%138) + +and the LeNet scripted module IR: + +.. code-block:: none + + graph(%self : __torch__.LeNet, + %x.1 : Tensor): + %2 : __torch__.LeNetFeatExtractor = prim::GetAttr[name="feat"](%self) + %x.3 : Tensor = prim::CallMethod[name="forward"](%2, %x.1) # x.py:38:12 + %5 : __torch__.LeNetClassifier = prim::GetAttr[name="classifer"](%self) + %x.5 : Tensor = prim::CallMethod[name="forward"](%5, %x.3) # x.py:39:12 + return (%x.5) + +You can see that the IR preserves the module structure we have in our python code. + +.. _ts_in_py: + +Working with TorchScript in Python +----------------------------------- + +TorchScript Modules are run the same way you run normal PyTorch modules. You can run the forward pass using the +``forward`` method or just calling the module ``torch_scirpt_module(in_tensor)`` The JIT compiler will compile +and optimize the module on the fly and then returns the results. + +Saving TorchScript Module to Disk +----------------------------------- + +For either traced or scripted modules, you can save the module to disk with the following command + +.. code-block:: python + + import torch + + model = LeNet() + script_model = torch.jit.script(model) + script_model.save("lenet_scripted.ts") diff --git a/docs/v1.2.0/_sources/tutorials/getting_started_with_cpp_api.rst.txt b/docs/v1.2.0/_sources/tutorials/getting_started_with_cpp_api.rst.txt new file mode 100644 index 0000000000..41b8a448c0 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/getting_started_with_cpp_api.rst.txt @@ -0,0 +1,338 @@ +.. _getting_started: + +Getting Started with C++ +======================== + +If you haven't already, acquire a tarball of the library by following the instructions in :ref:`Installation` + +Using Torch-TensorRT in C++ +*************************** +Torch-TensorRT C++ API accepts TorchScript modules (generated either from ``torch.jit.script`` or ``torch.jit.trace``) as an input and returns +a Torchscript module (optimized using TensorRT). This requires users to use Pytorch (in python) to generate torchscript modules beforehand. +Please refer to `Creating TorchScript modules in Python `_ section to generate torchscript graphs. + + +.. _torch_tensorrt_quickstart: + +[Torch-TensorRT Quickstart] Compiling TorchScript Modules with ``torchtrtc`` +--------------------------------------------------------------------------------- + +An easy way to get started with Torch-TensorRT and to check if your model can be supported without extra work is to run it through +``torchtrtc``, which supports almost all features of the compiler from the command line including post training quantization +(given a previously created calibration cache). For example we can compile our lenet model by setting our preferred operating +precision and input size. This new TorchScript file can be loaded into Python (note: you need to ``import torch_tensorrt`` before loading +these compiled modules because the compiler extends the PyTorch the deserializer and runtime to execute compiled modules). + +.. code-block:: shell + + ❯ torchtrtc -p f16 lenet_scripted.ts trt_lenet_scripted.ts "(1,1,32,32)" + + ❯ python3 + Python 3.6.9 (default, Apr 18 2020, 01:56:04) + [GCC 8.4.0] on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> import torch + >>> import torch_tensorrt + >>> ts_model = torch.jit.load(“trt_lenet_scripted.ts”) + >>> ts_model(torch.randn((1,1,32,32)).to(“cuda”).half()) + +You can learn more about ``torchtrtc`` usage here: :ref:`torchtrtc` + +.. _ts_in_cc: + +Working with TorchScript in C++ +-------------------------------- + +If we are developing an application to deploy with C++, we can save either our traced or scripted module using ``torch.jit.save`` +which will serialize the TorchScript code, weights and other information into a package. This is also where our dependency on Python ends. + +.. code-block:: python + + torch_script_module.save("lenet.jit.pt") + +From here we can now load our TorchScript module in C++ + +.. code-block:: c++ + + #include // One-stop header. + + #include + #include + + int main(int argc, const char* argv[]) { + torch::jit::Module module; + try { + // Deserialize the ScriptModule from a file using torch::jit::load(). + module = torch::jit::load(""); + } + catch (const c10::Error& e) { + std::cerr << "error loading the model\n"; + return -1; + } + + std::cout << "ok\n"; + + +You can do full training and inference in C++ with PyTorch / LibTorch if you would like, you can even define your modules in C++ and +have access to the same powerful tensor library that backs PyTorch. (For more information: https://pytorch.org/cppdocs/). +For instance we can do inference with our LeNet module like this: + +.. code-block:: c++ + + mod.eval(); + torch::Tensor in = torch::randn({1, 1, 32, 32}); + auto out = mod.forward(in); + +and to run on the GPU: + +.. code-block:: c++ + + mod.eval(); + mod.to(torch::kCUDA); + torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA); + auto out = mod.forward(in); + +As you can see it is pretty similar to the Python API. When you call the ``forward`` method, you invoke the PyTorch JIT compiler, which will optimize and run your TorchScript code. + +.. _compile_cpp: + +Compiling with Torch-TensorRT in C++ +------------------------------------- +We are also at the point were we can compile and optimize our module with Torch-TensorRT, but instead of in a JIT fashion we must do it ahead-of-time (AOT) i.e. before we start doing actual inference work +since it takes a bit of time to optimize the module, it would not make sense to do this every time you run the module or even the first time you run it. + +With our module loaded, we can feed it into the Torch-TensorRT compiler. When we do so we must provide some information on the expected input size and also configure any additional settings. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}); + auto trt_mod = torch_tensorrt::CompileGraph(mod, std::vector{{in.sizes()}}); + auto out = trt_mod.forward({in}); + +Thats it! Now the graph runs primarily not with the JIT compiler but using TensorRT (though we execute the graph using the JIT runtime). + +We can also set settings like operating precision to run in FP16. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF); + auto input_sizes = std::vector({in.sizes()}); + torch_tensorrt::CompileSpec info(input_sizes); + info.enable_precisions.insert(torch::kHALF); + auto trt_mod = torch_tensorrt::CompileGraph(mod, info); + auto out = trt_mod.forward({in}); + +And now we are running the module in FP16 precision. You can then save the module to load later. + +.. code-block:: c++ + + trt_mod.save("") + +Torch-TensorRT compiled TorchScript modules are loaded in the same way as normal TorchScript module. Make sure your deployment application is linked against ``libtorchtrt.so`` + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + + int main(int argc, const char* argv[]) { + torch::jit::Module module; + try { + // Deserialize the ScriptModule from a file using torch::jit::load(). + module = torch::jit::load(""); + } + catch (const c10::Error& e) { + std::cerr << "error loading the model\n"; + return -1; + } + + torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA); + auto out = mod.forward(in); + + std::cout << "ok\n"; + } + +If you want to save the engine produced by Torch-TensorRT to use in a TensorRT application you can use the ``ConvertGraphToTRTEngine`` API. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + ... + + mod.to(at::kCUDA); + mod.eval(); + + auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF); + auto input_sizes = std::vector({in.sizes()}); + torch_tensorrt::CompileSpec info(input_sizes); + info.enabled_precisions.insert(torch::kHALF); + auto trt_mod = torch_tensorrt::ConvertGraphToTRTEngine(mod, "forward", info); + std::ofstream out("/tmp/engine_converted_from_jit.trt"); + out << engine; + out.close(); + +.. _under_the_hood: + +Under The Hood +--------------- + +When a module is provided to Torch-TensorRT, the compiler starts by mapping a graph like you saw above to a graph like this: + +.. code-block:: none + + graph(%input.2 : Tensor): + %2 : Float(84, 10) = prim::Constant[value=]() + %3 : Float(120, 84) = prim::Constant[value=]() + %4 : Float(576, 120) = prim::Constant[value=]() + %5 : int = prim::Constant[value=-1]() # x.py:25:0 + %6 : int[] = prim::Constant[value=annotate(List[int], [])]() + %7 : int[] = prim::Constant[value=[2, 2]]() + %8 : int[] = prim::Constant[value=[0, 0]]() + %9 : int[] = prim::Constant[value=[1, 1]]() + %10 : bool = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %11 : int = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %12 : bool = prim::Constant[value=0]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %self.classifer.fc3.bias : Float(10) = prim::Constant[value= 0.0464 0.0383 0.0678 0.0932 0.1045 -0.0805 -0.0435 -0.0818 0.0208 -0.0358 [ CUDAFloatType{10} ]]() + %self.classifer.fc2.bias : Float(84) = prim::Constant[value=]() + %self.classifer.fc1.bias : Float(120) = prim::Constant[value=]() + %self.feat.conv2.weight : Float(16, 6, 3, 3) = prim::Constant[value=]() + %self.feat.conv2.bias : Float(16) = prim::Constant[value=]() + %self.feat.conv1.weight : Float(6, 1, 3, 3) = prim::Constant[value=]() + %self.feat.conv1.bias : Float(6) = prim::Constant[value= 0.0530 -0.1691 0.2802 0.1502 0.1056 -0.1549 [ CUDAFloatType{6} ]]() + %input0.4 : Tensor = aten::_convolution(%input.2, %self.feat.conv1.weight, %self.feat.conv1.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %input0.5 : Tensor = aten::relu(%input0.4) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %input1.2 : Tensor = aten::max_pool2d(%input0.5, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %input0.6 : Tensor = aten::_convolution(%input1.2, %self.feat.conv2.weight, %self.feat.conv2.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0 + %input2.1 : Tensor = aten::relu(%input0.6) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %x.1 : Tensor = aten::max_pool2d(%input2.1, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0 + %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 + %27 : Tensor = aten::matmul(%input.1, %4) + %28 : Tensor = trt::const(%self.classifer.fc1.bias) + %29 : Tensor = aten::add_(%28, %27, %11) + %input0.2 : Tensor = aten::relu(%29) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %31 : Tensor = aten::matmul(%input0.2, %3) + %32 : Tensor = trt::const(%self.classifer.fc2.bias) + %33 : Tensor = aten::add_(%32, %31, %11) + %input1.1 : Tensor = aten::relu(%33) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0 + %35 : Tensor = aten::matmul(%input1.1, %2) + %36 : Tensor = trt::const(%self.classifer.fc3.bias) + %37 : Tensor = aten::add_(%36, %35, %11) + return (%37) + (CompileGraph) + +The graph has now been transformed from a collection of modules, each managing their own parameters into a single graph with the parameters inlined +into the graph and all of the operations laid out. Torch-TensorRT has also executed a number of optimizations and mappings to make the graph easier to translate to TensorRT. +From here the compiler can assemble the TensorRT engine by following the dataflow through the graph. + +When the graph construction phase is complete, Torch-TensorRT produces a serialized TensorRT engine. From here depending on the API, this engine is returned +to the user or moves into the graph construction phase. Here Torch-TensorRT creates a JIT Module to execute the TensorRT engine which will be instantiated and managed +by the Torch-TensorRT runtime. + +Here is the graph that you get back after compilation is complete: + +.. code-block:: none + + graph(%self_1 : __torch__.lenet, %input_0 : Tensor): + %1 : ...trt.Engine = prim::GetAttr[name="lenet"](%self_1) + %3 : Tensor[] = prim::ListConstruct(%input_0) + %4 : Tensor[] = trt::execute_engine(%3, %1) + %5 : Tensor = prim::ListUnpack(%4) + return (%5) + + +You can see the call where the engine is executed, after extracting the attribute containing the engine and constructing a list of inputs, then returns the tensors back to the user. + +.. _unsupported_ops: + +Working with Unsupported Operators +----------------------------------- + +Torch-TensorRT is a new library and the PyTorch operator library is quite large, so there will be ops that aren't supported natively by the compiler. You can either use the composition techinques +shown above to make modules are fully Torch-TensorRT supported and ones that are not and stitch the modules together in the deployment application or you can register converters for missing ops. + + You can check support without going through the full compilation pipleine using the ``torch_tensorrt::CheckMethodOperatorSupport(const torch::jit::Module& module, std::string method_name)`` api + to see what operators are not supported. ``torchtrtc`` automatically checks modules with this method before starting compilation and will print out a list of operators that are not supported. + +.. _custom_converters: + +Registering Custom Converters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Operations are mapped to TensorRT through the use of modular converters, a function that takes a node from a the JIT graph and produces an equivalent layer or subgraph in TensorRT. +Torch-TensorRT ships with a library of these converters stored in a registry, that will be executed depending on the node being parsed. For instance a ``aten::relu(%input0.4)`` instruction will trigger +the relu converter to be run on it, producing an activation layer in the TensorRT graph. But since this library is not exhaustive you may need to write your own to get Torch-TensorRT +to support your module. + +Shipped with the Torch-TensorRT distribution are the internal core API headers. You can therefore access the converter registry and add a converter for the op you need. + +For example, if we try to compile a graph with a build of Torch-TensorRT that doesn't support the flatten operation (``aten::flatten``) you may see this error: + +.. code-block:: none + + terminate called after throwing an instance of 'torch_tensorrt::Error' + what(): [enforce fail at core/conversion/conversion.cpp:109] Expected converter to be true but got false + Unable to convert node: %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 (conversion.AddLayer) + Schema: aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor) + Converter for aten::flatten requested, but no such converter was found. + If you need a converter for this operator, you can try implementing one yourself + or request a converter: https://www.github.com/NVIDIA/Torch-TensorRT/issues + +We can register a converter for this operator in our application. All of the tools required to build a converter can be imported by including ``torch_tensorrt/core/conversion/converters/converters.h``. +We start by creating an instance of the self-registering class ``torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns()`` which will register converters +in the global converter registry, associating a function schema like ``aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)`` with a lambda that +will take the state of the conversion, the node/operation in question to convert and all of the inputs to the node and produces as a side effect a new layer in the TensorRT network. +Arguments are passed as a vector of inspectable unions of TensorRT ``ITensors`` and Torch ``IValues`` in the order arguments are listed in the schema. + +Below is a implementation of a ``aten::flatten`` converter that we can use in our application. You have full access to the Torch and TensorRT libraries in the converter implementation. So +for example we can quickly get the output size by just running the operation in PyTorch instead of implementing the full calculation outself like we do below for this flatten converter. + +.. code-block:: c++ + + #include "torch/script.h" + #include "torch_tensorrt/torch_tensorrt.h" + #include "torch_tensorrt/core/conversion/converters/converters.h" + + static auto flatten_converter = torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns() + .pattern({ + "aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)", + [](torch_tensorrt::core::conversion::ConversionCtx* ctx, + const torch::jit::Node* n, + torch_tensorrt::core::conversion::converters::args& args) -> bool { + auto in = args[0].ITensor(); + auto start_dim = args[1].unwrapToInt(); + auto end_dim = args[2].unwrapToInt(); + auto in_shape = torch_tensorrt::core::util::toVec(in->getDimensions()); + auto out_shape = torch::flatten(torch::rand(in_shape), start_dim, end_dim).sizes(); + + auto shuffle = ctx->net->addShuffle(*in); + shuffle->setReshapeDimensions(torch_tensorrt::core::util::toDims(out_shape)); + shuffle->setName(torch_tensorrt::core::util::node_info(n).c_str()); + + auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], shuffle->getOutput(0)); + return true; + } + }); + + int main() { + ... + +To use this converter in Python, it is recommended to use PyTorch's `C++ / CUDA Extention `_ +template to wrap your library of converters into a ``.so`` that you can load with ``ctypes.CDLL()`` in your Python application. + +You can find more information on all the details of writing converters in the contributors documentation (:ref:`writing_converters`). +If you find yourself with a large library of converter implementations, do consider upstreaming them, PRs are welcome and it would be great for the community to benefit as well. diff --git a/docs/v1.2.0/_sources/tutorials/getting_started_with_fx_path.rst.txt b/docs/v1.2.0/_sources/tutorials/getting_started_with_fx_path.rst.txt new file mode 100644 index 0000000000..7d782445a2 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/getting_started_with_fx_path.rst.txt @@ -0,0 +1,333 @@ +.. _getting_started_with_fx: + +Torch-TensorRT (FX Frontend) User Guide +======================== +Torch-TensorRT (FX Frontend) is a tool that can convert a PyTorch model through ``torch.fx`` to an +TensorRT engine optimized targeting running on Nvidia GPUs. TensorRT is the inference engine +developed by NVIDIA which composed of various kinds of optimization including kernel fusion, +graph optimization, low precision, etc.. This tool is developed in Python environment which allows this +workflow to be very accessible to researchers and engineers. There are a few stages that a +user want to use this tool and we will introduce them here. + +> Torch-TensorRT (FX Frontend) is in ``Beta`` and currently it is recommended to work with PyTorch nightly. + +.. code-block:: shell + + # Test an example by + $ python py/torch_tensorrt/fx/example/lower_example.py + + +Converting a PyTorch Model to TensorRT Engine +--------------------------------------------- +In general, users are welcome to use the ``compile()`` to finish the conversion from a model to tensorRT engine. It is a +wrapper API that consists of the major steps needed to finish this converison. Please refer to an example usage in ``lower_example.py`` file under ``examples/fx``. + +.. code-block:: shell + + def compile( + module: nn.Module, + input, + max_batch_size=2048, + max_workspace_size=33554432, + explicit_batch_dimension=False, + lower_precision=LowerPrecision.FP16, + verbose_log=False, + timing_cache_prefix="", + save_timing_cache=False, + cuda_graph_batch_size=-1, + dynamic_batch=True, + ) -> nn.Module: + + """ + Takes in original module, input and lowering setting, run lowering workflow to turn module + into lowered module, or so called TRTModule. + + Args: + module: Original module for lowering. + input: Input for module. + max_batch_size: Maximum batch size (must be >= 1 to be set, 0 means not set) + max_workspace_size: Maximum size of workspace given to TensorRT. + explicit_batch_dimension: Use explicit batch dimension in TensorRT if set True, otherwise use implicit batch dimension. + lower_precision: lower_precision config given to TRTModule. + verbose_log: Enable verbose log for TensorRT if set True. + timing_cache_prefix: Timing cache file name for timing cache used by fx2trt. + save_timing_cache: Update timing cache with current timing cache data if set to True. + cuda_graph_batch_size: Cuda graph batch size, default to be -1. + dynamic_batch: batch dimension (dim=0) is dynamic. + Returns: + A torch.nn.Module lowered by TensorRT. + """ + +In this section, we will go through an example to illustrate the major steps that fx path uses. +Users can refer to ``fx2trt_example.py`` file in ``examples/fx``. + +* **Step 1: Trace the model with acc_tracer** +Acc_tracer is a tracer inheritated from FX tracer. It comes with args normalizer to convert all args to kwargs and pass to TRT converters. + +.. code-block:: shell + + import torch_tensorrt.fx.tracer.acc_tracer.acc_tracer as acc_tracer + + # Build the model which needs to be a PyTorch nn.Module. + my_pytorch_model = build_model() + + # Prepare inputs to the model. Inputs have to be a List of Tensors + inputs = [Tensor, Tensor, ...] + + # Trace the model with acc_tracer. + acc_mod = acc_tracer.trace(my_pytorch_model, inputs) + +*Common Errors:* + +symbolically traced variables cannot be used as inputs to control flow +This means the model contains dynamic control flow. Please refer to section “Dynamic Control Flow” in `FX guide `_. + +* **Step 2: Build TensorRT engine** +There are `two different modes `_ for how TensorRT handles batch dimension, explicit batch dimension and implicit batch dimension. This mode was used by early versions of TensorRT, and is now deprecated but continues to be supported for backwards compatibility. In explicit batch mode, all dimensions are explicit and can be dynamic, that is their length can change at execution time. Many new features, such as dynamic shapes and loops, are available only in this mode. User can still choose to use implicit batch mode when they set ``explicit_batch_dimension=False`` in ``compile()``. We do not recommend to use it since it will lack of support in future TensorRT versions. + +Explicit batch is the default mode and it must be set for dynamic shape. For most of vision task, user can choose to enable ``dynamic_batch`` in ``compile()`` if they want to get the similar effects as implicit mode where only batch dimension changes. It has some requirements: +1. Shapes of inputs, outputs and activations are fixed except batch dimension. +2. Inputs, outputs and activations have batch dimension as the major dimension. +3. All the operators in the model do not modify batch dimension (permute, transpose, split, etc.) or compute over batch dimension (sum, softmax, etc.). + +For examples of the last path, if we have a 3D tensor t shaped as (batch, sequence, dimension), operations such as torch.transpose(0, 2). If any of these three are not satisfied, we’ll need to specify InputTensorSpec as inputs with dynamic range. + +c + + import deeplearning.trt.fx2trt.converter.converters + from torch.fx.experimental.fx2trt.fx2trt import InputTensorSpec, TRTInterpreter + + # InputTensorSpec is a dataclass we use to store input information. + # There're two ways we can build input_specs. + # Option 1, build it manually. + input_specs = [ + InputTensorSpec(shape=(1, 2, 3), dtype=torch.float32), + InputTensorSpec(shape=(1, 4, 5), dtype=torch.float32), + ] + # Option 2, build it using sample_inputs where user provide a sample + inputs = [ + torch.rand((1,2,3), dtype=torch.float32), + torch.rand((1,4,5), dtype=torch.float32), + ] + input_specs = InputTensorSpec.from_tensors(inputs) + + # IMPORTANT: If dynamic shape is needed, we need to build it slightly differently. + input_specs = [ + InputTensorSpec( + shape=(-1, 2, 3), + dtype=torch.float32, + # Currently we only support one set of dynamic range. User may set other dimensions but it is not promised to work for any models + # (min_shape, optimize_target_shape, max_shape) + # For more information refer to fx/input_tensor_spec.py + shape_ranges = [ + ((1, 2, 3), (4, 2, 3), (100, 2, 3)), + ], + ), + InputTensorSpec(shape=(1, 4, 5), dtype=torch.float32), + ] + + # Build a TRT interpreter. Set explicit_batch_dimension accordingly. + interpreter = TRTInterpreter( + acc_mod, input_specs, explicit_batch_dimension=True/False + ) + + # The output of TRTInterpreter run() is wrapped as TRTInterpreterResult. + # The TRTInterpreterResult contains required parameter to build TRTModule, + # and other informational output from TRTInterpreter run. + class TRTInterpreterResult(NamedTuple): + engine: Any + input_names: Sequence[str] + output_names: Sequence[str] + serialized_cache: bytearray + + #max_batch_size: set accordingly for maximum batch size you will use. + #max_workspace_size: set to the maximum size we can afford for temporary buffer + #lower_precision: the precision model layers are running on (TensorRT will choose the best perforamnce precision). + #sparse_weights: allow the builder to examine weights and use optimized functions when weights have suitable sparsity + #force_fp32_output: force output to be fp32 + #strict_type_constraints: Usually we should set it to False unless we want to control the precision of certain layer for numeric #reasons. + #algorithm_selector: set up algorithm selection for certain layer + #timing_cache: enable timing cache for TensorRT + #profiling_verbosity: TensorRT logging level + trt_interpreter_result = interpreter.run( + max_batch_size=64, + max_workspace_size=1 << 25, + sparse_weights=False, + force_fp32_output=False, + strict_type_constraints=False, + algorithm_selector=None, + timing_cache=None, + profiling_verbosity=None, + ) + + +*Common Errors:* + +RuntimeError: Conversion of function xxx not currently supported! +- This means we don’t have the support for this xxx operator. Please refer to section “How to add a missing op” below for further instructions. + +* **Step 3: Run the model** +One way is using TRTModule, which is basically a PyTorch nn.Module. + +.. code-block:: shell + + from torch_tensorrt.fx import TRTModule + mod = TRTModule( + trt_interpreter_result.engine, + trt_interpreter_result.input_names, + trt_interpreter_result.output_names) + # Just like all other PyTorch modules + outputs = mod(*inputs) + torch.save(mod, "trt.pt") + reload_trt_mod = torch.load("trt.pt") + reload_model_output = reload_trt_mod(*inputs) + +So far, we give a detailed explanation of major steps in convterting a PyTorch model into TensorRT engine. Users are welcome to refer to the source code for some parameters explanations. In the converting scheme, there are two important actions in it. One is acc tracer which helps us to convert a PyTorch model to acc graph. The other is FX path converter which helps to convert the acc graph's operation to corresponding TensorRT operation and build up the TensoRT engine for it. + +Acc Tracer +--------- + +Acc tracer is a custom FX symbolic tracer. It does a couple more things compare to the vanilla FX symbolic tracer. We mainly depend on it to convert PyTorch ops or builtin ops to acc ops. There are two main purposes for fx2trt to use acc ops: + +1. there’re many ops that do similar things in PyTorch ops and builtin ops such like torch.add, builtin.add and torch.Tensor.add. Using acc tracer, we normalize these three ops to a single acc_ops.add. This helps reduce the number of converters we need to write. +2. acc ops only have kwargs which makes writing converter easier as we don’t need to add additional logic to find arguments in args and kwargs. + +FX2TRT +-------- +After symbolic tracing, we have the graph representation of a PyTorch model. fx2trt leverages the power of fx.Interpreter. fx.Interpreter goes through the whole graph node by node and calls the function that node represents. fx2trt overrides the original behavior of calling the function with invoking corresponding converts for each node. Each converter function adds corresponding TensorRT layer(s). + +Below is an example of a converter function. The decorator is used to register this converter function with the corresponding node. In this example, we register this converter to a fx node whose target is acc_ops.sigmoid. + +.. code-block:: shell + + @tensorrt_converter(acc_ops.sigmoid) + def acc_ops_sigmoid(network, target, args, kwargs, name): + """ + network: TensorRT network. We'll be adding layers to it. + + The rest arguments are attributes of fx node. + """ + input_val = kwargs['input'] + + if not isinstance(input_val, trt.tensorrt.ITensor): + raise RuntimeError(f'Sigmoid received input {input_val} that is not part ' + 'of the TensorRT region!') + + layer = network.add_activation(input=input_val, type=trt.ActivationType.SIGMOID) + layer.name = name + return layer.get_output(0) + +How to Add a Missing Op +**************** + +You can actually add it wherever you want just need to remember import the file so that all acc ops and mapper will be registered before tracing with acc_tracer. + +* **Step 1. Add a new acc op** + +TODO: Need to explain more on the logistic of acc op like when we want to break down an op and when we want to reuse other ops. + +In `acc tracer `_, we convert nodes in the graph to acc ops if there’s a mapping registered for the node to an acc op. + +In order to make the conversion to acc ops to happen, there’re two things required. One is that there should be an acc op function defined and the other is there should be a mapping registered. + +Defining an acc op is simple, we first just need a function and register the function as an acc op via this decorator `acc_normalizer.py `_. e.g. the following code adds an acc op named foo() which adds two given inputs. + +.. code-block:: shell + + # NOTE: all acc ops should only take kwargs as inputs, therefore we need the "*" + # at the beginning. + @register_acc_op + def foo(*, input, other, alpha): + return input + alpha * other + +There’re two ways to register a mapping. One is `register_acc_op_mapping() `_. Let’s register a mapping from torch.add to foo() we just created above. We need to add decorator register_acc_op_mapping to it. + +.. code-block:: shell + + this_arg_is_optional = True + + @register_acc_op_mapping( + op_and_target=("call_function", torch.add), + arg_replacement_tuples=[ + ("input", "input"), + ("other", "other"), + ("alpha", "alpha", this_arg_is_optional), + ], + ) + @register_acc_op + def foo(*, input, other, alpha=1.0): + return input + alpha * other + +``op_and_target`` determines which node will trigger this mapping. op and target are the attributes of FX node. In acc_normalization when we see a node with the same op and target as set in the ``op_and_target``, we will trigger the mapping. Since we want to map from ``torch.add``, then op would be call_function and target would be ``torch.add``. ``arg_replacement_tuples`` determines how we construct kwargs for new acc op node using args and kwargs from original node. Each tuple in ``arg_replacement_tuples`` represents one argument mapping rule. It contains two or three elements. The third element is a boolean variable that determines whether this kwarg is optional in *original node*. We only need to specify the third element if it’s True. The first element is the argument name in original node which will be used as the acc op node’s argument whose name is the second element in the tuple. The sequence of the tuples does matter because the position of the tuple determines where the argument is in original node’s args. We use this information to map args from original node to kwargs in acc op node. +We don’t have to specify arg_replacement_tuples if none of the followings are true. + +1. kwargs of original nodes and acc op nodes have different name. +2. there’re optional arguments. + +The other way to register a mapping is through `register_custom_acc_mapper_fn() `_. This one is designed to reduce the redundant op registration as it allows you to use a function to map to one or more existing acc ops throught some combinations. In the function, you can do basically whatever you want. Let’s use an example to explain how it works. + +.. code-block:: shell + + @register_acc_op + def foo(*, input, other, alpha=1.0): + return input + alpha * other + + @register_custom_acc_mapper_fn( + op_and_target=("call_function", torch.add), + arg_replacement_tuples=[ + ("input", "input"), + ("other", "other"), + ("alpha", "alpha", this_arg_is_optional), + ], + ) + def custom_mapper(node: torch.fx.Node, _: nn.Module) -> torch.fx.Node: + """ + `node` is original node, which is a call_function node with target + being torch.add. + """ + alpha = 1 + if "alpha" in node.kwargs: + alpha = node.kwargs["alpha"] + foo_kwargs = {"input": node["input"], "other": node["other"], "alpha": alpha} + with node.graph.inserting_before(node): + foo_node = node.graph.call_function(foo, kwargs=foo_kwargs) + foo_node.meta = node.meta.copy() + return foo_node + + +In the custom mapper function, we construct an acc op node and return it. The node we returns here would take over all the children nodes of original nodes `acc_normalizer.py `_. + +The last step would be *adding unit test* for the new acc op or mapper function we added. The place to add the unit test is here `test_acc_tracer.py `_. + +* **Step 2. Add a new converter** + +All the developed converters for acc ops are all in `acc_op_converter.py `_. It could give you a good example of how the converter is added. + +Essentially, the converter is the mapping mechanism that maps the acc ops to a TensorRT layer. If we are able to find all the TensorRT layers we need we can get start to add a converter for the node using `TensorRT APIs `_. + +.. code-block:: shell + + @tensorrt_converter(acc_ops.sigmoid) + def acc_ops_sigmoid(network, target, args, kwargs, name): + """ + network: TensorRT network. We'll be adding layers to it. + + The rest arguments are attributes of fx node. + """ + input_val = kwargs['input'] + + if not isinstance(input_val, trt.tensorrt.ITensor): + raise RuntimeError(f'Sigmoid received input {input_val} that is not part ' + 'of the TensorRT region!') + + layer = network.add_activation(input=input_val, type=trt.ActivationType.SIGMOID) + layer.name = name + return layer.get_output(0) + +We need to use ``tensorrt_converter`` decorator to register the converter. The argument for the decorator is the target of the fx node that we need to convert. In the converter, we can find the inputs to the fx node in kwargs. As in the example, the original node is `acc_ops.sigmoid` which only has one argument “input” in acc_ops.py. We get the input and check if it’s a TensorRT tensor. After that, we add a sigmoid layer to TensorRT network and return the output of the layer. The output we returned will be passed to the children nodes of acc_ops.sigmoid by fx.Interpreter. + +**What if we can not find corresponding layers in TensorRT that do the same thing as the node.** + +In this case, we would need to do a bit more work. TensorRT provides plugins which serves as custom layers. *We have not implement this feature yet. We will update once it is enabled*. + +Last step would be adding the unit test for the new converter we added. User could add corresponding unit test in this `folder `_. diff --git a/docs/v1.2.0/_sources/tutorials/getting_started_with_python_api.rst.txt b/docs/v1.2.0/_sources/tutorials/getting_started_with_python_api.rst.txt new file mode 100644 index 0000000000..b63665c980 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/getting_started_with_python_api.rst.txt @@ -0,0 +1,47 @@ +.. _getting_started_with_python_api: + +Using Torch-TensorRT in Python +******************************* + +Torch-TensorRT Python API accepts a ```torch.nn.Module`` as an input. Under the hood, it uses ``torch.jit.script`` to convert the input module into a +TorchScript module. To compile your input ```torch.nn.Module`` with Torch-TensorRT, all you need to do is provide the module and inputs +to Torch-TensorRT and you will be returned an optimized TorchScript module to run or add into another PyTorch module. Inputs +is a list of ``torch_tensorrt.Input`` classes which define input's shape, datatype and memory format. You can also specify settings such as +operating precision for the engine or target device. After compilation you can save the module just like any other module +to load in a deployment application. In order to load a TensorRT/TorchScript module, make sure you first import ``torch_tensorrt``. + +.. code-block:: python + + import torch_tensorrt + + ... + + model = MyModel().eval() # torch module needs to be in eval (not training) mode + + inputs = [torch_tensorrt.Input( + min_shape=[1, 1, 16, 16], + opt_shape=[1, 1, 32, 32], + max_shape=[1, 1, 64, 64], + dtype=torch.half, + )] + enabled_precisions = {torch.float, torch.half} # Run with fp16 + + trt_ts_module = torch_tensorrt.compile(model, inputs=inputs, enabled_precisions=enabled_precisions) + + input_data = input_data.to('cuda').half() + result = trt_ts_module(input_data) + torch.jit.save(trt_ts_module, "trt_ts_module.ts") + +.. code-block:: python + + # Deployment application + import torch + import torch_tensorrt + + trt_ts_module = torch.jit.load("trt_ts_module.ts") + input_data = input_data.to('cuda').half() + result = trt_ts_module(input_data) + +Torch-TensorRT python API also provides ``torch_tensorrt.ts.compile`` which accepts a TorchScript module as input. +The torchscript module can be obtained via scripting or tracing (refer to :ref:`creating_torchscript_module_in_python`). ``torch_tensorrt.ts.compile`` accepts a Torchscript module +and a list of ``torch_tensorrt.Input`` classes. diff --git a/docs/v1.2.0/_sources/tutorials/installation.rst.txt b/docs/v1.2.0/_sources/tutorials/installation.rst.txt new file mode 100644 index 0000000000..949fa2ddc9 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/installation.rst.txt @@ -0,0 +1,387 @@ +.. _installation: + +Installation +============= + +Precompiled Binaries +********************* + +Dependencies +--------------- + +You need to have either PyTorch or LibTorch installed based on if you are using Python or C++ +and you must have CUDA, cuDNN and TensorRT installed. + + * https://www.pytorch.org + * https://developer.nvidia.com/cuda + * https://developer.nvidia.com/cudnn + * https://developer.nvidia.com/tensorrt + + +Python Package +--------------- + +You can install the python package using + +.. code-block:: sh + + pip3 install torch-tensorrt -f https://github.com/NVIDIA/Torch-TensorRT/releases + +.. _bin-dist: + +C++ Binary Distribution +------------------------ + +Precompiled tarballs for releases are provided here: https://github.com/NVIDIA/Torch-TensorRT/releases + +.. _compile-from-source: + +Compiling From Source +****************************************** + +.. _installing-deps: + +Dependencies for Compilation +------------------------------- + +Torch-TensorRT is built with Bazel, so begin by installing it. + + * The easiest way is to install bazelisk using the method of your choosing https://github.com/bazelbuild/bazelisk + * Otherwise you can use the following instructions to install binaries https://docs.bazel.build/versions/master/install.html + * Finally if you need to compile from source (e.g. aarch64 until bazel distributes binaries for the architecture) you can use these instructions + + .. code-block:: shell + + export BAZEL_VERSION=$(cat /.bazelversion) + mkdir bazel + cd bazel + curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-dist.zip + unzip bazel-$BAZEL_VERSION-dist.zip + bash ./compile.sh + cp output/bazel /usr/local/bin/ + + +You will also need to have CUDA installed on the system (or if running in a container, the system must have +the CUDA driver installed and the container must have CUDA) + +The correct LibTorch version will be pulled down for you by bazel. + + NOTE: For best compatability with official PyTorch, use torch==1.10.0+cuda113, TensorRT 8.0 and cuDNN 8.2 for CUDA 11.3 however Torch-TensorRT itself supports + TensorRT and cuDNN for other CUDA versions for usecases such as using NVIDIA compiled distributions of PyTorch that use other versions of CUDA + e.g. aarch64 or custom compiled version of PyTorch. + +.. _abis: + +Choosing the Right ABI +^^^^^^^^^^^^^^^^^^^^^^^^ + +Likely the most complicated thing about compiling Torch-TensorRT is selecting the correct ABI. There are two options +which are incompatible with each other, pre-cxx11-abi and the cxx11-abi. The complexity comes from the fact that while +the most popular distribution of PyTorch (wheels downloaded from pytorch.org/pypi directly) use the pre-cxx11-abi, most +other distributions you might encounter (e.g. ones from NVIDIA - NGC containers, and builds for Jetson as well as certain +libtorch builds and likely if you build PyTorch from source) use the cxx11-abi. It is important you compile Torch-TensorRT +using the correct ABI to function properly. Below is a table with general pairings of PyTorch distribution sources and the +recommended commands: + ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch Source | Recommended C++ Compilation Command | Recommended Python Compilation Command | ++=============================================================+==========================================================+====================================================================+ +| PyTorch whl file from PyTorch.org | bazel build //:libtorchtrt -c opt --config pre_cxx11_abi | python3 setup.py bdist_wheel | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| libtorch-shared-with-deps-*.zip from PyTorch.org | bazel build //:libtorchtrt -c opt --config pre_cxx11_abi | python3 setup.py bdist_wheel | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| libtorch-cxx11-abi-shared-with-deps-*.zip from PyTorch.org | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch preinstalled in an NGC container | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch from the NVIDIA Forums for Jetson | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --jetpack-version 4.6 --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ +| PyTorch built from Source | bazel build //:libtorchtrt -c opt | python3 setup.py bdist_wheel --use-cxx11-abi | ++-------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------------+ + + NOTE: For all of the above cases you must correctly declare the source of PyTorch you intend to use in your WORKSPACE file for both Python and C++ builds. See below for more information + +You then have two compilation options: + +.. _build-from-archive: + +**Building using cuDNN & TensorRT tarball distributions** +-------------------------------------------------------------- + + This is recommended so as to build Torch-TensorRT hermetically and insures any compilation errors are not caused by version issues + + Make sure when running Torch-TensorRT that these versions of the libraries are prioritized in your ``$LD_LIBRARY_PATH`` + +You need to download the tarball distributions of TensorRT and cuDNN from the NVIDIA website. + * https://developer.nvidia.com/cudnn + * https://developer.nvidia.com/tensorrt + +Place these files in a directory (the directories ``third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]`` exist for this purpose) + +Then compile referencing the directory with the tarballs + + If you get errors regarding the packages, check their sha256 hashes and make sure they match the ones listed in ``WORKSPACE`` + +Release Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: shell + + bazel build //:libtorchtrt -c opt --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-archive-debug: + +Debug Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build with debug symbols use the following command + +.. code-block:: shell + + bazel build //:libtorchtrt -c dbg --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +Pre CXX11 ABI Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build using the pre-CXX11 ABI use the ``pre_cxx11_abi`` config + +.. code-block:: shell + + bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-local: + +**Building using locally installed cuDNN & TensorRT** +-------------------------------------------------------------- + + If you encounter bugs and you compiled using this method please disclose that you used local sources in the issue (an ldd dump would be nice too) + +Install TensorRT, CUDA and cuDNN on the system before starting to compile. + +In WORKSPACE comment out: + +.. code-block:: python + + # Downloaded distributions to use with --distdir + http_archive( + name = "cudnn", + urls = ["",], + + build_file = "@//third_party/cudnn/archive:BUILD", + sha256 = "", + strip_prefix = "cuda" + ) + + http_archive( + name = "tensorrt", + urls = ["",], + + build_file = "@//third_party/tensorrt/archive:BUILD", + sha256 = "", + strip_prefix = "TensorRT-" + ) + +and uncomment + +.. code-block:: python + + # Locally installed dependencies + new_local_repository( + name = "cudnn", + path = "/usr/", + build_file = "@//third_party/cudnn/local:BUILD" + ) + + new_local_repository( + name = "tensorrt", + path = "/usr/", + build_file = "@//third_party/tensorrt/local:BUILD" + ) + +Release Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +Compile using: + +.. code-block:: shell + + bazel build //:libtorchtrt -c opt + +A tarball with the include files and library can then be found in ``bazel-bin`` + +.. _build-from-local-debug: + +Debug Build +^^^^^^^^^^^^ + +To build with debug symbols use the following command + +.. code-block:: shell + + bazel build //:libtorchtrt -c dbg + + +A tarball with the include files and library can then be found in ``bazel-bin`` + +Pre CXX11 ABI Build +^^^^^^^^^^^^^^^^^^^^^^^^ + +To build using the pre-CXX11 ABI use the ``pre_cxx11_abi`` config + +.. code-block:: shell + + bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] + +**Building the Python package** +-------------------------------- + +Begin by installing ``ninja`` + +You can build the Python package using ``setup.py`` (this will also build the correct version of ``libtorchtrt.so``) + +.. code-block:: shell + + python3 setup.py [install/bdist_wheel] + +Debug Build +^^^^^^^^^^^^ + +.. code-block:: shell + + python3 setup.py develop [--user] + +This also compiles a debug build of ``libtorchtrt.so`` + +**Building Natively on aarch64 (Jetson)** +------------------------------------------- + +Prerequisites +^^^^^^^^^^^^^^ + +Install or compile a build of PyTorch/LibTorch for aarch64 + +NVIDIA hosts builds the latest release branch for Jetson here: + + https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-10-now-available/72048 + + +Enviorment Setup +^^^^^^^^^^^^^^^^^ + +To build natively on aarch64-linux-gnu platform, configure the ``WORKSPACE`` with local available dependencies. + +1. Disable the rules with ``http_archive`` for x86_64 by commenting the following rules: + +.. code-block:: shell + + #http_archive( + # name = "libtorch", + # build_file = "@//third_party/libtorch:BUILD", + # strip_prefix = "libtorch", + # urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.5.1.zip"], + # sha256 = "cf0691493d05062fe3239cf76773bae4c5124f4b039050dbdd291c652af3ab2a" + #) + + #http_archive( + # name = "libtorch_pre_cxx11_abi", + # build_file = "@//third_party/libtorch:BUILD", + # strip_prefix = "libtorch", + # sha256 = "818977576572eadaf62c80434a25afe44dbaa32ebda3a0919e389dcbe74f8656", + # urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-shared-with-deps-1.5.1.zip"], + #) + + # Download these tarballs manually from the NVIDIA website + # Either place them in the distdir directory in third_party and use the --distdir flag + # or modify the urls to "file:////.tar.gz + + #http_archive( + # name = "cudnn", + # urls = ["https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.1.13/10.2_20200626/cudnn-10.2-linux-x64-v8.0.1.13.tgz"], + # build_file = "@//third_party/cudnn/archive:BUILD", + # sha256 = "0c106ec84f199a0fbcf1199010166986da732f9b0907768c9ac5ea5b120772db", + # strip_prefix = "cuda" + #) + + #http_archive( + # name = "tensorrt", + # urls = ["https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.1/tars/TensorRT-7.1.3.4.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn8.0.tar.gz"], + # build_file = "@//third_party/tensorrt/archive:BUILD", + # sha256 = "9205bed204e2ae7aafd2e01cce0f21309e281e18d5bfd7172ef8541771539d41", + # strip_prefix = "TensorRT-7.1.3.4" + #) + + NOTE: You may also need to configure the CUDA version to 10.2 by setting the path for the cuda new_local_repository + + +2. Configure the correct paths to directory roots containing local dependencies in the ``new_local_repository`` rules: + + NOTE: If you installed PyTorch using a pip package, the correct path is the path to the root of the python torch package. + In the case that you installed with ``sudo pip install`` this will be ``/usr/local/lib/python3.6/dist-packages/torch``. + In the case you installed with ``pip install --user`` this will be ``$HOME/.local/lib/python3.6/site-packages/torch``. + +In the case you are using NVIDIA compiled pip packages, set the path for both libtorch sources to the same path. This is because unlike +PyTorch on x86_64, NVIDIA aarch64 PyTorch uses the CXX11-ABI. If you compiled for source using the pre_cxx11_abi and only would like to +use that library, set the paths to the same path but when you compile make sure to add the flag ``--config=pre_cxx11_abi`` + +.. code-block:: shell + + new_local_repository( + name = "libtorch", + path = "/usr/local/lib/python3.6/dist-packages/torch", + build_file = "third_party/libtorch/BUILD" + ) + + new_local_repository( + name = "libtorch_pre_cxx11_abi", + path = "/usr/local/lib/python3.6/dist-packages/torch", + build_file = "third_party/libtorch/BUILD" + ) + + new_local_repository( + name = "cudnn", + path = "/usr/", + build_file = "@//third_party/cudnn/local:BUILD" + ) + + new_local_repository( + name = "tensorrt", + path = "/usr/", + build_file = "@//third_party/tensorrt/local:BUILD" + ) + +Compile C++ Library and Compiler CLI +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + NOTE: Due to shifting dependency locations between Jetpack 4.5 and 4.6 there is a now a flag to inform bazel of the Jetpack version + + .. code-block:: shell + + --platforms //toolchains:jetpack_4.x + + +Compile Torch-TensorRT library using bazel command: + +.. code-block:: shell + + bazel build //:libtorchtrt --platforms //toolchains:jetpack_4.6 + +Compile Python API +^^^^^^^^^^^^^^^^^^^^ + + NOTE: Due to shifting dependencies locations between Jetpack 4.5 and Jetpack 4.6 there is now a flag for ``setup.py`` which sets the jetpack version (default: 4.6) + +Compile the Python API using the following command from the ``//py`` directory: + +.. code-block:: shell + + python3 setup.py install --use-cxx11-abi + +If you have a build of PyTorch that uses Pre-CXX11 ABI drop the ``--use-cxx11-abi`` flag + +If you are building for Jetpack 4.5 add the ``--jetpack-version 4.5`` flag diff --git a/docs/v1.2.0/_sources/tutorials/notebooks.rst.txt b/docs/v1.2.0/_sources/tutorials/notebooks.rst.txt new file mode 100644 index 0000000000..df903fc353 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/notebooks.rst.txt @@ -0,0 +1,154 @@ +.. _notebooks: + +Example notebooks +=================== + +There exists a number of notebooks which cover specific using specific features and models +with Torch-TensorRT + +Notebooks +------------ + +Compiling CitriNet with Torch-TensorRT +******************************************** + +Citrinet is an acoustic model used for the speech to text recognition task. It is a version +of QuartzNet that extends ContextNet, utilizing subword encoding (via Word Piece tokenization) +and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models. CitriNet +models take in audio segments and transcribe them to letter, byte pair, or word piece sequences. + +This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, +and running it to test the speedup obtained. + +* `Torch-TensorRT Getting Started - CitriNet `_ + + +Compiling EfficentNet with Torch-TensorRT +******************************************** + +EfficentNet is a feedforward CNN designed to achieve better performance and accuracy than alternative architectures +by using a "scaling method that uniformly scales all dimensions of depth/width/resolution using a simple yet highly effective compound coefficient". + +This notebook demonstrates the steps for optimizing a pretrained EfficentNet model with Torch-TensorRT, +and running it to test the speedup obtained. + +* `Torch-TensorRT Getting Started - EfficientNet-B0 `_ + + +Masked Language Modeling (MLM) with Hugging Face BERT Transformer accelerated by Torch-TensorRT +************************************************************************************************* + +"BERT is a transformer model pretrained on a large corpus of English data in a self-supervised fashion. +This way, the model learns an inner representation of the English language that can then be used to extract +features useful for downstream tasks: if you have a dataset of labeled sentences for instance, you can train +a standard classifier using the features produced by the BERT model as inputs." (https://huggingface.co/bert-base-uncased) + +This notebook demonstrates the steps for optimizing a pretrained EfficentNet model with Torch-TensorRT, +and running it to test the speedup obtained. + +* `Masked Language Modeling (MLM) with Hugging Face BERT Transformer `_ + + +Serving a model in C++ using Torch-TensorRT +********************************************** + +This example shows how you can load a pretrained ResNet-50 model, convert it to a Torch-TensorRT +optimized model (via the Torch-TensorRT Python API), save the model as a torchscript module, and +then finally load and serve the model with the PyTorch C++ API. + +* `ResNet C++ Serving Example `_ + + +Compiling ResNet50 with Torch-TensorRT +******************************************** + +This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a +pretrained ResNet-50 network, and running it to test the speedup obtained. + +* `Torch-TensorRT Getting Started - ResNet 50 `_ + + +Using Dynamic Shapes with Torch-TensorRT +******************************************** + +Making use of Dynamic Shaped Tensors in Torch TensorRT is quite simple. Let's say you are +using the ``torch_tensorrt.compile(...)`` function to compile a torchscript module. One +of the args in this function in this function is ``input``: which defines an input to a +module in terms of expected shape, data type and tensor format: ``torch_tensorrt.Input.`` + +For the purposes of this walkthrough we just need three kwargs: `min_shape`, `opt_shape`` and `max_shape`. + +.. code-block:: py + + torch_tensorrt.Input( + min_shape=(1, 224, 224, 3), + opt_shape=(1, 512, 512, 3), + max_shape=(1, 1024, 1024, 3), + dtype=torch.int32 + format=torch.channel_last + ) + ... + +In this example, we are going to use a simple ResNet model to demonstrate the use of the API. + +* `Torch-TensorRT - Using Dynamic Shapes `_ + +Using the FX Frontend with Torch-TensorRT +******************************************** + +The purpose of this example is to demostrate the overall flow of lowering a PyTorch model to TensorRT +conveniently with using FX. + +* `Using the FX Frontend with Torch-TensorRT `_ + + +Compiling a PyTorch model using FX Frontend with Torch-TensorRT +******************************************************************* + +The purpose of this example is to demonstrate the overall flow of lowering a PyTorch +model to TensorRT via FX with existing FX based tooling + +* `Compiling a PyTorch model using FX Frontend with Torch-TensorRT `_ + + +Compiling LeNet with Torch-TensorRT +******************************************************************* + +This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network. + +* `Torch-TensorRT Getting Started - LeNet `_ + + +Accelerate Deep Learning Models using Quantization in Torch-TensorRT +******************************************************************* + +Model Quantization is a popular way of optimization which reduces the size of models thereby +accelerating inference, also opening up the possibilities of deployments on devices with lower +computation power such as Jetson. Simply put, quantization is a process of mapping input values + from a larger set to output values in a smaller set. In this notebook, we illustrate the workflow + that you can adopt while quantizing a deep learning model in Torch-TensorRT. The notebook takes + you through an example of Mobilenetv2 for a classification task on a subset of Imagenet Dataset + called Imagenette which has 10 classes. + +* `Accelerate Deep Learning Models using Quantization in Torch-TensorRT `_ + + +Object Detection with Torch-TensorRT (SSD) +******************************************************************* + +This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained. + +* `Object Detection with Torch-TensorRT (SSD) `_ + + +Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT +***************************************************************************** + +Quantization Aware training (QAT) simulates quantization during training by +quantizing weights and activation layers. This will help to reduce the loss in +accuracy when we convert the network trained in FP32 to INT8 for faster inference. +QAT introduces additional nodes in the graph which will be used to learn the dynamic +ranges of weights and activation layers. In this notebook, we illustrate the following +steps from training to inference of a QAT model in Torch-TensorRT. + +* `Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT `_ diff --git a/docs/v1.2.0/_sources/tutorials/ptq.rst.txt b/docs/v1.2.0/_sources/tutorials/ptq.rst.txt new file mode 100644 index 0000000000..b62457109f --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/ptq.rst.txt @@ -0,0 +1,205 @@ +.. _ptq: + +Post Training Quantization (PTQ) +================================= + +Post Training Quantization (PTQ) is a technique to reduce the required computational resources for inference +while still preserving the accuracy of your model by mapping the traditional FP32 activation space to a reduced +INT8 space. TensorRT uses a calibration step which executes your model with sample data from the target domain +and track the activations in FP32 to calibrate a mapping to INT8 that minimizes the information loss between +FP32 inference and INT8 inference. + +Users writing TensorRT applications are required to setup a calibrator class which will provide sample data to +the TensorRT calibrator. With Torch-TensorRT we look to leverage existing infrastructure in PyTorch to make implementing +calibrators easier. + +LibTorch provides a ``DataLoader`` and ``Dataset`` API which steamlines preprocessing and batching input data. +These APIs are exposed via both C++ and Python interface which makes it easier for the end user. +For C++ interface, we use ``torch::Dataset`` and ``torch::data::make_data_loader`` objects to construct and perform pre-processing on datasets. +The equivalent functionality in python interface uses ``torch.utils.data.Dataset`` and ``torch.utils.data.DataLoader``. +This section of the PyTorch documentation has more information https://pytorch.org/tutorials/advanced/cpp_frontend.html#loading-data and https://pytorch.org/tutorials/recipes/recipes/loading_data_recipe.html. +Torch-TensorRT uses Dataloaders as the base of a generic calibrator implementation. So you will be able to reuse or quickly +implement a ``torch::Dataset`` for your target domain, place it in a DataLoader and create a INT8 Calibrator +which you can provide to Torch-TensorRT to run INT8 Calibration during compliation of your module. + +.. _writing_ptq_cpp: + +How to create your own PTQ application in C++ +----------------------------------------------- + +Here is an example interface of a ``torch::Dataset`` class for CIFAR10: + +.. code-block:: c++ + :linenos: + + //cpp/ptq/datasets/cifar10.h + #pragma once + + #include "torch/data/datasets/base.h" + #include "torch/data/example.h" + #include "torch/types.h" + + #include + #include + + namespace datasets { + // The CIFAR10 Dataset + class CIFAR10 : public torch::data::datasets::Dataset { + public: + // The mode in which the dataset is loaded + enum class Mode { kTrain, kTest }; + + // Loads CIFAR10 from un-tarred file + // Dataset can be found https://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz + // Root path should be the directory that contains the content of tarball + explicit CIFAR10(const std::string& root, Mode mode = Mode::kTrain); + + // Returns the pair at index in the dataset + torch::data::Example<> get(size_t index) override; + + // The size of the dataset + c10::optional size() const override; + + // The mode the dataset is in + bool is_train() const noexcept; + + // Returns all images stacked into a single tensor + const torch::Tensor& images() const; + + // Returns all targets stacked into a single tensor + const torch::Tensor& targets() const; + + // Trims the dataset to the first n pairs + CIFAR10&& use_subset(int64_t new_size); + + + private: + Mode mode_; + torch::Tensor images_, targets_; + }; + } // namespace datasets + + +This class's implementation reads from the binary distribution of the CIFAR10 dataset and builds two tensors which hold the images and labels. + +We use a subset of the dataset to use for calibration, since we don't need the the full dataset for effective calibration and calibration does +some take time, then define the preprocessing to apply to the images in the dataset and create a DataLoader from the dataset which will batch the data: + +.. code-block:: c++ + + auto calibration_dataset = datasets::CIFAR10(data_dir, datasets::CIFAR10::Mode::kTest) + .use_subset(320) + .map(torch::data::transforms::Normalize<>({0.4914, 0.4822, 0.4465}, + {0.2023, 0.1994, 0.2010})) + .map(torch::data::transforms::Stack<>()); + auto calibration_dataloader = torch::data::make_data_loader(std::move(calibration_dataset), + torch::data::DataLoaderOptions().batch_size(32) + .workers(2)); + + +Next we create a calibrator from the ``calibration_dataloader`` using the calibrator factory (found in ``torch_tensorrt/ptq.h``): + +.. code-block:: c++ + + #include "torch_tensorrt/ptq.h" + ... + + auto calibrator = torch_tensorrt::ptq::make_int8_calibrator(std::move(calibration_dataloader), calibration_cache_file, true); + +Here we also define a location to write a calibration cache file to which we can use to reuse the calibration data without needing the dataset and whether or not +we should use the cache file if it exists. There also exists a ``torch_tensorrt::ptq::make_int8_cache_calibrator`` factory which creates a calibrator that uses the cache +only for cases where you may do engine building on a machine that has limited storage (i.e. no space for a full dataset) or to have a simpiler deployment application. + +The calibrator factories create a calibrator that inherits from a ``nvinfer1::IInt8Calibrator`` virtual class (``nvinfer1::IInt8EntropyCalibrator2`` by default) which +defines the calibration algorithm used when calibrating. You can explicitly make the selection of calibration algorithm like this: + +.. code-block:: c++ + + // MinMax Calibrator is geared more towards NLP tasks + auto calibrator = torch_tensorrt::ptq::make_int8_calibrator(std::move(calibration_dataloader), calibration_cache_file, true); + +Then all thats required to setup the module for INT8 calibration is to set the following compile settings in the `torch_tensorrt::CompileSpec` struct and compiling the module: + +.. code-block:: c++ + + std::vector> input_shape = {{32, 3, 32, 32}}; + /// Configure settings for compilation + auto compile_spec = torch_tensorrt::CompileSpec({input_shape}); + /// Set operating precision to INT8 + compile_spec.enabled_precisions.insert(torch::kF16); + compile_spec.enabled_precisions.insert(torch::kI8); + /// Use the TensorRT Entropy Calibrator + compile_spec.ptq_calibrator = calibrator; + + auto trt_mod = torch_tensorrt::CompileGraph(mod, compile_spec); + +If you have an existing Calibrator implementation for TensorRT you may directly set the ``ptq_calibrator`` field with a pointer to your calibrator and it will work as well. +From here not much changes in terms of how to execution works. You are still able to fully use LibTorch as the sole interface for inference. Data should remain +in FP32 precision when it's passed into `trt_mod.forward`. There exists an example application in the Torch-TensorRT demo that takes you from training a VGG16 network on +CIFAR10 to deploying in INT8 with Torch-TensorRT here: https://github.com/pytorch/TensorRT/tree/master/cpp/ptq + +.. _writing_ptq_python: + +How to create your own PTQ application in Python +-------------------------------------------------- + +Torch-TensorRT Python API provides an easy and convenient way to use pytorch dataloaders with TensorRT calibrators. ``DataLoaderCalibrator`` class can be used to create +a TensorRT calibrator by providing desired configuration. The following code demonstrates an example on how to use it + +.. code-block:: python + + testing_dataset = torchvision.datasets.CIFAR10( + root="./data", + train=False, + download=True, + transform=transforms.Compose( + [ + transforms.ToTensor(), + transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)), + ] + ), + ) + + testing_dataloader = torch.utils.data.DataLoader( + testing_dataset, batch_size=1, shuffle=False, num_workers=1 + ) + calibrator = torch_tensorrt.ptq.DataLoaderCalibrator( + testing_dataloader, + cache_file="./calibration.cache", + use_cache=False, + algo_type=torch_tensorrt.ptq.CalibrationAlgo.ENTROPY_CALIBRATION_2, + device=torch.device("cuda:0"), + ) + + trt_mod = torch_tensorrt.compile(model, inputs=[torch_tensorrt.Input((1, 3, 32, 32))], + enabled_precisions={torch.float, torch.half, torch.int8}, + calibrator=calibrator, + device={ + "device_type": torch_tensorrt.DeviceType.GPU, + "gpu_id": 0, + "dla_core": 0, + "allow_gpu_fallback": False, + "disable_tf32": False + }) + +In the cases where there is a pre-existing calibration cache file that users want to use, ``CacheCalibrator`` can be used without any dataloaders. The following example demonstrates how +to use ``CacheCalibrator`` to use in INT8 mode. + +.. code-block:: python + + calibrator = torch_tensorrt.ptq.CacheCalibrator("./calibration.cache") + + trt_mod = torch_tensorrt.compile(model, inputs=[torch_tensorrt.Input([1, 3, 32, 32])], + enabled_precisions={torch.float, torch.half, torch.int8}, + calibrator=calibrator) + +If you already have an existing calibrator class (implemented directly using TensorRT API), you can directly set the calibrator field to your class which can be very convenient. +For a demo on how PTQ can be performed on a VGG network using Torch-TensorRT API, you can refer to https://github.com/pytorch/TensorRT/blob/master/tests/py/test_ptq_dataloader_calibrator.py +and https://github.com/pytorch/TensorRT/blob/master/tests/py/test_ptq_trt_calibrator.py + +Citations +^^^^^^^^^^^ + +Krizhevsky, A., & Hinton, G. (2009). Learning multiple layers of features from tiny images. + +Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556. diff --git a/docs/v1.2.0/_sources/tutorials/runtime.rst.txt b/docs/v1.2.0/_sources/tutorials/runtime.rst.txt new file mode 100644 index 0000000000..0cfc93200f --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/runtime.rst.txt @@ -0,0 +1,36 @@ +.. _runtime: + +Deploying Torch-TensorRT Programs +==================================== + +After compiling and saving Torch-TensorRT programs there is no longer a strict dependency on the full +Torch-TensorRT library. All that is required to run a compiled program is the runtime. There are therfore a couple +options to deploy your programs other than shipping the full Torch-TensorRT compiler with your applications. + +Torch-TensorRT package / libtorchtrt.so +-------------------------------------------- + +Once a program is compiled, you run it using the standard PyTorch APIs. All that is required is that the package +must be imported in python or linked in C++. + +Runtime Library +----------------- + +Distributed with the C++ distribution is ``libtorchtrt_runtime.so``. This library only contains the components +necessary to run Torch-TensorRT programs. Instead of linking ``libtorchtrt.so`` or importing ``torch_tensorrt`` you can +link ``libtorchtrt_runtime.so`` in your deployment programs or use ``DL_OPEN`` or ``LD_PRELOAD``. For python +you can load the runtime with ``torch.ops.load_library("libtorchtrt_runtime.so")``. You can then continue to use +programs just as you would otherwise via PyTorch API. + +.. note:: If you are using the standard distribution of PyTorch in Python on x86, likely you will need the pre-cxx11-abi variant of ``libtorchtrt_runtime.so``, check :ref:`Installation` documentation for more details. + +.. note:: If you are linking ``libtorchtrt_runtime.so``, likely using the following flags will help ``-Wl,--no-as-needed -ltorchtrt -Wl,--as-needed`` as theres no direct symbol dependency to anything in the Torch-TensorRT runtime for most Torch-TensorRT runtime applications + +An example of how to use ``libtorchtrt_runtime.so`` can be found here: https://github.com/pytorch/TensorRT/tree/master/examples/torchtrt_runtime_example + +Plugin Library +--------------- + +In the case you use Torch-TensorRT as a converter to a TensorRT engine and your engine uses plugins provided by Torch-TensorRT, Torch-TensorRT +ships the library ``libtorchtrt_plugins.so`` which contains the implementation of the TensorRT plugins used by Torch-TensorRT during +compilation. This library can be ``DL_OPEN`` or ``LD_PRELOAD`` similar to other TensorRT plugin libraries. diff --git a/docs/v1.2.0/_sources/tutorials/serving_torch_tensorrt_with_triton.rst.txt b/docs/v1.2.0/_sources/tutorials/serving_torch_tensorrt_with_triton.rst.txt new file mode 100644 index 0000000000..a713d563c2 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/serving_torch_tensorrt_with_triton.rst.txt @@ -0,0 +1,216 @@ +.. _serving_torch_tensorrt_with_triton: + +Serving a Torch-TensorRT model with Triton +========================================== + +Optimization and deployment go hand in hand in a discussion about Machine +Learning infrastructure. Once network level optimzation are done +to get the maximum performance, the next step would be to deploy it. + +However, serving this optimized model comes with it's own set of considerations +and challenges like: building an infrastructure to support concorrent model +executions, supporting clients over HTTP or gRPC and more. + +The `Triton Inference Server `__ +solves the aforementioned and more. Let's discuss step-by-step, the process of +optimizing a model with Torch-TensorRT, deploying it on Triton Inference +Server, and building a client to query the model. + +Step 1: Optimize your model with Torch-TensorRT +----------------------------------------------- + +Most Torch-TensorRT users will be familiar with this step. For the purpose of +this demonstration, we will be using a ResNet50 model from Torchhub. + +Let’s first pull the `NGC PyTorch Docker container `__. You may need to create +an account and get the API key from `here `__. +Sign up and login with your key (follow the instructions +`here `__ after signing up). + +:: + + # is the yy:mm for the publishing tag for NVIDIA's Pytorch + # container; eg. 22.04 + + docker run -it --gpus all -v ${PWD}:/scratch_space nvcr.io/nvidia/pytorch:-py3 + cd /scratch_space + +Once inside the container, we can proceed to download a ResNet model from +Torchhub and optimize it with Torch-TensorRT. + +:: + + import torch + import torch_tensorrt + torch.hub._validate_not_a_forked_repo=lambda a,b,c: True + + # load model + model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True).eval().to("cuda") + + # Compile with Torch TensorRT; + trt_model = torch_tensorrt.compile(model, + inputs= [torch_tensorrt.Input((1, 3, 224, 224))], + enabled_precisions= { torch.half} # Run with FP32 + ) + + # Save the model + torch.jit.save(trt_model, "model.pt") + +After copying the model, exit the container. The next step in the process +is to set up a Triton Inference Server. + +Step 2: Set Up Triton Inference Server +-------------------------------------- + +If you are new to the Triton Inference Server and want to learn more, we +highly recommend to checking our `Github +Repository `__. + +To use Triton, we need to make a model repository. A model repository, as the +name suggested, is a repository of the models the Inference server hosts. While +Triton can serve models from multiple repositories, in this example, we will +discuss the simplest possible form of the model repository. + +The structure of this repository should look something like this: + +:: + + model_repository + | + +-- resnet50 + | + +-- config.pbtxt + +-- 1 + | + +-- model.pt + +There are two files that Triton requires to serve the model: the model itself +and a model configuration file which is typically provided in ``config.pbtxt``. +For the model we prepared in step 1, the following configuration can be used: + +:: + + name: "resnet50" + platform: "pytorch_libtorch" + max_batch_size : 0 + input [ + { + name: "input__0" + data_type: TYPE_FP32 + dims: [ 3, 224, 224 ] + reshape { shape: [ 1, 3, 224, 224 ] } + } + ] + output [ + { + name: "output__0" + data_type: TYPE_FP32 + dims: [ 1, 1000 ,1, 1] + reshape { shape: [ 1, 1000 ] } + } + ] + +The ``config.pbtxt`` file is used to describe the exact model configuration +with details like the names and shapes of the input and output layer(s), +datatypes, scheduling and batching details and more. If you are new to Triton, +we highly encourage you to check out this `section of our +documentation `__ +for more details. + +With the model repository setup, we can proceed to launch the Triton server +with the docker command below. Refer `this page `__ for the pull tag for the container. + +:: + + # Make sure that the TensorRT version in the Triton container + # and TensorRT version in the environment used to optimize the model + # are the same. + + docker run --gpus all --rm -p 8000:8000 -p 8001:8001 -p 8002:8002 -v /full/path/to/the_model_repository/model_repository:/models nvcr.io/nvidia/tritonserver:-py3 tritonserver --model-repository=/models + +This should spin up a Triton Inference server. Next step, building a simple +http client to query the server. + +Step 3: Building a Triton Client to Query the Server +---------------------------------------------------- + +Before proceeding, make sure to have a sample image on hand. If you don't +have one, download an example image to test inference. In this section, we +will be going over a very basic client. For a variety of more fleshed out +examples, refer to the `Triton Client Repository `__ + +:: + + wget -O img1.jpg "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg" + +We then need to install dependencies for building a python client. These will +change from client to client. For a full list of all languages supported by Triton, +please refer to `Triton's client repository `__. + +:: + + pip install torchvision + pip install attrdict + pip install nvidia-pyindex + pip install tritonclient[all] + +Let's jump into the client. Firstly, we write a small preprocessing function to +resize and normalize the query image. + +:: + + import numpy as np + from torchvision import transforms + from PIL import Image + import tritonclient.http as httpclient + from tritonclient.utils import triton_to_np_dtype + + # preprocessing function + def rn50_preprocess(img_path="img1.jpg"): + img = Image.open(img_path) + preprocess = transforms.Compose([ + transforms.Resize(256), + transforms.CenterCrop(224), + transforms.ToTensor(), + transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), + ]) + return preprocess(img).numpy() + + transformed_img = rn50_preprocess() + +Building a client requires three basic points. Firstly, we setup a connection +with the Triton Inference Server. + +:: + + # Setting up client + client = httpclient.InferenceServerClient(url="localhost:8000") + +Secondly, we specify the names of the input and output layer(s) of our model. + +:: + + inputs = httpclient.InferInput("input__0", transformed_img.shape, datatype="FP32") + inputs.set_data_from_numpy(transformed_img, binary_data=True) + + outputs = httpclient.InferRequestedOutput("output__0", binary_data=True, class_count=1000) + +Lastly, we send an inference request to the Triton Inference Server. + +:: + + # Querying the server + results = client.infer(model_name="resnet50", inputs=[inputs], outputs=[outputs]) + inference_output = results.as_numpy('output__0') + print(inference_output[:5]) + +The output of the same should look like below: + +:: + + [b'12.468750:90' b'11.523438:92' b'9.664062:14' b'8.429688:136' + b'8.234375:11'] + +The output format here is ``:``. +To learn how to map these to the label names and more, refer to Triton Inference Server's +`documentation `__. diff --git a/docs/v1.2.0/_sources/tutorials/torchtrtc.rst.txt b/docs/v1.2.0/_sources/tutorials/torchtrtc.rst.txt new file mode 100644 index 0000000000..b841c891e5 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/torchtrtc.rst.txt @@ -0,0 +1,128 @@ +.. _torchtrtc: + +torchtrtc +================================= + +``torchtrtc`` is a CLI application for using the Torch-TensorRT compiler. It serves as an easy way to compile a +TorchScript Module with Torch-TensorRT from the command-line to quickly check support or as part of +a deployment pipeline. All basic features of the compiler are supported including post training +quantization (though you must already have a calibration cache file to use the PTQ feature). The compiler can +output two formats, either a TorchScript program with the TensorRT engine embedded or +the TensorRT engine itself as a PLAN file. + +All that is required to run the program after compilation is for C++ linking against ``libtorchtrt.so`` +or in Python importing the torch_tensorrt package. All other aspects of using compiled modules are identical +to standard TorchScript. Load with ``torch.jit.load()`` and run like you would run any other module. + +.. code-block:: txt + + torchtrtc [input_file_path] [output_file_path] + [input_specs...] {OPTIONS} + + torchtrtc is a compiler for TorchScript, it will compile and optimize + TorchScript programs to run on NVIDIA GPUs using TensorRT + + OPTIONS: + + -h, --help Display this help menu + Verbiosity of the compiler + -v, --verbose Dumps debugging information about the + compilation process onto the console + -w, --warnings Disables warnings generated during + compilation onto the console (warnings + are on by default) + --i, --info Dumps info messages generated during + compilation onto the console + --build-debuggable-engine Creates a debuggable engine + --allow-gpu-fallback (Only used when targeting DLA + (device-type)) Lets engine run layers on + GPU if they are not supported on DLA + --require-full-compilation Require that the model should be fully + compiled to TensorRT or throw an error + --check-method-support=[method_name] + Check the support for end to end + compilation of a specified method in the + TorchScript module + --disable-tf32 Prevent Float32 layers from using the + TF32 data format + --sparse-weights Enable sparsity for weights of conv and + FC layers + -p[precision...], + --enable-precision=[precision...] (Repeatable) Enabling an operating + precision for kernels to use when + building the engine (Int8 requires a + calibration-cache argument) [ float | + float32 | f32 | fp32 | half | float16 | + f16 | fp16 | int8 | i8 | char ] + (default: float) + -d[type], --device-type=[type] The type of device the engine should be + built for [ gpu | dla ] (default: gpu) + --gpu-id=[gpu_id] GPU id if running on multi-GPU platform + (defaults to 0) + --dla-core=[dla_core] DLACore id if running on available DLA + (defaults to 0) + --engine-capability=[capability] The type of device the engine should be + built for [ standard | safety | + dla_standalone ] + --calibration-cache-file=[file_path] + Path to calibration cache file to use + for post training quantization + --teo=[op_name...], + --torch-executed-op=[op_name...] (Repeatable) Operator in the graph that + should always be run in PyTorch for + execution (partial compilation must be + enabled) + --tem=[module_name...], + --torch-executed-mod=[module_name...] + (Repeatable) Module that should always + be run in Pytorch for execution (partial + compilation must be enabled) + --mbs=[num_ops], + --min-block-size=[num_ops] Minimum number of contiguous TensorRT + supported ops to compile a subgraph to + TensorRT + --embed-engine Whether to treat input file as a + serialized TensorRT engine and embed it + into a TorchScript module (device spec + must be provided) + --num-min-timing-iter=[num_iters] Number of minimization timing iterations + used to select kernels + --num-avg-timing-iters=[num_iters] + Number of averaging timing iterations + used to select kernels + --workspace-size=[workspace_size] Maximum size of workspace given to + TensorRT + -t[threshold], + --threshold=[threshold] Maximum acceptable numerical deviation + from standard torchscript output + (default 2e-5) + --no-threshold-check Skip checking threshold compliance + --truncate-long-double, + --truncate, --truncate-64bit Truncate weights that are provided in + 64bit to 32bit (Long, Double to Int, + Float) + --save-engine Instead of compiling a full a + TorchScript program, save the created + engine to the path specified as the + output path + input_file_path Path to input TorchScript file + output_file_path Path for compiled TorchScript (or + TensorRT engine) file + input_specs... Specs for inputs to engine, can either + be a single size or a range defined by + Min, Optimal, Max sizes, e.g. + "(N,..,C,H,W)" + "[(MIN_N,..,MIN_C,MIN_H,MIN_W);(OPT_N,..,OPT_C,OPT_H,OPT_W);(MAX_N,..,MAX_C,MAX_H,MAX_W)]". + Data Type and format can be specified by + adding an "@" followed by dtype and "%" + followed by format to the end of the + shape spec. e.g. "(3, 3, 32, + 32)@f16%NHWC" + "--" can be used to terminate flag options and force all following + arguments to be treated as positional options + +e.g. + +.. code-block:: shell + + torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@f16%contiguous" -p f16 diff --git a/docs/v1.2.0/_sources/tutorials/use_from_pytorch.rst.txt b/docs/v1.2.0/_sources/tutorials/use_from_pytorch.rst.txt new file mode 100644 index 0000000000..296e4c3c32 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/use_from_pytorch.rst.txt @@ -0,0 +1,64 @@ +.. _use_from_pytorch: + +Using Torch-TensorRT Directly From PyTorch +============================================ + +You will now be able to directly access TensorRT from PyTorch APIs. The process to use this feature +is very similar to the compilation workflow described in :ref:`getting_started_with_python_api` + +Start by loading ``torch_tensorrt`` into your application. + +.. code-block:: python + + import torch + import torch_tensorrt + + +Then given a TorchScript module, you can compile it with TensorRT using the ``torch._C._jit_to_backend("tensorrt", ...)`` API. + +.. code-block:: python + + import torchvision.models as models + + model = models.mobilenet_v2(pretrained=True) + script_model = torch.jit.script(model) + +Unlike the ``compile`` API in Torch-TensorRT which assumes you are trying to compile the ``forward`` function of a module +or the ``convert_method_to_trt_engine`` which converts a specified function to a TensorRT engine, the backend API +will take a dictionary which maps names of functions to compile to Compilation Spec objects which wrap the same +sort of dictionary you would provide to ``compile``. For more information on the compile spec dictionary take a look +at the documentation for the Torch-TensorRT ``TensorRTCompileSpec`` API. + +.. code-block:: python + + spec = { + "forward": torch_tensorrt.ts.TensorRTCompileSpec( + { + "inputs": [torch_tensorrt.Input([1, 3, 300, 300])], + "enabled_precisions": {torch.float, torch.half}, + "refit": False, + "debug": False, + "device": { + "device_type": torch_tensorrt.DeviceType.GPU, + "gpu_id": 0, + "dla_core": 0, + "allow_gpu_fallback": True, + }, + "capability": torch_tensorrt.EngineCapability.default, + "num_avg_timing_iters": 1, + } + ) + } + +Now to compile with Torch-TensorRT, provide the target module objects and the spec dictionary to ``torch._C._jit_to_backend("tensorrt", ...)`` + +.. code-block:: python + + trt_model = torch._C._jit_to_backend("tensorrt", script_model, spec) + +To run explicitly call the function of the method you want to run (vs. how you can just call on the module itself in standard PyTorch) + +.. code-block:: python + + input = torch.randn((1, 3, 300, 300)).to("cuda").to(torch.half) + print(trt_model.forward(input)) diff --git a/docs/v1.2.0/_sources/tutorials/using_dla.rst.txt b/docs/v1.2.0/_sources/tutorials/using_dla.rst.txt new file mode 100644 index 0000000000..9b062f7053 --- /dev/null +++ b/docs/v1.2.0/_sources/tutorials/using_dla.rst.txt @@ -0,0 +1,47 @@ +.. _using_dla: + +DLA +================================= + +``DLA`` NVIDIA Deep Learning Accelerator is a fixed-function accelerator engine targeted for deep learning operations. DLA is designed to do full hardware acceleration of convolutional neural networks. DLA supports various layers such as convolution, deconvolution, fully-connected, activation, pooling, batch normalization, etc. ``torch_tensorrt`` supports compilation of TorchScript Module and deployment pipeline on the DLA hardware available on NVIDIA embedded platforms. + +NOTE: DLA supports fp16 and int8 precision only. + +Using DLA with torchtrtc + +.. code-block:: shell + + torchtrtc [input_file_path] [output_file_path] [input_shapes...] -p f16 -d dla {OPTIONS} + +Using DLA in a C++ application + +.. code-block:: c++ + + std::vector> input_shape = {{32, 3, 32, 32}}; + auto compile_spec = torch_tensorrt::CompileSpec({input_shape}); + + # Set a precision. DLA supports fp16 or int8 only + compile_spec.enabled_precisions = {torch::kF16}; + compile_spec.device.device_type = torch_tensorrt::CompileSpec::DeviceType::kDLA; + + # Make sure the gpu id is set to Xavier id for DLA + compile_spec.device.gpu_id = 0; + + # Set the DLA core id + compile_spec.device.dla_core = 1; + + # If a layer fails to run on DLA it will fallback to GPU + compile_spec.device.allow_gpu_fallback = true; + + +Using DLA in a python application + +.. code-block:: python + + compile_spec = { + "inputs": [torch_tensorrt.Input(self.input.shape)], + "device": torch_tensorrt.Device("dla:0", allow_gpu_fallback=True), + "enalbed_precisions": {torch.half}, + } + + trt_mod = torch_tensorrt.compile(self.scripted_model, compile_spec) diff --git a/docs/v1.2.0/_static/basic.css b/docs/v1.2.0/_static/basic.css new file mode 100644 index 0000000000..bf18350b65 --- /dev/null +++ b/docs/v1.2.0/_static/basic.css @@ -0,0 +1,906 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 450px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +dl.footnote > dt, +dl.citation > dt { + float: left; + margin-right: 0.5em; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dt:after { + content: ":"; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/v1.2.0/_static/collapsible-lists/LICENSE.md b/docs/v1.2.0/_static/collapsible-lists/LICENSE.md new file mode 100644 index 0000000000..ef81a64535 --- /dev/null +++ b/docs/v1.2.0/_static/collapsible-lists/LICENSE.md @@ -0,0 +1,7 @@ +This code is the fruit of Kate Morley's labor, taken from here: + +- http://code.iamkate.com/javascript/collapsible-lists/ + +She includes a generous CC0 1.0 license for all materials on her site: + +- http://code.iamkate.com/ diff --git a/docs/v1.2.0/_static/collapsible-lists/css/button-closed.png b/docs/v1.2.0/_static/collapsible-lists/css/button-closed.png new file mode 100644 index 0000000000000000000000000000000000000000..417eb2fc40d844946cb18f0966073d9549b2682d GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X7J0fjhE&{YnRu4-h=M??`^DysoChD5DQRk`<~UBuW2qKc zziXdDcc-59hY!zd`yQXz^Ic!5%6zAqU-6V>n_mhrtlhfXuuURaI5PXG;W68mg4800 z-G-bOYuRTgKjzR_n)kX+IsWPo<0ApmnQQkS+m?HMM)ACd7Y{5Hj7qC3N#qpYl5P_0 zWxnG)w_L?GyGa5~OQuZTz%MUjB%e`n`M&%g4g-eh-O1-=TXk}Qu4V9a^>bP0l+XkK Dnpk0b literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/collapsible-lists/css/button-open.png b/docs/v1.2.0/_static/collapsible-lists/css/button-open.png new file mode 100644 index 0000000000000000000000000000000000000000..ac4a6ef32a50516609a06733d3365c78237e2143 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XCV9FzhE&{|GBJ>gS&_#j`GUT_;*XoNPsnBTUtm6Y&+UWI zzhh}p_Fm4rZ#T9-;BoF*cdbf!(e5A-HSIvY)bAY6=4_uLWcl2u=-kP@-`8&amZQa? zcbGwU|ALtpHI%;ip7~?-g8%3Cn;OS5n38#<|C#vBUf-h_aen=WPb~a4CH+tKE*EHG o{QhC0^XI-+?dA4A1QHnTT=Tf{X8(i9K-V#Ny85}Sb4q9e0Cgu}D*ylh literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/collapsible-lists/css/button.png b/docs/v1.2.0/_static/collapsible-lists/css/button.png new file mode 100644 index 0000000000000000000000000000000000000000..631d734d136a3c0e7698e249b09ac06462589ca8 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XIy_w*Ln>}_1wcZrxMOpdTT1SY*0BaajE)#RCaoBVu2L* zl`q`0TYJ;m{DmgIKFEJ*``x_5|FhF>RLskN_)_w^#h<=_&?6G!7R%4e%r2L^v-9u4 c=?u&a+cKO!dpZ{#2fB&D)78&qol`;+0OL4aGynhq literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/collapsible-lists/css/list-item-contents.png b/docs/v1.2.0/_static/collapsible-lists/css/list-item-contents.png new file mode 100644 index 0000000000000000000000000000000000000000..bc082929dccbabcf58e5e7d88abe49bcb21c191e GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCFS978H@y*ay)lYxPQ`QU?pk5l&F=w6!exiSCJoJkpJ l*0<{;UuGVFgYVglYz$osB0q2a^8jQegQu&X%Q~loCIAKZH$VUY literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/collapsible-lists/css/list-item-last-open.png b/docs/v1.2.0/_static/collapsible-lists/css/list-item-last-open.png new file mode 100644 index 0000000000000000000000000000000000000000..cf4cf9bdb9027b5b50ce2e259e5c8248d08e4e28 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jikv-N978H@CH?vT-=5j(#;#Irj|meS+Zs9(8xE{Ex>&3~ z$|mdMh0QZq`|td3+%RL}F}Z*Cvv#=Y%5AN<@@QeYp+f^BL(Mr3|LlYN!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jikv)M978H@CH?vT-=5j(#;#Irj|meS+Zs9(8xE{Ex>&3~ z$|mdMh0QZq`|s38MV;wbJ4vGVabUN*uH4p&D@i#F3I`ZWpL2P7J1TSnO=IwM^>bP0 Hl+XkKgRnR! literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/collapsible-lists/css/list-item-open.png b/docs/v1.2.0/_static/collapsible-lists/css/list-item-open.png new file mode 100644 index 0000000000000000000000000000000000000000..0889c801a9a86ea0fdbbd8cb07e3f47885bfa33e GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jikv)M978H@CH?vT-=5j(#;#Irj|meS+Zs9(8xE{Ex>&3~ z$|mdMh0QZq`|td3+%#j_)Fb~d9x=`O2$JKs?Pg@+VW>I9;UCzqxBzGxgQu&X%Q~lo FCIHwyIzIpa literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/collapsible-lists/css/list-item-root.png b/docs/v1.2.0/_static/collapsible-lists/css/list-item-root.png new file mode 100644 index 0000000000000000000000000000000000000000..874417106af03875a02c3e19b1d57186419be94b GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii|y7978H@y}7{1%fP^Kctdl&_4V=;hZAWFPHJ_UW$Ci= p@bLU$*(Mvt36 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/collapsible-lists/css/list-item.png b/docs/v1.2.0/_static/collapsible-lists/css/list-item.png new file mode 100644 index 0000000000000000000000000000000000000000..81934f9b82d482150215e2dbfd21b7a94802c1c7 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^azHG>!3HGXX8P_2Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JitIgI978H@CH?vT-=5j(#;#Irj|meS+Zs9(8xE{Ex>&3~ z$|mdMh0QZq`|td3+*Gk;lEl`ED~|%Z-F4j<85r3Zj#;q>9G$xQ9MC8RPgg&ebxsLQ E0O;yB$N&HU literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/collapsible-lists/css/tree_view.css b/docs/v1.2.0/_static/collapsible-lists/css/tree_view.css new file mode 100644 index 0000000000..fa21ac4e84 --- /dev/null +++ b/docs/v1.2.0/_static/collapsible-lists/css/tree_view.css @@ -0,0 +1,61 @@ +/* Source taken directly from: + * view-source:http://code.iamkate.com/javascript/collapsible-lists/ + * + * Kate Morley's license for this code is CC0: + * Created by [Kate Morley](http://iamkate.com/). Except where explicitly + * stated otherwise, all content is released under the terms of the + * [CC0 1.0 Universal legal code](http://creativecommons.org/publicdomain/zero/1.0/legalcode). + */ +.treeView{ + -moz-user-select:none; + position:relative; +} + +.treeView ul{ + margin:0 0 0 -1.5em ! important; + padding:0 0 0 1.5em ! important; +} + +.treeView ul ul{ + background:url('list-item-contents.png') repeat-y left ! important; +} + +.treeView li.lastChild > ul{ + background-image:none ! important; +} + +.treeView li{ + margin:0 ! important; + padding:0 ! important; + background:url('list-item-root.png') no-repeat top left ! important; + list-style-position:inside ! important; + list-style-image:url('button.png') ! important; + cursor:auto; +} + +.treeView li.collapsibleListOpen{ + list-style-image:url('button-open.png') ! important; + cursor:pointer; +} + +.treeView li.collapsibleListClosed{ + list-style-image:url('button-closed.png') ! important; + cursor:pointer; +} + +.treeView li li{ + background-image:url('list-item.png') ! important; + padding-left:1.5em ! important; +} + +.treeView li.lastChild{ + background-image:url('list-item-last.png') ! important; +} + +.treeView li.collapsibleListOpen{ + background-image:url('list-item-open.png') ! important; +} + +.treeView li.collapsibleListOpen.lastChild{ + background-image:url('list-item-last-open.png') ! important; +} diff --git a/docs/v1.2.0/_static/collapsible-lists/js/CollapsibleLists.compressed.js b/docs/v1.2.0/_static/collapsible-lists/js/CollapsibleLists.compressed.js new file mode 100644 index 0000000000..429406cf39 --- /dev/null +++ b/docs/v1.2.0/_static/collapsible-lists/js/CollapsibleLists.compressed.js @@ -0,0 +1,83 @@ +/* + +CollapsibleLists.js + +An object allowing lists to dynamically expand and collapse + +Created by Kate Morley - http://code.iamkate.com/ - and released under +the terms of the CC0 1.0 Universal legal code: + +http://creativecommons.org/publicdomain/zero/1.0/legalcode + +*/ + +var CollapsibleLists=new function(){ +this.apply=function(_1){ +var _2=document.getElementsByTagName("ul"); +for(var _3=0;_3<_2.length;_3++){ +if(_2[_3].className.match(/(^| )collapsibleList( |$)/)){ +this.applyTo(_2[_3],true); +if(!_1){ +var _4=_2[_3].getElementsByTagName("ul"); +for(var _5=0;_5<_4.length;_5++){ +_4[_5].className+=" collapsibleList"; +} +} +} +} +}; +this.applyTo=function(_6,_7){ +var _8=_6.getElementsByTagName("li"); +for(var _9=0;_9<_8.length;_9++){ +if(!_7||_6==_8[_9].parentNode){ +if(_8[_9].addEventListener){ +_8[_9].addEventListener("mousedown",function(e){ +e.preventDefault(); +},false); +}else{ +_8[_9].attachEvent("onselectstart",function(){ +event.returnValue=false; +}); +} +if(_8[_9].addEventListener){ +_8[_9].addEventListener("click",_a(_8[_9]),false); +}else{ +_8[_9].attachEvent("onclick",_a(_8[_9])); +} +_b(_8[_9]); +} +} +}; +function _a(_c){ +return function(e){ +if(!e){ +e=window.event; +} +var _d=(e.target?e.target:e.srcElement); +while(_d.nodeName!="LI"){ +_d=_d.parentNode; +} +if(_d==_c){ +_b(_c); +} +}; +}; +function _b(_e){ +var _f=_e.className.match(/(^| )collapsibleListClosed( |$)/); +var uls=_e.getElementsByTagName("ul"); +for(var _10=0;_100){ +_e.className+=" collapsibleList"+(_f?"Open":"Closed"); +} +}; +}(); + diff --git a/docs/v1.2.0/_static/collapsible-lists/js/apply-collapsible-lists.js b/docs/v1.2.0/_static/collapsible-lists/js/apply-collapsible-lists.js new file mode 100644 index 0000000000..e848bb9811 --- /dev/null +++ b/docs/v1.2.0/_static/collapsible-lists/js/apply-collapsible-lists.js @@ -0,0 +1,3 @@ +$(document).ready(function() { + CollapsibleLists.apply(); +}); diff --git a/docs/v1.2.0/_static/css/theme.css b/docs/v1.2.0/_static/css/theme.css new file mode 100644 index 0000000000..335a5b8346 --- /dev/null +++ b/docs/v1.2.0/_static/css/theme.css @@ -0,0 +1,12441 @@ +@charset "UTF-8"; +/*! + * Bootstrap v4.0.0 (https://getbootstrap.com) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #007bff; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +*, +*::before, +*::after { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +@-ms-viewport { + width: device-width; +} +article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus { + outline: 0 !important; +} + +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +dfn { + font-style: italic; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; + -webkit-text-decoration-skip: objects; +} +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; +} +a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { + color: inherit; + text-decoration: none; +} +a:not([href]):not([tabindex]):focus { + outline: 0; +} + +pre, +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg:not(:root) { + overflow: hidden; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: .5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-family: inherit; + font-weight: 500; + line-height: 1.2; + color: inherit; +} + +h1, .h1 { + font-size: 2.5rem; +} + +h2, .h2 { + font-size: 2rem; +} + +h3, .h3 { + font-size: 1.75rem; +} + +h4, .h4 { + font-size: 1.5rem; +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +small, +.small { + font-size: 80%; + font-weight: 400; +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #6c757d; +} +.blockquote-footer::before { + content: "\2014 \00A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #6c757d; +} + +code, +kbd, +pre, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-break: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; +} + +pre { + display: block; + font-size: 87.5%; + color: #212529; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +.container-fluid { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.col-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; +} + +.col-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; +} + +.col-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; +} + +.col-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; +} + +.col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; +} + +.col-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; +} + +.col-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; +} + +.col-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; +} + +.col-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; +} + +.col-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; +} + +.offset-1 { + margin-left: 8.3333333333%; +} + +.offset-2 { + margin-left: 16.6666666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.3333333333%; +} + +.offset-5 { + margin-left: 41.6666666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.3333333333%; +} + +.offset-8 { + margin-left: 66.6666666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.3333333333%; +} + +.offset-11 { + margin-left: 91.6666666667%; +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-sm-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-sm-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + } + + .col-sm-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .col-sm-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-sm-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + + .col-sm-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + } + + .col-sm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-sm-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + } + + .col-sm-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + } + + .col-sm-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-sm-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + } + + .col-sm-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + } + + .col-sm-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-sm-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-sm-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-sm-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-sm-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-sm-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-sm-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-sm-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-sm-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-sm-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-sm-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-sm-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-sm-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-sm-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-sm-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-sm-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-sm-0 { + margin-left: 0; + } + + .offset-sm-1 { + margin-left: 8.3333333333%; + } + + .offset-sm-2 { + margin-left: 16.6666666667%; + } + + .offset-sm-3 { + margin-left: 25%; + } + + .offset-sm-4 { + margin-left: 33.3333333333%; + } + + .offset-sm-5 { + margin-left: 41.6666666667%; + } + + .offset-sm-6 { + margin-left: 50%; + } + + .offset-sm-7 { + margin-left: 58.3333333333%; + } + + .offset-sm-8 { + margin-left: 66.6666666667%; + } + + .offset-sm-9 { + margin-left: 75%; + } + + .offset-sm-10 { + margin-left: 83.3333333333%; + } + + .offset-sm-11 { + margin-left: 91.6666666667%; + } +} +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-md-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-md-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + } + + .col-md-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .col-md-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-md-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + + .col-md-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + } + + .col-md-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-md-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + } + + .col-md-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + } + + .col-md-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-md-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + } + + .col-md-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + } + + .col-md-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-md-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-md-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-md-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-md-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-md-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-md-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-md-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-md-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-md-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-md-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-md-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-md-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-md-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-md-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-md-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-md-0 { + margin-left: 0; + } + + .offset-md-1 { + margin-left: 8.3333333333%; + } + + .offset-md-2 { + margin-left: 16.6666666667%; + } + + .offset-md-3 { + margin-left: 25%; + } + + .offset-md-4 { + margin-left: 33.3333333333%; + } + + .offset-md-5 { + margin-left: 41.6666666667%; + } + + .offset-md-6 { + margin-left: 50%; + } + + .offset-md-7 { + margin-left: 58.3333333333%; + } + + .offset-md-8 { + margin-left: 66.6666666667%; + } + + .offset-md-9 { + margin-left: 75%; + } + + .offset-md-10 { + margin-left: 83.3333333333%; + } + + .offset-md-11 { + margin-left: 91.6666666667%; + } +} +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-lg-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-lg-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + } + + .col-lg-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .col-lg-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-lg-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + + .col-lg-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + } + + .col-lg-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-lg-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + } + + .col-lg-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + } + + .col-lg-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-lg-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + } + + .col-lg-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + } + + .col-lg-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-lg-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-lg-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-lg-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-lg-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-lg-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-lg-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-lg-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-lg-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-lg-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-lg-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-lg-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-lg-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-lg-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-lg-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-lg-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-lg-0 { + margin-left: 0; + } + + .offset-lg-1 { + margin-left: 8.3333333333%; + } + + .offset-lg-2 { + margin-left: 16.6666666667%; + } + + .offset-lg-3 { + margin-left: 25%; + } + + .offset-lg-4 { + margin-left: 33.3333333333%; + } + + .offset-lg-5 { + margin-left: 41.6666666667%; + } + + .offset-lg-6 { + margin-left: 50%; + } + + .offset-lg-7 { + margin-left: 58.3333333333%; + } + + .offset-lg-8 { + margin-left: 66.6666666667%; + } + + .offset-lg-9 { + margin-left: 75%; + } + + .offset-lg-10 { + margin-left: 83.3333333333%; + } + + .offset-lg-11 { + margin-left: 91.6666666667%; + } +} +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-xl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-xl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + } + + .col-xl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .col-xl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-xl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + + .col-xl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + } + + .col-xl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-xl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + } + + .col-xl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + } + + .col-xl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-xl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + } + + .col-xl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + } + + .col-xl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-xl-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-xl-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-xl-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-xl-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-xl-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-xl-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-xl-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-xl-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-xl-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-xl-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-xl-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-xl-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-xl-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-xl-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-xl-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-xl-0 { + margin-left: 0; + } + + .offset-xl-1 { + margin-left: 8.3333333333%; + } + + .offset-xl-2 { + margin-left: 16.6666666667%; + } + + .offset-xl-3 { + margin-left: 25%; + } + + .offset-xl-4 { + margin-left: 33.3333333333%; + } + + .offset-xl-5 { + margin-left: 41.6666666667%; + } + + .offset-xl-6 { + margin-left: 50%; + } + + .offset-xl-7 { + margin-left: 58.3333333333%; + } + + .offset-xl-8 { + margin-left: 66.6666666667%; + } + + .offset-xl-9 { + margin-left: 75%; + } + + .offset-xl-10 { + margin-left: 83.3333333333%; + } + + .offset-xl-11 { + margin-left: 91.6666666667%; + } +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; + background-color: transparent; +} +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; +} +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; +} +.table tbody + tbody { + border-top: 2px solid #dee2e6; +} +.table .table { + background-color: #fff; +} + +.table-sm th, +.table-sm td { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid #dee2e6; +} +.table-bordered th, +.table-bordered td { + border: 1px solid #dee2e6; +} +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} + +.table-hover tbody tr:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #b8daff; +} + +.table-hover .table-primary:hover { + background-color: #9fcdff; +} +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #9fcdff; +} + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #d6d8db; +} + +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #c8cbcf; +} + +.table-success, +.table-success > th, +.table-success > td { + background-color: #c3e6cb; +} + +.table-hover .table-success:hover { + background-color: #b1dfbb; +} +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #b1dfbb; +} + +.table-info, +.table-info > th, +.table-info > td { + background-color: #bee5eb; +} + +.table-hover .table-info:hover { + background-color: #abdde5; +} +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #abdde5; +} + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #ffeeba; +} + +.table-hover .table-warning:hover { + background-color: #ffe8a1; +} +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f5c6cb; +} + +.table-hover .table-danger:hover { + background-color: #f1b0b7; +} +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} + +.table-light, +.table-light > th, +.table-light > td { + background-color: #fdfdfe; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf6; +} + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #c6c8ca; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table .thead-dark th { + color: #fff; + background-color: #212529; + border-color: #32383e; +} +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.table-dark { + color: #fff; + background-color: #212529; +} +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #32383e; +} +.table-dark.table-bordered { + border: 0; +} +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} +.table-dark.table-hover tbody tr:hover { + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive-sm > .table-bordered { + border: 0; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive-md > .table-bordered { + border: 0; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive-lg > .table-bordered { + border: 0; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; +} +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; +} +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.form-control::-webkit-input-placeholder { + color: #6c757d; + opacity: 1; +} +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} +.form-control::-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +select.form-control:not([size]):not([multiple]) { + height: calc(2.25rem + 2px); +} +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding-top: 0.375rem; + padding-bottom: 0.375rem; + margin-bottom: 0; + line-height: 1.5; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control, +.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text, +.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text, +.input-group-sm > .input-group-prepend > .form-control-plaintext.btn, +.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control, +.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text, +.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text, +.input-group-lg > .input-group-prepend > .form-control-plaintext.btn, +.input-group-lg > .input-group-append > .form-control-plaintext.btn { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm, .input-group-sm > .form-control, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), +.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), +.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]), +.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]), +.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) { + height: calc(1.8125rem + 2px); +} + +.form-control-lg, .input-group-lg > .form-control, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]), +.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), +.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]), +.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]), +.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) { + height: calc(2.875rem + 2px); +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} +.form-check-input:disabled ~ .form-check-label { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #28a745; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(40, 167, 69, 0.8); + border-radius: .2rem; +} + +.was-validated .form-control:valid, .form-control.is-valid, +.was-validated .custom-select:valid, +.custom-select.is-valid { + border-color: #28a745; +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus, +.was-validated .custom-select:valid:focus, +.custom-select.is-valid:focus { + border-color: #28a745; + -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.was-validated .form-control:valid ~ .valid-feedback, +.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback, +.form-control.is-valid ~ .valid-tooltip, +.was-validated .custom-select:valid ~ .valid-feedback, +.was-validated .custom-select:valid ~ .valid-tooltip, +.custom-select.is-valid ~ .valid-feedback, +.custom-select.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #28a745; +} +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { + color: #28a745; +} +.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + background-color: #71dd8a; +} +.was-validated .custom-control-input:valid ~ .valid-feedback, +.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback, +.custom-control-input.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + background-color: #34ce57; +} +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25); + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #28a745; +} +.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before { + border-color: inherit; +} +.was-validated .custom-file-input:valid ~ .valid-feedback, +.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback, +.custom-file-input.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(220, 53, 69, 0.8); + border-radius: .2rem; +} + +.was-validated .form-control:invalid, .form-control.is-invalid, +.was-validated .custom-select:invalid, +.custom-select.is-invalid { + border-color: #dc3545; +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, +.was-validated .custom-select:invalid:focus, +.custom-select.is-invalid:focus { + border-color: #dc3545; + -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} +.was-validated .form-control:invalid ~ .invalid-feedback, +.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback, +.form-control.is-invalid ~ .invalid-tooltip, +.was-validated .custom-select:invalid ~ .invalid-feedback, +.was-validated .custom-select:invalid ~ .invalid-tooltip, +.custom-select.is-invalid ~ .invalid-feedback, +.custom-select.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { + color: #dc3545; +} +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + background-color: #efa2a9; +} +.was-validated .custom-control-input:invalid ~ .invalid-feedback, +.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback, +.custom-control-input.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + background-color: #e4606d; +} +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25); + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #dc3545; +} +.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before { + border-color: inherit; +} +.was-validated .custom-file-input:invalid ~ .invalid-feedback, +.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback, +.custom-file-input.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.form-inline { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.form-inline .form-check { + width: 100%; +} +@media (min-width: 576px) { + .form-inline label { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group { + width: auto; + } + .form-inline .form-check { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + } + .form-inline .custom-control-label { + margin-bottom: 0; + } +} + +.btn { + display: inline-block; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; +} +.btn:hover, .btn:focus { + text-decoration: none; +} +.btn:focus, .btn.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.btn.disabled, .btn:disabled { + opacity: 0.65; +} +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} +.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active { + background-image: none; +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} + +.btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.btn-primary:hover { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; +} +.btn-primary:focus, .btn-primary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; +} +.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62; +} +.btn-secondary:focus, .btn-secondary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} +.btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b; +} +.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} +.btn-success:focus, .btn-success.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; +} +.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} +.btn-info:focus, .btn-info.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.btn-info.disabled, .btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; +} +.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; +} +.btn-warning:focus, .btn-warning.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.btn-warning.disabled, .btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500; +} +.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} +.btn-danger:focus, .btn-danger.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; +} +.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} +.btn-light:focus, .btn-light.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.btn-light.disabled, .btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} +.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} +.btn-dark:focus, .btn-dark.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} +.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-primary { + color: #007bff; + background-color: transparent; + background-image: none; + border-color: #007bff; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.btn-outline-primary:focus, .btn-outline-primary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} +.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-secondary { + color: #6c757d; + background-color: transparent; + background-image: none; + border-color: #6c757d; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:focus, .btn-outline-secondary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} +.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} +.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-success { + color: #28a745; + background-color: transparent; + background-image: none; + border-color: #28a745; +} +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.btn-outline-success:focus, .btn-outline-success.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.btn-outline-success.disabled, .btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} +.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-info { + color: #17a2b8; + background-color: transparent; + background-image: none; + border-color: #17a2b8; +} +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.btn-outline-info:focus, .btn-outline-info.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.btn-outline-info.disabled, .btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} +.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-warning { + color: #ffc107; + background-color: transparent; + background-image: none; + border-color: #ffc107; +} +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-outline-warning:focus, .btn-outline-warning.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} +.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-danger { + color: #dc3545; + background-color: transparent; + background-image: none; + border-color: #dc3545; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-outline-danger:focus, .btn-outline-danger.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} +.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + background-color: transparent; + background-image: none; + border-color: #f8f9fa; +} +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-outline-light:focus, .btn-outline-light.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.btn-outline-light.disabled, .btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} +.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + background-color: transparent; + background-image: none; + border-color: #343a40; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-outline-dark:focus, .btn-outline-dark.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} +.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #007bff; + background-color: transparent; +} +.btn-link:hover { + color: #0056b3; + text-decoration: underline; + background-color: transparent; + border-color: transparent; +} +.btn-link:focus, .btn-link.focus { + text-decoration: underline; + border-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.show { + opacity: 1; +} + +.collapse { + display: none; +} +.collapse.show { + display: block; +} + +tr.collapse.show { + display: table-row; +} + +tbody.collapse.show { + display: table-row-group; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} + +.dropup .dropdown-menu { + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + margin-top: 0; + margin-left: 0.125rem; +} +.dropright .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + margin-top: 0; + margin-right: 0.125rem; +} +.dropleft .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropleft .dropdown-toggle::after { + display: none; +} +.dropleft .dropdown-toggle::before { + display: inline-block; + width: 0; + height: 0; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, .dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover { + z-index: 1; +} +.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group, +.btn-group-vertical .btn + .btn, +.btn-group-vertical .btn + .btn-group, +.btn-group-vertical .btn-group + .btn, +.btn-group-vertical .btn-group + .btn-group { + margin-left: -1px; +} + +.btn-toolbar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after { + margin-left: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.btn-group-vertical .btn, +.btn-group-vertical .btn-group { + width: 100%; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} +.btn-group-toggle > .btn input[type="radio"], +.btn-group-toggle > .btn input[type="checkbox"], +.btn-group-toggle > .btn-group > .btn input[type="radio"], +.btn-group-toggle > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0; +} +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file:focus { + z-index: 3; +} +.input-group > .form-control + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .custom-select + .form-control, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .form-control, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .custom-file { + margin-left: -1px; +} +.input-group > .form-control:not(:last-child), +.input-group > .custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group > .custom-file { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::before { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .custom-file:not(:first-child) .custom-file-label, .input-group > .custom-file:not(:first-child) .custom-file-label::before { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} +.input-group-prepend .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-append .btn + .btn, +.input-group-append .btn + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-append .input-group-text + .btn { + margin-left: -1px; +} + +.input-group-prepend { + margin-right: -1px; +} + +.input-group-append { + margin-left: -1px; +} + +.input-group-text { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0; +} + +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text, +.input-group > .input-group-append:not(:last-child) > .btn, +.input-group > .input-group-append:not(:last-child) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-control { + position: relative; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; +} + +.custom-control-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + z-index: -1; + opacity: 0; +} +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + background-color: #007bff; +} +.custom-control-input:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.custom-control-input:active ~ .custom-control-label::before { + color: #fff; + background-color: #b3d7ff; +} +.custom-control-input:disabled ~ .custom-control-label { + color: #6c757d; +} +.custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + margin-bottom: 0; +} +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: #dee2e6; +} +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before { + background-color: #007bff; +} +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); +} +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + background-color: #007bff; +} +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); +} +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} +.custom-radio .custom-control-input:checked ~ .custom-control-label::before { + background-color: #007bff; +} +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); +} +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(2.25rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center; + background-size: 8px 10px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.custom-select:focus { + border-color: #80bdff; + outline: 0; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5); +} +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} +.custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} +.custom-select::-ms-expand { + opacity: 0; +} + +.custom-select-sm { + height: calc(1.8125rem + 2px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 75%; +} + +.custom-select-lg { + height: calc(2.875rem + 2px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 125%; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(2.25rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(2.25rem + 2px); + margin: 0; + opacity: 0; +} +.custom-file-input:focus ~ .custom-file-control { + border-color: #80bdff; + -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.custom-file-input:focus ~ .custom-file-control::before { + border-color: #80bdff; +} +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(2.25rem + 2px); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(calc(2.25rem + 2px) - 1px * 2); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: 1px solid #ced4da; + border-radius: 0 0.25rem 0.25rem 0; +} + +.nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; +} +.nav-link:hover, .nav-link:focus { + text-decoration: none; +} +.nav-link.disabled { + color: #6c757d; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} +.nav-tabs .nav-item { + margin-bottom: -1px; +} +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + border-radius: 0.25rem; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} + +.nav-fill .nav-item { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center; +} + +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 0.5rem 1rem; +} +.navbar > .container, +.navbar > .container-fluid { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} +.navbar-brand:hover, .navbar-brand:focus { + text-decoration: none; +} + +.navbar-nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} +.navbar-nav .dropdown-menu { + position: static; + float: none; +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} +.navbar-toggler:hover, .navbar-toggler:focus { + text-decoration: none; +} +.navbar-toggler:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} + +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 576px) { + .navbar-expand-sm { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-sm .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } + .navbar-expand-sm .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-md .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } + .navbar-expand-md .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-lg .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } + .navbar-expand-lg .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-xl .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } + .navbar-expand-xl .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} +.navbar-expand { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} +.navbar-expand > .container, +.navbar-expand > .container-fluid { + padding-right: 0; + padding-left: 0; +} +.navbar-expand .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; +} +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} +.navbar-expand > .container, +.navbar-expand > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} +.navbar-expand .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; +} +.navbar-expand .navbar-toggler { + display: none; +} +.navbar-expand .dropup .dropdown-menu { + top: auto; + bottom: 100%; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} +.navbar-dark .navbar-text a { + color: #fff; +} +.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.card-body { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1.25rem; +} + +.card-title { + margin-bottom: 0.75rem; +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} +.card-link + .card-link { + margin-left: 1.25rem; +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} +.card-header + .list-group .list-group-item:first-child { + border-top: 0; +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; +} + +.card-img { + width: 100%; + border-radius: calc(0.25rem - 1px); +} + +.card-img-top { + width: 100%; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img-bottom { + width: 100%; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} +.card-deck .card { + margin-bottom: 15px; +} +@media (min-width: 576px) { + .card-deck { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + .card-deck .card { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} + +.card-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} +.card-group > .card { + margin-bottom: 15px; +} +@media (min-width: 576px) { + .card-group { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + } + .card-group > .card { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:first-child .card-img-top, + .card-group > .card:first-child .card-header { + border-top-right-radius: 0; + } + .card-group > .card:first-child .card-img-bottom, + .card-group > .card:first-child .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:last-child .card-img-top, + .card-group > .card:last-child .card-header { + border-top-left-radius: 0; + } + .card-group > .card:last-child .card-img-bottom, + .card-group > .card:last-child .card-footer { + border-bottom-left-radius: 0; + } + .card-group > .card:only-child { + border-radius: 0.25rem; + } + .card-group > .card:only-child .card-img-top, + .card-group > .card:only-child .card-header { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; + } + .card-group > .card:only-child .card-img-bottom, + .card-group > .card:only-child .card-footer { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + } + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) { + border-radius: 0; + } + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top, + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom, + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header, + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer { + border-radius: 0; + } +} + +.card-columns .card { + margin-bottom: 0.75rem; +} +@media (min-width: 576px) { + .card-columns { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-gap: 1.25rem; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} + +.breadcrumb { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + padding-left: 0.5rem; + color: #6c757d; + content: "/"; +} +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #007bff; + background-color: #fff; + border: 1px solid #dee2e6; +} +.page-link:hover { + color: #0056b3; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} +.page-link:focus { + z-index: 2; + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.page-link:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} +.page-item.active .page-link { + z-index: 1; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; +} +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #fff; + background-color: #007bff; +} +.badge-primary[href]:hover, .badge-primary[href]:focus { + color: #fff; + text-decoration: none; + background-color: #0062cc; +} + +.badge-secondary { + color: #fff; + background-color: #6c757d; +} +.badge-secondary[href]:hover, .badge-secondary[href]:focus { + color: #fff; + text-decoration: none; + background-color: #545b62; +} + +.badge-success { + color: #fff; + background-color: #28a745; +} +.badge-success[href]:hover, .badge-success[href]:focus { + color: #fff; + text-decoration: none; + background-color: #1e7e34; +} + +.badge-info { + color: #fff; + background-color: #17a2b8; +} +.badge-info[href]:hover, .badge-info[href]:focus { + color: #fff; + text-decoration: none; + background-color: #117a8b; +} + +.badge-warning { + color: #212529; + background-color: #ffc107; +} +.badge-warning[href]:hover, .badge-warning[href]:focus { + color: #212529; + text-decoration: none; + background-color: #d39e00; +} + +.badge-danger { + color: #fff; + background-color: #dc3545; +} +.badge-danger[href]:hover, .badge-danger[href]:focus { + color: #fff; + text-decoration: none; + background-color: #bd2130; +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} +.badge-light[href]:hover, .badge-light[href]:focus { + color: #212529; + text-decoration: none; + background-color: #dae0e5; +} + +.badge-dark { + color: #fff; + background-color: #343a40; +} +.badge-dark[href]:hover, .badge-dark[href]:focus { + color: #fff; + text-decoration: none; + background-color: #1d2124; +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 4rem; +} +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} +.alert-primary hr { + border-top-color: #9fcdff; +} +.alert-primary .alert-link { + color: #002752; +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} +.alert-secondary hr { + border-top-color: #c8cbcf; +} +.alert-secondary .alert-link { + color: #202326; +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} +.alert-success hr { + border-top-color: #b1dfbb; +} +.alert-success .alert-link { + color: #0b2e13; +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} +.alert-info hr { + border-top-color: #abdde5; +} +.alert-info .alert-link { + color: #062c33; +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} +.alert-warning hr { + border-top-color: #ffe8a1; +} +.alert-warning .alert-link { + color: #533f03; +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} +.alert-danger hr { + border-top-color: #f1b0b7; +} +.alert-danger .alert-link { + color: #491217; +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} +.alert-light hr { + border-top-color: #ececf6; +} +.alert-light .alert-link { + color: #686868; +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} +.alert-dark hr { + border-top-color: #b9bbbe; +} +.alert-dark .alert-link { + color: #040505; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} +.progress { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + color: #fff; + text-align: center; + background-color: #007bff; + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite; +} + +.media { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; +} + +.media-body { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.list-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.list-group-item-action:hover, .list-group-item-action:focus { + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.list-group-item:hover, .list-group-item:focus { + z-index: 1; + text-decoration: none; +} +.list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + background-color: #fff; +} +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.list-group-flush .list-group-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} +.list-group-flush:first-child .list-group-item:first-child { + border-top: 0; +} +.list-group-flush:last-child .list-group-item:last-child { + border-bottom: 0; +} + +.list-group-item-primary { + color: #004085; + background-color: #b8daff; +} +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #004085; + background-color: #9fcdff; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #383d41; + background-color: #c8cbcf; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #155724; + background-color: #b1dfbb; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #0c5460; + background-color: #abdde5; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #856404; + background-color: #ffe8a1; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #721c24; + background-color: #f1b0b7; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #818182; + background-color: #ececf6; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #1b1e21; + background-color: #b9bbbe; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; +} +.close:hover, .close:focus { + color: #000; + text-decoration: none; + opacity: .75; +} +.close:not(:disabled):not(.disabled) { + cursor: pointer; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; +} + +.modal-open { + overflow: hidden; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + outline: 0; +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform 0.3s ease-out; + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.modal.show .modal-dialog { + -webkit-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-dialog-centered { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - (0.5rem * 2)); +} + +.modal-content { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem; + border-bottom: 1px solid #e9ecef; + border-top-left-radius: 0.3rem; + border-top-right-radius: 0.3rem; +} +.modal-header .close { + padding: 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 1rem; + border-top: 1px solid #e9ecef; +} +.modal-footer > :not(:first-child) { + margin-left: .25rem; +} +.modal-footer > :not(:last-child) { + margin-right: .25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + + .modal-dialog-centered { + min-height: calc(100% - (1.75rem * 2)); + } + + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + max-width: 800px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0; +} +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem; +} +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0; +} +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem; +} +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} +.popover .arrow::before, .popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, .bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem; +} +.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow { + bottom: calc((0.5rem + 1px) * -1); +} +.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before, +.bs-popover-top .arrow::after, +.bs-popover-auto[x-placement^="top"] .arrow::after { + border-width: 0.5rem 0.5rem 0; +} +.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before { + bottom: 0; + border-top-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after { + bottom: 1px; + border-top-color: #fff; +} + +.bs-popover-right, .bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem; +} +.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow { + left: calc((0.5rem + 1px) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} +.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before, +.bs-popover-right .arrow::after, +.bs-popover-auto[x-placement^="right"] .arrow::after { + border-width: 0.5rem 0.5rem 0.5rem 0; +} +.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before { + left: 0; + border-right-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after { + left: 1px; + border-right-color: #fff; +} + +.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem; +} +.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow { + top: calc((0.5rem + 1px) * -1); +} +.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before, +.bs-popover-bottom .arrow::after, +.bs-popover-auto[x-placement^="bottom"] .arrow::after { + border-width: 0 0.5rem 0.5rem 0.5rem; +} +.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before { + top: 0; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after { + top: 1px; + border-bottom-color: #fff; +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-left, .bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem; +} +.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow { + right: calc((0.5rem + 1px) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} +.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before, +.bs-popover-left .arrow::after, +.bs-popover-auto[x-placement^="left"] .arrow::after { + border-width: 0.5rem 0 0.5rem 0.5rem; +} +.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before { + right: 0; + border-left-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after { + right: 1px; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + color: inherit; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-item { + position: relative; + display: none; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; + -webkit-transition: -webkit-transform 0.6s ease; + transition: -webkit-transform 0.6s ease; + transition: transform 0.6s ease; + transition: transform 0.6s ease, -webkit-transform 0.6s ease; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next, +.carousel-item-prev { + position: absolute; + top: 0; +} + +.carousel-item-next.carousel-item-left, +.carousel-item-prev.carousel-item-right { + -webkit-transform: translateX(0); + transform: translateX(0); +} +@supports (transform-style: preserve-3d) { + .carousel-item-next.carousel-item-left, + .carousel-item-prev.carousel-item-right { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.carousel-item-next, +.active.carousel-item-right { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} +@supports (transform-style: preserve-3d) { + .carousel-item-next, + .active.carousel-item-right { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.carousel-item-prev, +.active.carousel-item-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} +@supports (transform-style: preserve-3d) { + .carousel-item-prev, + .active.carousel-item-left { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: .9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: transparent no-repeat center center; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 10px; + left: 0; + z-index: 15; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} +.carousel-indicators li { + position: relative; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + background-color: rgba(255, 255, 255, 0.5); +} +.carousel-indicators li::before { + position: absolute; + top: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} +.carousel-indicators li::after { + position: absolute; + bottom: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.bg-primary { + background-color: #007bff !important; +} + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #0062cc !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #545b62 !important; +} + +.bg-success { + background-color: #28a745 !important; +} + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #1e7e34 !important; +} + +.bg-info { + background-color: #17a2b8 !important; +} + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #117a8b !important; +} + +.bg-warning { + background-color: #ffc107 !important; +} + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #d39e00 !important; +} + +.bg-danger { + background-color: #dc3545 !important; +} + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #bd2130 !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #007bff !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #28a745 !important; +} + +.border-info { + border-color: #17a2b8 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #fff !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + + .d-sm-inline { + display: inline !important; + } + + .d-sm-inline-block { + display: inline-block !important; + } + + .d-sm-block { + display: block !important; + } + + .d-sm-table { + display: table !important; + } + + .d-sm-table-row { + display: table-row !important; + } + + .d-sm-table-cell { + display: table-cell !important; + } + + .d-sm-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-sm-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + + .d-md-inline { + display: inline !important; + } + + .d-md-inline-block { + display: inline-block !important; + } + + .d-md-block { + display: block !important; + } + + .d-md-table { + display: table !important; + } + + .d-md-table-row { + display: table-row !important; + } + + .d-md-table-cell { + display: table-cell !important; + } + + .d-md-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-md-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + + .d-lg-inline { + display: inline !important; + } + + .d-lg-inline-block { + display: inline-block !important; + } + + .d-lg-block { + display: block !important; + } + + .d-lg-table { + display: table !important; + } + + .d-lg-table-row { + display: table-row !important; + } + + .d-lg-table-cell { + display: table-cell !important; + } + + .d-lg-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-lg-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + + .d-xl-inline { + display: inline !important; + } + + .d-xl-inline-block { + display: inline-block !important; + } + + .d-xl-block { + display: block !important; + } + + .d-xl-table { + display: table !important; + } + + .d-xl-table-row { + display: table-row !important; + } + + .d-xl-table-cell { + display: table-cell !important; + } + + .d-xl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-xl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} +@media print { + .d-print-none { + display: none !important; + } + + .d-print-inline { + display: inline !important; + } + + .d-print-inline-block { + display: inline-block !important; + } + + .d-print-block { + display: block !important; + } + + .d-print-table { + display: table !important; + } + + .d-print-table-row { + display: table-row !important; + } + + .d-print-table-cell { + display: table-cell !important; + } + + .d-print-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-print-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} +.embed-responsive::before { + display: block; + content: ""; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.8571428571%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.flex-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-sm-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-sm-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-sm-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-sm-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-sm-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-sm-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-sm-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-sm-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-sm-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-sm-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-sm-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-sm-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} +@media (min-width: 768px) { + .flex-md-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-md-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-md-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-md-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-md-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-md-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-md-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-md-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-md-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-md-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-md-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-md-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-md-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} +@media (min-width: 992px) { + .flex-lg-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-lg-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-lg-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-lg-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-lg-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-lg-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-lg-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-lg-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-lg-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-lg-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-lg-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-lg-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-lg-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} +@media (min-width: 1200px) { + .flex-xl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-xl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-xl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-xl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-xl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-xl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-xl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-xl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-xl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-xl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-xl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-xl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-xl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + + .float-sm-right { + float: right !important; + } + + .float-sm-none { + float: none !important; + } +} +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + + .float-md-right { + float: right !important; + } + + .float-md-none { + float: none !important; + } +} +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + + .float-lg-right { + float: right !important; + } + + .float-lg-none { + float: none !important; + } +} +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + + .float-xl-right { + float: right !important; + } + + .float-xl-none { + float: none !important; + } +} +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: sticky !important; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +@supports (position: sticky) { + .sticky-top { + position: sticky; + top: 0; + z-index: 1020; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; + -webkit-clip-path: none; + clip-path: none; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + + .m-sm-1 { + margin: 0.25rem !important; + } + + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.5rem !important; + } + + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + + .m-sm-3 { + margin: 1rem !important; + } + + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + + .m-sm-4 { + margin: 1.5rem !important; + } + + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + + .m-sm-5 { + margin: 3rem !important; + } + + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.5rem !important; + } + + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + + .p-sm-3 { + padding: 1rem !important; + } + + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + + .p-sm-4 { + padding: 1.5rem !important; + } + + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + + .p-sm-5 { + padding: 3rem !important; + } + + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + + .m-sm-auto { + margin: auto !important; + } + + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + + .m-md-1 { + margin: 0.25rem !important; + } + + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + + .m-md-2 { + margin: 0.5rem !important; + } + + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + + .m-md-3 { + margin: 1rem !important; + } + + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + + .m-md-4 { + margin: 1.5rem !important; + } + + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + + .m-md-5 { + margin: 3rem !important; + } + + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + + .p-md-2 { + padding: 0.5rem !important; + } + + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + + .p-md-3 { + padding: 1rem !important; + } + + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + + .p-md-4 { + padding: 1.5rem !important; + } + + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + + .p-md-5 { + padding: 3rem !important; + } + + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + + .m-md-auto { + margin: auto !important; + } + + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + + .m-lg-1 { + margin: 0.25rem !important; + } + + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.5rem !important; + } + + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + + .m-lg-3 { + margin: 1rem !important; + } + + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + + .m-lg-4 { + margin: 1.5rem !important; + } + + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + + .m-lg-5 { + margin: 3rem !important; + } + + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.5rem !important; + } + + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + + .p-lg-3 { + padding: 1rem !important; + } + + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + + .p-lg-4 { + padding: 1.5rem !important; + } + + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + + .p-lg-5 { + padding: 3rem !important; + } + + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + + .m-lg-auto { + margin: auto !important; + } + + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + + .m-xl-1 { + margin: 0.25rem !important; + } + + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.5rem !important; + } + + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + + .m-xl-3 { + margin: 1rem !important; + } + + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + + .m-xl-4 { + margin: 1.5rem !important; + } + + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + + .m-xl-5 { + margin: 3rem !important; + } + + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.5rem !important; + } + + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + + .p-xl-3 { + padding: 1rem !important; + } + + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + + .p-xl-4 { + padding: 1.5rem !important; + } + + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + + .p-xl-5 { + padding: 3rem !important; + } + + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + + .m-xl-auto { + margin: auto !important; + } + + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} +.text-justify { + text-align: justify !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + + .text-sm-right { + text-align: right !important; + } + + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + + .text-md-right { + text-align: right !important; + } + + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + + .text-lg-right { + text-align: right !important; + } + + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + + .text-xl-right { + text-align: right !important; + } + + .text-xl-center { + text-align: center !important; + } +} +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 700 !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #007bff !important; +} + +a.text-primary:hover, a.text-primary:focus { + color: #0062cc !important; +} + +.text-secondary { + color: #6c757d !important; +} + +a.text-secondary:hover, a.text-secondary:focus { + color: #545b62 !important; +} + +.text-success { + color: #28a745 !important; +} + +a.text-success:hover, a.text-success:focus { + color: #1e7e34 !important; +} + +.text-info { + color: #17a2b8 !important; +} + +a.text-info:hover, a.text-info:focus { + color: #117a8b !important; +} + +.text-warning { + color: #ffc107 !important; +} + +a.text-warning:hover, a.text-warning:focus { + color: #d39e00 !important; +} + +.text-danger { + color: #dc3545 !important; +} + +a.text-danger:hover, a.text-danger:focus { + color: #bd2130 !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:hover, a.text-light:focus { + color: #dae0e5 !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:hover, a.text-dark:focus { + color: #1d2124 !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + + a:not(.btn) { + text-decoration: underline; + } + + abbr[title]::after { + content: " (" attr(title) ")"; + } + + pre { + white-space: pre-wrap !important; + } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, + img { + page-break-inside: avoid; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + @page { + size: a3; + } + body { + min-width: 992px !important; + } + + .container { + min-width: 992px !important; + } + + .navbar { + display: none; + } + + .badge { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +/*Github syntax highlighting theme via Rouge*/ +.highlight table td { + padding: 5px; +} + +.highlight table pre { + margin: 0; +} + +.highlight .cm { + color: #999988; + font-style: italic; +} + +.highlight .cp { + color: #999999; + font-weight: bold; +} + +.highlight .c1 { + color: #999988; + font-style: italic; +} + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; +} + +.highlight .c, .highlight .cd { + color: #999988; + font-style: italic; +} + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; +} + +.highlight .gd { + color: #000000; + background-color: #ffdddd; +} + +.highlight .ge { + color: #000000; + font-style: italic; +} + +.highlight .gr { + color: #aa0000; +} + +.highlight .gh { + color: #999999; +} + +.highlight .gi { + color: #000000; + background-color: #ddffdd; +} + +.highlight .go { + color: #888888; +} + +.highlight .gp { + color: #555555; +} + +.highlight .gs { + font-weight: bold; +} + +.highlight .gu { + color: #aaaaaa; +} + +.highlight .gt { + color: #aa0000; +} + +.highlight .kc { + color: #000000; + font-weight: bold; +} + +.highlight .kd { + color: #000000; + font-weight: bold; +} + +.highlight .kn { + color: #000000; + font-weight: bold; +} + +.highlight .kp { + color: #000000; + font-weight: bold; +} + +.highlight .kr { + color: #000000; + font-weight: bold; +} + +.highlight .kt { + color: #445588; + font-weight: bold; +} + +.highlight .k, .highlight .kv { + color: #000000; + font-weight: bold; +} + +.highlight .mf { + color: #009999; +} + +.highlight .mh { + color: #009999; +} + +.highlight .il { + color: #009999; +} + +.highlight .mi { + color: #009999; +} + +.highlight .mo { + color: #009999; +} + +.highlight .m, .highlight .mb, .highlight .mx { + color: #009999; +} + +.highlight .sb { + color: #d14; +} + +.highlight .sc { + color: #d14; +} + +.highlight .sd { + color: #d14; +} + +.highlight .s2 { + color: #d14; +} + +.highlight .se { + color: #d14; +} + +.highlight .sh { + color: #d14; +} + +.highlight .si { + color: #d14; +} + +.highlight .sx { + color: #d14; +} + +.highlight .sr { + color: #009926; +} + +.highlight .s1 { + color: #d14; +} + +.highlight .ss { + color: #990073; +} + +.highlight .s { + color: #d14; +} + +.highlight .na { + color: #008080; +} + +.highlight .bp { + color: #525252; +} + +.highlight .nb { + color: #0086B3; +} + +.highlight .nc { + color: #445588; + font-weight: bold; +} + +.highlight .no { + color: #008080; +} + +.highlight .nd { + color: #3c5d5d; + font-weight: bold; +} + +.highlight .ni { + color: #800080; +} + +.highlight .ne { + color: #990000; + font-weight: bold; +} + +.highlight .nf { + color: #990000; + font-weight: bold; +} + +.highlight .nl { + color: #990000; + font-weight: bold; +} + +.highlight .nn { + color: #555555; +} + +.highlight .nt { + color: #000080; +} + +.highlight .vc { + color: #008080; +} + +.highlight .vg { + color: #008080; +} + +.highlight .vi { + color: #008080; +} + +.highlight .nv { + color: #008080; +} + +.highlight .ow { + color: #000000; + font-weight: bold; +} + +.highlight .o { + color: #000000; + font-weight: bold; +} + +.highlight .n { + color: #000000; + font-weight: bold; +} + +.highlight .p { + color: #000000; + font-weight: bold; +} + +.highlight .w { + color: #bbbbbb; +} + +.highlight { + background-color: #f8f8f8; +} + +@font-face { + font-family: FreightSans; + font-weight: 700; + font-style: normal; + src: url("../fonts/FreightSans/freight-sans-bold.woff2") format("woff2"), url("../fonts/FreightSans/freight-sans-bold.woff") format("woff"); +} +@font-face { + font-family: FreightSans; + font-weight: 700; + font-style: italic; + src: url("../fonts/FreightSans/freight-sans-bold-italic.woff2") format("woff2"), url("../fonts/FreightSans/freight-sans-bold-italic.woff") format("woff"); +} +@font-face { + font-family: FreightSans; + font-weight: 500; + font-style: normal; + src: url("../fonts/FreightSans/freight-sans-medium.woff2") format("woff2"), url("../fonts/FreightSans/freight-sans-medium.woff") format("woff"); +} +@font-face { + font-family: FreightSans; + font-weight: 500; + font-style: italic; + src: url("../fonts/FreightSans/freight-sans-medium-italic.woff2") format("woff2"), url("../fonts/FreightSans/freight-sans-medium-italic.woff") format("woff"); +} +@font-face { + font-family: FreightSans; + font-weight: 100; + font-style: normal; + src: url("../fonts/FreightSans/freight-sans-light.woff2") format("woff2"), url("../fonts/FreightSans/freight-sans-light.woff") format("woff"); +} +@font-face { + font-family: FreightSans; + font-weight: 100; + font-style: italic; + src: url("../fonts/FreightSans/freight-sans-light-italic.woff2") format("woff2"), url("../fonts/FreightSans/freight-sans-light-italic.woff") format("woff"); +} +@font-face { + font-family: FreightSans; + font-weight: 400; + font-style: italic; + src: url("../fonts/FreightSans/freight-sans-book-italic.woff2") format("woff2"), url("../fonts/FreightSans/freight-sans-book-italic.woff") format("woff"); +} +@font-face { + font-family: FreightSans; + font-weight: 400; + font-style: normal; + src: url("../fonts/FreightSans/freight-sans-book.woff2") format("woff2"), url("../fonts/FreightSans/freight-sans-book.woff") format("woff"); +} +@font-face { + font-family: IBMPlexMono; + font-weight: 600; + font-style: normal; + unicode-range: u+0020-007f; + src: local("IBMPlexMono-SemiBold"), url("../fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff2") format("woff2"), url("../fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff") format("woff"); +} +@font-face { + font-family: IBMPlexMono; + font-weight: 500; + font-style: normal; + unicode-range: u+0020-007f; + src: local("IBMPlexMono-Medium"), url("../fonts/IBMPlexMono/IBMPlexMono-Medium.woff2") format("woff2"), url("../fonts/IBMPlexMono/IBMPlexMono-Medium.woff") format("woff"); +} +@font-face { + font-family: IBMPlexMono; + font-weight: 400; + font-style: normal; + unicode-range: u+0020-007f; + src: local("IBMPlexMono-Regular"), url("../fonts/IBMPlexMono/IBMPlexMono-Regular.woff2") format("woff2"), url("../fonts/IBMPlexMono/IBMPlexMono-Regular.woff") format("woff"); +} +@font-face { + font-family: IBMPlexMono; + font-weight: 300; + font-style: normal; + unicode-range: u+0020-007f; + src: local("IBMPlexMono-Light"), url("../fonts/IBMPlexMono/IBMPlexMono-Light.woff2") format("woff2"), url("../fonts/IBMPlexMono/IBMPlexMono-Light.woff") format("woff"); +} +html { + position: relative; + min-height: 100%; + font-size: 12px; +} +@media screen and (min-width: 768px) { + html { + font-size: 16px; + } +} + +* { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +body { + font-family: FreightSans, Helvetica Neue, Helvetica, Arial, sans-serif; +} + +a:link, +a:visited, +a:hover { + text-decoration: none; + color: #e44c2c; +} + +a.with-right-arrow, .btn.with-right-arrow { + padding-right: 1.375rem; + position: relative; + background-image: url("../images/chevron-right-orange.svg"); + background-size: 6px 13px; + background-position: center right 5px; + background-repeat: no-repeat; +} +@media screen and (min-width: 768px) { + a.with-right-arrow, .btn.with-right-arrow { + background-size: 8px 14px; + background-position: center right 12px; + padding-right: 2rem; + } +} + +::-webkit-input-placeholder { + color: #e44c2c; +} + +::-moz-placeholder { + color: #e44c2c; +} + +:-ms-input-placeholder { + color: #e44c2c; +} + +:-moz-placeholder { + color: #e44c2c; +} + +.email-subscribe-form input.email { + color: #e44c2c; + border: none; + border-bottom: 1px solid #939393; + width: 100%; + background-color: transparent; + outline: none; + font-size: 1.125rem; + letter-spacing: 0.25px; + line-height: 2.25rem; +} +.email-subscribe-form input[type="submit"] { + position: absolute; + right: 0; + top: 10px; + height: 15px; + width: 15px; + background-image: url("../images/arrow-right-with-tail.svg"); + background-color: transparent; + background-repeat: no-repeat; + background-size: 15px 15px; + background-position: center center; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: 0; +} + +.email-subscribe-form-fields-wrapper { + position: relative; +} + +.anchorjs-link { + color: #6c6c6d !important; +} +@media screen and (min-width: 768px) { + .anchorjs-link:hover { + color: inherit; + text-decoration: none !important; + } +} + +.pytorch-article #table-of-contents { + display: none; +} + +code, kbd, pre, samp { + font-family: IBMPlexMono,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; +} +code span, kbd span, pre span, samp span { + font-family: IBMPlexMono,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; +} + +pre { + padding: 1.125rem; +} +pre code { + font-size: 0.875rem; +} +pre.highlight { + background-color: #f3f4f7; + line-height: 1.3125rem; +} + +code.highlighter-rouge { + color: #6c6c6d; + background-color: #f3f4f7; + padding: 2px 6px; +} + +a:link code.highlighter-rouge, +a:visited code.highlighter-rouge, +a:hover code.highlighter-rouge { + color: #4974D1; +} +a:link.has-code, +a:visited.has-code, +a:hover.has-code { + color: #4974D1; +} + +p code, +h1 code, +h2 code, +h3 code, +h4 code, +h5 code, +h6 code { + font-size: 78.5%; +} + +pre { + white-space: pre-wrap; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + word-wrap: break-word; +} + +.header-holder { + height: 68px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + left: 0; + margin-left: auto; + margin-right: auto; + position: fixed; + right: 0; + top: 0; + width: 100%; + z-index: 9999; + background-color: #ffffff; + border-bottom: 1px solid #e2e2e2; +} +@media screen and (min-width: 1100px) { + .header-holder { + height: 90px; + } +} + +.header-container { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.header-container:before, .header-container:after { + content: ""; + display: table; +} +.header-container:after { + clear: both; +} +.header-container { + *zoom: 1; +} +@media screen and (min-width: 1100px) { + .header-container { + display: block; + } +} + +.header-logo { + height: 23px; + width: 93px; + background-image: url("../images/logo.svg"); + background-repeat: no-repeat; + background-size: 93px 23px; + display: block; + float: left; + z-index: 10; +} +@media screen and (min-width: 1100px) { + .header-logo { + background-size: 108px 27px; + position: absolute; + height: 27px; + width: 108px; + top: 4px; + float: none; + } +} + +.main-menu-open-button { + background-image: url("../images/icon-menu-dots.svg"); + background-position: center center; + background-size: 25px 7px; + background-repeat: no-repeat; + width: 25px; + height: 17px; + position: absolute; + right: 0; + top: 4px; +} +@media screen and (min-width: 1100px) { + .main-menu-open-button { + display: none; + } +} + +.header-holder .main-menu { + display: none; +} +@media screen and (min-width: 1100px) { + .header-holder .main-menu { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + } +} +.header-holder .main-menu ul { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin: 0; +} +.header-holder .main-menu ul li { + display: inline-block; + margin-right: 40px; + position: relative; +} +.header-holder .main-menu ul li.active:after { + content: "•"; + bottom: -24px; + color: #e44c2c; + font-size: 1.375rem; + left: 0; + position: absolute; + right: 0; + text-align: center; +} +.header-holder .main-menu ul li.active a { + color: #e44c2c; +} +.header-holder .main-menu ul li.docs-active:after { + content: "•"; + bottom: -24px; + color: #e44c2c; + font-size: 1.375rem; + left: -24px; + position: absolute; + right: 0; + text-align: center; +} +.header-holder .main-menu ul li:last-of-type { + margin-right: 0; +} +.header-holder .main-menu ul li a { + color: #ffffff; + font-size: 1.3rem; + letter-spacing: 0; + line-height: 2.125rem; + text-align: center; + text-decoration: none; +} +@media screen and (min-width: 1100px) { + .header-holder .main-menu ul li a:hover { + color: #e44c2c; + } +} + +.mobile-main-menu { + display: none; +} +.mobile-main-menu.open { + background-color: #262626; + display: block; + height: 100%; + left: 0; + margin-left: auto; + margin-right: auto; + min-height: 100%; + position: fixed; + right: 0; + top: 0; + width: 100%; + z-index: 99999; +} + +.mobile-main-menu .container-fluid { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 68px; + position: relative; +} +.mobile-main-menu .container-fluid:before, .mobile-main-menu .container-fluid:after { + content: ""; + display: table; +} +.mobile-main-menu .container-fluid:after { + clear: both; +} +.mobile-main-menu .container-fluid { + *zoom: 1; +} + +.mobile-main-menu.open ul { + list-style-type: none; + padding: 0; +} +.mobile-main-menu.open ul li a, .mobile-main-menu.open .resources-mobile-menu-title { + font-size: 2rem; + color: #ffffff; + letter-spacing: 0; + line-height: 4rem; + text-decoration: none; +} +.mobile-main-menu.open ul li.active a { + color: #e44c2c; +} + +.main-menu-close-button { + background-image: url("../images/icon-close.svg"); + background-position: center center; + background-repeat: no-repeat; + background-size: 24px 24px; + height: 24px; + position: absolute; + right: 0; + width: 24px; + top: -4px; +} + +.mobile-main-menu-header-container { + position: relative; +} + +.mobile-main-menu-links-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-left: 2.8125rem; + height: 90vh; + margin-top: -25px; + padding-top: 50%; + overflow-y: scroll; +} +.mobile-main-menu-links-container .main-menu { + height: 100vh; +} + +.mobile-main-menu-links-container ul.resources-mobile-menu-items li { + padding-left: 15px; +} + +.site-footer { + padding: 2.5rem 0; + width: 100%; + background: #000000; + background-size: 100%; + margin-left: 0; + margin-right: 0; + position: relative; + z-index: 201; +} +@media screen and (min-width: 768px) { + .site-footer { + padding: 5rem 0; + } +} + +.site-footer p { + color: #ffffff; +} +.site-footer ul { + list-style-type: none; + padding-left: 0; + margin-bottom: 0; +} + +.site-footer ul li { + font-size: 1.125rem; + line-height: 2rem; + color: #A0A0A1; + padding-bottom: 0.375rem; +} +.site-footer ul li.list-title { + padding-bottom: 0.75rem; + color: #ffffff; +} +.site-footer a:link, +.site-footer a:visited { + color: inherit; +} +@media screen and (min-width: 768px) { + .site-footer a:hover { + color: #e44c2c; + } +} + +.site-footer .privacy-policy { + background: #000000; + display: flex; + border-bottom: 1px solid white; + padding-bottom: 10px; +} + +.site-footer .privacy-policy-links { + background: #000000; + display: flex; + padding-top: 1rem; + padding-right: 1rem; + display: inline-flex; + color: white; +} + +.site-footer .footer-links-wrapper { + display: flex; + flex-wrap: wrap; + border-bottom: 1px solid white; + padding-bottom: 1rem; +} + +.site-footer .copyright { + padding-top: 1rem; + padding-right: 1rem; + display: inline-flex; + color: white; +} + +.site-footer .copyright p { + color: white; +} + +.site-footer .copyright a { + color: red; +} + +.docs-tutorials-resources { + background-color: #262626; + color: #ffffff; + padding-top: 2.5rem; + padding-bottom: 2.5rem; + position: relative; + z-index: 201; +} +@media screen and (min-width: 768px) { + .docs-tutorials-resources { + padding-top: 5rem; + padding-bottom: 5rem; + } +} +.docs-tutorials-resources p { + color: #929292; + font-size: 1.125rem; +} +.docs-tutorials-resources h2 { + font-size: 1.5rem; + letter-spacing: -0.25px; + text-transform: none; + margin-bottom: 0.25rem; +} +@media screen and (min-width: 768px) { + .docs-tutorials-resources h2 { + margin-bottom: 1.25rem; + } +} +.docs-tutorials-resources .col-md-4 { + margin-bottom: 2rem; + text-align: center; +} +@media screen and (min-width: 768px) { + .docs-tutorials-resources .col-md-4 { + margin-bottom: 0; + } +} +.docs-tutorials-resources .with-right-arrow { + margin-left: 12px; +} +.docs-tutorials-resources .with-right-arrow:hover { + background-image: url("../images/chevron-right-white.svg"); +} +.docs-tutorials-resources p { + font-size: 1rem; + line-height: 1.5rem; + letter-spacing: 0.22px; + color: #939393; + margin-bottom: 0; +} +@media screen and (min-width: 768px) { + .docs-tutorials-resources p { + margin-bottom: 1.25rem; + } +} +.docs-tutorials-resources a { + font-size: 1.125rem; + color: #e44c2c; +} +.docs-tutorials-resources a:hover { + color: #ffffff; +} + +.footer-container { + position: relative; +} + +@media screen and (min-width: 768px) { + .footer-logo-wrapper { + position: absolute; + top: 0; + left: 30px; + } +} + +.footer-logo { + background-image: url("../images/logo-icon.svg"); + background-position: center; + background-repeat: no-repeat; + background-size: 20px 24px; + display: block; + height: 24px; + margin-bottom: 2.8125rem; + width: 20px; +} +@media screen and (min-width: 768px) { + .footer-logo { + background-size: 29px 36px; + height: 36px; + margin-bottom: 0; + margin-bottom: 0; + width: 29px; + } +} + +.footer-links-wrapper { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +@media screen and (min-width: 768px) { + .footer-links-wrapper { + -ms-flex-wrap: initial; + flex-wrap: initial; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + } +} + +.footer-links-col { + margin-bottom: 3.75rem; + width: 50%; +} +@media screen and (min-width: 768px) { + .footer-links-col { + margin-bottom: 0; + width: 14%; + margin-right: 23px; + } + .footer-links-col.follow-us-col { + width: 18%; + margin-right: 0; + } +} +@media (min-width: 768px) and (max-width: 1239px) { + .footer-links-col { + width: 18%; + margin-right: 30px; + } +} + +.footer-social-icons { + margin: 8.5625rem 0 2.5rem 0; +} +.footer-social-icons a { + height: 32px; + width: 32px; + display: inline-block; + background-color: #CCCDD1; + border-radius: 50%; + margin-right: 5px; +} +.footer-social-icons a.facebook { + background-image: url("../images/logo-facebook-dark.svg"); + background-position: center center; + background-size: 9px 18px; + background-repeat: no-repeat; +} +.footer-social-icons a.twitter { + background-image: url("../images/logo-twitter-dark.svg"); + background-position: center center; + background-size: 17px 17px; + background-repeat: no-repeat; +} +.footer-social-icons a.youtube { + background-image: url("../images/logo-youtube-dark.svg"); + background-position: center center; + background-repeat: no-repeat; +} + +.site-footer .mc-field-group { + margin-top: -2px; +} + +article.pytorch-article { + max-width: 920px; + margin: 0 auto; +} +article.pytorch-article h2, +article.pytorch-article h3, +article.pytorch-article h4, +article.pytorch-article h5, +article.pytorch-article h6 { + margin: 1.375rem 0; + color: #262626; +} +article.pytorch-article h2 { + font-size: 1.625rem; + letter-spacing: 1.33px; + line-height: 2rem; + text-transform: none; +} +article.pytorch-article h3 { + font-size: 1.5rem; + letter-spacing: -0.25px; + line-height: 1.875rem; + text-transform: none; +} +article.pytorch-article h4, +article.pytorch-article h5, +article.pytorch-article h6 { + font-size: 1.125rem; + letter-spacing: -0.19px; + line-height: 1.875rem; +} +article.pytorch-article p { + margin-bottom: 1.125rem; +} +article.pytorch-article p, +article.pytorch-article ul li, +article.pytorch-article ol li, +article.pytorch-article dl dt, +article.pytorch-article dl dd, +article.pytorch-article blockquote { + font-size: 1rem; + line-height: 1.375rem; + color: #262626; + letter-spacing: 0.01px; + font-weight: 500; +} +article.pytorch-article table { + margin-bottom: 2.5rem; + width: 100%; +} +article.pytorch-article table thead { + border-bottom: 1px solid #cacaca; +} +article.pytorch-article table th { + padding: 0.625rem; + color: #262626; +} +article.pytorch-article table td { + padding: 0.3125rem; +} +article.pytorch-article table tr th:first-of-type, +article.pytorch-article table tr td:first-of-type { + padding-left: 0; +} +article.pytorch-article table.docutils.field-list th.field-name { + padding: 0.3125rem; + padding-left: 0; +} +article.pytorch-article table.docutils.field-list td.field-body { + padding: 0.3125rem; +} +article.pytorch-article table.docutils.field-list td.field-body p:last-of-type { + margin-bottom: 0; +} +article.pytorch-article ul, +article.pytorch-article ol { + margin: 1.5rem 0 3.125rem 0; +} +@media screen and (min-width: 768px) { + article.pytorch-article ul, + article.pytorch-article ol { + padding-left: 6.25rem; + } +} +article.pytorch-article ul li, +article.pytorch-article ol li { + margin-bottom: 0.625rem; +} +article.pytorch-article dl { + margin-bottom: 1.5rem; +} +article.pytorch-article dl dt { + margin-bottom: 0.75rem; +} +article.pytorch-article pre { + margin-bottom: 2.5rem; +} +article.pytorch-article hr { + margin-top: 4.6875rem; + margin-bottom: 4.6875rem; +} +article.pytorch-article blockquote { + margin: 0 auto; + margin-bottom: 2.5rem; + width: 65%; +} +article.pytorch-article img { + width: 100%; +} + +html { + height: 100%; +} +@media screen and (min-width: 768px) { + html { + font-size: 16px; + } +} + +body { + background: #ffffff; + height: 100%; + margin: 0; +} +body.no-scroll { + height: 100%; + overflow: hidden; +} + +p { + margin-top: 0; + margin-bottom: 1.125rem; +} +p a:link, +p a:visited, +p a:hover { + color: #e44c2c; + text-decoration: none; +} +@media screen and (min-width: 768px) { + p a:hover { + text-decoration: underline; + } +} +p a:link, +p a:visited, +p a:hover { + color: #ee4c2c; +} + +.wy-breadcrumbs li a { + color: #ee4c2c; +} + +ul.pytorch-breadcrumbs { + padding-left: 0; + list-style-type: none; +} +ul.pytorch-breadcrumbs li { + display: inline-block; + font-size: 0.875rem; +} +ul.pytorch-breadcrumbs a { + color: #ee4c2c; + text-decoration: none; +} + +.table-of-contents-link-wrapper { + display: block; + margin-top: 0; + padding: 1.25rem 1.875rem; + background-color: #f3f4f7; + position: relative; + color: #262626; + font-size: 1.25rem; +} +.table-of-contents-link-wrapper.is-open .toggle-table-of-contents { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} +@media screen and (min-width: 1100px) { + .table-of-contents-link-wrapper { + display: none; + } +} + +.toggle-table-of-contents { + background-image: url("../images/chevron-down-grey.svg"); + background-position: center center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 100%; + position: absolute; + right: 21px; + width: 30px; + top: 0; +} + +.tutorials-header .header-logo { + background-image: url("../images/logo-dark.svg"); +} +.tutorials-header .main-menu ul li a { + color: #262626; +} +.tutorials-header .main-menu-open-button { + background-image: url("../images/icon-menu-dots-dark.svg"); +} + +.rst-content footer .rating-hr.hr-top { + margin-bottom: -0.0625rem; +} +.rst-content footer .rating-hr.hr-bottom { + margin-top: -0.0625rem; +} +.rst-content footer .rating-container { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + font-size: 1.125rem; +} +.rst-content footer .rating-container .rating-prompt, .rst-content footer .rating-container .was-helpful-thank-you { + padding: 0.625rem 1.25rem 0.625rem 1.25rem; +} +.rst-content footer .rating-container .was-helpful-thank-you { + display: none; +} +.rst-content footer .rating-container .rating-prompt.yes-link, .rst-content footer .rating-container .rating-prompt.no-link { + color: #e44c2c; + cursor: pointer; +} +.rst-content footer .rating-container .rating-prompt.yes-link:hover, .rst-content footer .rating-container .rating-prompt.no-link:hover { + background-color: #e44c2c; + color: #ffffff; +} +.rst-content footer .rating-container .stars-outer { + display: inline-block; + position: relative; + font-family: FontAwesome; + padding: 0.625rem 1.25rem 0.625rem 1.25rem; +} +.rst-content footer .rating-container .stars-outer i { + cursor: pointer; +} +.rst-content footer .rating-container .stars-outer .star-fill { + color: #ee4c2c; +} +.rst-content footer div[role="contentinfo"] { + padding-top: 2.5rem; +} +.rst-content footer div[role="contentinfo"] p { + margin-bottom: 0; +} + +h1 { + font-size: 2rem; + letter-spacing: 1.78px; + line-height: 2.5rem; + text-transform: uppercase; + margin: 1.375rem 0; +} + +span.pre { + color: #6c6c6d; + background-color: #f3f4f7; + padding: 2px 0px; +} + +pre { + padding: 1.375rem; +} + +.highlight .c1 { + color: #6c6c6d; +} + +.headerlink { + display: none !important; +} + +a:link.has-code, +a:hover.has-code, +a:visited.has-code { + color: #4974D1; +} +a:link.has-code span, +a:hover.has-code span, +a:visited.has-code span { + color: #4974D1; +} + +article.pytorch-article ul, +article.pytorch-article ol { + padding-left: 1.875rem; + margin: 0; +} +article.pytorch-article ul li, +article.pytorch-article ol li { + margin: 0; + line-height: 1.75rem; +} +article.pytorch-article ul p, +article.pytorch-article ol p { + line-height: 1.75rem; + margin-bottom: 0; +} +article.pytorch-article ul ul, +article.pytorch-article ul ol, +article.pytorch-article ol ul, +article.pytorch-article ol ol { + margin: 0; +} +article.pytorch-article h1, +article.pytorch-article h2, +article.pytorch-article h3, +article.pytorch-article h4, +article.pytorch-article h5, +article.pytorch-article h6 { + font-weight: normal; +} +article.pytorch-article h1 a, +article.pytorch-article h2 a, +article.pytorch-article h3 a, +article.pytorch-article h4 a, +article.pytorch-article h5 a, +article.pytorch-article h6 a { + color: #262626; +} +article.pytorch-article p.caption { + margin-top: 1.25rem; +} + +article.pytorch-article .section:first-of-type h1:first-of-type { + margin-top: 0; +} + +article.pytorch-article .sphx-glr-thumbcontainer { + margin: 0; + border: 1px solid #d6d7d8; + border-radius: 0; + width: 45%; + text-align: center; + margin-bottom: 5%; +} +@media screen and (max-width: 1100px) { + article.pytorch-article .sphx-glr-thumbcontainer:nth-child(odd) { + margin-left: 0; + margin-right: 2.5%; + } + article.pytorch-article .sphx-glr-thumbcontainer:nth-child(even) { + margin-right: 0; + margin-left: 2.5%; + } + article.pytorch-article .sphx-glr-thumbcontainer .figure { + width: 40%; + } +} +@media screen and (min-width: 1101px) { + article.pytorch-article .sphx-glr-thumbcontainer { + margin-right: 3%; + margin-bottom: 3%; + width: 30%; + } +} +article.pytorch-article .sphx-glr-thumbcontainer .caption-text a { + font-size: 1rem; + color: #262626; + letter-spacing: 0; + line-height: 1.5rem; + text-decoration: none; +} +article.pytorch-article .sphx-glr-thumbcontainer:hover { + -webkit-box-shadow: none; + box-shadow: none; + border-bottom-color: #ffffff; +} +article.pytorch-article .sphx-glr-thumbcontainer:hover .figure:before { + bottom: 100%; +} +article.pytorch-article .sphx-glr-thumbcontainer .figure { + width: 80%; +} +article.pytorch-article .sphx-glr-thumbcontainer .figure:before { + content: ""; + display: block; + position: absolute; + top: 0; + bottom: 35%; + left: 0; + right: 0; + background: #8A94B3; + opacity: 0.10; +} +article.pytorch-article .sphx-glr-thumbcontainer .figure a.reference.internal { + text-align: left; +} +@media screen and (min-width: 768px) { + article.pytorch-article .sphx-glr-thumbcontainer:after { + content: ""; + display: block; + width: 0; + height: 1px; + position: absolute; + bottom: 0; + left: 0; + background-color: #e44c2c; + -webkit-transition: width .250s ease-in-out; + transition: width .250s ease-in-out; + } + article.pytorch-article .sphx-glr-thumbcontainer:hover:after { + width: 100%; + } +} +@media screen and (min-width: 768px) { + article.pytorch-article .sphx-glr-thumbcontainer:after { + background-color: #ee4c2c; + } +} + +article.pytorch-article .section :not(dt) > code { + color: #262626; + border-top: solid 2px #ffffff; + background-color: #ffffff; + border-bottom: solid 2px #ffffff; + padding: 0px 3px; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +article.pytorch-article .section :not(dt) > code .pre { + outline: 0px; + padding: 0px; +} +article.pytorch-article .function dt, article.pytorch-article .attribute dt, article.pytorch-article .class .attribute dt, article.pytorch-article .class dt { + position: relative; + background: #f3f4f7; + padding: 0.5rem; + border-left: 3px solid #ee4c2c; + word-wrap: break-word; + padding-right: 100px; +} +article.pytorch-article .function dt em.property, article.pytorch-article .attribute dt em.property, article.pytorch-article .class dt em.property { + font-family: inherit; +} +article.pytorch-article .function dt em, article.pytorch-article .attribute dt em, article.pytorch-article .class .attribute dt em, article.pytorch-article .class dt em, article.pytorch-article .function dt .sig-paren, article.pytorch-article .attribute dt .sig-paren, article.pytorch-article .class dt .sig-paren { + font-family: IBMPlexMono,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; + font-size: 87.5%; +} +article.pytorch-article .function dt a, article.pytorch-article .attribute dt a, article.pytorch-article .class .attribute dt a, article.pytorch-article .class dt a { + right: 30px; + padding-right: 0; + top: 50%; + -webkit-transform: perspective(1px) translateY(-50%); + transform: perspective(1px) translateY(-50%); +} +article.pytorch-article .function dt:hover .viewcode-link, article.pytorch-article .attribute dt:hover .viewcode-link, article.pytorch-article .class dt:hover .viewcode-link { + color: #ee4c2c; +} +article.pytorch-article .function .anchorjs-link, article.pytorch-article .attribute .anchorjs-link, article.pytorch-article .class .anchorjs-link { + display: inline; + position: absolute; + right: 8px; + font-size: 1.5625rem !important; + padding-left: 0; +} +article.pytorch-article .function dt > code, article.pytorch-article .attribute dt > code, article.pytorch-article .class .attribute dt > code, article.pytorch-article .class dt > code { + color: #262626; + border-top: solid 2px #f3f4f7; + background-color: #f3f4f7; + border-bottom: solid 2px #f3f4f7; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +article.pytorch-article .function .viewcode-link, article.pytorch-article .attribute .viewcode-link, article.pytorch-article .class .viewcode-link { + padding-left: 0.6rem; + position: absolute; + font-size: 0.875rem; + color: #979797; + letter-spacing: 0; + line-height: 1.5rem; + text-transform: uppercase; +} +article.pytorch-article .function dd, article.pytorch-article .attribute dd, article.pytorch-article .class .attribute dd, article.pytorch-article .class dd { + padding-left: 3.75rem; +} +article.pytorch-article .function dd p, article.pytorch-article .attribute dd p, article.pytorch-article .class .attribute dd p, article.pytorch-article .class dd p { + color: #262626; +} +article.pytorch-article .function table tbody tr th.field-name, article.pytorch-article .attribute table tbody tr th.field-name, article.pytorch-article .class table tbody tr th.field-name { + white-space: nowrap; + color: #262626; + width: 20%; +} +@media screen and (min-width: 768px) { + article.pytorch-article .function table tbody tr th.field-name, article.pytorch-article .attribute table tbody tr th.field-name, article.pytorch-article .class table tbody tr th.field-name { + width: 15%; + } +} +article.pytorch-article .function table tbody tr td.field-body, article.pytorch-article .attribute table tbody tr td.field-body, article.pytorch-article .class table tbody tr td.field-body { + padding: 0.625rem; + width: 80%; + color: #262626; +} +@media screen and (min-width: 768px) { + article.pytorch-article .function table tbody tr td.field-body, article.pytorch-article .attribute table tbody tr td.field-body, article.pytorch-article .class table tbody tr td.field-body { + width: 85%; + } +} +@media screen and (min-width: 1600px) { + article.pytorch-article .function table tbody tr td.field-body, article.pytorch-article .attribute table tbody tr td.field-body, article.pytorch-article .class table tbody tr td.field-body { + padding-left: 1.25rem; + } +} +article.pytorch-article .function table tbody tr td.field-body p, article.pytorch-article .attribute table tbody tr td.field-body p, article.pytorch-article .class table tbody tr td.field-body p { + padding-left: 0px; +} +article.pytorch-article .function table tbody tr td.field-body p:last-of-type, article.pytorch-article .attribute table tbody tr td.field-body p:last-of-type, article.pytorch-article .class table tbody tr td.field-body p:last-of-type { + margin-bottom: 0; +} +article.pytorch-article .function table tbody tr td.field-body ol, article.pytorch-article .attribute table tbody tr td.field-body ol, article.pytorch-article .class table tbody tr td.field-body ol, article.pytorch-article .function table tbody tr td.field-body ul, article.pytorch-article .attribute table tbody tr td.field-body ul, article.pytorch-article .class table tbody tr td.field-body ul { + padding-left: 1rem; + padding-bottom: 0; +} +article.pytorch-article .function table.docutils.field-list, article.pytorch-article .attribute table.docutils.field-list, article.pytorch-article .class table.docutils.field-list { + margin-bottom: 0.75rem; +} +article.pytorch-article .attribute .has-code { + float: none; +} +article.pytorch-article .class dt { + border-left: none; + border-top: 3px solid #ee4c2c; + padding-left: 4em; +} +article.pytorch-article .class dt em.property { + position: absolute; + left: 0.5rem; +} +article.pytorch-article .class dd .docutils dt { + padding-left: 0.5rem; +} +article.pytorch-article .class em.property { + text-transform: uppercase; + font-style: normal; + color: #ee4c2c; + font-size: 1rem; + letter-spacing: 0; + padding-right: 0.75rem; +} +article.pytorch-article .class dl dt em.property { + position: static; + left: 0; + padding-right: 0; +} +article.pytorch-article .class .method dt, +article.pytorch-article .class .staticmethod dt { + border-left: 3px solid #ee4c2c; + border-top: none; +} +article.pytorch-article .class .method dt, +article.pytorch-article .class .staticmethod dt { + padding-left: 0.5rem; +} +article.pytorch-article .class .attribute dt { + border-top: none; +} +article.pytorch-article .class .attribute dt em.property { + position: relative; + left: 0; +} +article.pytorch-article table { + table-layout: fixed; +} + +div.deprecated p { + display: inline; +} +div.deprecated, +div.versionchanged { + margin-top: 0.5rem; + padding: 0.5rem; + margin-bottom: 0.5rem; + border: none; +} +div.versionadded { + margin: 1rem 0; +} +div.deprecated p:last-child, +div.versionchanged p:last-child, +div.versionadded p:last-child { + margin-bottom: 0 +} +div.deprecated { + color: #b94a48; + background-color: #fdede9; +} +div.versionchanged { + background-color: #fffbe8; +} + +article.pytorch-article .note, +article.pytorch-article .warning, +article.pytorch-article .tip, +article.pytorch-article .seealso, +article.pytorch-article .hint, +article.pytorch-article .important, +article.pytorch-article .caution, +article.pytorch-article .danger, +article.pytorch-article .attention, +article.pytorch-article .error { + background: #f3f4f7; + margin-top: 1.875rem; + margin-bottom: 1.125rem; +} +article.pytorch-article .note .admonition-title, +article.pytorch-article .warning .admonition-title, +article.pytorch-article .tip .admonition-title, +article.pytorch-article .seealso .admonition-title, +article.pytorch-article .hint .admonition-title, +article.pytorch-article .important .admonition-title, +article.pytorch-article .caution .admonition-title, +article.pytorch-article .danger .admonition-title, +article.pytorch-article .attention .admonition-title, +article.pytorch-article .error .admonition-title { + color: #ffffff; + letter-spacing: 1px; + text-transform: uppercase; + margin-bottom: 1.125rem; + padding: 3px 0 3px 1.375rem; + position: relative; + font-size: 0.875rem; +} +article.pytorch-article .note .admonition-title:before, +article.pytorch-article .warning .admonition-title:before, +article.pytorch-article .tip .admonition-title:before, +article.pytorch-article .seealso .admonition-title:before, +article.pytorch-article .hint .admonition-title:before, +article.pytorch-article .important .admonition-title:before, +article.pytorch-article .caution .admonition-title:before, +article.pytorch-article .danger .admonition-title:before, +article.pytorch-article .attention .admonition-title:before, +article.pytorch-article .error .admonition-title:before { + content: "\2022"; + position: absolute; + left: 9px; + color: #ffffff; + top: 2px; +} +article.pytorch-article .note p:nth-child(n + 2), +article.pytorch-article .warning p:nth-child(n + 2), +article.pytorch-article .tip p:nth-child(n + 2), +article.pytorch-article .seealso p:nth-child(n + 2), +article.pytorch-article .hint p:nth-child(n + 2), +article.pytorch-article .important p:nth-child(n + 2), +article.pytorch-article .caution p:nth-child(n + 2), +article.pytorch-article .danger p:nth-child(n + 2), +article.pytorch-article .attention p:nth-child(n + 2), +article.pytorch-article .error p:nth-child(n + 2) { + padding: 0 1.375rem; +} +article.pytorch-article .note table, +article.pytorch-article .warning table, +article.pytorch-article .tip table, +article.pytorch-article .seealso table, +article.pytorch-article .hint table, +article.pytorch-article .important table, +article.pytorch-article .caution table, +article.pytorch-article .danger table, +article.pytorch-article .attention table, +article.pytorch-article .error table { + margin: 0 2rem; + width: auto; +} +article.pytorch-article .note :not(dt) > code, +article.pytorch-article .warning :not(dt) > code, +article.pytorch-article .tip :not(dt) > code, +article.pytorch-article .seealso :not(dt) > code, +article.pytorch-article .hint :not(dt) > code, +article.pytorch-article .important :not(dt) > code, +article.pytorch-article .caution :not(dt) > code, +article.pytorch-article .danger :not(dt) > code, +article.pytorch-article .attention :not(dt) > code, +article.pytorch-article .error :not(dt) > code { + border-top: solid 2px #ffffff; + background-color: #ffffff; + border-bottom: solid 2px #ffffff; + padding: 0px 3px; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; + outline: 1px solid #e9e9e9; +} +article.pytorch-article .note :not(dt) > code .pre, +article.pytorch-article .warning :not(dt) > code .pre, +article.pytorch-article .tip :not(dt) > code .pre, +article.pytorch-article .seealso :not(dt) > code .pre, +article.pytorch-article .hint :not(dt) > code .pre, +article.pytorch-article .important :not(dt) > code .pre, +article.pytorch-article .caution :not(dt) > code .pre, +article.pytorch-article .danger :not(dt) > code .pre, +article.pytorch-article .attention :not(dt) > code .pre, +article.pytorch-article .error :not(dt) > code .pre { + outline: 0px; + padding: 0px; +} +article.pytorch-article .note pre, +article.pytorch-article .warning pre, +article.pytorch-article .tip pre, +article.pytorch-article .seealso pre, +article.pytorch-article .hint pre, +article.pytorch-article .important pre, +article.pytorch-article .caution pre, +article.pytorch-article .danger pre, +article.pytorch-article .attention pre, +article.pytorch-article .error pre { + margin-bottom: 0; +} +article.pytorch-article .note .highlight, +article.pytorch-article .warning .highlight, +article.pytorch-article .tip .highlight, +article.pytorch-article .seealso .highlight, +article.pytorch-article .hint .highlight, +article.pytorch-article .important .highlight, +article.pytorch-article .caution .highlight, +article.pytorch-article .danger .highlight, +article.pytorch-article .attention .highlight, +article.pytorch-article .error .highlight { + margin: 0 2rem 1.125rem 2rem; +} +article.pytorch-article .note ul, +article.pytorch-article .note ol, +article.pytorch-article .warning ul, +article.pytorch-article .warning ol, +article.pytorch-article .tip ul, +article.pytorch-article .tip ol, +article.pytorch-article .seealso ul, +article.pytorch-article .seealso ol, +article.pytorch-article .hint ul, +article.pytorch-article .hint ol, +article.pytorch-article .important ul, +article.pytorch-article .important ol, +article.pytorch-article .caution ul, +article.pytorch-article .caution ol, +article.pytorch-article .danger ul, +article.pytorch-article .danger ol, +article.pytorch-article .attention ul, +article.pytorch-article .attention ol, +article.pytorch-article .error ul, +article.pytorch-article .error ol { + padding-left: 3.25rem; +} +article.pytorch-article .note ul li, +article.pytorch-article .note ol li, +article.pytorch-article .warning ul li, +article.pytorch-article .warning ol li, +article.pytorch-article .tip ul li, +article.pytorch-article .tip ol li, +article.pytorch-article .seealso ul li, +article.pytorch-article .seealso ol li, +article.pytorch-article .hint ul li, +article.pytorch-article .hint ol li, +article.pytorch-article .important ul li, +article.pytorch-article .important ol li, +article.pytorch-article .caution ul li, +article.pytorch-article .caution ol li, +article.pytorch-article .danger ul li, +article.pytorch-article .danger ol li, +article.pytorch-article .attention ul li, +article.pytorch-article .attention ol li, +article.pytorch-article .error ul li, +article.pytorch-article .error ol li { + color: #262626; +} +article.pytorch-article .note p, +article.pytorch-article .warning p, +article.pytorch-article .tip p, +article.pytorch-article .seealso p, +article.pytorch-article .hint p, +article.pytorch-article .important p, +article.pytorch-article .caution p, +article.pytorch-article .danger p, +article.pytorch-article .attention p, +article.pytorch-article .error p { + margin-top: 1.125rem; +} +article.pytorch-article .note .admonition-title { + background: #54c7ec; +} +article.pytorch-article .warning .admonition-title { + background: #e94f3b; +} +article.pytorch-article .tip .admonition-title { + background: #6bcebb; +} +article.pytorch-article .seealso .admonition-title { + background: #6bcebb; +} +article.pytorch-article .hint .admonition-title { + background: #a2cdde; +} +article.pytorch-article .important .admonition-title { + background: #5890ff; +} +article.pytorch-article .caution .admonition-title { + background: #f7923a; +} +article.pytorch-article .danger .admonition-title { + background: #db2c49; +} +article.pytorch-article .attention .admonition-title { + background: #f5a623; +} +article.pytorch-article .error .admonition-title { + background: #cc2f90; +} +article.pytorch-article .sphx-glr-download-link-note.admonition.note, +article.pytorch-article .reference.download.internal, article.pytorch-article .sphx-glr-signature { + display: none; +} +article.pytorch-article .admonition > p:last-of-type { + margin-bottom: 0; + padding-bottom: 1.125rem !important; +} + +.pytorch-article div.sphx-glr-download a { + background-color: #f3f4f7; + background-image: url("../images/arrow-down-orange.svg"); + background-repeat: no-repeat; + background-position: left 10px center; + background-size: 15px 15px; + border-radius: 0; + border: none; + display: block; + text-align: left; + padding: 0.9375rem 3.125rem; + position: relative; + margin: 1.25rem auto; +} +@media screen and (min-width: 768px) { + .pytorch-article div.sphx-glr-download a:after { + content: ""; + display: block; + width: 0; + height: 1px; + position: absolute; + bottom: 0; + left: 0; + background-color: #e44c2c; + -webkit-transition: width .250s ease-in-out; + transition: width .250s ease-in-out; + } + .pytorch-article div.sphx-glr-download a:hover:after { + width: 100%; + } +} +@media screen and (min-width: 768px) { + .pytorch-article div.sphx-glr-download a:after { + background-color: #ee4c2c; + } +} +@media screen and (min-width: 768px) { + .pytorch-article div.sphx-glr-download a { + background-position: left 20px center; + } +} +.pytorch-article div.sphx-glr-download a:hover { + -webkit-box-shadow: none; + box-shadow: none; + text-decoration: none; + background-image: url("../images/arrow-down-orange.svg"); + background-color: #f3f4f7; +} +.pytorch-article div.sphx-glr-download a span.pre { + background-color: transparent; + font-size: 1.125rem; + padding: 0; + color: #262626; +} +.pytorch-article div.sphx-glr-download a code, .pytorch-article div.sphx-glr-download a kbd, .pytorch-article div.sphx-glr-download a pre, .pytorch-article div.sphx-glr-download a samp, .pytorch-article div.sphx-glr-download a span.pre { + font-family: FreightSans, Helvetica Neue, Helvetica, Arial, sans-serif; +} + +.pytorch-article p.sphx-glr-script-out { + margin-bottom: 1.125rem; +} + +.pytorch-article div.sphx-glr-script-out { + margin-bottom: 2.5rem; +} +.pytorch-article div.sphx-glr-script-out .highlight { + margin-left: 0; + margin-top: 0; +} +.pytorch-article div.sphx-glr-script-out .highlight pre { + background-color: #fdede9; + padding: 1.5625rem; + color: #837b79; +} +.pytorch-article div.sphx-glr-script-out + p { + margin-top: unset; +} + +article.pytorch-article .wy-table-responsive table { + border: none; + border-color: #ffffff !important; + table-layout: fixed; +} +article.pytorch-article .wy-table-responsive table thead tr { + border-bottom: 2px solid #6c6c6d; +} +article.pytorch-article .wy-table-responsive table thead th { + line-height: 1.75rem; + padding-left: 0.9375rem; + padding-right: 0.9375rem; +} +article.pytorch-article .wy-table-responsive table tbody .row-odd { + background-color: #f3f4f7; +} +article.pytorch-article .wy-table-responsive table tbody td { + color: #6c6c6d; + white-space: normal; + padding: 0.9375rem; + font-size: 1rem; + line-height: 1.375rem; +} +article.pytorch-article .wy-table-responsive table tbody td .pre { + background: #ffffff; + color: #ee4c2c; + font-size: 87.5%; +} +article.pytorch-article .wy-table-responsive table tbody td code { + font-size: 87.5%; +} + +a[rel~="prev"], a[rel~="next"] { + padding: 0.375rem 0 0 0; +} + +img.next-page, +img.previous-page { + width: 8px; + height: 10px; + position: relative; + top: -1px; +} + +img.previous-page { + -webkit-transform: scaleX(-1); + transform: scaleX(-1); +} + +.rst-footer-buttons { + margin-top: 1.875rem; + margin-bottom: 1.875rem; +} +.rst-footer-buttons .btn:focus, +.rst-footer-buttons .btn.focus { + -webkit-box-shadow: none; + box-shadow: none; +} + +article.pytorch-article blockquote { + margin-left: 3.75rem; + color: #6c6c6d; +} + +article.pytorch-article .caption { + color: #6c6c6d; + letter-spacing: 0.25px; + line-height: 2.125rem; +} + +article.pytorch-article .math { + color: #262626; + width: auto; + text-align: center; +} +article.pytorch-article .math img { + width: auto; +} + +.pytorch-breadcrumbs-wrapper { + width: 100%; +} +@media screen and (min-width: 1101px) { + .pytorch-breadcrumbs-wrapper { + float: left; + margin-left: 3%; + width: 75%; + } +} +@media screen and (min-width: 1600px) { + .pytorch-breadcrumbs-wrapper { + width: 850px; + margin-left: 1.875rem; + } +} +.pytorch-breadcrumbs-wrapper .pytorch-breadcrumbs-aside { + float: right; +} +.pytorch-breadcrumbs-wrapper .pytorch-breadcrumbs-aside .fa.fa-github { + margin-top: 5px; + display: block; +} + +.pytorch-article .container { + padding-left: 0; + padding-right: 0; + max-width: none; +} + +a:link, +a:visited, +a:hover { + color: #ee4c2c; +} + +::-webkit-input-placeholder { + color: #ee4c2c; +} + +::-moz-placeholder { + color: #ee4c2c; +} + +:-ms-input-placeholder { + color: #ee4c2c; +} + +:-moz-placeholder { + color: #ee4c2c; +} + +@media screen and (min-width: 768px) { + .site-footer a:hover { + color: #ee4c2c; + } +} + +.docs-tutorials-resources a { + color: #ee4c2c; +} + +.header-holder { + position: relative; + z-index: 201; +} + +.header-holder .main-menu ul li.active:after { + color: #ee4c2c; +} +.header-holder .main-menu ul li.active a { + color: #ee4c2c; +} +@media screen and (min-width: 1100px) { + .header-holder .main-menu ul li a:hover { + color: #ee4c2c; + } +} + +.mobile-main-menu.open ul li.active a { + color: #ee4c2c; +} + +.version { + padding-bottom: 1rem; +} + +.pytorch-call-to-action-links { + padding-top: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +@media screen and (min-width: 768px) { + .pytorch-call-to-action-links { + padding-top: 2.5rem; + } +} +@media (min-width: 768px) and (max-width: 1239px) { + .pytorch-call-to-action-links { + padding-top: 0; + } +} +@media (min-width: 1100px) and (max-width: 1239px) { + .pytorch-call-to-action-links { + padding-top: 2.5rem; + } +} +.pytorch-call-to-action-links #tutorial-type { + display: none; +} +.pytorch-call-to-action-links .call-to-action-img, .pytorch-call-to-action-links .call-to-action-notebook-img { + height: 1.375rem; + width: 1.375rem; + margin-right: 10px; +} +.pytorch-call-to-action-links .call-to-action-notebook-img { + height: 1rem; +} +.pytorch-call-to-action-links a { + padding-right: 1.25rem; + color: #000000; + cursor: pointer; +} +.pytorch-call-to-action-links a:hover { + color: #e44c2c; +} +.pytorch-call-to-action-links a .call-to-action-desktop-view { + display: none; +} +@media screen and (min-width: 768px) { + .pytorch-call-to-action-links a .call-to-action-desktop-view { + display: block; + } +} +.pytorch-call-to-action-links a .call-to-action-mobile-view { + display: block; +} +@media screen and (min-width: 768px) { + .pytorch-call-to-action-links a .call-to-action-mobile-view { + display: none; + } +} +.pytorch-call-to-action-links a #google-colab-link, .pytorch-call-to-action-links a #download-notebook-link, +.pytorch-call-to-action-links a #github-view-link { + padding-bottom: 0.625rem; + border-bottom: 1px solid #f3f4f7; + padding-right: 2.5rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.pytorch-call-to-action-links a #google-colab-link:hover, .pytorch-call-to-action-links a #download-notebook-link:hover, +.pytorch-call-to-action-links a #github-view-link:hover { + border-bottom-color: #e44c2c; + color: #e44c2c; +} + +#tutorial-cards-container #tutorial-cards { + width: 100%; +} +#tutorial-cards-container .tutorials-nav { + padding-left: 0; + padding-right: 0; + padding-bottom: 0; +} +#tutorial-cards-container .tutorials-hr { + margin-top: 1rem; + margin-bottom: 1rem; +} +#tutorial-cards-container .card.tutorials-card { + border-radius: 0; + border-color: #f3f4f7; + height: 98px; + margin-bottom: 1.25rem; + margin-bottom: 1.875rem; + overflow: scroll; + background-color: #f3f4f7; + cursor: pointer; +} +@media screen and (min-width: 1240px) { + #tutorial-cards-container .card.tutorials-card { + height: 200px; + overflow: inherit; + } +} +@media (min-width: 768px) and (max-width: 1239px) { + #tutorial-cards-container .card.tutorials-card { + height: 200px; + overflow: scroll; + } +} +#tutorial-cards-container .card.tutorials-card .tutorials-image { + position: absolute; + top: 0px; + right: 0px; + height: 96px; + width: 96px; + opacity: 0.5; +} +#tutorial-cards-container .card.tutorials-card .tutorials-image img { + height: 100%; + width: 100%; +} +@media screen and (min-width: 768px) { + #tutorial-cards-container .card.tutorials-card .tutorials-image { + height: 100%; + width: 25%; + } +} +@media (min-width: 768px) and (max-width: 1239px) { + #tutorial-cards-container .card.tutorials-card .tutorials-image { + height: 100%; + width: 198px; + } +} +#tutorial-cards-container .card.tutorials-card .tutorials-image:before { + content: ''; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + z-index: 1; + background: #000000; + opacity: .075; +} +#tutorial-cards-container .card.tutorials-card .card-title-container { + width: 70%; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; +} +@media screen and (min-width: 768px) { + #tutorial-cards-container .card.tutorials-card .card-title-container { + width: 75%; + } +} +@media (min-width: 768px) and (max-width: 1239px) { + #tutorial-cards-container .card.tutorials-card .card-title-container { + width: 70%; + } +} +#tutorial-cards-container .card.tutorials-card .card-title-container h4 { + margin-bottom: 1.125rem; + margin-top: 0; + font-size: 1.5rem; +} +#tutorial-cards-container .card.tutorials-card p.card-summary, #tutorial-cards-container .card.tutorials-card p.tags { + font-size: 0.9375rem; + line-height: 1.5rem; + margin-bottom: 0; + color: #6c6c6d; + font-weight: 400; + width: 70%; +} +@media screen and (min-width: 768px) { + #tutorial-cards-container .card.tutorials-card p.card-summary, #tutorial-cards-container .card.tutorials-card p.tags { + width: 75%; + } +} +@media (min-width: 768px) and (max-width: 1239px) { + #tutorial-cards-container .card.tutorials-card p.card-summary, #tutorial-cards-container .card.tutorials-card p.tags { + width: 70%; + } +} +#tutorial-cards-container .card.tutorials-card p.tags { + margin-top: 30px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +#tutorial-cards-container .card.tutorials-card h4 { + color: #262626; + margin-bottom: 1.125rem; +} +#tutorial-cards-container .card.tutorials-card a { + height: 100%; +} +@media screen and (min-width: 768px) { + #tutorial-cards-container .card.tutorials-card a { + min-height: 190px; + } +} +@media (min-width: 768px) and (max-width: 1239px) { + #tutorial-cards-container .card.tutorials-card a { + min-height: 234px; + } +} +@media screen and (min-width: 768px) { + #tutorial-cards-container .card.tutorials-card:after { + content: ""; + display: block; + width: 0; + height: 1px; + position: absolute; + bottom: 0; + left: 0; + background-color: #e44c2c; + -webkit-transition: width .250s ease-in-out; + transition: width .250s ease-in-out; + } + #tutorial-cards-container .card.tutorials-card:hover:after { + width: 100%; + } +} +#tutorial-cards-container .card.tutorials-card:hover { + background-color: #ffffff; + border: 1px solid #e2e2e2; + border-bottom: none; +} +#tutorial-cards-container .card.tutorials-card:hover p.card-summary { + color: #262626; +} +#tutorial-cards-container .card.tutorials-card:hover .tutorials-image { + opacity: unset; +} +#tutorial-cards-container .tutorial-tags-container { + width: 75%; +} +#tutorial-cards-container .tutorial-tags-container.active { + width: 0; +} +#tutorial-cards-container .tutorial-filter-menu ul { + list-style-type: none; + padding-left: 1.25rem; +} +#tutorial-cards-container .tutorial-filter-menu ul li { + padding-right: 1.25rem; + word-break: break-all; +} +#tutorial-cards-container .tutorial-filter-menu ul li a { + color: #979797; +} +#tutorial-cards-container .tutorial-filter-menu ul li a:hover { + color: #e44c2c; +} +#tutorial-cards-container .tutorial-filter { + cursor: pointer; +} +#tutorial-cards-container .filter-btn { + color: #979797; + border: 1px solid #979797; + display: inline-block; + text-align: center; + white-space: nowrap; + vertical-align: middle; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + margin-bottom: 5px; +} +#tutorial-cards-container .filter-btn:hover { + border: 1px solid #e44c2c; + color: #e44c2c; +} +#tutorial-cards-container .filter-btn.selected { + background-color: #e44c2c; + border: 1px solid #e44c2c; + color: #ffffff; +} +#tutorial-cards-container .all-tag-selected { + background-color: #979797; + color: #ffffff; +} +#tutorial-cards-container .all-tag-selected:hover { + border-color: #979797; + color: #ffffff; +} +#tutorial-cards-container .pagination .page { + border: 1px solid #dee2e6; + padding: 0.5rem 0.75rem; +} +#tutorial-cards-container .pagination .active .page { + background-color: #dee2e6; +} + +article.pytorch-article .tutorials-callout-container { + padding-bottom: 50px; +} +article.pytorch-article .tutorials-callout-container .col-md-6 { + padding-bottom: 10px; +} +article.pytorch-article .tutorials-callout-container .text-container { + padding: 10px 0px 30px 0px; + padding-bottom: 10px; +} +article.pytorch-article .tutorials-callout-container .text-container .body-paragraph { + color: #666666; + font-weight: 300; + font-size: 1.125rem; + line-height: 1.875rem; +} +article.pytorch-article .tutorials-callout-container .btn.callout-button { + font-size: 1.125rem; + border-radius: 0; + border: none; + background-color: #f3f4f7; + color: #6c6c6d; + font-weight: 400; + position: relative; + letter-spacing: 0.25px; +} +@media screen and (min-width: 768px) { + article.pytorch-article .tutorials-callout-container .btn.callout-button:after { + content: ""; + display: block; + width: 0; + height: 1px; + position: absolute; + bottom: 0; + left: 0; + background-color: #e44c2c; + -webkit-transition: width .250s ease-in-out; + transition: width .250s ease-in-out; + } + article.pytorch-article .tutorials-callout-container .btn.callout-button:hover:after { + width: 100%; + } +} +article.pytorch-article .tutorials-callout-container .btn.callout-button a { + color: inherit; +} + +.pytorch-container { + margin: 0 auto; + padding: 0 1.875rem; + width: auto; + position: relative; +} +@media screen and (min-width: 1100px) { + .pytorch-container { + padding: 0; + } +} +@media screen and (min-width: 1101px) { + .pytorch-container { + margin-left: 25%; + } +} +@media screen and (min-width: 1600px) { + .pytorch-container { + margin-left: 350px; + } +} +.pytorch-container:before, .pytorch-container:after { + content: ""; + display: table; +} +.pytorch-container:after { + clear: both; +} +.pytorch-container { + *zoom: 1; +} + +.pytorch-content-wrap { + background-color: #ffffff; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; + padding-top: 0; +} +.pytorch-content-wrap:before, .pytorch-content-wrap:after { + content: ""; + display: table; +} +.pytorch-content-wrap:after { + clear: both; +} +.pytorch-content-wrap { + *zoom: 1; +} +@media screen and (min-width: 1101px) { + .pytorch-content-wrap { + padding-top: 45px; + float: left; + width: 100%; + display: block; + } +} +@media screen and (min-width: 1600px) { + .pytorch-content-wrap { + width: 100%; + } +} + +.pytorch-content { + background: #ffffff; + width: 100%; + max-width: 700px; + position: relative; +} + +.pytorch-content-left { + min-height: 100vh; + margin-top: 2.5rem; + width: 100%; +} +@media screen and (min-width: 1101px) { + .pytorch-content-left { + margin-top: 0; + margin-left: 3%; + width: 75%; + float: left; + } +} +@media screen and (min-width: 1600px) { + .pytorch-content-left { + width: 850px; + margin-left: 30px; + } +} +.pytorch-content-left .main-content { + padding-top: 0.9375rem; +} +.pytorch-content-left .main-content ul.simple { + padding-bottom: 1.25rem; +} +.pytorch-content-left .main-content .note:nth-child(1), .pytorch-content-left .main-content .warning:nth-child(1) { + margin-top: 0; +} + +.pytorch-content-right { + display: none; + position: relative; + overflow-x: hidden; + overflow-y: hidden; +} +@media screen and (min-width: 1101px) { + .pytorch-content-right { + display: block; + margin-left: 0; + width: 19%; + float: left; + height: 100%; + } +} +@media screen and (min-width: 1600px) { + .pytorch-content-right { + width: 280px; + } +} + +@media screen and (min-width: 1101px) { + .pytorch-side-scroll { + position: relative; + overflow-x: hidden; + overflow-y: scroll; + height: 100%; + } +} + +.pytorch-menu-vertical { + padding: 1.25rem 1.875rem 2.5rem 1.875rem; +} +@media screen and (min-width: 1101px) { + .pytorch-menu-vertical { + display: block; + padding-top: 0; + padding-right: 13.5%; + padding-bottom: 5.625rem; + } +} +@media screen and (min-width: 1600px) { + .pytorch-menu-vertical { + padding-left: 0; + padding-right: 1.5625rem; + } +} + +.pytorch-left-menu { + display: none; + background-color: #f3f4f7; + color: #262626; + overflow: scroll; +} +@media screen and (min-width: 1101px) { + .pytorch-left-menu { + display: block; + overflow-x: hidden; + overflow-y: hidden; + padding-bottom: 110px; + padding: 0 1.875rem 0 0; + width: 25%; + z-index: 200; + float: left; + } + .pytorch-left-menu.make-fixed { + position: fixed; + top: 0; + bottom: 0; + left: 0; + float: none; + } +} +@media screen and (min-width: 1600px) { + .pytorch-left-menu { + padding: 0 0 0 1.875rem; + width: 350px; + } +} + +.expand-menu, .hide-menu { + color: #6c6c6d; + padding-left: 10px; + cursor: pointer; +} + +.collapse { + display: none; +} + +.left-nav-top-caption { + padding-top: 1rem; +} + +.pytorch-left-menu p.caption { + color: #262626; + display: block; + font-size: 1rem; + line-height: 1.375rem; + margin-bottom: 1rem; + text-transform: none; + white-space: normal; +} + +.pytorch-left-menu-search { + margin-bottom: 2.5rem; +} +@media screen and (min-width: 1101px) { + .pytorch-left-menu-search { + margin: 1.25rem 0.625rem 1.875rem 0; + } +} + +.pytorch-left-menu-search ::-webkit-input-placeholder { + color: #262626; +} +.pytorch-left-menu-search ::-moz-placeholder { + color: #262626; +} +.pytorch-left-menu-search :-ms-input-placeholder { + color: #262626; +} +.pytorch-left-menu-search ::-ms-input-placeholder { + color: #262626; +} +.pytorch-left-menu-search ::placeholder { + color: #262626; +} + +.pytorch-left-menu-search :focus::-webkit-input-placeholder { + color: transparent; +} +.pytorch-left-menu-search :focus::-moz-placeholder { + color: transparent; +} +.pytorch-left-menu-search :focus:-ms-input-placeholder { + color: transparent; +} +.pytorch-left-menu-search :focus::-ms-input-placeholder { + color: transparent; +} +.pytorch-left-menu-search :focus::placeholder { + color: transparent; +} + +.pytorch-left-menu-search input[type=text] { + border-radius: 0; + padding: 0.5rem 0.75rem; + border-color: #ffffff; + color: #262626; + border-style: solid; + font-size: 1rem; + width: 100%; + background-color: #f3f4f7; + background-image: url("../images/search-icon.svg"); + background-repeat: no-repeat; + background-size: 18px 18px; + background-position: 12px 10px; + padding-left: 40px; + background-color: #ffffff; +} +.pytorch-left-menu-search input[type=text]:focus { + outline: 0; +} + +@media screen and (min-width: 1101px) { + .pytorch-left-menu .pytorch-side-scroll { + width: 120%; + } +} +@media screen and (min-width: 1600px) { + .pytorch-left-menu .pytorch-side-scroll { + width: 340px; + } +} + +.pytorch-right-menu { + min-height: 100px; + overflow-x: hidden; + overflow-y: hidden; + left: 0; + z-index: 200; + padding-top: 0; + position: relative; +} +@media screen and (min-width: 1101px) { + .pytorch-right-menu { + width: 100%; + } + .pytorch-right-menu.scrolling-fixed { + position: fixed; + top: 45px; + left: 83.5%; + width: 14%; + } + .pytorch-right-menu.scrolling-absolute { + position: absolute; + left: 0; + } +} +@media screen and (min-width: 1600px) { + .pytorch-right-menu { + left: 0; + width: 380px; + } + .pytorch-right-menu.scrolling-fixed { + position: fixed; + top: 45px; + left: 1230px; + } + .pytorch-right-menu.scrolling-absolute { + position: absolute; + left: 0; + } +} + +.pytorch-left-menu ul, +.pytorch-right-menu ul { + list-style-type: none; + padding-left: 0; + margin-bottom: 2.5rem; +} +.pytorch-left-menu > ul, +.pytorch-right-menu > ul { + margin-bottom: 2.5rem; +} +.pytorch-left-menu a:link, +.pytorch-left-menu a:visited, +.pytorch-left-menu a:hover, +.pytorch-right-menu a:link, +.pytorch-right-menu a:visited, +.pytorch-right-menu a:hover { + color: #6c6c6d; + font-size: 0.875rem; + line-height: 1rem; + padding: 0; + text-decoration: none; +} +.pytorch-left-menu a:link.reference.internal, +.pytorch-left-menu a:visited.reference.internal, +.pytorch-left-menu a:hover.reference.internal, +.pytorch-right-menu a:link.reference.internal, +.pytorch-right-menu a:visited.reference.internal, +.pytorch-right-menu a:hover.reference.internal { + margin-bottom: 0.3125rem; + position: relative; +} +.pytorch-left-menu li code, +.pytorch-right-menu li code { + border: none; + background: inherit; + color: inherit; + padding-left: 0; + padding-right: 0; +} +.pytorch-left-menu li span.toctree-expand, +.pytorch-right-menu li span.toctree-expand { + display: block; + float: left; + margin-left: -1.2em; + font-size: 0.8em; + line-height: 1.6em; +} +.pytorch-left-menu li.on a, .pytorch-left-menu li.current > a, +.pytorch-right-menu li.on a, +.pytorch-right-menu li.current > a { + position: relative; + border: none; +} +.pytorch-left-menu li.on a span.toctree-expand, .pytorch-left-menu li.current > a span.toctree-expand, +.pytorch-right-menu li.on a span.toctree-expand, +.pytorch-right-menu li.current > a span.toctree-expand { + display: block; + font-size: 0.8em; + line-height: 1.6em; +} +.pytorch-left-menu li.toctree-l1.current > a, +.pytorch-right-menu li.toctree-l1.current > a { + color: #ee4c2c; +} +.pytorch-left-menu li.toctree-l1.current > a:before, +.pytorch-right-menu li.toctree-l1.current > a:before { + content: "\2022"; + display: inline-block; + position: absolute; + left: -15px; + top: -10%; + font-size: 1.375rem; + color: #ee4c2c; +} +@media screen and (min-width: 1101px) { + .pytorch-left-menu li.toctree-l1.current > a:before, + .pytorch-right-menu li.toctree-l1.current > a:before { + left: -20px; + } +} +.pytorch-left-menu li.toctree-l1.current li.toctree-l2 > ul, .pytorch-left-menu li.toctree-l2.current li.toctree-l3 > ul, +.pytorch-right-menu li.toctree-l1.current li.toctree-l2 > ul, +.pytorch-right-menu li.toctree-l2.current li.toctree-l3 > ul { + display: none; +} +.pytorch-left-menu li.toctree-l1.current li.toctree-l2.current > ul, .pytorch-left-menu li.toctree-l2.current li.toctree-l3.current > ul, +.pytorch-right-menu li.toctree-l1.current li.toctree-l2.current > ul, +.pytorch-right-menu li.toctree-l2.current li.toctree-l3.current > ul { + display: block; +} +.pytorch-left-menu li.toctree-l2.current li.toctree-l3 > a, +.pytorch-right-menu li.toctree-l2.current li.toctree-l3 > a { + display: block; +} +.pytorch-left-menu li.toctree-l3, +.pytorch-right-menu li.toctree-l3 { + font-size: 0.9em; +} +.pytorch-left-menu li.toctree-l3.current li.toctree-l4 > a, +.pytorch-right-menu li.toctree-l3.current li.toctree-l4 > a { + display: block; +} +.pytorch-left-menu li.toctree-l4, +.pytorch-right-menu li.toctree-l4 { + font-size: 0.9em; +} +.pytorch-left-menu li.current ul, +.pytorch-right-menu li.current ul { + display: block; +} +.pytorch-left-menu li ul, +.pytorch-right-menu li ul { + margin-bottom: 0; + display: none; +} +.pytorch-left-menu li ul li a, +.pytorch-right-menu li ul li a { + margin-bottom: 0; +} +.pytorch-left-menu a, +.pytorch-right-menu a { + display: inline-block; + position: relative; +} +.pytorch-left-menu a:hover, +.pytorch-right-menu a:hover { + cursor: pointer; +} +.pytorch-left-menu a:active, +.pytorch-right-menu a:active { + cursor: pointer; +} + +.pytorch-left-menu ul { + padding-left: 0; +} + +.pytorch-right-menu a:link, +.pytorch-right-menu a:visited, +.pytorch-right-menu a:hover { + color: #6c6c6d; +} +.pytorch-right-menu a:link span.pre, +.pytorch-right-menu a:visited span.pre, +.pytorch-right-menu a:hover span.pre { + color: #6c6c6d; +} +.pytorch-right-menu a.reference.internal.expanded:before { + content: "-"; + font-family: monospace; + position: absolute; + left: -12px; +} +.pytorch-right-menu a.reference.internal.not-expanded:before { + content: "+"; + font-family: monospace; + position: absolute; + left: -12px; +} +.pytorch-right-menu li.active > a { + color: #ee4c2c; +} +.pytorch-right-menu li.active > a span.pre, .pytorch-right-menu li.active > a:before { + color: #ee4c2c; +} +.pytorch-right-menu li.active > a:after { + content: "\2022"; + color: #e44c2c; + display: inline-block; + font-size: 1.375rem; + left: -17px; + position: absolute; + top: 1px; +} +.pytorch-right-menu .pytorch-side-scroll > ul > li > ul > li { + margin-bottom: 0; +} +.pytorch-right-menu ul ul { + padding-left: 0; +} +.pytorch-right-menu ul ul li { + padding-left: 0px; +} +.pytorch-right-menu ul ul li a.reference.internal { + padding-left: 0; +} +.pytorch-right-menu ul ul li ul { + display: none; + padding-left: 10px; +} +.pytorch-right-menu ul ul li li a.reference.internal { + padding-left: 0; +} +.pytorch-right-menu li ul { + display: block; +} + +.pytorch-right-menu .pytorch-side-scroll { + padding-top: 20px; +} +@media screen and (min-width: 1101px) { + .pytorch-right-menu .pytorch-side-scroll { + width: 120%; + } +} +@media screen and (min-width: 1600px) { + .pytorch-right-menu .pytorch-side-scroll { + width: 400px; + } +} +.pytorch-right-menu .pytorch-side-scroll > ul { + padding-left: 10%; + padding-right: 10%; + margin-bottom: 0; +} +@media screen and (min-width: 1600px) { + .pytorch-right-menu .pytorch-side-scroll > ul { + padding-left: 25px; + } +} +.pytorch-right-menu .pytorch-side-scroll > ul > li > a.reference.internal { + color: #262626; + font-weight: 500; +} +.pytorch-right-menu .pytorch-side-scroll ul li { + position: relative; +} + +#pytorch-right-menu .side-scroll-highlight { + color: #ee4c2c; +} + +.header-container { + max-width: none; + margin-top: 4px; +} +@media screen and (min-width: 1101px) { + .header-container { + margin-top: 0; + } +} +@media screen and (min-width: 1600px) { + .header-container { + margin-top: 0; + } +} + +.container-fluid.header-holder { + padding-right: 0; + padding-left: 0; +} + +.header-holder .container { + max-width: none; + padding-right: 1.875rem; + padding-left: 1.875rem; +} +@media screen and (min-width: 1101px) { + .header-holder .container { + padding-right: 1.875rem; + padding-left: 1.875rem; + } +} + +.header-holder .main-menu { + -webkit-box-pack: unset; + -ms-flex-pack: unset; + justify-content: unset; + position: relative; +} +@media screen and (min-width: 1101px) { + .header-holder .main-menu ul { + padding-left: 0; + margin-left: 26%; + } +} +@media screen and (min-width: 1600px) { + .header-holder .main-menu ul { + padding-left: 38px; + margin-left: 310px; + } +} + +.pytorch-page-level-bar { + display: none; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + background-color: #ffffff; + border-bottom: 1px solid #e2e2e2; + width: 100%; + z-index: 201; +} +@media screen and (min-width: 1101px) { + .pytorch-page-level-bar { + left: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 45px; + padding-left: 0; + width: 100%; + position: absolute; + z-index: 1; + } + .pytorch-page-level-bar.left-menu-is-fixed { + position: fixed; + top: 0; + left: 25%; + padding-left: 0; + right: 0; + width: 75%; + } +} +@media screen and (min-width: 1600px) { + .pytorch-page-level-bar { + left: 0; + right: 0; + width: auto; + z-index: 1; + } + .pytorch-page-level-bar.left-menu-is-fixed { + left: 350px; + right: 0; + width: auto; + } +} +.pytorch-page-level-bar ul, .pytorch-page-level-bar li { + margin: 0; +} + +.pytorch-shortcuts-wrapper { + display: none; +} +@media screen and (min-width: 1101px) { + .pytorch-shortcuts-wrapper { + font-size: 0.875rem; + float: left; + margin-left: 2%; + } +} +@media screen and (min-width: 1600px) { + .pytorch-shortcuts-wrapper { + margin-left: 1.875rem; + } +} + +.cookie-banner-wrapper { + display: none; +} +.cookie-banner-wrapper .container { + padding-left: 1.875rem; + padding-right: 1.875rem; + max-width: 1240px; +} +.cookie-banner-wrapper.is-visible { + display: block; + position: fixed; + bottom: 0; + background-color: #f3f4f7; + min-height: 100px; + width: 100%; + z-index: 401; + border-top: 3px solid #ededee; +} +.cookie-banner-wrapper .gdpr-notice { + color: #6c6c6d; + margin-top: 1.5625rem; + text-align: left; + max-width: 1440px; +} +@media screen and (min-width: 768px) { + .cookie-banner-wrapper .gdpr-notice { + width: 77%; + } +} +@media (min-width: 768px) and (max-width: 1239px) { + .cookie-banner-wrapper .gdpr-notice { + width: inherit; + } +} +.cookie-banner-wrapper .gdpr-notice .cookie-policy-link { + color: #343434; +} +.cookie-banner-wrapper .close-button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background: transparent; + border: 1px solid #f3f4f7; + height: 1.3125rem; + position: absolute; + bottom: 42px; + right: 0; + top: 0; + cursor: pointer; + outline: none; +} +@media screen and (min-width: 768px) { + .cookie-banner-wrapper .close-button { + right: 20%; + top: inherit; + } +} +@media (min-width: 768px) and (max-width: 1239px) { + .cookie-banner-wrapper .close-button { + right: 0; + top: 0; + } +} + +.main-menu ul li .resources-dropdown a { + cursor: pointer; +} +.main-menu ul li .dropdown-menu { + border-radius: 0; + padding: 0; +} +.main-menu ul li .dropdown-menu .dropdown-item { + color: #6c6c6d; + border-bottom: 1px solid #e2e2e2; +} +.main-menu ul li .dropdown-menu .dropdown-item:last-of-type { + border-bottom-color: transparent; +} +.main-menu ul li .dropdown-menu .dropdown-item:hover { + background-color: #e44c2c; +} +.main-menu ul li .dropdown-menu .dropdown-item p { + font-size: 1rem; + color: #979797; +} +.main-menu ul li .dropdown-menu a.dropdown-item:hover { + color: #ffffff; +} +.main-menu ul li .dropdown-menu a.dropdown-item:hover p { + color: #ffffff; +} + +.resources-dropdown-menu { + left: -75px; + width: 226px; + display: none; + position: absolute; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #ffffff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} + +.resources-dropdown:hover .resources-dropdown-menu { + display: block; +} + +.main-menu ul li .resources-dropdown-menu { + border-radius: 0; + padding: 0; +} +.main-menu ul li.active:hover .resources-dropdown-menu { + display: block; +} + +.main-menu ul li .resources-dropdown-menu .dropdown-item { + color: #6c6c6d; + border-bottom: 1px solid #e2e2e2; +} + +.resources-dropdown .with-down-orange-arrow { + padding-right: 2rem; + position: relative; + background: url("../images/chevron-down-orange.svg"); + background-size: 14px 18px; + background-position: top 7px right 10px; + background-repeat: no-repeat; +} + +.with-down-arrow { + padding-right: 2rem; + position: relative; + background-image: url("../images/chevron-down-black.svg"); + background-size: 14px 18px; + background-position: top 7px right 10px; + background-repeat: no-repeat; +} +.with-down-arrow:hover { + background-image: url("../images/chevron-down-orange.svg"); + background-repeat: no-repeat; +} + +.header-holder .main-menu ul li .resources-dropdown .doc-dropdown-option { + padding-top: 1rem; +} + +.header-holder .main-menu ul li a.nav-dropdown-item { + display: block; + font-size: 1rem; + line-height: 1.3125rem; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #979797; + text-align: center; + background-color: transparent; + border-bottom: 1px solid #e2e2e2; +} +.header-holder .main-menu ul li a.nav-dropdown-item:last-of-type { + border-bottom-color: transparent; +} +.header-holder .main-menu ul li a.nav-dropdown-item:hover { + background-color: #e44c2c; + color: white; +} +.header-holder .main-menu ul li a.nav-dropdown-item .dropdown-title { + font-size: 1.125rem; + color: #6c6c6d; + letter-spacing: 0; + line-height: 34px; +} + +.header-holder .main-menu ul li a.nav-dropdown-item:hover .dropdown-title { + background-color: #e44c2c; + color: white; +} + +/*# sourceMappingURL=theme.css.map */ diff --git a/docs/v1.2.0/_static/doctools.js b/docs/v1.2.0/_static/doctools.js new file mode 100644 index 0000000000..e1bfd708b7 --- /dev/null +++ b/docs/v1.2.0/_static/doctools.js @@ -0,0 +1,358 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + this.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + var url = new URL(window.location); + url.searchParams.delete('highlight'); + window.history.replaceState({}, '', url); + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar : function() { + $('input[name=q]').first().focus(); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) + return; + + $(document).keydown(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box, textarea, dropdown or button + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' + && activeElementType !== 'BUTTON') { + if (event.altKey || event.ctrlKey || event.metaKey) + return; + + if (!event.shiftKey) { + switch (event.key) { + case 'ArrowLeft': + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) + break; + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + break; + case 'ArrowRight': + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) + break; + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + break; + case 'Escape': + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) + break; + Documentation.hideSearchWords(); + return false; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case '/': + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) + break; + Documentation.focusSearchBar(); + return false; + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/v1.2.0/_static/documentation_options.js b/docs/v1.2.0/_static/documentation_options.js new file mode 100644 index 0000000000..7e8ecffa6a --- /dev/null +++ b/docs/v1.2.0/_static/documentation_options.js @@ -0,0 +1,14 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: 'master', + LANGUAGE: 'None', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/docs/v1.2.0/_static/file.png b/docs/v1.2.0/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-bold-italic.woff b/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-bold-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..e317248423c75c8291b49bf7ef10e792167a1623 GIT binary patch literal 39560 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-book-italic.woff b/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-book-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..a50e5038a40569ac50f2cee39a0751cb26037eca GIT binary patch literal 33944 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 V37Pl+`?OL900001TdUiQ003jn30(jH literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-book.woff2 b/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-book.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2688739f1f0bbaeb667259838a5ef06ecf9a5c1e GIT binary patch literal 25120 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 T)@X9ci+<3aS@reXfBhT)8I@;R literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-light-italic.woff b/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-light-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..beda58d4e2189693806b79b00cc3c29575a308fc GIT binary patch literal 29304 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 ?{)rYg%aN&w}ky;bH8!>#J4RhUvTAPlljI0=S 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 Lkf!TzE&u=kDziPT literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-light.woff b/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-light.woff new file mode 100644 index 0000000000000000000000000000000000000000..226a0bf83583627ed9d9575063e22d874b84e790 GIT binary patch literal 26908 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 T^;oYa-GVc%0S9p2zT08|&6ZP< literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium-italic.woff b/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium-italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..a42115d63b39e9dc66c33d6294a81e0115569003 GIT binary patch literal 19420 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium-italic.woff2 b/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium-italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..16a7713a451ad09b4351a550b1d54345ea7c08bc GIT binary patch literal 16000 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium.woff b/docs/v1.2.0/_static/fonts/FreightSans/freight-sans-medium.woff new file mode 100644 index 0000000000000000000000000000000000000000..5ea34539c6f54063a4a89213bfffebb244888eae GIT binary patch literal 32072 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Light.woff b/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Light.woff new file mode 100644 index 0000000000000000000000000000000000000000..cf37a5c50bdb70f837f65c6233c0be5e4fc8bfa1 GIT binary patch literal 50680 zcmY&;V{|25*X@bjQO8Ngwr$(CZ9D1MPCB-2yJPi9yP0K&6;a#tX-pO zjqNTkCI$cje3zkT0P^<*q<#6@{vY!n`~Mbk5mB*kLBKa>{f*x^W;l}K3i8U|+&KUM z8Uz49kl@hhiij(#3IPD%4&OF6007g$XcuTDuT0PMeP8wMr}YhkNNbA}V_U;-4J9Zv)Obtx{fO7b64eK}95Ok5YExyTbPUPDr{00ex zFIa(vt&7JuX8{0!DFFZo3VJ6eI5zgi-@2+U006S^8x=ZVppdqP9^dUY8hrZ^{0E3g zFgZIzThnhY;Csxj-(!qeo7X^fuy=L=09v2F>-q@*;39$@OH(>HnST2Y{nwZ8`2zWU zf+gwgkwrSr2pgn;Bno^p^TUcqasVSF&{)$bLV0`Fm1x;M1b>Pr^X*gJ4|Lw?3li)L zx%-V10_kYlByV;#gtl38?W#m!L+oFnZ0`NgQn9L9xzV(u+sW&a_xv|*lCTFf9=gX^;!WkNhB)_#d-^G~i*o1V45aaEpROenKH5=lfk{=C(vd1>s&fUu|A( zbf%@bLxCCKi!s32yHt6==&IMGl^~^Ow6Vp2gT6;*<8jpLZkz*YyDCwOC0!zr8F#$T z&h#GuGZ%l6MSQi37&CwKt7A91r#mfG{wvJhq#HiRAIlHMS{K2BOMWXefQhRcP|U9~ zLOAoNd4Samr@z6rzxlCNX8i%Nb=|mQNONJ`^K?}&VkzRl>frehj(ijS2hDp3)kuma z@@Ob{neIm^z^|UgJiDkR>@R)I|wb;zwocqE2)lZp9y7yWVgCHXUo#v=E|WnCmRion{5Pi z+_QIGP?6=MBpC^FAzn!SCZ9tv(#S;y8LhW+&o~>k{z1MolEYQQpm}4&Gd5C0{uS5Mc{h00VTnvo&8aC~n^5;IWs4!abbH|h0xMh3v23t2?F~0l(28ApF_ah(2_E<3T zjOC2K@33AXUGVWO9*ccXA`_dN*Z8z#y2eDZ8}p=q#nBw8nv&Uyd5eR_rPW?kT`oD~v-FR`6h_$lm0gLGcS2Ma!5my>#+-AfF{-qz zbY|z#OoYb3r17)lTWmGGk%!^tQ(vifP}{*g`R^D^N!7MVRz({5V!pGby?7kZvdCY% zfGA4NEY>M5rY+V*LQX*v3MX7tBch=xf`42BZ+AozA@Ho9$p5mWp^;E zbm=Zg7Yg+Y9#KOj%l$`7nzU4m3VArVB#}KbsGZQ}(KvMrfg6 z*wm3_a88fMC!7ZD_s@GFgn+acO{8yyRsj-p~tIqK-jXlpIsFYB1I82o0s@R`!7VfkonE$s>M zS@YqGVcl`qRbw0G7HVWQ=#r$|N%_-db0QUX;wOd0^6< z)GXiQeRXP|J^XVXYZAyf=i>WDL{r$GNIjVHa$CSeL!68p!%}uPHRsH(Fl-^Mk2khd z&XAojE`(J~BX`R>c|R^=AAW+siU6#4ePC6O@ST5ilvY%V!Z(#G;4K$rJ}4&Bv~20( zjH_PGtoC+jHw*02>=+jR%R#5Oac+Z+~ZG9XUEzWhCqWKOr@zz*(|V?cCA*p0L}$ zo8CJJCePL^sc|5w|9UQnx{I9a+1c$l9`4;8?oGgySC_bWshI0I_4(v}Wo4hqoStFD zc$y+Vw{PFnj?;Q^FS?moAAWlQ;O`6j{8@W}#$U*BUUiO+bB1!ig}K~K@`;qc!@5{0 z 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 E0I?7Y`Tzg` literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Medium.woff b/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Medium.woff new file mode 100644 index 0000000000000000000000000000000000000000..fc65a679c2263361a257094d35efba5431eac4da GIT binary patch literal 51872 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 z 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

4^Ms(tkTAT$IaHvmd`A%eqxxdw1CI0a{az9 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 I0hlKM0JgZhVgLXD literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff b/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..7d63d89f24bcc0c0f5dc3cda086fee67da266ebf GIT binary patch literal 50664 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%0D2G&3Y8fz)sfMJYF&mh7!l>Kv<9rdEn*UI zYj*g)m5tK)1sXX*ExfrJ_(kjD6#E56WSE=Mz?;&49l69$S*1^xARdcL>qZ;T5`bzN^frDaT2FLKLebK_NlGUAcJxP_sdv<@HyqyRThHL#YoN>d)4$^k8N5U5kO(RugL~8# z-5j$|OZTdDyeQBb=Uv>_5is+&9jKFB- zhP_k|bY2wbaO^_~7k2X3o~4a$f*P$jLyDp<5m664WvAtRC6VJ(OPz}FxVM0~M}f!u zYakLUi>Kz-0v4!yxKTRO9uA;|R!-6V-5Uld0oE1qZ7VHxYgL3>Bg^2SR2;*KlpN|4 zSuM46g+L0!T^ubWO(UiNZiry+F-KubQ)|j&T3alWV=2_{pIue%DKThXJcf)o<5wvh zzmB-vP=9f#x1h$1M)^{0AM5NJaTQi@(ze5_s>pxG;jdp>9Pn5#JgHhJu{W0cMHI9~aq&+dOoi@nbGw9F5`{N6WoYILr zXdsyCrI3>ot^qOa_mU$F$&h=jqH-Ws>)ok*z(k(n@E>bmd*&z5){T#x&(#=~AuZ(j z5VGVPDocKv{i(dL!NFPl!@RE2cT8Q)c=jGIg6bmF%PIufq)|F)d(RNtBev zjZ#CDMwD|o!`O!@u)}^AOE=7GX$T|SXsX=W0%*rSnT zet%aH;6npbLji1T?V48*b?I1J-Aox0+=xU^POA>^bN=?TVXVH3|3By9SO(6|nH$qLy*Kx~aP z5$+uEB7Ix6S0;(31Eh~~+Bpzz0S3}V46w>2mMXP}DrE^_x8}!*K-M9~d|R7`K({~p z_u8fNHS`Y`{3p2pvr+@v3d#y=LXA<{1bVjs9)+jh zMJlRqs>I({t9ZCU(5lHWGW#mm1(K8g=zmzR!dUaIO!sqhdenLqC?0v#Jf^{vVX z<~3S=Mf4PbrdiUZVU_h33T*>&mU)msWWg26?J!_FF3o8Op%RpBXt{81G&h1AnP`gn zGk=3|=~~D{!v?9hFF#hV3IsPnGBQWQqWf&TH~CnXzR{mcARy+SBd9`J;AGg!v5riL z8Ze(FDUqd1mPb@OxfV7*bLgcLYJ)ijY#1`?WsMb%aAw*F$64hZp%ew?#>08X+&mcs z+yHI5OG~*#`z6<{`;O0sG9I6eQ&*RFmh1IK871Qu%TmiN&yrZm*{=G7vuRH5R(dY; zW&3P+e2WKg>z!6<(hx283fLq_A_?>%CydaOC|c^A+1UCyG8iKG_7xUopjEwgi6gBn zxUNSJWeO!ZuV-_2cXNw-V`;;9Tucu0VHVOGjn3J(C!2~b0@zH8l9)xwwaEg9U}FDPmhp4k^@D#qFwZOp_?dEx`h)B7rmPJ8e+ z0eh3hn+KM=`-b(k0^91Y!H-?&rp0ikWYimxXdS;$CC6S=2HSNqv-Cg%F?;_gF|iU_ z3c%(dM7DCH(Du^dfkUXqvdXF(j*CaF^@fDP7s=nXU}f>d-fg>nR$c#ps%em|vadDI;mOnBx-h)DSHhhK{N2rXAb&#B$R=Wp@}-;5QTg z6EvWu2^A+%{ySyhAC?m2Gmvj)qV?0iNtIJreRvP4&fMu;aEhm^(LTDAsSo7*yTf zTE>-$&Z$^#mF5)VA|njPGKfaYdwyTi05z8Eo(gmuw)MQ21@9k9`tB78tl) zAZy0Ra@Ar5W7>jXA1(AMb;6d?dzGHUNNE9A+rw`W*jAH7X9(nV(g`z)ZRGpZ*OTCu zbsK@&(}T>K?n>yXqf-5BQl-9ePp4tFd?$wO@ZnV;&xI`c0%!(H@MA_aRl`e7W^(UkNg${<-x$_*YE<)`hZvkWqwS0Xw z!2??zEp*!rY;h|d(|1oD&t%4(0pq9G3hNMETmLT0u;<4EwA<0Hju^#p8}%_49iUr| zup`->wti2$hZ>klxOO~(T>WsRg6;yxv?Ux z(Dae-GsaYAy`fIAiSbG|Uu)|S^{20R9f5ECU6>Xvqy6%;6E07^_>yMhq7sF)a7 zEI%*dvcp?ajO;9lobB(E$3aAOUUiKZ-Z05o2K8aL6)?wZe}-_PoCT;XffRkbyU)Ti zl$xTKVVZ2#c6PSjBsp0SrTrNg{h~_PmcS{fuSIze;n*}P#`Rd-he6(&g6#!L5K0kAzX( z=N(2B_ zP4eu_wB3539mH3)2>LJ)1PIiV@u!4{>r#Zs@F5GcAhwLsU;UBbj-;T$`fr9I3S zxGWM;x3~%lTzgTyiqE9z@0!)!gCuUPw)VTlL9)NPN4y%fyiYvB$AYle;ln3)oL|oT z^V3)1)gixX-uR}k+x4ZHTn3+x^T6QIwaJ?d@$2PFry;H-6>v|{G-Lldt%bWNV}#IJ zoEJ;$R5by5Z*#VAhCby?2v-z?v5NQV}4UyvP-O@r`Oml;eGt7m`hR zLH&Vaw*qT*n#^vw(sTDW;-hQ320uWAynAZ_?1TD&CXY^QZ0_FAv&G6+vI1v+#PWWzJ>k+*l3% zaqg>y-;Az>U%~~Eg47ne=}*$l-%NVGLgR|4fnVE1zk)*}6o-Q-{N0(d^;?4Q(}t+% z3AivtUgbC69-*|7x8u&hy7}n;WGI zo#xn{>M$y%oQSN+qCIaW=gen|XTBFSFzMeVoDP$4c%iJ#0`Kn|JM;_2Q8WeA052W~ zM|5j}^)UI+Hy{p6W1$jFMp;JRz_J`EkAdeR8cRqJKAGEFS~?o`F{>PpPmn8U)LS*% z=3HaiuRmQ6!x_Q!BNt$ncn};p8X0qOk%~CKv{w4DKIfsBpu7bE31_tB%UU`B zfPh2xk{g3|+TpKO&wk;qZ*w-23(6(=?B`qnjS>f1P1$eerC-3jqN4~M7%so7iaW|7| zOIDXy(9EVC*_+PNmri6$Eod*ztz%Z&X)bACUw79uz0=2BE^ihE56{65$VP^u>U-?_ zhnmGm6@)$NdLKPB-{OkR4Xe`YRGGa%OeBy=@N-B3oV;yKH)cp3kL49m@CojZ9wwtP z(38m5pLnm-(c>_WY?_FiGgk{x6SVmlDG1%%g{D#R1<;t7S~Y*RBR4!(@l5g|u$z>v zjb&%MY+0dB;Z+Cgl$&@P@Nr|Bjh46PJs4xDcd zciFmaHLi~g?cGYXMDF{9E(ZiWByc$<4NnnI60{8QREJ|H>BACVWua_>9P(aEqxZ2U zMg8T{xyW9MP9!j6o3O()j1pietEyJE>$^^?FQy1>JdIr*(z~@@RSSxZ&P^>9YC613 zMUCC>kIY^$fRRP*p|5$`3RpU8Jx#?TpW58fkyp0Mg38v)z}`qlJbNWCQxsl`3f4tz z{Nh*6DCWLO5e*^{_Io`-mj#OEheOM5x;XAW`$%txxW2ueFTFL<>wQ(|CiDg@@YiZU zd1HVYJhe_XREZV3@mZ=1J84^6|Iv;zVE;K^90&Z-P$Flea-J*e0X_qCB*@aX`6aD2 zNz7W)Iv`-IaUE!5oZ@!94uoZhdWfQJwDAZwNUR?nHPcKUl^72V85hG`O;|d*k1ASd z<7sl+>e|_^YFenLM^71VC>R7R{bP6&ZhkhwV*GrFn8(|+cvp5>v-tfCS5;lpZ0m)B zZ-dBuam)VK6X_CjPnEF2~kI@HJNDq5Q0yXobTZGUe2l& zS5UsgFD%v}O7q?%s;#1?m&=^tjcf(v3!o4)ev`5$*{K_EcX~=# zv249yT8!p0iCy3j&|>u@TJR;t>@Ik>lB44^9{|z+ua2jz58@4H)?iu3Cn;}L+eU}? zV~fwjEc;aojYHE48rdA(s#xNbtks@qXAd>8;HF_c(he|QYn;P4I2!;R!70;taQ)LWY)P& zcvfFWuC(SuOzx?0y)vt80(D1wg^0Y8`NA)X+v0*-B@?i5%5|yxsy$DIW-7O|p6VmK zcpo`ur53gI89Dm^y2RDr)w;=`Uo*4(|u`8V86&hwx7jod- zJ>}V4@p<=VigO?+w`@yPIsqP9Fsa1wwdxI8<_8j~LStl?9fJ{#(ymXUHy1f#)8ReWtHvh; zK4@zVsM()3YuShIwLIe`7$2N>+#{&JwxxI1W$Ii$^VmDBKdtiBT;UfQ&T9}tIs)Nm z-SJS}M?*%0OIQ7qfoYVc!7BHu@7*Aa8d$5MI`=)cEnY`N-SKriJFovi?6#Tgwhb2@ zi=8^K+-%T88d;%THsHUCjX!t0-2H=i-x0SQuAHG#hkP=bCa=Zy2;?jN#DQ=n?iK9Y zdRzy)INcI#ZT?(;qn<-xhFu|`w3t8+OA8*L{Ia8XIHTP)_D4I`S<7VBP%LVYwRO*& zlk_~p7n9m``6hV!ZA{`pH+Kc)b?y4<5fo+BJBC~9zJ>s6CH5ytT3vB%E|@)wD@$Z6 zRz-Z0??Z6crH9sH`06pUG~|oRj}(ST_%DN)RfT8csm14uI^VeuwpSI9_PFvbV;;uZ zza=R&g+fX}=|&IUee-F_7gifS?kzs{O?s8%>8Yk$W$ywO2Fxg#$5xAKPg$O9o0Cgi z3C=E%EI2!XRa?1Kh!0dhqc8hY$ig2@gt<`+w2`6uXoak2On#g8 z@|MQ)N=^DzMJWGzWS#Rg&Qf!p4|60uWG`07Ne%u4URQ5Rdee5p?Nx(;@nJhbp{8XQqBj}qy$+HMxH_*s z**5!+?jTFQKjlB)^gqdXQ%KU{)$;_zQ^GrQx(V8S=~P3}bZWP&T>VV&y?_w4{ob~H z-pU^_c2#cU3|^gV481+L@k@uI*KqflANO)KzjZPN{P9 zP{;!g;={hySQ_#4@8&*@>?L-4v|afTbg2cvsaQJ}JVaGXdyAGX zCbU1wgb$qpdq3XB5vDq-UQ{XvB@$T7e|AKVg7!^pHY-dP#%|cZG`)&dQKHpZzF@E| zwlQ{BOvuJ^Dea8>9vb>})IFhkwKPU(%5%}0xeYvi6ewlX^!x06uX}e1P9~zeZ4%?* z(39UlqoI2c*BbX}(BXbpI)ddYtgzACigGVZgC=YDRnv_RWY8OKKu#irs<9{MsSL9E zQgR`h315hU@I7H@CNDC4JaCRpRv08Nj|r`LUEhHac1gF#tR{?z5rP~BMsQr?tmK8$ znfZeDytHKB9@nUwX=WMtA*ouTe6L;T#a*9RyguV1i`Ek<^lVZgY5G^vwCN7!o#Jl7 zydj;Bm=Ks?CW?yb#A`E=5>tPKxq(k!K7S6+c!1A2{B< zzq^C|LFjfy=D=PSNUj-p%zdo?pwFg!ZL8VqC9egDWqq$A>MgK)+EvCM>!D<*ue3Em zZ)^wiU6-SMotL12y!ED71T>+Vg(Qm8<|H8$2Pn#kr%Zo~NI2f)((Y($3jay!lBC*U zpRrWkV=`E8j@ljGUOWtecOxH0bF2MGA@2AoEC%IB%CLPD=nM$jnU~%n@2LT}uM=-0 z5gj7>#z%fP|I$c1joWWa*~hG@`Z(KL4vM;+0D+G%jUpzX&1(v#d}$%pzDx>zyx+d= z9bBH;+nWJ3M*we&@*~7}+~Y4l6yP_NaYbd(g+xj*5P;ZiSzR254Pn)tPc^#s6lNC? zOk+)7lcq^=$jlU%kaOGurz;)$h1WNUBw-{uilBv8xRcFdd zj}n-~s@bG69no8TLdA-5xnSbO>B0F%&vanEF2igv8RN!&W`|=R7X6Da!akZiL+OkE zhhTJTt>1L`>(x%fy_u?c9KGe(--~$lV5E8VOOiqs7wd8wHbc^yuc!3m6S1OyaosW^ zBtQ#Rs+nf=N-bh2`+DUh1bQ}cv~Wqip7%8P_NDr zwsL55!Vtwe*u2fzbJ~1axAL^kI=S7>lMEYuEe%KJ5(9CV(I3)m$+L25)4-Lm+b#A} zZ+sfG4e!ELUiLZmD8fA1o<`8xoZNG43I;InNSL_Y$GLC!*K?6EUUQ5QS4;~F!+ z8t@|3*hD%MUBte$R#DUBAA{g9jDm!c}Ckvaxk(?(Ec(ahNf{ z(L$`)V^%*|-DHx+vnGazrnO)*82wSI9PLK)=y%+0n{sQc*#4e3k2gh&x+zk+zb*^x zl8fM42;2Umwrf6wN*47`mRDjfv60lwRB@>U_SG`EU|na++uc!-CHZAjP8U@AkhFi()qti4u9Zme%=0+DzQDc7-qAWq&fP=p#5j3f% zV-M`;YnGRfG?T$~d7>WQ1J)H1FPeJ2qYwb{?cMq@#wiX6cp&=3lT%?#P|mLCjl|u6 zZBPF#`lz8l9sQtiTUk*DjZ;z*;|>nv;|^MNs_330-2vkg5b(4#_>v|CAhXn;`phrZ z_8_k&WB3~rbn%y}65er1I5_G~va{txHcmInN&`NOTn%9Bhtq?&(XLZ;S`1fsya(W- zFt0ijgj%BZT3Q?*J8wv+#e=kU==*fDXk*SMV8zfTf;ZFP4-v}0txm$a*K?Y*`mxj9)`?Y}-oR#pn)rt6x_?YmSgk?0utu=3icAB^lXDDJ6BPsu70$Avo7VNmC0 zP{^pQqfWBjjPKG+vXS}d@9xHlE!cjq>7q&JRaG)4R}=M&iPTAo9N8;UQT>*;FgI!m zQn#jAn(?w+niAQXBC|9}Z=W8w5~lUNETRc!?co-v{-=!2%Xr6lM@5io7MDhXCj>7t z3O}celpwcjCASN!66aBt>INWpr`f)f9aOU=KQGq4Do!@S-@#?HlQ|@t+M>qTf%MA9 zUs#D(KSBR|;k94>Z02jHV|Q4G5uXBm#Xlat!sF@zA0zJKcMEPEq&OU>McY!`%s~j% zI#dXvFFskMtLVvm|GK(HW?R*EU68V-+W>PY= z0`ZiY7yePgg;q>jfTBudW->Mz488utb#@!+FstfJDI~wUS8$~rLcBS5RD*AxdZF}n z%jDqI#dBbOikEC-OM4KQd4ljsk3=}A>6-qgUuOEQm{}_NsT6dzu}OP?Lqq- z^Xe1$ZRS-d=NN0H^kis`>cPli@5g*}-)aK>aDX7w`;Luytv4H*D9S5!`X{g?TjW^v zAwQy8Hd<-gX??s!I)Ll2GAJk~9va_^^_%+RdzO3X?h558%)iv{d5G-*Xwe>B7YAU( zmbe@{6@m;e@r}%X3o%y8K?vp*A*bRsrnbmvlC-hBNF7}niZ9ah20dbL-nuL|54I5@ z!pA(IRmRbO$?;5`z#Dq(L*pJB*O9no82UZ^&o!&)O{q29Tgh^DejztMd04i8 zsBR~uuJd<}58O<9H{8RQckZ(fVn82mA7btaS6~kUMwS!^ZRVd@jTy(`*UfqMnAvqo zbsP)UWQy(?dOGh#hv{i>-g)fTRAOjsGRtz0hB@YE^X-hT`?#_kWC!E)EfnwMG~W0g zDxW~_*%icsQlyr?cN(a7@+p@%^SC3&-h4lw@q^pGfCH#}4Nrsh7K@%P>O?+?#OdXB&s_h}NXPLodX(YMpfi(VO zZUs;pqx-L&V!Y*_KR=>uKC*B!6}~l9dJ`?nM2_J=3SW);b3{Z9vD3HhzPz&5@Jbm} zeoMJVZNPj~W>4C5FNf`y?%#9CdU@Ql6ai)Z%0X8iDH$or#f!+t8_4@(r>Z^f%E|?o zlk`v8l?U_CxokvA#PKN4CmHI6gWhT9!Z_diw1|eT z3+3g)q$%fx_?8f0C(5SJCUEIgbnq*t; z#l8E6?}3A>(JQvPNFyRqmh4t#U|abbIN{-NfhLth0W6`srr}H=11H>Fyo(tU806Yn;MQj4sj6VY*txQ z6Kac(2D77X-dtN-*{oRemtUrdjs@_bpZ5!2hlij22?qOfENt-SqyJMK633& zl{!cc1P&d4lG^Y{*Wl7s5--o*4ciZY|H@QyevIQhD}|5G5-o4rI|0axZq_NHa9N6_ z$;4+}VJ_?{in{p?o+P)1xPq9GDXa1tZf8OrA>j_$Dp=YoP`eyDQZRcN!PNv=k?gCA zk)h)(x3{N%^3Z0q)HINK+*Ahzb-)?luH9<6uwQ)9X5=KCr-<=?kaltednb_*(mIZN zcz@mT@Tn;6v5tE1vbs%+#%@M)(o1J>Wdco`5>TKTNlk=`Od5wqqokS0D#OX@f@Qq83~Jz;m={=;)Iwd}KDuN|#sJ7t8GMm`;x7^GQm(Y#%`s`hMV zJGGDiuiR^UI9Pkp+AlT~%FUNX;pC?C23ZC>u@Per$Zni##fqZtof3Q0bEbLveio&= z^Xrjh*I_vMFe3zj?vx;t=~An&!Eo2syaEg6CQ(|OV{P@Lv^Y|(8kmuh8DeAnEg{eC zN>tC}ZzZbHbeLqZ;PX^rR81JBvoB~U8(lSKoUDr1(($|-r9;EZ10uHA``09{n_k`| z6Z@_|+h!W+y}7(hj&cvjz&8VO*zKAgb^K=*J%*HZex$<}Xe@!*-guJiDsK2m!Ydr6 zbTt*qMQVJGSe@r*n`}!<5Km@XfV!nk*a~aSp8ioZj|ciR=Z0E%fZgHIu!GM>S9fQp zwTF(x*(L+evMx&J*00YY1C0!wb(U_er|1zr-2B#f!wPY0NWT5$@C&ic2Q{oNk-^|E zW~p`3Wq!LEom7Qo%F-ZXyfzl9u&hE*}RK4J5x z3f^W4_U0P5d=8W_grryUsY?f4`R|R~FfhSQgLDH! zcioKaPMIF7KXWB&(tdCc?#N@FiQm4Nz!TF8P%6d1stk~NIDq~e#AiL#xPPxo3s_KIwPM1F3aZ|5-`Kh9NkZDNrOE29V~4uXf1{?w=tpuk|orHynK7p9R`Tf z`}(eDefx#0KvuISqXe}Hl|nE~m2(A_SPHwI+RIGu!D?)rm-t=bX^zh}Dcko2t%H_V z_>y3M5q|5hC8tL+Yk3f` z*%{fkI^_=s?Zz+TO>Qo+@v;km2a|=|yHC2x$f(2wn=Z8fv2XQyjr||S-Z40{sOuK( z*hwep*tTsa9ox2TCmmZ)Y^!72wr!(hJn_x@-tV4s>-;)ZyK3#Kz5ndJYK=M9Tw{#+ zbgC$;Uq7)^{t_d8A|DHM%PHfd?q-?WxLL>u?9Wcu8@O&Xwvp5JwCTcf=3h)%E2Tbm z390O6URK-{qGMYOCrW4mIQ@8(2@)qbkejJ=p{Q9{kCw;lYo;>c#>6p81@7P2#a$lsS$oZ#hc9CxGRo})dHev?^@ zCwiG$*iEBUECxaISyD2b;}dm#Kj`! z@={f2@p^h(00D}s7tqB%X+)u&*GuXLTYFc7>rtXV9{Cp1gbizi#1=Z3^K0l_pBlBI!e^;Rm9BR*hS+jD%OLnGKuP4J;Uq zvOSr({bM?OaD8;^;#Vh-OS|LFEbpN)o5ayc=#J;dSUhC~qwCJ+o>0zL`72#BzXi-6 zrPzK-U})5FFQ&xr8Q?~CS?iCn7MMp0*^JF`$UII1TGu~ii=)ZVtM2U`h#aQIUU1L= zorPObJI3mX?J)~=0Y7sf*Oh_*g|YLhjKVQ@$a1kZI~4u0CLsI^pgLJ*6H&i5={#c! z^$pT~d`&AI`(mLZT8LhI$CGy!6vp2`uu4=boHfDuW@Mn~RV#koTsJ}9M#(P?|LdK` zVg6LKmbkZ29xd2Cnetn(a1L{2O<}Q$|I`8@5ZQ;#9^v1^DiRPtqIY(BrLmGk8$OB* zXo}Q9c~^jr6vA6yZ>3X4LH)-9Q_qD zH@R8@$sLl2Nm>-NOo|2o^NpGzldMFyS-4=ow(2HpMrxK4z5dD8^!Qo2I6k2C#M>p( z_#6YZ*ILZptFmdVcVaxOVvtSmEEgL{e0(Oy)u&Drsaw3RdtXUc@pgvu>$Q z?`tF4hJ{762X_mcjEkw9(HlYOmMP_H<|a<7^GqC^7+ds#_mofDC*SM@6WWyMaGEf; z6ZZ@?5x<(2J|p%45s`#JjY2AAbBm^nDKi@WLzqVR=|RZP!W*=^oGT65UQry8A$OwI&;gWD`+@=PVQK022tYc9t>!9AxqVwye>GI!UR^l5QHQ3nIUCxV~ zUMEIo-JzUT$1F8*b_5?|41Tw$t(|iGO08xolju49NR9Z5pmQ|!gT?j|@-8sO#JYFv z(btvGF-K08Y-p)N!_73flB8f77Z52dZE0#m)EOSYD40_^DVd$kMw7Ffw3BSUq&@l0 z=bC<0m=p4bj)8jGP*^%h^Hg;e40yfzXdTsmm8Xe|&HJSG_-{ab?1Yj?Ny+h3(${6tKd~~gU6h(?XJRRC}v69`**oP} zA`nPrdF3+FcDvk#5ep?T3q{6gzU``=L`=&Qm?{JVdKJN74kB{%$3uCZOfTwe+#1=# z`p=TDqICKoH+)2&If$P*^yyD)gV%;yo()5ijVcvj>}N539Cr6>Ud);`M>Q>Gdp-Je zm#i_*$nzX_>uonb=PsCUp(Ks>)RBf++WYNCnV~5O^wKb^SS}uq+vg%6oWvOK#^>j| z5_X9vbRBaoesmS!X=R|{3u~&6Z_Ev&nRO0xJk6?#2Q7{!w1NhJ-id2%L7)?$l=fil zzHpX4{^*eg`5W{0T*oSXIkXKI{>Ay26WWv*LH-e3fk0itPFjpg+sNMl__uLhqNYS} zioTPZ+jF41{+dy;XC@IgQ9ZHZy@8_dXwv+2F4H7C;9hxAK!PkyTF)lnOkGsI;(_nK zlkR+Yx^b=(SUYqi$A(NU(f@ z>|fl5&FNJk=_Nk^KX3qBR_%bjl9nW>N8-=`O>j$^Y01q_Qyun)m1hstqalvJkErrj z|J`MSYGq96H{O<5#h08+C9t>T&zn?JU(SVVze zYVv=&qEM^u6gq(wucEhaHvGrsnnYpbT-c`UtMkrQJbZ>~3s0eYgI0Wt?zOqJW5LiN z{H$OGEw=OnLG-u#xwMi^s#o$G_l=E?Zqbdr^p_~?{ssj(KDFp55;-{|168Mh@G}yB zs5mIbL;bd!)xY~-C&1E|N8(Be`+>m76r(Z$G-F7ioWgBg2AV`zQ`#gK-G<9p~oo-jAtQv(QX?v_w zB>UfbKbDIgsB^<*e|cO_PUW{`H`!fVpKYT%998Jq!<(T{EEwWy6We1qzMkDa|9J zD$7e1>2}u)Md0Ir{MttONROo3(R!?-Z+_BQ@n95hHc+m(^r4h@y9ZA{dIL$Oqm#53 ziUN#c?o|=Z#{C&1tc8j3i86#Y zCZ0-FhwDm0-+^{o!}%G0qE?+JK;nF$G^ZoK^#G2MazP~m)n_>v9-&2@ZEC@}|1WKC z7_kPR9BLqU{ENpe2!Ar=Qm8F5mmgD@=Vq8<9Wv5$CoCKj-gV6iSG=XTu$l%F=jxgy z5K;9uc%!fAE_h={Htz9pm#W3h-@0Mh$R$|zDHicdp;8L%UX|zmspibG!)|{oO}%{fU>0Js_4|8Pt*Hhlvo0me59vKNCsnYT1migDn znMca=h547ly?cq5&;NY+auLe8#XHBrZD#OwfdUT$t;0x1Lw_%Ihuj2URDGIwPZd{L zuTD%EUQE0R)l{{=i<#LW3^pxiqx;!JZ8b}FeuiCUhs)ZDtS;rVImYK;jO0kRO`Y<*d$`#z?fuWMgD4sAE?)HSi8WuSYy({8!oitbZVT6` z)j71dZ%ZfN0&`PG-H@?Wlj}=WPSSt9GM2u(DRNJy(y7dDr~qExJ{(D zG26NWJ^nY-&bbAq!q+?m|K}hNLtaAE>xrsBdq={m2E2xt43m7ecxXlTS(kgYoT;51 z99tXD-@R7;GH1;xy4dgr!|UXnzJCRE`$gA>t!WBNjo!35$L-6ZwcCppHnodo_Xq@? z_;LSe_G6|wLOFs^a`&Z~b+l)mlo&Z)yn$_dLeaRafr9fy9qW1c#?*DS4$_W_-mA^PDx2^P4X%{LD?@cpOI!oyaCo-MKAkW z`q4u72Bmze^1QnFZAqGWQCzXwj)@F<@e(?&b7Z)MzCiKDc~?MiBhkBDdpMo;xvOPOx4RO?7DEf2Ygyy^kYj9`KPK~mzRv*ExM;g4GOm_qevx#dg+ zdjjem-L6TH4yg!Pa{wX)$Anb^7@>%dG2ovZj7qigZQ;O3lwR=>7w_3Cg`-ij8qr|- zf>SgX7d{R@)pA>=@&;3R-~XYbw$RqmE1cT+djP82LKgqz;XS|}e|%?|tTliro(&K2 zUrF_F3{SLOOT+f2nf0>s?G=KrxBaSB+(VOfGLWC)K(z`p44?Y`wDs>V<>*pYejzCg zACBtr&N9no z8B*gtqytS5l6F^zPEGkT3>SxY)!)OwT@!O>dC~j#ym&{9aq0P8wLvveLA9hMR|%p? zn5!Y}C{XMD$g_@vIpEEALUlFlWh78e=V96_k$9wbzH)F-7Yh4DT4^3efHA;ViTej$ zdIAgyKoIQnQ$2-c2~k8(U;hi{N&69^R|2e9bKn(Zk7{y6e5PGZ|H@!;%I7ze6d87fiTxRb$|x6yIbz=Nvqt`cjh7{2%q^SZWy)oPld_l+g6fC znrULmpP2HNe?vk4@}piIf5IDn{kkN#>8IucPxmGj!R@!9yzDl)e*w z-o$Z@veWQnVI`AHLo9CDrUobR1EY(YZwO+&+Fqnhxn5WLWR%@0%8A4^XI0_8LNK=e z!gQ2sfA6nBX8`%#9lyEl`VXJOPdbK~EJ9)*sy8&h#pifDet`d#_BENgC~tJwudv< zCO2jK(^bHIHC!+3F!&&CNY5lF=liUJPc15KeNYKf@m!)6hG_PnTiQKG{l$HlpnV7Q z<@YqfdW5@-A4#A&RNVyihaEXz(1W`1hjw;9_~b?E5+7;S41EyL#hoddp)OANpB*H^ zRfR83KTl!eRnK;bTQaE9T^CCofp;e-%I?!snHspnE$-|3+yz4Akmf1z!B~%l$VOG*c_L-a%v!1wE-`=R1bLU%&_R2+uqQ`lYf%}@JcRs*WKAf{Hr0UUq>wLJ6x zw@UV;e{eW)j-zD@H~lx|atf*U$=1*nT_Aj-GEo@#AU-Fb>Gj`$NIoJ5cyTN;cz2K z2q$ZReJA$0jpmf^MIcJLflqJWjzLG_8n&j9g;&XEj;*jT5%F}>45$icV@I+{wJq8( zw-bK(dt6*!zK#Y!TxUehQ!%|+a9$D^mUbR`hT&MG#lYA%HMYocPD`{WsnlaT=A!xI z`=HVSArx6G9Zv+mQ~aYtfCNj&j(dLpIeV1EDNTwGjdip3$vq&wSnO4GFfeJKTq`t_ zY!Dx7Az3Kjnvuo{drp@{$d>oqzBQ(k5terNpg#OkL93IR?gTaW7Jo1dS}~QZ#$m zSb7Y7LT(XJR)`~PtArbB@Qpd>YBTM50pCIVgL~m*F2yXMPWR{MuV*@TxTwg-sN7jy z+-67c=mx_~qc;@gJYiWFM_^tPX3#?;h6A)>ANC2g`YL6%=6)zmVV2|h>gY7Bqw~nH zp9faQ#UH1S&Bq3x6XDOKVd(O2%hZZ_LZYE3s4+?o=JR`r_x~#md-X<5(vxtGx{YnL z_57X(B}xoi3$`nDP*Bap+Hk%suIo&x&pbsJ~;($OAvZfmyx(diM++j?4r{%g}cspQXZ7W?I2er z?U0w|IZ@JKfytgU+C;&0ocV;8tV9FY^#|?R?P^^M)Lj_l$gtb>s{5ix$&K}G`{L^0 z2zyTfp9f)6n&YuViPrGj9R?gpV~?Dd_#8tB{~iOQPs3td8!?n#h`SOfNW?haB5}i+ zh@gI(yOOZmrwto=;WElED$Kgs-T`w5&6Bg*@)Z=ap62l* z9Igbs*aWyRZ~v4Jyqirpyc3)I1l2p)Huq)R8!z=v3A%k*UbOUrB=~c<`F~yBb-*_@ z&+WZ%`AbY5K#ON>JvOzQxw{)Usr}umKkIAKC%zKyWx%%3S@%}><*3Boy65S;*;Kcl zg1Nz-604cqO!-(3m72rTTCgR~O*h;=zSxRxXJ%;{EArrAcC{P6s0i;M6B%j_RllP5 z*0z8+@orti_q1ART<(6do!i2Bzvf_Q?BzwW8;4wv)+fw16pbDQZR;!1eW3QsdxarkXPzxDxe8>H zeeyrKszN`NfRTd;%)1zt-hUF*>SG50XaE18=w0mp4@FCQmn*tz)y~A&Xc0>t-Q&h? z=gSf%{h5R;rQ?@T=J7guo8FFTDz7~ zE7Q>U?Q}RuoI}hN4Bd)P9qR%T%gcM~6Tb%suQ8^~}s0id(W%PP!c?gR$D~Ktxf1L<&GOTnw%SRx@3KA(o zpmE&rM>(rBZ)=GkNUxeBGUQJs-odU1-&s3(*3|PR4{3TLFkFL*&&ykOR*6F8IY=GY zlD#qp{b&Cka{l|$(PEbyDklUU^|Y-yczNVw*|aV=B3EC8p?%|WApD2B>NDm z%GS}{#L5Dcj9y<4MPcWgO&*Kak)=VM7_yLW`+;xsfu6QcC^Vl@?wia&yul)#cU?zQ z+xkB+d~bg}%5FsKt}C5(MgXl!1o3+ZWSpJKq2^NKBc_{jzgvfx5=Xdyk7$*TqzG`7 zREMZE;pJ0AGzZ_eWU-xq2+;LWUi@Cf5AdQfkbk!(QLDJe0I0) zy70I?=pm!NWM2JwUg^PJXPLdVLALF94vZO*XKNc^uVF#8B~$%4#?F0}PSKmRhU>@# zw0esU>sEu8x{uxPBMSU5KFDua#2J3WTT%0<+2z9O7LOi(d)UUpN#g zwU;1auMGuAg|+={qAnf!Ea|XI*5uL!<3OKSwmzL-aXs`XuK8)z=2H_omHaJQSr?6N zYDY`%RQigFR1NKDSN+Q@K6a}j))tH|Uw9&%2?&CdS1&tqr`?^9n{qg{hwT)8RX3fx zy&{jp;1@%O&86s|LC@~b4X0tLnbOH9*RTfwTa~Ze#RE%OkNQBSJ5a@ZCV+7Bjt3g0 zJ;u@cRr_ra5PsT}*N6_=RlPh%TmN~*W&5F@_kQ+1pX5|qgI9Y_6<_Mk~_)`pIC29UIzJal9#;P9P12sjpvl~IbE29N!omMhtaaba|RgLx7?B& z3lE+FJHrM62_MnrZr|diyy3jv-Yk>qK9ZB;>)-j%Rx{}VmAc^SdUhnl@PzfICUGJa zK9!6e$^+>y8hT>VD*hL>XJ~K8S6S_ozRgD;;ed+}ClZdeCQKG6%tQkj1={cdg5^Z* zmKb$*s325%#52a8LNHGbKM-an0Yu(3u%X{GFO?>XqJUgjg5h87}fA<8h>T9n^Zg%sHFEZq2-8XaqiR`jN zMKqcTQ%}H%#u;VtQIxbTjJ%PZ@xU&tRsOS`Z1+-^brrDxX-v!AJF z8WNcQ9Q}R%`|Hn(Us=+YZmKVm(_08E^-3hZ^6Sm z8gu0IW&i~~$kk|9RJ@>#i+#JjbOOP`(o4LDOZ5W)vvzn%ip1<5mMd zbZ)Dv%H->ZJJewF={^?^@`uLXN&;{-7Bsk8Iyzo^5X=(Tc&La@jW;h55fKE`ohJjRvf5$h(->lmI1d^!t*uGrA1QGzyqZP`+ zAKnec5NUWT;3@YOreGCse9MIdm+Z}}Mu6g`kes8H2w^pBjK$LB^wTi>a~+zk7H^jP zr5eGnvecb^QQ}Ou#V2*Qr(m(K00W5Le(4wBX*NaMI%;HwjMEoCF82E*$HvEDc5WYc zlc&Bzz5Qb)V|``HQol&R;uX_xP5@ym>a(zJK|AGoEpxYJ<9a)jaO)o!-62Dj+x6~~ z${sR6$`1VZUcgeUM=`LF_wqvZbYBi@2Sr}oLl7Y*6Zf-ys2~)}knfkCXQgmOc z2DdU=hfSxdehgKf#6id4JSOS(AA$~YVnt-q(V(F8EY^kKWd5(P6}hjya*m&dB?kV% z`a||ypxORTxQZc(xJEM$0~zW2FwY@BZ8?;vL{$MV)9ZBkab7}Y^X-( znd2LuU8c!hP}cQ*Y)2oMQHNcqIW{plTXylsE^|mKnX_{|)Zf>KmlVvAnj}s;lWs4x z?D%D{DosRqdcHlGE*h8rGZDV*e#x+|Zqtl+MTqn#RN>ZZk^-VK`)K?b$oQFOEsUg( zsw6W4(%EXkC;45Xk~h1dFaa{|++TyfOhU9zl8Vo0gisl3)v1C1qym9R0nqd@HdMmH z*#QTc95sh>{0kMOGDBWWG&3&QTkBaF_!L~{?A;9>>)+nyhb>?7OTRrK&rqT!mMcF* z_V@-e(celj5>XRMl+_u!rZ{GsU0tk{cP?>D2D;Bgb(>^An5H!9Db`rHvMyN`FW$$9 zuKNbM#!PCx9T@o)km7T6-ny+>`G%%^utwrWIj6^3R|sRda7UZK|2;lzhzF%7BwT)uz*Z8P*!c?4;rHy{H0@0XZ}22OnoAtd)NGAdl!u(~*!)7Q znl;{)N%nqRVm`_9DJe{k2i5_2;iO`49Y>;(LRHV;F@8lC54zZ_C;XF+<9n*W^m$~e z*WeUEm(WX3_cRUO%WaOD_p1=CwhDB_DsiS%C017r5m9!eZ!hnfjNG1a^{CIrt(mQL zq^Bvqs!3cpX13Q4lrFGHtU6(5VYe*%VVdCl11+1%je*bW^mI-njz6;84j)aO-{o<; zOWps{r~>EH(eoB1m0_Xyjx0ogdO$*IH*WMs2j(3Bf1SFQs7s?;9}4JkFSGg>VhjG? zt6aMMkoblgV2x@~^_ObGe~OQf-k2$zn6M&E&?hr3vQBYL#x9h`S^Gh$1;Xl(`Su56 z4xO5|Sk)nue~J7uXMKd|vSNdZam=f1zMFPbd6`Khr1!v}(_iGpCf~6k{?tl)CP{qy ztji6qwG}H1+k4DRnKHM~pl-b|EiyOSO;-6U<$Y7t;Ry|x?km8a7~gJUE2;@$Tx|<8 ze^ljqY9EF`P_k7an++&&w!WY|CYV5AGnZaumP?{irDURa@672eh#KbNbh`b6Uc)Mu z^#{R%cBoQQpHA9AwuLUv7%VA*1c(O0q<8<5!pQ}lqJC*BBDlCvR8Yxa(;NU|ordb6 z%T}){pdYD^d8pfmQN1>2{w=cM#{^=xw=8GZ?p-FAFg*+Qf<+@SY#UwQX`*8+ac8zn zu$`z_=c4u~dmMvJjv4%$DmKe4WNLbF46FuY%F&hwt6YY6D)??g6nZzA6T@novk;F} z!|LODA!jlr*)SySLv4S#cG07%fU5W`Sj28Wvw4^j%FmiKw{=uA>R5!K+6;`jCWnAf+- z%M9NJpEOoE7q?U5FK9YCa+cZ$-IqV_<*a$8^FNMDfK9Nz?#v&;ZSjc>keuaqMPZUC&WH=OS@y+FOdwW#bC9T%AeKl$>|wut*`AS`{Qd&z zO6z{SDy_;A7Jmi)VE`E9QOen4CWtIDWc8~I=^EK7BUaX2{6 zzV>4fvkI&4U8x$i2x%}_n}itS=U@&h&Iie`v?G zm#s9Cp$IqSjjb%9 zuqB@dx=Y$>Cy58m`ph#np!luF^e{>5e%KrAHEE`SR6@p;K_4E=OcDSynQ&lePjlKS z<`9me=QfRdlP|(OChvQmB7H{#*J}B5BEFe}c3YcFOUefXX;`nBP}tt*TijK~rtTYq z1qQO$DkHt?Y+y8DD*y>KT^7fqy6k`J^-GXr3w(U5Iq(b{+btd!3MLLy72RWFdspeI z3K7m6_v=D5zb3L@utaLR;~>opDJq`8qqL)y$18)B$ zjVPo2GvHago+Z8aoSB9oG5R9^9d<=Dq3_UeB_KH3s}a5S>vc=-Lzz_ zoJm`(s9AX(V~++g=IQ>~k;{b}^afZ6=2xR0X z3-Z)AD}u;I< z5hO)^IU;lE#?1zSn5<%(s;YEX+NM_jk=naGPP_B_mScEBm`TgxNd)j&QC3t03YWFNZgjp(TOiRk+7n^%8qF6}z&v_rDk3(-2zw_J~;O04a##;@Hzg_=b zg_s6yw2+(~4f>J##OBZ65IPd(aO-+l3!^`Vg4ZWwh8&FRggKO?+787*?MRu!umBy9 zhphxS-3KOhm#VCB(HH7sxV* z;-@Pt7ZAv`XWNOrBiINk2_ZfWtHhQ}jwT393Z*5dc?Y}YDhd!rs-<^nS?=KFYV+%C zFdsVw0yF)-&TlF3Ep2b1{Metn|0eZi*%lN_&BURXix<-h%CnqZP*NOy{mCW?yXk4f zo6%+Pg4DzOSwXP>xIrlV`MOo>x7K_bvLa7*bfmAK#{`YO3}~u#aTK%WmJz(f9S``O ziuoK@Ubz}=2=0An+WV)CZ!MjSpfXPtU((4698`#_A)lxBM6#D-5;&xunj^=3q`?-p z{&Gj-{(0v2ycGa+Y-sog}67RxRw;&2&>kzC`5HB8UpL64J;EA0H9 zT(9GQ)$bKgeI0miAVQV8+G`vwjyJEkc2j0!qEhg;e8V)h2pe_R_5|pKxxCT?KcE$% z7Hh1QkBj96TPyzSX}?8@y*Vo2{=SoWF<8+-G#$jp!{a%Y08C@&l_TIWYRy6E+qEL? zC-Sn$r$z=;l1Pb?7&D6`jd0MPD|5Ns_^(OI6C5-R2h@OM4g_q}3Ca28+%8ZUVbqUh zy_FE_#EVpLQ0Zkdb=^ZP8~t@GspWNjp#+rQ0m~W$m%o<~{+$L|ysCKniqI6nRt2~ew31flJ7TD#&r>X7dn?8xDm=nTQV(Q$Xe%J+Aeog9two)yrst~d*4Im*>qOOKAgPu+ z&hCY6IaR9m{O>{<@si{1uRYm5LN99EM~MMpa&*x5CP~`h-}?cZm%O%cH&k+8)OSM$ z$L?dhu@hOHiYM?_`f&W&h<>|RCL6Mbf^{L`A1KQICJ?A@)VA#&S86$E`F)2 z3^}Avi6XV1n|elL<_u#T1iYst#teNL0`gHTmUYzzq-2?*l#0%2sWx{FQnH)XMrO^L z83)uO)qldN(KzTW?Sw>>jnA@;Pg9Iz*z6IXzfN;vIeb7lKSrfb3&YpVRp|rY6T*waC=&!dTp%DaX zKsuJjWpvHT^q;z!>H7M-_+RypQnh^Nq~|-3svr^Av~79JgegfyeNij2DQR@|E=8KU_3(U1 z0BNXa0{msDmI*TYcRjZk*%AjJaO)W4XAT#VXy^Xpz89F zhpDGpu}z=ux2M#ZG-XL&m?+}NAp46Y*L&Epr`<{xqQC6&eVn&?F#BG5)*0GC+xq%l zrPkXYIWiHmqvA~d5Kta^z7RF&YC&)8GZ9qg;;bZo1GrK-+c1XpL5eUfj#Wrvg)9_8ZOE)cP+HP^qs&5&!T_){P!-qeKmr2cAeLT(}g`IEj zd6bYb|LkRk;l~9KpP0<49>I_LR~xZ7JDJ2Ic?J0O-g5nF+dsy7$Tp|hG)yfdxzs;~ zm80CbLyHl_R2 zdlPU~Yex6=X8y1{{u@2VGftt!a;pKJqcDsV;PYmH(Nqa0NWvO6(NG~)GqEXBXg zTP6awQ%1vbbZit&@l)1_`Y4hDgs12`L7AStX5ZFg5a+MEVhh^Pzt&~$RCFnp*Qvum znBh~va})%|nSZL*slP*f^EembS_HSsAlJzLKsrH8(TbRB!j~j2^3xQqdI31JJVgi* zyg;FwYnWN+Xz0@{A8AnV+(ILV@z;9je`~QdEV|aBD)p;OFH$2YoLZm>P_qRwVLeHIv0u`uwtfQ;v2PCs!H$C zJQYCO8Nu*B7YsuumHA$}Z9Xa9cWb+^m{{siVTFJp&0^;IN6_Yw_xdJE)Ek>Mt;yu7 z`(Y=oSOV{p1wzfQa|}WaeTFL>xm;DL<-wfZmE3hy{&Z{kS+shJEY#162WN#Ys{BS4 zIhx_J8iq=!93IGcbS;Wd15EcVhyhIDBvjP2K(m4(O7HgrGnPv<|sMdF9jMGRFYqJX z=AwzFbNhCqX4QS;TXMVF>b0v4R*4hi6f_BOD1f4wJsx5UPJL8f8xtV)vyB}TtPc5G z`mSt8!g%<7=VS}+`hi*!;O%uV8RDPD+d8s+dLa@P3z~?J=SQhfykyl0s`dr`U%^ zhlZMd?u2Cs_Ba+@W<-3LvIrKVx!~GddqAnM)~Z` zE+Bub@%vg7TWLgK=L(LN|K0aW3UQuGd0v@jQE_17T}2l5Ss{l77?!!3_ZQy7I_g(H z$JvimWGILhP|?u@!lW=Nzr#GbRq5|TkyI57FVNJCs^&B&2PL38DUCm7Nu{XPM#|w) zVdiFa{4Qc6uXo0Px${L`Na}kwhdq$g@PG`4Jf}%c@|JVeDQ4EexOJOgt~8a_&bv*n zhwb;GZa#--jKc*4j{rPCU5s(+2-wkoi#_>oQOGius!=G|}Kc>&%JIt4d#h6}igOR`z31Hrbk(GqzdxL8x+%GX!e7VlcZL^}?c#fv|aDNRWtGV85(7fVlU@UpO zyk!32$@TGa@ER2@Y1(eem1inlCH@aYVjvJ;T3Wt>gGV9uAjQQ-<%7WqrV|s(rZ}p9 z_T>^A=l&#aul2^nY<6%i7RBrOBs;g=z<60%<97z7TEC+NynqrU={J@~$$i=gAT@t$ zWbkRuil`iAuRO{+Y2TwVQLy8Nvtx$CPKj0>c;L!RM>jbsZTB1jCiD0=JiazT$t~KaxVYUj+x^cOmNBbHX+#AcH*ldqmh+yDu+(y~Mpr1_GWSQN*pk?2$r z#fnGLo5kTo)}Z-_W1xEp0-I9D>2=sO&#RR=olWIr=&(eLs(d`Co3V6D5+4ed zl9DRzJ0}gEGi>SbQC}}Kw6*`5meVnHlDJNkyH=`INzA~<>9jRZ*s##Wh+Y&X_>bPb zFbc^@io|~Q)P4!)GkP8e6aBo6i%T@FpKxC296ED~! z6VNyq@Oh`4i)Y(Z{r!V+E{=2L1v~tg^CTpnL8%3|lcP$8fKB;y3ii5}`d!_nLv8Ny zZ@<2J!sFr?agO>PD>(ykG;M=dHpz3`Y;lJ__*6U_DqGJdn`Z5bekw-fYx)Cf+l#RQ zqJFP=Lm6QBb*L@=n9B9Y)KTIyM{!o@ZET4Gw+~qC;w9`I;uTW{t zOgo&lMQ}tJLX5d7aB%@j);w2LCxma|zq>603X_6yF z`C{rpWl8?Nbm=sxLi~T|`o`eSo}k^>8{4++WRs0;Yh&BCZQHhO+jg>Xelc(U@2&UK zt=ly-=bWyo`7l$}r>AH7c|>C(#}p)^fq8$MyI_2p7}bUR8x&L87+KDk=m>2(d+ z2qG{j)JxJ($|3bcVB9rEw*~i3S^G;bd4(^x6Z@kh3eP;V>^nF7{X0FZI32|zgM5_q zLJ;0P&xU#K4}Pwo0~AyBBfPVHYhSrRu^u77dGdv&BbbD+iJlQZIX3NHdVn%l0@Kh4 zQ}kd^Fu}8$dAsD`c=TQ`hw&T#Vf;7I$7%?KA2H`+%*8-@Y!ypLRpg@jbA*JYlMzy=wL| z{_@kAU`CCHgk!EcIUaj#A820X2lbWbtM4{&snY5CbJM1faUR>zRzFQTV)oyLuROzL z=+Vs-*b`y7^#iu*QEdO4h`3OCz;Z}Bsd`ZhlA~?Puir%ng>rre62Pjf8>TaVoHQG< zFqV>oe`}Y3$2&+8l}ibjB>$P9{z_9qr>cY?O%e@oH(+BB!7BhbA$`L&6E^-0|4O@a zpGb{VADc1f?YnO5s(X1|O_&{8g*vbk$zZUNK--pk_;OQtH}Y@13V0gFnJ-{Eh;cfd zblk&78TEb%(;Lxk&MJJ9xD}%{=to^|jW102LGv=4d zYuu!rf|pRemAy^i_V#e#;SRtK`EJfVa_#fBP0K~^CRSE{W4)wkM;Dc$-JD5c@P+0| zsUaF&U~@Q7XHnt>%9IYmVLpac>>z?^$V8sSw0ZE4X-Pi`0&XHP5&y>x%@4u|^6&RK z$+_Rxg->cKLD)dp7}dG*fOG$mb7mC{1p8d#{DVLQMd1g!FWm|kM9tVu) z9qdd@;1I*K;*@Lj2IJ{K3|OOHfFioF23scpK_23 zS>!7r+9s`DtCN0@g1CtB@z5ao#1t1KdC=#I$7HcPXhg>9$5lpxy@+-FM0bSC4v z(r{g?{@toBYMazvr==#~c<>FJ-kU9Xu-9TikLgPEAzvN7GQP%WOuLPQ>^Dhoby;{d z%9>t6R$Ql5*(pv6IKgHBopO^vp;xOvRC&|+1?6P5ML1w|qinL~S!3zYU}=6C1N$|B zT8CXl?s$%Rci+j`g6cvkJ-F?981BZRPG>%>Sh@O&>-N4)XXm^1NL&>1`u8`F36gKB zW1S)PlFQU!R-f&()1gqHC6#&44cIV<8@YyCp%?qu4Vj~B%pa*e|WFvdOzH2 z-nh|krr1S^O|)Xw-05X}_8}|$MtqIwy(9a15j!6n^k?g~b1hE~EBeX0YQs@bj_tzx z*F7H#@_k!irpBu@*iJgMVrSPSqY|$cd9Kh7(o=QUIj4UUL0NHuET3Iu4Q2%Yj<~oc z-LYp{&V`lYQWA|6Ye^Squ-O4wS(3d*cl7=%ZEGSH+DnSLRaQD4{ZmQk>n!7RYTnTG zjz9lF9TFe^R}Sm1Gk} zjfM7@MU}YAm%w!3^S9Sm#{W?I54E;jr!7?N+V5-WeHd&;Qayy>`bX#%b0aeBWBT|g+- z^ThJ1@uN&^))QLI8PA6vi5-JZj#fAi$g!XnQRV_?=lTwh#-Cj?!iMXS=N_>`l5ihC z?UOp~oBZDrdD=$<$o0~lPC_%^E8CjCot(z+(OudEiF^wI#j)K zROwP8Z^WwJJ{;pp*_fI}*Z-ms5Uw53uq!%n#{sJ6gX`}$4TI!k+f}5YuwQMF2T&k$ ziy1zRxAYW$Jxz>DRFhn5aZ`YMGN?PeJ#?_W)%xnNCi$v5JiJG+~#P+;V) z1wlZhVoNR}{I&OZF(nI`Y%SeAQ-?7$>e;aAGxd)7rPmxo&0%%?>Ne7>%>zrEIL1;w zGB!5xqONhM@B_QRCEjLAQrJipdL*0=MsRUA6-IuJc-;SS!r|oP6l+81PM|Nn3hb;w zm?OnTZjAMZliG;|@^6$IqSXhgPqT{m)nZzAc)JL*98c_qjRkEYtp|HPtnjW72Gv=}5YG(m`%f z170S(ltA3_u=J0tBKBxz6fI=<=rJ{YC=r=LVd27C3%FqHePb$y);$c(7H^Nmr>o48 z)=`Y+Urltxww_VOAAdJuo+a=Zle3sNdClskfH zRd}Y7W4C;w{&LleU{XH4TWz~q5iBk*Z8j%ll-&D79tpNJaKj;#i(?vns*LD1PWeTX z=d4Wcf(zbsJ<2h1C)Jf;`dT6ZMk>?@cCb59NsiJKr||ojH!ax%n`USXrTmx5d%=jP zl$__Yom5_lx0QLrDmsg(aC}F-N&U#_g0gBm9$WJM(}`W6?gE?0Cb}3Oo2+eLsniIQ zkQaXKWFweBRNO1*A95BgBV%2EAx&f~rmP@yTHd#U063YyQYB8&7N`u8E`wT8IZ#)#zcV-@b+OW5KQIqdlMUf6RPm4zF(l2wzCc)B4ZVe> z!_h*=)5K+I$IjSbOab>m)(Na;BeE_F>FU>gp&p4J6^YCC+^bHyT@RRlOh=k~af`3= zhmcZI(f1#O6MtJ}*jfyq61z2gS5$M=4^~6&i8}q)>DH?PLsV6(2i`bLBX8$V+oj)) zz-(zCYEPr?Z;{s)eUyX0YfY-@7u{TjyQem1h+Y`qeDkkw2d|>v@q8j@tt3DGMBdrD zqLx8L3(p1{3w!8WHUg}XbfnhAh@?a0LjKEBL zBJZcUoZBVCsB$7qr5((3^%e*H^RX*9^C4C62~N;%OyiN73g~knQzt)`wA7hzaK7*w zE(YCyGnS?D07ZX|CFU;WcLVowo8PK1U8ud@2v;-{Qh?ZfFE?}TVJVg@RDc59Ac~uA z9Wo?^`ZDc@uv8bhM9w$3dg)>GKo-j5@p0CblTB}cfk3cqkN4hl^!OfD7_)fW2m@~-DkZtUtJ?dfht7zOL&tVJh&U))5kezH^v)+i~qfXbX z-vatx_Pq8^y6+0FQAojyC&H$8(g4U!RKtb_`$|DqqsDJv0APmJg4R)y?Z(K9B|xK$ zUf{xN`gSUm3ZuBqfuS(`bcAQSy=yUTlIJr*>0WzB<7XmIZ87w--S~QAOy&w3@I3}0 z7lp52&+~`gXG!wBN#Pbq1iv8S-?%((QTGtuXY^F?ei)mB)T(#&U>RyEW~?-M>dhC2 zHe{}@qWPj9tRw5IP+u&mPHRW!Z60K5DhqJGG|zBnWcdzWI7LK%4_9FaBR9TZNZ15| z8P?`gFm&~KYgk&m zj74>rLcaQGG9*~28V4M1j6ON5y7PWD1m#oAZ)ca`d4A|TG)G4>RaZ}(+OG_C7XJF| z8HSsIWXjo+b6Sf1tx(j(RRTB!4<3b@58Gl&dJPb&sI)iJmS9d01dWj=MTZe<1w{xZ zNsGsM8xbv$70}tNAH$_V0Qc&*V?>2{spPAlfUq=GGWG3dm}3ny!S4R8=A0~b^8-pq z=h4~OGlCK(66mZM&5mtxP3rks>1K^Tc~+S)gcSKGu2v9=-uvQU`HeOjo5=RcuA3Md-qV3j&Y5{y zaf$nnt$bit31f>I0w;MP%Zud1paBLPovq0gE0ZRG-#OVQU!I`z{<^ulH-V|WB_pwVX5{Pg zD0K5lqF(V&E+48DRN*VEq`8$&XL!j+S2fgX<&_a#NL}twvm8^wfubjz$78srD?YT$ zuuj_i>=p!t;_}kl<4$B03J#3Rmm(Tgscj)f2rp{hl@nYm^3n;M_m?)fkt|sTW)FVI z&VDz4x&A4zI_q**0Q}mx$cxdo@AOjDCL|_6eSK{@0W@)N?ROLB3`LN z_Hq8RJxZqZ0&F=50$0MPGjbTm2Bm4K2hF_%gX&SKCwdpLKP}bq?e8BeX7HaCtDQ6i z8RzrJ37bbdFfw|phA@(6Z9UhpVM5Qt0WY=Xd?P+_DL4%xIsTcFA&KXDRkdQ=My zF6IiI_vPdB#)~=28G`Nyh7J1RS`Rh+M+>&9E{~uKC>|`F_<7X=y=vr5Y95BvKu;=KY7mys1HO<6RUa%M(p_61 z%Iln^6G-Xf3EbBy%?O42$=$--Al#gPRB1OgDK<_K78-IG3mrr_hi?q~QIA zlrEJu%mI6hycyX#lbNcdM|yFky5G)xLGgO#dCLa+J?R>T!{}WZ#N~3AR;MIiKpKg` zDF5JuPf6b^c=80yU9Ula8JM@%oo5D%_2!NJj1?HTe#yz2{B28)k|fR%TT0(|946ku7hSezA_FxT^}D;nj3u z_A-@N+qPOJREF8NFEQWFF7q_H4IyE@X%u zdrDCF;QbpYxDx$>l~sI~q6!|d%*|2miX_G@40U7x*R2T?rluO%XZ%-r$~z0=S};=- ziDwYDA5ov-zN|ln6Fa_OvymT3zYsY#QX-N#MXQ_UpsZ=z@*?8`9-K=o>y}Wb;I}Lg zt4HSNmq{(tam26YAqYeI^b_O9SmsaAU*(Fo8tnmTpu{Yf%Ljjl*vElkfNs)22Y@h1 zK0EDl>4cfoB0!0sZ_<53Uy53VN_0^sDYfQqSZJD2=D|f00)XzBBh(SX_jy=D7|;*5 zvPvjRZxbI_dHJzR65{}IBA0CykRp}Hk2xL3EZtHrQA@Vi;k0;FvNcxW)zU9j{v{Qn z5}C+yB~6NR>+N11cY7+9TG*?XT0K`eCoLgzHCH=JdMFas|EzTD%cjvpx8D`~7V@j^ zz#T>~0{4fOnvcg`{<LC!xJS8=+p5siAPDHi&C)={&gRN!-xPN=YtkA?nSG} z09P{9Gp{r-Yw)$PGB=d_7>y?Eq#rxyy!}x@ebf#HIlKPcro6P!YAR@VRH9Z~>@D}a zqQKe6_=){^?PiRmG^_oh&(YmEhdUV0JM2{0^4CSx8wfh^sC!_{aKNj|&RnYm`)7-D z7>(gJID~UJwyQb`@puvA_f|g!Z@5EQ{gW7Y{c9VVTpb>)*+-n`tyNm zf^&QP%(UUFaQe}uFKQ+WephA2#*Q&Wu5VQ@P7!5BGkn>&)q@VSeZ5Aht*j@PKJ`KGsBYWn{c;qqa0O{^H>>ahJc2=a2;^-DyWiDIy* z5jGog2xi|N0(KAY4p;dusju(XqFv->aL#~Z!%5C$%Ha@H8Jzm1?*>%#JC~5PB&x<5 zgmFPu5^Z8$I?Z>4H;6t7H$>7yg1y~6 zRP3z0HNOY%)P+Syq>4fKg+qun^ATD4x%tq87`8UO_5=@qFtX~t`+&a*P)fC?xieWlZ+29`=S-PpSz0LAE^D z?qX<%-Jlxd(sbAW*I3kvW5=T`o}|n#F>6>UkL8)DW=|cyY|)s+v+r(Xr>d#8k!{Oj zW3O#)TKd<#%&8M@QkL$Ba{Zj!cPMF8? zNXdYJSwPcu?PG84XxVC+DvHY1sl8o2?UzU~x}}dg|@&us~%Me=XX({Lj`2K(lsmD|OlWf~nX+`Su9wN*(YF?N+rk-9lPszH&hh;vZ0`;A_~^!vDw$K%`<VlFE94j(ZW2fW9v|X5Ri`&>+?n(|Dfr>4VC0@V zESgMX+HbmhWudi9izBbr(&e1jq?bf<RnF-T=beDCpCuT@#mO5Pr9R=-#x7=+H_l?=astDYFk@K9Q}0Js5mU{vEM;KnqDdKpEb!;6@M5t6)u#RqY+ zq@;|OUA}=EsJS-eZy@|Tm=Apdup9dkde7q(GU3EjF%bOJPUHFI1MR-!%UhLB7m%pg z@WKJ?sBe$)iGB1qb&AVj&gxVvz$E5YY(7SvOFh9e(%79eDfD;|OA~1tKC)FDYth{w zuPWvS^DBq>vvL`2U~jx!Ta=n$6peBE*-?a3is0+l8w1o@#51ZO!ZXIp7}}g!_0K`c zub2~p?A3!^e&IDF!oQZ8_&2jLlWI>7{Lr7(L!VszYN8HxUqi3aZqWpBHUq9YLMWwe z!K8wO4TP)fcV(m_`k2EUl79>$T$T;cHuh@}ATG9J)Fq5{QhTi}#BpmXY#lp5_W%8} z>pQlIRrOhL?m7W|z6sEnzS0|*LRofRR!K2>TkZVUagCp0ff7nncxAKG+gRNL<8Bet zdGsaV|Nab{eY(+$QET&v#c4rtUjTy)o^u>{wigWdOg|2)mKhaoKF2X2!#XCs4H9kkDWDij*A<9e)m~Fn!hAVAu_y|gtj!K9K zn>@zE^PPU04b(RBfj2aK6S$w8MlLZ{8elp{OnJOi=QT%E51~Vmr~=>89BpGmTXokp z>JkeRHx&};GvC;?+Y?;;8f-`Wd=r0EQBxskuSb+VWff4&d5uR0I2C&fY2A{<#e$567GzL?8q;RJ~Jm`)AbPT?KOv- z7W{??w((p1k!@9(AphMUvrUMTS_gW323(^iwU`P8rJ!Nh{TDz6!oE+amG-gNvC$T5l z%K-luSHldxsLN4)BqGX>j#c7^5r|(mBzI1NuyL1C4kX=nzsd=bp+N-`UA^ZL^Jucf zJ6%F=g+aV?W9XtJes`IzZqO%<|oZUWGB;|;C3R!0Hx{E(u^rN zpjr`dpLL@?YVioCD;})Gk>;Ty`vkjb7)kDIM$cuVKv0Ql6Lv0wla_=8#*idZl&Ew! zel=9msON^)ZdDn00bj?T4Ao_hKt4(40*qpu+cp>KOZIi%-;reIz_8LFXemM81SS;Y zX``25E)?StvW8useYcB*EeE%Y!Ef>|?};? z;o;CdNY8hj7A%QPnd>;aLl>P|9Y_cjN(QEX0VH;?1GKqi)ou3R>6Dze^W92waAa6$ zCX{u;5-tyLx}h-GNTm(J@%YKJquuz22_bNhY%udR0$Ib74H)`#Lne>#9!efrV@>sr zbsE#m?~=Mo%RF1k;4T%d^W6)s=ygi-rBqkSwv+!Uz(1bBuaq0PT&T|-v3Qnq=jDna z?@}&RH_MHD*fUde(HP|<5F8Sbc=d!{USs!quM{>*TPlu5HFh}3?cSARR3cpbkLbrR zPwWUr>yLWWty8)4{~fBkm=X*rvZbynk|Am>s@AoVIFsN8BXPbzKyCZ3g7(N7+{Te7R=Lc_*b*?V>e5`QcrlIY~DLuh+NG zS&eQaSXU7T&Ldi(og)e~L0c+VxtYlkp{xjOKB<)4(6dw4QG9gPf#1*s&Luj&>B=PR z;T{vOquXfT9*Ra`VxYI6i6fXavCQG^qT|mEgf=JZy4xcI1O zTysR7uEaJgBv|9T(Vc!SNN>t6Fc=X{3uM-4o0S+jyXoMku^R9n-yDI68h5t_L$ax; zmzbfqz|x8`Krnfrk|X$2N$Z1zGjL1Q-*16OSox2s%ID3U##GidwbIOT7Kbhs>_R_= zm3Q$mcxj-R-airUW;aqF-ZSm2y$KYsOR1qNWQOnXGT<&YF?GAgT}(IfvN%U^#N3Un z#EKR}XlNEIO6Ag5DEfi{-W19=v89llGtYc`#jrt4`E?vy%6g`qr$64-+O}! zv2B69JJY=Gi5{)b6JgIbdq>-v=Wx9Uy)&hKTY5e{_p8VyAFhu7>_X__i@VjDD_iU| zN&_IGv72s?OS~QNcnV{4Gh3>|Pb@a!#ER9hV(97Wh%J^r!kTZ?V9j@v$iMLykD%sz z8R+wTQRHVukV;8A+K9gt%62lu4VH0~YE=LR_0j=ZY3vCj9in9z$OAwn$b$oEb)sp= zKYM4`%^<9O#eD~ZTsy&+HoI)QZo5RgNW0G4-XI1TS7<#ne6$`KUIx`1)N4c^+K-^T z5j;0A*Qo{E{5kf<%0L~OAG*^TA{T3uRel#dqg5goJi}F$OYZ&}jJgZfP8)+&yh{)0 zPTiRr&-F)am+llDTccI2wMSJKzJVG&qt(u}M}C)2?oR%h8o7Yo!A3WiB2h%a8{{0a zC+fzn`^jp*t%$K|?shiH){vu>pHwxnR`R12@Ty?{AwO+asalLf?+&T2%x#AYlXhou zn{Db=n^Y~=v1$^B3rB|wfWrk<`y;MpbIWpo=mE$8Vvz74e~>dWWjb8FphwiQJqd_3 z!ec=ZF|s03TtOnTy&5l;>rz7{zl6`_0)?3dFJ0%#@FS7KFauxby$iB0LX?3sK{(h6DnQepD88zElovSwWYw=(=#;S$$6<)=*t^3~=`_^DPJ%qkp{_LV- zo^{LQT4rx?^)%hpa*Crnwq?Z8Ej7$<;J$1w{ob#R(V4xrQuK@u9ntilE z(L>;U1cC-V`%k^{_e$;mK6holKEA<0!oc)?zM=o?`=7XF8R{G9>l=JLr}+C*9qi`% z`lfMX`Vo)$ae)C9UqcfAPoL&hDRE^5Ovu{{F>os72=#JvlVc;<@?z*1V-~iwULKqki!Qb+0fpap5O=ZD!7HSt`#&Z=ik#=vsTi@n0+P2*AHfNYyR(`69}Hj~%H_NXEF|-s5Ri zW|gk5w7^f!JKHYkmAKVF53aop|yXKN93 zO`?qzIrNV?UZb`xW7}?!v9>%zggd z+3YSl_Rwv;)6Bg}Txt!hq0(7p^P(p&zX3}geW0CWt-X12n5oYJ6dqg~N2k9`0Td;^ z@i`|t6h=BiylG9cA3>!VY&PkSB1*-CrM0Il&K1$c*`J`-`_EBExXI(kt8tf9jMlvC&157Oq zqnfVaZp?8nNWFLeVDV&Xqy}3R_Gjc0o-SkoUnO|Bj;xpXByI zt8w>6LShpA^Cv1SEG+J)hJ`_ehlSnb#-9G56Xk#HK9Efm_Z2U$ZLC#)&mG3u^XZxQ zW`vIp;T)76#`d;&b%ziVd8I0(KBhjSIG}hSr_{vNaMo54Dv1AbxTF56xVAX^XH!6J zPkeWa{g`p3NlC>HEsZT3;Zyi-f-fR=u8>$(coA@se<5~e<@5saD0&@zf^#w6aI`l) zl=+moNcEAFZcB%W8WNQMS1<~~aO9<4+zN&r2UZ_#&7ukvr!S;_aSiQ~{E3#03oTbt zV!1SA5qTlX{Hy7>De+`4stf{1JCP@u&uUNeQV@qB&I?`=`ViwAkr~f7OlfRuRFaaGU%a>7&>5kw z%ksbWKMaBd%dWp6z1Y)i0#L3?p(|26?i&45#90<*9OAh4^_+Tf7t0@RYqRu59k|+a z0Z{HsyrTGN6w{ScEJqsmSwO!ifnNOJ=0M2%Ae?~k38AEcSo(zgnKzGdpK6mQ9_n8ICkMFO4B7~?CbmMh?|t%>TXY6KT1IiH(09R{DJX- z^?~96@qL?p`+aa0|MaOL7SnX8DJaKW_kjpwvIeUv_>@pIqv(46dUW;5D!P`4YQy*S z!b_?rT+j6G{vAWHo8c|X&eH>ZPWBm6)0D=ca69NNZTe7}1B*7jHp?yRYoh0<(nGrY z6?dL4k{x%X0w|pz8e)w3$dpL-h$q2cWsuW(c$Z+^dx)ISGXYZiMQw#^O1QN6G+)YH zeXRhV*PUJY-e_n>kN`hweW(%eTyQ-w%K+>C{JkpD9x#;z-2)ovWN9HRd3G>CUU9f& z;bwWzBfpM3A2ZAhKa)HWGrSG|m^?=!p)mA=AR{83F?1oJWO<4xDA(Z80a%3qC=%kZ zGU5;@RH{GA1>6daW@=8f9h5SZR}6Uc*_7ExheLmuWV8uSB8~r6uTi!{Y!1=a>m`s% zBqNeJL2H3XC?_x^u#LAI$vcoYi)Sy`l*?f!$V!?POD%*ssd;FV(=4XQBuyvNrCKLl zC5sp{F&EK_m?SrkYcuy+Dd!N%r5qlky4PfpV2ralbZ=FOtL~wpil{SHr>Rv@vZK96 zpcr={7fY)pB*_}LE|kJiQ6x7~XHOJ0ls_%8I{RnTrj&~$#leUyC8Oij0d@95MS?uvpaC9!y0zPSE){>p85b5QxC(x))3j zTF;;4PqzE0eTsTHC%KV}Ip>|XptmCrFTP^_)*KCnvesoWX^_MLW$Ox->hu= zn$ar|7fsG99Y#8qimWQ^=b8U9GBP(ZJ2JgwCa2p>)Eax;o813tys<1aW|=BzMOF8k zG&-;Gw&Yn~%Dv^XJmJ2dIc@>IPAOv4L&puAt+=1?DCp|x!s*88-cq_#$`;SI9Pl{{ ztMx0(R2DV2J9b8_aBOfq{oV83nbu`3TAONn!E~{8@m<7uOmv5P61p|dq|aGhMRiH^ zT)SdiusX?i2zS9*5lLa^MiA2cN?DH04rF2O8HSufaWKx_fqlcMNSSFz&g#40odW{}5Em z?VeuXTxDKIKAk>ky$d|+eN4abTuMDRzsEq{f@T4q_AT|j^_Ayd);_#{Ox}p!@ZOZ{ zT!D%EPY7D~;nsm~fY$giFydk&c)?6Tra&q|+yx%}?$5KD<2}Q@#MXu<2cHbYxw*Ts z+>Pzs#VPo89y$^_^Hu(3>XXJui)TZygZ(=uPV9wbCH_{N^$(15h^&A-|Cs=sHz)RT ztj|~4hr;*#_Z?vr!o|Six5-E5o!;FyPyp?E!+*Xds4~zb5HXNB5XAp@nm|A>|GAqW zSU{jaz;0RD$}+Y%BA7m_E?FV0@n%JY6ULe?G<_Ew~)aBoL}Tg~GW{7%oqBK&Oozm)o5AAq~z+~Rji zdO>?+Tnk!3bPE^?oI_DACMlNI@9Q%-N34l4w$lh4?$h+6wNcPaTt-C-^6fA)^ z<**4LaQna9`+jNKc%j%Ou3+y%Ze@h0gMRVtu~)Ny!MNr0Sk!=dMXF}*f_DiHo=o~- zm=`YpdST}?`vsyK@#mt^FZFzWYZbUQF7v&4gmWnH>31Je-LJOaH!ZzzZ4%F$0uWmT zVpqE^5qIw8i}5Hp+1G~kt=$YR5e~SKbcSF&Rg}pp$LW%PZ}?dM1+OvOAE+0jkW5Cm zEuQn<;eX%j-guQrRz_;qxsLEx-&W75itkINmr19T7GUZ==?V`jYn4hSLuE%wpPU}N z7A>*QgN9b9DvOvWNK#Pm&`Tejliqvj2_eBbhQ|gj0*iP2iGO%O^&U z22U3$ypFZsoxFLdsMr$(GuNOXL|BdFzo)nI;`!g%#PirI!s(Dn9mncF2p*&JQncG1 ziArW&J`VM(A3NLC!mFbwiFDX=plj0}H6WWR;;eH>DsMy+PF=6W$Jr=>;k(HHt8c7d zCa0fp`qXcI_K00x$4r)1D0d*77yOz`&?LEnY63{CK;FQrpc|49Jw^S-9!r+u$Sk`I zc8GDgt&cg+lKkQS3d4oo$b)x2XPU#eUgTFLP$8y=*dY!Sn=(@0p{jzpz}kT(E^QAD zQ+)t2BT#Yph^dz|2kHFt0r8jTgSUMuy}PW_wZnyO7Uyg9VHbx8qR6@zzi%+RTBYPm8V zu+5caleqG8fo14Sm1V-@Wr$M(cybyGn`_;8O6kus_KgF$fC5ETrErtcaY?JbI?3?c zl80=Y>GWoP!oek9mh2obHx2)|%JB{j+Q)kBtT@J02XDLDl|V)|36#4;BTPU?(bv((i7TjUJ>lmqd!Dicqp$u z*8OKxQ5e>M7SJoouYu|J#+RFg+31_SUeVk;DhJDLr7edL^>KjpIsWKtM>Bi~mYXpo zZlQYccg!6x+>L0y(u~*pehh;fU0Vp8-r_WpkHtm!jK=q>^TT&2z1!Qiz%|q`%zv^8WXaAQN(ZFTo1``wsAyXC$!m(#Qu)j*|0{!P*A&}5 zjj}agUD?~~?w~xLr6fep&$i($RX~ezxfvSS#zZ3QG!B$9DCWq`i$*qk2CTs)3ofkD z+-9B|{w0fW84}q|B+~`iX6)1X+2$A<$t(HJ=6ssD?0LV;NjB2h^JUCItVM~K$BGz5 zC?%~?3pvTm95)IM##LEUKyi!gn{esmXyziCkgKID=PH)OEf*>AWjPjPjONWcB2)|G zo4DEL89S0~3Nz2qJ<{;=JE(65b;D^=Z2l2 zvt=k8NI2|SvSlG1VRa-!<>O?JRq^{t+)-msn0Ql0?;N^#Yx`*KCA*kw2P*F^y0~LY z-_L<3?y#Hu-rQs|W-aeFy5Nu9b^e_`x_R&TaU4av8SVse97A_ug|6u*4&v@pw%SJ> zX6;S8!|o)s9#p&I?4%@G*+*EroO#JE3M2=hyAjJBxR|^ppx+zi2#H|tm3QG?jW4zZ zww~g-anJ6hZ;kWZ)4pZ99<1|*x}NB`sqI9&p7NcsQQL>0&;QMlGQK{rnYrh^-q)SE z^V03}-kNo%zZKd^wM9eL)Y^Q@ z7tNlS+EV%+|C(c*SMr{pP`=hHdr$Vw9?vU1cg{^o@44Q;6VDgjp4gjG2Fgi<+rS4- zzHx-R!3R`fVuB z0L}+_@31X^=Yzg?^acR=LF7F~a5wq^J$)#5?*0{}n}`3ErF+2eBJ~v^yH|V8{T0%C zeDmV@z?u`@r-$?t8cUf$&X3N-MNGH(79o_AeR2LnTB) zFo0PbyI3NlSVYq}C@M*TS#xAe9ZO7a+@XPYn~Y{Gq9LJ5I(LHF30p_jbOFl=Kbx#_ z!lI!gDwWMhMnh^P#o0(lLvAJYmyz(gID3kWky1Kgri3^g6B#X1xMb!KDLwSMc1s+c zG0nPWOT0B1RZ7tiy4V7<0=Yz|bP5%-N=u^o0@3CqJhP6;nDluPo^i@0X`^w>C2i+e zO+)4-y{EY7iDasilA#Ux-V2@Uk|zZ%3+#_5-2o|F6y zwU-p{lfVvnxTKJiL=I)R$`R1Otc7ms9cmkE<;!dH^*I~Bb*BT3cs{U*MAFNB26Cq1$nod%6L`dOwg+6E6`K%Kf?5lps zoYI&n2CH#IyO&%^rS`q@B6c+%q4kI&Ci1}@DPD3)#`fC7&z&FHSre+&RUKQF ztJEs>Y@;QKeQqjE(_-C*iz4pK@jux{`_d*2HJQ^o&7^G3&KQ#EH8oZ}sAty`$_KxU zwtw&yYL=4lw8fI;!6#u%6mF|zf1N0>!7j_@dr&F!1Y4ADQHM^M6||S0$V$nn<@X8{ zLT7qFv}<{Mh+Jc79x;7cQ%YGk=9ryjXHv00ue3lo^f+cU_=W4k8yq{S`)6s%j!z?; zoFL$z#$m;PH?8sRo_>SmlF-3=M66r&FeKj0ID@}w9}DJYuB7ni>I&-(FAM6{o<4f) zwC-fh($c~uMFa7zuqhn#fxcrno03CGxO*BiqSr<(?GGg znc`Kmb91lLB&+;zGD8-@PH$DdJmDZrMWV5jy+d%|ZDxeNM@0 z>G`91kMpr|jDF}Y!x8aulgm=}4!o01XssiUS9YWu?$N~0jB+{0N&U>|(9?rG@nuV& z)78~~#W#<|iP+=?naNOG09$szJWa!TEq$YJ>YLq)dG6d+U7p9fI@_7ZwSY0(Y)!V+ zfX8{zg6YRJ%eqvrqN+w`dw;3;=leCGF&e`3hL-II8)AZ zmM_k^1T)mAB88vP$H)j01+wYKq>q~hMDCBy2;Srm&sfcb3=$v!@&)xmvKQ<3|9Sa! zi?hekXY02M)C=qb`T_Cs|0rZ`Gxs?9Z3A|}dZB$#KFDAGABFYpnkdcD#=DyHim#~E z3*vAN*a=F`Wi?4jSt~-1C{pAvJ;g9Ke`g$iGDInuhQsw?en>Bcp%lR?=qieSoZ#%D z(%3ChgIQo(xQm!l1W)*v#k$m|OTtizDlPTax||Si*eAL*8PGyq-nAe2#X{X2`9;cm zlwbk$xt|rdV86E}=_RVgPm^4C@YflhAYEPa5{po*l0~Knv>@*3+<0|G4MN{l(#xhm#(Z7VDX&Qg7uQ-yJs2E0l{E6QGCtN_m&yMSB+Q%dI{{;_g)3zkM6Gu z!jA;}NPs^9e=O|B2MkL;b4*L0vx*#o3_tL}!?3`Ug8dZYPk4wtSXj5fj}I#bKCBp) zhgP%ie}0qxf7-RQ*w%I-PPPSm~-RmB#R z%eSkxII>m%y?3w*zU5l*W9sTrKUMQ`OkHK%sc}QfGjy^R*SH~tawo^uS4+>;mu%?f zn$zyN3+V?~<*#7u|EwoBk$9XvkULJpKp2ESn@0lX5hXk<3W#`vBLxD80x7W|R7eO4 zI*=$yMI^AOI0Ppk$B4G^5x5ew@h?~3{~x#Nms*6dKoBR8D0Pi)E*Z#+qB$yg}Ubm_>`WW|&j9=PU=y)tK( zHV1O7t4N_#I92KntJF-Xa<57qc1zcsQn%Sq<;awIe)!@=>4&C7YTV_dbm{d=GFFl? zG;hBLao;JmPLMg>Bz`)2#?&}8j*K-s-!rCqS>Y@AYaAK>j6>tQx_G|o*Mbi}$CG*4 QGqXAKIiCL_%0K=90Nq5|6#xJL literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff2 b/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d0d7ded90791221663847f6258089ab9bb76c23a GIT binary patch literal 35536 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff b/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff new file mode 100644 index 0000000000000000000000000000000000000000..1da7753cf283671f5d127c6949074d212a843c58 GIT binary patch literal 52936 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

tOoZDe8ce%>V4mauJPm<339_c?PnNgFV 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

8wA3$ns4i`zle@wL zXrh$aD$I|hlrP%LM%{-nRY-c+OQw3H0FWMyc|R173Aje|4`pUT94u25kW46r<%=pA z6JEk{L=^`K4X`3nWf?*WEUO4mMW}`q6e)QTP_W!0#SKC`tfWX;fRG4#=?KUpRKie> zO118cO>+U%Dc#oZwb~TaH=sEKYFk$|Z7cGceagu9VROp7 zHQ1uCI#V^Lx=+5W><#$6wWHMJH($2q%K7^NbuEyEHx-T6_veTZA2kTra>uu^pbYb7 zXY$rmX^SoJ^_Fi^LABOYhHvh?oZZNVL20Jgrw4=sq=8X=6~{2fW6oXQd@2dEgv8c( z3uDSZvoI_O7r`1<JuLO?g3QvfCa*4H;|e4n^=5d`yNy0S&v+fS-+$3~0gzu$F)_Fqc3(jpfLFqv)XC!iKECepq)s|K`3P*#m8C z+}I4)-($W*ZJuFJ2P_aOSiD8#>m;7+A2pgDd?GxEP;&UhvBrd5WNqyp)_I@SDrD+* z@7Z8>s5R6#{NV%%(yXCVSn22z(LIcHX>e(L=ANW z-j0~cnw*?+lJ)55Xgsuh)u~{WqMjMHFGT3Dvvx^Q3 z!i2+-U?RPAyyjEngxf_}pr({MD8CT&xaf|j2LHJhg+QONAu_OlO*zk|L)-%#aE5O) z1j!H`2z59@z}chuY#AcEOJ=@DF2h4~o9b08g}8RM+BrVWDHVSlBr zpW+_0^8z+i3fLH;QE|>Q)Ov%U()^jD+w|cUoFd`=lf(Mm{+y7Ag$d)l`35~ml=EbX zKy(Q+Q)m(sLP(fg_hNg9|5#xQwUGSNU)JV1udI)$6dE(q?sk!gn-!z33_w4IHRM71 z8kJV-Va2iiL+@Ez}R` zRpH(Acd*Uj(}{~IeW7J;z%NNVlk5vyes%*{M*bOjY->Hi^i5b&6M`M+SMTPvl~jC! zPD*F=JQm>}R2Ad=^qC!4_48HowN(p+zefL7jP$1O?_p6nr^`OX2D{SdGeUcK$C$Kw zupjQRu$;0`udlp_1=0VXM!hE}cKHIH?g;~piONnES@~a}Hz39 z9E*|-xg6*lr0Yu4OXZR-A2h zRcB9w@43eCs-?pt4Z!6DbKX-sz4HsyE)ZJNX-QphSKZb1Ifrwm!KqiAvYpU{={j=% zVzhXPninrN*z|ph86ojbmk>n{8z=pt>}*B-iu=#R6|li*9LQ(ZG%CF7=z?OcgPnOl z?&2~34@{iIq|DQ!r(LvHx)SE2r2TCMyg!XAJu#MAF5E9ZC3t#a&|S}5JjRhUD=;X& zq;X3A(62X}+V3p-`)j>Ga`)r1&nKi3rJ#yblo_Z$bt z?zlznI(3UkmT$jQ3cqhD`n*SQFsT_w;Kp`gZ3*(mVHYyCEkZUS$o{DsSR1^cU(A=o z_VfDdjK#-kvN+YvsET-qtB49y8Us&{qzWT8R_-d!^X{J7on;5l%Pwl}T$@t$F3VAT zPeC1cc@_{i`8wSxBdwucTwDck^67?R^oTr+MU~dW%-K(G&idQx8E934;_CK=9;90< zNUe9by8<1?ogIRY&U|LZ-CZ7jDTEUS5+80yEL#W)mQMl>E3f_Xd}ohEEZ93p|N?H})D7Yxzo6@8qw)-&UeB%z|r24IZ?*L8js zkE_~$OJWPd+N;ZX7df?9=YgLetj~@b5lvDQ@W0OBC>@)ZI4f2A)ns$$w)NSHzHH2v zJV>?LGe+aps%XG#Oss)+qS@JT_g-fFGuM1snVFJb{aPrz_~DaB%d+cX$J@WxwOY(- h@zZe_lV3JKRvdRg6LS4>E$I+WWfr@y|LMYoe*#6Z(kTD{ literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff2 b/docs/v1.2.0/_static/fonts/IBMPlexMono/IBMPlexMono-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..79dffdb85f745ed98906f3f28dfe833acd98e287 GIT binary patch literal 37592 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/font-awesome.css b/docs/v1.2.0/_static/fonts/font-awesome.css new file mode 100644 index 0000000000..e7dcefb822 --- /dev/null +++ b/docs/v1.2.0/_static/fonts/font-awesome.css @@ -0,0 +1 @@ +@charset "utf-8";/*!* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license(Font:SIL OFL 1.1,CSS:MIT License) */@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(specimen/FontAwesome.woff2) format("woff2"),url(specimen/FontAwesome.woff) format("woff"),url(specimen/FontAwesome.ttf) format("truetype")}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} \ No newline at end of file diff --git a/docs/v1.2.0/_static/fonts/material-icons.css b/docs/v1.2.0/_static/fonts/material-icons.css new file mode 100644 index 0000000000..76de20cb10 --- /dev/null +++ b/docs/v1.2.0/_static/fonts/material-icons.css @@ -0,0 +1 @@ +@charset "utf-8";/*!* Licensed under the Apache License,Version 2.0(the "License");you may not * use this file except in compliance with the License. You may obtain a copy * of the License at:* * http://www.apache.org/licenses/LICENSE-2.0 * * UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING,SOFTWARE * DISTRIBUTED UNDER THE LICENSE IS DISTRIBUTED ON AN "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,EITHER EXPRESS OR IMPLIED. * SEE THE LICENSE FOR THE SPECIFIC LANGUAGE GOVERNING PERMISSIONS AND * LIMITATIONS UNDER THE LICENSE. */@font-face{font-display:swap;font-family:"Material Icons";font-style:normal;font-weight:400;src:local("Material Icons"),local("MaterialIcons-Regular"),url(specimen/MaterialIcons-Regular.woff2) format("woff2"),url(specimen/MaterialIcons-Regular.woff) format("woff"),url(specimen/MaterialIcons-Regular.ttf) format("truetype")} \ No newline at end of file diff --git a/docs/v1.2.0/_static/fonts/specimen/FontAwesome.ttf b/docs/v1.2.0/_static/fonts/specimen/FontAwesome.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 GIT binary patch literal 165548 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 z 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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/specimen/FontAwesome.woff2 b/docs/v1.2.0/_static/fonts/specimen/FontAwesome.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/specimen/MaterialIcons-Regular.ttf b/docs/v1.2.0/_static/fonts/specimen/MaterialIcons-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7015564ad166a3e9d88c82f17829f0cc01ebe29a GIT binary patch literal 128180 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 ohyj3!`#ee%L;DTjx@8!5k5~VH0QmdE^#A|> literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/specimen/MaterialIcons-Regular.woff b/docs/v1.2.0/_static/fonts/specimen/MaterialIcons-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..b648a3eea2d16b6ce783906d6b7d5f251b9eb56c GIT binary patch literal 57620 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

wF7DI|Kx|V1sBQ9FYs>m5C)C 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 BJ$(QG literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/fonts/specimen/MaterialIcons-Regular.woff2 b/docs/v1.2.0/_static/fonts/specimen/MaterialIcons-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9fa211252080046a23b2449dbdced6abc2b0bb34 GIT binary patch literal 44300 zcmV(qLaH4god-Bm<8i3y&NC1Rw>1dIum|RgzJoZ2Lrs zpu7QWyVk0GD*tRm1RDn#*n?jf3b-+JGsXb`o^K4<|9?_)Fopu#Ks7Vl-V09HrK0t1 z8~Zi}2F+TgDCMZDV{d4SjNq*5tBjvq-#O>6QvbMhde0G@=1>WT6AD?FYHu0ikega; z>#mApX-iw$(w6QH48JEw30FN{_sf5mTE?Y}D*r#_=EX+*uo1&#?f0LDsnA_;;~H3% zLxCTdVy;vtIwBs?ZoLX9$L7>X+VkW~9@$mBGp(v>Ob<@a910>RNex5OognF)o!ohs!So!2}}rZG)$IL^H=v$DKWnv|V>w-8hao zagH}G<;94Yj2XA;q^>=(%^d5(wx|WmmDKWTsi$hebmD*KGM53NIwPkx<@V<0<%C7b zQ3^@BU!oKcp8vnvoo~GfclBBJR-x#20u3VxJj}9%>0o@O93))a-xfrYnDq0!ZvFug z2s1C_1qdS{Adq{*5`qetJRqzDWxe|t4%kYf;$S)Id$m@mtr~kQIgrpbIo%ngDG9Rlp690_YS-ueT}jfMY{APPG@P%2ZPKjR9shqiV}7sVy`{ z0|v~by%6)`bN^R5>(}h9YWLPb5@~{z33et(!V?KjfUCMN+JyUgbh%bvyWiYeEilYv zi~`^ZS;_XKB%r!`_DxmpW=zm#clXua=#r zyBzKU6?hrq`2FqYh3EGz-A>NUzmpIT-6)K?&8GByd21|V|7bvg!|BpeQ1st7wQTh- zQdcdVvYfJt&avMWwy4fU>HOx+`yM_%esITg3*GE!fRiZVmevY}oC5z04;aqMhA1a; zL?6fzWl+*xE=q@(%PXC`>ngkGT$C>PuGS2 zZMmoLz0@IMc!&`)-1+7gPM72-eaBTw3Bd$mgjNV4gjN`nH#1**`<)+suX~vNnf1TB z?-~)&A|fJ6lqlsWCF0$$<@bLWLYYoFm#RV#0YwCT(`sH#fB6Slu3Fk^)pc*Gb)>IA zA-nI+4%<7Hwb-gv1XP@;u(M8*lcE1V4=X{;sOny%uTMRy_2PC! z7{p5Dv!l%*wV%8i(2MD6gJlN%4&434HC}YXtI+FlpM2Q4twt9{w4nYk-Ut6sX_!U( zf5p8!Pb^S%XdmFTu)gR}ULZPet=Kq%!{2oe>a8+P9c|k+c5U&T=RM7PKPX{+gg8WD zcvK@9+BEZA%{-(WIlKIIx9ZJzTCd^eDb97y@S?eA8A}MIL0DyBc>*xs@VLlRMZ$!V z*_w0VR}+_wyl`f46CWl~wnU<)8ZMIrq4CpItF2O_PJL~xq{TWP>h#qhIf|qKq5@Py zOf*ialDL3Mh$@ggs9p88P69INp;4&7&|YJ=&rEHqHF*oSItB5^TW5bbp6o(tNs-m%p#=hv(v3e?@xGt4L@*mnkUuN1rcwH9`shV5aEL7P2Qm0@9^aoCsw zXw0bi+yZXLdsnfDJzNC^5eL>TQI=m`1$~pl50)}o0j`}UaMwC-DDA5ZM2gtJv9`#F zEmGetQw|sTW>ag!tJvy=00=9g58EndtD<+y_eEf}SX1xjIGVj`iMKXRPy5W1U~3G^ zK4OeNuAEuF$*U%xo(=c5&?9-QZ@ScsXjc)?3YNPJJ>fl4(sS;}cGz$d$Bg)JSvi^a ziIc6L~Q{p3eaB%`>}#A@9Z*mFo8CfPSY^|77lWWN%)u*A;1STVU;>cpnu zg#4PI>d?IC=Hws;eZX{JR2G-x?XYB2chll@H7~lfYzJJf*Uer7RVb8gJ++DjE&!Kz z_LhqMui9$*((F6D+scmcfr4^bAjH$Xp|AI)_15ChduX}M3NNbF1(>g+1_CA(;B3!V-e!$D0dUfTrzVUEotZ~*77 z>|yGpeoF{UPMy^44)+;PQrG@$-5j5*y6yzAt|d*6PQpNrAcPW&z-~Uru8;d>X{2aj zbXZ3}*WZZK?O&mt_A3m6Vu!btFb(R(Z-odMIM z(19nDmri#pXLuC#A%lZqHMQG+q}94|-N&;sq;a~GPUoXiay~M}=Oa>dK0Jk0)~RTh zc$oqS%BYH^!pN`H%L`NlH*0*K$mqmhSi;1$=K|{J`-}xT*!zuo)f@*$Ri!9^HE|v? zTP4vdk5Xy}1F4tJ(GL(YvO3O3t8J~d;bUQT1&3$9Kb=Xk(a{~U{5UG?unZZUc}{gQQsqJ61_3;8oGz zvwSBh-0e7KY~}sLDgSns*y?FkAyix=GRR92d0OozDk{~fK8&zUarRT!-)PzJuIAaP zM6Z(7R7;LjRYW8z-l0?xP+|C<6`L&&hL&ADqkcPyxwG_ginOiU3u2(cUDMCBWtQNtVMIvbWf`JE}N2#&>_ zJX#qhD>w~f#fT)CcSGx13LX$S+8B;38K9WoT2s(I)941yT%WikbWo99ImmQBV ztE(#dY?UpBMvv@HP)Np)4g@^W5Ea0~LLIJs+nSY7eEL0gY}I}zJAS|0&G_W zU8kF!I2(?}NgFWyTcpJBfauVXI_%_>c)4u?!-d>pO=s~(@5Rx1A)_7DULSYbmP72$Zvs)fbSr%m**3Yt(l?H!! zu$CN_mimVx3RHE7Z=i+J)6vMAvgjO!ilJInGtnM^Fq8e0t6`KzBe1>bPDU_W$~aCR zDe*)y8pJ55dq?{KGKpcs+n0&dLm43QSt@4j)(`zog*BoqnO+?dQ7?dfS6jm_S8-Z; zeiYw@B;R-7XN+cjO5M9bji6Y5;?dE*q_e(gA7MI|LK!5dY{%FmCCN-Ci${#(~c;tbMD&yxPU;C8R}K8q zJ&wdifFbqb;e!DaOw-Y$X(xxc=ABVv|2C|f=D_{Hm+iVJb+$~05@+%B;Mt`$TRO?y z(P+~_G#kvN>9tU4Cr54RJRb*;2^FfF-{5dDXWT<}gXXGCn-TQikijC_u^yq!+8u-u z!NF(Ir3wplRSpV)zB7V#;*u^Mf&0332w=lhbRa&0@$B83+sYbK?5FQ*ok=#k=||Qm z2gZsJC(v1#rgZc z19f{^wZtKbAT59cyQ?ArtYY{P@NW2`%LCvz@%ki1M4e8xgg%6?$IIh>$`chl2kM@C z9SUic=t4ZUk39qBJfJ#&5?6jD+g|#8dZ6Qt5YH8V&6U-1>f?y#8LIUeyTc8~-(*&V z_Xch(({a1Q{u8Ocm^?=%G5R|5XsIeeWUp;ONWjEWFlCV)>JC&Rd${j;#*q@LzcmM^ z&+-gR6)90fgb(xOdH|QU9!%~QtRKMOTz*O;rOsp~w(Ye*QEH0tldl4bK7EI%UpmL5 z>|oM?RoYutouF2q8;1=#f_Kp*I0EiAutdUP>N(Edar6z<_2^itR<^RFGeq)@fAAw{ zjy4j-_!$BuvC$EqP7pkxWZ6$_Jpye`Jr$s+qb^eYfdtV7dG zCqa0s`U+IJ_r*1OUR=_oa_wd#2nmv_T##B2*ybQndTDe}mMVOqfD>LO?%23Qr=+W* zARrGSEg*=GWGs4t^*mq>*%E0-uU*(yzDfRZoT==)pNQQ&%Qy!HOIBNtk(+0kV%6i8 zW3r#wt9f*9x?2_b&cX^qQ9hgx6haH=A5jQ%kxDozvxTLGz(_SU0(_L|R8c|Wc~vIt zCBnhsc*Oy2c3sG&z}B*;_m-7L{Imu7Y88qg!s$TsNN#x$oq}{&X_S_JU#Q3zWb255 zyx6?fjw57$^Kwr8o-5i%2zV81-8A;IwGq7UKmQ7Qy-PplG13YvBF}1CwaW$#H%;D9 z|M8O|TkMDSBlX)8sCJyO!4~IBX!VzI>8b^)haoSpsi9&@tD^2Lh zjp;dMoTN7CY|BoV)KhiW9EotZuXA~1V6Z{j8MTN;_ym&(X5bPJctim|Y8yw4H=hkQ zoa+@aATev1c(O$tg?l`XTbiV?4}m$vG?mf!l+6a~vTm2rYd02+@b)Q^yx{`;GgK)f zbetX=D5(*%n*vAk-VV}CQZZDX|0t&P`fWrI?Jbq}5>#J<7)@RMp5BhoqO>1EfQ^^_ zEB0RMCVI{^M!X(U-1|)=E<5S8Q9mm_)-pJZyP+n6GW3FteIiS1~Uy`1(4k>UP4MK_f6xnc}9F!LN?3W zszgNPMSPo|C~*2T!lNOsvFxV-(csidQ9hNA;rMlgq0`~on?7nC*|hyVFqU-N{!trN zb=SKh8opbyJPiF&U80?10+Z-j&r$~Ah7aB`0{wLiE>Xu#ZyObtMcVe?7t&MiU(NMM zEvs4%^jb+kJA#Z+3p5&3K=b-a5Un-T+;7Y|#5{}!Xs_OBnDkjNvl?>%{~cC1oVtja5cJ> zvfF$UXfN6T%8n|(Q)=!EFuf(Zm7+e2Un_N4SV?6*lB2Mo3@35kY`jQh=Cu;fbd}}M z>cI*6$h2_gep`7^G-Ua8{LX*M(K95hi9VAvCvAw~Ir3q6Jn;yAV#d|vtf zKTA|RQr0~Byh1P2wE1n!vcZ0rJ@p|7Ukh8rqMXw_1|=I7$NQmWQLC%Kod8r;=+Eg# zj4603+$d62>wbpcJ2OFIpRmi(|At1y6Ch=` zWixz6#Up*Ry4F<~z6UPC4_h!Nic6jQHa}35l>Ny^r|}A0EdjuN1OF+g;!X$?)#eMf zv2i;%`g#17iyxX)ML!GlGsk9UJ@+FT;)qn#a~l*AE2rVo$s#oG8SV(9g~c&a9C8cQ z*0D$iAsICl!qIDIdGT0LLIcH&NN&Qu(O@0lS)zpiPx8P^zP0os7i7AjfP?D`N^F&H1`6~fV&Ya-zEdJ?xR%)rTtI_eQ!Y=>n{<>VB0>C`(xi1kup)<*g!{n7ztmjYOjo&h&;)MoHjZT^8w>!pEaJ3VkAbB;h# zAM~aTCUHHl))b}WX#k*Jy5x1rc1q?1Uy5lMGPoBhX!8}`2X3#nlYk_xkCM8z2lS}i z;kAxeiv=n{2(hrNm*|t3k9$s)8twAz=ea6RtFqlx@_19-I8kMY6LrfTzXlZ55HLdjAaym*Aj=%}JQ(7N zdQgnOkg$a9VUA*I+(=oQl}egbZ?PU>n$YB@yZgc6(eZ8XcwifV=~N&`r1qY_Su`!&wF9kjcN0wax&z1<&Joo z&relZLOg!Mag!nD4m~#`4S_U1@x7d%s3T@=pwBkCmg#7sEQnD$_StN0G7+1OIxLIj zL1m0wX6xFHs0$Vd4~oKheXxPioGi*qRxL-W4!?!Z$?`nl5lEBPb;9wp8wz>}<7iOG zRaXAc-`DabkCRG;_Q{A(3r_2SE_FUs-gQz_&p4)GaC0R$v; zHW#pB1a&xQY4*-=596p><>FFSBB%9o$VeRYW;wY8&`=ey_p2?^xv8h>5# ziS$0$L(h>iH1g7(Rr9!phk2T^D5!Ysv=JVFMiQhTmWT7FdoE^bg{`WrA-0?bCguCc z)+&pA%)jT$mfOQ(7gFT*egSH4h0|ZQQY9Lr!z&JT*a_Y7EBckGLe6UQe+jaEwypeu zDuDQMmNJi-z^bXy=v7d;5SP=;~;mYReD|mCa-PFO`W**hXnrDuM*9z=44a_wHrYwmCv;h zitB=~4JwR(%a+>iWj3Rle3r@5^r~TLr*-OXbErAanzU%(P|^MH<1kI7O9g=>yu%nW zgCXqo1=ZU0y`eMz83Ni9W(=;PkJ!; zhb?T9Ta3A#^SIV0afQW}M?3{Ew#k#l$v~b&yMZ9bc#O>Bq{9xS`zCZMd1F(~@;(?3 zVKk>|Y=5;cIXE;Z0^Y5HN%Y>wBOD5&_z_M9qv=fhBB=u3lP4{Ct^ottBbzSgCzIfC zfW+r2s34YTemf(+`c+S*;?6l+FEz1W< zNDp!E$-T0U0*_V&gX4 z=-L!+9~!B)F?q!>A-FPbHrH^p!MV9G_5;P*e=lDo+agKa!fn~vC5?Y^zu`r$(JO-$ zmQoWG^qR*d%$*=Tv&BJs2WD?Ymo4oE7k*`@O)B|yVQm)S$N0i9(%#t9Z9P=k&+cGD z@BL5iHsVt=*(vcvI0$Vpv=5_gbhO7lPrC={OLZJz2ze}MOC=#C$OT_G0hqXS5n!b2 znbLpsNsyBLrMJa`4z^;u07}7Unp=Vme+gOMp*qP+B74E86-sGtola0xF`6amcPREL zCW*U4I7Jj9DtX&=M84-(+av=t+jZTS_9+tx86GZ~+WSGAfm!P#Mzon3;r9ug8DG+% zO|1WI*de|r=HL1sWmLB#l6}pP^{a0(!3M|Ow^$*NgiN*&LFsP4{rKm|(g=;L?ZWSp zS$;v%5y7d(GKe40io^!jPlbIE0-@bx*u~ROUJD$@Q;E7`>~_3?#XLSs`K1k1qm># zdoR$x-ne2(rk_STcg1yAQj9e70T#Tm0yet%VBCBB<4|9pCMLfo*_YyuG>rb^T96V) zA;B6EWyyk84kglED?HAQif4q$V@c|R4eX3JnB!o!ao4=@GV2XGjfI;*rblgiZq2zK zJM3<#gfl(LTqkxh)nous7HvNtmNV=z&kBeIcP>Y+dkWk}9m9x}O&^-vlLYGfwZIlT zBFDn4o8to0Hq$BF%0Jpc!(a_^zUJ0$*{Rc{`qVl#s@u+XkzdSDNo7kYu3w`|*{9)| zWJ|+OlOrB_j2!92qR68W{;7vU4x+=e$(rLQiH@vICkPpw7Nd5}hrCnu8YbZxCD-~IWP+V_2@NeOsD;HUl1jS1$S>nc8y-M5d zq^x3o%BJCYL(@lBoOqNooY=7rJmjzw{{7wg2mkiR{^H;M@vr~ncP}31E8XHgUVQmI zz0xH&yZnkLZu8@w_qzA|5>I{NT|VKBp84M2_`!?cb834V`aGH5+4z_Bk18sl=D6NkS?9kh(F^T!w|)D@@6}#s8^LgHaVR87VGv zoiI2E&MaArAB~#P8fUrQKPsllRKMTV)ng;cEi9He8YH_KViME6C`T_rc{1&+7wao; zAY+b#0IoHEM;QdBA!im$Hv5?<>yObp=zt}E&1-X+qEc7}X@?H>IzN#umx=3V+C4bz znzd%Kh}I>@ZKWCKk-lQsL9%SghbSMU_sg^YS>q+8iQnv5dX&s{plBtaOj9CFO@Xu|?- zI^ydEBRye*MekXZpRrI6Y%_x259?fL4eAm`RGiK-hnACsKBjI$fUMmHoI%ZhW;X#D zkNl1>+lYO{TUZRB6e789#9Cw|sfE~pj_nnDNhoDgX_oVrlpqs*EP2U>o73UpfB2p! zPeA!O@UmZ-dd+qCaDW*wk$7bro*W;_bJ_e5cFQX#6J?R8#Cjj0ar#$&)?D63RpB1B7SDc7-^~ud0rNG zJg#Q4**a;xhYSf*ybNPp$MD3P``44bCs(^uie#SEinLjU38;mLnjD3(2b?%<60~j; z4krsIT{td)z1EGEc^2A8Kso;}xqx08yKGKQtEX5?ZnpFp zN$WmtXw7tMr#+_@a?APUPkCQkC%JuL*INu0@Gs}GS zz~WHW=|qzw3*eNxPY_s&oH~2=&;?vNK)71VB}~&Cm^e zkvUey1JZQbQ09`KjB7Wvp(=5G>yr@znJ*NzPHngivxy~=ecYT5!LgeW0sd%D?mKCV z7hGS#fxnb%XM}m+(VY;P2D?}>A;7&FB)-hfM@;liNfkNVk)Lmj1={Eq4fz22)WMFy zVnh1y$8BB#T3W}UCvT9HlHrT^=a)6Z15}lGFv}1dT=XWZkVy0si{*%1QZQRl4_~aj zm+h2x+z^C6Jm-_PSTs2oglg*b=)tZP(vpt!j;{nRR32-KC1M0CcByya@=0*w|Cw0tXGc(ypyyfDb&??i;x=3A&8EPcL z5)wYiMWLe=v9LK_$`nG$OZ7cA4Z(#lS2iJJEK06w`&%_D3Y@YjsS0R`XJbRL7Ck2M zH zur6XsRqqatNcGga1;{^^P5vee7SfpNAq&h~X}W;Ri;5A6O~zrANM|BMS+Im2@BP+D z%ZMYojQZl)*7$p@=x31u7TD>kSHTcX1fm$zL?TB71ZR;TBx>x$dlLQ^kn~fl?-aF! z`E8hMt$~wXyEy6RDaS(FBLG@!ng#^O84)odnPHcZ^_)!BI-*BRYOjKCP{%8YUnXL#(bEhEVjVocy0+$4giL%QWNz z#)fD@_-w19Iq3pIB84<`f3V-6S+I-Emy1vkS zed}i5k}mAseHYHBVpc%{1(;!(z37Z7N<+djmc&Afvu0nv+AjdaIOza@o&-|KB%6GS zA@rkSsrT&41-|ivJ@&?iOy&J^`8fPlo2$N{o~$1&`iq;}S-qy;hSfRd9n$|K4c}af zOF`DfED@PVX5m%q9-m^r`2Xx*=YK(+sg6<0)Ra0(9jT5`hpWR>S5ynC4^ymCHF^c)C{AK=P{n>mmEh{mh`is8199a%S zfSvFGyay|w18rzQ6B!4uGX942gqnz7i52+=tN=U}CS{NcEmW3eck3;9Mk3GH9KuP1!-`d} zx$CY=?z?ZcJuDOWGM>L&@Or#MdI7~7ctME7pOB;GAqC?f44C*QGhx0J5o3acny|+l z2S_hLbmHZ(bGiu$o)-hGjQ2Wn>h!U(O+zeeeG ziDKx%ycH?=7%cY*IOIjD1Eb_MNa5v-;KiYZx5kjc^2Yg+5;bChK7={3$*TvhCZE6y z?*5R>n^9si6CoY|O6s6l))<3=IW<1O#kc}!`5AC(WX^3(Wf&i#vP0_<6WahPQRnNH zz9#n;l&SX{N2vc(#W(M&VLSLhhmue#o-O7!X>2JaUN|B^pdN+Wmh7;qrK)r1a!t!d z%OnsWWA_40VNj`>U= z*{9D-O=LDvP0prTJVvwO+n8uGFxu1*_`1QxCC|UVTWe($8OWV-`C;tqOmJ3ct~3%S zwaUcb1o5*=qFfC-NAYB0Qx*m%&8c=iX7dXK}>+m=5jZ!RE}EoCX9FBMT*GXyiG} zy+^c&-{8TUY2`2gP{N-m(UnKtIY#18WRXM`U+*LI$a&7$m$*^S$f{&#)HcL>VuJ`q zDKEPqUPNsHBV5RVRINrM-3*^0I4~qHW@XKi^{z>UmJAK(^Jef!FDzx0{;qYKd*{Ei z**UiBlrp#v9PZ7$8to!xjNm?y z#=##A>CYm`E^Wp{dPD}vfc2P9hqDTfJjva+m;t!eKRpwvGCot!u2oUb2{n^1{3NNn z5HqtNYqoX8ZQ1FDt;FH_l~Xc^Qkm164d~i!`G#If!_k=PQyv*$mK~C*xkOWK$V+}B zorCnUWoP53UHoK_s!FL1+)?1>&fSMoVgP8BYY`x<6q+Uv?vpyPFV~}D?EK`@1|2Ts z;&V?2oWENNn+zr@D;X@@@bX)Vq@%gHT;m-xf~8l9h9_>5&_|@Tk@}qU7uIAD)IzZ&o1q-=^)TEI%%J9$*>f|0sH189)7Y>Jz zD!*4~@fIf3jABrks&;$>2nE_XOyp%P7X~=%4y;6=jr&uc)$!Wq7*n1?XPj-{-5MDg z5oCD8)sqKP+3+MpRG~h82sg6g@sKN!BFSB>3B;gsjAR$TP}IcO-%Zqt!(OX4!k)?` z-@=Ba6?hb)fqQYSzYz~BkxN?!5q7joL52-Jt#8(cdq-;B3_F3fDs8XJRqGHjR>c9U z|7v-l)LF^5Fjm<55S1Mc1N;?H#+jsPwPws3b3{cJ!Hr!+AZfu#sG_Z6hC{rCG91N+ z0yUQNuSui4@1m*?<(UzlOZJ53mW+7xvn_ln8tI0WqTzM)h*SjC*JqVPg*yYr%KQLk zJzRT6mY&L0y?cL>gDOt$HGZ~VKcct-o=uB@a>{y?u0|U=ew0-TM?+GQl?<^3Zt#0_ z7q?rBnXquJ5tY_i=Nc+^l56iEbe5>`9U+ld32*XRk+J1dfx?Y%wpqeg2{z`lSg23ex^!%#s?!GAnIq(Lw5*4Z7H^EPg4A;38F1p3J`y?kX~zJ;h>^kctt(g zvrrNZ=CyuxXIv>)rC-fngI)PqFpdxz#XP~cH-d_z@>&W@jkb``gAV3kXG=Dw=_vz9 zZ7jic4})4A!B7mDbMQqNW_;#;d3K4X^*XoPpRWl|pagH<#q)eQ6f>3?a-(E{c`L^@ zeTZJoC_Ax-cE`R)J%WN;JPVG3j=qu6?%2V>?74YwRxuGlfwYJsFx6WOK1OuW=HxIZ z!gCv{qA%KUC4<&Dr{1k$Wm@aeb97!3QQk6@v>S|xrXR=VJUDPZU?E8&JeG-MLVY_e zKJ=ilBfVh~5tBvViC%z(%+&J))`*(`v{c19;yP__*t_vFqMhg2R>?^w;F}}Mm!gcu zBmqX|gcqQ7xB^O{)Tq#rZwlmgZvJJrbp|T?!v{lN=)|ltVn?M*^q53^!-u9;Y{Tj- zvyy?zG0(c<0FR|t<=~aeDA9)GIsT`!^14{9S=KxvHlBLQM&{DLXEp%S{XqOv+ z3&?kYq6e?!aWDMkm*l~L90;MR#(?`~ag8ZHp}Rt~Vo*a7_t8#khfML8F6cCKVi|m} zx0%vHr^L{vo6HWE<1kGzft_#Bah@0h+IS8ARG#k1rb#AMvD7WO_&SjU-cWqBqGMYC zH#FWYxz)Q^Vb-lpV`}beCQQ&3=JVU z(QY<<(cxiaE%4v>o$`a8$}c}TD;}M0+h|Jx1d%TkoYp@Xz%5oj^_`cvI9DFPlAKeP z;ZC}0eD_VF94VFQp681>|0m~(C0C5Agop7Q36!t@tK$o42Uh5WR$xo<)BQMSAP@v3 zE!o^^A_aVM8FdN*oJK30!%oww1E2X&aJyzVesU_pwLMEZ$JUYE7h&qARSjfeh@6HD z_I*ysIBH~PK;H?G1WzV;j5U#vn8S2MC5%lbI^IJ$Tz^sY7(?luiIh*~} zRm8;18%=XpSC#xcUM85I>&>zcVdeQ{t`JqZk|UY~0YSpH*<54$w@;?xZaWR(2t##5 z?ST;km9Rm8$_>B-#Ol&++g+n<@d=X1o(&iG(SNq6y8fe;_Aw3uu z5?O*i+$1!Mg$x;_+3AkD-f&%WuO%X}XJI8EQxx4xAvR<|>+)eEi~VA)L}$VL&c5i; zbI4}n&~~|K4XboR>8OJN8YIazy$Z1Q0#6AVEikTKi;TTu^qZK+b2fw2`u3B4cn)`S z21dx%>I4^%-`cj`zqQy_8u(Rt8Z)Xvg@K~)ec+n6iR*i+NCuXNsZ6*)InxdXCgrq&r&U@x zHHgbWwKOuX3kBhIc#&x*B(jA`F-t+YCAqhb>}&5t^rD`JwQmE|@vj2aKD$FJoD1dZ`dF(VW+itjz$JeQo7^(R@P_JpSvJ`o)D{wmEp1IlR zb)hj(+qKnvH=(kCp-hxorT*Y#oafM#R1)RwFk}HXO$m8y$sVKp*&KhSdGg=AEEKUE z1um(aw;A=&t(jTR*q=Usqj5G0-k*M%%?I zRg!8Y+sTN?>xG!J7$ckV`1_tc9lM_OM-4!G1N7OhXypv%%DLd_M)F7b2-1vM4#$WR z)nIMS37clL-e@O4>NO%;YAX|7BM7E01D2?FBX*w1v7M-`BWwKRG_8hR6M<+OmG>i& zh+bNFDYm%WT_#t9%Jk34(PEUk!e+dYgEgTJu8Y;W(?%1zdpF$xr}j1;BFn`(sGRz~ z4$7ZSwL2Mq1M|SC_};n!ONYpgFqL#S;0HICtpT1$+m9}Z=&Ob4amp{RZHtc6t04wn z7YJW(@$|F!%yZd}mSaur{t|n02tC$VAVu!AKif<3%z38}HSBZ|K)Aru z7Le1aT%`)>$V+2Ds+FMKw~vsJ&;Mk&c^LKP&Qa)5_+oZ(v=gRw{d4e9~7gqC;o>5>LC%)%II@g0hACrYboe z>X))#ci5Kdja7A@P$EuZZE5P{O7IxwJV@7CZ>l2P@v6+yygk`<>71%glj?W>bjgDj zia}hL8*I~0`V{A%kUL71tQ+vR=h6*hF=_;X-SzZ#J8t(G^lil=fKWY|CFad6YYTk|p#z~PUi>8ZJSEEcKMTzgAb z%=|D(c8I4d%2}gb@N<}QpwnDtkeZ~PN)S}Y?l4o*ZO5`DRS7fpu|>z~CF9Swj)|+y zMjx;6?r2uw{%%(;*siEJ)n=W-;pXmVCR$9|^w3dfO7TxuA$OCOCiBlz%5{}v2n!(u ziVOt)-s+~3#KVJ1Qzxex;K{_elQ!wJCrO&2KRso-iH+370hb0qE}z+O`--3Oa|x( z*j)#W=!KI-pjP1Pqww1K5V74tt%&SuM!Z%ERhVX~LMVaWHsoSzvPgqsqI0w6bSj;r zZz+XT4yeSnqP`dUuDBGxZH-Iw5E#kXNcc+TDlqCBL37N?SzIqThjNSixD7KO6Phhv z53oUf-yTQDdHR`covILW_*5D^dqzFazS(m*GW3+?9+}rfq2&u5HXeo5)L!f*Fk_Yka%AAL;&p*AQ~$jy@wH?zO54wbo%8x^i-BH< z*mJ+_8IN}_g4R_u2>hH>xiW^;G-$@#;x!onYEg8|@Ls0&p>vEzt2^~N*ggk@$GXG(BJn1& z=XP*@7zrFr(@S`;on;e4Za%C8qJRPx93V8^<{0RJcpzPOl+K!RuZ5}03q=4ne14Vy zuAIFIbJdOaxDSd>$UjIUV)6v=pUPRBzrq-%Ua| z&2AS~m9tL6F}Xyfijs0G8nPqK6C9{=#g!#*b$M1k7^wj2rJPfFn=>%($zfiDcs;J9 z&6K@Fe6D<;_9iP-OD-XtT`6zY3?$c{9}a6}9wr5m0u~7dNwA_hIGivLwvb$BaDoMB zaE59j-H9Z<60bbE zYcVn*H`d~3+jrSLeSuA79mg^;)kv}-vvHzZ-tnxp+KPGkz~^kY^38dQQ}mzVpAfGv zz?X1r5iqu&fUk{<^DrQnBy=*fOQvr{n9LN9 zAjOD4f}j58N#?+D`UZFr3zmgI6{?nvFPL@#{=>OoV4;m(qAknxa9V8%4{*kIAf`Y! z2lq%BNabvRZfGB`Wu^5uT_r5=44biTBBPln_V>eNJ235W-}Rl@gfZG9Weog+#@T%e zb&u5U#3eM*gn0PxV@vf~J^cr#$UI1GgoE@k0pa{o5i&2?_4L|`AyB)b9s=o#>3A%8 z3Z)Kaqz{_yRI)sDjVyPXcxDsu8u!6ZQ+A2ZW-et+9a5zXG@30TTVoE)D?M#+Mn6Bk-B~xkM zx@jFEZ0oRNv~i@ES_R@!-f{p$(Rwg1!;J~u`52k;IRe^dh+lgS30B%5`wTL`t-p2bbGSGX$ zB1+;X${@sw*$q{Iq;uv0AbdzU_9&m0f*_0rgXoovy9kEfw<({7@oU;E;7O!j)jF#7 z@)*bQp{KEsEz=GItvK-n)(8P*OnQLd>PpJ(I{q9mKFIu*jR)nDl#kSFV)=lO`c9s| zLF^h?0Ri|xXG!JlP36X3NV0HxG+Yq@`N#@PP(c^t1g0Al%fjG7H5@zD(Tpk9Kyi+~ z;0v+|!6!7)m&j?Sb}0ZrkWBe`6+IHf zN485}Zm4hAtrri>28&MoEC2lHzXh`~yj;2-q+y5XKMZ6T_;=XCOvg>)&z@Tb@^LR& z$U*=5a&!A;;mS;*E$L2xMB$szLPOy_ELHv~t>4h+ULMuCS08dZYp1hvhx;p4Xh}pM zSsKQH^wClcK3XrvH=-X5$x!yyN8@?h+)PAuW^th{9BFHr7y8%=&wpFCC{Fj5XtYI^06aj$ zzan1`;>^_y)=1*DB>dWaC|O6-Itf(SfJooDW|Eg#BN+Cs6S49v4FphO5&19_G6QfJ}Uo?Ae)un^!B&l4r3j zCI2R5GITlXY{{|{R%&5sPJi>V7Ej;xC&xp^x}oz28skSFi2LVuxOucbW9x7+(_~yT zt`3a_k{q>g7|$6E|I+^V&oQi5rA4!dy!qsW6YN_|gXL7fm6nmM9|D(bx09dr>4g12 zJTVq^?RjeG;Eb%EKr~ArVXO=vYWhF;JqiaIl4y?zp0)VZ)Okd0(BW&IAuiYe7K%(A zlkgOI?QfFQ#R{p5*^-YjNao(0YR~>7r#^W*-}$=w>k>pSy8S zB`+13in3N6J5CA&TA&*Wt(somOfuw(ybe6i8TQ*$ha9v16nt&oJiH7i7|4>jnYE_9 zcV!4_gy6YXh*dLjLo(D0g7rC+>*nD9Jvaen^F&JifTmWXtH!zhg)(GSh#s#hQ(p*Y z2dIyhR}W^r3>(xN<1UgH9!KW`Y^-s9P7hR;l#TS7*y|h_7$Vb_F(Ep+BVdbUCVJtu zS))e=Lh0{!HPqLMCsx%>FtVidm7)_HoGAKeWeI2}%1s9jBasgA(}w_Rr~3vLA6{q+ zp&8RE2@Aa>&pDb<5UBz+v6*Or5pCej6GQQ8c1yO15%`U^NEi@O&d~bieFzBZC=v|+ znk2$Pq^xyR4_khMheN8(mU8r){Hi+-UQ80`R41Ceo*0(|l@N6eDxwC?@4iU7F|tRA z>c}oor4=&57YNz9YdsH3Zsw12rGeOT(E7RRsVX+1;UpXChZI*}Xm<1@8y zpYgXx_?1gLlwC8`lU%>`(s=UVF(W#40Y9TUlcbH>HSL5KlZ}Vy;cBT4kbRP?KLC}X zUfS*ZY3*3R&r0&`D9xQ0cfod( z(iOs>BLNGGySU$w#l)!~u8C(MJjVv8ps^!Wu8rgg=gcTQOa#aP_fh`KaIjhgXpl$d zJz}c3Nz>^O0|Ev~NwCa53ecOxWpaEs(%Rej?k7=&bm_bV3bt*gt*wYOJe+)rIA!KY z5MJnT`cG=$Pw5Cfm&Eua;(#S&amkVeR5**`dgrai_u+9eE76Ikk=N2%A37@J26vJw74snDcfdts?q@V8A&H?Oqf8s)0LJx=jdRr#VcaTyNu9x668<{?~i~+Kj4Jw=2GrRs`U(k!L zleTfgC4t2+z0tSnE8;Qp;ICVcAA(lzFaMyyQ%_vs`uULHBsxe1)ou|hs5q6cMBStz zux5R2nk5b*7Q%#+mNnrwFKM4`KL(6(dAp?_F{hIq;jPibe;+z7e69C-Nf$yge%Gx!Q;4oR+i6z9IO56#jYmJg~w!tXYOtAhn>- zS~j85N})+EoZrsj~8n$!+DDDJVAePvNww!1=AaL_k2Pv ziCd~QAoOL^6VYZ&vLjAs!2Ad>GWpciq>L)a9q-K`f?{iv)A$lwgtA7Fg^t3gMHkp8 zo_rj0GHzWf&4)UH9(HTMdWsP6Kr<)B-fV5P`l+;xWTmbVHgQD)t~Xd%Jfk^7m9XG; zG~I$i8WzJu0zTgf@Iu+$OhbZ4XeQNsFA-%m4U$BWWwyyeEGBoqp_yH}%<8NQ-)gCS zqLQ>B+srDU?rcQl1PJY>FiglXg5H!SH}nz>2N`NdX|6mh?NXl?Ff0VyW_ zdsP)rXV#Lb^lkcd9wBG7$*du7^k?4>YJ6Uc=~|1C^{T6hc3q5lf~I3e-s$4-m!|6h zI71nqgkIgij-CHl=OR-pqXUs|uR)D1d7Eg(Cb&iYu_^AmcYJhmYK%Vh@F4q08=pft8G&9YAcV|wiaBHc6l?^rmVX@T)B<|6>cmKOLf zhcGBj4&yf4w{1u8K`_nrgnX3WBX*x{ui|s+@nqN+(pno=?76u($(Wl9CT7r4VL=2t zs{YzB$W3iP;E(W%Gmu?Ob0>_Y{XFlZ z0lKTm64t#Ff&hZ$r}WzlGCvD!_YtIEsK29(8UG^ihwx_jrs&)MUxQLc$)G!v76Mgr zO_40r!46|^rebORQr|qkIuDa1`*xM>IHuj(sgG{|_Ff+8jpFK-mx)wR4`rMU@{ z-TEZ_g1q+}o3-WWsP~W;3uc4(!cC+}B0khoPm!l!8HuP4W(<3z&%vt0-!50B;pd@; zY7ih4z%E>5VD!-W)9^zbm+*Ew4(!zI8(8ZiwMU8-jxKY%QvG)F6DWW8zPCu|K6MpM zqNnw@M=@K&{_^Gzwb)Z8GSp*%am3gxnPH7i;BDZMLQg)bk$uk%sM$zngm9)=s~d8C zCTh50uGtAIopRtn`#zG3J)|#GgABsTyne3NQVk3H#SSB`O?x9rIe?R^U`}?d|}2o z!`pipFNdbr4xDfaL1lw;W^Hmqj_JAs)4Y6BYpCMfJ>JbM64gpmgk+It~1 zv~c!&P>U#U8jgWw#i?+FyuxOPvh0(X^(VaFan}=qxv>gWB?HQeHzn8dL)5U_mgK8| zb}!WW7uIvQ?j)MEgPJyV+TJvc#W!(ruza1@3S^ZS$O}#b z>C2in`#NyTPg*RQ;*nxDuBxJ0tD-Dt%7Uf@FsHERTB`?nMxN8BLp5QD+x!NBxI#?3 z&3Y{ol#?eP6wvj|?$ZV&^pik#Hye9qkY^^RmIz~GxgO1hgQLAe$n9L0T_j(Ac~6&} zR$IPl(9LhTHh|m-LEu!tW+13R3n6p7ApuRZRliSazh1XiR{f{xq2i=qx@0AeRo(hZ z3e!N%pYN1;Ux{~9PM9De0?N=&wrXH`CY*y0MTvUQmOVSd?y>(RGJ>JyeL@btxn*Hg$DY&;|YGl;?IA+Vu6z{6{bmriLYpTh& zA2wJIeMEMRmzp1_<%>15uXkzZ=ee)`6$#yIz>cgkdGef{pXzx5nYxW% zV3RvGWeOYvHV_SCkS+0+@ZS3`?B-AN#M7?b$xL?_uN^H1zl7}O&t=~1K?D8TUV?bT zRf6>8V-g>2H*T98y&c8w%gI!lD{JJy8C1J4ohfyQVKM5|yXsJLO2(!3x0tRjCK@fW zA0F>_$=E&{Y3@YPkRPH+F>Wj;DSRi7O zwXEip1<7`=t1OOUQ6@t8#*r5yC`RMlX%Juq;!>dF3Hpt zGtN%>p$E!KcaxKv@x14M2d{i*dT4(}0_%scN+o=DmH7)D^XON}c<`;f(AADu+2Ij3 z8{V0glW%XaZCiqW0@$2^*q@rv`ECfm9463B2amlMrK5mM9%$Fhx9OpMAMoV|-Z#;- zVO3|nS0$lkYn%RZl&+G`HIm=vFTi0V>lFec8L@?JO5=`(GEKWm(mleOMSU&@?XMGG z&y>7(j7+17KDs!|O%5HEy@IjiIfX|3SCc?0r11<3W*H;PtaIh1&PyP_{-}mOzVJ;r zgq*@`{8zFL(q!t%pH9QH**M$W8F}xB0)Wl<>C{j}we!B55Hjj;nGlff>0--%)UlnA~G!b_e2Kfo7%a8u8|?? z^~Q(;nyv&wR$auw3zQR89i>c)p*n|ux&*25vsEThVuT2LB}(cZEoyGcO~yg!abO<9 z_u7vT#eF>G&b$n*u8@WsOUZc|Sv!3Btw%&SD!=I!5w3^)=2+=RNvKZ=5PiK|wQ$tb ztHZBE{XQb5T^FZr+8L94uvFm14h|I$NTE!+@q1f@i0!!-vyh>qos!)V!n(_MFz;NC z2UWGE>o=KHE6S)#N6*dwo;VD{5*eLU1GDR4VEpOpK-iMU#h_3NcqpejT+jHzZOac5 z@(c8XDl83>9+Dd`f4mvfeb4KP@i<~>M2{22o1j#^10yYBW{iF^8XX{Ck^v3OcnOtI zqk3~Y_m@(|vsuzHp9CtwKu1&Nb2q-Vzt3XCgPzgRMfbzGG*_rP>U1Vwk5b?Js`oYf zAjmd?3D&gJex~jZauZo-FE*Nr?qW()sV&h2=Y~kLxge9U2_nS~_NFF!jHo1Q9}UZP zRB?kf9t{I%aqzrYeM^C4st=eiu7;HpWwy)hu~=1sal%Fud)(!0!=i$jSYj}61XZa% zgVu!$mAxJs+HE{&5^^I^$z7zjRk8ipGE*qLA)1&0-9W5jiC-KQIAr6T6I&5yjcwY8 zrknqn3*PIhWS{2ed&l<-Aa~@45xVm+W*gi;>=btK#Pi>j?JH3n z90h9x;HLQ+S|4S01Yt5ydrteAETBBrwkI%)lZezeiT^M{whhxt`g)4MBkNmG-~x26 z$FC8hskrOX86gW&cN0A|-J#a#etBGV@`3R?t*p+|?;Zn9wPOqWO^(6kEIF4!+y(~q zTh7*nPpmG85*gR}xGOoilAI;++>py|<4#k;-E|=x!5!5Ecs`WDB(e`)6a^KK4Z?(x zi=>iEL0nDaPHHvkdDKo->2gf|Q|v3=@IqzD3F=juZUp&!cRp;zXj9N{&f;xjveyj} z)wf6JMdRg(FHga{3vUe@FIxjgPsiUF(*9q{-7KRI488qa4 zKsEIb$Lqx-l5oeULf6CQs>$e3s*zVFG*7qfA*%YT#I05XVH2<}Z}S|3?bATTM|q;j zjddfqz>F<$X2o+?24*f7*c51GqQ=Ol^Q3XOq=u#%T|&$RYH$gt36(@WC;-5ix>2O6 z3D!)EOD)A%Z5Vd(Z=MHxG)Zvu81YV8o>l$bqyD*8qyjc!s0DpOmC7;@f|2^7PS)iu zcxZJiDm|%b%3=ItXP`QenJ+O?n*-|5CCBuTv;c?yX}4K(mPNCIEwO6f-i4s=n!PTl z5UuTiEU3HGOP;INlD}W}NH$tz`g~Xq>4Cd_;!yTZFQrd;MKcZxmS?5Z_a zsFADQQqk|KsFzp7n0{qdze7Bx+p1bzdCv)14VVdDAz`yd6VnK=)w2N>+s8N>|x$=^aH`%R*7hN3mNyco5$ zbY5)tKWOl5{>;<%0Ld>T1Detp9(b?w?w1kug(Uz5I7s=Us zNZc$xRC0tIrU&T<29ZtXBDRL%8PP%|9y;~sJxE2-sPTEsE1#uE@w|LVrDz(5@j+5w zR1e#V#4;eLCq$P(_Q}JfOz;JQ1@N4!mB4*Hz(H11v4(x~x}MkYxA5L`{{D)>Wmk1C zl?doC>`f`Kgf($NH@q!;07)dvKOv5r;pfeHqYduV@|I0HQ3zzUK9yByawTWG?LHMY zm%XBtJD)ql`1LY8}uMSt1DTI21lAtuC{@H-^Q8I3!amqt+ej#YCt_$ zbbO}E|B^5CI=#GY$_6g<@f+N|7h(PcVgle zhIgozn@ax;?LY{@UpF_DZ7R19j2rLac9;4v#B{En_)aa1Gt4SToS9^@7Fxt=VTx_l zvLnMjouF}3VQzfJUg7^_hSdC=g>|0qj{@rgZL=&2fEjg&X6}gPg^12wQ6@|}Ry@~9 z5`0$yQ;u%5+7oYRFIfYC8df1-)SA1ndA?NoMt&cuIu$kLFtgt~zL=t2Z7X({tz+6~ zkRCgfX|J``_4K!AzHt`58Y|vY?XBrk!Q_XdeY2~5jXB@2_Yqg9{E5T5zwT?6#ZyTw2 ziHen(2^$xO-}UI>a2n?F<5Kav^}>~r<(YNqUjie#UlS8}u5qT;GQBc8oH5=-ePR&jD) zq|+@cwyms-s;7^YfxMZ;I0qV<^H7=(BNvdo<*yKYW}Rz&EUVw-CaR60*49%SaphlW zxU$t5lK8K9Y)i`a`Gnr+&mjHnAs-A*smu)fn04EaQuADpZwudkQg^a;7LQi2)JLvr!l!Jr!}x(KGR6 zk|(8_7A)9)espRwGh4_NXS4Ytg}Bo|I--HY;vfS_d;>zZL>a#UGI&jZA6BrD{Y39J zY_}#Fn*Cp$iDI0~)Jw=jdON*zrq!7!)F!hHK&NAFoV!u{9Lyj0m&Nyuyg94>vvs3G z)@*aXM5FE(m2b5RzVb8|Kp43a{?|hxhZhzEB+TDW$TfNCTl;(82}hg?(Ko(^i|+zk z4%!}edeyN?Zq22=_#4s=#^2Skfu$errQXgVMczJRJDq4L{*9PbwXVb_Ts!%ippADM z*-UMb+ZPIhQLe~qlbLijpXH;uNt|S72Qssn996FY&Px|o8B>M8(XZ-|GjqVz|0wIv zcye$8>xZ-FM)nY8DWhkn`R=E%IaA6IXY2r@q*odZ&TYd8tmCVQ;r~e}b>eZZ$6Hu> zUuD>hyvo)R z@;cW6XyByP2OrK6mNtK!GEkGvg~W<~n2SVSc?UZfC(mu;2A#B!p#V1e8mjTfk?xT@}O_t zc7nEcNEq_BxBLA;sN~NtldDSM#|qtDoewK_T^>0-;x(DxqTl&npPo zGsxd9AbnlctxHAUa#}_SQT$Z{6CqQas0RX^0@=L{3N( zd^i_Tn;z~c({HB-cAkXSPIk-b&c^c}sX80Zi#-4$D5W@H z4|cPd!)Vb2ZTXqsIp<73(P*YVVozo39jAPxpwM*B@=D5~mH%qqTHDmrI6?|Muv)Q( zT;&(B>=MgbFnWAe;=%6uw}-uZ#q#o|;DA}uDZA-kKHuR+g$0}?Rx3wciE7_)+c_Z1 z^;W(zBc(k(;%x1>?nq}_+lh`rp?9-?_UZhhbvJcPWYbntZp(kfTFJ8foEk8% zJjKRTmWkBeY-)YanFWobHRqP-)Vl)X95*Mok{e{{s~ti0!=lhOw+nkXuHbnIDEWJl zgg!~|;EF?F|~Ud1XcPhGmZ_E4#a^_-l+Su$ZkB**c`hEcj3XVo1C9VsnMF{-{$Oaz|R685$kF z;x@7CZPu>n$RH{xD4aibL5k29LjraMM7**mIwU4AC@9c$Shi}pgo4`Y=6?s?8yHGK zzcUX@Ws#%KdlVTBza8xgkVUS~k6s}Q3=B{Q1OahTfrEiTIQoOV z`=3>>yZ{sZ1A%`j(NB1D8DvZL%f6UiD;RC-pBK>qV-y-{QU;P8qik5jHrW^jrBh_! zGjtRcWf9akUa8h){z1QjSJTz(^Xxc%kD#>Z%}U4>nxmG4xl|f;$H2vY zBfeWk7SotrL{`+#Vk?Fk@2@*wcYznEDGGYWZ$E`*v4}n2$qX+d5#Z%ss~FtUd#W}J z(^2>6HfEQy_uWX|2zidYtbiy({(RVmnF%FZ;FBW(@oe+wg1a^V^QH&<(@tuP;yCV< zBp(v{HUeXK4s%e*_)8oe?S96HXe1)C*nJ5>RZfQc95XX$e_9u@~zh+CHz3wSde7zZ{N|EuABWP#q)bReLAQ2`=o& zwQrpf82+YL~3idhN9O^kKVlyRi*+@ZZ~@9&K<89 ze+U*pyXkBh<9Y9%-6MQRb(L4_1r|B4%VoEBVW$&!4G#l9J{CuDb^(E*Z{G{(Y)=o2 z*(V5aR0%*9+lYDW#5N3xvG>|J%(B9zlpMyG72TviMF>SrighUb->@l0Fy`wDaHNi_ zPBKwhociG3GiP`0_Ho^3!HGEx$5n715xetcZ`hRU8+*GrO#7hQe-H*_MIm$+Gi zHCh?0(Tp%Gd&5k_^c(=Gdie=tw>zJ$2?pfZXz%*;_3O*Pf7i;7eD z;OmUe_aQ>XVeDO0$#uBm+?W4}8ET+#JLBhwwj6$39Ya+jBCX%-`_~NanH_y4)H7Ay z8tDxD>A(M_CQ`jE;h&q^3l%**;;GXCxzrT3jJj8zH))zfsp*ERk%ie=>-$XMtGkNK zuU%dY!sWi?wJiq@w5DC)Ssqb`ij-D zU%fQ_(;!PHHK)}#rzO!-{&9hIy|=w{(S2$m$QV%&fZh$e^{1Z{KmQC=S1D+_6caxf_Oxx@@E3#aA*K0|T5V;|?qkZ2ZJTvjqh!E8=2H zONVTOtHRJeRPigiq@5-l4RM4frmYPigI4~6&RQ~m^l&L%@W~XAO|7(|v zA9NO_f|r~1z-!Wc7u5kl44%6n!Ywg6LB|t~NMSCx|IGkD@CQkcQsei=(u{Of?Wt8k zeL>5l_pdEAo;Mf%5P$(ey+LcvTg>OrgJ{vp5x-mP7yI4AmObkNsUvmSTcZ@)XNY4j z!H}e~QJGuH=L2Ih_clQO{c!5;_OG6PTAaEsczz&K! zDvS2ZVG8Vh-ZN*0hx?jOn%xd?b<6(!Eo%)eErwUd-+F7jWY@`)yS|JOGp91e7`X@( z1p$42EpQQWTw8u|*yMe5vD>a27Fw>$B0o0{dQ!R`##}TwXvQ2iqlX`l4og297XA3! zMGWRKpiP!qjCm(<*l#BccZ*ESv(H24tW z{kkKN#Y_0Q*arU5aH2DKHw|v2TYHAKJ4BUPp-|laie@rxlCAh}PHT-ygF|S>Zl`w0 z|6;=ato$2_`sQXsAm9+=VG#EuZ{957!>LJ%V~*V2wsze?ce>!^?tOK2eMCkmBIB>! zxS?cOQ4bQ&Z$IB>GKZJB*<{QeUp%){{Ks4j7!eq27qDPo#2kj3aMV4qchrGwb0ENp zq9}4s5w02#bwU4^?<1QhT|bsTJ|e1OvQ)_zUwx{+Dpc|%dFq!n=tzoQU$ETdO-US1 zNGY!B4_RK@yBL;OR2}s3p0h}m7X1|U^Vd-FR2PtUV>f4#EBL8N8NyXwHY!63{f#=^ z)t0L|PRk|q74{`?+I}91C?MyW;DQ79+`*mqX37PY+PS%PwRa4wTbN}kx_pq-5TJ+< z;=?!CgJk@-m;N#j@<6a#qIL>YTkW=!&34-k^beCa3Rk#bvtEg0g96IWK+C2wI>YBY zu$H*VzQu0mEyQe=h4zv1RUAEzD}eoprTybC%j~;L(9u+vv<~bQV9lLpA;($Lzt|c*q<9Ff4g1h~b!i zEAjvODGE2{-a%i%eEPVwPd5I=(#PKtabSPoX8ry!#3A*FBHHpBMbR6yW~jH@j;Kj0 zJDsO>a7`JXo_#mfubHB3y(F{scbhYap}-IVldB*^l)Eh+FMd?~Cj=}A4&)FBCSZ2$ zuCHHXL6*#s`jO0V`F=ZTA{SFt6mJ&SGk`ET}>{?Sa-Is{&}EW$fY^*63~_zK3;U@lBw`_nSDyE zs}uL_tvjza%WLH7Q$sTa=wO{yDOypv{Ml#MM{1OsNH}1>v5N&m5u6$8Q1IL#(F!`) zkZpvtMi+{JQ>!APBc5QbDs@Ul9D)e!DLgFX)?f76J#;?@^v0k^ zjEtV~u3F`VmMxwu9(>RhS}|>-yQeXXR|cg8{6$N4JKz1~zGY)IEj5I|%(LSs;Re>4 zT!^Z)*G*%)Dk>|w9L39e;WhjAYjNu^14qCbD^zE#$oO+LXn&0RLID95Q=#fL1A^+; zs>Js;ZdZMAr;*#HZ*SJLW3)bmX|8EnZQ!`Ztx7IkO}UDlk1OZKK+m)g(WgoYLdJS; zr_FiG%3uAGLCJ?``{SG&vQwV+0D&gRgw-XPmAECBC4yujbeWgX=!S>E3~st-1PmnO zZBxtktP^Mn$z3K7<@*9BYC?73Eyw5RbFHRE9nuAtwYQfAFMVafa^~x?{vL?b#wKz@ zi>aS}`rXRGR&M2g*N8^x74P%{j&QY&-KJ3atDlnr{;4O6{#&M)4TjSugQr|RcaSIp z9On2L5s5qtiBiFcGc&Nc9P%|6u7SGs(NXs9C<}<7RGJ`B6q(!&@xsv^zaf_zryLWO z?FcW}O9A4<1e%DM3Er`Dkb{3#s(Erisrh)CL%ebQ^F|hoiI9a3hez$e$R_8=`jL_K zKD|lQ=x2b>jiNvi=2Q5j6D>ggezv|c=+AB6?S{JzW&pmM~{YdsoP8)0}o6lOdUNkuAK7wCtd2u z(ec+0mhYV(9r^EnM@D^KSWtUDYUPIV_D^L;kNW+beextIAzzY?s^^stE5QUHc{qKv zL|&_-;FQT|9(?yvgP-MU|GZpDl<~`U1(~xG?L`3!pU$TMUNs|rv?ESNmp*Ge?`UtCIz1cnm+$RHX5mqJJ`TayimjWv=!4{C)^cUPhB*Liho&0T(W zfK?B$t1b1g!oPH2e{0d|u5h+5dwq6gclYt`?#i63b=HTut!zswnlnx2jheB20?W>m zC&Dz7cBEWeRDVD6UB_g~3rp2h%2L0`sbXF|FPWFkN{W-WbpGEIk>->XtDcQc^LJE~CQbg3&E$mOh@8X%<=3(#AT8Jdenv=YXU_eI72xcZnt(2L z5n;r>F{Ii_TEV(+De;vS6^Lqkl$e%3X0-{ZFVg{iMq0~Tg zNu+$F;YD#6K#5lpp(+c?p$mfrj9r`Og(>$YmWG7333q+65} z2@dRWfUda#FOk+2xU zKzxn^H6j@QhR=#zxakqmG6IRQqnyVfdc@xg>t2+Pk|||T7G{oN1j|3itJ)R|G#_hz zhmWKMR09%b4y4r0f0aM`7@J=pj*hC=G5Px*dkj*QD$2Z=NKI+RsfdclmAWf^y${q) zDJKU9ry?V!h6X2rRq9UzrjY%Zh~F`iA61KXyOaENk1I8`#N|REasvw+Ug? zNAbO51sIj?)7R9PYxGhUvV|68B1}S!SJp^DcU~fsDN_thHAw5yyv58eCIr`a*MyxRQy+~4P(?9iCF?6jJf{xsaXN#vH$(sdqV z+NwtBHkG1XHrp6`N^!oXrX98OuH9lmU4qO)wFx{e6vXtDb;0hy{|t#B2&@}n1Zc6q z37CNT;LAcoUYhhuNI+>`;1w+3rhqhPSGu-LRuM1#XQ5%+$`?km^3$GK5gPsTPm5gv zD+3P1uJ|c7PyhEDS^&pk&M&frC5#)n0W^m={|w8rEW;tLUwcji_@P%5-gKJgWf=Pf z=c>1535f8BlT_8vZ)M>s@s>KcYnJ}FdC7`Dn`;{5imR(%R>!z~9(h&d-07bu06gXv z*1R+D>50_|4Qbmf*Hf!q$yF{*`*pc?Y8oNWXVY}o_6Qy<2w(3LbRV$by;73pUAVfN zM+~yMY|uljf)y6j(&)z1J~4b!&5P6S$^oJWdxYs_X4^zL!?>*q#4gw-wdgDH_ciTYJ2vn&d&8Cow^;TSPPkW(zoJ4XH8eUU1w zq*7l|+|~KZPvf%^T5^$^)cd2pP|X@Hspj!~9?Y#c^aRrRbhPZ+A+NOhcBLgJtEjme z+Hy(fgr~|tGLJzjxbj16EmUCQnLa+`_t&? z(Uh3^d0SFYRg;o}hWE4T6JJ2Ok|@>TdFADKs%>|-=DZq&zYr3T&%E|@bo^x{Wk zW9`Q$#cGzfzk2(NtOs?Ux2`(a}4aYQ(hIiIXCh9?LiQMND=dF!Lu=n zUQsipnZyejTLGHGN)3yMMt(9EuQWdhZ92!tJ8}KafjVqx<_uWp(_tl1GU8&>X%6f_ z0y9T)0q=c=kv;JX<*lAk!{+v{Qi&rQ0Z;=5^9&2i2hL0%Jc5V!kI-j2PSGNL%CQXU z5O_{v#RKTtPauTyol63o17q_pm!a{Ay;RlxyeIgd>$5ZpyXe+p@ZJ0{S5S0#8F*!i!3x z9UEI4xa?lT7TN@h|v^nOk z_!Wzeoc$(p2z;{$yzN_%=psVv_D36HP@ZqBRdCr|XB)PLlsPWjOZS2E1d~Bc2~Q9~ zY>{`f2rK!gxz@D+C~v|ivfwavAg+^ zqsXaObpC5@>3q6RDyd3YrKYm)re-qjsEj(AmR&CGljci%r7uf~n9oUp5R3w2Ase@s zNZ^Lqjueu2N!TwgN`eksN^-_}lx#{~`HRA*m|%{#-9RMQWa_9e<=$}rdQ$}iJw)(i zqHMuh#@UK%Sx+ z*@EmB--BkW#`vDs+rz^)22(Sl&5s)4onBkGl7S1Ta3i8xs(VOnzL5)8goi04B;m}0 zK>-Wsc8aDmES3z(jcbQcyo_As<`694AN*;^Ai_JMz@FQ}Y^YU}Y9_4I7-;sdEo8uP zT_Fo)!kL;i0Z}5~vH22rJr*pswOy*K4+xUX{@g+mB%M{NA|f@B5&u0i`$T``QjpX? z{r|93#8%Y{t|`BKik8QE^<+iOYh3!~_v66K0z-M!%n83_d1N^=k)iE5XW)W+U{~vC z8ES)*A#Vyy_U|mLfSR;law@sjRSI66yAu+kZIy!LpM^PTr5a2h&oG>RpDmrmfE2mLG|#O`%vwv0?*CA>VB$jBRSh@_~G zXv)6|h%%K*EeMN#Hbx1%t}k47v~1mx^R@J=_D|Ly`LwK3b=P+3^vbxVXELT~2YS!9 zP0M|q|F5SajUI+QB>OLiU`%(@RQ-fW^WN%_k5QoT#fn4y3teyigx`;?$cmYJYrnWa zM^heTL6AzRG0o(AH3#^}!XZWyY`ej@>+2B0TJ_e2F_DXm{s?PLAqiC&C?qnSrl~0) zCrR@Jv+Va-LhvH;T8rdjJz=Lq28vEyQy0dC5sIIe*~qX{s^uJo^wv;7`^lB|L^ma zm5q75Z@k{y`}!MR?^szGkrAM=K?mzxKTlgRF$%%#H(E=%)xQyocKAutSiTeAo!Hct ztm@9}JyqTNXkt%x=P#;$2s`tDSVW?B@js4S+{YiNi25CXI28mc1oK>&+xQEMvz5jv z5AtZIkPae2{?D&Sf5(yQ068nJk4*#s3AJ9uvaecXb@zinIemdEelzzht+71%Oj*WQ zZ{jSca*vDW=a__gj$g%8i&$iekqDDNT4)ENE z(dP~b(O2K6b*Ba!c_(s$(IOJ_XE;k#QI|ffucVYudrjTaLA`5}M#`rWv-7gkM#g{< z$GBgJTT60Sx2FCvSknDoyfqF)OJ96KPJ6{T_G02U|)b`xA8m#Rsn~exLdM;@oX@IjGC61K7=jxutXV1mf65p|>{l9FgV!UaWt3ZzuQ zvi)8$?6h>>C^A11sZT_PfS!+n-Dt5aB}5Pqhr8bp8RDTZwYJ?;YVG0iqZAh>CTm{| zkE;G+(jKuQK>}jkKnXn)6cbMfg2vRcqZDTKw(jDX70w!aLl^L#rN(5~aH?*>;=!^h zJPTzZ#LHn~#Lh&dY1+ujCMgCpafF(b(E#tsC1V=U^1n5QU>E1vMf;2cKDSElJ+b(r z4EI`{N{bA~3QRiu48HGx0DBcD9W`cacVaRWhSGDc1_sBf7atgO`8~YY&c_wkbD9G~ zTl`7Lb+@K{U3@e1>s{7YHsVc(dQR75#arxOij1$@wfTa#;15Sfe>akWBiwzx8+)75 zbtX&PXUde@x9=NH3Qk3Hb0{@9Y52bK3z?$)OxoS3RyTG_!zv+a0SQkCUTZv)<*fVO z&)pD%j`|Z18f;hWPe1WlhWo6)1Sf4Ci<}Om?MQlAoEjD_i6}$is6*oKP+LA{#OVC4gWg90XsI zBYJ%x?6+*ewNqL)#w<87RWbg8u`5+#2Hs)4=-iHC%^1M~V+`>T3TBBDrVO%@Ce>u} zrLF*=@|`r#nmH{$N)ev35!GNv2XFD$=np>>MKd)KcE)k>s932M2$!hx+*+fW+Qs6BMJ-%@Tx z$ENGlC=PTDgBWc)Xbhh<3qNDEm8D^n4BHmDHkML@RUBv@GDfAGE=j3WZzODw!<`)R z=bW|9svgtO;eI<+Te~i4FX^vW^AgL2%HsSdo3;jNwUXOvjQ_R0-M%?* zWf#V33+V`ujo*N5&kPLIBYt5*n5V+>eZ!sqxz~tu9Hpg{n2aLE|f zpeCFDCz2sN!^ePS&{ixH#X))x-xDz8;V^dEcQT}LTVr7K8RCR-lD+&h7_G}%h|BPn z-#fE|)#X{Aw|TSD6Gw`M6URp^eJ)9hMm3yMr9HliHlfW|!GL(d_N1o3U{$H~2GA>- z1O?U}*_O)2Rfgu~16;FVjim{C=|q`Q#zsp_K5w{*LBvXP_@_%bnsLUy58TyW+-wDW zl;Q4VE3EvFr9$$nVz^}s+(KvgkRzgsq9OwG+BNUd%DljtwO(BpyQ!ry_Pd7IR$mN{ z!FREZFG=|sYbY~8)|i;t7)|?o$}`gmHu3bvXiXzkdPEF1YF1Cb;+FD368YWk?;L&& zT$P^{9X#CA*x)hVbk?;y?OJUu(r*Y`TR%@X(_|Q$SsIM>dkD6h6|~|St!4x@QmfU9 zIwn#Ur5E&3GHanCQWL2c)QFDMymAhl3&g~X-d0NIoFkN2jG33yFEgfUyzp#s!u(0T zIiU(IzInV$nA>mU)X0{GyyxzoOEJuf2b{BpidOqo+A10pudnMb8LvDx4tnLcT>Bw7 z>RbGmlFH4Wj=wZ@Z0_i|XP2*I5r4n>q1rp%3!9kD@kMy!yU_Ld;B|P@ge`P2?fcq%YtOG zJZV?JeJAc+vHP!s=9=&oZ@es96Ko07Ca0&w2Ddc2GaGha)WxPh`7)LAWD=rd{_yIW zp0r>{wtWwSE>^`ZTNbF1t_*ApxKB7k@BV8~+v@!>tMi%Bo2jR--BtSkS4tA%eizHr z{%|_!6k4&X+x)c#%b)v@LXFwVlz8k> zFSTC%_0tcWR2!qs8Fm911@rTHS_9X7FWI+GB&yZ*J!{n!`T5-1RpouYsk3R@oH;#+TA~h2j6#408&*ihkIr;L~0jSSvSNt6A5WA6G0J zf(8ZP90poNVv%4CY=p%eCnr282cxVNaFNWitQ+AF!qb9Zl%|Y3k#kX7%XtJONI=qr zxcSf=;SP|}rGAcZF4se|7A0~k$8mES9wbUF!L1(beUEWq;+TPxa-4~=;1S1Iz?QyAC zB(E}wRyR-?H!=E9oN#NWxk%ZkfxJoxHZxRQH_?OW!&-2N3zblwc!b52q?woTY!912 z8gs?)5+3h1TM1s$1^fE@*wq$vFJq58tfp%NqAfrU zkbkAnO>N#>T+9_c@iU@0EzXD#MATHAVoss+%y}$t59gjcJv}pX%&IM3<-RsFM><}2 z4$mPBk=*62`tnT|W*zr%XilLmV1&o&7TD$To;hQ&c(owhn4Hc!w+EdpT23_&7HX_* z*4u#GV#IJyMP2g_-iOG@+eaP--D9|9m^C;JiQ{eFw$IxZ+Dx0iIE<{O;)@E|?CgF; z%#AU>4jUI>+rJH>!TF9Q8SRRZWq!j4nn~Vn9-y{Ck6k?NWxXI97oBzIH>W&HQ~B=1 zrgRhYv_e$O8vTBn^d@i`soIx5SK(P6*?2tjP0TynR57%m{G+oI^KAT5JRlNY`>rNf zp7Bt3<@4RfjU$Y}Fd^Ihd}ViKEFiC@rh`NtVMb?V9cD3$4`)4G+54>_eYxA-Fvre^{)m?{5IPk~0^1-;DDMp-JD`YJd3Y7oL0W+Ou-s zp_|}&i-g1TbBl4FgH~Wf6pR5vI|Z8U1ozHTa20D>gVarUowlILH44s>D^_U6DN;qi zgtwWRUXOzL?yc6SD$!+C2XAQ=U08tiiGXPaGsxPzGb0<3VJ20UDx_*s-QZ$=;vdoJ zmWLV-X1*m4iIU4QXJ{z0@Q8@Ghdrd4VpCBN?7dz+4IktNC|EzPp9A^@?`SPBIr z>=jgv^^V9$SXRN|XzFa_uRfAHGbWjCl z)pC6qI=^0#;`5~_{N>TtgB08GTZ*9T(FOWBaaTco5QHd81${tCG4@sa4Z}#CRG)#t zMq;;)HQXv#R}}eT=i^S<)Tce9ku@Cj!|0FS6BCx?irj-n{_x`-sPH=neh~4vv7`fzc@uz za7K{=cq@!R1OVMMA-eQ}0k;nCPc4d0CbHNv9}&r-*M8H^EHD^XeN)T2u+h~exMA>2 z^aRopms;OIr$@x~>zELY9I+G`Qq<_bzDFPRk^;Zf`Q(#}(PKVKs5i9MH|Bp%+1ff* zIp(mld{)1K_1{e6IlaEU`Pj^)dBMoqt|Ajg2EOsR$1&F$Y@o*i*2e>KjB|_9nBRSs zOXW)OLTy{TjBIAzZ@lie+Zo~EWud!9GSlC?3#;!g1G{1gr|$QiFe=*zPRq*OU!<9& zWMd-E4G=aC-oAbHsmlGn^6K_n(mCKEu|xmpqa(v)xX-siAAPU;8Vxz58-HwTR0giu zfOS`Owo)ahysj<5Rf0qyMwZsG|FIA}0*&QXPHvTpn8U(1_y29$I3+uZL>i1cyk<31 zl+2xsyDx3*V=MQw$t4%#nB?M%@sfFo$g|=v7AG@t7fU4cxndDjM1M-+V0Q<5;=Zl& zlyf_3P|uF+WoMSr|0;dUh^rPq`S3IrKCJ!-0B$izLAsj8nGD;caT}K8lM0`&uCB7u zM-N36u$X9{-k;{_RgXNfiiQuv4sXo!1<%LyK6e6dze&xcjM`eh&MZNIBgHEpuMd~m zR{VVZ$Futfz+|QniF&cH-|9dP&8O6yevbN7gEdunLttd>*v6j1^XBIJ_4H!HUH&7k z8T<6pg$p)1{hMlC8FW`w7BVSI{3;)=p=iK0kENH!8;VWw>5s+2Swlk8{EhqS{OPlo>~5R;(YknKK{gg4KpdQbhpCDdqeC`g)3Tf)l;i6OUe`p& zOycQ=>0DZ7!-SXXD!>Js$F{LO(Z328q7vU#2Kou`RKrwm7}fLt*bCb7&)hkRD=|k#*R@R2r zVE`EafLkIxyzU93C|vT-2G%HOc*HB(m^b_=fQ-j#1qmz>17{2jVxa~D&ar6F8X0h# z9BFvoTAwzqa|`+9Uw-NJ%kZ!lP7LBq!xD%(?S=Mt;a%4)(}1@l$V{_(@r%I)wot3Fd8BV61&t-t+Y0-VY8&Ea8v)W|SI>z#PVgW&|$ z)&cUbO`e{O`Xqodzbhgwx(CF*V=p98A27? z!dy_xz9{@6Np>DQSYF<@uw_fE@z+paem?bZ-^*YEnn3>Uu{V?3u?NFwl2#5>El(^% zd5#UF2lgftvdfQI)bb~f z+S1<6^Cr6k$YTelhc+oYqfFt7dObA_9o04 zO-1h1-J3}T#3#(x6xY{@)ICGG-G`mdc_u8a?oDoR+&a!e^gc5~bjhg7Vn3H|q&M9a zSlWDZv2|VuGNXQEEA_-yWF@@*w&A|sX*OOX3rR|8k8mvT$=Z7TOPyn5U8rv7&N}&` zK0#RB9i^E<9bR&QjiRC$=5vATHu7MP+|sk(jtnc(6@bCXmYbaRfhzb*8JZ3`~3rQ|ZFhb>bWoXqCZe7f&j`y+qpNYRKLIm^Bc*{mCV zr8MChSNIl!$Ac$0!uR2er)*QNtWT}BJCsD}6a-7cb5-_z7mhyAV|Q|0L3dR*haiuU zDTyhO9gYOlrrl&|`Ck#Ajlq>ehhQ@EJPfVb>CqjGoE4J(Z(3_lj>v}QeqX!4-uP&& zt}^kS)PdB1#vADNn(RBD(OegcCo=!QX+K5U4+{-(2HDGv#p!?hdsi{=qdv2Fo02H^ z$1KDI#Q1jx9#!TT4%V69kZ+&=tMjx$-y@yT+ut7T`YCFhJ7Y4~@t+|BZ|ua*`jK=jrQQ>24%on~_0koZU`rW>1mr3EBQYW334w=o2m2uioq5-;SS%RP+q{q^Z zqV?CfamNeW8G+HCc_BG4`2|y8!uZo_TM3DI_lDG`!Nt$dFHFxKoE4{Pr~FGxogFb9 z9b(=3FX+AiOpzD3MSK|BUMAnHK>kGolg2FhXBC5s{+5B4mzzA|_1FC)GkwdPrZ|m9 zoX%b!Irjc==7Nk556hPYWbKKTjmg4mcHGH;*HPJ5^^8{DKZm9!sXu)FkHIaJ1=yxW zb_Kt5inm>w0vG&(oj6nOW(ZTwix?)|D-ja;OJ!)BnP50Hu^U2*uF*WB>bZ34)Fme= zcL8%=Ik`kmny02_9;~ZdPEDEWsklUS2C*=nb(xWXIlT z?bZ;xy?@jC?8*(Tb@Xh`$<1#JN}QV#bF3fuL>jQ7GkO8~8s zC{w60&8*iun>u^NjcCTGl>J6FjBu@;Br8g~oPPX2i!NPkGU@9x8BBfV*QqHg+-fjb z!>Mssv713mEREh1s~7aTCp-SQIz_t6us(Lr$eMcKR7Jtz6%E33`zF>mYmzV|7eppk z9E`;b)|{wXQuR#OA!I^_!Y(28`AsGNjsy99Sc>e|N-{H@TbvQxrV017UsRFip^*6R zOv+XpSv0&Uv#wlO^HDSjGZ_8R>a66i*8yMnNdOYGp7kEBut>*x&5rAu$>$IF{u>{t z?b3k8fQGDIje?R*QHz2i;Jp9tG~Z!pRq3R`htxngtiex6PqwA`i%qpi;6wDA<^AH zNaxdqBxS7)sj2TDmhYav(6CXW+^{@j^&JS2o8cS$bjr~7r|P-x*G?4 z)t|9y>KLX(?YKQ%RpcpB`JHjj^5yVR*fyA*jyarurPbz2hGF>ce5?Ghq$l}L>(VW1 zB4eShD;bVaUa$U4Y7}lMywXC{5wStB5j(y}pGu#^jiA=3b_I?8+14I_3WiZ#=JnO1 z9{;3VUqt>V5pKG%WL|=>0Ho*W%zZxm8+2E$WUQCnTUVmHP<7I;D`}z=i$9(CKx?%9_NLT5?=Y5Rg^M(G^ z>~bZX4CHcMRlji;yTnnTS`w&3bnA^^M;~mV^}Gz^=?wDJeRUego}S5w;s;Tl)fuJk;5B&17iHYrvAtFzw|sO%PfwnY(|ZX&69Vs7K5#ITwTZypI7=^wG-?hL!}%gHyhKWqQ& zvv@t<(Y4_Fy%tMctV#6ks8SGBSAGKnj_qFfeO7Y!?&gHi=*Ljlm@XswXyWH500+lE z+S=d8^X26v>ddZIY`JIuN-Qa81;@V=kCjxE!Y#FCM}F(`KdDN7(m(9o!b~bPk&dVo zWlEGIl9Npp*f-sVv4UJ(Czjk2}p2pjX^ws&1QK9*{s-QbQi@i^``0U zongk22RX>8wFkjNZTRp+#G`BmU9##Rk?b7%VhZ=IVEs%uDxqDlra^9wmSK#S15b!& zg~wxMLj5Tkf&(CGxR^bQiC#p3MA7@;1AX4H|8h^Yczz{s?P6HMvdmL1`R2~@;JztK zzQuL>e^>=F4iKTkQp9dVM)>CM5@`=@&9+KI-hCqphY5=~;A27>dO=-!#-qz5X+r^_w>MH*9EV zj`ZJ^)_(;k49gN$q;T6Y-;1qs)i3;e41^a6T^e-sZ_;LaMad$dTX6Io?YfK-&4r+3 z@!EuX;uuSGuq>FYGq0<&O9adx04^h4g5i`Oc~Rg5m3c?d-YGa??`pRoEd8P=fV6VX zHM3UsBO@q<-^1Q?gz?(lJv7#};aRsjqZEv{P0TONB>6ek=n=LIz-ac~FOZ9u-X(b;H2t*BmM$YHhBDQ>t zKHlPm){Cy&S^wgT_1u!dp6UEYjC|ooHRQG8uI{cvjm|l@K^-T}mBy(XCSM$o8z49} zB!Q#jTvz#{sZ{i*CG9Y_s_WKkmPb@}nI)1&#a)FTt%0cVZb0hYsQay`oJ-0pD_>c( zabwX+z4yF~{H80WwQ$m&pZ~F8okBgMj&}}a4msnYO0jOkKYpg#*Tor3;x1)>tGlt( z7rWBUGgb}^a#?<7Gg9?VZ9_wXN_SJ2=*~LT?>B9JF6x?rd!+Zj!)tw8d|UbsV2aJi(m9@ z2735}Q#%f1edZ1FZfh<2-NBn~8IT*39gwY1NJ*dZyXNoyr8Y5=Z&Izhd!s&+ol|he zZY>A=^1gK?DrNcH8TpA$iaa-oh@@yIzFlltKT&ihJkZ1lOtDW*BY9+1H0ik14D?cv5~2V09Gfn=+c`pPOHFyWLVZBT4r1x2DwEZ#yrJ^ z{sRDpS*H@Pi>VCGbtz3&B|ZaoFzw#%;i73>}8!_{yV(CDNmlObGv5H4t z@#Mp_Sd$UFGjeB=CT_wVv+-$1> z@wZlvYh&oGo4^TI-xvv}yuVX@UiNRR6tO=4316&Y{Mg&t&V_4-BpF?Vks2T+I0;!u zsI{9VVzRch_IDRCEMWvBFxM+z9PG2wZsZ1Xo1*$MHfKD;)UopXGTIp9DC076^GQ~| zq!c=j@Or;f{@*2F@JPzzhyKHX=f|zOyY5GVw^@#f#Hkn>siNqziLCe6R^}M`rBZRu znt4BKB1@>r$=3xCZ$cumwUtdtnCwj9J>L<~p@}i2|r{-hEHX#xV3C zdP&UuhtvPXtgjDGazKEjIdW&EXKj#qqqFxmPnnBRBAwr|7Enc~mUu7cOs2tzXUf;Kn4}EWx2zfOwklUnPi>X0y4H={T0nJr zVz2K8Lihch{eL`Drt0>M!G;hxpnPW)2VwhsrjgsX&&XxYZx={E;?N!!AJ(3TaS2J1 zjmnmoa{2 z=<}02=uWx*&uI+%$=x$U<5o zY6pz0lX^6r7v+gHl$~M?1bzPlw6LLaW(FYz8dfsrX~D=dBJ;=yG~@a$1C2dIqL;WL zZ+ZGJ-X^9t7riw;{?B^!bfP)ppOvyGCQ3Ha53LfUsd>gF`7_V3JZCOIW;6fFGaTu7 zF?4%#mW(}?3$&b{lANx|Z-EeFEo;X6ZZ*c_F4c>=MmKW13&W&zmzlgbc-|;fm_0D- z^|kqmPHRX~D`z8tBuFp~$P}6zoU1ZIfrx&lEJr*uFZ`*3iuM%#N)gb*9+9R(*4FlNDV1kAi;@ z?(_lrfx1QHLExj}U7Vfk(8qR{Mo-Y@I+ZeaDOV|NZ_mx4B7$Fr40wCzIMdC)53=mG z*C(&L?=QC@4D@<}iQa5J_0f2Ru7(-sc|A@p82ST%sOTR*WR$ZkGl%9F@XqZd?t50Y zb=IuqADx=&Rf4CdDp-t~nC9_$;743T#pr6#F>0BvXnKORfFhZPxvRxay5RZN7yk5JD5! z7++@w1qfZcvh0&jdU>8@@4p|$s35@7*GeNL2(YIt#!fyRWZ9txfK#eKtqt#Y510Y= za0$1;Czf?_%xw!h0wX;~%jFEsV7fgGh~x(8e4~c(FaTtuZBPap%|OZL83&KnB5TV^ zxhL0fWs|rRnL)9iu=@m0kgB~Yq|(npm9r9#ki|DS7aW&vOhAPUxgGe8A+=7WAdnU} z_(y8nvJ!Ay$&mp~hDE&$_w+dv)_bFuX@I@#&VSlvN}>!px$zmdCOCFt zLfpGoG?jbLtgMT-_CvN==VyiT4DXKYx`XA|K8bg?eE9bZEhyM6{wa&hL@)me>Lz*e+j$~5+xz@QNgz_VYJ&UGEn0fP(u{kN=EDXA|= z54@WpXSDWfZe|-;{hEe`HAVIHMfnN>LJut_8gnVJt2jL+ic`~-buGRYkmzy<#yFF` z{4YEvID(Z_YQm4PC^q+?K8l*uOj0N{>PImG{Y%SRup}U%=@$G9KD38DBL-vo-$iY- zlB`b^SsQJOByn7Y42|ihU0*0X8)LOFs8V;R$?BL0TG=q?7pK5QkBM^1*w5I3ek0>D ziUKDv<>j+!wlpaAtKxTjo7bQ4(y=1f&ZM{B)0J#^YfIS#o`5|~THk$pzq*0mnG|o! zZTj|9e?s%*u}8;tCB1$0%cTwm+~ANq)aP%b5sQa!H_$~4jn#WcJCqaIa5IBG9OrR~ z(}rFc`O(%NBnv;%!{PXG@6MfLUiahJgJm%09iZ0a^777q-*CI6x%ogdIY2IHwi(HD zFevNa_Ro}=MZrax(YcZ7@r|X)nWs>&ws2p1ipG?f9S?}wSk{W z4h1RC{5~r4QB6^Jc-ZQ*K^pP5Ed@E1#f?#c<(oKy=!pl!pmHNAl@Nn&s(b;>%!26D^t+QEK zvt#j)DAnkzYpY1?s#Vt#^SHdNKN8)U^}pmbc<1K*vfjY1r3E_UG5xthgsxs;K?HvH z2LHCD6>AGC*H)C)xmfC`%!X_Nlu?)kC&JhPl*CGFCtdu6%?&M|t6L$sad>7;raUNm zXLxeNBavhM{m>;7pbn^x`dTVAN1&GN+L`Ap@Vn{gr|a*K^HG8<>IP3`=)Ag&pQ?1} zJ830R(jod!;~w7_5YR>5C|rqF$JO}EJ8uYCZPXO?H(bz=jW-^hLJpoVpEH5r2D+j3 zSM)^`k{y%L=;jY63949hk*L%JMx;wZ zV8!sH;yOV#^gXgFCE(cTw$=rQLQwGaVg`m&3oz$}pb}it6)Y#MZ$ut)_mM;Uan|Q; z3t938F?I0a47VRQc1Ns5n*jsVO-N8X%**d8jTL<-v zivS|WSkXii2lc_8updl2nl_R)ng*-GTE^*3`NMs#wEwmE^Z%6fr;9T>9!c_mCC@Am zR%}%g<$PM_;~9*r=WZ-Mz$MdCf{3&DfURHD6B8Yg*(XM2pZfn75Hl~|ugtet@^TmM zzh7N%N;qXt9OXC}S8E}ylW?rR8Z=;+8H4us3u;lNO8T$b5DqL%hC z^TY2x$gpiSy6bI))`YO6g$1F%ErAJcIG}W546}Mi0 zoEoDPoN?Ao{G1YUU_3HMXTCV>a;cc8@%PX+apkjMd0Jd}6DN35k@)#3hU(XBcGsp& zA_(eyEjM*V|8WvRt;$wiGR&$n+E-jIv&hlNeWAA;3PkR?ww;X(m9Ui6KP-vr|jhagjl0e(;u{$2!=rz1!tBH~>f?YQ&rbmD-AZ6fuTe>Q&gx^=#b z+sm`=$+1(IyS$QFsjlr?U;J@EZU8r-gxJTq@9Xf2`{6u5`i+Z(m)w>b<#elMh=guf8g0zF+W-JBEqeNcpd)Mmvq=OW*wL zqLebnS!o^>|H}$2xDK6xj!q<%jl{QZq9H@+`zkKO)kROGYUOlA2? zIzfJfDsJ%Br0LYUw7@jAw2x9Jr@yIY)OEb4@x^JYRkS-(suQ~xrKB;q zvEb%cNzGN~rUl59lB$y$$CK0FSs$pCjR^1iIB}@wm7cOG*B8C$Q?}V=KC$m z<%i3vK#u=EU--K*oB~f}Cjfr*ZiY|!cTfEwvh<*Js#4sXS3u{2>{A~sn$M0R72K0s zI8=ie-=(pm!l60v`mL)1?}Fk74?P)@_S0yx*Ft1}$PujNPeEhOtqs+|UoAO!paBmz z*n{$p_B$VZ?Ft_}lTexwO1rz%1oDary!i5l`)~&L!`;!B2Zfl!H~At2ul!5 zJtDgq!>XA@S&H=0GMf|VQoQ~R|2PtL>2&#Y+mF!JmkS7lqZ_pjoAU$dNwWS zO0&X7VwQs2n$}0Yk_JKk{XF_Lm2E1g- z=Y1U)uQPzwSV370dXs0>&JDEr2;vonwvYkBlul3`ii69q0_!e{e-?M>97SlbAw$}h zFYsJp(r}zPkg5@$##sP=NVtJHxpD=^`y*_VdTY?LV9LcfvSFi9HxV`3U@BCC$RK8d zW_R;e$^~E#Y`G9^+{!X>+}=dMj*K`=-QmMv8l3MaSe7-8&=_qt@VNx&WlZQ90BNV;w2nz>o8@6tD9MJe=-*!~dmG*n_gj{LQXkF8{(2#7 zl`Mu2K0vGu_IMVyTK6nM`|~X7t7%zw{45S^`BM>I`Au`Z^)XaGU3J#Q0JRO!Pk)1< zse0?JvmQFC3r*Kcd-b95dg!6H1ufiv<8{p2JL+eUybi6-Y;6tLguk^_$$0h1VylXhhE_c(^)D@3!>j9uBbt==Bc(c(rftQ_by<(>>?a QW8}wPUeo^@jR61v08@RD2LJ#7 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/images/arrow-down-orange.svg b/docs/v1.2.0/_static/images/arrow-down-orange.svg new file mode 100644 index 0000000000..e9d8e9ecf2 --- /dev/null +++ b/docs/v1.2.0/_static/images/arrow-down-orange.svg @@ -0,0 +1,19 @@ + + + + Group 5 + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/arrow-right-with-tail.svg b/docs/v1.2.0/_static/images/arrow-right-with-tail.svg new file mode 100644 index 0000000000..5843588fca --- /dev/null +++ b/docs/v1.2.0/_static/images/arrow-right-with-tail.svg @@ -0,0 +1,19 @@ + + + + Page 1 + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/chevron-down-black.svg b/docs/v1.2.0/_static/images/chevron-down-black.svg new file mode 100644 index 0000000000..097bc076ec --- /dev/null +++ b/docs/v1.2.0/_static/images/chevron-down-black.svg @@ -0,0 +1,16 @@ + + + Created with Sketch. + + + + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/chevron-down-grey.svg b/docs/v1.2.0/_static/images/chevron-down-grey.svg new file mode 100644 index 0000000000..82d6514f25 --- /dev/null +++ b/docs/v1.2.0/_static/images/chevron-down-grey.svg @@ -0,0 +1,18 @@ + + + + +Created with Sketch. + + + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/chevron-down-orange.svg b/docs/v1.2.0/_static/images/chevron-down-orange.svg new file mode 100644 index 0000000000..fd79a57854 --- /dev/null +++ b/docs/v1.2.0/_static/images/chevron-down-orange.svg @@ -0,0 +1,16 @@ + + + Created with Sketch. + + + + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/chevron-down-white.svg b/docs/v1.2.0/_static/images/chevron-down-white.svg new file mode 100644 index 0000000000..e6c94e27b6 --- /dev/null +++ b/docs/v1.2.0/_static/images/chevron-down-white.svg @@ -0,0 +1,16 @@ + + + Created with Sketch. + + + + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/chevron-right-orange.svg b/docs/v1.2.0/_static/images/chevron-right-orange.svg new file mode 100644 index 0000000000..7033fc93bf --- /dev/null +++ b/docs/v1.2.0/_static/images/chevron-right-orange.svg @@ -0,0 +1,17 @@ + + + + +Page 1 +Created with Sketch. + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/chevron-right-white.svg b/docs/v1.2.0/_static/images/chevron-right-white.svg new file mode 100644 index 0000000000..dd9e77f261 --- /dev/null +++ b/docs/v1.2.0/_static/images/chevron-right-white.svg @@ -0,0 +1,17 @@ + + + + +Page 1 +Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/favicon.png b/docs/v1.2.0/_static/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..76d17f57ad903c3ea2f1b564cafb95bf9af84ee3 GIT binary patch literal 521 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 E2S0P)JOBUy literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_static/images/icon-close.svg b/docs/v1.2.0/_static/images/icon-close.svg new file mode 100644 index 0000000000..348964e79f --- /dev/null +++ b/docs/v1.2.0/_static/images/icon-close.svg @@ -0,0 +1,21 @@ + + + + Page 1 + Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/icon-menu-dots-dark.svg b/docs/v1.2.0/_static/images/icon-menu-dots-dark.svg new file mode 100644 index 0000000000..fa2ad044b3 --- /dev/null +++ b/docs/v1.2.0/_static/images/icon-menu-dots-dark.svg @@ -0,0 +1,42 @@ + + + + Page 1 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/icons/bitbucket.1b09e088.svg b/docs/v1.2.0/_static/images/icons/bitbucket.1b09e088.svg new file mode 100644 index 0000000000..cf58c14fbc --- /dev/null +++ b/docs/v1.2.0/_static/images/icons/bitbucket.1b09e088.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/icons/bitbucket.svg b/docs/v1.2.0/_static/images/icons/bitbucket.svg new file mode 100644 index 0000000000..cf58c14fbc --- /dev/null +++ b/docs/v1.2.0/_static/images/icons/bitbucket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/icons/github.f0b8504a.svg b/docs/v1.2.0/_static/images/icons/github.f0b8504a.svg new file mode 100644 index 0000000000..3d13b19751 --- /dev/null +++ b/docs/v1.2.0/_static/images/icons/github.f0b8504a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/icons/github.svg b/docs/v1.2.0/_static/images/icons/github.svg new file mode 100644 index 0000000000..3d13b19751 --- /dev/null +++ b/docs/v1.2.0/_static/images/icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/icons/gitlab.6dd19c00.svg b/docs/v1.2.0/_static/images/icons/gitlab.6dd19c00.svg new file mode 100644 index 0000000000..1d9fffa74f --- /dev/null +++ b/docs/v1.2.0/_static/images/icons/gitlab.6dd19c00.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/icons/gitlab.svg b/docs/v1.2.0/_static/images/icons/gitlab.svg new file mode 100644 index 0000000000..1d9fffa74f --- /dev/null +++ b/docs/v1.2.0/_static/images/icons/gitlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/v1.2.0/_static/images/logo-dark.svg b/docs/v1.2.0/_static/images/logo-dark.svg new file mode 100644 index 0000000000..9b4c1a56ac --- /dev/null +++ b/docs/v1.2.0/_static/images/logo-dark.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/logo-facebook-dark.svg b/docs/v1.2.0/_static/images/logo-facebook-dark.svg new file mode 100644 index 0000000000..cff17915c4 --- /dev/null +++ b/docs/v1.2.0/_static/images/logo-facebook-dark.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/docs/v1.2.0/_static/images/logo-icon.svg b/docs/v1.2.0/_static/images/logo-icon.svg new file mode 100644 index 0000000000..575f6823e4 --- /dev/null +++ b/docs/v1.2.0/_static/images/logo-icon.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/logo-twitter-dark.svg b/docs/v1.2.0/_static/images/logo-twitter-dark.svg new file mode 100644 index 0000000000..1572570f88 --- /dev/null +++ b/docs/v1.2.0/_static/images/logo-twitter-dark.svg @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/docs/v1.2.0/_static/images/logo-youtube-dark.svg b/docs/v1.2.0/_static/images/logo-youtube-dark.svg new file mode 100644 index 0000000000..e3cfedd79d --- /dev/null +++ b/docs/v1.2.0/_static/images/logo-youtube-dark.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/logo.svg b/docs/v1.2.0/_static/images/logo.svg new file mode 100644 index 0000000000..f8d44b9842 --- /dev/null +++ b/docs/v1.2.0/_static/images/logo.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/pytorch-colab.svg b/docs/v1.2.0/_static/images/pytorch-colab.svg new file mode 100644 index 0000000000..2ab15e2f30 --- /dev/null +++ b/docs/v1.2.0/_static/images/pytorch-colab.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/pytorch-download.svg b/docs/v1.2.0/_static/images/pytorch-download.svg new file mode 100644 index 0000000000..cc37d638e9 --- /dev/null +++ b/docs/v1.2.0/_static/images/pytorch-download.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/docs/v1.2.0/_static/images/pytorch-github.svg b/docs/v1.2.0/_static/images/pytorch-github.svg new file mode 100644 index 0000000000..2c2570da1d --- /dev/null +++ b/docs/v1.2.0/_static/images/pytorch-github.svg @@ -0,0 +1,15 @@ + + + + + + diff --git a/docs/v1.2.0/_static/images/pytorch-x.svg b/docs/v1.2.0/_static/images/pytorch-x.svg new file mode 100644 index 0000000000..74856ea9fd --- /dev/null +++ b/docs/v1.2.0/_static/images/pytorch-x.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/docs/v1.2.0/_static/images/search-icon.svg b/docs/v1.2.0/_static/images/search-icon.svg new file mode 100644 index 0000000000..ebb0df8677 --- /dev/null +++ b/docs/v1.2.0/_static/images/search-icon.svg @@ -0,0 +1,19 @@ + + + + Created with Sketch. + + + + + + + + + + + + + + + diff --git a/docs/v1.2.0/_static/images/view-page-source-icon.svg b/docs/v1.2.0/_static/images/view-page-source-icon.svg new file mode 100644 index 0000000000..6f5bbe0748 --- /dev/null +++ b/docs/v1.2.0/_static/images/view-page-source-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/docs/v1.2.0/_static/javascripts/application.js b/docs/v1.2.0/_static/javascripts/application.js new file mode 100644 index 0000000000..7c724d2e4f --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/application.js @@ -0,0 +1,2540 @@ +! function(e, t) { + for (var n in t) e[n] = t[n] +}(window, function(n) { + var r = {}; + + function i(e) { + if (r[e]) return r[e].exports; + var t = r[e] = { + i: e, + l: !1, + exports: {} + }; + return n[e].call(t.exports, t, t.exports, i), t.l = !0, t.exports + } + return i.m = n, i.c = r, i.d = function(e, t, n) { + i.o(e, t) || Object.defineProperty(e, t, { + enumerable: !0, + get: n + }) + }, i.r = function(e) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { + value: "Module" + }), Object.defineProperty(e, "__esModule", { + value: !0 + }) + }, i.t = function(t, e) { + if (1 & e && (t = i(t)), 8 & e) return t; + if (4 & e && "object" == typeof t && t && t.__esModule) return t; + var n = Object.create(null); + if (i.r(n), Object.defineProperty(n, "default", { + enumerable: !0, + value: t + }), 2 & e && "string" != typeof t) + for (var r in t) i.d(n, r, function(e) { + return t[e] + }.bind(null, r)); + return n + }, i.n = function(e) { + var t = e && e.__esModule ? function() { + return e.default + } : function() { + return e + }; + return i.d(t, "a", t), t + }, i.o = function(e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + }, i.p = "", i(i.s = 13) +}([function(e, t, n) { + "use strict"; + var r = { + Listener: function() { + function e(e, t, n) { + var r = this; + this.els_ = Array.prototype.slice.call("string" == typeof e ? document.querySelectorAll(e) : [].concat(e)), this.handler_ = "function" == typeof n ? { + update: n + } : n, this.events_ = [].concat(t), this.update_ = function(e) { + return r.handler_.update(e) + } + } + var t = e.prototype; + return t.listen = function() { + var n = this; + this.els_.forEach(function(t) { + n.events_.forEach(function(e) { + t.addEventListener(e, n.update_, !1) + }) + }), "function" == typeof this.handler_.setup && this.handler_.setup() + }, t.unlisten = function() { + var n = this; + this.els_.forEach(function(t) { + n.events_.forEach(function(e) { + t.removeEventListener(e, n.update_) + }) + }), "function" == typeof this.handler_.reset && this.handler_.reset() + }, e + }(), + MatchMedia: function(e, t) { + this.handler_ = function(e) { + e.matches ? t.listen() : t.unlisten() + }; + var n = window.matchMedia(e); + n.addListener(this.handler_), this.handler_(n) + } + }, + i = { + Shadow: function() { + function e(e, t) { + var n = "string" == typeof e ? document.querySelector(e) : e; + if (!(n instanceof HTMLElement && n.parentNode instanceof HTMLElement)) throw new ReferenceError; + if (this.el_ = n.parentNode, !((n = "string" == typeof t ? document.querySelector(t) : t) instanceof HTMLElement)) throw new ReferenceError; + this.header_ = n, this.height_ = 0, this.active_ = !1 + } + var t = e.prototype; + return t.setup = function() { + for (var e = this.el_; e = e.previousElementSibling;) { + if (!(e instanceof HTMLElement)) throw new ReferenceError; + this.height_ += e.offsetHeight + } + this.update() + }, t.update = function(e) { + if (!e || "resize" !== e.type && "orientationchange" !== e.type) { + var t = window.pageYOffset >= this.height_; + t !== this.active_ && (this.header_.dataset.mdState = (this.active_ = t) ? "shadow" : "") + } else this.height_ = 0, this.setup() + }, t.reset = function() { + this.header_.dataset.mdState = "", this.height_ = 0, this.active_ = !1 + }, e + }(), + Title: function() { + function e(e, t) { + var n = "string" == typeof e ? document.querySelector(e) : e; + if (!(n instanceof HTMLElement)) throw new ReferenceError; + if (this.el_ = n, !((n = "string" == typeof t ? document.querySelector(t) : t) instanceof HTMLHeadingElement)) throw new ReferenceError; + this.header_ = n, this.active_ = !1 + } + var t = e.prototype; + return t.setup = function() { + var t = this; + Array.prototype.forEach.call(this.el_.children, function(e) { + e.style.width = t.el_.offsetWidth - 20 + "px" + }) + }, t.update = function(e) { + var t = this, + n = window.pageYOffset >= this.header_.offsetTop; + n !== this.active_ && (this.el_.dataset.mdState = (this.active_ = n) ? "active" : ""), "resize" !== e.type && "orientationchange" !== e.type || Array.prototype.forEach.call(this.el_.children, function(e) { + e.style.width = t.el_.offsetWidth - 20 + "px" + }) + }, t.reset = function() { + this.el_.dataset.mdState = "", this.el_.style.width = "", this.active_ = !1 + }, e + }() + }, + o = { + Blur: function() { + function e(e) { + this.els_ = "string" == typeof e ? document.querySelectorAll(e) : e, this.index_ = 0, this.offset_ = window.pageYOffset, this.dir_ = !1, this.anchors_ = [].reduce.call(this.els_, function(e, t) { + var n = decodeURIComponent(t.hash); + return e.concat(document.getElementById(n.substring(1)) || []) + }, []) + } + var t = e.prototype; + return t.setup = function() { + this.update() + }, t.update = function() { + var e = window.pageYOffset, + t = this.offset_ - e < 0; + if (this.dir_ !== t && (this.index_ = this.index_ = t ? 0 : this.els_.length - 1), 0 !== this.anchors_.length) { + if (this.offset_ <= e) + for (var n = this.index_ + 1; n < this.els_.length && this.anchors_[n].offsetTop - 80 <= e; n++) 0 < n && (this.els_[n - 1].dataset.mdState = "blur"), this.index_ = n; + else + for (var r = this.index_; 0 <= r; r--) { + if (!(this.anchors_[r].offsetTop - 80 > e)) { + this.index_ = r; + break + } + 0 < r && (this.els_[r - 1].dataset.mdState = "") + } + this.offset_ = e, this.dir_ = t + } + }, t.reset = function() { + Array.prototype.forEach.call(this.els_, function(e) { + e.dataset.mdState = "" + }), this.index_ = 0, this.offset_ = window.pageYOffset + }, e + }(), + Collapse: function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + this.el_ = t + } + var t = e.prototype; + return t.setup = function() { + var e = this.el_.getBoundingClientRect().height; + this.el_.style.display = e ? "block" : "none", this.el_.style.overflow = e ? "visible" : "hidden" + }, t.update = function() { + var e = this, + t = this.el_.getBoundingClientRect().height; + this.el_.style.display = "block", this.el_.style.overflow = ""; + var r = this.el_.previousElementSibling.previousElementSibling.checked; + if (r) this.el_.style.maxHeight = t + "px", requestAnimationFrame(function() { + e.el_.setAttribute("data-md-state", "animate"), e.el_.style.maxHeight = "0px" + }); + else { + this.el_.setAttribute("data-md-state", "expand"), this.el_.style.maxHeight = ""; + var n = this.el_.getBoundingClientRect().height; + this.el_.removeAttribute("data-md-state"), this.el_.style.maxHeight = "0px", requestAnimationFrame(function() { + e.el_.setAttribute("data-md-state", "animate"), e.el_.style.maxHeight = n + "px" + }) + } + this.el_.addEventListener("transitionend", function e(t) { + var n = t.target; + if (!(n instanceof HTMLElement)) throw new ReferenceError; + n.removeAttribute("data-md-state"), n.style.maxHeight = "", n.style.display = r ? "none" : "block", n.style.overflow = r ? "hidden" : "visible", n.removeEventListener("transitionend", e) + }, !1) + }, t.reset = function() { + this.el_.dataset.mdState = "", this.el_.style.maxHeight = "", this.el_.style.display = "", this.el_.style.overflow = "" + }, e + }(), + Scrolling: function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + this.el_ = t + } + var t = e.prototype; + return t.setup = function() { + this.el_.children[this.el_.children.length - 1].style.webkitOverflowScrolling = "touch"; + var e = this.el_.querySelectorAll("[data-md-toggle]"); + Array.prototype.forEach.call(e, function(e) { + if (!(e instanceof HTMLInputElement)) throw new ReferenceError; + if (e.checked) { + var t = e.nextElementSibling; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + for (; + "NAV" !== t.tagName && t.nextElementSibling;) t = t.nextElementSibling; + if (!(e.parentNode instanceof HTMLElement && e.parentNode.parentNode instanceof HTMLElement)) throw new ReferenceError; + var n = e.parentNode.parentNode, + r = t.children[t.children.length - 1]; + n.style.webkitOverflowScrolling = "", r.style.webkitOverflowScrolling = "touch" + } + }) + }, t.update = function(e) { + var t = e.target; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + var n = t.nextElementSibling; + if (!(n instanceof HTMLElement)) throw new ReferenceError; + for (; + "NAV" !== n.tagName && n.nextElementSibling;) n = n.nextElementSibling; + if (!(t.parentNode instanceof HTMLElement && t.parentNode.parentNode instanceof HTMLElement)) throw new ReferenceError; + var r = t.parentNode.parentNode, + i = n.children[n.children.length - 1]; + if (r.style.webkitOverflowScrolling = "", i.style.webkitOverflowScrolling = "", !t.checked) { + n.addEventListener("transitionend", function e() { + n instanceof HTMLElement && (r.style.webkitOverflowScrolling = "touch", n.removeEventListener("transitionend", e)) + }, !1) + } + if (t.checked) { + n.addEventListener("transitionend", function e() { + n instanceof HTMLElement && (i.style.webkitOverflowScrolling = "touch", n.removeEventListener("transitionend", e)) + }, !1) + } + }, t.reset = function() { + this.el_.children[1].style.webkitOverflowScrolling = ""; + var e = this.el_.querySelectorAll("[data-md-toggle]"); + Array.prototype.forEach.call(e, function(e) { + if (!(e instanceof HTMLInputElement)) throw new ReferenceError; + if (e.checked) { + var t = e.nextElementSibling; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + for (; + "NAV" !== t.tagName && t.nextElementSibling;) t = t.nextElementSibling; + if (!(e.parentNode instanceof HTMLElement && e.parentNode.parentNode instanceof HTMLElement)) throw new ReferenceError; + var n = e.parentNode.parentNode, + r = t.children[t.children.length - 1]; + n.style.webkitOverflowScrolling = "", r.style.webkitOverflowScrolling = "" + } + }) + }, e + }() + }, + a = { + Lock: function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLInputElement)) throw new ReferenceError; + if (this.el_ = t, !document.body) throw new ReferenceError; + this.lock_ = document.body + } + var t = e.prototype; + return t.setup = function() { + this.update() + }, t.update = function() { + var e = this; + this.el_.checked ? (this.offset_ = window.pageYOffset, setTimeout(function() { + window.scrollTo(0, 0), e.el_.checked && (e.lock_.dataset.mdState = "lock") + }, 400)) : (this.lock_.dataset.mdState = "", setTimeout(function() { + void 0 !== e.offset_ && window.scrollTo(0, e.offset_) + }, 100)) + }, t.reset = function() { + "lock" === this.lock_.dataset.mdState && window.scrollTo(0, this.offset_), this.lock_.dataset.mdState = "" + }, e + }(), + Result: n(9).a + }, + s = { + Position: function() { + function e(e, t) { + var n = "string" == typeof e ? document.querySelector(e) : e; + if (!(n instanceof HTMLElement && n.parentNode instanceof HTMLElement)) throw new ReferenceError; + if (this.el_ = n, this.parent_ = n.parentNode, !((n = "string" == typeof t ? document.querySelector(t) : t) instanceof HTMLElement)) throw new ReferenceError; + this.header_ = n, this.height_ = 0, this.pad_ = "fixed" === window.getComputedStyle(this.header_).position + } + var t = e.prototype; + return t.setup = function() { + var e = Array.prototype.reduce.call(this.parent_.children, function(e, t) { + return Math.max(e, t.offsetTop) + }, 0); + this.offset_ = e - (this.pad_ ? this.header_.offsetHeight : 0), this.update() + }, t.update = function(e) { + var t = window.pageYOffset, + n = window.innerHeight; + e && "resize" === e.type && this.setup(); + var r = this.pad_ ? this.header_.offsetHeight : 0, + i = this.parent_.offsetTop + this.parent_.offsetHeight, + o = n - r - Math.max(0, this.offset_ - t) - Math.max(0, t + n - i); + o !== this.height_ && (this.el_.style.height = (this.height_ = o) + "px"), t >= this.offset_ ? "lock" !== this.el_.dataset.mdState && (this.el_.dataset.mdState = "lock") : "lock" === this.el_.dataset.mdState && (this.el_.dataset.mdState = "") + }, t.reset = function() { + this.el_.dataset.mdState = "", this.el_.style.height = "", this.height_ = 0 + }, e + }() + }, + c = n(6), + l = n.n(c); + var u = { + Adapter: { + GitHub: function(o) { + var e, t; + + function n(e) { + var t; + t = o.call(this, e) || this; + var n = /^.+github\.com\/([^/]+)\/?([^/]+)?.*$/.exec(t.base_); + if (n && 3 === n.length) { + var r = n[1], + i = n[2]; + t.base_ = "https://api.github.com/users/" + r + "/repos", t.name_ = i + } + return t + } + return t = o, (e = n).prototype = Object.create(t.prototype), (e.prototype.constructor = e).__proto__ = t, n.prototype.fetch_ = function() { + var i = this; + return function n(r) { + return void 0 === r && (r = 0), fetch(i.base_ + "?per_page=30&page=" + r).then(function(e) { + return e.json() + }).then(function(e) { + if (!(e instanceof Array)) throw new TypeError; + if (i.name_) { + var t = e.find(function(e) { + return e.name === i.name_ + }); + return t || 30 !== e.length ? t ? [i.format_(t.stargazers_count) + " Stars", i.format_(t.forks_count) + " Forks"] : [] : n(r + 1) + } + return [e.length + " Repositories"] + }) + }() + }, n + }(function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLAnchorElement)) throw new ReferenceError; + this.el_ = t, this.base_ = this.el_.href, this.salt_ = this.hash_(this.base_) + } + var t = e.prototype; + return t.fetch = function() { + var n = this; + return new Promise(function(t) { + var e = l.a.getJSON(n.salt_ + ".cache-source"); + void 0 !== e ? t(e) : n.fetch_().then(function(e) { + l.a.set(n.salt_ + ".cache-source", e, { + expires: 1 / 96 + }), t(e) + }) + }) + }, t.fetch_ = function() { + throw new Error("fetch_(): Not implemented") + }, t.format_ = function(e) { + return 1e4 < e ? (e / 1e3).toFixed(0) + "k" : 1e3 < e ? (e / 1e3).toFixed(1) + "k" : "" + e + }, t.hash_ = function(e) { + var t = 0; + if (0 === e.length) return t; + for (var n = 0, r = e.length; n < r; n++) t = (t << 5) - t + e.charCodeAt(n), t |= 0; + return t + }, e + }()) + }, + Repository: n(10).a + }, + f = { + Toggle: function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof Node)) throw new ReferenceError; + this.el_ = t; + var n = document.querySelector("[data-md-component=header]"); + this.height_ = n.offsetHeight, this.active_ = !1 + } + var t = e.prototype; + return t.update = function() { + var e = window.pageYOffset >= this.el_.children[0].offsetTop + (5 - this.height_); + e !== this.active_ && (this.el_.dataset.mdState = (this.active_ = e) ? "hidden" : "") + }, t.reset = function() { + this.el_.dataset.mdState = "", this.active_ = !1 + }, e + }() + }; + t.a = { + Event: r, + Header: i, + Nav: o, + Search: a, + Sidebar: s, + Source: u, + Tabs: f + } +}, function(t, e, n) { + (function(e) { + t.exports = e.lunr = n(24) + }).call(this, n(4)) +}, function(e, f, d) { + "use strict"; + (function(t) { + var e = d(8), + n = setTimeout; + + function r() {} + + function o(e) { + if (!(this instanceof o)) throw new TypeError("Promises must be constructed via new"); + if ("function" != typeof e) throw new TypeError("not a function"); + this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], u(e, this) + } + + function i(n, r) { + for (; 3 === n._state;) n = n._value; + 0 !== n._state ? (n._handled = !0, o._immediateFn(function() { + var e = 1 === n._state ? r.onFulfilled : r.onRejected; + if (null !== e) { + var t; + try { + t = e(n._value) + } catch (e) { + return void s(r.promise, e) + } + a(r.promise, t) + } else(1 === n._state ? a : s)(r.promise, n._value) + })) : n._deferreds.push(r) + } + + function a(t, e) { + try { + if (e === t) throw new TypeError("A promise cannot be resolved with itself."); + if (e && ("object" == typeof e || "function" == typeof e)) { + var n = e.then; + if (e instanceof o) return t._state = 3, t._value = e, void c(t); + if ("function" == typeof n) return void u((r = n, i = e, function() { + r.apply(i, arguments) + }), t) + } + t._state = 1, t._value = e, c(t) + } catch (e) { + s(t, e) + } + var r, i + } + + function s(e, t) { + e._state = 2, e._value = t, c(e) + } + + function c(e) { + 2 === e._state && 0 === e._deferreds.length && o._immediateFn(function() { + e._handled || o._unhandledRejectionFn(e._value) + }); + for (var t = 0, n = e._deferreds.length; t < n; t++) i(e, e._deferreds[t]); + e._deferreds = null + } + + function l(e, t, n) { + this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.promise = n + } + + function u(e, t) { + var n = !1; + try { + e(function(e) { + n || (n = !0, a(t, e)) + }, function(e) { + n || (n = !0, s(t, e)) + }) + } catch (e) { + if (n) return; + n = !0, s(t, e) + } + } + o.prototype.catch = function(e) { + return this.then(null, e) + }, o.prototype.then = function(e, t) { + var n = new this.constructor(r); + return i(this, new l(e, t, n)), n + }, o.prototype.finally = e.a, o.all = function(t) { + return new o(function(r, i) { + if (!t || void 0 === t.length) throw new TypeError("Promise.all accepts an array"); + var o = Array.prototype.slice.call(t); + if (0 === o.length) return r([]); + var a = o.length; + + function s(t, e) { + try { + if (e && ("object" == typeof e || "function" == typeof e)) { + var n = e.then; + if ("function" == typeof n) return void n.call(e, function(e) { + s(t, e) + }, i) + } + o[t] = e, 0 == --a && r(o) + } catch (e) { + i(e) + } + } + for (var e = 0; e < o.length; e++) s(e, o[e]) + }) + }, o.resolve = function(t) { + return t && "object" == typeof t && t.constructor === o ? t : new o(function(e) { + e(t) + }) + }, o.reject = function(n) { + return new o(function(e, t) { + t(n) + }) + }, o.race = function(i) { + return new o(function(e, t) { + for (var n = 0, r = i.length; n < r; n++) i[n].then(e, t) + }) + }, o._immediateFn = "function" == typeof t && function(e) { + t(e) + } || function(e) { + n(e, 0) + }, o._unhandledRejectionFn = function(e) { + "undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", e) + }, f.a = o + }).call(this, d(21).setImmediate) +}, function(e, t, n) { + "use strict"; + + function r(e, t) { + var n = document.createElement(e); + t && Array.prototype.forEach.call(Object.keys(t), function(e) { + n.setAttribute(e, t[e]) + }); + for (var r = arguments.length, i = new Array(2 < r ? r - 2 : 0), o = 2; o < r; o++) i[o - 2] = arguments[o]; + return function t(e) { + Array.prototype.forEach.call(e, function(e) { + "string" == typeof e || "number" == typeof e ? n.textContent += e : Array.isArray(e) ? t(e) : void 0 !== e.__html ? n.innerHTML += e.__html : e instanceof Node && n.appendChild(e) + }) + }(i), n + } + n.r(t), n.d(t, "createElement", function() { + return r + }) +}, function(e, t) { + var n; + n = function() { + return this + }(); + try { + n = n || new Function("return this")() + } catch (e) { + "object" == typeof window && (n = window) + } + e.exports = n +}, function(e, t, n) { + var r; + r = function() { + return function(n) { + var r = {}; + + function i(e) { + if (r[e]) return r[e].exports; + var t = r[e] = { + i: e, + l: !1, + exports: {} + }; + return n[e].call(t.exports, t, t.exports, i), t.l = !0, t.exports + } + return i.m = n, i.c = r, i.d = function(e, t, n) { + i.o(e, t) || Object.defineProperty(e, t, { + enumerable: !0, + get: n + }) + }, i.r = function(e) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { + value: "Module" + }), Object.defineProperty(e, "__esModule", { + value: !0 + }) + }, i.t = function(t, e) { + if (1 & e && (t = i(t)), 8 & e) return t; + if (4 & e && "object" == typeof t && t && t.__esModule) return t; + var n = Object.create(null); + if (i.r(n), Object.defineProperty(n, "default", { + enumerable: !0, + value: t + }), 2 & e && "string" != typeof t) + for (var r in t) i.d(n, r, function(e) { + return t[e] + }.bind(null, r)); + return n + }, i.n = function(e) { + var t = e && e.__esModule ? function() { + return e.default + } : function() { + return e + }; + return i.d(t, "a", t), t + }, i.o = function(e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + }, i.p = "", i(i.s = 0) + }([function(e, t, n) { + "use strict"; + var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + return typeof e + } : function(e) { + return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e + }, + o = function() { + function r(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) + } + } + return function(e, t, n) { + return t && r(e.prototype, t), n && r(e, n), e + } + }(), + a = r(n(1)), + s = r(n(3)), + c = r(n(4)); + + function r(e) { + return e && e.__esModule ? e : { + default: e + } + } + var l = function(e) { + function r(e, t) { + ! function(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + }(this, r); + var n = function(e, t) { + if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !t || "object" != typeof t && "function" != typeof t ? e : t + }(this, (r.__proto__ || Object.getPrototypeOf(r)).call(this)); + return n.resolveOptions(t), n.listenClick(e), n + } + return function(e, t) { + if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); + e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0 + } + }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) + }(r, s.default), o(r, [{ + key: "resolveOptions", + value: function() { + var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; + this.action = "function" == typeof e.action ? e.action : this.defaultAction, this.target = "function" == typeof e.target ? e.target : this.defaultTarget, this.text = "function" == typeof e.text ? e.text : this.defaultText, this.container = "object" === i(e.container) ? e.container : document.body + } + }, { + key: "listenClick", + value: function(e) { + var t = this; + this.listener = (0, c.default)(e, "click", function(e) { + return t.onClick(e) + }) + } + }, { + key: "onClick", + value: function(e) { + var t = e.delegateTarget || e.currentTarget; + this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new a.default({ + action: this.action(t), + target: this.target(t), + text: this.text(t), + container: this.container, + trigger: t, + emitter: this + }) + } + }, { + key: "defaultAction", + value: function(e) { + return u("action", e) + } + }, { + key: "defaultTarget", + value: function(e) { + var t = u("target", e); + if (t) return document.querySelector(t) + } + }, { + key: "defaultText", + value: function(e) { + return u("text", e) + } + }, { + key: "destroy", + value: function() { + this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null) + } + }], [{ + key: "isSupported", + value: function() { + var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"], + t = "string" == typeof e ? [e] : e, + n = !!document.queryCommandSupported; + return t.forEach(function(e) { + n = n && !!document.queryCommandSupported(e) + }), n + } + }]), r + }(); + + function u(e, t) { + var n = "data-clipboard-" + e; + if (t.hasAttribute(n)) return t.getAttribute(n) + } + e.exports = l + }, function(e, t, n) { + "use strict"; + var r, i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + return typeof e + } : function(e) { + return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e + }, + o = function() { + function r(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) + } + } + return function(e, t, n) { + return t && r(e.prototype, t), n && r(e, n), e + } + }(), + a = n(2), + s = (r = a) && r.__esModule ? r : { + default: r + }; + var c = function() { + function t(e) { + ! function(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + }(this, t), this.resolveOptions(e), this.initSelection() + } + return o(t, [{ + key: "resolveOptions", + value: function() { + var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; + this.action = e.action, this.container = e.container, this.emitter = e.emitter, this.target = e.target, this.text = e.text, this.trigger = e.trigger, this.selectedText = "" + } + }, { + key: "initSelection", + value: function() { + this.text ? this.selectFake() : this.target && this.selectTarget() + } + }, { + key: "selectFake", + value: function() { + var e = this, + t = "rtl" == document.documentElement.getAttribute("dir"); + this.removeFake(), this.fakeHandlerCallback = function() { + return e.removeFake() + }, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[t ? "right" : "left"] = "-9999px"; + var n = window.pageYOffset || document.documentElement.scrollTop; + this.fakeElem.style.top = n + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, s.default)(this.fakeElem), this.copyText() + } + }, { + key: "removeFake", + value: function() { + this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null) + } + }, { + key: "selectTarget", + value: function() { + this.selectedText = (0, s.default)(this.target), this.copyText() + } + }, { + key: "copyText", + value: function() { + var t = void 0; + try { + t = document.execCommand(this.action) + } catch (e) { + t = !1 + } + this.handleResult(t) + } + }, { + key: "handleResult", + value: function(e) { + this.emitter.emit(e ? "success" : "error", { + action: this.action, + text: this.selectedText, + trigger: this.trigger, + clearSelection: this.clearSelection.bind(this) + }) + } + }, { + key: "clearSelection", + value: function() { + this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges() + } + }, { + key: "destroy", + value: function() { + this.removeFake() + } + }, { + key: "action", + set: function() { + var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "copy"; + if (this._action = e, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"') + }, + get: function() { + return this._action + } + }, { + key: "target", + set: function(e) { + if (void 0 !== e) { + if (!e || "object" !== (void 0 === e ? "undefined" : i(e)) || 1 !== e.nodeType) throw new Error('Invalid "target" value, use a valid Element'); + if ("copy" === this.action && e.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); + if ("cut" === this.action && (e.hasAttribute("readonly") || e.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); + this._target = e + } + }, + get: function() { + return this._target + } + }]), t + }(); + e.exports = c + }, function(e, t) { + e.exports = function(e) { + var t; + if ("SELECT" === e.nodeName) e.focus(), t = e.value; + else if ("INPUT" === e.nodeName || "TEXTAREA" === e.nodeName) { + var n = e.hasAttribute("readonly"); + n || e.setAttribute("readonly", ""), e.select(), e.setSelectionRange(0, e.value.length), n || e.removeAttribute("readonly"), t = e.value + } else { + e.hasAttribute("contenteditable") && e.focus(); + var r = window.getSelection(), + i = document.createRange(); + i.selectNodeContents(e), r.removeAllRanges(), r.addRange(i), t = r.toString() + } + return t + } + }, function(e, t) { + function n() {} + n.prototype = { + on: function(e, t, n) { + var r = this.e || (this.e = {}); + return (r[e] || (r[e] = [])).push({ + fn: t, + ctx: n + }), this + }, + once: function(e, t, n) { + var r = this; + + function i() { + r.off(e, i), t.apply(n, arguments) + } + return i._ = t, this.on(e, i, n) + }, + emit: function(e) { + for (var t = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[e] || []).slice(), r = 0, i = n.length; r < i; r++) n[r].fn.apply(n[r].ctx, t); + return this + }, + off: function(e, t) { + var n = this.e || (this.e = {}), + r = n[e], + i = []; + if (r && t) + for (var o = 0, a = r.length; o < a; o++) r[o].fn !== t && r[o].fn._ !== t && i.push(r[o]); + return i.length ? n[e] = i : delete n[e], this + } + }, e.exports = n + }, function(e, t, n) { + var d = n(5), + h = n(6); + e.exports = function(e, t, n) { + if (!e && !t && !n) throw new Error("Missing required arguments"); + if (!d.string(t)) throw new TypeError("Second argument must be a String"); + if (!d.fn(n)) throw new TypeError("Third argument must be a Function"); + if (d.node(e)) return u = t, f = n, (l = e).addEventListener(u, f), { + destroy: function() { + l.removeEventListener(u, f) + } + }; + if (d.nodeList(e)) return a = e, s = t, c = n, Array.prototype.forEach.call(a, function(e) { + e.addEventListener(s, c) + }), { + destroy: function() { + Array.prototype.forEach.call(a, function(e) { + e.removeEventListener(s, c) + }) + } + }; + if (d.string(e)) return r = e, i = t, o = n, h(document.body, r, i, o); + throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); + var r, i, o, a, s, c, l, u, f + } + }, function(e, n) { + n.node = function(e) { + return void 0 !== e && e instanceof HTMLElement && 1 === e.nodeType + }, n.nodeList = function(e) { + var t = Object.prototype.toString.call(e); + return void 0 !== e && ("[object NodeList]" === t || "[object HTMLCollection]" === t) && "length" in e && (0 === e.length || n.node(e[0])) + }, n.string = function(e) { + return "string" == typeof e || e instanceof String + }, n.fn = function(e) { + return "[object Function]" === Object.prototype.toString.call(e) + } + }, function(e, t, n) { + var a = n(7); + + function o(e, t, n, r, i) { + var o = function(t, n, e, r) { + return function(e) { + e.delegateTarget = a(e.target, n), e.delegateTarget && r.call(t, e) + } + }.apply(this, arguments); + return e.addEventListener(n, o, i), { + destroy: function() { + e.removeEventListener(n, o, i) + } + } + } + e.exports = function(e, t, n, r, i) { + return "function" == typeof e.addEventListener ? o.apply(null, arguments) : "function" == typeof n ? o.bind(null, document).apply(null, arguments) : ("string" == typeof e && (e = document.querySelectorAll(e)), Array.prototype.map.call(e, function(e) { + return o(e, t, n, r, i) + })) + } + }, function(e, t) { + if ("undefined" != typeof Element && !Element.prototype.matches) { + var n = Element.prototype; + n.matches = n.matchesSelector || n.mozMatchesSelector || n.msMatchesSelector || n.oMatchesSelector || n.webkitMatchesSelector + } + e.exports = function(e, t) { + for (; e && 9 !== e.nodeType;) { + if ("function" == typeof e.matches && e.matches(t)) return e; + e = e.parentNode + } + } + }]) + }, e.exports = r() +}, function(r, i, o) { + var a, s; + ! function(e) { + if (void 0 === (s = "function" == typeof(a = e) ? a.call(i, o, i, r) : a) || (r.exports = s), !0, r.exports = e(), !!0) { + var t = window.Cookies, + n = window.Cookies = e(); + n.noConflict = function() { + return window.Cookies = t, n + } + } + }(function() { + function m() { + for (var e = 0, t = {}; e < arguments.length; e++) { + var n = arguments[e]; + for (var r in n) t[r] = n[r] + } + return t + } + return function e(h) { + function p(e, t, n) { + var r; + if ("undefined" != typeof document) { + if (1 < arguments.length) { + if ("number" == typeof(n = m({ + path: "/" + }, p.defaults, n)).expires) { + var i = new Date; + i.setMilliseconds(i.getMilliseconds() + 864e5 * n.expires), n.expires = i + } + n.expires = n.expires ? n.expires.toUTCString() : ""; + try { + r = JSON.stringify(t), /^[\{\[]/.test(r) && (t = r) + } catch (e) {} + t = h.write ? h.write(t, e) : encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), e = (e = (e = encodeURIComponent(String(e))).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)).replace(/[\(\)]/g, escape); + var o = ""; + for (var a in n) n[a] && (o += "; " + a, !0 !== n[a] && (o += "=" + n[a])); + return document.cookie = e + "=" + t + o + } + e || (r = {}); + for (var s = document.cookie ? document.cookie.split("; ") : [], c = /(%[0-9A-Z]{2})+/g, l = 0; l < s.length; l++) { + var u = s[l].split("="), + f = u.slice(1).join("="); + this.json || '"' !== f.charAt(0) || (f = f.slice(1, -1)); + try { + var d = u[0].replace(c, decodeURIComponent); + if (f = h.read ? h.read(f, d) : h(f, d) || f.replace(c, decodeURIComponent), this.json) try { + f = JSON.parse(f) + } catch (e) {} + if (e === d) { + r = f; + break + } + e || (r[d] = f) + } catch (e) {} + } + return r + } + } + return (p.set = p).get = function(e) { + return p.call(p, e) + }, p.getJSON = function() { + return p.apply({ + json: !0 + }, [].slice.call(arguments)) + }, p.defaults = {}, p.remove = function(e, t) { + p(e, "", m(t, { + expires: -1 + })) + }, p.withConverter = e, p + }(function() {}) + }) +}, function(e, t, n) { + "use strict"; + n.r(t); + var r = "function" == typeof fetch ? fetch.bind() : function(i, o) { + return o = o || {}, new Promise(function(e, t) { + var n = new XMLHttpRequest; + for (var r in n.open(o.method || "get", i, !0), o.headers) n.setRequestHeader(r, o.headers[r]); + + function s() { + var r, i = [], + o = [], + a = {}; + return n.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm, function(e, t, n) { + i.push(t = t.toLowerCase()), o.push([t, n]), r = a[t], a[t] = r ? r + "," + n : n + }), { + ok: 2 == (n.status / 100 | 0), + status: n.status, + statusText: n.statusText, + url: n.responseURL, + clone: s, + text: function() { + return Promise.resolve(n.responseText) + }, + json: function() { + return Promise.resolve(n.responseText).then(JSON.parse) + }, + blob: function() { + return Promise.resolve(new Blob([n.response])) + }, + headers: { + keys: function() { + return i + }, + entries: function() { + return o + }, + get: function(e) { + return a[e.toLowerCase()] + }, + has: function(e) { + return e.toLowerCase() in a + } + } + } + } + n.withCredentials = "include" == o.credentials, n.onload = function() { + e(s()) + }, n.onerror = t, n.send(o.body || null) + }) + }; + t.default = r +}, function(e, t, n) { + "use strict"; + t.a = function(t) { + var n = this.constructor; + return this.then(function(e) { + return n.resolve(t()).then(function() { + return e + }) + }, function(e) { + return n.resolve(t()).then(function() { + return n.reject(e) + }) + }) + } +}, function(e, n, r) { + "use strict"; + (function(f) { + r.d(n, "a", function() { + return t + }); + var e = r(1), + d = r.n(e), + h = function(e) { + var t = document.getElementsByName("lang:" + e)[0]; + if (!(t instanceof HTMLMetaElement)) throw new ReferenceError; + return t.content + }, + t = function() { + function e(e, t) { + var n = "string" == typeof e ? document.querySelector(e) : e; + if (!(n instanceof HTMLElement)) throw new ReferenceError; + this.el_ = n; + var r = Array.prototype.slice.call(this.el_.children), + i = r[0], + o = r[1]; + this.data_ = t, this.meta_ = i, this.list_ = o, this.message_ = { + placeholder: this.meta_.textContent, + none: h("search.result.none"), + one: h("search.result.one"), + other: h("search.result.other") + }; + var a = h("search.tokenizer"); + a.length && (d.a.tokenizer.separator = a), this.lang_ = h("search.language").split(",").filter(Boolean).map(function(e) { + return e.trim() + }) + } + return e.prototype.update = function(e) { + var t, a = this; + if ("focus" !== e.type || this.index_) { + if ("focus" === e.type || "keyup" === e.type) { + var n = e.target; + if (!(n instanceof HTMLInputElement)) throw new ReferenceError; + if (!this.index_ || n.value === this.value_) return; + for (; this.list_.firstChild;) this.list_.removeChild(this.list_.firstChild); + if (this.value_ = n.value, 0 === this.value_.length) return void(this.meta_.textContent = this.message_.placeholder); + var r = this.index_.query(function(t) { + a.value_.toLowerCase().split(" ").filter(Boolean).forEach(function(e) { + t.term(e, { + wildcard: d.a.Query.wildcard.TRAILING + }) + }) + }).reduce(function(e, t) { + var n = a.docs_.get(t.ref); + if (n.parent) { + var r = n.parent.location; + e.set(r, (e.get(r) || []).concat(t)) + } else { + var i = n.location; + e.set(i, e.get(i) || []) + } + return e + }, new Map), + i = (t = this.value_.trim(), t.replace(/[|\\{}()[\]^$+*?.-]/g, "\\$&")).replace(new RegExp(d.a.tokenizer.separator, "img"), "|"), + s = new RegExp("(^|" + d.a.tokenizer.separator + ")(" + i + ")", "img"), + c = function(e, t, n) { + return t + "" + n + "" + }; + this.stack_ = [], r.forEach(function(e, t) { + var n, r = a.docs_.get(t), + i = f.createElement("li", { + class: "md-search-result__item" + }, f.createElement("a", { + href: r.location, + title: r.title, + class: "md-search-result__link", + tabindex: "-1" + }, f.createElement("article", { + class: "md-search-result__article md-search-result__article--document" + }, f.createElement("h1", { + class: "md-search-result__title" + }, { + __html: r.title.replace(s, c) + }), r.text.length ? f.createElement("p", { + class: "md-search-result__teaser" + }, { + __html: r.text.replace(s, c) + }) : {}))), + o = e.map(function(t) { + return function() { + var e = a.docs_.get(t.ref); + i.appendChild(f.createElement("a", { + href: e.location, + title: e.title, + class: "md-search-result__link", + "data-md-rel": "anchor", + tabindex: "-1" + }, f.createElement("article", { + class: "md-search-result__article" + }, f.createElement("h1", { + class: "md-search-result__title" + }, { + __html: e.title.replace(s, c) + }), e.text.length ? f.createElement("p", { + class: "md-search-result__teaser" + }, { + __html: function(e, t) { + var n = t; + if (e.length > n) { + for (; + " " !== e[n] && 0 < --n;); + return e.substring(0, n) + "..." + } + return e + }(e.text.replace(s, c), 400) + }) : {}))) + } + }); + (n = a.stack_).push.apply(n, [function() { + return a.list_.appendChild(i) + }].concat(o)) + }); + var o = this.el_.parentNode; + if (!(o instanceof HTMLElement)) throw new ReferenceError; + for (; this.stack_.length && o.offsetHeight >= o.scrollHeight - 16;) this.stack_.shift()(); + var l = this.list_.querySelectorAll("[data-md-rel=anchor]"); + switch (Array.prototype.forEach.call(l, function(r) { + ["click", "keydown"].forEach(function(n) { + r.addEventListener(n, function(e) { + if ("keydown" !== n || 13 === e.keyCode) { + var t = document.querySelector("[data-md-toggle=search]"); + if (!(t instanceof HTMLInputElement)) throw new ReferenceError; + t.checked && (t.checked = !1, t.dispatchEvent(new CustomEvent("change"))), e.preventDefault(), setTimeout(function() { + document.location.href = r.href + }, 100) + } + }) + }) + }), r.size) { + case 0: + this.meta_.textContent = this.message_.none; + break; + case 1: + this.meta_.textContent = this.message_.one; + break; + default: + this.meta_.textContent = this.message_.other.replace("#", r.size) + } + } + } else { + var u = function(e) { + a.docs_ = e.reduce(function(e, t) { + var n, r, i, o = t.location.split("#"), + a = o[0], + s = o[1]; + return t.text = (n = t.text, r = document.createTextNode(n), (i = document.createElement("p")).appendChild(r), i.innerHTML), s && (t.parent = e.get(a), t.parent && !t.parent.done && (t.parent.title = t.title, t.parent.text = t.text, t.parent.done = !0)), t.text = t.text.replace(/\n/g, " ").replace(/\s+/g, " ").replace(/\s+([,.:;!?])/g, function(e, t) { + return t + }), t.parent && t.parent.title === t.title || e.set(t.location, t), e + }, new Map); + var i = a.docs_, + o = a.lang_; + a.stack_ = [], a.index_ = d()(function() { + var e, t = this, + n = { + "search.pipeline.trimmer": d.a.trimmer, + "search.pipeline.stopwords": d.a.stopWordFilter + }, + r = Object.keys(n).reduce(function(e, t) { + return h(t).match(/^false$/i) || e.push(n[t]), e + }, []); + this.pipeline.reset(), r && (e = this.pipeline).add.apply(e, r), 1 === o.length && "en" !== o[0] && d.a[o[0]] ? this.use(d.a[o[0]]) : 1 < o.length && this.use(d.a.multiLanguage.apply(d.a, o)), this.field("title", { + boost: 10 + }), this.field("text"), this.ref("location"), i.forEach(function(e) { + return t.add(e) + }) + }); + var t = a.el_.parentNode; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + t.addEventListener("scroll", function() { + for (; a.stack_.length && t.scrollTop + t.offsetHeight >= t.scrollHeight - 16;) a.stack_.splice(0, 10).forEach(function(e) { + return e() + }) + }) + }; + setTimeout(function() { + return "function" == typeof a.data_ ? a.data_().then(u) : u(a.data_) + }, 250) + } + }, e + }() + }).call(this, r(3)) +}, function(e, n, r) { + "use strict"; + (function(t) { + r.d(n, "a", function() { + return e + }); + var e = function() { + function e(e) { + var t = "string" == typeof e ? document.querySelector(e) : e; + if (!(t instanceof HTMLElement)) throw new ReferenceError; + this.el_ = t + } + return e.prototype.initialize = function(e) { + e.length && this.el_.children.length && this.el_.children[this.el_.children.length - 1].appendChild(t.createElement("ul", { + class: "md-source__facts" + }, e.map(function(e) { + return t.createElement("li", { + class: "md-source__fact" + }, e) + }))), this.el_.dataset.mdState = "done" + }, e + }() + }).call(this, r(3)) +}, , , function(e, n, c) { + "use strict"; + c.r(n), + function(o) { + c.d(n, "app", function() { + return t + }); + c(14), c(15), c(16), c(17), c(18), c(19), c(20); + var r = c(2), + e = c(5), + a = c.n(e), + i = c(0); + window.Promise = window.Promise || r.a; + var s = function(e) { + var t = document.getElementsByName("lang:" + e)[0]; + if (!(t instanceof HTMLMetaElement)) throw new ReferenceError; + return t.content + }; + var t = { + initialize: function(t) { + new i.a.Event.Listener(document, "DOMContentLoaded", function() { + if (!(document.body instanceof HTMLElement)) throw new ReferenceError; + Modernizr.addTest("ios", function() { + return !!navigator.userAgent.match(/(iPad|iPhone|iPod)/g) + }); + var e = document.querySelectorAll("table:not([class])"); + if (Array.prototype.forEach.call(e, function(e) { + var t = o.createElement("div", { + class: "md-typeset__scrollwrap" + }, o.createElement("div", { + class: "md-typeset__table" + })); + e.nextSibling ? e.parentNode.insertBefore(t, e.nextSibling) : e.parentNode.appendChild(t), t.children[0].appendChild(e) + }), a.a.isSupported()) { + var t = document.querySelectorAll(".codehilite > pre, pre > code"); + Array.prototype.forEach.call(t, function(e, t) { + var n = "__code_" + t, + r = o.createElement("button", { + class: "md-clipboard", + title: s("clipboard.copy"), + "data-clipboard-target": "#" + n + " pre, #" + n + " code" + }, o.createElement("span", { + class: "md-clipboard__message" + })), + i = e.parentNode; + i.id = n, i.insertBefore(r, e) + }), new a.a(".md-clipboard").on("success", function(e) { + var t = e.trigger.querySelector(".md-clipboard__message"); + if (!(t instanceof HTMLElement)) throw new ReferenceError; + e.clearSelection(), t.dataset.mdTimer && clearTimeout(parseInt(t.dataset.mdTimer, 10)), t.classList.add("md-clipboard__message--active"), t.innerHTML = s("clipboard.copied"), t.dataset.mdTimer = setTimeout(function() { + t.classList.remove("md-clipboard__message--active"), t.dataset.mdTimer = "" + }, 2e3).toString() + }) + } + if (!Modernizr.details) { + var n = document.querySelectorAll("details > summary"); + Array.prototype.forEach.call(n, function(e) { + e.addEventListener("click", function(e) { + var t = e.target.parentNode; + t.hasAttribute("open") ? t.removeAttribute("open") : t.setAttribute("open", "") + }) + }) + } + var r = function() { + if (document.location.hash) { + var e = document.getElementById(document.location.hash.substring(1)); + if (!e) return; + for (var t = e.parentNode; t && !(t instanceof HTMLDetailsElement);) t = t.parentNode; + if (t && !t.open) { + t.open = !0; + var n = location.hash; + location.hash = " ", location.hash = n + } + } + }; + if (window.addEventListener("hashchange", r), r(), Modernizr.ios) { + var i = document.querySelectorAll("[data-md-scrollfix]"); + Array.prototype.forEach.call(i, function(t) { + t.addEventListener("touchstart", function() { + var e = t.scrollTop; + 0 === e ? t.scrollTop = 1 : e + t.offsetHeight === t.scrollHeight && (t.scrollTop = e - 1) + }) + }) + } + }).listen(), new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Header.Shadow("[data-md-component=container]", "[data-md-component=header]")).listen(), new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Header.Title("[data-md-component=title]", ".md-typeset h1")).listen(), document.querySelector("[data-md-component=hero]") && new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Tabs.Toggle("[data-md-component=hero]")).listen(), document.querySelector("[data-md-component=tabs]") && new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Tabs.Toggle("[data-md-component=tabs]")).listen(), new i.a.Event.MatchMedia("(min-width: 1220px)", new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Sidebar.Position("[data-md-component=navigation]", "[data-md-component=header]"))), document.querySelector("[data-md-component=toc]") && new i.a.Event.MatchMedia("(min-width: 960px)", new i.a.Event.Listener(window, ["scroll", "resize", "orientationchange"], new i.a.Sidebar.Position("[data-md-component=toc]", "[data-md-component=header]"))), new i.a.Event.MatchMedia("(min-width: 960px)", new i.a.Event.Listener(window, "scroll", new i.a.Nav.Blur("[data-md-component=toc] .md-nav__link"))); + var e = document.querySelectorAll("[data-md-component=collapsible]"); + Array.prototype.forEach.call(e, function(e) { + new i.a.Event.MatchMedia("(min-width: 1220px)", new i.a.Event.Listener(e.previousElementSibling, "click", new i.a.Nav.Collapse(e))) + }), new i.a.Event.MatchMedia("(max-width: 1219px)", new i.a.Event.Listener("[data-md-component=navigation] [data-md-toggle]", "change", new i.a.Nav.Scrolling("[data-md-component=navigation] nav"))), document.querySelector("[data-md-component=search]") && (new i.a.Event.MatchMedia("(max-width: 959px)", new i.a.Event.Listener("[data-md-toggle=search]", "change", new i.a.Search.Lock("[data-md-toggle=search]")))), + new i.a.Event.Listener(document.body, "keydown", function(e) { + if (9 === e.keyCode) { + var t = document.querySelectorAll("[data-md-component=navigation] .md-nav__link[for]:not([tabindex])"); + Array.prototype.forEach.call(t, function(e) { + e.offsetHeight && (e.tabIndex = 0) + }) + } + }).listen(), new i.a.Event.Listener(document.body, "mousedown", function() { + var e = document.querySelectorAll("[data-md-component=navigation] .md-nav__link[tabindex]"); + Array.prototype.forEach.call(e, function(e) { + e.removeAttribute("tabIndex") + }) + }).listen(), document.body.addEventListener("click", function() { + "tabbing" === document.body.dataset.mdState && (document.body.dataset.mdState = "") + }), new i.a.Event.MatchMedia("(max-width: 959px)", new i.a.Event.Listener("[data-md-component=navigation] [href^='#']", "click", function() { + var e = document.querySelector("[data-md-toggle=drawer]"); + if (!(e instanceof HTMLInputElement)) throw new ReferenceError; + e.checked && (e.checked = !1, e.dispatchEvent(new CustomEvent("change"))) + })), + function() { + var e = document.querySelector("[data-md-source]"); + if (!e) return r.a.resolve([]); + if (!(e instanceof HTMLAnchorElement)) throw new ReferenceError; + switch (e.dataset.mdSource) { + case "github": + return new i.a.Source.Adapter.GitHub(e).fetch(); + default: + return r.a.resolve([]) + } + }().then(function(t) { + var e = document.querySelectorAll("[data-md-source]"); + Array.prototype.forEach.call(e, function(e) { + new i.a.Source.Repository(e).initialize(t) + }) + }); + var n = function() { + var e = document.querySelectorAll("details"); + Array.prototype.forEach.call(e, function(e) { + e.setAttribute("open", "") + }) + }; + new i.a.Event.MatchMedia("print", { + listen: n, + unlisten: function() {} + }), window.onbeforeprint = n + } + } + }.call(this, c(3)) +}, function(e, t, n) { + e.exports = n.p + "assets/images/icons/bitbucket.1b09e088.svg" +}, function(e, t, n) { + e.exports = n.p + "assets/images/icons/github.f0b8504a.svg" +}, function(e, t, n) { + e.exports = n.p + "assets/images/icons/gitlab.6dd19c00.svg" +}, function(e, t) { + e.exports = "/Users/squidfunk/Desktop/General/Sources/mkdocs-material/material/application.4031d38b.css" +}, function(e, t) { + e.exports = "/Users/squidfunk/Desktop/General/Sources/mkdocs-material/material/application-palette.224b79ff.css" +}, function(e, t) { + ! function() { + if ("undefined" != typeof window) try { + var e = new window.CustomEvent("test", { + cancelable: !0 + }); + if (e.preventDefault(), !0 !== e.defaultPrevented) throw new Error("Could not prevent default") + } catch (e) { + var t = function(e, t) { + var n, r; + return (t = t || {}).bubbles = !!t.bubbles, t.cancelable = !!t.cancelable, (n = document.createEvent("CustomEvent")).initCustomEvent(e, t.bubbles, t.cancelable, t.detail), r = n.preventDefault, n.preventDefault = function() { + r.call(this); + try { + Object.defineProperty(this, "defaultPrevented", { + get: function() { + return !0 + } + }) + } catch (e) { + this.defaultPrevented = !0 + } + }, n + }; + t.prototype = window.Event.prototype, window.CustomEvent = t + } + }() +}, function(e, t, n) { + window.fetch || (window.fetch = n(7).default || n(7)) +}, function(e, i, o) { + (function(e) { + var t = void 0 !== e && e || "undefined" != typeof self && self || window, + n = Function.prototype.apply; + + function r(e, t) { + this._id = e, this._clearFn = t + } + i.setTimeout = function() { + return new r(n.call(setTimeout, t, arguments), clearTimeout) + }, i.setInterval = function() { + return new r(n.call(setInterval, t, arguments), clearInterval) + }, i.clearTimeout = i.clearInterval = function(e) { + e && e.close() + }, r.prototype.unref = r.prototype.ref = function() {}, r.prototype.close = function() { + this._clearFn.call(t, this._id) + }, i.enroll = function(e, t) { + clearTimeout(e._idleTimeoutId), e._idleTimeout = t + }, i.unenroll = function(e) { + clearTimeout(e._idleTimeoutId), e._idleTimeout = -1 + }, i._unrefActive = i.active = function(e) { + clearTimeout(e._idleTimeoutId); + var t = e._idleTimeout; + 0 <= t && (e._idleTimeoutId = setTimeout(function() { + e._onTimeout && e._onTimeout() + }, t)) + }, o(22), i.setImmediate = "undefined" != typeof self && self.setImmediate || void 0 !== e && e.setImmediate || this && this.setImmediate, i.clearImmediate = "undefined" != typeof self && self.clearImmediate || void 0 !== e && e.clearImmediate || this && this.clearImmediate + }).call(this, o(4)) +}, function(e, t, n) { + (function(e, p) { + ! function(n, r) { + "use strict"; + if (!n.setImmediate) { + var i, o, t, a, e, s = 1, + c = {}, + l = !1, + u = n.document, + f = Object.getPrototypeOf && Object.getPrototypeOf(n); + f = f && f.setTimeout ? f : n, i = "[object process]" === {}.toString.call(n.process) ? function(e) { + p.nextTick(function() { + h(e) + }) + } : function() { + if (n.postMessage && !n.importScripts) { + var e = !0, + t = n.onmessage; + return n.onmessage = function() { + e = !1 + }, n.postMessage("", "*"), n.onmessage = t, e + } + }() ? (a = "setImmediate$" + Math.random() + "$", e = function(e) { + e.source === n && "string" == typeof e.data && 0 === e.data.indexOf(a) && h(+e.data.slice(a.length)) + }, n.addEventListener ? n.addEventListener("message", e, !1) : n.attachEvent("onmessage", e), function(e) { + n.postMessage(a + e, "*") + }) : n.MessageChannel ? ((t = new MessageChannel).port1.onmessage = function(e) { + h(e.data) + }, function(e) { + t.port2.postMessage(e) + }) : u && "onreadystatechange" in u.createElement("script") ? (o = u.documentElement, function(e) { + var t = u.createElement("script"); + t.onreadystatechange = function() { + h(e), t.onreadystatechange = null, o.removeChild(t), t = null + }, o.appendChild(t) + }) : function(e) { + setTimeout(h, 0, e) + }, f.setImmediate = function(e) { + "function" != typeof e && (e = new Function("" + e)); + for (var t = new Array(arguments.length - 1), n = 0; n < t.length; n++) t[n] = arguments[n + 1]; + var r = { + callback: e, + args: t + }; + return c[s] = r, i(s), s++ + }, f.clearImmediate = d + } + + function d(e) { + delete c[e] + } + + function h(e) { + if (l) setTimeout(h, 0, e); + else { + var t = c[e]; + if (t) { + l = !0; + try { + ! function(e) { + var t = e.callback, + n = e.args; + switch (n.length) { + case 0: + t(); + break; + case 1: + t(n[0]); + break; + case 2: + t(n[0], n[1]); + break; + case 3: + t(n[0], n[1], n[2]); + break; + default: + t.apply(r, n) + } + }(t) + } finally { + d(e), l = !1 + } + } + } + } + }("undefined" == typeof self ? void 0 === e ? this : e : self) + }).call(this, n(4), n(23)) +}, function(e, t) { + var n, r, i = e.exports = {}; + + function o() { + throw new Error("setTimeout has not been defined") + } + + function a() { + throw new Error("clearTimeout has not been defined") + } + + function s(t) { + if (n === setTimeout) return setTimeout(t, 0); + if ((n === o || !n) && setTimeout) return n = setTimeout, setTimeout(t, 0); + try { + return n(t, 0) + } catch (e) { + try { + return n.call(null, t, 0) + } catch (e) { + return n.call(this, t, 0) + } + } + }! function() { + try { + n = "function" == typeof setTimeout ? setTimeout : o + } catch (e) { + n = o + } + try { + r = "function" == typeof clearTimeout ? clearTimeout : a + } catch (e) { + r = a + } + }(); + var c, l = [], + u = !1, + f = -1; + + function d() { + u && c && (u = !1, c.length ? l = c.concat(l) : f = -1, l.length && h()) + } + + function h() { + if (!u) { + var e = s(d); + u = !0; + for (var t = l.length; t;) { + for (c = l, l = []; ++f < t;) c && c[f].run(); + f = -1, t = l.length + } + c = null, u = !1, + function(t) { + if (r === clearTimeout) return clearTimeout(t); + if ((r === a || !r) && clearTimeout) return r = clearTimeout, clearTimeout(t); + try { + r(t) + } catch (e) { + try { + return r.call(null, t) + } catch (e) { + return r.call(this, t) + } + } + }(e) + } + } + + function p(e, t) { + this.fun = e, this.array = t + } + + function m() {} + i.nextTick = function(e) { + var t = new Array(arguments.length - 1); + if (1 < arguments.length) + for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; + l.push(new p(e, t)), 1 !== l.length || u || s(h) + }, p.prototype.run = function() { + this.fun.apply(null, this.array) + }, i.title = "browser", i.browser = !0, i.env = {}, i.argv = [], i.version = "", i.versions = {}, i.on = m, i.addListener = m, i.once = m, i.off = m, i.removeListener = m, i.removeAllListeners = m, i.emit = m, i.prependListener = m, i.prependOnceListener = m, i.listeners = function(e) { + return [] + }, i.binding = function(e) { + throw new Error("process.binding is not supported") + }, i.cwd = function() { + return "/" + }, i.chdir = function(e) { + throw new Error("process.chdir is not supported") + }, i.umask = function() { + return 0 + } +}, function(i, o, a) { + var s, c; + /** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.6 + * Copyright (C) 2019 Oliver Nightingale + * @license MIT + */ + ! function() { + var t, l, u, e, n, f, d, h, p, m, y, v, g, w, _, E, x, b, k, S, T, L, R, O, C, r, D = function(e) { + var t = new D.Builder; + return t.pipeline.add(D.trimmer, D.stopWordFilter, D.stemmer), t.searchPipeline.add(D.stemmer), e.call(t, t), t.build() + }; + D.version = "2.3.6", D.utils = {}, D.utils.warn = (t = this, function(e) { + t.console && console.warn && console.warn(e) + }), D.utils.asString = function(e) { + return null == e ? "" : e.toString() + }, D.utils.clone = function(e) { + if (null == e) return e; + for (var t = Object.create(null), n = Object.keys(e), r = 0; r < n.length; r++) { + var i = n[r], + o = e[i]; + if (Array.isArray(o)) t[i] = o.slice(); + else { + if ("string" != typeof o && "number" != typeof o && "boolean" != typeof o) throw new TypeError("clone is not deep and does not support nested objects"); + t[i] = o + } + } + return t + }, D.FieldRef = function(e, t, n) { + this.docRef = e, this.fieldName = t, this._stringValue = n + }, D.FieldRef.joiner = "/", D.FieldRef.fromString = function(e) { + var t = e.indexOf(D.FieldRef.joiner); + if (-1 === t) throw "malformed field ref string"; + var n = e.slice(0, t), + r = e.slice(t + 1); + return new D.FieldRef(r, n, e) + }, D.FieldRef.prototype.toString = function() { + return null == this._stringValue && (this._stringValue = this.fieldName + D.FieldRef.joiner + this.docRef), this._stringValue + }, D.Set = function(e) { + if (this.elements = Object.create(null), e) { + this.length = e.length; + for (var t = 0; t < this.length; t++) this.elements[e[t]] = !0 + } else this.length = 0 + }, D.Set.complete = { + intersect: function(e) { + return e + }, + union: function(e) { + return e + }, + contains: function() { + return !0 + } + }, D.Set.empty = { + intersect: function() { + return this + }, + union: function(e) { + return e + }, + contains: function() { + return !1 + } + }, D.Set.prototype.contains = function(e) { + return !!this.elements[e] + }, D.Set.prototype.intersect = function(e) { + var t, n, r, i = []; + if (e === D.Set.complete) return this; + if (e === D.Set.empty) return e; + n = this.length < e.length ? (t = this, e) : (t = e, this), r = Object.keys(t.elements); + for (var o = 0; o < r.length; o++) { + var a = r[o]; + a in n.elements && i.push(a) + } + return new D.Set(i) + }, D.Set.prototype.union = function(e) { + return e === D.Set.complete ? D.Set.complete : e === D.Set.empty ? this : new D.Set(Object.keys(this.elements).concat(Object.keys(e.elements))) + }, D.idf = function(e, t) { + var n = 0; + for (var r in e) "_index" != r && (n += Object.keys(e[r]).length); + var i = (t - n + .5) / (n + .5); + return Math.log(1 + Math.abs(i)) + }, D.Token = function(e, t) { + this.str = e || "", this.metadata = t || {} + }, D.Token.prototype.toString = function() { + return this.str + }, D.Token.prototype.update = function(e) { + return this.str = e(this.str, this.metadata), this + }, D.Token.prototype.clone = function(e) { + return e = e || function(e) { + return e + }, new D.Token(e(this.str, this.metadata), this.metadata) + }, D.tokenizer = function(e, t) { + if (null == e || null == e) return []; + if (Array.isArray(e)) return e.map(function(e) { + return new D.Token(D.utils.asString(e).toLowerCase(), D.utils.clone(t)) + }); + for (var n = e.toString().trim().toLowerCase(), r = n.length, i = [], o = 0, a = 0; o <= r; o++) { + var s = o - a; + if (n.charAt(o).match(D.tokenizer.separator) || o == r) { + if (0 < s) { + var c = D.utils.clone(t) || {}; + c.position = [a, s], c.index = i.length, i.push(new D.Token(n.slice(a, o), c)) + } + a = o + 1 + } + } + return i + }, D.tokenizer.separator = /[\s\-]+/, D.Pipeline = function() { + this._stack = [] + }, D.Pipeline.registeredFunctions = Object.create(null), D.Pipeline.registerFunction = function(e, t) { + t in this.registeredFunctions && D.utils.warn("Overwriting existing registered function: " + t), e.label = t, D.Pipeline.registeredFunctions[e.label] = e + }, D.Pipeline.warnIfFunctionNotRegistered = function(e) { + e.label && e.label in this.registeredFunctions || D.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n", e) + }, D.Pipeline.load = function(e) { + var n = new D.Pipeline; + return e.forEach(function(e) { + var t = D.Pipeline.registeredFunctions[e]; + if (!t) throw new Error("Cannot load unregistered function: " + e); + n.add(t) + }), n + }, D.Pipeline.prototype.add = function() { + Array.prototype.slice.call(arguments).forEach(function(e) { + D.Pipeline.warnIfFunctionNotRegistered(e), this._stack.push(e) + }, this) + }, D.Pipeline.prototype.after = function(e, t) { + D.Pipeline.warnIfFunctionNotRegistered(t); + var n = this._stack.indexOf(e); + if (-1 == n) throw new Error("Cannot find existingFn"); + n += 1, this._stack.splice(n, 0, t) + }, D.Pipeline.prototype.before = function(e, t) { + D.Pipeline.warnIfFunctionNotRegistered(t); + var n = this._stack.indexOf(e); + if (-1 == n) throw new Error("Cannot find existingFn"); + this._stack.splice(n, 0, t) + }, D.Pipeline.prototype.remove = function(e) { + var t = this._stack.indexOf(e); - 1 != t && this._stack.splice(t, 1) + }, D.Pipeline.prototype.run = function(e) { + for (var t = this._stack.length, n = 0; n < t; n++) { + for (var r = this._stack[n], i = [], o = 0; o < e.length; o++) { + var a = r(e[o], o, e); + if (void 0 !== a && "" !== a) + if (Array.isArray(a)) + for (var s = 0; s < a.length; s++) i.push(a[s]); + else i.push(a) + } + e = i + } + return e + }, D.Pipeline.prototype.runString = function(e, t) { + var n = new D.Token(e, t); + return this.run([n]).map(function(e) { + return e.toString() + }) + }, D.Pipeline.prototype.reset = function() { + this._stack = [] + }, D.Pipeline.prototype.toJSON = function() { + return this._stack.map(function(e) { + return D.Pipeline.warnIfFunctionNotRegistered(e), e.label + }) + }, D.Vector = function(e) { + this._magnitude = 0, this.elements = e || [] + }, D.Vector.prototype.positionForIndex = function(e) { + if (0 == this.elements.length) return 0; + for (var t = 0, n = this.elements.length / 2, r = n - t, i = Math.floor(r / 2), o = this.elements[2 * i]; 1 < r && (o < e && (t = i), e < o && (n = i), o != e);) r = n - t, i = t + Math.floor(r / 2), o = this.elements[2 * i]; + return o == e ? 2 * i : e < o ? 2 * i : o < e ? 2 * (i + 1) : void 0 + }, D.Vector.prototype.insert = function(e, t) { + this.upsert(e, t, function() { + throw "duplicate index" + }) + }, D.Vector.prototype.upsert = function(e, t, n) { + this._magnitude = 0; + var r = this.positionForIndex(e); + this.elements[r] == e ? this.elements[r + 1] = n(this.elements[r + 1], t) : this.elements.splice(r, 0, e, t) + }, D.Vector.prototype.magnitude = function() { + if (this._magnitude) return this._magnitude; + for (var e = 0, t = this.elements.length, n = 1; n < t; n += 2) { + var r = this.elements[n]; + e += r * r + } + return this._magnitude = Math.sqrt(e) + }, D.Vector.prototype.dot = function(e) { + for (var t = 0, n = this.elements, r = e.elements, i = n.length, o = r.length, a = 0, s = 0, c = 0, l = 0; c < i && l < o;)(a = n[c]) < (s = r[l]) ? c += 2 : s < a ? l += 2 : a == s && (t += n[c + 1] * r[l + 1], c += 2, l += 2); + return t + }, D.Vector.prototype.similarity = function(e) { + return this.dot(e) / this.magnitude() || 0 + }, D.Vector.prototype.toArray = function() { + for (var e = new Array(this.elements.length / 2), t = 1, n = 0; t < this.elements.length; t += 2, n++) e[n] = this.elements[t]; + return e + }, D.Vector.prototype.toJSON = function() { + return this.elements + }, D.stemmer = (l = { + ational: "ate", + tional: "tion", + enci: "ence", + anci: "ance", + izer: "ize", + bli: "ble", + alli: "al", + entli: "ent", + eli: "e", + ousli: "ous", + ization: "ize", + ation: "ate", + ator: "ate", + alism: "al", + iveness: "ive", + fulness: "ful", + ousness: "ous", + aliti: "al", + iviti: "ive", + biliti: "ble", + logi: "log" + }, u = { + icate: "ic", + ative: "", + alize: "al", + iciti: "ic", + ical: "ic", + ful: "", + ness: "" + }, e = "[aeiouy]", n = "[^aeiou][^aeiouy]*", f = new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*"), d = new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*"), h = new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$"), p = new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy]"), m = /^(.+?)(ss|i)es$/, y = /^(.+?)([^s])s$/, v = /^(.+?)eed$/, g = /^(.+?)(ed|ing)$/, w = /.$/, _ = /(at|bl|iz)$/, E = new RegExp("([^aeiouylsz])\\1$"), x = new RegExp("^" + n + e + "[^aeiouwxy]$"), b = /^(.+?[^aeiou])y$/, k = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/, S = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/, T = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/, L = /^(.+?)(s|t)(ion)$/, R = /^(.+?)e$/, O = /ll$/, C = new RegExp("^" + n + e + "[^aeiouwxy]$"), r = function(e) { + var t, n, r, i, o, a, s; + if (e.length < 3) return e; + if ("y" == (r = e.substr(0, 1)) && (e = r.toUpperCase() + e.substr(1)), o = y, (i = m).test(e) ? e = e.replace(i, "$1$2") : o.test(e) && (e = e.replace(o, "$1$2")), o = g, (i = v).test(e)) { + var c = i.exec(e); + (i = f).test(c[1]) && (i = w, e = e.replace(i, "")) + } else if (o.test(e)) { + t = (c = o.exec(e))[1], (o = p).test(t) && (a = E, s = x, (o = _).test(e = t) ? e += "e" : a.test(e) ? (i = w, e = e.replace(i, "")) : s.test(e) && (e += "e")) + }(i = b).test(e) && (e = (t = (c = i.exec(e))[1]) + "i"); + (i = k).test(e) && (t = (c = i.exec(e))[1], n = c[2], (i = f).test(t) && (e = t + l[n])); + (i = S).test(e) && (t = (c = i.exec(e))[1], n = c[2], (i = f).test(t) && (e = t + u[n])); + if (o = L, (i = T).test(e)) t = (c = i.exec(e))[1], (i = d).test(t) && (e = t); + else if (o.test(e)) { + t = (c = o.exec(e))[1] + c[2], (o = d).test(t) && (e = t) + }(i = R).test(e) && (t = (c = i.exec(e))[1], o = h, a = C, ((i = d).test(t) || o.test(t) && !a.test(t)) && (e = t)); + return o = d, (i = O).test(e) && o.test(e) && (i = w, e = e.replace(i, "")), "y" == r && (e = r.toLowerCase() + e.substr(1)), e + }, function(e) { + return e.update(r) + }), D.Pipeline.registerFunction(D.stemmer, "stemmer"), D.generateStopWordFilter = function(e) { + var t = e.reduce(function(e, t) { + return e[t] = t, e + }, {}); + return function(e) { + if (e && t[e.toString()] !== e.toString()) return e + } + }, D.stopWordFilter = D.generateStopWordFilter(["a", "able", "about", "across", "after", "all", "almost", "also", "am", "among", "an", "and", "any", "are", "as", "at", "be", "because", "been", "but", "by", "can", "cannot", "could", "dear", "did", "do", "does", "either", "else", "ever", "every", "for", "from", "get", "got", "had", "has", "have", "he", "her", "hers", "him", "his", "how", "however", "i", "if", "in", "into", "is", "it", "its", "just", "least", "let", "like", "likely", "may", "me", "might", "most", "must", "my", "neither", "no", "nor", "not", "of", "off", "often", "on", "only", "or", "other", "our", "own", "rather", "said", "say", "says", "she", "should", "since", "so", "some", "than", "that", "the", "their", "them", "then", "there", "these", "they", "this", "tis", "to", "too", "twas", "us", "wants", "was", "we", "were", "what", "when", "where", "which", "while", "who", "whom", "why", "will", "with", "would", "yet", "you", "your"]), D.Pipeline.registerFunction(D.stopWordFilter, "stopWordFilter"), D.trimmer = function(e) { + return e.update(function(e) { + return e.replace(/^\W+/, "").replace(/\W+$/, "") + }) + }, D.Pipeline.registerFunction(D.trimmer, "trimmer"), D.TokenSet = function() { + this.final = !1, this.edges = {}, this.id = D.TokenSet._nextId, D.TokenSet._nextId += 1 + }, D.TokenSet._nextId = 1, D.TokenSet.fromArray = function(e) { + for (var t = new D.TokenSet.Builder, n = 0, r = e.length; n < r; n++) t.insert(e[n]); + return t.finish(), t.root + }, D.TokenSet.fromClause = function(e) { + return "editDistance" in e ? D.TokenSet.fromFuzzyString(e.term, e.editDistance) : D.TokenSet.fromString(e.term) + }, D.TokenSet.fromFuzzyString = function(e, t) { + for (var n = new D.TokenSet, r = [{ + node: n, + editsRemaining: t, + str: e + }]; r.length;) { + var i = r.pop(); + if (0 < i.str.length) { + var o, a = i.str.charAt(0); + a in i.node.edges ? o = i.node.edges[a] : (o = new D.TokenSet, i.node.edges[a] = o), 1 == i.str.length && (o.final = !0), r.push({ + node: o, + editsRemaining: i.editsRemaining, + str: i.str.slice(1) + }) + } + if (0 != i.editsRemaining) { + if ("*" in i.node.edges) var s = i.node.edges["*"]; + else { + s = new D.TokenSet; + i.node.edges["*"] = s + } + if (0 == i.str.length && (s.final = !0), r.push({ + node: s, + editsRemaining: i.editsRemaining - 1, + str: i.str + }), 1 < i.str.length && r.push({ + node: i.node, + editsRemaining: i.editsRemaining - 1, + str: i.str.slice(1) + }), 1 == i.str.length && (i.node.final = !0), 1 <= i.str.length) { + if ("*" in i.node.edges) var c = i.node.edges["*"]; + else { + c = new D.TokenSet; + i.node.edges["*"] = c + } + 1 == i.str.length && (c.final = !0), r.push({ + node: c, + editsRemaining: i.editsRemaining - 1, + str: i.str.slice(1) + }) + } + if (1 < i.str.length) { + var l, u = i.str.charAt(0), + f = i.str.charAt(1); + f in i.node.edges ? l = i.node.edges[f] : (l = new D.TokenSet, i.node.edges[f] = l), 1 == i.str.length && (l.final = !0), r.push({ + node: l, + editsRemaining: i.editsRemaining - 1, + str: u + i.str.slice(2) + }) + } + } + } + return n + }, D.TokenSet.fromString = function(e) { + for (var t = new D.TokenSet, n = t, r = 0, i = e.length; r < i; r++) { + var o = e[r], + a = r == i - 1; + if ("*" == o)(t.edges[o] = t).final = a; + else { + var s = new D.TokenSet; + s.final = a, t.edges[o] = s, t = s + } + } + return n + }, D.TokenSet.prototype.toArray = function() { + for (var e = [], t = [{ + prefix: "", + node: this + }]; t.length;) { + var n = t.pop(), + r = Object.keys(n.node.edges), + i = r.length; + n.node.final && (n.prefix.charAt(0), e.push(n.prefix)); + for (var o = 0; o < i; o++) { + var a = r[o]; + t.push({ + prefix: n.prefix.concat(a), + node: n.node.edges[a] + }) + } + } + return e + }, D.TokenSet.prototype.toString = function() { + if (this._str) return this._str; + for (var e = this.final ? "1" : "0", t = Object.keys(this.edges).sort(), n = t.length, r = 0; r < n; r++) { + var i = t[r]; + e = e + i + this.edges[i].id + } + return e + }, D.TokenSet.prototype.intersect = function(e) { + for (var t = new D.TokenSet, n = void 0, r = [{ + qNode: e, + output: t, + node: this + }]; r.length;) { + n = r.pop(); + for (var i = Object.keys(n.qNode.edges), o = i.length, a = Object.keys(n.node.edges), s = a.length, c = 0; c < o; c++) + for (var l = i[c], u = 0; u < s; u++) { + var f = a[u]; + if (f == l || "*" == l) { + var d = n.node.edges[f], + h = n.qNode.edges[l], + p = d.final && h.final, + m = void 0; + f in n.output.edges ? (m = n.output.edges[f]).final = m.final || p : ((m = new D.TokenSet).final = p, n.output.edges[f] = m), r.push({ + qNode: h, + output: m, + node: d + }) + } + } + } + return t + }, D.TokenSet.Builder = function() { + this.previousWord = "", this.root = new D.TokenSet, this.uncheckedNodes = [], this.minimizedNodes = {} + }, D.TokenSet.Builder.prototype.insert = function(e) { + var t, n = 0; + if (e < this.previousWord) throw new Error("Out of order word insertion"); + for (var r = 0; r < e.length && r < this.previousWord.length && e[r] == this.previousWord[r]; r++) n++; + this.minimize(n), t = 0 == this.uncheckedNodes.length ? this.root : this.uncheckedNodes[this.uncheckedNodes.length - 1].child; + for (r = n; r < e.length; r++) { + var i = new D.TokenSet, + o = e[r]; + t.edges[o] = i, this.uncheckedNodes.push({ + parent: t, + char: o, + child: i + }), t = i + } + t.final = !0, this.previousWord = e + }, D.TokenSet.Builder.prototype.finish = function() { + this.minimize(0) + }, D.TokenSet.Builder.prototype.minimize = function(e) { + for (var t = this.uncheckedNodes.length - 1; e <= t; t--) { + var n = this.uncheckedNodes[t], + r = n.child.toString(); + r in this.minimizedNodes ? n.parent.edges[n.char] = this.minimizedNodes[r] : (n.child._str = r, this.minimizedNodes[r] = n.child), this.uncheckedNodes.pop() + } + }, D.Index = function(e) { + this.invertedIndex = e.invertedIndex, this.fieldVectors = e.fieldVectors, this.tokenSet = e.tokenSet, this.fields = e.fields, this.pipeline = e.pipeline + }, D.Index.prototype.search = function(t) { + return this.query(function(e) { + new D.QueryParser(t, e).parse() + }) + }, D.Index.prototype.query = function(e) { + for (var t = new D.Query(this.fields), n = Object.create(null), r = Object.create(null), i = Object.create(null), o = Object.create(null), a = Object.create(null), s = 0; s < this.fields.length; s++) r[this.fields[s]] = new D.Vector; + e.call(t, t); + for (s = 0; s < t.clauses.length; s++) { + var c = t.clauses[s], + l = null, + u = D.Set.complete; + l = c.usePipeline ? this.pipeline.runString(c.term, { + fields: c.fields + }) : [c.term]; + for (var f = 0; f < l.length; f++) { + var d = l[f]; + c.term = d; + var h = D.TokenSet.fromClause(c), + p = this.tokenSet.intersect(h).toArray(); + if (0 === p.length && c.presence === D.Query.presence.REQUIRED) { + for (var m = 0; m < c.fields.length; m++) { + o[Q = c.fields[m]] = D.Set.empty + } + break + } + for (var y = 0; y < p.length; y++) { + var v = p[y], + g = this.invertedIndex[v], + w = g._index; + for (m = 0; m < c.fields.length; m++) { + var _ = g[Q = c.fields[m]], + E = Object.keys(_), + x = v + "/" + Q, + b = new D.Set(E); + if (c.presence == D.Query.presence.REQUIRED && (u = u.union(b), void 0 === o[Q] && (o[Q] = D.Set.complete)), c.presence != D.Query.presence.PROHIBITED) { + if (r[Q].upsert(w, c.boost, function(e, t) { + return e + t + }), !i[x]) { + for (var k = 0; k < E.length; k++) { + var S, T = E[k], + L = new D.FieldRef(T, Q), + R = _[T]; + void 0 === (S = n[L]) ? n[L] = new D.MatchData(v, Q, R) : S.add(v, Q, R) + } + i[x] = !0 + } + } else void 0 === a[Q] && (a[Q] = D.Set.empty), a[Q] = a[Q].union(b) + } + } + } + if (c.presence === D.Query.presence.REQUIRED) + for (m = 0; m < c.fields.length; m++) { + o[Q = c.fields[m]] = o[Q].intersect(u) + } + } + var O = D.Set.complete, + C = D.Set.empty; + for (s = 0; s < this.fields.length; s++) { + var Q; + o[Q = this.fields[s]] && (O = O.intersect(o[Q])), a[Q] && (C = C.union(a[Q])) + } + var P = Object.keys(n), + A = [], + I = Object.create(null); + if (t.isNegated()) { + P = Object.keys(this.fieldVectors); + for (s = 0; s < P.length; s++) { + L = P[s]; + var M = D.FieldRef.fromString(L); + n[L] = new D.MatchData + } + } + for (s = 0; s < P.length; s++) { + var N = (M = D.FieldRef.fromString(P[s])).docRef; + if (O.contains(N) && !C.contains(N)) { + var j, F = this.fieldVectors[M], + H = r[M.fieldName].similarity(F); + if (void 0 !== (j = I[N])) j.score += H, j.matchData.combine(n[M]); + else { + var q = { + ref: N, + score: H, + matchData: n[M] + }; + I[N] = q, A.push(q) + } + } + } + return A.sort(function(e, t) { + return t.score - e.score + }) + }, D.Index.prototype.toJSON = function() { + var e = Object.keys(this.invertedIndex).sort().map(function(e) { + return [e, this.invertedIndex[e]] + }, this), + t = Object.keys(this.fieldVectors).map(function(e) { + return [e, this.fieldVectors[e].toJSON()] + }, this); + return { + version: D.version, + fields: this.fields, + fieldVectors: t, + invertedIndex: e, + pipeline: this.pipeline.toJSON() + } + }, D.Index.load = function(e) { + var t = {}, + n = {}, + r = e.fieldVectors, + i = Object.create(null), + o = e.invertedIndex, + a = new D.TokenSet.Builder, + s = D.Pipeline.load(e.pipeline); + e.version != D.version && D.utils.warn("Version mismatch when loading serialised index. Current version of lunr '" + D.version + "' does not match serialized index '" + e.version + "'"); + for (var c = 0; c < r.length; c++) { + var l = (f = r[c])[0], + u = f[1]; + n[l] = new D.Vector(u) + } + for (c = 0; c < o.length; c++) { + var f, d = (f = o[c])[0], + h = f[1]; + a.insert(d), i[d] = h + } + return a.finish(), t.fields = e.fields, t.fieldVectors = n, t.invertedIndex = i, t.tokenSet = a.root, t.pipeline = s, new D.Index(t) + }, D.Builder = function() { + this._ref = "id", this._fields = Object.create(null), this._documents = Object.create(null), this.invertedIndex = Object.create(null), this.fieldTermFrequencies = {}, this.fieldLengths = {}, this.tokenizer = D.tokenizer, this.pipeline = new D.Pipeline, this.searchPipeline = new D.Pipeline, this.documentCount = 0, this._b = .75, this._k1 = 1.2, this.termIndex = 0, this.metadataWhitelist = [] + }, D.Builder.prototype.ref = function(e) { + this._ref = e + }, D.Builder.prototype.field = function(e, t) { + if (/\//.test(e)) throw new RangeError("Field '" + e + "' contains illegal character '/'"); + this._fields[e] = t || {} + }, D.Builder.prototype.b = function(e) { + this._b = e < 0 ? 0 : 1 < e ? 1 : e + }, D.Builder.prototype.k1 = function(e) { + this._k1 = e + }, D.Builder.prototype.add = function(e, t) { + var n = e[this._ref], + r = Object.keys(this._fields); + this._documents[n] = t || {}, this.documentCount += 1; + for (var i = 0; i < r.length; i++) { + var o = r[i], + a = this._fields[o].extractor, + s = a ? a(e) : e[o], + c = this.tokenizer(s, { + fields: [o] + }), + l = this.pipeline.run(c), + u = new D.FieldRef(n, o), + f = Object.create(null); + this.fieldTermFrequencies[u] = f, this.fieldLengths[u] = 0, this.fieldLengths[u] += l.length; + for (var d = 0; d < l.length; d++) { + var h = l[d]; + if (null == f[h] && (f[h] = 0), f[h] += 1, null == this.invertedIndex[h]) { + var p = Object.create(null); + p._index = this.termIndex, this.termIndex += 1; + for (var m = 0; m < r.length; m++) p[r[m]] = Object.create(null); + this.invertedIndex[h] = p + } + null == this.invertedIndex[h][o][n] && (this.invertedIndex[h][o][n] = Object.create(null)); + for (var y = 0; y < this.metadataWhitelist.length; y++) { + var v = this.metadataWhitelist[y], + g = h.metadata[v]; + null == this.invertedIndex[h][o][n][v] && (this.invertedIndex[h][o][n][v] = []), this.invertedIndex[h][o][n][v].push(g) + } + } + } + }, D.Builder.prototype.calculateAverageFieldLengths = function() { + for (var e = Object.keys(this.fieldLengths), t = e.length, n = {}, r = {}, i = 0; i < t; i++) { + var o = D.FieldRef.fromString(e[i]), + a = o.fieldName; + r[a] || (r[a] = 0), r[a] += 1, n[a] || (n[a] = 0), n[a] += this.fieldLengths[o] + } + var s = Object.keys(this._fields); + for (i = 0; i < s.length; i++) { + var c = s[i]; + n[c] = n[c] / r[c] + } + this.averageFieldLength = n + }, D.Builder.prototype.createFieldVectors = function() { + for (var e = {}, t = Object.keys(this.fieldTermFrequencies), n = t.length, r = Object.create(null), i = 0; i < n; i++) { + for (var o = D.FieldRef.fromString(t[i]), a = o.fieldName, s = this.fieldLengths[o], c = new D.Vector, l = this.fieldTermFrequencies[o], u = Object.keys(l), f = u.length, d = this._fields[a].boost || 1, h = this._documents[o.docRef].boost || 1, p = 0; p < f; p++) { + var m, y, v, g = u[p], + w = l[g], + _ = this.invertedIndex[g]._index; + void 0 === r[g] ? (m = D.idf(this.invertedIndex[g], this.documentCount), r[g] = m) : m = r[g], y = m * ((this._k1 + 1) * w) / (this._k1 * (1 - this._b + this._b * (s / this.averageFieldLength[a])) + w), y *= d, y *= h, v = Math.round(1e3 * y) / 1e3, c.insert(_, v) + } + e[o] = c + } + this.fieldVectors = e + }, D.Builder.prototype.createTokenSet = function() { + this.tokenSet = D.TokenSet.fromArray(Object.keys(this.invertedIndex).sort()) + }, D.Builder.prototype.build = function() { + return this.calculateAverageFieldLengths(), this.createFieldVectors(), this.createTokenSet(), new D.Index({ + invertedIndex: this.invertedIndex, + fieldVectors: this.fieldVectors, + tokenSet: this.tokenSet, + fields: Object.keys(this._fields), + pipeline: this.searchPipeline + }) + }, D.Builder.prototype.use = function(e) { + var t = Array.prototype.slice.call(arguments, 1); + t.unshift(this), e.apply(this, t) + }, D.MatchData = function(e, t, n) { + for (var r = Object.create(null), i = Object.keys(n || {}), o = 0; o < i.length; o++) { + var a = i[o]; + r[a] = n[a].slice() + } + this.metadata = Object.create(null), void 0 !== e && (this.metadata[e] = Object.create(null), this.metadata[e][t] = r) + }, D.MatchData.prototype.combine = function(e) { + for (var t = Object.keys(e.metadata), n = 0; n < t.length; n++) { + var r = t[n], + i = Object.keys(e.metadata[r]); + null == this.metadata[r] && (this.metadata[r] = Object.create(null)); + for (var o = 0; o < i.length; o++) { + var a = i[o], + s = Object.keys(e.metadata[r][a]); + null == this.metadata[r][a] && (this.metadata[r][a] = Object.create(null)); + for (var c = 0; c < s.length; c++) { + var l = s[c]; + null == this.metadata[r][a][l] ? this.metadata[r][a][l] = e.metadata[r][a][l] : this.metadata[r][a][l] = this.metadata[r][a][l].concat(e.metadata[r][a][l]) + } + } + } + }, D.MatchData.prototype.add = function(e, t, n) { + if (!(e in this.metadata)) return this.metadata[e] = Object.create(null), void(this.metadata[e][t] = n); + if (t in this.metadata[e]) + for (var r = Object.keys(n), i = 0; i < r.length; i++) { + var o = r[i]; + o in this.metadata[e][t] ? this.metadata[e][t][o] = this.metadata[e][t][o].concat(n[o]) : this.metadata[e][t][o] = n[o] + } else this.metadata[e][t] = n + }, D.Query = function(e) { + this.clauses = [], this.allFields = e + }, D.Query.wildcard = new String("*"), D.Query.wildcard.NONE = 0, D.Query.wildcard.LEADING = 1, D.Query.wildcard.TRAILING = 2, D.Query.presence = { + OPTIONAL: 1, + REQUIRED: 2, + PROHIBITED: 3 + }, D.Query.prototype.clause = function(e) { + return "fields" in e || (e.fields = this.allFields), "boost" in e || (e.boost = 1), "usePipeline" in e || (e.usePipeline = !0), "wildcard" in e || (e.wildcard = D.Query.wildcard.NONE), e.wildcard & D.Query.wildcard.LEADING && e.term.charAt(0) != D.Query.wildcard && (e.term = "*" + e.term), e.wildcard & D.Query.wildcard.TRAILING && e.term.slice(-1) != D.Query.wildcard && (e.term = e.term + "*"), "presence" in e || (e.presence = D.Query.presence.OPTIONAL), this.clauses.push(e), this + }, D.Query.prototype.isNegated = function() { + for (var e = 0; e < this.clauses.length; e++) + if (this.clauses[e].presence != D.Query.presence.PROHIBITED) return !1; + return !0 + }, D.Query.prototype.term = function(e, t) { + if (Array.isArray(e)) return e.forEach(function(e) { + this.term(e, D.utils.clone(t)) + }, this), this; + var n = t || {}; + return n.term = e.toString(), this.clause(n), this + }, D.QueryParseError = function(e, t, n) { + this.name = "QueryParseError", this.message = e, this.start = t, this.end = n + }, D.QueryParseError.prototype = new Error, D.QueryLexer = function(e) { + this.lexemes = [], this.str = e, this.length = e.length, this.pos = 0, this.start = 0, this.escapeCharPositions = [] + }, D.QueryLexer.prototype.run = function() { + for (var e = D.QueryLexer.lexText; e;) e = e(this) + }, D.QueryLexer.prototype.sliceString = function() { + for (var e = [], t = this.start, n = this.pos, r = 0; r < this.escapeCharPositions.length; r++) n = this.escapeCharPositions[r], e.push(this.str.slice(t, n)), t = n + 1; + return e.push(this.str.slice(t, this.pos)), this.escapeCharPositions.length = 0, e.join("") + }, D.QueryLexer.prototype.emit = function(e) { + this.lexemes.push({ + type: e, + str: this.sliceString(), + start: this.start, + end: this.pos + }), this.start = this.pos + }, D.QueryLexer.prototype.escapeCharacter = function() { + this.escapeCharPositions.push(this.pos - 1), this.pos += 1 + }, D.QueryLexer.prototype.next = function() { + if (this.pos >= this.length) return D.QueryLexer.EOS; + var e = this.str.charAt(this.pos); + return this.pos += 1, e + }, D.QueryLexer.prototype.width = function() { + return this.pos - this.start + }, D.QueryLexer.prototype.ignore = function() { + this.start == this.pos && (this.pos += 1), this.start = this.pos + }, D.QueryLexer.prototype.backup = function() { + this.pos -= 1 + }, D.QueryLexer.prototype.acceptDigitRun = function() { + for (var e, t; 47 < (t = (e = this.next()).charCodeAt(0)) && t < 58;); + e != D.QueryLexer.EOS && this.backup() + }, D.QueryLexer.prototype.more = function() { + return this.pos < this.length + }, D.QueryLexer.EOS = "EOS", D.QueryLexer.FIELD = "FIELD", D.QueryLexer.TERM = "TERM", D.QueryLexer.EDIT_DISTANCE = "EDIT_DISTANCE", D.QueryLexer.BOOST = "BOOST", D.QueryLexer.PRESENCE = "PRESENCE", D.QueryLexer.lexField = function(e) { + return e.backup(), e.emit(D.QueryLexer.FIELD), e.ignore(), D.QueryLexer.lexText + }, D.QueryLexer.lexTerm = function(e) { + if (1 < e.width() && (e.backup(), e.emit(D.QueryLexer.TERM)), e.ignore(), e.more()) return D.QueryLexer.lexText + }, D.QueryLexer.lexEditDistance = function(e) { + return e.ignore(), e.acceptDigitRun(), e.emit(D.QueryLexer.EDIT_DISTANCE), D.QueryLexer.lexText + }, D.QueryLexer.lexBoost = function(e) { + return e.ignore(), e.acceptDigitRun(), e.emit(D.QueryLexer.BOOST), D.QueryLexer.lexText + }, D.QueryLexer.lexEOS = function(e) { + 0 < e.width() && e.emit(D.QueryLexer.TERM) + }, D.QueryLexer.termSeparator = D.tokenizer.separator, D.QueryLexer.lexText = function(e) { + for (;;) { + var t = e.next(); + if (t == D.QueryLexer.EOS) return D.QueryLexer.lexEOS; + if (92 != t.charCodeAt(0)) { + if (":" == t) return D.QueryLexer.lexField; + if ("~" == t) return e.backup(), 0 < e.width() && e.emit(D.QueryLexer.TERM), D.QueryLexer.lexEditDistance; + if ("^" == t) return e.backup(), 0 < e.width() && e.emit(D.QueryLexer.TERM), D.QueryLexer.lexBoost; + if ("+" == t && 1 === e.width()) return e.emit(D.QueryLexer.PRESENCE), D.QueryLexer.lexText; + if ("-" == t && 1 === e.width()) return e.emit(D.QueryLexer.PRESENCE), D.QueryLexer.lexText; + if (t.match(D.QueryLexer.termSeparator)) return D.QueryLexer.lexTerm + } else e.escapeCharacter() + } + }, D.QueryParser = function(e, t) { + this.lexer = new D.QueryLexer(e), this.query = t, this.currentClause = {}, this.lexemeIdx = 0 + }, D.QueryParser.prototype.parse = function() { + this.lexer.run(), this.lexemes = this.lexer.lexemes; + for (var e = D.QueryParser.parseClause; e;) e = e(this); + return this.query + }, D.QueryParser.prototype.peekLexeme = function() { + return this.lexemes[this.lexemeIdx] + }, D.QueryParser.prototype.consumeLexeme = function() { + var e = this.peekLexeme(); + return this.lexemeIdx += 1, e + }, D.QueryParser.prototype.nextClause = function() { + var e = this.currentClause; + this.query.clause(e), this.currentClause = {} + }, D.QueryParser.parseClause = function(e) { + var t = e.peekLexeme(); + if (null != t) switch (t.type) { + case D.QueryLexer.PRESENCE: + return D.QueryParser.parsePresence; + case D.QueryLexer.FIELD: + return D.QueryParser.parseField; + case D.QueryLexer.TERM: + return D.QueryParser.parseTerm; + default: + var n = "expected either a field or a term, found " + t.type; + throw 1 <= t.str.length && (n += " with value '" + t.str + "'"), new D.QueryParseError(n, t.start, t.end) + } + }, D.QueryParser.parsePresence = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + switch (t.str) { + case "-": + e.currentClause.presence = D.Query.presence.PROHIBITED; + break; + case "+": + e.currentClause.presence = D.Query.presence.REQUIRED; + break; + default: + var n = "unrecognised presence operator'" + t.str + "'"; + throw new D.QueryParseError(n, t.start, t.end) + } + var r = e.peekLexeme(); + if (null == r) { + n = "expecting term or field, found nothing"; + throw new D.QueryParseError(n, t.start, t.end) + } + switch (r.type) { + case D.QueryLexer.FIELD: + return D.QueryParser.parseField; + case D.QueryLexer.TERM: + return D.QueryParser.parseTerm; + default: + n = "expecting term or field, found '" + r.type + "'"; + throw new D.QueryParseError(n, r.start, r.end) + } + } + }, D.QueryParser.parseField = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + if (-1 == e.query.allFields.indexOf(t.str)) { + var n = e.query.allFields.map(function(e) { + return "'" + e + "'" + }).join(", "), + r = "unrecognised field '" + t.str + "', possible fields: " + n; + throw new D.QueryParseError(r, t.start, t.end) + } + e.currentClause.fields = [t.str]; + var i = e.peekLexeme(); + if (null == i) { + r = "expecting term, found nothing"; + throw new D.QueryParseError(r, t.start, t.end) + } + switch (i.type) { + case D.QueryLexer.TERM: + return D.QueryParser.parseTerm; + default: + r = "expecting term, found '" + i.type + "'"; + throw new D.QueryParseError(r, i.start, i.end) + } + } + }, D.QueryParser.parseTerm = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + e.currentClause.term = t.str.toLowerCase(), -1 != t.str.indexOf("*") && (e.currentClause.usePipeline = !1); + var n = e.peekLexeme(); + if (null != n) switch (n.type) { + case D.QueryLexer.TERM: + return e.nextClause(), D.QueryParser.parseTerm; + case D.QueryLexer.FIELD: + return e.nextClause(), D.QueryParser.parseField; + case D.QueryLexer.EDIT_DISTANCE: + return D.QueryParser.parseEditDistance; + case D.QueryLexer.BOOST: + return D.QueryParser.parseBoost; + case D.QueryLexer.PRESENCE: + return e.nextClause(), D.QueryParser.parsePresence; + default: + var r = "Unexpected lexeme type '" + n.type + "'"; + throw new D.QueryParseError(r, n.start, n.end) + } else e.nextClause() + } + }, D.QueryParser.parseEditDistance = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + var n = parseInt(t.str, 10); + if (isNaN(n)) { + var r = "edit distance must be numeric"; + throw new D.QueryParseError(r, t.start, t.end) + } + e.currentClause.editDistance = n; + var i = e.peekLexeme(); + if (null != i) switch (i.type) { + case D.QueryLexer.TERM: + return e.nextClause(), D.QueryParser.parseTerm; + case D.QueryLexer.FIELD: + return e.nextClause(), D.QueryParser.parseField; + case D.QueryLexer.EDIT_DISTANCE: + return D.QueryParser.parseEditDistance; + case D.QueryLexer.BOOST: + return D.QueryParser.parseBoost; + case D.QueryLexer.PRESENCE: + return e.nextClause(), D.QueryParser.parsePresence; + default: + r = "Unexpected lexeme type '" + i.type + "'"; + throw new D.QueryParseError(r, i.start, i.end) + } else e.nextClause() + } + }, D.QueryParser.parseBoost = function(e) { + var t = e.consumeLexeme(); + if (null != t) { + var n = parseInt(t.str, 10); + if (isNaN(n)) { + var r = "boost must be numeric"; + throw new D.QueryParseError(r, t.start, t.end) + } + e.currentClause.boost = n; + var i = e.peekLexeme(); + if (null != i) switch (i.type) { + case D.QueryLexer.TERM: + return e.nextClause(), D.QueryParser.parseTerm; + case D.QueryLexer.FIELD: + return e.nextClause(), D.QueryParser.parseField; + case D.QueryLexer.EDIT_DISTANCE: + return D.QueryParser.parseEditDistance; + case D.QueryLexer.BOOST: + return D.QueryParser.parseBoost; + case D.QueryLexer.PRESENCE: + return e.nextClause(), D.QueryParser.parsePresence; + default: + r = "Unexpected lexeme type '" + i.type + "'"; + throw new D.QueryParseError(r, i.start, i.end) + } else e.nextClause() + } + }, void 0 === (c = "function" == typeof(s = function() { + return D + }) ? s.call(o, a, o, i) : s) || (i.exports = c) + }() +}])); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.da.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.da.js new file mode 100644 index 0000000000..34910dfe5f --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.da.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,m,i;e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=(r=e.stemmerSupport.Among,m=e.stemmerSupport.SnowballProgram,i=new function(){var i,t,n,s=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],o=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],a=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],u=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],c=new m;function l(){var e,r=c.limit-c.cursor;c.cursor>=t&&(e=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,c.find_among_b(o,4)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e)}this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var e,r=c.cursor;return function(){var e,r=c.cursor+3;if(t=c.limit,0<=r&&r<=c.limit){for(i=r;;){if(e=c.cursor,c.in_grouping(d,97,248)){c.cursor=e;break}if((c.cursor=e)>=c.limit)return;c.cursor++}for(;!c.out_grouping(d,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(t=c.cursor)=t&&(r=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,e=c.find_among_b(s,32),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:c.in_grouping_b(u,97,229)&&c.slice_del()}}(),c.cursor=c.limit,l(),c.cursor=c.limit,function(){var e,r,i,n=c.limit-c.cursor;if(c.ket=c.cursor,c.eq_s_b(2,"st")&&(c.bra=c.cursor,c.eq_s_b(2,"ig")&&c.slice_del()),c.cursor=c.limit-n,c.cursor>=t&&(r=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,e=c.find_among_b(a,5),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del(),i=c.limit-c.cursor,l(),c.cursor=c.limit-i;break;case 2:c.slice_from("løs")}}(),c.cursor=c.limit,c.cursor>=t&&(e=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,c.out_grouping_b(d,97,248)?(c.bra=c.cursor,n=c.slice_to(n),c.limit_backward=e,c.eq_v_b(n)&&c.slice_del()):c.limit_backward=e),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.de.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.de.js new file mode 100644 index 0000000000..1529892c82 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.de.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var _,p,r;e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=(_=e.stemmerSupport.Among,p=e.stemmerSupport.SnowballProgram,r=new function(){var r,n,i,s=[new _("",-1,6),new _("U",0,2),new _("Y",0,1),new _("ä",0,3),new _("ö",0,4),new _("ü",0,5)],o=[new _("e",-1,2),new _("em",-1,1),new _("en",-1,2),new _("ern",-1,1),new _("er",-1,1),new _("s",-1,3),new _("es",5,2)],c=[new _("en",-1,1),new _("er",-1,1),new _("st",-1,2),new _("est",2,1)],u=[new _("ig",-1,1),new _("lich",-1,1)],a=[new _("end",-1,1),new _("ig",-1,2),new _("ung",-1,1),new _("lich",-1,3),new _("isch",-1,2),new _("ik",-1,2),new _("heit",-1,3),new _("keit",-1,4)],t=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],d=[117,30,5],l=[117,30,4],m=new p;function h(e,r,n){return!(!m.eq_s(1,e)||(m.ket=m.cursor,!m.in_grouping(t,97,252)))&&(m.slice_from(r),m.cursor=n,!0)}function w(){for(;!m.in_grouping(t,97,252);){if(m.cursor>=m.limit)return!0;m.cursor++}for(;!m.out_grouping(t,97,252);){if(m.cursor>=m.limit)return!0;m.cursor++}return!1}function f(){return i<=m.cursor}function b(){return n<=m.cursor}this.setCurrent=function(e){m.setCurrent(e)},this.getCurrent=function(){return m.getCurrent()},this.stem=function(){var e=m.cursor;return function(){for(var e,r,n,i,s=m.cursor;;)if(e=m.cursor,m.bra=e,m.eq_s(1,"ß"))m.ket=m.cursor,m.slice_from("ss");else{if(e>=m.limit)break;m.cursor=e+1}for(m.cursor=s;;)for(r=m.cursor;;){if(n=m.cursor,m.in_grouping(t,97,252)){if(i=m.cursor,m.bra=i,h("u","U",n))break;if(m.cursor=i,h("y","Y",n))break}if(n>=m.limit)return m.cursor=r;m.cursor=n+1}}(),m.cursor=e,function(){i=m.limit,n=i;var e=m.cursor+3;0<=e&&e<=m.limit&&(r=e,w()||((i=m.cursor)=m.limit)return;m.cursor++}}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.du.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.du.js new file mode 100644 index 0000000000..52632004a2 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.du.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var v,q,r;console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=(v=e.stemmerSupport.Among,q=e.stemmerSupport.SnowballProgram,r=new function(){var r,i,u,o=[new v("",-1,6),new v("á",0,1),new v("ä",0,1),new v("é",0,2),new v("ë",0,2),new v("í",0,3),new v("ï",0,3),new v("ó",0,4),new v("ö",0,4),new v("ú",0,5),new v("ü",0,5)],n=[new v("",-1,3),new v("I",0,2),new v("Y",0,1)],t=[new v("dd",-1,-1),new v("kk",-1,-1),new v("tt",-1,-1)],c=[new v("ene",-1,2),new v("se",-1,3),new v("en",-1,2),new v("heden",2,1),new v("s",-1,3)],a=[new v("end",-1,1),new v("ig",-1,2),new v("ing",-1,1),new v("lijk",-1,3),new v("baar",-1,4),new v("bar",-1,5)],l=[new v("aa",-1,-1),new v("ee",-1,-1),new v("oo",-1,-1),new v("uu",-1,-1)],m=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],d=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],f=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],_=new q;function s(e){return(_.cursor=e)>=_.limit||(_.cursor++,!1)}function w(){for(;!_.in_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}for(;!_.out_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}return!1}function b(){return i<=_.cursor}function p(){return r<=_.cursor}function g(){var e=_.limit-_.cursor;_.find_among_b(t,3)&&(_.cursor=_.limit-e,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del()))}function h(){var e;u=!1,_.ket=_.cursor,_.eq_s_b(1,"e")&&(_.bra=_.cursor,b()&&(e=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-e,_.slice_del(),u=!0,g())))}function k(){var e;b()&&(e=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-e,_.eq_s_b(3,"gem")||(_.cursor=_.limit-e,_.slice_del(),g())))}this.setCurrent=function(e){_.setCurrent(e)},this.getCurrent=function(){return _.getCurrent()},this.stem=function(){var e=_.cursor;return function(){for(var e,r,i,n=_.cursor;;){if(_.bra=_.cursor,e=_.find_among(o,11))switch(_.ket=_.cursor,e){case 1:_.slice_from("a");continue;case 2:_.slice_from("e");continue;case 3:_.slice_from("i");continue;case 4:_.slice_from("o");continue;case 5:_.slice_from("u");continue;case 6:if(_.cursor>=_.limit)break;_.cursor++;continue}break}for(_.cursor=n,_.bra=n,_.eq_s(1,"y")?(_.ket=_.cursor,_.slice_from("Y")):_.cursor=n;;)if(r=_.cursor,_.in_grouping(m,97,232)){if(i=_.cursor,_.bra=i,_.eq_s(1,"i"))_.ket=_.cursor,_.in_grouping(m,97,232)&&(_.slice_from("I"),_.cursor=r);else if(_.cursor=i,_.eq_s(1,"y"))_.ket=_.cursor,_.slice_from("Y"),_.cursor=r;else if(s(r))break}else if(s(r))break}(),_.cursor=e,i=_.limit,r=i,w()||((i=_.cursor)<3&&(i=3),w()||(r=_.cursor)),_.limit_backward=e,_.cursor=_.limit,function(){var e,r,i,n,o,t,s=_.limit-_.cursor;if(_.ket=_.cursor,e=_.find_among_b(c,5))switch(_.bra=_.cursor,e){case 1:b()&&_.slice_from("heid");break;case 2:k();break;case 3:b()&&_.out_grouping_b(f,97,232)&&_.slice_del()}if(_.cursor=_.limit-s,h(),_.cursor=_.limit-s,_.ket=_.cursor,_.eq_s_b(4,"heid")&&(_.bra=_.cursor,p()&&(r=_.limit-_.cursor,_.eq_s_b(1,"c")||(_.cursor=_.limit-r,_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"en")&&(_.bra=_.cursor,k())))),_.cursor=_.limit-s,_.ket=_.cursor,e=_.find_among_b(a,6))switch(_.bra=_.cursor,e){case 1:if(p()){if(_.slice_del(),i=_.limit-_.cursor,_.ket=_.cursor,_.eq_s_b(2,"ig")&&(_.bra=_.cursor,p()&&(n=_.limit-_.cursor,!_.eq_s_b(1,"e")))){_.cursor=_.limit-n,_.slice_del();break}_.cursor=_.limit-i,g()}break;case 2:p()&&(o=_.limit-_.cursor,_.eq_s_b(1,"e")||(_.cursor=_.limit-o,_.slice_del()));break;case 3:p()&&(_.slice_del(),h());break;case 4:p()&&_.slice_del();break;case 5:p()&&u&&_.slice_del()}_.cursor=_.limit-s,_.out_grouping_b(d,73,232)&&(t=_.limit-_.cursor,_.find_among_b(l,4)&&_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-t,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del())))}(),_.cursor=_.limit_backward,function(){for(var e;;)if(_.bra=_.cursor,e=_.find_among(n,3))switch(_.ket=_.cursor,e){case 1:_.slice_from("y");break;case 2:_.slice_from("i");break;case 3:if(_.cursor>=_.limit)return;_.cursor++}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.es.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.es.js new file mode 100644 index 0000000000..9de6c09cb4 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.es.js @@ -0,0 +1 @@ +!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var C,P,s;e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.es.stemmer))},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=(C=e.stemmerSupport.Among,P=e.stemmerSupport.SnowballProgram,s=new function(){var r,n,i,a=[new C("",-1,6),new C("á",0,1),new C("é",0,2),new C("í",0,3),new C("ó",0,4),new C("ú",0,5)],t=[new C("la",-1,-1),new C("sela",0,-1),new C("le",-1,-1),new C("me",-1,-1),new C("se",-1,-1),new C("lo",-1,-1),new C("selo",5,-1),new C("las",-1,-1),new C("selas",7,-1),new C("les",-1,-1),new C("los",-1,-1),new C("selos",10,-1),new C("nos",-1,-1)],o=[new C("ando",-1,6),new C("iendo",-1,6),new C("yendo",-1,7),new C("ándo",-1,2),new C("iéndo",-1,1),new C("ar",-1,6),new C("er",-1,6),new C("ir",-1,6),new C("ár",-1,3),new C("ér",-1,4),new C("ír",-1,5)],s=[new C("ic",-1,-1),new C("ad",-1,-1),new C("os",-1,-1),new C("iv",-1,1)],u=[new C("able",-1,1),new C("ible",-1,1),new C("ante",-1,1)],w=[new C("ic",-1,1),new C("abil",-1,1),new C("iv",-1,1)],c=[new C("ica",-1,1),new C("ancia",-1,2),new C("encia",-1,5),new C("adora",-1,2),new C("osa",-1,1),new C("ista",-1,1),new C("iva",-1,9),new C("anza",-1,1),new C("logía",-1,3),new C("idad",-1,8),new C("able",-1,1),new C("ible",-1,1),new C("ante",-1,2),new C("mente",-1,7),new C("amente",13,6),new C("ación",-1,2),new C("ución",-1,4),new C("ico",-1,1),new C("ismo",-1,1),new C("oso",-1,1),new C("amiento",-1,1),new C("imiento",-1,1),new C("ivo",-1,9),new C("ador",-1,2),new C("icas",-1,1),new C("ancias",-1,2),new C("encias",-1,5),new C("adoras",-1,2),new C("osas",-1,1),new C("istas",-1,1),new C("ivas",-1,9),new C("anzas",-1,1),new C("logías",-1,3),new C("idades",-1,8),new C("ables",-1,1),new C("ibles",-1,1),new C("aciones",-1,2),new C("uciones",-1,4),new C("adores",-1,2),new C("antes",-1,2),new C("icos",-1,1),new C("ismos",-1,1),new C("osos",-1,1),new C("amientos",-1,1),new C("imientos",-1,1),new C("ivos",-1,9)],m=[new C("ya",-1,1),new C("ye",-1,1),new C("yan",-1,1),new C("yen",-1,1),new C("yeron",-1,1),new C("yendo",-1,1),new C("yo",-1,1),new C("yas",-1,1),new C("yes",-1,1),new C("yais",-1,1),new C("yamos",-1,1),new C("yó",-1,1)],l=[new C("aba",-1,2),new C("ada",-1,2),new C("ida",-1,2),new C("ara",-1,2),new C("iera",-1,2),new C("ía",-1,2),new C("aría",5,2),new C("ería",5,2),new C("iría",5,2),new C("ad",-1,2),new C("ed",-1,2),new C("id",-1,2),new C("ase",-1,2),new C("iese",-1,2),new C("aste",-1,2),new C("iste",-1,2),new C("an",-1,2),new C("aban",16,2),new C("aran",16,2),new C("ieran",16,2),new C("ían",16,2),new C("arían",20,2),new C("erían",20,2),new C("irían",20,2),new C("en",-1,1),new C("asen",24,2),new C("iesen",24,2),new C("aron",-1,2),new C("ieron",-1,2),new C("arán",-1,2),new C("erán",-1,2),new C("irán",-1,2),new C("ado",-1,2),new C("ido",-1,2),new C("ando",-1,2),new C("iendo",-1,2),new C("ar",-1,2),new C("er",-1,2),new C("ir",-1,2),new C("as",-1,2),new C("abas",39,2),new C("adas",39,2),new C("idas",39,2),new C("aras",39,2),new C("ieras",39,2),new C("ías",39,2),new C("arías",45,2),new C("erías",45,2),new C("irías",45,2),new C("es",-1,1),new C("ases",49,2),new C("ieses",49,2),new C("abais",-1,2),new C("arais",-1,2),new C("ierais",-1,2),new C("íais",-1,2),new C("aríais",55,2),new C("eríais",55,2),new C("iríais",55,2),new C("aseis",-1,2),new C("ieseis",-1,2),new C("asteis",-1,2),new C("isteis",-1,2),new C("áis",-1,2),new C("éis",-1,1),new C("aréis",64,2),new C("eréis",64,2),new C("iréis",64,2),new C("ados",-1,2),new C("idos",-1,2),new C("amos",-1,2),new C("ábamos",70,2),new C("áramos",70,2),new C("iéramos",70,2),new C("íamos",70,2),new C("aríamos",74,2),new C("eríamos",74,2),new C("iríamos",74,2),new C("emos",-1,1),new C("aremos",78,2),new C("eremos",78,2),new C("iremos",78,2),new C("ásemos",78,2),new C("iésemos",78,2),new C("imos",-1,2),new C("arás",-1,2),new C("erás",-1,2),new C("irás",-1,2),new C("ís",-1,2),new C("ará",-1,2),new C("erá",-1,2),new C("irá",-1,2),new C("aré",-1,2),new C("eré",-1,2),new C("iré",-1,2),new C("ió",-1,2)],d=[new C("a",-1,1),new C("e",-1,2),new C("o",-1,1),new C("os",-1,1),new C("á",-1,1),new C("é",-1,2),new C("í",-1,1),new C("ó",-1,1)],b=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],f=new P;function _(){if(f.out_grouping(b,97,252)){for(;!f.in_grouping(b,97,252);){if(f.cursor>=f.limit)return!0;f.cursor++}return!1}return!0}function h(){var e,s=f.cursor;if(function(){if(f.in_grouping(b,97,252)){var e=f.cursor;if(_()){if(f.cursor=e,!f.in_grouping(b,97,252))return!0;for(;!f.out_grouping(b,97,252);){if(f.cursor>=f.limit)return!0;f.cursor++}}return!1}return!0}()){if(f.cursor=s,!f.out_grouping(b,97,252))return;if(e=f.cursor,_()){if(f.cursor=e,!f.in_grouping(b,97,252)||f.cursor>=f.limit)return;f.cursor++}}i=f.cursor}function v(){for(;!f.in_grouping(b,97,252);){if(f.cursor>=f.limit)return!1;f.cursor++}for(;!f.out_grouping(b,97,252);){if(f.cursor>=f.limit)return!1;f.cursor++}return!0}function p(){return i<=f.cursor}function g(){return r<=f.cursor}function k(e,s){if(!g())return!0;f.slice_del(),f.ket=f.cursor;var r=f.find_among_b(e,s);return r&&(f.bra=f.cursor,1==r&&g()&&f.slice_del()),!1}function y(e){return!g()||(f.slice_del(),f.ket=f.cursor,f.eq_s_b(2,e)&&(f.bra=f.cursor,g()&&f.slice_del()),!1)}function q(){var e;if(f.ket=f.cursor,e=f.find_among_b(c,46)){switch(f.bra=f.cursor,e){case 1:if(!g())return!1;f.slice_del();break;case 2:if(y("ic"))return!1;break;case 3:if(!g())return!1;f.slice_from("log");break;case 4:if(!g())return!1;f.slice_from("u");break;case 5:if(!g())return!1;f.slice_from("ente");break;case 6:if(!(n<=f.cursor))return!1;f.slice_del(),f.ket=f.cursor,(e=f.find_among_b(s,4))&&(f.bra=f.cursor,g()&&(f.slice_del(),1==e&&(f.ket=f.cursor,f.eq_s_b(2,"at")&&(f.bra=f.cursor,g()&&f.slice_del()))));break;case 7:if(k(u,3))return!1;break;case 8:if(k(w,3))return!1;break;case 9:if(y("at"))return!1}return!0}return!1}this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var e,s=f.cursor;return e=f.cursor,i=f.limit,r=n=i,h(),f.cursor=e,v()&&(n=f.cursor,v()&&(r=f.cursor)),f.limit_backward=s,f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,f.find_among_b(t,13)&&(f.bra=f.cursor,(e=f.find_among_b(o,11))&&p()))switch(e){case 1:f.bra=f.cursor,f.slice_from("iendo");break;case 2:f.bra=f.cursor,f.slice_from("ando");break;case 3:f.bra=f.cursor,f.slice_from("ar");break;case 4:f.bra=f.cursor,f.slice_from("er");break;case 5:f.bra=f.cursor,f.slice_from("ir");break;case 6:f.slice_del();break;case 7:f.eq_s_b(1,"u")&&f.slice_del()}}(),f.cursor=f.limit,q()||(f.cursor=f.limit,function(){var e,s;if(f.cursor>=i&&(s=f.limit_backward,f.limit_backward=i,f.ket=f.cursor,e=f.find_among_b(m,12),f.limit_backward=s,e)){if(f.bra=f.cursor,1==e){if(!f.eq_s_b(1,"u"))return!1;f.slice_del()}return!0}return!1}()||(f.cursor=f.limit,function(){var e,s,r,n;if(f.cursor>=i&&(s=f.limit_backward,f.limit_backward=i,f.ket=f.cursor,e=f.find_among_b(l,96),f.limit_backward=s,e))switch(f.bra=f.cursor,e){case 1:r=f.limit-f.cursor,f.eq_s_b(1,"u")?(n=f.limit-f.cursor,f.eq_s_b(1,"g")?f.cursor=f.limit-n:f.cursor=f.limit-r):f.cursor=f.limit-r,f.bra=f.cursor;case 2:f.slice_del()}}())),f.cursor=f.limit,function(){var e,s;if(f.ket=f.cursor,e=f.find_among_b(d,8))switch(f.bra=f.cursor,e){case 1:p()&&f.slice_del();break;case 2:p()&&(f.slice_del(),f.ket=f.cursor,f.eq_s_b(1,"u")&&(f.bra=f.cursor,s=f.limit-f.cursor,f.eq_s_b(1,"g")&&(f.cursor=f.limit-s,p()&&f.slice_del())))}}(),f.cursor=f.limit_backward,function(){for(var e;;){if(f.bra=f.cursor,e=f.find_among(a,6))switch(f.ket=f.cursor,e){case 1:f.slice_from("a");continue;case 2:f.slice_from("e");continue;case 3:f.slice_from("i");continue;case 4:f.slice_from("o");continue;case 5:f.slice_from("u");continue;case 6:if(f.cursor>=f.limit)break;f.cursor++;continue}break}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return s.setCurrent(e),s.stem(),s.getCurrent()}):(s.setCurrent(e),s.stem(),s.getCurrent())}),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=e.generateStopWordFilter("a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" ")),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.fi.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.fi.js new file mode 100644 index 0000000000..2f9bf5aebd --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.fi.js @@ -0,0 +1 @@ +!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var v,C,e;i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(i.fi.stemmer))},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=(v=i.stemmerSupport.Among,C=i.stemmerSupport.SnowballProgram,e=new function(){var n,t,l,o,r=[new v("pa",-1,1),new v("sti",-1,2),new v("kaan",-1,1),new v("han",-1,1),new v("kin",-1,1),new v("hän",-1,1),new v("kään",-1,1),new v("ko",-1,1),new v("pä",-1,1),new v("kö",-1,1)],s=[new v("lla",-1,-1),new v("na",-1,-1),new v("ssa",-1,-1),new v("ta",-1,-1),new v("lta",3,-1),new v("sta",3,-1)],a=[new v("llä",-1,-1),new v("nä",-1,-1),new v("ssä",-1,-1),new v("tä",-1,-1),new v("ltä",3,-1),new v("stä",3,-1)],u=[new v("lle",-1,-1),new v("ine",-1,-1)],c=[new v("nsa",-1,3),new v("mme",-1,3),new v("nne",-1,3),new v("ni",-1,2),new v("si",-1,1),new v("an",-1,4),new v("en",-1,6),new v("än",-1,5),new v("nsä",-1,3)],i=[new v("aa",-1,-1),new v("ee",-1,-1),new v("ii",-1,-1),new v("oo",-1,-1),new v("uu",-1,-1),new v("ää",-1,-1),new v("öö",-1,-1)],m=[new v("a",-1,8),new v("lla",0,-1),new v("na",0,-1),new v("ssa",0,-1),new v("ta",0,-1),new v("lta",4,-1),new v("sta",4,-1),new v("tta",4,9),new v("lle",-1,-1),new v("ine",-1,-1),new v("ksi",-1,-1),new v("n",-1,7),new v("han",11,1),new v("den",11,-1,q),new v("seen",11,-1,j),new v("hen",11,2),new v("tten",11,-1,q),new v("hin",11,3),new v("siin",11,-1,q),new v("hon",11,4),new v("hän",11,5),new v("hön",11,6),new v("ä",-1,8),new v("llä",22,-1),new v("nä",22,-1),new v("ssä",22,-1),new v("tä",22,-1),new v("ltä",26,-1),new v("stä",26,-1),new v("ttä",26,9)],w=[new v("eja",-1,-1),new v("mma",-1,1),new v("imma",1,-1),new v("mpa",-1,1),new v("impa",3,-1),new v("mmi",-1,1),new v("immi",5,-1),new v("mpi",-1,1),new v("impi",7,-1),new v("ejä",-1,-1),new v("mmä",-1,1),new v("immä",10,-1),new v("mpä",-1,1),new v("impä",12,-1)],_=[new v("i",-1,-1),new v("j",-1,-1)],k=[new v("mma",-1,1),new v("imma",0,-1)],b=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],e=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],f=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],h=new C;function p(){for(var i;i=h.cursor,!h.in_grouping(d,97,246);){if((h.cursor=i)>=h.limit)return!0;h.cursor++}for(h.cursor=i;!h.out_grouping(d,97,246);){if(h.cursor>=h.limit)return!0;h.cursor++}return!1}function g(){var i,e;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(r,10)){switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:if(!h.in_grouping_b(f,97,246))return;break;case 2:if(!(l<=h.cursor))return}h.slice_del()}else h.limit_backward=e}function j(){return h.find_among_b(i,7)}function q(){return h.eq_s_b(1,"i")&&h.in_grouping_b(e,97,246)}this.setCurrent=function(i){h.setCurrent(i)},this.getCurrent=function(){return h.getCurrent()},this.stem=function(){var i,e=h.cursor;return o=h.limit,l=o,p()||(o=h.cursor,p()||(l=h.cursor)),n=!1,h.limit_backward=e,h.cursor=h.limit,g(),h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(c,9))switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:r=h.limit-h.cursor,h.eq_s_b(1,"k")||(h.cursor=h.limit-r,h.slice_del());break;case 2:h.slice_del(),h.ket=h.cursor,h.eq_s_b(3,"kse")&&(h.bra=h.cursor,h.slice_from("ksi"));break;case 3:h.slice_del();break;case 4:h.find_among_b(s,6)&&h.slice_del();break;case 5:h.find_among_b(a,6)&&h.slice_del();break;case 6:h.find_among_b(u,2)&&h.slice_del()}else h.limit_backward=e}(),h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(m,30)){switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:if(!h.eq_s_b(1,"a"))return;break;case 2:case 9:if(!h.eq_s_b(1,"e"))return;break;case 3:if(!h.eq_s_b(1,"i"))return;break;case 4:if(!h.eq_s_b(1,"o"))return;break;case 5:if(!h.eq_s_b(1,"ä"))return;break;case 6:if(!h.eq_s_b(1,"ö"))return;break;case 7:if(r=h.limit-h.cursor,!j()&&(h.cursor=h.limit-r,!h.eq_s_b(2,"ie"))){h.cursor=h.limit-r;break}if(h.cursor=h.limit-r,h.cursor<=h.limit_backward){h.cursor=h.limit-r;break}h.cursor--,h.bra=h.cursor;break;case 8:if(!h.in_grouping_b(d,97,246)||!h.out_grouping_b(d,97,246))return}h.slice_del(),n=!0}else h.limit_backward=e}(),h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=l)if(e=h.limit_backward,h.limit_backward=l,h.ket=h.cursor,i=h.find_among_b(w,14)){if(h.bra=h.cursor,h.limit_backward=e,1==i){if(r=h.limit-h.cursor,h.eq_s_b(2,"po"))return;h.cursor=h.limit-r}h.slice_del()}else h.limit_backward=e}(),h.cursor=h.limit,h.cursor=(n?h.cursor>=o&&(i=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,h.find_among_b(_,2)?(h.bra=h.cursor,h.limit_backward=i,h.slice_del()):h.limit_backward=i):(h.cursor=h.limit,function(){var i,e,r,n,t,s;if(h.cursor>=o){if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,h.eq_s_b(1,"t")&&(h.bra=h.cursor,r=h.limit-h.cursor,h.in_grouping_b(d,97,246)&&(h.cursor=h.limit-r,h.slice_del(),h.limit_backward=e,n=h.limit-h.cursor,h.cursor>=l&&(h.cursor=l,t=h.limit_backward,h.limit_backward=h.cursor,h.cursor=h.limit-n,h.ket=h.cursor,i=h.find_among_b(k,2))))){if(h.bra=h.cursor,h.limit_backward=t,1==i){if(s=h.limit-h.cursor,h.eq_s_b(2,"po"))return;h.cursor=h.limit-s}return h.slice_del()}h.limit_backward=e}}()),h.limit),function(){var i,e,r,n;if(h.cursor>=o){for(i=h.limit_backward,h.limit_backward=o,e=h.limit-h.cursor,j()&&(h.cursor=h.limit-e,h.ket=h.cursor,h.cursor>h.limit_backward&&(h.cursor--,h.bra=h.cursor,h.slice_del())),h.cursor=h.limit-e,h.ket=h.cursor,h.in_grouping_b(b,97,228)&&(h.bra=h.cursor,h.out_grouping_b(d,97,246)&&h.slice_del()),h.cursor=h.limit-e,h.ket=h.cursor,h.eq_s_b(1,"j")&&(h.bra=h.cursor,r=h.limit-h.cursor,h.eq_s_b(1,"o")?h.slice_del():(h.cursor=h.limit-r,h.eq_s_b(1,"u")&&h.slice_del())),h.cursor=h.limit-e,h.ket=h.cursor,h.eq_s_b(1,"o")&&(h.bra=h.cursor,h.eq_s_b(1,"j")&&h.slice_del()),h.cursor=h.limit-e,h.limit_backward=i;;){if(n=h.limit-h.cursor,h.out_grouping_b(d,97,246)){h.cursor=h.limit-n;break}if(h.cursor=h.limit-n,h.cursor<=h.limit_backward)return;h.cursor--}h.ket=h.cursor,h.cursor>h.limit_backward&&(h.cursor--,h.bra=h.cursor,t=h.slice_to(),h.eq_v_b(t)&&h.slice_del())}}(),!0}},function(i){return"function"==typeof i.update?i.update(function(i){return e.setCurrent(i),e.stem(),e.getCurrent()}):(e.setCurrent(i),e.stem(),e.getCurrent())}),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.fr.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.fr.js new file mode 100644 index 0000000000..078d0cab70 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.fr.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,y,s;e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=(r=e.stemmerSupport.Among,y=e.stemmerSupport.SnowballProgram,s=new function(){var s,i,t,n=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],u=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],o=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],c=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],a=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],l=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],w=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],f=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],m=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],_=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],b=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],d=new y;function k(e,r,s){return!(!d.eq_s(1,e)||(d.ket=d.cursor,!d.in_grouping(_,97,251)))&&(d.slice_from(r),d.cursor=s,!0)}function p(e,r,s){return!!d.eq_s(1,e)&&(d.ket=d.cursor,d.slice_from(r),d.cursor=s,!0)}function g(){for(;!d.in_grouping(_,97,251);){if(d.cursor>=d.limit)return!0;d.cursor++}for(;!d.out_grouping(_,97,251);){if(d.cursor>=d.limit)return!0;d.cursor++}return!1}function q(){return t<=d.cursor}function v(){return i<=d.cursor}function h(){return s<=d.cursor}function z(){if(!function(){var e,r;if(d.ket=d.cursor,e=d.find_among_b(a,43)){switch(d.bra=d.cursor,e){case 1:if(!h())return!1;d.slice_del();break;case 2:if(!h())return!1;d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"ic")&&(d.bra=d.cursor,h()?d.slice_del():d.slice_from("iqU"));break;case 3:if(!h())return!1;d.slice_from("log");break;case 4:if(!h())return!1;d.slice_from("u");break;case 5:if(!h())return!1;d.slice_from("ent");break;case 6:if(!q())return!1;if(d.slice_del(),d.ket=d.cursor,e=d.find_among_b(o,6))switch(d.bra=d.cursor,e){case 1:h()&&(d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,h()&&d.slice_del()));break;case 2:h()?d.slice_del():v()&&d.slice_from("eux");break;case 3:h()&&d.slice_del();break;case 4:q()&&d.slice_from("i")}break;case 7:if(!h())return!1;if(d.slice_del(),d.ket=d.cursor,e=d.find_among_b(c,3))switch(d.bra=d.cursor,e){case 1:h()?d.slice_del():d.slice_from("abl");break;case 2:h()?d.slice_del():d.slice_from("iqU");break;case 3:h()&&d.slice_del()}break;case 8:if(!h())return!1;if(d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,h()&&(d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"ic")))){d.bra=d.cursor,h()?d.slice_del():d.slice_from("iqU");break}break;case 9:d.slice_from("eau");break;case 10:if(!v())return!1;d.slice_from("al");break;case 11:if(h())d.slice_del();else{if(!v())return!1;d.slice_from("eux")}break;case 12:if(!v()||!d.out_grouping_b(_,97,251))return!1;d.slice_del();break;case 13:return q()&&d.slice_from("ant"),!1;case 14:return q()&&d.slice_from("ent"),!1;case 15:return r=d.limit-d.cursor,d.in_grouping_b(_,97,251)&&q()&&(d.cursor=d.limit-r,d.slice_del()),!1}return!0}return!1}()&&(d.cursor=d.limit,!function(){var e,r;if(d.cursor=t){if(s=d.limit_backward,d.limit_backward=t,d.ket=d.cursor,e=d.find_among_b(f,7))switch(d.bra=d.cursor,e){case 1:if(h()){if(i=d.limit-d.cursor,!d.eq_s_b(1,"s")&&(d.cursor=d.limit-i,!d.eq_s_b(1,"t")))break;d.slice_del()}break;case 2:d.slice_from("i");break;case 3:d.slice_del();break;case 4:d.eq_s_b(2,"gu")&&d.slice_del()}d.limit_backward=s}}();d.cursor=d.limit,d.ket=d.cursor,d.eq_s_b(1,"Y")?(d.bra=d.cursor,d.slice_from("i")):(d.cursor=d.limit,d.eq_s_b(1,"ç")&&(d.bra=d.cursor,d.slice_from("c")))}this.setCurrent=function(e){d.setCurrent(e)},this.getCurrent=function(){return d.getCurrent()},this.stem=function(){var e,r=d.cursor;return function(){for(var e,r;;){if(e=d.cursor,d.in_grouping(_,97,251)){if(d.bra=d.cursor,r=d.cursor,k("u","U",e))continue;if(d.cursor=r,k("i","I",e))continue;if(d.cursor=r,p("y","Y",e))continue}if(d.cursor=e,!k("y","Y",d.bra=e)){if(d.cursor=e,d.eq_s(1,"q")&&(d.bra=d.cursor,p("u","U",e)))continue;if((d.cursor=e)>=d.limit)return;d.cursor++}}}(),d.cursor=r,function(){var e=d.cursor;if(t=d.limit,s=i=t,d.in_grouping(_,97,251)&&d.in_grouping(_,97,251)&&d.cursor=d.limit){d.cursor=t;break}d.cursor++}while(!d.in_grouping(_,97,251))}t=d.cursor,d.cursor=e,g()||(i=d.cursor,g()||(s=d.cursor))}(),d.limit_backward=r,d.cursor=d.limit,z(),d.cursor=d.limit,e=d.limit-d.cursor,d.find_among_b(m,5)&&(d.cursor=d.limit-e,d.ket=d.cursor,d.cursor>d.limit_backward&&(d.cursor--,d.bra=d.cursor,d.slice_del())),d.cursor=d.limit,function(){for(var e,r=1;d.out_grouping_b(_,97,251);)r--;if(r<=0){if(d.ket=d.cursor,e=d.limit-d.cursor,!d.eq_s_b(1,"é")&&(d.cursor=d.limit-e,!d.eq_s_b(1,"è")))return;d.bra=d.cursor,d.slice_from("e")}}(),d.cursor=d.limit_backward,function(){for(var e,r;r=d.cursor,d.bra=r,e=d.find_among(u,4);)switch(d.ket=d.cursor,e){case 1:d.slice_from("i");break;case 2:d.slice_from("u");break;case 3:d.slice_from("y");break;case 4:if(d.cursor>=d.limit)return;d.cursor++}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return s.setCurrent(e),s.stem(),s.getCurrent()}):(s.setCurrent(e),s.stem(),s.getCurrent())}),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.hu.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.hu.js new file mode 100644 index 0000000000..56a4b0dc19 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.hu.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var p,_,n;e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=(p=e.stemmerSupport.Among,_=e.stemmerSupport.SnowballProgram,n=new function(){var r,i=[new p("cs",-1,-1),new p("dzs",-1,-1),new p("gy",-1,-1),new p("ly",-1,-1),new p("ny",-1,-1),new p("sz",-1,-1),new p("ty",-1,-1),new p("zs",-1,-1)],n=[new p("á",-1,1),new p("é",-1,2)],a=[new p("bb",-1,-1),new p("cc",-1,-1),new p("dd",-1,-1),new p("ff",-1,-1),new p("gg",-1,-1),new p("jj",-1,-1),new p("kk",-1,-1),new p("ll",-1,-1),new p("mm",-1,-1),new p("nn",-1,-1),new p("pp",-1,-1),new p("rr",-1,-1),new p("ccs",-1,-1),new p("ss",-1,-1),new p("zzs",-1,-1),new p("tt",-1,-1),new p("vv",-1,-1),new p("ggy",-1,-1),new p("lly",-1,-1),new p("nny",-1,-1),new p("tty",-1,-1),new p("ssz",-1,-1),new p("zz",-1,-1)],t=[new p("al",-1,1),new p("el",-1,2)],e=[new p("ba",-1,-1),new p("ra",-1,-1),new p("be",-1,-1),new p("re",-1,-1),new p("ig",-1,-1),new p("nak",-1,-1),new p("nek",-1,-1),new p("val",-1,-1),new p("vel",-1,-1),new p("ul",-1,-1),new p("nál",-1,-1),new p("nél",-1,-1),new p("ból",-1,-1),new p("ról",-1,-1),new p("tól",-1,-1),new p("bõl",-1,-1),new p("rõl",-1,-1),new p("tõl",-1,-1),new p("ül",-1,-1),new p("n",-1,-1),new p("an",19,-1),new p("ban",20,-1),new p("en",19,-1),new p("ben",22,-1),new p("képpen",22,-1),new p("on",19,-1),new p("ön",19,-1),new p("képp",-1,-1),new p("kor",-1,-1),new p("t",-1,-1),new p("at",29,-1),new p("et",29,-1),new p("ként",29,-1),new p("anként",32,-1),new p("enként",32,-1),new p("onként",32,-1),new p("ot",29,-1),new p("ért",29,-1),new p("öt",29,-1),new p("hez",-1,-1),new p("hoz",-1,-1),new p("höz",-1,-1),new p("vá",-1,-1),new p("vé",-1,-1)],s=[new p("án",-1,2),new p("én",-1,1),new p("ánként",-1,3)],c=[new p("stul",-1,2),new p("astul",0,1),new p("ástul",0,3),new p("stül",-1,2),new p("estül",3,1),new p("éstül",3,4)],w=[new p("á",-1,1),new p("é",-1,2)],o=[new p("k",-1,7),new p("ak",0,4),new p("ek",0,6),new p("ok",0,5),new p("ák",0,1),new p("ék",0,2),new p("ök",0,3)],l=[new p("éi",-1,7),new p("áéi",0,6),new p("ééi",0,5),new p("é",-1,9),new p("ké",3,4),new p("aké",4,1),new p("eké",4,1),new p("oké",4,1),new p("áké",4,3),new p("éké",4,2),new p("öké",4,1),new p("éé",3,8)],u=[new p("a",-1,18),new p("ja",0,17),new p("d",-1,16),new p("ad",2,13),new p("ed",2,13),new p("od",2,13),new p("ád",2,14),new p("éd",2,15),new p("öd",2,13),new p("e",-1,18),new p("je",9,17),new p("nk",-1,4),new p("unk",11,1),new p("ánk",11,2),new p("énk",11,3),new p("ünk",11,1),new p("uk",-1,8),new p("juk",16,7),new p("ájuk",17,5),new p("ük",-1,8),new p("jük",19,7),new p("éjük",20,6),new p("m",-1,12),new p("am",22,9),new p("em",22,9),new p("om",22,9),new p("ám",22,10),new p("ém",22,11),new p("o",-1,18),new p("á",-1,19),new p("é",-1,20)],m=[new p("id",-1,10),new p("aid",0,9),new p("jaid",1,6),new p("eid",0,9),new p("jeid",3,6),new p("áid",0,7),new p("éid",0,8),new p("i",-1,15),new p("ai",7,14),new p("jai",8,11),new p("ei",7,14),new p("jei",10,11),new p("ái",7,12),new p("éi",7,13),new p("itek",-1,24),new p("eitek",14,21),new p("jeitek",15,20),new p("éitek",14,23),new p("ik",-1,29),new p("aik",18,26),new p("jaik",19,25),new p("eik",18,26),new p("jeik",21,25),new p("áik",18,27),new p("éik",18,28),new p("ink",-1,20),new p("aink",25,17),new p("jaink",26,16),new p("eink",25,17),new p("jeink",28,16),new p("áink",25,18),new p("éink",25,19),new p("aitok",-1,21),new p("jaitok",32,20),new p("áitok",-1,22),new p("im",-1,5),new p("aim",35,4),new p("jaim",36,1),new p("eim",35,4),new p("jeim",38,1),new p("áim",35,2),new p("éim",35,3)],k=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],f=new _;function b(){return r<=f.cursor}function d(){var e=f.limit-f.cursor;return!!f.find_among_b(a,23)&&(f.cursor=f.limit-e,!0)}function g(){if(f.cursor>f.limit_backward){f.cursor--,f.ket=f.cursor;var e=f.cursor-1;f.limit_backward<=e&&e<=f.limit&&(f.cursor=e,f.bra=e,f.slice_del())}}function h(){f.ket=f.cursor,f.find_among_b(e,44)&&(f.bra=f.cursor,b()&&(f.slice_del(),function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(n,2))&&(f.bra=f.cursor,b()))switch(e){case 1:f.slice_from("a");break;case 2:f.slice_from("e")}}()))}this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var e=f.cursor;return function(){var e,n=f.cursor;if(r=f.limit,f.in_grouping(k,97,252))for(;;){if(e=f.cursor,f.out_grouping(k,97,252))return f.cursor=e,f.find_among(i,8)||(f.cursor=e)=f.limit)return r=e;f.cursor++}if(f.cursor=n,f.out_grouping(k,97,252)){for(;!f.in_grouping(k,97,252);){if(f.cursor>=f.limit)return;f.cursor++}r=f.cursor}}(),f.limit_backward=e,f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(t,2))&&(f.bra=f.cursor,b())){if((1==e||2==e)&&!d())return;f.slice_del(),g()}}(),f.cursor=f.limit,h(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(s,3))&&(f.bra=f.cursor,b()))switch(e){case 1:f.slice_from("e");break;case 2:case 3:f.slice_from("a")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(c,6))&&(f.bra=f.cursor,b()))switch(e){case 1:case 2:f.slice_del();break;case 3:f.slice_from("a");break;case 4:f.slice_from("e")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(w,2))&&(f.bra=f.cursor,b())){if((1==e||2==e)&&!d())return;f.slice_del(),g()}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(l,12))&&(f.bra=f.cursor,b()))switch(e){case 1:case 4:case 7:case 9:f.slice_del();break;case 2:case 5:case 8:f.slice_from("e");break;case 3:case 6:f.slice_from("a")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(u,31))&&(f.bra=f.cursor,b()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:f.slice_del();break;case 2:case 5:case 10:case 14:case 19:f.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:f.slice_from("e")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(m,42))&&(f.bra=f.cursor,b()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:f.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:f.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:f.slice_from("e")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(o,7))&&(f.bra=f.cursor,b()))switch(e){case 1:f.slice_from("a");break;case 2:f.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:f.slice_del()}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.it.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.it.js new file mode 100644 index 0000000000..50dddaa04b --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.it.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var z,P,r;e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=(z=e.stemmerSupport.Among,P=e.stemmerSupport.SnowballProgram,r=new function(){var o,t,s,a=[new z("",-1,7),new z("qu",0,6),new z("á",0,1),new z("é",0,2),new z("í",0,3),new z("ó",0,4),new z("ú",0,5)],u=[new z("",-1,3),new z("I",0,1),new z("U",0,2)],c=[new z("la",-1,-1),new z("cela",0,-1),new z("gliela",0,-1),new z("mela",0,-1),new z("tela",0,-1),new z("vela",0,-1),new z("le",-1,-1),new z("cele",6,-1),new z("gliele",6,-1),new z("mele",6,-1),new z("tele",6,-1),new z("vele",6,-1),new z("ne",-1,-1),new z("cene",12,-1),new z("gliene",12,-1),new z("mene",12,-1),new z("sene",12,-1),new z("tene",12,-1),new z("vene",12,-1),new z("ci",-1,-1),new z("li",-1,-1),new z("celi",20,-1),new z("glieli",20,-1),new z("meli",20,-1),new z("teli",20,-1),new z("veli",20,-1),new z("gli",20,-1),new z("mi",-1,-1),new z("si",-1,-1),new z("ti",-1,-1),new z("vi",-1,-1),new z("lo",-1,-1),new z("celo",31,-1),new z("glielo",31,-1),new z("melo",31,-1),new z("telo",31,-1),new z("velo",31,-1)],w=[new z("ando",-1,1),new z("endo",-1,1),new z("ar",-1,2),new z("er",-1,2),new z("ir",-1,2)],r=[new z("ic",-1,-1),new z("abil",-1,-1),new z("os",-1,-1),new z("iv",-1,1)],n=[new z("ic",-1,1),new z("abil",-1,1),new z("iv",-1,1)],i=[new z("ica",-1,1),new z("logia",-1,3),new z("osa",-1,1),new z("ista",-1,1),new z("iva",-1,9),new z("anza",-1,1),new z("enza",-1,5),new z("ice",-1,1),new z("atrice",7,1),new z("iche",-1,1),new z("logie",-1,3),new z("abile",-1,1),new z("ibile",-1,1),new z("usione",-1,4),new z("azione",-1,2),new z("uzione",-1,4),new z("atore",-1,2),new z("ose",-1,1),new z("ante",-1,1),new z("mente",-1,1),new z("amente",19,7),new z("iste",-1,1),new z("ive",-1,9),new z("anze",-1,1),new z("enze",-1,5),new z("ici",-1,1),new z("atrici",25,1),new z("ichi",-1,1),new z("abili",-1,1),new z("ibili",-1,1),new z("ismi",-1,1),new z("usioni",-1,4),new z("azioni",-1,2),new z("uzioni",-1,4),new z("atori",-1,2),new z("osi",-1,1),new z("anti",-1,1),new z("amenti",-1,6),new z("imenti",-1,6),new z("isti",-1,1),new z("ivi",-1,9),new z("ico",-1,1),new z("ismo",-1,1),new z("oso",-1,1),new z("amento",-1,6),new z("imento",-1,6),new z("ivo",-1,9),new z("ità",-1,8),new z("istà",-1,1),new z("istè",-1,1),new z("istì",-1,1)],l=[new z("isca",-1,1),new z("enda",-1,1),new z("ata",-1,1),new z("ita",-1,1),new z("uta",-1,1),new z("ava",-1,1),new z("eva",-1,1),new z("iva",-1,1),new z("erebbe",-1,1),new z("irebbe",-1,1),new z("isce",-1,1),new z("ende",-1,1),new z("are",-1,1),new z("ere",-1,1),new z("ire",-1,1),new z("asse",-1,1),new z("ate",-1,1),new z("avate",16,1),new z("evate",16,1),new z("ivate",16,1),new z("ete",-1,1),new z("erete",20,1),new z("irete",20,1),new z("ite",-1,1),new z("ereste",-1,1),new z("ireste",-1,1),new z("ute",-1,1),new z("erai",-1,1),new z("irai",-1,1),new z("isci",-1,1),new z("endi",-1,1),new z("erei",-1,1),new z("irei",-1,1),new z("assi",-1,1),new z("ati",-1,1),new z("iti",-1,1),new z("eresti",-1,1),new z("iresti",-1,1),new z("uti",-1,1),new z("avi",-1,1),new z("evi",-1,1),new z("ivi",-1,1),new z("isco",-1,1),new z("ando",-1,1),new z("endo",-1,1),new z("Yamo",-1,1),new z("iamo",-1,1),new z("avamo",-1,1),new z("evamo",-1,1),new z("ivamo",-1,1),new z("eremo",-1,1),new z("iremo",-1,1),new z("assimo",-1,1),new z("ammo",-1,1),new z("emmo",-1,1),new z("eremmo",54,1),new z("iremmo",54,1),new z("immo",-1,1),new z("ano",-1,1),new z("iscano",58,1),new z("avano",58,1),new z("evano",58,1),new z("ivano",58,1),new z("eranno",-1,1),new z("iranno",-1,1),new z("ono",-1,1),new z("iscono",65,1),new z("arono",65,1),new z("erono",65,1),new z("irono",65,1),new z("erebbero",-1,1),new z("irebbero",-1,1),new z("assero",-1,1),new z("essero",-1,1),new z("issero",-1,1),new z("ato",-1,1),new z("ito",-1,1),new z("uto",-1,1),new z("avo",-1,1),new z("evo",-1,1),new z("ivo",-1,1),new z("ar",-1,1),new z("ir",-1,1),new z("erà",-1,1),new z("irà",-1,1),new z("erò",-1,1),new z("irò",-1,1)],m=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],f=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],v=[17],b=new P;function d(e,r,n){return!(!b.eq_s(1,e)||(b.ket=b.cursor,!b.in_grouping(m,97,249)))&&(b.slice_from(r),b.cursor=n,!0)}function _(e){if(b.cursor=e,!b.in_grouping(m,97,249))return!1;for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}return!0}function g(){var e,r=b.cursor;if(!function(){if(b.in_grouping(m,97,249)){var e=b.cursor;if(b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return _(e);b.cursor++}return!0}return _(e)}return!1}()){if(b.cursor=r,!b.out_grouping(m,97,249))return;if(e=b.cursor,b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return b.cursor=e,void(b.in_grouping(m,97,249)&&b.cursor=b.limit)return;b.cursor++}s=b.cursor}function p(){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}return!0}function k(){return s<=b.cursor}function h(){return o<=b.cursor}function q(){var e;if(b.ket=b.cursor,!(e=b.find_among_b(i,51)))return!1;switch(b.bra=b.cursor,e){case 1:if(!h())return!1;b.slice_del();break;case 2:if(!h())return!1;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic")&&(b.bra=b.cursor,h()&&b.slice_del());break;case 3:if(!h())return!1;b.slice_from("log");break;case 4:if(!h())return!1;b.slice_from("u");break;case 5:if(!h())return!1;b.slice_from("ente");break;case 6:if(!k())return!1;b.slice_del();break;case 7:if(!(t<=b.cursor))return!1;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(r,4))&&(b.bra=b.cursor,h()&&(b.slice_del(),1==e&&(b.ket=b.cursor,b.eq_s_b(2,"at")&&(b.bra=b.cursor,h()&&b.slice_del()))));break;case 8:if(!h())return!1;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(n,3))&&(b.bra=b.cursor,1==e&&h()&&b.slice_del());break;case 9:if(!h())return!1;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"at")&&(b.bra=b.cursor,h()&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic")&&(b.bra=b.cursor,h()&&b.slice_del())))}return!0}function C(){var e;e=b.limit-b.cursor,b.ket=b.cursor,b.in_grouping_b(f,97,242)&&(b.bra=b.cursor,k()&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(1,"i")&&(b.bra=b.cursor,k())))?b.slice_del():b.cursor=b.limit-e,b.ket=b.cursor,b.eq_s_b(1,"h")&&(b.bra=b.cursor,b.in_grouping_b(v,99,103)&&k()&&b.slice_del())}this.setCurrent=function(e){b.setCurrent(e)},this.getCurrent=function(){return b.getCurrent()},this.stem=function(){var e,r,n,i=b.cursor;return function(){for(var e,r,n,i,o=b.cursor;;){if(b.bra=b.cursor,e=b.find_among(a,7))switch(b.ket=b.cursor,e){case 1:b.slice_from("à");continue;case 2:b.slice_from("è");continue;case 3:b.slice_from("ì");continue;case 4:b.slice_from("ò");continue;case 5:b.slice_from("ù");continue;case 6:b.slice_from("qU");continue;case 7:if(b.cursor>=b.limit)break;b.cursor++;continue}break}for(b.cursor=o;;)for(r=b.cursor;;){if(n=b.cursor,b.in_grouping(m,97,249)){if(b.bra=b.cursor,i=b.cursor,d("u","U",n))break;if(b.cursor=i,d("i","I",n))break}if(b.cursor=n,b.cursor>=b.limit)return b.cursor=r;b.cursor++}}(),b.cursor=i,e=b.cursor,s=b.limit,o=t=s,g(),b.cursor=e,p()&&(t=b.cursor,p()&&(o=b.cursor)),b.limit_backward=i,b.cursor=b.limit,function(){var e;if(b.ket=b.cursor,b.find_among_b(c,37)&&(b.bra=b.cursor,(e=b.find_among_b(w,5))&&k()))switch(e){case 1:b.slice_del();break;case 2:b.slice_from("e")}}(),b.cursor=b.limit,q()||(b.cursor=b.limit,b.cursor>=s&&(n=b.limit_backward,b.limit_backward=s,b.ket=b.cursor,(r=b.find_among_b(l,87))&&(b.bra=b.cursor,1==r&&b.slice_del()),b.limit_backward=n)),b.cursor=b.limit,C(),b.cursor=b.limit_backward,function(){for(var e;b.bra=b.cursor,e=b.find_among(u,3);)switch(b.ket=b.cursor,e){case 1:b.slice_from("i");break;case 2:b.slice_from("u");break;case 3:if(b.cursor>=b.limit)return;b.cursor++}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.ja.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.ja.js new file mode 100644 index 0000000000..69f620250d --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.ja.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(m){if(void 0===m)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===m.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var l="2"==m.version[0];m.ja=function(){this.pipeline.reset(),this.pipeline.add(m.ja.trimmer,m.ja.stopWordFilter,m.ja.stemmer),l?this.tokenizer=m.ja.tokenizer:(m.tokenizer&&(m.tokenizer=m.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=m.ja.tokenizer))};var j=new m.TinySegmenter;m.ja.tokenizer=function(e){var r,t,i,n,o,s,p,a,u;if(!arguments.length||null==e||null==e)return[];if(Array.isArray(e))return e.map(function(e){return l?new m.Token(e.toLowerCase()):e.toLowerCase()});for(r=(t=e.toString().toLowerCase().replace(/^\s+/,"")).length-1;0<=r;r--)if(/\S/.test(t.charAt(r))){t=t.substring(0,r+1);break}for(o=[],i=t.length,p=a=0;a<=i;a++)if(s=a-p,t.charAt(a).match(/\s/)||a==i){if(0=_.limit||(_.cursor++,!1)}function w(){for(;!_.in_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}for(;!_.out_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}return!1}function b(){return i<=_.cursor}function p(){return e<=_.cursor}function g(){var r=_.limit-_.cursor;_.find_among_b(t,3)&&(_.cursor=_.limit-r,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del()))}function h(){var r;u=!1,_.ket=_.cursor,_.eq_s_b(1,"e")&&(_.bra=_.cursor,b()&&(r=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-r,_.slice_del(),u=!0,g())))}function k(){var r;b()&&(r=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-r,_.eq_s_b(3,"gem")||(_.cursor=_.limit-r,_.slice_del(),g())))}this.setCurrent=function(r){_.setCurrent(r)},this.getCurrent=function(){return _.getCurrent()},this.stem=function(){var r=_.cursor;return function(){for(var r,e,i,n=_.cursor;;){if(_.bra=_.cursor,r=_.find_among(o,11))switch(_.ket=_.cursor,r){case 1:_.slice_from("a");continue;case 2:_.slice_from("e");continue;case 3:_.slice_from("i");continue;case 4:_.slice_from("o");continue;case 5:_.slice_from("u");continue;case 6:if(_.cursor>=_.limit)break;_.cursor++;continue}break}for(_.cursor=n,_.bra=n,_.eq_s(1,"y")?(_.ket=_.cursor,_.slice_from("Y")):_.cursor=n;;)if(e=_.cursor,_.in_grouping(m,97,232)){if(i=_.cursor,_.bra=i,_.eq_s(1,"i"))_.ket=_.cursor,_.in_grouping(m,97,232)&&(_.slice_from("I"),_.cursor=e);else if(_.cursor=i,_.eq_s(1,"y"))_.ket=_.cursor,_.slice_from("Y"),_.cursor=e;else if(s(e))break}else if(s(e))break}(),_.cursor=r,i=_.limit,e=i,w()||((i=_.cursor)<3&&(i=3),w()||(e=_.cursor)),_.limit_backward=r,_.cursor=_.limit,function(){var r,e,i,n,o,t,s=_.limit-_.cursor;if(_.ket=_.cursor,r=_.find_among_b(c,5))switch(_.bra=_.cursor,r){case 1:b()&&_.slice_from("heid");break;case 2:k();break;case 3:b()&&_.out_grouping_b(f,97,232)&&_.slice_del()}if(_.cursor=_.limit-s,h(),_.cursor=_.limit-s,_.ket=_.cursor,_.eq_s_b(4,"heid")&&(_.bra=_.cursor,p()&&(e=_.limit-_.cursor,_.eq_s_b(1,"c")||(_.cursor=_.limit-e,_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"en")&&(_.bra=_.cursor,k())))),_.cursor=_.limit-s,_.ket=_.cursor,r=_.find_among_b(a,6))switch(_.bra=_.cursor,r){case 1:if(p()){if(_.slice_del(),i=_.limit-_.cursor,_.ket=_.cursor,_.eq_s_b(2,"ig")&&(_.bra=_.cursor,p()&&(n=_.limit-_.cursor,!_.eq_s_b(1,"e")))){_.cursor=_.limit-n,_.slice_del();break}_.cursor=_.limit-i,g()}break;case 2:p()&&(o=_.limit-_.cursor,_.eq_s_b(1,"e")||(_.cursor=_.limit-o,_.slice_del()));break;case 3:p()&&(_.slice_del(),h());break;case 4:p()&&_.slice_del();break;case 5:p()&&u&&_.slice_del()}_.cursor=_.limit-s,_.out_grouping_b(d,73,232)&&(t=_.limit-_.cursor,_.find_among_b(l,4)&&_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-t,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del())))}(),_.cursor=_.limit_backward,function(){for(var r;;)if(_.bra=_.cursor,r=_.find_among(n,3))switch(_.ket=_.cursor,r){case 1:_.slice_from("y");break;case 2:_.slice_from("i");break;case 3:if(_.cursor>=_.limit)return;_.cursor++}}(),!0}},function(r){return"function"==typeof r.update?r.update(function(r){return e.setCurrent(r),e.stem(),e.getCurrent()}):(e.setCurrent(r),e.stem(),e.getCurrent())}),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.no.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.no.js new file mode 100644 index 0000000000..3d156b9c19 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.no.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,n,i;e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=(r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){var o,s,a=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],m=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],u=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],d=[119,125,149,1],c=new n;this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var e,r,n,i,t=c.cursor;return function(){var e,r=c.cursor+3;if(s=c.limit,0<=r||r<=c.limit){for(o=r;;){if(e=c.cursor,c.in_grouping(u,97,248)){c.cursor=e;break}if(e>=c.limit)return;c.cursor=e+1}for(;!c.out_grouping(u,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(s=c.cursor)=s&&(r=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,e=c.find_among_b(a,29),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:n=c.limit-c.cursor,c.in_grouping_b(d,98,122)?c.slice_del():(c.cursor=c.limit-n,c.eq_s_b(1,"k")&&c.out_grouping_b(u,97,248)&&c.slice_del());break;case 3:c.slice_from("er")}}(),c.cursor=c.limit,r=c.limit-c.cursor,c.cursor>=s&&(e=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,c.find_among_b(m,2)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e),c.cursor=c.limit,c.cursor>=s&&(i=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,(n=c.find_among_b(l,11))?(c.bra=c.cursor,c.limit_backward=i,1==n&&c.slice_del()):c.limit_backward=i),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.pt.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.pt.js new file mode 100644 index 0000000000..f50fc9fa6d --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.pt.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var j,C,r;e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=(j=e.stemmerSupport.Among,C=e.stemmerSupport.SnowballProgram,r=new function(){var s,n,i,o=[new j("",-1,3),new j("ã",0,1),new j("õ",0,2)],a=[new j("",-1,3),new j("a~",0,1),new j("o~",0,2)],r=[new j("ic",-1,-1),new j("ad",-1,-1),new j("os",-1,-1),new j("iv",-1,1)],t=[new j("ante",-1,1),new j("avel",-1,1),new j("ível",-1,1)],u=[new j("ic",-1,1),new j("abil",-1,1),new j("iv",-1,1)],w=[new j("ica",-1,1),new j("ância",-1,1),new j("ência",-1,4),new j("ira",-1,9),new j("adora",-1,1),new j("osa",-1,1),new j("ista",-1,1),new j("iva",-1,8),new j("eza",-1,1),new j("logía",-1,2),new j("idade",-1,7),new j("ante",-1,1),new j("mente",-1,6),new j("amente",12,5),new j("ável",-1,1),new j("ível",-1,1),new j("ución",-1,3),new j("ico",-1,1),new j("ismo",-1,1),new j("oso",-1,1),new j("amento",-1,1),new j("imento",-1,1),new j("ivo",-1,8),new j("aça~o",-1,1),new j("ador",-1,1),new j("icas",-1,1),new j("ências",-1,4),new j("iras",-1,9),new j("adoras",-1,1),new j("osas",-1,1),new j("istas",-1,1),new j("ivas",-1,8),new j("ezas",-1,1),new j("logías",-1,2),new j("idades",-1,7),new j("uciones",-1,3),new j("adores",-1,1),new j("antes",-1,1),new j("aço~es",-1,1),new j("icos",-1,1),new j("ismos",-1,1),new j("osos",-1,1),new j("amentos",-1,1),new j("imentos",-1,1),new j("ivos",-1,8)],m=[new j("ada",-1,1),new j("ida",-1,1),new j("ia",-1,1),new j("aria",2,1),new j("eria",2,1),new j("iria",2,1),new j("ara",-1,1),new j("era",-1,1),new j("ira",-1,1),new j("ava",-1,1),new j("asse",-1,1),new j("esse",-1,1),new j("isse",-1,1),new j("aste",-1,1),new j("este",-1,1),new j("iste",-1,1),new j("ei",-1,1),new j("arei",16,1),new j("erei",16,1),new j("irei",16,1),new j("am",-1,1),new j("iam",20,1),new j("ariam",21,1),new j("eriam",21,1),new j("iriam",21,1),new j("aram",20,1),new j("eram",20,1),new j("iram",20,1),new j("avam",20,1),new j("em",-1,1),new j("arem",29,1),new j("erem",29,1),new j("irem",29,1),new j("assem",29,1),new j("essem",29,1),new j("issem",29,1),new j("ado",-1,1),new j("ido",-1,1),new j("ando",-1,1),new j("endo",-1,1),new j("indo",-1,1),new j("ara~o",-1,1),new j("era~o",-1,1),new j("ira~o",-1,1),new j("ar",-1,1),new j("er",-1,1),new j("ir",-1,1),new j("as",-1,1),new j("adas",47,1),new j("idas",47,1),new j("ias",47,1),new j("arias",50,1),new j("erias",50,1),new j("irias",50,1),new j("aras",47,1),new j("eras",47,1),new j("iras",47,1),new j("avas",47,1),new j("es",-1,1),new j("ardes",58,1),new j("erdes",58,1),new j("irdes",58,1),new j("ares",58,1),new j("eres",58,1),new j("ires",58,1),new j("asses",58,1),new j("esses",58,1),new j("isses",58,1),new j("astes",58,1),new j("estes",58,1),new j("istes",58,1),new j("is",-1,1),new j("ais",71,1),new j("eis",71,1),new j("areis",73,1),new j("ereis",73,1),new j("ireis",73,1),new j("áreis",73,1),new j("éreis",73,1),new j("íreis",73,1),new j("ásseis",73,1),new j("ésseis",73,1),new j("ísseis",73,1),new j("áveis",73,1),new j("íeis",73,1),new j("aríeis",84,1),new j("eríeis",84,1),new j("iríeis",84,1),new j("ados",-1,1),new j("idos",-1,1),new j("amos",-1,1),new j("áramos",90,1),new j("éramos",90,1),new j("íramos",90,1),new j("ávamos",90,1),new j("íamos",90,1),new j("aríamos",95,1),new j("eríamos",95,1),new j("iríamos",95,1),new j("emos",-1,1),new j("aremos",99,1),new j("eremos",99,1),new j("iremos",99,1),new j("ássemos",99,1),new j("êssemos",99,1),new j("íssemos",99,1),new j("imos",-1,1),new j("armos",-1,1),new j("ermos",-1,1),new j("irmos",-1,1),new j("ámos",-1,1),new j("arás",-1,1),new j("erás",-1,1),new j("irás",-1,1),new j("eu",-1,1),new j("iu",-1,1),new j("ou",-1,1),new j("ará",-1,1),new j("erá",-1,1),new j("irá",-1,1)],c=[new j("a",-1,1),new j("i",-1,1),new j("o",-1,1),new j("os",-1,1),new j("á",-1,1),new j("í",-1,1),new j("ó",-1,1)],l=[new j("e",-1,1),new j("ç",-1,2),new j("é",-1,1),new j("ê",-1,1)],f=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],d=new C;function v(){if(d.out_grouping(f,97,250)){for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return!0;d.cursor++}return!1}return!0}function p(){var e,r,s=d.cursor;if(d.in_grouping(f,97,250))if(e=d.cursor,v()){if(d.cursor=e,function(){if(d.in_grouping(f,97,250))for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return!1;d.cursor++}return i=d.cursor,!0}())return}else i=d.cursor;if(d.cursor=s,d.out_grouping(f,97,250)){if(r=d.cursor,v()){if(d.cursor=r,!d.in_grouping(f,97,250)||d.cursor>=d.limit)return;d.cursor++}i=d.cursor}}function _(){for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return!1;d.cursor++}for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return!1;d.cursor++}return!0}function h(){return i<=d.cursor}function b(){return s<=d.cursor}function g(){var e;if(d.ket=d.cursor,!(e=d.find_among_b(w,45)))return!1;switch(d.bra=d.cursor,e){case 1:if(!b())return!1;d.slice_del();break;case 2:if(!b())return!1;d.slice_from("log");break;case 3:if(!b())return!1;d.slice_from("u");break;case 4:if(!b())return!1;d.slice_from("ente");break;case 5:if(!(n<=d.cursor))return!1;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(r,4))&&(d.bra=d.cursor,b()&&(d.slice_del(),1==e&&(d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,b()&&d.slice_del()))));break;case 6:if(!b())return!1;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(t,3))&&(d.bra=d.cursor,1==e&&b()&&d.slice_del());break;case 7:if(!b())return!1;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(u,3))&&(d.bra=d.cursor,1==e&&b()&&d.slice_del());break;case 8:if(!b())return!1;d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,b()&&d.slice_del());break;case 9:if(!h()||!d.eq_s_b(1,"e"))return!1;d.slice_from("ir")}return!0}function k(e,r){if(d.eq_s_b(1,e)){d.bra=d.cursor;var s=d.limit-d.cursor;if(d.eq_s_b(1,r))return d.cursor=d.limit-s,h()&&d.slice_del(),!1}return!0}function q(){if(!g()&&(d.cursor=d.limit,!function(){var e,r;if(d.cursor>=i){if(r=d.limit_backward,d.limit_backward=i,d.ket=d.cursor,e=d.find_among_b(m,120))return d.bra=d.cursor,1==e&&d.slice_del(),d.limit_backward=r,!0;d.limit_backward=r}return!1}()))return d.cursor=d.limit,d.ket=d.cursor,void((e=d.find_among_b(c,7))&&(d.bra=d.cursor,1==e&&h()&&d.slice_del()));var e;d.cursor=d.limit,d.ket=d.cursor,d.eq_s_b(1,"i")&&(d.bra=d.cursor,d.eq_s_b(1,"c")&&(d.cursor=d.limit,h()&&d.slice_del()))}this.setCurrent=function(e){d.setCurrent(e)},this.getCurrent=function(){return d.getCurrent()},this.stem=function(){var e,r=d.cursor;return function(){for(var e;;){if(d.bra=d.cursor,e=d.find_among(o,3))switch(d.ket=d.cursor,e){case 1:d.slice_from("a~");continue;case 2:d.slice_from("o~");continue;case 3:if(d.cursor>=d.limit)break;d.cursor++;continue}break}}(),d.cursor=r,e=d.cursor,i=d.limit,s=n=i,p(),d.cursor=e,_()&&(n=d.cursor,_()&&(s=d.cursor)),d.limit_backward=r,d.cursor=d.limit,q(),d.cursor=d.limit,function(){var e;if(d.ket=d.cursor,e=d.find_among_b(l,4))switch(d.bra=d.cursor,e){case 1:h()&&(d.slice_del(),d.ket=d.cursor,d.limit,d.cursor,k("u","g")&&k("i","c"));break;case 2:d.slice_from("c")}}(),d.cursor=d.limit_backward,function(){for(var e;;){if(d.bra=d.cursor,e=d.find_among(a,3))switch(d.ket=d.cursor,e){case 1:d.slice_from("ã");continue;case 2:d.slice_from("õ");continue;case 3:if(d.cursor>=d.limit)break;d.cursor++;continue}break}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.ro.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.ro.js new file mode 100644 index 0000000000..b19627e1b3 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.ro.js @@ -0,0 +1 @@ +!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var h,z,i;e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=(h=e.stemmerSupport.Among,z=e.stemmerSupport.SnowballProgram,i=new function(){var r,n,t,a,o=[new h("",-1,3),new h("I",0,1),new h("U",0,2)],s=[new h("ea",-1,3),new h("aţia",-1,7),new h("aua",-1,2),new h("iua",-1,4),new h("aţie",-1,7),new h("ele",-1,3),new h("ile",-1,5),new h("iile",6,4),new h("iei",-1,4),new h("atei",-1,6),new h("ii",-1,4),new h("ului",-1,1),new h("ul",-1,1),new h("elor",-1,3),new h("ilor",-1,4),new h("iilor",14,4)],c=[new h("icala",-1,4),new h("iciva",-1,4),new h("ativa",-1,5),new h("itiva",-1,6),new h("icale",-1,4),new h("aţiune",-1,5),new h("iţiune",-1,6),new h("atoare",-1,5),new h("itoare",-1,6),new h("ătoare",-1,5),new h("icitate",-1,4),new h("abilitate",-1,1),new h("ibilitate",-1,2),new h("ivitate",-1,3),new h("icive",-1,4),new h("ative",-1,5),new h("itive",-1,6),new h("icali",-1,4),new h("atori",-1,5),new h("icatori",18,4),new h("itori",-1,6),new h("ători",-1,5),new h("icitati",-1,4),new h("abilitati",-1,1),new h("ivitati",-1,3),new h("icivi",-1,4),new h("ativi",-1,5),new h("itivi",-1,6),new h("icităi",-1,4),new h("abilităi",-1,1),new h("ivităi",-1,3),new h("icităţi",-1,4),new h("abilităţi",-1,1),new h("ivităţi",-1,3),new h("ical",-1,4),new h("ator",-1,5),new h("icator",35,4),new h("itor",-1,6),new h("ător",-1,5),new h("iciv",-1,4),new h("ativ",-1,5),new h("itiv",-1,6),new h("icală",-1,4),new h("icivă",-1,4),new h("ativă",-1,5),new h("itivă",-1,6)],u=[new h("ica",-1,1),new h("abila",-1,1),new h("ibila",-1,1),new h("oasa",-1,1),new h("ata",-1,1),new h("ita",-1,1),new h("anta",-1,1),new h("ista",-1,3),new h("uta",-1,1),new h("iva",-1,1),new h("ic",-1,1),new h("ice",-1,1),new h("abile",-1,1),new h("ibile",-1,1),new h("isme",-1,3),new h("iune",-1,2),new h("oase",-1,1),new h("ate",-1,1),new h("itate",17,1),new h("ite",-1,1),new h("ante",-1,1),new h("iste",-1,3),new h("ute",-1,1),new h("ive",-1,1),new h("ici",-1,1),new h("abili",-1,1),new h("ibili",-1,1),new h("iuni",-1,2),new h("atori",-1,1),new h("osi",-1,1),new h("ati",-1,1),new h("itati",30,1),new h("iti",-1,1),new h("anti",-1,1),new h("isti",-1,3),new h("uti",-1,1),new h("işti",-1,3),new h("ivi",-1,1),new h("ităi",-1,1),new h("oşi",-1,1),new h("ităţi",-1,1),new h("abil",-1,1),new h("ibil",-1,1),new h("ism",-1,3),new h("ator",-1,1),new h("os",-1,1),new h("at",-1,1),new h("it",-1,1),new h("ant",-1,1),new h("ist",-1,3),new h("ut",-1,1),new h("iv",-1,1),new h("ică",-1,1),new h("abilă",-1,1),new h("ibilă",-1,1),new h("oasă",-1,1),new h("ată",-1,1),new h("ită",-1,1),new h("antă",-1,1),new h("istă",-1,3),new h("ută",-1,1),new h("ivă",-1,1)],w=[new h("ea",-1,1),new h("ia",-1,1),new h("esc",-1,1),new h("ăsc",-1,1),new h("ind",-1,1),new h("ând",-1,1),new h("are",-1,1),new h("ere",-1,1),new h("ire",-1,1),new h("âre",-1,1),new h("se",-1,2),new h("ase",10,1),new h("sese",10,2),new h("ise",10,1),new h("use",10,1),new h("âse",10,1),new h("eşte",-1,1),new h("ăşte",-1,1),new h("eze",-1,1),new h("ai",-1,1),new h("eai",19,1),new h("iai",19,1),new h("sei",-1,2),new h("eşti",-1,1),new h("ăşti",-1,1),new h("ui",-1,1),new h("ezi",-1,1),new h("âi",-1,1),new h("aşi",-1,1),new h("seşi",-1,2),new h("aseşi",29,1),new h("seseşi",29,2),new h("iseşi",29,1),new h("useşi",29,1),new h("âseşi",29,1),new h("işi",-1,1),new h("uşi",-1,1),new h("âşi",-1,1),new h("aţi",-1,2),new h("eaţi",38,1),new h("iaţi",38,1),new h("eţi",-1,2),new h("iţi",-1,2),new h("âţi",-1,2),new h("arăţi",-1,1),new h("serăţi",-1,2),new h("aserăţi",45,1),new h("seserăţi",45,2),new h("iserăţi",45,1),new h("userăţi",45,1),new h("âserăţi",45,1),new h("irăţi",-1,1),new h("urăţi",-1,1),new h("ârăţi",-1,1),new h("am",-1,1),new h("eam",54,1),new h("iam",54,1),new h("em",-1,2),new h("asem",57,1),new h("sesem",57,2),new h("isem",57,1),new h("usem",57,1),new h("âsem",57,1),new h("im",-1,2),new h("âm",-1,2),new h("ăm",-1,2),new h("arăm",65,1),new h("serăm",65,2),new h("aserăm",67,1),new h("seserăm",67,2),new h("iserăm",67,1),new h("userăm",67,1),new h("âserăm",67,1),new h("irăm",65,1),new h("urăm",65,1),new h("ârăm",65,1),new h("au",-1,1),new h("eau",76,1),new h("iau",76,1),new h("indu",-1,1),new h("ându",-1,1),new h("ez",-1,1),new h("ească",-1,1),new h("ară",-1,1),new h("seră",-1,2),new h("aseră",84,1),new h("seseră",84,2),new h("iseră",84,1),new h("useră",84,1),new h("âseră",84,1),new h("iră",-1,1),new h("ură",-1,1),new h("âră",-1,1),new h("ează",-1,1)],i=[new h("a",-1,1),new h("e",-1,1),new h("ie",1,1),new h("i",-1,1),new h("ă",-1,1)],m=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],l=new z;function f(e,i){l.eq_s(1,e)&&(l.ket=l.cursor,l.in_grouping(m,97,259)&&l.slice_from(i))}function p(){if(l.out_grouping(m,97,259)){for(;!l.in_grouping(m,97,259);){if(l.cursor>=l.limit)return!0;l.cursor++}return!1}return!0}function d(){var e,i,r=l.cursor;if(l.in_grouping(m,97,259)){if(e=l.cursor,!p())return void(a=l.cursor);if(l.cursor=e,!function(){if(l.in_grouping(m,97,259))for(;!l.out_grouping(m,97,259);){if(l.cursor>=l.limit)return!0;l.cursor++}return!1}())return void(a=l.cursor)}l.cursor=r,l.out_grouping(m,97,259)&&(i=l.cursor,p()&&(l.cursor=i,l.in_grouping(m,97,259)&&l.cursor=l.limit)return!1;l.cursor++}for(;!l.out_grouping(m,97,259);){if(l.cursor>=l.limit)return!1;l.cursor++}return!0}function v(){return t<=l.cursor}function _(){var e,i=l.limit-l.cursor;if(l.ket=l.cursor,(e=l.find_among_b(c,46))&&(l.bra=l.cursor,v())){switch(e){case 1:l.slice_from("abil");break;case 2:l.slice_from("ibil");break;case 3:l.slice_from("iv");break;case 4:l.slice_from("ic");break;case 5:l.slice_from("at");break;case 6:l.slice_from("it")}return r=!0,l.cursor=l.limit-i,!0}return!1}function g(){var e,i;for(r=!1;;)if(i=l.limit-l.cursor,!_()){l.cursor=l.limit-i;break}if(l.ket=l.cursor,(e=l.find_among_b(u,62))&&(l.bra=l.cursor,n<=l.cursor)){switch(e){case 1:l.slice_del();break;case 2:l.eq_s_b(1,"ţ")&&(l.bra=l.cursor,l.slice_from("t"));break;case 3:l.slice_from("ist")}r=!0}}function k(){var e;l.ket=l.cursor,(e=l.find_among_b(i,5))&&(l.bra=l.cursor,a<=l.cursor&&1==e&&l.slice_del())}this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){var e,i=l.cursor;return function(){for(var e,i;e=l.cursor,l.in_grouping(m,97,259)&&(i=l.cursor,l.bra=i,f("u","U"),l.cursor=i,f("i","I")),l.cursor=e,!(l.cursor>=l.limit);)l.cursor++}(),l.cursor=i,e=l.cursor,a=l.limit,n=t=a,d(),l.cursor=e,b()&&(t=l.cursor,b()&&(n=l.cursor)),l.limit_backward=i,l.cursor=l.limit,function(){var e,i;if(l.ket=l.cursor,(e=l.find_among_b(s,16))&&(l.bra=l.cursor,v()))switch(e){case 1:l.slice_del();break;case 2:l.slice_from("a");break;case 3:l.slice_from("e");break;case 4:l.slice_from("i");break;case 5:i=l.limit-l.cursor,l.eq_s_b(2,"ab")||(l.cursor=l.limit-i,l.slice_from("i"));break;case 6:l.slice_from("at");break;case 7:l.slice_from("aţi")}}(),l.cursor=l.limit,g(),l.cursor=l.limit,r||(l.cursor=l.limit,function(){var e,i,r;if(l.cursor>=a){if(i=l.limit_backward,l.limit_backward=a,l.ket=l.cursor,e=l.find_among_b(w,94))switch(l.bra=l.cursor,e){case 1:if(r=l.limit-l.cursor,!l.out_grouping_b(m,97,259)&&(l.cursor=l.limit-r,!l.eq_s_b(1,"u")))break;case 2:l.slice_del()}l.limit_backward=i}}(),l.cursor=l.limit),k(),l.cursor=l.limit_backward,function(){for(var e;;){if(l.bra=l.cursor,e=l.find_among(o,3))switch(l.ket=l.cursor,e){case 1:l.slice_from("i");continue;case 2:l.slice_from("u");continue;case 3:if(l.cursor>=l.limit)break;l.cursor++;continue}break}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.ru.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.ru.js new file mode 100644 index 0000000000..ac99248044 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.ru.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var h,g,n;e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=(h=e.stemmerSupport.Among,g=e.stemmerSupport.SnowballProgram,n=new function(){var n,e,r=[new h("в",-1,1),new h("ив",0,2),new h("ыв",0,2),new h("вши",-1,1),new h("ивши",3,2),new h("ывши",3,2),new h("вшись",-1,1),new h("ившись",6,2),new h("ывшись",6,2)],t=[new h("ее",-1,1),new h("ие",-1,1),new h("ое",-1,1),new h("ые",-1,1),new h("ими",-1,1),new h("ыми",-1,1),new h("ей",-1,1),new h("ий",-1,1),new h("ой",-1,1),new h("ый",-1,1),new h("ем",-1,1),new h("им",-1,1),new h("ом",-1,1),new h("ым",-1,1),new h("его",-1,1),new h("ого",-1,1),new h("ему",-1,1),new h("ому",-1,1),new h("их",-1,1),new h("ых",-1,1),new h("ею",-1,1),new h("ою",-1,1),new h("ую",-1,1),new h("юю",-1,1),new h("ая",-1,1),new h("яя",-1,1)],w=[new h("ем",-1,1),new h("нн",-1,1),new h("вш",-1,1),new h("ивш",2,2),new h("ывш",2,2),new h("щ",-1,1),new h("ющ",5,1),new h("ующ",6,2)],i=[new h("сь",-1,1),new h("ся",-1,1)],u=[new h("ла",-1,1),new h("ила",0,2),new h("ыла",0,2),new h("на",-1,1),new h("ена",3,2),new h("ете",-1,1),new h("ите",-1,2),new h("йте",-1,1),new h("ейте",7,2),new h("уйте",7,2),new h("ли",-1,1),new h("или",10,2),new h("ыли",10,2),new h("й",-1,1),new h("ей",13,2),new h("уй",13,2),new h("л",-1,1),new h("ил",16,2),new h("ыл",16,2),new h("ем",-1,1),new h("им",-1,2),new h("ым",-1,2),new h("н",-1,1),new h("ен",22,2),new h("ло",-1,1),new h("ило",24,2),new h("ыло",24,2),new h("но",-1,1),new h("ено",27,2),new h("нно",27,1),new h("ет",-1,1),new h("ует",30,2),new h("ит",-1,2),new h("ыт",-1,2),new h("ют",-1,1),new h("уют",34,2),new h("ят",-1,2),new h("ны",-1,1),new h("ены",37,2),new h("ть",-1,1),new h("ить",39,2),new h("ыть",39,2),new h("ешь",-1,1),new h("ишь",-1,2),new h("ю",-1,2),new h("ую",44,2)],s=[new h("а",-1,1),new h("ев",-1,1),new h("ов",-1,1),new h("е",-1,1),new h("ие",3,1),new h("ье",3,1),new h("и",-1,1),new h("еи",6,1),new h("ии",6,1),new h("ами",6,1),new h("ями",6,1),new h("иями",10,1),new h("й",-1,1),new h("ей",12,1),new h("ией",13,1),new h("ий",12,1),new h("ой",12,1),new h("ам",-1,1),new h("ем",-1,1),new h("ием",18,1),new h("ом",-1,1),new h("ям",-1,1),new h("иям",21,1),new h("о",-1,1),new h("у",-1,1),new h("ах",-1,1),new h("ях",-1,1),new h("иях",26,1),new h("ы",-1,1),new h("ь",-1,1),new h("ю",-1,1),new h("ию",30,1),new h("ью",30,1),new h("я",-1,1),new h("ия",33,1),new h("ья",33,1)],o=[new h("ост",-1,1),new h("ость",-1,1)],c=[new h("ейше",-1,1),new h("н",-1,2),new h("ейш",-1,1),new h("ь",-1,3)],m=[33,65,8,232],l=new g;function f(){for(;!l.in_grouping(m,1072,1103);){if(l.cursor>=l.limit)return!1;l.cursor++}return!0}function a(){for(;!l.out_grouping(m,1072,1103);){if(l.cursor>=l.limit)return!1;l.cursor++}return!0}function p(e,n){var r,t;if(l.ket=l.cursor,r=l.find_among_b(e,n)){switch(l.bra=l.cursor,r){case 1:if(t=l.limit-l.cursor,!l.eq_s_b(1,"а")&&(l.cursor=l.limit-t,!l.eq_s_b(1,"я")))return!1;case 2:l.slice_del()}return!0}return!1}function d(e,n){var r;return l.ket=l.cursor,!!(r=l.find_among_b(e,n))&&(l.bra=l.cursor,1==r&&l.slice_del(),!0)}function _(){return!!d(t,26)&&(p(w,8),!0)}function b(){var e;l.ket=l.cursor,(e=l.find_among_b(o,2))&&(l.bra=l.cursor,n<=l.cursor&&1==e&&l.slice_del())}this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){return e=l.limit,n=e,f()&&(e=l.cursor,a()&&f()&&a()&&(n=l.cursor)),l.cursor=l.limit,!(l.cursor>3]&1<<(7&s))return this.cursor++,!0}return!1},in_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(s<=i&&t<=s&&r[(s-=t)>>3]&1<<(7&s))return this.cursor--,!0}return!1},out_grouping:function(r,t,i){if(this.cursor>3]&1<<(7&s)))return this.cursor++,!0}return!1},out_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(i>3]&1<<(7&s)))return this.cursor--,!0}return!1},eq_s:function(r,t){if(this.limit-this.cursor>1),a=0,f=u=(l=r[i]).s_size){if(this.cursor=e+l.s_size,!l.method)return l.result;var m=l.method();if(this.cursor=e+l.s_size,m)return l.result}if((i=l.substring_i)<0)return 0}},find_among_b:function(r,t){for(var i=0,s=t,e=this.cursor,n=this.limit_backward,u=0,o=0,h=!1;;){for(var c=i+(s-i>>1),a=0,f=u=(_=r[i]).s_size){if(this.cursor=e-_.s_size,!_.method)return _.result;var m=_.method();if(this.cursor=e-_.s_size,m)return _.result}if((i=_.substring_i)<0)return 0}},replace_s:function(r,t,i){var s=i.length-(t-r);return b=b.substring(0,r)+i+b.substring(t),this.limit+=s,this.cursor>=t?this.cursor+=s:this.cursor>r&&(this.cursor=r),s},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>b.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),b.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.sv.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.sv.js new file mode 100644 index 0000000000..6daf5f9d80 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.sv.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,l,n;e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=(r=e.stemmerSupport.Among,l=e.stemmerSupport.SnowballProgram,n=new function(){var n,t,i=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],s=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],a=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],o=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],u=[119,127,149],m=new l;this.setCurrent=function(e){m.setCurrent(e)},this.getCurrent=function(){return m.getCurrent()},this.stem=function(){var e,r=m.cursor;return function(){var e,r=m.cursor+3;if(t=m.limit,0<=r||r<=m.limit){for(n=r;;){if(e=m.cursor,m.in_grouping(o,97,246)){m.cursor=e;break}if(m.cursor=e,m.cursor>=m.limit)return;m.cursor++}for(;!m.out_grouping(o,97,246);){if(m.cursor>=m.limit)return;m.cursor++}(t=m.cursor)=t&&(m.limit_backward=t,m.cursor=m.limit,m.ket=m.cursor,e=m.find_among_b(i,37),m.limit_backward=r,e))switch(m.bra=m.cursor,e){case 1:m.slice_del();break;case 2:m.in_grouping_b(u,98,121)&&m.slice_del()}}(),m.cursor=m.limit,e=m.limit_backward,m.cursor>=t&&(m.limit_backward=t,m.cursor=m.limit,m.find_among_b(s,7)&&(m.cursor=m.limit,m.ket=m.cursor,m.cursor>m.limit_backward&&(m.bra=--m.cursor,m.slice_del())),m.limit_backward=e),m.cursor=m.limit,function(){var e,r;if(m.cursor>=t){if(r=m.limit_backward,m.limit_backward=t,m.cursor=m.limit,m.ket=m.cursor,e=m.find_among_b(a,5))switch(m.bra=m.cursor,e){case 1:m.slice_del();break;case 2:m.slice_from("lös");break;case 3:m.slice_from("full")}m.limit_backward=r}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.th.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.th.js new file mode 100644 index 0000000000..ee8ef373a0 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.th.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(t){if(void 0===t)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===t.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==t.version[0];t.th=function(){this.pipeline.reset(),this.pipeline.add(t.th.trimmer),i?this.tokenizer=t.th.tokenizer:(t.tokenizer&&(t.tokenizer=t.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=t.th.tokenizer))},t.th.wordCharacters="[฀-๿]",t.th.trimmer=t.trimmerSupport.generateTrimmer(t.th.wordCharacters),t.Pipeline.registerFunction(t.th.trimmer,"trimmer-th");var n=t.wordcut;n.init(),t.th.tokenizer=function(e){if(!arguments.length||null==e||null==e)return[];if(Array.isArray(e))return e.map(function(e){return i?new t.Token(e):e});var r=e.toString().replace(/^\s+/,"");return n.cut(r).split("|")}}}); \ No newline at end of file diff --git a/docs/v1.2.0/_static/javascripts/lunr/lunr.tr.js b/docs/v1.2.0/_static/javascripts/lunr/lunr.tr.js new file mode 100644 index 0000000000..e8fb5a7df6 --- /dev/null +++ b/docs/v1.2.0/_static/javascripts/lunr/lunr.tr.js @@ -0,0 +1 @@ +!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var mr,dr,i;r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.tr.stemmer))},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=(mr=r.stemmerSupport.Among,dr=r.stemmerSupport.SnowballProgram,i=new function(){var t,r=[new mr("m",-1,-1),new mr("n",-1,-1),new mr("miz",-1,-1),new mr("niz",-1,-1),new mr("muz",-1,-1),new mr("nuz",-1,-1),new mr("müz",-1,-1),new mr("nüz",-1,-1),new mr("mız",-1,-1),new mr("nız",-1,-1)],i=[new mr("leri",-1,-1),new mr("ları",-1,-1)],e=[new mr("ni",-1,-1),new mr("nu",-1,-1),new mr("nü",-1,-1),new mr("nı",-1,-1)],n=[new mr("in",-1,-1),new mr("un",-1,-1),new mr("ün",-1,-1),new mr("ın",-1,-1)],u=[new mr("a",-1,-1),new mr("e",-1,-1)],o=[new mr("na",-1,-1),new mr("ne",-1,-1)],s=[new mr("da",-1,-1),new mr("ta",-1,-1),new mr("de",-1,-1),new mr("te",-1,-1)],c=[new mr("nda",-1,-1),new mr("nde",-1,-1)],l=[new mr("dan",-1,-1),new mr("tan",-1,-1),new mr("den",-1,-1),new mr("ten",-1,-1)],a=[new mr("ndan",-1,-1),new mr("nden",-1,-1)],m=[new mr("la",-1,-1),new mr("le",-1,-1)],d=[new mr("ca",-1,-1),new mr("ce",-1,-1)],f=[new mr("im",-1,-1),new mr("um",-1,-1),new mr("üm",-1,-1),new mr("ım",-1,-1)],b=[new mr("sin",-1,-1),new mr("sun",-1,-1),new mr("sün",-1,-1),new mr("sın",-1,-1)],w=[new mr("iz",-1,-1),new mr("uz",-1,-1),new mr("üz",-1,-1),new mr("ız",-1,-1)],_=[new mr("siniz",-1,-1),new mr("sunuz",-1,-1),new mr("sünüz",-1,-1),new mr("sınız",-1,-1)],k=[new mr("lar",-1,-1),new mr("ler",-1,-1)],p=[new mr("niz",-1,-1),new mr("nuz",-1,-1),new mr("nüz",-1,-1),new mr("nız",-1,-1)],g=[new mr("dir",-1,-1),new mr("tir",-1,-1),new mr("dur",-1,-1),new mr("tur",-1,-1),new mr("dür",-1,-1),new mr("tür",-1,-1),new mr("dır",-1,-1),new mr("tır",-1,-1)],y=[new mr("casına",-1,-1),new mr("cesine",-1,-1)],z=[new mr("di",-1,-1),new mr("ti",-1,-1),new mr("dik",-1,-1),new mr("tik",-1,-1),new mr("duk",-1,-1),new mr("tuk",-1,-1),new mr("dük",-1,-1),new mr("tük",-1,-1),new mr("dık",-1,-1),new mr("tık",-1,-1),new mr("dim",-1,-1),new mr("tim",-1,-1),new mr("dum",-1,-1),new mr("tum",-1,-1),new mr("düm",-1,-1),new mr("tüm",-1,-1),new mr("dım",-1,-1),new mr("tım",-1,-1),new mr("din",-1,-1),new mr("tin",-1,-1),new mr("dun",-1,-1),new mr("tun",-1,-1),new mr("dün",-1,-1),new mr("tün",-1,-1),new mr("dın",-1,-1),new mr("tın",-1,-1),new mr("du",-1,-1),new mr("tu",-1,-1),new mr("dü",-1,-1),new mr("tü",-1,-1),new mr("dı",-1,-1),new mr("tı",-1,-1)],h=[new mr("sa",-1,-1),new mr("se",-1,-1),new mr("sak",-1,-1),new mr("sek",-1,-1),new mr("sam",-1,-1),new mr("sem",-1,-1),new mr("san",-1,-1),new mr("sen",-1,-1)],v=[new mr("miş",-1,-1),new mr("muş",-1,-1),new mr("müş",-1,-1),new mr("mış",-1,-1)],q=[new mr("b",-1,1),new mr("c",-1,2),new mr("d",-1,3),new mr("ğ",-1,4)],C=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],P=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],F=[65],S=[65],W=[["a",[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["e",[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],101,252],["ı",[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["i",[17],101,105],["o",F,111,117],["ö",S,246,252],["u",F,111,117]],L=new dr;function x(r,i,e){for(;;){var n=L.limit-L.cursor;if(L.in_grouping_b(r,i,e)){L.cursor=L.limit-n;break}if(L.cursor=L.limit-n,L.cursor<=L.limit_backward)return!1;L.cursor--}return!0}function A(){var r,i;r=L.limit-L.cursor,x(C,97,305);for(var e=0;eL.limit_backward&&(L.cursor--,e=L.limit-L.cursor,i()))?(L.cursor=L.limit-e,!0):(L.cursor=L.limit-n,r()?(L.cursor=L.limit-n,!1):(L.cursor=L.limit-n,!(L.cursor<=L.limit_backward)&&(L.cursor--,!!i()&&(L.cursor=L.limit-n,!0))))}function j(r){return E(r,function(){return L.in_grouping_b(C,97,305)})}function T(){return j(function(){return L.eq_s_b(1,"n")})}function Z(){return j(function(){return L.eq_s_b(1,"y")})}function B(){return L.find_among_b(r,10)&&E(function(){return L.in_grouping_b(P,105,305)},function(){return L.out_grouping_b(C,97,305)})}function D(){return A()&&L.in_grouping_b(P,105,305)&&j(function(){return L.eq_s_b(1,"s")})}function G(){return L.find_among_b(i,2)}function H(){return A()&&L.find_among_b(n,4)&&T()}function I(){return A()&&L.find_among_b(s,4)}function J(){return A()&&L.find_among_b(c,2)}function K(){return A()&&L.find_among_b(f,4)&&Z()}function M(){return A()&&L.find_among_b(b,4)}function N(){return A()&&L.find_among_b(w,4)&&Z()}function O(){return L.find_among_b(_,4)}function Q(){return A()&&L.find_among_b(k,2)}function R(){return A()&&L.find_among_b(g,8)}function U(){return A()&&L.find_among_b(z,32)&&Z()}function V(){return L.find_among_b(h,8)&&Z()}function X(){return A()&&L.find_among_b(v,4)&&Z()}function Y(){var r=L.limit-L.cursor;return!(X()||(L.cursor=L.limit-r,U()||(L.cursor=L.limit-r,V()||(L.cursor=L.limit-r,L.eq_s_b(3,"ken")&&Z()))))}function $(){if(L.find_among_b(y,2)){var r=L.limit-L.cursor;if(O()||(L.cursor=L.limit-r,Q()||(L.cursor=L.limit-r,K()||(L.cursor=L.limit-r,M()||(L.cursor=L.limit-r,N()||(L.cursor=L.limit-r))))),X())return!1}return!0}function rr(){if(!A()||!L.find_among_b(p,4))return!0;var r=L.limit-L.cursor;return!U()&&(L.cursor=L.limit-r,!V())}function ir(){var r,i,e,n=L.limit-L.cursor;if(L.ket=L.cursor,t=!0,Y()&&(L.cursor=L.limit-n,$()&&(L.cursor=L.limit-n,function(){if(Q()){L.bra=L.cursor,L.slice_del();var r=L.limit-L.cursor;return L.ket=L.cursor,R()||(L.cursor=L.limit-r,U()||(L.cursor=L.limit-r,V()||(L.cursor=L.limit-r,X()||(L.cursor=L.limit-r)))),t=!1}return!0}()&&(L.cursor=L.limit-n,rr()&&(L.cursor=L.limit-n,e=L.limit-L.cursor,!(O()||(L.cursor=L.limit-e,N()||(L.cursor=L.limit-e,M()||(L.cursor=L.limit-e,K()))))||(L.bra=L.cursor,L.slice_del(),i=L.limit-L.cursor,L.ket=L.cursor,X()||(L.cursor=L.limit-i),0)))))){if(L.cursor=L.limit-n,!R())return;L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,r=L.limit-L.cursor,O()||(L.cursor=L.limit-r,Q()||(L.cursor=L.limit-r,K()||(L.cursor=L.limit-r,M()||(L.cursor=L.limit-r,N()||(L.cursor=L.limit-r))))),X()||(L.cursor=L.limit-r)}L.bra=L.cursor,L.slice_del()}function er(){var r,i,e,n;if(L.ket=L.cursor,L.eq_s_b(2,"ki")){if(r=L.limit-L.cursor,I())return L.bra=L.cursor,L.slice_del(),i=L.limit-L.cursor,L.ket=L.cursor,Q()?(L.bra=L.cursor,L.slice_del(),er()):(L.cursor=L.limit-i,B()&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er()))),!0;if(L.cursor=L.limit-r,H()){if(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,e=L.limit-L.cursor,G())L.bra=L.cursor,L.slice_del();else{if(L.cursor=L.limit-e,L.ket=L.cursor,!B()&&(L.cursor=L.limit-e,!D()&&(L.cursor=L.limit-e,!er())))return!0;L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())}return!0}if(L.cursor=L.limit-r,J()){if(n=L.limit-L.cursor,G())L.bra=L.cursor,L.slice_del();else if(L.cursor=L.limit-n,D())L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er());else if(L.cursor=L.limit-n,!er())return!1;return!0}}return!1}function nr(r){if(L.ket=L.cursor,!J()&&(L.cursor=L.limit-r,!A()||!L.find_among_b(o,2)))return!1;var i=L.limit-L.cursor;if(G())L.bra=L.cursor,L.slice_del();else if(L.cursor=L.limit-i,D())L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er());else if(L.cursor=L.limit-i,!er())return!1;return!0}function tr(r){if(L.ket=L.cursor,!(A()&&L.find_among_b(a,2)||(L.cursor=L.limit-r,A()&&L.find_among_b(e,4))))return!1;var i=L.limit-L.cursor;return!(!D()&&(L.cursor=L.limit-i,!G()))&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er()),!0)}function ur(){var r,i=L.limit-L.cursor;return L.ket=L.cursor,!!(H()||(L.cursor=L.limit-i,A()&&L.find_among_b(m,2)&&Z()))&&(L.bra=L.cursor,L.slice_del(),r=L.limit-L.cursor,L.ket=L.cursor,!(!Q()||(L.bra=L.cursor,L.slice_del(),!er()))||(L.cursor=L.limit-r,L.ket=L.cursor,(B()||(L.cursor=L.limit-r,D()||(L.cursor=L.limit-r,er())))&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())),!0))}function or(){var r,i,e=L.limit-L.cursor;if(L.ket=L.cursor,!(I()||(L.cursor=L.limit-e,A()&&L.in_grouping_b(P,105,305)&&Z()||(L.cursor=L.limit-e,A()&&L.find_among_b(u,2)&&Z()))))return!1;if(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,r=L.limit-L.cursor,B())L.bra=L.cursor,L.slice_del(),i=L.limit-L.cursor,L.ket=L.cursor,Q()||(L.cursor=L.limit-i);else if(L.cursor=L.limit-r,!Q())return!0;return L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,er(),!0}function sr(){var r,i,e=L.limit-L.cursor;if(L.ket=L.cursor,Q())return L.bra=L.cursor,L.slice_del(),void er();if(L.cursor=L.limit-e,L.ket=L.cursor,A()&&L.find_among_b(d,2)&&T())if(L.bra=L.cursor,L.slice_del(),r=L.limit-L.cursor,L.ket=L.cursor,G())L.bra=L.cursor,L.slice_del();else{if(L.cursor=L.limit-r,L.ket=L.cursor,!B()&&(L.cursor=L.limit-r,!D())){if(L.cursor=L.limit-r,L.ket=L.cursor,!Q())return;if(L.bra=L.cursor,L.slice_del(),!er())return}L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())}else if(L.cursor=L.limit-e,!nr(e)&&(L.cursor=L.limit-e,!tr(e))){if(L.cursor=L.limit-e,L.ket=L.cursor,A()&&L.find_among_b(l,4))return L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,i=L.limit-L.cursor,void(B()?(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())):(L.cursor=L.limit-i,Q()?(L.bra=L.cursor,L.slice_del()):L.cursor=L.limit-i,er()));if(L.cursor=L.limit-e,!ur()){if(L.cursor=L.limit-e,G())return L.bra=L.cursor,void L.slice_del();L.cursor=L.limit-e,er()||(L.cursor=L.limit-e,or()||(L.cursor=L.limit-e,L.ket=L.cursor,(B()||(L.cursor=L.limit-e,D()))&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er()))))}}}function cr(r,i,e){if(L.cursor=L.limit-r,function(){for(;;){var r=L.limit-L.cursor;if(L.in_grouping_b(C,97,305)){L.cursor=L.limit-r;break}if(L.cursor=L.limit-r,L.cursor<=L.limit_backward)return!1;L.cursor--}return!0}()){var n=L.limit-L.cursor;if(!L.eq_s_b(1,i)&&(L.cursor=L.limit-n,!L.eq_s_b(1,e)))return!0;L.cursor=L.limit-r;var t=L.cursor;return L.insert(L.cursor,L.cursor,e),L.cursor=t,!1}return!0}function lr(r,i,e){for(;!L.eq_s(i,e);){if(L.cursor>=L.limit)return!0;L.cursor++}return i!=L.limit||(L.cursor=r,!1)}function ar(){var r,i,e=L.cursor;return!(!lr(r=L.cursor,2,"ad")||!lr(L.cursor=r,5,"soyad"))&&(L.limit_backward=e,L.cursor=L.limit,i=L.limit-L.cursor,(L.eq_s_b(1,"d")||(L.cursor=L.limit-i,L.eq_s_b(1,"g")))&&cr(i,"a","ı")&&cr(i,"e","i")&&cr(i,"o","u")&&cr(i,"ö","ü"),L.cursor=L.limit,function(){var r;if(L.ket=L.cursor,r=L.find_among_b(q,4))switch(L.bra=L.cursor,r){case 1:L.slice_from("p");break;case 2:L.slice_from("ç");break;case 3:L.slice_from("t");break;case 4:L.slice_from("k")}}(),!0)}this.setCurrent=function(r){L.setCurrent(r)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){return!!(function(){for(var r,i=L.cursor,e=2;;){for(r=L.cursor;!L.in_grouping(C,97,305);){if(L.cursor>=L.limit)return L.cursor=r,!(0e&&(this._events[n].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[n].length),"function"==typeof console.trace&&console.trace()));return this},r.prototype.once=function(n,t){if(!a(t))throw TypeError("listener must be a function");var e=!1;function r(){this.removeListener(n,r),e||(e=!0,t.apply(this,arguments))}return r.listener=t,this.on(n,r),this},r.prototype.removeListener=function(n,t){var e,r,i,o;if(!a(t))throw TypeError("listener must be a function");if(!this._events||!this._events[n])return this;if(i=(e=this._events[n]).length,r=-1,e===t||a(e.listener)&&e.listener===t)delete this._events[n],this._events.removeListener&&this.emit("removeListener",n,t);else if(c(e)){for(o=i;0this.maxLength)return i();if(!this.stat&&p(this.cache,o)){var t=this.cache[o];if(Array.isArray(t)&&(t="DIR"),!n||"DIR"===t)return i(null,t);if(n&&"FILE"===t)return i()}var e=this.statCache[o];if(void 0!==e){if(!1===e)return i(null,e);var s=e.isDirectory()?"DIR":"FILE";return n&&"FILE"===s?i():i(null,s,e)}var a=this,c=d("stat\0"+o,function(n,e){{if(e&&e.isSymbolicLink())return u.stat(o,function(n,t){n?a._stat2(r,o,null,e,i):a._stat2(r,o,n,t,i)});a._stat2(r,o,n,e,i)}});c&&u.lstat(o,c)},b.prototype._stat2=function(n,t,e,r,i){if(e)return this.statCache[t]=!1,i();var o="/"===n.slice(-1);if(this.statCache[t]=r,"/"===t.slice(-1)&&!r.isDirectory())return i(null,!1,r);var s=r.isDirectory()?"DIR":"FILE";return this.cache[t]=this.cache[t]||s,o&&"DIR"!==s?i():i(null,s,r)}}).call(this,_("_process"))},{"./common.js":15,"./sync.js":17,_process:24,assert:9,events:14,fs:12,inflight:18,inherits:19,minimatch:20,once:21,path:22,"path-is-absolute":23,util:28}],17:[function(e,r,n){(function(i){(r.exports=n).GlobSync=h;var s=e("fs"),c=e("minimatch"),g=(c.Minimatch,e("./glob.js").Glob,e("util"),e("path")),u=e("assert"),l=e("path-is-absolute"),t=e("./common.js"),o=(t.alphasort,t.alphasorti,t.setopts),a=t.ownProp,f=t.childrenIgnored;function n(n,t){if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");return new h(n,t).found}function h(n,t){if(!n)throw new Error("must provide pattern");if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof h))return new h(n,t);if(o(this,n,t),this.noprocess)return this;var e=this.minimatch.set.length;this.matches=new Array(e);for(var r=0;rthis.maxLength)return!1;if(!this.stat&&a(this.cache,t)){var r=this.cache[t];if(Array.isArray(r)&&(r="DIR"),!e||"DIR"===r)return r;if(e&&"FILE"===r)return!1}var i=this.statCache[t];if(!i){var o;try{o=s.lstatSync(t)}catch(n){return!1}if(o.isSymbolicLink())try{i=s.statSync(t)}catch(n){i=o}else i=o}r=(this.statCache[t]=i).isDirectory()?"DIR":"FILE";return this.cache[t]=this.cache[t]||r,(!e||"DIR"===r)&&r},h.prototype._mark=function(n){return t.mark(this,n)},h.prototype._makeAbs=function(n){return t.makeAbs(this,n)}}).call(this,e("_process"))},{"./common.js":15,"./glob.js":16,_process:24,assert:9,fs:12,minimatch:20,path:22,"path-is-absolute":23,util:28}],18:[function(t,r,n){(function(s){var n=t("wrappy"),a=Object.create(null),e=t("once");r.exports=n(function(n,t){return a[n]?(a[n].push(t),null):(a[n]=[t],o=n,e(function n(){var t=a[o],e=t.length,r=function(n){for(var t=n.length,e=[],r=0;re?(t.splice(0,e),s.nextTick(function(){n.apply(null,r)})):delete a[o]}}));var o})}).call(this,t("_process"))},{_process:24,once:21,wrappy:29}],19:[function(n,t,e){"function"==typeof Object.create?t.exports=function(n,t){n.super_=t,n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(n,t){n.super_=t;var e=function(){};e.prototype=t.prototype,n.prototype=new e,n.prototype.constructor=n}},{}],20:[function(n,t,e){(t.exports=s).Minimatch=i;var u={sep:"/"};try{u=n("path")}catch(n){}var M=s.GLOBSTAR=i.GLOBSTAR={},r=n("brace-expansion"),C={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},P="[^/]",z=P+"*?",B="().*{}+?[]^$\\!".split("").reduce(function(n,t){return n[t]=!0,n},{});var l=/\/+/;function o(t,e){t=t||{},e=e||{};var r={};return Object.keys(e).forEach(function(n){r[n]=e[n]}),Object.keys(t).forEach(function(n){r[n]=t[n]}),r}function s(n,t,e){if("string"!=typeof t)throw new TypeError("glob pattern string required");return e||(e={}),!(!e.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===n:new i(t,e).match(n))}function i(n,t){if(!(this instanceof i))return new i(n,t);if("string"!=typeof n)throw new TypeError("glob pattern string required");t||(t={}),n=n.trim(),"/"!==u.sep&&(n=n.split(u.sep).join("/")),this.options=t,this.set=[],this.pattern=n,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function a(n,t){if(t||(t=this instanceof i?this.options:{}),void 0===(n=void 0===n?this.pattern:n))throw new TypeError("undefined pattern");return t.nobrace||!n.match(/\{.*\}/)?[n]:r(n)}s.filter=function(r,i){return i=i||{},function(n,t,e){return s(n,r,i)}},s.defaults=function(r){if(!r||!Object.keys(r).length)return s;var i=s,n=function(n,t,e){return i.minimatch(n,t,o(r,e))};return n.Minimatch=function(n,t){return new i.Minimatch(n,o(r,t))},n},i.defaults=function(n){return n&&Object.keys(n).length?s.defaults(n).Minimatch:i},i.prototype.debug=function(){},i.prototype.make=function(){if(this._made)return;var n=this.pattern,t=this.options;if(!t.nocomment&&"#"===n.charAt(0))return void(this.comment=!0);if(!n)return void(this.empty=!0);this.parseNegate();var e=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error);this.debug(this.pattern,e),e=this.globParts=e.map(function(n){return n.split(l)}),this.debug(this.pattern,e),e=e.map(function(n,t,e){return n.map(this.parse,this)},this),this.debug(this.pattern,e),e=e.filter(function(n){return-1===n.indexOf(!1)}),this.debug(this.pattern,e),this.set=e},i.prototype.parseNegate=function(){var n=this.pattern,t=!1,e=this.options,r=0;if(e.nonegate)return;for(var i=0,o=n.length;i>> no match, partial?",n,f,t,h),f!==s))}if("string"==typeof u?(c=r.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,c)):(c=l.match(u),this.debug("pattern match",u,l,c)),!c)return!1}if(i===s&&o===a)return!0;if(i===s)return e;if(o===a)return i===s-1&&""===n[i];throw new Error("wtf?")}},{"brace-expansion":11,path:22}],21:[function(n,t,e){var r=n("wrappy");function i(n){var t=function(){return t.called?t.value:(t.called=!0,t.value=n.apply(this,arguments))};return t.called=!1,t}function o(n){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=n.apply(this,arguments)},e=n.name||"Function wrapped with `once`";return t.onceError=e+" shouldn't be called more than once",t.called=!1,t}t.exports=r(i),t.exports.strict=r(o),i.proto=i(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return o(this)},configurable:!0})})},{wrappy:29}],22:[function(n,t,u){(function(i){function o(n,t){for(var e=0,r=n.length-1;0<=r;r--){var i=n[r];"."===i?n.splice(r,1):".."===i?(n.splice(r,1),e++):e&&(n.splice(r,1),e--)}if(t)for(;e--;e)n.unshift("..");return n}var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(n){return t.exec(n).slice(1)};function a(n,t){if(n.filter)return n.filter(t);for(var e=[],r=0;r":">",'"':""","'":"'","`":"`"},D=d.invert(N),F=function(t){var e=function(n){return t[n]},n="(?:"+d.keys(t).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(n){return n=null==n?"":""+n,r.test(n)?n.replace(i,e):n}};d.escape=F(N),d.unescape=F(D),d.result=function(n,t,e){var r=null==n?void 0:n[t];return void 0===r&&(r=e),d.isFunction(r)?r.call(n):r};var M=0;d.uniqueId=function(n){var t=++M+"";return n?n+t:t},d.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var C=/(.)^/,P={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},z=/\\|'|\r|\n|\u2028|\u2029/g,B=function(n){return"\\"+P[n]};d.template=function(o,n,t){!n&&t&&(n=t),n=d.defaults({},n,d.templateSettings);var e=RegExp([(n.escape||C).source,(n.interpolate||C).source,(n.evaluate||C).source].join("|")+"|$","g"),s=0,a="__p+='";o.replace(e,function(n,t,e,r,i){return a+=o.slice(s,i).replace(z,B),s=i+n.length,t?a+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":e?a+="'+\n((__t=("+e+"))==null?'':__t)+\n'":r&&(a+="';\n"+r+"\n__p+='"),n}),a+="';\n",n.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{var r=new Function(n.variable||"obj","_",a)}catch(n){throw n.source=a,n}var i=function(n){return r.call(this,n,d)},c=n.variable||"obj";return i.source="function("+c+"){\n"+a+"}",i},d.chain=function(n){var t=d(n);return t._chain=!0,t};var U=function(n,t){return n._chain?d(t).chain():t};d.mixin=function(e){d.each(d.functions(e),function(n){var t=d[n]=e[n];d.prototype[n]=function(){var n=[this._wrapped];return i.apply(n,arguments),U(this,t.apply(d,n))}})},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=r[t];d.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],U(this,n)}}),d.each(["concat","join","slice"],function(n){var t=r[n];d.prototype[n]=function(){return U(this,t.apply(this._wrapped,arguments))}}),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return""+this._wrapped}}).call(this)},{}],26:[function(n,t,e){arguments[4][19][0].apply(e,arguments)},{dup:19}],27:[function(n,t,e){t.exports=function(n){return n&&"object"==typeof n&&"function"==typeof n.copy&&"function"==typeof n.fill&&"function"==typeof n.readUInt8}},{}],28:[function(h,n,k){(function(r,i){var a=/%[sdj%]/g;k.format=function(n){if(!_(n)){for(var t=[],e=0;e elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.5.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.5 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2020-03-14 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem.namespaceURI, + docElem = ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + return result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px"; + tr.style.height = "1px"; + trChild.style.height = "9px"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( + dataPriv.get( cur, "events" ) || Object.create( null ) + )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script + if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

torchtrtc

+

torchtrtc is a CLI application for using the Torch-TensorRT compiler. It serves as an easy way to compile a +TorchScript Module with Torch-TensorRT from the command-line to quickly check support or as part of +a deployment pipeline. All basic features of the compiler are supported including post training +quantization (though you must already have a calibration cache file to use the PTQ feature). The compiler can +output two formats, either a TorchScript program with the TensorRT engine embedded or +the TensorRT engine itself as a PLAN file.

+

All that is required to run the program after compilation is for C++ linking against libtorchtrt.so +or in Python importing the torch_tensorrt package. All other aspects of using compiled modules are identical +to standard TorchScript. Load with torch.jit.load() and run like you would run any other module.

+
torchtrtc [input_file_path] [output_file_path]
+  [input_specs...] {OPTIONS}
+
+  torchtrtc is a compiler for TorchScript, it will compile and optimize
+  TorchScript programs to run on NVIDIA GPUs using TensorRT
+
+OPTIONS:
+
+    -h, --help                        Display this help menu
+    Verbiosity of the compiler
+      -v, --verbose                     Dumps debugging information about the
+                                        compilation process onto the console
+      -w, --warnings                    Disables warnings generated during
+                                        compilation onto the console (warnings
+                                        are on by default)
+      --i, --info                       Dumps info messages generated during
+                                        compilation onto the console
+    --build-debuggable-engine         Creates a debuggable engine
+    --allow-gpu-fallback              (Only used when targeting DLA
+                                      (device-type)) Lets engine run layers on
+                                      GPU if they are not supported on DLA
+    --require-full-compilation        Require that the model should be fully
+                                      compiled to TensorRT or throw an error
+    --check-method-support=[method_name]
+                                      Check the support for end to end
+                                      compilation of a specified method in the
+                                      TorchScript module
+    --disable-tf32                    Prevent Float32 layers from using the
+                                      TF32 data format
+    --sparse-weights                  Enable sparsity for weights of conv and
+                                      FC layers
+    -p[precision...],
+    --enable-precision=[precision...] (Repeatable) Enabling an operating
+                                      precision for kernels to use when
+                                      building the engine (Int8 requires a
+                                      calibration-cache argument) [ float |
+                                      float32 | f32 | fp32 | half | float16 |
+                                      f16 | fp16 | int8 | i8 | char ]
+                                      (default: float)
+    -d[type], --device-type=[type]    The type of device the engine should be
+                                      built for [ gpu | dla ] (default: gpu)
+    --gpu-id=[gpu_id]                 GPU id if running on multi-GPU platform
+                                      (defaults to 0)
+    --dla-core=[dla_core]             DLACore id if running on available DLA
+                                      (defaults to 0)
+    --engine-capability=[capability]  The type of device the engine should be
+                                      built for [ standard | safety |
+                                      dla_standalone ]
+    --calibration-cache-file=[file_path]
+                                      Path to calibration cache file to use
+                                      for post training quantization
+    --teo=[op_name...],
+    --torch-executed-op=[op_name...]  (Repeatable) Operator in the graph that
+                                      should always be run in PyTorch for
+                                      execution (partial compilation must be
+                                      enabled)
+    --tem=[module_name...],
+    --torch-executed-mod=[module_name...]
+                                      (Repeatable) Module that should always
+                                      be run in Pytorch for execution (partial
+                                      compilation must be enabled)
+    --mbs=[num_ops],
+    --min-block-size=[num_ops]        Minimum number of contiguous TensorRT
+                                      supported ops to compile a subgraph to
+                                      TensorRT
+    --embed-engine                    Whether to treat input file as a
+                                      serialized TensorRT engine and embed it
+                                      into a TorchScript module (device spec
+                                      must be provided)
+    --num-avg-timing-iters=[num_iters]
+                                      Number of averaging timing iterations
+                                      used to select kernels
+    --workspace-size=[workspace_size] Maximum size of workspace given to
+                                      TensorRT
+    --dla-sram-size=[dla_sram_size]   Fast software managed RAM used by DLA
+                                      to communicate within a layer.
+    --dla-local-dram-size=[dla_local_dram_size]  Host RAM used by DLA to share
+                                      intermediate tensor data across operations.
+    --dla-global-dram-size=[dla_global_dram_size] Host RAM used by DLA to store
+                                      weights and metadata for execution
+    --atol=[atol]                     Absolute tolerance threshold for acceptable
+                                      numerical deviation from standard torchscript
+                                      output (default 1e-8)
+    --rtol=[rtol]                     Relative tolerance threshold for acceptable
+                                      numerical deviation from standard torchscript
+                                      output  (default 1e-5)
+    --no-threshold-check              Skip checking threshold compliance
+    --truncate-long-double,
+    --truncate, --truncate-64bit      Truncate weights that are provided in
+                                      64bit to 32bit (Long, Double to Int,
+                                      Float)
+    --save-engine                     Instead of compiling a full a
+                                      TorchScript program, save the created
+                                      engine to the path specified as the
+                                      output path
+    --custom-torch-ops                (repeatable) Shared object/DLL containing custom torch operators
+    --custom-converters               (repeatable) Shared object/DLL containing custom converters
+    input_file_path                   Path to input TorchScript file
+    output_file_path                  Path for compiled TorchScript (or
+                                      TensorRT engine) file
+    input_specs...                    Specs for inputs to engine, can either
+                                      be a single size or a range defined by
+                                      Min, Optimal, Max sizes, e.g.
+                                      "(N,..,C,H,W)"
+                                      "[(MIN_N,..,MIN_C,MIN_H,MIN_W);(OPT_N,..,OPT_C,OPT_H,OPT_W);(MAX_N,..,MAX_C,MAX_H,MAX_W)]".
+                                      Data Type and format can be specified by
+                                      adding an "@" followed by dtype and "%"
+                                      followed by format to the end of the
+                                      shape spec. e.g. "(3, 3, 32,
+                                      32)@f16%NHWC"
+    "--" can be used to terminate flag options and force all following
+    arguments to be treated as positional options
+
+
+

e.g.

+
torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@f16%contiguous" -p f16
+
+
+
    +
  • To include a set of custom operators

  • +
+
torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts --custom-torch-ops=<path to custom library .so file> "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@fp16%contiguous" -p f16
+
+
+
    +
  • To include a set of custom converters

  • +
+
torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts --custom-converters=<path to custom library .so file> "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@fp16%contiguous" -p f16
+
+
+
+ + +
+ +
+ + +
+
+ +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/contributors/conversion.html b/docs/v1.2.0/contributors/conversion.html new file mode 100644 index 0000000000..9045bbc78e --- /dev/null +++ b/docs/v1.2.0/contributors/conversion.html @@ -0,0 +1,726 @@ + + + + + + + + + + + + + Conversion Phase — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Conversion Phase

+

Once the graph has be simplified to a form thats easy to convert, we then set up a conversion context +to manage the construction of a TensorRT INetworkDefinition from the blocks nodes. The conversion context +records the set of converted nodes, block inputs and outputs and other information about the conversion +of the graph. This data is then used to help converters link together layers and also hold build time +information like weights required to construct the engine. After the context is created, the block +converter starts iterating through the list of nodes, for each node, the converter will look at its +inputs and assemble an array of resources to pass to the converter. Inputs can be in a couple of states:

+
    +
  • The input is a block parameter

    +
      +
    • In this case the input should have already been stored in as an IValue in the +conversion context evaluated_value_map. The conversion stage will add the IValue to the list of args for the +converter

    • +
    +
  • +
  • The input is an output of a node that has already been converted

    +
      +
    • In this case the ITensor of the output has added to the value_tensor_map, +The conversion stage will add the ITensor to the list of args for the converter

    • +
    +
  • +
  • The input is from a node that produces a static value

    +
      +
    • There are nodes that produce static values, typically used to store parameters for operators, we need to +evaluate these nodes at conversion time to be able to convert a op. The conversion system will look for a node +evaluator in the evaluator registry and run it on the node. The IValue produced will be entered in the +conversion context evaluated_value_map and added to the list of args for the converter. If the node +to be evaluated takes inputs, the conversion stage will recursively resolve dependencies until the final +static value has been evaluated

    • +
    +
  • +
  • The input is from a node that has not been converted

    +
      +
    • Torch-TensorRT will error out here

    • +
    +
  • +
+
+

Node Evaluation

+

There are some nodes that contain static data and are resources for operations. These can be evaluated at +conversion time so that you can use those values when doing node conversion. In theory any node kind can have +a conversion time evaluator as long as it produces a static IValue, This IValue will be stored in the conversion +context so it can be consumed by any node that takes the evaluated node as an input. Common node types are +prim::Constant which emits a constant and prim::ListConstruct which makes lists.

+
+
+

Node Converters

+

Node converters map JIT nodes to layers or subgraphs of layers. They then associate outputs from the JIT graph +and the TRT graph together in the conversion context. This allows the conversion stage to assemble the inputs +for the next node. There are some cases where a node produces an output that is not a Tensor but a static result +from a calculation done on inputs which need to be converted first. In this case the converter may associate the outputs in +the evaluated_value_map instead of the value_tensor_map. For more information take a look at: Writing Converters

+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/contributors/lowering.html b/docs/v1.2.0/contributors/lowering.html new file mode 100644 index 0000000000..8d07aea200 --- /dev/null +++ b/docs/v1.2.0/contributors/lowering.html @@ -0,0 +1,888 @@ + + + + + + + + + + + + + Lowering Phase — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Lowering Phase

+

The lowering phase is made up out of passes which are operations which map a graph from a high level representation +to a lower level one. Each pass does something specific for instance inlining method calls. The idea is to +significantly reduce what the conversion phase needs to be able to handle when actually mapping to TensorRT. +We aim for closer to 1->1 op conversion vs looking for applicable subgraphs, limiting the number of converters and +reduce the scope of each converter.

+

You can see the effects of each pass by setting the log level to Level::kGraph

+
+

Passes Used

+
+

EliminateCommonSubexpression

+
+
+

Removes common subexpressions in the graph

+
+
+

Eliminate Dead Code

+
+
+

Dead code elimination will check if a node has side effects and not delete it if it does.

+
+
+

Eliminate Exeception Or Pass Pattern

+
+
+

A common pattern in scripted modules are dimension gaurds which will throw execptions if +the input dimension is not what was expected.

+
%1013 : bool = aten::ne(%1012, %24) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:248:11
+    = prim::If(%1013) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:248:8
+    block0():
+        = prim::RaiseException(%23) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py:249:12
+    -> ()
+    block1():
+    -> ()
+
+
+

Since we are resolving all of this at compile time and there are no execptions in the TensorRT graph, we just remove it.

+
+
+

Eliminate Redundant Gaurds

+
+
+

Eliminate redundant guards for ops whose outputs are fully determined by their inputs i.e. if inputs to such ops are +guarded we are allowed to remove a guard on ops’ outputs

+
+
+

Freeze Module

+
+
+

Freeze attributes and inline constants and modules. Propogates constants in the graph.

+
+
+

Fuse AddMM Branches

+
+
+

A common pattern in scripted modules is tensors of different dimensions use different constructions for implementing linear layers. We fuse these +different varients into a single one that will get caught by the Unpack AddMM pass.

+
%ret : Tensor = prim::If(%622)
+block0():
+  %ret.1 : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3)
+  -> (%ret.1)
+block1():
+  %output.1 : Tensor = aten::matmul(%x9.1, %3677)
+  %output0.1 : Tensor = aten::add_(%output.1, %self.fc.bias, %3)
+  -> (%output0.1)
+
+
+

We fuse this set of blocks into a graph like this:

+
%ret : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3)
+
+
+
+
+

Fuse Linear

+
+
+

Match the aten::linear pattern and fuse it into a single aten::linear +This pass fuse the addmm or matmul + add generated by JIT back to linear

+
+
+

Fuse Flatten Linear

+
+
+

TensorRT implicity flattens input layers into fully connected layers when they are higher than 1D. So when there is a +aten::flatten -> aten::linear pattern we remove the aten::flatten.

+
+
+

Lower Graph

+
+
+

Given a graph with of a method which first argument is %self, lower it to a graph where +all attributes accesses are replaced with explicit inputs of the graph +(rather than results of prim::GetAttr executed on %self). Returns a tuple +(graph, parameters) where the last module.parameters.size() inputs to the +graph are the trainable parameters used in this method. The remaining inputs +are the true inputs to the function.

+
+
+

Lower Tuples

+
+
+
    +
  • LowerSimpleTuples:

  • +
+

Removes tuples where TupleConstruct and TupleUnpack are matched but leaves tuples in place across if statements, loops, and as inputs/outputs

+
    +
  • LowerAllTuples:

  • +
+

Removes _all_ tuples and raises an error if some cannot be removed, this is used by ONNX to ensure there are not tuples before conversion, but will not work on graphs whose inputs contain tuples.

+
+
+

Module Fallback

+
+
+

Module fallback consists of two lowering passes that must be run as a pair. The first pass is run before freezing to place delimiters in the graph around modules +that should run in PyTorch. The second pass marks nodes between these delimiters after freezing to signify they should run in PyTorch.

+
    +
  • NotateModuleForFallback

  • +
+

Places delimiting nodes around module calls pre freezing to signify where in the graph nodes should run in PyTorch

+
    +
  • MarkNodesForFallback

  • +
+

Looks for delimiters then marks all nodes between the delimiters to tell partitioning to run them in PyTorch

+
+
+

Peephole Optimze

+
+
+

The intent for this optimization pass is to catch all of the small, easy to catch peephole optimizations you might be interested in doing.

+
+
Right now, it does:
    +
  • Eliminate no-op ‘expand’ nodes

  • +
  • Simply x.t().t() to x

  • +
+
+
+
+
+

Remove Contiguous

+
+
+

Removes contiguous operators since we are doing TensorRT memory is already contiguous.

+
+
+

Remove Dropout

+
+
+

Removes dropout operators since we are doing inference.

+
+
+

Remove To

+
+
+

Removes aten::to operators that do casting, since TensorRT mangages it itself. It is important that this is one of the last passes run so that +other passes have a change to move required cast operators out of the main namespace.

+
+
+

Unpack AddMM

+
+
+

Unpacks aten::addmm into aten::matmul and aten::add_ (with an additional trt::const +op to freeze the bias in the TensorRT graph). This lets us reuse the aten::matmul and aten::add_ +converters instead of needing a dedicated converter.

+
+
+

Unpack LogSoftmax

+
+
+

Unpacks aten::logsoftmax into aten::softmax and aten::log. This lets us reuse the +aten::softmax and aten::log converters instead of needing a dedicated converter.

+
+
+

Unroll Loops

+
+
+

Unrolls the operations of compatable loops (e.g. sufficently short) so that you only have to go through the loop once.

+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/contributors/partitioning.html b/docs/v1.2.0/contributors/partitioning.html new file mode 100644 index 0000000000..84173f1cbf --- /dev/null +++ b/docs/v1.2.0/contributors/partitioning.html @@ -0,0 +1,754 @@ + + + + + + + + + + + + + Partitioning Phase — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Partitioning Phase

+

The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes.

+

On a high level, Torch-TensorRT partitioning phase does the following:

+
    +
  • Segmentation. Go through the set of operators in order and verify if there is converter for each operator. Then, roughly separate the graph into parts that Torch-TensorRT can support and parts Torch-TensorRT cannot.

  • +
  • Dependency Analysis. For every to be compiled operator there is a “complete dependency graph”, which means that every input can to traced back to an input as Tensor or TensorList. Go through all segments after segmentation then do dependency analysis to ensure that there are only Tensor/TensorList inputs and outputs for TensorRT segments.

  • +
  • Shape Analysis. For each segments, figure out the input and outputs shapes starting from the provided input shape from the user. Shapes can be calculated by running the graphs with JIT.

  • +
  • Conversion. Every TensorRT segments will be converted to TensorRT engine. This part is done in compiler.cpp, but it’s still a phase in our partitioning process.

  • +
  • Stitching. Stitch all TensorRT engines with PyTorch nodes altogether.

  • +
+

Here are the brief description of these functions of each file:

+
+

PartitonInfo.h/.cpp

+
+
+

The automatic fallback APIs that is used for partitioning.

+
+
+

SegmentedBlock.h/.cpp

+
+
+

The main data structures that is used to maintain information for each segments after segmentation.

+
+
+

shape_analysis.h/.cpp

+
+
+

Code implementation to get the shapes for each segments by running them in JIT.

+
+
+

partitioning.h/.cpp

+
+
+

APIs and main code implementation for partitioning phase.

+
+
+
+

Automatic Fallback

+

To enable automatic fallback feature, you can set following attributes in Python:

+
import torch
+import torch_tensorrt as torchtrt
+
+...
+model = MyModel()
+ts_model = torch.jit.script(model)
+trt_model = torchtrt.ts.compile(model, **{
+  ...
+  "min_block_size" : 3,
+  "torch_executed_ops": ["aten::add"],
+  "torch_executed_modules": [],
+})
+
+
+
    +
  • enabled: By default automatic fallback will be off. It is enabled by setting it to True.

  • +
  • min_block_size: The minimum number of consecutive operations that must satisfy to be converted to TensorRT. For example, if it’s set to 3, then there must be 3 consecutive supported operators then this segments will be converted.

  • +
  • forced_fallback_ops: A list of strings that will be the names of operations that the user explicitly want to be in PyTorch nodes.

  • +
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+
+...
+auto in = torch::randn({1, 3, 224, 224}, {torch::kCUDA});
+
+auto mod = torch::jit::load("trt_ts_module.ts");
+auto input_sizes =  std::vector<torchtrt::InputRange>{{in.sizes()}};
+torchtrt::ts::CompileSpec cfg(input_sizes);
+cfg.min_block_size = 2;
+cfg.torch_executed_ops.push_back("aten::relu");
+auto trt_mod = torchtrt::ts::compile(mod, cfg);
+auto out = trt_mod.forward({in});
+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/contributors/phases.html b/docs/v1.2.0/contributors/phases.html new file mode 100644 index 0000000000..2306511c19 --- /dev/null +++ b/docs/v1.2.0/contributors/phases.html @@ -0,0 +1,694 @@ + + + + + + + + + + + + + Compiler Phases — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Compiler Phases

+
+
+
+

Lowering

+

Lowering Phase

+

The lowering is made up of a set of passes (some from PyTorch and some specific to Torch-TensorRT) +run over the graph IR to map the large PyTorch opset to a reduced opset that is easier to convert to +TensorRT.

+
+
+

Partitioning

+

Partitioning Phase

+

The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes.

+
+
+

Conversion

+

Conversion Phase

+

In the conversion phase we traverse the lowered graph and construct an equivalent TensorRT graph. +The conversion phase is made up of three main components, a context to manage compile time data, +a evaluator library which will execute operations that can be resolved at compile time and a converter +library which maps an op from JIT to TensorRT.

+
+
+

Compilation and Runtime

+

Deploying Torch-TensorRT Programs

+

The final compilation phase constructs a TorchScript program to run the converted TensorRT engine. It +takes a serialized engine and instantiates it within a engine manager, then the compiler will +build out a JIT graph that references this engine and wraps it in a module to return to the user. +When the user executes the module, the JIT program run in the JIT runtime extended by Torch-TensorRT with the data providied from the user.

+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/contributors/runtime.html b/docs/v1.2.0/contributors/runtime.html new file mode 100644 index 0000000000..a9a058de51 --- /dev/null +++ b/docs/v1.2.0/contributors/runtime.html @@ -0,0 +1,746 @@ + + + + + + + + + + + + + Runtime Phase — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Runtime Phase

+

The Runtime phase is responsible for constructing self standing TorchScript graphs with embedded TensorRT engines and serving as the runtime +when these engines are called. The main interface accepts a serialized TensorRT engine. The execution phase +will deserialize and wrap this engine in a class which maintains a execution context for each engine +and some metadata about its inputs and outputs and is compatable with the TorchScript interpreter so that +it can be moved around and used like other TorchScript IValues. The engine is run by providing it and inputs +to the tensorrt::execute_engine operator which will take the engine and its inputs and return the results of engine exeuction.

+
+

Background

+

PyTorch JIT’s runtime is based around a stack machine, all operators pop off arguments from the stack, pass them to +some implementation of the operator then push results back onto the stack. The actual elements of the stack +are torch::jit::IValues, the same type we evaluate in the conversion phase (the realization of the abstract +torch::jit::Value type).

+
+
+

TensorRT Engine Executor Op

+

When the Torch-TensorRT is loaded, it registers an operator in the PyTorch JIT operator library called +trt::execute_engine(Tensor[] inputs, __torch__.torch.classes.tensorrt.Engine engine) -> Tensor[] which takes an +instantiated engine and list of inputs. Compiled graphs store this engine in an attribute so that it is portable and serializable. +When the op is called, an instnantiated engine and input tensors are popped off the runtime stack. These inputs are passed into a generic engine execution function which +will run the tensors through the TensorRT engine and return new tensors as results. These tensors are pushed on to the +stack so that the next op whatever it is can use it.

+
+
+

Constructing the Resulting Graph

+

Once the engine is deserialized and instantiated, the compiler will construct a graph that will execute the engine when the module is called. +Here is an example:

+
graph(%self_1 : __torch__.torchvision.models.resnet.___torch_mangle_4847.ResNet_trt,
+  %input_0 : Tensor):
+    %1 : __torch__.torch.classes.tensorrt.Engine = prim::GetAttr[name="__torch___torchvision_models_resnet____torch_mangle_4847_ResNet_trt_engine"](%self_1)
+    %3 : Tensor[] = prim::ListConstruct(%input_0)
+    %4 : Tensor[] = trt::execute_engine(%3, %1)
+    %5 : Tensor = prim::ListUnpack(%4)
+return (%5)
+
+
+

You can see the engine attribute in the graph and the trt::execute_engine op taking a list of input tensors and an engine in +and produces a list of output tensors which is returned. When forward is called on the module this graph is executed, thereby +running the TensorRT engine.

+

In the case of multiple outputs, the compiled graph may repack output tensors into a Tuple to return back to the user.

+
graph(%self_1 : __torch__.PyTorch.Detection.SSD.src.model.SSD300_trt,
+  %input_0 : Tensor):
+    %1 : __torch__.torch.classes.tensorrt.Engine = prim::GetAttr[name="__torch___PyTorch_Detection_SSD_src_model_SSD300_trt_engine"](%self_1)
+    %3 : Tensor[] = prim::ListConstruct(%input_0)
+    %4 : Tensor[] = trt::execute_engine(%3, %1)
+    %5 : Tensor, %6 : Tensor = prim::ListUnpack(%4)
+    %7 : (Tensor, Tensor) = prim::TupleConstruct(%5, %6)
+return (%7)
+
+
+
+
+

Serialization and Deserialization

+

Serialization and deserialization of TensorRT engines embedded in TorchScript graphs are handled by the holder class for the engine and TorchBind. +When a TorchScript module is saved, the pickler will run serilization on the cuda engine and store the serialized engine in the zip file created. +When deserializing, the depickler will call a constructor for the engine holder class with the serialized engine so that it can be set up again for +execution.

+
+
+
+

ABI Versioning and Serialization Format

+

Torch-TensorRT programs are standard TorchScript with TensorRT engines as objects embedded in the graph. Therefore there is a serialization format +for the TensorRT engines. The format for Torch-TensorRT serialized programs are versioned with an “ABI” version which tells the runtime about runtime compatibility.

+

> Current ABI version is 3

+

The format is a vector of serialized strings. They encode the following information

+
    +
  • ABI Version for the program

  • +
  • Name of the TRT engine

  • +
  • Device information: Includes the target device the engine was built on, SM capability and other device information. This information is used at deserialization time to select the correct device to run the engine

  • +
  • Serialized TensorRT engine

  • +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/contributors/system_overview.html b/docs/v1.2.0/contributors/system_overview.html new file mode 100644 index 0000000000..0b9731e0bc --- /dev/null +++ b/docs/v1.2.0/contributors/system_overview.html @@ -0,0 +1,730 @@ + + + + + + + + + + + + + System Overview — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

System Overview

+

Torch-TensorRT is primarily a C++ Library with a Python API planned. We use Bazel as our build system and target Linux x86_64 and +Linux aarch64 (only natively) right now. The compiler we use is GCC 7.5.0 and the library is untested with compilers before that +version so there may be compilation errors if you try to use an older compiler.

+

The repository is structured into:

+
    +
  • core: Main compiler source code

  • +
  • cpp: C++ API

  • +
  • tests: tests of the C++ API, the core and converters

  • +
  • py: Python API

  • +
  • notebooks: Example applications built with Torch-TensorRT

  • +
  • docs: Documentation

  • +
  • docsrc: Documentation Source

  • +
  • third_party: BUILD files for dependency libraries

  • +
  • toolchains: Toolchains for different platforms

  • +
+

The C++ API is unstable and subject to change until the library matures, though most work is done under the hood in the core.

+

The core has a couple major parts: The top level compiler interface which coordinates ingesting a module, lowering, +converting and generating a new module and returning it back to the user. There are the three main phases of the +compiler, the lowering phase, the conversion phase, and the execution phase.

+
+

Compiler Phases

+
+
+
+

Lowering

+

Lowering Phase

+

The lowering is made up of a set of passes (some from PyTorch and some specific to Torch-TensorRT) +run over the graph IR to map the large PyTorch opset to a reduced opset that is easier to convert to +TensorRT.

+
+
+

Partitioning

+

Partitioning Phase

+

The phase is optional and enabled by the user. It instructs the compiler to separate nodes into ones that should run in PyTorch and ones that should run in TensorRT. +Criteria for separation include: Lack of a converter, operator is explicitly set to run in PyTorch by the user or the node has a flag which tells partitioning to +run in PyTorch by the module fallback passes.

+
+
+

Conversion

+

Conversion Phase

+

In the conversion phase we traverse the lowered graph and construct an equivalent TensorRT graph. +The conversion phase is made up of three main components, a context to manage compile time data, +a evaluator library which will execute operations that can be resolved at compile time and a converter +library which maps an op from JIT to TensorRT.

+
+
+

Compilation and Runtime

+

Deploying Torch-TensorRT Programs

+

The final compilation phase constructs a TorchScript program to run the converted TensorRT engine. It +takes a serialized engine and instantiates it within a engine manager, then the compiler will +build out a JIT graph that references this engine and wraps it in a module to return to the user. +When the user executes the module, the JIT program run in the JIT runtime extended by Torch-TensorRT with the data providied from the user.

+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/contributors/useful_links.html b/docs/v1.2.0/contributors/useful_links.html new file mode 100644 index 0000000000..f0e1695023 --- /dev/null +++ b/docs/v1.2.0/contributors/useful_links.html @@ -0,0 +1,711 @@ + + + + + + + + + + + + + Useful Links for Torch-TensorRT Development — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Useful Links for Torch-TensorRT Development
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/contributors/writing_converters.html b/docs/v1.2.0/contributors/writing_converters.html new file mode 100644 index 0000000000..ad3c8905b0 --- /dev/null +++ b/docs/v1.2.0/contributors/writing_converters.html @@ -0,0 +1,801 @@ + + + + + + + + + + + + + Writing Converters — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Writing Converters
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Writing Converters

+
+

Background

+

In the JIT IR, operations are represented as nodes in a graph. A node has inputs and outputs, represented by torch::jit::Values +which are typed abstract representation of data flowing into and out of a node. TensorRT represents its graph though the +use of nvinfer1::ILayers and nvinfer1::ITensors which are its analogues to nodes and values. The goal of +converters create new ILayers and subgraphs that do operation specified by the node and associate produced ITensors +and Values together.

+
+
+

Converters

+

Converters should be functions which will use a list of inputs (either nvinfer1::ITensors or torch::jit::IValues) to +construct an equivalent layer to the LibTorch op.

+

Converters can be registered using the RegisterNodeConversionPatterns helper class where you instantiate a +RegisterNodeConversionPatterns object and call the pattern function on it (like below) which takes a string +which describes the function schema of the op that will cause the converter to be run and a lambda or function +which will do the actual conversion:

+
+

Note the pattern function can be chained

+
+
auto acthardtanh TORCHTRT_UNUSED = RegisterNodeConversionPatterns()
+    .pattern({
+        "aten::hardtanh(Tensor self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor)",
+        [](ConversionCtx* ctx, const torch::jit::Node* n, args& args) -> bool {
+            auto in = args[0].ITensor();
+            auto min = args[1].unwrapToDouble();
+            auto max = args[2].unwrapToDouble();
+
+            auto new_layer = ctx->net->addActivation(*in, nvinfer1::ActivationType::kCLIP);
+            TORCHTRT_CHECK(new_layer, "Unable to create layer for aten::hardtanh");
+
+            new_layer->setAlpha(min);
+            new_layer->setBeta(max);
+
+            new_layer->setName(util::node_info(n).c_str());
+            auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], new_layer->getOutput(0));
+
+            LOG_DEBUG("Output shape: " << out_tensor->getDimensions());
+            return true;
+        }
+    });
+
+
+
+
+

Converter Contract

+
+

What is guaranteed to converters

+
    +
  1. In the args there will be an entry for each node input value, either a ITensor or IValue

  2. +
  3. Inputs will be provided in order according to the function schema

  4. +
+
+
+

Responsibilities of a converter

+
    +
  1. Args must be guaranteed to be a type to unwrap the Arg union without checking, typically input tensor arguments can be expected to be ITensors

  2. +
  3. Any weights or static values must guaranteed to be valid until the end of conversion time

    +
      +
    1. A helpful tool is the Weights helper class described below

    2. +
    +
  4. +
  5. Converters are expected to produce an IValue or ITensor for each output of a node. The compiler will check this and produce warnings if there are Values that don’t have associated ITensors or IValues.

  6. +
  7. Outputs must be annotated

    +
      +
    1. There must be an association between a JIT nodes output values and the new TRT layers output tensors in the value_tensor_map in the conversion context

    2. +
    +
  8. +
  9. Name your layers

    +
      +
    1. Its much easier to debug when we can track which layers and nodes correspond with each other. The system we are currently using is to use the “node info” of the node as the name of the layer

    2. +
    +
  10. +
  11. Name your tensors

    +
      +
    1. Use the output value debug name as the name for the new ITensor (again for debugging)

    2. +
    +
  12. +
+
+
+
+

Conversion Context

+

The conversion context maintains the state of conversion, it manages the Network Definition, two maps +one that stores associations between Values and IValues (the evaluated_value_map) and one that stores +associations between Values and ITensors, and any sort of memory that needs to live until the end of +conversion. The main apis that you will interface with in converters is directly accessing the network +definition to add layers ctx->net and data association functions ctx->AssociateValueAndTensor() +and ctx->AssociateValueAndIValue(), which you will use to add layers to the TRT layers and log +pairs of node outputs and static values or TensorRT layer outputs.

+
+
+

Args

+

Arguments provided to the converter are inspectable unions of nvinfer1::ITensors and torch::jit::IValues (i.e. +abstract dataflow in the TensorRT graph and static values). You are guaranteed that you will have some +argument for each input value for the node. They are provided in the order of the function schema. +It can be expected that inputs (meaning the parameters that would be passed into the forward +function of a module in PyTorch) will be ITensors but the Arg class also has mechanisms to inspect arguments safely +before unwrapping if you are unsure. Args also have deep unwrap methods that let you get straight to the +underlying data in an IValue if you know it’s safe. You can also pass in a fallback value if there is a +chance the IValue is None. IValues have been extended to be able to hold a wrapper around ITensors only in the case of TensorLists. +You can get an ITensor from an IValue by a pattern similar to this: ivalue.toCustomClass<TensorContainer>()->tensor(). +You can tell if an IValue contains a Tensor or an ITensor by using ivalue.isTensor() or ivalue.isCustomClass().

+
+
+

Weights

+

Weights are used during build time, so any weights need to be guaranteed to live until the end of the conversion phase. +TensorRT also uses its own weights structure to hold the weights. There is a wrapper around this class available +to converts which abstracts a lot of this.

+

The weights wrapper class can accept either at::Tensors or singular values (right now). You also need to pass the +conversion context when constructing these weights because internally the weights class will allocate memory managed +by the conversion context to store a copy of the tensor data. This data gets freed when the conversion context +destructor gets destroyed so converters don’t really need to think about it.

+

There is metadata generated from the shape of the input data which becomes useful in interfacing with TensorRT, such +as number of input maps, number of output maps and kernel shape.

+
+
+

Other advice

+

You have the benefit of the full aten library when dealing with weights and other static values. This means that you +can do quite a bit of work during conversion time to produce efficient conversion. A good example is batch_norm +converter where the converter does fusion of operations with PyTorch before creating the TensorRT layer.

+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/genindex.html b/docs/v1.2.0/genindex.html new file mode 100644 index 0000000000..2b8b1f4ffe --- /dev/null +++ b/docs/v1.2.0/genindex.html @@ -0,0 +1,1231 @@ + + + + + + + + + + + + Index — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + +

Index

+ +
+ _ + | A + | C + | D + | E + | F + | G + | I + | L + | M + | P + | R + | S + | T + | W + | X + +
+

_

+ + +
+ +

A

+ + +
+ +

C

+ + + +
+ +

D

+ + + +
+ +

E

+ + + +
+ +

F

+ + +
+ +

G

+ + + +
+ +

I

+ + + +
+ +

L

+ + + +
+ +

M

+ + +
+ +

P

+ + +
    +
  • + Python Enhancement Proposals + +
  • +
+ +

R

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ +

W

+ + + +
+ +

X

+ + +
+ + + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/getting_started/getting_started_with_cpp_api.html b/docs/v1.2.0/getting_started/getting_started_with_cpp_api.html new file mode 100644 index 0000000000..cb08ad4a25 --- /dev/null +++ b/docs/v1.2.0/getting_started/getting_started_with_cpp_api.html @@ -0,0 +1,959 @@ + + + + + + + + + + + + + Using Torch-TensorRT in C++ — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Using Torch-TensorRT in C++
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Using Torch-TensorRT in C++

+

If you haven’t already, acquire a tarball of the library by following the instructions in Installation

+
+

Using Torch-TensorRT in C++

+

Torch-TensorRT C++ API accepts TorchScript modules (generated either from torch.jit.script or torch.jit.trace) as an input and returns +a Torchscript module (optimized using TensorRT). This requires users to use Pytorch (in python) to generate torchscript modules beforehand. +Please refer to Creating TorchScript modules in Python section to generate torchscript graphs.

+
+

[Torch-TensorRT Quickstart] Compiling TorchScript Modules with torchtrtc

+

An easy way to get started with Torch-TensorRT and to check if your model can be supported without extra work is to run it through +torchtrtc, which supports almost all features of the compiler from the command line including post training quantization +(given a previously created calibration cache). For example we can compile our lenet model by setting our preferred operating +precision and input size. This new TorchScript file can be loaded into Python (note: you need to import torch_tensorrt before loading +these compiled modules because the compiler extends the PyTorch the deserializer and runtime to execute compiled modules).

+
❯ torchtrtc -p f16 lenet_scripted.ts trt_lenet_scripted.ts "(1,1,32,32)"
+
+❯ python3
+Python 3.6.9 (default, Apr 18 2020, 01:56:04)
+[GCC 8.4.0] on linux
+Type "help", "copyright", "credits" or "license" for more information.
+>>> import torch
+>>> import torch_tensorrt
+>>> ts_model = torch.jit.load(“trt_lenet_scripted.ts”)
+>>> ts_model(torch.randn((1,1,32,32)).to(“cuda”).half())
+
+
+

You can learn more about torchtrtc usage here: torchtrtc

+
+
+

Working with TorchScript in C++

+

If we are developing an application to deploy with C++, we can save either our traced or scripted module using torch.jit.save +which will serialize the TorchScript code, weights and other information into a package. This is also where our dependency on Python ends.

+
torch_script_module.save("lenet.jit.pt")
+
+
+

From here we can now load our TorchScript module in C++

+
#include <torch/script.h> // One-stop header.
+
+#include <iostream>
+#include <memory>
+
+int main(int argc, const char* argv[]) {
+    torch::jit::Module module;
+    try {
+        // Deserialize the ScriptModule from a file using torch::jit::load().
+        module = torch::jit::load("<PATH TO SAVED TS MOD>");
+    }
+    catch (const c10::Error& e) {
+        std::cerr << "error loading the model\n";
+        return -1;
+    }
+
+    std::cout << "ok\n";
+
+
+

You can do full training and inference in C++ with PyTorch / LibTorch if you would like, you can even define your modules in C++ and +have access to the same powerful tensor library that backs PyTorch. (For more information: https://pytorch.org/cppdocs/). +For instance we can do inference with our LeNet module like this:

+
mod.eval();
+torch::Tensor in = torch::randn({1, 1, 32, 32});
+auto out = mod.forward(in);
+
+
+

and to run on the GPU:

+
mod.eval();
+mod.to(torch::kCUDA);
+torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA);
+auto out = mod.forward(in);
+
+
+

As you can see it is pretty similar to the Python API. When you call the forward method, you invoke the PyTorch JIT compiler, which will optimize and run your TorchScript code.

+
+
+

Compiling with Torch-TensorRT in C++

+

We are also at the point were we can compile and optimize our module with Torch-TensorRT, but instead of in a JIT fashion we must do it ahead-of-time (AOT) i.e. before we start doing actual inference work +since it takes a bit of time to optimize the module, it would not make sense to do this every time you run the module or even the first time you run it.

+

With our module loaded, we can feed it into the Torch-TensorRT compiler. When we do so we must provide some information on the expected input size and also configure any additional settings.

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA});
+    auto trt_mod = torch_tensorrt::CompileGraph(mod, std::vector<torch_tensorrt::CompileSpec::InputRange>{{in.sizes()}});
+    auto out = trt_mod.forward({in});
+
+
+

Thats it! Now the graph runs primarily not with the JIT compiler but using TensorRT (though we execute the graph using the JIT runtime).

+

We can also set settings like operating precision to run in FP16.

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF);
+    auto input_sizes = std::vector<torch_tensorrt::CompileSpec::InputRange>({in.sizes()});
+    torch_tensorrt::CompileSpec info(input_sizes);
+    info.enable_precisions.insert(torch::kHALF);
+    auto trt_mod = torch_tensorrt::CompileGraph(mod, info);
+    auto out = trt_mod.forward({in});
+
+
+

And now we are running the module in FP16 precision. You can then save the module to load later.

+
trt_mod.save("<PATH TO SAVED TRT/TS MOD>")
+
+
+

Torch-TensorRT compiled TorchScript modules are loaded in the same way as normal TorchScript module. Make sure your deployment application is linked against libtorchtrt.so

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+
+int main(int argc, const char* argv[]) {
+    torch::jit::Module module;
+    try {
+        // Deserialize the ScriptModule from a file using torch::jit::load().
+        module = torch::jit::load("<PATH TO SAVED TRT/TS MOD>");
+    }
+    catch (const c10::Error& e) {
+        std::cerr << "error loading the model\n";
+        return -1;
+    }
+
+    torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA);
+    auto out = mod.forward(in);
+
+    std::cout << "ok\n";
+}
+
+
+

If you want to save the engine produced by Torch-TensorRT to use in a TensorRT application you can use the ConvertGraphToTRTEngine API.

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF);
+    auto input_sizes = std::vector<torch_tensorrt::CompileSpec::InputRange>({in.sizes()});
+    torch_tensorrt::CompileSpec info(input_sizes);
+    info.enabled_precisions.insert(torch::kHALF);
+    auto trt_mod = torch_tensorrt::ConvertGraphToTRTEngine(mod, "forward", info);
+    std::ofstream out("/tmp/engine_converted_from_jit.trt");
+    out << engine;
+    out.close();
+
+
+
+
+

Under The Hood

+

When a module is provided to Torch-TensorRT, the compiler starts by mapping a graph like you saw above to a graph like this:

+
graph(%input.2 : Tensor):
+    %2 : Float(84, 10) = prim::Constant[value=<Tensor>]()
+    %3 : Float(120, 84) = prim::Constant[value=<Tensor>]()
+    %4 : Float(576, 120) = prim::Constant[value=<Tensor>]()
+    %5 : int = prim::Constant[value=-1]() # x.py:25:0
+    %6 : int[] = prim::Constant[value=annotate(List[int], [])]()
+    %7 : int[] = prim::Constant[value=[2, 2]]()
+    %8 : int[] = prim::Constant[value=[0, 0]]()
+    %9 : int[] = prim::Constant[value=[1, 1]]()
+    %10 : bool = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %11 : int = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %12 : bool = prim::Constant[value=0]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %self.classifer.fc3.bias : Float(10) = prim::Constant[value= 0.0464  0.0383  0.0678  0.0932  0.1045 -0.0805 -0.0435 -0.0818  0.0208 -0.0358 [ CUDAFloatType{10} ]]()
+    %self.classifer.fc2.bias : Float(84) = prim::Constant[value=<Tensor>]()
+    %self.classifer.fc1.bias : Float(120) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv2.weight : Float(16, 6, 3, 3) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv2.bias : Float(16) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv1.weight : Float(6, 1, 3, 3) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv1.bias : Float(6) = prim::Constant[value= 0.0530 -0.1691  0.2802  0.1502  0.1056 -0.1549 [ CUDAFloatType{6} ]]()
+    %input0.4 : Tensor = aten::_convolution(%input.2, %self.feat.conv1.weight, %self.feat.conv1.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %input0.5 : Tensor = aten::relu(%input0.4) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %input1.2 : Tensor = aten::max_pool2d(%input0.5, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %input0.6 : Tensor = aten::_convolution(%input1.2, %self.feat.conv2.weight, %self.feat.conv2.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %input2.1 : Tensor = aten::relu(%input0.6) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %x.1 : Tensor = aten::max_pool2d(%input2.1, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0
+    %27 : Tensor = aten::matmul(%input.1, %4)
+    %28 : Tensor = trt::const(%self.classifer.fc1.bias)
+    %29 : Tensor = aten::add_(%28, %27, %11)
+    %input0.2 : Tensor = aten::relu(%29) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %31 : Tensor = aten::matmul(%input0.2, %3)
+    %32 : Tensor = trt::const(%self.classifer.fc2.bias)
+    %33 : Tensor = aten::add_(%32, %31, %11)
+    %input1.1 : Tensor = aten::relu(%33) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %35 : Tensor = aten::matmul(%input1.1, %2)
+    %36 : Tensor = trt::const(%self.classifer.fc3.bias)
+    %37 : Tensor = aten::add_(%36, %35, %11)
+    return (%37)
+(CompileGraph)
+
+
+

The graph has now been transformed from a collection of modules, each managing their own parameters into a single graph with the parameters inlined +into the graph and all of the operations laid out. Torch-TensorRT has also executed a number of optimizations and mappings to make the graph easier to translate to TensorRT. +From here the compiler can assemble the TensorRT engine by following the dataflow through the graph.

+

When the graph construction phase is complete, Torch-TensorRT produces a serialized TensorRT engine. From here depending on the API, this engine is returned +to the user or moves into the graph construction phase. Here Torch-TensorRT creates a JIT Module to execute the TensorRT engine which will be instantiated and managed +by the Torch-TensorRT runtime.

+

Here is the graph that you get back after compilation is complete:

+
graph(%self_1 : __torch__.lenet, %input_0 : Tensor):
+    %1 : ...trt.Engine = prim::GetAttr[name="lenet"](%self_1)
+    %3 : Tensor[] = prim::ListConstruct(%input_0)
+    %4 : Tensor[] = trt::execute_engine(%3, %1)
+    %5 : Tensor = prim::ListUnpack(%4)
+    return (%5)
+
+
+

You can see the call where the engine is executed, after extracting the attribute containing the engine and constructing a list of inputs, then returns the tensors back to the user.

+
+
+

Working with Unsupported Operators

+

Torch-TensorRT is a new library and the PyTorch operator library is quite large, so there will be ops that aren’t supported natively by the compiler. You can either use the composition techinques +shown above to make modules are fully Torch-TensorRT supported and ones that are not and stitch the modules together in the deployment application or you can register converters for missing ops.

+
+

You can check support without going through the full compilation pipleine using the torch_tensorrt::CheckMethodOperatorSupport(const torch::jit::Module& module, std::string method_name) api +to see what operators are not supported. torchtrtc automatically checks modules with this method before starting compilation and will print out a list of operators that are not supported.

+
+
+

Registering Custom Converters

+

Operations are mapped to TensorRT through the use of modular converters, a function that takes a node from a the JIT graph and produces an equivalent layer or subgraph in TensorRT. +Torch-TensorRT ships with a library of these converters stored in a registry, that will be executed depending on the node being parsed. For instance a aten::relu(%input0.4) instruction will trigger +the relu converter to be run on it, producing an activation layer in the TensorRT graph. But since this library is not exhaustive you may need to write your own to get Torch-TensorRT +to support your module.

+

Shipped with the Torch-TensorRT distribution are the internal core API headers. You can therefore access the converter registry and add a converter for the op you need.

+

For example, if we try to compile a graph with a build of Torch-TensorRT that doesn’t support the flatten operation (aten::flatten) you may see this error:

+
terminate called after throwing an instance of 'torch_tensorrt::Error'
+what():  [enforce fail at core/conversion/conversion.cpp:109] Expected converter to be true but got false
+Unable to convert node: %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 (conversion.AddLayer)
+Schema: aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)
+Converter for aten::flatten requested, but no such converter was found.
+If you need a converter for this operator, you can try implementing one yourself
+or request a converter: https://www.github.com/NVIDIA/Torch-TensorRT/issues
+
+
+

We can register a converter for this operator in our application. All of the tools required to build a converter can be imported by including torch_tensorrt/core/conversion/converters/converters.h. +We start by creating an instance of the self-registering class torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns() which will register converters +in the global converter registry, associating a function schema like aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor) with a lambda that +will take the state of the conversion, the node/operation in question to convert and all of the inputs to the node and produces as a side effect a new layer in the TensorRT network. +Arguments are passed as a vector of inspectable unions of TensorRT ITensors and Torch IValues in the order arguments are listed in the schema.

+

Below is a implementation of a aten::flatten converter that we can use in our application. You have full access to the Torch and TensorRT libraries in the converter implementation. So +for example we can quickly get the output size by just running the operation in PyTorch instead of implementing the full calculation outself like we do below for this flatten converter.

+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+#include "torch_tensorrt/core/conversion/converters/converters.h"
+
+static auto flatten_converter = torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns()
+    .pattern({
+        "aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)",
+        [](torch_tensorrt::core::conversion::ConversionCtx* ctx,
+           const torch::jit::Node* n,
+           torch_tensorrt::core::conversion::converters::args& args) -> bool {
+            auto in = args[0].ITensor();
+            auto start_dim = args[1].unwrapToInt();
+            auto end_dim = args[2].unwrapToInt();
+            auto in_shape = torch_tensorrt::core::util::toVec(in->getDimensions());
+            auto out_shape = torch::flatten(torch::rand(in_shape), start_dim, end_dim).sizes();
+
+            auto shuffle = ctx->net->addShuffle(*in);
+            shuffle->setReshapeDimensions(torch_tensorrt::core::util::toDims(out_shape));
+            shuffle->setName(torch_tensorrt::core::util::node_info(n).c_str());
+
+            auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], shuffle->getOutput(0));
+            return true;
+        }
+    });
+
+int main() {
+    ...
+
+
+

To use this converter in Python, it is recommended to use PyTorch’s C++ / CUDA Extention +template to wrap your library of converters into a .so that you can load with ctypes.CDLL() in your Python application.

+

You can find more information on all the details of writing converters in the contributors documentation (Writing Converters). +If you find yourself with a large library of converter implementations, do consider upstreaming them, PRs are welcome and it would be great for the community to benefit as well.

+
+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/getting_started/getting_started_with_python_api.html b/docs/v1.2.0/getting_started/getting_started_with_python_api.html new file mode 100644 index 0000000000..14c058f05e --- /dev/null +++ b/docs/v1.2.0/getting_started/getting_started_with_python_api.html @@ -0,0 +1,713 @@ + + + + + + + + + + + + + Using Torch-TensorRT in Python — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Using Torch-TensorRT in Python
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Using Torch-TensorRT in Python

+

The Torch-TensorRT Python API supports a number of unique usecases compared to the CLI and C++ APIs which solely support TorchScript compilation.

+

Torch-TensorRT Python API can accept a torch.nn.Module, torch.jit.ScriptModule, or torch.fx.GraphModule as an input. +Depending on what is provided one of the two frontends (TorchScript or FX) will be selected to compile the module. Provided the +module type is supported, users may explicitly set which frontend they would like to use using the ir flag for compile. +If given a torch.nn.Module and the ir flag is set to either default or torchscript the module will be run through +torch.jit.script to convert the input module into a TorchScript module.

+

To compile your input torch.nn.Module with Torch-TensorRT, all you need to do is provide the module and inputs +to Torch-TensorRT and you will be returned an optimized TorchScript module to run or add into another PyTorch module. Inputs +is a list of torch_tensorrt.Input classes which define input’s shape, datatype and memory format. You can also specify settings such as +operating precision for the engine or target device. After compilation you can save the module just like any other module +to load in a deployment application. In order to load a TensorRT/TorchScript module, make sure you first import torch_tensorrt.

+
import torch_tensorrt
+
+...
+
+model = MyModel().eval()  # torch module needs to be in eval (not training) mode
+
+inputs = [
+    torch_tensorrt.Input(
+        min_shape=[1, 1, 16, 16],
+        opt_shape=[1, 1, 32, 32],
+        max_shape=[1, 1, 64, 64],
+        dtype=torch.half,
+    )
+]
+enabled_precisions = {torch.float, torch.half}  # Run with fp16
+
+trt_ts_module = torch_tensorrt.compile(
+    model, inputs=inputs, enabled_precisions=enabled_precisions
+)
+
+input_data = input_data.to("cuda").half()
+result = trt_ts_module(input_data)
+torch.jit.save(trt_ts_module, "trt_ts_module.ts")
+
+
+
# Deployment application
+import torch
+import torch_tensorrt
+
+trt_ts_module = torch.jit.load("trt_ts_module.ts")
+input_data = input_data.to("cuda").half()
+result = trt_ts_module(input_data)
+
+
+

Torch-TensorRT Python API also provides torch_tensorrt.ts.compile which accepts a TorchScript module as input and torch_tensorrt.fx.compile which accepts a FX GraphModule as input.

+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/getting_started/getting_started_with_windows.html b/docs/v1.2.0/getting_started/getting_started_with_windows.html new file mode 100644 index 0000000000..a8f847d032 --- /dev/null +++ b/docs/v1.2.0/getting_started/getting_started_with_windows.html @@ -0,0 +1,732 @@ + + + + + + + + + + + + + Building Torch-TensorRT on Windows — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Building Torch-TensorRT on Windows
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Building Torch-TensorRT on Windows

+

Torch-TensorRT has community support for Windows platform using CMake

+

Prerequisite:

+
    +
  • Microsoft Visual Studio

  • +
  • LibTorch

  • +
  • TensorRT

  • +
  • CUDA

  • +
  • cuDNN

  • +
+
+

Build configuration

+
    +
  • Open Microsoft Visual Studio

  • +
  • Open Torch-TensorRT source code folder

  • +
  • Open Manage configurations -> Edit JSON to open CMakeSettings.json file.

  • +
  • Configure the CMake build configurations. Following is an example configuration:

  • +
+
{
+  "configurations": [
+    {
+      "name": "x64-Debug",
+      "generator": "Ninja",
+      "configurationType": "Debug",
+      "inheritEnvironments": [ "msvc_x64_x64" ],
+      "buildRoot": "${projectDir}\\out\\build\\${name}",
+      "installRoot": "${projectDir}\\out\\install\\${name}",
+      "cmakeCommandArgs": "-S . -B out",
+      "buildCommandArgs": "cmake --build out",
+      "ctestCommandArgs": "",
+      "variables": [
+        {
+          "name": "CMAKE_MODULE_PATH",
+          "value": "$PWD\cmake\Modules",
+          "type": "FILEPATH"
+        },
+        {
+          "name": "Torch_DIR",
+          "value": "<Path to libtorch>\share\cmake\Torch",
+          "type": "FILEPATH"
+        },
+        {
+          "name": "TensorRT_ROOT",
+          "value": "<Path to TensorRT directory>",
+          "type": "FILEPATH"
+        },
+        {
+          "name": "CMAKE_BUILD_TYPE",
+          "value": "Release",
+          "type": " STRING"
+        }
+      ]
+    }
+  ]
+}
+
+
+
+
+

Compilation

+
    +
  • Click Build -> Build All or directly press Ctrl + Shift + B

  • +
+

Note: After successful compilation, the build artifacts will be present at buildRoot path configured.

+
+
+

Installation

+
    +
  • Build -> Install Torch-TensorRT

  • +
+

Note: After successful installation, the artifacts will be present at installRoot.

+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/getting_started/installation.html b/docs/v1.2.0/getting_started/installation.html new file mode 100644 index 0000000000..737093818b --- /dev/null +++ b/docs/v1.2.0/getting_started/installation.html @@ -0,0 +1,1036 @@ + + + + + + + + + + + + + Installation — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Installation

+
+

Precompiled Binaries

+
+

Dependencies

+

You need to have either PyTorch or LibTorch installed based on if you are using Python or C++ +and you must have CUDA, cuDNN and TensorRT installed.

+
+
+
+
+

Python Package

+

You can install the python package using

+
pip3 install torch-tensorrt -f https://github.com/pytorch/TensorRT/releases
+
+
+
+
+

C++ Binary Distribution

+

Precompiled tarballs for releases are provided here: https://github.com/pytorch/TensorRT/releases

+
+
+
+

Compiling From Source

+
+

Dependencies for Compilation

+

Torch-TensorRT is built with Bazel, so begin by installing it.

+
+
+
export BAZEL_VERSION=$(cat <PATH_TO_TORCHTRT_ROOT>/.bazelversion)
+mkdir bazel
+cd bazel
+curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-dist.zip
+unzip bazel-$BAZEL_VERSION-dist.zip
+bash ./compile.sh
+cp output/bazel /usr/local/bin/
+
+
+
+

You will also need to have CUDA installed on the system (or if running in a container, the system must have +the CUDA driver installed and the container must have CUDA)

+

The correct LibTorch version will be pulled down for you by bazel.

+
+

NOTE: For best compatability with official PyTorch, use torch==1.10.0+cuda113, TensorRT 8.0 and cuDNN 8.2 for CUDA 11.3 however Torch-TensorRT itself supports +TensorRT and cuDNN for other CUDA versions for usecases such as using NVIDIA compiled distributions of PyTorch that use other versions of CUDA +e.g. aarch64 or custom compiled version of PyTorch.

+
+
+

Choosing the Right ABI

+

Likely the most complicated thing about compiling Torch-TensorRT is selecting the correct ABI. There are two options +which are incompatible with each other, pre-cxx11-abi and the cxx11-abi. The complexity comes from the fact that while +the most popular distribution of PyTorch (wheels downloaded from pytorch.org/pypi directly) use the pre-cxx11-abi, most +other distributions you might encounter (e.g. ones from NVIDIA - NGC containers, and builds for Jetson as well as certain +libtorch builds and likely if you build PyTorch from source) use the cxx11-abi. It is important you compile Torch-TensorRT +using the correct ABI to function properly. Below is a table with general pairings of PyTorch distribution sources and the +recommended commands:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

PyTorch Source

Recommended C++ Compilation Command

Recommended Python Compilation Command

PyTorch whl file from PyTorch.org

bazel build //:libtorchtrt -c opt –config pre_cxx11_abi

python3 setup.py bdist_wheel

libtorch-shared-with-deps-*.zip from PyTorch.org

bazel build //:libtorchtrt -c opt –config pre_cxx11_abi

python3 setup.py bdist_wheel

libtorch-cxx11-abi-shared-with-deps-*.zip from PyTorch.org

bazel build //:libtorchtrt -c opt

python3 setup.py bdist_wheel –use-cxx11-abi

PyTorch preinstalled in an NGC container

bazel build //:libtorchtrt -c opt

python3 setup.py bdist_wheel –use-cxx11-abi

PyTorch from the NVIDIA Forums for Jetson

bazel build //:libtorchtrt -c opt

python3 setup.py bdist_wheel –jetpack-version 4.6 –use-cxx11-abi

PyTorch built from Source

bazel build //:libtorchtrt -c opt

python3 setup.py bdist_wheel –use-cxx11-abi

+
+

NOTE: For all of the above cases you must correctly declare the source of PyTorch you intend to use in your WORKSPACE file for both Python and C++ builds. See below for more information

+
+

You then have two compilation options:

+
+
+
+

Building using cuDNN & TensorRT tarball distributions

+
+

This is recommended so as to build Torch-TensorRT hermetically and insures any compilation errors are not caused by version issues

+

Make sure when running Torch-TensorRT that these versions of the libraries are prioritized in your $LD_LIBRARY_PATH

+
+
+
You need to download the tarball distributions of TensorRT and cuDNN from the NVIDIA website.
+
+
+

Place these files in a directory (the directories third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu] exist for this purpose)

+

Then compile referencing the directory with the tarballs

+
+

If you get errors regarding the packages, check their sha256 hashes and make sure they match the ones listed in WORKSPACE

+
+
+

Release Build

+
bazel build //:libtorchtrt -c opt --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+

Debug Build

+

To build with debug symbols use the following command

+
bazel build //:libtorchtrt -c dbg --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+

Pre CXX11 ABI Build

+

To build using the pre-CXX11 ABI use the pre_cxx11_abi config

+
bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+
+

Building using locally installed cuDNN & TensorRT

+
+

If you encounter bugs and you compiled using this method please disclose that you used local sources in the issue (an ldd dump would be nice too)

+
+

Install TensorRT, CUDA and cuDNN on the system before starting to compile.

+

In WORKSPACE comment out:

+
# Downloaded distributions to use with --distdir
+http_archive(
+    name="cudnn",
+    urls=[
+        "<URL>",
+    ],
+    build_file="@//third_party/cudnn/archive:BUILD",
+    sha256="<TAR SHA256>",
+    strip_prefix="cuda",
+)
+
+http_archive(
+    name="tensorrt",
+    urls=[
+        "<URL>",
+    ],
+    build_file="@//third_party/tensorrt/archive:BUILD",
+    sha256="<TAR SHA256>",
+    strip_prefix="TensorRT-<VERSION>",
+)
+
+
+

and uncomment

+
# Locally installed dependencies
+new_local_repository(
+    name="cudnn", path="/usr/", build_file="@//third_party/cudnn/local:BUILD"
+)
+
+new_local_repository(
+    name="tensorrt", path="/usr/", build_file="@//third_party/tensorrt/local:BUILD"
+)
+
+
+
+

Release Build

+

Compile using:

+
bazel build //:libtorchtrt -c opt
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+

Debug Build

+

To build with debug symbols use the following command

+
bazel build //:libtorchtrt -c dbg
+
+
+

A tarball with the include files and library can then be found in bazel-bin

+
+
+

Pre CXX11 ABI Build

+

To build using the pre-CXX11 ABI use the pre_cxx11_abi config

+
bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt]
+
+
+
+
+
+

Building with CMake

+

It is possible to build the API libraries (in cpp/) and the torchtrtc executable using CMake instead of Bazel. +Currently, the python API and the tests cannot be built with CMake. +Begin by installing CMake.

+
+
    +
  • Latest releases of CMake and instructions on how to install are available for different platforms +[on their website](https://cmake.org/download/).

  • +
+
+

A few useful CMake options include:

+
+
    +
  • CMake finders for TensorRT and cuDNN are provided in cmake/Modules. In order for CMake to use them, pass +-DCMAKE_MODULE_PATH=cmake/Modules when configuring the project with CMake.

  • +
  • Libtorch provides its own CMake finder. In case CMake doesn’t find it, pass the path to your install of +libtorch with -DTorch_DIR=<path to libtorch>/share/cmake/Torch

  • +
  • If TensorRT is not found with the provided cmake finder, specify -DTensorRT_ROOT=<path to TensorRT>

  • +
  • Finally, configure and build the project in a build directory of your choice with the following command +from the root of Torch-TensorRT project:

  • +
+
cmake -S. -B<build directory> \
+    [-DCMAKE_MODULE_PATH=cmake/Module] \
+    [-DTorch_DIR=<path to libtorch>/share/cmake/Torch] \
+    [-DTensorRT_ROOT=<path to TensorRT>] \
+    [-DCMAKE_BUILD_TYPE=Debug|Release]
+cmake --build <build directory>
+
+
+
+
+
+

Building the Python package

+

Begin by installing ninja

+

You can build the Python package using setup.py (this will also build the correct version of libtorchtrt.so)

+
python3 setup.py [install/bdist_wheel]
+
+
+
+

Debug Build

+
python3 setup.py develop [--user]
+
+
+

This also compiles a debug build of libtorchtrt.so

+
+
+
+

Building Natively on aarch64 (Jetson)

+
+

Prerequisites

+

Install or compile a build of PyTorch/LibTorch for aarch64

+

NVIDIA hosts builds the latest release branch for Jetson here:

+
+
+
+
+

Enviorment Setup

+

To build natively on aarch64-linux-gnu platform, configure the WORKSPACE with local available dependencies.

+
    +
  1. Replace WORKSPACE with the corresponding WORKSPACE file in //toolchains/jp_workspaces

  2. +
  3. Configure the correct paths to directory roots containing local dependencies in the new_local_repository rules:

    +
    +

    NOTE: If you installed PyTorch using a pip package, the correct path is the path to the root of the python torch package. +In the case that you installed with sudo pip install this will be /usr/local/lib/python3.8/dist-packages/torch. +In the case you installed with pip install --user this will be $HOME/.local/lib/python3.8/site-packages/torch.

    +
    +
  4. +
+

In the case you are using NVIDIA compiled pip packages, set the path for both libtorch sources to the same path. This is because unlike +PyTorch on x86_64, NVIDIA aarch64 PyTorch uses the CXX11-ABI. If you compiled for source using the pre_cxx11_abi and only would like to +use that library, set the paths to the same path but when you compile make sure to add the flag --config=pre_cxx11_abi

+
new_local_repository(
+    name = "libtorch",
+    path = "/usr/local/lib/python3.8/dist-packages/torch",
+    build_file = "third_party/libtorch/BUILD"
+)
+
+new_local_repository(
+    name = "libtorch_pre_cxx11_abi",
+    path = "/usr/local/lib/python3.8/dist-packages/torch",
+    build_file = "third_party/libtorch/BUILD"
+)
+
+
+
+
+

Compile C++ Library and Compiler CLI

+
+

NOTE: Due to shifting dependency locations between Jetpack 4.5 and 4.6 there is a now a flag to inform bazel of the Jetpack version

+
--platforms //toolchains:jetpack_x.x
+
+
+
+

Compile Torch-TensorRT library using bazel command:

+
bazel build //:libtorchtrt --platforms //toolchains:jetpack_5.0
+
+
+
+
+

Compile Python API

+
+

NOTE: Due to shifting dependencies locations between Jetpack 4.5 and newer Jetpack verisons there is now a flag for setup.py which sets the jetpack version (default: 5.0)

+
+

Compile the Python API using the following command from the //py directory:

+
python3 setup.py install --use-cxx11-abi
+
+
+

If you have a build of PyTorch that uses Pre-CXX11 ABI drop the --use-cxx11-abi flag

+

If you are building for Jetpack 4.5 add the --jetpack-version 5.0 flag

+
+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/index.html b/docs/v1.2.0/index.html new file mode 100644 index 0000000000..f809c6a630 --- /dev/null +++ b/docs/v1.2.0/index.html @@ -0,0 +1,764 @@ + + + + + + + + + + + + + Torch-TensorRT — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Torch-TensorRT

+
+

Ahead-of-time compilation of TorchScript / PyTorch JIT for NVIDIA GPUs

+

Torch-TensorRT is a compiler for PyTorch/TorchScript, targeting NVIDIA GPUs via NVIDIA’s TensorRT Deep Learning Optimizer and Runtime. +Unlike PyTorch’s Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your +TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into an module targeting +a TensorRT engine. Torch-TensorRT operates as a PyTorch extention and compiles modules that integrate into the JIT runtime seamlessly. +After compilation using the optimized graph should feel no different than running a TorchScript module. +You also have access to TensorRT’s suite of configurations at compile time, so you are able to specify +operating precision (FP32/FP16/INT8) and other settings for your module.

+

More Information / System Architecture:

+ +
+
+

Getting Started

+ +
+
+
+
+

Tutorials

+ +
+
+
+
+

Python API Documenation

+ +
+
+
+
+

C++ API Documenation

+ +
+
+
+
+

CLI Documentation

+ +
+
+
+
+

Contributor Documentation

+ +
+
+
+
+

Indices

+ +
+
+
+
+ + +
+ +
+
+ + + + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/indices/supported_ops.html b/docs/v1.2.0/indices/supported_ops.html new file mode 100644 index 0000000000..6eabb0245d --- /dev/null +++ b/docs/v1.2.0/indices/supported_ops.html @@ -0,0 +1,957 @@ + + + + + + + + + + + + + Operators Supported — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Operators Supported
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Operators Supported

+
+

Operators Currently Supported Through Converters

+
    +
  • aten::_convolution(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool benchmark, bool deterministic, bool cudnn_enabled, bool allow_tf32) -> (Tensor)

  • +
  • aten::_convolution.deprecated(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool benchmark, bool deterministic, bool cudnn_enabled) -> (Tensor)

  • +
  • aten::abs(Tensor self) -> (Tensor)

  • +
  • aten::acos(Tensor self) -> (Tensor)

  • +
  • aten::acosh(Tensor self) -> (Tensor)

  • +
  • aten::adaptive_avg_pool1d(Tensor self, int[1] output_size) -> (Tensor)

  • +
  • aten::adaptive_avg_pool2d(Tensor self, int[2] output_size) -> (Tensor)

  • +
  • aten::adaptive_avg_pool3d(Tensor self, int[3] output_size) -> (Tensor)

  • +
  • aten::adaptive_max_pool1d(Tensor self, int[2] output_size) -> (Tensor, Tensor)

  • +
  • aten::adaptive_max_pool2d(Tensor self, int[2] output_size) -> (Tensor, Tensor)

  • +
  • aten::adaptive_max_pool3d(Tensor self, int[3] output_size) -> (Tensor, Tensor)

  • +
  • aten::add.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor)

  • +
  • aten::add.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor)

  • +
  • aten::add_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> (Tensor(a!))

  • +
  • aten::argmax(Tensor self, int dim, bool keepdim=False) -> (Tensor)

  • +
  • aten::argmin(Tensor self, int dim, bool keepdim=False) -> (Tensor)

  • +
  • aten::asin(Tensor self) -> (Tensor)

  • +
  • aten::asinh(Tensor self) -> (Tensor)

  • +
  • aten::atan(Tensor self) -> (Tensor)

  • +
  • aten::atanh(Tensor self) -> (Tensor)

  • +
  • aten::avg_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=[0], bool ceil_mode=False, bool count_include_pad=True) -> (Tensor)

  • +
  • aten::avg_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=[0, 0], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor)

  • +
  • aten::avg_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=[], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor)

  • +
  • aten::batch_norm(Tensor input, Tensor? gamma, Tensor? beta, Tensor? mean, Tensor? var, bool training, float momentum, float eps, bool cudnn_enabled) -> (Tensor)

  • +
  • aten::bitwise_not(Tensor self) -> (Tensor)

  • +
  • aten::bmm(Tensor self, Tensor mat2) -> (Tensor)

  • +
  • aten::cat(Tensor[] tensors, int dim=0) -> (Tensor)

  • +
  • aten::ceil(Tensor self) -> (Tensor)

  • +
  • aten::clamp(Tensor self, Scalar? min=None, Scalar? max=None) -> (Tensor)

  • +
  • aten::clamp_max(Tensor self, Scalar max) -> (Tensor)

  • +
  • aten::clamp_min(Tensor self, Scalar min) -> (Tensor)

  • +
  • aten::constant_pad_nd(Tensor self, int[] pad, Scalar value=0) -> (Tensor)

  • +
  • aten::cos(Tensor self) -> (Tensor)

  • +
  • aten::cosh(Tensor self) -> (Tensor)

  • +
  • aten::cumsum(Tensor self, int dim, *, int? dtype=None) -> (Tensor)

  • +
  • aten::div.Scalar(Tensor self, Scalar other) -> (Tensor)

  • +
  • aten::div.Tensor(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::div.Tensor_mode(Tensor self, Tensor other, *, str? rounding_mode) -> (Tensor)

  • +
  • aten::div_.Scalar(Tensor(a!) self, Scalar other) -> (Tensor(a!))

  • +
  • aten::div_.Tensor(Tensor(a!) self, Tensor other) -> (Tensor(a!))

  • +
  • aten::elu(Tensor self, Scalar alpha=1, Scalar scale=1, Scalar input_scale=1) -> (Tensor)

  • +
  • aten::embedding(Tensor weight, Tensor indices, int padding_idx=-1, bool scale_grad_by_freq=False, bool sparse=False) -> (Tensor)

  • +
  • aten::eq.Scalar(Tensor self, Scalar other) -> (Tensor)

  • +
  • aten::eq.Tensor(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::erf(Tensor self) -> (Tensor)

  • +
  • aten::exp(Tensor self) -> (Tensor)

  • +
  • aten::expand(Tensor(a) self, int[] size, *, bool implicit=False) -> (Tensor(a))

  • +
  • aten::expand_as(Tensor(a) self, Tensor other) -> (Tensor(a))

  • +
  • aten::fake_quantize_per_channel_affine(Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max) -> (Tensor)

  • +
  • aten::fake_quantize_per_tensor_affine(Tensor self, float scale, int zero_point, int quant_min, int quant_max) -> (Tensor)

  • +
  • aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)

  • +
  • aten::floor(Tensor self) -> (Tensor)

  • +
  • aten::floor_divide(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::floor_divide.Scalar(Tensor self, Scalar other) -> (Tensor)

  • +
  • aten::ge.Scalar(Tensor self, Scalar other) -> (Tensor)

  • +
  • aten::ge.Tensor(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::gru_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor)

  • +
  • aten::gt.Scalar(Tensor self, Scalar other) -> (Tensor)

  • +
  • aten::gt.Tensor(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::hardtanh(Tensor self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor)

  • +
  • aten::hardtanh_(Tensor(a!) self, Scalar min_val=-1, Scalar max_val=1) -> (Tensor(a!))

  • +
  • aten::index.Tensor(Tensor self, Tensor?[] indices) -> (Tensor)

  • +
  • aten::instance_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool use_input_stats, float momentum, float eps, bool cudnn_enabled) -> (Tensor)

  • +
  • aten::layer_norm(Tensor input, int[] normalized_shape, Tensor? gamma, Tensor? beta, float eps, bool cudnn_enabled) -> (Tensor)

  • +
  • aten::le.Scalar(Tensor self, Scalar other) -> (Tensor)

  • +
  • aten::le.Tensor(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::leaky_relu(Tensor self, Scalar negative_slope=0.01) -> (Tensor)

  • +
  • aten::leaky_relu_(Tensor(a!) self, Scalar negative_slope=0.01) -> (Tensor(a!))

  • +
  • aten::linear(Tensor input, Tensor weight, Tensor? bias=None) -> (Tensor)

  • +
  • aten::log(Tensor self) -> (Tensor)

  • +
  • aten::lstm_cell(Tensor input, Tensor[] hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor, Tensor)

  • +
  • aten::lt.Scalar(Tensor self, Scalar other) -> (Tensor)

  • +
  • aten::lt.Tensor(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::masked_fill.Scalar(Tensor self, Tensor mask, Scalar value) -> (Tensor)

  • +
  • aten::matmul(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::max(Tensor self) -> (Tensor)

  • +
  • aten::max.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)

  • +
  • aten::max.other(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::max_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=[], int[1] dilation=[], bool ceil_mode=False) -> (Tensor)

  • +
  • aten::max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=[0, 0], int[2] dilation=[1, 1], bool ceil_mode=False) -> (Tensor)

  • +
  • aten::max_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=[], int[3] dilation=[], bool ceil_mode=False) -> (Tensor)

  • +
  • aten::mean(Tensor self, *, int? dtype=None) -> (Tensor)

  • +
  • aten::mean.dim(Tensor self, int[] dim, bool keepdim=False, *, int? dtype=None) -> (Tensor)

  • +
  • aten::min(Tensor self) -> (Tensor)

  • +
  • aten::min.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)

  • +
  • aten::min.other(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::mul.Scalar(Tensor self, Scalar other) -> (Tensor)

  • +
  • aten::mul.Tensor(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::mul_.Tensor(Tensor(a!) self, Tensor other) -> (Tensor(a!))

  • +
  • aten::narrow(Tensor(a) self, int dim, int start, int length) -> (Tensor(a))

  • +
  • aten::narrow.Tensor(Tensor(a) self, int dim, Tensor start, int length) -> (Tensor(a))

  • +
  • aten::ne.Scalar(Tensor self, Scalar other) -> (Tensor)

  • +
  • aten::ne.Tensor(Tensor self, Tensor other) -> (Tensor)

  • +
  • aten::neg(Tensor self) -> (Tensor)

  • +
  • aten::norm.ScalarOpt_dim(Tensor self, Scalar? p, int[1] dim, bool keepdim=False) -> (Tensor)

  • +
  • aten::permute(Tensor(a) self, int[] dims) -> (Tensor(a))

  • +
  • aten::pixel_shuffle(Tensor self, int upscale_factor) -> (Tensor)

  • +
  • aten::pow.Tensor_Scalar(Tensor self, Scalar exponent) -> (Tensor)

  • +
  • aten::pow.Tensor_Tensor(Tensor self, Tensor exponent) -> (Tensor)

  • +
  • aten::prelu(Tensor self, Tensor weight) -> (Tensor)

  • +
  • aten::prod(Tensor self, *, int? dtype=None) -> (Tensor)

  • +
  • aten::prod.dim_int(Tensor self, int dim, bool keepdim=False, *, int? dtype=None) -> (Tensor)

  • +
  • aten::reciprocal(Tensor self) -> (Tensor)

  • +
  • aten::reflection_pad1d(Tensor self, int[2] padding) -> (Tensor)

  • +
  • aten::reflection_pad2d(Tensor self, int[4] padding) -> (Tensor)

  • +
  • aten::relu(Tensor input) -> (Tensor)

  • +
  • aten::relu_(Tensor(a!) self) -> (Tensor(a!))

  • +
  • aten::repeat(Tensor self, int[] repeats) -> (Tensor)

  • +
  • aten::repeat_interleave.self_int(Tensor self, int repeats, int? dim=None, *, int? output_size=None) -> (Tensor)

  • +
  • aten::replication_pad1d(Tensor self, int[2] padding) -> (Tensor)

  • +
  • aten::replication_pad2d(Tensor self, int[4] padding) -> (Tensor)

  • +
  • aten::replication_pad3d(Tensor self, int[6] padding) -> (Tensor)

  • +
  • aten::reshape(Tensor self, int[] shape) -> (Tensor)

  • +
  • aten::roll(Tensor self, int[1] shifts, int[1] dims=[]) -> (Tensor)

  • +
  • aten::rsub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor)

  • +
  • aten::rsub.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor)

  • +
  • aten::scatter.src(Tensor self, int dim, Tensor index, Tensor src) -> (Tensor)

  • +
  • aten::scatter.value(Tensor self, int dim, Tensor index, Scalar value) -> (Tensor)

  • +
  • aten::select.int(Tensor(a) self, int dim, int index) -> (Tensor(a))

  • +
  • aten::sigmoid(Tensor input) -> (Tensor)

  • +
  • aten::sigmoid_(Tensor(a!) self) -> (Tensor(a!))

  • +
  • aten::sin(Tensor self) -> (Tensor)

  • +
  • aten::sinh(Tensor self) -> (Tensor)

  • +
  • aten::slice.Tensor(Tensor(a) self, int dim=0, int? start=None, int? end=None, int step=1) -> (Tensor(a))

  • +
  • aten::softmax.int(Tensor self, int dim, int? dtype=None) -> (Tensor)

  • +
  • aten::split(Tensor self, int[] split_sizes, int dim=0) -> (Tensor[])

  • +
  • aten::split.Tensor(Tensor(a) self, int split_size, int dim=0) -> (Tensor[])

  • +
  • aten::split.sizes(Tensor(a -> *) self, int[] split_size, int dim=0) -> (Tensor[])

  • +
  • aten::split_with_sizes(Tensor(a) self, int[] split_sizes, int dim=0) -> (Tensor[])

  • +
  • aten::sqrt(Tensor self) -> (Tensor)

  • +
  • aten::square(Tensor self) -> (Tensor)

  • +
  • aten::squeeze.dim(Tensor(a) self, int dim) -> (Tensor(a))

  • +
  • aten::stack(Tensor[] tensors, int dim=0) -> (Tensor)

  • +
  • aten::sub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor)

  • +
  • aten::sub.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor)

  • +
  • aten::sub_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> (Tensor(a!))

  • +
  • aten::sum(Tensor self, *, int? dtype=None) -> (Tensor)

  • +
  • aten::sum.dim_IntList(Tensor self, int[1] dim, bool keepdim=False, *, int? dtype=None) -> (Tensor)

  • +
  • aten::t(Tensor self) -> (Tensor)

  • +
  • aten::tan(Tensor self) -> (Tensor)

  • +
  • aten::tanh(Tensor input) -> (Tensor)

  • +
  • aten::tanh_(Tensor(a!) self) -> (Tensor(a!))

  • +
  • aten::to.device(Tensor(a) self, Device device, int dtype, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor(a))

  • +
  • aten::to.dtype(Tensor self, int dtype, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor)

  • +
  • aten::to.other(Tensor self, Tensor other, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor)

  • +
  • aten::to.prim_Device(Tensor(a) self, Device? device, int? dtype=None, bool non_blocking=False, bool copy=False) -> (Tensor(a|b))

  • +
  • aten::topk(Tensor self, int k, int dim=-1, bool largest=True, bool sorted=True) -> (Tensor values, Tensor indices)

  • +
  • aten::transpose.int(Tensor(a) self, int dim0, int dim1) -> (Tensor(a))

  • +
  • aten::unbind.int(Tensor(a -> *) self, int dim=0) -> (Tensor[])

  • +
  • aten::unsqueeze(Tensor(a) self, int dim) -> (Tensor(a))

  • +
  • aten::upsample_bilinear2d(Tensor self, int[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> (Tensor)

  • +
  • aten::upsample_bilinear2d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor)

  • +
  • aten::upsample_linear1d(Tensor self, int[1] output_size, bool align_corners, float? scales=None) -> (Tensor)

  • +
  • aten::upsample_linear1d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor)

  • +
  • aten::upsample_nearest1d(Tensor self, int[1] output_size, float? scales=None) -> (Tensor)

  • +
  • aten::upsample_nearest1d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor)

  • +
  • aten::upsample_nearest2d(Tensor self, int[2] output_size, float? scales_h=None, float? scales_w=None) -> (Tensor)

  • +
  • aten::upsample_nearest2d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor)

  • +
  • aten::upsample_nearest3d(Tensor self, int[3] output_size, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> (Tensor)

  • +
  • aten::upsample_nearest3d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor)

  • +
  • aten::upsample_trilinear3d(Tensor self, int[3] output_size, bool align_corners, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> (Tensor)

  • +
  • aten::upsample_trilinear3d.vec(Tensor input, int[]? output_size, bool align_corners, float[]? scale_factors) -> (Tensor)

  • +
  • aten::view(Tensor(a) self, int[] size) -> (Tensor(a))

  • +
  • trt::const(Tensor self) -> (Tensor)

  • +
+
+
+

Operators Currently Supported Through Evaluators

+
    +
  • aten::Bool.float(float b) -> (bool)

  • +
  • aten::Bool.int(int a) -> (bool)

  • +
  • aten::Float.Scalar(Scalar a) -> float

  • +
  • aten::Float.bool(bool a) -> float

  • +
  • aten::Float.int(int a) -> float

  • +
  • aten::Int.Scalar(Scalar a) -> int

  • +
  • aten::Int.bool(bool a) -> int

  • +
  • aten::Int.float(float a) -> int

  • +
  • aten::Int.int(int a) -> int

  • +
  • aten::__and__(int a, int b) -> (bool)

  • +
  • aten::__and__.bool(bool a, bool b) -> (bool)

  • +
  • aten::__derive_index(int idx, int start, int step) -> int

  • +
  • aten::__getitem__.t(t[](a) list, int idx) -> (t(*))

  • +
  • aten::__is__(t1 self, t2 obj) -> bool

  • +
  • aten::__isnot__(t1 self, t2 obj) -> bool

  • +
  • aten::__not__(bool self) -> bool

  • +
  • aten::__or__(int a, int b) -> (bool)

  • +
  • aten::__range_length(int lo, int hi, int step) -> int

  • +
  • aten::__round_to_zero_floordiv(int a, int b) -> (int)

  • +
  • aten::__xor__(int a, int b) -> (bool)

  • +
  • aten::add.float(float a, float b) -> (float)

  • +
  • aten::add.int(int a, int b) -> (int)

  • +
  • aten::add.str(str a, str b) -> (str)

  • +
  • aten::add_.t(t[](a!) self, t[] b) -> (t[])

  • +
  • aten::append.t(t[](a!) self, t(c -> *) el) -> (t[](a!))

  • +
  • +
    aten::arange(Scalar end, *, int? dtype=None, int? layout=None,

    Device? device=None, bool? pin_memory=None) -> (Tensor)

    +
    +
    +
  • +
  • +
    aten::arange.start(Scalar start, Scalar end, *, ScalarType? dtype=None,

    Layout? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor)

    +
    +
    +
  • +
  • +
    aten::arange.start_step(Scalar start, Scalar end, Scalar step, *, ScalarType? dtype=None,

    Layout? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor)

    +
    +
    +
  • +
  • aten::clone(Tensor self, *, int? memory_format=None) -> (Tensor)

  • +
  • aten::copy_(Tensor(a!) self, Tensor src, bool non_blocking=False) -> (Tensor(a!))

  • +
  • aten::dim(Tensor self) -> int

  • +
  • aten::div.float(float a, float b) -> (float)

  • +
  • aten::div.int(int a, int b) -> (float)

  • +
  • aten::eq.bool(bool a, bool b) -> (bool)

  • +
  • aten::eq.float(float a, float b) -> (bool)

  • +
  • aten::eq.float_int(float a, int b) -> (bool)

  • +
  • aten::eq.int(int a, int b) -> (bool)

  • +
  • aten::eq.int_float(int a, float b) -> (bool)

  • +
  • aten::eq.str(str a, str b) -> (bool)

  • +
  • aten::extend.t(t[](a!) self, t[] other) -> ()

  • +
  • aten::floor.float(float a) -> (int)

  • +
  • aten::floor.int(int a) -> (int)

  • +
  • aten::floordiv.float(float a, float b) -> (int)

  • +
  • aten::floordiv.int(int a, int b) -> (int)

  • +
  • aten::format(str self, …) -> (str)

  • +
  • aten::ge.bool(bool a, bool b) -> (bool)

  • +
  • aten::ge.float(float a, float b) -> (bool)

  • +
  • aten::ge.float_int(float a, int b) -> (bool)

  • +
  • aten::ge.int(int a, int b) -> (bool)

  • +
  • aten::ge.int_float(int a, float b) -> (bool)

  • +
  • aten::gt.bool(bool a, bool b) -> (bool)

  • +
  • aten::gt.float(float a, float b) -> (bool)

  • +
  • aten::gt.float_int(float a, int b) -> (bool)

  • +
  • aten::gt.int(int a, int b) -> (bool)

  • +
  • aten::gt.int_float(int a, float b) -> (bool)

  • +
  • aten::is_floating_point(Tensor self) -> (bool)

  • +
  • aten::le.bool(bool a, bool b) -> (bool)

  • +
  • aten::le.float(float a, float b) -> (bool)

  • +
  • aten::le.float_int(float a, int b) -> (bool)

  • +
  • aten::le.int(int a, int b) -> (bool)

  • +
  • aten::le.int_float(int a, float b) -> (bool)

  • +
  • aten::len.t(t[] a) -> (int)

  • +
  • aten::lt.bool(bool a, bool b) -> (bool)

  • +
  • aten::lt.float(float a, float b) -> (bool)

  • +
  • aten::lt.float_int(float a, int b) -> (bool)

  • +
  • aten::lt.int(int a, int b) -> (bool)

  • +
  • aten::lt.int_float(int a, float b) -> (bool)

  • +
  • aten::mul.float(float a, float b) -> (float)

  • +
  • aten::mul.int(int a, int b) -> (int)

  • +
  • aten::ne.bool(bool a, bool b) -> (bool)

  • +
  • aten::ne.float(float a, float b) -> (bool)

  • +
  • aten::ne.float_int(float a, int b) -> (bool)

  • +
  • aten::ne.int(int a, int b) -> (bool)

  • +
  • aten::ne.int_float(int a, float b) -> (bool)

  • +
  • aten::neg.int(int a) -> (int)

  • +
  • aten::numel(Tensor self) -> int

  • +
  • aten::pow.float(float a, float b) -> (float)

  • +
  • aten::pow.float_int(float a, int b) -> (float)

  • +
  • aten::pow.int(int a, int b) -> (float)

  • +
  • aten::pow.int_float(int a, float b) -> (float)

  • +
  • aten::size(Tensor self) -> (int[])

  • +
  • aten::size.int(Tensor self, int dim) -> (int)

  • +
  • aten::slice.t(t[] l, int start, int end=9223372036854775807, int step=1) -> (t[])

  • +
  • aten::sqrt.float(float a) -> (float)

  • +
  • aten::sqrt.int(int a) -> (float)

  • +
  • aten::sub.float(float a, float b) -> (float)

  • +
  • aten::sub.int(int a, int b) -> (int)

  • +
  • aten::tensor(t[] data, *, int? dtype=None, Device? device=None, bool requires_grad=False) -> (Tensor)

  • +
  • prim::TupleIndex(Any tup, int i) -> (Any)

  • +
  • prim::dtype(Tensor a) -> (int)

  • +
  • prim::max.bool(bool a, bool b) -> (bool)

  • +
  • prim::max.float(float a, float b) -> (bool)

  • +
  • prim::max.float_int(float a, int b) -> (bool)

  • +
  • prim::max.int(int a, int b) -> (bool)

  • +
  • prim::max.int_float(int a, float b) -> (bool)

  • +
  • prim::max.self_int(int[] self) -> (int)

  • +
  • prim::min.bool(bool a, bool b) -> (bool)

  • +
  • prim::min.float(float a, float b) -> (bool)

  • +
  • prim::min.float_int(float a, int b) -> (bool)

  • +
  • prim::min.int(int a, int b) -> (bool)

  • +
  • prim::min.int_float(int a, float b) -> (bool)

  • +
  • prim::min.self_int(int[] self) -> (int)

  • +
  • prim::shape(Tensor a) -> (int[])

  • +
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/objects.inv b/docs/v1.2.0/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..fd777bc36a52348c7e81967f48cc817434c82b01 GIT binary patch literal 27051 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%0D+0NlFlg%FrYI0--&GU$SBzZfD^>*w~c~ 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 + + + + + + + + Python Module Index — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+ + +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/py_api/fx.html b/docs/v1.2.0/py_api/fx.html new file mode 100644 index 0000000000..96006fafe8 --- /dev/null +++ b/docs/v1.2.0/py_api/fx.html @@ -0,0 +1,742 @@ + + + + + + + + + + + + + torch_tensorrt.fx — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

torch_tensorrt.fx

+
+

Functions

+
+
+torch_tensorrt.fx.compile(module: torch.nn.modules.module.Module, input, max_batch_size: int = 2048, max_workspace_size=33554432, explicit_batch_dimension=False, lower_precision=LowerPrecision.FP16, verbose_log=False, timing_cache_prefix='', save_timing_cache=False, cuda_graph_batch_size=- 1, dynamic_batch=True) torch.nn.modules.module.Module[source]
+

Takes in original module, input and lowering setting, run lowering workflow to turn module +into lowered module, or so called TRTModule.

+
+
Parameters
+
    +
  • module – Original module for lowering.

  • +
  • input – Input for module.

  • +
  • max_batch_size – Maximum batch size (must be >= 1 to be set, 0 means not set)

  • +
  • max_workspace_size – Maximum size of workspace given to TensorRT.

  • +
  • explicit_batch_dimension – Use explicit batch dimension in TensorRT if set True, otherwise use implicit batch dimension.

  • +
  • lower_precision – lower_precision config given to TRTModule.

  • +
  • verbose_log – Enable verbose log for TensorRT if set True.

  • +
  • timing_cache_prefix – Timing cache file name for timing cache used by fx2trt.

  • +
  • save_timing_cache – Update timing cache with current timing cache data if set to True.

  • +
  • cuda_graph_batch_size – Cuda graph batch size, default to be -1.

  • +
  • dynamic_batch – batch dimension (dim=0) is dynamic.

  • +
+
+
Returns
+

A torch.nn.Module lowered by TensorRT.

+
+
+
+ +
+
+

Classes

+
+
+class torch_tensorrt.fx.TRTModule(engine=None, input_names=None, output_names=None, cuda_graph_batch_size=- 1)[source]
+
+ +
+
+class torch_tensorrt.fx.InputTensorSpec(shape: Sequence[int], dtype: torch.dtype, device: torch.device = device(type='cpu'), shape_ranges: List[Tuple[Sequence[int], Sequence[int], Sequence[int]]] = [], has_batch_dim: bool = True)[source]
+

This class contains the information of a input tensor.

+

shape: shape of the tensor.

+

dtype: dtyep of the tensor.

+
+
device: device of the tensor. This is only used to generate inputs to the given model

in order to run shape prop. For TensorRT engine, inputs have to be on cuda device.

+
+
shape_ranges: If dynamic shape is needed (shape has dimensions of -1), then this field

has to be provided (default is empty list). Every shape_range is a tuple of three +tuples ((min_input_shape), (optimized_input_shape), (max_input_shape)). Each shape_range +is used to populate a TensorRT optimization profile. +e.g. If the input shape varies from (1, 224) to (100, 224) and we want to optimize +for (25, 224) because it’s the most common input shape, then we set shape_ranges to +((1, 224), (25, 225), (100, 224)).

+
+
has_batch_dim: Whether the shape includes batch dimension. Batch dimension has to be provided

if the engine want to run with dynamic shape.

+
+
+
+ +
+
+class torch_tensorrt.fx.TRTInterpreter(module: torch.fx.graph_module.GraphModule, input_specs: List[torch_tensorrt.fx.input_tensor_spec.InputTensorSpec], explicit_batch_dimension: bool = False, explicit_precision: bool = False, logger_level=None)[source]
+
+ +
+
+class torch_tensorrt.fx.TRTInterpreterResult(engine, input_names, output_names, serialized_cache)[source]
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/py_api/logging.html b/docs/v1.2.0/py_api/logging.html new file mode 100644 index 0000000000..94dbdf8002 --- /dev/null +++ b/docs/v1.2.0/py_api/logging.html @@ -0,0 +1,870 @@ + + + + + + + + + + + + + torch_tensorrt.logging — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

torch_tensorrt.logging

+
+
+class torch_tensorrt.logging.Level(value)[source]
+

Bases: enum.Enum

+

Enum to set the minimum required logging level to print a message to stdout

+
+
+Debug = <LogLevel.DEBUG: 4>
+
+ +
+
+Error = <LogLevel.ERROR: 1>
+
+ +
+
+Graph = <LogLevel.GRAPH: 5>
+
+ +
+
+Info = <LogLevel.INFO: 3>
+
+ +
+
+InternalError = <LogLevel.INTERNAL_ERROR: 0>
+
+ +
+
+Warning = <LogLevel.WARNING: 2>
+
+ +
+ +
+
+class torch_tensorrt.logging.debug[source]
+

Bases: object

+

Context-manager to display full debug information through the logger

+

Example:

+
+
with torch_tensorrt.logging.debug():

model_trt = torch_tensorrt.compile(model, **spec)

+
+
+
+ +
+
+class torch_tensorrt.logging.errors[source]
+

Bases: object

+

Context-manager to limit displayed log messages to just errors and above

+

Example:

+
+
with torch_tensorrt.logging.errors():

outputs = model_torchtrt(inputs)

+
+
+
+ +
+
+torch_tensorrt.logging.get_is_colored_output_on() bool[source]
+

Get if colored output is enabled for logging

+
+
Returns
+

If colored output is one

+
+
Return type
+

bool

+
+
+
+ +
+
+torch_tensorrt.logging.get_logging_prefix() str[source]
+

Get the prefix set for logging messages

+
+
Returns
+

Prefix used for logger

+
+
Return type
+

str

+
+
+
+ +
+
+torch_tensorrt.logging.get_reportable_log_level() torch_tensorrt.logging.Level[source]
+

Get the level required for a message to be printed in the log

+
+
Returns
+

The enum representing the level required to print

+
+
Return type
+

torch_tensorrt.logging.Level

+
+
+
+ +
+
+class torch_tensorrt.logging.graphs[source]
+

Bases: object

+

Context-manager to display the results of intermediate lowering passes +as well as full debug information through the logger

+

Example:

+
+
with torch_tensorrt.logging.graphs():

model_trt = torch_tensorrt.compile(model, **spec)

+
+
+
+ +
+
+class torch_tensorrt.logging.info[source]
+

Bases: object

+

Context-manager to display all info and greater severity messages

+

Example:

+
+
with torch_tensorrt.logging.info():

model_trt = torch_tensorrt.compile(model, **spec)

+
+
+
+ +
+
+class torch_tensorrt.logging.internal_errors[source]
+

Bases: object

+

Context-manager to limit displayed log messages to just internal errors

+

Example:

+
+
with torch_tensorrt.logging.internal_errors():

outputs = model_torchtrt(inputs)

+
+
+
+ +
+
+torch_tensorrt.logging.log(level: torch_tensorrt.logging.Level, msg: str)[source]
+

Add a new message to the log

+

Adds a new message to the log at a specified level. The message +will only get printed out if Level > reportable_log_level

+
+
Parameters
+
+
+
+
+ +
+
+torch_tensorrt.logging.set_is_colored_output_on(colored_output_on: bool)[source]
+

Enable or disable color in the log output

+
+
Parameters
+

colored_output_on (bool) – If colored output should be enabled or not

+
+
+
+ +
+
+torch_tensorrt.logging.set_logging_prefix(prefix: str)[source]
+

Set the prefix used when logging messages

+
+
Parameters
+

prefix (str) – Prefix to use for logging messages

+
+
+
+ +
+
+torch_tensorrt.logging.set_reportable_log_level(level: torch_tensorrt.logging.Level)[source]
+

Set the level required for a message to be printed to the log

+
+
Parameters
+

level (torch_tensorrt.logging.Level) – The enum representing the level required to print

+
+
+
+ +
+
+class torch_tensorrt.logging.warnings[source]
+

Bases: object

+

Context-manager to limit displayed log messages to just warnings and above

+

Example:

+
+
with torch_tensorrt.logging.warnings():

model_trt = torch_tensorrt.compile(model, **spec)

+
+
+
+ +
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/py_api/ptq.html b/docs/v1.2.0/py_api/ptq.html new file mode 100644 index 0000000000..fb804d3152 --- /dev/null +++ b/docs/v1.2.0/py_api/ptq.html @@ -0,0 +1,789 @@ + + + + + + + + + + + + + torch_tensorrt.ptq — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

torch_tensorrt.ptq

+
+
+class torch_tensorrt.ptq.CacheCalibrator(*args, **kwargs)[source]
+

Bases: object

+

Constructs a calibrator class in TensorRT which directly uses pre-existing cache file for calibration. +:param cache_file: path to cache file. +:param algo_type: choice of calibration algorithm.

+
+ +
+
+class torch_tensorrt.ptq.CalibrationAlgo(value)[source]
+

Bases: enum.Enum

+

An enumeration.

+
+
+ENTROPY_CALIBRATION = <CalibrationAlgo.ENTROPY_CALIBRATION: 1>
+
+ +
+
+ENTROPY_CALIBRATION_2 = <CalibrationAlgo.ENTROPY_CALIBRATION_2: 2>
+
+ +
+
+LEGACY_CALIBRATION = <CalibrationAlgo.LEGACY_CALIBRATION: 0>
+
+ +
+
+MINMAX_CALIBRATION = <CalibrationAlgo.MINMAX_CALIBRATION: 3>
+
+ +
+ +
+
+class torch_tensorrt.ptq.DataLoaderCalibrator(*args, **kwargs)[source]
+

Bases: object

+

Constructs a calibrator class in TensorRT and uses pytorch dataloader to load/preproces +data which is passed during calibration. +:param dataloader: an instance of pytorch dataloader which iterates through a given dataset. +:param algo_type: choice of calibration algorithm. +:param cache_file: path to cache file. +:param use_cache: flag which enables usage of pre-existing cache. +:param device: device on which calibration data is copied to.

+
+ +
+
+torch_tensorrt.ptq.get_batch(self, names)[source]
+
+ +
+
+torch_tensorrt.ptq.get_batch_size(self)[source]
+
+ +
+
+torch_tensorrt.ptq.get_cache_mode_batch(self)[source]
+
+ +
+
+torch_tensorrt.ptq.read_calibration_cache(self)[source]
+
+ +
+
+torch_tensorrt.ptq.write_calibration_cache(self, cache)[source]
+
+ +
+

Classes

+
+
+class torch_tensorrt.ptq.DataLoaderCalibrator(*args, **kwargs)[source]
+

Constructs a calibrator class in TensorRT and uses pytorch dataloader to load/preproces +data which is passed during calibration. +:param dataloader: an instance of pytorch dataloader which iterates through a given dataset. +:param algo_type: choice of calibration algorithm. +:param cache_file: path to cache file. +:param use_cache: flag which enables usage of pre-existing cache. +:param device: device on which calibration data is copied to.

+
+
+__init__(**kwargs)[source]
+
+ +
+ +
+
+class torch_tensorrt.ptq.CacheCalibrator(*args, **kwargs)[source]
+

Constructs a calibrator class in TensorRT which directly uses pre-existing cache file for calibration. +:param cache_file: path to cache file. +:param algo_type: choice of calibration algorithm.

+
+
+__init__(**kwargs)[source]
+
+ +
+ +
+
+

Enums

+
+
+class torch_tensorrt.ptq.CalibrationAlgo(value)[source]
+

An enumeration.

+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/py_api/torch_tensorrt.html b/docs/v1.2.0/py_api/torch_tensorrt.html new file mode 100644 index 0000000000..ef656841f9 --- /dev/null +++ b/docs/v1.2.0/py_api/torch_tensorrt.html @@ -0,0 +1,1029 @@ + + + + + + + + + + + + + torch_tensorrt — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

torch_tensorrt

+
+

Functions

+
+
+torch_tensorrt.set_device(gpu_id)[source]
+
+ +
+
+torch_tensorrt.compile(module: typing.Any, ir='default', inputs=[], enabled_precisions={<dtype.float: 0>}, **kwargs)[source]
+

Compile a PyTorch module for NVIDIA GPUs using TensorRT

+

Takes a existing PyTorch module and a set of settings to configure the compiler +and using the path specified in ir lower and compile the module to TensorRT +returning a PyTorch Module back

+

Converts specifically the forward method of a Module

+
+
Parameters
+

module (Union(torch.nn.Module,torch.jit.ScriptModule) – Source module

+
+
Keyword Arguments
+
    +
  • inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]) –

    Required List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using +torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum +to select device type.

    +
    input=[
    +    torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1
    +    torch_tensorrt.Input(
    +        min_shape=(1, 224, 224, 3),
    +        opt_shape=(1, 512, 512, 3),
    +        max_shape=(1, 1024, 1024, 3),
    +        dtype=torch.int32
    +        format=torch.channel_last
    +    ), # Dynamic input shape for input #2
    +    torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings
    +]
    +
    +
    +

  • +
  • enabled_precision (Set(Union(torch.dpython:type, torch_tensorrt.dpython:type))) – The set of datatypes that TensorRT can use when selecting kernels

  • +
  • ir (str) – The requested strategy to compile. (Options: default - Let Torch-TensorRT decide, ts - TorchScript with scripting path)

  • +
  • **kwargs – Additional settings for the specific requested strategy (See submodules for more info)

  • +
+
+
Returns
+

Compiled Module, when run it will execute via TensorRT

+
+
Return type
+

torch.nn.Module

+
+
+
+ +
+
+torch_tensorrt.convert_method_to_trt_engine(module: typing.Any, method_name: str, ir='default', inputs=[], enabled_precisions={<dtype.float: 0>}, **kwargs)[source]
+

Convert a TorchScript module method to a serialized TensorRT engine

+

Converts a specified method of a module to a serialized TensorRT engine given a dictionary of conversion settings

+
+
Parameters
+

module (Union(torch.nn.Module,torch.jit.ScriptModule) – Source module

+
+
Keyword Arguments
+
    +
  • inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]) –

    Required List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using +torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum +to select device type.

    +
    input=[
    +    torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1
    +    torch_tensorrt.Input(
    +        min_shape=(1, 224, 224, 3),
    +        opt_shape=(1, 512, 512, 3),
    +        max_shape=(1, 1024, 1024, 3),
    +        dtype=torch.int32
    +        format=torch.channel_last
    +    ), # Dynamic input shape for input #2
    +    torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings
    +]
    +
    +
    +

  • +
  • enabled_precision (Set(Union(torch.dpython:type, torch_tensorrt.dpython:type))) – The set of datatypes that TensorRT can use when selecting kernels

  • +
  • ir (str) – The requested strategy to compile. (Options: default - Let Torch-TensorRT decide, ts - TorchScript with scripting path)

  • +
  • **kwargs – Additional settings for the specific requested strategy (See submodules for more info)

  • +
+
+
Returns
+

Serialized TensorRT engine, can either be saved to a file or deserialized via TensorRT APIs

+
+
Return type
+

bytes

+
+
+
+ +
+
+torch_tensorrt.get_build_info() str[source]
+

Returns a string containing the build information of torch_tensorrt distribution

+
+
Returns
+

String containing the build information for torch_tensorrt distribution

+
+
Return type
+

str

+
+
+
+ +
+
+torch_tensorrt.dump_build_info()[source]
+

Prints build information about the torch_tensorrt distribution to stdout

+
+ +
+
+

Classes

+
+
+class torch_tensorrt.Input(*args, **kwargs)[source]
+

Defines an input to a module in terms of expected shape, data type and tensor format.

+
+
Variables
+
    +
  • shape_mode (torch_tensorrt.Input._ShapeMode) – Is input statically or dynamically shaped

  • +
  • shape (Tuple or Dict) –

    Either a single Tuple or a dict of tuples defining the input shape. +Static shaped inputs will have a single tuple. Dynamic inputs will have a dict of the form +``{

    +
    +

    ”min_shape”: Tuple, +“opt_shape”: Tuple, +“max_shape”: Tuple

    +
    +

    }``

    +

  • +
  • dtype (torch_tensorrt.dpython:type) – The expected data type of the input tensor (default: torch_tensorrt.dtype.float32)

  • +
  • format (torch_tensorrt.TensorFormat) – The expected format of the input tensor (default: torch_tensorrt.TensorFormat.NCHW)

  • +
+
+
+
+
+__init__(*args, **kwargs)[source]
+

__init__ Method for torch_tensorrt.Input

+

Input accepts one of a few construction patterns

+
+
Parameters
+

shape (Tuple or List, optional) – Static shape of input tensor

+
+
Keyword Arguments
+
    +
  • shape (Tuple or List, optional) – Static shape of input tensor

  • +
  • min_shape (Tuple or List, optional) – Min size of input tensor’s shape range +Note: All three of min_shape, opt_shape, max_shape must be provided, there must be no positional arguments, shape must not be defined and implictly this sets Input’s shape_mode to DYNAMIC

  • +
  • opt_shape (Tuple or List, optional) – Opt size of input tensor’s shape range +Note: All three of min_shape, opt_shape, max_shape must be provided, there must be no positional arguments, shape must not be defined and implictly this sets Input’s shape_mode to DYNAMIC

  • +
  • max_shape (Tuple or List, optional) – Max size of input tensor’s shape range +Note: All three of min_shape, opt_shape, max_shape must be provided, there must be no positional arguments, shape must not be defined and implictly this sets Input’s shape_mode to DYNAMIC

  • +
  • dtype (torch.dpython:type or torch_tensorrt.dpython:type) – Expected data type for input tensor (default: torch_tensorrt.dtype.float32)

  • +
  • format (torch.memory_format or torch_tensorrt.TensorFormat) – The expected format of the input tensor (default: torch_tensorrt.TensorFormat.NCHW)

  • +
+
+
+

Examples

+
    +
  • Input([1,3,32,32], dtype=torch.float32, format=torch.channel_last)

  • +
  • Input(shape=(1,3,32,32), dtype=torch_tensorrt.dtype.int32, format=torch_tensorrt.TensorFormat.NCHW)

  • +
  • Input(min_shape=(1,3,32,32), opt_shape=[2,3,32,32], max_shape=(3,3,32,32)) #Implicitly dtype=torch_tensorrt.dtype.float32, format=torch_tensorrt.TensorFormat.NCHW

  • +
+
+ +
+
+dtype = <dtype.unknown: 5>
+

torch_tensorrt.dtype.float32)

+
+
Type
+

The expected data type of the input tensor (default

+
+
+
+ +
+
+format = <TensorFormat.contiguous: 0>
+

torch_tensorrt.TensorFormat.NCHW)

+
+
Type
+

The expected format of the input tensor (default

+
+
+
+ +
+
+shape = None
+

Either a single Tuple or a dict of tuples defining the input shape. Static shaped inputs will have a single tuple. Dynamic inputs will have a dict of the form { "min_shape": Tuple, "opt_shape": Tuple, "max_shape": Tuple }

+
+
Type
+

(Tuple or Dict)

+
+
+
+ +
+
+shape_mode = None
+

Is input statically or dynamically shaped

+
+
Type
+

(torch_tensorrt.Input._ShapeMode)

+
+
+
+ +
+ +
+
+class torch_tensorrt.Device(*args, **kwargs)[source]
+

Defines a device that can be used to specify target devices for engines

+
+
Variables
+
    +
  • device_type (torch_tensorrt.DeviceType) – Target device type (GPU or DLA). Set implicitly based on if dla_core is specified.

  • +
  • gpu_id (python:int) – Device ID for target GPU

  • +
  • dla_core (python:int) – Core ID for target DLA core

  • +
  • allow_gpu_fallback (bool) – Whether falling back to GPU if DLA cannot support an op should be allowed

  • +
+
+
+
+
+__init__(*args, **kwargs)[source]
+

__init__ Method for torch_tensorrt.Device

+

Device accepts one of a few construction patterns

+
+
Parameters
+

spec (str) – String with device spec e.g. “dla:0” for dla, core_id 0

+
+
Keyword Arguments
+
    +
  • gpu_id (python:int) – ID of target GPU (will get overrided if dla_core is specified to the GPU managing DLA). If specified, no positional arguments should be provided

  • +
  • dla_core (python:int) – ID of target DLA core. If specified, no positional arguments should be provided.

  • +
  • allow_gpu_fallback (bool) – Allow TensorRT to schedule operations on GPU if they are not supported on DLA (ignored if device type is not DLA)

  • +
+
+
+

Examples

+
    +
  • Device(“gpu:1”)

  • +
  • Device(“cuda:1”)

  • +
  • Device(“dla:0”, allow_gpu_fallback=True)

  • +
  • Device(gpu_id=0, dla_core=0, allow_gpu_fallback=True)

  • +
  • Device(dla_core=0, allow_gpu_fallback=True)

  • +
  • Device(gpu_id=1)

  • +
+
+ +
+
+allow_gpu_fallback = False
+

(bool) Whether falling back to GPU if DLA cannot support an op should be allowed

+
+ +
+
+device_type = None
+

Target device type (GPU or DLA). Set implicitly based on if dla_core is specified.

+
+
Type
+

(torch_tensorrt.DeviceType)

+
+
+
+ +
+
+dla_core = -1
+

(int) Core ID for target DLA core

+
+ +
+
+gpu_id = -1
+

(int) Device ID for target GPU

+
+ +
+ +
+
+

Enums

+
+
+class torch_tensorrt.dtype
+

Enum to specifiy operating precision for engine execution

+

Members:

+
+

float : 32 bit floating point number

+

float32 : 32 bit floating point number

+

half : 16 bit floating point number

+

float16 : 16 bit floating point number

+

int8 : 8 bit integer number

+

int32 : 32 bit integer number

+

bool : Boolean value

+

unknown : Unknown data type

+
+
+ +
+
+class torch_tensorrt.DeviceType
+

Enum to specify device kinds to build TensorRT engines for

+

Members:

+
+

GPU : Specify using GPU to execute TensorRT Engine

+

DLA : Specify using DLA to execute TensorRT Engine (Jetson Only)

+
+
+ +
+
+class torch_tensorrt.EngineCapability
+

Enum to specify engine capability settings (selections of kernels to meet safety requirements)

+

Members:

+
+

safe_gpu : Use safety GPU kernels only

+

safe_dla : Use safety DLA kernels only

+

default : Use default behavior

+
+
+ +
+
+class torch_tensorrt.TensorFormat
+

Enum to specifiy the memory layout of tensors

+

Members:

+
+

contiguous : Contiguous memory layout (NCHW / Linear)

+

channels_last : Channels last memory layout (NHWC)

+
+
+ +
+
+

Submodules

+ +
+
+ + +
+ +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/py_api/ts.html b/docs/v1.2.0/py_api/ts.html new file mode 100644 index 0000000000..e3ba80139e --- /dev/null +++ b/docs/v1.2.0/py_api/ts.html @@ -0,0 +1,931 @@ + + + + + + + + + + + + + torch_tensorrt.ts — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

torch_tensorrt.ts

+
+

Functions

+
+
+torch_tensorrt.ts.compile(module: torch.jit._script.ScriptModule, inputs=[], input_signature=None, device=<torch_tensorrt._Device.Device object>, disable_tf32=False, sparse_weights=False, enabled_precisions={}, refit=False, debug=False, capability=<EngineCapability.default: 0>, num_avg_timing_iters=1, workspace_size=0, dla_sram_size=1048576, dla_local_dram_size=1073741824, dla_global_dram_size=536870912, calibrator=None, truncate_long_and_double=False, require_full_compilation=False, min_block_size=3, torch_executed_ops=[], torch_executed_modules=[]) torch.jit._script.ScriptModule[source]
+

Compile a TorchScript module for NVIDIA GPUs using TensorRT

+

Takes a existing TorchScript module and a set of settings to configure the compiler +and will convert methods to JIT Graphs which call equivalent TensorRT engines

+

Converts specifically the forward method of a TorchScript Module

+
+
Parameters
+

module (torch.jit.ScriptModule) – Source module, a result of tracing or scripting a PyTorch +torch.nn.Module

+
+
Keyword Arguments
+
    +
  • inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]) –

    Required List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using +torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum +to select device type.

    +
    input=[
    +    torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1
    +    torch_tensorrt.Input(
    +        min_shape=(1, 224, 224, 3),
    +        opt_shape=(1, 512, 512, 3),
    +        max_shape=(1, 1024, 1024, 3),
    +        dtype=torch.int32
    +        format=torch.channel_last
    +    ), # Dynamic input shape for input #2
    +    torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings
    +]
    +
    +
    +

  • +
  • Union (input_signature) –

    A formatted collection of input specifications for the module. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using +torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum to select device type. This API should be considered beta-level stable and may change in the future

    +
    input_signature=([
    +    torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1
    +    torch_tensorrt.Input(
    +        min_shape=(1, 224, 224, 3),
    +        opt_shape=(1, 512, 512, 3),
    +        max_shape=(1, 1024, 1024, 3),
    +        dtype=torch.int32
    +        format=torch.channel_last
    +    ), # Dynamic input shape for input #2
    +], torch.randn((1, 3, 224, 244))) # Use an example tensor and let torch_tensorrt infer settings for input #3
    +
    +
    +

  • +
  • device (Union(torch_tensorrt.Device, torch.device, dict)) –

    Target device for TensorRT engines to run on

    +
    device=torch_tensorrt.Device("dla:1", allow_gpu_fallback=True)
    +
    +
    +

  • +
  • disable_tf32 (bool) – Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas

  • +
  • sparse_weights (bool) – Enable sparsity for convolution and fully connected layers.

  • +
  • enabled_precision (Set(Union(torch.dpython:type, torch_tensorrt.dpython:type))) – The set of datatypes that TensorRT can use when selecting kernels

  • +
  • refit (bool) – Enable refitting

  • +
  • debug (bool) – Enable debuggable engine

  • +
  • capability (torch_tensorrt.EngineCapability) – Restrict kernel selection to safe gpu kernels or safe dla kernels

  • +
  • num_avg_timing_iters (python:int) – Number of averaging timing iterations used to select kernels

  • +
  • workspace_size (python:int) – Maximum size of workspace given to TensorRT

  • +
  • dla_sram_size (python:int) – Fast software managed RAM used by DLA to communicate within a layer.

  • +
  • dla_local_dram_size (python:int) – Host RAM used by DLA to share intermediate tensor data across operations

  • +
  • dla_global_dram_size (python:int) – Host RAM used by DLA to store weights and metadata for execution

  • +
  • truncate_long_and_double (bool) – Truncate weights provided in int64 or double (float64) to int32 and float32

  • +
  • calibrator (Union(torch_tensorrt._C.IInt8Calibrator, tensorrt.IInt8Calibrator)) – Calibrator object which will provide data to the PTQ system for INT8 Calibration

  • +
  • require_full_compilation (bool) – Require modules to be compiled end to end or return an error as opposed to returning a hybrid graph where operations that cannot be run in TensorRT are run in PyTorch

  • +
  • min_block_size (python:int) – The minimum number of contiguous TensorRT convertable operations in order to run a set of operations in TensorRT

  • +
  • torch_executed_ops (List[str]) – List of aten operators that must be run in PyTorch. An error will be thrown if this list is not empty but require_full_compilation is True

  • +
  • torch_executed_modules (List[str]) – List of modules that must be run in PyTorch. An error will be thrown if this list is not empty but require_full_compilation is True

  • +
+
+
Returns
+

Compiled TorchScript Module, when run it will execute via TensorRT

+
+
Return type
+

torch.jit.ScriptModule

+
+
+
+ +
+
+torch_tensorrt.ts.convert_method_to_trt_engine(module: torch.jit._script.ScriptModule, method_name: str, inputs=[], device=<torch_tensorrt._Device.Device object>, disable_tf32=False, sparse_weights=False, enabled_precisions={}, refit=False, debug=False, capability=<EngineCapability.default: 0>, num_avg_timing_iters=1, workspace_size=0, dla_sram_size=1048576, dla_local_dram_size=1073741824, dla_global_dram_size=536870912, truncate_long_and_double=False, calibrator=None) str[source]
+

Convert a TorchScript module method to a serialized TensorRT engine

+

Converts a specified method of a module to a serialized TensorRT engine given a dictionary of conversion settings

+
+
Parameters
+
    +
  • module (torch.jit.ScriptModule) – Source module, a result of tracing or scripting a PyTorch +torch.nn.Module

  • +
  • method_name (str) – Name of method to convert

  • +
+
+
Keyword Arguments
+
    +
  • inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]) –

    Required List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using +torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum +to select device type.

    +
    input=[
    +    torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1
    +    torch_tensorrt.Input(
    +        min_shape=(1, 224, 224, 3),
    +        opt_shape=(1, 512, 512, 3),
    +        max_shape=(1, 1024, 1024, 3),
    +        dtype=torch.int32
    +        format=torch.channel_last
    +    ), # Dynamic input shape for input #2
    +    torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings
    +]
    +
    +
    +

  • +
  • Union (input_signature) –

    A formatted collection of input specifications for the module. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using +torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum to select device type. This API should be considered beta-level stable and may change in the future

    +
    input_signature=([
    +    torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1
    +    torch_tensorrt.Input(
    +        min_shape=(1, 224, 224, 3),
    +        opt_shape=(1, 512, 512, 3),
    +        max_shape=(1, 1024, 1024, 3),
    +        dtype=torch.int32
    +        format=torch.channel_last
    +    ), # Dynamic input shape for input #2
    +], torch.randn((1, 3, 224, 244))) # Use an example tensor and let torch_tensorrt infer settings for input #3
    +
    +
    +

  • +
  • device (Union(torch_tensorrt.Device, torch.device, dict)) –

    Target device for TensorRT engines to run on

    +
    device=torch_tensorrt.Device("dla:1", allow_gpu_fallback=True)
    +
    +
    +

  • +
  • disable_tf32 (bool) – Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas

  • +
  • sparse_weights (bool) – Enable sparsity for convolution and fully connected layers.

  • +
  • enabled_precision (Set(Union(torch.dpython:type, torch_tensorrt.dpython:type))) – The set of datatypes that TensorRT can use when selecting kernels

  • +
  • refit (bool) – Enable refitting

  • +
  • debug (bool) – Enable debuggable engine

  • +
  • capability (torch_tensorrt.EngineCapability) – Restrict kernel selection to safe gpu kernels or safe dla kernels

  • +
  • num_avg_timing_iters (python:int) – Number of averaging timing iterations used to select kernels

  • +
  • workspace_size (python:int) – Maximum size of workspace given to TensorRT

  • +
  • dla_sram_size (python:int) – Fast software managed RAM used by DLA to communicate within a layer.

  • +
  • dla_local_dram_size (python:int) – Host RAM used by DLA to share intermediate tensor data across operations

  • +
  • dla_global_dram_size (python:int) – Host RAM used by DLA to store weights and metadata for execution

  • +
  • truncate_long_and_double (bool) – Truncate weights provided in int64 or double (float64) to int32 and float32

  • +
  • calibrator (Union(torch_tensorrt._C.IInt8Calibrator, tensorrt.IInt8Calibrator)) – Calibrator object which will provide data to the PTQ system for INT8 Calibration

  • +
+
+
Returns
+

Serialized TensorRT engine, can either be saved to a file or deserialized via TensorRT APIs

+
+
Return type
+

bytes

+
+
+
+ +
+
+torch_tensorrt.ts.check_method_op_support(module: torch.jit._script.ScriptModule, method_name: str) bool[source]
+

Checks to see if a method is fully supported by torch_tensorrt

+

Checks if a method of a TorchScript module can be compiled by torch_tensorrt, if not, a list of operators +that are not supported are printed out and the function returns false, else true.

+
+
Parameters
+
    +
  • module (torch.jit.ScriptModule) – Source module, a result of tracing or scripting a PyTorch +torch.nn.Module

  • +
  • method_name (str) – Name of method to check

  • +
+
+
Returns
+

True if supported Method

+
+
Return type
+

bool

+
+
+
+ +
+
+torch_tensorrt.ts.embed_engine_in_new_module(serialized_engine: bytes, device=<torch_tensorrt._Device.Device object>) torch.jit._script.ScriptModule[source]
+

Takes a pre-built serialized TensorRT engine and embeds it within a TorchScript module

+

Takes a pre-built serialied TensorRT engine (as bytes) and embeds it within a TorchScript module. +Registers the forward method to execute the TensorRT engine with the function signature:

+
+

forward(Tensor[]) -> Tensor[]

+
+
+
TensorRT bindings must have names with the following format:
    +
  • [symbol].[index in input / output array]

  • +
+

ex. +- [x.0, x.1, x.2] -> [y.0]

+
+
+

Module can be save with engine embedded with torch.jit.save and moved / loaded according to torch_tensorrt portability rules

+
+
Parameters
+

serialized_engine (bytes) – Serialized TensorRT engine from either torch_tensorrt or TensorRT APIs

+
+
Keyword Arguments
+

device (Union(torch_tensorrt.Device, torch.device, dict)) – Target device to run engine on. Must be compatible with engine provided. Default: Current active device

+
+
Returns
+

New TorchScript module with engine embedded

+
+
Return type
+

torch.jit.ScriptModule

+
+
+
+ +
+
+torch_tensorrt.ts.TensorRTCompileSpec(inputs=[], input_signature=None, device=<torch_tensorrt._Device.Device object>, disable_tf32=False, sparse_weights=False, enabled_precisions={}, refit=False, debug=False, capability=<EngineCapability.default: 0>, num_avg_timing_iters=1, workspace_size=0, dla_sram_size=1048576, dla_local_dram_size=1073741824, dla_global_dram_size=536870912, truncate_long_and_double=False, calibrator=None) <torch.ScriptClass object at 0x7f6a8d162db0>[source]
+

Utility to create a formated spec dictionary for using the PyTorch TensorRT backend

+
+
Keyword Arguments
+
    +
  • inputs (List[Union(torch_tensorrt.Input, torch.Tensor)]) –

    Required List of specifications of input shape, dtype and memory layout for inputs to the module. This argument is required. Input Sizes can be specified as torch sizes, tuples or lists. dtypes can be specified using +torch datatypes or torch_tensorrt datatypes and you can use either torch devices or the torch_tensorrt device type enum +to select device type.

    +
    input=[
    +    torch_tensorrt.Input((1, 3, 224, 224)), # Static NCHW input shape for input #1
    +    torch_tensorrt.Input(
    +        min_shape=(1, 224, 224, 3),
    +        opt_shape=(1, 512, 512, 3),
    +        max_shape=(1, 1024, 1024, 3),
    +        dtype=torch.int32
    +        format=torch.channel_last
    +    ), # Dynamic input shape for input #2
    +    torch.randn((1, 3, 224, 244)) # Use an example tensor and let torch_tensorrt infer settings
    +]
    +
    +
    +

  • +
  • device (Union(torch_tensorrt.Device, torch.device, dict)) –

    Target device for TensorRT engines to run on

    +
    device=torch_tensorrt.Device("dla:1", allow_gpu_fallback=True)
    +
    +
    +

  • +
  • disable_tf32 (bool) – Force FP32 layers to use traditional as FP32 format vs the default behavior of rounding the inputs to 10-bit mantissas before multiplying, but accumulates the sum using 23-bit mantissas

  • +
  • sparse_weights (bool) – Enable sparsity for convolution and fully connected layers.

  • +
  • enabled_precision (Set(Union(torch.dpython:type, torch_tensorrt.dpython:type))) – The set of datatypes that TensorRT can use when selecting kernels

  • +
  • refit (bool) – Enable refitting

  • +
  • debug (bool) – Enable debuggable engine

  • +
  • capability (torch_tensorrt.EngineCapability) – Restrict kernel selection to safe gpu kernels or safe dla kernels

  • +
  • num_avg_timing_iters (python:int) – Number of averaging timing iterations used to select kernels

  • +
  • workspace_size (python:int) – Maximum size of workspace given to TensorRT

  • +
  • truncate_long_and_double (bool) – Truncate weights provided in int64 or double (float64) to int32 and float32

  • +
  • calibrator – Calibrator object which will provide data to the PTQ system for INT8 Calibration

  • +
+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/search.html b/docs/v1.2.0/search.html new file mode 100644 index 0000000000..75d0307278 --- /dev/null +++ b/docs/v1.2.0/search.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Search — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + + +
+ +
+ +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/searchindex.js b/docs/v1.2.0/searchindex.js new file mode 100644 index 0000000000..6bfb340762 --- /dev/null +++ b/docs/v1.2.0/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["_cpp_api/class_view_hierarchy","_cpp_api/classtorch__tensorrt_1_1DataType","_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType","_cpp_api/classtorch__tensorrt_1_1TensorFormat","_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator","_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator","_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502","_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268","_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e","_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827","_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b","_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da","_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59","_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883","_cpp_api/dir_cpp","_cpp_api/dir_cpp_include","_cpp_api/dir_cpp_include_torch_tensorrt","_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558","_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb","_cpp_api/file_cpp_include_torch_tensorrt_logging.h","_cpp_api/file_cpp_include_torch_tensorrt_macros.h","_cpp_api/file_cpp_include_torch_tensorrt_ptq.h","_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h","_cpp_api/file_view_hierarchy","_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3","_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650","_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a","_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2","_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8","_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5","_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc","_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c","_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178","_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039","_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa","_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797","_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9","_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef","_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528","_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384","_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1","_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2","_cpp_api/namespace_torch_tensorrt","_cpp_api/namespace_torch_tensorrt__logging","_cpp_api/namespace_torch_tensorrt__ptq","_cpp_api/namespace_torch_tensorrt__torchscript","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h","_cpp_api/structtorch__tensorrt_1_1Device","_cpp_api/structtorch__tensorrt_1_1GraphInputs","_cpp_api/structtorch__tensorrt_1_1Input","_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec","_cpp_api/torch_tensort_cpp","_cpp_api/unabridged_api","_cpp_api/unabridged_orphan","_notebooks/CitriNet-example","_notebooks/EfficientNet-example","_notebooks/Hugging-Face-BERT","_notebooks/Resnet50-example","_notebooks/dynamic-shapes","_notebooks/lenet-getting-started","_notebooks/ssd-object-detection-demo","_notebooks/vgg-qat","cli/torchtrtc","contributors/conversion","contributors/lowering","contributors/partitioning","contributors/phases","contributors/runtime","contributors/system_overview","contributors/useful_links","contributors/writing_converters","getting_started/getting_started_with_cpp_api","getting_started/getting_started_with_python_api","getting_started/getting_started_with_windows","getting_started/installation","index","indices/supported_ops","py_api/fx","py_api/logging","py_api/ptq","py_api/torch_tensorrt","py_api/ts","src/pytorch-sphinx-theme/docs/changelog","src/pytorch-sphinx-theme/docs/configuring","src/pytorch-sphinx-theme/docs/demo/api","src/pytorch-sphinx-theme/docs/demo/demo","src/pytorch-sphinx-theme/docs/demo/lists_tables","src/pytorch-sphinx-theme/docs/demo/long","src/pytorch-sphinx-theme/docs/demo/structure","src/pytorch-sphinx-theme/docs/index","src/pytorch-sphinx-theme/docs/installing","tutorials/creating_torchscript_module_in_python","tutorials/getting_started_with_fx_path","tutorials/notebooks","tutorials/ptq","tutorials/runtime","tutorials/serving_torch_tensorrt_with_triton","tutorials/use_from_pytorch","tutorials/using_dla"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,nbsphinx:4,sphinx:56},filenames:["_cpp_api/class_view_hierarchy.rst","_cpp_api/classtorch__tensorrt_1_1DataType.rst","_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.rst","_cpp_api/classtorch__tensorrt_1_1TensorFormat.rst","_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.rst","_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.rst","_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst","_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.rst","_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.rst","_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.rst","_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.rst","_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst","_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.rst","_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.rst","_cpp_api/dir_cpp.rst","_cpp_api/dir_cpp_include.rst","_cpp_api/dir_cpp_include_torch_tensorrt.rst","_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.rst","_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.rst","_cpp_api/file_cpp_include_torch_tensorrt_logging.h.rst","_cpp_api/file_cpp_include_torch_tensorrt_macros.h.rst","_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.rst","_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst","_cpp_api/file_view_hierarchy.rst","_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.rst","_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.rst","_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.rst","_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.rst","_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.rst","_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.rst","_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.rst","_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.rst","_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.rst","_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.rst","_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.rst","_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.rst","_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.rst","_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.rst","_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.rst","_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.rst","_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.rst","_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.rst","_cpp_api/namespace_torch_tensorrt.rst","_cpp_api/namespace_torch_tensorrt__logging.rst","_cpp_api/namespace_torch_tensorrt__ptq.rst","_cpp_api/namespace_torch_tensorrt__torchscript.rst","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.rst","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.rst","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.rst","_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.rst","_cpp_api/structtorch__tensorrt_1_1Device.rst","_cpp_api/structtorch__tensorrt_1_1GraphInputs.rst","_cpp_api/structtorch__tensorrt_1_1Input.rst","_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.rst","_cpp_api/torch_tensort_cpp.rst","_cpp_api/unabridged_api.rst","_cpp_api/unabridged_orphan.rst","_notebooks/CitriNet-example.ipynb","_notebooks/EfficientNet-example.ipynb","_notebooks/Hugging-Face-BERT.ipynb","_notebooks/Resnet50-example.ipynb","_notebooks/dynamic-shapes.ipynb","_notebooks/lenet-getting-started.ipynb","_notebooks/ssd-object-detection-demo.ipynb","_notebooks/vgg-qat.ipynb","cli/torchtrtc.rst","contributors/conversion.rst","contributors/lowering.rst","contributors/partitioning.rst","contributors/phases.rst","contributors/runtime.rst","contributors/system_overview.rst","contributors/useful_links.rst","contributors/writing_converters.rst","getting_started/getting_started_with_cpp_api.rst","getting_started/getting_started_with_python_api.rst","getting_started/getting_started_with_windows.rst","getting_started/installation.rst","index.rst","indices/supported_ops.rst","py_api/fx.rst","py_api/logging.rst","py_api/ptq.rst","py_api/torch_tensorrt.rst","py_api/ts.rst","src/pytorch-sphinx-theme/docs/changelog.rst","src/pytorch-sphinx-theme/docs/configuring.rst","src/pytorch-sphinx-theme/docs/demo/api.rst","src/pytorch-sphinx-theme/docs/demo/demo.rst","src/pytorch-sphinx-theme/docs/demo/lists_tables.rst","src/pytorch-sphinx-theme/docs/demo/long.rst","src/pytorch-sphinx-theme/docs/demo/structure.rst","src/pytorch-sphinx-theme/docs/index.rst","src/pytorch-sphinx-theme/docs/installing.rst","tutorials/creating_torchscript_module_in_python.rst","tutorials/getting_started_with_fx_path.rst","tutorials/notebooks.rst","tutorials/ptq.rst","tutorials/runtime.rst","tutorials/serving_torch_tensorrt_with_triton.rst","tutorials/use_from_pytorch.rst","tutorials/using_dla.rst"],objects:{"":[[6,0,1,"c.STR","STR"],[10,0,1,"c.TORCHTRT_API","TORCHTRT_API"],[12,0,1,"c.TORCHTRT_HIDDEN","TORCHTRT_HIDDEN"],[8,0,1,"c.TORCH_TENSORRT_MAJOR_VERSION","TORCH_TENSORRT_MAJOR_VERSION"],[9,0,1,"c.TORCH_TENSORRT_MINOR_VERSION","TORCH_TENSORRT_MINOR_VERSION"],[7,0,1,"c.TORCH_TENSORRT_PATCH_VERSION","TORCH_TENSORRT_PATCH_VERSION"],[13,0,1,"c.TORCH_TENSORRT_VERSION","TORCH_TENSORRT_VERSION"],[11,0,1,"c.XSTR","XSTR"],[1,1,1,"_CPPv4N14torch_tensorrt8DataTypeE","torch_tensorrt::DataType"],[1,2,1,"_CPPv4N14torch_tensorrt8DataType8DataTypeE5Value","torch_tensorrt::DataType::DataType"],[1,2,1,"_CPPv4N14torch_tensorrt8DataType8DataTypeEN3c1010ScalarTypeE","torch_tensorrt::DataType::DataType"],[1,2,1,"_CPPv4N14torch_tensorrt8DataType8DataTypeEv","torch_tensorrt::DataType::DataType"],[1,3,1,"_CPPv4N14torch_tensorrt8DataType8DataTypeE5Value","torch_tensorrt::DataType::DataType::t"],[1,3,1,"_CPPv4N14torch_tensorrt8DataType8DataTypeEN3c1010ScalarTypeE","torch_tensorrt::DataType::DataType::t"],[1,4,1,"_CPPv4N14torch_tensorrt8DataType5ValueE","torch_tensorrt::DataType::Value"],[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value5kBoolE","torch_tensorrt::DataType::Value::kBool"],[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value5kCharE","torch_tensorrt::DataType::Value::kChar"],[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value6kFloatE","torch_tensorrt::DataType::Value::kFloat"],[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value5kHalfE","torch_tensorrt::DataType::Value::kHalf"],[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value4kIntE","torch_tensorrt::DataType::Value::kInt"],[1,5,1,"_CPPv4N14torch_tensorrt8DataType5Value8kUnknownE","torch_tensorrt::DataType::Value::kUnknown"],[1,2,1,"_CPPv4NK14torch_tensorrt8DataTypecv5ValueEv","torch_tensorrt::DataType::operator Value"],[1,2,1,"_CPPv4N14torch_tensorrt8DataTypecvbEv","torch_tensorrt::DataType::operator bool"],[1,2,1,"_CPPv4NK14torch_tensorrt8DataTypeneE8DataType","torch_tensorrt::DataType::operator!="],[1,2,1,"_CPPv4NK14torch_tensorrt8DataTypeneEN8DataType5ValueE","torch_tensorrt::DataType::operator!="],[1,3,1,"_CPPv4NK14torch_tensorrt8DataTypeneE8DataType","torch_tensorrt::DataType::operator!=::other"],[1,3,1,"_CPPv4NK14torch_tensorrt8DataTypeneEN8DataType5ValueE","torch_tensorrt::DataType::operator!=::other"],[1,2,1,"_CPPv4NK14torch_tensorrt8DataTypeeqE8DataType","torch_tensorrt::DataType::operator=="],[1,2,1,"_CPPv4NK14torch_tensorrt8DataTypeeqEN8DataType5ValueE","torch_tensorrt::DataType::operator=="],[1,3,1,"_CPPv4NK14torch_tensorrt8DataTypeeqE8DataType","torch_tensorrt::DataType::operator==::other"],[1,3,1,"_CPPv4NK14torch_tensorrt8DataTypeeqEN8DataType5ValueE","torch_tensorrt::DataType::operator==::other"],[50,1,1,"_CPPv4N14torch_tensorrt6DeviceE","torch_tensorrt::Device"],[50,2,1,"_CPPv4N14torch_tensorrt6Device6DeviceEv","torch_tensorrt::Device::Device"],[2,1,1,"_CPPv4N14torch_tensorrt6Device10DeviceTypeE","torch_tensorrt::Device::DeviceType"],[50,1,1,"_CPPv4N14torch_tensorrt6Device10DeviceTypeE","torch_tensorrt::Device::DeviceType"],[2,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeE5Value","torch_tensorrt::Device::DeviceType::DeviceType"],[2,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeEN3c1010DeviceTypeE","torch_tensorrt::Device::DeviceType::DeviceType"],[2,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeEv","torch_tensorrt::Device::DeviceType::DeviceType"],[50,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeE5Value","torch_tensorrt::Device::DeviceType::DeviceType"],[50,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeEN3c1010DeviceTypeE","torch_tensorrt::Device::DeviceType::DeviceType"],[50,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeEv","torch_tensorrt::Device::DeviceType::DeviceType"],[2,3,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeE5Value","torch_tensorrt::Device::DeviceType::DeviceType::t"],[2,3,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeEN3c1010DeviceTypeE","torch_tensorrt::Device::DeviceType::DeviceType::t"],[50,3,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeE5Value","torch_tensorrt::Device::DeviceType::DeviceType::t"],[50,3,1,"_CPPv4N14torch_tensorrt6Device10DeviceType10DeviceTypeEN3c1010DeviceTypeE","torch_tensorrt::Device::DeviceType::DeviceType::t"],[2,4,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5ValueE","torch_tensorrt::Device::DeviceType::Value"],[50,4,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5ValueE","torch_tensorrt::Device::DeviceType::Value"],[2,5,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5Value4kDLAE","torch_tensorrt::Device::DeviceType::Value::kDLA"],[50,5,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5Value4kDLAE","torch_tensorrt::Device::DeviceType::Value::kDLA"],[2,5,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5Value4kGPUE","torch_tensorrt::Device::DeviceType::Value::kGPU"],[50,5,1,"_CPPv4N14torch_tensorrt6Device10DeviceType5Value4kGPUE","torch_tensorrt::Device::DeviceType::Value::kGPU"],[2,2,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypecv5ValueEv","torch_tensorrt::Device::DeviceType::operator Value"],[50,2,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypecv5ValueEv","torch_tensorrt::Device::DeviceType::operator Value"],[2,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceTypecvbEv","torch_tensorrt::Device::DeviceType::operator bool"],[50,2,1,"_CPPv4N14torch_tensorrt6Device10DeviceTypecvbEv","torch_tensorrt::Device::DeviceType::operator bool"],[2,2,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeneE10DeviceType","torch_tensorrt::Device::DeviceType::operator!="],[50,2,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeneE10DeviceType","torch_tensorrt::Device::DeviceType::operator!="],[2,3,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeneE10DeviceType","torch_tensorrt::Device::DeviceType::operator!=::other"],[50,3,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeneE10DeviceType","torch_tensorrt::Device::DeviceType::operator!=::other"],[2,2,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeeqE10DeviceType","torch_tensorrt::Device::DeviceType::operator=="],[50,2,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeeqE10DeviceType","torch_tensorrt::Device::DeviceType::operator=="],[2,3,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeeqE10DeviceType","torch_tensorrt::Device::DeviceType::operator==::other"],[50,3,1,"_CPPv4NK14torch_tensorrt6Device10DeviceTypeeqE10DeviceType","torch_tensorrt::Device::DeviceType::operator==::other"],[50,6,1,"_CPPv4N14torch_tensorrt6Device18allow_gpu_fallbackE","torch_tensorrt::Device::allow_gpu_fallback"],[50,6,1,"_CPPv4N14torch_tensorrt6Device11device_typeE","torch_tensorrt::Device::device_type"],[50,6,1,"_CPPv4N14torch_tensorrt6Device8dla_coreE","torch_tensorrt::Device::dla_core"],[50,6,1,"_CPPv4N14torch_tensorrt6Device6gpu_idE","torch_tensorrt::Device::gpu_id"],[18,4,1,"_CPPv4N14torch_tensorrt16EngineCapabilityE","torch_tensorrt::EngineCapability"],[18,5,1,"_CPPv4N14torch_tensorrt16EngineCapability15kDLA_STANDALONEE","torch_tensorrt::EngineCapability::kDLA_STANDALONE"],[18,5,1,"_CPPv4N14torch_tensorrt16EngineCapability7kSAFETYE","torch_tensorrt::EngineCapability::kSAFETY"],[18,5,1,"_CPPv4N14torch_tensorrt16EngineCapability9kSTANDARDE","torch_tensorrt::EngineCapability::kSTANDARD"],[51,1,1,"_CPPv4N14torch_tensorrt11GraphInputsE","torch_tensorrt::GraphInputs"],[51,6,1,"_CPPv4N14torch_tensorrt11GraphInputs15input_signatureE","torch_tensorrt::GraphInputs::input_signature"],[51,6,1,"_CPPv4N14torch_tensorrt11GraphInputs6inputsE","torch_tensorrt::GraphInputs::inputs"],[52,1,1,"_CPPv4N14torch_tensorrt5InputE","torch_tensorrt::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputEN2at6TensorE","torch_tensorrt::Input::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input"],[52,2,1,"_CPPv4N14torch_tensorrt5Input5InputEv","torch_tensorrt::Input::Input"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::dtype"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::dtype"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::dtype"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::dtype"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::format"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::format"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::format"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::format"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::format"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::format"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::format"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::format"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::max_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::max_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::max_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::max_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::min_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::min_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::min_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::min_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::opt_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::opt_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::opt_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::opt_shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN3c108ArrayRefI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEE12TensorFormat","torch_tensorrt::Input::Input::shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputENSt6vectorI7int64_tEE8DataType12TensorFormat","torch_tensorrt::Input::Input::shape"],[52,3,1,"_CPPv4N14torch_tensorrt5Input5InputEN2at6TensorE","torch_tensorrt::Input::Input::tensor"],[52,6,1,"_CPPv4N14torch_tensorrt5Input5dtypeE","torch_tensorrt::Input::dtype"],[52,6,1,"_CPPv4N14torch_tensorrt5Input6formatE","torch_tensorrt::Input::format"],[52,6,1,"_CPPv4N14torch_tensorrt5Input9max_shapeE","torch_tensorrt::Input::max_shape"],[52,6,1,"_CPPv4N14torch_tensorrt5Input9min_shapeE","torch_tensorrt::Input::min_shape"],[52,6,1,"_CPPv4N14torch_tensorrt5Input9opt_shapeE","torch_tensorrt::Input::opt_shape"],[52,6,1,"_CPPv4N14torch_tensorrt5Input5shapeE","torch_tensorrt::Input::shape"],[3,1,1,"_CPPv4N14torch_tensorrt12TensorFormatE","torch_tensorrt::TensorFormat"],[3,2,1,"_CPPv4N14torch_tensorrt12TensorFormat12TensorFormatE5Value","torch_tensorrt::TensorFormat::TensorFormat"],[3,2,1,"_CPPv4N14torch_tensorrt12TensorFormat12TensorFormatEN2at12MemoryFormatE","torch_tensorrt::TensorFormat::TensorFormat"],[3,2,1,"_CPPv4N14torch_tensorrt12TensorFormat12TensorFormatEv","torch_tensorrt::TensorFormat::TensorFormat"],[3,3,1,"_CPPv4N14torch_tensorrt12TensorFormat12TensorFormatE5Value","torch_tensorrt::TensorFormat::TensorFormat::t"],[3,3,1,"_CPPv4N14torch_tensorrt12TensorFormat12TensorFormatEN2at12MemoryFormatE","torch_tensorrt::TensorFormat::TensorFormat::t"],[3,4,1,"_CPPv4N14torch_tensorrt12TensorFormat5ValueE","torch_tensorrt::TensorFormat::Value"],[3,5,1,"_CPPv4N14torch_tensorrt12TensorFormat5Value13kChannelsLastE","torch_tensorrt::TensorFormat::Value::kChannelsLast"],[3,5,1,"_CPPv4N14torch_tensorrt12TensorFormat5Value11kContiguousE","torch_tensorrt::TensorFormat::Value::kContiguous"],[3,5,1,"_CPPv4N14torch_tensorrt12TensorFormat5Value8kUnknownE","torch_tensorrt::TensorFormat::Value::kUnknown"],[3,2,1,"_CPPv4NK14torch_tensorrt12TensorFormatcv5ValueEv","torch_tensorrt::TensorFormat::operator Value"],[3,2,1,"_CPPv4N14torch_tensorrt12TensorFormatcvbEv","torch_tensorrt::TensorFormat::operator bool"],[3,2,1,"_CPPv4NK14torch_tensorrt12TensorFormatneE12TensorFormat","torch_tensorrt::TensorFormat::operator!="],[3,2,1,"_CPPv4NK14torch_tensorrt12TensorFormatneEN12TensorFormat5ValueE","torch_tensorrt::TensorFormat::operator!="],[3,3,1,"_CPPv4NK14torch_tensorrt12TensorFormatneE12TensorFormat","torch_tensorrt::TensorFormat::operator!=::other"],[3,3,1,"_CPPv4NK14torch_tensorrt12TensorFormatneEN12TensorFormat5ValueE","torch_tensorrt::TensorFormat::operator!=::other"],[3,2,1,"_CPPv4NK14torch_tensorrt12TensorFormateqE12TensorFormat","torch_tensorrt::TensorFormat::operator=="],[3,2,1,"_CPPv4NK14torch_tensorrt12TensorFormateqEN12TensorFormat5ValueE","torch_tensorrt::TensorFormat::operator=="],[3,3,1,"_CPPv4NK14torch_tensorrt12TensorFormateqE12TensorFormat","torch_tensorrt::TensorFormat::operator==::other"],[3,3,1,"_CPPv4NK14torch_tensorrt12TensorFormateqEN12TensorFormat5ValueE","torch_tensorrt::TensorFormat::operator==::other"],[40,2,1,"_CPPv4N14torch_tensorrt15dump_build_infoEv","torch_tensorrt::dump_build_info"],[38,2,1,"_CPPv4N14torch_tensorrt14get_build_infoEv","torch_tensorrt::get_build_info"],[17,4,1,"_CPPv4N14torch_tensorrt7logging5LevelE","torch_tensorrt::logging::Level"],[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level6kDEBUGE","torch_tensorrt::logging::Level::kDEBUG"],[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level6kERRORE","torch_tensorrt::logging::Level::kERROR"],[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level6kGRAPHE","torch_tensorrt::logging::Level::kGRAPH"],[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level5kINFOE","torch_tensorrt::logging::Level::kINFO"],[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level15kINTERNAL_ERRORE","torch_tensorrt::logging::Level::kINTERNAL_ERROR"],[17,5,1,"_CPPv4N14torch_tensorrt7logging5Level8kWARNINGE","torch_tensorrt::logging::Level::kWARNING"],[26,2,1,"_CPPv4N14torch_tensorrt7logging24get_is_colored_output_onEv","torch_tensorrt::logging::get_is_colored_output_on"],[24,2,1,"_CPPv4N14torch_tensorrt7logging18get_logging_prefixEv","torch_tensorrt::logging::get_logging_prefix"],[25,2,1,"_CPPv4N14torch_tensorrt7logging24get_reportable_log_levelEv","torch_tensorrt::logging::get_reportable_log_level"],[28,2,1,"_CPPv4N14torch_tensorrt7logging3logE5LevelNSt6stringE","torch_tensorrt::logging::log"],[28,3,1,"_CPPv4N14torch_tensorrt7logging3logE5LevelNSt6stringE","torch_tensorrt::logging::log::lvl"],[28,3,1,"_CPPv4N14torch_tensorrt7logging3logE5LevelNSt6stringE","torch_tensorrt::logging::log::msg"],[29,2,1,"_CPPv4N14torch_tensorrt7logging24set_is_colored_output_onEb","torch_tensorrt::logging::set_is_colored_output_on"],[29,3,1,"_CPPv4N14torch_tensorrt7logging24set_is_colored_output_onEb","torch_tensorrt::logging::set_is_colored_output_on::colored_output_on"],[30,2,1,"_CPPv4N14torch_tensorrt7logging18set_logging_prefixENSt6stringE","torch_tensorrt::logging::set_logging_prefix"],[30,3,1,"_CPPv4N14torch_tensorrt7logging18set_logging_prefixENSt6stringE","torch_tensorrt::logging::set_logging_prefix::prefix"],[27,2,1,"_CPPv4N14torch_tensorrt7logging24set_reportable_log_levelE5Level","torch_tensorrt::logging::set_reportable_log_level"],[27,3,1,"_CPPv4N14torch_tensorrt7logging24set_reportable_log_levelE5Level","torch_tensorrt::logging::set_reportable_log_level::lvl"],[4,1,1,"_CPPv4I0EN14torch_tensorrt3ptq19Int8CacheCalibratorE","torch_tensorrt::ptq::Int8CacheCalibrator"],[4,7,1,"_CPPv4I0EN14torch_tensorrt3ptq19Int8CacheCalibratorE","torch_tensorrt::ptq::Int8CacheCalibrator::Algorithm"],[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator19Int8CacheCalibratorERKNSt6stringE","torch_tensorrt::ptq::Int8CacheCalibrator::Int8CacheCalibrator"],[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator19Int8CacheCalibratorERKNSt6stringE","torch_tensorrt::ptq::Int8CacheCalibrator::Int8CacheCalibrator::cache_file_path"],[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci","torch_tensorrt::ptq::Int8CacheCalibrator::getBatch"],[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci","torch_tensorrt::ptq::Int8CacheCalibrator::getBatch::bindings"],[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci","torch_tensorrt::ptq::Int8CacheCalibrator::getBatch::names"],[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci","torch_tensorrt::ptq::Int8CacheCalibrator::getBatch::nbBindings"],[4,2,1,"_CPPv4NK14torch_tensorrt3ptq19Int8CacheCalibrator12getBatchSizeEv","torch_tensorrt::ptq::Int8CacheCalibrator::getBatchSize"],[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibratorcvPN8nvinfer115IInt8CalibratorEEv","torch_tensorrt::ptq::Int8CacheCalibrator::operator nvinfer1::IInt8Calibrator*"],[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator20readCalibrationCacheER6size_t","torch_tensorrt::ptq::Int8CacheCalibrator::readCalibrationCache"],[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator20readCalibrationCacheER6size_t","torch_tensorrt::ptq::Int8CacheCalibrator::readCalibrationCache::length"],[4,2,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t","torch_tensorrt::ptq::Int8CacheCalibrator::writeCalibrationCache"],[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t","torch_tensorrt::ptq::Int8CacheCalibrator::writeCalibrationCache::cache"],[4,3,1,"_CPPv4N14torch_tensorrt3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t","torch_tensorrt::ptq::Int8CacheCalibrator::writeCalibrationCache::length"],[5,1,1,"_CPPv4I00EN14torch_tensorrt3ptq14Int8CalibratorE","torch_tensorrt::ptq::Int8Calibrator"],[5,7,1,"_CPPv4I00EN14torch_tensorrt3ptq14Int8CalibratorE","torch_tensorrt::ptq::Int8Calibrator::Algorithm"],[5,7,1,"_CPPv4I00EN14torch_tensorrt3ptq14Int8CalibratorE","torch_tensorrt::ptq::Int8Calibrator::DataLoaderUniquePtr"],[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb","torch_tensorrt::ptq::Int8Calibrator::Int8Calibrator"],[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb","torch_tensorrt::ptq::Int8Calibrator::Int8Calibrator::cache_file_path"],[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb","torch_tensorrt::ptq::Int8Calibrator::Int8Calibrator::dataloader"],[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb","torch_tensorrt::ptq::Int8Calibrator::Int8Calibrator::use_cache"],[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator8getBatchEA_PvA_PKci","torch_tensorrt::ptq::Int8Calibrator::getBatch"],[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator8getBatchEA_PvA_PKci","torch_tensorrt::ptq::Int8Calibrator::getBatch::bindings"],[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator8getBatchEA_PvA_PKci","torch_tensorrt::ptq::Int8Calibrator::getBatch::names"],[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator8getBatchEA_PvA_PKci","torch_tensorrt::ptq::Int8Calibrator::getBatch::nbBindings"],[5,2,1,"_CPPv4NK14torch_tensorrt3ptq14Int8Calibrator12getBatchSizeEv","torch_tensorrt::ptq::Int8Calibrator::getBatchSize"],[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8CalibratorcvPN8nvinfer115IInt8CalibratorEEv","torch_tensorrt::ptq::Int8Calibrator::operator nvinfer1::IInt8Calibrator*"],[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator20readCalibrationCacheER6size_t","torch_tensorrt::ptq::Int8Calibrator::readCalibrationCache"],[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator20readCalibrationCacheER6size_t","torch_tensorrt::ptq::Int8Calibrator::readCalibrationCache::length"],[5,2,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t","torch_tensorrt::ptq::Int8Calibrator::writeCalibrationCache"],[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t","torch_tensorrt::ptq::Int8Calibrator::writeCalibrationCache::cache"],[5,3,1,"_CPPv4N14torch_tensorrt3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t","torch_tensorrt::ptq::Int8Calibrator::writeCalibrationCache::length"],[31,2,1,"_CPPv4I0EN14torch_tensorrt3ptq26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE","torch_tensorrt::ptq::make_int8_cache_calibrator"],[34,2,1,"_CPPv4I0EN14torch_tensorrt3ptq26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE","torch_tensorrt::ptq::make_int8_cache_calibrator"],[31,7,1,"_CPPv4I0EN14torch_tensorrt3ptq26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE","torch_tensorrt::ptq::make_int8_cache_calibrator::Algorithm"],[34,7,1,"_CPPv4I0EN14torch_tensorrt3ptq26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE","torch_tensorrt::ptq::make_int8_cache_calibrator::Algorithm"],[31,3,1,"_CPPv4I0EN14torch_tensorrt3ptq26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE","torch_tensorrt::ptq::make_int8_cache_calibrator::cache_file_path"],[34,3,1,"_CPPv4I0EN14torch_tensorrt3ptq26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE","torch_tensorrt::ptq::make_int8_cache_calibrator::cache_file_path"],[32,2,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator"],[33,2,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator"],[32,7,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::Algorithm"],[33,7,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::Algorithm"],[32,7,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::DataLoader"],[33,7,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::DataLoader"],[32,3,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::cache_file_path"],[33,3,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::cache_file_path"],[32,3,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::dataloader"],[33,3,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::dataloader"],[32,3,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::use_cache"],[33,3,1,"_CPPv4I00EN14torch_tensorrt3ptq20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb","torch_tensorrt::ptq::make_int8_calibrator::use_cache"],[39,2,1,"_CPPv4N14torch_tensorrt10set_deviceEKi","torch_tensorrt::set_device"],[39,3,1,"_CPPv4N14torch_tensorrt10set_deviceEKi","torch_tensorrt::set_device::gpu_id"],[53,1,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpecE","torch_tensorrt::torchscript::CompileSpec"],[53,2,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecEN5torch3jit6IValueE","torch_tensorrt::torchscript::CompileSpec::CompileSpec"],[53,2,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecENSt6vectorI5InputEE","torch_tensorrt::torchscript::CompileSpec::CompileSpec"],[53,2,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecENSt6vectorIN3c108ArrayRefI7int64_tEEEE","torch_tensorrt::torchscript::CompileSpec::CompileSpec"],[53,2,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecENSt6vectorINSt6vectorI7int64_tEEEE","torch_tensorrt::torchscript::CompileSpec::CompileSpec"],[53,3,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecENSt6vectorIN3c108ArrayRefI7int64_tEEEE","torch_tensorrt::torchscript::CompileSpec::CompileSpec::fixed_sizes"],[53,3,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecENSt6vectorINSt6vectorI7int64_tEEEE","torch_tensorrt::torchscript::CompileSpec::CompileSpec::fixed_sizes"],[53,3,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecEN5torch3jit6IValueE","torch_tensorrt::torchscript::CompileSpec::CompileSpec::input_signature"],[53,3,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec11CompileSpecENSt6vectorI5InputEE","torch_tensorrt::torchscript::CompileSpec::CompileSpec::inputs"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec10capabilityE","torch_tensorrt::torchscript::CompileSpec::capability"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec5debugE","torch_tensorrt::torchscript::CompileSpec::debug"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec6deviceE","torch_tensorrt::torchscript::CompileSpec::device"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec12disable_tf32E","torch_tensorrt::torchscript::CompileSpec::disable_tf32"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec20dla_global_dram_sizeE","torch_tensorrt::torchscript::CompileSpec::dla_global_dram_size"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec19dla_local_dram_sizeE","torch_tensorrt::torchscript::CompileSpec::dla_local_dram_size"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec13dla_sram_sizeE","torch_tensorrt::torchscript::CompileSpec::dla_sram_size"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec18enabled_precisionsE","torch_tensorrt::torchscript::CompileSpec::enabled_precisions"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec12graph_inputsE","torch_tensorrt::torchscript::CompileSpec::graph_inputs"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec14min_block_sizeE","torch_tensorrt::torchscript::CompileSpec::min_block_size"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec20num_avg_timing_itersE","torch_tensorrt::torchscript::CompileSpec::num_avg_timing_iters"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec14ptq_calibratorE","torch_tensorrt::torchscript::CompileSpec::ptq_calibrator"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec5refitE","torch_tensorrt::torchscript::CompileSpec::refit"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec24require_full_compilationE","torch_tensorrt::torchscript::CompileSpec::require_full_compilation"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec14sparse_weightsE","torch_tensorrt::torchscript::CompileSpec::sparse_weights"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec22torch_executed_modulesE","torch_tensorrt::torchscript::CompileSpec::torch_executed_modules"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec18torch_executed_opsE","torch_tensorrt::torchscript::CompileSpec::torch_executed_ops"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec24truncate_long_and_doubleE","torch_tensorrt::torchscript::CompileSpec::truncate_long_and_double"],[53,6,1,"_CPPv4N14torch_tensorrt11torchscript11CompileSpec14workspace_sizeE","torch_tensorrt::torchscript::CompileSpec::workspace_size"],[35,2,1,"_CPPv4N14torch_tensorrt11torchscript29check_method_operator_supportERKN5torch3jit6ModuleENSt6stringE","torch_tensorrt::torchscript::check_method_operator_support"],[35,3,1,"_CPPv4N14torch_tensorrt11torchscript29check_method_operator_supportERKN5torch3jit6ModuleENSt6stringE","torch_tensorrt::torchscript::check_method_operator_support::method_name"],[35,3,1,"_CPPv4N14torch_tensorrt11torchscript29check_method_operator_supportERKN5torch3jit6ModuleENSt6stringE","torch_tensorrt::torchscript::check_method_operator_support::module"],[36,2,1,"_CPPv4N14torch_tensorrt11torchscript7compileERKN5torch3jit6ModuleE11CompileSpec","torch_tensorrt::torchscript::compile"],[36,3,1,"_CPPv4N14torch_tensorrt11torchscript7compileERKN5torch3jit6ModuleE11CompileSpec","torch_tensorrt::torchscript::compile::info"],[36,3,1,"_CPPv4N14torch_tensorrt11torchscript7compileERKN5torch3jit6ModuleE11CompileSpec","torch_tensorrt::torchscript::compile::module"],[41,2,1,"_CPPv4N14torch_tensorrt11torchscript28convert_method_to_trt_engineERKN5torch3jit6ModuleENSt6stringE11CompileSpec","torch_tensorrt::torchscript::convert_method_to_trt_engine"],[41,3,1,"_CPPv4N14torch_tensorrt11torchscript28convert_method_to_trt_engineERKN5torch3jit6ModuleENSt6stringE11CompileSpec","torch_tensorrt::torchscript::convert_method_to_trt_engine::info"],[41,3,1,"_CPPv4N14torch_tensorrt11torchscript28convert_method_to_trt_engineERKN5torch3jit6ModuleENSt6stringE11CompileSpec","torch_tensorrt::torchscript::convert_method_to_trt_engine::method_name"],[41,3,1,"_CPPv4N14torch_tensorrt11torchscript28convert_method_to_trt_engineERKN5torch3jit6ModuleENSt6stringE11CompileSpec","torch_tensorrt::torchscript::convert_method_to_trt_engine::module"],[37,2,1,"_CPPv4N14torch_tensorrt11torchscript26embed_engine_in_new_moduleERKNSt6stringE6Device","torch_tensorrt::torchscript::embed_engine_in_new_module"],[37,3,1,"_CPPv4N14torch_tensorrt11torchscript26embed_engine_in_new_moduleERKNSt6stringE6Device","torch_tensorrt::torchscript::embed_engine_in_new_module::device"],[37,3,1,"_CPPv4N14torch_tensorrt11torchscript26embed_engine_in_new_moduleERKNSt6stringE6Device","torch_tensorrt::torchscript::embed_engine_in_new_module::engine"],[83,8,0,"-","torch_tensorrt"]],"torch_tensorrt.Device":[[83,10,1,"","__init__"],[83,11,1,"","allow_gpu_fallback"],[83,11,1,"","device_type"],[83,11,1,"","dla_core"],[83,11,1,"","gpu_id"]],"torch_tensorrt.Input":[[83,10,1,"","__init__"],[83,11,1,"","dtype"],[83,11,1,"","format"],[83,11,1,"","shape"],[83,11,1,"","shape_mode"]],"torch_tensorrt.fx":[[80,9,1,"","InputTensorSpec"],[80,9,1,"","TRTInterpreter"],[80,9,1,"","TRTInterpreterResult"],[80,9,1,"","TRTModule"],[80,12,1,"","compile"]],"torch_tensorrt.logging":[[81,9,1,"","Level"],[81,9,1,"","debug"],[81,9,1,"","errors"],[81,12,1,"","get_is_colored_output_on"],[81,12,1,"","get_logging_prefix"],[81,12,1,"","get_reportable_log_level"],[81,9,1,"","graphs"],[81,9,1,"","info"],[81,9,1,"","internal_errors"],[81,12,1,"","log"],[81,12,1,"","set_is_colored_output_on"],[81,12,1,"","set_logging_prefix"],[81,12,1,"","set_reportable_log_level"],[81,9,1,"","warnings"]],"torch_tensorrt.logging.Level":[[81,11,1,"","Debug"],[81,11,1,"","Error"],[81,11,1,"","Graph"],[81,11,1,"","Info"],[81,11,1,"","InternalError"],[81,11,1,"","Warning"]],"torch_tensorrt.ptq":[[82,9,1,"id1","CacheCalibrator"],[82,9,1,"id2","CalibrationAlgo"],[82,9,1,"id0","DataLoaderCalibrator"],[82,12,1,"","get_batch"],[82,12,1,"","get_batch_size"],[82,12,1,"","get_cache_mode_batch"],[82,12,1,"","read_calibration_cache"],[82,12,1,"","write_calibration_cache"]],"torch_tensorrt.ptq.CacheCalibrator":[[82,10,1,"","__init__"]],"torch_tensorrt.ptq.CalibrationAlgo":[[82,11,1,"","ENTROPY_CALIBRATION"],[82,11,1,"","ENTROPY_CALIBRATION_2"],[82,11,1,"","LEGACY_CALIBRATION"],[82,11,1,"","MINMAX_CALIBRATION"]],"torch_tensorrt.ptq.DataLoaderCalibrator":[[82,10,1,"","__init__"]],"torch_tensorrt.ts":[[84,12,1,"","TensorRTCompileSpec"],[84,12,1,"","check_method_op_support"],[84,12,1,"","compile"],[84,12,1,"","convert_method_to_trt_engine"],[84,12,1,"","embed_engine_in_new_module"]],torch_tensorrt:[[83,9,1,"","Device"],[83,9,1,"","DeviceType"],[83,9,1,"","EngineCapability"],[83,9,1,"","Input"],[83,9,1,"","TensorFormat"],[83,12,1,"","compile"],[83,12,1,"","convert_method_to_trt_engine"],[83,9,1,"","dtype"],[83,12,1,"","dump_build_info"],[80,8,0,"-","fx"],[83,12,1,"","get_build_info"],[81,8,0,"-","logging"],[82,8,0,"-","ptq"],[83,12,1,"","set_device"],[84,8,0,"-","ts"]]},objnames:{"0":["c","macro","C macro"],"1":["cpp","class","C++ class"],"10":["py","method","Python method"],"11":["py","attribute","Python attribute"],"12":["py","function","Python function"],"2":["cpp","function","C++ function"],"3":["cpp","functionParam","C++ function parameter"],"4":["cpp","enum","C++ enum"],"5":["cpp","enumerator","C++ enumerator"],"6":["cpp","member","C++ member"],"7":["cpp","templateParam","C++ template parameter"],"8":["py","module","Python module"],"9":["py","class","Python class"]},objtypes:{"0":"c:macro","1":"cpp:class","10":"py:method","11":"py:attribute","12":"py:function","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enum","5":"cpp:enumerator","6":"cpp:member","7":"cpp:templateParam","8":"py:module","9":"py:class"},terms:{"0":[37,47,48,49,53,57,58,59,60,61,62,63,64,65,71,73,74,77,79,80,81,82,83,84,85,87,88,95,97,99,100,101],"00":[57,58,60,61,62,63,64],"0000":89,"00000000":[57,58,60,61,62],"000000037777":63,"000000252219":63,"000000397133":63,"000007":59,"000014":57,"000015":59,"000059":59,"000106":57,"000116":57,"000368":57,"000545":57,"000820":57,"000973":57,"001256":57,"001260":57,"001270":57,"001351":57,"0018":64,"002":60,"002251":59,"002259":59,"0023":64,"002305":59,"0026":64,"003287":59,"003289":59,"003317":59,"003462":57,"003774":57,"004":58,"004128":57,"004205":59,"004206":59,"004256":59,"004825":57,"005":[60,61],"006":[58,61],"006661":57,"006677":59,"006693":59,"006733":57,"006846":57,"006943":59,"0070":64,"008":64,"008071":57,"008453":57,"0087":64,"009802":57,"009803":57,"009836":57,"00f1b6db":[58,60,61],"01":[58,60,61,62,63,64,74,79,89],"0106":64,"010961":57,"011388":57,"013":64,"0151":64,"016114":57,"0163":64,"0169":64,"018642":57,"018643":57,"018670":57,"02":[58,60,61,64],"0208":74,"020804":57,"021143":57,"0220":64,"024492":57,"025":64,"025000":64,"0263":64,"028":64,"0296":64,"03":[57,89],"03291":64,"033488":57,"033572":57,"03466":64,"035722":57,"0358":74,"0383":74,"04":[57,58,63,64,74,99],"0435":74,"04609":64,"0464":74,"04743":64,"04807":64,"0491":64,"0493":64,"04it":64,"05":[57,58,59,60,61,63,64],"050000":64,"0505":64,"05080":64,"0530":74,"05311":64,"05374":64,"057":64,"058047":57,"058053":57,"058375":57,"05945":64,"06":[57,58,63],"0622":64,"063":64,"06340":64,"06567":64,"0676ba61":[60,63],"0678":74,"069":64,"07":[58,60,61],"071":64,"071428":57,"072057":57,"07266":64,"076796":57,"08":[58,60,61],"0805":74,"0818":74,"08331":64,"08555":64,"086":64,"09":[58,60,61,62],"0932":74,"096":64,"0a0":[57,58],"0a3":57,"0f":63,"0mib":[58,60,61,62],"0rc1":57,"0s":60,"0x":59,"0x7f6a8d162db0":84,"0x7f6e45a087f0":[],"0x7fd2aacaebb0":[],"1":[4,5,37,47,48,49,52,53,57,58,59,60,61,62,63,64,65,67,68,70,73,74,75,77,79,80,81,82,83,84,85,86,88,89,92,94,95,96,97,100,101],"10":[53,57,58,59,60,61,62,63,64,74,77,84,92,94,96,97,99],"100":[58,60,61,62,63,64,80,95],"1000":[58,60,61,62,63,64,99],"10000":[58,60,61],"100000":64,"10018":64,"10070":64,"101":59,"101168":64,"1012":67,"1013":67,"10130":64,"102":57,"102248":64,"1024":[57,58,60,61,62,63,64,65,83,84,96],"10240mib":62,"10362":58,"104":[58,60,61],"1045":74,"1048576":[49,53,84],"105":64,"1056":74,"1063":74,"1065":57,"1069":57,"107":[58,60,61],"107194":64,"10732":64,"1073741824":[49,53,84],"107625":64,"109":74,"10990":64,"10b0":57,"11":[57,58,59,60,61,62,63,64,67,74,77,88,92,99],"110":[63,64],"11299":64,"112mib":57,"11499":64,"115":62,"115269":64,"115740":64,"11594":64,"117":[58,60,61],"117969":64,"118358":64,"11879":64,"11888":64,"119":94,"1190":57,"119708":57,"11k":[58,60,61],"11w":58,"12":[57,58,59,60,61,62,63,64,67,74,88,92,94,99],"120":[62,64,74,94],"120097":57,"1201":57,"121":[60,62],"1216":59,"121618":57,"122":62,"12288mib":57,"123":[63,89],"12345":57,"126":64,"126382":64,"126834":64,"127":[58,64],"128":[57,58,59,60,61,62,63,64],"128674":64,"129":94,"129518":64,"12k":60,"13":[57,59,60,61,62,63,64,88,92],"130":57,"133":58,"13388":64,"135453":64,"135936":64,"136":99,"137":[57,94],"137858":64,"138":94,"138366":64,"139704147265344":64,"13x":58,"14":[57,58,59,60,61,62,63,64,92,99],"1409":97,"141":64,"143":57,"145":64,"145539":64,"146":57,"146053":64,"147871":64,"148353":64,"1488":57,"149":57,"14x":59,"15":[57,59,60,61,62,63,64,88,92],"1500":64,"1502":74,"1516":57,"1531":64,"1535566590":[58,60,61],"1538":57,"154252":64,"154685":64,"1549":[61,74],"1552":61,"1556":97,"1560":61,"1563":64,"156558":64,"1566":61,"1568":61,"157159":64,"1572":61,"1574":61,"1575":61,"1598":61,"15w":60,"15x":59,"16":[57,59,60,61,62,63,64,74,75,83,92,94],"16000":57,"163197":64,"163676":64,"164":[58,60,61],"165":63,"165549":64,"165991":64,"166":63,"167":63,"1691":74,"17":[57,58,59,60,61,62,63,64,92],"173":64,"173305":64,"173926":64,"176034":64,"176697":64,"1771":59,"1776":59,"1777":[57,64],"179":63,"1792":57,"18":[57,58,59,60,61,62,63,64,74,92],"182843":64,"183426":64,"185377":64,"185962":64,"188":64,"19":[57,59,60,63,64,89,92],"1906":64,"191966":64,"192424":64,"194325":64,"194817":64,"1971":64,"198":57,"1994":[64,97],"1d":67,"1e":[60,61,64,65],"1f":[57,59],"1rc0":57,"1ubuntu0":57,"1x1":63,"2":[37,47,57,58,59,60,61,62,63,64,68,73,74,77,79,81,82,83,84,86,88,89,92,94,95,97],"20":[57,58,59,60,61,63,64,92],"200":[58,60,61,62,64],"2000000000":[57,59],"2002":64,"2009":97,"200w":61,"201":[58,60,61],"2010":[64,97],"2012":89,"2014":97,"2017":[57,59,63],"2018":[58,59,60,61],"2019":[57,58,59,60,62,63],"201988":64,"202":[58,60,61],"2020":[61,63,74,78],"2021":[57,59],"2022":[57,58,59,60,61,62,63],"2023":[64,97],"202665":64,"204763":64,"2048":[60,61,80,95],"205461":64,"20w":62,"21":[57,58,59,60,61,62,63,64],"211393":64,"211987":64,"213899":64,"214450":64,"215434":57,"215446":57,"215806":57,"216":58,"217":[60,61],"218":57,"22":[57,58,59,60,61,62,63,64,99],"220892":64,"221533":64,"222":60,"223":[60,61],"223519":64,"224":[58,60,61,68,80,83,84,96,99],"224037":64,"225":[58,60,61,80,99],"227":[58,60,61],"227739155292511":58,"229":[58,60,61,99],"23":[53,57,58,60,61,64,67,84,89],"2305":64,"23344755172729492":58,"233809":64,"234":64,"234375":99,"234434":64,"235":57,"237":64,"238":[61,64],"238212":64,"239042":64,"24":[57,60,62,63,64,67],"241022":64,"24112":[58,60,61],"241654":64,"242":57,"243":[60,62],"244":[83,84],"245":63,"2453mib":57,"24576mib":[58,60],"246":58,"2462mib":57,"246kb":58,"247820":64,"248":67,"248445":64,"249":67,"24k":[58,60,61],"25":[57,60,61,64,74,80,95],"250366":64,"250959":64,"250w":57,"254":64,"256":[58,60,61,64,99],"257248":64,"257854":64,"258":88,"259968":64,"26":[57,59,60,61,63],"2606":[58,60,61],"260660":64,"265":57,"268160":64,"26w":57,"27":[57,58,59,62,64,74],"272":57,"28":[57,58,61,74],"280":64,"2802":74,"282":57,"2822":88,"285":64,"287":88,"288":[57,64],"28c":58,"29":[57,58,61,64,74],"291":64,"29c":60,"2c3":89,"2c365_subsampl":[58,60,61],"2c916ef":57,"2f":[58,60,61,62,63,64],"2s":60,"2x":60,"3":[49,53,57,58,59,60,61,62,63,64,65,67,68,70,74,77,79,81,82,83,84,88,89,92,94,95,96,97,100,101],"30":[58,60,61,63,64],"300":[62,63,64,65,100],"300x300":63,"302":64,"309":64,"3090":[58,60],"31":[57,60,61,62,63,74],"311":64,"314":64,"315":57,"32":[57,58,59,61,62,63,64,65,74,75,83,94,97,101],"320":97,"3207":64,"320w":62,"321":58,"329273":64,"32bit":65,"32x32":60,"33":[58,60,61,62,63,74],"330212":64,"332529":64,"333365":64,"33554432":[80,95],"3393":58,"339547":64,"34":[58,60,61,62,63,64],"340248":64,"342257":64,"342890":64,"345":64,"346":74,"349":57,"35":[58,60,63,74],"350619":64,"350w":[58,60],"351372":64,"352":[58,60,61],"353470":64,"35363":[58,60,61],"353k":[58,60,61],"354121":64,"3550":64,"35k":[58,60,61],"35x":58,"36":[57,58,61,74],"360090":64,"360806":64,"361413":[58,60,61],"362803":64,"3631":64,"363274":64,"366":60,"366kb":60,"3677":67,"37":[57,58,60,61,64,74],"370369":64,"371057":64,"373071":64,"373766":64,"376":58,"3763":64,"379890":64,"38":[57,60,61,63,94],"380538":64,"382532":64,"383128":64,"385":64,"3877":64,"389077":64,"389760":64,"39":[57,58,59,60,61,62,63,64,94],"3909":57,"391815":64,"392399":64,"394":64,"39485082030296326":60,"395":64,"3987298309803009":58,"399809":64,"39c":57,"39mib":57,"3d":95,"3ef7909e2":[],"3f":64,"3x3":64,"4":[57,58,59,60,61,62,63,64,70,74,77,79,81,86,88,89,92,95],"40":[58,60,61,62,63,64],"400":[62,64],"400472":64,"402399":64,"402939":64,"406":[58,60,61,99],"408818":64,"409424":64,"4096":64,"40mb":60,"41":[57,60,61,62],"411513":64,"4116":61,"412097":64,"4122":61,"4123":61,"4142":61,"4156":61,"4161":57,"4166":61,"4170":61,"4172":61,"4176":61,"4178":61,"418537":64,"419128":64,"42":[57,61,62,63,64],"421343":64,"421946":64,"429":57,"429382":64,"429688":99,"42c":62,"42w":57,"43":[57,62,63,64],"430156":64,"432259":64,"433079":64,"4352":64,"439":64,"439297":64,"44":[57,63,64],"440027":64,"442":[58,60,61,64],"442149":64,"442826":64,"442k":[58,60,61],"443":[58,60,61],"4465":[64,97],"449377":64,"449968":64,"45":[57,58,63],"452122":64,"452718":[58,60,61],"452754":64,"456":[58,60,61,99],"45675724744796753":61,"4584":58,"459":64,"46":[57,58,63,64],"462532":64,"463295":64,"466963":64,"467725":64,"468750":99,"469692":64,"47":57,"470":[61,64],"4700":[58,60,61],"470336":64,"4726":64,"474":58,"476204":64,"4767":61,"476738":64,"47681mib":61,"478809":64,"479375":64,"48":[57,60,61],"481":60,"4822":[64,97],"484":64,"485":[58,60,61,99],"485666":64,"486219":64,"488416":64,"488986":64,"489":61,"49":[57,59,63],"4914":[64,97],"4935":61,"49785590171813965":60,"49788108468055725":61,"4980":61,"499":64,"4fef":[58,60,61],"4mib":57,"4s":58,"4x":57,"5":[57,58,59,60,61,62,63,64,65,70,71,74,77,81,83,88,89,92,94,95,99],"50":[57,58,59,61,62,63,64,96],"500":[62,64],"5002":61,"5005":61,"5014":61,"5016":61,"5018":61,"5020":61,"5024":61,"5026":61,"5027":61,"5033":61,"504":64,"5052":61,"5067":61,"5088":61,"5091":61,"5094":61,"5096":61,"510":[57,58,60,62],"5100":61,"511":64,"5110":61,"5115":61,"5117":64,"5118":61,"512":[57,60,61,64,65,83,84,96],"512364":64,"513354":64,"514046":64,"514638":64,"515270":64,"5153":61,"515859":64,"516441":64,"517009":64,"5172":64,"517600":64,"518167":64,"518752":64,"519333":64,"5197":61,"519911":64,"51c":61,"52":[58,60,61,64],"5202":61,"520473":64,"5207":61,"521038":64,"5215":61,"521596":64,"522170":64,"522742":64,"5231":61,"523360":64,"523438":99,"523957":64,"5242":61,"524581":64,"525059":64,"525366":64,"525675":64,"525962":64,"526257":64,"526566":64,"526885":64,"527188":64,"527489":64,"527792":64,"528097":64,"528387":64,"528834":64,"529163":64,"53":[57,60,63,89],"5320":64,"532748":64,"533468":64,"5335":64,"534033":64,"534684":64,"535320":64,"535983":64,"536":64,"536569":64,"536870912":[49,53,84],"537248":64,"537833":64,"538480":64,"539":74,"539074":64,"539724":64,"53k":[58,60,61],"540307":64,"540952":64,"541534":64,"542075":64,"542596":64,"543248":64,"543719":64,"544424":64,"544952":64,"545530":64,"546114":64,"546713":64,"547292":64,"547902":64,"548453":64,"549015":64,"549665":64,"55":61,"550436":64,"551":57,"551925":64,"553105":64,"55c":57,"55k":[58,60,61],"56":[57,58,61,62,74],"560":64,"5620":64,"564":64,"5676":64,"568":64,"57":[61,64],"5746":64,"576":[62,74],"58":[60,61,64],"59":[57,60,61,62,63],"594":57,"597":59,"599":59,"5d":64,"5f":64,"6":[57,58,59,60,61,62,64,67,70,74,77,79,92,94],"60":[58,60,61,63],"600":[62,64],"6047":57,"608":61,"608kb":61,"61":[63,64],"613":64,"62":[57,58,64],"622":[64,67],"62w":61,"62x":59,"63":[57,59,61],"630":[58,60,61],"635":64,"636":64,"637":64,"638":64,"639":64,"64":[59,60,61,64,75,95],"640":64,"641":64,"642":64,"643":64,"644":64,"6442285180091858":61,"6445754766464233":60,"646":64,"649":64,"64bit":65,"65":[57,58,60,61,64],"6539":64,"655":64,"66":58,"664062":99,"668":57,"669":57,"67":[61,64],"6733":64,"677":64,"67mib":57,"68":[60,64],"6812":[58,60,61],"687":64,"688":64,"689":64,"69":[60,61],"690":64,"6f":[57,59],"6s":61,"7":[57,58,59,60,61,62,64,70,71,74,92],"70":[58,60,61,63],"700":[62,64],"701":64,"709":57,"7099":64,"71":[58,61,64],"716":64,"72":[58,60],"7203":64,"72048":77,"721":64,"724":64,"728":57,"729":57,"73":[57,58,60,61],"7302":89,"732":64,"735":64,"7376":64,"738":64,"74":[63,64],"742":64,"7454":64,"75":[58,60,61,64],"7537":64,"76":64,"781":64,"79":[60,64],"796":64,"797":64,"7ubuntu0":57,"8":[4,57,58,59,60,61,62,63,64,65,67,74,77,83,88,89,92,99],"80":[57,58,60,61,63,64],"800":[62,64],"8000":99,"8001":99,"8002":99,"801":64,"81":[63,64],"818":64,"82":64,"8204":64,"821":64,"83":[58,61,64],"834":64,"8351":64,"837":64,"84":[61,62,64,74,94],"847":64,"84e944ff11f8":[58,60,61],"84x":60,"85":[58,61,64],"86":[58,61],"860":64,"86k":[58,61],"87":64,"8732":63,"877":64,"8791":64,"88":[58,61,63],"89":[58,61],"898":64,"89k":[58,61],"8bit":64,"9":[57,58,59,60,61,62,63,64,74,92,99],"90":[58,60,61,63,99],"900":[62,64],"906":64,"90994":[58,61],"916":[57,64],"91a9cc5850784b2065e8a0aa3d526fd9":57,"92":[58,60,61,99],"9223372036854775807":79,"923":[58,60,61],"927":64,"92k":60,"9367":64,"94":[58,60,61],"941":64,"94328":60,"944":64,"948":64,"94k":[58,60,61],"95":58,"951":59,"952":64,"953":[57,64],"955":57,"959":64,"96":[57,64],"9624":64,"9695423245429993":58,"97":[58,64],"98":64,"9899807572364807":60,"9899841547012329":61,"99":[57,58,59,60,61,63,64],"997":64,"999":64,"9999":64,"99th_p":[57,59],"9ab0":[58,60,61],"9x":57,"abstract":[70,73,89],"boolean":[64,83,95],"break":[64,88,95],"byte":[57,83,84,96],"case":[1,2,3,50,53,59,62,63,66,70,73,77,95,97,98],"catch":[67,74],"char":[4,5,48,65,74],"class":[31,32,33,34,48,49,50,56,58,59,60,61,62,63,64,70,73,74,75,81,88,89,94,95,96,97],"const":[1,2,3,4,5,31,32,33,34,35,36,37,39,41,48,49,50,67,73,74,79,97],"default":[1,2,3,4,5,17,31,32,33,34,47,49,50,52,53,57,58,60,61,62,63,65,68,74,75,77,80,83,84,86,87,88,95,97,100],"do":[57,58,60,62,63,66,67,68,73,74,75,87,89,94,95,97,101],"enum":[1,2,3,46,49,50,56,58,81,84,97],"export":[57,64,77],"final":[57,66,69,71,77,96],"float":[53,57,58,60,62,63,65,74,75,79,83,94,97,100],"function":[1,2,3,4,5,50,52,53,56,57,58,59,60,62,63,64,67,68,70,73,74,77,94,95,96,97,99,100,101],"import":[57,58,59,60,61,62,63,64,65,67,68,74,75,77,86,88,94,95,98,99,100],"int":[1,4,5,39,48,49,53,58,61,64,65,74,79,80,83,84,86],"long":[53,59,65,66,88,89],"new":[1,2,3,4,5,36,37,50,52,53,58,60,62,63,64,70,71,73,74,81,84,88,95,99],"null":57,"public":[1,2,3,4,5,48,49,50,51,52,53,89,97],"return":[1,2,3,4,5,25,26,31,32,33,34,35,36,37,38,41,46,47,48,49,50,57,58,59,60,61,62,64,67,69,70,71,73,74,75,80,81,83,84,94,95,97,99],"short":[67,88,89],"static":[52,53,66,73,74,83,84,86],"super":[48,62,94],"throw":[65,67,74],"true":[1,2,3,5,50,53,57,58,59,60,61,62,63,64,67,68,73,74,79,80,83,84,86,89,95,97,99,100,101],"try":[57,58,59,60,62,71,74,88,89,100],"var":79,"void":[4,5,27,28,29,30,39,40,46,48,49],"while":[64,77,96,97,99],A:[5,31,32,33,34,36,37,51,52,57,58,59,60,61,62,64,67,68,73,77,80,84,89,95,97,99],AS:[57,58,59,60,61,62,63],And:74,As:[61,74,95],At:87,But:[74,88],By:[31,32,33,34,56,62,63,68,86,94],For:[58,60,62,63,64,66,68,74,77,80,86,88,89,94,95,96,97,98,99,100],IS:[57,58,59,60,61,62,63],If:[29,57,58,59,60,62,63,64,66,67,74,75,77,80,81,83,86,88,95,97,98,99,101],In:[1,2,3,50,57,58,59,60,61,62,63,64,66,69,70,71,73,75,77,78,88,89,91,95,96,97,98,99],Is:[26,83],It:[57,58,59,60,61,62,63,65,67,68,69,71,73,77,86,88,95,96],Its:[73,88],NOT:59,No:[58,60,61,62],Not:4,OF:[57,58,59,60,61,62,63],OR:[57,58,59,60,61,62,63],On:[57,58,60,61,62,68],One:[59,74,88,89,95,96],Or:88,THE:88,TO:74,That:88,Thats:74,The:[2,50,52,53,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,75,77,81,83,84,86,89,94,95,96,97,99,100],Then:[68,77,97,100],There:[5,59,63,64,66,71,73,77,89,94,95,96,97,98,99],These:[58,59,60,66,70,86,88,97,99],To:[2,50,61,62,63,64,65,68,74,75,77,86,94,99,100],Will:35,With:[58,59,60,61,74,86,88,97,99],_:[57,58,59,60,61,62,63,64,88,95],___torch_mangle_10:94,___torch_mangle_4847:70,___torch_mangle_5:94,___torch_mangle_9:94,__and__:79,__attribute__:47,__derive_index:79,__future__:57,__getitem__:79,__gnuc__:47,__init__:[62,82,83,88,94],__is__:79,__isnot__:79,__not__:79,__or__:79,__range_length:79,__round_to_zero_floordiv:79,__torch__:[70,74,94],__torch___pytorch_detection_ssd_src_model_ssd300_trt_engin:70,__torch___torchvision_models_resnet____torch_mangle_4847_resnet_trt_engin:70,__version__:64,__visibility__:47,__xor__:79,_affin:64,_all_:67,_b:57,_c:[84,100],_calibr:64,_convolut:[64,74,79],_devic:84,_input_quant:64,_jit_intern:57,_jit_to_backend:100,_pair:64,_quant:64,_script:84,_shapemod:83,_theme:93,_trace:57,_validate_not_a_forked_repo:[60,61,63,99],_weight_quant:64,a100:[57,58,59,60,62,63],a1b:89,aarch64:71,ab:79,abi:98,abil:61,abl:[58,59,60,61,62,63,66,67,73,78,95,97,100],about:[58,60,61,63,64,65,66,70,73,74,77,83,86,99],abov:[27,63,64,74,77,81,87,88,95],absl:57,absolut:[64,65],absolute_import:57,ac:91,acc:64,acc_mod:95,acc_norm:95,acc_op:95,acc_op_convert:95,acc_ops_sigmoid:95,acc_trac:95,acceler:[58,59,60,62,63,101],accept:[52,59,64,65,70,73,74,75,83],access:[61,63,67,73,74,78,86,95,100],accord:[73,84],accordingli:[64,86,95],account:99,accumsan:91,accumul:[53,84],accuraci:[63,64,96,97],achiev:[58,60,62,63,64,96],aco:79,acosh:79,acoust:[57,96],acquir:74,across:[53,65,67,84,86],acthardtanh:73,action:[88,95],activ:[64,74,84,88,95,96,97,101],activationtyp:[73,95],actual:[62,64,67,70,73,74,81,94,95],ad:[27,65,66,95],adaptive_avg_pool1d:79,adaptive_avg_pool2d:79,adaptive_avg_pool3d:79,adaptive_max_pool1d:79,adaptive_max_pool2d:79,adaptive_max_pool3d:79,adaptiveavgpool2d:[60,61],add:[28,66,67,68,73,74,75,77,79,81,86,88,93],add_:[67,74,79],add_activ:95,add_patch:63,addactiv:73,addit:[63,64,67,74,83,95,96],addlay:74,address:89,addshuffl:74,adipisc:[89,91],adjac:88,adjust:[64,88],adjust_lr:64,adopt:[59,96],advanc:[89,97],advis:88,aenean:91,affin:[60,61],afford:95,aforement:99,after:[61,63,64,65,66,67,68,74,75,76,78,94,95,98,99],again:[48,59,63,70,73,88],against:[65,74],agre:[57,58,59,60,61,62,63],agx:49,ahead:[61,74],aim:[59,67],aiohttp:57,aiosign:57,alabast:57,algo_typ:[82,97],algorithm:[4,5,31,32,33,34,48,59,82,95,97],algorithm_selector:95,alias:47,align:88,align_corn:79,aliquam:91,aliquet:[89,91],all:[17,46,47,48,49,53,57,58,59,60,61,62,63,64,65,67,68,70,74,75,76,77,81,83,88,89,94,95,96,97,98,99],alloc:73,allow:[52,53,58,60,62,63,65,66,67,83,86,95],allow_gpu_fallback:[49,50,83,84,97,100,101],allow_tf32:79,almost:74,alpha:[63,79,89,95],alreadi:[57,58,59,60,61,62,63,64,65,66,67,74,97],also:[31,34,58,59,60,61,62,63,66,73,74,75,77,78,86,88,89,96,97],alter:61,altern:[52,96],although:88,altogeth:[68,86],alwai:[4,5,29,65,88],amax:64,amax_sequeez:64,amazonaw:[58,60,61],amet:[89,91],amount:[59,64],amp:[58,60,61],amp_backend:57,an:[3,4,5,52,53,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,74,75,76,77,78,82,83,84,86,88,89,94,95,96,97,98,99],analogu:73,analysi:[63,68],analyt:86,analytics_id:86,ancient:88,ani:[52,57,58,59,60,61,62,63,65,66,73,74,75,77,79,83,86,88,95,97],ann:88,anneal:64,annot:[63,73,74],anonym:88,anoth:[59,75,88,89,94],ant:91,antlr4:57,anyon:89,anyth:[88,89,98],aot:[61,74,78],apach:[57,58,59,60,61,62,63],apex:63,api:[57,61,63,64,68,71,73,74,75,83,84,87,95,96,97,98,99,100],appdir:57,appear:88,append:[57,58,59,60,61,62,63,64,79],applehelp:57,appli:[64,97],applic:[2,31,34,50,57,58,59,60,61,62,63,65,67,71,74,75,98,100,101],approach:[58,60,62,63],apr:[57,74],apt:57,ar:[46,50,53,57,58,59,60,61,62,63,64,65,66,67,68,70,71,73,74,77,78,83,84,86,88,89,90,94,95,96,97,98,99,100],arab:89,arang:79,architectur:[59,63,64,77,78,96],archiv:[57,60,63,77],arcu:[89,91],area:90,aren:74,arg:[57,66,74,82,83,92,95,96],arg_replacement_tupl:95,argc:74,argmax:[58,59,60,61,79],argmin:79,argon2:[57,60,61,62,63],argpars:57,argument:[52,57,58,59,64,65,67,70,73,74,83,84,88,89,95],argv:74,around:[64,67,70,73,88,91,94],arrai:[4,5,37,57,59,66,84],arrayref:[49,52,53],arti:[58,60,61],artifact:76,arxiv:97,as_numpi:99,asin:79,asinh:79,aspect:65,asr:57,asr_model:57,assembl:[66,74],assign:[4,5,87],associ:[59,66,73,74],associatevalueandivalu:73,associatevalueandtensor:[73,74],assum:[57,64,100],ast:57,asttoken:[57,61,63],async:57,asyncio:[57,60,61,62,63],atan:79,atanh:79,aten:[53,63,64,67,68,72,73,74,79,84],atol:65,attach:63,attent:59,attention_mask:59,attention_masks_tensor:59,attr:[57,60,61,62,63],attrdict:[57,99],attribut:[67,68,70,74,88,95],auctor:91,audio:[57,96],audioread:57,augment:59,augu:91,auth:57,author:89,auto:[48,68,73,74,88,89,97,101],autodoc:[88,89],automat:[58,60,62,63,74,88],av:[60,61,62],avail:[58,60,61,62,63,65,73,77,86,95,101],averag:[53,58,60,61,62,63,64,65,84],avg:[58,63,64,65],avg_pool1d:79,avg_pool2d:79,avg_pool3d:79,avgpool:[60,61,63,64],avoid:[58,59,60,61],awai:88,await:[58,60,61],awaken:88,ax:[58,60,61,63],axi:[58,60,61,64,79],b0:[60,96],b:[60,61,63,76,77,79,89,99],b_hh:79,b_ih:79,babel:57,back:[67,68,70,71,74,83,88,94],back_insert:48,backbon:[59,63],backcal:[57,60,61,62,63],backend:[57,58,59,60,61,62,63,64,84,87,100],background:[88,94],backlink:88,backport:57,backward:[64,95],bar:[86,88],base:[40,54,55,58,59,60,62,63,64,70,77,81,82,83,88,94,96,97],basebal:59,baselin:[61,64],bash:77,basi:[57,58,59,60,61,62,63,88],basic:[64,65,89,95,99],batch:[4,5,48,57,58,59,60,61,62,63,64,80,95,97,99,101],batch_norm:[73,79],batch_siz:[48,57,59,63,64,97],batched_attention_mask:59,batched_data_:48,batched_indexed_token:59,batched_segment_id:59,batchnorm2d:[60,61],batchnorm:[63,67],batchsiz:57,batchtyp:48,bathroom:88,bazel:[71,77],bazel_vers:77,bazelbuild:77,bazelisk:77,bazelvers:77,bbox:63,bdist_wheel:77,beat:89,beautifulsoup4:[57,61],becaus:[59,73,74,77,80,94,95],becom:[59,73],bee:88,been:[66,73,74,89],befor:[53,61,63,64,67,71,73,74,77,78,84,95,99],beforehand:74,begin:[48,59,77,88,95],beginn:94,begun:88,behav:[63,90],behavior:[53,63,83,84,95],behaviour:[57,58,59,60,61,62,63],behind:88,being:[58,60,62,63,74,95],belong:88,below:[59,63,73,74,77,88,95,99],benchmark:[58,59,60,62,79],benefit:[73,74],bertformaskedlm:59,bertforpretrain:59,bertforsequenceclassif:59,berttoken:59,besid:88,best:[58,60,61,62,63,77,88,95],best_result:63,best_results_per_input:63,best_results_per_input_trt:63,beta:[79,84,95],better:[58,60,62,63,94,96],between:[63,67,73,77,88,89,97],bfe5ad2:58,bia:[59,60,61,62,64,67,74,79],bibendum:91,bibliograph:89,bibtex:57,bidirect:59,bigger:88,bin:77,binari:[48,97],binary_data:99,bind:[4,5,37,48,57,60,61,62,63,84,88],bird:[58,60,61,64,99],bit:[53,59,73,74,83,84,95],bitbucket:86,bitbucket_url:86,bitwise_not:79,black:[57,63],blandit:91,blank:88,bleach:[57,60,61,62,63],blob:[72,86,97],block0:67,block1:67,block:[65,66,67,92],blue:88,bmm:79,bn1:[60,61],bn2:[60,61],bn3:[60,61],bodi:[88,89],bold:88,bool:[1,2,3,4,5,26,29,32,33,35,46,48,49,50,53,67,73,74,79,80,81,83,84,86,97],border:88,bot:63,both:[58,60,62,63,77,86,88,94,97],boto3:57,botocor:57,bottleneck:[60,61],bottom:86,bound:[63,64],box:[63,88],braceexpand:57,bracket:88,branch:[59,77],bread:88,breed:[58,60,61],brief:68,briefli:94,broadli:59,broken:[57,58,59,60,61,62,63],brontosaurus:88,browser:88,bsd:[46,47,48,49],bu:[57,58,60,61,62],buffer:[4,5,95],bug:77,bui:89,build:[31,32,33,34,38,53,57,58,65,66,69,71,73,74,83,87,92,95,97],build_fil:77,build_model:95,buildcommandarg:76,builder:95,builderconfig:49,buildroot:76,built:[37,65,70,71,77,84],builtin:95,bust:[58,60,61],button:[86,88],bytearrai:95,c10:[1,2,49,50,52,53,74,97],c96b:61,c:[46,47,48,49,57,58,60,61,62,63,64,65,71,75,79,89,95,98,99,101],c_api:72,c_str:[73,74],ca6b:[58,60],cach:[4,5,31,32,33,34,48,57,60,61,63,64,65,74,80,82,95,97],cache_:48,cache_fil:[48,82,97],cache_file_path:[4,5,31,32,33,34,48],cache_file_path_:48,cache_size_:48,cachecalibr:[82,97],cachetool:57,cackl:89,cadenc:61,calcuat:64,calcul:[52,66,68,74],calendar:57,calib:64,calib_output:64,calibr:[4,5,31,32,33,34,48,53,64,65,74,82,84,97],calibrate_model:64,calibration_cache_fil:[31,32,33,34,97],calibration_dataload:[32,33,97],calibration_dataset:97,calibrationalgo:[82,97],call:[31,32,33,34,36,53,57,58,59,60,62,63,64,67,70,73,74,80,84,88,94,95,96,100],call_funct:95,callmethod:94,can:[1,2,5,31,32,33,34,41,50,51,52,53,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,74,75,77,83,84,86,88,94,95,96,97,98,99,100],canada:89,cannot:[52,62,63,64,67,68,77,83,84,87,94,95],canon:86,canonical_url:86,cap:[57,58,60,61,62],capabl:[18,49,53,65,70,83,84,100],capit:[59,88],caption:[88,91],captur:64,car:64,card:[58,59,60],cast:[4,5,67],cat:[64,77,79],caught:67,caus:[58,60,62,63,64,73,77,86],cd:[77,99],cdll:74,ceil:79,ceil_mod:[60,61,79],cell:[59,63,89],center:[58,59,60],centercrop:[58,60,61,99],cerr:74,certain:[57,77,95],certifi:[57,59],cffi:[57,60,61,62,63],cfg:68,chain:73,challeng:[64,99],chanc:73,chang:[31,34,58,59,60,61,62,63,67,71,84,86,95,97,99],changelog:92,channel:[3,58,60,61,64,83,87],channel_last:[61,83,84,96],channels_last:83,charact:88,charset:[57,59],check:[1,2,35,50,61,63,65,67,73,74,77,84,95,98,99],check_method_op_support:84,check_method_operator_support:[22,45,49,54,55],checkmethodoperatorsupport:74,checkpoint:[57,59,60,63,64],child:89,children:95,chimpansee_amber_r_1920x1080:[58,60,61],chimpanze:[58,60,61],choic:[59,77,82],choos:[58,60,94,95],ci:[57,58,60,61,62],cifar10:[64,97],cifar:[64,97],circular:64,ckpt:64,ckpt_path:64,cl:59,clamp:[64,79],clamp_max:79,clamp_min:79,class_count:99,class_pr:64,class_prob:64,classes_to_label:63,classif:[62,63,64,74,94,96],classifi:[62,64,89,96],classification_index:99,clean:88,clear:48,cli:[65,75],clib:57,click:[57,59,63,76],clickabl:88,client:[57,60,61,62,63],clone:79,close:[64,74],closer:67,closet:88,cloud:57,cloudfront:[58,60,61],cmake:76,cmake_build_typ:76,cmake_module_path:76,cmakecommandarg:76,cmakeset:76,cnn:96,co:[79,89,96],coco:63,cocodataset:63,code:[58,59,60,61,62,63,68,71,74,76,78,87,89,94,95,97],coeffici:96,collapse_navig:86,collat:89,collect:[57,58,60,62,63,64,74,84],collect_stat:64,colon:88,color:[26,29,81,88],colorama:57,colored_output_on:[29,46,81],column:89,com:[57,58,59,60,61,62,63,72,74,77,97,98,99],combin:95,come:[58,60,61,62,63,77,87,95,99],command:[65,74,77,88,89,94,99],comment:[77,88],commodo:91,common:[57,60,63,66,67,80,88,95],common_subexpression_elimin:67,commonli:89,commun:[53,65,74,76,84],compani:59,compar:[59,63,64,75,95],comparis:[1,3],comparison:[2,50],compat:[1,2,50,58,60,62,63,67,70,77,84,95],compil:[22,35,41,45,49,53,54,55,57,58,59,60,61,62,63,64,65,67,68,70,73,75,80,81,83,84,86,94,95,97,98,99,100,101],compile_set:57,compile_spec:[64,97,101],compilegraph:[74,97],compilesepc:37,compilespec:[4,5,22,36,41,45,49,54,55,68,74,97,101],compilespecstruct:[0,54],complet:[57,58,59,60,62,63,68,74,94],complex:[51,53,77,94],compli:63,complianc:[57,58,59,60,61,62,63,65],compliat:97,complic:77,compon:[59,62,69,71,94,98],compos:[58,60,61,62,63,64,94,95,97,99],composit:[64,74],compound:96,comprehens:63,compris:59,comput:[53,57,58,59,60,61,62,63,64,88,95,96,97],compute_amax:64,conceiv:88,concern:59,conclus:[57,58,59,60],concorr:99,conda:[57,58,59,60,61,62,63,64],condimentum:91,condit:[57,58,59,60,61,62,63,88],conduc:61,conduct:59,conf:[86,93],confid:[58,60,61,63],confidence_scor:99,config:[57,58,77,80,95,99],configur:[36,41,52,57,61,74,77,78,83,84,92,97,99],configurationtyp:76,confirm:57,conflict:[57,58,59,60,61,62,63],congu:91,connect:[58,60,61,67,84,88,99,101],consectetur:[89,91],consecut:68,consid:[61,74,84],consider:99,consist:[59,67,88,95],consol:65,consolid:94,constant:[61,64,66,67,74],constant_pad_nd:79,constexpr:[1,2,3,49,50],construct:[1,2,3,4,5,50,52,53,66,67,69,71,73,74,82,83,88,89,95,97],constructor:[1,3,50,52,53,70,94],consult:87,consum:[5,66,94],contact:89,contain:[32,33,35,57,58,59,60,61,62,63,65,66,67,73,74,77,80,83,88,89,94,95,97,98,99],content:[61,92,97,99],context:[58,62,64,66,69,70,71,81],contextnet:[57,96],contigu:[3,52,53,65,83,84],continu:[58,59,60,62,63,88,95,98],contributor:74,control:[62,63,94,95],conv1:[60,61,62,74,94],conv2:[60,61,62,74,94],conv2d:[60,61,62,64,94],conv3:[60,61],conv4_x:63,conv5_x:63,conv:[53,64,65,74],conv_asr:57,conval:91,convect:52,conveni:[63,96,97],convent:[58,59,60,62,63],converison:95,convers:[58,62,63,64,67,68,70,74,83,84,95],conversionctx:[73,74],convert:[4,5,35,36,41,57,58,60,61,62,63,64,65,67,68,69,71,75,78,83,84,96,98,100],convert_method_to_trt_engin:[22,45,49,54,55,83,84,100],convertgraphtotrtengin:74,convien:53,convienc:[4,5,53],convnet:63,convolut:[57,58,61,63,64,84,97,101],convtert:95,coordin:71,copi:[48,57,58,59,60,61,62,63,73,79,82,89,95,99],copy_:79,copyright:[46,47,48,49,57,58,59,60,61,62,63,74,89],core:[49,57,58,60,61,62,63,65,67,68,71,74,83,101],core_id:83,corpor:[46,47,48,49,57,58,59,60,61,62,63],corpu:96,correct:[64,70,77,86],correctli:77,correspond:[63,64,73,77,95],cosh:79,could:95,count_include_pad:79,counterpart:64,coupl:[58,60,62,63,66,71,95,98],cout:74,cover:96,cp38:63,cp:77,cpp:[15,16,46,47,48,49,56,67,71,74,77,97],cpp_frontend:97,cppdirectori:[23,54],cppdoc:74,cpu:[57,80],cra:91,creat:[31,32,33,34,37,57,58,59,60,61,62,63,64,65,66,70,73,74,78,84,88,95,99],create_model:58,create_transform:58,credit:74,crit:64,criteria:[68,69,71],cross:[64,88],crossentropyloss:64,cs:97,csrc:[67,72],cstddef:97,ctc_bpe_model:57,ctestcommandarg:76,ctrl:76,ctx:[73,74],ctype:74,cuda113:77,cuda:[53,57,58,59,60,61,62,63,64,70,74,75,76,77,80,83,95,97,99,100],cuda_graph_batch_s:[80,95],cuda_runtim:[22,49],cudafloattyp:74,cudasetdevic:39,cudnn:[57,58,59,60,61,62,63,64,76],cudnn_en:79,cumsum:79,curabitur:91,curl:[77,88],current:[25,58,60,70,73,77,80,84,86,95],cursu:91,custom:[58,60,65,77,95],custom_class:[22,49],custom_mapp:95,customclasshold:[49,52],cut:88,cxx11:98,cycler:57,cython:57,d17fnq9dkz9hgj:[58,60,61],d:[57,58,59,60,61,62,63,64,65,88,89,101],dapibu:91,data:[1,3,4,5,31,32,33,34,48,50,52,53,57,58,59,60,62,63,64,65,66,68,69,71,73,79,80,82,83,84,88,92,95,96,97],data_dir:97,data_item_1:87,data_load:64,data_typ:99,databas:57,dataclass:95,dataflow:[73,74],dataload:[5,31,32,33,34,48,53,64,82,97],dataloader_:48,dataloadercalibr:[82,97],dataloaderopt:97,dataloaderuniqueptr:[5,48],dataset:[31,34,63,64,82,96,97],datatyp:[2,22,42,49,50,52,53,54,55,58,75,83,84,99],datatypeclass:[0,54],date:89,dateutil:[57,60,61,62,63],david:89,dbg:77,dcmake_build_typ:77,dcmake_module_path:77,ddof:[57,59],dead_code_elimin:67,deal:73,debian_frontend:57,debug:[17,29,49,53,64,65,73,76,81,84,100],debugg:[65,84],debugpi:[57,60,61,62,63],decid:[62,83],declar:[64,77],decod:[58,59,60,61],decode_result:63,deconvolut:101,decor:[57,60,61,62,63,95],dedic:[67,89],deep:[58,59,60,61,62,63,64,73,78,86,97,101],deeplearn:[72,95],deeplearningexampl:63,deer:64,def:[57,58,59,60,61,62,63,64,88,94,95,99],default_tim:[57,59],defer:61,defin:[1,2,3,4,5,17,18,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,47,50,51,52,53,56,57,59,61,62,64,65,74,75,83,86,94,95,96,97],definit:[56,73,88],defusedxml:[57,60,61,62,63],deiti:88,delet:[1,2,3,49,50,67],delimit:67,demo:[58,59,60,63,88,97],demonstr:[57,58,59,60,61,62,63,88,89,90,96,97,99],demonstrat:[58,60],demostr:96,denorm:63,denot:[59,88],dep:77,depend:[31,34,38,57,61,63,64,66,68,71,74,75,95,98,99],depickl:70,deploi:[58,60,61,62,63,69,71,74,78,97,99],deploy:[58,60,62,63,64,65,74,75,96,97,98,99,101],deprec:[57,79,95],depth:[86,96],dequantizelay:64,descclassnam:88,descnam:88,describ:[53,60,62,63,73,94,99,100],descript:[61,68,89],deseri:[74,83,84],design:[58,59,60,62,63,95,96,101],desir:[64,89,97],destini:89,destroi:[73,89],destructor:73,detail:[58,60,61,64,74,94,95,98,99],detect:[52,60,64,70],detections_batch:63,determin:[58,67,95],determinist:79,develop:[57,58,59,60,62,63,74,77,78,88,89,95],devhelp:57,deviat:65,devic:[0,22,37,39,42,49,53,54,55,58,60,62,63,64,65,70,75,79,80,82,83,84,96,97,100,101],device_typ:[49,50,83,97,100,101],deviceclass:[0,54],devicetyp:[22,42,49,50,54,55,83,97,100,101],devicetypestruct:[0,54],diam:91,dict:[63,83,84],dictionari:[59,83,84,100],dictum:91,dictumst:91,did:88,didn:88,differ:[31,34,59,61,62,63,64,67,71,77,78,86,94,95],differenti:[58,60,62,63],digit:57,dignissim:91,dilat:[60,61,62,63,64,79],dim0:79,dim1:79,dim:[58,60,61,64,79,80,95,99],dim_int:79,dim_intlist:79,dimens:[52,61,67,80,95,96],dir:64,direct:[92,98],directli:[73,76,77,78,82,97],directori:[19,20,21,22,23,46,47,48,49,54,64,76,77,97],disabl:[58,60,61,62,63,64,65,81,86,87],disable_calib:64,disable_qu:64,disable_tf32:[49,53,84,97],disclos:77,disconnect:88,discret:88,discuss:[61,99],disp:[57,58,60,61,62],displai:[65,81,86],display_github:86,display_gitlab:86,display_vers:86,disregard:58,dist:77,distanc:57,distdir:77,distribut:[57,58,59,60,61,62,63,74,83,97,98],div:79,div_:79,divis:57,divisor_overrid:79,django:87,dl:88,dl_open:98,dla:[2,49,50,53,65,78,83,84],dla_cor:[49,50,65,83,97,100,101],dla_global_dram_s:[49,53,65,84],dla_local_dram_s:[49,53,65,84],dla_sram_s:[49,53,65,84],dla_standalon:65,dlacor:65,dll:65,doc:[64,71,72,77,86,87,88,93],docker:[57,58,59,60,62,63,99],docopt:57,docsrc:71,docstr:[88,89],document:[46,47,48,49,54,55,58,60,61,71,74,86,88,89,93,94,97,98,99,100],docutil:[57,88,89],doe:[47,48,59,63,67,68,73,88,95,97],doesn:[64,74,77,88,94],dog:64,dolor:[89,91],domain:[89,97],don:[62,73,86,88,89,95,97,99],done:[57,61,63,66,68,71,99],donec:[89,91],dont:46,dothismethod:88,dotpai:87,dotpayprovid:87,doubl:[53,65,84,88],down:[58,60,62,63,77,86,95],download:[57,58,60,62,63,64,77,92,97,99],downsampl:[60,61],downstream:96,doxygen_should_skip_thi:[48,49],dpython:[83,84],dr:61,dram:65,dream:89,driver:[57,58,60,61,62,77],drop:[63,77,86],dt:88,dtensorrt_root:77,dtorch_dir:77,dtyep:80,dtype:[49,52,53,57,58,59,60,61,62,63,64,65,75,79,80,83,84,95,96],dual:88,due:[4,5,58,60,62,63,64,77,87,88],dui:[89,91],dummi:59,dump:[40,65,77],dump_build_info:[22,42,49,54,55,83],durat:88,dure:[53,64,65,73,82,96,97,98],dynam:[52,53,63,64,80,83,84,95],dynamic_batch:[80,95],e1109:64,e:[31,32,33,34,58,59,60,63,65,67,73,74,77,80,83,94,95,97],each:[4,5,53,59,63,64,66,67,68,70,73,74,77,80,86,88,95],eager:[58,60,62,63],ear:88,earli:95,earliest:64,eas:47,easi:[65,66,67,74,97],easier:[59,64,69,71,73,74,95,97],easiest:77,easili:[4,5],ecc:[57,58,60,61,62],echo:88,ecosystem:[58,60,62,63],edg:88,edgecolor:63,edit:[76,86],editdist:57,edu:97,effect:[57,64,67,74,86,95,96,97],effici:73,efficientnet:[60,63,96],efficientnet_b0:58,efficientnet_b0_model:58,efficientnet_preprocess:58,efficitur:91,effort:61,eg:99,egesta:91,eget:91,either:[51,52,57,58,59,60,61,62,63,65,73,74,75,77,83,84,86,88,94],el:79,eleifend:89,element:[59,70,88,89,92,95],element_typ:48,elementum:91,elit:[89,91],elk:88,els:[47,48,52,57,64,84,88,89],elu:79,emb:[37,65,84,89],embed:[65,70,79,84,88,101],embed_engine_in_new_modul:[22,45,49,54,55,84],emit:66,emphasi:88,emploi:59,empti:[53,62,80,84,89,94],emum:[17,18],en:[57,86],enabl:[4,5,26,53,58,60,61,62,63,64,65,68,69,71,80,81,82,84,86,95],enable_calib:64,enable_precis:74,enable_qu:64,enabled_precis:[49,53,57,58,59,60,61,62,63,64,74,75,83,84,97,99,100,101],enalbed_precis:101,enc:59,enc_input:59,encdecctcmodelbp:57,encod:[57,59,70,96],encoded_input:59,encorag:[58,59,60,61],encount:77,encourag:99,end:[48,65,73,74,79,84,88,97],end_dim:[74,79],end_tim:[57,58,59,60,61,62,63,64],endif:[47,48,49],energi:88,enforc:74,engin:[1,2,18,36,37,41,49,50,52,53,57,59,61,65,66,68,69,71,74,75,78,80,83,84,86,97,98,100,101],engine_converted_from_jit:74,enginecap:[0,22,42,49,53,54,55,83,84,100],english:[59,96],enhanc:[63,88],enim:91,enjoi:59,enough:64,ensur:[31,34,64,67,68],enter:[59,66],entir:[64,88],entiti:88,entri:[53,73],entropi:[31,32,33,34,64,97],entropy_calibr:82,entropy_calibration_2:[82,97],entrypoint:[57,60,61,62,63],enumer:[1,2,3,17,18,50,59,64,82],environ:[57,58,59,60,61,62,63,95,99],ep:[60,61,79],epoch:64,eq:[79,88],equat:88,equival:[36,62,63,69,71,73,74,84,94,97],equivil:41,erat:91,erf:79,eric:88,ero:91,error:[17,53,57,58,59,60,62,63,65,66,67,71,74,77,81,84,88,95],eskimo_dog:58,essenc:88,essenti:[61,95],est:91,et:91,eta:[58,60,62,63],etc:[86,88,95,101],etiam:91,eu:91,euismod:91,eval:[57,58,60,61,62,63,64,74,75,99],evalu:[63,69,70,71],evaluated_value_map:[66,73],even:74,event:52,everi:[68,74,80],everyth:17,ex:[1,2,3,37,50,84,89,91],exact:99,exactli:[59,63],examin:[59,95],exampl:[52,58,60,61,62,63,64,68,70,71,73,74,76,78,81,83,84,86,87,89,92,94,95,97,98,99],exceedingli:88,except:[57,58,59,60,61,62,63,95],exception_elimin:67,excerpt:89,excit:[57,96],execpt:67,execut:[37,53,57,58,60,61,62,63,65,67,69,70,71,74,77,83,84,94,95,97,99],execute_engin:[70,74],exert:88,exeuct:70,exhaust:74,exist:[5,35,36,41,57,77,82,83,84,95,96,97],exit:99,exp:79,expand:[67,79],expand_a:79,expanded_pad:64,expect:[52,58,59,60,61,62,63,67,73,74,83,96],experi:[58,59,60,62,63],experiment:[64,95],explain:95,explan:[61,95],explic:[48,64],explicit:[1,2,3,4,5,49,50,61,67,78,80,88,95,97],explicit_batch_dimens:[80,95],explicit_precis:80,explicitli:[59,64,68,69,71,75,97,100],explict:48,explictli:1,expon:79,export_util:57,expos:97,express:[57,58,59,60,61,62,63,88],ext:[88,89],extend:[57,69,71,73,74,79,96],extens:[57,59,63],extent:[61,74,78],extern:[86,88],extra:74,extract:[74,96],extractor:62,extrem:88,ey:88,f16:[65,74,101],f1:[58,60,61],f32:65,f:[57,62,64,77,88,94,95],facecolor:63,facilisi:91,fact:77,facto:88,factori:[5,31,32,33,34,97],fail:[74,101],fake:64,fake_quantize_per_:64,fake_quantize_per_channel_affin:[64,79],fake_quantize_per_tensor_affin:[64,79],fall:83,fallback:[65,69,71,73,101],fals:[1,2,3,4,5,48,49,50,53,57,60,61,63,64,74,79,80,83,84,86,87,88,89,95,97,100],fame:91,famili:[58,60,62,63,64],familiar:99,familyhandyman:[58,60,61],fan:[57,58,60,61,62],far:[88,95],fashion:[74,96],fast:[53,65,84],faster:[64,96],fastjsonschema:61,fasttext:57,faucibu:91,fbed:[58,60,61],fc1:[62,74,94],fc2:[62,74,94],fc3:[62,74,94],fc:[53,60,61,63,64,65,67],feat:[62,74,94],featur:[57,58,59,60,61,62,63,64,65,68,74,95,96,97,100],feb:[58,60,62],fed:[4,5,52],feed:[31,32,33,34,64,74],feedforward:96,feel:[61,78],feli:91,feugiat:[89,91],few:[58,60,62,63,77,83,95],ffmpeg:57,field:[4,5,80,97],fifth:89,fig:[58,60,61,63],figur:[68,89,91],file:[1,2,3,4,5,6,7,8,9,10,11,12,13,17,18,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,50,51,52,53,57,58,59,60,61,62,63,64,65,68,70,71,74,76,77,80,82,83,84,86,87,89,93,95,97,99],file_path:65,filelock:[57,59],filepath:76,filer_publ:[58,60,61],filer_public_thumbnail:[58,60,61],fill:[57,58,59,60,62],filter:[57,63,64],find:[5,59,63,74,77,95],finder:77,fine:[57,64],finetun:64,finibu:91,finish:[63,95],first:[52,57,59,62,63,64,66,67,74,75,88,89,95,97,99],firstli:99,fit:88,five:63,fix:[53,60,63,88,95,101],fixed_s:[49,53],flag:[64,65,68,69,71,75,77,82,98],flaten:53,flatten:[49,51,62,74,79,94],flatten_convert:74,flesh:99,flexibl:[58,60,62,63],float16:[57,58,60,62,63,65,83],float32:[52,53,57,58,59,60,61,64,65,83,84,95],float64:84,float_int:79,floor:79,floor_divid:79,floordiv:79,flow:[62,63,64,73,88,94,95,96],flox:88,fluent:59,flush:88,fly:94,fmax:57,fmin:57,focal:57,fold:89,folder:[76,95],follow:[37,57,58,59,60,61,62,63,64,65,68,70,74,76,77,84,86,88,89,93,94,95,96,97,98,99],fonttool:57,foo:[88,89,95],foo_kwarg:95,foo_nod:95,footprint:[58,60,62,63],forc:[65,84,86,95],force_fp32_output:95,forced_fallback_op:68,form:[57,59,66,83,88,99],format:[37,49,52,53,57,58,59,60,61,62,63,64,65,75,79,83,84,88,89,96,99],forth:89,forum:77,forward:[31,32,33,34,36,37,62,64,68,70,73,74,83,84,94,97,100],found:[46,47,48,49,57,58,60,61,62,63,74,77,88,97,98],four:[88,89],fp16:[1,52,53,59,61,62,63,64,65,74,75,78,80,95,101],fp32:[1,52,53,59,61,62,63,64,65,78,84,95,96,97,99],frac:88,framework:[58,60,62,63],franc:59,freed:73,freeli:61,freeze_modul:67,fri:58,friend:49,fringilla:91,frog:64,from:[1,2,3,4,5,31,32,33,34,48,50,52,53,57,58,59,60,62,63,64,65,66,67,68,69,70,71,73,74,78,80,84,86,87,88,89,94,95,96,97,99],from_pretrain:[57,59],from_tensor:95,frontend:[75,78],frozen:64,frozendict:57,frozenlist:57,fssl:77,fsspec:57,fstream:[21,48],full:[49,53,64,65,73,74,81,97,98,99,101],fulli:[35,65,67,74,84,97,101],further:95,fusc:91,fuse:[58,60,62,63],fuse_addmm_branch:67,fuse_flatten_linear:67,fuse_linear:67,fusion:[73,95],futur:[57,58,59,60,62,64,84,95],futurewarn:57,fx2trt:80,fx2trt_exampl:95,fx:[75,78,83],g2p:57,g:[31,32,33,34,57,59,65,67,77,80,83,88,95,97],g_:88,gain:63,game:59,gamma:79,gatewai:87,gaurd:47,gcc:[71,74],gdown:57,ge:79,gear:97,geforc:[58,60,62],gener:[4,5,31,34,57,58,59,60,61,62,63,64,65,67,70,71,73,74,76,77,80,86,88,89,92,94,95,97],genutil:[57,60,61,62,63],geometr:59,get:[1,2,3,4,5,25,38,48,50,63,64,67,68,73,74,77,81,83,95,96,97,99],get_batch:82,get_batch_impl:48,get_batch_s:82,get_build_info:[22,42,49,54,55,83],get_cache_mode_batch:82,get_coco_object_dictionari:63,get_is_colored_output_on:[19,43,46,54,55,81],get_logging_prefix:[19,43,46,54,55,81],get_model_size_mb:57,get_output:95,get_reportable_log_level:[19,43,46,54,55,81],getattr:[57,67,70,74,94],getbatch:[4,5,48],getbatchs:[4,5,48],getdimens:[73,74],getoutput:[73,74],gi:[57,58,60,61,62],git:92,gitdb:57,github:[57,58,59,60,62,63,72,74,77,86,97,98,99],github_url:86,gitlab:86,gitlab_url:86,gitpython:57,give:[62,86,88,95],given:[52,53,59,63,65,67,74,75,80,82,83,84,94,95,100],global:[28,64,65,74],gnu:77,go:[48,58,60,61,62,63,64,67,68,74,78,94,95,96,99],goal:73,goe:[64,88,95],good:[48,73,88,95],goodger:89,googl:[57,59,86],got:[74,88],govern:[57,58,59,60,61,62,63],gpu:[2,36,39,41,49,50,57,58,59,60,61,62,63,64,65,74,83,84,95,97,99,100,101],gpu_id:[39,49,50,65,83,97,100,101],granular:62,graph:[17,35,36,41,49,57,58,60,61,62,63,64,65,66,68,69,71,73,74,78,80,81,84,94,95,96],graph_input:[49,53],graph_modul:80,graphic:61,graphinput:[22,42,49,53,54],graphinputsstruct:54,graphmodul:[75,80],graphnam:[57,59],gravida:91,great:[58,60,62,63,74,88],greater:81,green_mamba:[60,61],group:[64,79,88,89],grpc:99,grpcio:57,gru_cel:79,gt:[57,58,59,60,61,62,63,79],gtc:78,guangzhou:89,guard:67,guard_elimin:67,guess:59,gui:88,guid:[78,87],gulf:[58,60,61,99],gz:[88,89,97],h5py:57,h:[1,2,3,4,5,6,7,8,9,10,11,12,13,16,17,18,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,50,51,52,53,54,56,58,60,63,65,67,74,97],ha:[53,57,58,59,60,61,62,63,64,66,67,68,69,71,73,74,76,80,88,89,94,95,96,97],habit:91,habitass:91,hac:91,hack:48,hakaimagazin:[58,60,61,99],half:[59,61,62,63,64,65,74,75,83,88,97,99,100,101],hand:99,handl:[63,67,70,95],happen:[62,64,94,95],hardtanh:[73,79],hardtanh_:79,hardwar:[58,60,62,63,101],has_batch_dim:80,hasattr:57,hash:77,have:[31,34,37,48,57,58,59,60,61,62,63,65,66,67,73,74,77,78,80,83,84,88,94,95,96,97,99],haven:74,head:63,header:[58,60,61,74,86,88,89,99],heart:89,heaven:88,heck:88,heh:89,hehe:89,height:88,help:[29,57,58,59,60,62,64,65,66,73,74,95,96,98],helper:[57,62,63,64,73],henc:59,hendrerit:91,here:[48,57,58,59,60,61,62,63,66,68,70,74,77,86,88,89,94,95,97,98,99],hermet:77,hexagram:88,hfile:[23,54],hi:[79,88,89],hidden:[47,59,86],hierarchi:64,high:[58,60,63,67,68,86],higher:[59,67,86,88,94],highfreq:57,highli:[61,96,99],highlight:88,hinton:97,hist_percentil:64,histogram:64,historgram:64,hit:57,hold:[50,51,52,66,73,97],holder:[70,90],holi:88,home:77,hood:71,hope:89,hors:64,host:[53,60,61,62,63,64,65,77,84,99],how:[4,5,58,59,60,61,63,64,77,88,90,92,94,96,98,99,100],howev:[31,34,58,60,62,63,77,86,87,99],html:[64,72,77,88,94,97],html_theme:93,html_theme_opt:86,html_theme_path:93,htmlhelp:57,http:[57,58,59,60,61,62,63,64,72,74,77,86,88,94,96,97,98,99],http_archiv:77,httpclient:99,hub:[57,59,60,63,99],huge:59,huggingfac:[57,59,96],human:88,humankind:89,huski:[58,60,61],hx:79,hybrid:84,hydra:57,hyperlink:88,hyphen:88,i8:65,i:[57,58,59,60,61,62,63,64,65,67,73,74,79,88,89,94,97],iaculi:91,icon:[86,88],id:[39,49,57,58,60,61,62,63,65,83,86,87,91,101],idea:[67,88],ident:[59,65],idna:[57,59],idx:[63,79],ifndef:[48,49],ifstream:48,ignor:83,iii:89,iint8calibr:[4,5,31,32,33,34,48,49,53,84,97],iint8entropycalibrator2:[4,5,31,32,33,34,48,97],iint8minmaxcalibr:[31,32,33,34,97],ilay:73,illustr:[64,95,96],imag:[58,60,61,63,64,97,99],image_classif:63,image_idx:63,imageio:63,imagenet:[58,60,61,64,96],imagenet_cla:[58,60,61],imagenet_class_index:[58,60,61],imagenett:96,images:57,images_:97,img0:[58,60,61],img1:[58,60,61,99],img2:[58,60,61],img3:[58,60,61],img:[58,60,61,99],img_path:[58,60,61,99],impact:[58,59,60,62,63],imperdiet:91,implement:[4,5,58,59,60,61,62,63,67,68,70,74,87,95,97,98],impli:[57,58,59,60,61,62,63],implic:67,implicit:[79,80,88,95],implicitli:83,implictli:83,importlib:[57,60,61,62,63],improv:[64,89],imshow:[58,60,61,63],in_featur:[60,61,62],in_shap:74,in_tensor:94,incas:48,includ:[14,16,17,38,40,46,47,48,49,56,58,60,62,63,65,68,69,70,71,74,77,80,86,88,94,95,97],includedirectori:[23,54],includehidden:86,incompat:77,incorpor:89,incorrect:64,ind:[58,60,61],inde:[58,60,62,63],indent:88,independ:63,index:[37,57,58,59,60,61,62,63,64,72,78,79,84,86,92,97],indic:[57,59,79,86,88],indigo_bunt:58,indirect:88,inetworkdefinit:66,infer:[57,58,59,60,62,64,67,74,83,84,95,96,97],inference_output:99,inferenceservercli:99,inferinput:99,inferrequestedoutput:99,inflect:57,info:[17,36,41,49,65,73,74,81,83],inform:[27,37,38,40,52,57,61,63,64,65,66,68,70,74,77,78,80,81,83,88,94,95,97,100],infrastructur:[97,99],ingest:71,inherit:[54,55,95,97],inheritenviron:76,iniconfig:57,init_weight:64,initi:[57,59,64,88],injuri:88,inlin:[1,2,3,4,5,31,32,33,34,48,50,52,57,60,61,62,63,67,74,89,92],inner:[53,89,96],innings:59,inplac:[60,61],input0:74,input1:74,input2:74,input:[4,5,22,31,34,37,42,48,49,51,53,54,55,57,58,59,60,61,62,63,64,65,66,67,68,70,73,74,75,79,80,81,83,84,89,94,95,96,97,99,100,101],input_0:[70,74],input__0:99,input_batch:[58,60,61],input_data:[58,60,61,62,63,64,75,94],input_file_path:[65,101],input_id:59,input_is_dynam:49,input_nam:[80,95],input_s:[68,74],input_scal:79,input_shap:[57,58,60,61,62,63,64,97,101],input_signatur:[49,51,53,84],input_spec:[65,80,95],input_tensor1:59,input_tensor2:59,input_tensor3:59,input_tensor:[57,58,60,61],input_tensor_spec:[80,95],input_v:95,inputclass:[0,54],inputrang:[68,74],inputtensorspec:[80,95],inreleas:57,insert:[64,74,97],inserting_befor:95,insid:[88,99],inspect:[58,60,62,63,73,74,94],instal:[57,58,59,60,61,62,63,64,74,78,92,98,99],installroot:76,instanc:[59,62,67,74,82,94,96],instance_norm:79,instanti:[57,69,70,71,73,74],instatin:[1,2,3,50],instead:[53,57,58,59,60,61,62,63,64,65,66,67,74,77,98],instnanti:70,instruct:[68,69,71,74,77,95,99],insur:77,int32:[59,61,83,84,96],int64:84,int64_t:[49,50,52,53,97,101],int8:[1,48,52,53,61,65,78,83,84,97,101],int8_t:49,int8cachecalibr:[21,31,34,44,48,54,55],int8cachecalibratortempl:[0,54],int8calibr:[4,21,32,33,44,48,54,55],int8calibratornamespac:[0,54],int_float:79,integ:[64,83,91],integr:[58,59,60,61,62,63,78],intend:[57,77],intent:[67,88],interact:88,intercompat:63,interdum:91,interest:[67,88],interfac:[1,2,3,50,70,71,73,97],interfer:88,intermedi:[17,53,58,60,62,63,65,81,84,94],intern:[2,17,50,58,60,62,63,64,73,74,81,88],internal_error:81,internalerror:81,interpol:[58,88],interpolationmod:58,interpret:[58,60,62,63,70,88,95],intro_to_torchscript_tutori:94,introduc:[58,60,62,63,64,95,96],introduct:59,invalid:64,invok:[74,94,95],involv:[57,58,59,60,62],io:[48,57,58,59,60,61,62,63,99],iostream:[21,22,48,49,74],ipad:57,ipso:88,ipsum:[89,91],ipykernel:[57,60,61,62,63],ipython:[57,60,61,62,63],ipywidget:[57,60,61,62,63,64],ir:[58,60,62,63,69,71,73,75,83,94],is_avail:[58,60,61],is_floating_point:79,is_tar:57,is_train:97,iscustomclass:73,isinst:[64,95],isn:[86,88],isort:57,issu:[4,5,57,58,59,60,62,74,77],istensor:73,istream_iter:48,it_:48,ital:88,item:[57,58,59,60,61,64,87,89],itensor:[66,73,74,95],iter:[21,48,53,57,58,59,60,61,62,63,64,65,66,82,84],its:[31,34,58,60,62,63,66,70,73,77,88],itself:[1,2,3,50,65,67,77,99,100],iv:89,ivalu:[49,51,53,66,70,73,74],ja:57,jan:89,jarowinkl:57,jedi:[57,60,61,62,63],jetpack:77,jetpack_5:77,jetpack_x:77,jetson:[58,60,62,63,83,96],jieba:57,jinja2:[57,60,61,62,63],jit:[35,36,37,41,49,51,53,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,83,84,94,99,100],jit_model:64,jmespath:57,joblib:[57,59],join:64,jp_workspac:77,jpeg:[58,60,61],jpg:[58,60,61,63,99],jpg__1920x1080_q85_subject_loc:[58,60,61],jsmath:57,json:[58,60,61,76],json_fil:[58,60,61],jsonschema:[57,60,61,62,63],jump:99,jupyt:[57,60,61,62,63],jupyterlab:[57,60,61,62,63],jupyterlab_widget:[60,62,63],just:[48,49,58,59,60,61,63,67,74,75,78,81,88,90,94,95,96,98,100],justo:[89,91],k:[59,79,97],kaldi:57,kaldiio:57,kb:[58,60,61,62,63],kbool:[1,49],kchannelslast:[3,49],kchar:[1,49],kclip:73,kcontigu:[3,49,52],kcpu:[2,50],kcuda:[2,50,68,74],kdebug:[17,46,48],kdla:[2,49,50,101],kdla_standalon:[18,49],keepdim:79,kei:[59,64,88,94,99],kept:[64,89],kernel:[52,53,58,60,62,63,65,73,83,84,95],kernel_s:[60,61,62,79],kerror:[17,46],keyboard:88,keyword:[57,83,84],kf16:[97,101],kfloat:[1,49,53],kgpu:[2,49,50],kgraph:[17,46,67],khalf:[1,49,74],ki8:97,kind:[57,58,59,60,61,62,63,66,83,95],kinfo:[17,46,48],kint:[1,49],kinternal_error:[17,46],kiwisolv:57,know:[46,73,86,88],knowledg:88,kriz:97,krizhevski:97,ksafeti:[18,49],kstandard:[18,49,53],ktest:97,ktrain:97,kunknown:[1,3,49],kwarg:[64,82,83,95,96],kwarn:[17,46],l:79,label:[58,60,61,63,64,88,96,97,99],lacinia:91,lack:[68,69,71,95],lacu:91,laid:74,lambda:[60,61,63,73,74,88,99],lang:87,languag:[57,58,60,61,62,63,87,88,89,94,99],laoreet:91,larg:[58,59,60,62,63,64,69,71,74,86,88,96,97],larger:[86,96],largest:79,last:[3,57,63,67,83,95],lastli:99,latenc:[57,59],later:[31,34,59,74],latest:[58,59,60,77,86],latexcodec:57,launch:99,law:[57,58,59,60,61,62,63],layer1:[60,61],layer2:[60,61],layer3:[60,61],layer4:[60,61],layer:[50,53,58,60,62,63,64,65,66,67,73,74,84,95,96,97,99,101],layer_norm:79,layout:[3,52,79,83,84],ld_library_path:77,ld_preload:98,ldd:77,le:79,lead:88,leader:88,leaky_relu:79,leaky_relu_:79,learn:[61,64,74,78,97,99,101],leas:89,least:[58,59,60,88,89],leav:[62,64,67],lectu:[89,91],left:[63,86,88],legacy_calibr:82,legend:88,len:[57,59,63,64,79],lenet:[74,94],lenet_script:[74,94],lenetclassifi:[62,94],lenetfeatextractor:[62,94],length:[4,5,48,58,59,60,61,79,89,95],leo:91,let:[50,57,58,60,61,62,63,65,67,73,83,84,86,88,95,96,99],letter:[57,89,96],level:[19,25,27,28,43,46,48,54,55,58,59,60,62,63,64,67,68,71,81,84,92,94,95,99],levelnamespac:[0,54],leverag:[58,60,61,62,63,95,97],lib:[57,58,59,60,61,62,63,64,67,74,77],libero:[89,91],librari:[38,46,47,48,49,58,60,61,62,63,64,65,69,70,71,73,74],librosa:57,libsndfile1:57,libtorch:[5,40,58,60,62,63,73,74,76,77,97],libtorch_pre_cxx11_abi:77,libtorchtrt:[65,74,77],libtorchtrt_plugin:98,libtorchtrt_runtim:98,licens:[46,47,48,49,57,58,59,60,61,62,63,74],light:88,lightn:57,lightningdeprecationwarn:57,lightningmodul:57,ligula:91,like:[58,60,62,63,65,66,67,70,73,74,75,77,87,88,94,95,97,98,99],limit:[57,58,59,60,61,62,63,67,81,87,97],line:[65,74,89],linear:[3,60,61,62,64,79,83,94],linewidth:63,link:[65,66,74,78,86,87,92,98],linux:[71,74,77],list:[19,20,21,22,35,53,56,57,59,63,64,66,68,70,73,74,75,77,79,80,83,84,92,95,99],listconstruct:[66,70,74],listunpack:[70,74],liter:89,literal:89,literal_block:88,live:[73,88],ll:[59,95],llvmlite:57,lo:79,load:[57,58,60,61,63,64,65,68,70,74,75,82,84,95,96,97,98,99,100],load_calib_amax:64,load_librari:98,load_state_dict:64,loader:[57,58,60,62,63],loading_data_recip:97,loborti:[89,91],local:[63,64,65,67,74,86],localhost:99,locat:[63,77,97],lock:87,log:[16,17,20,21,23,42,48,54,55,56,59,64,67,73,78,79,80,83,95],log_debug:73,logger:81,logger_level:80,loggingenum:[0,54],logic:95,login:99,logist:95,loglevel:81,logo_onli:86,lone:89,longer:[58,60,62,63,86,98],look:[57,58,59,60,61,62,63,64,66,67,94,97,99,100],loop:95,loop_unrol:67,lorem:[89,91],lorikeet:[60,61],lose:86,loss:[64,96,97],lot:73,low:95,lower:[17,61,80,81,83,89,95,96],lower_exampl:95,lower_graph:67,lower_precis:[80,95],lower_tupl:67,loweralltupl:67,lowerprecis:[80,95],lowersimpletupl:67,lowfreq:57,lr:64,lstm_cell:79,lt:[57,59,60,61,62,63,64,79],ltorchtrt:98,luctu:91,lvl:[27,28,46],m:[57,58,60,61,62,89],machin:[58,60,62,63,70,97,99],macro:[6,7,8,9,10,11,12,13,16,19,21,22,23,46,48,49,54,56],mad:88,made:[63,67,69,71,88],maecena:91,magna:91,mai:[57,58,59,60,61,62,63,66,70,71,74,75,84,88,89,94,95,97,99],main:[63,67,68,69,70,71,73,74,86,88,90,95],mainli:95,maintain:[59,68,70,73],major:[58,60,62,63,71,95],make:[58,59,60,61,62,63,66,74,75,77,88,90,95,96,97,99,101],make_data_load:[5,97],make_int8_cache_calibr:[21,44,48,54,55,97],make_int8_calibr:[21,31,34,44,48,54,55,97],malesuada:91,man:[88,89],manag:[53,57,58,59,60,61,62,63,65,66,69,71,73,74,76,81,83,84],mangag:67,mani:[86,88,89,95],manifest_filepath:57,mantissa:[53,84],manual:[87,88,95],manual_se:57,manylinux2014_x86_64:63,manylinux_2_17_x86_64:63,map:[2,50,66,67,69,71,73,74,95,96,97,99,100],mapper:95,mark:[58,67,86],markdown:57,marknodesforfallback:67,markup:[89,92],markup_process:88,markupsaf:[57,60,61,62,63],marshmallow:57,mask:[57,79],masked_fil:79,masked_sent:59,massa:91,master:[72,77,88,97,98],mat2:79,match:[67,77],math:92,mathemat:59,matmul:[67,74,79],matplotlib:[57,58,60,61,62,63],matric:59,matrix:72,matter:95,matti:89,matur:71,mauri:[89,91],max:[52,60,61,62,63,64,65,73,79,83,86],max_batch_s:[80,95,99],max_bound:64,max_c:65,max_dur:57,max_h:65,max_input_shap:80,max_length:59,max_n:65,max_pool1d:79,max_pool2d:[62,74,79,94],max_pool3d:79,max_shap:[49,52,61,62,75,83,84,95,96],max_val:[73,79],max_valu:64,max_w:65,max_workspace_s:[80,95],maxcalibr:64,maxim:61,maximu:91,maximum:[52,53,58,59,60,61,64,65,80,84,95,99],maxpool2d:[60,61],maxpool:[60,61],mayb:88,mb:[58,60,61,62,63,65],md:72,me:[88,89],mean:[57,58,59,60,61,62,63,64,68,73,78,79,80,95,99],mecab:57,mechan:[57,59,73,95,96],media:[58,60,61],median:[57,59],medium:88,meet:83,mel:57,member:[50,51,52,53,83],memeori:3,memori:[21,22,48,49,57,58,60,61,62,63,67,73,74,75,83,84],memory_format:[79,83],memoryformat:[3,49],men:88,mental:88,menu:[65,86,88],menuselect:88,messag:[17,27,28,65,81],meta:[92,95],metadata:[53,57,65,70,73,84,86],meth:88,method:[35,36,37,41,52,57,58,60,61,62,63,64,65,67,73,74,77,83,84,88,94,96,100],method_nam:[35,41,49,65,74,83,84],metric:57,metu:91,mi:91,microsoft:76,middl:88,mig:[57,58,60,61,62],might:[59,64,67,77,86],min:[52,65,73,79,83],min_block_s:[49,53,68,84],min_bound:64,min_c:65,min_h:65,min_input_shap:80,min_n:65,min_shap:[49,52,61,62,75,83,84,95,96],min_val:[73,79],min_valu:64,min_w:65,mind:88,mine:88,mini:[58,60,61],minim:97,minimum:[52,53,61,65,68,81,84],minmax:[31,32,33,34,97],minmax_calibr:82,misbuild:86,miss:[74,88],mistun:[57,60,61,62,63],mix:63,mixin:57,mkdir:[58,60,61,77],mlm_model_t:59,mm:[57,99],mmb:88,mobilenet_v2:100,mobilenetv2:96,mod:[57,65,68,74,92,95,97],mode:[64,75,95,97],mode_:97,model:[57,65,68,70,74,75,78,80,81,94,97,100],model_math:63,model_nam:[57,64,99],model_repositori:99,model_s:57,model_state_dict:64,model_torchtrt:81,model_trt:81,modelpt:57,modern:63,modifi:[89,95],modified_state_dict:64,modul:[35,36,37,41,49,53,57,58,59,60,61,62,63,64,65,68,69,70,71,73,75,76,77,78,80,83,84,87,88,89,95,96,97,100,101],modular:74,module_fallback:67,module_nam:65,molesti:91,momentum:[60,61,64,79],mon:61,month:57,monthli:[57,61],morbi:91,more:[58,60,61,62,63,64,66,74,77,78,83,86,89,94,95,97,98,99,100],most:[59,71,77,80,95,98,99],most_likely_token_id:59,most_likely_token_ids_trt:59,mother:88,motion:88,mous:88,move:[32,33,48,58,60,61,62,63,67,70,74,84,97],mpmath:57,ms:[58,60,61,62,63,64],mse:64,msg:[28,46,57,59,81],msvc_x64_x64:76,mu:88,much:[73,86,88,97],mul:[64,79],mul_:79,multi:65,multidict:57,multipl:[70,88,89,97,99],multipli:[53,84],must:[37,52,53,59,63,65,67,68,73,74,77,80,83,84,88,89,95,98],mutil:89,my:88,my_pytorch_model:95,myclass:88,mymodel:[68,75],mypi:63,myself:89,n01537544:58,n01739381:58,n01749939:[60,61],n01820546:[60,61],n02109961:58,n02110185:[60,61],n02481823:[58,60,61],n:[57,58,59,60,62,65,73,74,97],n_fft:57,n_mel:57,nabla:88,nam:[89,91],name:[4,5,35,37,41,48,57,58,60,61,62,63,64,68,70,73,74,76,77,80,82,84,88,89,94,95,99,100],named_modul:64,namedtupl:95,namespac:[0,46,47,48,49,56,67,78,97],narrow:[64,79],nativ:[64,71,72,74],native_funct:72,natur:[59,88],nav:[86,92],navig:86,navigation_depth:86,nbbind:[4,5,48],nbclient:[57,60,61,62,63],nbconvert:[57,60,61,62,63],nbformat:[57,60,61,62,63],nchw:[3,83,84],ncol:[58,60,61],ne:[67,79],nec:91,necessari:[46,98],need:[1,2,3,27,31,34,47,50,58,60,61,63,66,67,73,74,75,77,80,88,95,96,97,98,99],neg:79,negative_slop:79,nemo:57,nemo_1:57,nemo_asr:57,nemo_log:57,nemo_toolkit:57,nequ:[89,91],nest:[49,53,54,55,57,60,61,62,63,88,89],net:[58,60,61,73,74,88,89],netu:91,network:[31,32,33,34,58,60,62,63,64,73,74,95,96,97,99,101],networkx:63,neural:[58,60,63,101],new_lay:73,new_level:59,new_local_repositori:77,new_lr:64,new_siz:97,newer:[58,60,62,63,77],newest:57,newli:57,next:[4,5,63,64,66,70,86,88,89,97,99],nfilt:57,ngc:[57,58,59,60,61,62,63,77,99],nhwc:[3,65,83],nibh:[89,91],nice:77,nickel:88,night:89,nightli:95,nine:59,ninja:[76,77],nisi:91,nisl:91,nl:[58,60,61],nlp:[31,32,33,34,59,97],nltk:57,nn:[57,58,60,61,62,64,67,72,74,75,80,83,84,94,95],no_grad:[57,58,59,60,61,62,63,64],node:[64,67,68,69,71,73,74,95,96],node_info:[73,74],noexcept:[4,5,48,97],non:[89,91],non_block:[64,79],none:[58,60,62,63,64,73,79,80,83,84,86,88,95],nonetheless:88,nonexist:88,noninteract:57,norm:79,normal:[1,2,3,50,57,58,59,60,61,62,63,64,74,88,94,95,97,99,101],normalized_shap:79,noskipw:48,notatemoduleforfallback:67,note:[2,50,52,59,73,74,76,77,83,86,88,95,101],notebook:[57,58,59,60,61,62,63,64,71,78],notic:[62,63],now:[57,58,59,60,62,63,67,71,73,74,77,88,95,100],np:[57,58,59,60,61,62,63,64,99],nrow:[58,60,61],nrun:[58,60,61,62,63,64],nu:88,nulla:91,nullptr:[48,49,53],num:[57,59,65],num_avg_timing_it:[49,53,84,100],num_batch:64,num_bit:64,num_calib_batch:64,num_class:64,num_epoch:64,num_it:65,num_loop:[57,59],num_op:65,num_work:[64,97],numba:57,number:[4,5,53,57,58,59,60,64,65,67,68,73,74,75,83,84,86,95,96],numel:79,numer:[57,65,89,95],numpi:[57,58,59,60,61,62,63,64,99],nunc:91,nvcr:[57,99],nvidia:[36,41,46,47,48,49,57,58,59,60,61,62,63,64,65,72,74,77,83,84,95,99,101],nvidia_convnets_processing_util:63,nvidia_deeplearningexamples_torchhub:63,nvidia_efficientnet:63,nvidia_efficientnet_b0:63,nvidia_efficientnet_b4:63,nvidia_efficientnet_widese_b0:63,nvidia_efficientnet_widese_b4:63,nvidia_resnet50:63,nvidia_resnext101_32x4d:63,nvidia_resnext:63,nvidia_se_resnext101_32x4d:63,nvidia_ssd:63,nvidia_ssd_processing_util:63,nvidia_ssdpyt_amp_200703:63,nvidia_tacotron2:63,nvidia_tts_util:63,nvidia_waveglow:63,nvinfer1:[4,5,31,32,33,34,48,49,53,73,97],nvinfer:[21,48],nwarmup:[58,60,61,62,63,64],o:[58,60,61,77,88,99],oauthlib:57,obj:79,object:[1,2,3,4,5,50,52,53,65,70,73,81,82,84,97,100],observ:[57,58,59,60,64],obsolet:63,obtain:[57,58,59,60,61,62,63,64,96],obvious:94,octet:[58,60,61],odio:[89,91],off:[57,58,60,61,62,63,68,70],offici:77,ofstream:[48,74],often:88,oh:89,ok:[58,60,61,74,88],okai:53,older:71,omegaconf:57,onc:[46,47,48,49,66,67,70,95,97,98,99],one:[51,59,63,64,67,73,74,75,81,83,88,94,95,99],ones:[46,58,60,62,63,68,69,71,74,77,88],onli:[2,4,5,17,31,34,48,50,52,62,63,65,67,68,71,73,77,80,81,83,88,95,97,98,101],onnx:[57,67],onto:[65,70],onward:[58,60,61],op:[58,59,60,61,63,64,65,66,67,69,71,73,74,83,98],op_and_target:95,op_nam:65,op_precis:[58,60,61,63],open:[58,60,61,62,63,76,96,99],opencc:57,oper:[1,2,3,4,5,35,48,49,50,53,58,60,61,62,63,64,65,66,67,68,69,70,71,73,75,78,83,84,95,97,101],oppos:84,opset:[69,71],opt:[52,57,58,59,60,61,62,63,64,77,83],opt_c:65,opt_h:65,opt_n:65,opt_shap:[49,52,61,62,75,83,84,96],opt_state_dict:64,opt_w:65,optim:[52,57,58,59,60,61,62,63,64,65,67,74,75,78,80,94,95,96],optimin:52,optimiz:[58,60,62,63,94],optimize_target_shap:95,optimized_execut:57,optimized_input_shap:80,optimz:99,option:[48,52,65,68,69,71,77,83,88,92,95,97,98,101],orchestra:88,orci:91,order:[53,63,68,73,74,75,77,80,84,95],org:[57,58,59,60,61,62,63,64,72,74,77,86,88,94,97],organ:89,origin:[57,59,63,64,80,95],original_nam:62,ornar:[89,91],os:[49,64],ostream:49,other:[1,2,3,49,50,58,60,61,62,63,64,65,66,67,70,74,75,77,78,79,87,88,95,98],otherwis:[58,59,60,77,80,95,98],our:[58,59,60,61,62,63,68,71,74,94,99],out:[35,48,57,58,59,60,61,62,64,66,67,68,69,71,73,74,76,77,81,84,88,99],out_dir:64,out_featur:[60,61,62],out_shap:74,out_tensor:[73,74],output0:67,output:[26,29,37,53,58,59,60,61,62,63,64,65,66,67,68,70,73,74,77,81,84,86,88,89,95,96,99],output__0:99,output_file_path:[65,101],output_nam:[80,95],output_pad:79,output_s:[60,61,79],output_trt:59,outself:74,outsid:88,over:[58,60,61,62,69,71,88,95,99],overal:96,overkil:62,overrid:[4,5,31,32,33,34,48,83,95,97],overview:[59,72,78],own:[57,58,59,60,62,73,74,77,88,99],p0:61,p2:57,p8:[57,58,60,62],p:[58,60,61,65,74,79,99,101],packag:[57,58,59,60,61,62,63,64,65,67,74],pad:[57,59,60,61,64,79],padding_idx:79,padding_mod:64,page:[61,78,90,92,99],pair:[57,67,73,77,88,96,97],panda:57,pandocfilt:[57,60,61,62,63],pane:88,pangu:57,paper:[58,60,63],paragraph:[89,92],parallel:59,param:[82,87],param_group:64,paramet:[1,2,3,4,5,27,28,29,31,32,33,34,35,36,37,39,41,50,52,53,64,66,67,73,74,80,81,83,84,92,94,95],parameter:57,parent:[15,16,19,20,21,22],pari:59,pars:[64,74,88],parser:88,parso:[57,60,61,62,63],part:[57,65,68,71,86,87,88,95],parti:61,partial:[58,60,62,63,65,88],particular:62,particularli:59,partit:67,partitioninfo:68,pass:[57,59,64,66,68,69,70,71,73,74,77,81,82,94,95,97],past:88,patch:63,path:[5,14,15,16,31,32,33,34,62,63,64,65,74,76,77,82,83,94,95,97,99],path_to_torchtrt_root:77,pathspec:[57,63],pathtool:57,pathwai:94,pattern:[73,74,83],payment:87,pbtxt:99,peephole_optimz:67,pellentesqu:91,peopl:88,pep:88,per:[61,63,64],percentil:[57,59,64],perf:[57,58,60,61,62],perfom:64,perforamnc:95,perform:[31,32,33,34,58,59,60,61,62,63,96,97,99],permiss:[57,58,59,60,61,62,63],permit:88,permut:[79,95],persist:[57,58,60,61,62,88],pesq:57,pexpect:[57,60,61,62,63],pharetra:91,phase:[17,64,73,74],phasellu:91,phi:88,philosoph:88,phrase:88,pi:88,pick:[62,94],pick_best:63,pickler:70,pickleshar:[57,60,61,62,63],pid:[57,58,60,61,62],piec:[57,96],pil:[58,60,61,99],pillow:[57,58,63],pin:87,pin_memori:79,pip3:77,pip:[57,58,59,60,61,62,63,64,77,99],pipelin:[65,101],piplein:74,pipreq:57,pixel_shuffl:79,pl:87,place:[52,67,77,88,89,90,95,97],placerat:91,plan:[65,71],plane:64,platea:91,platform:[49,58,60,62,63,65,71,76,77,99,101],platformdir:63,pleas:[57,58,64,74,77,88,95,99],plot:63,plot_result:63,plt:[58,60,61,63],pluggi:57,plugin:[57,95],po:59,point:[74,83,86,87,88,99],pointer:[4,5,97],polish:87,pooch:57,pool:[60,61,62,63,64,101],pop:70,popul:80,popular:[59,77,87,96],portabl:[58,60,62,63,70,84],portalock:57,portion:88,porttitor:[89,91],pos_mask:59,posit:[57,59,65,83,86,95],possibl:[58,59,60,62,63,77,88,96,99],post1:57,post:[31,32,33,34,53,65,74,78],posuer:[89,91],potenti:[53,91],pow:79,power:[58,60,62,63,74,88,95,96],pr:74,practic:[58,60,62,63],praesent:91,pragma:[46,47,48,49,97],pre:[37,57,58,59,60,64,67,82,84,97,98],pre_cxx11_abi:77,preced:88,precis:[53,59,61,62,63,65,74,75,78,83,95,97,101],precisions_str:57,pred:[58,60,61,64],pred_label:63,pred_loc:63,predict:[58,59,60,61,63],prefer:74,prefix:[29,30,46,81,88],preinstal:77,prelu:79,prepar:[57,58,59,60,62,63,95,99],prepare_input:63,prepare_tensor:63,preprint:97,preproc:82,preprocess:[57,58,60,61,64,97,99],prerequisit:76,present:76,preserv:[64,88,94,97],prespect:94,press:[76,88],pretium:91,pretrain:[57,58,59,60,61,63,96,99,100],pretti:74,prev_next_buttons_loc:86,prevent:[53,65],previou:[59,86],previous:[31,34,37,74],prim:[66,67,70,74,79,94],prim_devic:79,primal:88,primari:59,primarili:[71,74],print:[17,35,48,57,58,59,60,61,62,63,64,74,81,83,84,88,99,100],print_funct:57,printout:59,printstat:[57,59],priorit:77,privat:[4,5,48,49,97],prob:[58,60,61],probabl:[58,59,60,61,63],probablil:[58,60,61],problem:[59,88],problemat:88,proce:[58,60,61,99],proceed:99,process:[57,58,59,60,61,62,63,64,65,68,87,88,94,96,97,99,100],prod:79,produc:[52,66,70,73,74,88,96],product:[53,58,60,62,63],profil:[52,62,80],profiling_verbos:95,program:[19,20,21,22,31,34,56,61,62,63,65,69,70,71,78,94],programm:88,progress:89,proin:91,project:[77,87,92],projectdir:76,prometheu:[57,60,61,62,63],promis:[57,95],prompt:[57,60,61,62,63],prop:80,properli:77,properti:[57,59,86],propog:67,prose:88,protobuf:57,provid:[4,5,53,57,58,59,60,61,65,68,70,73,74,75,77,80,83,84,88,95,97,98,99,100],providi:[69,71],provok:88,psutil:[57,61],pt:[59,63,64,65,74,95,99],pth:[60,63,64],ptq:[4,5,16,19,20,23,42,54,55,56,65,78,83,84],ptq_calibr:[4,5,49,53,97],ptqtemplat:[0,54],ptyprocess:[57,60,61,62,63],publish:99,pull:[77,99],purchas:87,pure:[35,57,61,63],purpos:[63,77,95,96,99],puru:91,push:70,push_back:[48,68],put:[88,96],pwd:[76,99],pwr:[57,58,60,61,62],py2:[60,62,63],py3:[57,58,59,60,62,63,99],py:[57,58,63,64,67,71,74,77,86,88,93,94,95,97],pyannot:57,pyasn1:57,pybind11:57,pybtex:57,pycpars:[57,60,61,62,63],pycr:57,pydeprec:57,pydub:57,pygment:[57,60,61,62,63],pyindex:99,pypa:[57,58,59,60,61,62,63],pypars:[57,59,60,61,62,63],pypi:[57,58,59,60,61,62,63,64,77],pypinyin:57,pyplot:[58,60,61,63],pyrsist:[57,60,61,62,63],pysock:57,pystoi:57,pytest:57,python3:[57,58,59,60,61,62,63,64,67,74,77],python:[57,58,59,60,61,62,63,64,65,68,71,74,83,84,88,89,95,96,98,99,100,101],python_api:72,pythonhost:[60,61,62,63,64],pytorch:[52,53,57,58,59,60,61,63,64,65,67,68,69,70,71,73,74,75,77,82,83,84,94,97,98,99],pytorch_libtorch:99,pytorch_lightn:57,pytorch_quant:[63,64],pytorch_sphinx_them:[86,93],pytorch_vision_v0:61,pytz:57,pywavelet:63,pyyaml:[57,59],pyzmq:[57,60,61,62,63],qat:[64,96],qat_model:64,qthelp:57,qualiti:[58,60,63],quant:64,quant_dim:64,quant_input:64,quant_max:79,quant_min:79,quant_modul:64,quant_nn:64,quant_weight:64,quantconv2d:64,quantdescriptor:64,quantiz:[31,32,33,34,63,65,74,78],quantizatiom:53,quantizelay:64,quantlinear:64,quantoz:64,quantpool:64,quartznet:[57,96],question:74,qui:[89,91],quick:64,quickli:[58,60,65,74,97],quisqu:91,quit:[73,74,96],quot:89,r:[63,88],rais:[67,95],raiseexcept:67,ram:[53,65,84],rand:[74,95],randn:[57,58,60,61,62,63,64,68,74,83,84,100],random:57,randomcrop:64,randomhorizontalflip:64,rang:[52,53,57,58,59,60,61,62,63,64,65,83,95,96],rank:86,rapidfuzz:57,rate:64,rather:67,raw:[63,86],re:[57,88,95],read:[4,5,31,32,33,34,48,57,61,86,88,97],read_calibration_cach:82,readcalibrationcach:[4,5,48],reader:88,readi:[57,61],readm:[57,58,59,60,62,63],realiz:70,realli:73,reason:[1,63,94,95],reattribut:89,recalibr:[31,34],receiv:95,recip:97,recipi:63,reciproc:79,recognit:[57,60,64,96,97],recomend:[31,32,33,34],recommend:[31,32,33,34,57,58,59,60,61,62,63,64,74,77,88,95,99],recompil:63,record:[62,64,66,94],rect:63,rectangl:63,recurs:66,recursivescriptmodul:62,redistribut:89,reduc:[58,60,62,63,64,67,69,71,95,96,97],redund:95,ref:88,refer:[52,64,69,71,74,87,92,95,97,99],referenc:[63,77],refit:[49,53,84,100],reflect:49,reflection_pad1d:79,reflection_pad2d:79,regard:[77,88],regardless:89,regex:[57,59],region:95,regist:[37,70,73,84,95],register_acc_op:95,register_acc_op_map:95,register_custom_acc_mapper_fn:95,registernodeconversionpattern:[73,74],registr:95,registri:[66,74],regular:64,reinterpret_cast:48,rel:65,relat:[50,88],relationship:[54,55],releas:[57,59,76,88],reload_model_output:95,reload_trt_mod:95,relu:[60,61,62,68,74,79,94],relu_:79,remain:[58,59,60,62,63,67,97],rememb:95,remov:[57,58,60,62,63,64,86],remove_contigu:67,remove_dropout:67,remove_to:67,render:86,rent:89,repack:70,repeat:[65,79],repeat_interleav:79,replac:[59,63,67,77],replication_pad1d:79,replication_pad2d:79,replication_pad3d:79,report:[25,48],reportable_log_level:81,repositori:[58,60,63,71,86,93,99],repres:[52,53,64,73,81,88,95],represent:[58,59,60,62,63,67,73,94,95,96],request:[57,58,59,60,61,74,83,99],requir:[31,34,53,57,58,59,60,61,62,63,64,65,66,67,74,81,83,84,86,95,97,98,99],require_full_compil:[49,53,58,60,62,63,84],requires_grad:79,resampi:57,research:[58,60,62,63,95],reserv:[46,47,48,49,57,58,59,60,61,62,63],reset:48,reshap:[79,99],residu:60,resiz:[58,60,61,99],resnet50:[60,61,63,99],resnet50_model:[60,61],resnet:[61,63,70,96,99],resnet_trt:70,resolut:96,resolv:[58,60,61,66,67,69,71],resolve_data_config:58,resourc:[57,60,61,62,63,66,97],respons:[31,34,58,60,61,64,70,88],respositori:59,rest:[88,89,95],restor:57,restrict:[53,84],restructuredtext:[88,89],result:[57,58,59,60,61,62,64,66,67,75,81,84,86,94,99],results_per_input:63,ret:67,rethink:58,return_tensor:59,reus:[67,95,97],revert:86,revis:[88,89],revisit:88,rfc:88,rgb:[58,60],rho_:88,rhoncu:91,right:[46,47,48,49,57,58,59,60,61,62,63,67,71,73,88],risu:91,rm:99,rn50_preprocess:[60,61,99],role:88,roll:79,roman:89,room:88,root:[46,47,48,49,57,58,59,60,61,62,63,64,77,86,97],roughli:68,round:[53,64,84],round_:64,rounding_mod:79,row:89,rsa:57,rst:[86,88],rsub:79,rtol:65,ruamel:57,rule:[77,84,95],ruler:88,run:[2,41,50,53,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,74,75,77,78,80,83,84,88,94,95,96,97,98,99,100,101],runetim:61,runner:57,running_loss:64,running_mean:79,running_var:79,runtim:[57,58,60,61,62,63,74,78],runtimeerror:95,rutrum:[89,91],s3:[58,60,61],s3transfer:57,s:[52,53,63,64,68,70,73,74,75,76,77,78,80,83,86,88,89,94,95,96,97,99],sacrebleu:57,sacremos:[57,59],safe:[73,84],safe_dla:83,safe_gpu:83,safeti:[53,65,83],sage:88,sagitti:[89,91],sai:[89,96],said:88,same:[58,60,61,63,70,74,77,86,88,94,95,99,100],sampl:[57,58,60,88,95,97,99],sample_input:95,sample_r:57,sapien:91,satisfi:[57,58,59,60,61,62,63,68,95],save:[31,34,48,57,58,60,61,62,63,64,65,70,74,75,83,84,95,96,98,99],save_checkpoint:64,save_restore_connector:57,save_timing_cach:[80,95],saw:74,scalar:[73,79],scalaropt_dim:79,scalartyp:[1,49,79],scale:[58,64,79,96,97],scale_factor:79,scale_grad_by_freq:79,scales_d:79,scales_h:79,scales_w:79,scatter:79,scelerisqu:91,schedul:[64,83,99],schema:[73,74],scheme:95,scientist:88,scikit:[57,63],scikit_imag:63,scipi:[57,63],scope:67,score:[58,60,61,63],scratch:[31,34],scratch_spac:99,screen:86,script:[35,59,63,64,67,68,74,75,83,84,94,100],script_model:[62,94,100],scriptclass:84,scripted_model:101,scriptmodul:[74,75,83,84],scroll:[86,90],sdk:[57,58,60,62,63,72],se:[57,96],seamlessli:[61,78],search:[59,78,86],second:[58,59,61,67,88,95],secondli:99,section:[61,64,74,86,88,89,90,92,95,97,99],secur:57,sed:[89,91],see:[35,57,58,59,60,61,62,63,67,70,74,77,83,84,88,94,95],seen:[88,89],segment:[57,68,96],segments_tensor:59,select:[18,31,32,33,34,41,53,58,60,62,63,65,70,75,77,79,83,84,87,90,95,97],self:[57,59,62,64,67,70,73,74,79,82,94,96,101],self_1:[70,74],self_int:79,sell:89,seller:87,seller_id:87,sem:91,semant:88,semper:91,send2trash:[57,60,61,62,63],send:99,senectu:91,sens:[74,88],sent:[58,60,61],sentenc:[59,88,96],sentencepiec:57,sentencepiecetoken:57,sentinel:[1,3],sentri:57,separ:[58,60,62,63,68,69,71],seq_relationship:59,sequenc:[57,59,80,88,95,96],sequenti:[60,61],serial:[37,41,65,69,71,74,83,84],seriali:84,serializ:[70,94],serialized_cach:[80,95],serialized_engin:84,serializinghtml:57,seril:70,serv:[65,70,78,95],server:57,servic:88,session:88,session_nam:88,set:[4,5,17,22,27,29,31,34,36,39,41,49,50,52,53,58,60,62,63,64,65,66,67,68,69,70,71,74,75,77,78,80,81,83,84,86,90,93,94,95,96,97,101],set_data_from_numpi:99,set_devic:[22,42,49,54,55,83],set_is_colored_output_on:[19,43,46,54,55,81],set_logging_prefix:[19,43,46,54,55,81],set_reportable_log_level:[19,43,46,54,55,59,64,81],set_typecheck_en:57,setalpha:73,setbeta:73,setnam:[73,74],setproctitl:57,setreshapedimens:74,setup:[47,57,64,97,99],setup_multiple_test_data:57,setup_multiple_validation_data:57,setup_test_data:57,setup_training_data:57,setup_validation_data:57,setuptool:[57,60,61,62,63],sever:[17,28,59,81],sgd:64,sh:77,sha256:77,shape:[49,51,52,53,57,58,59,60,62,63,64,65,68,73,75,79,80,83,84,95,99,101],shape_mod:83,shape_rang:[80,95],share:[53,65,76,77,84],shell_command:88,shellingham:57,shift:[76,77,79,88],ship:[64,74,98],shorthand:88,shortuuid:57,should:[1,4,5,31,34,49,53,58,61,64,65,66,67,68,69,71,73,78,81,83,84,86,88,91,95,97,99],show:[63,86,88,96],showcas:[58,60,61],shown:[59,74,86,88],shuffl:[57,64,74,97],shutterstock_780480850:[58,60,61],siberian:[58,60,61],siberian_huski:[60,61],side:[67,74,86],sidebar:[86,92],sigmoid:[79,95],sigmoid_:79,sign:99,signatur:84,signifi:[52,67],signific:[63,64,88],significantli:[67,86],similar:[63,73,74,95,98,100],simonyan:97,simpil:97,simpl:[57,58,59,60,62,63,64,88,89,94,95,96,99],simplejson:57,simplest:[59,99],simpli:[61,62,67,96],simplic:[58,60,63],simplifi:66,simul:[64,96],sin:[79,88],sinc:[59,62,67,74,88,94,95,97],sing:88,singl:[52,59,62,65,67,74,83,88,94,95,97],singular:73,sinh:79,sink:88,sit:[89,91],site:[57,58,59,60,61,62,63,64,67,74,77,88],six:[57,59,60,61,62,63,88],sixth:89,size:[4,5,48,52,53,57,58,59,60,61,62,63,64,65,67,68,74,79,80,83,84,86,95,96,97],size_t:[4,5,48,97],skip:65,slash:86,slice:79,slightli:95,slither:[58,60,61],sm:70,sm_output:[58,60,61],small:[64,67,99],smaller:[57,96],smallest:59,smi:[57,58,60,61,62],smmap:57,snake:[58,60,61],snowballstemm:57,so:[1,48,58,60,61,62,64,65,66,67,70,71,73,74,77,78,80,87,88,89,95,97],sodal:91,softmax:[58,60,61,63,64,67,79,95],softwar:[53,57,58,59,60,61,62,63,65,84,88],sole:[75,97],sollicitudin:91,solv:99,some:[58,59,60,66,67,69,70,71,73,74,87,88,95,97],some_funct:88,someth:[47,67,88,99],someurl:88,sort:[73,79,100],sortedcontain:57,soundfil:57,soupsiev:[57,61],sourc:[46,47,48,49,58,60,63,71,76,80,81,82,83,84,95],sourceforg:[88,89],sox:57,space:[88,89,97],spaces_and_linebreak:88,span:89,spars:[65,79],sparse_weight:[49,53,84,95],sparsiti:[53,65,84,95],speak:59,speaker:59,spec:[49,52,53,58,60,62,63,65,81,83,84,100],specif:[36,53,57,58,59,60,61,62,63,67,69,71,83,84,88,96],specifi:[4,5,58,59,60,61,62,63,64,65,73,75,77,78,81,83,84,86,88,95,99,100],specifii:83,speech:[57,96],speed:[57,58,59,60,61,63],speed_m:[57,59],speed_mean:[57,59],speedup:[57,58,59,60,96],sphinx:[57,86,87,88,89,93],sphinx_rtd_them:[88,89],sphinxcontrib:57,spin:99,spirit:88,split:[59,79,95],split_siz:79,split_with_s:79,sqrt:79,squar:79,squeez:[57,79,96],sr:57,sram:65,src:[70,72,79],ss:48,ssd300:63,ssd300_trt:70,ssd:70,ssd_300_trace:63,ssd_pyt_ckpt_amp:63,ssd_trace:65,ssd_trt:65,sstream:[21,48],stabl:[64,72,84,86],stack:[57,61,63,64,70,79,97],stage:[66,95],stand:[70,88],standalon:88,standard:[58,59,60,61,62,63,65,70,78,88,96,98,100],stapl:89,start:[59,61,63,64,66,68,74,77,79,89,95,96,100],start_dim:[74,79],start_step:79,start_tim:[57,58,59,60,61,62,63,64],startswith:64,stat:64,state:[57,58,59,60,64,66,73,74],state_dict:64,statement:[67,88],static_cast:48,statist:[59,64],statu:[48,89],std:[4,5,24,28,30,31,32,33,34,35,37,38,41,46,48,49,51,52,53,57,58,59,60,61,68,74,97,99,101],std_dev:[57,59],stderr:64,stdout:[40,81,83],steamlin:97,step:[57,58,59,60,61,62,63,64,78,79,95,96,97],stft:57,stick:86,sticki:[86,92],sticky_navig:[86,90],still:[48,63,68,95,97],stitch:[62,68,74],stop:74,storag:97,store:[3,5,53,65,66,70,73,74,84,94,95],str:[20,47,48,54,55,58,60,61,79,81,83,84,95],straight:73,strang:88,strategi:[59,83],stream:[58,60,61],street:89,strict:98,strict_type_constraint:95,stride:[60,61,62,63,64,79],string:[4,5,19,21,22,24,28,30,31,32,33,34,35,37,38,41,46,48,49,53,68,70,73,74,76,83,86,97],stringstream:48,strip_prefix:77,strong:[58,60,62,63,88],strongli:88,struct:[2,22,42,45,49,97],structur:[31,34,50,53,58,60,62,63,68,71,73,86,88,92,94,99],structuredtext:88,stt_en_citrinet_256:57,stt_en_citrinet_256_bs128_torch:57,stt_en_citrinet_256_bs1_torch:57,stt_en_citrinet_256_bs32_torch:57,stt_en_citrinet_256_bs8_torch:57,stub:89,studio:76,stuff:88,style:[46,47,48,49,86,88,89],style_external_link:86,sub:[79,88,94],sub_:79,subdirectori:56,subexpress:67,subgraph:[53,65,66,67,73,74],subject:71,submenu:92,submodul:[62,94],subplot:[58,60,61,63],subscript:88,subsect:88,subset:[64,96,97],substitut:88,subtitl:88,subtre:93,subword:[57,96],success:76,successfulli:[57,58,60,62,63],sudo:77,suffic:67,suggest:99,suit:[61,78],suitabl:95,sum:[53,64,79,84,95],summari:59,summarywrit:64,superscript:88,supervis:96,suppli:88,support:[1,2,3,29,35,50,52,53,58,60,61,62,63,64,65,68,72,74,75,76,77,78,83,84,86,87,94,95,99,101],sure:[74,75,77,99,101],suscipit:[89,91],suspendiss:91,swap:57,sy:64,symbol:[37,77,84,88,95,98],symlink:93,sympi:57,synchron:[57,58,59,60,61,62,63,64],system:[57,58,59,60,61,62,63,66,73,77,78,84],t1:79,t2:79,t:[1,2,3,49,50,61,62,64,67,73,74,77,79,86,88,89,94,95,97,99],t_:88,tabl:[77,92],tabul:57,tag:[88,99],take:[35,36,37,41,57,58,60,62,63,66,69,70,71,73,74,80,83,84,86,88,95,96,97,100],taken:[58,60,63,88],talk:78,tan:79,tanh:79,tanh_:79,tar:[77,88,97],tarbal:[74,97],target:[2,37,49,50,52,53,58,60,61,62,63,65,70,71,75,78,83,84,95,97,100,101],targets_:97,tarred_audio_filepath:57,task:[31,32,33,34,57,59,95,96,97],techinqu:74,techniqu:[64,97],tell:[67,68,69,70,71,73,88],tellu:91,tem:65,temp:[57,58,60,61,62],templat:[21,44,48,49,54,55,74,86],temporari:95,tempu:91,tensor:[3,37,48,49,52,53,57,58,59,60,61,62,63,64,65,66,67,68,70,73,74,79,80,83,84,94,95,96,97],tensor_mod:79,tensor_qu:64,tensor_quant:64,tensor_scalar:79,tensor_tensor:79,tensorboard:[57,64],tensorcontain:73,tensorformat:[22,42,49,52,54,55,83],tensorformatenum:[0,54],tensorlist:[68,73],tensorquant:64,tensorrt:[1,2,4,5,31,32,33,34,35,36,37,40,41,48,49,50,52,53,59,65,66,67,68,69,71,73,80,82,83,84,94,97],tensorrt_convert:95,tensorrt_root:76,tensorrtcompilespec:[84,100],tensorrtfil:23,tensort:95,teo:65,term:[83,88,89,96,97],termin:[29,65,74],terminado:[57,60,61,62,63],test:[57,58,59,60,61,62,63,64,65,71,77,88,89,95,96,97,99],test_acc:64,test_acc_trac:95,test_loss:64,test_pr:64,test_prob:64,test_ptq_dataloader_calibr:97,test_ptq_trt_calibr:97,test_py_modul:[88,92],testing_dataload:[64,97],testing_dataset:[64,97],testpath:[57,60,62,63],text:[57,59,63,81,89,91,96],tf32:[53,65],than:[57,59,61,67,78,87,88,96,98],thats:[66,97],the_model_repositori:99,thei:[50,59,63,64,65,66,67,70,73,75,77,83,86,88,95],them:[57,58,59,60,62,63,67,68,70,74,77,86,95,96],theori:[66,88],therebi:[70,96],therefor:[31,34,57,58,60,62,63,70,74,88,95,96],theres:98,therfor:98,theta:88,thi:[1,2,3,31,32,33,34,46,47,48,49,50,51,52,53,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,74,77,80,83,84,86,87,88,90,91,94,95,96,97,98,99,100],thicker:88,thin:88,thing1:88,thing2:88,thing3:88,thing:[62,77,88,95],think:[73,88],third:[61,89,95],third_parti:[71,77],this_arg_is_opt:95,those:[59,66,88],though:[63,65,71,73,74,94],thought:88,threadpoolctl:57,three:[52,61,69,71,80,83,88,89,95,96,99],threshold:65,through:[52,57,58,59,60,61,62,63,66,67,68,70,74,75,78,81,82,88,95,96],throughout:[58,60],throughput:58,throught:95,thrown:[53,84],thu:[57,62,88],tifffil:63,time:[53,57,58,59,60,61,62,63,64,65,66,67,69,70,71,73,74,80,84,86,88,95,97],time_99th:[57,59],time_m:[57,59],time_mean:[57,59],time_std:[57,59],timegraph:[57,59],timeit:[57,59],timeout:57,timing_cach:95,timing_cache_prefix:[80,95],timm:[58,60],tincidunt:91,tini:97,tinycss2:61,titan:[57,58,60,62,63],titl:[58,60,61],titles_onli:86,tl:61,tmp:74,toctre:86,tocustomclass:73,todim:74,todo:[86,95],togeth:[62,66,73,74],toilet:[58,60,61],token:[57,59,96],token_type_id:59,tokens_tensor:59,toler:65,toml:57,tomli:63,too:[77,86,88,89],took:59,tool:[58,59,60,62,63,73,74,95,96],toolchain:[71,77],toolkit:[57,60,61,62,63,64],top:[63,71,86,90],topk:79,topolog:59,torch:[1,2,3,5,21,22,31,32,33,34,35,36,37,40,41,48,49,50,51,52,53,59,65,66,67,68,69,70,71,73,77,80,83,84,94,97,101],torch_dir:76,torch_executed_modul:[49,53,68,84],torch_executed_op:[49,53,68,84],torch_scirpt_modul:94,torch_script_modul:74,torch_tensorrt:[0,1,2,3,4,5,15,17,18,23,46,47,48,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,68,74,75,78,95,96,97,98,99,100,101],torch_tensorrt_export:47,torch_tensorrt_major_vers:[20,47,54,55],torch_tensorrt_minor_vers:[20,47,54,55],torch_tensorrt_patch_vers:[20,47,54,55],torch_tensorrt_vers:[20,47,54,55],torch_tensorrtfil:54,torch_tensorrtnamespac:[0,54],torchbind:70,torchhub:[63,99],torchmetr:57,torchscript:[20,22,42,47,49,53,54,55,57,58,59,60,61,63,64,65,69,70,71,75,83,84,96,100,101],torchscriptstruct:[0,54],torchtrt:[47,57,68],torchtrt_api:[1,3,20,24,25,26,27,28,29,30,35,36,37,38,39,40,41,46,47,48,49,52,53,54,55],torchtrt_check:73,torchtrt_hidden:[20,47,54,55],torchtrt_runtime_exampl:98,torchtrt_unus:73,torchtrtc:[77,78,101],torchvis:[57,58,60,61,64,70,97,99,100],tornado:[57,60,61,62,63],toronto:97,tortor:91,total:64,totensor:[58,60,61,64,97,99],tovec:74,toward:97,tqdm:[57,59,64],trace:[57,59,63,64,68,74,84,94,95],traced_mlm_model:59,traced_model:[62,63,94],tracerwarn:64,track:[73,97],track_running_stat:[60,61],trade:63,tradit:[52,84,97],traget:36,trail:86,train:[31,32,33,34,53,57,58,59,60,63,65,74,75,78,79],trainabl:67,trained_vgg16_qat:64,trainer:57,training_dataload:64,training_dataset:64,traitlet:[57,60,61,62,63],transcrib:[57,96],transfer:87,transform:[57,58,60,61,62,63,64,74,97,99],transformed_img:99,transforms_factori:58,translat:[63,74],transmit:88,transpos:[79,95],trash:88,travers:[69,71],treat:[64,65],tree:[46,47,48,49,57,86,97,98],trigger:[62,74,95],trim:97,trim_sil:57,tristiqu:91,triton:78,triton_to_np_dtyp:99,tritoncli:99,tritonserv:99,trt:[1,2,4,5,50,52,57,66,67,70,73,74,79,95],trt_interpreter_result:95,trt_lenet_script:74,trt_mod:[64,68,74,97,101],trt_model:[59,63,68,99,100],trt_model_fp16:[58,59,60],trt_model_fp32:[58,60],trt_model_with_d:61,trt_model_without_d:61,trt_script_modul:62,trt_ts_modul:[57,62,68,75],trtinterpret:[80,95],trtinterpreterresult:[80,95],trtmodul:[80,95],trtorch:57,truck:64,truncat:[53,65,84],truncate_long_and_doubl:[49,53,57,59,84],trust:[60,61,62,63,64],ts:[47,57,62,65,68,74,75,78,83,94,100],ts_model:[68,74],tt:88,tue:[60,89],tune:[57,58,60,62,63,64],tup:79,tupl:[70,80,83,84,95],tupleconstruct:[67,70],tupleindex:79,tupleunpack:67,turn:[57,80,95],turpi:91,tutori:[58,60,61,94,97],two:[57,62,63,65,67,73,75,77,88,89,93,94,95,97,99],type:[1,2,3,32,33,53,54,55,57,58,59,60,61,62,63,64,65,66,70,73,74,75,76,80,81,83,84,88,95,96,97],type_fp32:99,typecheck:57,typenam:[4,5,31,32,33,34,48],typer:57,typic:[66,73,99],typing_extens:58,ubuntu:57,ugli:88,ui:87,uint64_t:[49,53],ultric:91,un:[58,60,97],unabl:[73,74],unbind:79,unbroken:88,uncas:[59,96],unchang:59,uncom:77,uncorr:[57,58,60,61,62],undefin:63,under:[46,47,48,49,57,58,59,60,61,62,63,71,88,95],underli:[1,2,3,50,73],understand:[58,60],unidecod:57,uniformli:96,union:[73,74,83,84],uniqu:[5,75],unique_ptr:[5,32,33],unit:[59,62,95],univers:88,unknown:83,unless:[57,58,59,60,61,62,63,95],unlik:[61,77,78,100],unlimit:86,unmask:59,unmasked_sent:59,unmasked_sentences_trt:59,unmasked_token:59,unmasked_tokens_trt:59,unpack_addmm:67,unpack_log_softmax:67,unqiue_ptr:5,unreferenc:88,unrestrict:88,unsign:64,unsqueez:[58,60,61,79],unstabl:71,unsupport:[35,53],unsur:73,untest:71,until:[61,66,71,73,77],unwrap:73,unwraptodoubl:73,unwraptoint:74,unzip:77,up:[57,58,59,60,62,63,64,66,67,69,70,71,88,94,95,96],updat:[57,61,64,80,95],upgrad:57,upload:[58,60,61,99],upon:86,upper:[64,89],upsample_bilinear2d:79,upsample_linear1d:79,upsample_nearest1d:79,upsample_nearest2d:79,upsample_nearest3d:79,upsample_trilinear3d:79,upscale_factor:79,upstream:74,uri:[63,88],url:[77,86,99],urllib3:[57,59],urna:91,us:[1,2,3,4,5,31,32,33,34,36,39,41,47,48,49,50,52,53,57,58,59,60,62,63,65,66,68,70,71,73,76,78,80,81,82,83,84,86,87,88,89,94,95,97,98,99,101],usag:[57,58,60,61,62,74,82,88,95],use_amp:57,use_cach:[4,5,32,33,48,82,97],use_cache_:48,use_cmake_generated_export_head:47,use_fb_fake_qu:64,use_input_stat:79,use_start_end_token:57,use_subset:97,usecas:[75,77],user:[46,52,57,58,59,60,61,62,63,68,69,70,71,74,75,77,78,88,89,97,99],userguid:64,userwarn:[57,58,63],using_int:[74,79],usr:77,usual:[63,64,86,95],ut:91,utf:[88,89],util:[58,60,62,64,73,74,84,96,97,99],v0:[60,61,85,99],v1:57,v2:[31,32,33,34,63],v:[57,58,59,60,62,63,65,89,99],val2017:63,val:[63,64],valid:[2,50,57,62,63,64,73],valu:[1,2,3,17,18,49,50,52,59,62,64,66,70,73,74,76,79,81,82,83,86,96],value_tensor_map:[66,73],vanilla:95,vare:61,vari:[58,59,60,80],variabl:[52,76,83,95],variant:[57,98],varient:67,varieti:99,variou:[57,95,101],variu:91,vcs_pageview_mod:86,vec:79,vector:[21,22,48,49,51,52,53,68,70,74,97,101],vehicula:91,vel:91,velit:91,venenati:91,venv:[57,58,59,60,61,62,63],verbios:65,verbos:[65,80,89,95],verbose_log:[80,95],veri:[64,89,90,95,97,99,100],verifi:[59,64,68],verison:77,version:[38,40,57,58,59,60,61,62,63,64,71,77,86,89,95,96,99],vertic:[86,88],vestibulum:[89,91],vgg16:[64,97],vgg16_base_ckpt:64,vgg16_qat_ckpt:64,vgg:[63,64,97],vi:88,via:[57,61,63,78,83,84,86,92,95,96,97,98],view:[79,86],vine_snak:58,virtual:[57,58,59,60,61,62,63,97],vision:[58,59,60,61,95,99],visit:[58,60,61,63],visitor:86,visual:[61,76],vita:[89,91],vivamu:91,viverra:91,vm:89,volatil:[57,58,60,61,62],volta:[58,60,62,63],volutpat:91,vs:[1,2,3,50,67,84,100],vulput:91,w1109:64,w:[57,58,60,63,65],w_hh:79,w_ih:79,wa:[57,58,59,60,62,63,67,70,74,88,95],wai:[58,60,64,65,74,77,94,95,96,97],walk:[57,58,59,60,62,63],walkthrough:96,wandb:57,want:[46,58,60,62,63,68,74,80,94,95,97,99,100],warm:[57,58,59,60,61,62,63,64],warn:[17,48,57,58,59,60,61,62,63,64,65,73,81],warranti:[57,58,59,60,61,62,63],wash:88,wcwidth:[57,60,61,62,63],we:[46,48,57,58,59,60,61,62,63,64,66,67,69,70,71,73,74,80,86,88,94,95,96,97,99],weak:88,web:88,webdataset:57,webencod:[57,60,61,62,63],websit:77,weight:[52,53,59,64,65,66,74,79,84,88,95,96],weight_decai:64,welcom:[74,95],welecom:[58,60],well:[58,59,60,62,63,74,77,81,88,97],were:[59,63,74],werkzeug:57,wget:[57,58,60,61,99],what:[5,63,67,74,75,88,94,95],whatev:[70,95],wheel:[57,77],when:[29,48,49,50,58,59,60,62,63,64,65,66,67,69,70,71,73,74,77,81,83,84,86,88,90,94,95,96,97],where:[57,58,60,62,66,67,73,74,84,89,95,97],wherev:95,whether:[5,65,80,83,87,95,97],which:[2,3,31,34,36,41,50,53,57,58,59,60,61,62,63,64,66,67,68,69,70,71,73,74,75,77,82,84,86,88,89,94,95,96,97,98,99,100],white:[63,88],whitespac:88,whl:[58,60,62,63,77],who:88,whole:[58,60,62,63,95],whose:[67,95],why:88,wide:[61,92],widespread:59,widget:[57,60,61,62,63],widgetsnbextens:[57,60,61,62,63],width:[58,60,61,88,96],window:88,window_nam:88,wish:89,wit:57,within:[53,57,58,59,60,61,62,63,65,69,71,84,86,88],without:[57,58,59,60,62,63,64,73,74,86,88,97],wl:98,won:61,wooden:88,word:[57,59,88,96],wordninja:57,work:[48,62,67,71,73,88,89,95,97],worker:97,workflow:[64,80,95,96,100],workspac:[53,65,77,80,84,95],workspace_s:[49,53,57,58,59,60,61,63,65,84],world:[58,60,62,63,88],would:[65,73,74,75,77,95,98,99,100],wp:[58,60,61,99],wrap:[64,69,70,71,74,88,91,95,100],wrapper:[73,95],wrapt:57,write:[4,5,31,32,33,34,48,57,58,59,60,61,62,63,66,74,78,88,95,97,99],write_calibration_cach:82,writecalibrationcach:[4,5,48],writer:64,written:[58,60],wrote:88,www:[57,58,59,60,61,62,63,74,77,86,88,97,99],x64:76,x86:98,x86_64:[71,77],x9:67,x:[6,11,37,47,58,60,62,63,64,67,74,77,84,89,94],x_0:88,x_1:88,x_2:88,x_3:88,x_4:88,x_:88,xavier:[49,58,60,62,63,101],xstr:[20,47,54,55],xx:99,xxx:95,y:[37,57,63,84,89],yahoo:89,yaml:[57,72],yarg:57,yarl:57,year:57,yet:[95,96],yield:59,you:[1,2,3,31,32,33,34,50,52,53,57,58,59,60,61,62,63,64,65,66,67,68,70,71,73,74,75,77,78,83,84,86,88,89,90,94,95,96,97,98,99,100],your:[57,58,59,60,61,62,63,64,73,74,75,77,78,86,88,89,93,94,98,100],yourself:[58,59,60,74],youtokentom:57,yy:[57,99],z:89,zero_grad:64,zero_point:79,zeroth:61,zip:[60,63,70,77],zipp:[57,60,61,62,63],zisserman:97},titles:["Class Hierarchy","Class DataType","Class Device::DeviceType","Class TensorFormat","Template Class Int8CacheCalibrator","Template Class Int8Calibrator","Define STR","Define TORCH_TENSORRT_PATCH_VERSION","Define TORCH_TENSORRT_MAJOR_VERSION","Define TORCH_TENSORRT_MINOR_VERSION","Define TORCHTRT_API","Define XSTR","Define TORCHTRT_HIDDEN","Define TORCH_TENSORRT_VERSION","Directory cpp","Directory include","Directory torch_tensorrt","Enum Level","Enum EngineCapability","File logging.h","File macros.h","File ptq.h","File torch_tensorrt.h","File Hierarchy","Function torch_tensorrt::logging::get_logging_prefix","Function torch_tensorrt::logging::get_reportable_log_level","Function torch_tensorrt::logging::get_is_colored_output_on","Function torch_tensorrt::logging::set_reportable_log_level","Function torch_tensorrt::logging::log","Function torch_tensorrt::logging::set_is_colored_output_on","Function torch_tensorrt::logging::set_logging_prefix","Template Function torch_tensorrt::ptq::make_int8_cache_calibrator","Template Function torch_tensorrt::ptq::make_int8_calibrator","Template Function torch_tensorrt::ptq::make_int8_calibrator","Template Function torch_tensorrt::ptq::make_int8_cache_calibrator","Function torch_tensorrt::torchscript::check_method_operator_support","Function torch_tensorrt::torchscript::compile","Function torch_tensorrt::torchscript::embed_engine_in_new_module","Function torch_tensorrt::get_build_info","Function torch_tensorrt::set_device","Function torch_tensorrt::dump_build_info","Function torch_tensorrt::torchscript::convert_method_to_trt_engine","Namespace torch_tensorrt","Namespace torch_tensorrt::logging","Namespace torch_tensorrt::ptq","Namespace torch_tensorrt::torchscript","Program Listing for File logging.h","Program Listing for File macros.h","Program Listing for File ptq.h","Program Listing for File torch_tensorrt.h","Struct Device","Struct GraphInputs","Struct Input","Struct CompileSpec","Torch-TensorRT C++ API","Full API","Full API","Torch-TensorRT Getting Started - CitriNet","Torch-TensorRT Getting Started - EfficientNet-B0","Masked Language Modeling (MLM) with Hugging Face BERT Transformer","Torch-TensorRT Getting Started - ResNet 50","Torch-TensorRT - Using Dynamic Shapes","Torch-TensorRT Getting Started - LeNet","Object Detection with Torch-TensorRT (SSD)","Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT","torchtrtc","Conversion Phase","Lowering Phase","Partitioning Phase","Compiler Phases","Runtime Phase","System Overview","Useful Links for Torch-TensorRT Development","Writing Converters","Using Torch-TensorRT in C++","Using Torch-TensorRT in Python","Building Torch-TensorRT on Windows","Installation","Torch-TensorRT","Operators Supported","torch_tensorrt.fx","torch_tensorrt.logging","torch_tensorrt.ptq","torch_tensorrt","torch_tensorrt.ts","Changelog","Configuration","5. :mod:`test_py_module`","3. Paragraph Level Markup","4. Lists & Tables","1. Long Sticky Nav","1. Structural Elements","<no title>","Installation","Creating a TorchScript Module","Torch-TensorRT (FX Frontend) User Guide","Example notebooks","Post Training Quantization (PTQ)","Deploying Torch-TensorRT Programs","Serving a Torch-TensorRT model with Triton","Using Torch-TensorRT Directly From PyTorch","DLA"],titleterms:{"1":[90,99],"10":90,"11":90,"12":90,"13":90,"14":90,"15":90,"16":90,"17":90,"18":90,"19":90,"2":[90,91,99],"20":90,"3":[90,99],"4":90,"5":90,"50":60,"6":[63,90],"7":[63,90],"8":90,"9":90,"class":[0,1,2,3,4,5,21,22,42,44,45,54,55,80,82,83],"enum":[17,18,19,22,42,43,54,55,82,83],"function":[19,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,54,55,61,72,80,83,84],"long":[90,92],A:88,And:88,But:89,By:[19,20],Or:67,The:[74,88],To:67,aarch64:77,abi:[70,77],acc:95,acceler:96,add:95,addmm:67,admonit:88,advic:73,ahead:78,an:92,api:[54,55,56,72,77,78],applic:97,arg:[73,87],automat:68,avail:72,awar:[64,96],b0:58,background:[70,73],base:[4,5,52,86],benchmark:[57,61,63,64],bert:[59,96],binari:77,block:88,branch:67,build:[61,76,77,86,99],bullet:89,c:[54,72,74,77,78,96,97],can:89,caption:[89,92],center:88,ch:88,changelog:85,check_method_operator_support:35,choos:77,citat:[88,97],citrinet:[57,96],cli:[77,78],client:99,cmake:77,code:[67,88],compil:[36,69,71,74,76,77,78,96],compilespec:53,compound:88,conclus:[62,63],configur:[76,86],construct:70,content:[19,20,21,22,42,43,44,45,57,58,59,60,62,63,86,87,88,89,90,91],context:[73,86],contigu:67,contract:73,contributor:78,convers:[66,69,71,73],convert:[66,73,74,79,95],convert_method_to_trt_engin:41,cpp:[14,19,20,21,22,68],creat:[94,97],creativ:88,cudnn:77,current:79,custom:74,cxx11:77,data:[61,87],datatyp:1,dead:67,debug:77,deep:96,deeper:89,defin:[6,7,8,9,10,11,12,13,20,54,55],definit:[19,20,21,22,89],demo:92,depend:77,deploi:[64,96,98],descript:[58,60,63],deseri:70,detail:63,detect:[63,96],detector:63,develop:72,devic:[2,50],devicetyp:2,dimens:72,direct:88,directli:100,directori:[14,15,16,56],disk:94,distribut:77,dla:101,doctest:88,documen:78,document:[1,2,3,4,5,6,7,8,9,10,11,12,13,17,18,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,50,51,52,53,72,78,91,92],down:89,download:[61,88,93],dropout:67,dump_build_info:40,dynam:[61,96],easier:72,efficentnet:96,efficientnet:58,element:91,elimin:67,eliminatecommonsubexpress:67,embed_engine_in_new_modul:37,emphas:88,engin:[70,95],enginecap:18,enumer:89,envior:77,evalu:[66,79],exampl:[88,90,96],execept:67,executor:70,expect:72,face:[59,96],fallback:[67,68],field:89,figur:88,file:[16,19,20,21,22,23,46,47,48,49,54,56],flatten:67,footnot:88,format:70,fp16:[57,58,60],fp32:[57,58,60],freez:67,from:[61,77,100],frontend:[95,96],full:[54,55,56],fuse:67,fx2trt:95,fx:[80,95,96],gaurd:67,gener:87,get:[57,58,60,61,62,78],get_build_info:38,get_is_colored_output_on:26,get_logging_prefix:24,get_reportable_log_level:25,giant:89,git:93,glossari:88,gpu:78,graph:[67,70],graphinput:51,grid:89,guarante:73,guid:95,h:[19,20,21,22,46,47,48,49,68],half:[57,58,60],have:89,hierarchi:[0,23,54],hlist:89,hole:89,hood:74,how:[86,95,97],html:86,hub:61,hug:[59,96],ien:88,imag:[88,89],includ:[15,19,20,21,22],incred:92,index:87,indic:78,infer:[63,99],inherit:[4,5,52],inlin:88,input:52,instal:[76,77,93],int8:[64,96],int8cachecalibr:4,int8calibr:5,ir:72,jetson:77,jit:78,languag:[59,96],layer:72,learn:[57,58,59,60,62,63,96],lenet:[62,96],level:[17,86,88,89],librari:[77,98],libtorchtrt:98,like:89,line:88,linear:67,link:[72,88],list:[46,47,48,49,89],liter:88,local:77,log:[19,24,25,26,27,28,29,30,43,46,81],logsoftmax:67,loop:67,lower:[67,69,71],macro:[20,47],make_int8_cache_calibr:[31,34],make_int8_calibr:[32,33],markup:88,mask:[59,96],math:88,measur:63,menu:[90,92],meta:88,miss:95,mlm:[59,96],mod:87,model:[58,59,60,61,62,63,64,95,96,99],modul:[67,74,94],multibox:63,namespac:[19,20,21,22,42,43,44,45,54,55],nativ:77,native_op:72,nav:90,nest:[2,50],next:[57,58,59,60,61,62],node:66,notebook:96,number:[88,89],nvidia:78,object:[57,58,59,60,62,63,96],one:89,op:[70,95],oper:[74,79],optim:99,optimz:67,option:[86,87,89],other:73,overview:[57,58,60,62,63,64,71],own:97,packag:[77,98],page:86,paragraph:[88,91],paramet:87,partit:[68,69,71],partitoninfo:68,pass:67,pattern:67,peephol:67,perform:64,phase:[66,67,68,69,70,71],plugin:98,post:97,pre:77,precis:[57,58,60],precompil:77,prerequisit:77,program:[46,47,48,49,98],project:86,ptq:[21,31,32,33,34,44,48,82,97],python:[72,75,77,78,94,97],pytorch:[62,72,78,95,96,100],quantiz:[64,96,97],queri:99,quickstart:74,quot:88,rabbit:89,read:72,redund:67,refer:[63,88],regist:74,relationship:[2,4,5,50,52],releas:77,remov:67,replac:88,resnet50:96,resnet:60,respons:73,result:[63,70],right:77,rubric:88,runtim:[69,70,71,98],s:[57,58,59,60,61,62],sampl:[61,63],save:94,script:62,second:89,section:91,segmentedblock:68,serial:70,serv:[96,99],server:99,set:[61,99],set_devic:39,set_is_colored_output_on:29,set_logging_prefix:30,set_reportable_log_level:27,setup:77,shape:[61,96],shape_analysi:68,shot:63,sidebar:88,simpl:61,singl:[57,58,60,63],so:98,sometim:72,sourc:77,speedup:63,ssd:[63,96],start:[57,58,60,62,78],step:99,sticki:90,str:6,struct:[50,51,52,53,54,55],structur:91,subdirectori:[14,15],submenu:90,submodul:83,subsect:91,subsubmenu:90,subsubsect:91,support:79,system:71,tabl:[86,87,88,89,90,91],tarbal:77,target:88,templat:[4,5,31,32,33,34],tensorformat:3,tensorrt:[54,57,58,60,61,62,63,64,70,72,74,75,76,77,78,95,96,98,99,100],test_py_modul:87,text:88,theme:[86,92],thi:[89,92],through:79,time:78,titl:88,toc:86,topic:88,torch:[54,57,58,60,61,62,63,64,72,74,75,76,78,95,96,98,99,100],torch_tensorrt:[16,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,49,80,81,82,83,84],torch_tensorrt_major_vers:8,torch_tensorrt_minor_vers:9,torch_tensorrt_patch_vers:7,torch_tensorrt_vers:13,torchscript:[35,36,37,41,45,62,74,78,94],torchtrt_api:10,torchtrt_hidden:12,torchtrtc:[65,74],trace:62,tracer:95,train:[64,96,97],transform:[59,96],triton:99,trt:61,ts:84,tupl:67,tutori:78,type:[4,5,50,52],under:74,unpack:67,unrol:67,unsupport:74,up:[61,99],us:[61,64,67,72,74,75,77,96,100],user:95,util:[57,61,63],version:70,via:93,visual:63,wai:88,weight:73,what:[57,58,59,60,61,62,73],wide:86,window:76,without:61,work:[61,74,94],write:73,xstr:11,your:[97,99]}}) \ No newline at end of file diff --git a/docs/v1.2.0/sitemap.xml b/docs/v1.2.0/sitemap.xml new file mode 100644 index 0000000000..91f3153893 --- /dev/null +++ b/docs/v1.2.0/sitemap.xml @@ -0,0 +1 @@ +https://nvidia.github.io/Torch-TensorRT/_cpp_api/class_view_hierarchy.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1DataType.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1Device_1_1DeviceType.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1TensorFormat.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8CacheCalibrator.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/classtorch__tensorrt_1_1ptq_1_1Int8Calibrator.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1a282fd3c0b1c3a215148ae372070e1268.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1a31398a6d4d27e28817afb0f0139e909e.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1a35703561b26b1a9d2738ad7d58b27827.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1abd1465eb38256d3f22cc1426b23d516b.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1ad19939408f7be171a74a89928b36eb59.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/define_macros_8h_1adad592a7b1b7eed529cdf6acd584c883.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/dir_cpp.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/dir_cpp_include.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/dir_cpp_include_torch_tensorrt.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/enum_logging_8h_1a130f65408ad8cbaee060f05e8db69558.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/enum_torch__tensorrt_8h_1a3fbe5d72e4fc624dbd038853079620eb.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_cpp_include_torch_tensorrt_logging.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_cpp_include_torch_tensorrt_macros.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_cpp_include_torch_tensorrt_ptq.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_cpp_include_torch_tensorrt_torch_tensorrt.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/file_view_hierarchy.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1a0593f776f469c20469e2f729fc7861a3.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1a0c012cb374addd90eb1f42eaec570650.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1a56e110feaaba2c3fd44bd201fd21a76a.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1a7cb50492421ea9de4e3db895819df6f2.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1ac46ac0901cb97e3ae6e93b45f24e90b8.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1ad2efd47b6c3689e58ccc595680579ae5.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_logging_8h_1af8f3443813315af7901903d25dd495cc.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_ptq_8h_1a226e3c83379d1012cde8578c1c86b16c.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_ptq_8h_1a6186e305f47c1d94b6130ef6c7f7e178.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_ptq_8h_1a83ff2be7e0b80bc7434de415861dc039.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_ptq_8h_1a9835f6e605dce1abf442a55b64d6dffa.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1a5b405fd3bf3c8fc2e2a54cbbab979797.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1a6e19490a08fb1553c9dd347a5ae79db9.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1a710df824a7718b440e4bc17bf9693cef.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1ac4ab8313ae72c2c899ea31548b528528.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1ad1acd06eaeaffbbcf6e7ebf426891384.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1ad6a4ee8ca6c8f6e5519eb1128ec7f4a1.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/function_torch__tensorrt_8h_1ae8d56472106eeef37fbe51ff7f40c9b2.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/namespace_torch_tensorrt.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/namespace_torch_tensorrt__logging.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/namespace_torch_tensorrt__ptq.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/namespace_torch_tensorrt__torchscript.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_logging.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_macros.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_ptq.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/program_listing_file_cpp_include_torch_tensorrt_torch_tensorrt.h.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/structtorch__tensorrt_1_1Device.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/structtorch__tensorrt_1_1GraphInputs.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/structtorch__tensorrt_1_1Input.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/structtorch__tensorrt_1_1torchscript_1_1CompileSpec.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/torch_tensort_cpp.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/unabridged_api.htmlhttps://nvidia.github.io/Torch-TensorRT/_cpp_api/unabridged_orphan.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/CitriNet-example.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/EfficientNet-example.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/Hugging-Face-BERT.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/Resnet50-example.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/dynamic-shapes.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/lenet-getting-started.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/ssd-object-detection-demo.htmlhttps://nvidia.github.io/Torch-TensorRT/_notebooks/vgg-qat.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/conversion.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/lowering.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/partitioning.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/phases.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/runtime.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/system_overview.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/useful_links.htmlhttps://nvidia.github.io/Torch-TensorRT/contributors/writing_converters.htmlhttps://nvidia.github.io/Torch-TensorRT/index.htmlhttps://nvidia.github.io/Torch-TensorRT/indices/supported_ops.htmlhttps://nvidia.github.io/Torch-TensorRT/py_api/logging.htmlhttps://nvidia.github.io/Torch-TensorRT/py_api/ptq.htmlhttps://nvidia.github.io/Torch-TensorRT/py_api/torch_tensorrt.htmlhttps://nvidia.github.io/Torch-TensorRT/py_api/ts.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/changelog.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/configuring.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/api.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/demo.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/lists_tables.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/long.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/demo/structure.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/index.htmlhttps://nvidia.github.io/Torch-TensorRT/src/pytorch-sphinx-theme/docs/installing.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/creating_torchscript_module_in_python.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/getting_started_with_cpp_api.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/getting_started_with_python_api.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/installation.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/ptq.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/runtime.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/torchtrtc.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/use_from_pytorch.htmlhttps://nvidia.github.io/Torch-TensorRT/tutorials/using_dla.htmlhttps://nvidia.github.io/Torch-TensorRT/genindex.htmlhttps://nvidia.github.io/Torch-TensorRT/search.html \ No newline at end of file diff --git a/docs/v1.2.0/src/pytorch-sphinx-theme/docs/changelog.html b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/changelog.html new file mode 100644 index 0000000000..80132e4166 --- /dev/null +++ b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/changelog.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + + Changelog — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Changelog

+

v0.0.1

+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/src/pytorch-sphinx-theme/docs/configuring.html b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/configuring.html new file mode 100644 index 0000000000..4a60a6bd74 --- /dev/null +++ b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/configuring.html @@ -0,0 +1,760 @@ + + + + + + + + + + + + + Configuration — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Configuration

+

You can configure different parts of the theme.

+
+

Project-wide Configuration

+
+

HTML Theme Options

+

The theme’s project-wide options are defined in the pytorch_sphinx_theme/theme.conf +file of this repository, and can be defined in your project’s conf.py via +html_theme_options. For example:

+
html_theme_options = {
+    'canonical_url': '',
+    'analytics_id': '',
+    'logo_only': False,
+    'display_version': True,
+    'prev_next_buttons_location': 'bottom',
+    'style_external_links': False,
+    'vcs_pageview_mode': '',
+    # Toc options
+    'collapse_navigation': True,
+    'sticky_navigation': True,
+    'navigation_depth': 4,
+    'includehidden': True,
+    'titles_only': False
+}
+
+
+

The following options are available:

+
+

Base options

+
    +
  • canonical_url String. This will specify a canonical url +to let search engines know they should give higher ranking to latest version of the docs. +The url points to the root of the documentation and requires a trailing slash.

  • +
  • analytics_id String. Change the Google Analytics ID that is included on pages.

  • +
  • display_version Bool. With this disabled, the version number isn’t shown at the top of the sidebar.

  • +
  • prev_next_buttons_location String. can take the value bottom, top, both , or None +and will display the “Next” and “Previous” buttons accordingly.

  • +
  • style_external_links Bool. Add an icon next to external links. Defaults to False.

  • +
  • vcs_pageview_mode String. Changes how to view files when using display_github, display_gitlab, etc. +When using Github or Gitlab this can be: blob (default), edit, or raw, +on Bitbucket, this can be either: view (default) or edit.

  • +
+
+
+

TOC Options

+

These effect how we display the Table of Contents in the side bar. You can read more about them here: http://www.sphinx-doc.org/en/stable/templating.html#toctree

+
    +
  • collapse_navigation Bool. With this enabled, you will lose the [+] drop downs next to each section in the sidebar.

  • +
  • sticky_navigation Bool. This causes the sidebar to scroll with the main page content as you scroll the page.

  • +
  • navigation_depth Int. Indicate the max depth of the tree; by default, 4 levels are included; +set it to -1 to allow unlimited depth.

  • +
  • includehidden Bool. Specifies if the sidebar includes toctrees marked with the :hidden: option

  • +
  • titles_only Bool. If True, removes headers within a page from the sidebar.

  • +
+
+

Note

+

Setting collapse_navigation to False and using a high navigation_depth +can cause projects with many files and a deep file structure to generate HTML files +that are significantly larger in file size and much longer compilation times.

+
+
+
+
+

HTML Context Options

+

TODO.

+
+
+
+

Page-level Configuration

+

Pages support metadata that changes how the theme renders. +You can currently add the following:

+
    +
  • :github_url: This will force the “Edit on GitHub” to the configured URL

  • +
  • :bitbucket_url: This will force the “Edit on Bitbucket” to the configured URL

  • +
  • :gitlab_url: This will force the “Edit on GitLab” to the configured URL

  • +
+
+
+

How the Table of Contents builds

+

Currently the left menu will build based upon any toctree(s) defined in your index.rst file. +It outputs 2 levels of depth, which should give your visitors a high level of access to your +docs. If no toctrees are set the theme reverts to sphinx’s usual local toctree.

+

It’s important to note that if you don’t follow the same styling for your rST headers across +your documents, the toctree will misbuild, and the resulting menu might not show the correct +depth when it renders.

+

Also note that by default the table of contents is set with includehidden=True. This allows you +to set a hidden toc in your index file with the :hidden: property that will allow you +to build a toc without it rendering in your index.

+

By default, the navigation will “stick” to the screen as you scroll. However if your toc +is vertically too large, it will revert to static positioning. To disable the sticky nav +altogether change the setting in conf.py.

+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/api.html b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/api.html new file mode 100644 index 0000000000..a863828101 --- /dev/null +++ b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/api.html @@ -0,0 +1,711 @@ + + + + + + + + + + + + + 5. :mod:`test_py_module` — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • 5. :mod:`test_py_module`
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

5. :mod:`test_py_module`

+ +
+

5.1. Generated Index

+

Part of the sphinx build process in generate and index file: Index.

+
+
+

5.2. Optional parameter args

+

At this point optional parameters cannot be generated from code. +However, some projects will manually do it, like so:

+

This example comes from django-payments module docs.

+
+
+payments.dotpay.DotpayProvider(seller_id, pin[, channel=0[, lock=False], lang='pl'])
+

This backend implements payments using a popular Polish gateway, Dotpay.pl.

+

Due to API limitations there is no support for transferring purchased items.

+
+
Param seller_id
+

Seller ID assigned by Dotpay

+
+
Param pin
+

PIN assigned by Dotpay

+
+
Param channel
+

Default payment channel (consult reference guide)

+
+
Param lang
+

UI language

+
+
Param lock
+

Whether to disable channels other than the default selected above

+
+
+
+ +
+
+

5.3. Data

+

Some data link :data:`Data_item_1`.

+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/demo.html b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/demo.html new file mode 100644 index 0000000000..a2dee9c985 --- /dev/null +++ b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/demo.html @@ -0,0 +1,1267 @@ + + + + + + + + + + + + + + + 3. Paragraph Level Markup — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • 3. Paragraph Level Markup
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

3. Paragraph Level Markup

+ +
+

3.1. Inline Markup

+

Paragraphs contain text and may contain inline markup: emphasis, strong emphasis, inline literals, +standalone hyperlinks (http://www.python.org), external hyperlinks (Python 5), internal cross-references (example), +external hyperlinks with embedded URIs (Python web site), footnote references +(manually numbered 1, anonymous auto-numbered 3, labeled auto-numbered 2, or symbolic *), +citation references (12), substitution references (EXAMPLE), and inline hyperlink targets +(see Targets below for a reference back to here). Character-level inline markup is also possible +(although exceedingly ugly!) in reStructuredText. Problems are indicated by |problematic| +text (generated by processing errors; this one is intentional).

+

Also with sphinx.ext.autodoc, which I use in the demo, I can link to test_py_module.test.Foo. +It will link you right my code documentation for it.

+

The default role for interpreted text is Title Reference. Here are some explicit interpreted text roles: +a PEP reference (PEP 287); an RFC reference (RFC 2822); a subscript; a superscript; +and explicit roles for standard inline markup.

+

GUI labels are a useful way to indicate that Some action is to be taken by the user. +The GUI label should not run over line-height so as not to interfere with text from adjacent lines.

+

Key-bindings indicate that the read is to press a button on the keyboard or mouse, +for example MMB and Shift-MMB. Another useful markup to indicate a user action +is to use menuselection this can be used to show short and long menus in software. +For example, and menuselection can be seen here that breaks is too long to fit on this line. +My ‣ Software ‣ Some menu ‣ Some sub menu 1 ‣ sub menu 2.

+

Let’s test wrapping and whitespace significance in inline literals: +This is an example of --inline-literal --text, --including some-- +strangely--hyphenated-words.  Adjust-the-width-of-your-browser-window +to see how the text is wrapped.  -- ---- --------  Now note    the +spacing    between the    words of    this sentence    (words +should    be grouped    in pairs).

+

If the --pep-references option was supplied, there should be a live link to PEP 258 here.

+
+
+

3.2. Math

+

This is a test. Here is an equation: +\(X_{0:5} = (X_0, X_1, X_2, X_3, X_4)\). +Here is another:

+
+(1)\[\nabla^2 f = +\frac{1}{r^2} \frac{\partial}{\partial r} +\left( r^2 \frac{\partial f}{\partial r} \right) + +\frac{1}{r^2 \sin \theta} \frac{\partial f}{\partial \theta} +\left( \sin \theta \, \frac{\partial f}{\partial \theta} \right) + +\frac{1}{r^2 \sin^2\theta} \frac{\partial^2 f}{\partial \phi^2}\]
+

You can add a link to equations like the one above (1) by using :eq:.

+
+
+

3.3. Meta

+
+
+

3.4. Blocks

+
+

3.4.1. Literal Blocks

+

Literal blocks are indicated with a double-colon (“::”) at the end of +the preceding paragraph (over there -->). They can be indented:

+
if literal_block:
+    text = 'is left as-is'
+    spaces_and_linebreaks = 'are preserved'
+    markup_processing = None
+
+
+

Or they can be quoted without indentation:

+
>> Great idea!
+>
+> Why didn't I think of that?
+
+
+
+
+

3.4.2. Line Blocks

+
+
This is a line block. It ends with a blank line.
+
+
Each new line begins with a vertical bar (“|”).
+
Line breaks and initial indents are preserved.
+
+
Continuation lines are wrapped portions of long lines; +they begin with a space in place of the vertical bar.
+
+
The left edge of a continuation line need not be aligned with +the left edge of the text above it.
+
+
+
+
This is a second line block.
+

+
Blank lines are permitted internally, but they must begin with a “|”.
+
+

Take it away, Eric the Orchestra Leader!

+
+
+
A one, two, a one two three four
+

+
Half a bee, philosophically,
+
+
must, ipso facto, half not be.
+
+
But half the bee has got to be,
+
+
vis a vis its entity. D’you see?
+

+
+
But can a bee be said to be
+
+
or not to be an entire bee,
+
+
when half the bee is not a bee,
+
+
due to some ancient injury?
+

+
+
+
+
Singing…
+
+
+
+
+

3.4.3. Block Quotes

+

Block quotes consist of indented body elements:

+
+

My theory by A. Elk. Brackets Miss, brackets. This theory goes +as follows and begins now. All brontosauruses are thin at one +end, much much thicker in the middle and then thin again at the +far end. That is my theory, it is mine, and belongs to me and I +own it, and what it is too.

+

—Anne Elk (Miss)

+
+
+
+

3.4.4. Doctest Blocks

+
>>> print 'Python-specific usage examples; begun with ">>>"'
+Python-specific usage examples; begun with ">>>"
+>>> print '(cut and pasted from interactive Python sessions)'
+(cut and pasted from interactive Python sessions)
+
+
+
+
+

3.4.5. Code Blocks

+
# parsed-literal test
+curl -O http://someurl/release-master (1.2.0).tar-gz
+
+
Code Blocks can have captions.
+
{
+"windows": [
+    {
+    "panes": [
+        {
+        "shell_command": [
+            "echo 'did you know'",
+            "echo 'you can inline'"
+        ]
+        },
+        {
+        "shell_command": "echo 'single commands'"
+        },
+        "echo 'for panes'"
+    ],
+    "window_name": "long form"
+    }
+],
+"session_name": "shorthands"
+}
+
+
+
+
+

3.4.5.1. Emphasized lines with line numbers

+
1def some_function():
+2    interesting = False
+3    print 'This line is highlighted.'
+4    print 'This one is not...'
+5    print '...but this one is.'
+
+
+
+
+
+ +
+

3.6. References

+
+

3.6.1. Footnotes

+
+
1(1,2)
+

A footnote contains body elements, consistently indented by at +least 3 spaces.

+

This is the footnote’s second paragraph.

+
+
2(1,2)
+

Footnotes may be numbered, either manually (as in 1) or +automatically using a “#”-prefixed label. This footnote has a +label so it can be referred to from multiple places, both as a +footnote reference (2) and as a hyperlink reference +(label).

+
+
3
+

This footnote is numbered automatically and anonymously using a +label of “#” only.

+
+
*
+

Footnotes may also use symbols, specified with a “*” label. +Here’s a reference to the next footnote: .

+
+
+

This footnote shows the next symbol in the sequence.

+
+
4
+

Here’s an unreferenced footnote, with a reference to a +nonexistent footnote: [5]_.

+
+
+
+
+

3.6.2. Citations

+
+
11
+

This is the citation I made, let’s make this extremely long so that we can tell that it doesn’t follow the normal responsive table stuff.

+
+
12(1,2)
+

This citation has some code blocks in it, maybe some bold and +italics too. Heck, lets put a link to a meta citation 13 too.

+
+
13
+

This citation will have two backlinks.

+
+
+

Here’s a reference to the above, 12, and a [nonexistent] citation.

+

Here is another type of citation: citation

+
+
+

3.6.3. Glossary

+

This is a glossary with definition terms for thing like Writing:

+
+
Documentation

Provides users with the knowledge they need to use something.

+
+
Reading

The process of taking information into ones mind through the use of eyes.

+
+
Writing

The process of putting thoughts into a medium for other people to read.

+
+
+
+
+

3.6.4. Targets

+

This paragraph is pointed to by the explicit “example” target. +A reference can be found under Inline Markup, above. Inline +hyperlink targets are also possible.

+

Section headers are implicit targets, referred to by name. See +Targets, which is a subsection of `Body Elements`_.

+

Explicit external targets are interpolated into references such as “Python 5”.

+

Targets may be indirect and anonymous. Thus this phrase may also +refer to the Targets section.

+

Here’s a `hyperlink reference without a target`_, which generates an error.

+
+
+
+

3.7. Directives

+
+

3.7.1. Contents

+

These are just a sample of the many reStructuredText Directives. For others, please see: +http://docutils.sourceforge.net/docs/ref/rst/directives.html.

+
+
+

3.7.2. Centered text

+

You can create a statement with centered text with .. centered::

+

+This is centered text!

+
+

3.7.3. Images & Figures

+
+

3.7.3.1. Images

+

An image directive (also clickable – a hyperlink reference):

+../../../../_images/yi_jing_01_chien.jpg +
+
+

3.7.3.2. Figures

+
+reStructuredText, the markup syntax +
+

A figure is an image with a caption and/or a legend:

+
+ ++++ + + + + + + + + + + + +

re

Revised, revisited, based on ‘re’ module.

Structured

Structure-enhanced text, structuredtext.

Text

Well it is, isn’t it?

+

This paragraph is also part of the legend.

+
+
+
+

A figure directive with center alignment

+
+../../../../_images/yi_jing_01_chien.jpg +
+

This caption should be centered.

+
+
+
+
+
+

3.7.4. Admonitions

+
+

Attention

+

Directives at large.

+
+
+

Caution

+

Don’t take any wooden nickels.

+
+
+

Danger

+

Mad scientist at work!

+
+
+

Error

+

Does not compute.

+
+
+

Hint

+

It’s bigger than a bread box.

+
+
+

Important

+
    +
  • Wash behind your ears.

  • +
  • Clean up your room.

    +
      +
    • Including the closet.

    • +
    • The bathroom too.

      +
        +
      • Take the trash out of the bathroom.

      • +
      • Clean the sink.

      • +
      +
    • +
    +
  • +
  • Call your mother.

  • +
  • Back up your data.

  • +
+
+
+

Note

+

This is a note. +Equations within a note: +\(G_{\mu\nu} = 8 \pi G (T_{\mu\nu} + \rho_\Lambda g_{\mu\nu})\).

+
+
+

Tip

+

15% if the service is good.

+ +++ + + + + + + + + + + + + +

Example

Thing1

Thing2

Thing3

+
+
+

Warning

+

Strong prose may provoke extreme mental exertion. +Reader discretion is strongly advised.

+
+
+

And, by the way…

+

You can make up your own admonition too.

+
+
+
+

3.7.5. Topics, Sidebars, and Rubrics

+ +
+

Topic Title

+

This is a topic.

+
+

This is a rubric

+
+
+

3.7.6. Target Footnotes

+
+
5(1,2,3)
+

http://www.python.org/

+
+
+
+
+

3.7.7. Replacement Text

+

I recommend you try Python, the best language around 5.

+
+
+

3.7.8. Compound Paragraph

+
+

This paragraph contains a literal block:

+
Connecting... OK
+Transmitting data... OK
+Disconnecting... OK
+
+
+

and thus consists of a simple paragraph, a literal block, and +another simple paragraph. Nonetheless it is semantically one +paragraph.

+
+

This construct is called a compound paragraph and can be produced +with the “compound” directive.

+
+
+ +
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/lists_tables.html b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/lists_tables.html new file mode 100644 index 0000000000..97715c40c9 --- /dev/null +++ b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/lists_tables.html @@ -0,0 +1,1242 @@ + + + + + + + + + + + + + 4. Lists & Tables — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • 4. Lists & Tables
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

4. Lists & Tables

+ +
+

4.1. Lists

+
+

4.1.1. Enumerated Lists

+
    +
  1. Arabic numerals.

    +
      +
    1. lower alpha)

      +
        +
      1. (lower roman)

        +
          +
        1. upper alpha.

          +
            +
          1. upper roman)

          2. +
          +
        2. +
        +
      2. +
      +
    2. +
    +
  2. +
  3. Lists that don’t start at 1:

    +
      +
    1. Three

    2. +
    3. Four

    4. +
    +
      +
    1. C

    2. +
    3. D

    4. +
    +
      +
    1. iii

    2. +
    3. iv

    4. +
    +
  4. +
  5. List items may also be auto-enumerated.

  6. +
+
+
+

4.1.2. Definition Lists

+
+
Term

Definition

+
+
Termclassifier

Definition paragraph 1.

+

Definition paragraph 2.

+
+
Term

Definition

+
+
+
+
+

4.1.3. Option Lists

+

For listing command-line options:

+
+
-a
+

command-line option “a”

+
+
-b file
+

options can have arguments +and long descriptions

+
+
--long
+

options can be long also

+
+
--input=file
+

long options can also have +arguments

+
+
--very-long-option
+

The description can also start on the next line.

+

The description may contain multiple body elements, +regardless of where it starts.

+
+
-x, -y, -z
+

Multiple options are an “option group”.

+
+
-v, --verbose
+

Commonly-seen: short & long options.

+
+
-1 file, --one=file, --two file
+

Multiple options with arguments.

+
+
/V
+

DOS/VMS-style options too

+
+
+

There must be at least two spaces between the option and the description.

+
+
+

4.1.4. Field list

+
+
Author
+

David Goodger

+
+
Address
+

123 Example Street +Example, EX Canada +A1B 2C3

+
+
Contact
+

docutils-develop@lists.sourceforge.net

+
+
Authors
+

Me; Myself; I

+
+
organization
+

humankind

+
+
date
+

$Date: 2012-01-03 19:23:53 +0000 (Tue, 03 Jan 2012) $

+
+
status
+

This is a “work in progress”

+
+
revision
+

$Revision: 7302 $

+
+
version
+

1

+
+
copyright
+

This document has been placed in the public domain. You +may do with it as you wish. You may copy, modify, +redistribute, reattribute, sell, buy, rent, lease, +destroy, or improve it, quote it at length, excerpt, +incorporate, collate, fold, staple, or mutilate it, or do +anything else to it that your or anyone else’s heart +desires.

+
+
field name
+

This is a generic bibliographic field.

+
+
field name 2
+

Generic bibliographic fields may contain multiple body elements.

+

Like this.

+
+
Dedication
+

For Docutils users & co-developers.

+
+
abstract
+

This document is a demonstration of the reStructuredText markup +language, containing examples of all basic reStructuredText +constructs and many advanced constructs.

+
+
+
+
+

4.1.5. Bullet Lists

+
    +
  • A bullet list

    +
      +
    • Nested bullet list.

    • +
    • Nested item 2.

    • +
    +
  • +
  • Item 2.

    +

    Paragraph 2 of item 2.

    +
      +
    • Nested bullet list.

    • +
    • Nested item 2.

      +
        +
      • Third level.

      • +
      • Item 2.

      • +
      +
    • +
    • Nested item 3.

    • +
    +
  • +
  • inline literall

  • +
  • inline literall

  • +
  • inline literall

  • +
+
+

4.1.5.1. Second list level

+
    +
  • here is a list in a second-level section.

  • +
  • yahoo

  • +
  • yahoo

    +
      +
    • yahoo

    • +
    • here is an inner bullet oh

      +
        +
      • one more with an inline literally. yahoo

        +

        heh heh. child. try to beat this embed:

        +
         1# -*- coding: utf-8 -*-
        + 2"""Test Module for sphinx_rtd_theme."""
        + 3
        + 4
        + 5class Foo:
        + 6
        + 7    """Docstring for class Foo.
        + 8
        + 9    This text tests for the formatting of docstrings generated from output
        +10    ``sphinx.ext.autodoc``. Which contain reST, but sphinx nests it in the
        +
        +
        +
      • +
      +
    • +
    • and another. yahoo

    • +
    • yahoo

    • +
    • hi

    • +
    +
  • +
  • and hehe

  • +
+
+
4.1.5.1.1. But deeper down the rabbit hole
+
    +
  • I kept saying that, “deeper down the rabbit hole”. yahoo

    +
      +
    • I cackle at night yahoo.

    • +
    +
  • +
  • I’m so lonely here in GZ guangzhou

  • +
  • A man of python destiny, hopes and dreams. yahoo

    + +
  • +
+
+
+
+
+

4.1.6. Hlists

+
    +
  • First item

  • +
  • Second item

  • +
  • Third item

  • +
+
    +
  • Forth item

  • +
  • Fifth item

  • +
  • Sixths item

  • +
+
+

Hlist with images

+
    +
  • +../../../../_images/yi_jing_01_chien.jpg +
    +

    This is a short caption for a figure.

    +
    +
    +
  • +
+
    +
  • +../../../../_images/yi_jing_01_chien.jpg +
    +

    This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non.

    +
    +
    +
  • +
+
+
+
+

4.1.7. Numbered List

+
    +
  1. One,

  2. +
  3. Two.

  4. +
  5. Three with long text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Sed feugiat sagittis neque quis eleifend. Duis rutrum lectus sit amet mattis suscipit.

  6. +
+
    +
    1. +
    2. Using bullets and letters. (A)

    3. +
    +
  • +
    1. +
    2. Using bullets and letters. (B)

    3. +
    +
  • +
    1. +
    2. Using bullets and letters. (C)

    3. +
    +
  • +
+
+
+
+

4.2. Tables

+
+

4.2.1. Grid Tables

+

Here’s a grid table followed by a simple table:

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Header row, column 1 +(header rows optional)

Header 2

Header 3

Header 4

body row 1, column 1

column 2

column 3

column 4

body row 2

Cells may span columns.

body row 3

Cells may +span rows.

    +
  • Table cells

  • +
  • contain

  • +
  • body elements.

  • +
+

body row 4

body row 5

Cells may also be +empty: -->

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Inputs

Output

A

B

A or B

False

False

False

True

False

True

False

True

True

True

True

True

+
+

4.2.1.1. Giant Tables

+ ++++++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Header 1

Header 2

Header 3

Header 1

Header 2

Header 3

Header 1

Header 2

Header 3

Header 1

Header 2

Header 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

body row 1

column 2

column 3

+
+
+
+

4.2.2. List Tables

+ + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + +
List tables can have captions like this one.

List table

Header 1

Header 2

Header 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu.

Stub Row 1

Row 1

Column 2

Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu.

Stub Row 2

Row 2

Column 2

Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu.

Stub Row 3

Row 3

Column 2

Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu.

+ + ++++ + + + + + +
This is a list table with images in it.
+../../../../_images/yi_jing_01_chien.jpg +
+

This is a short caption for a figure.

+
+
+
+../../../../_images/yi_jing_01_chien.jpg +
+

This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non.

+
+
+
+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/long.html b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/long.html new file mode 100644 index 0000000000..588c89495d --- /dev/null +++ b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/long.html @@ -0,0 +1,921 @@ + + + + + + + + + + + + + 1. Long Sticky Nav — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • 1. Long Sticky Nav
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

1. Long Sticky Nav

+ +

This section demonstrates how the ‘sticky_navigation’ setting behaves when the menu is very long. +When this section is selected, it will make the menu and the main area scroll when you are at the top of the page.

+
+

1.1. Example Menu 1

+

Just a place holder…

+
+
+

1.2. Example Menu 2

+

Just a place holder…

+
+
+

1.3. Example Menu 3

+

Just a place holder…

+
+
+

1.4. Example Menu 4

+

Just a place holder…

+
+
+

1.5. Example Menu 5

+

Just a place holder…

+
+
+

1.6. Example Menu 6

+

Just a place holder…

+
+
+

1.7. Example Menu 7

+

Just a place holder…

+
+
+

1.8. Example Menu 8

+

Just a place holder…

+
+
+

1.9. Example Menu 9

+

Just a place holder…

+
+
+

1.10. Example Menu 10

+

Just a place holder…

+
+
+

1.11. Example Menu 11

+

Just a place holder…

+
+
+

1.12. Example Menu 12

+

Just a place holder…

+
+
+

1.13. Example Menu 13

+

Just a place holder…

+
+
+

1.14. Example Menu 14

+

Just a place holder…

+
+
+

1.15. Example Menu 15

+

Just a place holder…

+
+
+

1.16. Example Menu 16

+

Just a place holder…

+
+
+

1.17. Example Menu 17

+

Just a place holder…

+
+
+

1.18. Example Menu 18

+

Just a place holder…

+
+
+

1.19. Example Menu 19

+

Just a place holder…

+
+
+

1.20. Example Menu 20

+

Just a place holder…

+
+
+

1.21. Example Submenu 1

+

Just a place holder…

+ + + + + +
+
+

1.22. Example Submenu 2

+

Just a place holder…

+
+

1.22.1. Submenu 1

+

Just a place holder…

+
+

1.22.1.1. Subsubmenu 1

+

Just a place holder…

+
+
+
+

1.22.2. Submenu 2

+

Just a place holder…

+
+

1.22.2.1. Subsubmenu 1

+

Just a place holder…

+
+
+
+

1.22.3. Submenu 3

+

Just a place holder…

+
+
+

1.22.4. Submenu 4

+

Just a place holder…

+
+
+

1.22.5. Submenu 5

+

Just a place holder…

+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/structure.html b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/structure.html new file mode 100644 index 0000000000..ed6d9db6c7 --- /dev/null +++ b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/demo/structure.html @@ -0,0 +1,790 @@ + + + + + + + + + + + + + 1. Structural Elements — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • 1. Structural Elements
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

1. Structural Elements

+ +

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lorem neque, interdum in ipsum nec, +finibus dictum velit. Ut eu efficitur arcu, id aliquam erat. In sit amet diam gravida, imperdiet tellus eu, +gravida nisl. Praesent aliquet odio eget libero elementum, quis rhoncus tellus tincidunt. +Suspendisse quis volutpat ipsum. Sed lobortis scelerisque tristique. Aenean condimentum risus tellus, +quis accumsan ipsum laoreet ut. Integer porttitor maximus suscipit. Mauris in posuere sapien. +Aliquam accumsan feugiat ligula, nec fringilla libero commodo sed. Proin et erat pharetra.

+
+

Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis.

+
+

1.1. Document Section

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec.

+
+

1.1.1. Document Subsection

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed.

+
+

1.1.1.1. Document Subsubsection

+

Donec non rutrum lorem. Aenean sagittis metus at pharetra fringilla. Nunc sapien dolor, cursus sed nisi at, +pretium tristique lectus. Sed pellentesque leo lectus, et convallis ipsum euismod a. +Integer at leo vitae felis pretium aliquam fringilla quis odio. Sed pharetra enim accumsan feugiat pretium. +Maecenas at pharetra tortor. Morbi semper eget mi vel finibus. Cras rutrum nulla eros, id feugiat arcu pellentesque ut. +Sed finibus tortor ac nisi ultrices viverra. Duis feugiat malesuada sapien, at commodo ante porttitor ac. +Curabitur posuere mauris mi, vel ornare orci scelerisque sit amet. Suspendisse nec fringilla dui.

+
+
1.1.1.1.1. Document Paragraph
+

Pellentesque nec est in odio ultrices elementum. Vestibulum et hendrerit sapien, quis vulputate turpis. +Suspendisse potenti. Curabitur tristique sit amet lectus non viverra. Phasellus rutrum dapibus turpis sed imperdiet. +Mauris maximus viverra ante. Donec eu egestas mauris. Morbi vulputate tincidunt euismod. Integer vel porttitor neque. +Donec at lacus suscipit, lacinia lectus vel, sagittis lectus.

+
+
+
+
+
+
+

2. Structural Elements 2

+

Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis.

+
+

2.1. Document Section

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec.

+
+

2.1.1. Document Subsection

+
+../../../../_images/yi_jing_01_chien.jpg +
+

This is a caption for a figure. Text should wrap around the caption.

+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. Praesent congue sagittis nisl et suscipit. +Vivamus sagittis risus et egestas commodo.Cras venenatis arcu in pharetra interdum. +Donec quis metus porttitor tellus cursus lobortis. Quisque et orci magna. Fusce rhoncus mi mi, +at vehicula massa rhoncus quis. Mauris augue leo, pretium eget molestie vitae, efficitur nec nulla. +In hac habitasse platea dictumst. Sed sit amet imperdiet purus.

+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/src/pytorch-sphinx-theme/docs/index.html b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/index.html new file mode 100644 index 0000000000..d171e04fef --- /dev/null +++ b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/index.html @@ -0,0 +1,747 @@ + + + + + + + + + + + + + <no title> — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ + + + + + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+
+
    +
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/src/pytorch-sphinx-theme/docs/installing.html b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/installing.html new file mode 100644 index 0000000000..d6799d6732 --- /dev/null +++ b/docs/v1.2.0/src/pytorch-sphinx-theme/docs/installing.html @@ -0,0 +1,669 @@ + + + + + + + + + + + + + Installation — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Installation

+
+

Via Git or Download

+

Symlink or subtree the pytorch_sphinx_theme repository into your documentation at +docs/_themes/pytorch_sphinx_theme then add the following two settings to your Sphinx +conf.py file:

+
html_theme = "pytorch_sphinx_theme"
+html_theme_path = ["_themes", ]
+
+
+
+
+ + +
+ +
+
+ + + + +
+ + + +
+

+ © Copyright 2021, NVIDIA Corporation. + +

+
+ +
+ Built with Sphinx using a theme provided by Read the Docs. +
+ + +
+ +
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/creating_torchscript_module_in_python.html b/docs/v1.2.0/tutorials/creating_torchscript_module_in_python.html new file mode 100644 index 0000000000..dc300c1aed --- /dev/null +++ b/docs/v1.2.0/tutorials/creating_torchscript_module_in_python.html @@ -0,0 +1,784 @@ + + + + + + + + + + + + + Creating a TorchScript Module — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Creating a TorchScript Module
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Creating a TorchScript Module

+

TorchScript is a way to create serializable and optimizable models from PyTorch code. +PyTorch has detailed documentation on how to do this https://pytorch.org/tutorials/beginner/Intro_to_TorchScript_tutorial.html but briefly here is the +here is key background information and the process:

+

PyTorch programs are based around Module s which can be used to compose higher level modules. Modules contain a constructor to set up the modules, parameters and sub-modules +and a forward function which describes how to use the parameters and submodules when the module is invoked.

+

For example, we can define a LeNet module like this:

+
 1import torch.nn as nn
+ 2import torch.nn.functional as F
+ 3
+ 4
+ 5class LeNetFeatExtractor(nn.Module):
+ 6    def __init__(self):
+ 7        super(LeNetFeatExtractor, self).__init__()
+ 8        self.conv1 = nn.Conv2d(1, 6, 3)
+ 9        self.conv2 = nn.Conv2d(6, 16, 3)
+10
+11    def forward(self, x):
+12        x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
+13        x = F.max_pool2d(F.relu(self.conv2(x)), 2)
+14        return x
+15
+16
+17class LeNetClassifier(nn.Module):
+18    def __init__(self):
+19        super(LeNetClassifier, self).__init__()
+20        self.fc1 = nn.Linear(16 * 6 * 6, 120)
+21        self.fc2 = nn.Linear(120, 84)
+22        self.fc3 = nn.Linear(84, 10)
+23
+24    def forward(self, x):
+25        x = torch.flatten(x, 1)
+26        x = F.relu(self.fc1(x))
+27        x = F.relu(self.fc2(x))
+28        x = self.fc3(x)
+29        return x
+30
+31
+32class LeNet(nn.Module):
+33    def __init__(self):
+34        super(LeNet, self).__init__()
+35        self.feat = LeNetFeatExtractor()
+36        self.classifer = LeNetClassifier()
+37
+38    def forward(self, x):
+39        x = self.feat(x)
+40        x = self.classifer(x)
+41        return x
+
+
+

.

+
+

Obviously you may want to consolidate such a simple model into a single module but we can see the composability of PyTorch here

+
+

From here are two pathways for going from PyTorch Python code to TorchScript code: Tracing and Scripting.

+

Tracing follows the path of execution when the module is called and records what happens. +To trace an instance of our LeNet module, we can call torch.jit.trace with an example input.

+
import torch
+
+model = LeNet()
+input_data = torch.empty([1, 1, 32, 32])
+traced_model = torch.jit.trace(model, input_data)
+
+
+

Scripting actually inspects your code with a compiler and generates an equivalent TorchScript program. The difference is that since tracing +is following the execution of your module, it cannot pick up control flow for instance. By working from the Python code, the compiler can +include these components. We can run the script compiler on our LeNet module by calling torch.jit.script

+
import torch
+
+model = LeNet()
+script_model = torch.jit.script(model)
+
+
+

There are reasons to use one path or another, the PyTorch documentation has information on how to choose. From a Torch-TensorRT prespective, there is +better support (i.e your module is more likely to compile) for traced modules because it doesn’t include all the complexities of a complete +programming language, though both paths supported.

+

After scripting or tracing your module, you are given back a TorchScript Module. This contains the code and parameters used to run the module stored +in a intermediate representation that Torch-TensorRT can consume.

+

Here is what the LeNet traced module IR looks like:

+
graph(%self.1 : __torch__.___torch_mangle_10.LeNet,
+    %input.1 : Float(1, 1, 32, 32)):
+    %129 : __torch__.___torch_mangle_9.LeNetClassifier = prim::GetAttr[name="classifer"](%self.1)
+    %119 : __torch__.___torch_mangle_5.LeNetFeatExtractor = prim::GetAttr[name="feat"](%self.1)
+    %137 : Tensor = prim::CallMethod[name="forward"](%119, %input.1)
+    %138 : Tensor = prim::CallMethod[name="forward"](%129, %137)
+    return (%138)
+
+
+

and the LeNet scripted module IR:

+
graph(%self : __torch__.LeNet,
+    %x.1 : Tensor):
+    %2 : __torch__.LeNetFeatExtractor = prim::GetAttr[name="feat"](%self)
+    %x.3 : Tensor = prim::CallMethod[name="forward"](%2, %x.1) # x.py:38:12
+    %5 : __torch__.LeNetClassifier = prim::GetAttr[name="classifer"](%self)
+    %x.5 : Tensor = prim::CallMethod[name="forward"](%5, %x.3) # x.py:39:12
+    return (%x.5)
+
+
+

You can see that the IR preserves the module structure we have in our python code.

+
+
+

Working with TorchScript in Python

+

TorchScript Modules are run the same way you run normal PyTorch modules. You can run the forward pass using the +forward method or just calling the module torch_scirpt_module(in_tensor) The JIT compiler will compile +and optimize the module on the fly and then returns the results.

+
+
+

Saving TorchScript Module to Disk

+

For either traced or scripted modules, you can save the module to disk with the following command

+
import torch
+
+model = LeNet()
+script_model = torch.jit.script(model)
+script_model.save("lenet_scripted.ts")
+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/getting_started_with_cpp_api.html b/docs/v1.2.0/tutorials/getting_started_with_cpp_api.html new file mode 100644 index 0000000000..f8a8d7ef68 --- /dev/null +++ b/docs/v1.2.0/tutorials/getting_started_with_cpp_api.html @@ -0,0 +1,1280 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Getting Started with C++ — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Getting Started with C++ + + ¶ + +

+

+ If you haven’t already, acquire a tarball of the library by following the instructions in + + + Installation + + +

+

+ Using Torch-TensorRT in C++ + + ¶ + +

+

+ Torch-TensorRT C++ API accepts TorchScript modules (generated either from + + + torch.jit.script + + + or + + + torch.jit.trace + + + ) as an input and returns +a Torchscript module (optimized using TensorRT). This requires users to use Pytorch (in python) to generate torchscript modules beforehand. +Please refer to + + Creating TorchScript modules in Python + + section to generate torchscript graphs. +

+ + +

+ [Torch-TensorRT Quickstart] Compiling TorchScript Modules with + + + torchtrtc + + + + ¶ + +

+

+ An easy way to get started with Torch-TensorRT and to check if your model can be supported without extra work is to run it through + + + torchtrtc + + + , which supports almost all features of the compiler from the command line including post training quantization +(given a previously created calibration cache). For example we can compile our lenet model by setting our preferred operating +precision and input size. This new TorchScript file can be loaded into Python (note: you need to + + + import + + + torch_tensorrt + + + before loading +these compiled modules because the compiler extends the PyTorch the deserializer and runtime to execute compiled modules). +

+
+
+
❯ torchtrtc -p f16 lenet_scripted.ts trt_lenet_scripted.ts "(1,1,32,32)"
+
+❯ python3
+Python 3.6.9 (default, Apr 18 2020, 01:56:04)
+[GCC 8.4.0] on linux
+Type "help", "copyright", "credits" or "license" for more information.
+>>> import torch
+>>> import torch_tensorrt
+>>> ts_model = torch.jit.load(“trt_lenet_scripted.ts”)
+>>> ts_model(torch.randn((1,1,32,32)).to(“cuda”).half())
+
+
+
+

+ You can learn more about + + + torchtrtc + + + usage here: + + + torchtrtc + + +

+ + +

+ Working with TorchScript in C++ + + ¶ + +

+

+ If we are developing an application to deploy with C++, we can save either our traced or scripted module using + + + torch.jit.save + + + which will serialize the TorchScript code, weights and other information into a package. This is also where our dependency on Python ends. +

+
+
+
torch_script_module.save("lenet.jit.pt")
+
+
+
+

+ From here we can now load our TorchScript module in C++ +

+
+
+
#include <torch/script.h> // One-stop header.
+
+#include <iostream>
+#include <memory>
+
+int main(int argc, const char* argv[]) {
+    torch::jit::Module module;
+    try {
+        // Deserialize the ScriptModule from a file using torch::jit::load().
+        module = torch::jit::load("<PATH TO SAVED TS MOD>");
+    }
+    catch (const c10::Error& e) {
+        std::cerr << "error loading the model\n";
+        return -1;
+    }
+
+    std::cout << "ok\n";
+
+
+
+

+ You can do full training and inference in C++ with PyTorch / LibTorch if you would like, you can even define your modules in C++ and +have access to the same powerful tensor library that backs PyTorch. (For more information: + + https://pytorch.org/cppdocs/ + + ). +For instance we can do inference with our LeNet module like this: +

+
+
+
mod.eval();
+torch::Tensor in = torch::randn({1, 1, 32, 32});
+auto out = mod.forward(in);
+
+
+
+

+ and to run on the GPU: +

+
+
+
mod.eval();
+mod.to(torch::kCUDA);
+torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA);
+auto out = mod.forward(in);
+
+
+
+

+ As you can see it is pretty similar to the Python API. When you call the + + + forward + + + method, you invoke the PyTorch JIT compiler, which will optimize and run your TorchScript code. +

+ + +

+ Compiling with Torch-TensorRT in C++ + + ¶ + +

+

+ We are also at the point were we can compile and optimize our module with Torch-TensorRT, but instead of in a JIT fashion we must do it ahead-of-time (AOT) i.e. before we start doing actual inference work +since it takes a bit of time to optimize the module, it would not make sense to do this every time you run the module or even the first time you run it. +

+

+ With our module loaded, we can feed it into the Torch-TensorRT compiler. When we do so we must provide some information on the expected input size and also configure any additional settings. +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA});
+    auto trt_mod = torch_tensorrt::CompileGraph(mod, std::vector<torch_tensorrt::CompileSpec::InputRange>{{in.sizes()}});
+    auto out = trt_mod.forward({in});
+
+
+
+

+ Thats it! Now the graph runs primarily not with the JIT compiler but using TensorRT (though we execute the graph using the JIT runtime). +

+

+ We can also set settings like operating precision to run in FP16. +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF);
+    auto input_sizes = std::vector<torch_tensorrt::CompileSpec::InputRange>({in.sizes()});
+    torch_tensorrt::CompileSpec info(input_sizes);
+    info.enable_precisions.insert(torch::kHALF);
+    auto trt_mod = torch_tensorrt::CompileGraph(mod, info);
+    auto out = trt_mod.forward({in});
+
+
+
+

+ And now we are running the module in FP16 precision. You can then save the module to load later. +

+
+
+
trt_mod.save("<PATH TO SAVED TRT/TS MOD>")
+
+
+
+

+ Torch-TensorRT compiled TorchScript modules are loaded in the same way as normal TorchScript module. Make sure your deployment application is linked against + + + libtorchtrt.so + + +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+
+int main(int argc, const char* argv[]) {
+    torch::jit::Module module;
+    try {
+        // Deserialize the ScriptModule from a file using torch::jit::load().
+        module = torch::jit::load("<PATH TO SAVED TRT/TS MOD>");
+    }
+    catch (const c10::Error& e) {
+        std::cerr << "error loading the model\n";
+        return -1;
+    }
+
+    torch::Tensor in = torch::randn({1, 1, 32, 32}, torch::kCUDA);
+    auto out = mod.forward(in);
+
+    std::cout << "ok\n";
+}
+
+
+
+

+ If you want to save the engine produced by Torch-TensorRT to use in a TensorRT application you can use the + + + ConvertGraphToTRTEngine + + + API. +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+...
+
+    mod.to(at::kCUDA);
+    mod.eval();
+
+    auto in = torch::randn({1, 1, 32, 32}, {torch::kCUDA}).to(torch::kHALF);
+    auto input_sizes = std::vector<torch_tensorrt::CompileSpec::InputRange>({in.sizes()});
+    torch_tensorrt::CompileSpec info(input_sizes);
+    info.enabled_precisions.insert(torch::kHALF);
+    auto trt_mod = torch_tensorrt::ConvertGraphToTRTEngine(mod, "forward", info);
+    std::ofstream out("/tmp/engine_converted_from_jit.trt");
+    out << engine;
+    out.close();
+
+
+
+ + +

+ Under The Hood + + ¶ + +

+

+ When a module is provided to Torch-TensorRT, the compiler starts by mapping a graph like you saw above to a graph like this: +

+
+
+
graph(%input.2 : Tensor):
+    %2 : Float(84, 10) = prim::Constant[value=<Tensor>]()
+    %3 : Float(120, 84) = prim::Constant[value=<Tensor>]()
+    %4 : Float(576, 120) = prim::Constant[value=<Tensor>]()
+    %5 : int = prim::Constant[value=-1]() # x.py:25:0
+    %6 : int[] = prim::Constant[value=annotate(List[int], [])]()
+    %7 : int[] = prim::Constant[value=[2, 2]]()
+    %8 : int[] = prim::Constant[value=[0, 0]]()
+    %9 : int[] = prim::Constant[value=[1, 1]]()
+    %10 : bool = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %11 : int = prim::Constant[value=1]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %12 : bool = prim::Constant[value=0]() # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %self.classifer.fc3.bias : Float(10) = prim::Constant[value= 0.0464  0.0383  0.0678  0.0932  0.1045 -0.0805 -0.0435 -0.0818  0.0208 -0.0358 [ CUDAFloatType{10} ]]()
+    %self.classifer.fc2.bias : Float(84) = prim::Constant[value=<Tensor>]()
+    %self.classifer.fc1.bias : Float(120) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv2.weight : Float(16, 6, 3, 3) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv2.bias : Float(16) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv1.weight : Float(6, 1, 3, 3) = prim::Constant[value=<Tensor>]()
+    %self.feat.conv1.bias : Float(6) = prim::Constant[value= 0.0530 -0.1691  0.2802  0.1502  0.1056 -0.1549 [ CUDAFloatType{6} ]]()
+    %input0.4 : Tensor = aten::_convolution(%input.2, %self.feat.conv1.weight, %self.feat.conv1.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %input0.5 : Tensor = aten::relu(%input0.4) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %input1.2 : Tensor = aten::max_pool2d(%input0.5, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %input0.6 : Tensor = aten::_convolution(%input1.2, %self.feat.conv2.weight, %self.feat.conv2.bias, %9, %8, %9, %12, %8, %11, %12, %12, %10) # ~/.local/lib/python3.6/site-packages/torch/nn/modules/conv.py:346:0
+    %input2.1 : Tensor = aten::relu(%input0.6) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %x.1 : Tensor = aten::max_pool2d(%input2.1, %7, %6, %8, %9, %12) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:539:0
+    %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0
+    %27 : Tensor = aten::matmul(%input.1, %4)
+    %28 : Tensor = trt::const(%self.classifer.fc1.bias)
+    %29 : Tensor = aten::add_(%28, %27, %11)
+    %input0.2 : Tensor = aten::relu(%29) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %31 : Tensor = aten::matmul(%input0.2, %3)
+    %32 : Tensor = trt::const(%self.classifer.fc2.bias)
+    %33 : Tensor = aten::add_(%32, %31, %11)
+    %input1.1 : Tensor = aten::relu(%33) # ~/.local/lib/python3.6/site-packages/torch/nn/functional.py:1063:0
+    %35 : Tensor = aten::matmul(%input1.1, %2)
+    %36 : Tensor = trt::const(%self.classifer.fc3.bias)
+    %37 : Tensor = aten::add_(%36, %35, %11)
+    return (%37)
+(CompileGraph)
+
+
+
+

+ The graph has now been transformed from a collection of modules, each managing their own parameters into a single graph with the parameters inlined +into the graph and all of the operations laid out. Torch-TensorRT has also executed a number of optimizations and mappings to make the graph easier to translate to TensorRT. +From here the compiler can assemble the TensorRT engine by following the dataflow through the graph. +

+

+ When the graph construction phase is complete, Torch-TensorRT produces a serialized TensorRT engine. From here depending on the API, this engine is returned +to the user or moves into the graph construction phase. Here Torch-TensorRT creates a JIT Module to execute the TensorRT engine which will be instantiated and managed +by the Torch-TensorRT runtime. +

+

+ Here is the graph that you get back after compilation is complete: +

+
+
+
graph(%self_1 : __torch__.lenet, %input_0 : Tensor):
+    %1 : ...trt.Engine = prim::GetAttr[name="lenet"](%self_1)
+    %3 : Tensor[] = prim::ListConstruct(%input_0)
+    %4 : Tensor[] = trt::execute_engine(%3, %1)
+    %5 : Tensor = prim::ListUnpack(%4)
+    return (%5)
+
+
+
+

+ You can see the call where the engine is executed, after extracting the attribute containing the engine and constructing a list of inputs, then returns the tensors back to the user. +

+ + +

+ Working with Unsupported Operators + + ¶ + +

+

+ Torch-TensorRT is a new library and the PyTorch operator library is quite large, so there will be ops that aren’t supported natively by the compiler. You can either use the composition techinques +shown above to make modules are fully Torch-TensorRT supported and ones that are not and stitch the modules together in the deployment application or you can register converters for missing ops. +

+
+
+

+ You can check support without going through the full compilation pipleine using the + + + torch_tensorrt::CheckMethodOperatorSupport(const + + + torch::jit::Module& + + + module, + + + std::string + + + method_name) + + + api +to see what operators are not supported. + + + torchtrtc + + + automatically checks modules with this method before starting compilation and will print out a list of operators that are not supported. +

+
+
+ + +

+ Registering Custom Converters + + ¶ + +

+

+ Operations are mapped to TensorRT through the use of modular converters, a function that takes a node from a the JIT graph and produces an equivalent layer or subgraph in TensorRT. +Torch-TensorRT ships with a library of these converters stored in a registry, that will be executed depending on the node being parsed. For instance a + + + aten::relu(%input0.4) + + + instruction will trigger +the relu converter to be run on it, producing an activation layer in the TensorRT graph. But since this library is not exhaustive you may need to write your own to get Torch-TensorRT +to support your module. +

+

+ Shipped with the Torch-TensorRT distribution are the internal core API headers. You can therefore access the converter registry and add a converter for the op you need. +

+

+ For example, if we try to compile a graph with a build of Torch-TensorRT that doesn’t support the flatten operation ( + + + aten::flatten + + + ) you may see this error: +

+
+
+
terminate called after throwing an instance of 'torch_tensorrt::Error'
+what():  [enforce fail at core/conversion/conversion.cpp:109] Expected converter to be true but got false
+Unable to convert node: %input.1 : Tensor = aten::flatten(%x.1, %11, %5) # x.py:25:0 (conversion.AddLayer)
+Schema: aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)
+Converter for aten::flatten requested, but no such converter was found.
+If you need a converter for this operator, you can try implementing one yourself
+or request a converter: https://www.github.com/NVIDIA/Torch-TensorRT/issues
+
+
+
+

+ We can register a converter for this operator in our application. All of the tools required to build a converter can be imported by including + + + torch_tensorrt/core/conversion/converters/converters.h + + + . +We start by creating an instance of the self-registering class + + + torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns() + + + which will register converters +in the global converter registry, associating a function schema like + + + aten::flatten.using_ints(Tensor + + + self, + + + int + + + start_dim=0, + + + int + + + end_dim=-1) + + + -> + + + (Tensor) + + + with a lambda that +will take the state of the conversion, the node/operation in question to convert and all of the inputs to the node and produces as a side effect a new layer in the TensorRT network. +Arguments are passed as a vector of inspectable unions of TensorRT + + + ITensors + + + and Torch + + + IValues + + + in the order arguments are listed in the schema. +

+

+ Below is a implementation of a + + + aten::flatten + + + converter that we can use in our application. You have full access to the Torch and TensorRT libraries in the converter implementation. So +for example we can quickly get the output size by just running the operation in PyTorch instead of implementing the full calculation outself like we do below for this flatten converter. +

+
+
+
#include "torch/script.h"
+#include "torch_tensorrt/torch_tensorrt.h"
+#include "torch_tensorrt/core/conversion/converters/converters.h"
+
+static auto flatten_converter = torch_tensorrt::core::conversion::converters::RegisterNodeConversionPatterns()
+    .pattern({
+        "aten::flatten.using_ints(Tensor self, int start_dim=0, int end_dim=-1) -> (Tensor)",
+        [](torch_tensorrt::core::conversion::ConversionCtx* ctx,
+           const torch::jit::Node* n,
+           torch_tensorrt::core::conversion::converters::args& args) -> bool {
+            auto in = args[0].ITensor();
+            auto start_dim = args[1].unwrapToInt();
+            auto end_dim = args[2].unwrapToInt();
+            auto in_shape = torch_tensorrt::core::util::toVec(in->getDimensions());
+            auto out_shape = torch::flatten(torch::rand(in_shape), start_dim, end_dim).sizes();
+
+            auto shuffle = ctx->net->addShuffle(*in);
+            shuffle->setReshapeDimensions(torch_tensorrt::core::util::toDims(out_shape));
+            shuffle->setName(torch_tensorrt::core::util::node_info(n).c_str());
+
+            auto out_tensor = ctx->AssociateValueAndTensor(n->outputs()[0], shuffle->getOutput(0));
+            return true;
+        }
+    });
+
+int main() {
+    ...
+
+
+
+

+ To use this converter in Python, it is recommended to use PyTorch’s + + C++ / CUDA Extention + + template to wrap your library of converters into a + + + .so + + + that you can load with + + + ctypes.CDLL() + + + in your Python application. +

+

+ You can find more information on all the details of writing converters in the contributors documentation ( + + + Writing Converters + + + ). +If you find yourself with a large library of converter implementations, do consider upstreaming them, PRs are welcome and it would be great for the community to benefit as well. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/getting_started_with_fx_path.html b/docs/v1.2.0/tutorials/getting_started_with_fx_path.html new file mode 100644 index 0000000000..21c4c88def --- /dev/null +++ b/docs/v1.2.0/tutorials/getting_started_with_fx_path.html @@ -0,0 +1,981 @@ + + + + + + + + + + + + + Torch-TensorRT (FX Frontend) User Guide — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Torch-TensorRT (FX Frontend) User Guide
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Torch-TensorRT (FX Frontend) User Guide

+

Torch-TensorRT (FX Frontend) is a tool that can convert a PyTorch model through torch.fx to an +TensorRT engine optimized targeting running on Nvidia GPUs. TensorRT is the inference engine +developed by NVIDIA which composed of various kinds of optimization including kernel fusion, +graph optimization, low precision, etc.. This tool is developed in Python environment which allows this +workflow to be very accessible to researchers and engineers. There are a few stages that a +user want to use this tool and we will introduce them here.

+

> Torch-TensorRT (FX Frontend) is in Beta and currently it is recommended to work with PyTorch nightly.

+
# Test an example by
+$ python py/torch_tensorrt/fx/example/lower_example.py
+
+
+
+

Converting a PyTorch Model to TensorRT Engine

+

In general, users are welcome to use the compile() to finish the conversion from a model to tensorRT engine. It is a +wrapper API that consists of the major steps needed to finish this converison. Please refer to an example usage in lower_example.py file under examples/fx.

+
def compile(
+    module: nn.Module,
+    input,
+    max_batch_size=2048,
+    max_workspace_size=33554432,
+    explicit_batch_dimension=False,
+    lower_precision=LowerPrecision.FP16,
+    verbose_log=False,
+    timing_cache_prefix="",
+    save_timing_cache=False,
+    cuda_graph_batch_size=-1,
+    dynamic_batch=True,
+) -> nn.Module:
+
+    """
+    Takes in original module, input and lowering setting, run lowering workflow to turn module
+    into lowered module, or so called TRTModule.
+
+    Args:
+        module: Original module for lowering.
+        input: Input for module.
+        max_batch_size: Maximum batch size (must be >= 1 to be set, 0 means not set)
+        max_workspace_size: Maximum size of workspace given to TensorRT.
+        explicit_batch_dimension: Use explicit batch dimension in TensorRT if set True, otherwise use implicit batch dimension.
+        lower_precision: lower_precision config given to TRTModule.
+        verbose_log: Enable verbose log for TensorRT if set True.
+        timing_cache_prefix: Timing cache file name for timing cache used by fx2trt.
+        save_timing_cache: Update timing cache with current timing cache data if set to True.
+        cuda_graph_batch_size: Cuda graph batch size, default to be -1.
+        dynamic_batch: batch dimension (dim=0) is dynamic.
+    Returns:
+        A torch.nn.Module lowered by TensorRT.
+    """
+
+
+

In this section, we will go through an example to illustrate the major steps that fx path uses. +Users can refer to fx2trt_example.py file in examples/fx.

+
    +
  • Step 1: Trace the model with acc_tracer

  • +
+

Acc_tracer is a tracer inheritated from FX tracer. It comes with args normalizer to convert all args to kwargs and pass to TRT converters.

+
import torch_tensorrt.fx.tracer.acc_tracer.acc_tracer as acc_tracer
+
+# Build the model which needs to be a PyTorch nn.Module.
+my_pytorch_model = build_model()
+
+# Prepare inputs to the model. Inputs have to be a List of Tensors
+inputs = [Tensor, Tensor, ...]
+
+# Trace the model with acc_tracer.
+acc_mod = acc_tracer.trace(my_pytorch_model, inputs)
+
+
+

Common Errors:

+

symbolically traced variables cannot be used as inputs to control flow +This means the model contains dynamic control flow. Please refer to section “Dynamic Control Flow” in FX guide.

+
    +
  • Step 2: Build TensorRT engine

  • +
+

There are two different modes for how TensorRT handles batch dimension, explicit batch dimension and implicit batch dimension. This mode was used by early versions of TensorRT, and is now deprecated but continues to be supported for backwards compatibility. In explicit batch mode, all dimensions are explicit and can be dynamic, that is their length can change at execution time. Many new features, such as dynamic shapes and loops, are available only in this mode. User can still choose to use implicit batch mode when they set explicit_batch_dimension=False in compile(). We do not recommend to use it since it will lack of support in future TensorRT versions.

+

Explicit batch is the default mode and it must be set for dynamic shape. For most of vision task, user can choose to enable dynamic_batch in compile() if they want to get the similar effects as implicit mode where only batch dimension changes. It has some requirements: +1. Shapes of inputs, outputs and activations are fixed except batch dimension. +2. Inputs, outputs and activations have batch dimension as the major dimension. +3. All the operators in the model do not modify batch dimension (permute, transpose, split, etc.) or compute over batch dimension (sum, softmax, etc.).

+

For examples of the last path, if we have a 3D tensor t shaped as (batch, sequence, dimension), operations such as torch.transpose(0, 2). If any of these three are not satisfied, we’ll need to specify InputTensorSpec as inputs with dynamic range.

+

c

+
+

import deeplearning.trt.fx2trt.converter.converters +from torch.fx.experimental.fx2trt.fx2trt import InputTensorSpec, TRTInterpreter

+

# InputTensorSpec is a dataclass we use to store input information. +# There’re two ways we can build input_specs. +# Option 1, build it manually. +input_specs = [

+
+

InputTensorSpec(shape=(1, 2, 3), dtype=torch.float32), +InputTensorSpec(shape=(1, 4, 5), dtype=torch.float32),

+
+

] +# Option 2, build it using sample_inputs where user provide a sample +inputs = [ +torch.rand((1,2,3), dtype=torch.float32), +torch.rand((1,4,5), dtype=torch.float32), +] +input_specs = InputTensorSpec.from_tensors(inputs)

+

# IMPORTANT: If dynamic shape is needed, we need to build it slightly differently. +input_specs = [

+
+
+
InputTensorSpec(

shape=(-1, 2, 3), +dtype=torch.float32, +# Currently we only support one set of dynamic range. User may set other dimensions but it is not promised to work for any models +# (min_shape, optimize_target_shape, max_shape) +# For more information refer to fx/input_tensor_spec.py +shape_ranges = [

+
+

((1, 2, 3), (4, 2, 3), (100, 2, 3)),

+
+

],

+
+
+

), +InputTensorSpec(shape=(1, 4, 5), dtype=torch.float32),

+
+

]

+

# Build a TRT interpreter. Set explicit_batch_dimension accordingly. +interpreter = TRTInterpreter(

+
+

acc_mod, input_specs, explicit_batch_dimension=True/False

+
+

)

+

# The output of TRTInterpreter run() is wrapped as TRTInterpreterResult. +# The TRTInterpreterResult contains required parameter to build TRTModule, +# and other informational output from TRTInterpreter run. +class TRTInterpreterResult(NamedTuple):

+
+

engine: Any +input_names: Sequence[str] +output_names: Sequence[str] +serialized_cache: bytearray

+
+

#max_batch_size: set accordingly for maximum batch size you will use. +#max_workspace_size: set to the maximum size we can afford for temporary buffer +#lower_precision: the precision model layers are running on (TensorRT will choose the best perforamnce precision). +#sparse_weights: allow the builder to examine weights and use optimized functions when weights have suitable sparsity +#force_fp32_output: force output to be fp32 +#strict_type_constraints: Usually we should set it to False unless we want to control the precision of certain layer for numeric #reasons. +#algorithm_selector: set up algorithm selection for certain layer +#timing_cache: enable timing cache for TensorRT +#profiling_verbosity: TensorRT logging level +trt_interpreter_result = interpreter.run(

+
+

max_batch_size=64, +max_workspace_size=1 << 25, +sparse_weights=False, +force_fp32_output=False, +strict_type_constraints=False, +algorithm_selector=None, +timing_cache=None, +profiling_verbosity=None,

+
+

)

+
+

Common Errors:

+

RuntimeError: Conversion of function xxx not currently supported! +- This means we don’t have the support for this xxx operator. Please refer to section “How to add a missing op” below for further instructions.

+
    +
  • Step 3: Run the model

  • +
+

One way is using TRTModule, which is basically a PyTorch nn.Module.

+
from torch_tensorrt.fx import TRTModule
+mod = TRTModule(
+    trt_interpreter_result.engine,
+    trt_interpreter_result.input_names,
+    trt_interpreter_result.output_names)
+# Just like all other PyTorch modules
+outputs = mod(*inputs)
+torch.save(mod, "trt.pt")
+reload_trt_mod = torch.load("trt.pt")
+reload_model_output = reload_trt_mod(*inputs)
+
+
+

So far, we give a detailed explanation of major steps in convterting a PyTorch model into TensorRT engine. Users are welcome to refer to the source code for some parameters explanations. In the converting scheme, there are two important actions in it. One is acc tracer which helps us to convert a PyTorch model to acc graph. The other is FX path converter which helps to convert the acc graph’s operation to corresponding TensorRT operation and build up the TensoRT engine for it.

+
+
+

Acc Tracer

+

Acc tracer is a custom FX symbolic tracer. It does a couple more things compare to the vanilla FX symbolic tracer. We mainly depend on it to convert PyTorch ops or builtin ops to acc ops. There are two main purposes for fx2trt to use acc ops:

+
    +
  1. there’re many ops that do similar things in PyTorch ops and builtin ops such like torch.add, builtin.add and torch.Tensor.add. Using acc tracer, we normalize these three ops to a single acc_ops.add. This helps reduce the number of converters we need to write.

  2. +
  3. acc ops only have kwargs which makes writing converter easier as we don’t need to add additional logic to find arguments in args and kwargs.

  4. +
+
+
+

FX2TRT

+

After symbolic tracing, we have the graph representation of a PyTorch model. fx2trt leverages the power of fx.Interpreter. fx.Interpreter goes through the whole graph node by node and calls the function that node represents. fx2trt overrides the original behavior of calling the function with invoking corresponding converts for each node. Each converter function adds corresponding TensorRT layer(s).

+

Below is an example of a converter function. The decorator is used to register this converter function with the corresponding node. In this example, we register this converter to a fx node whose target is acc_ops.sigmoid.

+
@tensorrt_converter(acc_ops.sigmoid)
+def acc_ops_sigmoid(network, target, args, kwargs, name):
+    """
+    network: TensorRT network. We'll be adding layers to it.
+
+    The rest arguments are attributes of fx node.
+    """
+    input_val = kwargs['input']
+
+    if not isinstance(input_val, trt.tensorrt.ITensor):
+        raise RuntimeError(f'Sigmoid received input {input_val} that is not part '
+                        'of the TensorRT region!')
+
+    layer = network.add_activation(input=input_val, type=trt.ActivationType.SIGMOID)
+    layer.name = name
+    return layer.get_output(0)
+
+
+
+

How to Add a Missing Op

+

You can actually add it wherever you want just need to remember import the file so that all acc ops and mapper will be registered before tracing with acc_tracer.

+
    +
  • Step 1. Add a new acc op

  • +
+

TODO: Need to explain more on the logistic of acc op like when we want to break down an op and when we want to reuse other ops.

+

In acc tracer, we convert nodes in the graph to acc ops if there’s a mapping registered for the node to an acc op.

+

In order to make the conversion to acc ops to happen, there’re two things required. One is that there should be an acc op function defined and the other is there should be a mapping registered.

+

Defining an acc op is simple, we first just need a function and register the function as an acc op via this decorator acc_normalizer.py. e.g. the following code adds an acc op named foo() which adds two given inputs.

+
# NOTE: all acc ops should only take kwargs as inputs, therefore we need the "*"
+# at the beginning.
+@register_acc_op
+def foo(*, input, other, alpha):
+    return input + alpha * other
+
+
+

There’re two ways to register a mapping. One is register_acc_op_mapping(). Let’s register a mapping from torch.add to foo() we just created above. We need to add decorator register_acc_op_mapping to it.

+
this_arg_is_optional = True
+
+@register_acc_op_mapping(
+    op_and_target=("call_function", torch.add),
+    arg_replacement_tuples=[
+        ("input", "input"),
+        ("other", "other"),
+        ("alpha", "alpha", this_arg_is_optional),
+    ],
+)
+@register_acc_op
+def foo(*, input, other, alpha=1.0):
+    return input + alpha * other
+
+
+

op_and_target determines which node will trigger this mapping. op and target are the attributes of FX node. In acc_normalization when we see a node with the same op and target as set in the op_and_target, we will trigger the mapping. Since we want to map from torch.add, then op would be call_function and target would be torch.add. arg_replacement_tuples determines how we construct kwargs for new acc op node using args and kwargs from original node. Each tuple in arg_replacement_tuples represents one argument mapping rule. It contains two or three elements. The third element is a boolean variable that determines whether this kwarg is optional in original node. We only need to specify the third element if it’s True. The first element is the argument name in original node which will be used as the acc op node’s argument whose name is the second element in the tuple. The sequence of the tuples does matter because the position of the tuple determines where the argument is in original node’s args. We use this information to map args from original node to kwargs in acc op node. +We don’t have to specify arg_replacement_tuples if none of the followings are true.

+
    +
  1. kwargs of original nodes and acc op nodes have different name.

  2. +
  3. there’re optional arguments.

  4. +
+

The other way to register a mapping is through register_custom_acc_mapper_fn(). This one is designed to reduce the redundant op registration as it allows you to use a function to map to one or more existing acc ops throught some combinations. In the function, you can do basically whatever you want. Let’s use an example to explain how it works.

+
@register_acc_op
+def foo(*, input, other, alpha=1.0):
+    return input + alpha * other
+
+@register_custom_acc_mapper_fn(
+    op_and_target=("call_function", torch.add),
+    arg_replacement_tuples=[
+        ("input", "input"),
+        ("other", "other"),
+        ("alpha", "alpha", this_arg_is_optional),
+    ],
+)
+def custom_mapper(node: torch.fx.Node, _: nn.Module) -> torch.fx.Node:
+    """
+    `node` is original node, which is a call_function node with target
+    being torch.add.
+    """
+    alpha = 1
+    if "alpha" in node.kwargs:
+        alpha = node.kwargs["alpha"]
+    foo_kwargs = {"input": node["input"], "other": node["other"], "alpha": alpha}
+    with node.graph.inserting_before(node):
+        foo_node = node.graph.call_function(foo, kwargs=foo_kwargs)
+        foo_node.meta = node.meta.copy()
+        return foo_node
+
+
+

In the custom mapper function, we construct an acc op node and return it. The node we returns here would take over all the children nodes of original nodes acc_normalizer.py.

+

The last step would be adding unit test for the new acc op or mapper function we added. The place to add the unit test is here test_acc_tracer.py.

+
    +
  • Step 2. Add a new converter

  • +
+

All the developed converters for acc ops are all in acc_op_converter.py. It could give you a good example of how the converter is added.

+

Essentially, the converter is the mapping mechanism that maps the acc ops to a TensorRT layer. If we are able to find all the TensorRT layers we need we can get start to add a converter for the node using TensorRT APIs.

+
@tensorrt_converter(acc_ops.sigmoid)
+def acc_ops_sigmoid(network, target, args, kwargs, name):
+    """
+    network: TensorRT network. We'll be adding layers to it.
+
+    The rest arguments are attributes of fx node.
+    """
+    input_val = kwargs['input']
+
+    if not isinstance(input_val, trt.tensorrt.ITensor):
+        raise RuntimeError(f'Sigmoid received input {input_val} that is not part '
+                        'of the TensorRT region!')
+
+    layer = network.add_activation(input=input_val, type=trt.ActivationType.SIGMOID)
+    layer.name = name
+    return layer.get_output(0)
+
+
+

We need to use tensorrt_converter decorator to register the converter. The argument for the decorator is the target of the fx node that we need to convert. In the converter, we can find the inputs to the fx node in kwargs. As in the example, the original node is acc_ops.sigmoid which only has one argument “input” in acc_ops.py. We get the input and check if it’s a TensorRT tensor. After that, we add a sigmoid layer to TensorRT network and return the output of the layer. The output we returned will be passed to the children nodes of acc_ops.sigmoid by fx.Interpreter.

+

What if we can not find corresponding layers in TensorRT that do the same thing as the node.

+

In this case, we would need to do a bit more work. TensorRT provides plugins which serves as custom layers. We have not implement this feature yet. We will update once it is enabled.

+

Last step would be adding the unit test for the new converter we added. User could add corresponding unit test in this folder.

+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/getting_started_with_python_api.html b/docs/v1.2.0/tutorials/getting_started_with_python_api.html new file mode 100644 index 0000000000..e063850389 --- /dev/null +++ b/docs/v1.2.0/tutorials/getting_started_with_python_api.html @@ -0,0 +1,654 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Using Torch-TensorRT in Python — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ Using Torch-TensorRT in Python + + ¶ + +

+

+ Torch-TensorRT Python API accepts a + + + `torch.nn.Module + + + as an input. Under the hood, it uses + + + torch.jit.script + + + to convert the input module into a +TorchScript module. To compile your input + + + `torch.nn.Module + + + with Torch-TensorRT, all you need to do is provide the module and inputs +to Torch-TensorRT and you will be returned an optimized TorchScript module to run or add into another PyTorch module. Inputs +is a list of + + + torch_tensorrt.Input + + + classes which define input’s shape, datatype and memory format. You can also specify settings such as +operating precision for the engine or target device. After compilation you can save the module just like any other module +to load in a deployment application. In order to load a TensorRT/TorchScript module, make sure you first import + + + torch_tensorrt + + + . +

+
+
+
import torch_tensorrt
+
+...
+
+model = MyModel().eval() # torch module needs to be in eval (not training) mode
+
+inputs = [torch_tensorrt.Input(
+            min_shape=[1, 1, 16, 16],
+            opt_shape=[1, 1, 32, 32],
+            max_shape=[1, 1, 64, 64],
+            dtype=torch.half,
+        )]
+enabled_precisions = {torch.float, torch.half} # Run with fp16
+
+trt_ts_module = torch_tensorrt.compile(model, inputs=inputs, enabled_precisions=enabled_precisions)
+
+input_data = input_data.to('cuda').half()
+result = trt_ts_module(input_data)
+torch.jit.save(trt_ts_module, "trt_ts_module.ts")
+
+
+
+
+
+
# Deployment application
+import torch
+import torch_tensorrt
+
+trt_ts_module = torch.jit.load("trt_ts_module.ts")
+input_data = input_data.to('cuda').half()
+result = trt_ts_module(input_data)
+
+
+
+

+ Torch-TensorRT python API also provides + + + torch_tensorrt.ts.compile + + + which accepts a TorchScript module as input. +The torchscript module can be obtained via scripting or tracing (refer to + + creating_torchscript_module_in_python + + ). + + + torch_tensorrt.ts.compile + + + accepts a Torchscript module +and a list of + + + torch_tensorrt.Input + + + classes. +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/installation.html b/docs/v1.2.0/tutorials/installation.html new file mode 100644 index 0000000000..2a810c0419 --- /dev/null +++ b/docs/v1.2.0/tutorials/installation.html @@ -0,0 +1,1813 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Installation — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ + +

+ Installation + + ¶ + +

+

+ Precompiled Binaries + + ¶ + +

+

+ Dependencies + + ¶ + +

+

+ You need to have either PyTorch or LibTorch installed based on if you are using Python or C++ +and you must have CUDA, cuDNN and TensorRT installed. +

+
+ +
+

+ Python Package + + ¶ + +

+

+ You can install the python package using +

+
+
+
pip3 install torch-tensorrt -f https://github.com/NVIDIA/Torch-TensorRT/releases
+
+
+
+ + +

+ C++ Binary Distribution + + ¶ + +

+

+ Precompiled tarballs for releases are provided here: + + https://github.com/NVIDIA/Torch-TensorRT/releases + +

+ + +

+ Compiling From Source + + ¶ + +

+ + +

+ Dependencies for Compilation + + ¶ + +

+

+ Torch-TensorRT is built with Bazel, so begin by installing it. +

+
+
+ +
+
+
export BAZEL_VERSION=$(cat <PATH_TO_TORCHTRT_ROOT>/.bazelversion)
+mkdir bazel
+cd bazel
+curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-dist.zip
+unzip bazel-$BAZEL_VERSION-dist.zip
+bash ./compile.sh
+cp output/bazel /usr/local/bin/
+
+
+
+
+
+

+ You will also need to have CUDA installed on the system (or if running in a container, the system must have +the CUDA driver installed and the container must have CUDA) +

+

+ The correct LibTorch version will be pulled down for you by bazel. +

+
+
+

+ NOTE: For best compatability with official PyTorch, use torch==1.10.0+cuda113, TensorRT 8.0 and cuDNN 8.2 for CUDA 11.3 however Torch-TensorRT itself supports +TensorRT and cuDNN for other CUDA versions for usecases such as using NVIDIA compiled distributions of PyTorch that use other versions of CUDA +e.g. aarch64 or custom compiled version of PyTorch. +

+
+
+ + +

+ Choosing the Right ABI + + ¶ + +

+

+ Likely the most complicated thing about compiling Torch-TensorRT is selecting the correct ABI. There are two options +which are incompatible with each other, pre-cxx11-abi and the cxx11-abi. The complexity comes from the fact that while +the most popular distribution of PyTorch (wheels downloaded from pytorch.org/pypi directly) use the pre-cxx11-abi, most +other distributions you might encounter (e.g. ones from NVIDIA - NGC containers, and builds for Jetson as well as certain +libtorch builds and likely if you build PyTorch from source) use the cxx11-abi. It is important you compile Torch-TensorRT +using the correct ABI to function properly. Below is a table with general pairings of PyTorch distribution sources and the +recommended commands: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ PyTorch Source +

+
+

+ Recommended C++ Compilation Command +

+
+

+ Recommended Python Compilation Command +

+
+

+ PyTorch whl file from PyTorch.org +

+
+

+ bazel build //:libtorchtrt -c opt –config pre_cxx11_abi +

+
+

+ python3 setup.py bdist_wheel +

+
+

+ libtorch-shared-with-deps- + + + * + + + .zip from PyTorch.org +

+
+

+ bazel build //:libtorchtrt -c opt –config pre_cxx11_abi +

+
+

+ python3 setup.py bdist_wheel +

+
+

+ libtorch-cxx11-abi-shared-with-deps- + + + * + + + .zip from PyTorch.org +

+
+

+ bazel build //:libtorchtrt -c opt +

+
+

+ python3 setup.py bdist_wheel –use-cxx11-abi +

+
+

+ PyTorch preinstalled in an NGC container +

+
+

+ bazel build //:libtorchtrt -c opt +

+
+

+ python3 setup.py bdist_wheel –use-cxx11-abi +

+
+

+ PyTorch from the NVIDIA Forums for Jetson +

+
+

+ bazel build //:libtorchtrt -c opt +

+
+

+ python3 setup.py bdist_wheel –jetpack-version 4.6 –use-cxx11-abi +

+
+

+ PyTorch built from Source +

+
+

+ bazel build //:libtorchtrt -c opt +

+
+

+ python3 setup.py bdist_wheel –use-cxx11-abi +

+
+
+
+

+ NOTE: For all of the above cases you must correctly declare the source of PyTorch you intend to use in your WORKSPACE file for both Python and C++ builds. See below for more information +

+
+
+

+ You then have two compilation options: +

+ + +

+ + Building using cuDNN & TensorRT tarball distributions + + + ¶ + +

+
+
+

+ This is recommended so as to build Torch-TensorRT hermetically and insures any compilation errors are not caused by version issues +

+

+ Make sure when running Torch-TensorRT that these versions of the libraries are prioritized in your + + + $LD_LIBRARY_PATH + + +

+
+
+
+
+ You need to download the tarball distributions of TensorRT and cuDNN from the NVIDIA website. +
+
+ +
+
+

+ Place these files in a directory (the directories + + + third_party/distdir/[x86_64-linux-gnu + + + | + + + aarch64-linux-gnu] + + + exist for this purpose) +

+

+ Then compile referencing the directory with the tarballs +

+
+
+

+ If you get errors regarding the packages, check their sha256 hashes and make sure they match the ones listed in + + + WORKSPACE + + +

+
+
+

+ Release Build + + ¶ + +

+
+
+
bazel build //:libtorchtrt -c opt --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+ + +

+ Debug Build + + ¶ + +

+

+ To build with debug symbols use the following command +

+
+
+
bazel build //:libtorchtrt -c dbg --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+

+ Pre CXX11 ABI Build + + ¶ + +

+

+ To build using the pre-CXX11 ABI use the + + + pre_cxx11_abi + + + config +

+
+
+
bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt] --distdir third_party/distdir/[x86_64-linux-gnu | aarch64-linux-gnu]
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+ + +

+ + Building using locally installed cuDNN & TensorRT + + + ¶ + +

+
+
+

+ If you encounter bugs and you compiled using this method please disclose that you used local sources in the issue (an ldd dump would be nice too) +

+
+
+

+ Install TensorRT, CUDA and cuDNN on the system before starting to compile. +

+

+ In WORKSPACE comment out: +

+
+
+
# Downloaded distributions to use with --distdir
+http_archive(
+    name = "cudnn",
+    urls = ["<URL>",],
+
+    build_file = "@//third_party/cudnn/archive:BUILD",
+    sha256 = "<TAR SHA256>",
+    strip_prefix = "cuda"
+)
+
+http_archive(
+    name = "tensorrt",
+    urls = ["<URL>",],
+
+    build_file = "@//third_party/tensorrt/archive:BUILD",
+    sha256 = "<TAR SHA256>",
+    strip_prefix = "TensorRT-<VERSION>"
+)
+
+
+
+

+ and uncomment +

+
+
+
# Locally installed dependencies
+new_local_repository(
+    name = "cudnn",
+    path = "/usr/",
+    build_file = "@//third_party/cudnn/local:BUILD"
+)
+
+new_local_repository(
+name = "tensorrt",
+path = "/usr/",
+build_file = "@//third_party/tensorrt/local:BUILD"
+)
+
+
+
+

+ Release Build + + ¶ + +

+

+ Compile using: +

+
+
+
bazel build //:libtorchtrt -c opt
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+ + +

+ Debug Build + + ¶ + +

+

+ To build with debug symbols use the following command +

+
+
+
bazel build //:libtorchtrt -c dbg
+
+
+
+

+ A tarball with the include files and library can then be found in + + + bazel-bin + + +

+

+ Pre CXX11 ABI Build + + ¶ + +

+

+ To build using the pre-CXX11 ABI use the + + + pre_cxx11_abi + + + config +

+
+
+
bazel build //:libtorchtrt --config pre_cxx11_abi -c [dbg/opt]
+
+
+
+

+ + Building the Python package + + + ¶ + +

+

+ Begin by installing + + + ninja + + +

+

+ You can build the Python package using + + + setup.py + + + (this will also build the correct version of + + + libtorchtrt.so + + + ) +

+
+
+
python3 setup.py [install/bdist_wheel]
+
+
+
+

+ Debug Build + + ¶ + +

+
+
+
python3 setup.py develop [--user]
+
+
+
+

+ This also compiles a debug build of + + + libtorchtrt.so + + +

+

+ + Building Natively on aarch64 (Jetson) + + + ¶ + +

+

+ Prerequisites + + ¶ + +

+

+ Install or compile a build of PyTorch/LibTorch for aarch64 +

+

+ NVIDIA hosts builds the latest release branch for Jetson here: +

+
+ +
+

+ Enviorment Setup + + ¶ + +

+

+ To build natively on aarch64-linux-gnu platform, configure the + + + WORKSPACE + + + with local available dependencies. +

+
    +
  1. +

    + Disable the rules with + + + http_archive + + + for x86_64 by commenting the following rules: +

    +
  2. +
+
+
+
#http_archive(
+#    name = "libtorch",
+#    build_file = "@//third_party/libtorch:BUILD",
+#    strip_prefix = "libtorch",
+#    urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.5.1.zip"],
+#    sha256 = "cf0691493d05062fe3239cf76773bae4c5124f4b039050dbdd291c652af3ab2a"
+#)
+
+#http_archive(
+#    name = "libtorch_pre_cxx11_abi",
+#    build_file = "@//third_party/libtorch:BUILD",
+#    strip_prefix = "libtorch",
+#    sha256 = "818977576572eadaf62c80434a25afe44dbaa32ebda3a0919e389dcbe74f8656",
+#    urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-shared-with-deps-1.5.1.zip"],
+#)
+
+# Download these tarballs manually from the NVIDIA website
+# Either place them in the distdir directory in third_party and use the --distdir flag
+# or modify the urls to "file:///<PATH TO TARBALL>/<TARBALL NAME>.tar.gz
+
+#http_archive(
+#    name = "cudnn",
+#    urls = ["https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.1.13/10.2_20200626/cudnn-10.2-linux-x64-v8.0.1.13.tgz"],
+#    build_file = "@//third_party/cudnn/archive:BUILD",
+#    sha256 = "0c106ec84f199a0fbcf1199010166986da732f9b0907768c9ac5ea5b120772db",
+#    strip_prefix = "cuda"
+#)
+
+#http_archive(
+#    name = "tensorrt",
+#    urls = ["https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.1/tars/TensorRT-7.1.3.4.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn8.0.tar.gz"],
+#    build_file = "@//third_party/tensorrt/archive:BUILD",
+#    sha256 = "9205bed204e2ae7aafd2e01cce0f21309e281e18d5bfd7172ef8541771539d41",
+#    strip_prefix = "TensorRT-7.1.3.4"
+#)
+
+NOTE: You may also need to configure the CUDA version to 10.2 by setting the path for the cuda new_local_repository
+
+
+
+
    +
  1. +

    + Configure the correct paths to directory roots containing local dependencies in the + + + new_local_repository + + + rules: +

    +
    +
    +

    + NOTE: If you installed PyTorch using a pip package, the correct path is the path to the root of the python torch package. +In the case that you installed with + + + sudo + + + pip + + + install + + + this will be + + + /usr/local/lib/python3.6/dist-packages/torch + + + . +In the case you installed with + + + pip + + + install + + + --user + + + this will be + + + $HOME/.local/lib/python3.6/site-packages/torch + + + . +

    +
    +
    +
  2. +
+

+ In the case you are using NVIDIA compiled pip packages, set the path for both libtorch sources to the same path. This is because unlike +PyTorch on x86_64, NVIDIA aarch64 PyTorch uses the CXX11-ABI. If you compiled for source using the pre_cxx11_abi and only would like to +use that library, set the paths to the same path but when you compile make sure to add the flag + + + --config=pre_cxx11_abi + + +

+
+
+
new_local_repository(
+    name = "libtorch",
+    path = "/usr/local/lib/python3.6/dist-packages/torch",
+    build_file = "third_party/libtorch/BUILD"
+)
+
+new_local_repository(
+    name = "libtorch_pre_cxx11_abi",
+    path = "/usr/local/lib/python3.6/dist-packages/torch",
+    build_file = "third_party/libtorch/BUILD"
+)
+
+new_local_repository(
+    name = "cudnn",
+    path = "/usr/",
+    build_file = "@//third_party/cudnn/local:BUILD"
+)
+
+new_local_repository(
+    name = "tensorrt",
+    path = "/usr/",
+    build_file = "@//third_party/tensorrt/local:BUILD"
+)
+
+
+
+

+ Compile C++ Library and Compiler CLI + + ¶ + +

+
+
+

+ NOTE: Due to shifting dependency locations between Jetpack 4.5 and 4.6 there is a now a flag to inform bazel of the Jetpack version +

+
+
+
--platforms //toolchains:jetpack_4.x
+
+
+
+
+
+

+ Compile Torch-TensorRT library using bazel command: +

+
+
+
bazel build //:libtorchtrt --platforms //toolchains:jetpack_4.6
+
+
+
+

+ Compile Python API + + ¶ + +

+
+
+

+ NOTE: Due to shifting dependencies locations between Jetpack 4.5 and Jetpack 4.6 there is now a flag for + + + setup.py + + + which sets the jetpack version (default: 4.6) +

+
+
+

+ Compile the Python API using the following command from the + + + //py + + + directory: +

+
+
+
python3 setup.py install --use-cxx11-abi
+
+
+
+

+ If you have a build of PyTorch that uses Pre-CXX11 ABI drop the + + + --use-cxx11-abi + + + flag +

+

+ If you are building for Jetpack 4.5 add the + + + --jetpack-version + + + 4.5 + + + flag +

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/notebooks.html b/docs/v1.2.0/tutorials/notebooks.html new file mode 100644 index 0000000000..b284caf974 --- /dev/null +++ b/docs/v1.2.0/tutorials/notebooks.html @@ -0,0 +1,819 @@ + + + + + + + + + + + + + Example notebooks — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Example notebooks
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Example notebooks

+

There exists a number of notebooks which cover specific using specific features and models +with Torch-TensorRT

+
+

Notebooks

+
+

Compiling CitriNet with Torch-TensorRT

+

Citrinet is an acoustic model used for the speech to text recognition task. It is a version +of QuartzNet that extends ContextNet, utilizing subword encoding (via Word Piece tokenization) +and Squeeze-and-Excitation(SE) mechanism and are therefore smaller than QuartzNet models. CitriNet +models take in audio segments and transcribe them to letter, byte pair, or word piece sequences.

+

This notebook demonstrates the steps for optimizing a pretrained CitriNet model with Torch-TensorRT, +and running it to test the speedup obtained.

+ +
+
+

Compiling EfficentNet with Torch-TensorRT

+

EfficentNet is a feedforward CNN designed to achieve better performance and accuracy than alternative architectures +by using a “scaling method that uniformly scales all dimensions of depth/width/resolution using a simple yet highly effective compound coefficient”.

+

This notebook demonstrates the steps for optimizing a pretrained EfficentNet model with Torch-TensorRT, +and running it to test the speedup obtained.

+ +
+
+

Masked Language Modeling (MLM) with Hugging Face BERT Transformer accelerated by Torch-TensorRT

+

“BERT is a transformer model pretrained on a large corpus of English data in a self-supervised fashion. +This way, the model learns an inner representation of the English language that can then be used to extract +features useful for downstream tasks: if you have a dataset of labeled sentences for instance, you can train +a standard classifier using the features produced by the BERT model as inputs.” (https://huggingface.co/bert-base-uncased)

+

This notebook demonstrates the steps for optimizing a pretrained EfficentNet model with Torch-TensorRT, +and running it to test the speedup obtained.

+ +
+
+

Serving a model in C++ using Torch-TensorRT

+

This example shows how you can load a pretrained ResNet-50 model, convert it to a Torch-TensorRT +optimized model (via the Torch-TensorRT Python API), save the model as a torchscript module, and +then finally load and serve the model with the PyTorch C++ API.

+ +
+
+

Compiling ResNet50 with Torch-TensorRT

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a +pretrained ResNet-50 network, and running it to test the speedup obtained.

+ +
+
+

Using Dynamic Shapes with Torch-TensorRT

+

Making use of Dynamic Shaped Tensors in Torch TensorRT is quite simple. Let’s say you are +using the torch_tensorrt.compile(...) function to compile a torchscript module. One +of the args in this function in this function is input: which defines an input to a +module in terms of expected shape, data type and tensor format: torch_tensorrt.Input.

+

For the purposes of this walkthrough we just need three kwargs: min_shape, opt_shape` and max_shape.

+
torch_tensorrt.Input(
+        min_shape=(1, 224, 224, 3),
+        opt_shape=(1, 512, 512, 3),
+        max_shape=(1, 1024, 1024, 3),
+        dtype=torch.int32
+        format=torch.channel_last
+    )
+...
+
+
+

In this example, we are going to use a simple ResNet model to demonstrate the use of the API.

+ +
+
+

Using the FX Frontend with Torch-TensorRT

+

The purpose of this example is to demostrate the overall flow of lowering a PyTorch model to TensorRT +conveniently with using FX.

+ +
+
+

Compiling a PyTorch model using FX Frontend with Torch-TensorRT

+

The purpose of this example is to demonstrate the overall flow of lowering a PyTorch +model to TensorRT via FX with existing FX based tooling

+ +
+
+

Compiling LeNet with Torch-TensorRT

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a simple LeNet network.

+ +
+
+

Accelerate Deep Learning Models using Quantization in Torch-TensorRT

+

Model Quantization is a popular way of optimization which reduces the size of models thereby +accelerating inference, also opening up the possibilities of deployments on devices with lower +computation power such as Jetson. Simply put, quantization is a process of mapping input values

+
+

from a larger set to output values in a smaller set. In this notebook, we illustrate the workflow +that you can adopt while quantizing a deep learning model in Torch-TensorRT. The notebook takes +you through an example of Mobilenetv2 for a classification task on a subset of Imagenet Dataset +called Imagenette which has 10 classes.

+
+ +
+
+

Object Detection with Torch-TensorRT (SSD)

+

This notebook demonstrates the steps for compiling a TorchScript module with Torch-TensorRT on a pretrained SSD network, and running it to test the speedup obtained.

+ +
+
+

Deploying Quantization Aware Trained models in INT8 using Torch-TensorRT

+

Quantization Aware training (QAT) simulates quantization during training by +quantizing weights and activation layers. This will help to reduce the loss in +accuracy when we convert the network trained in FP32 to INT8 for faster inference. +QAT introduces additional nodes in the graph which will be used to learn the dynamic +ranges of weights and activation layers. In this notebook, we illustrate the following +steps from training to inference of a QAT model in Torch-TensorRT.

+ +
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/ptq.html b/docs/v1.2.0/tutorials/ptq.html new file mode 100644 index 0000000000..0d52cc53c9 --- /dev/null +++ b/docs/v1.2.0/tutorials/ptq.html @@ -0,0 +1,845 @@ + + + + + + + + + + + + + Post Training Quantization (PTQ) — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Post Training Quantization (PTQ)
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Post Training Quantization (PTQ)

+

Post Training Quantization (PTQ) is a technique to reduce the required computational resources for inference +while still preserving the accuracy of your model by mapping the traditional FP32 activation space to a reduced +INT8 space. TensorRT uses a calibration step which executes your model with sample data from the target domain +and track the activations in FP32 to calibrate a mapping to INT8 that minimizes the information loss between +FP32 inference and INT8 inference.

+

Users writing TensorRT applications are required to setup a calibrator class which will provide sample data to +the TensorRT calibrator. With Torch-TensorRT we look to leverage existing infrastructure in PyTorch to make implementing +calibrators easier.

+

LibTorch provides a DataLoader and Dataset API which steamlines preprocessing and batching input data. +These APIs are exposed via both C++ and Python interface which makes it easier for the end user. +For C++ interface, we use torch::Dataset and torch::data::make_data_loader objects to construct and perform pre-processing on datasets. +The equivalent functionality in python interface uses torch.utils.data.Dataset and torch.utils.data.DataLoader. +This section of the PyTorch documentation has more information https://pytorch.org/tutorials/advanced/cpp_frontend.html#loading-data and https://pytorch.org/tutorials/recipes/recipes/loading_data_recipe.html. +Torch-TensorRT uses Dataloaders as the base of a generic calibrator implementation. So you will be able to reuse or quickly +implement a torch::Dataset for your target domain, place it in a DataLoader and create a INT8 Calibrator +which you can provide to Torch-TensorRT to run INT8 Calibration during compliation of your module.

+
+

How to create your own PTQ application in C++

+

Here is an example interface of a torch::Dataset class for CIFAR10:

+
 1//cpp/ptq/datasets/cifar10.h
+ 2#pragma once
+ 3
+ 4#include "torch/data/datasets/base.h"
+ 5#include "torch/data/example.h"
+ 6#include "torch/types.h"
+ 7
+ 8#include <cstddef>
+ 9#include <string>
+10
+11namespace datasets {
+12// The CIFAR10 Dataset
+13class CIFAR10 : public torch::data::datasets::Dataset<CIFAR10> {
+14public:
+15    // The mode in which the dataset is loaded
+16    enum class Mode { kTrain, kTest };
+17
+18    // Loads CIFAR10 from un-tarred file
+19    // Dataset can be found https://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz
+20    // Root path should be the directory that contains the content of tarball
+21    explicit CIFAR10(const std::string& root, Mode mode = Mode::kTrain);
+22
+23    // Returns the pair at index in the dataset
+24    torch::data::Example<> get(size_t index) override;
+25
+26    // The size of the dataset
+27    c10::optional<size_t> size() const override;
+28
+29    // The mode the dataset is in
+30    bool is_train() const noexcept;
+31
+32    // Returns all images stacked into a single tensor
+33    const torch::Tensor& images() const;
+34
+35    // Returns all targets stacked into a single tensor
+36    const torch::Tensor& targets() const;
+37
+38    // Trims the dataset to the first n pairs
+39    CIFAR10&& use_subset(int64_t new_size);
+40
+41
+42private:
+43    Mode mode_;
+44    torch::Tensor images_, targets_;
+45};
+46} // namespace datasets
+
+
+

This class’s implementation reads from the binary distribution of the CIFAR10 dataset and builds two tensors which hold the images and labels.

+

We use a subset of the dataset to use for calibration, since we don’t need the the full dataset for effective calibration and calibration does +some take time, then define the preprocessing to apply to the images in the dataset and create a DataLoader from the dataset which will batch the data:

+
auto calibration_dataset = datasets::CIFAR10(data_dir, datasets::CIFAR10::Mode::kTest)
+                                    .use_subset(320)
+                                    .map(torch::data::transforms::Normalize<>({0.4914, 0.4822, 0.4465},
+                                                                            {0.2023, 0.1994, 0.2010}))
+                                    .map(torch::data::transforms::Stack<>());
+auto calibration_dataloader = torch::data::make_data_loader(std::move(calibration_dataset),
+                                                            torch::data::DataLoaderOptions().batch_size(32)
+                                                                                            .workers(2));
+
+
+

Next we create a calibrator from the calibration_dataloader using the calibrator factory (found in torch_tensorrt/ptq.h):

+
#include "torch_tensorrt/ptq.h"
+...
+
+auto calibrator = torch_tensorrt::ptq::make_int8_calibrator(std::move(calibration_dataloader), calibration_cache_file, true);
+
+
+

Here we also define a location to write a calibration cache file to which we can use to reuse the calibration data without needing the dataset and whether or not +we should use the cache file if it exists. There also exists a torch_tensorrt::ptq::make_int8_cache_calibrator factory which creates a calibrator that uses the cache +only for cases where you may do engine building on a machine that has limited storage (i.e. no space for a full dataset) or to have a simpiler deployment application.

+

The calibrator factories create a calibrator that inherits from a nvinfer1::IInt8Calibrator virtual class (nvinfer1::IInt8EntropyCalibrator2 by default) which +defines the calibration algorithm used when calibrating. You can explicitly make the selection of calibration algorithm like this:

+
// MinMax Calibrator is geared more towards NLP tasks
+auto calibrator = torch_tensorrt::ptq::make_int8_calibrator<nvinfer1::IInt8MinMaxCalibrator>(std::move(calibration_dataloader), calibration_cache_file, true);
+
+
+

Then all thats required to setup the module for INT8 calibration is to set the following compile settings in the torch_tensorrt::CompileSpec struct and compiling the module:

+
std::vector<std::vector<int64_t>> input_shape = {{32, 3, 32, 32}};
+/// Configure settings for compilation
+auto compile_spec = torch_tensorrt::CompileSpec({input_shape});
+/// Set operating precision to INT8
+compile_spec.enabled_precisions.insert(torch::kF16);
+compile_spec.enabled_precisions.insert(torch::kI8);
+/// Use the TensorRT Entropy Calibrator
+compile_spec.ptq_calibrator = calibrator;
+
+auto trt_mod = torch_tensorrt::CompileGraph(mod, compile_spec);
+
+
+

If you have an existing Calibrator implementation for TensorRT you may directly set the ptq_calibrator field with a pointer to your calibrator and it will work as well. +From here not much changes in terms of how to execution works. You are still able to fully use LibTorch as the sole interface for inference. Data should remain +in FP32 precision when it’s passed into trt_mod.forward. There exists an example application in the Torch-TensorRT demo that takes you from training a VGG16 network on +CIFAR10 to deploying in INT8 with Torch-TensorRT here: https://github.com/pytorch/TensorRT/tree/master/cpp/ptq

+
+
+

How to create your own PTQ application in Python

+

Torch-TensorRT Python API provides an easy and convenient way to use pytorch dataloaders with TensorRT calibrators. DataLoaderCalibrator class can be used to create +a TensorRT calibrator by providing desired configuration. The following code demonstrates an example on how to use it

+
testing_dataset = torchvision.datasets.CIFAR10(
+    root="./data",
+    train=False,
+    download=True,
+    transform=transforms.Compose(
+        [
+            transforms.ToTensor(),
+            transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
+        ]
+    ),
+)
+
+testing_dataloader = torch.utils.data.DataLoader(
+    testing_dataset, batch_size=1, shuffle=False, num_workers=1
+)
+calibrator = torch_tensorrt.ptq.DataLoaderCalibrator(
+    testing_dataloader,
+    cache_file="./calibration.cache",
+    use_cache=False,
+    algo_type=torch_tensorrt.ptq.CalibrationAlgo.ENTROPY_CALIBRATION_2,
+    device=torch.device("cuda:0"),
+)
+
+trt_mod = torch_tensorrt.compile(model, inputs=[torch_tensorrt.Input((1, 3, 32, 32))],
+                                    enabled_precisions={torch.float, torch.half, torch.int8},
+                                    calibrator=calibrator,
+                                    device={
+                                         "device_type": torch_tensorrt.DeviceType.GPU,
+                                         "gpu_id": 0,
+                                         "dla_core": 0,
+                                         "allow_gpu_fallback": False,
+                                         "disable_tf32": False
+                                     })
+
+
+

In the cases where there is a pre-existing calibration cache file that users want to use, CacheCalibrator can be used without any dataloaders. The following example demonstrates how +to use CacheCalibrator to use in INT8 mode.

+
calibrator = torch_tensorrt.ptq.CacheCalibrator("./calibration.cache")
+
+trt_mod = torch_tensorrt.compile(model, inputs=[torch_tensorrt.Input([1, 3, 32, 32])],
+                                      enabled_precisions={torch.float, torch.half, torch.int8},
+                                      calibrator=calibrator)
+
+
+

If you already have an existing calibrator class (implemented directly using TensorRT API), you can directly set the calibrator field to your class which can be very convenient. +For a demo on how PTQ can be performed on a VGG network using Torch-TensorRT API, you can refer to https://github.com/pytorch/TensorRT/blob/master/tests/py/test_ptq_dataloader_calibrator.py +and https://github.com/pytorch/TensorRT/blob/master/tests/py/test_ptq_trt_calibrator.py

+
+

Citations

+

Krizhevsky, A., & Hinton, G. (2009). Learning multiple layers of features from tiny images.

+

Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556.

+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/runtime.html b/docs/v1.2.0/tutorials/runtime.html new file mode 100644 index 0000000000..f2f522096f --- /dev/null +++ b/docs/v1.2.0/tutorials/runtime.html @@ -0,0 +1,703 @@ + + + + + + + + + + + + + Deploying Torch-TensorRT Programs — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Deploying Torch-TensorRT Programs
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Deploying Torch-TensorRT Programs

+

After compiling and saving Torch-TensorRT programs there is no longer a strict dependency on the full +Torch-TensorRT library. All that is required to run a compiled program is the runtime. There are therfore a couple +options to deploy your programs other than shipping the full Torch-TensorRT compiler with your applications.

+
+

Torch-TensorRT package / libtorchtrt.so

+

Once a program is compiled, you run it using the standard PyTorch APIs. All that is required is that the package +must be imported in python or linked in C++.

+
+
+

Runtime Library

+

Distributed with the C++ distribution is libtorchtrt_runtime.so. This library only contains the components +necessary to run Torch-TensorRT programs. Instead of linking libtorchtrt.so or importing torch_tensorrt you can +link libtorchtrt_runtime.so in your deployment programs or use DL_OPEN or LD_PRELOAD. For python +you can load the runtime with torch.ops.load_library("libtorchtrt_runtime.so"). You can then continue to use +programs just as you would otherwise via PyTorch API.

+
+

Note

+

If you are using the standard distribution of PyTorch in Python on x86, likely you will need the pre-cxx11-abi variant of libtorchtrt_runtime.so, check Installation documentation for more details.

+
+
+

Note

+

If you are linking libtorchtrt_runtime.so, likely using the following flags will help -Wl,--no-as-needed -ltorchtrt -Wl,--as-needed as theres no direct symbol dependency to anything in the Torch-TensorRT runtime for most Torch-TensorRT runtime applications

+
+

An example of how to use libtorchtrt_runtime.so can be found here: https://github.com/pytorch/TensorRT/tree/master/examples/torchtrt_runtime_example

+
+
+

Plugin Library

+

In the case you use Torch-TensorRT as a converter to a TensorRT engine and your engine uses plugins provided by Torch-TensorRT, Torch-TensorRT +ships the library libtorchtrt_plugins.so which contains the implementation of the TensorRT plugins used by Torch-TensorRT during +compilation. This library can be DL_OPEN or LD_PRELOAD similar to other TensorRT plugin libraries.

+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/serving_torch_tensorrt_with_triton.html b/docs/v1.2.0/tutorials/serving_torch_tensorrt_with_triton.html new file mode 100644 index 0000000000..8d94202892 --- /dev/null +++ b/docs/v1.2.0/tutorials/serving_torch_tensorrt_with_triton.html @@ -0,0 +1,850 @@ + + + + + + + + + + + + + Serving a Torch-TensorRT model with Triton — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Serving a Torch-TensorRT model with Triton
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Serving a Torch-TensorRT model with Triton

+

Optimization and deployment go hand in hand in a discussion about Machine +Learning infrastructure. Once network level optimzation are done +to get the maximum performance, the next step would be to deploy it.

+

However, serving this optimized model comes with it’s own set of considerations +and challenges like: building an infrastructure to support concorrent model +executions, supporting clients over HTTP or gRPC and more.

+

The Triton Inference Server +solves the aforementioned and more. Let’s discuss step-by-step, the process of +optimizing a model with Torch-TensorRT, deploying it on Triton Inference +Server, and building a client to query the model.

+
+

Step 1: Optimize your model with Torch-TensorRT

+

Most Torch-TensorRT users will be familiar with this step. For the purpose of +this demonstration, we will be using a ResNet50 model from Torchhub.

+

Let’s first pull the NGC PyTorch Docker container. You may need to create +an account and get the API key from here. +Sign up and login with your key (follow the instructions +here after signing up).

+
# <xx.xx> is the yy:mm for the publishing tag for NVIDIA's Pytorch
+# container; eg. 22.04
+
+docker run -it --gpus all -v ${PWD}:/scratch_space nvcr.io/nvidia/pytorch:<xx.xx>-py3
+cd /scratch_space
+
+
+

Once inside the container, we can proceed to download a ResNet model from +Torchhub and optimize it with Torch-TensorRT.

+
import torch
+import torch_tensorrt
+torch.hub._validate_not_a_forked_repo=lambda a,b,c: True
+
+# load model
+model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True).eval().to("cuda")
+
+# Compile with Torch TensorRT;
+trt_model = torch_tensorrt.compile(model,
+    inputs= [torch_tensorrt.Input((1, 3, 224, 224))],
+    enabled_precisions= { torch.half} # Run with FP32
+)
+
+# Save the model
+torch.jit.save(trt_model, "model.pt")
+
+
+

After copying the model, exit the container. The next step in the process +is to set up a Triton Inference Server.

+
+
+

Step 2: Set Up Triton Inference Server

+

If you are new to the Triton Inference Server and want to learn more, we +highly recommend to checking our Github +Repository.

+

To use Triton, we need to make a model repository. A model repository, as the +name suggested, is a repository of the models the Inference server hosts. While +Triton can serve models from multiple repositories, in this example, we will +discuss the simplest possible form of the model repository.

+

The structure of this repository should look something like this:

+
model_repository
+|
++-- resnet50
+    |
+    +-- config.pbtxt
+    +-- 1
+        |
+        +-- model.pt
+
+
+

There are two files that Triton requires to serve the model: the model itself +and a model configuration file which is typically provided in config.pbtxt. +For the model we prepared in step 1, the following configuration can be used:

+
name: "resnet50"
+platform: "pytorch_libtorch"
+max_batch_size : 0
+input [
+  {
+    name: "input__0"
+    data_type: TYPE_FP32
+    dims: [ 3, 224, 224 ]
+    reshape { shape: [ 1, 3, 224, 224 ] }
+  }
+]
+output [
+  {
+    name: "output__0"
+    data_type: TYPE_FP32
+    dims: [ 1, 1000 ,1, 1]
+    reshape { shape: [ 1, 1000 ] }
+  }
+]
+
+
+

The config.pbtxt file is used to describe the exact model configuration +with details like the names and shapes of the input and output layer(s), +datatypes, scheduling and batching details and more. If you are new to Triton, +we highly encourage you to check out this section of our +documentation +for more details.

+

With the model repository setup, we can proceed to launch the Triton server +with the docker command below. Refer this page for the pull tag for the container.

+
# Make sure that the TensorRT version in the Triton container
+# and TensorRT version in the environment used to optimize the model
+# are the same.
+
+docker run --gpus all --rm -p 8000:8000 -p 8001:8001 -p 8002:8002 -v /full/path/to/the_model_repository/model_repository:/models nvcr.io/nvidia/tritonserver:<xx.yy>-py3 tritonserver --model-repository=/models
+
+
+

This should spin up a Triton Inference server. Next step, building a simple +http client to query the server.

+
+
+

Step 3: Building a Triton Client to Query the Server

+

Before proceeding, make sure to have a sample image on hand. If you don’t +have one, download an example image to test inference. In this section, we +will be going over a very basic client. For a variety of more fleshed out +examples, refer to the Triton Client Repository

+
wget  -O img1.jpg "https://www.hakaimagazine.com/wp-content/uploads/header-gulf-birds.jpg"
+
+
+

We then need to install dependencies for building a python client. These will +change from client to client. For a full list of all languages supported by Triton, +please refer to Triton’s client repository.

+
pip install torchvision
+pip install attrdict
+pip install nvidia-pyindex
+pip install tritonclient[all]
+
+
+

Let’s jump into the client. Firstly, we write a small preprocessing function to +resize and normalize the query image.

+
import numpy as np
+from torchvision import transforms
+from PIL import Image
+import tritonclient.http as httpclient
+from tritonclient.utils import triton_to_np_dtype
+
+# preprocessing function
+def rn50_preprocess(img_path="img1.jpg"):
+    img = Image.open(img_path)
+    preprocess = transforms.Compose([
+        transforms.Resize(256),
+        transforms.CenterCrop(224),
+        transforms.ToTensor(),
+        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
+    ])
+    return preprocess(img).numpy()
+
+transformed_img = rn50_preprocess()
+
+
+

Building a client requires three basic points. Firstly, we setup a connection +with the Triton Inference Server.

+
# Setting up client
+client = httpclient.InferenceServerClient(url="localhost:8000")
+
+
+

Secondly, we specify the names of the input and output layer(s) of our model.

+
inputs = httpclient.InferInput("input__0", transformed_img.shape, datatype="FP32")
+inputs.set_data_from_numpy(transformed_img, binary_data=True)
+
+outputs = httpclient.InferRequestedOutput("output__0", binary_data=True, class_count=1000)
+
+
+

Lastly, we send an inference request to the Triton Inference Server.

+
# Querying the server
+results = client.infer(model_name="resnet50", inputs=[inputs], outputs=[outputs])
+inference_output = results.as_numpy('output__0')
+print(inference_output[:5])
+
+
+

The output of the same should look like below:

+
[b'12.468750:90' b'11.523438:92' b'9.664062:14' b'8.429688:136'
+ b'8.234375:11']
+
+
+

The output format here is <confidence_score>:<classification_index>. +To learn how to map these to the label names and more, refer to Triton Inference Server’s +documentation.

+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/torchtrtc.html b/docs/v1.2.0/tutorials/torchtrtc.html new file mode 100644 index 0000000000..10fa7cc302 --- /dev/null +++ b/docs/v1.2.0/tutorials/torchtrtc.html @@ -0,0 +1,700 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + torchtrtc — Torch-TensorRT v1.1.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + +

+ torchtrtc + + ¶ + +

+

+ + + torchtrtc + + + is a CLI application for using the Torch-TensorRT compiler. It serves as an easy way to compile a +TorchScript Module with Torch-TensorRT from the command-line to quickly check support or as part of +a deployment pipeline. All basic features of the compiler are supported including post training +quantization (though you must already have a calibration cache file to use the PTQ feature). The compiler can +output two formats, either a TorchScript program with the TensorRT engine embedded or +the TensorRT engine itself as a PLAN file. +

+

+ All that is required to run the program after compilation is for C++ linking against + + + libtorchtrt.so + + + or in Python importing the torch_tensorrt package. All other aspects of using compiled modules are identical +to standard TorchScript. Load with + + + torch.jit.load() + + + and run like you would run any other module. +

+
+
+
torchtrtc [input_file_path] [output_file_path]
+  [input_specs...] {OPTIONS}
+
+  torchtrtc is a compiler for TorchScript, it will compile and optimize
+  TorchScript programs to run on NVIDIA GPUs using TensorRT
+
+OPTIONS:
+
+    -h, --help                        Display this help menu
+    Verbiosity of the compiler
+      -v, --verbose                     Dumps debugging information about the
+                                        compilation process onto the console
+      -w, --warnings                    Disables warnings generated during
+                                        compilation onto the console (warnings
+                                        are on by default)
+      --i, --info                       Dumps info messages generated during
+                                        compilation onto the console
+    --build-debuggable-engine         Creates a debuggable engine
+    --allow-gpu-fallback              (Only used when targeting DLA
+                                      (device-type)) Lets engine run layers on
+                                      GPU if they are not supported on DLA
+    --require-full-compilation        Require that the model should be fully
+                                      compiled to TensorRT or throw an error
+    --check-method-support=[method_name]
+                                      Check the support for end to end
+                                      compilation of a specified method in the
+                                      TorchScript module
+    --disable-tf32                    Prevent Float32 layers from using the
+                                      TF32 data format
+    --sparse-weights                  Enable sparsity for weights of conv and
+                                      FC layers
+    -p[precision...],
+    --enable-precision=[precision...] (Repeatable) Enabling an operating
+                                      precision for kernels to use when
+                                      building the engine (Int8 requires a
+                                      calibration-cache argument) [ float |
+                                      float32 | f32 | fp32 | half | float16 |
+                                      f16 | fp16 | int8 | i8 | char ]
+                                      (default: float)
+    -d[type], --device-type=[type]    The type of device the engine should be
+                                      built for [ gpu | dla ] (default: gpu)
+    --gpu-id=[gpu_id]                 GPU id if running on multi-GPU platform
+                                      (defaults to 0)
+    --dla-core=[dla_core]             DLACore id if running on available DLA
+                                      (defaults to 0)
+    --engine-capability=[capability]  The type of device the engine should be
+                                      built for [ standard | safety |
+                                      dla_standalone ]
+    --calibration-cache-file=[file_path]
+                                      Path to calibration cache file to use
+                                      for post training quantization
+    --teo=[op_name...],
+    --torch-executed-op=[op_name...]  (Repeatable) Operator in the graph that
+                                      should always be run in PyTorch for
+                                      execution (partial compilation must be
+                                      enabled)
+    --tem=[module_name...],
+    --torch-executed-mod=[module_name...]
+                                      (Repeatable) Module that should always
+                                      be run in Pytorch for execution (partial
+                                      compilation must be enabled)
+    --mbs=[num_ops],
+    --min-block-size=[num_ops]        Minimum number of contiguous TensorRT
+                                      supported ops to compile a subgraph to
+                                      TensorRT
+    --embed-engine                    Whether to treat input file as a
+                                      serialized TensorRT engine and embed it
+                                      into a TorchScript module (device spec
+                                      must be provided)
+    --num-min-timing-iter=[num_iters] Number of minimization timing iterations
+                                      used to select kernels
+    --num-avg-timing-iters=[num_iters]
+                                      Number of averaging timing iterations
+                                      used to select kernels
+    --workspace-size=[workspace_size] Maximum size of workspace given to
+                                      TensorRT
+    -t[threshold],
+    --threshold=[threshold]           Maximum acceptable numerical deviation
+                                      from standard torchscript output
+                                      (default 2e-5)
+    --no-threshold-check              Skip checking threshold compliance
+    --truncate-long-double,
+    --truncate, --truncate-64bit      Truncate weights that are provided in
+                                      64bit to 32bit (Long, Double to Int,
+                                      Float)
+    --save-engine                     Instead of compiling a full a
+                                      TorchScript program, save the created
+                                      engine to the path specified as the
+                                      output path
+    input_file_path                   Path to input TorchScript file
+    output_file_path                  Path for compiled TorchScript (or
+                                      TensorRT engine) file
+    input_specs...                    Specs for inputs to engine, can either
+                                      be a single size or a range defined by
+                                      Min, Optimal, Max sizes, e.g.
+                                      "(N,..,C,H,W)"
+                                      "[(MIN_N,..,MIN_C,MIN_H,MIN_W);(OPT_N,..,OPT_C,OPT_H,OPT_W);(MAX_N,..,MAX_C,MAX_H,MAX_W)]".
+                                      Data Type and format can be specified by
+                                      adding an "@" followed by dtype and "%"
+                                      followed by format to the end of the
+                                      shape spec. e.g. "(3, 3, 32,
+                                      32)@f16%NHWC"
+    "--" can be used to terminate flag options and force all following
+    arguments to be treated as positional options
+
+
+
+

+ e.g. +

+
+
+
torchtrtc tests/modules/ssd_traced.jit.pt ssd_trt.ts "[(1,3,300,300); (1,3,512,512); (1, 3, 1024, 1024)]@f16%contiguous" -p f16
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/use_from_pytorch.html b/docs/v1.2.0/tutorials/use_from_pytorch.html new file mode 100644 index 0000000000..0e39215811 --- /dev/null +++ b/docs/v1.2.0/tutorials/use_from_pytorch.html @@ -0,0 +1,715 @@ + + + + + + + + + + + + + Using Torch-TensorRT Directly From PyTorch — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • + + + Docs + + > +
  • + + +
  • Using Torch-TensorRT Directly From PyTorch
  • + + +
  • + + + + + +
  • + +
+ + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

Using Torch-TensorRT Directly From PyTorch

+

You will now be able to directly access TensorRT from PyTorch APIs. The process to use this feature +is very similar to the compilation workflow described in Using Torch-TensorRT in Python

+

Start by loading torch_tensorrt into your application.

+
import torch
+import torch_tensorrt
+
+
+

Then given a TorchScript module, you can compile it with TensorRT using the torch._C._jit_to_backend("tensorrt", ...) API.

+
import torchvision.models as models
+
+model = models.mobilenet_v2(pretrained=True)
+script_model = torch.jit.script(model)
+
+
+

Unlike the compile API in Torch-TensorRT which assumes you are trying to compile the forward function of a module +or the convert_method_to_trt_engine which converts a specified function to a TensorRT engine, the backend API +will take a dictionary which maps names of functions to compile to Compilation Spec objects which wrap the same +sort of dictionary you would provide to compile. For more information on the compile spec dictionary take a look +at the documentation for the Torch-TensorRT TensorRTCompileSpec API.

+
spec = {
+    "forward": torch_tensorrt.ts.TensorRTCompileSpec(
+        {
+            "inputs": [torch_tensorrt.Input([1, 3, 300, 300])],
+            "enabled_precisions": {torch.float, torch.half},
+            "refit": False,
+            "debug": False,
+            "device": {
+                "device_type": torch_tensorrt.DeviceType.GPU,
+                "gpu_id": 0,
+                "dla_core": 0,
+                "allow_gpu_fallback": True,
+            },
+            "capability": torch_tensorrt.EngineCapability.default,
+            "num_avg_timing_iters": 1,
+        }
+    )
+}
+
+
+

Now to compile with Torch-TensorRT, provide the target module objects and the spec dictionary to torch._C._jit_to_backend("tensorrt", ...)

+
trt_model = torch._C._jit_to_backend("tensorrt", script_model, spec)
+
+
+

To run explicitly call the function of the method you want to run (vs. how you can just call on the module itself in standard PyTorch)

+
input = torch.randn((1, 3, 300, 300)).to("cuda").to(torch.half)
+print(trt_model.forward(input))
+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docs/v1.2.0/tutorials/using_dla.html b/docs/v1.2.0/tutorials/using_dla.html new file mode 100644 index 0000000000..4b0f6c35af --- /dev/null +++ b/docs/v1.2.0/tutorials/using_dla.html @@ -0,0 +1,701 @@ + + + + + + + + + + + + + DLA — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ Shortcuts +
+
+ +
+
+ + + +
+ +
+
+ +
+

DLA

+

DLA NVIDIA Deep Learning Accelerator is a fixed-function accelerator engine targeted for deep learning operations. DLA is designed to do full hardware acceleration of convolutional neural networks. DLA supports various layers such as convolution, deconvolution, fully-connected, activation, pooling, batch normalization, etc. torch_tensorrt supports compilation of TorchScript Module and deployment pipeline on the DLA hardware available on NVIDIA embedded platforms.

+

NOTE: DLA supports fp16 and int8 precision only.

+

Using DLA with torchtrtc

+
torchtrtc [input_file_path] [output_file_path] [input_shapes...] -p f16 -d dla {OPTIONS}
+
+
+

Using DLA in a C++ application

+
std::vector<std::vector<int64_t>> input_shape = {{32, 3, 32, 32}};
+auto compile_spec = torch_tensorrt::CompileSpec({input_shape});
+
+# Set a precision. DLA supports fp16 or int8 only
+compile_spec.enabled_precisions = {torch::kF16};
+compile_spec.device.device_type = torch_tensorrt::CompileSpec::DeviceType::kDLA;
+
+# Make sure the gpu id is set to Xavier id for DLA
+compile_spec.device.gpu_id = 0;
+
+# Set the DLA core id
+compile_spec.device.dla_core = 1;
+
+# If a layer fails to run on DLA it will fallback to GPU
+compile_spec.device.allow_gpu_fallback = true;
+
+
+

Using DLA in a python application

+
compile_spec = {
+    "inputs": [torch_tensorrt.Input(self.input.shape)],
+    "device": torch_tensorrt.Device("dla:0", allow_gpu_fallback=True),
+    "enalbed_precisions": {torch.half},
+}
+
+trt_mod = torch_tensorrt.compile(self.scripted_model, compile_spec)
+
+
+
+ + +
+ +
+ + +
+
+ +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Docs

+

Access comprehensive developer documentation for PyTorch

+ View Docs +
+ +
+

Tutorials

+

Get in-depth tutorials for beginners and advanced developers

+ View Tutorials +
+ +
+

Resources

+

Find development resources and get your questions answered

+ View Resources +
+
+
+
+ + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/docsrc/indices/supported_ops.rst b/docsrc/indices/supported_ops.rst index 2ce7b34ae7..0367c02710 100644 --- a/docsrc/indices/supported_ops.rst +++ b/docsrc/indices/supported_ops.rst @@ -23,6 +23,8 @@ Operators Currently Supported Through Converters - aten::add.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) - aten::add.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) - aten::add_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> (Tensor(a!)) +- aten::argmax(Tensor self, int dim, bool keepdim=False) -> (Tensor) +- aten::argmin(Tensor self, int dim, bool keepdim=False) -> (Tensor) - aten::asin(Tensor self) -> (Tensor) - aten::asinh(Tensor self) -> (Tensor) - aten::atan(Tensor self) -> (Tensor) @@ -31,6 +33,7 @@ Operators Currently Supported Through Converters - aten::avg_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=[0, 0], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor) - aten::avg_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=[], bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> (Tensor) - aten::batch_norm(Tensor input, Tensor? gamma, Tensor? beta, Tensor? mean, Tensor? var, bool training, float momentum, float eps, bool cudnn_enabled) -> (Tensor) +- aten::bitwise_not(Tensor self) -> (Tensor) - aten::bmm(Tensor self, Tensor mat2) -> (Tensor) - aten::cat(Tensor[] tensors, int dim=0) -> (Tensor) - aten::ceil(Tensor self) -> (Tensor) @@ -90,6 +93,7 @@ Operators Currently Supported Through Converters - aten::mean(Tensor self, *, int? dtype=None) -> (Tensor) - aten::mean.dim(Tensor self, int[] dim, bool keepdim=False, *, int? dtype=None) -> (Tensor) - aten::min(Tensor self) -> (Tensor) +- aten::min.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices) - aten::min.other(Tensor self, Tensor other) -> (Tensor) - aten::mul.Scalar(Tensor self, Scalar other) -> (Tensor) - aten::mul.Tensor(Tensor self, Tensor other) -> (Tensor) @@ -113,6 +117,7 @@ Operators Currently Supported Through Converters - aten::relu(Tensor input) -> (Tensor) - aten::relu_(Tensor(a!) self) -> (Tensor(a!)) - aten::repeat(Tensor self, int[] repeats) -> (Tensor) +- aten::repeat_interleave.self_int(Tensor self, int repeats, int? dim=None, *, int? output_size=None) -> (Tensor) - aten::replication_pad1d(Tensor self, int[2] padding) -> (Tensor) - aten::replication_pad2d(Tensor self, int[4] padding) -> (Tensor) - aten::replication_pad3d(Tensor self, int[6] padding) -> (Tensor) @@ -120,6 +125,8 @@ Operators Currently Supported Through Converters - aten::roll(Tensor self, int[1] shifts, int[1] dims=[]) -> (Tensor) - aten::rsub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) - aten::rsub.Tensor(Tensor self, Tensor other, Scalar alpha=1) -> (Tensor) +- aten::scatter.src(Tensor self, int dim, Tensor index, Tensor src) -> (Tensor) +- aten::scatter.value(Tensor self, int dim, Tensor index, Scalar value) -> (Tensor) - aten::select.int(Tensor(a) self, int dim, int index) -> (Tensor(a)) - aten::sigmoid(Tensor input) -> (Tensor) - aten::sigmoid_(Tensor(a!) self) -> (Tensor(a!)) @@ -129,8 +136,10 @@ Operators Currently Supported Through Converters - aten::softmax.int(Tensor self, int dim, int? dtype=None) -> (Tensor) - aten::split(Tensor self, int[] split_sizes, int dim=0) -> (Tensor[]) - aten::split.Tensor(Tensor(a) self, int split_size, int dim=0) -> (Tensor[]) +- aten::split.sizes(Tensor(a -> *) self, int[] split_size, int dim=0) -> (Tensor[]) - aten::split_with_sizes(Tensor(a) self, int[] split_sizes, int dim=0) -> (Tensor[]) - aten::sqrt(Tensor self) -> (Tensor) +- aten::square(Tensor self) -> (Tensor) - aten::squeeze.dim(Tensor(a) self, int dim) -> (Tensor(a)) - aten::stack(Tensor[] tensors, int dim=0) -> (Tensor) - aten::sub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> (Tensor) @@ -179,6 +188,7 @@ Operators Currently Supported Through Evaluators - aten::Int.int(int a) -> int - aten::__and__(int a, int b) -> (bool) - aten::__and__.bool(bool a, bool b) -> (bool) +- aten::__derive_index(int idx, int start, int step) -> int - aten::__getitem__.t(t[](a) list, int idx) -> (t(*)) - aten::__is__(t1 self, t2 obj) -> bool - aten::__isnot__(t1 self, t2 obj) -> bool @@ -258,6 +268,7 @@ Operators Currently Supported Through Evaluators - aten::sub.float(float a, float b) -> (float) - aten::sub.int(int a, int b) -> (int) - aten::tensor(t[] data, *, int? dtype=None, Device? device=None, bool requires_grad=False) -> (Tensor) +- prim::TupleIndex(Any tup, int i) -> (Any) - prim::dtype(Tensor a) -> (int) - prim::max.bool(bool a, bool b) -> (bool) - prim::max.float(float a, float b) -> (bool)

$npRwPJ%w= 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_images/yi_jing_01_chien.jpg b/docs/v1.2.0/_images/yi_jing_01_chien.jpg new file mode 100644 index 0000000000000000000000000000000000000000..523dc2b8b868fa53e3b960d7017908dae486eecb GIT binary patch literal 6614 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 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_modules/index.html b/docs/v1.2.0/_modules/index.html new file mode 100644 index 0000000000..a0940e5fed --- /dev/null +++ b/docs/v1.2.0/_modules/index.html @@ -0,0 +1,659 @@ + + + + + + + + + + + + Overview: module code — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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 ZgwkVKN0Ioik|;6JadkfLM0B{6^=~%3%Q^r6 literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_35_1.png b/docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_35_1.png new file mode 100644 index 0000000000000000000000000000000000000000..45a206ae1c504be3f214f3efb28dda864f571d6b GIT binary patch literal 72163 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 KMNUMnLSTZx*F>=Z literal 0 HcmV?d00001 diff --git a/docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_35_2.png b/docs/v1.2.0/_images/_notebooks_ssd-object-detection-demo_35_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7189e0c7037a17077c422942cc3fec397e0fe6db GIT binary patch literal 95266 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

$npRwPJ%w= zOn(hyX6af%w>wx8v=$a-XE?t$B=e2~?G_KNuOT|c+LEMY$fD@7wmzWS?obp1T&XDX z5=$uiT}2>zuSla}u=FLJQBG!jK>M zUC0R_RW=_`1a@6J3Eqxg0Vzc>!dDfAZKzY&HVK=gc(Gyrw4ulyov9wvQ-*zWEsiV? zqj(w!j!=SYBY0+~=ExT2L8@8{G4qpGs5Izl0wD{*N6Y8VUlR5%5060+e3FbedcDD` z#1m5Sa${El3636>5MLGZ6z7A3g(yU6td1q2;&XCugP(u5i!XzdQE=ulL^Mm%8mDKj zG7Y-uO%@!99A2wv3G}p%e2S^vSFyh94dfEcPc8zn^B_fmA7#-V4WU|)ModtK+En2a z4bj^V?IZCI$U$6;9*D;PqCj20LcTdQjwOm5PLc%0S15foDGF5n_Yh2n>#HL^@K>L~ zs5VI};l(e%frsur%>068btUJHyKZDO>~r|gab~6$$n%`dwGs0R)09@wcn)5>pT%7> zXyZcoay4nOY2!09CAmhEm`Eeps%76&G4VijHnK--#0bz_Jl?Wr} zXr(EMR-~m+YD2L2s4>Uj$M;nL2*IdY1(SI~=(I5jT5Hm@6+9L_s4~Zxgi;J;&E0|3 z32u6cc4vy6vu*tO!T34E0w@x=1}B0x2}*1osyxbahNB!Lh^dK5kO(JDqOi4H9!Ow9 z&Ie+JAMZnkSECe4E6TE{Ln@`BK3d_Ojn{(LV1393KOz4|ZLSl8PuuviMA66>-~$kP zSE5D0*;rQ~veYr{cuNH@FejeOI!YxRoSq_246Au?OLZ|5jS$5dlj0M>>$qVmhZG{a z?FGp|#0GI_9oHc*C1t z%y5`tUCR8zG`GFzTC(AYox3dk!HDVU8Mbft%+7acw>3{adYp~*K9Xn>m$JID&h|YE zSeMmv41~fL65`{b+PsEAvB`tS&hzq}+c37rxy=pc4(>sUjMi|2GMnY$Q)kd7Wi;Ak zerATO$WdBhiy)&XX^SLj(QYS{w!oKuqV6F;yWIxBWEol&lr}2;DqDZWNy&I8RfNam zQO01D#v}nfSUmKLKEtaT_n%0uc(yiO?`Kr~m1 z!m5OGqmtaho^5S7G}a>p(=wofyYuqO8i$Xa0&lT45U+N(!}c9J(IyQ^O>SFFT;X)8MAa%-99e_%bFXr%ynJAC}+DU=z0+x z319;U5Zyobgi(;=~h9aHtnb+synf+LC(mc$bhc2r2R-tc3kVC6gnC20%JoGiHd zx&y4QuVTcrYwrTq=9D=hu3Z!h+q#G(c(1tqu31D`hM7gICh6$7(VC7`k!pEg`w3_r z<~DbhGs6*n<{+luXKH4aV@FP~WBVd=OWXM1v!{4=P-4W=PFiSfNYfTsUQiT4`8XVo zn46oWKiI&e35Byb>*8Jr@7ju-fF2DHaoEyMSW9Y-#YgLY%(pbBJ@OGNbTq3MVM9LhzAztY`*SF&gFclFBYN)(1&+ zUygJmSUj9Zq7I_W%jl>Terv7qSe&(#mwfYC$5CWs+(Y#=xM*_xRvG zAHHvWPUHrf$$vn{gp%=`7*_iOPM@|MJTQY58x0oGwoE~hk8q(_uj+V6Z?4Lk+Y0OmM{C-*K_>jX+Hh&M|kPoH}b&!M=6RCd-v_)Rj<2)haWz~ z`sxPVUXR^-rfC%&md~#;zqCYeD#5#8b9Yfhi;MtCk|1e9TBh{#g7uL{E6dDm3yzMM zp6f91if0BR#CdYijWr}x{ly07cmLJJ7F0UM5@@2Pyxu= zl2fP8vTNu57`I^Qi38msk15rveebnmJsWZE{4%p`A(1K6!fdrtg-xqOd%?};t`(O=G zCIn_lu-6B3;>DIT=AF>v;{i!HtSt~7{Z4F2(n=^*LWYFOtaX2yjodNHa*T7dQjN+g zclrwZjNRvh^=VAuXJ%(eTJ7NMq!cDGIOoaooVR@0+xXar-p9q-Wr75%jb8t}5I`d9 zUtJSQUqv(u^&$cl-`uz#>ZqL>I75E8u;2kBcnP9_Q`49P3Tv@t5Fs>xC`y%5NC%a) zVU(e*3+4qKIEoqwYUC6KTj@ALt2U!d3~{`>Dh>iBC&f)(Un4%DZBmR@pjFUj$IUUe ztTd8mD9ys+Hooc`-bj0DmM{F`*HPLLi;LU2?uIM4^{(w)vG+QjJ$jzQ&m3no8nLiA z&+^I!t(k)M>@=;eqt)uNxp|JI!lQM9cf+8t(i-R7L=3w{=obanm#k+cCediOhEs-5 zJ@RDDv3RA>&f|6j#B$g!4In&L&%Zg;SyWn*&_&oV$Q4&;Mjpv*Qb ze>DeTI|M|as^T6HvJ(j;(a%7%Li@luxH?!Xlpot_daY1+MKD54u_sLu2K_#Hkz<{M zq71A%n!FODDjr`v>t6Bfv&UGx@*piE_$-*ueGKNRbX3zbGi=|v1FgW?AnusN)X7zq zQaEc_TV2Iy&Gk3jz@^&dfdoXrn8@Nl6s`#WHK;2RR#QT`Y*Aw%m;ic_n3^ko_l@V& zR8+>@R*&=^5l_V^UX-`k%T#vkTq@5l& z-}(}4;ko{nIc~e_1&D%dRPYbJ>uYe{Fv?1dDliG${hAFH7U#&aY(fEvj8lUbMb7$q zpH?d&(Fvte7(xUb0wjjQdbD>q2TBZ?4OxS-{*Z2`6E*q{C1_fKY z9e_Akh{Ew|tGF0jADG3U%&StF3B(Lh0g$V_gLRUaYHccN9J$hpfZ#k@RLGI&J(ML* zEQ@U@}rEXV0yY_m1JM4H@g=wjK8SOi!m6ZP>eiFP)Ci z-&_x_(ybQr3ybXEe+8TU0aLvhHaGhild!n7SSNkGSi3xsKn46Nq=T+mo(XQP;aDS0 z&OjKKVq(k%L^)j5oP#G=9U1{VFb1l4uOLh*#p1#u;x+gxAw$?O2?s9t9Me-1rfOb0aSO_?^~0Y>a3bTUJ^A#^X=eBr7Gv9+7fVK|4M@M zRMlT7HC`#sJht?4c$z%7^>sndS7MAuXyKe^acPk_vxpj-A&p8{TATu4IOuc!{CPYj ztyW5>-G+9on(IRxzbzsaZUu8`;x$ESvH0NbD+bCEt$Zv7Rp~s!jJdKz=>jbVorE#u zMM<7#aqXj3K#i4p6|hRAuGmm!REV(yJ|*u=p`6Foc?-kyglGw<_QrVSLg25rXe`c$ zoCJx{VM-k!1*K?gQGhEDEg>D4z(BY7^y5!)YsZn5^Fev609-IXN`VrM)>6}tcDu#= zw(V@&zL)vg1+KgHAfurp9}QSJTQEC2#gUU$Oy7m=@<0MrbCptsAoJ*PBww(7R~$kE z$eIFL;Kyn#KV|~PZ1=djxirL%(190)FH2r`;{j%pEch-+7BaYcgV*q~8+R}})#6Xz zzszU)>nyJ)3|5!X3;R$;fmea;Yf2|Ho(W@wb*Wa3dt!q%@24T#hD|)(>!PSC0NV!g zsvbF}U@9imw00~qG|g;dE}{Y+X?#|58{KVHQ-9qUsaL%G?pp!KH#5$y9b@hE$=d15 z)53c}=@9)G)F>fqk&323v_x@0p+%ACV0v{i;Y*?wy{R5b8M4uke3UWUYcV?&kk6t-!K7hc9ysI@BbHF3eRHDU@QAB%E)}Qj#)qVO+*5Y*CW5QiQuJO`WzKjoi@Pn7!ZkHDl0E96Y;Jrh% z8CwV{PZ2*>o0G8$R zD@gw|`=&DPvm@5d_8E-^q}B$Dov6tEH-Wbin_eHDz(A9n&Q=VuRliZaV}%UFktRCm zK5O6~ivv}^m5sdmT_J-yBW^r?aSo!12r8~&>~|lAIKIb=C6NvQ-}3jqo?n00Z!lO{ z$2m{8+vR1idNHLFY+16pwoIqf;)y37;p~}1IB!Wz3Qn=Ow2SGP1)TD%Wg7^J!DxW< zmX+nRlr}?&qTQNh*N&aM;f=3j*Y*VfHg%i4)SwG`XtI@cY&t-akY(72LZt~x1aB?I zhje1jTC4~~+6{q4N(Z%%cd-OnwckKF2W1%@+B{+v8jV5WjbP9i6J+$lm6XMZmT58c z!4b(dYE}dXR?Yczk*UrM#-w;_kR<3rlqXuKLdvq)xjCk$r|3>ileAi#Up~#CKjQKJ zIvcC!SzA8O6$cJ*_Uvg69z4ij-@`@Q<%0y`q}DkBeVlA-V`yi{4(rRJk=a*|WxHwv zHdt~WLqjVLq1KrDF@mUpGamO^_~5Y(t|^8%RbWNq@i^s>0-iXP@oV>!>caayHC{f&a=XHGV_x>ZM zwk=^|5Z5v-7St3AS8r$5q?|i*hNm8VJjnYd0h7?4?vW%Zo12@YtqyrvFlZUXq>Rwm ztcVr~MQIDl=}DEDpzS0l!+7Cb#OSW)8WxVC|@oi zuY&jjNEq$f%@@4%uFq)?eAC4ae&0X7=(S%4{6zD>`wqkV-c$cv-@b!lcAk~K!>kM$ zbfGsrPq*7;?fiMltUznUFzeHgPD3T@=%mHah9s*j>?6&=57zOW8Ql7Saxg^75~npx z_1H*K@{J+l!K8}r)D(l!fUFBDO|c~)g2mGjp)A9CSxIqXVk)!1S!w5)_G?_PH@SLl zA3ycV1+KkeAH}GT)rO;w9%pI)5`TTqC%F2+m0WRPH>;}~tZi=Ka43Oxr^U7%JGtV@ ztGW5c8`!gF58HR_VUEr1Ri7=mV7qF7d9&_a}FL-3dKAsEV|u`1|hKK-YE8Io>B|8^J6 zpQ@Ip;o~3v1V8bUKgD3U0^SB>lWSK487SU_Fi!%yZ7#) z)oG*C1f?~J_H2ws+;Hd_S~p)!wz-9A2%^{$4RAxC}19=tK?Ohcu806aO-il2P;&O1cG%-Jbjz}SX!6-jgw^wX zlIb~$B1GBc4oX{6I8WhR^gV#0u;kW~mynl^QBhD71*69j~vg-I3KWwf>63xyMfF`CkQY-zDYi24hnnc!nkRUPRQ zTTn<^lvcFT6h}K`HuMf_qlvD_K`92=5T$cm%q7{kYYf#8PJ1@;O_H>QP7;z%8p_Ct zWoN5EwPzS4j%;(lx&DAcwb1izMC)k&3!&k)Maer-8+1=DAA%czNk~;JGGmgM^RFTd z3P}t;0q0{f(^dk8$*D z#tUz`k|&QI;?&7AEbQFL`Q_t0eD8y7Urcz%fBF@U9X~~Z<-ma}S(sVmV<$hs6<1wL ztJ9-5J;(Cd^C&5~|Ni?f34fOb5)eFXiZN9Yg|kqO3LusR6A2}jqei=uLtRJ+NR{r% zdrxT_UR}-+GE7(Us>Qm3ZrY>U?ont%CXTFdOto8Fxpyx;@tiw*jzT$(ojA$iN0+(v z&MWD3QnWH8rX5&4t;n+$%cW)4wgq~fHpOtnsZ&q!f-7H4+Uf>>bFE^zt1tqi6sD#C zV=g9w4B~>BN$FS}xmGGVveAgF-)DMynxs7yLXv$RBI+_nUMdDf@FVxuk>>?@k&~4< zqf${=LtYANS;+-dS>Y%P&uEzQ>@Xug<8enzd{I)A;3UUMiD+1ogkHO( z+ZB?wWBZK8v^yxRm`)tiOVeoOX&Er8#5qGi;guCaD6Jz&Qg-jz#Vt3yh_mO9nF&ztXh|rSmZ%O!UH4Dumx!i?apRq-Z55mBdhGk98g+fjcdo4f!R!4=&9`fl~_W zJtm}aMoW0Abq<{vTD=ylxq>vxQIYHQz9jD?obT-C)8g>1$NT@`Pw~QQ7WtNM`&zcm z&!gKnGTL0@kAC;hc=qHmJOy)$i(dte7wUA2c!J7s-+z}jFyQCM8*nCbM$yk~xXnk+AZ=&l{DRtPAu z%5&(kLww@caYn;D6zwQSeEgxuX?N#>c~J~WqL}I=w3Hww!6XT|kif#~5c?g9o`euo zCj!dQ?M@-eqhq9VV%ne+I-NDdLY9LvhUuv;#%K~#ZLDBc^WNbI;k8q}1TT=bTWB8` zqQsbB+DsLxNf7J6mPjJ_=zeUi4IXx0a8BVol&-)Pgk+>;*z`6gOVQ$SRZ{-CP>e$< zAG{hPho&Q@-o7};^*?ivY?L#|GV-z@FA7G366Xtc?p_L9Q&y7amZGp&SCVG~avS3D zo%Lj+0&5-p!GLF;KFN{8YZRj)SvH`|3pVqD&Cwuu{pSUR^R(ut86=uqJho-fDL9p4 zr9jR-i!7hTdck=c#i4+zi^7J2pI(vM0_(zhStFQSaJ>YtG+MPNm1S-1EdBKo!85&U ziSuW>=rrV;C~eGtQ7FhQF3}9P--JnF_t|^7=E}XyPIZ}Im<6qQ<*Q%82j2ey+RH-W z4bFzz52Xvyqgr4zSZCX|1v=fa_2*LUvOog!3p0GlSG^MNeMkrqbJZEGP&y1zBw|t} z7;VV2j3nkD7{B18ExZg`m{^g>z+q?uKO6 zlR1TTDpZMeHn8m;#9DOZ0+e{fl`(S>BqDVo5bG?c;GJ0L1e16Y8_X!W)gsZFM8_<^ zDipo+wnSC)S_V-mX}3tz7REyYbdoeU?g*G}i*%|B%44)9Q6?m)P{GudCLxoJHadjd zI)$X3M5#LMc#5O5Tl8Il&7&rV@|JH`&okneA$honPjuqlY;C^cfEH6id4o zX?NQUUCu&pmZfb=w9^&`5A5TaW5?04s#35-OH8B+bMv#Ltt24c=dej#7Dzxu(53}= zk~9sIYAwnn7^Uk39f=Mb!Z|Q$yS~5joC;Be0brc>5rIU7lyl6_FJNtO6hV1RyUldV zF}pYy`w(ynV?2kRI>FOVJ%!eqcDsd1QeZ@{*J5$oR0M{AeD+_n16PKS*3w$EHmt92 z(Cu_+w^B+%3Nwj{O-rTZ_jv2s91KFziKuk*HsnMY79}?JS=y2;FBxQ(jDlbJzzH7T z%mQUH1(GFED_=QOxhPshqk@F|1mQ)8C^pf~p>2tH8@%-@gsX&bB*=2H9phr^Wl%LacnTaCXReK#FZB1Lm|@K!-fdMQAT16 zZPEBdbJgCReEn;0DInN%1aNcANuc9ECSjuGLzE&5cbSdiYT!F`SvnxQc{( zPn@CC(M->F+1%JxJ6 z(zbh7fe;~Sr$!jZC_68J!Fj1XIzco}N<4ugP4%X*&XSid`jLfugQXz`EP279NZZ|z z+*IkPC=TQA5jKd2m?p|%ohQ{L@A=qy&>7zAXj_P;)yfY+DxZRg+yuO;GAsoPjCcn& zhawAzGi?QGi^gj`K|6w4qDqwFN%A4RQ_rw*#g*8yg_H`Zo(YJn?D{@XCOpd8kjMpx zaxuvVCC1y3-p!RH5<-AA8LHewl^IG}(OOWVZGmwmsf65(MyZgHHp@wsLW?C$LW*sz zG$!q!w80k^m86)ZU37ar7_N~d25VicQXGuPbftr#t}D+LANvZ?1bu{f9X4^KaFz1WsET5S!AQikQtKtEzN%y*4v7_w zln-N8I?8I^H&S&+zxApBDNw}ta3Lh180J|p$LT6rsv{JpqmewNsc;HotXzGo`N7+W zDF*2h*V*=4YVThzsilcEWx3tj&01$%wmUq&Ye9?Po*FX}MrVPfD@>4kLK9h?mrr*)#yCS}Kt z8M?hT77cRQa{>~z`ek5Ar4fyWYyni_B3PPPb1s%&A3`nq+8y^IVo}pww(^RrYSvHo z?Q7RzK`uC7dCpbMxyiIw&GAl*HFPk3{+9QtI0ykyA+>fZ(XrH4|r zv3}Pv#r84yN~#(NF)Q;J;2RjXdcW#kZR&(9;k1k~bX7f<$t0-Dw_ej6lQD*NYGN|Y;nu6;$2injYVkno?8dd%VMUFj z=rfLNtoo=2QO(YH&LD^k+C(m`fdHy(O11ZCn>E;HV z9XlA6o_sXKTN@IW=%B3L*xbaIj+r!=MNgkT%jVTDqDzZ{oKaqq6*=vx9^Hf2@_2uN zwSmG*53iumuqndnA(&%**fovqE}&-H?C75XXPItKGnJa)dyu4@-z*uGZEk(xi&-12 zaOT)iX1a#CsTQqP3Q>e^83oR=XZNm)?k~7Zkbw8Z#E5phFC)-ZS#icK#D6O_4u`EX z@HZ%3@EHi3u<74!U8p1+EC!L{L=V2IhF!IBJ+apP7V147x4)?Qr8?FO(Aiqxw8?#Z zPX7BoI7}%75f^F<#1vNn2xN>r>p84|lbY%xQqON7r#5`A5tU2;*2MLVCJ0Vc5MTln zjS)aR=GlrkYZzEr@Ju;ti_4Yp6(&7R&=9QbhM|vZHY}u zaJq|1SLvo5x=Bjgbf7a&-u3v=GGfaxW)(}=2{;uHkj{MwcFHpHB8W<*Xi^bG8LaNH zoDF#I2S3ii-P1hv&_f__=bd+P_e<_#m|JXKa&BXjzk1(CxN84pjs(i0;M}Rx%rDLH z(U08E{(ZaHcf~#s&m#{$#jZU|Owaa6lwtYYCf*fH&&}X*6qzMy3rQ;pMKW=CRibF) z$w_pVyxa`V9xh1TMu96eg&UD3DOsK&T9G6MZv)_mY~U8_L(cbLo{EY@=TI2DlpqN- zkWi%)a7=Ou7ZU|wyooQx6;yhNa6EcUYDG&&iYK9XMXeJESB|M}+~$+5G8wt5Q>vt_ zl|Ewv_-hHHVk?4MZLl3ULZ;>l;KTWcw{}kQ)EQueIwAv&p#Bhk$ zC{ZNa573&OBP%mjR@Xy>Vs6Rv5dZS@6HoHglTWj{vdr02Cn$&OT&i6bNFdJ(jz4>j z^^J8t@D~rU|H>!%)_?ddJoflu{@}lTm>X{0$6LSrb#&UEKl|^W=G^&{y!p#s$(fVq z`0Zc&Jzo0C7xC5K^cL`%kALhTvSG%DKX@-I%Ogg^lCSu>+j;8oWw!5_V=xNYY!?D`J1n(b2JLUo_6v){(-!y=Xq_p8bUwi-?_=~mhLYA9{K`vkHPymjNgscwmJ6n+ws`3ewyg_Hc`I4e#P zKwLnSI_OVC#_l;lRGROYX7D0tu8w&iP}@Y_2(8 z^_my3`@l9v`H=qRCRuit&COnL;k0n%$YY#2b%u8Pm6UnT_1Ep?_S>(a(-Df?G3;;f zYwvtFi`xvNLBhWM`&e9@;+OvN-SnmsUi{J*a{lx>fAZK9?B077dv`DKkq>=@>FG94 zJbsuje8Wrm#K#`s);nIn?7}t*UqotLQWPZ*Kkzh`#u8EnFtDIgF@=1f;uNAftc$IDhe?>$SIg7@mP5y57(VRC4z7|{W zpU@}O2xI(i^-!z#a1NCaUDGA%A|z&Sjzf=Y<2}&;8jzH;1*WUG>E;`_@s=A&OaOd` zAWFvovc??w6d|X`S16wRFh@4mxoUPFlC%+mm$7yh?O?j-voPA={JCY;b;9!c2F3De zx+bBpp0E4nZ>Bdh%dNNH%rj5i$4n>XQti?t=zn2z&hg1le~fM0dwlGp_wvlsCn;@7 zKC)<996x#_|fraLHA((NYf z*xh4(ZW}k;ydSMK*IsiqdEvPGRd>uAx0>4rq(OWZyEsv2)_1w7G>l%*+uk;vj8U<2n5uyU->aUrLF;efzv~g;D zPyJbam&W_ixM$0;YK|n9fUBU@`-Wna&)x^Y1zpE;D!!l8#5*Qqi4~U=)Tz&c1Drvd zgifzpTd71E^MGu5w!@Wu{L>HNPaUHeje@=+7Bn&1)X7B_+<-aT#}q@dEN3kjigXS! zDf_P2Pp8`^A6dG+4*U1-r`5X5a}3Tc%=3Le_K!%DF4x?2GlD^B#|vL{H8MRGZy_VM0EH~YJ4G%x`H23`Z$M~9Wcq{$k1~c;~*z8;87Z!=qHwuOGCEl4(rfQV& z3qSX#y!Q3CaMktuB7hcnA47h{qKv|o3Qs|mSy)LW_XVowJcueok&%k3%h)0TV?^S; zjo$;6PL+h}H6kDuKT-T+EEiA6;1}STh$Ix?&DbXZ@cu%8syL8}sCp;ZXt@d1k*WyL z2xO|-S}H!SVYm_%3Hh_?uLb+fPZTew|b1>?|$tRKJ zL-^r3$?OhLC86BCU|k;aX(*VTPFc^|OmDW>$TUbw;R@7Li*%}uAhg?UOwwX@Zjrpd zx^)B8?Xw~Q5qTHz#lRWw{Y~-M0`S|w6~JNOtGxFs5_a#;0&fNez&CsE@BM7gD2tL$ zfAndV&z)sz&ftB@!7HaZb$rOl6PskCjJdgKigLhBw_L~mt9Nt%M-DO7X)(XB#M4h6 zVs37l{^|_7cJJW$*_<-h9N4#)?K>CHs!O*w;?9@s!1f@`kZ&P_L8j}lL}qbN#)(ol>9rMsk( zqm{3#@QOU>0YbUcfRmds0y9aN*n9L=L48C4F0%uYdkPnfS z)3AIRzqAt$UW46#HAQ)b)M}jawKc)x>2zAOlGZqflz~pmv3<5nszb!%{L&oWTTGIK z9E+D|p9?4OE5OeIzt%YRgTVW|_iq=GAB?|$0C*E{P5gT?@C)(tIa{8U{OT{hn}b&^ zF*P$wo)>)jBbsiz#VcNWI}bm6lpAl|!7u*1_wweqz62!+ANtD&*}bR5%zT$aPoLrq zZ@im({`@1{{^Be6o&Wj)_U_rmj(sh5?YWk#uHD1W|NGy==z@b+?%>b<<4f_vnXJcc7BZr3Ede^p4irZHv#gHNTQy+VhRx-`<`Savi z!ELu5aMNuEIQ-NyOG^uEY_2oEI89M{y1f!-1!W4fZUy_bw-}`;T#&oHyUSyOD7X%;(%Yj-cuOIy)zrL6Z&mSq>dWNe=m33%^6 zARR3U0$&3Bnh(4AVLg{H1=eM!Cz5!M-Gd0Kh%2}Ry@)-V&ij}oZKKR#L-7V z-c*M#|LV7J`pio7H3-Y+tmol}o}rz#dCzbEDN0H{_K^qprf+#OfAWVP<<7fqZ``x(zw6sqq?r1r;6&jSS+-O;8Yw|g*`6HCLy+@ zDl!_luyLNs3b+IqSC&^}?jYV%<6i;q9pXct192K(=1>&)e2Dnq2A;HgxTRf4cOI=% zQc)BDUXygw_-u#5G2dy?H8UK~EgQClcOz_($Kl-@g~@Hc8VNvcZs3r_b~3k>jkMJIJ|n=P6xI zH=XCrZ@r!u-hP0;{ELrr)wR1REv&5NoIJBhuQyGSjM%q-8>ddKfeZctLQEItJ-hd8 zNbZ1FgJ+8XuN>nT4F~F8&gH28yUFQqm@KRRSH~7eh?q}bgeLVf- zVeb3Pr+E2m?m}WXEiRV9z9=u;;2_1}3Ks!GB0q33a@JG`!UXA)c-~30;aAsG$S3}& zbqmdoLr@S#$FWZ4guGzD7k!!PzshI9Hz@j65kW4z7Q*lPk^FHKd#0Nb#8YRYG2cO4pt$3x}&*{E*0Pg^}{>B^qfrGnHDkQF0+CESFC6;UeX-BX&)YtpUuf2n^@T6&v zfBXYqg(n4Nc>SARf|!IC-lY*|$n6@%$YBg*SxLKN7z{>eZSZK?-H;Ue`+wx0lB6D2 z3NN~AnH{^P`6vIsZ=o!QBxw(AJkEt&e@IAEc3}Tb-v8&1@RGZ4W_2Z}*V{&~H^V>v z-mj+JZS(*CH-E^DcihOeFSwc2^&#!{G{bzr#vo&Mq0Qd?+j;tl!`ylItGM=tn=pw9 z%E7q6bxO6Gt8TF15?D#^J;NeWrI_k!g5|H3U)6Wd1a*Z;U=yO8QBgT}VIS2vXlV26 z+>Yb(7jPSm))YV{PgKb1B4<5}tsa%1gWG~Enip3hN&G(X+FSc?h%XmAXUiDJP$_Jq z3$q`uN2N`yY8Zx|A_o@{kwkrqicV3+`k+UNoQ78lR2yY9ZnTLzdW5ul2HkF z5!nTtiN}uv`x@8njmMs|X|4IlJ%@PU{s$3#j=j6D;lLH!xcAdf@b!QH4ZQ0Y?qUDI zF2@e9Gd=6L^|l-M^e3L=z*W1*h8Y{n1FpMmKX<A3~IiydckqTzmah%*@S$FDb2Jb904l+m_I}#}kj8z$DbkJ-iQ*i2L?0 z@nb*zRh&Pw$@EN*Uhfs0JGVir(*sfb+n@gqiekh|@4k!DWf+|>81xbCF}lr5?!KMP z{yIzBr`Uhh0lJ+|@BlNKQ9i;sRkO2IYX&HZ2pVCd^fkqCHDzxCezQq~m#>gYa8ngs z6~EX@?YFcD+;dO<6*H0}WsW$DJNw9m?0I$l=YSX*H(UZkG;|CXTzd&5fCq1pY>40N z5G*v+H8Oc=eOSiNk8>$mAKE2TWgpug(e)Bz9US68uMN?grZLPA>(cfxyII1n7XZYB zEfPcv=b^MQqS8mFD-9;Wn*=+z1C)@L9w~;nT!95=OT+}zuER6TOV$S?^3vm!LX{Rf z9N^~L7=+;3;8DiVZnbHpEiTpmrbyrq2pOW^9zTD-as0bQmx|ag zFdFvx>%aUIpZfTt?Ay1<9e3QopZ~@CdG+gWrA`))=(L?9>>%aIk3rh>U?#;K-?|Xjk-@K16{fayJ^Y`Avmwx%(Jov!V z%*?j%Hf3tsGBv%*p=X}u6|Z@5j0%pXr`kj~ncpAh*|da2oIX@enwZRqPk#YYkctBO zn6lkDe8ao3ruq@Mo4Se_Dfs69>z|_XLGYh%Psc~8<`X|>BrxU37 ziF?HtsKF+#J01Mu`>x-jPnGq^jr~bEKm~Hf`v1arQVKMd?aJf_buZmW|8$mWJh-13I8JEn)KzX+WSTupwaLc3aE8O7#(T>d%wXU>&}i?=+jQ4N#P>(U&CIH9%^0Q>@O^8bYp z;zxnAz<2xIKZQ#Vp1`FDfA~8c-`_!Y?ApQgHy&lUVHqABLEB|6onPVlBZeoRdYMj= z(apMyO>E=Y=PytnjW~4u9v=PHMH-_G0_C*fS6fZm%>|Ta$Pts#otN4iX-I_z~XyzSnd4@-#bkPmw1HGt*~qJOq}LCyt}@3w-lyIjv>Q*T4F8 zE?%5PQDg7kt$gYu#~GansMM<5_u4ysyQ}DRB@X7M!G$*~S)0@tm(MTKX&YC%D+c@E zbhE|0b^3e8x8_>m5c{in1RL||^vj@o(r%)+Ag(t&gXzO7o_zoR>%QQse++!lhJ%R0 z+3BCaz~5IK6cFnc|EoG81Jw0{9)##!lVI>G#JYP7#$;$O32&`MD5nT5tabvtD)5C` z&KOvy9s^QfOo|O8xpd7+fpuY@wuU^*9c`RfyD~OMm>g8>cn<@|Z-`J>lc4jQQt6c| z2LC46f$x2Vw_badeJ$`4-|3heH)9}-;HQ7~`>{GfYsmwzzmI@2s-zg1*v!~yjlI`h z$IvKrI~ni(t~a1f!W-VUgH4+wx-E+}AyZpNSX-&{`nNs6%;gz6?SvqR*t&g`2VQ>{ zx8He$Z+!J-R+j~z`PdV@Eo!iP_XMd~=93>g$KC@~-uli5_}W8XMTpR$&CU#9OwRn= zGUJmGk3N2!&?KlxaQvlnY}+%;xwEt6xx-^l96!&({0b_NblQT|J3#} zJglB!utkBAbzZ{y^x?++=~ccJU7D=l(`_5QfLAmGuVetkmGgG}4(pD$Zm!$n8m?v# z`!8K_HtP(jKi`1@rvgm0W>Bwjz$k1umcSAOL7yALI$9iIjVmUS{ZegIQKbo>u+joS z4{tEmr5_cJ_AL<5>2^T*iPp|Rh zXtHJN5T#0)_kG`k#-tvz7xqPvSlqL3Gx19&ybSL}v zZ{@jXPH^O=-E7%0gMN*}^I!eIA*$69)6;XLS%#94AA1hXl^%F=*PzMr4!Lqt-Y)-* zuRQZbECOFGELb;12Eo3eRpjW;)U#X4g% z7+zd07#KwR2aYljV_fZgUdgy@I2R9qx*{R(W(eD(Na)r551yBGeFHs+(E8)x>r8}y z210r-AQ&i%E=sHY`__0c5eL2s#}5!m*C`u?3XMTU5yA$bLaYkWScFo9LFg2@Ep(HV zEW5^;h0?6WhyLUXEG(a=99fnYmiYW>2U^9%)0mpJ{tRaX3v<9g%Os)tcM@?NRm#CJjY`zzg)bSNm%M;jY$Fbx}!SL7^ z)?5UkF;@3z$||*xFdXN=fwEHwvWo3Hau(*7sMm%GBgxQEo$GIm(Z+rDfj8ZX&Lw*f z?xNex*tvHXxy=wF0&NLHgAx&~ZtD3HygO_AyadLRZG>S&H_b>jSPw4sCSMQ5zuL-I zyyguD4x~~D@}40OS4_ZSEBF@+4@3FijevfWQ}JB`^YCgOz*S!RPUhnZ9B=>wyjphQ zkxzV(hd=sfEX`cvpS}OfRE9>JS7$As`Mv+Z@yEVS7?*h0&-@ab_ZSdjCMp9h5J~< zlE(NpVn85CQ|(qF>m7I58)dzTx_&EO9H31T0xKli5hwJz{)&!3ryL}lW@4|!SoGd= z&PIQLZd|YJ)xN%WZvFE#CLdVxi{ReJ)f-)QEBgN!___Yz0Bk>WBR}x-zsAty=5;4@ z;<2x@cL3zyHG!)U|y-Fw!LW8t1puRH*}KtsQ{NV$T`3P@iyXbnOYliuA| zcSnoDFTi`A*utP#gjFD2V^Sq95d@M_SVjb{iOc4itlK4$u98!QE-R8{T`yF7_3fJQ z1f){j|N6Ul=E>vSegDlIJbWEbJ${n=UwbptGfR|8WdsT-L#)ZYXX{ygaQRmwOfP0D z^0LNQtkK?8HCU@$=pY;ut+tLBLg0#RWY3Z7vlbieyp3WLMZt;yfx>#=u!!A-Q2xA% zh7-@w>)lEzUGtDEN=y9&62dhr6;RX0J_5iKraB|g1Eq{`wK_$|;45we6V$KV0_)jy z@GdC+pItXV*L}Re1^n+zGZ*>OfAtU9vhOgLPrk^+j=jA5pZ*GAsm!J0FYvkF|5eg% zn@VGZcmC`zQy(4YkN&qGWz(JmoO|I(Zn*DF3{7n2tMC6^q>#kb8bACW{wsN!@X7!D zD_lDM0#Yg7@MHg!-AC`>sn36uW8eA;S<+=``T_^1l4C>5p1($tHoIHULZ zkNhR?{(C=q74OCN@9#hiWjwY}WOpnB_t*D0^rM&lb26U4z;%hb^5vq4tB~dkRD>{v zO0*%@Ik|C-Pu3qJO}hm4Z`V8U|N1sLIm&C_bT<#a@l~!MCX>AB?ROG}A^Weto+$R# z(B>4t%tl6@-U{bQDtpLv@g>5?uHYZU`fZRZY+d_q&)wyUN%=R~23PdK*LvsY&qctx z{jR(=FI$GCop>oWK=?LOBiIllUo9knf{Lx51<)IIE!=)FF!8TEj^j&k265rS8Q$?v zeu*8|-^@q<)4%4?PkfL&-}U```gi^h{?5PoO{&AAJonYl@TEWczj^2X`bz-lJmbfI z;{#wVzw?jZ%lH4%Z_^l?q}y^6_mNM05QN|#{mzG(KYyA(`B(ptpZfie0Wf{)82{k^ z{vbgZ@moLsPVRX7_cAoG$r)q+WCczMNerAbz}mtrLlc{Nm(m!YVr^lTwS`$4 zHO8k{Tb$>{J8$Qur=Q@re(B$E?_1u+^G`m`<{i7Jj|^YM>FNbRJ!i)l-~A{H&(-hJ zYv1t>#~!lEn$HYXFFmA5!&vC$B0 z@U5)}3yo`g>Gus>C7u|>-S9qy6kyzQXiRKk$MrXZfEyot8{hiapRw<@*D!nL1b_1L zKkg1;G_{e5-XX8Q_l>=0wEgf+eDv4<4ToRz1`gfrl1}Gec#=Eb?h;eu+jcWNxtWEF zX93uK)18#6bpR%I>|tg0(!j*_o)nIGxPL$43d_H4ySf(@D8-Nc^gm%W)8tvsAO7mU z;|G4~XZXYi{*1NdCGNQIL5|#Z$NF3A4XL#dc)kTwU=|*H6+!6Z^ddAH^t#-$5>k0@ zG$*rS1;v8&PX!{W2AnqGJ%JP(zH;P$jTiyT>Qa|-*^;Ii#z^9_CQynb z$tahciyg-?oo+@L39PmVX+24;)97el3Iq{IdzGFTGRxj_dT3Hb&_(q%zJ*| zhxzSa`M2C~+Z}xz!`j{$5dx=zWgVy-2BJq6YduFnFI#X$*ab-8vxlO$FiC{h9qjpZ z6qrIO42YB>Ksmq=fzEUCJjbYOoK!^TDZlnhf5M)9TUcAoX?GXdvwI&S<8_{S;w6q8 z-A$v>V9$Y3P8?t4-urIi6Ce9B$QX?3(ZSJjI;2e@49G|7xX)r08e5g|< zHSUqxbrWa(`B}fxxYftYvK1-B!tJtGes1vdgRb|=>}Afs@D$q*-^8m(x<}aRMWp?bzjE*tNEzcoy{fr7AxEO%KjP+(GLERd8U zMHH*vV&ixaAWt*6)|rJm-43t0?=VA+DP|WhurLeHKXZy8Y;n)MH}S&rFCdlW)1R8* zx5dKh3ocD^0B}A4BK}`{O)i4IbpQM&;5&^SmsO>H-Ukm-+6$`%aGDe1OJi!=vCHKq-)LYkQS@Zh~&? z*Sj(-00#EAS9!nhau)z+|Mm6Wi1Afx&O~V9STQSN4wYI2nWP~C{-{;u#!wLIghaW9 zr2bck{?EZv7NWI@SffKl1!n_{`WC$$$M1eDLyR4o^(*C$}D? z^3Z3w;cai@r+@9=@|h$dH->+5=be1_Qi;GSW_MN+T z^MB2~Ofpg9A3buGzx?6X6G+K_fAbr7;K@($N2j0Sv6)N!;v;_rz+=mo`Jos8n)^HF z)}89Vf9whV-8a9<+VT>=^Aq3A{@Y%|JO0Tpu>baZIR5C@`OP1F8)01H-9Ph->`)my zH-{{L{}1uUKl6QP;QM~?M>sSRabYP%E6W!?@?jo$`@0ZAvj2u7eDlkn=Rf@1&v5ta z-{g#9VeqB*KqOu`)!$!hG1`?6JN#yVUTovNEuNOoGGtli7AoZy1gEAYJr0of`l?jm z7>s1We(ZtoG);kPyjV!7fM=dQ#?D;{TX$|ki8^Oab|_a3%~qQrDp9EgTzcwh4jnm+ zHc+lqSzMk2%A7qt&B!pEJ9U=D`3qRF!0hEY!Z2g{(j{Ja`YdBp4K7`nWo~ALdbP^M z^NY0GOI$iTP14c4>0PgeTq0}^NCMyV;iSC_Z&LOJf4mFd4#Sx;yM#igOqH z*D`Pd{#Sv;^~<|_{8bFVD_&f2zWy3}|0}LrfR&^~oJ~U-BFA7@GBLr*BDLl`oh0LO zo=}n@VI1&sH(+YGh82>Q6^sb)CH1%&`#OkM+pPCYT)1Y|y;j`UbsmnNtit1?n<}u7 zg(TKe6#?h7kc>jdLi8|%{*7Gk_4U8R_KdB?$Mez`ul2y*!ebb?aaXzj1>VtTCbGS; zp}cpI87L?wjkV5bN$CZ9-FVS??lH2fZ`Xto$TH1=!`qpd+Uz*{RhKZTGP$YD)WmkG zjR0Xa-S!wk$%%wM@P=0-We)cha^;4&6q9F~&=*g1+ZjO!D$sn_58e*~@=T*t#CyN5 zNuDJ@2r|TK5QL8OK@)!r+%VuA=UFmMp=X|ApC zUw-dPbUVv@l8oGFx>-h&r^pDjuw;2mk}A3h z7$UOV5S6M_>SNT0hN)I#w6-8pgmO1a2+`9HC|2VFA8^}-dV&qxmG7-zJ-*#%r0in? z?q7hC%7HxHloLsr6WvjMcX1nE&WHJbmX7j5dmJMKLdgwZRd@rU|4;hKA@KC#iuH8i zS2@o?Yy%t#O7Rv2$mssELU2h}ST!LnLgsSCS~sDyFpt(5~f@3UgP^y0KEQ|5M-!;leQLhlT#_JkQ;|mi^;q zS%yV;{sL!i+O0OmV?Z#!PT2FCj=VHt6Z-1r~BS zFj3ra8kpqtCb=|;K(p{_cdE;&6 zGCwhPoWE*!`P1e7WKv;`@_=)W5n*xA^#iQ8T7$(=g9+;?u8PTZHJ5u}QmxsDKl+Vd zMRry(VT?WYP5$W7(;GflOc|dN6FFjO2C+KLNNpG?6+@%L2n(Hdo0YXyv~hJIRt2;h zo5`i4$Ff!q7%6+DExp?9v=;l)*Z9-zkC0bKT(@2?l-c+MT^bHt3Qx)$VO>_n%%3OL z9qPkFtacM976xP73LQtRt4g&VN0I@nja`I7dR1*VVO>F*YeN=Ng6$KN_6*wq-MV`s zo=^r5LVAia$c;e=+f%!;fYk;eBtfWp#$%wF&lXP;zphS+wbp z0<87%s7;+^wE`sqB$11kg`1Sd7~eZk0E14f)b$lO^i_I*=W2BUP=pfh0T&f)8$*b} z&-H*c_m2PJ3QUThnOWn{W_R(Z7{|yELyl0!Wt44L`0M@S6d^$IyS0GE2!+aB6PD?% zm{)l~1zIU3O9x-il9E&|y+n6p3%~fe5Abil>+KX3dcwCPD-mEZNRzUE>1nc+c@~#C zjE-!kTpeZm-u=v6zC=a|+sVnh38|2bH0o^Lwv~2c6SL76C$k2bF)poUH=I)+jqG6= z0t?#mi=X{de)Y!p(%E?!8}jH>k!G&qp#U4X>%LvZd7IvDuiV)g@LtmeDOc zS)5%#2-l3GbBz=M!=oe4`}EIH7=f{xM8+%~cmoqN$FU|OFZxKVbRDTeVWq(4te=~O zhf)9!{+dm$vECR+DUk+@lDO#|Up>7s6)2PftrbdzSTZaLQdH1JqjRrciJ{x+ z^x`_O7!64`A*e~Rt{{jtO1kQ-jdcNikgu3{S8m1_w7xne^k7{pq*%5H#S4w zv7BG2k%eH3+5opZ{XeeOSR{JPGX{kauiz`bLT11j6pxx;@uvSy-+y0jo+mhajJ4Uz zD^a;2W8DI|@h0_u_KcX@Q}!|y zVtxO=7~nn-(m4WB5UY%a%BUE@_EMWPZ_`nb3*EyO3XTE%LV-8jxz2llZ-D{y9-sB+ z;=KqPsQ$Qkg-zgamSO=a79R`H3o{f}YYG+vg!Nsp{e{J9jk1uK>=nQ3nlJ)F2)6C2 z@Y*-tLAhMx(TAVp?8ysc=?s@Iukgjs#617(Szdhc0zus3b#J(nuYLJ>-v7sc#pu}E zdE~2SX(b(g@}F&`QYm3{$Rpo)h7W!4<7}E5ax;i66#v(G&pUC4 z?610RQF7i!JL_=y{6)G+LR2nODwQaOA+>VEP`yH9s7AF~p;E50YjlV$B}KcNbFyh! z)fouY?}ZRnI@s)@jl@2n`{lrtqf(2TL z-p``?&lb%#b6WrG3S%mzbjK*{ob6)@uIGau9)@t> zxKysm&Ki2vgC@JiJ%O=_8gG5~t&EN~kc4d7I?CJLc@H+s*|vLu8;)+Lou`aVY~j$M zokUTYQe_BjLiQcF9%C#qF(3KR*V(qK&h9a@Id$?h z-~D%QLg$j}t~*Sv-r)9E9b{&HmL!pkjh8rha5trjW@i49%O(^OVb&5wl5#oZ(uHNJ zjgWqy8drn^gIoV`yNiTvAoE5Lhj* zH0J~HZ{GwJe|pePdY7@_%Nwi*uzFy^tRJYt`ucb8dOA0?2xN<6hRCvDxw47!*j8*S zA?hw8(l&vy1Ue*Nc9UoG2rU%aN^gi^z)JSP{=#DsK16YF zI^bEoWr!8J2QaR?C%yUtXB1K)(V^j{al`xPh7mGCSxc5%M*u68V}}p|+4Jn^89gDu zXpK>>zQAc&;)H600IPF^1udOei!DY*Z-wulprdW`U@xvAuHdLB#+Vc#0*$eX0E<*% zuSUdJi$tQeAqWG^wVoo(GfSx)@bqIBIdaoZmY0{f;kHRs7<1`Tja_>-bMVMsFb18u zw&UxMZsWKA>(60Kmplz{slq*+Il0VGz0RiFhq&ps18CEs6j!9#c1u)k!Xz3Ts*(X-S;2n(BYkY?W=7z zZQiubb-&UG2%JujaN6~Lfh{V*jIk^%cNiXy2$kq7#i&7};&Ec{Eu>9_%_OTLd$J!KOQY@Zws|R+660~|fMxHk6$M>Tuur0Hz?68kqQU-8rp)MuYqo^kmP$;RQv>vJk@Y3|Q+zEmdS6oaa%iSGl~paP{%Q zHDUzj=azZoYbUX?NqcpHPk#I`XIzXRgdo#7d#~F` zyS0W?k}NZxW6&YrlbeUww{I7nEdWiA@b7Q5+5Z16z7!c>xKd1b27YoyIN=PKLW+UPMCehI zxq0fqK@-=pQ5D%p$uB%dsWr`1sfI$cxY}gfNQ05B+vv2qB<&87u)KQv2w$3S(p52O zSO%FPbAv_o@Rch)A9tP>i}WlyMcnRUY}q$>1;$aFyq{=Vz=|ldoR!h~B34Mog&@m| z6@R^fFUom~P{0;hAWs@K z=tDNeImvz)DTPF6jWn7pxyHi*FkHNJjG5^*Hg6f_Rrl`YlOO#i2fHo4=X)RE!nsB6 zy2sE;vwBovC zE`=EF_zA5M1VM-hAk_(_io*~F0luCwpugH{`YVTXnthq4uqY)++g+BjjL|Wt5@W@{ zU>o?gFe=SVlPifSI1gUQ3wWi?_NF`17$>u~ZmAq_lY6dqaSkAqbQP9`>*^f^J81l@ z#R`L!t_Z7IKSHEY|GFQ%GZDtQNKgRt(W-{J{%CzPg1EIOK@>L#ci;b!EQbw1;&@&61ZkE zDFoWzpMGT2Hyrftf=f>-;m${3F~asrj`8Z#PUKMa_y&77b?|3#RN;?`WT3<`aq5al)umY)mC^H)8bt#)yyxoz$((*Fg3M4#e<;N-E6!on&pau zPud8Bu&ST(x;iA$-@K>c5Oa$%1|$4xCM5;8fqQ8XR4cggz$!_u`>U})q0qRf)zM^0 zELIs}lQ7ktX6wRnaynenn)7R`U@c4SHNNoF(+qDKqcSzjQa59ABqEGsh62q<1P4ZA z>a`kS5OZd^#pCDJ`0vNNJiC(lZw!2am_^GFYq~waQYnyO#MFOE(Ks?nrjP;j%`L~!drM(t+kPPXJZ4;#;rg3`xESHX}Kbw*iGLYz*lcKn&I8O1<2E&Bj_ZH|slGd7Kt!Ys~M!7!XjSuug0(UOf2!wAq z(M9{O7?_+JN0Ye9AM22GcYM<$6Dbhs;tc6K0zDH`7!Vw-b$=m#D;GFs4V*edeRzV2MvOEmVGz)q}z8zS*7GVn~UOvhBbLY|JI&v(=bR7$~Qh^_LuAnJUfL1?sz5HfMp%dpN6d^-cMal5j!um8I!Rz>gjd9&fH z>;Rv|a06PyWC=d^GE|2RA4eZZAVBx1u=*a0E5vb>(w$C9yPfn`ZU)YMaFAau zEbuFS&tL!yT+@~N`EM_niHp#{0@CH9i~WrhU==mpI4%(gsKqgj zN}2jdoyjee$S|U71gctQY-*GpyLK=>FIuQN+mbFe__KEFmG9BuzOwRc2E; zLWs=yV=8ocbNU?~gZ&o+H>iJ&8$Bf3@9MKwIOSofeCfE$HWVf3y>UZ7%o8?5X+fwW zbO2gfWK=>_%Ph5*_}oKZ2dP|Dhk$hjUgFBrEQ*7aSDL~)0v>0G4H%6U1|wblh{S0U zC?(N(Mj$0o7;y6B30kezRR)CHzM~NkLi|5Mh*=@Ta|5saq7dSu5aKES?=1uG{R<() z2_eKWA;cTM)A0e;R$I)^Eb-EFXSjTBmh;Ciapt9qEG{pT%aqlXHD)d?U^7Fvouc!c zw3{MCe*zXat@yo|kXM`RgCRt3)wTnxfdFewPa{AGi_;Tu?VDJ7Y%z}h+||t&=U_d- zsqo;r3%ACBVYw#7^00PE|;jpW!kGPj0j0O3H4BN z{cy=w$=QCbQYa9zpomjgwzu6 z7laVk*>A^a0Cd`2KKy~t^5|pVVruhtvMdGL+w*H(9^Rd&Aa0 zm%+HSx7PW?y54$}aDXC!Fi0CRt~%V=Fhu1N)vA{)ufgcp7@c;TPP@tM+&oK5YfMf~ zFgiR$h#(M_avU)=IlsPbes{e&PdTyY1**$>cacppYu!&MVhWqqH;&@ldQmFif~T|v}2~B)$P*kbR1_w zk$n<^I1EsN0ebPmD=QYD_2WQD>FP=XHGn}3JYT<0@md^32rNp4NTrD4m^hA^7#(JH z^=~0fZms=mA;hllw4dMJ34Fj>n*gVU5GQ~;fNy@g4-JnrSY7TiKQm9#X|rd~enuwt zFtv4pI943JX%F+WmylACB{^AFJNjlq=MG-Q-5)$VQ z2p!*>L`la%h_B%5J5>GEcyRSE2tx;zY`^X1=Us8$N-3<61X5snN;JYvM(37rg=-7_ z`MlBI`IW+2gI{L+F$S(*3>YXoXk^^|RDmQfXx6YGaz-Uol^|9j;m8Qa3RF{R$1cO90bb{2n<%! z>uWC#uC?Gmb%`)==`5u};;4i%f+z||laxG585$d7a`R@+o<7Io+yYv{z61NY_rcdP zHaC!{!TV1w_}ED}@Y0`|wk`wH zkGsE}5%vbWxGryBm6VuV_lR2EVVrSL(uafoM)|T7pVjF0Dz}AjrN(g-xvx@Uz5CyD zyoxd6UNgc~fM}y#se$idu|BhaS1q!Dw3ejXCC@YOX-Lv61bofU5mUrJun%zRKAo-DY7hg$Hoag7O6_%bK)3*QWmZKRP_(j)r~vAM&pbGx&ZkUmK0a_P>7EDvL8Pw zjj;rQTR9|Pe4NV?<{(sWp!YsA;1%`UTC8gx z5&~=?hvrto>uVMr1XOEP=H^!@Ye~H}M4Bpwhes)uLR#$(VHC6fy6e!nVe7W-Oipd0 z))=DQYyvI~Haoq{mhC01G{mtY%QZn5kmp%14K_dD;qJXdeCXvRj5376l1mU?8L7ZJ zEc7PWz%AekNUSjE*7`BvEP=NDRv)|vC51DD(x+Gr9zV!5*5tIi39iObQkd{K3b9sV zLW!~h-H+4y&&(D^%m5mJB9M;oLRkLE$_`j-XRNi_IyCGLa4tWyDn3w-mTlT^w9XO3Uu zYrAA= zLY`%$-3%ctdG0C&O=iGq2cj5>BtqDnFt9{H8A*VY5h{pK%A!=@8%QL90*t^AVx=K0 zguR7tzBj-P5^ZzZd4>^1 zis~x<{@|b1UghuNp8=bL$$K#{7RT0P2Mmeu%agCF6eh*0pts^mYnc!&CWop7szj|Z z!tltL;~S8YTpQM!Ek?)285x~qa&jBH_Z(*Lb%)uuV+SLnlMeMplV=&7Zig3-y~x)e zdW0vRe1XNKHR3oX%ThwmC8?yKnjEq!x=%I)BU;fDt^1HwFA>Q?#2l?=azR2ybKE&lqiyS_5fUkY= z1>XI>yZPGJ9_HZnd-=vg$GGX1?Mz>2vTM%})q0hQ$x)iCIZ4*0Tpr=*?OPDipn?)% z91%qkNzx%r4QPW9DbtshSh&<>_rVd)o|<>%`&xhj7qt}#S7DPJ2{P!n6=dw zqobqD%`Y)DRO0fb1@<4_g$iUyPb%>!x#A{!7fQ9)E!V08_ z2m;F|KK7UF-m{yN$1hN;)%ofdAE(<{<@2Ba97k_F$frN`MRJ|+*b^fVv>6?*GCZod z_4eKT;lqE;-o2xI?h}u4*FF1q_K6vueD-VH^_qJ)dh7Qhl|<8V;35X46bp+@YL$>m zv%$wd^awNatGuy&m=FBf7kS$|@8T05eT2XNlW%0GHp*Z8*Kbi9&DpYbf@3cpV{&SO zlgAg?vuBdir!Vq-KU!h?-kl&**MDzqZ-vQogE6qU(4-V8>Z4VZRV**9(P?*kxpc4& zw58uhs`g%Bi3%IVW*dFJsaAbKV6=x>%C_};6${9nG!{=WkJ z%6B^M;AX60YRe`@MpyXohrUFo-R1K6S-$Ig-p(gK`6y34cYz~Er+DG{l;IKhv;Xo9 zzUPPTV%OeH96z>~SKoazCy&q2YOkVD+<4OW zISw2sGc!BGGtWNHrAzZX`}9dxmd+DbHP1hDira7BOLKKA$R=k_pWyJ}O{963O`FFt zTKH~KNtS1H+AX?kZOWw>87QR4h{~lNt}s+D5vd4hqjE4(VS*H;1xEVrLg7JC$Ib3s zRAVthBCTI7t%N+oMy@yB4QAJaU<2!0b$uTMet%&gj376NpiI%!5Gl=YCBo(_Kn*Je zxU5r#f6nYX;qXDNB94bj7Btocu z$EBM!^noh8_a@zEJtKDRbsZ$iAuz&KFd`g2p{yj5fy1DDZHE*Ai_0_IvVS`m%ZUqx z^S*w&Cd!7lZJ*>#Z@r%fU;k>C_cVe$5!6RQ4j)vvZS{?rWKYkZs zDCo3v9(eQ3lq)ra)JP*=jJ$f z@+`Scn3-Ng$qGAnk8=3Pb(Bh8bOMmpNm6O$2`G(52ume5bcFyUN;q&dNSCRaHZdVf z)ag%0;R~U8$Kl|7zr#wOJqz*&MdLIG{@}pB9||&F}Zn&FffFrGOg8=bC+5ytes?Wewq1&451=Q<(x3CA|#|q zm(|q;PQI9O`X$Zo{nycKE;Bq5V>F~mLR^ZuZ}SA7IC&C;B9LyG)dEZ`kXB)ZtKTTx zc$bi|eFH#|HZHO>27&hi0F3n%^#z}w!vcy>tgxd+Yq;>?oAPpYN+`l0Bq^+oq;HG{ zYX#iRcK$Va_!|dI+ozpK*v)Ei_&vla=dtrvdH|=0?p@R|;o3{)h1kBH^ zaOlV+^?HRQZBr_hur|Qj96?B{y-XNExg2}mc=x;-wHT2LtO~gIzFWBGo};KJV*BpR zR4NtrUbly+93h0^)%RZy#>GVlLl{Qfc-vklXkip8bPX>O306`a3200Wp)*ajT6a~6 z#u20%qY=u>O-qfi7HI@pNdlX*JzHd3*kmbF%&H+&XPHgeBDT|_TCFiQKEj%4k?Mez zTrf+W1VPJajBxskGIs-3E9lh?4EW2o$cW?_V{y(!;fzK_2&&ShbCn8FD)8KQf<~jx z!gPmPE#jT;xtG1yZ6%BhON%Qk%&+k9@2;YjEos}Zd(RMavuy%dW@2;9_*e3F_Y?g(Y1wQi3an{x{?!0R!U;NzDY~H+;ANhxG zU}ZVyuRiz~!xIV5JvYTeUw)1QhbFjmsY|mt&oBPFzmEzPzxqob;==i9-um`?`P$bW z=WXx4o1HsH_`>HO<-rGE!|(p~AG7PgFxz(C;U0kL_j6k;T3S>jF}T=0u9V2Erc|qt z<{6mCY11nRta~_4`YOUoiwZ2pNDA6>Wfj#hX79EsMkYeSI07AFw4jx&xs}PU7Qz@u zJ55F{TV!kJ9Gh&1@luUZ2@{K#$+SU6mT0_8mUL;v5hY;>grSq9Tu%onGz)~B&NG%x zg%w#LMWT$x*vNIxd9o2@T^K8ryM7}rB6GuMTtQhn8tqUjtQLq!VYH@Jk4e)mwOT;6 zR$^$VN~g0%DXg+@|1j6zu*}JG(-@g>-#xdpu&_$5Iy6@*tSxFzooumV&j|I&ExhOZ ze~>@=f93>#`QcCT7aX7yRX}GbKiMmRpo1j00meG7iFE~A{bjtM zaw}GOS4d@iROHg5g#b)%?t1UA*IMBXNfZQB%O!^kNQsoL9wQ6{fwqu4gSoCwK)^bN z5z#xl{@YhA3~{v^vD7r;pf5^do#C2aZF7Ehkz2PkUUB|i6GkA*Q=WM2DGnWeGvE5= zF?Q}5=F^{gf=su#c>WyovvUlMj-Y~&$*CHj|I`9^zveKVcEHpo#pG0#TW;G!b9t4E zXBViCrZk&vlI%1SQ(Z+#WVo;%GK zKJ^frwv?&WB-^*`BF`5QfppyM(&dGXwOA<~nTZ9bVPLQZw9S2YpG8TF)~Vwnup!15 z1XUuJBGMSLT#;*m*0}m|t65v?kZ45^chROx(l#`P6_rYiMv!MYTDlh2k!+rQa)o+q zsg#Exh$vU8lxriLIQBAI#>QD*Tw!>mPB%+XDkKP@90jiTKPWNO?rSe{}Kl^b` zp54pN$tg71X&wSd@Xzz~qmt$dzrfFaBWPu`u zYi*yY$nCwZa<7-Zlae@&h@%i~EUGX*B0>g%OFs+M^DNhGMKZ&C4z6<)-#uzTN#FC~ zeGuvTR79GPCtWgQU0T^2v9)H0rPW1F&(1MqU%7$knlJ)ewvO}Ozw<6$^_rWRp6zn@ zhJDoPTiLniewLjgag9cOnB9AJP^&4v_?gS>*gZiz$vJWAWx`U7v6|W0 zCSUpTql}D|S!|{l9rcun!MlUF^pEkDS)0Vw1X$(b$V_8MkV>FU4$2Z}SX^uKxtFH7 zxRO#X)fgWsQ>&C|<%z4i$u+~}3R4vYQZrmG5sfHBl!NHHDo7#Se#s2`^?8O$0a&M3 zr{Xesrm0n`Y}vMj)=HDW!r2q&*mH0n^`R=(8cLxngwbfEf-aiK3U-T>wQQOrL6xsB zNLGfgrz<5Q(->948sTWdt){CK;K(b7BPa<)M+L-{kTmNMbS#-tXk%GkS)>?EpRLv4R34 z=qddehYJ+lggu@@>GJtX1ysrji>Y9Gc7}`7C#eA^FU-8+{JSQMKom#3;VpLpf*=3K?;^`` z?!M0=L`V<_-pA|EHYdw0_dR$EuYLV(q*(@NUVYDg-ut}|VuY(Ks}7g>iGTWCSYwG| z$sMo0k*O_JE}UQDzSrMOT#Cpt&5bwhM@5PQH|*iesdMbvyOTIBF*A3Oa@^qYN1vm< z5@Jc+gg3^o2o5APer0sRBr!=l<;53Iuw}{`#=+e~ z+_h&LVYP$~BNp456Hi{^iElkbrEIB=O`vKcRO@waKfHr&<7KjLm%wxw8m-Y@?J_E7 zIFz2jmJhQMt^}XoKmC(@c(3SXzeV`9+56HIg);Tq+@q(|v3= zn~nlYYh<}foLkz>4u{Yr%MUZNnlW!fT3e5zW7iLWg_Ck~k8OBYSyQP*%w1gN3!nKM z$`~d`hq?aHAx5|FpuM`r`R6YqrDip2v(`+Bs)}7haQ${gvu&M$F*%KzVqyxSaFoVy zl{ix9ETL-z<#NQ-$S8l_DY5#kM~H$Z?V&QUO4uV-cpR68j69x^s=$e~dN6PuIq6{R zjh~91V%@12<^A-a_3|DY8hqR#2N;X2XC2a>%H0}A1|z)(B^0?eu9N}#nU`1C3QQo1 zBFAM>;F|Q?m<0x#cF2>i>tqrA;~Jra7B=+f=Bc>P;% zqdr{X@}*^7dhQhC<3s4&lIt!;OJ**YncP%iaej&U*%i7;&J8#0;mqmFs373*jfasc zWA@@QL-h$N^@s=GcoU!a*dw0B)#q%z5fH+7MVR728O|P`=HLJF?=m!A=kWFWSYBRX z-=5uU-!{SU*f1wAtg_rZNhLnOwh`E}sftjNRw@{;?IH?WeD2Rb!TiiOQGwufZ+n0@ z{@`5%Qt=0W@+nTAdWpDPB1F)LEuBEJy4Gd7b)HQ-_JDw)hGR_DXiBAFHgDU^g)^tw zy>}Pq&t1e=jX^t(K$D~M9OXldJlBlWs;nj}#9_?Z(h}X~D#6?WJ8Dx*Z9PDFOGG!S za(1rFOF@kAZnthWIrh>5FC9C@mp}6FH(=Tfk1VUlVyJYx86?_ zcNri5yWDo$cG9-t#pj>n!lgyt_k9myYzHj--fw+~-Mi|HPmHp((B z`Q1ZXTkY`FqtElD&wQPQ`89U!+rgI2V@yx4Ff(_WON%Xz9e;>!vqP=XK!!0k%aAfA zs#ZDu{EJ+_e+NJPkN!R*!!_#Vh?}>S+4a_2c=hcEdHm%|y!7%(RA71G`3oF9x{KM% z7tuClesP6bW0+cfh}!57-K@*(#fxlC6B@%qh`04hRQL{7J!YC0C)k?%TfG?-S+_r=4y0}cK6cLM% z9YM>b0;Q(pJ%L<=fN?~xo@oc6DD)CR_6$Hl6(#_yB81j1MVV^?>86SH=|gE9KEwc+ zD2)55Bq)=EbRC0MWEc}NG1OpeXaq4oPiS(IqCo44^dR`WAyz50wce0Or0tXF2xDB) zoRru+fjsRM2`S+OOH8h*g_>rPIB)M2wrj!&gkeafQl(VcMWtTj)XDQa`}C9Szitby zRzhWXl3Jrot`l@_ICWxB}=T8a0N7%EVEH=U+I+ZMWWrH34xf z5Ru^G`HL(p&T{khcX8n<;647ifBUC_8iqM@7y0y&Q ztYP-jWip-fQ$P7*Y$&- zWPF74r_N9+MI@~@-L*DBIb`$H7Hp=O8XIBrgdo$FR&y(KbAJ1=X8>3YLRN2lfU)*G zV^4pB`D0(BBvOX!L+H$FE!vEci3asbnbC5cZCkg{85-xn{_RK%MyI6OI%#^LXsxcH zh9tSxY~H$sAdYBv5|%n$x>gd_$H-KPG|%XCyEJ4#ls3uYQg2a}1tU*y1ug0TieLST zUW5zd#~g5ci%?67CG$+ zpVwcP9RSw#Hh9lO_-saxp{mGks(zn?MPOynD=qJBzSFRkR5^OvEiBE?uy@~XzV(flnAlwBx_k#yQ^UOc+!{OgTefW< z<-Oni2A+I!oFhkWV|HeR(as1DfAbXYdC&X!+FySiL&BLe7x-uY{Ed9_qu*e4Z4N16 zZnlXGDojr|$#qV(UZGZxFl}Qiig$D3!9BOX6}s zx78&QDVfa(f`HZeS!7tEYoOan(Ha`V!-SD*9ql$(DOW0#!U_mMty*?11G!~lVuaOJ zf)xQ0OB6VXtWzgWGI#MJaUiKyV=m83vvboFn>UY<>IQKsBsYdohLlT^aw*`!2XEz} zCml^h@Uh=T-}*)t_Z=eHc>|kYdX(9jHQH-AQ6MSD5y~i(73|wIMy0Iird_(7Ri@`= z*)v=tOH-^ZsMvChh2=%V=;S6R$db6qy~SpeuC+wf23b@g&2o%2426VY;|+w-VCys*BS;kz1cko3Yr0V4AljttKePp%!{L!pu$BWyVQ8pE zZWM3-uG@IWd+)`tiZKx&&^jfMW$u5&5wct&tR^hQY~8V$Fq9YtH{QCPpBnle%4J7c zH8NIa-@ZLybLS*lr$8|=Im-9^z&q%s9h8h{j16(}!Zc~Fv3W|eV#(r^Fs_iNIbjf! zrX7;JNm#3}+FWI7e1cBCz-PYnC0=^*Y2Na>yVrhE{V4tyAK1g}72?$IczBF0Wu!NL-e* zT3wpmgvI$eRu|@3URZP`#6lu$!W}msVPayGZkn@m{0K*HJCGuCjm)0GxXZn`6FnR2+L9bFy+h{M9wX(c|l#;3X2(#Tb6Z^^>9BR;R zcF5Zu2U?a(uH{+=gu`Wol;}Js&k~f4$+bi6jflv?5|+fp-%7BbWsZy86wO$sw{i+! z3S6N1#mMusY5;8W33*@c3)&cDSkTP(fw_XINInl62Zs z8Vv#&lA9ca9B3EkDrx_LOoegv2?e82pU76@gAjzUt~5L>A*FQ0B|Y!KSuGib1o|4s z1Q5<@r)i3k9Y@ZACCdVWzyWgtMUG?G$+bWl0W!y!fYI?GJR3L0CtxzCPR9f_X?&t=8DIWt^xSk>`fbe&Qio zooS3PSaO6_{`aPq=M{`i9*<%UE1nOj)o z_B-xi+m77?afR`*5tf&iu^7@kLxmB_7_y{;R2pjqp|l8$qvOg`WGMt|Njhz?mQuOQ z<}FjKuB^~$cAQjQo?`Qiw6%uL5^9YqowX)2moE}4#Z3oq#FAqP*}ZQkBf}Mj>s1zJ zo9Ha3nRO}GV#dckZ{6rHW@Z8L)MqeLJ6XHs^<;Z*rh5JZCPS|tU=UpEt-1Yih;_|TdFDI;YfwI&*q`>ER7LdLz_DO-ia~Jf z^cm8Re-Rah1S;m$2R1V~bdwXVQBJwZiuC{^8)9}_{9j2_;PHjx3WV&XFTwR9IGV|V zQ&aT31u3Bv#RQcqoW6#82c!@*N->MAoFFa%hCI()kxu4We{F^#L0F5j0RlyuX>w^G zcf~w`#<^V5V1-NXNPP200LDgcC#z9}u5bk9G)=$_8Wkd}B^Cxp9-#e#p}aQ$iRp6g z_<6Ff;KLvM7=jd&In6qh1CDf-V014MDAIV7DfS(1{pTUebDh?p=838cZK z9TJm~OU2eLn>c;)Bs+F)fjp(X%XgMO5ise$3>1c#jcMV4m z7E%dv0@EhEC{Ys1yMiN+g6rqijg10wN_Thk{C|h@_w; z71K$F1LG6!*#&|i5X3?df=kInF^fy9#BoTitO%_pkOEXlE6E5|Kvha=fgn;EsT3+u zUMw<4TS1a%jHwDz7H*>@?Y0r!5yppVeDRU5a_aPx#xfmDdk)f825mcbd4lZ z1c)$WZ$8WTrX3h7(14VddZ!p!B<%uJu==1#MSz2omgdyc>i99p3J2~yHi>tSdS1AXAXs7`yBx|m+xn5`I_N@pY zRsvND2!&;}lai~9m8BMO=KLn0L~--nn+|+kR3CL{DpCo$Fo{ z3t59yf?ODaoky^u#H8x*s;wj3cJmD^E-g`xr^vML{8X}6yVN`8fCn&0gxl95bm!)n zuKQj@&lvb(CFvI+j3L*SN+rhV^cCmdHDLs{)B}F;?h*d*xi!ANs_BF!tjN7cgG3mO z5dpcfj?h8~grO%FE&UTT1!05-cZAWsT5(atgoPD01_%*BND)PfA`fhG!cNA7Oc7r4 zS>n<)T_HF=caF1jb1bR|jB%)Jp3-9!GzRP1ZIDV41P-h*)}VDxC?!cd0c!}9Q&X1G zqOm=pi_A0FN^5AZtkGyhbXu!aWQ`>0l6E@8afzX!8gsMLOpaDDc}Ay`kfb@)T7#sU za^}=obZ!|L8)e)02)esUM?k4or5uHrM6-MQE{J1B#zx39OVVsYIcBxJfbFIns0CcU zyuxUsLTn`q=N5=c5uI+ATY*ncCmd^LJhr?-`o@2N9GXN~fz+Dn@DP#|pIMG}*vWQY-xxv{+% za|$U-2%E8L6mg-6BK;&0o^Vt$ptJ-%gw8L$4up2kS?R80cGd=IZI1>XtYZhTMOfgo z3PNIRM4qR#Zheq^WE0ghj}le8Xq&TX^EOl{2xLHjB<<%Zd!C8wPPA?uS&K0lqR^lK zLLrbs5lD%nei!6!8T8o>)g%pX73;-i-h z&#!{D8AeqcnS#=o%p<+zSSb-kVsYH;ZX2k&DlDtF-nO908tlZfMS`gBJvf-nVuf)e z9MJ162T1@#c|xWQj80%LRWaSR`@GR!)YH47QX!NlpRkrZ&yj(|Dn+P5@+>FGx=0IQ z7@&kiXI;l%ZylH=ltKjo<$48U67p2Ay0}QCT6L|oxgqH!EX*x9W?ZjRm?jBXmauov zE`%|}p`^XGK&@6K&kZD+To{ht_9~)sg&avUwX|C)Tet0IZvH&aKmH^)9=(fWkGw#Z zY8L8cDpgG!*O;EoNpg2@KY4ZqRVfqSbSL?aJy_!mTB%&3RH;!Z1qhuGDZ$uSM5R)3 z>^n+PYq;*VuvDfoJi`3!9Ags`Om5o5>S~j6xq=XaP)0;?NHcRC3)*Ugm2|@rCdshI z5TJ>%tobEY7h^zLC;&Ws3=RD-K+x+hEShtKPJ3>9(K#r6Wl(R3Mq1*`gy9dU2-QE&kKH24i=Rz*Db5b&_3DL@8lt82G+=NOX%Ato9^)6-A$gvWw3-NGQBjNvVKxte zVB#1pAxRTD?H04M(;PZDrHm{F*H(Rt+mR-Uw)j6Cr(o>2iRbQa(Rpg?!TSpVopxRmR(bXp>r{1W0<+w zOH}7CF{+nXuoDo57$exb|1e5q#LAE-ZSu5@v6@z^MYo$UGCD@3T4l?&Z3qinwr^u} ze1as+h@uiv6w+$9nHZ}RNyTzv$c(`T?r9sLz)C_DvUfx>Byv*Y_ymknJz6j~F;tJD z+dty|BoqY|y$c)iT%)WbY*9rmK>-r#fkGnxSz)cu8alNj+mkaZTzfYjGGWn!p~%Jo zX$1&JaV}JVP<`3G;#%B9_gV?YAeC!pmcF3H;Zv?CDa%rXEW1w1SJ9$fyCy3PR^tZIFTNtsG!ox-dx* z+F7UvS`Lt|9RC4xYarU@zt7#?nrcG{H76-LL#dxJQR%Opv{#Kbr% z4$-;g!a@^`@odP3G}kPzH5qF*8LEyjwA!TYjet@`cZ2k;+*Mlb>pf?q-K15@A^%qNxLLFpH?CeL`jBpvOe))p; zA&T$wY(my(!YD=>)6;`6){tj8LWP8J$xE$YeY+-%z`QN<2lG?xSa^}C>_x_F6<&SI z?d;mI1=5t^u@N2^uX0P=;T@Y|{^V4f56)Sv30Oz=c(v_nsi2+(xBYjD7_E5ESgi8# zo-BCw9Am698RQzPGb{#z2pVJ9ro^^a5om0l`y!Um(QbDg24HNCGTIS#7?-XzXrv6> z0MoFtxQK{CL^)>j{_EJXYY%arlja%ib{iST7^4Y=AykH;TA5a}%`;Ct&9X@$kT*43K25EWR^XScM%yBLD0*+ffPQFLurL>}ku?aN`>;^-?S!!8)_CI2jZ$|` zCBV7+P9p%RuqNy2T?#*OZBfCvZnFc%$r&msB~}W8ARr8aUW&N)PxvwH`4U`+CHi#> zS&j;0=l#fQJVmHwz=^4&oEzE4=9w4Rb?RX*UHCW?!=r>+(={3UCbzTu$WdDJ^Zf8# zxA5h;5|>r(vIOf^{=uyW?XLIu2R($|dxLI->BW43@-dbaNUw5avdmRu83RH&5Jv=v z$`EKxkhCyTLoAR*t|reA!U<#;rBGI(O^yVrCMS@Rc;{|(o|1~fo1Zo7r^r<;tAmZ_H}xZ}=4{LvqN0D#Jf zqSLGqN0LT;m`p_kI$ff#M4wOF-LAV$hI9@Sy^5}NyyTKKnlhtrw~$- zBnj189cvBUZbrFUCC@UfH6)oqi2{TZ2ql?lou^TX$(t!ESU{EcptIuXE4T6r)sO!N z$3c<$Eyjd!prA0h%TVDyTY!s>L%_M+Qg|xzq6FFE$UqBbAH4A?fWE?T0C-BUD+gvV z{`~oSBV#<5fMYH08v+Zy<57}o|F`UC7OXK?<-L|5dWG3{jTiy27-7hQn2S5^V0Cya z*PZ-p(tMSQO{gW7mrtGG(Z?QT+rItO4{Rk=TL|+KU3C?}<7y%Px)lKW4`2|cvAxVf zv6}%GEBcQ(b|D7>TBCdIoo*kAja;J>X%3k|1(rZUmmFmbG7Jc$K{k*^3A(nV8(l)Z}I!KlTE(tj+k?6xytj8|SX(-3*hZWZi^ZJEh=K z7?5;2%+JkYO^y@+S(dS7%MNb1>1M19X|}ou84!kkg;A1rJ0T1mTA#@-t<{8;wH1;~ zbKv?t)an(&FlBMU8MxumA@<&WEBqyF*?ucoo?`QmiCZ7!>up0u&PaWTsJVbOhV47H zL!OX!yUfi@Q!WLpwbrOrD@<&f!dPgxTLeLb$u(J)F)}vpieC%}nPG^yVXDDrW){#v z!0`MTZfu@nd^lvNQKd0dV!O$?M?nK}j)9 z2PNbB!^if%zzfL8pobq^vH!+#x$Z>zgi`VxN|eDXqm=P&G)=p zn#;?qtSqy-y2A4E8fls^GB(8W@)Apn%fyjmC2qAkjE;|!8sl1Ilaz8fA_yc>L9TPw zR$Ejn5ox!L)|NEQSX*1gWQG@?d6r9e-_4;Lc7QOv{K7>h#u`i?I}O0$*WXX4n{eUc z0$*#!EGdIVaP0gXM|O>IaQ|LTpE*I^Z80)b#^fPO^UEaN4mVtXJ-GpEb85930?G8H zi)`7t!%<~P_jHT_vYcI&lzJp+WgQMrzevM&DaQ@MAY(`d9O+)-*~G1SR(Q#{VsiFy z<8{Tt14F@2RBJ)!ePiK4-d^S5z_I#6xFGr{vJalESZ820N;+_PV9579(t%_2e;sUa z8d!*WCx8btwfj!rXCQs6bU{WM`kI1r;~M7}bdRNt5Pe>|TuSCfCRmgf@|~O+JHq{Q z&vEzmGJn|_V@*O9&=beRGyZ_}rJ26gy70Q(Tl72t(f?a&i}n0+(%N3SRu-uv=|3!- z(uODF(RRq!FA0hnX-s1r4&V^78a9LZmn@OL`|g>jgj$9uGhTXLdr5aPtm^U$Y_JGWsJ5MoA=n8W-gxM z|N1}w6W{lPKY~z_ENc-20na`6MF2kipMR5FN%DjDlT8H}DG|A1v=Q_8<4?1)aDlP0 zA?o!CVWbEG#pL$wtS&CnYPFF;M736SWw<71a%z%Vz2@1Q9AT*y0oEpLuS+(U1J2K{ zP;Sk0W^tKYc5R{>g@mEvwpz|-=bU%gOAB9hE5t->FBI^vI+0dw3bA4j6c7CDjjg^$ zp|A!itP3Y7j%A6WkjpDwntGPQdpCJ?qGBAf9;2fFeU7LkKpK2;P?2GI7@B?U(07+K?+6Swg4+%lIdHKc|Z z30C!Uyq*%<)f4p}Y7v<^c)+cq7Ld6iR*IdCm_uU`)iNwEEh247E6LfKITBGNLE=(% zYA{`+0(4kH1Z5`}nl=&XD&z@51>`6uREiY_8!Kk5B@lw^%T-=nn&JM5DrcGrIT80v zjPdBXON<;mh_#Ba6qBbZHiCF!nEAC9+qwx^lCUtpNGx5?{n+>z)q1s;5?WeVCiI(UhVPB^7y=((QH`8XcwCZc;8cT;GRst$zjB<(mP}zGh=x^j)~ny)c2E5$LJ?x;`W?Ic_PGjEolAJ_e5}o zQ>+F-$7r%7BUOo;>r(a>t1CRz;)DhkGi6nL z_<$}~FW)NwB?G7Es`{>%6oN<^DuH0EUS_N!Fjpo-19*v<+@CrBA0RqTKyWvMHLP7G5~Ov_}njN$sx8YkMC-4kQX zEwwmp+KieQ>D7y)C_=`H(ny^=4e2hd(A7Cfni48Sl4aCt^`5I5h5@Z+(-B=tNoowC zR#Yo76LE=9f_?H?E-bIGw*Pu+qhqvcHOkc*X`T^=5hl-RtvT_}QXDcdIfV>ku!c%` zj9t5SQXLv1{>T?eD$@`<D5didNZ_l|eUN7(+tDQ*e;Oc4VOWflZ@S?zPK-1C5h5M#AA*qCh>$Z*% zlw*wX&1`br2@HZ1{@mQMWqsm8>zrI?U~&f>r^!0(s)rNw@B#-W=2~N)I)?4pcG5A?Q*% zc`O3>SEQfD7?0O6Yj(^_>gb1Ki z#jZ|6-o?riBCI2XMv~G9BDR!5&X^85Gi@3$ zh6&;rtqm#&N%MrLRw2n!Bv6TC7G`Hjk`6+Kw3~+2m1Tqwlu9Mq?GDvig`rxRQ6$@L z+(J-_NY0;P>BNhiU0I~MZ8wu!w^JP+A+A)Yl^st&n&-4uI@C%LQK>{2mFTpZBprj* zlJU`T>TyiB>wDROcG{-2HcvR>dOZvVDKxdfLT0H{YDj6xvWz52nV+AhS_+URr&MxW z2%(TDVJO8hQb3-iAOi4|;UW&HHR=RP@~W+?l%8K^>H6C-rpcZ&U*NA#tZ-o8^;{Ym zA+Zhw>uU($JBbIg0rXsZJhszYh>dpK79ylb)wv2jz*+)de_(Ju08&Uy=2E~&<;6~1 z`FPi67!fl%wuK~ZdwP0jDEqS>`UP)(=6h9WYb{o5be0iC5nXFQW<9K+sA(zW#~d-L zGXmXi2c+QSnR8U5zlHdS5Mn#<$H0_7>)*H5{)P}@6!;*p3nxnY-PYPA;r#I50Nw($ zfgiHgKJo3oV{UGdKlr`BaOI6Ce_hVsGO5PMggg^qT=9%VpoFE9=jbFO%Q8x(GA<|V zg(N)7N|vUWTzf%Li7JXbtR_~HYNf=1!~58G-A*bMO;Y(M!CwxnT}J@0c4#A^UfYasO0@ zPtT`xhPI(?g<7mxTG5=_d;?}>#?NzKtm7woWG$)il3jQyvSK2-VAti+4 z6A*HMU1+UIyIq&yHX3UKx@k%(1CG6XhE1cx|Kmmgr=s<< z*4ih85Ov^jA;jl_9|FE;t^GfR5dR$b=fKYaZ^lWI?+5M#e#ifO#cd{q|2VB2s49G2 zG>NAXK{w+T9?&Mm&wTqwrthxIk=ZiQ=3ph*stCaj=Y3!6O$!`3T#xuL{+p-5LTj0 zh_(S!Aw1D)bEv+FMx61Ifq!)LI!+IdAzMu*0!jS9og8`M8BVV)q3SX1RvTk1fl%Z^ z5yTv%>B_JjUYUn(qR<9wlHbPjsT}>d}vDa2RH0pJfiV1`y zz!hY*layTNv{o`^78ZE!xu-d0#u4E-Nu|y=f=!62z39mi=Bt~STsjN53G3v%i@D|i zPF(%=RO2H~rJO^P7OLKD!#Szg) z{rZ9JZ=y`{n=6~Bo-fYUonKQOd7iZMz~({EW@jx`O|M99(> zOk{~|!oA@VMj0BzBQ%DFpvV(@;YTYoOs9niB}0{nrmm2v5(0zF1sNU8@-ngvubLWX zMq9>*DvYa$Gb&<-%{bXiNN3KlGwt%kS`)LhfULR|QKC>$jO-*>rC3;6p%z9CWb;*n zI(Hs|vCvJsgn^=yrIZ%t35{X)(S%KLgveW@ks`|i*7Ag`-D3IT1!}`1)T%?|NzO|z zzCg3tWMa61KL7t??$2W_%d+%7?6-$A-SLevM`T21|*sx~jT{tgM_fBV!)ke5W() z!GElM?t77yS=}@#ArBCl5%<1(-@WIYz4lt)`o3@7VXMfvdUczFd!C2;IeAf#o5<78 zKFdG)2giiD1c7$7#Led@JSGZ3XW?t!c=t`7d+~WLUB1A0GGR0tGaL@6ii}%t|A5@W zXpl1)zg!{vqY4UwsQ!Pyc8FzU;D?u$N%6@O|iBI zF;j5S3T-u6ZcYcFY6Cv9cjp1aBExn6l2n9Bsq4Tiz&C*NXBPGYq+9?A5Vy~~>`r>@ zV}k&wQ-Oo>>ysh>(d&$<2YLGTUra#ETI;Pi!^GkYB%J=yKO9rAh-v0KprR&dp^0h@ zE@r5d=4mAZHiL6#23J~w$)y%^4JStjxNL&5g>(aahq9XO^V^JOhp6c}o~|-(KYomM zb1pnR=7T%87?fk)d~m{hZ{Fjiu&m}MH2XtzIV7Ulyl{#7<{XrwP1ISfz|+f+JuDc>mrb9)&q4`$yz=@8VTXUR8{z8(h11 zj{4|;gT)C{Ig{~#+0Hf2ZA>9bjDGr=ODq;hD-BqjoRDpV$p@Zf-h!+qwfCBWqx|%+X^6z9ACOp;s2F zG|lMrzKk(Q-L7O3QS^aD*H9ZLxBwxo?cRtqtb6^Z6Oq>oi*)lQa+K0aLA+EHz^Cl#~pv@AfS{Q0e=hl_hO7E zr}j(`V~k4un0(`--|sI1e-VJm?&%4M_Cwc3+B7|)8e{Jc-v{rr4lzAs8`dXZ22sL# z{CgiPl)SH)a|)F=Mgty#ikQA#ffyW0XJ8^KuZTx`cv}*Rp+x6op24!? zjl&feE??uTzwjsNLZtksf0tKJW^5iW*sBVTj!xLrj(>8v&!2w!8vl5Z;mcIt_%3%}dlefy4&Qu-M+b+z^!YEcQCWt%<<*;v$7tO!^fRuI^Uy}NL%-{(bt^DN!yPmc zBLW_QFFAALC3GLOZxBBSn>Lt$>E{fqY)&?v zq)&Ca=uaa{GRcHfP5=RI0wLr?3i7NUUls_ylK|m7s0OQ|oLePoRbvcw*RpeEm%UqW zV{GxUYw^diDb6m~3<&^#HOBa>>EVY;sf+3Pi@>Aw_+8-YnU`Nlk3Dh382?I)@k=qr zFEN;=6U%xLpZ-ab(LPG9A34)!P3;?EOmp7!dTu=0BqY|PuWRM+K@)?P9X$vOP=$!G zst?t;2wuy@6#tTdK`}63wbXv<+$GfR(}azysJujFIVxsE3djsEOmpnKrhel!>O1$i z{Dm*@%jeJY+SX+@y(M!kdKLLMpSr+5Z6bgCi=XG0FI^y~<@oU)o6`;QtU~!nXgj*P zVKf{Ifb6>zFAZ(mQu>Zh@9gmW7r)4jtuZ&IJN(w2eeQkzn;g0mLKZRa-KN=|^8AGz zHpdkw%3zP?eD~YmLVxocOzwO@xPKpO6s5`N+7_4R42@)6_wMYov0*7Ut`QUBym|Fm zj>gvsDoeK7EupMXQOrVu*64gdL^6fecf^>SpOi-Hg3O3}kj-*13TwoQ%e5Y1-YEv9 zB}A}Ai76|TTM~^XDudT!9vI8Ym$+oFt$XlHNd^;8qO$;kI>nZHCZMnd9lC8GniLk4 zSc9d2(i6sr0j)xEgOWg@yxeal1c)+)TE>?JW(Nm!b-lJhmxU$&5yl^K?ovG;lX(t4 z3D}GxcBe~Ls}AF4=+y~!eh;-gLIK7IHWrDv)-hi;99hjXU-`+8UEhCT5J+hMe+s-F zWBki!p8C7MpG$xLbHLv@^Z1`ta{MH4{NwO|{#Y+;ICGNJlYgH0`IO%GL3RCsk(p14 zPW&T`;dOL4^F-2NN0o#as<(J%T`sIsJ0LS!d<|?y$O`;mgIJ9rFNr1@JsOSH6{Aa6 zCxhB|Ku0A^wKjt_u>uC`AFL?@NLIv zb4%J}O~ZV(z=w`2moK7}!6;3h8C31aRyBLh(cXJVSx%W=y3Cb)%HMeFKCi#Kk6T6_ zWiYOn+?&nOWLz1HQIjbbb;jq9-=k?;5lAW6Dsmd9iPKG1Cn82Ng~Is2SAOY>JoEX_ z01(c<%xZEOoM=Gs5k0Jk!yyML~NE}^Fo3+f{Hgy4KYwJ z=aiZ3x}EEYp+ox?oy1c!U9o4zbSB50t>xD@#+i*nar%GKH9qri@5GG5XoWWN=fjDv zQcCzI;%k*|p_uA?1;`k)=p$Mi&R@EOEec`8CMxtPap@!ObuHqx3?-_`m^L>BO36K@ zLPs7}Xt%bvQ&zXbemfxoVl z`nQ1(fd5f??(ZS(!FP}r;h+CQ{Em-Ut?+TY|Mi-bhQ(%tT0J^F(j0QEEkShI>DJpKNH^&N@DD z8Ix?t?)j^H;~U@Q=RWsk-kxr9_wCntYSVN4_%W5$ERIjmz9qCZdq+o%H@3L_<`0-= z8oy{bIXvXx;E1~EuvT+%YeH;VCbndh8SJp&ne$iJZx*n<&2Vpz!~H!vos%z?G+o2f zlQH+^GhEg&%_}C(@$^=~cgg`p1Ttt=bC%w)GumNibHeLCc!Q^&xlGfvTzla&yy{B$ zXTQn*)>Fg?h6W#Vz@x*sAaN3A?F@A^wCrb47mgVXEUgLZBswRzf<{_| zTDnTTvyV}tA`GeXpj4_h*T_5&9U=M@&@?VUo?Zt?Nz`v-G5)BcG3{=_C+V_L7^Bx^ z@y5m`SD(7d@zDt(c#O@7%B-EGLWqne6HZnu+RpR%!6QEI_``Gue&>m^_2ltOAMx`M z_;>%H_x+JWt^d=%(dqwxgkE_j2%J5U3PFOMOxvQDRNU zhE-(7ak!eZYg+1hgWx-|MGH?|;|sgHyn6FpW=AKCPmVauG}}YV=5)&2`!hCj#ir53 z;e^`f_^zce8edfG>x}E;2^TJG^Z4E#hmQ{#7dg|*S9yGE1%N}Nl*QW&g+=K=pg?b4 zAU?iFO#N(A6=YSU>sqYQI4`)1>tu?r>jYF2><3Ji;k$+y#MNoJS~4svq7QVdn&3M6 z4uA?m>$NI_?)2X2t-t8I0UuiYXYZ$^9zl7*l=|C2fMjtFilH~NJ=Gv;1u8}|qf!ey zCV9E|7WQqszHE(N()K=Md2;dhpAj4phu{k_dchgeJwKUDxpDnE@87)1-s63WJQD$t z)@xEz2!YI6ws&^9cmFI_|K#zBUp`!K;sE{KWalL3JMQ8wzWQ%ZSn$CyXewk_#7iF_bh-i}zx) z=F@OKmpm7Q;VD#AWil9x^N>;EbVE>NSxLwXf^+EHqI^uLZUi6jT}PjFX)89}Dg-nN zS2wf>2GB&w0<D-E5i#p&MOq068Hwa&E(V}VqpTJG!?VYldfb1kNc1v}%^E9)qe&kLOc4Hh4n%k(MY*&j%6q@}eaU87TjNwFq3DF-wtn-gsgxnu?? zN%ef^KzB4v$5JhMcARl{uKB_KF`vD9m0#cU{KDgX7WE;Ah32O&UF0OwO!5J7+3>?b z&E|e&PaRW?9`mWefP7fdK6s28z+$oFdT>mieu|B{=HO(>VKwA(t+<;tjP~~^kC(h{ zYBt|K;qBR+db#2!E<}c(d5NFS;oZG^oT!2qCOOa8Lmuv4Al{i_nmI8*$O~#U;LxoY z3GyN5z1T5xl2eEvP1A^kBsNa37Or0=#I@R;`6H zDp_P%rNKvh(^6ywO(VVuCbt-q0b&Yk44{Ja{$mi{e}9F=bK^|CedaQUo;Z}cPDX=K zgf=81kdz{lQ7BO2h-7s}krg;6&slBIL@HHqtSmtVf{SPm(FdFpFw*x@;(i{&`rcgc zc4sQvmNEFkja6K8(sY5lNveeLl8tLy6+1;8j_a(RQAM;b!&hxF?k2n`wVwUq8-+q%x#Jr&+6Jxma-Py_^K%MFJrf46dPAPfsLHOY)(En_F;^97_=pPC(iX1bY zSdCaqDXmWB%fW)pAQn>W1$nQi72XG4Ta-Mnm)y8!%5e2Z#n1L$u7Dq*eGCer^Z;t#qpHG#fnAexq5yFHJzZ_n%xVRXieaS zu7+z924)j8+2x)0-+P2yq5uGMgGod|RORH>n@lfH!5Mz?TuHlofp_0}hkSdB!*`D; z8jV#8Yz7U6@aTX=fNoeYJ%5QvWdCr%oqLaX<>gPYoHxR)P*xT?{b`g1EW1%eMK2<& zl!mJih{|BJ!q`#_QM(RfGok5bmi5WQth)u;7}-IUO1*f8N$If|hqvp3*#ulXwnbFj%6(ei8u)BlO8A>Uv%?PA{GD?$W z8I5b0sTE^)%*GpEqckOTBuqjd zA|{Pm)7qkxC9|2Bu_U2V4`$jQ(+K>;1OY`{r{AYQ3G0$xor$25?49{iXCrD%qeOZ{ zCniIMc;na1{2{+O zTkyquk#pByU~iJ6zxxAL=Qmm2yh(jH=Wf^WZ(UQ^LCNfJL2O!P8dOoy4R@#;Pi$*m zf8#B-s+`>B6k75AokuDAL592-saF$NSU0jF-h`Vp!h`Dh48_ zn2-D#k5LB6CoM%iXEZdZPzeARBQ6BmrsHtY5<(}l61^9epb`R^ijkd-37OSIqfy>t zx`u%hi@7!c-qZPj4&sq<3P!U&XMKF42PIXcYgQ1(GT#!gKAq>Jj@3T-8U~Na3`B+V z0WrIk@p#(kAIk;!u_Kl!_Ra9&%Ed(3;omAK9O#H^v^zt3&_t!C2g!; z&K&7SS|{5v0Bu zjqme?r=Q{mRJac^k(v7PX#c0Cf(LL~m=;jG1ou!+-#YZbP=*iXBwJpYGbW!^F-UpP;(NW=* z*v|)3V_d{0r_oG{#kwd{Pw{}b{yZ9|obVRf6_d~~9#l9V#rq%%tFR54(PYZ07C{ad z1Iy)-L6I{VmE<;~X~l{d!u?zI7xu}ZA;ZK@@qym=%~~UFBe9Rl7L13OK@4agQ6^BEA^-8gCf7pA zj#_ZhZn2%U+_+Gp{feK?OKjIMd+!bY+@%e=!$acHO&0U}#My$uwHxT8hNiCB*>Wr& z?eSE14ouGRDxh!PaZ7(g@{vXWlW7846Ic##q3nI#)kbgC5-mJ3hQJ-P`#U?S4?_7SBBYJYA22df6a4=V{vxBV(vBx+T*Zbi@{x!`Xt6hS#747 z)@%fmS=@X@Tes*eCqyxk@kI%F!8xTl@QPMzthbE)oY;2hK1hpZeJRhN@H(ccL5A3! zu=(IU@=-yE8Wkemhzn5c;Ntc$NGRj)ouI2Wv52)QN%}9(Cu7k;t z(07tlL|d6C)Q?PGV*ovUQcJYZ>G@!Cye&Z+T<0-S5&RhjtJcYXF|{!DX{$DPN85HZ ztzc(|&1uKv!^bBh2t=gks|^0bkHe4d;7?=$AC3x&f1c9ev^^LhuA4FICsis3#Gy!9 zN=6A!0D`a$jRqt$P*IBz$p!)eR6)c+47ljQYn07dIQhOYXqi~l2D0d|G_YDw#Ew!0 z3au!NrpOF~JSTS@+wU7L4n{mX4CMFcEMrcLu;pv2(olsJtCJaIq4%hEN(b325pV$V65NCb2$@SrnH()H^H&BiF^vGL43p_2ko`M~I8 zkB!RVe89zkiL#Tnc(g9KeBmk=HYYe2*Cl2Q;S3QdvVXA8@!kTj1floQP)x=IFEU>h zHCVHzs4KuKnW;!>i7JxOF3Ipjr}m@LkmtfXkbWqmp%}GfCgLz;Sw_^-Ruu7cWa&J! zrlrO*i>Ia8hmTK25Fm=eBl~c>uYazOejl13(;pvO@57I@89wSM1w{3sWJ9IQHmpBN z|9C)b#?b~$6kss=GlM5|;+#sLh&tVYHWQ0-E2F9ciP+*jL1~((Xrh4v7WE<8wW*CB z*AB)Sz`*uN$N%(m7kK9UHs5{!E`R-<1NMXG3)ilZojgFPj`PDYJNAgH;|fL<>Zs^fe(T-$@Yk<1)RDOfv}!;!7Omi@^I&Ttr#|*E zbP3qkh>AuLeFxiD;q$);zx}Ji@kbnRgZCoKE;1Auz8c9~$%~&tz5h*g9MkE54}q*G z1fcT)6&#t;1fLT>{R%27y54^Rh{^$Bja4YsFDAXt_DFTLidvkiLd}JPcga=9GR+ut z$*5Mv$RMBa^o`4ud5%-3yJ-jkV?~sfS;KTV;e-44@j-^kc0NE>;49$}M576vm()FN zYLmQVRR>l?q7F!bpz*0KZImKY8l{tz-3Txpl4{Y~j691NWy!LP%w`GiRv2T@#!`+a z)J?#A(u08Nx!6ij`49I`RXnv??ng8|d3*>jfV2FevycAhYt)&4#}ECeI-NNnOhiey zM9rAE3u_We`dmt-ZiJBqp$tkn`TRyyiYRe==J3uidOtklKDi4 z8Xa;@x|YBFXu#$#{{{ZbfAYU(;d7#jETU6aKWeuzh2m>Xq*(B>;vX0n<5DX0X+OF3*V}qMrK#{O;eC=|bM8xM{&^oNFoK z099DnyiC0DEOah4dL&!ZzC#Buu2FE>71HuOdiS2Rlu!n)K6sz$@`z*K(ECeB<)Rpr zhB6y)^~x5x)>w7ATtbNJ>u*(LXF4Kyh3}y!B@?R_&a_NE13rBPCeVbu3mZoQt@qDMu68AXG1%j?_)fN!`%IoP78% zCLsE6{t$2FC)zjixPT@y_~FctpI!6)g*~G@l$uJ0R>t)Uf3$2kMPxtX^Ykr2C4`~g z^i%*t8EX~K^qki%pFTr~0fH8=Ln|p2U`^zR2}3|fqE7&kJ(WT0Y?qMdg!vN^BQp`ia*0WEu@Y}ThEl{vLSrRGekk-&__cG?jr#EUT!Vn8>MY&>A)(h!-8&k(=xi}>&TrpRiEvYS;EN-4Yx6lD(64U9MV&?PTP z;R@(}UO+r8=VITv_z>0F+UYggMRdR2yu-IfCMTR6+s!Y{Nu?&e<(kJ|27U8{Ft8tIq8p1(_O_X zI1wWd3`G;4EF02MDY27MM3f4r&!6qa#E%XDLe?zNzKYE5f%R9B-rhdOg% z&iqB*D=`h%W2&`DA0vGitz~eDHK|m{1QjS99UL+9DQgT~oQfm3C{|)5hU7YPN%w2#TpD-pX}cC3Qp-Acym#XD;5s@d z_hFVv5DrlSOV@Sy&f~gH+>k%!_+(@PX=TQ>?sL7h%Fdz?V}%~U4*{hWHnX&?W8L-v zR193U4evDt-kbpm```27%3=NQvzb9pQ%(Yuq#fva13@cjg|HmU)AD4U8Klf)UBdM5 zmtur6Y0*b*CYq9Ga-9#mwyd5NF9GUm?LUt>&^+qI zU_*zFfvRyv3(_6MS;%OIbs05QcDMAsV{`;%;ldT-ty%`HObKwHGuFyPS)ts?pc60vTVJ_K9hl>>E*3N4-QP?=>k9x`9f zh{cGd8ZfA~P=j*_z5-DXdMbK4w`u1I5KPHoJ>oC?iC^Kje)xztPWA}|?&c#NKbY~0 zPha8xeRIVsHW*_tG=%866EY!80U_oz*#HwP)_5{nR?6U&n1HBigLvgR)a_R}E!||O zs*fG4me9;mdXuP2@}2A0w|^7Y6?BPO?3JZTzWUiNSvUH9rtC%0pKX(0nLdpTzj#Urn#2%MZ>l^lTvpn6cpWp+?gIJ|;!HD+S ze|WKf1U~SQjfK-z5F~Y5?9+Qq9YJ{`T>)*7K~&C{Z7>z zORO!Z`dvX2R7RYfBaSY>_A`RKk9Jwqj!RF!h`;(-!qZ=(nO-5wExt{LmnIF!PHBir zfs`nNQ##f1Pk!(Ne&cuF;}<^tRcI>N4U3BJt|DXK@YPErtjqj^! zi&t=o6))<${G57^&Df-2u@Rz2Pqql!5<9_of>Ky($xMLd3Hso%l!8{%%^uJxLvWt9 zZ5dQUY*CV_h#gusw1Th_x-#IRMhBRNj?b6_Dz%6wWkvI2<}!Xlf&j!QwpD8&4Fy58r54a!ALD@rA>jS!`cnCOy^btMv3ZB7Bb z{^)ty3H_JH`khyuk)0ZxlAXC1X@m$qIIx9WNTcw|NLs4X!q%tn8Ii98y|HFE{oPU* z2*<#tmSP_a`tl|Lk&?S8!2?VV<%qcb6kK|iz1H&7)yptF2W3Sx;`^so^W<-k5&KyV zDiRdpfD=P1zcj}z`LBNS*ZAx+SNQD3&!ET%3TAe|KYjB7&sCn6#{*PUtYVJpR^p|f zVsOv}Dh4t?XB0Ye-_d$e*Qo&7t%$qVgvl8L4kxClc&X!Q(ck_p=sIE-i0zRCFa?Xn z0;LssGz1lC$atKM$W6vjWfZi$tY`dpi%0w$!+UJ1C81wT1at^#NT?ABx{<(IzVkYl z3%Gc3i|y@gwzoFe+Sp(+98s1fMNv`~BT8E_84Q_J6E>?U!(xDUo-!{OR25ZTP-O*W zmQ&aQivV+0S@LMmv4J*_8OW?%XN)Epo~|*l046Fjr&!uJ5;c6F zcewSz1OC((Ug7`o!+SiAW1QVW(Lp?&=7e>eG@hcX7~3VS&WQ+~qX9p?K+GrTZlCBO zTB*Au3T+ks@muit1GxAsW;VxYMP@U6@H9NH{6Xkw-Bd;uC@svk8B6C#|f`UwffR2%!u482lj~KJ976fAjKvfYRBQY;g*FH`7 z!LOr2>c>Z68fq0Went2C@1ZWgi1Q1oD2_qe7+l*hnoMbz$C$i?EJG7H7dx)0ntPq% zs_ytl^?6qAm`kb;PEl|WE%#1PTIN)mNLC+_XBj3+JeTx6;DQKmJa95^IIeGkz9nU8 zRBLO|%t(!HjKyj#gGF?o+Jn-DKuwVsC>q+@bARuU$@UfLoFt5^*Hnm9J))GM4Pb3a zZ5vz@I6Ru8M+4k!K{?3)Au44>-hcRY`K*%rP$07GJaY%b?emOm$-NIg+F9t6Q4XZ2 zDMLj2o^Ch|03WK`d*aTzj$WHIo~ij`Y7+L`emE@)qSR;~de_sB)2jz#@08QOEd5() zB3edf8!L6aNxlME4p}L|Kxd$Hl(As+>1XK!mO4`c#IrcW$DE^eX`|A4(6j+2!<_&A zS6*S|O6FVJgz=c75Y$>()`4d2ci$75)-KByrC?D6{y*RP27ml#F7fjClFSeY1-Dwu z{h)aC-nSXxQMw?*qmolj8CPU1Ax?2w%ZVP5+bF|3yv&xw*Qn3@49W}=(CQ^e^8p(p z(O9xKe-Cx{O?21d5MD&^j;`&a015eFNnYJzbM=hX`3rCoQYGu%}bK6J!B`|C@y zR4(?}qdq=ju-pea89W-3cSHjHdROTX8eHs%Mxir>$rRB9obj}(q3IUX^)V;2eU6SF zGn=0fqb$&j35A@WN4`B0W3~S z=O-6vPvt#Z=bv3zoCXKUuYcrMMWBnK317dd`tVOElrpCwpfBfDKcG?~x$l3k7Ai0{ zmq4IJETXJ%?xj>nf#Qk!U#)lN)2!xnfu7 z)@ueP3RVL+WqIhvG&*N1dQQBejpBc=LLz&)j<~&p9!%wQCO^iA*lzjI;E#_m-~T6M z-2$%yF7>~)2De&a%Yt^aL8mMsw7ji{47A5OxD&?^9M*MYy$1y{s!KKuDGj4lWRLG* zy_lV*Y6u@i6eLhgOokjLk#FSRzIEUOI*O)38{zr~C8nT4))8tnA>cZXbDa=}qUYdb zK^HsfZiUj2>%hn=3Sg);Iy!`YE-@?COCs`~tJQ+%UVN6#-R&f?hBD77GDDV&o(C$`YV@^oN`IdSQ+?|6p~rsQ4$6muMgNks|Nf{W zrD`GV49+>(MU+@jpZ@kf+pyrfg!-pNPpbE0)^GOmd3rO_wR}_-xmZzoxvQQi5&F_Y zod%G!vqxiid~|{@GhvnK$fTTd&HO7er*eHQ!o z`K22-_`!pB*vJhJ4qn4=S-jKKs>At0sIGvE1!S6_OK$p!fS2oGnQ`6iK`C@OAS`2& z&i2Sk!67 zqy1wh_a1V+c!2}0I5r(2tT?YLX1*a;iq-m-F!;`s>73Ac+U1J*?1WNTVhoI{lI_U^ zn?<_7+VM&y{{@^Q*NT`IY+c;q;FBH%B2q?U^ci|Cr>XD9mCR27XJ-rDGX?KI&v7a8OlM?;EaJ|!Xf!4( z7;g@F`T3`~`R2EH_QEB;c;!0v@{qs#gWGhY9fBWXqsFR$H>>q$3)-TTBUk}VVzLVAxMNdnUQ_bIKCv1+~bdQfQ~#p;O7qZw0o%+btoE>w(^gL0FZ z9n;2);ABDRrPR$zd-<+51EVDqdvMIx-~C-)y1a>BME=S*-=r&A)L@qj!IJqEd2kfL zk)`f{?3y_$I#4-cgmsE_(Cg=;LS>d-?;e9+@1!0t15TAoZaj80hF86vB=!nGYoB)J2G zd`pZaK0>Ba`!6I~Rsvl_u#|w!C>;tBjf)ep4jIuXl#aw$qpc;n09FxP3U*pjSJi)( zh;%5FCK&NNG|CYu(ZG0hz-OO(j(d0R;HkNC={i@hJj3my4G`ec*J}6-s9$jySSq{xi0yoU;GIU@7;rerQIA8vJ7p91b35Rm;;f4YdD`s zIVu>?P3m4~q84w!n677kZdGT|&XcH(~SL)&?dkN0`{ z_WMkBuaemr*Fwfk1Ep_x7&R-^(YlVhkIQrt7(n<3#gg1BipP(zO6DOz55JstoqQ?* zw>PGI{!5=le=29^!jQeU9`f~Hdym*bj22~DNHYg|nY4ESllAIQ(e}p}a6aNxWWHQ* zqzs+ysBGlC@w}xpYb7I?2nm~v-gLXw!k#@Pj`8wfGuyh`6GRnLlgjTStC?$bR zMryFRrg0q`n_G0YpvVi3KW6QHVuAo^O{0@vEQ!vqn=T*+sQwJ6iH znnNsvn}L(>;A>1);G;r?3=<;I;7o>cIofz)SJP=BVX00s1C?6{fzWgWdZ*_ghBL== zUj5|jspno|<~uH_0~WEwGvuzV&~#Lpe6CCtiIu5{*2s|5*$h=5LDpwer*}t; z5o=|b$nNeA=XQ5F*`G6Fz*|3fj5|KyvtQof?ccpkqXMlb&A>Rlw~P@fe19(&nH4uB zB5i=Y>)084>P~zQUt0twm8Z=bu9}R8%42O#Yy){WBeosgN@0ShKAABna;DP_^0K0= zDvErFi<;wQOJ;M~$ATfCXk7-%f)WP&X|Du$J zsR)EXu4O1i9Uz|F@jra5A3BqRD-v=oR8mO0v6s4C2M^w%w0+X#Bt_~cIu|h#l|ct3 z>Nf8f#+Kcw;?^VZ${>z*QW8a_Q6ZD)u4K|}7BwRbRct8@T)V!@jmz7Vg$zY~aM<$x z-XR~Htk~-mO*X)#fTGp`E<*IswGbRi38F$5P-b#4#_WS=|EMUDSb{#G> z#8rn{&7e4YA4y4Y_U{{$DN0-F5Ev{2`+IX{2S@zui|4t2De~}}_t?1d6h3&FDG&n2 z^r}(W(TqvM?P4G^1{L6Vw&dzo#1#?W!o(<6SacJ(dfxMBKV#83#?f(kY{`a0Oqrpw z45c(#UeMGnMNu*uk03bmJV&iM;j+X)nU}2U$SmeGvprP3WPJHDi;tN^_6G(5rPNj6 zzW~msv-VeFjQ?k))c*$f3&7*_qkk#J`1jIl{sZ9OMvBA#d5rNN{z1Rz^m-&PX`Pp! z$pU(uU|n=Uueg)fo&McusoO*NsD>Q=d7;o>en6D)0A|uFD*WyAT5^yRK@8044_JpjNG07{m zb3C2HVVrZXlT5&U?birOi?@Q-6xN^$LopnoR6##lE`*qHR<(XiTPp&z5a{qM=L;6g zmUrKN$mO5-6nEa(!vbA61))_subDCUAT7hjIl*jV1Qjv!1=pJ;ujK`+u4B}-yj0Bi zXL`uZ{Uu}XFxqgwIp&IPc!(yL9G&G<)s&zCIwqqbp=-#j;qZ92##vO7I@WIcywqrJyj(zIGmI|&gmh78ZNIih)R3%mb-ue|&e*FJNN zAHMq@d;1Sr6k}evv5nS>zwCj={d$kd^qF&{7-&lqrH`&>N1UJE zp(uW0)NsQ6KIzs0P^QUZMP>|3l2?d6f68G%V*Q z%)O^MnGuc_@Spwr#9#S~xGW=P8CZ+TEoScn;%mRf)XFsEkQk&freU8->gv2Ga6z0P zLL1NyOlW!g^&j%w^Iv55kG??uwxivj<9#ZDVhX(JoW~$+$y{5!b65ht-Q&gfb-uE7 zh1)JN)yM1(G|%T1b~UFC5vL%_9p|bMCq;q9QrJXqHU%g}mRX8CBhM7MEo3s5wH)jp z^Xm8C;n#oj+q6-WmlaAG@wfb#;}0{H_&#ty{e7mCdL6j@V_x#F0{^cVV*|XelzIpF z3h?zG^IH&AbRhQKfwY4gFQAb&M(oE_TDUqzai46iLcahK*@Bdok!Y2w*KS97Qmf?R zLQ0j>M^SwPKz7dH&#=f6amARJ06tNsXR*L#8s9F^#)B~oAHUBt+~(3V6<5Fb1+HJc z&iz|8yII9>`W!oxEkbND<%E0VH>e9oXBATw`MJ+r;OT2yy!FmIeB-qr@WDaLVKB^H z!0CdZ3u2jc3Pik08BmX%`iPEJoN;52oft3r2Nh7dqv~3M7Dc3v5IYZfKm~*H8Wn0* zOOFa3-8BqcM`bl3@3=Uqh?%24_bC9{8?VqRjm>iL!!wr7_BLG+@|CNMWJvLJ}PXn#BTTEM4cRmn(M9U%(j6*5#|@A#(KiF@uwRHmjDyMZ@8$ zCU(%S9IkH2TQShc?z{`NL)Q)yBg!^twW9I?v_mNw6?Pi`PZuyLwN^=^uQN@VS;}IA zZM(_A#u2Nk#hQ!|B7@2b5Ss2Ml{P9xnw^a!eUFAYUKvKKYfLX) zLFLuQuD*XROh74h9e4%!2Jq9s|4b?MXMt}a*}@?bApY5zm)+sV2aR;dl-b_YAts(}3=d>6UM>wR3?_e_@N&Y)QSC zGo22|vX)ER7iilBzOd{a9`eJRH~HIN|2BJd5F^dP%7QWjP`&0{+JzAbn954lqN6zX zC=-ZEh(Y}TOBF$P4J8fJ<^;-|d9awMuvTI8QW%0*x^BSgWCo88iQ3~>5Ta+bnz1>t z9KZK2s?`)_Mw)VV$ER@DINEE{~Wpc=0*ROiBbpV6iyCX8#gq5h|rdz~2J?y%^(( zQtJN-{D;UM`X2)SN8sQ3=Xk%r2>e9=COc{IiZvB6xeO7}NN?R}Fy51AC7o~C9u8Tp z8kR;2SG#Qqp~YxTh&q`~2ifJ6PW61M`BU1jh+?u6NuGA3dRZ=-$ZjRAcFvJyMcQqp z4Mq$Eqj=-6rSlM+C-aUrdR#H)*7Pd(P7YD;-{jLf5h!{AiE+vyQj+mbhX-v<5V2G^!TBFq#@VC%y|t$w@(_G+!vEDh5>NWOoZe zdgZ=Dhn5&31)k45b&kzpgHoQLqy?*#BGa0#(}ZHer=S06o|-LK-TC|6eCr1+s)C0b zB>@;!1D5TK$%&+xmk!^-8be-|6lFn{W!NmIC<;Efb(f=AD_x&5qCy7Bv6!FGwUKN% zr5KF}u7P%iwFV!d91bapj7(dM$z`|I8fPT~!?!e@;>(|ZiK-fkyROY>n--Hu0N1YE zpl{M>tBE?Nx%U99N8t!Dm5RLp2l3_8D*05#ua?ow9FvTMrLYuZ41P-Au09` z4!Ce`2W>Ol^} zo_YTN2K?9QpLc<)XI_3KJ@&*AWBe#E%W(`S-WI&RIzdUKJIv)(ozjdIuw105)yAc zgyc_`JnJJ0v?aKX=w&E-ubb&B9b+sC$MmT&lU#;pbRjZdb$B1hY(W#CuoYG3q)<{e)C z%=0Lnkr@MZ4JceH2b5u*nHZqy8di%HnNmcA&}Eb)?x~tumzY{9JZZ2kp6I=_R#6;0 zIwm}xVYDGcmoiYvKKu6&0+mc13JGs81YB^8azmC|ma7_TGlrvHqayf3*S5qM$#M-E zT#${Ys)iVwV^q!I!7&dW?DO#OgrnN?-fQo%I+;;aBYxqzEk5`BG5`6m-{hS`hb=3L z!Kp?3hmSu@cR&IEDe!uX@h_iw{9?ij0RANKgY@^m3;b6~slSW>gU4GHuLEKr!xj?JY`vOac6_^ z<}Tm5^(M_?iB|IYOf_V>bCFlS{{x2tI z<*%BKrqc|EQ-0|ee~I^A{~jOQyveK$RMTDQRN4$PsBm42ZyHYamJCNjE?&IE8*jWt z@Sd`&$g*6dxk|2IaGo}F>~3$dwXs2N4KBGz`4D8vF>rKvAnCKQ)GLn%R;wCoYyy}? z3}%u?g%1(eIVRJow1kt(kWO@VA#?`3cW9GLag|#8)DWK>cMjm4lQI%;A@b<(kjIY) zj3-kjlW}5Aiqli)0!`PETT5NHDCgyOqtU&}7EeU+!`I*Ajdwm^cV~ZdPZbznLjGpfeC@!&mHtD301EMA>qZBAZ_{dJz_!eP&H%4&cyhN>EJd~!mTS;}gN zB4V^kgI$Hjx>~JJN_Ldha)~KRw6SO{ghr(e3N1t;t-1OBJsv!I$ky&QO*7}x?gq2v zjOoS(o7>ymdiQnCU)-gtrT{osljj-Ed)lr;YXPvp^1biBPUl+APb{B#`33flm+a40 z9IiSp-?+iyat;AT8{5>28EwtgpM6e zUE^afHtNW%XdMGxiwrXLD$vz)u3h^SoXq)mzM4_4BFDv)@u*;uFZg%<!BsLc&o7>R@xyjw36MWk*Wn_D|Py7vI(WdhKm3B=G*WI5+|cG#T!1a;FPDs+hjfp$og?PL{1k0bAO<1!C@-M!{N#kmbP7K3)|;;r6;#uS0L49ikU4h$dsLcnpEyTULuDqs<{cdMS^3 zcckDrnblYusU~n|He{>NJpJ->sKq0QEzj;udFf9)OW-Ar4i0(o&%E}L>+ci67_5EZ zog;`LBM6cwCY~Xpty%Z?V-m|~9c9>r9*QNnhNu)x>nZX)xqGE5D@A1@_#liw9~{al z%5q9p=9tt5%0pbsJ~J0Nf9?{wwkV}hI%2IBmmHfh*w~hFVXmXCJG2w{ot{rfr#SPI>LscbJYVRP4BN`5bv}(bgu^x@WX05icdO z60jBzS!)5sh(SU(Kci$(V z@iAj}cR*HJG8?GMl5v2I%?iHzH8!VHw9z;xPQ8oelH-#ltK|}6;9!4`lamudTNAq$ z<2yoIgDaSfM=Z6Fkp|_6wsXAs?gx~kO*Xf7+1qpsFAwM*+~X@R4!N*Zk#|SfGDj&(@GZWZ zV`x8i{e2>WKsgxm`Jee^a;4X#2Dzt&AJ8MTXDz=ptZ!(c>MGjCp|!%fhAfdmA`#bh z7-PtcMr&Bj7UV_7baNAU_}?YGx-s|IZp4Tf?sq-`3!^VF*qb?s=`O*qjX0gd3G=TSwdMGB6nr z9z8@UO;MCwzHpr)lX(ikd+Mek&kM58+#vWsy=sIo)Hx21PPlw-m(5Yd-u`16r-+^B z=;0pqY(ZJ%y!7l1a-;B0vWOxVokZQ&unTN>-A1AlYo+lGy#YG2yq|d8oWg%KL@R7x{m0j#l4u%aNe`I zv(4({grmog7!HSw$76POw;2p75sw9r4~`I8d{8`n{SvCKDShCxH?}zUf@TnE@CzRZ7}EH#j`ox#T@Yk;oEHp7hCDMw7wG7ysv!z!8&PD{tByPqB8iHT;2gJaf50=J zx{k_}2y0N3Wkpp~_~7wHj@FvVWFpHmO)(D6(Y7@~h2&|MqqPC!QQBjbq3e9Qks{6o z?9gJZrEOcfwx!BTY?e`^;heq7BFi$Ib68`@tVL@9vjDV~-nB~IgWx@Rp369GrSQn^ zAX*(Ejbra zDeSP6ZVwP!$6z|fIqA^YU31AzOL|h{r`nGe7CtGA~!{+7| z!=ZGG=Bp*v8Zv8Wng*p5tJyKG?XZKA!Jr~~M^RdulOw)xwd7C##1}ZfvB~_w9o#CA zmAlmLkZ1-3V`+VdauKZu_@?;C^8}xeATX+On%Ro3QmAgVuIc&|bL}Zuw=$j?QN#6< zW_#dI8=cy|eX1wKA?G7XLunMgSx{t}$;OnfZDewQ@M*Y&ln+Ib^9#T5 zlT0=$X7dKCrKgT^>ZBPwtJBV7g6kNJ|Dk5*}#w!^UGsVkSb^wd*) z2Mm(O6l&wt$X0ir*-r zRkt<+6^RZ3BCXh%X|2hu5^wtS4f6yJmWAwIAqLjm^i&4)JCe-!2y~qj=Ub&Py7$PF z^HCMWnj0?!Iq@wBLB6wCsadj2^U||Eea?W<4i^oOY{B7+WH zq$~@Zi!7TZgTa8NX{qOP38H0@7GoqUbHOf*1YTu?!_Wu6sw}AMhBgI+q9_=RhV%+e zA3WL`X^V~qK+pD+0V38~l+mo}TDTHQ7P?QY&>nv=iBu*-)Wx*(%9ShZTsY6NZTSB8 zUQL5sB6*%m;84&x2S#I)++483AagVkoWlEn(F*4yhetE=Q6XFpA8{d&8t+SJ!fMd&o zwyi0RPF@8mSS3!pNk6Z(kxT-}vJ7o3c`9X;65JtA^j>8oeRoa(z?iTTi0jYionu)y z7^~4*>T@4^R;t*7tvwM_!DTYTs#)>w+wV|Kx0r5jVT&A-MwNw-Oj{FvmG&HZw_>^b zk}qM55R}X(#8M50v|T6NEf>l1oY=PHxj_{&TObCHJ)C2VA}@!0?kisGUF;xHZ0 z2a83EpUqg-OJZg?JUC?k(GhhkS(FPI1gNGTu(Pwp`Sa&LcKv-af`B&sk*|K5@4S1D zJv{L!5ImGp33eCd&pf8^KH$8gUA2tWm@LoG)==dcCd=?X zP}sf&DxXz?p#Ya^o5FEH(6jRsdU{WZWTol-4X( zE3#}GZ8gR@VvthLW|ppP&`1#Mf?tEYtqWvTh4%p;19uM<`Klt%b24(O^OxA%XqeAt zESrdHIwl27%8CHYS0A4Wd?JDXN^$wAOZ*$Z^kx3q?|zs4nWDvFVq6a#>XF>uNT`ni zvh(+y16jaEtMyKrt~J}6Q+7rbnUFyV-cyx1d2X>f$}XfecW&S3)~$zZ>}+uH(q+nG zOlCAykzsYDEEHLx7;KCg3)B+qhM=P;R&aC{I$%RKo7dhandV>}igyAT5N*^H{P>AP(afubmAnlBuV~7$xJieGuedX}Xkc2$rGo&dca8l0HDGG)~?UeIPFi>ZYb{ z94>-$9htFYTAYM!3Sc48!h6?XOd4>L@QGYQZX!i)Su_nXrVdNum4qO!MA9PEGOn(t zB&Ez!GCfV_16$kMEEWr*mlDrKF>i2PMboq_mrIV0XFT59=faf%GUuWq*P5W_eCzdh z`R+Hq&gI=Lw#$-`RlKuzNEZ#E)0A<^&wl;}VRJzAp1ThoeC+c3L+kdTzwv$c77krnwClvhM+=phGr)^d$vZwszzBU>mJVw~kg{4V=}cfW8Kt@q z*=bay%r&#woc-fDdwctoWyWYQq+ZnQKiKE+;R)}(b_>_FG)=?1@4UxgG-R?-aeikc zlvd*?a*H)W@9Y<02tjJrGass~DzuV$@=`;}XYN~f!Aq3u(|6~bh@@glZ=I90H?>Gb zBHZ&KA}R!$)e4om2hj_K*au;^hY+wz(>0A4TLw{0_S2ZkydbxE+MR?6X!D$yz`qDM z-$^!IjcJoyYBz-`UO8|0?=p03!p<-B<0g(uulsCp0>ZSpu zM3?fPn5f)2S3O;KRm-HR+&J%4aO%p$(>pHA4bjg@h5jkmAELTeuK|o#~&{n0Otk<2V z?X6uJ7Z4+E;W3yzCyxcMeD?EP+1(TaTP#^t@|@AA=m{!fwIx>yV>NBvu)8t+*!A~` z2m&E^qH|asxU@Us($44j!i&%Hd*6SLSKqzE`$v1k2v$XcM(W_qCiFfgAS|8%4bP+s zL|p614eV}?sfrBe1GdPqTC-Zrc;@=^JbwI`uJcScraXSU&+S{c$!vi&IjhBjvMSID z=CfliT-ar2cgXh67K_;t!|{-y`WjGzQUGtOSN^%Hp;T3DheV{7DZCk$xhoe4Z)?MAI_!VA<|+AKr4~-W;u~a z=bUtvv}BS!nB32t?5~YB8sE08ng(xbDqEn7La?DTc#T4>gMLiq+$k-cQ@kJs7Hvn{ z1*$?e4VOAJO}!ExOtKv>tAgodz`@~M?A=u2d3Tzvb6ZSD1z9e`Y_t*~lra)$V#@lO z*0EeJQ-|iGk55DpP$*W5npIQ`%92iZloP`*{Ors8;#WV#?|kD8zW(}c_L`-*04HIQ zL|pL*fMl{J!ma@tzGec&CiKToX_`rj^_c=a1;=K=Uk`)CfCv$9;ljRxn zhU+H)Meijpu~~3-+3Y7 z5_yJm0iB60RX+&BIlm@NdDn>*nAWtd5R<%<-6b=I*tZsqk+y1DM%rX#xdfyl&oSxw zkU+NKXe1m0BRD`_6f%-4Mj=fF2_$)$rv|7aBF_lc;JpBc zF+%J-^?X4@RESZX`b=13=#oER2r;oNPcbKL4LY+uD+}*B^1*<*Y3T`BN=Yl*T1%Fn zmR?$EqLEBQCpMyvin?xj_0`w;!YeP)H7zkXHm6etMInJyDUKHlin5|xv^;qK7Rwi3 z!nYkdlL^p^Wy54JAs-kqXbnJA1lOhjW>WVkV=|ufxba6GpNJrEax&-E%|~3kxIwD| zI?H81hHFu#;Fo{$Wu861!Qc3;@9@Bh6R;0L5A6Xqo4&M4X?9Q33?UFQ&4qJY6lF=* zN(~y7l6pNvZoc;ci?(Hw53sht8V&SgoD|xg`t@Z+M%ym2Hp91pVWBWa>fOGT=e?sW zg`DBNr%Q~*Q{$4b4iL_X4S0-^S?7o$P$mGV&l-v%C$||{mbeVotg!@ZtticuqU}1F z-;{u;&LvB5rE%V|YC8(0`)W#pOWQ#V=uCF*#yeTKL0Y7~X~?pSZn>1-X;P0q$oI*O zbO@YtR8>XSb&^I$X@B{)ksUQc-L&g$tqbyVuI*5W6K~ItD6)cF8!}_)QrD!gR@$Km zE!U@xhJiJRYK*i*jkW7w8zSjkp5iZk`&p;YsbUl-JJquQ)4Tydc`<>_txaV|Sd+n& zIbA+wGBN=H04-sYgg%_*6uG9TDq;xip4(yn@FC0NIX2IzSJF#fEEecQNE!@AxXyuJqNBmB zG{fPT-Q5Y*Fc-F2BKnXndfRqnnOy^J>uyGr-6y1lX44=^>E}yJv8>9(=a*en+H5L` zm=wMPyhQ+yCE`>-e^00gONZAwc8jFbQ**+Zml8mtxOpKDuGJi|Fq3aqBMZLOHR7?onNO!ac`45}*K`-a78C2l=}LgKuW)}xZ|ZM0syJy~lK5SOE3 zB+GJamWeLk3wUSqjM5nDRfEx5`1jtU&^Q9oiwe|ahNh|U0hY_9beht&2+6oI#(*(8 zfr%m+Cn6mrRPsKA)qH^+rfJrxW79f$t?*eiZQBu0WL2^5)aZm+DJAXC800=E3(Fw4 z!dN8oPk!UK`6GYykFl{iVgA-FUVr^vqBiVaK93KU`kj5M;a!>-Y1=@zm@zxpqcWO5 z@vr<0FTZeurMKBaPh?YS$U}HLAb90PQ$wg-u^r8lCr8O z$^!3%-I$l9c-^(_`gP02lEPR4HMODhZe7#olw>Af2e`~id#&p_@- zP|9Ei8-z5?$9EprkL@;k-Ji#YwE-vy7)6XpTqE{N){2@;($2`i;U3RDbCuwl)RP94 z5d0!H>}+k)b~7IDt!Qe;WHJ`OtgRVT0|vtl7W0O(EGUYCrg2#7Y32=Gw_8LR8TiI0;cR-=i2rw-cQz5R$oJH?}QxLJMg-4Fov@X!JLN6W+%G7&K zC^nMf_nd;|a!KPPwO=fjKq3+u>2Z4>iBYX@^u=t+a=BnI7+||VR+MBm6G2j+aV4%o z-yz5oZ$TR)0YFJvCOvl9;rp^Df@mcYVjg0|6eY(;M6w61C@WKXForBwNhXU3Y@A1>-Ntv)b`l@E9uts0dbeoXf+&H*+Kd<>%W_=X zF|0<61{Imj&eZ)RP%7eFhtityWJ24t0vs9(StcYB@9DZ`-S0OkqiDNMx*j12@g=DX zLyQzz$^7t`uIm_&$HGS_Ntq}m zq%Mj{nF8dt5Pyh-*ymBY6?G%mrO$r4u9Ff<^`t8Cndn^L@#8)6G9%EUXb7$*x(??% znpF!CX1<}VnYnI%U~s&ft#rMH?}L!R5z+VbeU@3}+U)L5<2!7-VRm>nM_)?8#c zU!s+wb1ikfVmPWON0z)Cb39+tv@PS&h_b3!E`^6(ujY(KL#ERyi^Y=Z<_5lVY;SIn z<>IyPy%2C*=Wxz5nM#^3CJ>6I?$+X`x^2mGQQh;kF_P<2g;&A8_`lIE%j~JoiY?V*NOF7zk^2! zxG14t_vyax+`9D#0)Wm}O9sOsMhRlx;gTy;M_CqYuYsa0ur{M>yLBtB4T3w=^Erc| z_~8lObIO+>{p@PBN??~*b9pb^38gf9`v+??n$@ylv0Cx);XZZixP9*)##rWyhRqA- z7*01aMMaSpXaWa&`|R)Uv6vm>7BjSWbgrfAR&>Fm>Xx7_xy?~Q5!;&O;Q>0`pG7gm zmN`4;&N1EEWn+7X3r}4^S<6V<2Qb_J=0+P31}t=kMr!^Y;AYEYpR z)OABtk%tc-aqs?pnI&fwnKeA~>MRu*Q-hAiMVwDA8^E?5Qjo=dz3eyLsxbC0~1_L3;B)4U2 z1)N*cUQ<9mJCjiXG0Ox~NI{?|OVE04?PU@#!Wu)KI1|o0CZiF~dtB44UtbnQBJ~)m zq9k-8#yC7UU^1CdmL(xZ31DYRjNxE-<{lDYZaf^Lt>*CPn5uNx*&)rU=HPhFcsxX* zm`o;&swrJCbZuZ(*JumXU%`!Bo=qR-2`lT&Gv}}Iyrx<67 z*sg@k6*SwsTQ~)am7{f*RAmabDjm$4U-IUo4_Z~s2ezi=a+1p%b@9`B1p8B%H6eu!rO)@2)5%)g zvRbW}PA4cNHP=e7Z^W)`C<;-EwQWm`9vvdClk7l;$l~OP3+J{e3dQ#JCYjARK0X#& zZJuGuoL~yR_O;(*cYBLp{P|b7dU1!{?G1{z3ic0NuSj-yEo!@4z}S9BmCn zmPuBmM9)w!mK5axqhXqF5fkv{lcd!eQPSnPO|412ZZYP$1XW{21K^!syYOmb6Y?(| zhV`!8cIyD#mjiu9uv{*QA&5+xq=O)#-&)Ks|XY>(z>~EJc)+8K#pdZPQU!&k$o^RW~f_n#F9+ zs&+iwJ0Qyqor|>2b26K;wJEH+u5Gbe(X1BSzxR;E%5(4WF{5$D)eGA^bLlb{uU}z4 zTd*;x80LyBQ|M?J4lD6nbb-OJWK}N{(3~a9FewKQ59WzvB-v0|mS`QRrc=Q&f+A|s zskE`BUbQK3i?vwav3cc{&r`3K7;Pm}OIe#sEy2Du*k^1Xb$mjCfWaC=QRKKp+$ala zhsD%$?YfRU&uNUb*g(-V&6+De9FG!E7RYRdcO93Xx<+Yph>FQTZk&^oV|KQ-aL)6U zFMp2U19?{P{(E;RtBmc9DOELKHalij*KBWZN~3C9B}Qa%M^J|U9YfK zGZ<8KZ6jq%w`4M&tjQ`pfN6|Qlv^*#KdsmpjimLJybRVVJ_J24@|)MX4X;6`*JxCJVrsnbEeQw;iPA?AfX<-E)D9eK0lv8U%+qEKxC7ud)ns&`*>*>vl z#bT`|sOx$S_&MjulTuNbj)H(&YpLs+kb;T#9hsGdr;}V;EV~^2a2VHh>+EB-Y}aK< zA58k7)FxZ*-aDbGSB%CJ27?M^6d}0eJ*a8Bn#rhQIxJCJQ}Uu@v23WDn!|%bHn(@! zJ3L@}dm zYv2+;LWo>_u>82=6A=Ue1_K$BWRklIeg9i2=F0_{&1l+Ibks>TRt~DPgNi>uS(dbI z$H{C#7CZJHJfc}HDT@-N6oWxUk>_lTMhpiTyE|jDyks$(@#w)Z=gx1TZO*Fh*xIa^ zZj4zh=4@^35~3KCy!iaJB>hy3CqrU{qvILTd$zZ?P((6Y(KRjJ`Ss2Zan0OQTC=Qc zsm&LQHG{9)KM;Ctaw+niI4;Zjk9ZeYE^8XsFqw|U!{5lc%F<#I5sP>p%w{uIs}(MI z>bhZ2Rn)81ddKKZSG3XV&lb8)$V)!pdN!Q*YgD}VPUw6ZaDqszg@W8Ayd}tlq#zXU zsK9$!+{>jHdsJm9b!rTF-z8eKeDIWXRUWl;LR1rOOupF0**=~{;^Ml#0@2R^9-5=p2i#SyA&I=Z%HV?3mD4y`RQKtB|yu4@Ulc|nK@-$tAl z73{6sw}q*?xrxn$5Y@G9(j?fmenafh4QCw5y`ceuu_<Rpjq9~Ydj3~=pymQ3r zREg-EXa_>@45}QkG8#*1j!%w>5lmS!8IOs`q+sV|LHiJsAVw}m9~}BFL5yDH#F@nf zLF%1%7s2DuIy7SfYkOCRy2~ z^XFtiR~8!$)@J{|_Rb~7k~F*Pzc0Rc$G!QeN0(du@^sIP$0M+Nnh~T=z^dg+wk+;sBFGNH)%U%3O3Eh5s%ZcUhiaw7w9+M4l!xs3RBkobjUbF!BUK zqGH2Qb{UPJBqYt!j3H8(3CSgOIDhE#9~~bHC%_LJU%SS(-4J39AWc)8_vD2zC4)}b zv@N+x0Xb)qB%wEw7m#M9{E{yb06#b;r8qi16jGFeY4nVCr0+WhH_+5GAkZ8ivR*Dx z(})>IoRMv(ixHbNQbC$)yiVDyx3RTgWblIwaOwKXTt`*a=u~rlc23uK6nRbvil%Nj zdvMC&#UAIpOy6odf=bwKwq&Wu&u_L{60Ny)>nXgkgc$X#mL2y`&qcMV@92BO7k=U= z7{h>dBi>EC^Mm(UE*Foy_O65zaMp7B?RSL=I}TK(&}NUX9dS@A%A!Isad0pfiKYwn z;Mf^8O%rXqML#=7fAKjs%e8#zj3i16EjLPWPmGLSstB{D5q4EkK%zK4IFJxKme`1` zp6XJ;cVbpmu?9Y&6G(N2ng;5!ki9*^9nW-%9W7;%lV(~@;{2iIj*P`rC&H$i)?>&>XEVnJkxpYn@>4a9Y z3(r(aqJ_Xz6dA@CnpwpZdk26>y&W$v*bqQCO$nQ>rHZAmsFBqN@C&8ZnOKWkK)U<;=jo@1qLRAnHXi zhmdONh;)OLDH$f3rb4L%8=YpFN%S%e10&Eh4I$HbW5wB~DRosbI8WPk92^{wr5VQb zjA26SjJ`L_W)04CF@j1k)-iZTGpn(YiJ9n>u5B5OXWO+bS8L|88CoZ_+bvDgu8=iW4Na8MHntd=VVJjm*9*%W&2blrXL?di+H&BaV^sa*}nuy<`JssiKUT@{5Qg zO>|V}kqb1$d4gdi^7mu1EtNZ}>8*@j52G~5L}~DG7;whGc1xlzgi`}5O|i}~I4AF= z)5`>zj?sj*mORff#?kg2Ll{{u&PkMH|8?B!=VghF7uI$s|{JICE2MJlD`-P9B_55aiSp{?dcLEras0wvNeoTe$m^kGs)DaHKY5bGS9c1w~9ZS}`)-k|F`w!OJj7Lrgh zr{A{UFwPo;Pf0{CROP0!nUvDjGQPPhc#>t$9Rolgx2PxiL>5R-XqW&&@FM~b_6N}Xn zP!wf}=?zJusjCvA^D4`dzVFHNoX&e%+mmL6l+LP3WWI+$5~nM#w`)=@&JzN&W=2uh z48w>WC!DcDdeWM(TH}X-F-rM1%}mvsj;y=LMrubk?%j%J(=-qCj0ls<7!TOFF6^bbR*nPjlyIw|sMG5S2lzpOfn}tjM z`mAZ_`mKn1B%&Cj5Q!^-h)+~i&R`wJ7!oaEc9uz_h)z@PpD$(q9h+mEv7DVRBq^4r zfZWBVX=E6Uj4tmjcDbM`%6PZ%_`b)-1YHtC;NE$3nuD4MDAwx@^-L}zg|yI%nrghC!sklphF*j4#`6yBIx)U`E?@7-LXJ2eDEUqBHY! z-3E;!FLJUhCrPElZ$jFbhiPQ9-3awJOtBsK!_2>rVZDug0f9hX6a=O4QJLue>6v7< ziz1dUqpDDv;;oHNW-DuzMADc}$d!~QZQC;Xk+P~;ZPrZ2vRSuOWyxy2Vm@#1qYU>P zgJRQ38O=F&DOMAZa$TZR+%Tflz-R~jdc*wa5Z8C2qc}~pD@R!r^rmOgbtFm3dfRj7 z-U)e`OF3IfkLwhKV^TzMn6j)0VI)(jP~@kmuP{lQcZhB6ecz(gbU83(7>9ViII6lK zgpsN)vCcBN9;GEpZTpt=kBRmEaa;)}FijFlrdr{g=iRs7=NTJ8ct(e-`otdl+OFb+89$u%Huit;rJ2YPk?n$TX6s32oalpUp{wO*3x6d#kfRaMdVJ!K{3xNX}~mIZlMkYzH1LF=4pbR=nDV&vdx zCi4=l!+V(-Fpd+b5v4VqbreM@{Td;VjT5fjkme#Vi-z8GGWg(vGMtxmoxvF|CArZE zNhq%vrojAQ&R{zfBS(jG>bk`Co-EVkc}7`Ov|W#j5zOc%vQc5A%CksGmzH%Z$SaBH zsyt_yWT>zA1LF{=%97p~luB^c$Rw<*ULw?Se-1K)@$7WLW_7}I&p(6pEl)pl6QvXn z9^8xjZpaHMGo@<6dc)DYAx$;MM{|~otz4ATz!U~_nqWK66cPvuJ6g7FM^OkJH7MEd z=dn4+IFIvV)bSVneLsEJJ?Ff~I)`zN^W_p9TaU9$PEL!B-Hr-Bj3U@EIE1Vdmo(VT&O6`b?7^F)dgR{ybLI!fcrW>;iJoQ#cki7<=4TPx zw57*DwmOQ>zxX+R?B)&L``|Wjy>|zlNhjiV+oE+xS(Yr%&bW5-2Fukdj^YzhS7Z7| zUVm4@2@J!)ojV_}T%O_D9&Zgt^$~;XSS=RlOba2Xw@d``BE@=7m1h*GLS@n{lmyX( z3!&nL7eB|z{WDHa-^ULf;x$XY|&y-8^6z2AZbC*frjJR1h|2-=9-d zm7Kgv2tA#%tk)azyx?$_F^zEl{)VbZQ933ty;|`f*aNdH3D-NVU+=2{Mr6^kjod66!jYa$iXBBdl!8;cQ0f68>C% z$jujy2~|atWwfU&?sp@qKH?jz6-lPhMa8D~Oq1oAkaKi+D0W*#o~O8}WZYQFx?-{1 zGMmpiy?vjrBD${PTaBpZ=*= zc;VU4@bCWZZ}H}L-(Wtk7>0qP;{(~lt+upnOO|CQmGSdG_vd;0dmr%p3pe@Q-+h%t zXSAImObTl{4(2ni&nv$0`RDl7o40xA&N-*cjjAY6&E$QdUQr);~4aWHg!kJelCXJ?$9tyr~&GS`q~JXo$t zlbi%iYaIXkjc;*x;b{AT&<-T2lqSQZB*Q&=l#*?Xao|0KWMZ5$X7fW#E9Ed$f*%#V z9|>NFGE)FIC=v~6RuQy9yFgY{kZ7z|pfqF1DVu_zN+J6wMQ1k5ni=(6V|ycG*7E`# z6nT;0hd@!3G-*wk2AL~>;>OLJBJUOgMJ{8}PaZ5t5=GSUZ-vNMu$M0(dvbc@>qO^Fmaag;e!u z+OT>Yr}#-hDfIwofzw^v@(^yYx94%VYWBd@v+1hY^Fj#W{~AwxC7b|&QtGu3!k2e# z#|8HGJRVog9=LioT{U|ig=E(T?6JolyT#rK?6JqE99PK+{Igvf@I%;rPMEc0`@$ol=|;VsqZMIzO9t{+wu5L*61}-ubHZHW=cJTl-@B`pQ zAP4>c_~H)icn7%gL&yFB@b&oo>%iatgl+g);1%GF|CbHGSAqY8=#%^m@Ow|lo?iq0 z?nnIX7vpzV0H2B9ss0h$^EB{Ed_D)h7vFa$YxEdN85I9QbA6x1Xc|N~uOEHNSWc{6*l6XveR_Kl>HnKR!vjA|7SKZv%fVX25?2SUnUH ze`5HdJ@sEj*6G5YUsg&LN~zBPp98+}BYtlM{0ra@LkR!qp_g{DMvt;*muvK~vFpqv zlEwWVk}dt!9lZaGNY?fbfNx*e09*%t2lyl4zX8`iVLSc}5%ceT zk3Bx+*!6Z`k3II-G4@Vik3Bx+*gJte_V|=z?*#VP<5P~k6WC*qPdWBZV2?dM<=8uc lJ@)vNWA6m^*yB@<{{wC(A#GPlO<4c{002ovPDHLkV1k1DI%5C; literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_images/yi_jing_01_chien.jpg b/docs/v1.1.1/_images/yi_jing_01_chien.jpg new file mode 100644 index 0000000000000000000000000000000000000000..523dc2b8b868fa53e3b960d7017908dae486eecb GIT binary patch literal 6614 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 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_modules/index.html b/docs/v1.1.1/_modules/index.html new file mode 100644 index 0000000000..c9f4843a3d --- /dev/null +++ b/docs/v1.1.1/_modules/index.html @@ -0,0 +1,635 @@ + + + + + + + + + + + + Overview: module code — Torch-TensorRT master documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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 ZgwkVKN0Ioik|;6JadkfLM0B{6^=~%3%Q^r6 literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_35_1.png b/docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_35_1.png new file mode 100644 index 0000000000000000000000000000000000000000..45a206ae1c504be3f214f3efb28dda864f571d6b GIT binary patch literal 72163 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 KMNUMnLSTZx*F>=Z literal 0 HcmV?d00001 diff --git a/docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_35_2.png b/docs/v1.1.1/_images/_notebooks_ssd-object-detection-demo_35_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7189e0c7037a17077c422942cc3fec397e0fe6db GIT binary patch literal 95266 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