From 0d4ea75a2e449677dc1290ec16988ece023ca0dc Mon Sep 17 00:00:00 2001 From: Yuge Zhang Date: Mon, 17 Apr 2023 18:28:29 +0800 Subject: [PATCH] NAS 3.0 docs (quick update) (#5509) --- docs/source/conf.py | 4 +- .../locales/zh/LC_MESSAGES/tutorials.po | 782 ++++++++++-------- docs/source/nas/advanced_usage.rst | 1 - docs/source/nas/benchmarks.rst | 42 +- docs/source/nas/construct_space.rst | 41 +- docs/source/nas/customize_strategy.rst | 98 --- docs/source/nas/evaluator.rst | 77 +- docs/source/nas/execution_engine.rst | 95 +-- docs/source/nas/exploration_strategy.rst | 4 +- docs/source/nas/hardware_aware_nas.rst | 139 ++-- docs/source/nas/mutator.rst | 6 +- docs/source/nas/overview_zh.rst | 89 -- docs/source/nas/space_hub.rst | 36 +- docs/source/reference/nas.rst | 341 ++++++++ docs/source/reference/nas/evaluator.rst | 48 -- docs/source/reference/nas/others.rst | 29 - docs/source/reference/nas/search_space.rst | 24 - docs/source/reference/nas/strategy.rst | 21 - docs/source/reference/nas/toctree.rst | 10 - docs/source/reference/python_api.rst | 2 +- docs/source/tutorials/darts.ipynb | 46 +- docs/source/tutorials/darts.py | 73 +- docs/source/tutorials/darts.py.md5 | 2 +- docs/source/tutorials/darts.rst | 300 +++---- docs/source/tutorials/darts_codeobj.pickle | Bin 38506 -> 34761 bytes docs/source/tutorials/hello_nas.ipynb | 74 +- docs/source/tutorials/hello_nas.py | 132 ++- docs/source/tutorials/hello_nas.py.md5 | 2 +- docs/source/tutorials/hello_nas.rst | 269 +++--- .../source/tutorials/hello_nas_codeobj.pickle | Bin 18058 -> 20239 bytes docs/source/tutorials/hello_nas_zh.rst | 617 -------------- .../hpo_quickstart_pytorch/index.rst | 4 +- .../hpo_quickstart_tensorflow/index.rst | 4 +- .../tutorials/images/sphx_glr_darts_001.png | Bin 98070 -> 261175 bytes .../tutorials/images/sphx_glr_darts_002.png | Bin 120768 -> 120439 bytes .../tutorials/images/sphx_glr_darts_003.png | Bin 206267 -> 205008 bytes .../images/thumb/sphx_glr_darts_thumb.png | Bin 12242 -> 29178 bytes .../images/thumb/sphx_glr_hello_nas_thumb.png | Bin 18970 -> 35467 bytes docs/source/tutorials/index.rst | 31 +- .../tutorials/nasbench_as_dataset.ipynb | 2 +- docs/source/tutorials/nasbench_as_dataset.py | 6 +- .../tutorials/nasbench_as_dataset.py.md5 | 2 +- docs/source/tutorials/nasbench_as_dataset.rst | 50 +- .../nasbench_as_dataset_codeobj.pickle | Bin 1057 -> 1111 bytes docs/source/tutorials/sg_execution_times.rst | 10 +- examples/tutorials/darts.py | 73 +- examples/tutorials/hello_nas.py | 132 ++- examples/tutorials/nasbench_as_dataset.py | 6 +- nni/nas/benchmark/__init__.py | 4 +- nni/nas/execution/cgo/__init__.py | 1 + nni/nas/hub/pytorch/modules/nasbench101.py | 2 +- nni/nas/nn/pytorch/cell.py | 4 +- nni/nas/oneshot/pytorch/profiler.py | 11 + 53 files changed, 1523 insertions(+), 2223 deletions(-) delete mode 100644 docs/source/nas/customize_strategy.rst delete mode 100644 docs/source/nas/overview_zh.rst create mode 100644 docs/source/reference/nas.rst delete mode 100644 docs/source/reference/nas/evaluator.rst delete mode 100644 docs/source/reference/nas/others.rst delete mode 100644 docs/source/reference/nas/search_space.rst delete mode 100644 docs/source/reference/nas/strategy.rst delete mode 100644 docs/source/reference/nas/toctree.rst delete mode 100644 docs/source/tutorials/hello_nas_zh.rst diff --git a/docs/source/conf.py b/docs/source/conf.py index 949ac5d82..f1707a968 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -210,8 +210,8 @@ gettext_documents = [ r'^index$', r'^quickstart$', r'^installation$', - r'^(nas|hpo|compression)/overview$', - r'^tutorials/(hello_nas|pruning_quick_start_mnist|hpo_quickstart_pytorch/main)$', + r'^(hpo|compression)/overview$', + r'^tutorials/(pruning_quick_start_mnist|hpo_quickstart_pytorch/main)$', ] # List of patterns, relative to source directory, that match files and diff --git a/docs/source/locales/zh/LC_MESSAGES/tutorials.po b/docs/source/locales/zh/LC_MESSAGES/tutorials.po index deeaa796c..e94a0d569 100644 --- a/docs/source/locales/zh/LC_MESSAGES/tutorials.po +++ b/docs/source/locales/zh/LC_MESSAGES/tutorials.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: NNI \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-18 19:27+0800\n" +"POT-Creation-Date: 2023-04-12 10:42+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,334 +17,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.9.1\n" -#: ../../source/tutorials/hello_nas.rst:13 -msgid "" -"Click :ref:`here ` to download " -"the full example code" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:22 -msgid "Hello, NAS!" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:24 -msgid "" -"This is the 101 tutorial of Neural Architecture Search (NAS) on NNI. In " -"this tutorial, we will search for a neural architecture on MNIST dataset " -"with the help of NAS framework of NNI, i.e., *Retiarii*. We use multi-" -"trial NAS as an example to show how to construct and explore a model " -"space." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:28 -msgid "" -"There are mainly three crucial components for a neural architecture " -"search task, namely," -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:30 -msgid "Model search space that defines a set of models to explore." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:31 -msgid "A proper strategy as the method to explore this model space." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:32 -msgid "" -"A model evaluator that reports the performance of every model in the " -"space." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:34 -msgid "" -"Currently, PyTorch is the only supported framework by Retiarii, and we " -"have only tested **PyTorch 1.7 to 1.10**. This tutorial assumes PyTorch " -"context but it should also apply to other frameworks, which is in our " -"future plan." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:38 -msgid "Define your Model Space" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:40 -msgid "" -"Model space is defined by users to express a set of models that users " -"want to explore, which contains potentially good-performing models. In " -"this framework, a model space is defined with two parts: a base model and" -" possible mutations on the base model." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:46 -msgid "Define Base Model" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:48 -msgid "" -"Defining a base model is almost the same as defining a PyTorch (or " -"TensorFlow) model. Usually, you only need to replace the code ``import " -"torch.nn as nn`` with ``import nni.retiarii.nn.pytorch as nn`` to use our" -" wrapped PyTorch modules." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:52 -msgid "Below is a very simple example of defining a base model." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:93 -msgid "" -"Always keep in mind that you should use ``import nni.retiarii.nn.pytorch " -"as nn`` and :meth:`nni.retiarii.model_wrapper`. Many mistakes are a " -"result of forgetting one of those. Also, please use ``torch.nn`` for " -"submodules of ``nn.init``, e.g., ``torch.nn.init`` instead of " -"``nn.init``." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:98 -msgid "Define Model Mutations" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:100 -msgid "" -"A base model is only one concrete model not a model space. We provide " -":doc:`API and Primitives ` for users to express how" -" the base model can be mutated. That is, to build a model space which " -"includes many models." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:103 -msgid "Based on the above base model, we can define a model space as below." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:134 -msgid "This results in the following code:" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:189 -#: ../../source/tutorials/hello_nas.rst:259 -#: ../../source/tutorials/hello_nas.rst:471 -#: ../../source/tutorials/hello_nas.rst:564 -#: ../../source/tutorials/hpo_quickstart_pytorch/main.rst:244 -#: ../../source/tutorials/hpo_quickstart_pytorch/main.rst:281 -msgid "Out:" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:210 -msgid "" -"This example uses two mutation APIs, :class:`nn.LayerChoice " -"` and :class:`nn.InputChoice " -"`. :class:`nn.LayerChoice " -"` takes a list of candidate modules " -"(two in this example), one will be chosen for each sampled model. It can " -"be used like normal PyTorch module. :class:`nn.InputChoice " -"` takes a list of candidate values, " -"one will be chosen to take effect for each sampled model." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:219 -msgid "" -"More detailed API description and usage can be found :doc:`here " -"`." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:223 -msgid "" -"We are actively enriching the mutation APIs, to facilitate easy " -"construction of model space. If the currently supported mutation APIs " -"cannot express your model space, please refer to :doc:`this doc " -"` for customizing mutators." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:228 -msgid "Explore the Defined Model Space" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:230 -msgid "" -"There are basically two exploration approaches: (1) search by evaluating " -"each sampled model independently, which is the search approach in :ref" -":`multi-trial NAS ` and (2) one-shot weight-sharing " -"based search, which is used in one-shot NAS. We demonstrate the first " -"approach in this tutorial. Users can refer to :ref:`here ` " -"for the second approach." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:235 -msgid "" -"First, users need to pick a proper exploration strategy to explore the " -"defined model space. Second, users need to pick or customize a model " -"evaluator to evaluate the performance of each explored model." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:239 -msgid "Pick an exploration strategy" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:241 -msgid "" -"Retiarii supports many :doc:`exploration strategies " -"`." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:243 -msgid "Simply choosing (i.e., instantiate) an exploration strategy as below." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:273 -msgid "Pick or customize a model evaluator" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:275 -msgid "" -"In the exploration process, the exploration strategy repeatedly generates" -" new models. A model evaluator is for training and validating each " -"generated model to obtain the model's performance. The performance is " -"sent to the exploration strategy for the strategy to generate better " -"models." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:279 -msgid "" -"Retiarii has provided :doc:`built-in model evaluators `, " -"but to start with, it is recommended to use :class:`FunctionalEvaluator " -"`, that is, to wrap your own " -"training and evaluation code with one single function. This function " -"should receive one single model class and uses " -":func:`nni.report_final_result` to report the final score of this model." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:284 -msgid "" -"An example here creates a simple evaluator that runs on MNIST dataset, " -"trains for 2 epochs, and reports its validation accuracy." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:367 -msgid "Create the evaluator" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:386 -msgid "" -"The ``train_epoch`` and ``test_epoch`` here can be any customized " -"function, where users can write their own training recipe." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:389 -msgid "" -"It is recommended that the ``evaluate_model`` here accepts no additional " -"arguments other than ``model_cls``. However, in the :doc:`advanced " -"tutorial `, we will show how to use additional arguments " -"in case you actually need those. In future, we will support mutation on " -"the arguments of evaluators, which is commonly called \"Hyper-parmeter " -"tuning\"." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:394 -msgid "Launch an Experiment" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:396 -msgid "" -"After all the above are prepared, it is time to start an experiment to do" -" the model search. An example is shown below." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:417 -msgid "" -"The following configurations are useful to control how many trials to run" -" at most / at the same time." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:436 -msgid "" -"Remember to set the following config if you want to GPU. " -"``use_active_gpu`` should be set true if you wish to use an occupied GPU " -"(possibly running a GUI)." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:456 -msgid "" -"Launch the experiment. The experiment should take several minutes to " -"finish on a workstation with 2 GPUs." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:495 -msgid "" -"Users can also run Retiarii Experiment with :doc:`different training " -"services ` besides ``local`` " -"training service." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:499 -msgid "Visualize the Experiment" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:501 -msgid "" -"Users can visualize their experiment in the same way as visualizing a " -"normal hyper-parameter tuning experiment. For example, open " -"``localhost:8081`` in your browser, 8081 is the port that you set in " -"``exp.run``. Please refer to :doc:`here " -"` for details." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:505 -msgid "" -"We support visualizing models with 3rd-party visualization engines (like " -"`Netron `__). This can be used by clicking " -"``Visualization`` in detail panel for each trial. Note that current " -"visualization is based on `onnx `__ , thus " -"visualization is not feasible if the model cannot be exported into onnx." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:510 -msgid "" -"Built-in evaluators (e.g., Classification) will automatically export the " -"model into a file. For your own evaluator, you need to save your file " -"into ``$NNI_OUTPUT_DIR/model.onnx`` to make this work. For instance," -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:541 -msgid "Relaunch the experiment, and a button is shown on Web portal." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:546 -msgid "Export Top Models" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:548 -msgid "" -"Users can export top models after the exploration is done using " -"``export_top_models``." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:575 -msgid "" -"The output is ``json`` object which records the mutation actions of the " -"top model. If users want to output source code of the top model, they can" -" use :ref:`graph-based execution engine ` " -"for the experiment, by simply adding the following two lines." -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:597 -msgid "**Total running time of the script:** ( 2 minutes 4.499 seconds)" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:612 -msgid ":download:`Download Python source code: hello_nas.py `" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:618 -msgid ":download:`Download Jupyter notebook: hello_nas.ipynb `" -msgstr "" - -#: ../../source/tutorials/hello_nas.rst:625 -#: ../../source/tutorials/hpo_quickstart_pytorch/main.rst:335 -#: ../../source/tutorials/pruning_quick_start_mnist.rst:343 -msgid "`Gallery generated by Sphinx-Gallery `_" -msgstr "" - #: ../../source/tutorials/hpo_quickstart_pytorch/main.rst:13 msgid "" "Click :ref:`here " @@ -579,6 +251,11 @@ msgid "" "http://localhost:8080." msgstr "" +#: ../../source/tutorials/hpo_quickstart_pytorch/main.rst:244 +#: ../../source/tutorials/hpo_quickstart_pytorch/main.rst:281 +msgid "Out:" +msgstr "" + #: ../../source/tutorials/hpo_quickstart_pytorch/main.rst:260 msgid "After the experiment is done" msgstr "" @@ -630,6 +307,11 @@ msgstr "" msgid ":download:`Download Jupyter notebook: main.ipynb `" msgstr "" +#: ../../source/tutorials/hpo_quickstart_pytorch/main.rst:335 +#: ../../source/tutorials/pruning_quick_start_mnist.rst:343 +msgid "`Gallery generated by Sphinx-Gallery `_" +msgstr "" + #: ../../source/tutorials/pruning_quick_start_mnist.rst:13 msgid "" "Click :ref:`here " @@ -775,3 +457,445 @@ msgstr "" #~ msgid "**Total running time of the script:** ( 1 minutes 30.730 seconds)" #~ msgstr "" +#~ msgid "" +#~ "Click :ref:`here " +#~ "` to download" +#~ " the full example code" +#~ msgstr "" + +#~ msgid "" +#~ "Currently, PyTorch is the only supported" +#~ " framework by Retiarii, and we have" +#~ " only tested **PyTorch 1.7 to 1.10**." +#~ " This tutorial assumes PyTorch context " +#~ "but it should also apply to other" +#~ " frameworks, which is in our future" +#~ " plan." +#~ msgstr "" + +#~ msgid "" +#~ "Defining a base model is almost " +#~ "the same as defining a PyTorch (or" +#~ " TensorFlow) model. Usually, you only " +#~ "need to replace the code ``import " +#~ "torch.nn as nn`` with ``import " +#~ "nni.retiarii.nn.pytorch as nn`` to use " +#~ "our wrapped PyTorch modules." +#~ msgstr "" + +#~ msgid "" +#~ "Always keep in mind that you " +#~ "should use ``import nni.retiarii.nn.pytorch as" +#~ " nn`` and :meth:`nni.retiarii.model_wrapper`. " +#~ "Many mistakes are a result of " +#~ "forgetting one of those. Also, please" +#~ " use ``torch.nn`` for submodules of " +#~ "``nn.init``, e.g., ``torch.nn.init`` instead " +#~ "of ``nn.init``." +#~ msgstr "" + +#~ msgid "Define Model Mutations" +#~ msgstr "" + +#~ msgid "" +#~ "This example uses two mutation APIs, " +#~ ":class:`nn.LayerChoice `" +#~ " and :class:`nn.InputChoice " +#~ "`. :class:`nn.LayerChoice" +#~ " ` takes a " +#~ "list of candidate modules (two in " +#~ "this example), one will be chosen " +#~ "for each sampled model. It can be" +#~ " used like normal PyTorch module. " +#~ ":class:`nn.InputChoice `" +#~ " takes a list of candidate values," +#~ " one will be chosen to take " +#~ "effect for each sampled model." +#~ msgstr "" + +#~ msgid "" +#~ "Retiarii supports many :doc:`exploration " +#~ "strategies `." +#~ msgstr "" + +#~ msgid "" +#~ "Retiarii has provided :doc:`built-in " +#~ "model evaluators `, but to " +#~ "start with, it is recommended to " +#~ "use :class:`FunctionalEvaluator " +#~ "`, that is," +#~ " to wrap your own training and " +#~ "evaluation code with one single " +#~ "function. This function should receive " +#~ "one single model class and uses " +#~ ":func:`nni.report_final_result` to report the " +#~ "final score of this model." +#~ msgstr "" + +#~ msgid "" +#~ "It is recommended that the " +#~ "``evaluate_model`` here accepts no additional" +#~ " arguments other than ``model_cls``. " +#~ "However, in the :doc:`advanced tutorial " +#~ "`, we will show how to" +#~ " use additional arguments in case you" +#~ " actually need those. In future, we" +#~ " will support mutation on the " +#~ "arguments of evaluators, which is " +#~ "commonly called \"Hyper-parmeter tuning\"." +#~ msgstr "" + +#~ msgid "" +#~ "The following configurations are useful " +#~ "to control how many trials to run" +#~ " at most / at the same time." +#~ msgstr "" + +#~ msgid "" +#~ "Remember to set the following config " +#~ "if you want to GPU. ``use_active_gpu``" +#~ " should be set true if you wish" +#~ " to use an occupied GPU (possibly " +#~ "running a GUI)." +#~ msgstr "" + +#~ msgid "" +#~ "Users can also run Retiarii Experiment" +#~ " with :doc:`different training services " +#~ "` besides ``local``" +#~ " training service." +#~ msgstr "" + +#~ msgid "" +#~ "The output is ``json`` object which " +#~ "records the mutation actions of the " +#~ "top model. If users want to output" +#~ " source code of the top model, " +#~ "they can use :ref:`graph-based execution" +#~ " engine ` " +#~ "for the experiment, by simply adding " +#~ "the following two lines." +#~ msgstr "" + +#~ msgid "**Total running time of the script:** ( 2 minutes 4.499 seconds)" +#~ msgstr "" + +#~ msgid "" +#~ ":ref:`Go to the end " +#~ "` to download" +#~ " the full example code" +#~ msgstr "" + +#~ msgid "Hello, NAS!" +#~ msgstr "" + +#~ msgid "" +#~ "This is the 101 tutorial of Neural" +#~ " Architecture Search (NAS) on NNI. In" +#~ " this tutorial, we will search for" +#~ " a neural architecture on MNIST " +#~ "dataset with the help of NAS " +#~ "framework of NNI, i.e., *Retiarii*. We" +#~ " use multi-trial NAS as an " +#~ "example to show how to construct " +#~ "and explore a model space." +#~ msgstr "" + +#~ msgid "" +#~ "There are mainly three crucial " +#~ "components for a neural architecture " +#~ "search task, namely," +#~ msgstr "" + +#~ msgid "Model search space that defines a set of models to explore." +#~ msgstr "" + +#~ msgid "A proper strategy as the method to explore this model space." +#~ msgstr "" + +#~ msgid "" +#~ "A model evaluator that reports the " +#~ "performance of every model in the " +#~ "space." +#~ msgstr "" + +#~ msgid "" +#~ "Currently, PyTorch is the only supported" +#~ " framework by Retiarii, and we have" +#~ " only tested **PyTorch 1.9 to 1.13**." +#~ " This tutorial assumes PyTorch context " +#~ "but it should also apply to other" +#~ " frameworks, which is in our future" +#~ " plan." +#~ msgstr "" + +#~ msgid "Define your Model Space" +#~ msgstr "" + +#~ msgid "" +#~ "Model space is defined by users to" +#~ " express a set of models that " +#~ "users want to explore, which contains" +#~ " potentially good-performing models. In " +#~ "this framework, a model space is " +#~ "defined with two parts: a base " +#~ "model and possible mutations on the " +#~ "base model." +#~ msgstr "" + +#~ msgid "Define Base Model" +#~ msgstr "" + +#~ msgid "" +#~ "Defining a base model is almost " +#~ "the same as defining a PyTorch (or" +#~ " TensorFlow) model." +#~ msgstr "" + +#~ msgid "Below is a very simple example of defining a base model." +#~ msgstr "" + +#~ msgid "Define Model Variations" +#~ msgstr "" + +#~ msgid "" +#~ "A base model is only one concrete" +#~ " model not a model space. We " +#~ "provide :doc:`API and Primitives " +#~ "` for users to express" +#~ " how the base model can be " +#~ "mutated. That is, to build a model" +#~ " space which includes many models." +#~ msgstr "" + +#~ msgid "Based on the above base model, we can define a model space as below." +#~ msgstr "" + +#~ msgid "This results in the following code:" +#~ msgstr "" + +#~ msgid "" +#~ "This example uses two mutation APIs, " +#~ ":class:`nn.LayerChoice ` " +#~ "and :func:`nni.choice`. :class:`nn.LayerChoice " +#~ "` takes a list " +#~ "of candidate modules (two in this " +#~ "example), one will be chosen for " +#~ "each sampled model. It can be used" +#~ " like normal PyTorch module. " +#~ ":func:`nni.choice` is used as parameter " +#~ "of `MutableDropout`, which then takes " +#~ "the result as dropout rate." +#~ msgstr "" + +#~ msgid "" +#~ "More detailed API description and usage" +#~ " can be found :doc:`here " +#~ "`." +#~ msgstr "" + +#~ msgid "" +#~ "We are actively enriching the mutation" +#~ " APIs, to facilitate easy construction " +#~ "of model space. If the currently " +#~ "supported mutation APIs cannot express " +#~ "your model space, please refer to " +#~ ":doc:`this doc ` for customizing" +#~ " mutators." +#~ msgstr "" + +#~ msgid "Explore the Defined Model Space" +#~ msgstr "" + +#~ msgid "" +#~ "There are basically two exploration " +#~ "approaches: (1) search by evaluating " +#~ "each sampled model independently, which " +#~ "is the search approach in :ref" +#~ ":`multi-trial NAS ` " +#~ "and (2) one-shot weight-sharing " +#~ "based search, which is used in " +#~ "one-shot NAS. We demonstrate the " +#~ "first approach in this tutorial. Users" +#~ " can refer to :ref:`here ` for the second approach." +#~ msgstr "" + +#~ msgid "" +#~ "First, users need to pick a proper" +#~ " exploration strategy to explore the " +#~ "defined model space. Second, users need" +#~ " to pick or customize a model " +#~ "evaluator to evaluate the performance of" +#~ " each explored model." +#~ msgstr "" + +#~ msgid "Pick an exploration strategy" +#~ msgstr "" + +#~ msgid "" +#~ "NNI NAS supports many :doc:`exploration " +#~ "strategies `." +#~ msgstr "" + +#~ msgid "Simply choosing (i.e., instantiate) an exploration strategy as below." +#~ msgstr "" + +#~ msgid "Pick or customize a model evaluator" +#~ msgstr "" + +#~ msgid "" +#~ "In the exploration process, the " +#~ "exploration strategy repeatedly generates new" +#~ " models. A model evaluator is for " +#~ "training and validating each generated " +#~ "model to obtain the model's performance." +#~ " The performance is sent to the " +#~ "exploration strategy for the strategy to" +#~ " generate better models." +#~ msgstr "" + +#~ msgid "" +#~ "NNI NAS has provided :doc:`built-in " +#~ "model evaluators `, but to " +#~ "start with, it is recommended to " +#~ "use :class:`FunctionalEvaluator " +#~ "`, that is, " +#~ "to wrap your own training and " +#~ "evaluation code with one single " +#~ "function. This function should receive " +#~ "one single model class and uses " +#~ ":func:`nni.report_final_result` to report the " +#~ "final score of this model." +#~ msgstr "" + +#~ msgid "" +#~ "An example here creates a simple " +#~ "evaluator that runs on MNIST dataset," +#~ " trains for 2 epochs, and reports " +#~ "its validation accuracy." +#~ msgstr "" + +#~ msgid "Create the evaluator" +#~ msgstr "" + +#~ msgid "" +#~ "The ``train_epoch`` and ``test_epoch`` here" +#~ " can be any customized function, " +#~ "where users can write their own " +#~ "training recipe." +#~ msgstr "" + +#~ msgid "" +#~ "It is recommended that the " +#~ "``evaluate_model`` here accepts no additional" +#~ " arguments other than ``model``. However," +#~ " in the :doc:`advanced tutorial " +#~ "`, we will show how to" +#~ " use additional arguments in case you" +#~ " actually need those. In future, we" +#~ " will support mutation on the " +#~ "arguments of evaluators, which is " +#~ "commonly called \"Hyper-parameter tuning\"." +#~ msgstr "" + +#~ msgid "Launch an Experiment" +#~ msgstr "" + +#~ msgid "" +#~ "After all the above are prepared, " +#~ "it is time to start an experiment" +#~ " to do the model search. An " +#~ "example is shown below." +#~ msgstr "" + +#~ msgid "" +#~ "Different from HPO experiment, NAS " +#~ "experiment will generate an experiment " +#~ "config automatically. It should work for" +#~ " most cases. For example, when using" +#~ " multi-trial strategies, local training " +#~ "service with concurrency 1 will be " +#~ "used by default. Users can customize " +#~ "the config. For example," +#~ msgstr "" + +#~ msgid "" +#~ "Remember to set the following config " +#~ "if you want to GPU. ``use_active_gpu``" +#~ " should be set true if you wish" +#~ " to use an occupied GPU (possibly " +#~ "running a GUI)::" +#~ msgstr "" + +#~ msgid "" +#~ "Launch the experiment. The experiment " +#~ "should take several minutes to finish" +#~ " on a workstation with 2 GPUs." +#~ msgstr "" + +#~ msgid "" +#~ "Users can also run NAS Experiment " +#~ "with :doc:`different training services " +#~ "` besides ``local``" +#~ " training service." +#~ msgstr "" + +#~ msgid "Visualize the Experiment" +#~ msgstr "" + +#~ msgid "" +#~ "Users can visualize their experiment in" +#~ " the same way as visualizing a " +#~ "normal hyper-parameter tuning experiment. " +#~ "For example, open ``localhost:8081`` in " +#~ "your browser, 8081 is the port " +#~ "that you set in ``exp.run``. Please " +#~ "refer to :doc:`here " +#~ "` for details." +#~ msgstr "" + +#~ msgid "" +#~ "We support visualizing models with " +#~ "3rd-party visualization engines (like " +#~ "`Netron `__). This can be" +#~ " used by clicking ``Visualization`` in " +#~ "detail panel for each trial. Note " +#~ "that current visualization is based on" +#~ " `onnx `__ , thus " +#~ "visualization is not feasible if the " +#~ "model cannot be exported into onnx." +#~ msgstr "" + +#~ msgid "" +#~ "Built-in evaluators (e.g., Classification) " +#~ "will automatically export the model into" +#~ " a file. For your own evaluator, " +#~ "you need to save your file into" +#~ " ``$NNI_OUTPUT_DIR/model.onnx`` to make this " +#~ "work. For instance," +#~ msgstr "" + +#~ msgid "Relaunch the experiment, and a button is shown on Web portal." +#~ msgstr "" + +#~ msgid "Export Top Models" +#~ msgstr "" + +#~ msgid "" +#~ "Users can export top models after " +#~ "the exploration is done using " +#~ "``export_top_models``." +#~ msgstr "" + +#~ msgid "**Total running time of the script:** ( 13 minutes 8.330 seconds)" +#~ msgstr "" + +#~ msgid ":download:`Download Python source code: hello_nas.py `" +#~ msgstr "" + +#~ msgid "" +#~ ":download:`Download Jupyter notebook: " +#~ "hello_nas.ipynb `" +#~ msgstr "" + diff --git a/docs/source/nas/advanced_usage.rst b/docs/source/nas/advanced_usage.rst index 7cce6fcf1..ac024311f 100644 --- a/docs/source/nas/advanced_usage.rst +++ b/docs/source/nas/advanced_usage.rst @@ -7,6 +7,5 @@ Advanced Usage execution_engine hardware_aware_nas mutator - customize_strategy serialization benchmarks_toctree diff --git a/docs/source/nas/benchmarks.rst b/docs/source/nas/benchmarks.rst index 016ccbfb6..c76cf90f9 100644 --- a/docs/source/nas/benchmarks.rst +++ b/docs/source/nas/benchmarks.rst @@ -14,38 +14,18 @@ Prerequisites Data Preparation ---------------- -Option 1 (Recommended) -^^^^^^^^^^^^^^^^^^^^^^ - You can download the preprocessed benchmark files via ``python -m nni.nas.benchmark.download ``, where ```` can be ``nasbench101``, ``nasbench201``, and etc. Add ``--help`` to the command for supported command line arguments. -Option 2 -^^^^^^^^ - -.. note:: If you have files that are processed before v2.5, it is recommended that you delete them and try option 1. - -#. Clone NNI to your machine and enter ``examples/nas/benchmarks`` directory. - - .. code-block:: bash - - git clone -b ${NNI_VERSION} https://github.com/microsoft/nni - cd nni/examples/nas/benchmarks - - Replace ``${NNI_VERSION}`` with a released version name or branch name, e.g., ``v2.4``. - -#. Install dependencies via ``pip3 install -r xxx.requirements.txt``. ``xxx`` can be ``nasbench101``, ``nasbench201`` or ``nds``. - -#. Generate the database via ``./xxx.sh``. The directory that stores the benchmark file can be configured with ``NASBENCHMARK_DIR`` environment variable, which defaults to ``~/.nni/nasbenchmark``. Note that the NAS-Bench-201 dataset will be downloaded from a google drive. - -Please make sure there is at least 10GB free disk space and note that the conversion process can take up to hours to complete. - Example Usages -------------- -Please refer to :doc:`examples usages of Benchmarks API `. +Please refer to :githublink:`test/algo/nas/benchmark/test_algo.py` on how to test algorithms on NAS benchmarks. + +Supported benchmarks +-------------------- NAS-Bench-101 -------------- +^^^^^^^^^^^^^ * `Paper link `__ * `Open-source `__ @@ -54,10 +34,8 @@ NAS-Bench-101 contains 423,624 unique neural networks, combined with 4 variation Notably, NAS-Bench-101 eliminates invalid cells (e.g., there is no path from input to output, or there is redundant computation). Furthermore, isomorphic cells are de-duplicated, i.e., all the remaining cells are computationally unique. -See :doc:`example usages ` and :ref:`API references `. - NAS-Bench-201 -------------- +^^^^^^^^^^^^^ * `Paper link `__ * `Open-source API `__ @@ -65,10 +43,8 @@ NAS-Bench-201 NAS-Bench-201 is a cell-wise search space that views nodes as tensors and edges as operators. The search space contains all possible densely-connected DAGs with 4 nodes, resulting in 15,625 candidates in total. Each operator (i.e., edge) is selected from a pre-defined operator set (\ ``NONE``, ``SKIP_CONNECT``, ``CONV_1X1``, ``CONV_3X3`` and ``AVG_POOL_3X3``\ ). Training appraoches vary in the dataset used (CIFAR-10, CIFAR-100, ImageNet) and number of epochs scheduled (12 and 200). Each combination of architecture and training approach is repeated 1 - 3 times with different random seeds. -See :doc:`example usages ` and :ref:`API references `. - NDS ---- +^^^ * `Paper link `__ * `Open-source `__ @@ -82,4 +58,6 @@ Here is a list of available operators used in NDS. .. automodule:: nni.nas.benchmark.nds.constants :noindex: -See :doc:`example usages ` and :ref:`API references `. +.. warning:: + + NDS benchmark doesn't support benchmarking with existing algorithms because the authors only released a subset of data points in the search space. Benchmarking on NDS is a work in progress. diff --git a/docs/source/nas/construct_space.rst b/docs/source/nas/construct_space.rst index f8c4f3822..2be594e5f 100644 --- a/docs/source/nas/construct_space.rst +++ b/docs/source/nas/construct_space.rst @@ -3,7 +3,7 @@ Construct Model Space NNI provides powerful (and multi-level) APIs for users to easily express model space (or search space). -* *Mutation Primitives*: high-level APIs (e.g., ValueChoice, LayerChoice) that are utilities to build blocks in search space. In most cases, mutation pritimives should be straightforward yet expressive enough. **We strongly recommend users to try them first,** and report issues if those APIs are not satisfying. +* *Mutation Primitives*: high-level APIs (e.g., LayerChoice) that are utilities to build blocks in search space. In most cases, mutation pritimives should be straightforward yet expressive enough. **We strongly recommend users to try them first,** and report issues if those APIs are not satisfying. * *Hyper-module Library*: plug-and-play modules that are proved useful. They are usually well studied in research, and comes with pre-searched results. (For example, the optimal activation function in `AutoActivation `__ is reported to be `Swish `__). * *Mutator*: for advanced users only. NNI provides interface to customize new mutators for expressing more complicated model spaces. @@ -16,30 +16,33 @@ The following table summarizes all the APIs we have provided for constructing se * - Name - Category - Brief Description - * - :class:`LayerChoice ` - - :ref:`Mutation Primitives ` + * - :class:`~nni.nas.nn.pytorch.ModelSpace` + - Mutation Primitives + - All model spaces should inherit this class + * - :class:`~nni.nas.nn.pytorch.ParametrizedModule` + - Mutation Primitives + - Modules with mutable parameters should inherit this class + * - :class:`LayerChoice ` + - Mutation Primitives - Select from some PyTorch modules - * - :class:`InputChoice ` - - :ref:`Mutation Primitives ` + * - :class:`InputChoice ` + - Mutation Primitives - Select from some inputs (tensors) - * - :class:`ValueChoice ` - - :ref:`Mutation Primitives ` - - Select from some candidate values - * - :class:`Repeat ` - - :ref:`Mutation Primitives ` + * - :class:`Repeat ` + - Mutation Primitives - Repeat a block by a variable number of times - * - :class:`Cell ` - - :ref:`Mutation Primitives ` + * - :class:`Cell ` + - Mutation Primitives - Cell structure popularly used in literature - * - :class:`NasBench101Cell ` - - :ref:`Mutation Primitives ` + * - :class:`NasBench101Cell ` + - Mutation Primitives - Cell structure (variant) proposed by NAS-Bench-101 - * - :class:`NasBench201Cell ` - - :ref:`Mutation Primitives ` + * - :class:`NasBench201Cell ` + - Mutation Primitives - Cell structure (variant) proposed by NAS-Bench-201 - * - :class:`AutoActivation ` - - :ref:`Hyper-modules Library ` + * - :class:`AutoActivation ` + - Hyper-modules library - Searching for activation functions - * - :class:`Mutator ` + * - :class:`Mutator ` - :doc:`Mutator ` - Flexible mutations on graphs. :doc:`See tutorial here ` diff --git a/docs/source/nas/customize_strategy.rst b/docs/source/nas/customize_strategy.rst deleted file mode 100644 index 636e439bc..000000000 --- a/docs/source/nas/customize_strategy.rst +++ /dev/null @@ -1,98 +0,0 @@ -Customize Exploration Strategy -============================== - -Customize Multi-trial Strategy ------------------------------- - -If users want to innovate a new exploration strategy, they can easily customize a new one following the interface provided by NNI. Specifically, users should inherit the base strategy class :class:`nni.retiarii.strategy.BaseStrategy`, then implement the member function ``run``. This member function takes ``base_model`` and ``applied_mutators`` as its input arguments. It can simply apply the user specified mutators in ``applied_mutators`` onto ``base_model`` to generate a new model. When a mutator is applied, it should be bound with a sampler (e.g., ``RandomSampler``). Every sampler implements the ``choice`` function which chooses value(s) from candidate values. The ``choice`` functions invoked in mutators are executed with the sampler. - -Below is a very simple random strategy, which makes the choices completely random. - -.. code-block:: python - - from nni.retiarii import Sampler - - class RandomSampler(Sampler): - def choice(self, candidates, mutator, model, index): - return random.choice(candidates) - - class RandomStrategy(BaseStrategy): - def __init__(self): - self.random_sampler = RandomSampler() - - def run(self, base_model, applied_mutators): - _logger.info('stargety start...') - while True: - avail_resource = query_available_resources() - if avail_resource > 0: - model = base_model - _logger.info('apply mutators...') - _logger.info('mutators: %s', str(applied_mutators)) - for mutator in applied_mutators: - mutator.bind_sampler(self.random_sampler) - model = mutator.apply(model) - # run models - submit_models(model) - else: - time.sleep(2) - -You can find that this strategy does not know the search space beforehand, it passively makes decisions every time ``choice`` is invoked from mutators. If a strategy wants to know the whole search space before making any decision (e.g., TPE, SMAC), it can use ``dry_run`` function provided by ``Mutator`` to obtain the space. An example strategy can be found :githublink:`here `. - -After generating a new model, the strategy can use our provided APIs (e.g., :func:`nni.retiarii.execution.submit_models`, :func:`nni.retiarii.execution.is_stopped_exec`) to submit the model and get its reported results. - -Customize a New One-shot Trainer (legacy) ------------------------------------------ - -One-shot trainers should inherit :class:`nni.retiarii.oneshot.BaseOneShotTrainer`, and need to implement ``fit()`` (used to conduct the fitting and searching process) and ``export()`` method (used to return the searched best architecture). - -Writing a one-shot trainer is very different to single-arch evaluator. First of all, there are no more restrictions on init method arguments, any Python arguments are acceptable. Secondly, the model fed into one-shot trainers might be a model with Retiarii-specific modules, such as LayerChoice and InputChoice. Such model cannot directly forward-propagate and trainers need to decide how to handle those modules. - -A typical example is DartsTrainer, where learnable-parameters are used to combine multiple choices in LayerChoice. Retiarii provides ease-to-use utility functions for module-replace purposes, namely :meth:`nni.retiarii.oneshot.pytorch.utils.replace_layer_choice`, :meth:`nni.retiarii.oneshot.pytorch.utils.replace_input_choice`. A simplified example is as follows: - -.. code-block:: python - - from nni.retiarii.oneshot import BaseOneShotTrainer - from nni.retiarii.oneshot.pytorch.utils import replace_layer_choice, replace_input_choice - - - class DartsLayerChoice(nn.Module): - def __init__(self, layer_choice): - super(DartsLayerChoice, self).__init__() - self.name = layer_choice.label - self.op_choices = nn.ModuleDict(layer_choice.named_children()) - self.alpha = nn.Parameter(torch.randn(len(self.op_choices)) * 1e-3) - - def forward(self, *args, **kwargs): - op_results = torch.stack([op(*args, **kwargs) for op in self.op_choices.values()]) - alpha_shape = [-1] + [1] * (len(op_results.size()) - 1) - return torch.sum(op_results * F.softmax(self.alpha, -1).view(*alpha_shape), 0) - - - class DartsTrainer(BaseOneShotTrainer): - - def __init__(self, model, loss, metrics, optimizer): - self.model = model - self.loss = loss - self.metrics = metrics - self.num_epochs = 10 - - self.nas_modules = [] - replace_layer_choice(self.model, DartsLayerChoice, self.nas_modules) - - ... # init dataloaders and optimizers - - def fit(self): - for i in range(self.num_epochs): - for (trn_X, trn_y), (val_X, val_y) in zip(self.train_loader, self.valid_loader): - self.train_architecture(val_X, val_y) - self.train_model_weight(trn_X, trn_y) - - @torch.no_grad() - def export(self): - result = dict() - for name, module in self.nas_modules: - if name not in result: - result[name] = select_best_of_module(module) - return result - -The full code of DartsTrainer is available to Retiarii source code. Please have a check at :githublink:`DartsTrainer `. diff --git a/docs/source/nas/evaluator.rst b/docs/source/nas/evaluator.rst index 8ab7f7d19..c8b74888b 100644 --- a/docs/source/nas/evaluator.rst +++ b/docs/source/nas/evaluator.rst @@ -8,15 +8,14 @@ A model evaluator is for training and validating each generated model. They are Customize Evaluator with Any Function ------------------------------------- -The simplest way to customize a new evaluator is with :class:`~nni.retiarii.evaluator.FunctionalEvaluator`, which is very easy when training code is already available. Users only need to write a fit function that wraps everything, which usually includes training, validating and testing of a single model. This function takes one positional arguments (``model_cls``) and possible keyword arguments. The keyword arguments (other than ``model_cls``) are fed to :class:`~nni.retiarii.evaluator.FunctionalEvaluator` as its initialization parameters (note that they will be :doc:`serialized <./serialization>`). In this way, users get everything under their control, but expose less information to the framework and as a result, further optimizations like :ref:`CGO ` might be not feasible. An example is as belows: +The simplest way to customize a new evaluator is with :class:`~nni.nas.evaluator.FunctionalEvaluator`, which is very easy when training code is already available. Users only need to write a fit function that wraps everything, which usually includes training, validating and testing of a single model. This function takes one positional arguments (``model``) and possible keyword arguments. The keyword arguments (other than ``model``) are fed to :class:`~nni.nas.evaluator.FunctionalEvaluator` as its initialization parameters (note that they will be :doc:`serialized <./serialization>`). In this way, users get everything under their control, but expose less information to the framework and as a result, further optimizations like :ref:`CGO ` might be not feasible. An example is as belows: .. code-block:: python - from nni.retiarii.evaluator import FunctionalEvaluator - from nni.retiarii.experiment.pytorch import RetiariiExperiment + from nni.nas.evaluator import FunctionalEvaluator + from nni.nas.experiment import NasExperiment - def fit(model_cls, dataloader): - model = model_cls() + def fit(model, dataloader): train(model, dataloader) acc = test(model, dataloader) nni.report_final_result(acc) @@ -24,7 +23,11 @@ The simplest way to customize a new evaluator is with :class:`~nni.retiarii.eval # The dataloader will be serialized, thus ``nni.trace`` is needed here. # See serialization tutorial for more details. evaluator = FunctionalEvaluator(fit, dataloader=nni.trace(DataLoader)(foo, bar)) - experiment = RetiariiExperiment(base_model, evaluator, mutators, strategy) + experiment = NasExperiment(base_model, lightning, strategy) + +.. note:: + + Different from the legacy Retiarii FunctionEvaluator, the new FunctionalEvaluator now accepts model instance as the first argument, rather than ``model_cls``. This makes it more intuitive and easier to use. .. tip:: @@ -32,8 +35,7 @@ The simplest way to customize a new evaluator is with :class:`~nni.retiarii.eval .. code-block:: python - def fit(model_cls): - model = model_cls() + def fit(model): onnx_path = Path(os.environ.get('NNI_OUTPUT_DIR', '.')) / 'model.onnx' onnx_path.parent.mkdir(exist_ok=True) dummy_input = torch.randn(10, 3, 224, 224) @@ -54,28 +56,35 @@ The usage is shown below: .. code-block:: python - # Class definition of single model, for example, ResNet. - class SingleModel(nn.Module): - def __init__(): # Can't have init parameters here. - ... + # Class definition of a model space, for example, ResNet. + class MyModelSpace(ModelSpace): + ... - # Use a callable returning a model - evaluator.evaluate(SingleModel) - # Or initialize the model beforehand - evaluator.evaluate(SingleModel()) + # Mock a model instance + from nni.nas.space import RawFormatModelSpace + model_container = RawFormatModelSpace.from_model(MyModelSpace()) -The underlying implementation of :meth:`~nni.retiarii.Evaluator.evaluate` depends on concrete evaluator that you used. -For example, if :class:`~nni.retiarii.evaluator.FunctionalEvaluator` is used, it will run your customized fit function. -If lightning evaluators like :class:`nni.retiarii.evaluator.pytorch.Classification` are used, it will invoke the ``trainer.fit()`` of Lightning. + # Randomly sample a model + model = model_container.random() -To evaluate an architecture that is exported from experiment (i.e., from :meth:`~nni.retiarii.experiment.pytorch.RetiariiExperiment.export_top_models`), use :func:`nni.retiarii.fixed_arch` to instantiate the exported model:: + # Mock a runtime so that `nni.get_next_parameter` and `nni.report_xxx_result` will work. + with evaluator.mock_runtime(model): + evaluator.evaluate(model.executable_model()) - with fixed_arch(exported_model): - model = ModelSpace() +The underlying implementation of :meth:`~nni.nas.Evaluator.evaluate` depends on concrete evaluator that you used. +For example, if :class:`~nni.nas.evaluator.FunctionalEvaluator` is used, it will run your customized fit function. +If lightning evaluators like :class:`nni.nas.evaluator.pytorch.Classification` are used, it will invoke the ``trainer.fit()`` of Lightning. + +To evaluate an architecture that is exported from experiment (i.e., from :meth:`~nni.nas.experiment.NasExperiment.export_top_models`), use :func:`nni.nas.space.model_context` to instantiate the exported model:: + + with model_context(exported_model_dict): + model = MyModelSpace() # Then use evaluator.evaluate evaluator.evaluate(model) -.. tip:: There is a way to port the trained checkpoint of super-net produced by one-shot strategies, to the concrete chosen architecture, thanks to :func:`nni.retiarii.utils.original_state_dict_hooks`. This is helpful in implementing recent multi-stage NAS algorithms like `SPOS `__. +Another way of doing this is probably using ``freeze`` API. It will also preserve the weights at best effort if the model space has been mutated by one-shot strategies:: + + MyModelSpace().freeze(exported_model_dict) .. _lightning-evaluator: @@ -85,21 +94,21 @@ Evaluators with PyTorch-Lightning Use Built-in Evaluators ^^^^^^^^^^^^^^^^^^^^^^^ -NNI provides some commonly used model evaluators for users' convenience. These evaluators are built upon the awesome library PyTorch-Lightning. Read the :doc:`reference ` for their detailed usages. +NNI provides some commonly used model evaluators for users' convenience. These evaluators are built upon the awesome library PyTorch-Lightning. Read the :doc:`reference ` for their detailed usages. -* :class:`nni.retiarii.evaluator.pytorch.Classification`: for classification tasks. -* :class:`nni.retiarii.evaluator.pytorch.Regression`: for regression tasks. +* :class:`nni.nas.evaluator.pytorch.Classification`: for classification tasks. +* :class:`nni.nas.evaluator.pytorch.Regression`: for regression tasks. We recommend to read the :doc:`serialization tutorial ` before using these evaluators. A few notes to summarize the tutorial: -1. :class:`nni.retiarii.evaluator.pytorch.DataLoader` should be used in place of ``torch.utils.data.DataLoader``. +1. :class:`nni.nas.evaluator.pytorch.DataLoader` should be used in place of ``torch.utils.data.DataLoader``. 2. The datasets used in data-loader should be decorated with :meth:`nni.trace` recursively. For example, .. code-block:: python - import nni.retiarii.evaluator.pytorch.lightning as pl + import nni.nas.evaluator.pytorch.lightning as pl from torchvision import transforms transform = nni.trace(transforms.Compose, [nni.trace(transforms.ToTensor()), nni.trace(transforms.Normalize, (0.1307,), (0.3081,))]) @@ -116,13 +125,13 @@ Customize Evaluator with PyTorch-Lightning Another approach is to write training code in PyTorch-Lightning style, that is, to write a LightningModule that defines all elements needed for training (e.g., loss function, optimizer) and to define a trainer that takes (optional) dataloaders to execute the training. Before that, please read the `document of PyTorch-lightning `__ to learn the basic concepts and components provided by PyTorch-lightning. -In practice, writing a new training module in Retiarii should inherit :class:`nni.retiarii.evaluator.pytorch.LightningModule`, which has a ``set_model`` that will be called after ``__init__`` to save the candidate model (generated by strategy) as ``self.model``. The rest of the process (like ``training_step``) should be the same as writing any other lightning module. Evaluators should also communicate with strategies via two API calls (:meth:`nni.report_intermediate_result` for periodical metrics and :meth:`nni.report_final_result` for final metrics), added in ``on_validation_epoch_end`` and ``teardown`` respectively. +In practice, writing a new training module in nas should inherit :class:`nni.nas.evaluator.pytorch.LightningModule`, which has a ``set_model`` that will be called after ``__init__`` to save the candidate model (generated by strategy) as ``self.model``. The rest of the process (like ``training_step``) should be the same as writing any other lightning module. Evaluators should also communicate with strategies via two API calls (:meth:`nni.report_intermediate_result` for periodical metrics and :meth:`nni.report_final_result` for final metrics), added in ``on_validation_epoch_end`` and ``teardown`` respectively. An example is as follows: .. code-block:: python - from nni.retiarii.evaluator.pytorch.lightning import LightningModule # please import this one + from nni.nas.evaluator.pytorch.lightning import LightningModule # please import this one @nni.trace class AutoEncoder(LightningModule): @@ -173,15 +182,15 @@ An example is as follows: If you are trying to use your customized evaluator with one-shot strategy, bear in mind that your defined methods will be reassembled into another LightningModule, which might result in extra constraints when writing the LightningModule. For example, your validation step could appear else where (e.g., in ``training_step``). This prohibits you from returning arbitrary object in ``validation_step``. -Then, users need to wrap everything (including LightningModule, trainer and dataloaders) into a :class:`nni.retiarii.evaluator.pytorch.Lightning` object, and pass this object into a Retiarii experiment. +Then, users need to wrap everything (including LightningModule, trainer and dataloaders) into a :class:`nni.nas.evaluator.pytorch.Lightning` object, and pass this object into a nas experiment. .. code-block:: python - import nni.retiarii.evaluator.pytorch.lightning as pl - from nni.retiarii.experiment.pytorch import RetiariiExperiment + import nni.nas.evaluator.pytorch.lightning as pl + from nni.nas.experiment import NasExperiment lightning = pl.Lightning(AutoEncoder(), pl.Trainer(max_epochs=10), train_dataloaders=pl.DataLoader(train_dataset, batch_size=100), val_dataloaders=pl.DataLoader(test_dataset, batch_size=100)) - experiment = RetiariiExperiment(base_model, lightning, mutators, strategy) + experiment = NasExperiment(base_model, lightning, strategy) diff --git a/docs/source/nas/execution_engine.rst b/docs/source/nas/execution_engine.rst index a4aee09ed..d04f48dd6 100644 --- a/docs/source/nas/execution_engine.rst +++ b/docs/source/nas/execution_engine.rst @@ -1,110 +1,83 @@ -Execution Engines -================= +Execution Engine and Model Format +================================= -Execution engine is for running Retiarii Experiment. NNI supports three execution engines, users can choose a specific engine according to the type of their model mutation definition and their requirements for cross-model optimizations. +After a model space and strategy has been prepared, NNI will be responsible for spawning trials and exploring the model space. Specifically, NNI will first convert the model space into a special **model format** so that it becomes easier to mutate / explore. Then the mutated models will be sent to **execution engines** for running. -* **Pure-python execution engine** is the default engine, it supports the model space expressed by :doc:`mutation primitives `. +We list the model formats currently supported. -* **Graph-based execution engine** supports the use of :doc:`mutation primitives ` and model spaces represented by :doc:`mutators `. It requires the user's model to be parsed by `TorchScript `__. +* **Raw format**: It's default for one-shot strategy. It directly operates on the raw model space. This should be used when the model space is attached to a set of weights and the weights are intended to be kept / inherited. +* **Simplified format**: It's default for multi-trial strategy. It converts the model space to a dict of mutables, so that strategy will not need to mutate the dict when creating new models. This will be extremely memory efficient, but all weights and states on the model will be lost when instanting the new model. +* **Graph format**: Converting the model to a graph representation (called graph IR) using `TorchScript `__. Each mutation on the model space will be reflected as an node/edge operation on the graph. See :doc:`mutation primitives ` and :doc:`mutators ` for details. -* **CGO execution engine** has the same requirements and capabilities as the **Graph-based execution engine**. But further enables cross-model optimizations, which makes model space exploration faster. +NNI supports two execution engines, along with one execution engine middleware: -.. _pure-python-execution-engine: +* **Training service execution engine** is the default engine for multi-trial strategy. It will spawn the trials concurrently and the trials will run by :doc:`NNI training service `. +* **Sequential execution engine** is the default engine for one-shot strategy. It will run the trials in the current process. The trials will run sequentially without parallelism. It's also good for debugging multi-trial strategies. +* **Cross-graph optimization middleware** experimentally supports cross-model optimizations, which makes model space exploration faster. It is only compatible with graph format above. -Pure-python Execution Engine ----------------------------- +Execution engine and model format are configurable via :class:`~nni.nas.experiment.NasExperimentConfig`. If not configured, it will be automatically inferred based on the settings of your model space and choice of exploration strategy. In most cases, the default setting should work well. -Pure-python Execution Engine is the default engine, we recommend users to keep using this execution engine, if they are new to NNI NAS. Pure-python execution engine plays magic within the scope of inline mutation APIs, while does not touch the rest of user model. Thus, it has minimal requirement on user model. +.. tip:: -Rememeber to add :meth:`nni.retiarii.model_wrapper` decorator outside the whole PyTorch model before using this engine. + The legacy graph-based execution engine is identical to training service engine + graph format now. -.. note:: You should always use ``super().__init__()`` instead of ``super(MyNetwork, self).__init__()`` in the PyTorch model, because the latter one has issues with model wrapper. +Advanced Usages +--------------- -.. _graph-based-execution-engine: +Graph-based Model Format +"""""""""""""""""""""""" -Graph-based Execution Engine ----------------------------- +Graph model format converts user-defined model to a graph representation (called graph IR) using `TorchScript `__, each instantiated module in the model is converted to a subgraph. Then mutations are applied to the graph to generate new graphs. Each new graph is then converted back to PyTorch code and executed on the user specified training service. -For graph-based execution engine, it converts user-defined model to a graph representation (called graph IR) using `TorchScript `__, each instantiated module in the model is converted to a subgraph. Then mutations are applied to the graph to generate new graphs. Each new graph is then converted back to PyTorch code and executed on the user specified training service. - -Users may find ``@basic_unit`` helpful in some cases. :meth:`nni.retiarii.basic_unit` here means the module will not be converted to a subgraph, instead, it is converted to a single graph node as a basic unit. - -``@basic_unit`` is usually used in the following cases: - -* When users want to tune initialization parameters of a module using :class:`nni.retiarii.nn.pytorch.ValueChoice`, then decorate the module with ``@basic_unit``. For example, ``self.conv = MyConv(kernel_size=nn.ValueChoice([1, 3, 5]))``, here ``MyConv`` should be decorated. - -* When a module cannot be successfully parsed to a subgraph, decorate the module with ``@basic_unit``. The parse failure could be due to complex control flow. Currently Retiarii does not support adhoc loop, if there is adhoc loop in a module's forward, this class should be decorated as serializable module. For example, the following ``MyModule`` should be decorated. +Users may find ``_nni_basic_unit`` of :class:`~nni.nas.nn.pytorch.ParameterizedModule` helpful in some cases. ``_nni_basic_unit`` here means the module will not be converted to a subgraph, instead, it is converted to a single graph node as a basic unit. When a module cannot be successfully parsed to a subgraph, please inherit :class:`~nni.nas.nn.pytorch.ParameterizedModule`, which will automatically enable ``_nni_basic_unit``. The parse failure could be due to complex control flow. Currently Retiarii does not support adhoc loop, if there is adhoc loop in a module's forward, this class should be decorated as serializable module. For example, the following ``MyModule`` should be a basic unit. .. code-block:: python - @basic_unit - class MyModule(nn.Module): + class MyModule(ParameterizedModule): def __init__(self): ... def forward(self, x): for i in range(10): # <- adhoc loop ... -* Some inline mutation APIs require their handled module to be decorated with ``@basic_unit``. For example, user-defined module that is provided to :class:`nni.retiarii.nn.pytorch.LayerChoice` as a candidate op should be decorated. - -Three steps are need to use graph-based execution engine. - -1. Remove ``@nni.retiarii.model_wrapper`` if there is any in your model. -2. Add ``config.execution_engine = 'base'`` to :class:`nni.retiarii.experiment.pytorch.RetiariiExeConfig`. The default value of ``execution_engine`` is 'py', which means pure-python execution engine. -3. Add ``@basic_unit`` when necessary following the above guidelines. +* Some inline mutation APIs require their handled module to be a basic unit. For example, user-defined module that is provided to :class:`~nni.nas.nn.pytorch.LayerChoice` as a candidate op should be basic units. For exporting top models, graph-based execution engine supports exporting source code for top models by running ``exp.export_top_models(formatter='code')``. .. _cgo-execution-engine: -CGO Execution Engine (experimental) ------------------------------------ +Cross Graph Optimization (experimental) +""""""""""""""""""""""""""""""""""""""" -CGO (Cross-Graph Optimization) execution engine does cross-model optimizations based on the graph-based execution engine. In CGO execution engine, multiple models could be merged and trained together in one trial. -Currently, it only supports ``DedupInputOptimizer`` that can merge graphs sharing the same dataset to only loading and pre-processing each batch of data once, which can avoid bottleneck on data loading. +CGO (Cross-Graph Optimization) middleware does cross-model optimizations based on the graph-based model format. With CGO, multiple models could be merged and trained together in one trial. Currently, it only supports ``DedupInputOptimizer`` that can merge graphs sharing the same dataset to only loading and pre-processing each batch of data once, which can avoid bottleneck on data loading. .. note :: To use CGO engine, PyTorch Lightning >= 1.6.1 is required. To enable CGO execution engine, you need to follow these steps: -1. Create RetiariiExeConfig with remote training service. CGO execution engine currently only supports remote training service. -2. Add configurations for remote training service -3. Add configurations for CGO engine +1. Use training service engine. +2. Set training service to remote training service. CGO middleware currently only supports remote training service. .. code-block:: python - exp = RetiariiExperiment(base_model, trainer, mutators, strategy) - config = RetiariiExeConfig('remote') - + exp = NasExperiment(base_model, evaluator, strategy, config=NasExperimentConfig('cgo', 'graph', 'remote')) # ... - # other configurations of RetiariiExeConfig + # other configurations of NasExperimentConfig - config.execution_engine = 'cgo' # set execution engine to CGO config.max_concurrency_cgo = 3 # the maximum number of concurrent models to merge - config.batch_waiting_time = 10 # how many seconds CGO execution engine should wait before optimizing a new batch of models + config.batch_waiting_time = 10 # how many seconds CGO should wait before optimizing a new batch of models rm_conf = RemoteMachineConfig() # ... # server configuration in rm_conf - rm_conf.gpu_indices = [0, 1, 2, 3] # gpu_indices must be set in RemoteMachineConfig for CGO execution engine + rm_conf.gpu_indices = [0, 1, 2, 3] # gpu_indices must be set in RemoteMachineConfig for CGO config.training_service.machine_list = [rm_conf] exp.run(config, 8099) -CGO Execution Engine only supports pytorch-lightning trainer that inherits :class:`nni.retiarii.evaluator.pytorch.cgo.evaluator.MultiModelSupervisedLearningModule`. -For a trial running multiple models, the trainers inheriting :class:`nni.retiarii.evaluator.pytorch.cgo.evaluator.MultiModelSupervisedLearningModule` can handle the multiple outputs from the merged model for training, test and validation. -We have already implemented two trainers: :class:`nni.retiarii.evaluator.pytorch.cgo.evaluator.Classification` and :class:`nni.retiarii.evaluator.pytorch.cgo.evaluator.Regression`. - -.. code-block:: python - - from nni.retiarii.evaluator.pytorch.cgo.evaluator import Classification - - trainer = Classification(train_dataloaders=pl.DataLoader(train_dataset, batch_size=100), - val_dataloaders=pl.DataLoader(test_dataset, batch_size=100), - max_epochs=1, limit_train_batches=0.2) - -Advanced users can also implement their own trainers by inheriting ``MultiModelSupervisedLearningModule``. +CGO middleware only supports pytorch-lightning trainer that inherits :class:`~nni.nas.execution.cgo.MultiModelLightningModule`. +For a trial running multiple models, the trainers inheriting :class:`~nni.nas.execution.cgo.MultiModelTrainer` can handle the multiple outputs from the merged model for training, test and validation. Sometimes, a mutated model cannot be executed (e.g., due to shape mismatch). When a trial running multiple models contains -a bad model, CGO execution engine will re-run each model independently in separate trials without cross-model optimizations. +a bad model, CGO will re-run each model independently in separate trials without cross-model optimizations. diff --git a/docs/source/nas/exploration_strategy.rst b/docs/source/nas/exploration_strategy.rst index ba3e49630..6fda1c634 100644 --- a/docs/source/nas/exploration_strategy.rst +++ b/docs/source/nas/exploration_strategy.rst @@ -88,8 +88,8 @@ Starting from v2.8, the usage of one-shot strategies are much alike to multi-tri exp_config.execution_engine = 'oneshot' -One-shot strategies only support a limited set of :ref:`mutation-primitives`, and does not support :doc:`customizing mutators ` at all. See the :ref:`reference ` for the detailed support list of each algorithm. +One-shot strategies only support a limited set of mutation primitives, and does not support :doc:`customizing mutators ` at all. See the :doc:`reference ` for the detailed support list of each algorithm. .. versionadded:: 2.8 - One-shot strategy is now compatible with `Lightning accelerators `__. It means that, you can accelerate one-shot strategies on hardwares like multiple GPUs. To enable this feature, you only need to pass the keyword arguments which used to be set in ``pytorch_lightning.Trainer``, to your evaluator. See :doc:`this reference ` for more details. + One-shot strategy is now compatible with `Lightning accelerators `__. It means that, you can accelerate one-shot strategies on hardwares like multiple GPUs. To enable this feature, you only need to pass the keyword arguments which used to be set in ``pytorch_lightning.Trainer``, to your evaluator. See :doc:`this reference ` for more details. diff --git a/docs/source/nas/hardware_aware_nas.rst b/docs/source/nas/hardware_aware_nas.rst index 3b95db919..bf5c4406f 100644 --- a/docs/source/nas/hardware_aware_nas.rst +++ b/docs/source/nas/hardware_aware_nas.rst @@ -1,83 +1,88 @@ Hardware-aware NAS ================== -.. This file should be rewritten as a tutorial +Hardware-aware NAS is a technique to search for architectures under the constraints of a given hardware platform. Deploying a neural network on a specific hardware is challenging because different hardwares have different preferences for operations, combinations of operations. Different use scenarios might also pose different levels of requirements. Some strict scenarios might require the networks to be smaller and faster. Our hardware-aware NAS supports searching for architectures under the constraints of latency, model size or FLOPs. This document demonstrates how to use multi-trial strategy or one-shot strategy combining those constraints. -End-to-end Multi-trial SPOS Demo +Profiler +-------- + +:class:`~nni.nas.profiler.Profiler` is designed to efficiently compute metrics like latency for models within the same model space. Specifically, it is first initialized with a model space, in which it precomputes some data, and for any sample in the model space, it can quickly give out a metric:: + + class MyModelSpace(ModelSpace): + ... + + from nni.nas.profiler.pytorch.flops import FlopsProfiler + # initialization + profiler = FlopsProfiler(net, torch.randn(3)) # randn(3) is a dummy input. It could be a tensor or a tuple of tensors. + # compute flops for a sample + flops = profiler.profile({'layer1': 'conv'}) + +NNI currently supports the following types of profilers: + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Name + - Brief Description + * - :class:`~nni.nas.profiler.pytorch.flops.FlopsProfiler` + - Profile the FLOPs of a model + * - :class:`~nni.nas.profiler.pytorch.flops.NumParamsProfiler` + - Profile the number of parameters of a model + * - :class:`~nni.nas.profiler.pytorch.nn_meter.NnMeterProfiler` + - Profile the estimated latency of a model with nn-meter + +Hardware-aware multi-trial search +--------------------------------- + +When using multi-trial strategies, the most intuitive approach to combine a hardware-aware constraint is to filter out those outside the constraints. This can be done via strategy middleware :class:`~nni.nas.strategy.middleware.Filter`. An example is as follows:: + + from nni.nas.strategy import Random + from nni.nas.strategy.middleware import Filter, Chain + from nni.nas.profiler.pytorch.flops import FlopsProfiler + + profiler = FlopsProfiler(model_space, dummy_input) + + strategy = Chain( + Random(), + Filter(lambda sample: profiler.profile(sample) < 300e6) + ) + +The example here uses a random strategy to randomly generate models, but the FLOPs is restricted to less than 300M. Models over the limitation will be directly discarded without training. :class:`~nni.nas.strategy.middleware.Filter` can be also set to a mode to return a bad metric for models out of constraint, so that the strategy can learn to avoid sampling such models. The profiler can also be replaced with any profiler listed above or customized. + +Hardware-aware one-shot strategy -------------------------------- -To empower affordable DNN on the edge and mobile devices, hardware-aware NAS searches both high accuracy and low latency models. In particular, the search algorithm only considers the models within the target latency constraints during the search process. +One-shot strategy can be also combined with metrics on hardware. There are usually two approaches. -To run this demo, first install nn-Meter by running: +The first approach is to add a special regularization term to the loss within one-shot strategy, penalizing the sampling of models that does not fit the constraints. To do this, a penalty term (either :class:`~nni.nas.oneshot.pytorch.profiler.ExpectationProfilerPenalty` for differentiable algorithms, or :class:`~nni.nas.oneshot.pytorch.profiler.SampleProfilerPenalty` for sampling-based algorithms). Example below:: -.. code-block:: bash + from nni.nas.strategy import ProxylessNAS + from nni.nas.oneshot.pytorch.profiler import ExpectationProfilerPenalty + # For sampling-based algorithms like ENAS, use `SampleProfilerPenalty` here. + # Please see the document for each algorithm for the type of penalties they have supported. - pip install nn-meter + profiler = FlopsProfiler(model_space, dummy_input) + penalty = ExpectationProfilerPenalty(profiler, 300e6) # 300M is the expected profiler here. Exceeding it will be penalized. + strategy = ProxylessNAS(penalty=penalty) -Then run multi-trail SPOS demo: +Another approach is similar to what we've done for multi-trial strategies: to directly prevent models out of constraints from being sampled. To do this, use :class:`~nni.nas.oneshot.pytorch.profiler.RangeProfilerFilter`. Example:: -.. code-block:: bash + from nni.nas.strategy import ENAS + from nni.nas.oneshot.pytorch.profiler import RangeProfilerFilter - cd ${NNI_ROOT}/examples/nas/oneshot/spos/ - python search.py --latency-filter cortexA76cpu_tflite21 + profiler = FlopsProfiler(model_space, dummy_input) + penalty = RangeProfilerFilter(profiler, 200e6, 300e6) # Only flops between 200M and 300M are considered legal. + strategy = ENAS(filter=filter) +.. tip:: The penalty and filter here are specialized for one-shot strategies, please do not use them in multi-trial strategies. -How the demo works -^^^^^^^^^^^^^^^^^^ +Best practices of hardware-aware NAS +------------------------------------ -To support hardware-aware NAS, you first need a ``Strategy`` that supports filtering the models by latency. We provide such a filter named ``LatencyFilter`` in NNI and initialize a ``RegularizedEvolution`` strategy with the filter: +The hardware-aware part in NAS is probably the most complex component within the whole NNI NAS framework. It's expected that users might encounter technical issues when using hardware-aware NAS. A full troubleshooting guide is still under preparation. For now, we recommend the following practices, briefly. -.. code-block:: python - - evolution_strategy = strategy.RegularizedEvolution( - model_filter=latency_filter, - sample_size=args.evolution_sample_size, population_size=args.evolution_population_size, cycles=args.evolution_cycles - ) - -``LatencyFilter`` will predict the models\' latency by using nn-Meter and filter out the models whose latency are larger than the threshold (i.e., ``100`` in this example). -You can also build your own strategies and filters to support more flexible NAS such as sorting the models according to latency. - -Then, pass this strategy to ``RetiariiExperiment``: - -.. code-block:: python - - exp = RetiariiExperiment(base_model, evaluator, strategy=evolution_strategy) - - exp_config = RetiariiExeConfig('local') - ... - exp_config.dummy_input = [1, 3, 224, 224] - - exp.run(exp_config, args.port) - -In ``exp_config``, ``dummy_input`` is required for tracing shape info in latency predictor. - - -End-to-end ProxylessNAS with Latency Constraints ------------------------------------------------- - -`ProxylessNAS `__ is a hardware-aware one-shot NAS algorithm. ProxylessNAS applies the expected latency of the model to build a differentiable metric and design efficient neural network architectures for hardware. The latency loss is added as a regularization term for architecture parameter optimization. In this example, nn-Meter provides a latency estimator to predict expected latency for the mixed operation on other types of mobile and edge hardware. - -To run the one-shot ProxylessNAS demo, first install nn-Meter by running: - -.. code-block:: bash - - pip install nn-meter - -Then run one-shot ProxylessNAS demo: - -.. code-block:: bash - - python ${NNI_ROOT}/examples/nas/oneshot/proxylessnas/main.py --applied_hardware HARDWARE --reference_latency REFERENCE_LATENCY_MS - -How the demo works -^^^^^^^^^^^^^^^^^^ - -In the implementation of ProxylessNAS ``trainer``, we provide a ``HardwareLatencyEstimator`` which currently builds a lookup table, that stores the measured latency of each candidate building block in the search space. The latency sum of all building blocks in a candidate model will be treated as the model inference latency. The latency prediction is obtained by ``nn-Meter``. ``HardwareLatencyEstimator`` predicts expected latency for the mixed operation based on the path weight of ``ProxylessLayerChoice``. With leveraging ``nn-Meter`` in NNI, users can apply ProxylessNAS to search efficient DNN models on more types of edge devices. - -Despite of ``applied_hardware`` and ``reference_latency``, There are some other parameters related to hardware-aware ProxylessNAS training in this :githublink:`example `: - -* ``grad_reg_loss_type``: Regularization type to add hardware related loss. Allowed types include ``"mul#log"`` and ``"add#linear"``. Type of ``mul#log`` is calculate by ``(torch.log(expected_latency) / math.log(reference_latency)) ** beta``. Type of ``"add#linear"`` is calculate by ``reg_lambda * (expected_latency - reference_latency) / reference_latency``. -* ``grad_reg_loss_lambda``: Regularization params, is set to ``0.1`` by default. -* ``grad_reg_loss_alpha``: Regularization params, is set to ``0.2`` by default. -* ``grad_reg_loss_beta``: Regularization params, is set to ``0.3`` by default. -* ``dummy_input``: The dummy input shape when applied to the target hardware. This parameter is set as (1, 3, 224, 224) by default. +1. Make sure shape inference succeeds. In order to make profiler to work, we will dry run the model space and infer a symbolic shape for inputs and outputs of every submodule. Built-in implementations only support a limited set of operations when inferencing shapes. If errors like ``no shape formula``, please register the shape formula following the prompt, or decorate the whole module as a leaf module that doesn't need to be opened. Note that if the shape inference doesn't open a module, its FLOPs and latency might also need to compute as a whole. You might also need to write FLOPs / latency formula for the module. +2. Try with FLOPs first. In our experience, complex profilers like nn-Meter might make it harder to debug when something goes wrong. Remember to examine whether the FLOPs profiler returns a reasonable result. This can be done by manually invoking ``profiler.profile(sample)``. +3. :class:`~nni.nas.profiler.pytorch.nn_meter.NnMeterProfiler` will expand all the possible modules when it considers a module space as a leaf module (note that nn-meter has its own leaf module settings and do not follow what has been set for shape inference). If the submodule contains too many combinations. The profiler might hang when preprocessing. Try using ``logging.getLogger('nni').setLevel(logging.DEBUG)`` to print debug logs, so as to identify the cause of the issue. +4. For a specific model space and a specific hardware, you can also build your own profiler with :class:`~nni.nas.profiler.Profiler`. As long as they follow the interface of :class:`~nni.nas.profiler.Profiler`, the inner implementation doesn't matter. Users can use lookup tables, build predictors, or even connecting to the real device for profiling. If the interface is compatible, it's possible to use it combining our built-in strategies. It's usually the recommended method when your model space is too complex for the general shape inference to work, or you are targetting at the specialized hardware we do not yet support. diff --git a/docs/source/nas/mutator.rst b/docs/source/nas/mutator.rst index 710dbd179..6a49cb3ff 100644 --- a/docs/source/nas/mutator.rst +++ b/docs/source/nas/mutator.rst @@ -1,5 +1,7 @@ -Construct Space with Mutator -============================ +Construct Space with Mutator (legacy) +===================================== + +.. attention:: This is a legacy document for NNI v2.x. This is now currently no longer maintained. Besides the mutation primitives demonstrated in the :doc:`basic tutorial `, NNI provides a more general approach to express a model space, i.e., *Mutator*, to cover more complex model spaces. The high-level APIs are also implemented with mutator in the underlying system, which can be seen as a special case of model mutation. diff --git a/docs/source/nas/overview_zh.rst b/docs/source/nas/overview_zh.rst deleted file mode 100644 index b71913cbd..000000000 --- a/docs/source/nas/overview_zh.rst +++ /dev/null @@ -1,89 +0,0 @@ -.. 48c39585a539a877461aadef63078c48 - -神经架构搜索 -=========================== - -.. toctree:: - :hidden: - - 快速入门 - 构建搜索空间 - 探索策略 - 评估器 - 高级用法 - -.. attention:: NNI 最新的架构搜索支持都是基于 Retiarii 框架,还在使用 `NNI 架构搜索的早期版本 `__ 的用户应尽快将您的工作迁移到 Retiarii。我们计划在接下来的几个版本中删除旧的架构搜索框架。 - -.. attention:: PyTorch 是 **Retiarii 唯一支持的框架**。有关 Tensorflow 上架构搜索支持的需求在 `此讨论 `__ 中。另外,如果您打算使用 PyTorch 和 Tensorflow 以外的 DL 框架运行 NAS,请 `创建新 issue `__ 让我们知道。 - -概述 ------- - -自动神经架构搜索 (Neural Architecture Search, NAS)在寻找更好的模型方面发挥着越来越重要的作用。最近的研究证明了自动架构搜索的可行性,并导致模型击败了许多手动设计和调整的模型。其中具有代表性的有 `NASNet `__、 `ENAS `__、 `DARTS `__、 `Network Morphism `__ 和 `进化算法 `__。此外,新的创新正不断涌现。 - -总的来说,使用神经架构搜索解决任何特定任务通常需要:搜索空间设计、搜索策略选择和性能评估。这三个组件形成如下的循环(图来自于 `架构搜索综述 `__): - -.. image:: ../../img/nas_abstract_illustration.png - :align: center - :width: 700 - -在这个图中: - -* *模型搜索空间* 是指一组模型,从中探索/搜索最佳模型,简称为 *搜索空间* 或 *模型空间*。 -* *探索策略* 是用于探索模型搜索空间的算法。有时我们也称它为 *搜索策略*。 -* *模型评估者* 负责训练模型并评估其性能。 - -该过程类似于 :doc:`超参数优化 `,只不过目标是最佳网络结构而不是最优超参数。具体来说,探索策略从预定义的搜索空间中选择架构。该架构被传递给性能评估以获得评分,该评分表示这个网络结构在特定任务上的表现。重复此过程,直到搜索过程能够找到最优的网络结构。 - -主要特点 ------------- - -NNI 中当前的架构搜索框架由 `Retiarii: A Deep Learning Exploratory-Training Framework `__ 的研究支撑,具有以下特点: - -* :doc:`简单的 API,让您轻松构建搜索空间 ` -* :doc:`SOTA 架构搜索算法,以高效探索搜索空间 ` -* :doc:`后端支持,在大规模 AI 平台上运行实验 ` - -为什么使用 NNI 的架构搜索 -------------------------------- - -若没有 NNI,实现架构搜索将极具挑战性,主要包含以下三个方面。当用户想在自己的场景中尝试架构搜索技术时,NNI 提供的解决方案可以极大程度上减轻用户的工作量。 - -搜索空间设计 -^^^^^^^^^^^^^^^^^^^ - -搜索空间定义了架构的可行域集合。为了简化搜索,我们通常需要结合任务相关的先验知识,减小搜索空间的规模。然而,这也引入了人类的偏见,在某种程度上可能会丧失突破人类认知的可能性。无论如何,对于初学者来说,搜索空间设计是一个极具挑战性的任务,因为他们可能无法在简单的空间和丰富的想象力之间取得平衡。 - -在 NNI 中,我们提供了不同层级的 API 来构建搜索空间。有 :doc:`高层 API `,引入大量先验,帮助用户迅速了解什么是好的架构或搜索空间;也有 :doc:`底层 API `,提供了最底层的算子和图变换原语。 - -探索策略 -^^^^^^^^^^^^^^^^^^^^ - -探索策略定义了如何探索搜索空间(通常是指数级规模的)。它包含经典的探索-利用权衡。一方面,我们希望快速找到性能良好的架构;而另一方面,我们也应避免过早收敛到次优架构的区域。我们往往需要通常通过反复试验找到特定场景的“最佳”探索策略。由于许多近期发表的探索策略都是使用自己的代码库实现的,因此从一个切换到另一个变得非常麻烦。 - -在 NNI 中,我们还提供了 :doc:`一系列的探索策略 `。其中一些功能强大但耗时,而另一些可能不能找到最优架构但非常高效。鉴于所有策略都使用统一的用户接口实现,用户可以轻松找到符合他们需求的策略。 - -性能评估 -^^^^^^^^^^^^^^^^^^^^^^ - -架构搜索的目标通常是找到能够在测试数据集表现理想的网络结构。性能评估的作用便是量化每个网络的好坏。其主要难点在于可扩展性,即如何在大规模训练平台上同时运行和管理多个试验。 - -在 NNI 中,我们使用 :doc:`evaluator ` 来标准化性能评估流程。它负责估计模型的性能。NNI 内建了不少性能评估器,从最简单的交叉验证,到复杂的自定义配置。评估器在 *试验 (trials)* 中运行,可以通过我们强大的 :doc:`训练平台 ` 将试验分发到大规模训练平台上。 - -教程 ---------- - -要开始使用 NNI 架构搜索框架,我们建议至少阅读以下教程: - -* :doc:`快速入门 ` -* :doc:`构建搜索空间 ` -* :doc:`探索策略 ` -* :doc:`评估器 ` - -资源 ---------- - -以下文章将有助于更好地了解 NAS 的最新发展: - -* `神经架构搜索:综述 `__ -* `神经架构搜索的综述:挑战和解决方案 `__ diff --git a/docs/source/nas/space_hub.rst b/docs/source/nas/space_hub.rst index 7bb99ef94..e0447b385 100644 --- a/docs/source/nas/space_hub.rst +++ b/docs/source/nas/space_hub.rst @@ -19,27 +19,27 @@ The model spaces provided so far are all built for image classification tasks, t * - Name - Brief Description - * - :class:`~nni.retiarii.hub.pytorch.NasBench101` + * - :class:`~nni.nas.hub.pytorch.NasBench101` - Search space benchmarked by `NAS-Bench-101 `__ - * - :class:`~nni.retiarii.hub.pytorch.NasBench201` + * - :class:`~nni.nas.hub.pytorch.NasBench201` - Search space benchmarked by `NAS-Bench-201 `__ - * - :class:`~nni.retiarii.hub.pytorch.NASNet` + * - :class:`~nni.nas.hub.pytorch.NASNet` - Proposed by `Learning Transferable Architectures for Scalable Image Recognition `__ - * - :class:`~nni.retiarii.hub.pytorch.ENAS` + * - :class:`~nni.nas.hub.pytorch.ENAS` - Proposed by `Efficient neural architecture search via parameter sharing `__, subtly different from NASNet - * - :class:`~nni.retiarii.hub.pytorch.AmoebaNet` + * - :class:`~nni.nas.hub.pytorch.AmoebaNet` - Proposed by `Regularized evolution for image classifier architecture search `__, subtly different from NASNet - * - :class:`~nni.retiarii.hub.pytorch.PNAS` + * - :class:`~nni.nas.hub.pytorch.PNAS` - Proposed by `Progressive neural architecture search `__, subtly different from NASNet - * - :class:`~nni.retiarii.hub.pytorch.DARTS` + * - :class:`~nni.nas.hub.pytorch.DARTS` - Proposed by `Darts: Differentiable architecture search `__, most popularly used in evaluating one-shot algorithms - * - :class:`~nni.retiarii.hub.pytorch.ProxylessNAS` + * - :class:`~nni.nas.hub.pytorch.ProxylessNAS` - Proposed by `ProxylessNAS `__, based on MobileNetV2. - * - :class:`~nni.retiarii.hub.pytorch.MobileNetV3Space` + * - :class:`~nni.nas.hub.pytorch.MobileNetV3Space` - The largest space in `TuNAS `__. - * - :class:`~nni.retiarii.hub.pytorch.ShuffleNetSpace` + * - :class:`~nni.nas.hub.pytorch.ShuffleNetSpace` - Based on ShuffleNetV2, proposed by `Single Path One-shot `__ - * - :class:`~nni.retiarii.hub.pytorch.AutoformerSpace` + * - :class:`~nni.nas.hub.pytorch.AutoFormer` - Based on ViT, proposed by `Autoformer `__ .. note:: @@ -59,7 +59,7 @@ One way to use the model space is to directly leverage the searched results. Not .. code-block:: python import torch - from nni.retiarii.hub.pytorch import MobileNetV3Space + from nni.nas.hub.pytorch import MobileNetV3Space from torch.utils.data import DataLoader from torchvision import transforms from torchvision.datasets import ImageNet @@ -150,20 +150,20 @@ Here is a short sample code snippet for reference. .. code-block:: python # Create the model space - from nni.retiarii.hub.pytorch import MobileNetV3Space + from nni.nas.hub.pytorch import MobileNetV3Space model_space = MobileNetV3Space() # Pick a search strategy - from nni.retiarii.strategy import Evolution - strategy = Evolution() # It can be any strategy, including one-shot strategies. + from nni.nas.strategy import RegularizedEvolution + strategy = RegularizedEvolution() # It can be any strategy, including one-shot strategies. # Define an evaluator - from nni.retiarii.evaluator.pytorch import Classification + from nni.nas.evaluator.pytorch import Classification evaluator = Classification(train_dataloaders=DataLoader(train_dataset, batch_size=batch_size), val_dataloaders=DataLoader(test_dataset, batch_size=batch_size)) # Launch the experiment, start the search process - experiment = RetiariiExperiment(model_space, evaluator, [], strategy) - experiment.run(experiment_config) + experiment = NasExperiment(model_space, evaluator, strategy) + experiment.run() .. todo: search reproduction results diff --git a/docs/source/reference/nas.rst b/docs/source/reference/nas.rst new file mode 100644 index 000000000..8a4fc29a2 --- /dev/null +++ b/docs/source/reference/nas.rst @@ -0,0 +1,341 @@ +NAS API Reference +================= + +Model space +----------- + +.. autoclass:: nni.nas.nn.pytorch.LayerChoice + :members: + +.. autoclass:: nni.nas.nn.pytorch.InputChoice + :members: + +.. autoclass:: nni.nas.nn.pytorch.Repeat + :members: + +.. autoclass:: nni.nas.nn.pytorch.Cell + :members: + +.. autoclass:: nni.nas.nn.pytorch.ModelSpace + :members: + +.. autoclass:: nni.nas.nn.pytorch.ParametrizedModule + :members: + +.. autoclass:: nni.nas.nn.pytorch.MutableModule + :members: + +Model Space Hub +--------------- + +NasBench101 +^^^^^^^^^^^ + +.. autoclass:: nni.nas.hub.pytorch.NasBench101 + :members: + +NasBench201 +^^^^^^^^^^^ + +.. autoclass:: nni.nas.hub.pytorch.NasBench201 + :members: + +NASNet +^^^^^^ + +.. autoclass:: nni.nas.hub.pytorch.NASNet + :members: + +.. autoclass:: nni.nas.hub.pytorch.nasnet.NDS + :members: + +.. autoclass:: nni.nas.hub.pytorch.nasnet.NDSStage + :members: + +.. autoclass:: nni.nas.hub.pytorch.nasnet.NDSStagePathSampling + :members: + +.. autoclass:: nni.nas.hub.pytorch.nasnet.NDSStageDifferentiable + :members: + +ENAS +^^^^ + +.. autoclass:: nni.nas.hub.pytorch.ENAS + :members: + +AmoebaNet +^^^^^^^^^ + +.. autoclass:: nni.nas.hub.pytorch.AmoebaNet + :members: + +PNAS +^^^^ + +.. autoclass:: nni.nas.hub.pytorch.PNAS + :members: + +DARTS +^^^^^ + +.. autoclass:: nni.nas.hub.pytorch.DARTS + :members: + +ProxylessNAS +^^^^^^^^^^^^ + +.. autoclass:: nni.nas.hub.pytorch.ProxylessNAS + :members: + +.. autoclass:: nni.nas.hub.pytorch.proxylessnas.InvertedResidual + :members: + +MobileNetV3Space +^^^^^^^^^^^^^^^^ + +.. autoclass:: nni.nas.hub.pytorch.MobileNetV3Space + :members: + +ShuffleNetSpace +^^^^^^^^^^^^^^^ + +.. autoclass:: nni.nas.hub.pytorch.ShuffleNetSpace + :members: + +AutoFormer +^^^^^^^^^^ + +.. autoclass:: nni.nas.hub.pytorch.AutoFormer + :members: + +Module Components +^^^^^^^^^^^^^^^^^ + +.. automodule:: nni.nas.hub.pytorch.modules + :members: + :imported-members: + +Evaluator +--------- + +.. autoclass:: nni.nas.evaluator.FunctionalEvaluator + :members: + +.. autoclass:: nni.nas.evaluator.Evaluator + :members: + +.. autoclass:: nni.nas.evaluator.MutableEvaluator + :members: + +.. autoclass:: nni.nas.evaluator.pytorch.Classification + :members: + +.. autoclass:: nni.nas.evaluator.pytorch.ClassificationModule + :members: + +.. autoclass:: nni.nas.evaluator.pytorch.Regression + :members: + +.. autoclass:: nni.nas.evaluator.pytorch.RegressionModule + :members: + +.. autoclass:: nni.nas.evaluator.pytorch.Trainer + +.. autoclass:: nni.nas.evaluator.pytorch.DataLoader + +.. autoclass:: nni.nas.evaluator.pytorch.Lightning + :members: + +.. autoclass:: nni.nas.evaluator.pytorch.LightningModule + :members: + +Multi-trial strategy +-------------------- + +.. autoclass:: nni.nas.strategy.GridSearch + :members: + +.. autoclass:: nni.nas.strategy.Random + :members: + +.. autoclass:: nni.nas.strategy.RegularizedEvolution + :members: + +.. autoclass:: nni.nas.strategy.PolicyBasedRL + :members: + +.. autoclass:: nni.nas.strategy.TPE + :members: + +Advanced APIs +^^^^^^^^^^^^^ + +Base +"""" + +.. automodule:: nni.nas.strategy.base + :members: + +Middleware +"""""""""" + +.. automodule:: nni.nas.strategy.middleware + :members: + +Utilities +""""""""" + +.. automodule:: nni.nas.strategy.utils + :members: + +One-shot strategies +------------------- + +.. autoclass:: nni.nas.strategy.RandomOneShot + :members: + +.. autoclass:: nni.nas.strategy.ENAS + :members: + +.. autoclass:: nni.nas.strategy.DARTS + :members: + +.. autoclass:: nni.nas.strategy.GumbelDARTS + :members: + +.. autoclass:: nni.nas.strategy.Proxyless + :members: + +Advanced APIs +^^^^^^^^^^^^^ + +.. autoclass:: nni.nas.oneshot.pytorch.strategy.OneShotStrategy + :members: + +base_lightning +"""""""""""""" + +.. automodule:: nni.nas.oneshot.pytorch.base_lightning + :members: + :imported-members: + +supermodule.differentiable +"""""""""""""""""""""""""" + +.. automodule:: nni.nas.oneshot.pytorch.supermodule.differentiable + :members: + :imported-members: + +supermodule.sampling +"""""""""""""""""""" + +.. automodule:: nni.nas.oneshot.pytorch.supermodule.sampling + :members: + :imported-members: + +supermodule.proxyless +""""""""""""""""""""" + +.. automodule:: nni.nas.oneshot.pytorch.supermodule.proxyless + :members: + :imported-members: + +supermodule.operation +""""""""""""""""""""" + +.. automodule:: nni.nas.oneshot.pytorch.supermodule.operation + :members: + :imported-members: + +Profiler Utilities +"""""""""""""""""" + +.. automodule:: nni.nas.oneshot.pytorch.profiler + :members: + +Experiment +---------- + +.. autoclass:: nni.nas.experiment.NasExperiment + :members: + +.. automodule:: nni.nas.experiment.config + :members: + :imported-members: + +Profiler +-------- + +.. autoclass:: nni.nas.profiler.Profiler + :members: + +.. autoclass:: nni.nas.profiler.ExpressionProfiler + :members: + +FLOPs +^^^^^ + +.. automodule:: nni.nas.profiler.pytorch.flops + :members: + +nn-Meter +^^^^^^^^ + +.. automodule:: nni.nas.profiler.pytorch.nn_meter + :members: + +Model format +------------ + +.. automodule:: nni.nas.space + :members: + :imported-members: + +Execution engine +---------------- + +.. automodule:: nni.nas.execution + :members: + :imported-members: + +Cross-graph optimization +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: nni.nas.execution.cgo + :members: + :imported-members: + +NAS Benchmarks +-------------- + +.. automodule:: nni.nas.benchmark + :members: + :imported-members: + +NAS-Bench-101 +^^^^^^^^^^^^^ + +.. automodule:: nni.nas.benchmark.nasbench101 + :members: + :imported-members: + +NAS-Bench-201 +^^^^^^^^^^^^^ + +.. automodule:: nni.nas.benchmark.nasbench201 + :members: + :imported-members: + +NDS +^^^ + +.. automodule:: nni.nas.benchmark.nds + :members: + :imported-members: + +Miscellaneous Utilities +----------------------- + +.. automodule:: nni.nas.utils.serializer + :members: diff --git a/docs/source/reference/nas/evaluator.rst b/docs/source/reference/nas/evaluator.rst deleted file mode 100644 index 35dad52ba..000000000 --- a/docs/source/reference/nas/evaluator.rst +++ /dev/null @@ -1,48 +0,0 @@ -Evaluator -========= - -FunctionalEvaluator -------------------- - -.. autoclass:: nni.nas.evaluator.FunctionalEvaluator - :members: - -Classification --------------- - -.. autoclass:: nni.nas.evaluator.pytorch.Classification - :members: - -.. autoclass:: nni.nas.evaluator.pytorch.ClassificationModule - :members: - -Regression ----------- - -.. autoclass:: nni.nas.evaluator.pytorch.Regression - :members: - -.. autoclass:: nni.nas.evaluator.pytorch.RegressionModule - :members: - -Utilities ---------- - -.. autoclass:: nni.nas.evaluator.pytorch.Trainer - -.. autoclass:: nni.nas.evaluator.pytorch.DataLoader - -Customization -------------- - -.. autoclass:: nni.nas.evaluator.Evaluator - :members: - -.. autoclass:: nni.nas.evaluator.pytorch.Lightning - :members: - -.. autoclass:: nni.nas.evaluator.pytorch.LightningModule - :members: - -Cross-graph Optimization (experimental) ---------------------------------------- diff --git a/docs/source/reference/nas/others.rst b/docs/source/reference/nas/others.rst deleted file mode 100644 index d902e15f6..000000000 --- a/docs/source/reference/nas/others.rst +++ /dev/null @@ -1,29 +0,0 @@ -Uncategorized Modules -===================== - -Experiment ----------- - -NAS Benchmarks --------------- - -.. _nas-bench-101-reference: - -NAS-Bench-101 -^^^^^^^^^^^^^ - -.. _nas-bench-201-reference: - -NAS-Bench-201 -^^^^^^^^^^^^^ - -.. _nds-reference: - -NDS -^^^ - -Retrain (Architecture Evaluation) ---------------------------------- - -Utilities ---------- diff --git a/docs/source/reference/nas/search_space.rst b/docs/source/reference/nas/search_space.rst deleted file mode 100644 index d83999052..000000000 --- a/docs/source/reference/nas/search_space.rst +++ /dev/null @@ -1,24 +0,0 @@ -Search Space -============ - -.. _mutation-primitives: - -Mutation Primitives -------------------- - -.. _hyper-modules: - -Hyper-module Library (experimental) ------------------------------------ - -Mutators (advanced) -------------------- - -Mutator -^^^^^^^ - -Placeholder -^^^^^^^^^^^ - -Graph -^^^^^ diff --git a/docs/source/reference/nas/strategy.rst b/docs/source/reference/nas/strategy.rst deleted file mode 100644 index 5918eba6b..000000000 --- a/docs/source/reference/nas/strategy.rst +++ /dev/null @@ -1,21 +0,0 @@ -Strategy -======== - -.. _multi-trial-nas-reference: - -Multi-trial Strategy --------------------- - -.. _one-shot-strategy-reference: - -One-shot Strategy ------------------ - -Customization -------------- - -Multi-trial -^^^^^^^^^^^ - -One-shot -^^^^^^^^ diff --git a/docs/source/reference/nas/toctree.rst b/docs/source/reference/nas/toctree.rst deleted file mode 100644 index 6dbd07014..000000000 --- a/docs/source/reference/nas/toctree.rst +++ /dev/null @@ -1,10 +0,0 @@ -NAS API Reference -================= - -.. toctree:: - :maxdepth: 2 - - search_space - strategy - evaluator - Others diff --git a/docs/source/reference/python_api.rst b/docs/source/reference/python_api.rst index 1a2c25ba5..4ccc38a96 100644 --- a/docs/source/reference/python_api.rst +++ b/docs/source/reference/python_api.rst @@ -5,7 +5,7 @@ Python API Reference :maxdepth: 1 Hyperparameter Optimization - Neural Architecture Search + Neural Architecture Search Model Compression Experiment Mutable diff --git a/docs/source/tutorials/darts.ipynb b/docs/source/tutorials/darts.ipynb index 7bb253703..aab2d87a2 100644 --- a/docs/source/tutorials/darts.ipynb +++ b/docs/source/tutorials/darts.ipynb @@ -15,7 +15,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n# Searching in DARTS search space\n\nIn this tutorial, we demonstrate how to search in the famous model space proposed in `DARTS`_.\n\nThrough this process, you will learn:\n\n* How to use the built-in model spaces from NNI's model space hub.\n* How to use one-shot exploration strategies to explore a model space.\n* How to customize evaluators to achieve the best performance.\n\nIn the end, we get a strong-performing model on CIFAR-10 dataset, which achieves up to 97.28% accuracy.\n\n.. attention::\n\n Running this tutorial requires a GPU.\n If you don't have one, you can set ``gpus`` in :class:`~nni.retiarii.evaluator.pytorch.Classification` to be 0,\n but do note that it will be much slower.\n\n\n## Use a pre-searched DARTS model\n\nSimilar to [the beginner tutorial of PyTorch](https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html)_,\nwe begin with CIFAR-10 dataset, which is a image classification dataset of 10 categories.\nThe images in CIFAR-10 are of size 3x32x32, i.e., RGB-colored images of 32x32 pixels in size.\n\nWe first load the CIFAR-10 dataset with torchvision.\n" + "\n# Searching in DARTS search space\n\nIn this tutorial, we demonstrate how to search in the famous model space proposed in `DARTS`_.\n\nThrough this process, you will learn:\n\n* How to use the built-in model spaces from NNI's model space hub.\n* How to use one-shot exploration strategies to explore a model space.\n* How to customize evaluators to achieve the best performance.\n\nIn the end, we get a strong-performing model on CIFAR-10 dataset, which achieves up to 97.28% accuracy.\n\n.. attention::\n\n Running this tutorial requires a GPU.\n If you don't have one, you can set ``gpus`` in :class:`~nni.nas.evaluator.pytorch.Classification` to be 0,\n but do note that it will be much slower.\n\n\n## Use a pre-searched DARTS model\n\nSimilar to [the beginner tutorial of PyTorch](https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html)_,\nwe begin with CIFAR-10 dataset, which is a image classification dataset of 10 categories.\nThe images in CIFAR-10 are of size 3x32x32, i.e., RGB-colored images of 32x32 pixels in size.\n\nWe first load the CIFAR-10 dataset with torchvision.\n" ] }, { @@ -26,14 +26,14 @@ }, "outputs": [], "source": [ - "import nni\nimport torch\nfrom torchvision import transforms\nfrom torchvision.datasets import CIFAR10\nfrom nni.retiarii.evaluator.pytorch import DataLoader\n\nCIFAR_MEAN = [0.49139968, 0.48215827, 0.44653124]\nCIFAR_STD = [0.24703233, 0.24348505, 0.26158768]\n\ntransform_valid = transforms.Compose([\n transforms.ToTensor(),\n transforms.Normalize(CIFAR_MEAN, CIFAR_STD),\n])\nvalid_data = nni.trace(CIFAR10)(root='./data', train=False, download=True, transform=transform_valid)\nvalid_loader = DataLoader(valid_data, batch_size=256, num_workers=6)" + "import nni\nimport torch\nfrom torchvision import transforms\nfrom torchvision.datasets import CIFAR10\nfrom nni.nas.evaluator.pytorch import DataLoader\n\nCIFAR_MEAN = [0.49139968, 0.48215827, 0.44653124]\nCIFAR_STD = [0.24703233, 0.24348505, 0.26158768]\n\ntransform_valid = transforms.Compose([\n transforms.ToTensor(),\n transforms.Normalize(CIFAR_MEAN, CIFAR_STD),\n])\nvalid_data = nni.trace(CIFAR10)(root='./data', train=False, download=True, transform=transform_valid)\nvalid_loader = DataLoader(valid_data, batch_size=256, num_workers=6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "

Note

If you are to use multi-trial strategies, wrapping CIFAR10 with :func:`nni.trace` and\n use DataLoader from ``nni.retiarii.evaluator.pytorch`` (instead of ``torch.utils.data``) are mandatory.\n Otherwise, it's optional.

\n\nNNI presents many built-in model spaces, along with many *pre-searched models* in :doc:`model space hub
`,\nwhich are produced by most popular NAS literatures.\nA pre-trained model is a saved network that was previously trained on a large dataset like CIFAR-10 or ImageNet.\nYou can easily load these models as a starting point, validate their performances, and finetune them if you need.\n\nIn this tutorial, we choose one from `DARTS`_ search space, which is natively trained on our target dataset, CIFAR-10,\nso as to save the tedious steps of finetuning.\n\n.. tip::\n\n Finetuning a pre-searched model on other datasets is no different from finetuning *any model*.\n We recommend reading\n [this tutorial of object detection finetuning](https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html)_\n if you want to know how finetuning is generally done in PyTorch.\n\n" + "

Note

If you are to use multi-trial strategies, wrapping CIFAR10 with :func:`nni.trace` and\n use DataLoader from ``nni.nas.evaluator.pytorch`` (instead of ``torch.utils.data``) are mandatory.\n Otherwise, it's optional.

\n\nNNI presents many built-in model spaces, along with many *pre-searched models* in :doc:`model space hub
`,\nwhich are produced by most popular NAS literatures.\nA pre-trained model is a saved network that was previously trained on a large dataset like CIFAR-10 or ImageNet.\nYou can easily load these models as a starting point, validate their performances, and finetune them if you need.\n\nIn this tutorial, we choose one from `DARTS`_ search space, which is natively trained on our target dataset, CIFAR-10,\nso as to save the tedious steps of finetuning.\n\n.. tip::\n\n Finetuning a pre-searched model on other datasets is no different from finetuning *any model*.\n We recommend reading\n [this tutorial of object detection finetuning](https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html)_\n if you want to know how finetuning is generally done in PyTorch.\n\n" ] }, { @@ -44,14 +44,14 @@ }, "outputs": [], "source": [ - "from nni.retiarii.hub.pytorch import DARTS as DartsSpace\n\ndarts_v2_model = DartsSpace.load_searched_model('darts-v2', pretrained=True, download=True)\n\ndef evaluate_model(model, cuda=False):\n device = torch.device('cuda' if cuda else 'cpu')\n model.to(device)\n model.eval()\n with torch.no_grad():\n correct = total = 0\n for inputs, targets in valid_loader:\n inputs, targets = inputs.to(device), targets.to(device)\n logits = model(inputs)\n _, predict = torch.max(logits, 1)\n correct += (predict == targets).sum().cpu().item()\n total += targets.size(0)\n print('Accuracy:', correct / total)\n return correct / total\n\nevaluate_model(darts_v2_model, cuda=True) # Set this to false if there's no GPU." + "from nni.nas.hub.pytorch import DARTS as DartsSpace\n\ndarts_v2_model = DartsSpace.load_searched_model('darts-v2', pretrained=True, download=True)\n\ndef evaluate_model(model, cuda=False):\n device = torch.device('cuda' if cuda else 'cpu')\n model.to(device)\n model.eval()\n with torch.no_grad():\n correct = total = 0\n for inputs, targets in valid_loader:\n inputs, targets = inputs.to(device), targets.to(device)\n logits = model(inputs)\n _, predict = torch.max(logits, 1)\n correct += (predict == targets).sum().cpu().item()\n total += targets.size(0)\n print('Accuracy:', correct / total)\n return correct / total\n\nevaluate_model(darts_v2_model, cuda=True) # Set this to false if there's no GPU." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The journey of using a pre-searched model could end here. Or you are interested,\nwe can go a step further to search a model within :class:`~nni.retiarii.hub.pytorch.DARTS` space on our own.\n\n## Use the DARTS model space\n\nThe model space provided in `DARTS`_ originated from [NASNet](https://arxiv.org/abs/1707.07012)_,\nwhere the full model is constructed by repeatedly stacking a single computational unit (called a **cell**).\nThere are two types of cells within a network. The first type is called *normal cell*, and the second type is called *reduction cell*.\nThe key difference between normal and reduction cell is that the reduction cell will downsample the input feature map,\nand decrease its resolution. Normal and reduction cells are stacked alternately, as shown in the following figure.\n\n\n\nA cell takes outputs from two previous cells as inputs and contains a collection of *nodes*.\nEach node takes two previous nodes within the same cell (or the two cell inputs),\nand applies an *operator* (e.g., convolution, or max-pooling) to each input,\nand sums the outputs of operators as the output of the node.\nThe output of cell is the concatenation of all the nodes that are never used as inputs of another node.\nUsers could read [NDS](https://arxiv.org/pdf/1905.13214.pdf)_ or [ENAS](https://arxiv.org/abs/1802.03268)_ for more details.\n\nWe illustrate an example of cells in the following figure.\n\n\n\nThe search space proposed in `DARTS`_ paper introduced two modifications to the original space\nin [NASNet](https://arxiv.org/abs/1707.07012)_.\n\nFirstly, the operator candidates have been narrowed down to seven:\n\n- Max pooling 3x3\n- Average pooling 3x3\n- Skip connect (Identity)\n- Separable convolution 3x3\n- Separable convolution 5x5\n- Dilated convolution 3x3\n- Dilated convolution 5x5\n\nSecondly, the output of cell is the concatenate of **all the nodes within the cell**.\n\nAs the search space is based on cell, once the normal and reduction cell has been fixed, we can stack them for indefinite times.\nTo save the search cost, the common practice is to reduce the number of filters (i.e., channels) and number of stacked cells\nduring the search phase, and increase them back when training the final searched architecture.\n\n

Note

`DARTS`_ is one of those papers that innovate both in search space and search strategy.\n In this tutorial, we will search on **model space** provided by DARTS with **search strategy** proposed by DARTS.\n We refer to them as *DARTS model space* (``DartsSpace``) and *DARTS strategy* (``DartsStrategy``), respectively.\n We did NOT imply that the :class:`~nni.retiarii.hub.pytorch.DARTS` space and\n :class:`~nni.retiarii.strategy.DARTS` strategy has to used together.\n You can always explore the DARTS space with another search strategy, or use your own strategy to search a different model space.

\n\nIn the following example, we initialize a :class:`~nni.retiarii.hub.pytorch.DARTS`\nmodel space, with 16 initial filters and 8 stacked cells.\nThe network is specialized for CIFAR-10 dataset with 32x32 input resolution.\n\nThe :class:`~nni.retiarii.hub.pytorch.DARTS` model space here is provided by :doc:`model space hub `,\nwhere we have supported multiple popular model spaces for plug-and-play.\n\n.. tip::\n\n The model space here can be replaced with any space provided in the hub,\n or even customized spaces built from scratch.\n\n" + "The journey of using a pre-searched model could end here. Or you are interested,\nwe can go a step further to search a model within :class:`~nni.nas.hub.pytorch.DARTS` space on our own.\n\n## Use the DARTS model space\n\nThe model space provided in `DARTS`_ originated from [NASNet](https://arxiv.org/abs/1707.07012)_,\nwhere the full model is constructed by repeatedly stacking a single computational unit (called a **cell**).\nThere are two types of cells within a network. The first type is called *normal cell*, and the second type is called *reduction cell*.\nThe key difference between normal and reduction cell is that the reduction cell will downsample the input feature map,\nand decrease its resolution. Normal and reduction cells are stacked alternately, as shown in the following figure.\n\n\n\nA cell takes outputs from two previous cells as inputs and contains a collection of *nodes*.\nEach node takes two previous nodes within the same cell (or the two cell inputs),\nand applies an *operator* (e.g., convolution, or max-pooling) to each input,\nand sums the outputs of operators as the output of the node.\nThe output of cell is the concatenation of all the nodes that are never used as inputs of another node.\nUsers could read [NDS](https://arxiv.org/pdf/1905.13214.pdf)_ or [ENAS](https://arxiv.org/abs/1802.03268)_ for more details.\n\nWe illustrate an example of cells in the following figure.\n\n\n\nThe search space proposed in `DARTS`_ paper introduced two modifications to the original space\nin [NASNet](https://arxiv.org/abs/1707.07012)_.\n\nFirstly, the operator candidates have been narrowed down to seven:\n\n- Max pooling 3x3\n- Average pooling 3x3\n- Skip connect (Identity)\n- Separable convolution 3x3\n- Separable convolution 5x5\n- Dilated convolution 3x3\n- Dilated convolution 5x5\n\nSecondly, the output of cell is the concatenate of **all the nodes within the cell**.\n\nAs the search space is based on cell, once the normal and reduction cell has been fixed, we can stack them for indefinite times.\nTo save the search cost, the common practice is to reduce the number of filters (i.e., channels) and number of stacked cells\nduring the search phase, and increase them back when training the final searched architecture.\n\n

Note

`DARTS`_ is one of those papers that innovate both in search space and search strategy.\n In this tutorial, we will search on **model space** provided by DARTS with **search strategy** proposed by DARTS.\n We refer to them as *DARTS model space* (``DartsSpace``) and *DARTS strategy* (``DartsStrategy``), respectively.\n We did NOT imply that the :class:`~nni.nas.hub.pytorch.DARTS` space and\n :class:`~nni.nas.strategy.DARTS` strategy has to used together.\n You can always explore the DARTS space with another search strategy, or use your own strategy to search a different model space.

\n\nIn the following example, we initialize a :class:`~nni.nas.hub.pytorch.DARTS`\nmodel space, with 16 initial filters and 8 stacked cells.\nThe network is specialized for CIFAR-10 dataset with 32x32 input resolution.\n\nThe :class:`~nni.nas.hub.pytorch.DARTS` model space here is provided by :doc:`model space hub `,\nwhere we have supported multiple popular model spaces for plug-and-play.\n\n.. tip::\n\n The model space here can be replaced with any space provided in the hub,\n or even customized spaces built from scratch.\n\n" ] }, { @@ -87,7 +87,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Evaluator\n\nTo begin exploring the model space, one firstly need to have an evaluator to provide the criterion of a \"good model\".\nAs we are searching on CIFAR-10 dataset, one can easily use the :class:`~nni.retiarii.evaluator.pytorch.Classification`\nas a starting point.\n\nNote that for a typical setup of NAS, the model search should be on validation set, and the evaluation of the final searched model\nshould be on test set. However, as CIFAR-10 dataset doesn't have a test dataset (only 50k train + 10k valid),\nwe have to split the original training set into a training set and a validation set.\nThe recommended train/val split by `DARTS`_ strategy is 1:1.\n\n" + "### Evaluator\n\nTo begin exploring the model space, one firstly need to have an evaluator to provide the criterion of a \"good model\".\nAs we are searching on CIFAR-10 dataset, one can easily use the :class:`~nni.nas.evaluator.pytorch.Classification`\nas a starting point.\n\nNote that for a typical setup of NAS, the model search should be on validation set, and the evaluation of the final searched model\nshould be on test set. However, as CIFAR-10 dataset doesn't have a test dataset (only 50k train + 10k valid),\nwe have to split the original training set into a training set and a validation set.\nThe recommended train/val split by `DARTS`_ strategy is 1:1.\n\n" ] }, { @@ -98,14 +98,14 @@ }, "outputs": [], "source": [ - "import numpy as np\nfrom nni.retiarii.evaluator.pytorch import Classification\nfrom torch.utils.data import SubsetRandomSampler\n\ntransform = transforms.Compose([\n transforms.RandomCrop(32, padding=4),\n transforms.RandomHorizontalFlip(),\n transforms.ToTensor(),\n transforms.Normalize(CIFAR_MEAN, CIFAR_STD),\n])\n\ntrain_data = nni.trace(CIFAR10)(root='./data', train=True, download=True, transform=transform)\n\nnum_samples = len(train_data)\nindices = np.random.permutation(num_samples)\nsplit = num_samples // 2\n\nsearch_train_loader = DataLoader(\n train_data, batch_size=64, num_workers=6,\n sampler=SubsetRandomSampler(indices[:split]),\n)\n\nsearch_valid_loader = DataLoader(\n train_data, batch_size=64, num_workers=6,\n sampler=SubsetRandomSampler(indices[split:]),\n)\n\nevaluator = Classification(\n learning_rate=1e-3,\n weight_decay=1e-4,\n train_dataloaders=search_train_loader,\n val_dataloaders=search_valid_loader,\n max_epochs=10,\n gpus=1,\n fast_dev_run=fast_dev_run,\n)" + "import numpy as np\nfrom nni.nas.evaluator.pytorch import Classification\nfrom torch.utils.data import SubsetRandomSampler\n\ntransform = transforms.Compose([\n transforms.RandomCrop(32, padding=4),\n transforms.RandomHorizontalFlip(),\n transforms.ToTensor(),\n transforms.Normalize(CIFAR_MEAN, CIFAR_STD),\n])\n\ntrain_data = nni.trace(CIFAR10)(root='./data', train=True, download=True, transform=transform)\n\nnum_samples = len(train_data)\nindices = np.random.permutation(num_samples)\nsplit = num_samples // 2\n\nsearch_train_loader = DataLoader(\n train_data, batch_size=64, num_workers=6,\n sampler=SubsetRandomSampler(indices[:split]),\n)\n\nsearch_valid_loader = DataLoader(\n train_data, batch_size=64, num_workers=6,\n sampler=SubsetRandomSampler(indices[split:]),\n)\n\nevaluator = Classification(\n learning_rate=1e-3,\n weight_decay=1e-4,\n train_dataloaders=search_train_loader,\n val_dataloaders=search_valid_loader,\n max_epochs=10,\n gpus=1,\n fast_dev_run=fast_dev_run,\n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Strategy\n\nWe will use `DARTS`_ (Differentiable ARchiTecture Search) as the search strategy to explore the model space.\n:class:`~nni.retiarii.strategy.DARTS` strategy belongs to the category of `one-shot strategy `.\nThe fundamental differences between One-shot strategies and `multi-trial strategies ` is that,\none-shot strategy combines search with model training into a single run.\nCompared to multi-trial strategies, one-shot NAS doesn't need to iteratively spawn new trials (i.e., models),\nand thus saves the excessive cost of model training.\n\n

Note

It's worth mentioning that one-shot NAS also suffers from multiple drawbacks despite its computational efficiency.\n We recommend\n [Weight-Sharing Neural Architecture Search: A Battle to Shrink the Optimization Gap](https://arxiv.org/abs/2008.01475)_\n and\n [How Does Supernet Help in Neural Architecture Search?](https://arxiv.org/abs/2010.08219)_ for interested readers.

\n\n:class:`~nni.retiarii.strategy.DARTS` strategy is provided as one of NNI's :doc:`built-in search strategies `.\nUsing it can be as simple as one line of code.\n\n" + "### Strategy\n\nWe will use `DARTS`_ (Differentiable ARchiTecture Search) as the search strategy to explore the model space.\n:class:`~nni.nas.strategy.DARTS` strategy belongs to the category of `one-shot strategy `.\nThe fundamental differences between One-shot strategies and `multi-trial strategies ` is that,\none-shot strategy combines search with model training into a single run.\nCompared to multi-trial strategies, one-shot NAS doesn't need to iteratively spawn new trials (i.e., models),\nand thus saves the excessive cost of model training.\n\n

Note

It's worth mentioning that one-shot NAS also suffers from multiple drawbacks despite its computational efficiency.\n We recommend\n [Weight-Sharing Neural Architecture Search: A Battle to Shrink the Optimization Gap](https://arxiv.org/abs/2008.01475)_\n and\n [How Does Supernet Help in Neural Architecture Search?](https://arxiv.org/abs/2010.08219)_ for interested readers.

\n\n:class:`~nni.nas.strategy.DARTS` strategy is provided as one of NNI's :doc:`built-in search strategies `.\nUsing it can be as simple as one line of code.\n\n" ] }, { @@ -116,14 +116,14 @@ }, "outputs": [], "source": [ - "from nni.retiarii.strategy import DARTS as DartsStrategy\n\nstrategy = DartsStrategy()" + "from nni.nas.strategy import DARTS as DartsStrategy\n\nstrategy = DartsStrategy()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - ".. tip:: The ``DartsStrategy`` here can be replaced by any search strategies, even multi-trial strategies.\n\nIf you want to know how DARTS strategy works, here is a brief version.\nUnder the hood, DARTS converts the cell into a densely connected graph, and put operators on edges (see the following figure).\nSince the operators are not decided yet, every edge is a weighted mixture of multiple operators (multiple color in the figure).\nDARTS then learns to assign the optimal \"color\" for each edge during the network training.\nIt finally selects one \"color\" for each edge, and drops redundant edges.\nThe weights on the edges are called *architecture weights*.\n\n\n\n.. tip:: It's NOT reflected in the figure that, for DARTS model space, exactly two inputs are kept for every node.\n\n### Launch experiment\n\nWe then come to the step of launching the experiment.\nThis step is similar to what we have done in the :doc:`beginner tutorial `,\nexcept that the ``execution_engine`` argument should be set to ``oneshot``.\n\n" + ".. tip:: The ``DartsStrategy`` here can be replaced by any search strategies, even multi-trial strategies.\n\nIf you want to know how DARTS strategy works, here is a brief version.\nUnder the hood, DARTS converts the cell into a densely connected graph, and put operators on edges (see the following figure).\nSince the operators are not decided yet, every edge is a weighted mixture of multiple operators (multiple color in the figure).\nDARTS then learns to assign the optimal \"color\" for each edge during the network training.\nIt finally selects one \"color\" for each edge, and drops redundant edges.\nThe weights on the edges are called *architecture weights*.\n\n\n\n.. tip:: It's NOT reflected in the figure that, for DARTS model space, exactly two inputs are kept for every node.\n\n### Launch experiment\n\nWe then come to the step of launching the experiment.\nThis step is similar to what we have done in the :doc:`beginner tutorial `.\n\n" ] }, { @@ -134,7 +134,7 @@ }, "outputs": [], "source": [ - "from nni.retiarii.experiment.pytorch import RetiariiExperiment, RetiariiExeConfig\n\nconfig = RetiariiExeConfig(execution_engine='oneshot')\nexperiment = RetiariiExperiment(model_space, evaluator=evaluator, strategy=strategy)\nexperiment.run(config)" + "from nni.nas.experiment import NasExperiment\n\nexperiment = NasExperiment(model_space, evaluator, strategy)\nexperiment.run()" ] }, { @@ -152,7 +152,7 @@ }, "outputs": [], "source": [ - "exported_arch = experiment.export_top_models()[0]\n\nexported_arch" + "exported_arch = experiment.export_top_models(formatter='dict')[0]\n\nexported_arch" ] }, { @@ -195,7 +195,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Retrain the searched model\n\nWhat we have got in the last step, is only a cell structure.\nTo get a final usable model with trained weights, we need to construct a real model based on this structure,\nand then fully train it.\n\nTo construct a fixed model based on the architecture dict exported from the experiment,\nwe can use :func:`nni.retiarii.fixed_arch`. Under the with-context, we will creating a fixed model based on ``exported_arch``,\ninstead of creating a space.\n\n" + "## Retrain the searched model\n\nWhat we have got in the last step, is only a cell structure.\nTo get a final usable model with trained weights, we need to construct a real model based on this structure,\nand then fully train it.\n\nTo construct a fixed model based on the architecture dict exported from the experiment,\nwe can use :func:`nni.nas.space.model_context`. Under the with-context, we will creating a fixed model based on ``exported_arch``,\ninstead of creating a space.\n\n" ] }, { @@ -206,7 +206,7 @@ }, "outputs": [], "source": [ - "from nni.retiarii import fixed_arch\n\nwith fixed_arch(exported_arch):\n final_model = DartsSpace(width=16, num_cells=8, dataset='cifar')" + "from nni.nas.space import model_context\n\nwith model_context(exported_arch):\n final_model = DartsSpace(width=16, num_cells=8, dataset='cifar')" ] }, { @@ -249,7 +249,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We must create a new evaluator here because a different data split is used.\nAlso, we should avoid the underlying pytorch-lightning implementation of :class:`~nni.retiarii.evaluator.pytorch.Classification`\nevaluator from loading the wrong checkpoint.\n\n" + "We must create a new evaluator here because a different data split is used.\nAlso, we should avoid the underlying pytorch-lightning implementation of :class:`~nni.nas.evaluator.pytorch.Classification`\nevaluator from loading the wrong checkpoint.\n\n" ] }, { @@ -267,7 +267,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "

Note

When ``fast_dev_run`` is turned off, we achieve a validation accuracy of 89.69% after training for 100 epochs.

\n\n## Reproduce results in DARTS paper\n\nAfter a brief walkthrough of search + retrain process with one-shot strategy,\nwe then fill the gap between our results (89.69%) and the results in the `DARTS` paper.\nThis is because we didn't introduce some extra training tricks, including [DropPath](https://arxiv.org/pdf/1605.07648v4.pdf)_,\nAuxiliary loss, gradient clipping and augmentations like [Cutout](https://arxiv.org/pdf/1708.04552v2.pdf)_.\nThey also train the deeper (20 cells) and wider (36 filters) networks for longer time (600 epochs).\nHere we reproduce these tricks to get comparable results with DARTS paper.\n\n\n### Evaluator\n\nTo implement these tricks, we first need to rewrite a few parts of evaluator.\n\nWorking with one-shot strategies, evaluators need to be implemented in the style of `PyTorch-Lightning `,\nThe full tutorial can be found in :doc:`/nas/evaluator`.\nPutting it briefly, the core part of writing a new evaluator is to write a new LightningModule.\n[LightingModule](https://pytorch-lightning.readthedocs.io/en/stable/common/lightning_module.html)_ is a concept in\nPyTorch-Lightning, which organizes the model training process into a list of functions, such as,\n``training_step``, ``validation_step``, ``configure_optimizers``, etc.\nSince we are merely adding a few ingredients to :class:`~nni.retiarii.evaluator.pytorch.Classification`,\nwe can simply inherit :class:`~nni.retiarii.evaluator.pytorch.ClassificationModule`, which is the underlying LightningModule\nbehind :class:`~nni.retiarii.evaluator.pytorch.Classification`.\nThis could look intimidating at first, but most of them are just plug-and-play tricks which you don't need to know details about.\n\n" + "

Note

When ``fast_dev_run`` is turned off, we achieve a validation accuracy of 89.69% after training for 100 epochs.

\n\n## Reproduce results in DARTS paper\n\nAfter a brief walkthrough of search + retrain process with one-shot strategy,\nwe then fill the gap between our results (89.69%) and the results in the `DARTS` paper.\nThis is because we didn't introduce some extra training tricks, including [DropPath](https://arxiv.org/pdf/1605.07648v4.pdf)_,\nAuxiliary loss, gradient clipping and augmentations like [Cutout](https://arxiv.org/pdf/1708.04552v2.pdf)_.\nThey also train the deeper (20 cells) and wider (36 filters) networks for longer time (600 epochs).\nHere we reproduce these tricks to get comparable results with DARTS paper.\n\n\n### Evaluator\n\nTo implement these tricks, we first need to rewrite a few parts of evaluator.\n\nWorking with one-shot strategies, evaluators need to be implemented in the style of `PyTorch-Lightning `,\nThe full tutorial can be found in :doc:`/nas/evaluator`.\nPutting it briefly, the core part of writing a new evaluator is to write a new LightningModule.\n[LightingModule](https://pytorch-lightning.readthedocs.io/en/stable/common/lightning_module.html)_ is a concept in\nPyTorch-Lightning, which organizes the model training process into a list of functions, such as,\n``training_step``, ``validation_step``, ``configure_optimizers``, etc.\nSince we are merely adding a few ingredients to :class:`~nni.nas.evaluator.pytorch.Classification`,\nwe can simply inherit :class:`~nni.nas.evaluator.pytorch.ClassificationModule`, which is the underlying LightningModule\nbehind :class:`~nni.nas.evaluator.pytorch.Classification`.\nThis could look intimidating at first, but most of them are just plug-and-play tricks which you don't need to know details about.\n\n" ] }, { @@ -278,14 +278,14 @@ }, "outputs": [], "source": [ - "import torch\nfrom nni.retiarii.evaluator.pytorch import ClassificationModule\n\nclass DartsClassificationModule(ClassificationModule):\n def __init__(\n self,\n learning_rate: float = 0.001,\n weight_decay: float = 0.,\n auxiliary_loss_weight: float = 0.4,\n max_epochs: int = 600\n ):\n self.auxiliary_loss_weight = auxiliary_loss_weight\n # Training length will be used in LR scheduler\n self.max_epochs = max_epochs\n super().__init__(learning_rate=learning_rate, weight_decay=weight_decay, export_onnx=False)\n\n def configure_optimizers(self):\n \"\"\"Customized optimizer with momentum, as well as a scheduler.\"\"\"\n optimizer = torch.optim.SGD(\n self.parameters(),\n momentum=0.9,\n lr=self.hparams.learning_rate,\n weight_decay=self.hparams.weight_decay\n )\n return {\n 'optimizer': optimizer,\n 'lr_scheduler': torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, self.max_epochs, eta_min=1e-3)\n }\n\n def training_step(self, batch, batch_idx):\n \"\"\"Training step, customized with auxiliary loss.\"\"\"\n x, y = batch\n if self.auxiliary_loss_weight:\n y_hat, y_aux = self(x)\n loss_main = self.criterion(y_hat, y)\n loss_aux = self.criterion(y_aux, y)\n self.log('train_loss_main', loss_main)\n self.log('train_loss_aux', loss_aux)\n loss = loss_main + self.auxiliary_loss_weight * loss_aux\n else:\n y_hat = self(x)\n loss = self.criterion(y_hat, y)\n self.log('train_loss', loss, prog_bar=True)\n for name, metric in self.metrics.items():\n self.log('train_' + name, metric(y_hat, y), prog_bar=True)\n return loss\n\n def on_train_epoch_start(self):\n # Set drop path probability before every epoch. This has no effect if drop path is not enabled in model.\n self.model.set_drop_path_prob(self.model.drop_path_prob * self.current_epoch / self.max_epochs)\n\n # Logging learning rate at the beginning of every epoch\n self.log('lr', self.trainer.optimizers[0].param_groups[0]['lr'])" + "import torch\nfrom nni.nas.evaluator.pytorch import ClassificationModule\n\nclass DartsClassificationModule(ClassificationModule):\n def __init__(\n self,\n learning_rate: float = 0.001,\n weight_decay: float = 0.,\n auxiliary_loss_weight: float = 0.4,\n max_epochs: int = 600\n ):\n self.auxiliary_loss_weight = auxiliary_loss_weight\n # Training length will be used in LR scheduler\n self.max_epochs = max_epochs\n super().__init__(learning_rate=learning_rate, weight_decay=weight_decay, export_onnx=False)\n\n def configure_optimizers(self):\n \"\"\"Customized optimizer with momentum, as well as a scheduler.\"\"\"\n optimizer = torch.optim.SGD(\n self.parameters(),\n momentum=0.9,\n lr=self.hparams.learning_rate,\n weight_decay=self.hparams.weight_decay\n )\n return {\n 'optimizer': optimizer,\n 'lr_scheduler': torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, self.max_epochs, eta_min=1e-3)\n }\n\n def training_step(self, batch, batch_idx):\n \"\"\"Training step, customized with auxiliary loss.\"\"\"\n x, y = batch\n if self.auxiliary_loss_weight:\n y_hat, y_aux = self(x)\n loss_main = self.criterion(y_hat, y)\n loss_aux = self.criterion(y_aux, y)\n self.log('train_loss_main', loss_main)\n self.log('train_loss_aux', loss_aux)\n loss = loss_main + self.auxiliary_loss_weight * loss_aux\n else:\n y_hat = self(x)\n loss = self.criterion(y_hat, y)\n self.log('train_loss', loss, prog_bar=True)\n for name, metric in self.metrics.items():\n self.log('train_' + name, metric(y_hat, y), prog_bar=True)\n return loss\n\n def on_train_epoch_start(self):\n # Set drop path probability before every epoch. This has no effect if drop path is not enabled in model.\n self.model.set_drop_path_prob(self.model.drop_path_prob * self.current_epoch / self.max_epochs)\n\n # Logging learning rate at the beginning of every epoch\n self.log('lr', self.trainer.optimizers[0].param_groups[0]['lr'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The full evaluator is written as follows,\nwhich simply wraps everything (except model space and search strategy of course), in a single object.\n:class:`~nni.retiarii.evaluator.pytorch.Lightning` here is a special type of evaluator.\nDon't forget to use the train/val data split specialized for search (1:1) here.\n\n" + "The full evaluator is written as follows,\nwhich simply wraps everything (except model space and search strategy of course), in a single object.\n:class:`~nni.nas.evaluator.pytorch.Lightning` here is a special type of evaluator.\nDon't forget to use the train/val data split specialized for search (1:1) here.\n\n" ] }, { @@ -296,14 +296,14 @@ }, "outputs": [], "source": [ - "from nni.retiarii.evaluator.pytorch import Lightning, Trainer\n\nmax_epochs = 50\n\nevaluator = Lightning(\n DartsClassificationModule(0.025, 3e-4, 0., max_epochs),\n Trainer(\n gpus=1,\n max_epochs=max_epochs,\n fast_dev_run=fast_dev_run,\n ),\n train_dataloaders=search_train_loader,\n val_dataloaders=search_valid_loader\n)" + "from nni.nas.evaluator.pytorch import Lightning, Trainer\n\nmax_epochs = 50\n\nevaluator = Lightning(\n DartsClassificationModule(0.025, 3e-4, 0., max_epochs),\n Trainer(\n gpus=1,\n max_epochs=max_epochs,\n fast_dev_run=fast_dev_run,\n ),\n train_dataloaders=search_train_loader,\n val_dataloaders=search_valid_loader\n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Strategy\n\n:class:`~nni.retiarii.strategy.DARTS` strategy is created with gradient clip turned on.\nIf you are familiar with PyTorch-Lightning, you might aware that gradient clipping can be enabled in Lightning trainer.\nHowever, enabling gradient clip in the trainer above won't work, because the underlying\nimplementation of :class:`~nni.retiarii.strategy.DARTS` strategy is based on\n[manual optimization](https://pytorch-lightning.readthedocs.io/en/stable/common/optimization.html)_.\n\n" + "### Strategy\n\n:class:`~nni.nas.strategy.DARTS` strategy is created with gradient clip turned on.\nIf you are familiar with PyTorch-Lightning, you might aware that gradient clipping can be enabled in Lightning trainer.\nHowever, enabling gradient clip in the trainer above won't work, because the underlying\nimplementation of :class:`~nni.nas.strategy.DARTS` strategy is based on\n[manual optimization](https://pytorch-lightning.readthedocs.io/en/stable/common/optimization.html)_.\n\n" ] }, { @@ -332,7 +332,7 @@ }, "outputs": [], "source": [ - "model_space = DartsSpace(width=16, num_cells=8, dataset='cifar')\n\nconfig = RetiariiExeConfig(execution_engine='oneshot')\nexperiment = RetiariiExperiment(model_space, evaluator=evaluator, strategy=strategy)\nexperiment.run(config)\n\nexported_arch = experiment.export_top_models()[0]\n\nexported_arch" + "model_space = DartsSpace(width=16, num_cells=8, dataset='cifar')\n\nexperiment = NasExperiment(model_space, evaluator, strategy)\nexperiment.run()\n\nexported_arch = experiment.export_top_models(formatter='dict')[0]\n\nexported_arch" ] }, { @@ -404,7 +404,7 @@ }, "outputs": [], "source": [ - "with fixed_arch(exported_arch):\n final_model = DartsSpace(width=36, num_cells=20, dataset='cifar', auxiliary_loss=True, drop_path_prob=0.2)" + "with model_context(exported_arch):\n final_model = DartsSpace(width=36, num_cells=20, dataset='cifar', auxiliary_loss=True, drop_path_prob=0.2)" ] }, { @@ -449,7 +449,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/docs/source/tutorials/darts.py b/docs/source/tutorials/darts.py index b0ec5b3cb..68b4bbc65 100644 --- a/docs/source/tutorials/darts.py +++ b/docs/source/tutorials/darts.py @@ -15,7 +15,7 @@ In the end, we get a strong-performing model on CIFAR-10 dataset, which achieves .. attention:: Running this tutorial requires a GPU. - If you don't have one, you can set ``gpus`` in :class:`~nni.retiarii.evaluator.pytorch.Classification` to be 0, + If you don't have one, you can set ``gpus`` in :class:`~nni.nas.evaluator.pytorch.Classification` to be 0, but do note that it will be much slower. .. _DARTS: https://arxiv.org/abs/1806.09055 @@ -34,7 +34,7 @@ import nni import torch from torchvision import transforms from torchvision.datasets import CIFAR10 -from nni.retiarii.evaluator.pytorch import DataLoader +from nni.nas.evaluator.pytorch import DataLoader CIFAR_MEAN = [0.49139968, 0.48215827, 0.44653124] CIFAR_STD = [0.24703233, 0.24348505, 0.26158768] @@ -51,7 +51,7 @@ valid_loader = DataLoader(valid_data, batch_size=256, num_workers=6) # .. note:: # # If you are to use multi-trial strategies, wrapping CIFAR10 with :func:`nni.trace` and -# use DataLoader from ``nni.retiarii.evaluator.pytorch`` (instead of ``torch.utils.data``) are mandatory. +# use DataLoader from ``nni.nas.evaluator.pytorch`` (instead of ``torch.utils.data``) are mandatory. # Otherwise, it's optional. # # NNI presents many built-in model spaces, along with many *pre-searched models* in :doc:`model space hub `, @@ -69,7 +69,7 @@ valid_loader = DataLoader(valid_data, batch_size=256, num_workers=6) # `this tutorial of object detection finetuning `__ # if you want to know how finetuning is generally done in PyTorch. -from nni.retiarii.hub.pytorch import DARTS as DartsSpace +from nni.nas.hub.pytorch import DARTS as DartsSpace darts_v2_model = DartsSpace.load_searched_model('darts-v2', pretrained=True, download=True) @@ -93,7 +93,7 @@ evaluate_model(darts_v2_model, cuda=True) # Set this to false if there's no GPU # %% # # The journey of using a pre-searched model could end here. Or you are interested, -# we can go a step further to search a model within :class:`~nni.retiarii.hub.pytorch.DARTS` space on our own. +# we can go a step further to search a model within :class:`~nni.nas.hub.pytorch.DARTS` space on our own. # # Use the DARTS model space # ------------------------- @@ -141,15 +141,15 @@ evaluate_model(darts_v2_model, cuda=True) # Set this to false if there's no GPU # `DARTS`_ is one of those papers that innovate both in search space and search strategy. # In this tutorial, we will search on **model space** provided by DARTS with **search strategy** proposed by DARTS. # We refer to them as *DARTS model space* (``DartsSpace``) and *DARTS strategy* (``DartsStrategy``), respectively. -# We did NOT imply that the :class:`~nni.retiarii.hub.pytorch.DARTS` space and -# :class:`~nni.retiarii.strategy.DARTS` strategy has to used together. +# We did NOT imply that the :class:`~nni.nas.hub.pytorch.DARTS` space and +# :class:`~nni.nas.strategy.DARTS` strategy has to used together. # You can always explore the DARTS space with another search strategy, or use your own strategy to search a different model space. # -# In the following example, we initialize a :class:`~nni.retiarii.hub.pytorch.DARTS` +# In the following example, we initialize a :class:`~nni.nas.hub.pytorch.DARTS` # model space, with 16 initial filters and 8 stacked cells. # The network is specialized for CIFAR-10 dataset with 32x32 input resolution. # -# The :class:`~nni.retiarii.hub.pytorch.DARTS` model space here is provided by :doc:`model space hub `, +# The :class:`~nni.nas.hub.pytorch.DARTS` model space here is provided by :doc:`model space hub `, # where we have supported multiple popular model spaces for plug-and-play. # # .. tip:: @@ -181,7 +181,7 @@ fast_dev_run = True # ^^^^^^^^^ # # To begin exploring the model space, one firstly need to have an evaluator to provide the criterion of a "good model". -# As we are searching on CIFAR-10 dataset, one can easily use the :class:`~nni.retiarii.evaluator.pytorch.Classification` +# As we are searching on CIFAR-10 dataset, one can easily use the :class:`~nni.nas.evaluator.pytorch.Classification` # as a starting point. # # Note that for a typical setup of NAS, the model search should be on validation set, and the evaluation of the final searched model @@ -190,7 +190,7 @@ fast_dev_run = True # The recommended train/val split by `DARTS`_ strategy is 1:1. import numpy as np -from nni.retiarii.evaluator.pytorch import Classification +from nni.nas.evaluator.pytorch import Classification from torch.utils.data import SubsetRandomSampler transform = transforms.Compose([ @@ -232,7 +232,7 @@ evaluator = Classification( # ^^^^^^^^ # # We will use `DARTS`_ (Differentiable ARchiTecture Search) as the search strategy to explore the model space. -# :class:`~nni.retiarii.strategy.DARTS` strategy belongs to the category of :ref:`one-shot strategy `. +# :class:`~nni.nas.strategy.DARTS` strategy belongs to the category of :ref:`one-shot strategy `. # The fundamental differences between One-shot strategies and :ref:`multi-trial strategies ` is that, # one-shot strategy combines search with model training into a single run. # Compared to multi-trial strategies, one-shot NAS doesn't need to iteratively spawn new trials (i.e., models), @@ -246,10 +246,10 @@ evaluator = Classification( # and # `How Does Supernet Help in Neural Architecture Search? `__ for interested readers. # -# :class:`~nni.retiarii.strategy.DARTS` strategy is provided as one of NNI's :doc:`built-in search strategies `. +# :class:`~nni.nas.strategy.DARTS` strategy is provided as one of NNI's :doc:`built-in search strategies `. # Using it can be as simple as one line of code. -from nni.retiarii.strategy import DARTS as DartsStrategy +from nni.nas.strategy import DARTS as DartsStrategy strategy = DartsStrategy() @@ -272,14 +272,12 @@ strategy = DartsStrategy() # ^^^^^^^^^^^^^^^^^ # # We then come to the step of launching the experiment. -# This step is similar to what we have done in the :doc:`beginner tutorial `, -# except that the ``execution_engine`` argument should be set to ``oneshot``. +# This step is similar to what we have done in the :doc:`beginner tutorial `. -from nni.retiarii.experiment.pytorch import RetiariiExperiment, RetiariiExeConfig +from nni.nas.experiment import NasExperiment -config = RetiariiExeConfig(execution_engine='oneshot') -experiment = RetiariiExperiment(model_space, evaluator=evaluator, strategy=strategy) -experiment.run(config) +experiment = NasExperiment(model_space, evaluator, strategy) +experiment.run() # %% # @@ -296,7 +294,7 @@ experiment.run(config) # We can then retrieve the best model found by the strategy with ``export_top_models``. # Here, the retrieved model is a dict (called *architecture dict*) describing the selected normal cell and reduction cell. -exported_arch = experiment.export_top_models()[0] +exported_arch = experiment.export_top_models(formatter='dict')[0] exported_arch @@ -411,12 +409,12 @@ plot_double_cells({ # and then fully train it. # # To construct a fixed model based on the architecture dict exported from the experiment, -# we can use :func:`nni.retiarii.fixed_arch`. Under the with-context, we will creating a fixed model based on ``exported_arch``, +# we can use :func:`nni.nas.space.model_context`. Under the with-context, we will creating a fixed model based on ``exported_arch``, # instead of creating a space. -from nni.retiarii import fixed_arch +from nni.nas.space import model_context -with fixed_arch(exported_arch): +with model_context(exported_arch): final_model = DartsSpace(width=16, num_cells=8, dataset='cifar') # %% @@ -434,7 +432,7 @@ valid_loader # %% # # We must create a new evaluator here because a different data split is used. -# Also, we should avoid the underlying pytorch-lightning implementation of :class:`~nni.retiarii.evaluator.pytorch.Classification` +# Also, we should avoid the underlying pytorch-lightning implementation of :class:`~nni.nas.evaluator.pytorch.Classification` # evaluator from loading the wrong checkpoint. max_epochs = 100 @@ -478,13 +476,13 @@ evaluator.fit(final_model) # `LightingModule `__ is a concept in # PyTorch-Lightning, which organizes the model training process into a list of functions, such as, # ``training_step``, ``validation_step``, ``configure_optimizers``, etc. -# Since we are merely adding a few ingredients to :class:`~nni.retiarii.evaluator.pytorch.Classification`, -# we can simply inherit :class:`~nni.retiarii.evaluator.pytorch.ClassificationModule`, which is the underlying LightningModule -# behind :class:`~nni.retiarii.evaluator.pytorch.Classification`. +# Since we are merely adding a few ingredients to :class:`~nni.nas.evaluator.pytorch.Classification`, +# we can simply inherit :class:`~nni.nas.evaluator.pytorch.ClassificationModule`, which is the underlying LightningModule +# behind :class:`~nni.nas.evaluator.pytorch.Classification`. # This could look intimidating at first, but most of them are just plug-and-play tricks which you don't need to know details about. import torch -from nni.retiarii.evaluator.pytorch import ClassificationModule +from nni.nas.evaluator.pytorch import ClassificationModule class DartsClassificationModule(ClassificationModule): def __init__( @@ -541,10 +539,10 @@ class DartsClassificationModule(ClassificationModule): # # The full evaluator is written as follows, # which simply wraps everything (except model space and search strategy of course), in a single object. -# :class:`~nni.retiarii.evaluator.pytorch.Lightning` here is a special type of evaluator. +# :class:`~nni.nas.evaluator.pytorch.Lightning` here is a special type of evaluator. # Don't forget to use the train/val data split specialized for search (1:1) here. -from nni.retiarii.evaluator.pytorch import Lightning, Trainer +from nni.nas.evaluator.pytorch import Lightning, Trainer max_epochs = 50 @@ -564,10 +562,10 @@ evaluator = Lightning( # Strategy # ^^^^^^^^ # -# :class:`~nni.retiarii.strategy.DARTS` strategy is created with gradient clip turned on. +# :class:`~nni.nas.strategy.DARTS` strategy is created with gradient clip turned on. # If you are familiar with PyTorch-Lightning, you might aware that gradient clipping can be enabled in Lightning trainer. # However, enabling gradient clip in the trainer above won't work, because the underlying -# implementation of :class:`~nni.retiarii.strategy.DARTS` strategy is based on +# implementation of :class:`~nni.nas.strategy.DARTS` strategy is based on # `manual optimization `__. strategy = DartsStrategy(gradient_clip_val=5.) @@ -586,11 +584,10 @@ strategy = DartsStrategy(gradient_clip_val=5.) model_space = DartsSpace(width=16, num_cells=8, dataset='cifar') -config = RetiariiExeConfig(execution_engine='oneshot') -experiment = RetiariiExperiment(model_space, evaluator=evaluator, strategy=strategy) -experiment.run(config) +experiment = NasExperiment(model_space, evaluator, strategy) +experiment.run() -exported_arch = experiment.export_top_models()[0] +exported_arch = experiment.export_top_models(formatter='dict')[0] exported_arch @@ -684,7 +681,7 @@ train_loader_cutout = DataLoader(train_data_cutout, batch_size=96) # Following the same procedure as paper, we also increase the number of filters to 36, and number of cells to 20, # so as to reasonably increase the model size and boost the performance. -with fixed_arch(exported_arch): +with model_context(exported_arch): final_model = DartsSpace(width=36, num_cells=20, dataset='cifar', auxiliary_loss=True, drop_path_prob=0.2) # %% diff --git a/docs/source/tutorials/darts.py.md5 b/docs/source/tutorials/darts.py.md5 index a99344847..7de717a0d 100644 --- a/docs/source/tutorials/darts.py.md5 +++ b/docs/source/tutorials/darts.py.md5 @@ -1 +1 @@ -f314677f825241fdc926f4d01c55680d \ No newline at end of file +9d3fcdd210dc926847438a0320b075cf \ No newline at end of file diff --git a/docs/source/tutorials/darts.rst b/docs/source/tutorials/darts.rst index 409eca1de..560e84af5 100644 --- a/docs/source/tutorials/darts.rst +++ b/docs/source/tutorials/darts.rst @@ -10,7 +10,7 @@ .. note:: :class: sphx-glr-download-link-note - Click :ref:`here ` + :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title @@ -34,7 +34,7 @@ In the end, we get a strong-performing model on CIFAR-10 dataset, which achieves .. attention:: Running this tutorial requires a GPU. - If you don't have one, you can set ``gpus`` in :class:`~nni.retiarii.evaluator.pytorch.Classification` to be 0, + If you don't have one, you can set ``gpus`` in :class:`~nni.nas.evaluator.pytorch.Classification` to be 0, but do note that it will be much slower. .. _DARTS: https://arxiv.org/abs/1806.09055 @@ -57,7 +57,7 @@ We first load the CIFAR-10 dataset with torchvision. import torch from torchvision import transforms from torchvision.datasets import CIFAR10 - from nni.retiarii.evaluator.pytorch import DataLoader + from nni.nas.evaluator.pytorch import DataLoader CIFAR_MEAN = [0.49139968, 0.48215827, 0.44653124] CIFAR_STD = [0.24703233, 0.24348505, 0.26158768] @@ -87,7 +87,7 @@ We first load the CIFAR-10 dataset with torchvision. .. note:: If you are to use multi-trial strategies, wrapping CIFAR10 with :func:`nni.trace` and - use DataLoader from ``nni.retiarii.evaluator.pytorch`` (instead of ``torch.utils.data``) are mandatory. + use DataLoader from ``nni.nas.evaluator.pytorch`` (instead of ``torch.utils.data``) are mandatory. Otherwise, it's optional. NNI presents many built-in model spaces, along with many *pre-searched models* in :doc:`model space hub `, @@ -110,7 +110,7 @@ so as to save the tedious steps of finetuning. .. code-block:: default - from nni.retiarii.hub.pytorch import DARTS as DartsSpace + from nni.nas.hub.pytorch import DARTS as DartsSpace darts_v2_model = DartsSpace.load_searched_model('darts-v2', pretrained=True, download=True) @@ -139,6 +139,43 @@ so as to save the tedious steps of finetuning. .. code-block:: none + + /home/yugzhan/miniconda3/envs/cu102/lib/python3.8/site-packages/ray/autoscaler/_private/cli_logger.py:57: FutureWarning: Not all Ray CLI dependencies were found. In Ray 1.4+, the Ray CLI, autoscaler, and dashboard will only be usable via `pip install 'ray[default]'`. Please update your install command. + warnings.warn( + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a int in torch.ops.aten because has no attribute int. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a dim in torch.ops.aten because has no attribute dim. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a default in torch.ops.aten because has no attribute default. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:112: UserWarning: Fail to register shape inference formula for aten operator _reshape_alias because: No such operator aten::_reshape_alias + warnings.warn(f'Fail to register shape inference formula for aten operator {name} because: {e}') + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a Tensor in torch.ops.aten because has no attribute Tensor. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a Tensor in torch.ops.aten because has no attribute Tensor. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' + /home/yugzhan/nni/nni/nas/profiler/pytorch/utils/shape_formula.py:107: UserWarning: Cannot find a Tensor in torch.ops.aten because has no attribute Tensor. Skip registering the shape inference formula. + warnings.warn(f'Cannot find a {name} in torch.ops.aten because {object} has no attribute {name}. ' Accuracy: 0.9737 0.9737 @@ -148,7 +185,7 @@ so as to save the tedious steps of finetuning. .. GENERATED FROM PYTHON SOURCE LINES 94-158 The journey of using a pre-searched model could end here. Or you are interested, -we can go a step further to search a model within :class:`~nni.retiarii.hub.pytorch.DARTS` space on our own. +we can go a step further to search a model within :class:`~nni.nas.hub.pytorch.DARTS` space on our own. Use the DARTS model space ------------------------- @@ -196,15 +233,15 @@ during the search phase, and increase them back when training the final searched `DARTS`_ is one of those papers that innovate both in search space and search strategy. In this tutorial, we will search on **model space** provided by DARTS with **search strategy** proposed by DARTS. We refer to them as *DARTS model space* (``DartsSpace``) and *DARTS strategy* (``DartsStrategy``), respectively. - We did NOT imply that the :class:`~nni.retiarii.hub.pytorch.DARTS` space and - :class:`~nni.retiarii.strategy.DARTS` strategy has to used together. + We did NOT imply that the :class:`~nni.nas.hub.pytorch.DARTS` space and + :class:`~nni.nas.strategy.DARTS` strategy has to used together. You can always explore the DARTS space with another search strategy, or use your own strategy to search a different model space. -In the following example, we initialize a :class:`~nni.retiarii.hub.pytorch.DARTS` +In the following example, we initialize a :class:`~nni.nas.hub.pytorch.DARTS` model space, with 16 initial filters and 8 stacked cells. The network is specialized for CIFAR-10 dataset with 32x32 input resolution. -The :class:`~nni.retiarii.hub.pytorch.DARTS` model space here is provided by :doc:`model space hub `, +The :class:`~nni.nas.hub.pytorch.DARTS` model space here is provided by :doc:`model space hub `, where we have supported multiple popular model spaces for plug-and-play. .. tip:: @@ -260,7 +297,7 @@ Evaluator ^^^^^^^^^ To begin exploring the model space, one firstly need to have an evaluator to provide the criterion of a "good model". -As we are searching on CIFAR-10 dataset, one can easily use the :class:`~nni.retiarii.evaluator.pytorch.Classification` +As we are searching on CIFAR-10 dataset, one can easily use the :class:`~nni.nas.evaluator.pytorch.Classification` as a starting point. Note that for a typical setup of NAS, the model search should be on validation set, and the evaluation of the final searched model @@ -274,7 +311,7 @@ The recommended train/val split by `DARTS`_ strategy is 1:1. import numpy as np - from nni.retiarii.evaluator.pytorch import Classification + from nni.nas.evaluator.pytorch import Classification from torch.utils.data import SubsetRandomSampler transform = transforms.Compose([ @@ -319,13 +356,8 @@ The recommended train/val split by `DARTS`_ strategy is 1:1. .. code-block:: none Files already downloaded and verified - /data/data0/jiahang/miniconda3/lib/python3.8/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py:447: LightningDeprecationWarning: Setting `Trainer(gpus=1)` is deprecated in v1.7 and will be removed in v2.0. Please use `Trainer(accelerator='gpu', devices=1)` instead. + /home/yugzhan/miniconda3/envs/cu102/lib/python3.8/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py:446: LightningDeprecationWarning: Setting `Trainer(gpus=1)` is deprecated in v1.7 and will be removed in v2.0. Please use `Trainer(accelerator='gpu', devices=1)` instead. rank_zero_deprecation( - GPU available: True (cuda), used: True - TPU available: False, using: 0 TPU cores - IPU available: False, using: 0 IPUs - HPU available: False, using: 0 HPUs - Running in `fast_dev_run` mode: will run the requested loop using 1 batch(es). Logging and checkpointing is suppressed. @@ -336,7 +368,7 @@ Strategy ^^^^^^^^ We will use `DARTS`_ (Differentiable ARchiTecture Search) as the search strategy to explore the model space. -:class:`~nni.retiarii.strategy.DARTS` strategy belongs to the category of :ref:`one-shot strategy `. +:class:`~nni.nas.strategy.DARTS` strategy belongs to the category of :ref:`one-shot strategy `. The fundamental differences between One-shot strategies and :ref:`multi-trial strategies ` is that, one-shot strategy combines search with model training into a single run. Compared to multi-trial strategies, one-shot NAS doesn't need to iteratively spawn new trials (i.e., models), @@ -350,7 +382,7 @@ and thus saves the excessive cost of model training. and `How Does Supernet Help in Neural Architecture Search? `__ for interested readers. -:class:`~nni.retiarii.strategy.DARTS` strategy is provided as one of NNI's :doc:`built-in search strategies `. +:class:`~nni.nas.strategy.DARTS` strategy is provided as one of NNI's :doc:`built-in search strategies `. Using it can be as simple as one line of code. .. GENERATED FROM PYTHON SOURCE LINES 251-256 @@ -358,7 +390,7 @@ Using it can be as simple as one line of code. .. code-block:: default - from nni.retiarii.strategy import DARTS as DartsStrategy + from nni.nas.strategy import DARTS as DartsStrategy strategy = DartsStrategy() @@ -369,7 +401,7 @@ Using it can be as simple as one line of code. -.. GENERATED FROM PYTHON SOURCE LINES 257-276 +.. GENERATED FROM PYTHON SOURCE LINES 257-275 .. tip:: The ``DartsStrategy`` here can be replaced by any search strategies, even multi-trial strategies. @@ -388,19 +420,17 @@ Launch experiment ^^^^^^^^^^^^^^^^^ We then come to the step of launching the experiment. -This step is similar to what we have done in the :doc:`beginner tutorial `, -except that the ``execution_engine`` argument should be set to ``oneshot``. +This step is similar to what we have done in the :doc:`beginner tutorial `. -.. GENERATED FROM PYTHON SOURCE LINES 277-284 +.. GENERATED FROM PYTHON SOURCE LINES 276-282 .. code-block:: default - from nni.retiarii.experiment.pytorch import RetiariiExperiment, RetiariiExeConfig + from nni.nas.experiment import NasExperiment - config = RetiariiExeConfig(execution_engine='oneshot') - experiment = RetiariiExperiment(model_space, evaluator=evaluator, strategy=strategy) - experiment.run(config) + experiment = NasExperiment(model_space, evaluator, strategy) + experiment.run() @@ -410,25 +440,16 @@ except that the ``execution_engine`` argument should be set to ``oneshot``. .. code-block:: none - LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [3] - - | Name | Type | Params - ----------------------------------------------- - 0 | model | ClassificationModule | 3.0 M - ----------------------------------------------- - 3.0 M Trainable params - 0 Non-trainable params - 3.0 M Total params - 12.164 Total estimated model params size (MB) - /data/data0/jiahang/miniconda3/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py:1892: PossibleUserWarning: The number of training batches (1) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch. + `training_service` will be ignored for sequential execution engine. + /home/yugzhan/miniconda3/envs/cu102/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py:1555: PossibleUserWarning: The number of training batches (1) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch. rank_zero_warn( - Training: 0it [00:00, ?it/s] Training: 0%| | 0/1 [00:00`__). -.. GENERATED FROM PYTHON SOURCE LINES 307-362 +.. GENERATED FROM PYTHON SOURCE LINES 305-360 .. code-block:: default @@ -541,14 +562,14 @@ The cell can be visualized with the following code snippet -.. GENERATED FROM PYTHON SOURCE LINES 363-367 +.. GENERATED FROM PYTHON SOURCE LINES 361-365 .. warning:: The cell above is obtained via ``fast_dev_run`` (i.e., running only 1 mini-batch). When ``fast_dev_run`` is turned off, we get a model with the following architecture, where you might notice an interesting fact that around half the operations have selected ``sep_conv_3x3``. -.. GENERATED FROM PYTHON SOURCE LINES 368-404 +.. GENERATED FROM PYTHON SOURCE LINES 366-402 .. code-block:: default @@ -600,7 +621,7 @@ where you might notice an interesting fact that around half the operations have -.. GENERATED FROM PYTHON SOURCE LINES 405-415 +.. GENERATED FROM PYTHON SOURCE LINES 403-413 Retrain the searched model -------------------------- @@ -610,17 +631,17 @@ To get a final usable model with trained weights, we need to construct a real mo and then fully train it. To construct a fixed model based on the architecture dict exported from the experiment, -we can use :func:`nni.retiarii.fixed_arch`. Under the with-context, we will creating a fixed model based on ``exported_arch``, +we can use :func:`nni.nas.space.model_context`. Under the with-context, we will creating a fixed model based on ``exported_arch``, instead of creating a space. -.. GENERATED FROM PYTHON SOURCE LINES 416-422 +.. GENERATED FROM PYTHON SOURCE LINES 414-420 .. code-block:: default - from nni.retiarii import fixed_arch + from nni.nas.space import model_context - with fixed_arch(exported_arch): + with model_context(exported_arch): final_model = DartsSpace(width=16, num_cells=8, dataset='cifar') @@ -630,11 +651,11 @@ instead of creating a space. -.. GENERATED FROM PYTHON SOURCE LINES 423-424 +.. GENERATED FROM PYTHON SOURCE LINES 421-422 We then train the model on full CIFAR-10 training dataset, and evaluate it on the original CIFAR-10 validation dataset. -.. GENERATED FROM PYTHON SOURCE LINES 425-428 +.. GENERATED FROM PYTHON SOURCE LINES 423-426 .. code-block:: default @@ -648,11 +669,11 @@ We then train the model on full CIFAR-10 training dataset, and evaluate it on th -.. GENERATED FROM PYTHON SOURCE LINES 429-430 +.. GENERATED FROM PYTHON SOURCE LINES 427-428 The validation data loader can be reused. -.. GENERATED FROM PYTHON SOURCE LINES 431-434 +.. GENERATED FROM PYTHON SOURCE LINES 429-432 .. code-block:: default @@ -668,17 +689,17 @@ The validation data loader can be reused. .. code-block:: none - + -.. GENERATED FROM PYTHON SOURCE LINES 435-438 +.. GENERATED FROM PYTHON SOURCE LINES 433-436 We must create a new evaluator here because a different data split is used. -Also, we should avoid the underlying pytorch-lightning implementation of :class:`~nni.retiarii.evaluator.pytorch.Classification` +Also, we should avoid the underlying pytorch-lightning implementation of :class:`~nni.nas.evaluator.pytorch.Classification` evaluator from loading the wrong checkpoint. -.. GENERATED FROM PYTHON SOURCE LINES 439-455 +.. GENERATED FROM PYTHON SOURCE LINES 437-453 .. code-block:: default @@ -706,39 +727,21 @@ evaluator from loading the wrong checkpoint. .. code-block:: none - /data/data0/jiahang/miniconda3/lib/python3.8/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py:447: LightningDeprecationWarning: Setting `Trainer(gpus=1)` is deprecated in v1.7 and will be removed in v2.0. Please use `Trainer(accelerator='gpu', devices=1)` instead. + /home/yugzhan/miniconda3/envs/cu102/lib/python3.8/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py:446: LightningDeprecationWarning: Setting `Trainer(gpus=1)` is deprecated in v1.7 and will be removed in v2.0. Please use `Trainer(accelerator='gpu', devices=1)` instead. rank_zero_deprecation( - GPU available: True (cuda), used: True - TPU available: False, using: 0 TPU cores - IPU available: False, using: 0 IPUs - HPU available: False, using: 0 HPUs - Running in `fast_dev_run` mode: will run the requested loop using 1 batch(es). Logging and checkpointing is suppressed. - LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [3] - - | Name | Type | Params - ----------------------------------------------- - 0 | criterion | CrossEntropyLoss | 0 - 1 | metrics | ModuleDict | 0 - 2 | model | DARTS | 345 K - ----------------------------------------------- - 345 K Trainable params - 0 Non-trainable params - 345 K Total params - 1.381 Total estimated model params size (MB) - /data/data0/jiahang/miniconda3/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py:1892: PossibleUserWarning: The number of training batches (1) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch. + /home/yugzhan/miniconda3/envs/cu102/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py:1555: PossibleUserWarning: The number of training batches (1) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch. rank_zero_warn( - Training: 0it [00:00, ?it/s] Training: 0%| | 0/2 [00:00`__ is a concept in PyTorch-Lightning, which organizes the model training process into a list of functions, such as, ``training_step``, ``validation_step``, ``configure_optimizers``, etc. -Since we are merely adding a few ingredients to :class:`~nni.retiarii.evaluator.pytorch.Classification`, -we can simply inherit :class:`~nni.retiarii.evaluator.pytorch.ClassificationModule`, which is the underlying LightningModule -behind :class:`~nni.retiarii.evaluator.pytorch.Classification`. +Since we are merely adding a few ingredients to :class:`~nni.nas.evaluator.pytorch.Classification`, +we can simply inherit :class:`~nni.nas.evaluator.pytorch.ClassificationModule`, which is the underlying LightningModule +behind :class:`~nni.nas.evaluator.pytorch.Classification`. This could look intimidating at first, but most of them are just plug-and-play tricks which you don't need to know details about. -.. GENERATED FROM PYTHON SOURCE LINES 485-540 +.. GENERATED FROM PYTHON SOURCE LINES 483-538 .. code-block:: default import torch - from nni.retiarii.evaluator.pytorch import ClassificationModule + from nni.nas.evaluator.pytorch import ClassificationModule class DartsClassificationModule(ClassificationModule): def __init__( @@ -835,19 +838,19 @@ This could look intimidating at first, but most of them are just plug-and-play t -.. GENERATED FROM PYTHON SOURCE LINES 541-545 +.. GENERATED FROM PYTHON SOURCE LINES 539-543 The full evaluator is written as follows, which simply wraps everything (except model space and search strategy of course), in a single object. -:class:`~nni.retiarii.evaluator.pytorch.Lightning` here is a special type of evaluator. +:class:`~nni.nas.evaluator.pytorch.Lightning` here is a special type of evaluator. Don't forget to use the train/val data split specialized for search (1:1) here. -.. GENERATED FROM PYTHON SOURCE LINES 546-562 +.. GENERATED FROM PYTHON SOURCE LINES 544-560 .. code-block:: default - from nni.retiarii.evaluator.pytorch import Lightning, Trainer + from nni.nas.evaluator.pytorch import Lightning, Trainer max_epochs = 50 @@ -870,29 +873,24 @@ Don't forget to use the train/val data split specialized for search (1:1) here. .. code-block:: none - /data/data0/jiahang/miniconda3/lib/python3.8/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py:447: LightningDeprecationWarning: Setting `Trainer(gpus=1)` is deprecated in v1.7 and will be removed in v2.0. Please use `Trainer(accelerator='gpu', devices=1)` instead. + /home/yugzhan/miniconda3/envs/cu102/lib/python3.8/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py:446: LightningDeprecationWarning: Setting `Trainer(gpus=1)` is deprecated in v1.7 and will be removed in v2.0. Please use `Trainer(accelerator='gpu', devices=1)` instead. rank_zero_deprecation( - GPU available: True (cuda), used: True - TPU available: False, using: 0 TPU cores - IPU available: False, using: 0 IPUs - HPU available: False, using: 0 HPUs - Running in `fast_dev_run` mode: will run the requested loop using 1 batch(es). Logging and checkpointing is suppressed. -.. GENERATED FROM PYTHON SOURCE LINES 563-571 +.. GENERATED FROM PYTHON SOURCE LINES 561-569 Strategy ^^^^^^^^ -:class:`~nni.retiarii.strategy.DARTS` strategy is created with gradient clip turned on. +:class:`~nni.nas.strategy.DARTS` strategy is created with gradient clip turned on. If you are familiar with PyTorch-Lightning, you might aware that gradient clipping can be enabled in Lightning trainer. However, enabling gradient clip in the trainer above won't work, because the underlying -implementation of :class:`~nni.retiarii.strategy.DARTS` strategy is based on +implementation of :class:`~nni.nas.strategy.DARTS` strategy is based on `manual optimization `__. -.. GENERATED FROM PYTHON SOURCE LINES 572-575 +.. GENERATED FROM PYTHON SOURCE LINES 570-573 .. code-block:: default @@ -906,7 +904,7 @@ implementation of :class:`~nni.retiarii.strategy.DARTS` strategy is based on -.. GENERATED FROM PYTHON SOURCE LINES 576-585 +.. GENERATED FROM PYTHON SOURCE LINES 574-583 Launch experiment ^^^^^^^^^^^^^^^^^ @@ -918,18 +916,17 @@ Then we use the newly created evaluator and strategy to launch the experiment ag ``model_space`` has to be re-instantiated because a known limitation, i.e., one model space instance can't be reused across multiple experiments. -.. GENERATED FROM PYTHON SOURCE LINES 586-597 +.. GENERATED FROM PYTHON SOURCE LINES 584-594 .. code-block:: default model_space = DartsSpace(width=16, num_cells=8, dataset='cifar') - config = RetiariiExeConfig(execution_engine='oneshot') - experiment = RetiariiExperiment(model_space, evaluator=evaluator, strategy=strategy) - experiment.run(config) + experiment = NasExperiment(model_space, evaluator, strategy) + experiment.run() - exported_arch = experiment.export_top_models()[0] + exported_arch = experiment.export_top_models(formatter='dict')[0] exported_arch @@ -941,30 +938,19 @@ Then we use the newly created evaluator and strategy to launch the experiment ag .. code-block:: none - LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [3] - - | Name | Type | Params - ---------------------------------------------------- - 0 | model | DartsClassificationModule | 3.0 M - ---------------------------------------------------- - 3.0 M Trainable params - 0 Non-trainable params - 3.0 M Total params - 12.164 Total estimated model params size (MB) - /data/data0/jiahang/miniconda3/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py:1892: PossibleUserWarning: The number of training batches (1) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch. + /home/yugzhan/miniconda3/envs/cu102/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py:1555: PossibleUserWarning: The number of training batches (1) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch. rank_zero_warn( - Training: 0it [00:00, ?it/s] Training: 0%| | 0/1 [00:00` diff --git a/docs/source/tutorials/darts_codeobj.pickle b/docs/source/tutorials/darts_codeobj.pickle index 5698b606b2742b429409d0db37355f9070c84a0f..09fbb36fab8be5137ee7c62e6e1b1544ca830e8c 100644 GIT binary patch literal 34761 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�$ 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 diff --git a/docs/source/tutorials/hello_nas.ipynb b/docs/source/tutorials/hello_nas.ipynb index d7e1f9f88..1ed95b4e7 100644 --- a/docs/source/tutorials/hello_nas.ipynb +++ b/docs/source/tutorials/hello_nas.ipynb @@ -15,14 +15,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n# Hello, NAS!\n\nThis is the 101 tutorial of Neural Architecture Search (NAS) on NNI.\nIn this tutorial, we will search for a neural architecture on MNIST dataset with the help of NAS framework of NNI, i.e., *Retiarii*.\nWe use multi-trial NAS as an example to show how to construct and explore a model space.\n\nThere are mainly three crucial components for a neural architecture search task, namely,\n\n* Model search space that defines a set of models to explore.\n* A proper strategy as the method to explore this model space.\n* A model evaluator that reports the performance of every model in the space.\n\nCurrently, PyTorch is the only supported framework by Retiarii, and we have only tested **PyTorch 1.7 to 1.10**.\nThis tutorial assumes PyTorch context but it should also apply to other frameworks, which is in our future plan.\n\n## Define your Model Space\n\nModel space is defined by users to express a set of models that users want to explore, which contains potentially good-performing models.\nIn this framework, a model space is defined with two parts: a base model and possible mutations on the base model.\n" + "\n# Hello, NAS!\n\nThis is the 101 tutorial of Neural Architecture Search (NAS) on NNI.\nIn this tutorial, we will search for a neural architecture on MNIST dataset with the help of NAS framework of NNI, i.e., *Retiarii*.\nWe use multi-trial NAS as an example to show how to construct and explore a model space.\n\nThere are mainly three crucial components for a neural architecture search task, namely,\n\n* Model search space that defines a set of models to explore.\n* A proper strategy as the method to explore this model space.\n* A model evaluator that reports the performance of every model in the space.\n\nCurrently, PyTorch is the only supported framework by Retiarii, and we have only tested **PyTorch 1.9 to 1.13**.\nThis tutorial assumes PyTorch context but it should also apply to other frameworks, which is in our future plan.\n\n## Define your Model Space\n\nModel space is defined by users to express a set of models that users want to explore, which contains potentially good-performing models.\nIn this framework, a model space is defined with two parts: a base model and possible mutations on the base model.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Define Base Model\n\nDefining a base model is almost the same as defining a PyTorch (or TensorFlow) model.\nUsually, you only need to replace the code ``import torch.nn as nn`` with\n``import nni.retiarii.nn.pytorch as nn`` to use our wrapped PyTorch modules.\n\nBelow is a very simple example of defining a base model.\n\n" + "### Define Base Model\n\nDefining a base model is almost the same as defining a PyTorch (or TensorFlow) model.\n\nBelow is a very simple example of defining a base model.\n\n" ] }, { @@ -33,14 +33,14 @@ }, "outputs": [], "source": [ - "import torch\nimport torch.nn.functional as F\nimport nni.retiarii.nn.pytorch as nn\nfrom nni.retiarii import model_wrapper\n\n\n@model_wrapper # this decorator should be put on the out most\nclass Net(nn.Module):\n def __init__(self):\n super().__init__()\n self.conv1 = nn.Conv2d(1, 32, 3, 1)\n self.conv2 = nn.Conv2d(32, 64, 3, 1)\n self.dropout1 = nn.Dropout(0.25)\n self.dropout2 = nn.Dropout(0.5)\n self.fc1 = nn.Linear(9216, 128)\n self.fc2 = nn.Linear(128, 10)\n\n def forward(self, x):\n x = F.relu(self.conv1(x))\n x = F.max_pool2d(self.conv2(x), 2)\n x = torch.flatten(self.dropout1(x), 1)\n x = self.fc2(self.dropout2(F.relu(self.fc1(x))))\n output = F.log_softmax(x, dim=1)\n return output" + "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport nni\nfrom nni.nas.nn.pytorch import LayerChoice, ModelSpace, MutableDropout, MutableLinear\n\n\nclass Net(ModelSpace): # should inherit ModelSpace rather than nn.Module\n def __init__(self):\n super().__init__()\n self.conv1 = nn.Conv2d(1, 32, 3, 1)\n self.conv2 = nn.Conv2d(32, 64, 3, 1)\n self.dropout1 = nn.Dropout(0.25)\n self.dropout2 = nn.Dropout(0.5)\n self.fc1 = nn.Linear(9216, 128)\n self.fc2 = nn.Linear(128, 10)\n\n def forward(self, x):\n x = F.relu(self.conv1(x))\n x = F.max_pool2d(self.conv2(x), 2)\n x = torch.flatten(self.dropout1(x), 1)\n x = self.fc2(self.dropout2(F.relu(self.fc1(x))))\n output = F.log_softmax(x, dim=1)\n return output" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - ".. tip:: Always keep in mind that you should use ``import nni.retiarii.nn.pytorch as nn`` and :meth:`nni.retiarii.model_wrapper`.\n Many mistakes are a result of forgetting one of those.\n Also, please use ``torch.nn`` for submodules of ``nn.init``, e.g., ``torch.nn.init`` instead of ``nn.init``.\n\n### Define Model Mutations\n\nA base model is only one concrete model not a model space. We provide :doc:`API and Primitives `\nfor users to express how the base model can be mutated. That is, to build a model space which includes many models.\n\nBased on the above base model, we can define a model space as below.\n\n.. code-block:: diff\n\n @model_wrapper\n class Net(nn.Module):\n def __init__(self):\n super().__init__()\n self.conv1 = nn.Conv2d(1, 32, 3, 1)\n - self.conv2 = nn.Conv2d(32, 64, 3, 1)\n + self.conv2 = nn.LayerChoice([\n + nn.Conv2d(32, 64, 3, 1),\n + DepthwiseSeparableConv(32, 64)\n + ])\n - self.dropout1 = nn.Dropout(0.25)\n + self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75]))\n self.dropout2 = nn.Dropout(0.5)\n - self.fc1 = nn.Linear(9216, 128)\n - self.fc2 = nn.Linear(128, 10)\n + feature = nn.ValueChoice([64, 128, 256])\n + self.fc1 = nn.Linear(9216, feature)\n + self.fc2 = nn.Linear(feature, 10)\n\n def forward(self, x):\n x = F.relu(self.conv1(x))\n x = F.max_pool2d(self.conv2(x), 2)\n x = torch.flatten(self.dropout1(x), 1)\n x = self.fc2(self.dropout2(F.relu(self.fc1(x))))\n output = F.log_softmax(x, dim=1)\n return output\n\nThis results in the following code:\n\n" + "### Define Model Variations\n\nA base model is only one concrete model not a model space. We provide :doc:`API and Primitives `\nfor users to express how the base model can be mutated. That is, to build a model space which includes many models.\n\nBased on the above base model, we can define a model space as below.\n\n```diff\nclass Net(ModelSpace):\n def __init__(self):\n super().__init__()\n self.conv1 = nn.Conv2d(1, 32, 3, 1)\n- self.conv2 = nn.Conv2d(32, 64, 3, 1)\n+ self.conv2 = LayerChoice([\n+ nn.Conv2d(32, 64, 3, 1),\n+ DepthwiseSeparableConv(32, 64)\n+ ], label='conv2)\n- self.dropout1 = nn.Dropout(0.25)\n+ self.dropout1 = MutableDropout(nni.choice('dropout', [0.25, 0.5, 0.75]))\n self.dropout2 = nn.Dropout(0.5)\n- self.fc1 = nn.Linear(9216, 128)\n- self.fc2 = nn.Linear(128, 10)\n+ feature = nni.choice('feature', [64, 128, 256])\n+ self.fc1 = MutableLinear(9216, feature)\n+ self.fc2 = MutableLinear(feature, 10)\n\n def forward(self, x):\n x = F.relu(self.conv1(x))\n x = F.max_pool2d(self.conv2(x), 2)\n x = torch.flatten(self.dropout1(x), 1)\n x = self.fc2(self.dropout2(F.relu(self.fc1(x))))\n output = F.log_softmax(x, dim=1)\n return output\n```\nThis results in the following code:\n\n" ] }, { @@ -51,14 +51,14 @@ }, "outputs": [], "source": [ - "class DepthwiseSeparableConv(nn.Module):\n def __init__(self, in_ch, out_ch):\n super().__init__()\n self.depthwise = nn.Conv2d(in_ch, in_ch, kernel_size=3, groups=in_ch)\n self.pointwise = nn.Conv2d(in_ch, out_ch, kernel_size=1)\n\n def forward(self, x):\n return self.pointwise(self.depthwise(x))\n\n\n@model_wrapper\nclass ModelSpace(nn.Module):\n def __init__(self):\n super().__init__()\n self.conv1 = nn.Conv2d(1, 32, 3, 1)\n # LayerChoice is used to select a layer between Conv2d and DwConv.\n self.conv2 = nn.LayerChoice([\n nn.Conv2d(32, 64, 3, 1),\n DepthwiseSeparableConv(32, 64)\n ])\n # ValueChoice is used to select a dropout rate.\n # ValueChoice can be used as parameter of modules wrapped in `nni.retiarii.nn.pytorch`\n # or customized modules wrapped with `@basic_unit`.\n self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75])) # choose dropout rate from 0.25, 0.5 and 0.75\n self.dropout2 = nn.Dropout(0.5)\n feature = nn.ValueChoice([64, 128, 256])\n self.fc1 = nn.Linear(9216, feature)\n self.fc2 = nn.Linear(feature, 10)\n\n def forward(self, x):\n x = F.relu(self.conv1(x))\n x = F.max_pool2d(self.conv2(x), 2)\n x = torch.flatten(self.dropout1(x), 1)\n x = self.fc2(self.dropout2(F.relu(self.fc1(x))))\n output = F.log_softmax(x, dim=1)\n return output\n\n\nmodel_space = ModelSpace()\nmodel_space" + "class DepthwiseSeparableConv(nn.Module):\n def __init__(self, in_ch, out_ch):\n super().__init__()\n self.depthwise = nn.Conv2d(in_ch, in_ch, kernel_size=3, groups=in_ch)\n self.pointwise = nn.Conv2d(in_ch, out_ch, kernel_size=1)\n\n def forward(self, x):\n return self.pointwise(self.depthwise(x))\n\n\nclass MyModelSpace(ModelSpace):\n def __init__(self):\n super().__init__()\n self.conv1 = nn.Conv2d(1, 32, 3, 1)\n # LayerChoice is used to select a layer between Conv2d and DwConv.\n self.conv2 = LayerChoice([\n nn.Conv2d(32, 64, 3, 1),\n DepthwiseSeparableConv(32, 64)\n ], label='conv2')\n # nni.choice is used to select a dropout rate.\n # The result can be used as parameters of `MutableXXX`.\n self.dropout1 = MutableDropout(nni.choice('dropout', [0.25, 0.5, 0.75])) # choose dropout rate from 0.25, 0.5 and 0.75\n self.dropout2 = nn.Dropout(0.5)\n feature = nni.choice('feature', [64, 128, 256])\n self.fc1 = MutableLinear(9216, feature)\n self.fc2 = MutableLinear(feature, 10)\n\n def forward(self, x):\n x = F.relu(self.conv1(x))\n x = F.max_pool2d(self.conv2(x), 2)\n x = torch.flatten(self.dropout1(x), 1)\n x = self.fc2(self.dropout2(F.relu(self.fc1(x))))\n output = F.log_softmax(x, dim=1)\n return output\n\n\nmodel_space = MyModelSpace()\nmodel_space" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "This example uses two mutation APIs,\n:class:`nn.LayerChoice ` and\n:class:`nn.InputChoice `.\n:class:`nn.LayerChoice `\ntakes a list of candidate modules (two in this example), one will be chosen for each sampled model.\nIt can be used like normal PyTorch module.\n:class:`nn.InputChoice ` takes a list of candidate values,\none will be chosen to take effect for each sampled model.\n\nMore detailed API description and usage can be found :doc:`here `.\n\n

Note

We are actively enriching the mutation APIs, to facilitate easy construction of model space.\n If the currently supported mutation APIs cannot express your model space,\n please refer to :doc:`this doc ` for customizing mutators.

\n\n## Explore the Defined Model Space\n\nThere are basically two exploration approaches: (1) search by evaluating each sampled model independently,\nwhich is the search approach in `multi-trial NAS `\nand (2) one-shot weight-sharing based search, which is used in one-shot NAS.\nWe demonstrate the first approach in this tutorial. Users can refer to `here ` for the second approach.\n\nFirst, users need to pick a proper exploration strategy to explore the defined model space.\nSecond, users need to pick or customize a model evaluator to evaluate the performance of each explored model.\n\n### Pick an exploration strategy\n\nRetiarii supports many :doc:`exploration strategies `.\n\nSimply choosing (i.e., instantiate) an exploration strategy as below.\n\n" + "This example uses two mutation APIs,\n:class:`nn.LayerChoice ` and\n:func:`nni.choice`.\n:class:`nn.LayerChoice `\ntakes a list of candidate modules (two in this example), one will be chosen for each sampled model.\nIt can be used like normal PyTorch module.\n:func:`nni.choice` is used as parameter of `MutableDropout`, which then takes the result as dropout rate.\n\nMore detailed API description and usage can be found :doc:`here `.\n\n

Note

We are actively enriching the mutation APIs, to facilitate easy construction of model space.\n If the currently supported mutation APIs cannot express your model space,\n please refer to :doc:`this doc ` for customizing mutators.

\n\n## Explore the Defined Model Space\n\nThere are basically two exploration approaches: (1) search by evaluating each sampled model independently,\nwhich is the search approach in `multi-trial NAS `\nand (2) one-shot weight-sharing based search, which is used in one-shot NAS.\nWe demonstrate the first approach in this tutorial. Users can refer to `here ` for the second approach.\n\nFirst, users need to pick a proper exploration strategy to explore the defined model space.\nSecond, users need to pick or customize a model evaluator to evaluate the performance of each explored model.\n\n### Pick an exploration strategy\n\nNNI NAS supports many :doc:`exploration strategies `.\n\nSimply choosing (i.e., instantiate) an exploration strategy as below.\n\n" ] }, { @@ -69,14 +69,14 @@ }, "outputs": [], "source": [ - "import nni.retiarii.strategy as strategy\nsearch_strategy = strategy.Random(dedup=True) # dedup=False if deduplication is not wanted" + "import nni.nas.strategy as strategy\nsearch_strategy = strategy.Random() # dedup=False if deduplication is not wanted" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Pick or customize a model evaluator\n\nIn the exploration process, the exploration strategy repeatedly generates new models. A model evaluator is for training\nand validating each generated model to obtain the model's performance.\nThe performance is sent to the exploration strategy for the strategy to generate better models.\n\nRetiarii has provided :doc:`built-in model evaluators `, but to start with,\nit is recommended to use :class:`FunctionalEvaluator `,\nthat is, to wrap your own training and evaluation code with one single function.\nThis function should receive one single model class and uses :func:`nni.report_final_result` to report the final score of this model.\n\nAn example here creates a simple evaluator that runs on MNIST dataset, trains for 2 epochs, and reports its validation accuracy.\n\n" + "### Pick or customize a model evaluator\n\nIn the exploration process, the exploration strategy repeatedly generates new models. A model evaluator is for training\nand validating each generated model to obtain the model's performance.\nThe performance is sent to the exploration strategy for the strategy to generate better models.\n\nNNI NAS has provided :doc:`built-in model evaluators `, but to start with,\nit is recommended to use :class:`FunctionalEvaluator `,\nthat is, to wrap your own training and evaluation code with one single function.\nThis function should receive one single model class and uses :func:`nni.report_final_result` to report the final score of this model.\n\nAn example here creates a simple evaluator that runs on MNIST dataset, trains for 2 epochs, and reports its validation accuracy.\n\n" ] }, { @@ -87,7 +87,7 @@ }, "outputs": [], "source": [ - "import nni\n\nfrom torchvision import transforms\nfrom torchvision.datasets import MNIST\nfrom torch.utils.data import DataLoader\n\n\ndef train_epoch(model, device, train_loader, optimizer, epoch):\n loss_fn = torch.nn.CrossEntropyLoss()\n model.train()\n for batch_idx, (data, target) in enumerate(train_loader):\n data, target = data.to(device), target.to(device)\n optimizer.zero_grad()\n output = model(data)\n loss = loss_fn(output, target)\n loss.backward()\n optimizer.step()\n if batch_idx % 10 == 0:\n print('Train Epoch: {} [{}/{} ({:.0f}%)]\\tLoss: {:.6f}'.format(\n epoch, batch_idx * len(data), len(train_loader.dataset),\n 100. * batch_idx / len(train_loader), loss.item()))\n\n\ndef test_epoch(model, device, test_loader):\n model.eval()\n test_loss = 0\n correct = 0\n with torch.no_grad():\n for data, target in test_loader:\n data, target = data.to(device), target.to(device)\n output = model(data)\n pred = output.argmax(dim=1, keepdim=True)\n correct += pred.eq(target.view_as(pred)).sum().item()\n\n test_loss /= len(test_loader.dataset)\n accuracy = 100. * correct / len(test_loader.dataset)\n\n print('\\nTest set: Accuracy: {}/{} ({:.0f}%)\\n'.format(\n correct, len(test_loader.dataset), accuracy))\n\n return accuracy\n\n\ndef evaluate_model(model_cls):\n # \"model_cls\" is a class, need to instantiate\n model = model_cls()\n\n device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')\n model.to(device)\n\n optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)\n transf = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))])\n train_loader = DataLoader(MNIST('data/mnist', download=True, transform=transf), batch_size=64, shuffle=True)\n test_loader = DataLoader(MNIST('data/mnist', download=True, train=False, transform=transf), batch_size=64)\n\n for epoch in range(3):\n # train the model for one epoch\n train_epoch(model, device, train_loader, optimizer, epoch)\n # test the model for one epoch\n accuracy = test_epoch(model, device, test_loader)\n # call report intermediate result. Result can be float or dict\n nni.report_intermediate_result(accuracy)\n\n # report final test result\n nni.report_final_result(accuracy)" + "import nni\n\nfrom torchvision import transforms\nfrom torchvision.datasets import MNIST\nfrom torch.utils.data import DataLoader\n\n\ndef train_epoch(model, device, train_loader, optimizer, epoch):\n loss_fn = torch.nn.CrossEntropyLoss()\n model.train()\n for batch_idx, (data, target) in enumerate(train_loader):\n data, target = data.to(device), target.to(device)\n optimizer.zero_grad()\n output = model(data)\n loss = loss_fn(output, target)\n loss.backward()\n optimizer.step()\n if batch_idx % 10 == 0:\n print('Train Epoch: {} [{}/{} ({:.0f}%)]\\tLoss: {:.6f}'.format(\n epoch, batch_idx * len(data), len(train_loader.dataset),\n 100. * batch_idx / len(train_loader), loss.item()))\n\n\ndef test_epoch(model, device, test_loader):\n model.eval()\n test_loss = 0\n correct = 0\n with torch.no_grad():\n for data, target in test_loader:\n data, target = data.to(device), target.to(device)\n output = model(data)\n pred = output.argmax(dim=1, keepdim=True)\n correct += pred.eq(target.view_as(pred)).sum().item()\n\n test_loss /= len(test_loader.dataset)\n accuracy = 100. * correct / len(test_loader.dataset)\n\n print('\\nTest set: Accuracy: {}/{} ({:.0f}%)\\n'.format(\n correct, len(test_loader.dataset), accuracy))\n\n return accuracy\n\n\ndef evaluate_model(model):\n # By v3.0, the model will be instantiated by default.\n device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')\n model.to(device)\n\n optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)\n transf = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))])\n train_loader = DataLoader(MNIST('data/mnist', download=True, transform=transf), batch_size=64, shuffle=True)\n test_loader = DataLoader(MNIST('data/mnist', download=True, train=False, transform=transf), batch_size=64)\n\n for epoch in range(3):\n # train the model for one epoch\n train_epoch(model, device, train_loader, optimizer, epoch)\n # test the model for one epoch\n accuracy = test_epoch(model, device, test_loader)\n # call report intermediate result. Result can be float or dict\n nni.report_intermediate_result(accuracy)\n\n # report final test result\n nni.report_final_result(accuracy)" ] }, { @@ -105,14 +105,14 @@ }, "outputs": [], "source": [ - "from nni.retiarii.evaluator import FunctionalEvaluator\nevaluator = FunctionalEvaluator(evaluate_model)" + "from nni.nas.evaluator import FunctionalEvaluator\nevaluator = FunctionalEvaluator(evaluate_model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The ``train_epoch`` and ``test_epoch`` here can be any customized function,\nwhere users can write their own training recipe.\n\nIt is recommended that the ``evaluate_model`` here accepts no additional arguments other than ``model_cls``.\nHowever, in the :doc:`advanced tutorial `, we will show how to use additional arguments in case you actually need those.\nIn future, we will support mutation on the arguments of evaluators, which is commonly called \"Hyper-parmeter tuning\".\n\n## Launch an Experiment\n\nAfter all the above are prepared, it is time to start an experiment to do the model search. An example is shown below.\n\n" + "The ``train_epoch`` and ``test_epoch`` here can be any customized function,\nwhere users can write their own training recipe.\n\nIt is recommended that the ``evaluate_model`` here accepts no additional arguments other than ``model``.\nHowever, in the :doc:`advanced tutorial `, we will show how to use additional arguments in case you actually need those.\nIn future, we will support mutation on the arguments of evaluators, which is commonly called \"Hyper-parameter tuning\".\n\n## Launch an Experiment\n\nAfter all the above are prepared, it is time to start an experiment to do the model search. An example is shown below.\n\n" ] }, { @@ -123,14 +123,14 @@ }, "outputs": [], "source": [ - "from nni.retiarii.experiment.pytorch import RetiariiExperiment, RetiariiExeConfig\nexp = RetiariiExperiment(model_space, evaluator, [], search_strategy)\nexp_config = RetiariiExeConfig('local')\nexp_config.experiment_name = 'mnist_search'" + "from nni.nas.experiment import NasExperiment\nexp = NasExperiment(model_space, evaluator, search_strategy)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The following configurations are useful to control how many trials to run at most / at the same time.\n\n" + "Different from HPO experiment, NAS experiment will generate an experiment config automatically.\nIt should work for most cases. For example, when using multi-trial strategies,\nlocal training service with concurrency 1 will be used by default.\nUsers can customize the config. For example,\n\n" ] }, { @@ -141,14 +141,14 @@ }, "outputs": [], "source": [ - "exp_config.max_trial_number = 4 # spawn 4 trials at most\nexp_config.trial_concurrency = 2 # will run two trials concurrently" + "exp.config.max_trial_number = 3 # spawn 3 trials at most\nexp.config.trial_concurrency = 1 # will run 1 trial concurrently\nexp.config.trial_gpu_number = 0 # will not use GPU" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Remember to set the following config if you want to GPU.\n``use_active_gpu`` should be set true if you wish to use an occupied GPU (possibly running a GUI).\n\n" + "Remember to set the following config if you want to GPU.\n``use_active_gpu`` should be set true if you wish to use an occupied GPU (possibly running a GUI)::\n\n exp.config.trial_gpu_number = 1\n exp.config.training_service.use_active_gpu = True\n\nLaunch the experiment. The experiment should take several minutes to finish on a workstation with 2 GPUs.\n\n" ] }, { @@ -159,14 +159,14 @@ }, "outputs": [], "source": [ - "exp_config.trial_gpu_number = 1\nexp_config.training_service.use_active_gpu = True" + "exp.run(port=8081)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Launch the experiment. The experiment should take several minutes to finish on a workstation with 2 GPUs.\n\n" + "Users can also run NAS Experiment with :doc:`different training services `\nbesides ``local`` training service.\n\n## Visualize the Experiment\n\nUsers can visualize their experiment in the same way as visualizing a normal hyper-parameter tuning experiment.\nFor example, open ``localhost:8081`` in your browser, 8081 is the port that you set in ``exp.run``.\nPlease refer to :doc:`here ` for details.\n\nWe support visualizing models with 3rd-party visualization engines (like [Netron](https://netron.app/)_).\nThis can be used by clicking ``Visualization`` in detail panel for each trial.\nNote that current visualization is based on [onnx](https://onnx.ai/)_ ,\nthus visualization is not feasible if the model cannot be exported into onnx.\n\nBuilt-in evaluators (e.g., Classification) will automatically export the model into a file.\nFor your own evaluator, you need to save your file into ``$NNI_OUTPUT_DIR/model.onnx`` to make this work.\nFor instance,\n\n" ] }, { @@ -177,25 +177,7 @@ }, "outputs": [], "source": [ - "exp.run(exp_config, 8081)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Users can also run Retiarii Experiment with :doc:`different training services `\nbesides ``local`` training service.\n\n## Visualize the Experiment\n\nUsers can visualize their experiment in the same way as visualizing a normal hyper-parameter tuning experiment.\nFor example, open ``localhost:8081`` in your browser, 8081 is the port that you set in ``exp.run``.\nPlease refer to :doc:`here ` for details.\n\nWe support visualizing models with 3rd-party visualization engines (like `Netron `__).\nThis can be used by clicking ``Visualization`` in detail panel for each trial.\nNote that current visualization is based on `onnx `__ ,\nthus visualization is not feasible if the model cannot be exported into onnx.\n\nBuilt-in evaluators (e.g., Classification) will automatically export the model into a file.\nFor your own evaluator, you need to save your file into ``$NNI_OUTPUT_DIR/model.onnx`` to make this work.\nFor instance,\n\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "import os\nfrom pathlib import Path\n\n\ndef evaluate_model_with_visualization(model_cls):\n model = model_cls()\n # dump the model into an onnx\n if 'NNI_OUTPUT_DIR' in os.environ:\n dummy_input = torch.zeros(1, 3, 32, 32)\n torch.onnx.export(model, (dummy_input, ),\n Path(os.environ['NNI_OUTPUT_DIR']) / 'model.onnx')\n evaluate_model(model_cls)" + "import os\nfrom pathlib import Path\n\n\ndef evaluate_model_with_visualization(model):\n # dump the model into an onnx\n if 'NNI_OUTPUT_DIR' in os.environ:\n dummy_input = torch.zeros(1, 3, 32, 32)\n torch.onnx.export(model, (dummy_input, ),\n Path(os.environ['NNI_OUTPUT_DIR']) / 'model.onnx')\n evaluate_model(model)" ] }, { @@ -215,24 +197,6 @@ "source": [ "for model_dict in exp.export_top_models(formatter='dict'):\n print(model_dict)" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The output is ``json`` object which records the mutation actions of the top model.\nIf users want to output source code of the top model,\nthey can use `graph-based execution engine ` for the experiment,\nby simply adding the following two lines.\n\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "exp_config.execution_engine = 'base'\nexport_formatter = 'code'" - ] } ], "metadata": { @@ -251,7 +215,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.8.12" } }, "nbformat": 4, diff --git a/docs/source/tutorials/hello_nas.py b/docs/source/tutorials/hello_nas.py index ca0b580aa..d367c395b 100644 --- a/docs/source/tutorials/hello_nas.py +++ b/docs/source/tutorials/hello_nas.py @@ -12,7 +12,7 @@ There are mainly three crucial components for a neural architecture search task, * A proper strategy as the method to explore this model space. * A model evaluator that reports the performance of every model in the space. -Currently, PyTorch is the only supported framework by Retiarii, and we have only tested **PyTorch 1.7 to 1.10**. +Currently, PyTorch is the only supported framework by Retiarii, and we have only tested **PyTorch 1.9 to 1.13**. This tutorial assumes PyTorch context but it should also apply to other frameworks, which is in our future plan. Define your Model Space @@ -28,19 +28,17 @@ In this framework, a model space is defined with two parts: a base model and pos # ^^^^^^^^^^^^^^^^^ # # Defining a base model is almost the same as defining a PyTorch (or TensorFlow) model. -# Usually, you only need to replace the code ``import torch.nn as nn`` with -# ``import nni.retiarii.nn.pytorch as nn`` to use our wrapped PyTorch modules. # # Below is a very simple example of defining a base model. import torch +import torch.nn as nn import torch.nn.functional as F -import nni.retiarii.nn.pytorch as nn -from nni.retiarii import model_wrapper +import nni +from nni.nas.nn.pytorch import LayerChoice, ModelSpace, MutableDropout, MutableLinear -@model_wrapper # this decorator should be put on the out most -class Net(nn.Module): +class Net(ModelSpace): # should inherit ModelSpace rather than nn.Module def __init__(self): super().__init__() self.conv1 = nn.Conv2d(1, 32, 3, 1) @@ -59,12 +57,9 @@ class Net(nn.Module): return output # %% -# .. tip:: Always keep in mind that you should use ``import nni.retiarii.nn.pytorch as nn`` and :meth:`nni.retiarii.model_wrapper`. -# Many mistakes are a result of forgetting one of those. -# Also, please use ``torch.nn`` for submodules of ``nn.init``, e.g., ``torch.nn.init`` instead of ``nn.init``. # -# Define Model Mutations -# ^^^^^^^^^^^^^^^^^^^^^^ +# Define Model Variations +# ^^^^^^^^^^^^^^^^^^^^^^^ # # A base model is only one concrete model not a model space. We provide :doc:`API and Primitives ` # for users to express how the base model can be mutated. That is, to build a model space which includes many models. @@ -73,24 +68,23 @@ class Net(nn.Module): # # .. code-block:: diff # -# @model_wrapper -# class Net(nn.Module): +# class Net(ModelSpace): # def __init__(self): # super().__init__() # self.conv1 = nn.Conv2d(1, 32, 3, 1) # - self.conv2 = nn.Conv2d(32, 64, 3, 1) -# + self.conv2 = nn.LayerChoice([ +# + self.conv2 = LayerChoice([ # + nn.Conv2d(32, 64, 3, 1), # + DepthwiseSeparableConv(32, 64) -# + ]) +# + ], label='conv2) # - self.dropout1 = nn.Dropout(0.25) -# + self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75])) +# + self.dropout1 = MutableDropout(nni.choice('dropout', [0.25, 0.5, 0.75])) # self.dropout2 = nn.Dropout(0.5) # - self.fc1 = nn.Linear(9216, 128) # - self.fc2 = nn.Linear(128, 10) -# + feature = nn.ValueChoice([64, 128, 256]) -# + self.fc1 = nn.Linear(9216, feature) -# + self.fc2 = nn.Linear(feature, 10) +# + feature = nni.choice('feature', [64, 128, 256]) +# + self.fc1 = MutableLinear(9216, feature) +# + self.fc2 = MutableLinear(feature, 10) # # def forward(self, x): # x = F.relu(self.conv1(x)) @@ -113,24 +107,22 @@ class DepthwiseSeparableConv(nn.Module): return self.pointwise(self.depthwise(x)) -@model_wrapper -class ModelSpace(nn.Module): +class MyModelSpace(ModelSpace): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(1, 32, 3, 1) # LayerChoice is used to select a layer between Conv2d and DwConv. - self.conv2 = nn.LayerChoice([ + self.conv2 = LayerChoice([ nn.Conv2d(32, 64, 3, 1), DepthwiseSeparableConv(32, 64) - ]) - # ValueChoice is used to select a dropout rate. - # ValueChoice can be used as parameter of modules wrapped in `nni.retiarii.nn.pytorch` - # or customized modules wrapped with `@basic_unit`. - self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75])) # choose dropout rate from 0.25, 0.5 and 0.75 + ], label='conv2') + # nni.choice is used to select a dropout rate. + # The result can be used as parameters of `MutableXXX`. + self.dropout1 = MutableDropout(nni.choice('dropout', [0.25, 0.5, 0.75])) # choose dropout rate from 0.25, 0.5 and 0.75 self.dropout2 = nn.Dropout(0.5) - feature = nn.ValueChoice([64, 128, 256]) - self.fc1 = nn.Linear(9216, feature) - self.fc2 = nn.Linear(feature, 10) + feature = nni.choice('feature', [64, 128, 256]) + self.fc1 = MutableLinear(9216, feature) + self.fc2 = MutableLinear(feature, 10) def forward(self, x): x = F.relu(self.conv1(x)) @@ -141,18 +133,17 @@ class ModelSpace(nn.Module): return output -model_space = ModelSpace() +model_space = MyModelSpace() model_space # %% # This example uses two mutation APIs, -# :class:`nn.LayerChoice ` and -# :class:`nn.InputChoice `. -# :class:`nn.LayerChoice ` +# :class:`nn.LayerChoice ` and +# :func:`nni.choice`. +# :class:`nn.LayerChoice ` # takes a list of candidate modules (two in this example), one will be chosen for each sampled model. # It can be used like normal PyTorch module. -# :class:`nn.InputChoice ` takes a list of candidate values, -# one will be chosen to take effect for each sampled model. +# :func:`nni.choice` is used as parameter of `MutableDropout`, which then takes the result as dropout rate. # # More detailed API description and usage can be found :doc:`here `. # @@ -176,12 +167,12 @@ model_space # Pick an exploration strategy # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # -# Retiarii supports many :doc:`exploration strategies `. +# NNI NAS supports many :doc:`exploration strategies `. # # Simply choosing (i.e., instantiate) an exploration strategy as below. -import nni.retiarii.strategy as strategy -search_strategy = strategy.Random(dedup=True) # dedup=False if deduplication is not wanted +import nni.nas.strategy as strategy +search_strategy = strategy.Random() # dedup=False if deduplication is not wanted # %% # Pick or customize a model evaluator @@ -191,8 +182,8 @@ search_strategy = strategy.Random(dedup=True) # dedup=False if deduplication is # and validating each generated model to obtain the model's performance. # The performance is sent to the exploration strategy for the strategy to generate better models. # -# Retiarii has provided :doc:`built-in model evaluators `, but to start with, -# it is recommended to use :class:`FunctionalEvaluator `, +# NNI NAS has provided :doc:`built-in model evaluators `, but to start with, +# it is recommended to use :class:`FunctionalEvaluator `, # that is, to wrap your own training and evaluation code with one single function. # This function should receive one single model class and uses :func:`nni.report_final_result` to report the final score of this model. # @@ -241,10 +232,8 @@ def test_epoch(model, device, test_loader): return accuracy -def evaluate_model(model_cls): - # "model_cls" is a class, need to instantiate - model = model_cls() - +def evaluate_model(model): + # By v3.0, the model will be instantiated by default. device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu') model.to(device) @@ -268,7 +257,7 @@ def evaluate_model(model_cls): # %% # Create the evaluator -from nni.retiarii.evaluator import FunctionalEvaluator +from nni.nas.evaluator import FunctionalEvaluator evaluator = FunctionalEvaluator(evaluate_model) # %% @@ -276,40 +265,41 @@ evaluator = FunctionalEvaluator(evaluate_model) # The ``train_epoch`` and ``test_epoch`` here can be any customized function, # where users can write their own training recipe. # -# It is recommended that the ``evaluate_model`` here accepts no additional arguments other than ``model_cls``. +# It is recommended that the ``evaluate_model`` here accepts no additional arguments other than ``model``. # However, in the :doc:`advanced tutorial `, we will show how to use additional arguments in case you actually need those. -# In future, we will support mutation on the arguments of evaluators, which is commonly called "Hyper-parmeter tuning". +# In future, we will support mutation on the arguments of evaluators, which is commonly called "Hyper-parameter tuning". # # Launch an Experiment # -------------------- # # After all the above are prepared, it is time to start an experiment to do the model search. An example is shown below. -from nni.retiarii.experiment.pytorch import RetiariiExperiment, RetiariiExeConfig -exp = RetiariiExperiment(model_space, evaluator, [], search_strategy) -exp_config = RetiariiExeConfig('local') -exp_config.experiment_name = 'mnist_search' +from nni.nas.experiment import NasExperiment +exp = NasExperiment(model_space, evaluator, search_strategy) # %% -# The following configurations are useful to control how many trials to run at most / at the same time. +# Different from HPO experiment, NAS experiment will generate an experiment config automatically. +# It should work for most cases. For example, when using multi-trial strategies, +# local training service with concurrency 1 will be used by default. +# Users can customize the config. For example, -exp_config.max_trial_number = 4 # spawn 4 trials at most -exp_config.trial_concurrency = 2 # will run two trials concurrently +exp.config.max_trial_number = 3 # spawn 3 trials at most +exp.config.trial_concurrency = 1 # will run 1 trial concurrently +exp.config.trial_gpu_number = 0 # will not use GPU # %% # Remember to set the following config if you want to GPU. -# ``use_active_gpu`` should be set true if you wish to use an occupied GPU (possibly running a GUI). - -exp_config.trial_gpu_number = 1 -exp_config.training_service.use_active_gpu = True - -# %% +# ``use_active_gpu`` should be set true if you wish to use an occupied GPU (possibly running a GUI):: +# +# exp.config.trial_gpu_number = 1 +# exp.config.training_service.use_active_gpu = True +# # Launch the experiment. The experiment should take several minutes to finish on a workstation with 2 GPUs. -exp.run(exp_config, 8081) +exp.run(port=8081) # %% -# Users can also run Retiarii Experiment with :doc:`different training services ` +# Users can also run NAS Experiment with :doc:`different training services ` # besides ``local`` training service. # # Visualize the Experiment @@ -332,14 +322,13 @@ import os from pathlib import Path -def evaluate_model_with_visualization(model_cls): - model = model_cls() +def evaluate_model_with_visualization(model): # dump the model into an onnx if 'NNI_OUTPUT_DIR' in os.environ: dummy_input = torch.zeros(1, 3, 32, 32) torch.onnx.export(model, (dummy_input, ), Path(os.environ['NNI_OUTPUT_DIR']) / 'model.onnx') - evaluate_model(model_cls) + evaluate_model(model) # %% # Relaunch the experiment, and a button is shown on Web portal. @@ -353,12 +342,3 @@ def evaluate_model_with_visualization(model_cls): for model_dict in exp.export_top_models(formatter='dict'): print(model_dict) - -# %% -# The output is ``json`` object which records the mutation actions of the top model. -# If users want to output source code of the top model, -# they can use :ref:`graph-based execution engine ` for the experiment, -# by simply adding the following two lines. - -exp_config.execution_engine = 'base' -export_formatter = 'code' diff --git a/docs/source/tutorials/hello_nas.py.md5 b/docs/source/tutorials/hello_nas.py.md5 index 7612888d2..77c701e8e 100644 --- a/docs/source/tutorials/hello_nas.py.md5 +++ b/docs/source/tutorials/hello_nas.py.md5 @@ -1 +1 @@ -0e49e3aef98633744807b814786f6b31 \ No newline at end of file +62b11c437f43487c907e8f969736030a \ No newline at end of file diff --git a/docs/source/tutorials/hello_nas.rst b/docs/source/tutorials/hello_nas.rst index fd0e9590c..e8a09eb0b 100644 --- a/docs/source/tutorials/hello_nas.rst +++ b/docs/source/tutorials/hello_nas.rst @@ -10,7 +10,7 @@ .. note:: :class: sphx-glr-download-link-note - Click :ref:`here ` + :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title @@ -31,7 +31,7 @@ There are mainly three crucial components for a neural architecture search task, * A proper strategy as the method to explore this model space. * A model evaluator that reports the performance of every model in the space. -Currently, PyTorch is the only supported framework by Retiarii, and we have only tested **PyTorch 1.7 to 1.10**. +Currently, PyTorch is the only supported framework by Retiarii, and we have only tested **PyTorch 1.9 to 1.13**. This tutorial assumes PyTorch context but it should also apply to other frameworks, which is in our future plan. Define your Model Space @@ -40,30 +40,28 @@ Define your Model Space Model space is defined by users to express a set of models that users want to explore, which contains potentially good-performing models. In this framework, a model space is defined with two parts: a base model and possible mutations on the base model. -.. GENERATED FROM PYTHON SOURCE LINES 26-34 +.. GENERATED FROM PYTHON SOURCE LINES 26-32 Define Base Model ^^^^^^^^^^^^^^^^^ Defining a base model is almost the same as defining a PyTorch (or TensorFlow) model. -Usually, you only need to replace the code ``import torch.nn as nn`` with -``import nni.retiarii.nn.pytorch as nn`` to use our wrapped PyTorch modules. Below is a very simple example of defining a base model. -.. GENERATED FROM PYTHON SOURCE LINES 35-61 +.. GENERATED FROM PYTHON SOURCE LINES 33-59 .. code-block:: default import torch + import torch.nn as nn import torch.nn.functional as F - import nni.retiarii.nn.pytorch as nn - from nni.retiarii import model_wrapper + import nni + from nni.nas.nn.pytorch import LayerChoice, ModelSpace, MutableDropout, MutableLinear - @model_wrapper # this decorator should be put on the out most - class Net(nn.Module): + class Net(ModelSpace): # should inherit ModelSpace rather than nn.Module def __init__(self): super().__init__() self.conv1 = nn.Conv2d(1, 32, 3, 1) @@ -88,14 +86,10 @@ Below is a very simple example of defining a base model. -.. GENERATED FROM PYTHON SOURCE LINES 62-104 +.. GENERATED FROM PYTHON SOURCE LINES 60-97 -.. tip:: Always keep in mind that you should use ``import nni.retiarii.nn.pytorch as nn`` and :meth:`nni.retiarii.model_wrapper`. - Many mistakes are a result of forgetting one of those. - Also, please use ``torch.nn`` for submodules of ``nn.init``, e.g., ``torch.nn.init`` instead of ``nn.init``. - -Define Model Mutations -^^^^^^^^^^^^^^^^^^^^^^ +Define Model Variations +^^^^^^^^^^^^^^^^^^^^^^^ A base model is only one concrete model not a model space. We provide :doc:`API and Primitives ` for users to express how the base model can be mutated. That is, to build a model space which includes many models. @@ -104,24 +98,23 @@ Based on the above base model, we can define a model space as below. .. code-block:: diff - @model_wrapper - class Net(nn.Module): + class Net(ModelSpace): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(1, 32, 3, 1) - self.conv2 = nn.Conv2d(32, 64, 3, 1) - + self.conv2 = nn.LayerChoice([ + + self.conv2 = LayerChoice([ + nn.Conv2d(32, 64, 3, 1), + DepthwiseSeparableConv(32, 64) - + ]) + + ], label='conv2) - self.dropout1 = nn.Dropout(0.25) - + self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75])) + + self.dropout1 = MutableDropout(nni.choice('dropout', [0.25, 0.5, 0.75])) self.dropout2 = nn.Dropout(0.5) - self.fc1 = nn.Linear(9216, 128) - self.fc2 = nn.Linear(128, 10) - + feature = nn.ValueChoice([64, 128, 256]) - + self.fc1 = nn.Linear(9216, feature) - + self.fc2 = nn.Linear(feature, 10) + + feature = nni.choice('feature', [64, 128, 256]) + + self.fc1 = MutableLinear(9216, feature) + + self.fc2 = MutableLinear(feature, 10) def forward(self, x): x = F.relu(self.conv1(x)) @@ -133,7 +126,7 @@ Based on the above base model, we can define a model space as below. This results in the following code: -.. GENERATED FROM PYTHON SOURCE LINES 104-147 +.. GENERATED FROM PYTHON SOURCE LINES 98-139 .. code-block:: default @@ -149,24 +142,22 @@ This results in the following code: return self.pointwise(self.depthwise(x)) - @model_wrapper - class ModelSpace(nn.Module): + class MyModelSpace(ModelSpace): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(1, 32, 3, 1) # LayerChoice is used to select a layer between Conv2d and DwConv. - self.conv2 = nn.LayerChoice([ + self.conv2 = LayerChoice([ nn.Conv2d(32, 64, 3, 1), DepthwiseSeparableConv(32, 64) - ]) - # ValueChoice is used to select a dropout rate. - # ValueChoice can be used as parameter of modules wrapped in `nni.retiarii.nn.pytorch` - # or customized modules wrapped with `@basic_unit`. - self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75])) # choose dropout rate from 0.25, 0.5 and 0.75 + ], label='conv2') + # nni.choice is used to select a dropout rate. + # The result can be used as parameters of `MutableXXX`. + self.dropout1 = MutableDropout(nni.choice('dropout', [0.25, 0.5, 0.75])) # choose dropout rate from 0.25, 0.5 and 0.75 self.dropout2 = nn.Dropout(0.5) - feature = nn.ValueChoice([64, 128, 256]) - self.fc1 = nn.Linear(9216, feature) - self.fc2 = nn.Linear(feature, 10) + feature = nni.choice('feature', [64, 128, 256]) + self.fc1 = MutableLinear(9216, feature) + self.fc2 = MutableLinear(feature, 10) def forward(self, x): x = F.relu(self.conv1(x)) @@ -177,7 +168,7 @@ This results in the following code: return output - model_space = ModelSpace() + model_space = MyModelSpace() model_space @@ -186,35 +177,36 @@ This results in the following code: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none - ModelSpace( + MyModelSpace( (conv1): Conv2d(1, 32, kernel_size=(3, 3), stride=(1, 1)) - (conv2): LayerChoice([Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1)), DepthwiseSeparableConv( - (depthwise): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), groups=32) - (pointwise): Conv2d(32, 64, kernel_size=(1, 1), stride=(1, 1)) - )], label='model_1') - (dropout1): Dropout(p=0.25, inplace=False) + (conv2): LayerChoice( + label='conv2' + (0): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1)) + (1): DepthwiseSeparableConv( + (depthwise): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), groups=32) + (pointwise): Conv2d(32, 64, kernel_size=(1, 1), stride=(1, 1)) + ) + ) + (dropout1): MutableDropout(p=Categorical([0.25, 0.5, 0.75], label='dropout')) (dropout2): Dropout(p=0.5, inplace=False) - (fc1): Linear(in_features=9216, out_features=64, bias=True) - (fc2): Linear(in_features=64, out_features=10, bias=True) + (fc1): MutableLinear(in_features=9216, out_features=Categorical([64, 128, 256], label='feature')) + (fc2): MutableLinear(in_features=Categorical([64, 128, 256], label='feature'), out_features=10) ) -.. GENERATED FROM PYTHON SOURCE LINES 148-182 +.. GENERATED FROM PYTHON SOURCE LINES 140-173 This example uses two mutation APIs, -:class:`nn.LayerChoice ` and -:class:`nn.InputChoice `. -:class:`nn.LayerChoice ` +:class:`nn.LayerChoice ` and +:func:`nni.choice`. +:class:`nn.LayerChoice ` takes a list of candidate modules (two in this example), one will be chosen for each sampled model. It can be used like normal PyTorch module. -:class:`nn.InputChoice ` takes a list of candidate values, -one will be chosen to take effect for each sampled model. +:func:`nni.choice` is used as parameter of `MutableDropout`, which then takes the result as dropout rate. More detailed API description and usage can be found :doc:`here `. @@ -238,36 +230,26 @@ Second, users need to pick or customize a model evaluator to evaluate the perfor Pick an exploration strategy ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Retiarii supports many :doc:`exploration strategies `. +NNI NAS supports many :doc:`exploration strategies `. Simply choosing (i.e., instantiate) an exploration strategy as below. -.. GENERATED FROM PYTHON SOURCE LINES 182-186 +.. GENERATED FROM PYTHON SOURCE LINES 173-177 .. code-block:: default - import nni.retiarii.strategy as strategy - search_strategy = strategy.Random(dedup=True) # dedup=False if deduplication is not wanted + import nni.nas.strategy as strategy + search_strategy = strategy.Random() # dedup=False if deduplication is not wanted -.. rst-class:: sphx-glr-script-out - - Out: - - .. code-block:: none - - - /home/yugzhan/miniconda3/envs/cu102/lib/python3.8/site-packages/ray/autoscaler/_private/cli_logger.py:57: FutureWarning: Not all Ray CLI dependencies were found. In Ray 1.4+, the Ray CLI, autoscaler, and dashboard will only be usable via `pip install 'ray[default]'`. Please update your install command. - warnings.warn( - -.. GENERATED FROM PYTHON SOURCE LINES 187-200 +.. GENERATED FROM PYTHON SOURCE LINES 178-191 Pick or customize a model evaluator ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -276,14 +258,14 @@ In the exploration process, the exploration strategy repeatedly generates new mo and validating each generated model to obtain the model's performance. The performance is sent to the exploration strategy for the strategy to generate better models. -Retiarii has provided :doc:`built-in model evaluators `, but to start with, -it is recommended to use :class:`FunctionalEvaluator `, +NNI NAS has provided :doc:`built-in model evaluators `, but to start with, +it is recommended to use :class:`FunctionalEvaluator `, that is, to wrap your own training and evaluation code with one single function. This function should receive one single model class and uses :func:`nni.report_final_result` to report the final score of this model. An example here creates a simple evaluator that runs on MNIST dataset, trains for 2 epochs, and reports its validation accuracy. -.. GENERATED FROM PYTHON SOURCE LINES 200-268 +.. GENERATED FROM PYTHON SOURCE LINES 191-257 .. code-block:: default @@ -331,10 +313,8 @@ An example here creates a simple evaluator that runs on MNIST dataset, trains fo return accuracy - def evaluate_model(model_cls): - # "model_cls" is a class, need to instantiate - model = model_cls() - + def evaluate_model(model): + # By v3.0, the model will be instantiated by default. device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu') model.to(device) @@ -362,16 +342,16 @@ An example here creates a simple evaluator that runs on MNIST dataset, trains fo -.. GENERATED FROM PYTHON SOURCE LINES 269-270 +.. GENERATED FROM PYTHON SOURCE LINES 258-259 Create the evaluator -.. GENERATED FROM PYTHON SOURCE LINES 270-274 +.. GENERATED FROM PYTHON SOURCE LINES 259-263 .. code-block:: default - from nni.retiarii.evaluator import FunctionalEvaluator + from nni.nas.evaluator import FunctionalEvaluator evaluator = FunctionalEvaluator(evaluate_model) @@ -381,29 +361,27 @@ Create the evaluator -.. GENERATED FROM PYTHON SOURCE LINES 275-286 +.. GENERATED FROM PYTHON SOURCE LINES 264-275 The ``train_epoch`` and ``test_epoch`` here can be any customized function, where users can write their own training recipe. -It is recommended that the ``evaluate_model`` here accepts no additional arguments other than ``model_cls``. +It is recommended that the ``evaluate_model`` here accepts no additional arguments other than ``model``. However, in the :doc:`advanced tutorial `, we will show how to use additional arguments in case you actually need those. -In future, we will support mutation on the arguments of evaluators, which is commonly called "Hyper-parmeter tuning". +In future, we will support mutation on the arguments of evaluators, which is commonly called "Hyper-parameter tuning". Launch an Experiment -------------------- After all the above are prepared, it is time to start an experiment to do the model search. An example is shown below. -.. GENERATED FROM PYTHON SOURCE LINES 287-293 +.. GENERATED FROM PYTHON SOURCE LINES 276-280 .. code-block:: default - from nni.retiarii.experiment.pytorch import RetiariiExperiment, RetiariiExeConfig - exp = RetiariiExperiment(model_space, evaluator, [], search_strategy) - exp_config = RetiariiExeConfig('local') - exp_config.experiment_name = 'mnist_search' + from nni.nas.experiment import NasExperiment + exp = NasExperiment(model_space, evaluator, search_strategy) @@ -412,17 +390,21 @@ After all the above are prepared, it is time to start an experiment to do the mo -.. GENERATED FROM PYTHON SOURCE LINES 294-295 +.. GENERATED FROM PYTHON SOURCE LINES 281-285 -The following configurations are useful to control how many trials to run at most / at the same time. +Different from HPO experiment, NAS experiment will generate an experiment config automatically. +It should work for most cases. For example, when using multi-trial strategies, +local training service with concurrency 1 will be used by default. +Users can customize the config. For example, -.. GENERATED FROM PYTHON SOURCE LINES 295-299 +.. GENERATED FROM PYTHON SOURCE LINES 285-290 .. code-block:: default - exp_config.max_trial_number = 4 # spawn 4 trials at most - exp_config.trial_concurrency = 2 # will run two trials concurrently + exp.config.max_trial_number = 3 # spawn 3 trials at most + exp.config.trial_concurrency = 1 # will run 1 trial concurrently + exp.config.trial_gpu_number = 0 # will not use GPU @@ -431,36 +413,22 @@ The following configurations are useful to control how many trials to run at mos -.. GENERATED FROM PYTHON SOURCE LINES 300-302 +.. GENERATED FROM PYTHON SOURCE LINES 291-298 Remember to set the following config if you want to GPU. -``use_active_gpu`` should be set true if you wish to use an occupied GPU (possibly running a GUI). +``use_active_gpu`` should be set true if you wish to use an occupied GPU (possibly running a GUI):: -.. GENERATED FROM PYTHON SOURCE LINES 302-306 - -.. code-block:: default - - - exp_config.trial_gpu_number = 1 - exp_config.training_service.use_active_gpu = True - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 307-308 + exp.config.trial_gpu_number = 1 + exp.config.training_service.use_active_gpu = True Launch the experiment. The experiment should take several minutes to finish on a workstation with 2 GPUs. -.. GENERATED FROM PYTHON SOURCE LINES 308-311 +.. GENERATED FROM PYTHON SOURCE LINES 298-301 .. code-block:: default - exp.run(exp_config, 8081) + exp.run(port=8081) @@ -468,31 +436,16 @@ Launch the experiment. The experiment should take several minutes to finish on a .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none - INFO:nni.experiment:Creating experiment, Experiment ID: z8ns5fv7 - INFO:nni.experiment:Connecting IPC pipe... - INFO:nni.experiment:Starting web server... - INFO:nni.experiment:Setting up... - INFO:nni.runtime.msg_dispatcher_base:Dispatcher started - INFO:nni.retiarii.experiment.pytorch:Web UI URLs: http://127.0.0.1:8081 http://10.190.172.35:8081 http://192.168.49.1:8081 http://172.17.0.1:8081 - INFO:nni.retiarii.experiment.pytorch:Start strategy... - INFO:root:Successfully update searchSpace. - INFO:nni.retiarii.strategy.bruteforce:Random search running in fixed size mode. Dedup: on. - INFO:nni.retiarii.experiment.pytorch:Stopping experiment, please wait... - INFO:nni.retiarii.experiment.pytorch:Strategy exit - INFO:nni.retiarii.experiment.pytorch:Waiting for experiment to become DONE (you can ctrl+c if there is no running trial jobs)... - INFO:nni.runtime.msg_dispatcher_base:Dispatcher exiting... - INFO:nni.retiarii.experiment.pytorch:Experiment stopped + + True +.. GENERATED FROM PYTHON SOURCE LINES 302-320 -.. GENERATED FROM PYTHON SOURCE LINES 312-330 - -Users can also run Retiarii Experiment with :doc:`different training services ` +Users can also run NAS Experiment with :doc:`different training services ` besides ``local`` training service. Visualize the Experiment @@ -511,7 +464,7 @@ Built-in evaluators (e.g., Classification) will automatically export the model i For your own evaluator, you need to save your file into ``$NNI_OUTPUT_DIR/model.onnx`` to make this work. For instance, -.. GENERATED FROM PYTHON SOURCE LINES 330-344 +.. GENERATED FROM PYTHON SOURCE LINES 320-333 .. code-block:: default @@ -520,14 +473,13 @@ For instance, from pathlib import Path - def evaluate_model_with_visualization(model_cls): - model = model_cls() + def evaluate_model_with_visualization(model): # dump the model into an onnx if 'NNI_OUTPUT_DIR' in os.environ: dummy_input = torch.zeros(1, 3, 32, 32) torch.onnx.export(model, (dummy_input, ), Path(os.environ['NNI_OUTPUT_DIR']) / 'model.onnx') - evaluate_model(model_cls) + evaluate_model(model) @@ -536,7 +488,7 @@ For instance, -.. GENERATED FROM PYTHON SOURCE LINES 345-353 +.. GENERATED FROM PYTHON SOURCE LINES 334-342 Relaunch the experiment, and a button is shown on Web portal. @@ -547,7 +499,7 @@ Export Top Models Users can export top models after the exploration is done using ``export_top_models``. -.. GENERATED FROM PYTHON SOURCE LINES 353-357 +.. GENERATED FROM PYTHON SOURCE LINES 342-345 .. code-block:: default @@ -558,35 +510,11 @@ Users can export top models after the exploration is done using ``export_top_mod - .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none - {'model_1': '0', 'model_2': 0.25, 'model_3': 64} - - - - -.. GENERATED FROM PYTHON SOURCE LINES 358-362 - -The output is ``json`` object which records the mutation actions of the top model. -If users want to output source code of the top model, -they can use :ref:`graph-based execution engine ` for the experiment, -by simply adding the following two lines. - -.. GENERATED FROM PYTHON SOURCE LINES 362-365 - -.. code-block:: default - - - exp_config.execution_engine = 'base' - export_formatter = 'code' - - - + {'conv2': 1, 'dropout': 0.25, 'feature': 256} @@ -594,28 +522,25 @@ by simply adding the following two lines. .. rst-class:: sphx-glr-timing - **Total running time of the script:** ( 2 minutes 4.499 seconds) + **Total running time of the script:** ( 13 minutes 8.330 seconds) .. _sphx_glr_download_tutorials_hello_nas.py: +.. only:: html -.. only :: html - - .. container:: sphx-glr-footer - :class: sphx-glr-footer-example + .. container:: sphx-glr-footer sphx-glr-footer-example - .. container:: sphx-glr-download sphx-glr-download-python - :download:`Download Python source code: hello_nas.py ` + .. container:: sphx-glr-download sphx-glr-download-python + :download:`Download Python source code: hello_nas.py ` + .. container:: sphx-glr-download sphx-glr-download-jupyter - .. container:: sphx-glr-download sphx-glr-download-jupyter - - :download:`Download Jupyter notebook: hello_nas.ipynb ` + :download:`Download Jupyter notebook: hello_nas.ipynb ` .. only:: html diff --git a/docs/source/tutorials/hello_nas_codeobj.pickle b/docs/source/tutorials/hello_nas_codeobj.pickle index a25313e349ff2eeeaefe272e41c5bf8f31615b64..62f546a5c7d134f3c49d039f3a99746ea0024522 100644 GIT binary patch literal 20239 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 EfAMJdIsgCw literal 18058 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 - to download the full example code - -.. rst-class:: sphx-glr-example-title - -.. _sphx_glr_tutorials_hello_nas.py: - - -架构搜索入门教程 -================ - -这是 NNI 上的神经架构搜索(NAS)的入门教程。 -在本教程中,我们将借助 NNI 的 NAS 框架,即 *Retiarii*,在 MNIST 数据集上实现网络结构搜索。 -我们以多尝试的架构搜索为例来展示如何构建和探索模型空间。 - -神经架构搜索任务主要有三个关键组成部分,即 - -* 模型搜索空间,定义了一个要探索的模型的集合。 -* 一个合适的策略作为探索这个模型空间的方法。 -* 一个模型评估器,用于为搜索空间中每个模型评估性能。 - -目前,Retiarii 只支持 PyTorch,并对 **PyTorch 1.7 到 1.10** 进行了测试。 -所以本教程假定您使用 PyTorch 作为深度学习框架。未来我们会支持更多框架。 - -定义您的模型空间 ----------------------- - -模型空间是由用户定义的,用来表达用户想要探索的一组模型,其中包含有潜力的好模型。 -在 NNI 的框架中,模型空间由两部分定义:基本模型和基本模型上可能的变化。 - -.. GENERATED FROM PYTHON SOURCE LINES 26-34 - -定义基本模型 -^^^^^^^^^^^^^^^^^ - -定义基本模型与定义 PyTorch(或 TensorFlow)模型几乎相同。 -通常,您只需将代码 ``import torch.nn as nn`` 替换为 -``import nni.retiarii.nn.pytorch as nn`` 以使用我们打包的 PyTorch 模块。 - -下面是定义基本模型的一个非常简单的示例。 - -.. GENERATED FROM PYTHON SOURCE LINES 35-61 - -.. code-block:: default - - - import torch - import torch.nn.functional as F - import nni.retiarii.nn.pytorch as nn - from nni.retiarii import model_wrapper - - - @model_wrapper # this decorator should be put on the out most - class Net(nn.Module): - def __init__(self): - super().__init__() - self.conv1 = nn.Conv2d(1, 32, 3, 1) - self.conv2 = nn.Conv2d(32, 64, 3, 1) - self.dropout1 = nn.Dropout(0.25) - self.dropout2 = nn.Dropout(0.5) - self.fc1 = nn.Linear(9216, 128) - self.fc2 = nn.Linear(128, 10) - - def forward(self, x): - x = F.relu(self.conv1(x)) - x = F.max_pool2d(self.conv2(x), 2) - x = torch.flatten(self.dropout1(x), 1) - x = self.fc2(self.dropout2(F.relu(self.fc1(x)))) - output = F.log_softmax(x, dim=1) - return output - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 62-104 - -.. tip:: 记住,您应该使用 ``import nni.retiarii.nn.pytorch as nn`` 和 :meth:`nni.retiarii.model_wrapper`。 - 许多错误都是因为忘记使用某一个。 - 另外,要使用 ``nn.init`` 的子模块,可以使用 ``torch.nn``,例如, ``torch.nn.init`` 而不是 ``nn.init``。 - -定义模型变化 -^^^^^^^^^^^^^^^^^^^^^^ - -基本模型只是一个具体模型,而不是模型空间。 我们提供 :doc:`模型变化的 API ` -让用户表达如何改变基本模型。 即构建一个包含许多模型的搜索空间。 - -基于上述基本模型,我们可以定义如下模型空间。 - -.. code-block:: diff - - @model_wrapper - class Net(nn.Module): - def __init__(self): - super().__init__() - self.conv1 = nn.Conv2d(1, 32, 3, 1) - - self.conv2 = nn.Conv2d(32, 64, 3, 1) - + self.conv2 = nn.LayerChoice([ - + nn.Conv2d(32, 64, 3, 1), - + DepthwiseSeparableConv(32, 64) - + ]) - - self.dropout1 = nn.Dropout(0.25) - + self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75])) - self.dropout2 = nn.Dropout(0.5) - - self.fc1 = nn.Linear(9216, 128) - - self.fc2 = nn.Linear(128, 10) - + feature = nn.ValueChoice([64, 128, 256]) - + self.fc1 = nn.Linear(9216, feature) - + self.fc2 = nn.Linear(feature, 10) - - def forward(self, x): - x = F.relu(self.conv1(x)) - x = F.max_pool2d(self.conv2(x), 2) - x = torch.flatten(self.dropout1(x), 1) - x = self.fc2(self.dropout2(F.relu(self.fc1(x)))) - output = F.log_softmax(x, dim=1) - return output - -结果是以下代码: - -.. GENERATED FROM PYTHON SOURCE LINES 104-147 - -.. code-block:: default - - - - class DepthwiseSeparableConv(nn.Module): - def __init__(self, in_ch, out_ch): - super().__init__() - self.depthwise = nn.Conv2d(in_ch, in_ch, kernel_size=3, groups=in_ch) - self.pointwise = nn.Conv2d(in_ch, out_ch, kernel_size=1) - - def forward(self, x): - return self.pointwise(self.depthwise(x)) - - - @model_wrapper - class ModelSpace(nn.Module): - def __init__(self): - super().__init__() - self.conv1 = nn.Conv2d(1, 32, 3, 1) - # LayerChoice is used to select a layer between Conv2d and DwConv. - self.conv2 = nn.LayerChoice([ - nn.Conv2d(32, 64, 3, 1), - DepthwiseSeparableConv(32, 64) - ]) - # ValueChoice is used to select a dropout rate. - # ValueChoice can be used as parameter of modules wrapped in `nni.retiarii.nn.pytorch` - # or customized modules wrapped with `@basic_unit`. - self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75])) # choose dropout rate from 0.25, 0.5 and 0.75 - self.dropout2 = nn.Dropout(0.5) - feature = nn.ValueChoice([64, 128, 256]) - self.fc1 = nn.Linear(9216, feature) - self.fc2 = nn.Linear(feature, 10) - - def forward(self, x): - x = F.relu(self.conv1(x)) - x = F.max_pool2d(self.conv2(x), 2) - x = torch.flatten(self.dropout1(x), 1) - x = self.fc2(self.dropout2(F.relu(self.fc1(x)))) - output = F.log_softmax(x, dim=1) - return output - - - model_space = ModelSpace() - model_space - - - - - -.. rst-class:: sphx-glr-script-out - - Out: - - .. code-block:: none - - - ModelSpace( - (conv1): Conv2d(1, 32, kernel_size=(3, 3), stride=(1, 1)) - (conv2): LayerChoice([Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1)), DepthwiseSeparableConv( - (depthwise): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), groups=32) - (pointwise): Conv2d(32, 64, kernel_size=(1, 1), stride=(1, 1)) - )], label='model_1') - (dropout1): Dropout(p=0.25, inplace=False) - (dropout2): Dropout(p=0.5, inplace=False) - (fc1): Linear(in_features=9216, out_features=64, bias=True) - (fc2): Linear(in_features=64, out_features=10, bias=True) - ) - - - -.. GENERATED FROM PYTHON SOURCE LINES 148-182 - -这个例子使用了两个模型变化的 API, :class:`nn.LayerChoice ` 和 :class:`nn.InputChoice `。 -:class:`nn.LayerChoice ` 可以从一系列的候选子模块中(在本例中为两个),为每个采样模型选择一个。 -它可以像原来的 PyTorch 子模块一样使用。 -:class:`nn.InputChoice ` 的参数是一个候选值列表,语义是为每个采样模型选择一个值。 - -更详细的 API 描述和用法可以在 :doc:`这里 ` 找到。 - -.. note:: - - 我们正在积极丰富模型变化的 API,使得您可以轻松构建模型空间。 - 如果当前支持的模型变化的 API 不能表达您的模型空间, - 请参考 :doc:`这篇文档 ` 来自定义突变。 - -探索定义的模型空间 -------------------------------------------- - -简单来讲,有两种探索方法: -(1) 独立评估每个采样到的模型,这是 :ref:`多尝试 NAS ` 中的搜索方法。 -(2) 单尝试共享权重型的搜索,简称单尝试 NAS。 -我们在本教程中演示了第一种方法。第二种方法用户可以参考 :ref:`这里 `。 - -首先,用户需要选择合适的探索策略来探索定义好的模型空间。 -其次,用户需要选择或自定义模型性能评估来评估每个探索模型的性能。 - -选择探索策略 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Retiarii 支持许多 :doc:`探索策略`。 - -只需选择(即实例化)探索策略,就如下面的代码演示的一样: - -.. GENERATED FROM PYTHON SOURCE LINES 182-186 - -.. code-block:: default - - - import nni.retiarii.strategy as strategy - search_strategy = strategy.Random(dedup=True) # dedup=False if deduplication is not wanted - - - - - -.. rst-class:: sphx-glr-script-out - - Out: - - .. code-block:: none - - - /home/yugzhan/miniconda3/envs/cu102/lib/python3.8/site-packages/ray/autoscaler/_private/cli_logger.py:57: FutureWarning: Not all Ray CLI dependencies were found. In Ray 1.4+, the Ray CLI, autoscaler, and dashboard will only be usable via `pip install 'ray[default]'`. Please update your install command. - warnings.warn( - - - - -.. GENERATED FROM PYTHON SOURCE LINES 187-200 - -挑选或自定义模型评估器 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -在探索过程中,探索策略反复生成新模型。模型评估器负责训练并验证每个生成的模型以获得模型的性能。 -该性能作为模型的得分被发送到探索策略以帮助其生成更好的模型。 - -Retiarii 提供了 :doc:`内置模型评估器 `,但在此之前, -我们建议使用 :class:`FunctionalEvaluator `,即用一个函数包装您自己的训练和评估代码。 -这个函数应该接收一个单一的模型类并使用 :func:`nni.report_final_result` 报告这个模型的最终分数。 - -此处的示例创建了一个简单的评估器,该评估器在 MNIST 数据集上运行,训练 2 个 epoch,并报告其在验证集上的准确率。 - -.. GENERATED FROM PYTHON SOURCE LINES 200-268 - -.. code-block:: default - - - import nni - - from torchvision import transforms - from torchvision.datasets import MNIST - from torch.utils.data import DataLoader - - - def train_epoch(model, device, train_loader, optimizer, epoch): - loss_fn = torch.nn.CrossEntropyLoss() - model.train() - for batch_idx, (data, target) in enumerate(train_loader): - data, target = data.to(device), target.to(device) - optimizer.zero_grad() - output = model(data) - loss = loss_fn(output, target) - loss.backward() - optimizer.step() - if batch_idx % 10 == 0: - print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format( - epoch, batch_idx * len(data), len(train_loader.dataset), - 100. * batch_idx / len(train_loader), loss.item())) - - - def test_epoch(model, device, test_loader): - model.eval() - test_loss = 0 - correct = 0 - with torch.no_grad(): - for data, target in test_loader: - data, target = data.to(device), target.to(device) - output = model(data) - pred = output.argmax(dim=1, keepdim=True) - correct += pred.eq(target.view_as(pred)).sum().item() - - test_loss /= len(test_loader.dataset) - accuracy = 100. * correct / len(test_loader.dataset) - - print('\nTest set: Accuracy: {}/{} ({:.0f}%)\n'.format( - correct, len(test_loader.dataset), accuracy)) - - return accuracy - - - def evaluate_model(model_cls): - # "model_cls" is a class, need to instantiate - model = model_cls() - - device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu') - model.to(device) - - optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) - transf = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]) - train_loader = DataLoader(MNIST('data/mnist', download=True, transform=transf), batch_size=64, shuffle=True) - test_loader = DataLoader(MNIST('data/mnist', download=True, train=False, transform=transf), batch_size=64) - - for epoch in range(3): - # train the model for one epoch - train_epoch(model, device, train_loader, optimizer, epoch) - # test the model for one epoch - accuracy = test_epoch(model, device, test_loader) - # call report intermediate result. Result can be float or dict - nni.report_intermediate_result(accuracy) - - # report final test result - nni.report_final_result(accuracy) - - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 269-270 - -创建评估器 - -.. GENERATED FROM PYTHON SOURCE LINES 270-274 - -.. code-block:: default - - - from nni.retiarii.evaluator import FunctionalEvaluator - evaluator = FunctionalEvaluator(evaluate_model) - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 275-286 - -这里的 ``train_epoch`` 和 ``test_epoch`` 可以是任何自定义函数,用户可以在其中编写自己的训练逻辑。 - -建议这里的 ``evaluate_model`` 不接受除 ``model_cls`` 之外的其他参数。 -但是,在 `高级教程 ` 中,我们将展示如何使用其他参数,以免您确实需要这些参数。 -未来,我们将支持对评估器的参数进行变化(通常称为“超参数调优”)。 - -启动实验 --------------------- - -一切都已准备就绪,现在就可以开始做模型搜索的实验了。如下所示。 - -.. GENERATED FROM PYTHON SOURCE LINES 287-293 - -.. code-block:: default - - - from nni.retiarii.experiment.pytorch import RetiariiExperiment, RetiariiExeConfig - exp = RetiariiExperiment(model_space, evaluator, [], search_strategy) - exp_config = RetiariiExeConfig('local') - exp_config.experiment_name = 'mnist_search' - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 294-295 - -以下配置可以用于控制最多/同时运行多少试验。 - -.. GENERATED FROM PYTHON SOURCE LINES 295-299 - -.. code-block:: default - - - exp_config.max_trial_number = 4 # 最多运行 4 个实验 - exp_config.trial_concurrency = 2 # 最多同时运行 2 个试验 - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 300-302 - -如果要使用 GPU,请设置以下配置。 -如果您希望使用被占用了的 GPU(比如 GPU 上可能正在运行 GUI),则 ``use_active_gpu`` 应设置为 true。 - -.. GENERATED FROM PYTHON SOURCE LINES 302-306 - -.. code-block:: default - - - exp_config.trial_gpu_number = 1 - exp_config.training_service.use_active_gpu = True - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 307-308 - -启动实验。 在一个有两块 GPU 的工作站上完成整个实验大约需要几分钟时间。 - -.. GENERATED FROM PYTHON SOURCE LINES 308-311 - -.. code-block:: default - - - exp.run(exp_config, 8081) - - - - - -.. rst-class:: sphx-glr-script-out - - Out: - - .. code-block:: none - - INFO:nni.experiment:Creating experiment, Experiment ID: z8ns5fv7 - INFO:nni.experiment:Connecting IPC pipe... - INFO:nni.experiment:Starting web server... - INFO:nni.experiment:Setting up... - INFO:nni.runtime.msg_dispatcher_base:Dispatcher started - INFO:nni.retiarii.experiment.pytorch:Web UI URLs: http://127.0.0.1:8081 http://10.190.172.35:8081 http://192.168.49.1:8081 http://172.17.0.1:8081 - INFO:nni.retiarii.experiment.pytorch:Start strategy... - INFO:root:Successfully update searchSpace. - INFO:nni.retiarii.strategy.bruteforce:Random search running in fixed size mode. Dedup: on. - INFO:nni.retiarii.experiment.pytorch:Stopping experiment, please wait... - INFO:nni.retiarii.experiment.pytorch:Strategy exit - INFO:nni.retiarii.experiment.pytorch:Waiting for experiment to become DONE (you can ctrl+c if there is no running trial jobs)... - INFO:nni.runtime.msg_dispatcher_base:Dispatcher exiting... - INFO:nni.retiarii.experiment.pytorch:Experiment stopped - - - - -.. GENERATED FROM PYTHON SOURCE LINES 312-330 - -除了 ``local`` 训练平台,用户还可以使用 :doc:`不同的训练平台 ` 来运行 Retiarii 试验。 - -可视化实验 ----------------------- - -用户可以可视化他们的架构搜索实验,就像可视化超参调优实验一样。 -例如,在浏览器中打开 ``localhost:8081``,8081 是您在 ``exp.run`` 中设置的端口。 -详情请参考 :doc:`这里`。 - -我们支持使用第三方可视化引擎(如 `Netron `__)对模型进行可视化。 -这可以通过单击每个试验的详细面板中的“可视化”来使用。 -请注意,当前的可视化是基于 `onnx `__, -因此,如果模型不能导出为 onnx,可视化是不可行的。 - -内置评估器(例如 Classification)会将模型自动导出到文件中。 -对于您自己的评估器,您需要将文件保存到 ``$NNI_OUTPUT_DIR/model.onnx``。 -例如, - -.. GENERATED FROM PYTHON SOURCE LINES 330-344 - -.. code-block:: default - - - import os - from pathlib import Path - - - def evaluate_model_with_visualization(model_cls): - model = model_cls() - # dump the model into an onnx - if 'NNI_OUTPUT_DIR' in os.environ: - dummy_input = torch.zeros(1, 3, 32, 32) - torch.onnx.export(model, (dummy_input, ), - Path(os.environ['NNI_OUTPUT_DIR']) / 'model.onnx') - evaluate_model(model_cls) - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 345-353 - -重新启动实验,Web 界面上会显示一个按钮。 - -.. image:: ../../img/netron_entrance_webui.png - -导出最优模型 ------------------ - -搜索完成后,用户可以使用 ``export_top_models`` 导出最优模型。 - -.. GENERATED FROM PYTHON SOURCE LINES 353-357 - -.. code-block:: default - - - for model_dict in exp.export_top_models(formatter='dict'): - print(model_dict) - - - - - -.. rst-class:: sphx-glr-script-out - - Out: - - .. code-block:: none - - {'model_1': '0', 'model_2': 0.25, 'model_3': 64} - - - - -.. GENERATED FROM PYTHON SOURCE LINES 358-362 - -输出是一个 JSON 对象,记录了最好的模型的每一个选择都选了什么。 -如果用户想要搜出来的模型的源代码,他们可以使用 :ref:`基于图的引擎 `,只需增加如下两行。 - -.. GENERATED FROM PYTHON SOURCE LINES 362-365 - -.. code-block:: default - - - exp_config.execution_engine = 'base' - export_formatter = 'code' - - - - - - - - -.. rst-class:: sphx-glr-timing - - **Total running time of the script:** ( 2 minutes 4.499 seconds) - - -.. _sphx_glr_download_tutorials_hello_nas.py: - - -.. only :: html - - .. container:: sphx-glr-footer - :class: sphx-glr-footer-example - - - - .. container:: sphx-glr-download sphx-glr-download-python - - :download:`Download Python source code: hello_nas.py ` - - - - .. container:: sphx-glr-download sphx-glr-download-jupyter - - :download:`Download Jupyter notebook: hello_nas.ipynb ` - - -.. only:: html - - .. rst-class:: sphx-glr-signature - - `Gallery generated by Sphinx-Gallery `_ diff --git a/docs/source/tutorials/hpo_quickstart_pytorch/index.rst b/docs/source/tutorials/hpo_quickstart_pytorch/index.rst index ccd068fd7..dc70977af 100644 --- a/docs/source/tutorials/hpo_quickstart_pytorch/index.rst +++ b/docs/source/tutorials/hpo_quickstart_pytorch/index.rst @@ -17,7 +17,7 @@ .. only:: html .. image:: /tutorials/hpo_quickstart_pytorch/images/thumb/sphx_glr_main_thumb.png - :alt: HPO Quickstart with PyTorch + :alt: :ref:`sphx_glr_tutorials_hpo_quickstart_pytorch_main.py` @@ -34,7 +34,7 @@ .. only:: html .. image:: /tutorials/hpo_quickstart_pytorch/images/thumb/sphx_glr_model_thumb.png - :alt: Port PyTorch Quickstart to NNI + :alt: :ref:`sphx_glr_tutorials_hpo_quickstart_pytorch_model.py` diff --git a/docs/source/tutorials/hpo_quickstart_tensorflow/index.rst b/docs/source/tutorials/hpo_quickstart_tensorflow/index.rst index 89654ff29..dbbfe2f50 100644 --- a/docs/source/tutorials/hpo_quickstart_tensorflow/index.rst +++ b/docs/source/tutorials/hpo_quickstart_tensorflow/index.rst @@ -17,7 +17,7 @@ .. only:: html .. image:: /tutorials/hpo_quickstart_tensorflow/images/thumb/sphx_glr_main_thumb.png - :alt: HPO Quickstart with TensorFlow + :alt: :ref:`sphx_glr_tutorials_hpo_quickstart_tensorflow_main.py` @@ -34,7 +34,7 @@ .. only:: html .. image:: /tutorials/hpo_quickstart_tensorflow/images/thumb/sphx_glr_model_thumb.png - :alt: Port TensorFlow Quickstart to NNI + :alt: :ref:`sphx_glr_tutorials_hpo_quickstart_tensorflow_model.py` diff --git a/docs/source/tutorials/images/sphx_glr_darts_001.png b/docs/source/tutorials/images/sphx_glr_darts_001.png index 944f497766d9953edae44cc59acb146b22a57b80..32f3ad6dd9ec0fff675b2bdd3acd53477fa0f068 100644 GIT binary patch literal 261175 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

@uYa$7Kx=<5Gksl$vygJfyX6 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Ϛx%O9vn=$F*k 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

4}iMErXCfAb2O7t71oR+`C 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 literal 98070 zcmeFZcRbeb-#6aYkQAlNq@h7l_G+P!NZBN1o%Y^Tl2Hg{WR($;WM@~D3L$%kBs+xc z-}C76xv$@K-PirN|G59Y9*=L|`WWZ=KHu--c)gzMb@(XAOK;xDxN*gb6`RkWJ9}xx z3aXkFD^~KZUx%;6-jMx_zl3ZgRc(~a^=<60S?R5~aLvZT#N5WjNO!lLo|Uzcx!G}U zKJMd3b{pE*SXc`mJ!<+NKfrBnWpK3WaNbwE$OemZYSt@OY`I4MtW1(fG+ME8#ftN1 zPhED19PY4ppzoXeH9nRzY-T4A(RpT@I_E7~C+Ro0_v|Rsc005~blPs%$wW0^qqK>1 z?RAlyxFnsor|A?GjBcOgWPi{p(4zfg(Zl}3n$z3Y_bleUEV8q+(>Jio43Bag?awoh zisjsRdOiCc+W+!@WmhAMi|kMSx3Aw3+;(n-)_?!<$yGo9%kTevxi!02+WhY?e1~?` zgBAJz_07l+ulzs0?25fNx&OB-!+);Wc9P-0zuSrpPd5Gcce}Z!#`C|w+y7iHxqtt2 zcmJ-J|5*(Gm&KrCGRE@%?;pW!oW5T>3oOpo4A_hmZTfc;)|&m@raedd)4uW?+8p!u z%k$=S&n~!3w-}t=6FA-Zs8lAc$@=rb#0ODP9i0Vx{@v6gGJosFl9h`%+ol~yp2Ww; z7uokcz^mV9v(&SSp+ zUSZbZzct`bMe>Um-`^$&d=ogkl`f{Hv%tE>R4wyyP|!A3mtSwEJGYbP?k&M0srZrY zarO3qh3r+Imh-!>y5}j*{IAcnz+R*kX&e{d0ZH>;H36^gbh{NS|Zc_JPH|{q3*r((zfB6{2%L;|l-u+o3B|$@%2f zs|QLK#U4F6tipO%Y{x%uIehrK^VrS*xC3_t^Yw1rpk-pJFfUnr=67hNO{nD}%chSuk7Qc}{l%H!2HzP-6+(vkn@qQoM7k@m&&=QpfgN3FB) zXZ*<3;z;{0*U($5slL|KyfKJz{or#T`r~_stCa_0T;5q%iSFLF|+o|-7_(s1iI9dmt- zHiEvOd}_NS`!*kiyzHR6&)418=P=4MYL2qA5oYOD2z#8tSXiaaTW~}7ME1qHfLKnK zh4FHiKiyuUOMiOz?%k`PsVT=ve>$-)@ZrNUhN~{=UAKBuHFB-0_?j#xs|1egSMJny zU$pIXn>US(jeXsHm&xJRTdG~hbk{@(nE$xFiCbs#N0nR{&#mQ!eu)z&PFVCu+4oF2 zIerh6-iaSN5NWaMs@rUWa%hKsW^IYPyHo&cQJX8zPU=Y8Mzu)CAK~OtNwc{=G>CS* zo0WCqnOyk0D=J#=d*0s*7cggK5wZI|=DsZA=;*jYE=u^34$sF7y^7b1(`|VpIc?`; zWOSQfU87pM#&%XJ&d0D|we$T<6vijKlHqO641bq*S$02z{%*ydG^53fL*bTn)V?7MTQ_>Hrz%}osH&DLuw!g!OPLwqQ|4Cv6d7*q zupB<)=rYk;I8*O@;xgX~+6~g29jc%2<(7P$n622-Ez)wlq^ml@y!d?om#FjS&%dQ) z2SrEA*Dqh(%*w)&dSNWUzSGg`!w0Fm)VprK)%iA@S^eWjggO3K{4_uRvD@O@)25+M zpFj8f=?&=j*dl&1t*O^S@MlvR8$LZXi!gm!)4lRuc6Rn#b@C#9o|_mhDJhkz z|M}IuFd4HP|Ki2{D=Eq>&0a_T={ACUZ>%B6)6)C$L;B-marU!QhimmNL_k^zt-5{XlLZy zeu>K2TPw>q3zm%~nLbtU-ps^bQ($jys$D@pMdc)(Y1u1v`|WP+G=_o>c^jJ(YHDg& zv$WLfEDJiCN9^SG)3vm;I23g%_q$MN3;GYw{r#sRD#|H)m z;u8|G2WcNfM#`N&z3Qs_B46lLHzCxGf)`Dx8Uni4ug|E9{EPoB9nSxy0)lH6#M!#4 z!X;V6K|_1|XZvz<%2E^^ZEpR!X?_cp4IArU3 zMUdHS`(+h+$+j(5_HKKt!!ta=+VDZsmL*EwzJ`%c!>r5j1m%_^*21S7Ul|`=*dN?z zXv`a)wRpKnG4xot+*wIUqdNV}U2(NZRmQWLmoGn@ZvRrDc4Ws3<-T5bHL7*5{-d?dBezMwtw#O&UlAbXq7qWWKtk!|Im$!fYQ?vuBCT4~+)r$sycr1EWtJ_PNP zZO+i!BqSu{Aj-NY(AzFL$xi1^*U+0WuIozIuCcSZFC0rNSrYD#w5EBh^T5}4qtox7 zw_-UfVx zX^Tyf1c!w+(^NJ+Oo_`a?S93-M^lj=3mM?So%)DQ7Y-Jay&Dc3{4z z@$q*=MqhgX{0E_R54U8Z59~gAG=R^z(PDXVCYLec=s)$`(ETsKJGGlur#4oy-Kv5M z#cPD`CM)&2*};@Fhh9GceEQX>g`yK5Ie!1Fy&f>+D9Q?W%R!(nziI2)<)y{E{%Gfq zpFRnBkNx=gAS^^mS3Q4P)x74qe@+Zcjt*ObZpBauPePqWb{)o-@-rs(&`_?S?db+B&zyAkH_BOQ2 zhF9%Ev~$vIV?(^o8V2r-Vw!d|m1EorB}XT>+z{U8W5}|%-7L4!=Uwl3O>?t1kTG9c zPELqvTaM9WeSZTDJ;h)ndd{JrofG<*Ef#{zf>H93@(0q>)A0|}vxTjer&;()CNHqK zl3SFO8&f>z!zM8wXq>1eE2F$|{NQ-~!-glbSPNxnXGP{?22! z(H+9Se!UbM7e}CzZ|sBc@biMqKLA|!GSiTn(?IF#ubC+(iNP(?=sB$FY(yyU6f|C-HI}V{icSgcb0mp`U=epEnJ)J zMtV;QuVXgh*J$&bnU}ecJ~rhv?jWjeu$ganSECK;JaFlUp(#pklyqsz%sP*inJxG0 z2KMgXFU7PqZC$U1d4CIL!Vv3_{$byD zcdzm*WES1EHWNy$((81ebIt!f^6qD*lyQk3e&u>+!DN=6e7M!d4l26?^wjAlqr5?x zK|((&uk-BGSf0L+@3w7hX;LesT0=gj)^&OyS8;^a{#C}=aJl{Yb|W%PFSXiS+`fMd zOl3`BF=li7b4|ZGy5ooN7KsI(IO%}>LPCzA{b;nav$F-2)t^7_!EJVK$9J@Zmj`X~ zm06rCK7S57VRR{CUO`p$BS(Pf*B?2!DJc(!jf{-2zl{Qp^YXU3T=<{*?kUz$C zLsKY#xc>3+@%b!&^^@c{n4H4ko{gWeBUCqtsu3zT>mj(Rap4OBihR0}RVp29X zL$`fnR;E^%8S8NnGG-2e$6#+_m@xO;1{wB;ONzu z10NlCDpEbNLvDZYv0?s$(IGAJ@_+sCT(0AeE!vqPeFDa zRO3x?A(|W4tSXR85y*}YX`L0r&hk0C-t)A&9cOlAsQS|R?SDaD>-DMjg_EtjaKrZp z8rR;iEe@SaFOa05H8kq|NHu+kOMtPCytS0?Ix`VtTp*!ga+gKQNiovanQb7HB_t>C&Z$HlUHpD3Q=mZ6_b=FG60D z_jZh{CQKv(51gGeAf_t$}@{aGQ>t0WZ-lah7Y?oQp0cHkdBXmobT zol&OfzW;W2MM~;?QWEE|-Mn_FN?qdUzz!NO2s`!l^$J(6By^}KD}z|>Af?LImXAAB zHpSSSKf>qUJr1nA`1rj&y}jpUWcJ`c>gzA#R=jE(+3ELz-+XYrBet0Ph0=>mUuH5( z`bVU@^uO=o7}&a%fTt)qJx z_NKhrRZhl>exo!)j!er-?h?yBsgO#w(}~(qs*4?zRZA=U8vLjwYz6%ts8-w)*CY#^ zWl|)zZmexKz1A>3FE9M_XBkn}iz)tQ;xXo-MtmA_sJ1BWDGk1L1N9kYNeQ>rL#QuR ztjj(!hW6_E#{C{gU;EVs+hN&PLd-OPCP`^&iKyPsp6$m2%9=RG9h!0_WPfOdXVcKW zoz&ZCys}T`38#k0T=IBBdE(GdEl;r!K17k0j*hBUYj~15=N`xTdF9%Ni*Czq1}O>^ zyh&q{QR}j3Rt#D_RX8WY|2%3{eYLIm(D3M_B3sG~*n`L0lQuS4c1M%~t^*hj?TqI( z$X3th-Hgtr?sFU^yMY4vWQ_OXqBFCJRXbVXG-CfOaGr2Eo1sQOvY_tYr+!&HM**LH zmsu@dL3dG<$aO+cHiSlB_X>^`PB!P5G7)yRMf}fhz>eBD>EjN+bmYaRF5?GiUY0C5 z0mjKuD2LqV+qwW03OaIPIZyEO^V*MUqE3H)cu-08mCnj7V!vrOY}f!kf*n+fYJ0nG z;QQiCSAVNn0&rV`q&Q&;w1jIPu$FOmdkni)C{Wb6V4NhFsS+C_{v zQ(or#wwV?9*$y?PTXdfmwjZs$9v~)VXP1)`UD4O$zC6!n{iE_}Ru+9+?Z>qYn!mi1 z&Z8Yg3Rwe$?mck8IJddE`HWp{zQAU_2AAd8#P~j&z04caU6r=t3-NmW55o2*GkG>M z2uGR4cr;L|zIG@w@uoa~ZfI!uBtKuhAT1^3dhZ867hpv7>-xKCcMA)vGnpp(n_QHW zt6w!rDRr-~nV{@`Qsgg2?s}1U`S0$*#FzS`5!T_8pPBu`ZKyle*_0Z#PNrW?tlO&R zzvt%`%H(6F$7)L>R>PKd%3SL29|Yg6d8$Fx>GYe+#f)wB#hu=t7Unst2S*wTmuiOU zLmD!MEA-y@TX**!6=c0v70bo&i^`j?eAN0EvkpM7rd^Ak`Zt-87tiF!M33&IzI65K zMN|m!n1H)?*8z@O6m+!q0#4zdSwTn9MZi5wBPa&ye7h4u%+Nb(-P{`-cifY#;H6_@ z3+OO2-!6Jt_FdKys=5iy(=06RuP)Uu@5)-xSbEes!5hd|_7fU^_rhcZ{;kOM|-}#=b zEovy|iZM2hex6!BKVPI!qC$0A%e=p-*)hM*s-VqGqk7gw9C!|zp$?BXcs~8cZo2|d zcNEK!v7LB-2hlsF*B0E|Q_3Gbdemw)IFwZx-#0mn>uMc;mAa_7dXn;kX39K8|Br&l z2-oVd!6GM?Sk{?(D--?9yasQVDZAYPeGXtsr-!4n1~;G^z#%9rFTZ|*@zbYI><12b z{rTgtZQC~B_}WzmaNpketGg*B$|pR1dP}b&Wb67hSYtnJgy((_lmhQpkWB>zv$*`5 z(D2UfL7|~u4HP{Pgx|w0!D!8ZELC1?Zr<{V*V|uP0$Sgf;^2_>-wX7*>$tvxqT<_q zp_;K%N#fmi=)(9-89}u>-Kc7+^p8VS-RMEJbH#P=^gh&Z8 zf6&hieEe9(%#0h_YXUyi_a8r&o{kJ32E!hcbHCjnyJKra7RLqGz0CVX(nR_-orkWq zP_dsiUgvS^^=m=kj8+%z&1;fY+SuNBAgq3_2pc6XDapI9BGlMVpNpxc{)1v--T6zG zwxJTVo|}PKxs8r)M#!@eK!hXs;ODYq!T#N0=gYGmFW0F^)GBn;{19F(zw_qtx5;a> z8ooW|`0`eAMzaim;<=nVeh=9djC_A_gLUa=x7cV*EL?)CZ>^iRKDg)W+nV;|^HSq) zW%{)xT>)THV>5O2_3?hiQ?oAcA55eFvVH|^?JsvXGojzBZ(y*cFMRyC>8e?Z@q?U7d_VOd@jPjaIri;08h84QPutdQW;}c9)Jo-) z>>~RC?PKmKXSK@k8Jeidrng2pPNM`eg6tz_ij+DgBe1>Uu-`9JU zs!P4-=t!v>>;)C%;_RAGHQMJ+#4XV9{_P_aUP31yR#N53?3p7ClP|yu3Zb1HZ3*6^`dUT+s}_^3ksZP z(b$1?Af#cPqDVmSOAUNpT&yjd9TF6DyMfX$7&kIDpW9-Bl{1lBvgk+jT8IEEOfP?g zL|ukzeA3A&KPOr{4N6jQXlQvtsP^ZsrD=ge?J+m=lGMe4*6hPj9fReCHgH4u$2}eqlP+)c-Cv=tg#Kd6i5ho|76b%aHd5F4If5eGPC=`Jg z66;3z4O1K01J2)vPgJYWaMFd+RwCg3u)2ujBSUDrU1Iuly#I%eP~+$*Nocz(ZKh^a zHp?X6+CP;Jv4^!lle^tapsK10LW%LIBiZ}27@w@lGEF+Qhc7i#c-3VVNk%$4kJ9cp zCj78TvH~Y44`f)*o2RR`j?8E%(*O7pRdG12@U*`Eer#X8o-!Xeo0OQ(1I)gQ$*G+E zUU}A>hdbr$wC&fi*>5{GzQJqZcx$n%NR0bZ-j1C|xwsOZJzEEDY&UHUFKd$87Leng zb%|TRKMEeQE10`C%5U%aW~dfDsB=l_Ys$fe)wgciMN%Bo{2!YS&4x4`W(}Z%W!N;- z@KU9Icaalyd!Eh7ir(w6M$(#$2Zl84L@#CT!=eIyMf!t@#5eqeb-v8$EA}vCheNeJ>%R+GiO| z(pRoL+Mx+6Q)K)0?PMtvh!w8|-5!sX)HjZ>py1$7U%q@8u%T=&Fht$#aJ29U6AuWGWaHYyC-P`K)K4NQt)ug|Q_+sd z7PdiK^@<25t!LV+M-~L>H$vWh(eOgqSS@8>u)|D1Bgdpx>a&1=KwVAENo(uO>9($n zx=eL8?U4l&{s>D!=Cb$ijc%#(DftUmo8{)p2$d8(tmNv?ZGZMWIoT(WL)xmx=RgJ! z-)PZ{HbhV&RwqU~9kR5v46FL#F_%lZ7t2|%qB7p#Y_5~jy58${p+N6J-=@^QWwQc? z3ie_tXRMY#ke&$-;o$IyjAXvMg-u>voe`de`s3dr99H)75!_|nPZ|qUq;D^86$$-j z*kaevc->aJqW7tjoC$^U4w{_DaqLqF#)sP!wY6XBF<9nlww|QH+AHs^?bN84Nm|#^ za6OLETP45)&Jh|&s)<*XJ_k4V%PVUBMJ#j;10iiBRx~a3kEF2RCb5ZudoNHLgv$?p zOvz}QuV068Y2>^zs@u=V#6%3^?CflmTl7oE`H@_q+3&#v^~rRT{nZEHW*sg5bNhVo z{$o0CR!mGzh65mdoB4asjW4G6C3KOyC z7IU87D8mS##&PxGr|iefpT(sTU+H9T!(bP%O?0sR#pS(G&(WaCvudg#V~AhtpS)(60) zW)qJL)pllC6tBO$L)RWsXp^QjAwR!IJ0g;m5=WIvucN^twc)9}swZZ7Au--Y)HkbP zcb%0s00`tbK(NdPUdl#AKHE6;Gdbz$fne8zgM)I9`{RJ9tY+J zPY#KsBxn_CALS0c2jenzso*hdVRG{M`HrIp5566-`wL5aRm`6%Bwb0pK_u7gLhUs3 zD;%Aa>>dljEX8rk3bUcc)V=%m0h@hRGl+VBX9JyTv5OE%Oc3z_u1r7t&cvLY>6@LC zOGzn54!GCwOi*p+*og~_d>3lI?3J08H~WC9#=LM`3MxZL$GV!mulD;(Q4T~(44w?| zc}^UNbC)u2Wfdm(WvJ_KR9yX=a>&K@j?3O{wNh_#nYVWFb`(B-u03-9JFZEu;rA59 zYgcx>*JI1GuBO>^7o7FCZauxe*6pw7PW48IhggQii_;otB2ZSp#|4PLGvN;o3-bp2 zg%Uv!b!LmVk54xw+xJ6LC_<$WNueg71_VY#$jZyp0FMwY6iPSLvo?TIgubpGWgAdlI*=IivVlRo@1fGi>gw`t3s@+Ea3yx0 zFnkcwV=>&EF33zXayq_`^TN~)>UAxJj>qw6u4CK0&?*SQb}{5Qk(rTkPF6M!@+<`A z39#GR`uaN^X61cW zE-8QJ^ArjtC9B$N@ZHgEK0M}~qQwgnvKbi}s`)ktkCrU(t{^heVdWQ3ATtpi3HM~j z5!E+n8h_flmOj8%IeX#4W(F;rt-a*|U8buO8E-6Lm1K{dQdZu9TX8J#+#OOj&=XN$ zK%q1px;?Sm#OH^P7takIHY-`QgMvh?68m;bDu|b&C>lq!@*hT+<@=2HmS^g`T@~#- zDnz;wijMufTY>G+v#H8ufULZ4w>O1}I`TF&G>Fc$Ta(`cY2Sz&oZIDAf!lC#X0&6V zB{MN3$b5RZg%~Q4R-X^5vs@l;s^^U|z4Y~^9&7!>Y>KctA75(gZqmu1OJBKig``&| zt0mAup7>D$@L)l`Q%a+O$e=)wDn95CQPoJf(=a*;H+$T|W4;8sHBVkqF|0dQ&-+hC}kg1A9lr zB&DT~!yK5K8Y;&hwTv4ZNWHNuhzg^LqWS4MmJ)yeh{^IYV-5XwNh>KTlP}Gs6Gc}% zyshLp%9iHimIWv^!tCtVN*a~gJnK*93#W=J8&{{~DsaZ@ZBR5H)Y)pwVtcuW@qtR( zP($GKV0JL$4Ha3zq=CVP`JB(f%_jVRUB4^-e5cosA2{$AD6PN_foGbL;dZfB44RB- z>wrzp^ZCspw@nZ6y`j!>@`LzXlOW3g*PEnB%yOMWO{HP)!HP%X3i#b-wB0c@c;e2T zJN!pwU}u8jnl>8BL&acp_)!^N3fH#%hjR=x$RkHE zW$Xl^ZzT4B34IDcgKP){S^&b*0juz$KpHl~&4J(<*0quhwMEYMXkyuKUTLQ#qRGv4 zxyK+a*O;nNju?=nuI`>{u^Hwwcd2W?jA4p87MgTq`!LP#LWw=4SKXZ<3ID@>R32cpW#+1xAfjdv*ZBnv~BO-F%!Kk{q_ z_O%?UYO5^j3q6nW6CsV^L&lBEYhRwjG&!0cPUS6879hwqd z{9PC6G?-inI!zE7{tB?{{a{JVa8L{DHq%`E^D57^cWa3C$JL8cwQX^JCQ&+o)!7xe zCPJXo!2=%^4(0_^Il2S#-=C+v>;cldHs13d`j}bqtiG`AT+y)%7)>M^CD7$UhpNzjpb88IruT}QfRcWm^0-Q#;0^|Uqb zmO4is=zD@}Xa@EHdYF9Tq(YIHPWe>Qaq&}aGdH`W`=+-^$%lDovka!+TTSP4mUy?Y zNPiDCnWr^fphzq5SqD8nnyWRp8pF+Z(RbAyv+D0} zm|&sgJb-+v$sNisT>SE-JkvfxEzHco-E(Dj5wGA;FX+az=K)Zsc)gSR#OkMShV%*A z33Mpu(Lh3``kRI8Ss&jtL|oZcmoH;8lUO=Eb_Ha=g3=bO8Cp(4?KK{n!o@g;jko1 zv8L^rPF^jr;{reK!I~>WhmDCzd$idB!eribt8sc82{`V*@VE>X`e*1&=d7%FVV9Fv zO=*z9tCCHDPI$^=-7%-%hH%MQ(0V?#=UEG(Y|kWH?iUt*j8tFfTMsI0yeP3fzT%1@ zc$AT3XKHTeXT4A@DKj&(lqRLR*INL}2;s(Cg%uVSDxb1rpT1JDwa3)eyzc8)w8b{P z;?|p;fd5)rEC95ZFJD%GFo`AzwT^!K_S%}7o8`T5h7J9q0OinZ|1k~Tbz9K>6--X2 zNX0@07}!Z-z07+Cg>KdwwwunTS_sPRrhU^tnSQNw9f_SH^TK)faH$Eul7hk;h|TYi zLQ;Kg!M^M=E8%6joVzf6Soqr?Ywj|`Al~EdJCJB4`Z3Z*}-+G#pvqMtRLO6=7n@5k{KVUy|?!twAkQX8Kr1qz_X4<(!0CMz9SN5lLPcl9SKcgmdM z{N(H|KPkeCqg|)fq8)lR{HTtpcI=OmhU!dAbVw4CiFHOCS9fr0HXr&Hioj44V-MB< zB;s$Avo~3mx1cg7qTB$51M*KtRet%h|Ii`dyLay@htt-#22y<1c)WeHT}AV$-+g;Q zW(2s0>zo^hrf~g)#+VgNDSr{{rAFlg_kc%-Oh84U1Vzo53sk_U1v>`4Ar7X#l|!|aU>PM)j*(o9BJj3=RYVP(F!TB5xv3-Szz z8sc1#FhRS~DhAuF7#Hl$90(SSSQLwCRmq-mo0dcZi^ zpEZQu(PKA@vBn=qMC46=5h05+qk_8^B5>e}e8KP2eGab+^nes-ygVu^D~pQn#&V`! zs&*EQ?vT%Q(bUk8g}C!0Iqs*1e|*5%Jt%;w%7wzsXRG!!Di1nl|Be+Nu@H=(E}-o> zdJ)ug!80jYYthZ!c}%82h>=1I=Y0-w3H^;zXD%$#to1m>wKk%ZoOj+oB*EEO@}f(9leWaortU>Sddb780FfH5JW`%CKX^z#JMWOglJDzK7(` zCq#nZ&GyH@q&R@}!l3PN%XzGb0c!;!3F7(njhohaaQdEBQ`?2wcdhj9h#eC!3HBK8 z^$*kl;hrrf&oVNC0N-okq_>b)#k%z>?IzF~`+#_3NMfiL$yYpVf}=m$QBaqna+HKK zAVN(iC+4?}G!81m-@tZI(q>Y2aV%mOH1}S0Lbp z4T<${IJ0ZlE+R;Vg`NBBS1K|sc1}DC`9(7EWupUAPNT*1X83VrR#5=9($UqKCBND( z`SfK*Gs+ajN5;f?z4Vucw7m`@~k%_Y_ zPVkSvA|mk4|I63G*@vHQP$nY{`{|dZ;uKS6UPNCUG1C}yOKNML%?pWoIaAhcVS$kJ z_1rc^dQVm{r&qQ^%BELOKc#glVnsXSq<^Qwqr-#*WUg$0R) zTnK?r>jtI^OuU>56_yhl0*9U|7={|zss)tC`FW?oX9ZP55+8?VO=A9nIQ!!af3xI32BS(cv2lJ#-^>lAHBl_? z6>Wl;eyA&Cz%|#bLk2e*fEMDt?g>W71nh?o--EpvLR?1(Mo0#2F&@;mJ(18XHl_Ps zH(dv@D?h&k=b2HtXi<_-a{JRw<+d;`4fb@aYwQ5rd2!ddnoNU>!Ztro0!i>kq*iT0 z7QYfa<|0xoh-27{v_1le?4Fr-gv1351*3@ygA1g;B6z&|4QLag#28#5rb9nsM$IEj z{r&wUgE@&ZW8J7`ps1>P4%Q9I+grmE6Zo-7ge_|U|3OSY5Z&NdIdkbd&rKWFd6=|j z`2Y_B)xsDv=`0LyZ`VX5pD3e1EeApN=50<1K&v6)J>qTv!`@>!`U8s5el9LQ;2u99 zHF=>vdf$8Z$R+-MqW7Tnx>OJ0vYFj~zGo zQvb3D+4|e1-G;H1aEvx6A!YRZ zN=n#q0~+*>hYuej)=HrE$BK%!{+XB0g3L@zZb17b)C0K7n4 zkRzTpX~#k^?I4$`9~dH`NA$jzg%dJd4~~{y4OG`~bK!OI_RApi{u; zqS9}UrwsjxgcE*GQlxiARNbx8H?}_EjLM461KDLO3rokLszSzB<|(B%74y@BfA-z^ zGZcgoO7~+DOMf`5Lo4-$^RBl!tI!nWJ}Y_;(#5&*cLyRkc#4_edXT?Q<4z$xMzn3n zq3?BTox=4E4C=7>!TE^lDkKz+!nOMO(S82ZsHKQa5qOFS$|-80CV=|Cprx zu*C3N104kd09c7no~$V7=zKoi<0sIWG-cyP#v>rhC^NZ2+Jv5jRKhpqq8GtIL0Hq& zO#JtYUFS!~V?R=|ts1VVkj(*A5mbnpRdi?Yr!s7YGl=hD=m#0SnzXAD2t1$KyX_h@ z9_0QJ<$*b>Y4LV#q+P3#I-`A&b~Uim&(5NGZVprX#H%H4t>=8Ohx8Sq@fWgLUM-bSi0k+zVZvz+Cxk-0JZ?c%jTqK;nx5-OfN?H`}hQ|C?I+NI~*g- zb#3iuHLW&&UY6KG^{RFFH_l5D_BW2P3;rXz~#uRlf-wm=p;4DN+JR} zkaRPkj*(;tP-oVd37!?;1z9V3*8M$Jd9Ps<#rLMu&Ohz@I9B8XX^5NKESKe}#zxQ6 z5SB+8VMbgKfKoA8uVHJOZReM$pVRCp(Qvc)tFnb6(gBh@RF8c~~wByu_T$tNDrSqsu`YV=KA1BGfk>q~EA` z<;r^ia8+1OB};RMv8LmTi&-&71Q}2CJ(NdT|RQ<_9<_P)wX4MRr+mx zLbf;VJPuJ{8LzQw9kEk_!);`gtQ_MyHP}GPIwE0fTjFA4A@Z_wab1vQi@_uh_$O-L z4SjuGSk;Qt6ybLvbrVdScW7g|xYC4X`g2cfjTtVvVo>Zx|I}`gH0c79Wo$A1iV!YL z1}Z2hoJ`X$%CeH1r@PU5b#T_N))1eXh+xo};fTZN#oR}Fi%ES$!^#ICAs=9o5frHQ z+Tv-WngZxHWNGf#-&RGt%^6|FaP^TL6|A|&>8c+;fBq`WocQdS6=|ptZO4&R%)}lf ztU^b+v6u`&5CIu2GWy?%7#-=ntm9tNJzQ!^9R6fZyjC7K;8rqCt6@q!WW> zz;QvCF&4@aEPV7b_=L}(YZGG$HL@1kdFqUQ1>GT`yg6fvTBvNQh&^&zz5h&W;G%i~ zK(LSl5tKxdYoMz{0>}cSX&VCrMjL#ZhVZM5&DGcnx!}Z-4A!dt+`j6g@%j{ zA`YuxFy=+8OO?I#?1h=!g5C3@tkQe7!luEj;u8pDkZwkD>_*fdH{7ggZ0U& z!rK_B*8yfa4kjm(%nyEbK5NUM^Lbg>Qr&cnrj}tv11D_4v!vS1$G1JMmY{#%STcxc zWtEW={pp7AlMExM!+<+devFdx^8VAEuHtNXB~mZ{9kn!0ON*WXZMDMW^yJUD0M>?6 zTyW#`r?=rD1V1IdO8F^Bs)LD$dLh~htiI5x`&X3f*(DSgvJPD zRw4Bo-fZ#GoG~#X;B$NdG5h*l?iwe3PjX^(4;I6RYhA8(0TOWvf^u)te)YAdeXMA+ zA+9`GfiGV^`>SGP(KVp62-^;p!DIjQ@goV^W2Kwk ziK2C`v$}j2ZR=;vQ(`&}y)5v@CVhov0pIdHBJ|$>O#NvWIT8JtME4;gPctG82P=~d zF=5~mq*Hyx;<;Tdj`71-aa|(|5^WRd+G$NvVY!kc?f;n8$C2w%H#m_!eU;!9ev>zS zR$Hmpf#vA%B$*zD8BwACv~fwv9QQ-^lpz+GGoL~l|1d@;sWH>=(CmomScl+?c5Zv; zv3D^+v7G9OmoS4QpV*5$N~`gQr|0&*1F8H2VzLq`&331uR4TEX+DPjP^+zK5L6U|k z2U6C3@so<+4IBm&kC^_{M^!e5|Y_ z+|=f0&8^{K6RgrFekP){-4?H_-aKGDr##k>-(_AjwIe`mdM6SM2>FZ@eg_U?=jRW> zbZ-zLKt!zv9k+-X+>_EqVg;z?nwIakWA=cG&E*Z8NipKOdyim?VGf_@6|@7f7Qd`N3V_%Jz7Mfwo2atRQGJV{V)j(L|n z)*h6k_l74jAPzu`s6gGI`8mmOdO>Ko`Xnn~TNjv)XV;hka3sk)khe^XabuKJJa_RT zfo_hnVK?KKvkvskb3`0XyYc|SCPbSyb2$-m|ovF+j3VL`4gy}Oy?zyWFF zH@R&i%_GyUgCnylU@J0vZ?9t3y7slS=^I8lA^Jfx4*+KEnVd~ZO-;Z!D+I;~wDU=r zlK3J9tEn)wbPW;+N~jgF-M(J-IlVqzLS4Vz@E+rlnOT=Vi%a}t#uN&v+JN8)^Pm8w zwBAH*$NKCz>=F4KFW=)p1|iNiHU+l_C&O_mLx7L)2g zx{25pForNJgKhs5rF?3rNeQ(P<2)D!A>jtHWPgu!#Q-_NiwFlJgTEyPE#?5oJ{0{` z5mg^hu8NwvN^q7yNU*%H55mUd0qzSPFpWVm-eD8GK^#XOW-2b9fLh=abR37iM=B0; z1BvJ5<)1;OAUqCagG4;5`+H$$_lI5g$Ncfrs*$FqCc@l-lir6NyUr6)MKV8R4d8Mz zklFYmIw=QE4x))9^dqtXaU-;y2KHexb^sI2(6Vr)w<9AXS1-qHV)vJ!9C(FY_Z1S> z7vZ5J*m>|X^ctRDIijBBtpdLZk#G!R2FY?iMY0oe&^UYwOzKs_^ulCQgZ6PQzUYN$ zp^=$qG`A)u^5e`d7twk>mKSQ(P`pEn4dehR@{dk8Rr{~u%_Bu3ULAgM=HERNwRNx} zM~V&?DA0SJ+}eU7FlT>g4(ukPe+D@P(u_<i*mrJx7ZBY+M zLU5CiWw?5e$t*X5BPb^5iUt_QBLXl3gS4F7{d(PPrx%QpL$3@PzKE*ZJSw`y?nZAC zA~rw|aLlkW-~k$wsW1oBW@rkDR0N7JcMDM-)DgloUW}YUfuBPb5~P6ZPk{)<(H~>DFwo3$du@c#av+og zx4qS&g@A@s1AmYJ{YFfKLK}PwCnzZBG|$d>gy8XAB%FW-0F_|JV$YcRiz?H5lG2En zz(c$#jufbhKOdZ>m`Uu4`g+73h^CdF&j_s>+lHV=lBom|(nU`BK9c~Ld!>gP^}Vxu z2$?f!$?$~2k(>VmK?3qfNbD0M9}q}Oov*r8B-o32ckFUjn29SYn)@gr_)JB`bj@6J z5=%2=pr;D!W2(zxBdDe8u9a9`IF5kaQ;bqzSShtv1Bx&li}#dl3d=-2{nFr6F~||r z!*o?NiWRD)GdSD;;>haydgtB0apba#%GBXB)`gx|Tnx7$Ww{iGg`tL{IeNRJnliW`5z5`hty z&4cNpm`n#(g=Tc{@ZsLa#xL20g|WAQxeMV_py!fo8^HT(FgI`eMxMTj;MRFA=F5G3 zwwmsfn?$E7hp5Eb{Ai^Q@4AKas=UITuBk#mLsk`83!)aQtAB<>Zv@-4e{w607wXV{ zF|jD(-vQkuzLa9!O(DyLcU^e`l%r?cy%i%3~w> zTPRdC|BSaw*|%GiZZ>Jl@k7i#9ZVehw-i#6pkJiw09BD~t*qQAp1@9zG`HtmLA$cS ziw?M3BxMYkmHT*XW*&2y`XGqJIS&w@^Cm}Lpi^RmLk-S*k21Qr%kR%bBIuD4`Q@ z1gzh#W#B;%>U5pa8XOu@Lud+d?0;irWZH_H$r0_oEv7i6*}pGwrT39p$JPf1rkvizLZPARZFJAt^V+7f5cOWSYg7 z{#@rbX?_Fpcm}}+Sd05`#tSY8tJg$jz4F`w5B%x8dGL&jVRaXJS%T_n<> z#|H=R+$IS+YzMQ~-Rn@a#lDEmXd<}y1(Q0*82$d9W#hiQSO`OC0jA(HU_7e6Nfmle z6c}_)sGMZ-8W9?(xUV>L3J}~OCI<;kWH)J7#7f?y`JA&njI%F7esuoL7K190fdWmZ zfdqAfd%z(XSSe&~2YtjdmJ@@Cm<0w7+b1Ft@lOnd>`_EW`!{j9$KBHM7vhh&5MdTx z^`vh`K?_o@anltM2-y4i_-sRWJ5B@I9E8;u|qm!ZV<;5}gcFS@WO}E)TQ@iyj z^L&4g44{e4337r31Bc*wg9=KB7^G;ZypSj8FuDO2iw{S%4>SmH7i1+dx-Wa7es#T7 zd>7U=i5ZfkbFf7@Am3MT7u>HFpTAGu5-8CwwAQKT+i^xeWZZ)yA}RpSG&_G7*r`VVm`@iQcA`2PKS@{E^} zgp`Zm_w#2F;f0O}6iMQ7KnVSi*m^OjM_?ww6JDiHSp0cWNB zl^`%qOXLaDVmDZM0Q(ZT9d=9@bt35!vKdKjr($)u3D`D9x&TH30G7!QR!c04!ZyJe z5m}ixSFYYE>cE3|YCn1ToHnyw@OsR%BO>ziYr-ZDsr${>Zyp2MLffFDUZ+;*a10+) z1SbxiC}*)}#*HI0ls_OT-hgC6a@q*<(?W$sN^lpC&I+PsfLO3XxME8yoY;t|-(M?T zI|s8b;vMeb_rR1HOYa0QjvZFqT7 zM{uABxiByp`IHmysY-9T8FWq?!=xRF84lT)yt zH=u#SjRDfuMd2$%=m7(B$KmIE@Mn>&juz8MIQwv!fxWC&9)oMxK8V7G{Ae1Qx&)UJ zX8RwUt3@ntn6T{dpjWP5NAwE!rAam-+)6CZUc|e#&YP}hU%HJUUtv;&?Bz zV^oS*(2m3D<*+u8pYfMiav*<5gMiWUS&O1y{^7%f`|^xCy4Uix*@?dSsa=PCPs7%P z4vHIrNyES819_s0G2$e0P5cOw<9GVW4xl5wcUw2v(1?VIBJ^`ZPw%|fh{Q+36G4w3 zKll5stdujq=!SJfGSJwrBymkFH-J@~@c_Fh4gps@L(+8r*GV!iH7{+U&^i9DmCnNx zM%M*QWV>UJ1Bu+ZB_$<6&{4Xcv1n|UG~#2S@d7~5hxqpQ%*wyoi)(D-pG(HgKoQWL zQ~lPZKz2du9v%!%T!8e%fl^PnJCYyyHUl_=B67_<4IuO(dGXmBF#C|S6Ajh0+5pEC zixjw2Hk3O76$=ho@)ajh%Rk8jovF%)l~W#pWRs9Ouii%FIZ5Yye~;lf{5L!tU{l!p zUQo0l@lX+kqG2PzM4Vbh{a2h}1_k>Vva>|M#Vcg@8kPIAlQ6LC`QQbsyJNxt{pjoDXRZj11?Cy&JHRIl5#Q50OJSikw$Q02tK6%P9hhoEvfFL^>sMk9yo=!3iuL z{F)%P#V!dqQGAy)RWj*o)h7ega;I%%Kav8N%SQ@V`r5Vbm3-V7zKUr83z0@b5?#)S zPXe5cFdJA_zX)ds{>rSnbR2eZ5;=qreAR>SX*}Ckh)a^i2$>a=8bHAC+}`3TWZTwX zqDFp-9oQMh{K)jwJl+mupNx7!VZ(g|pd_cykQq!OVxURlFrIW^tGhHTGBM(=C?0Rd z4pw7Iil3sI)^uFAY&`~bwnMp|Ru2$mrXjKp(nE3}IFM^}f&54uHLOY>aqL;hv1Ft=Sl{a+)6g1U?75 zQUuDfNv2sA2262UfLx?tAOs9ti?{N=pt9~b*qi|Y2KWwSv&0$V5W~BJ%(L$I^AjbKSPlHcgsJL?Id|MYfa@MM#v4P{%2u zIwXfjHHMkvqltj$eSOAww34*qX_~bj4m*_1fVwc_{=$L}Gz~akl0BrpaZW*ZOxs3hTBKril{lPeDVQpD+6dC+6ILU7fg8| zY^NGON;xDQ-3mqrj6qG#pH3X>sU5IZ8XRqq2$(52?>Dlo@8AA8z{6q#>KF7hL zux_Ki8&ItJ$&&y_Ph%1i;TetU_e8xiZ~$bdhIWZaT_OP!tDWI1 z00R0{e!bB5 z6*-}I`uJe2!NuRdB~tr!_0WCS3+!8aX8VA%o9OD07ws<$_Vz~4Z6Eu)tx?;z%93Z> zp2gYvjb7D?a+JhLaRvyAQ0D*iC|X)c|4oRM63Y+73c0QJhH262V>WFkHU`rrgE;3P zbU7$z&*F_!GQ-$5h{vs-Wip#nI$mMw3k?Kl2hxYPLWhhN6kQ}g75fx)pem+B4#*RA zQSzVb-#QO5+U$iufU0n)V@-x3IlR1ozbmG2k@&eVW_5DML*^CowT7BknLTAuU|ZSE z;7K}WmO}3?XKwydWGD-I6KJ+mGt40e!Ytr<6eRKO(5Dfp1gkEG)4Y&jpp8#?k{15G zvmXO6K-rz+ob}uW7wRTDKCIreei@mFVA3O|#GL@sl+K^ot~Bw{JBYCLvt1mSl8jLy z529p)cKt9Ey+}s&kj`Q3bV*!QZP#?)Qm79uUi>4?zoXU<*9yHQ3_&nVjAw!f0xvh? zIbZARi*aC2p-F?jv5fkT*$5gbAQ5fOZ1G5^#O~*95$AJk=yta23KDH$ zJCKAqKKl9#`AmJUh`r7k~PR8+h zQ$n*W-}!Y43&wPhxkUYOuf?yqo6|!#HFLqjbNpjB*OqZ<}v*pIweb+ijal>PJMDu~5UMX~G zet51pBmc*fQBd)RfTZ^{b;t|>i|rixz&^8K8Qa&@;i{}KJ-=Q!6Kt4LyyCm96ox3E zzpmBh6%m2(xVFBOLn^nS?Qw_G@MGz;TptA;k)jBpA1KJn9ZJ;Do)ztEEZg2b>`hdj_D7|$E zE2O2v;R5NrZQE2qs4@W4UI!Sokoh0x?lM!{UMgocSR%GbhaO-00yI1vfN=nVP{F}U z>i>R?4S2=+uTP<2LYhfi!WTE!T-X}_dHJG)akD7^gr{e+Rg%=Ap=rcm!;jrQ+tx4Z zTlG$}T2*2(4x+YzW?bn!{1?oy^K-1YuDa$>QEkl6O6M*i|08lsi_@l#!3;yA?;C_C zX>|}RpkAc8=zT#Y4yTgN<1Lb6AMbjDu<05i!hvc(EIo9SVXeST^}-P^Lc7t!<33=OpIekDc{Ew1u6r=xVavjE0WG9oNn`(pVaz$Gv- zcuy9;pxn~oj4+*&3b4J&S6t!^@;hbF7Lkt zf$jjJ4!A z0f>i$C?RXV;!6Jx`2<=3lyMkYrGgLg+B}dfWYq(xk`6tpEb0(JoQo`}GTA%B^GzJy zf=`bMWUmQr^z#kx&ff0NSgqq2uko?(NLZv`qt2!8t%LBBPzD?VK(JOg%SG?R32%(` zi)(NAXW0ny9piNGK?U{AHfrV`J@4bEiuN*-VSEY4y+KSx^dnDIDA zjo6%@Lwg#g`ugjz`bfe)ZHOtIzRpIyWsIYsQ-u-caMaE%jYFnad@S*QfdHqi2FgE*|Ty zwB|ovt79*qZ7&eKSlN7css>BDzx9>;+j4K2x_o(R4;W}|k-Gk;ZCF!A{zi|eH=6cG z{6=0goU)$Qjg60J&;#PUnlbx)%NX98cOE+TVt5<63JTxXhXTVOrYs3_Sdq#hUx0e1 zxMxB*iBm%&HJJH$r|Q_8tLVIl(iiwV@!XgarMVTD9TQTEBSxq3F_acyN1y4`5c)a&jW(F6ob?qA7j4hDOxe|w?5X&&{cw3fXQlM}iwo(NY=M(l0eXLcbKK~tT9JyX z#b2W2bf#>FIYsZ$)4fWfZ2D#jYdt*g)(5Y-y>)&;!Tp!ICyx19vVZD+l2Ifs?RlxC zMe+9G`59s{>wVvpS{`7#K-u^QpzED8=XU=(^F^UZ$qc zMM&^9ug&c_yB}WbT68T$=(cjU#LDyI(+0)s&vVC_X~g}?R?=PMyU|Bh%{Ns7ML!TP zvelh~-jNPeP!OEN(HBxkOJ_Cg!40%Hf@}NE{ccf9Af=-YUs7ASfG~d2`JN(Vyktt_1U%(?^(ebY)FX$g@9iD(P zGrns$C3qCVm%j%>%c6w$M~_T8u}j)u~qXpz*ODOOYWTrP!O>(4<24s2Wq1S!JZOu+IhkoH97 zDz=A0FiX-%3}OMUoe#JeNfTrm4e~2l07Wwyr#3ij2@UtvktGMn{ zBX2S7M-#CictIY*`-zmaKvj#rMI5ETg#3WQ`6fu+mN9<+E{-=I9~}Bz2b6qeQUy13 zE(Q?!J-+dyaJ5vS3`cHO$sCtm%tjMml(J^uZ|TeJKj1P_EcQoYd%oTey{IZ}#@A&x zJ+`%kcSyH9iAo4N(XV__;CHcK=xp>Ik)K#bf$H*Ec*$AEcPvdERvugT$vk}O?P~D) zbn=Ln+VOPAI^2$mz2AR#Ft9MqMJYu0dilBhj=|p4z7SFTM|}W?Svccb1J4lOPVIb< zosfp;gqCLZf~+sZshjS-i-((owt!J-@Mnk~%4VkTF~o&QlNw`5rPb0bgL0|=>T6@ z=q5=Gprus{k;@U>By>wCL=R%?gLF;ZCv!;COidv_xkiQr3^^`#8QK62V4iyfRwnEA zj!jO((3yX{PRJx{IJw6BdsjIRH@8XlpwiaWAfUCpA3RY!9$yzF(iRsZsbAR9_~x>n z&X}KC#oSokgw=m z9k_Sw)XjQ?hCK+rxM;4(ahcrlpK)7T3V?MXq_47= zi$O#~)MarBbfF3b5 z0{oqDPQn==H|f$p^Untz^K@}lE^-&wuacJ@c_JcUS$29$rB;7eO0Y`<3*&<1AUOKr z?Zb<~q&vo9>FTY=oIu$hJ@@>CIIo_KP-L`JXwzFA zOONp$hQms%hfI~b1j-W6r20OS`P6oOtD&#RdD^jAixr(r)l?exqlX1uQ5qPswz~-G+?t{)cTpjW_bJHRZ-~%4X50hM3`dzr+mO& zXoi>|?Afy>rrx4v$jfM!0w6Qg{VbPY1JIK)W(l`sA2E%)-(D|%1!pWX+i~G|_T`xKDjLgkVudk}yMu;d0L%gLhM!gp7zX?c z0v^9otZpJNq>USIgnf4hPfQpx8jgUwcb`S@Ule6?RWi=8(;9AQ@Lj|&U(_$za`w2N z#6>p8!~J_G}WAPmvG0B>=2U~EVTdXTuP*oBoiTa0w58&(Lr-0Yt=2MAE z^U&bQ<0bF1b>#aWPOQdc9EP(=Y=l(@kb#FSRNKhPN+S<&o*~g?GlYLYHsDJx2e6HR zT-Yvb-Mm>=q7mKVkd92=)eri;ZfVe%p?)Jk5O{bE*km*xV7`g7!D9rdNHSeacR@BQ z2OXXOPv8r#tD?cT54Qs70Rfz180?~?iM)pZ37QC2bq2fE(})1L@460)e!erzk1IGarJfW%S@f)Q5DTTb}FaUYK$y~ zd?(lyz8q`G^_zXTgCjfO(KzV8`JSE={h2$v9WqW2PqU((Q1+9RQdzUmG5pNY%^Zv6 zODX6DuDsvd{Q#tyFd&8Vupv5))4y@oD;%GQ1qQg zKiN^7LArus2z3?_!LW)3I$vj%yYhw{Y%*cJLAwwNTlG*V{Jt1F~WB;tao zH}qjtFjh$-q?AiwZU0k1wUmv^p=2Y2E1V!m;$5}nd--#K;Sq~Xdi?r~Vck6pK8@aw zaZDi=_)3#x*`r!tii)UzAxeP+{2jyoPoI`zo`J+J7!St})=$x@i+In;wgT=&`8;FF z5odpY`j9hyuy?XdM!&cI_-Ia(Y^3iNv&UPNLlQu}K|KJb5V-)2h1RQ+s%t=7Qc`?{ z=XoE4N2m)FjvV0xM~~Qz3ikZoj~v$A3%LG`C1}R|ijG{T?%mTh7LMbN#A4P+MsHOk1K}C4lQ#%G!Lw=E zaC>4~gl10DtN>e)jp3x4PQ#~zemNiHlh!5a_ZEpNWk!1NC%){^+avwabhq7yl&F;) z{U)vV!RLQ!1DFe2Xg&9lwUC_hu319nTWC)e_4UIZ2x<7p1U~3Y(=X&}rGXv%4`>)k zh2aZ9GGU-?bY~&G`Hy3UqbSKD*u^h$g6F|m!9)1v85V+VCOCK)r63lJB<=W%I3y{{ zjsX(|ZMo~>ZxxGk&WegRFZwWhYJpG%FhCYQ_#zazTE=0t8UffXtQIlR+yuj(xu&C? z_G=F{PtWo{e-nE-E8($Q?z!a}agWUsr573(KP}QR$>?$z7OeVhJNzY1@9XY;cgn+E zRcD#iOOL3TI+VM6dK`A(P92{eMQ6NPcR#tkV7}~MwhCjv?n4sKJB44e z*cp{Jw-p`Vy194k?{|Pa$R6Ts9dsP_1XBS&mSC8*-=c&;b~%B8wJa=l;D2qg z-oYQu)R+4^Xkrk=6$tRvj00yz4x0QFA$lTS0VOlFK_GVJP@N=KC|7jJmOS3W0NYylt`vcH$*Ha#G0-%< znMfO(XayYV1$bN>LB4`cRR41T3A?a)OAZLu@47TWxV(Hb`OEv`s%<41in^`b z=ku}cd9%+b>BjBb3;vGv7Dw56{OA=wz2U}fi5!`I4S%haW$b-uiJSb(2Q|u|hv^ZL ze>E1JU>v}K;uwwvO#d6^n+apmw}Ii zG6ZA074wF8p&+Xi@E+k5?ppF-ti|typC%d}AT>a)SZEl6cCY}Xf%KounwmdcCu=ms z<&>8SYS*>dlu%K8M!}Cd9+<{gs6dF^$DI9$j%Lz_-na-Ei>6yk+V9 zc&FA>_a=t!9+U7Z?M58sJBZuR~R`^ZpSfL8rc8U_#%gLM$0`B?*@LD?A%s8tm1H+nSpVU z*GsMRn;&Zrn--bbWY*u7G~}LjpUNGtmsZZ~+8gjDAerN@%C7u8CYGU@J^lT^dtc7Z zj(p`>;+XC6FqNO@IrECEyB{k}x&?rfaKb>vIC5rum3c~CFVRi#6#H*nk-SqLJizTb z7OC^CIkp101u=avwAzE7mh8vTBGGae%)USag7jJQ)_w;9PVMXdn|T<0Lap$=^WqSO z2H?=ly9;cq$e1hTBvAaM$D(8pj*zIeA%uh77PWh6V;uZK7hnHC+ubfyM1rySvoBhKs9F{hx<7FGlf0aNEg11KjyLsj+%*eDjuDf*;Qb(M_|# zD>D_o%8waN3437cx=zgt5xr@^-cNFf5yUy^DS@=$?vOA_to@PUI6?|J(}7=vYcgq1 z(TPyaMb_9r8^|PJe0#HVdIs~Ine_Y(-`kkS9 zhxumy|E&d~S`A>fDrl`qI~>Lyw(Kgw;X=P3D6;X9! z3Lzi|{Lheb?@LR6^|$&S9*G@r>y?%_cH9K*jtcE65Y>|ykA>}t5tDj=Fr61dj8 z{M{hSrZO8AwzO`K>DiAb52>oCj84jtJI#jUrDq{AgeBAokVXF)UyKb)?`^aXw- zLXQ!b<)SKVumg7hwm~OOBu!TCCkF=%cfc*iY;GpRAddha--7uget?6U!=m|xn_PEN zFhF91?rjN%Mlkn*)oT~Uv9M(hPAn04Ltv4=;*~;N79wt68&#%?1&bHOALByNRR@3Y zfB6=)rpf-lOa+G?bi-AehSg}pD8_6v>CJ zXbIwt{IOzRp@pyz;6+OZsV&XtA(Lew`Tdd+7W`M6Ms^sSQTknR5XeVNl}) zOw#@%7D)?=2I9iVRHdO7>Mb}5oX2^hoK0N=9Qa>0^DaNyVvR8*E#o^OR}X9k;0)Oi z&{*p05b`1L!nC-5aBwju0ElkS=>K`f$5*7^-W4;%8XAR#Ne`I^u3NjhsaNl{ZMBc8 z2s>0*C>76?IiaU|_E#+bG1pPUMNC~E$8F|+G97$!)9V};+I$;)KC+oWMMiKf#=4On zoblQ>NIF>u6&i1z`BG_TGUEBcH02v)TA){FXU!HdppVhV<0thZFiHM1!O(<3z6U7< zP}+EVlaf!Lewb-6AeN$u`bgdoID^G7jskTg#%49)^Dksr*3&i!SUQ7-v4s%W|KY=G z%ZQIxOpYVQ#o3RYS75paL|RH(<7IvE*Ub&8YfQ{9u0Ai){Hou>wOnM+jm5jo`D&pR zc%Od4`P+@C<-ZCex*rebnI}xwZ4+h7&DG$3{>t)$h(T*leEZVPE2RJ9L>DqHi$5N{ z1F3YfwN|8h_xferFL;^H-^lBF^-ZN=VA8Df-TqsvFNbjSC-=IG`H$^&@p&Vsf8%Ga zcqx7_OumiWw7m5s;Y|GLS{RyE30Rn$S6bpgM`UHOVJ3rl5JliK+JV8npspEBh0S9wWWn%C^B-yzy?N$JVLwk;`*D>&cohl)sm~A zO%Wd4Q|-uGqIO4W0W^Srjq6JR^GQgzMB z^EbRctx|m~bcp$`)H&~$sb90@zi}(|^)uyU$Q(YcxUDryFEJ~?sNU5UZM^GKyQfiV zJh2+_H$y`km1LsOo!n-ZSeK&3AJxyY=V{{ke+!aYah!vt-JhT#@%Q(?%&h>j$IHtr zT0LeJ^qheVyT#-EchZ@Otc<2{55tP?p6r%4Q*;y`|bUCwsR zgkxvVJ`?p|zT)|QR@<&}JCCw5t5#a9M@2Q?nk7?iQrq;T zAKl;({Pp2=cDbqW(3Ram4a%2tS*-5#d<^O@=Gj~M&^S|AHaz1S?}enAQ?E@~KIrxy z+kffdc=6%`i&x42_2R65ZCVoBkh;R}0}CM}y@p$hju&M& z?Kr@!EaUR!*`05>6(B7gKobMKqn=9m;pGHI<$d^IRihB05eKtBHZfbd(oNPQLW$D; znHzO=buod0?@)x6WzK#~e1KR09F2Ke!7mT^ZygAGcTT9ewbf3kx30T-hr%jlW#we^ zngA+ZFuXkk(Nbe7yYFm7Ym+D>5lu~J^YZfUa^FA)K{zeeVdND*-V>vn4g9+@qg}34 zRX#^8LeXH+u=@)YK5KjX2n>?|`=L<^WO3w_X52+KNvFFQFM&r*46Y!a#B)5-1&bEx z?ipxBu%Z9_^{dK1L<3rHpsSmTYHKyIf|>OWo0Q8vlv>{470HY|G?ZiQcJ*h_Kgk_F z+|u2B>)}I|O`A6Po$Po#@Ed`i9XEs0-Lq$$IP3#MLw}FUhTN;%nQ9^PrH(69He6MI zz@fEjGkdv2qsyp^s{fr{3BT|PvGS3a!}}x!HV>8;%6xlyp?LXwyGu=HIdJaZr^@)L zCAn}Xq&-U6%;;sEC{`K*!FYys^E?7{QFUeR-1>M_qgTvH#9ctJ>~D? z(=$xb!r~hgiFQrz;LSg2MJ}HB9bw1=Yb4dM0}Bz$6fwAf!6&rEyP+mTpdw1wDraIV zWWMKMVsqu{RjG9wxacc!%&i_b_cgw$F(*4+Xr3}`e|wun`au`P1X<~m~lai8`1Oq7>6O#PZkR~hyn`(@o;%KGv4 zX|vPmPD|s@sJ9kKTijGC@<`bc!B%xDUPNr-LCn{@x62s@tgG#MBNQTEmc6-+^MXaAx ziMfxpU{@Q|*FtF61!Vnhrb;a zB(zs6*+kaJXlq|zAKfz`w|D=uEXTzI)?hn6ppWARfTggg=oTo}obi^W6PMiJ4mdtB zVe{v=Dmkjon?E0rTbSqU42|KTs0~+(!6JYRw-)D#q4Q`p<&oS52L_&jA%Ik-UX>TA z)et;8eK}={1RV)h5p$oz;rhTHcbI~L7_y(7<6PzF}RfXIE0@7V$@{2?!zMlB6y9Kyae(dC#!AKs@SVhQM_1$ z5(%OggPDM?!A|*09+iUn86*k#eK_D!6=Y~QI6RygUeiIoh%hb2?*wzrcUXMC0mf^1 z7$lRzKqm9bm9jXAHLndBLfwWI1DP?ve}px`AZWVh>f6b-93gE~iNS}Fr%09KtN%6N zwOyn{KnG6Oz+-mWk+v1%cV%3$0x-XLvT4;#j2yi(s}=x5MUozQU$$lfeL)kEc+&CS zw*ghvQziiwQkDSk(YT>Aqm+(>5D7qM!NP@M8gYlDWSae}0kv@}yp0l;E@|IlYkMa+ z_tDO%H5ct|J{oLm(U^V}!0jJuoPQ{>pdov_$uTK%_taF;3WMzr!;J3m-P2?jG_Bk& zDW$`=Gg(EQ`^^hn`dLw13&~}iYAz(A1ioxEk)c{hkxhFFnEJUn+x_y{NtT%%9`o8)^wU~j?(ROgJx$QGx z3h#!5+zAX^efjd`>SEo56HzO0nXs;xZYXRdKYjXicXo7OfG8V~Sm;SN0Id(;rZB0# zeJy6U-q+MT#%FJCYs<%>B);hB)2B|(&dB$lk-lL4U^_k5l6;}!8e%LG9?dCo{KXWhF$UL)}CT{vwM@~{O(9F!bLv(`2?%@CId7;k7)1}+38E0I)p z?=q7|KcEV{U}PMK;*O#;Mc$?jOpr0#O^w^cY9^KfGp$Lt;li_p?5QiV|73b@Lc;Rj zZEbQW0x$e{wHc#=_@J*G`*rd0iZQU|bvPW>DVI@zKCkYkuRvi)9zXvd`~gO&Qft+j zBWlyK0N>&R$`-_u-7wc@URcKnU#>{UNMiIdx}CY^2WzsJ9N|EWiU zF)=j@7P3aKcOPCR#CqomZ*6sRVA+G=4|)8RiDy(jj{VguRLT4#*Q}9KQDFw3NvqHxM#VTEfdd_7p@k(SN*~u2jvG0cz3t2-R!og@&E;n~8ouLj{5)B|-;>ri|o8o#5?IS^(Q>v*)|7n8Ee=?5?K1KHuxt8Bi11me|Y4$Y|^6 z%vK#SRtP}q(8pR(Lccd*9267TL6(7M2LJqdf#FwL-SeZ+(7+&JA`_+A99pOgRAlYs z6SCS(wKxMO`;d*BDoj&oUBkY5EDtEaJX}IXB4Xe^$wZeCv+gZQ0LAfo*4FvbMg~Ap zEE_oiD^eA6Zx$xc`=GdZFzb+Yyt(;Vxk=z__T-%9V~4*h!GuqMBsgtS`19lmyw_nCLH(f#K0MLM|o;ZuS4-xE~CJeR}b7M zEm+7K-xnrPYICn<&*NkGMlUtuvO=MALu>klr=`zm7TpsRVe$doI3)l#LX;hO;>u5s zNr;Ixx3pk2U<3?YBh+pvMg(||q71^=69T3;qANn8txVwI@b@Jp@jomC6jr&8_B5k| zIFCvr*{s?Zg$?Eu{kdU3?6nSuaNFWN7jGQY?E2A%K#6`S% z#T=owO;1s1xgE@8O@QXT_H%Y}s!vl+#%0I2)h+iPBX7Pd@<9lm+}u~d0wLOaczD=K zx#9@mJD?N+b^vv}%m6l3pc;z#IvVrM(&fhB=+I2{WO0x`H$2zbK&dX-M7FhhW+Z5 z@e*^c$X{2CcwyPQ#7$z-eu>h$O4GHLmZj0^+tt*Ptp2iE3GO2dV$CIPN9l!>^6%~Or z-T>xwBCAJ#sp(>`fm!_OfK0dW@%f-c!8(LP`udwONsT4XI7&cMuuN`=Lcou#j{P^D zcGO|nnqaVDS!AQAXUqD}gDf%S$vnri_b$i|a=j5hrfat#iA6yB2nH?Rzkd(c;Q8>^ z;#NR>+XLUb6>OsKKp6IkN(6w)K%errD)@%JDVI|Gw ztGS?Adga`UvdmW|_eZFy=6bkes6e1mla)cjmou&P%Hg=Gb(2{V>=vETo)8G|MBOX< z{Mla+Hv-KNGYboE^#;M6JM;gI2*T6`rgX4)VqCK1xk15Aaxg>c46iZ;fRLV%(Tt># znJIz#XGk`l>(@w?r&)>?05L=ZlfA4HqanfX#JpxAdX-JXmiloh1c*8hanqozj3=2& ziG|DIr9ps?+Fn~*dmK<85XNZnJcrD~7@8^eqfuXFgzj>G{x&{b?~#jsJK z>It*ju6*-;`?`2gS&b`r^}xTuC)QRe6w2^{g@R3OzP8jqol@x zLw`0fGExBC2y@eZeoP21xM-vOjb;6=Ob>pKHA2@kF?Bk2-v!xQ2~y+J9XwO10}@Z{ z`$kn3ex2*g@fR=-prV_QIbZ}BB{Z5HsNuo1{Hzl4W0&}dDxa(zP$o9vAIZoDoz4IR zCb03^NxfXT3GJyTtqu9(V_>zlw^s>=-{W!b)^y}Bv5+hnojA#nY9{@5;BD}#3fe@BINJ_88!nVh= z&q(Hl+KpvmUe+=L4h!mXA z$HhmTRAbclTGZYHY~sx9kNW{L-7wSx$k5-=`9ou){)Io=4y^z#*8rF=Tyj;uHTU?> zjHXT|!vzkX9Uy&t@HCgW_+RN1EvLKAPU*Wm`+Vx8`yWSb+|xg))HBt+pyWw@z3P5R zfXR1)R(yNoEPUW#{#hYZic<2i&B!lU@IpTK0{|j0`UIcp1soh4!NI}#yK^`t4Ui*& zT*$|$x3slg(TW$S>d*M7aMb)mq)AAKYyjg8pDkGjcrFSs={2p&0R3Go}cc4#u!cpe(?FBxunL}^w_~hh6lQRosot%8A%s`up2*#~o zfO&KRXaFRYL#*xQ?r!ynr;l;HE;~0&#k*F9`_`cnCj+X74|(-a6@hz%wgLjUEe!2< z4z~)Y@vpljd9=|czTAWi2H(DI>FX0{bXd@kn1iG9soJ*=K5%$WdKC(eBlgf@^!)7# z^ek^4b3)fmUT4T&UmmYZP?m_q*puoAN=s0W3Hf#03acW$+#Ia5i=N);es$F0$;BSU zhVQ*L-?|jtrpIoE2eK!;aKCu2{Vw<7JBJT?FIwJKnkJz%`1^+^l*ymRF6`Ab6_*$_ z^S#$)n!gG-+s59;sOf00jh+3+qPTMsU-9(!Dg=;8;&mntBeae^KeL0tlEFG?J-TsU z)To@k;R~BpBUJblB^e#}A*hRIKlRGe7I-T8F^7MnbIVnabk~h{xjVyZSlWImBX6=?sJlMKW*x4dKn*yC$QJWrWchwbsTB*tz)WCm}*7M4aD@z z)WmSinKS`3Vq5w67(){N%&QVPvr^vC0s&>PzS}BEzjJJAp!53p!s}{bF7aw+)eT?+ z&_xfz9OX+4BbIZv6%yTmx`~XtfyL#to^Nk!dxZfeNNv8F?1g#LH3Fu;q6Go6myZu442qPmE?G;me>9>IV7+M89nO!wz~?DuZ`XKv1gUZyzx+6=GRy|9 zz?*X6`}SSN644q*ifh}p#mA2y&$#lrN_YxS6qgE{-5`$CFe~q6nc}#R!kYJCs;^5} zKtM}ddn&*GE+?a7iDjA{5MyHI5bl5<;8zwW!w29#^~vVQSSnt zX+o^Wk|k)|&}z_1m3xT>DIG(R-tE7z?<$2tEl1NWKu?`Dg59WlX=uD<-Oy_uJ{ zw^hwGBv4ZCqt5VwsR3%$|9g@(eR+2oNrJ3(Xp9@(R1Ere6h6o>CvZwptI#?sNy%Vb zz@Ogn?pz_ab_mxxKGzD5Z3%o2jxpR) zQX%i&?T3I2n^u+^mj>%YY=PorwPXD(A7fstEKvr)81dI}yLO&_a|N7OdF;s@q(wV$ z@L<0)??lPGK}W@S4OFkt2h6^O)Eb_*$Nse*zn(nlM*#u6waOF|37`EMduAZxfHi>R ziApT5L;qM~o?~>+-ll)#Zy|fN@0u~+zXQH!Z&4S$)3>HXv&=SU#@V-K!ne|?T2I1D z1c?k+3k~m-OJNFQK)skkK)Tz65UH7SXJ;hPCm{ms=)x4w*p+d`(5e0bl-fhGaQSdidmjJ4S{nT~=+NfW*gi7&;B zi-bc@6L9a3=(r|^JE)n#JE3$;RWKkrY8?I>crvMsUdgK*%n5Z3EWMlC+iBXydE(bY zXH;`FX;z{2r(dXV@2pMPf$}@Ib5sMTF81UtP;}r!3o$22zDO|oT7twaMTei4_c~6Q zqNP0Yj7p3;F@q>`;D}L5LJ``YgOfUrzce#>n5A!6QKPR59$-Rr*t?SX$C>dkQ&lMH}-K}A!Upc8cI(j5Ot z9p+630s70LFxa#SSt3yKESqBgsSibEq3d*9nNOyOH@feAvizv$Gnc@1OjR>6_{-EE zLf%Ou(dYw#YHbDK3z*Xy@C7arNis2Hhe=kT1q>_LIANoa^7kXN9N1wBD)iyeO%n6^ zZ`r_=D`Y21l5oIVROmM}gi!E8IH7fakSdA-g2x+rXYl$J#_=$K=aZJU?_{ic7|iF8 zX9iP~%8(lH6=&fyw%4?h5iLFyPAJ_EVX+N4EI^!r{t_kKM_M}xql5zNg(;y`MtH#} z{NFV;hT=8E${9Udn%1#?fAc3rfZNKX{2uLVxD^+-1I+Y!#6mD@G53ACil z#qmY9Kwk@EQ(Tp4a7akv;!-3aBz1gW6qFN#-QKg+f(K*N0W<&Vh*jVI$7LEGmpgk$ zvVZ5NYqD>y76hiV5~LE~7WArY5)QX9s}ojkVp8*lht8#tkeamf&I_g~*Y5g6?+85^ zci*niZ=fg6idjSYZ)O_f= z;S8|x63|ANMlvp2c5nV4y!l^HN<;wi0vSqA4)8u2eMoXq7@;#Dm>uf->!8316T^i? z)9hHeb>F^y z6UM8*iZ{65QAChrxcUzs8HQVE5>h1~lKo)eCNNtVqZ)pV@yXIW!#)f&G=Wb9{;_iH z+CyMlV$l2n^hW`Yp3T0oB5TKe#bA)YU*uP_o_<>YvUruAF$T1O%H>y8oh&uzSpUN# zjjdxLYQa3qw8mZ5dSNOgN7$?okTpfl?w5c7%;0AlJlwcp!)F|1C6KJYhUMk2DqIo^evmIPjQTQvJ{$!F5YZAkE(1)CC=m z^PJZQ!k*!z2TMAuc_^btX>-t<)oPxBev=Ay$TXouLM6+ zH&L#E4giG>P|*)4?h2q?*z%BvO0cJl&+u%bKWSarU45#yB)y+|GQ3)0_Su`dUWAh* ztW2X<@YK0|13KM^*}X}VHm#zAJ1k#}dNzw*$P)kLBACcN;so13bnXDpP&q(l5nj$W z+xtktbELFUif zi|JW%O@NdJO{Cepj(53zb8OBv&{VOE3#hC$eo0AtfGO`=a5}N? zlFh|0REr>f(X$5oeFTtAf9(8YQ59gm6CST^W-R3pwZ4Se7&zzqZ5$QDM*wf%IP6{y zYg&bEd@tO~JjO0&FnRsSKl)N<;7;)FXWXKrDZrCJt&oZmK{i??Y~CCMBkdfw$Dq#v zRnSp_KMMd3Da?y@}I>|37>5c4Q@wE#KlJc0A{xO(^An_U? zjDa4-mlZ1n9A%VbI9d^Ia9bU5r-Bc7SeP zMYpc$X~=vC3%h`)Pl?7sM-C4DF%ouzwFi@?w4KtEz0H7yh^7Qid`n0WYN~)A-8jyN zAy6LudOC-F+Ty~#UpYkzWzH{*rDgbFSWWSUGCX=GTF(cjUGa9i+kWlPZ_}!+k2YH+ z)xeesDD&rY0mcTk=BWn8-_FEqObGj4%H~>%)tdelm&Ll`#B`ZHB|hZ70cJMidywI- zIh=y6U3KWU?9MGtpBb%UpNH}tT(%``_s%BT zl>qurvpO8FQ9)=fthJ!m0t&DgQ zGXu7OqwZoRrb7G`MDn|Etp<+K-h$DLfU82Y8BV##%7Xgv8}GqGADdN$#rXzK@|YLa2@ejX+YmRja(9H|A%k1P8>r&+-`3 z+Thq2i+4YQH~-50ELRGT!BF|p^Pr(4k;k$_=7ua%dEN41_l_a``zTfMdr~t+gUQ(A zyUky#!^?V)W?5}+W6Xr*$CcK(;wHNF(`lL6@G2$!#Ka^p80d!B5Vp|S`hz)+P`pq5 zC?qU(?yjDucNQJz(CbPzEzB_Vv@`EdSQX;zDkyy6+Z7ZJAsn7l{?s3#!~iA*K@mv~ zF zTF^uI!DzOLvn99(2ZHtpA{5ZLGUnw;T~DPAZQX<^Jxypqr7(BBi1~VctzYLM-;!f-3=;*(;RPkm|q%GLRt@u5~!L=qK?THuv`4fshWm z40Ni|es1sJ><3e6g0EsS4d7lH#Ky8V~RNK_vzBS4? zx1#I;#6F@js}?l-66Gm*c+HZ9SnoqBsECF&%_~t@Q|kwr*5NRfU1(y&nz)qjUMUPY z5SAX<{x|pWHgv(@Yy-{Q*a7MTr@Vz5vl_Gs%9%r`G#4{6K7%jU!Rsp;iqfnrL{2YR zsv1)jU1|Daw&ZDoO7=QarO%rTwBpy{9pV`d9YO^T@Ue2t5e9~Ppzffi8V?8RFA!Zt z_Vcj8#F;u8-NeFzf~%xaMZ?hA)ujls5>Ig7&J$rODhb+R7`T%qHNu$&|8>?VZ?TEH zC}xtKT@kf>@(8D80$nhQJ$l^`W1x(pH_<(#lr7iXCnhdbVzdV}3So=1PyxVO zeM7?qGz{p(xj@LHK6mz{h4M0<(f|QBLrslYFSQ)E3A0fEa*Ryk@|VnU4`>1e7zJ8R zIO}H}1Rm7(E`yWNPe8t@*gs|)dTaRM;0eOPf>=Yel42+BVfjo+$#S%I1Vh&*Z$qTm zi1doiBM`X&OfhNkw%@-=lqm#30(v>crCj|77Wb*)5Ok?YugeTvb`hx`Tmk?wyAOsA znd~Sa%QVWqd;I~U( zT9zaioK(j+P)|uBur2`WfN_Gu&<&HKi5AD8n!%dPIrv%S89a}iq z!tokK(0HM@;ul%!#dX$0N}e~s8*TW{pFgW5<-=68lZt`*Ku>(%pl%a0^E+?@M^se4 zF87O3k2QPH+tzlmM1+}Zs9y#L4tW@ESb-Hup`td#S#*7mKZ-*beIlw<*q$YECIpW; z3Mj2fiWWpL>>xPv`(NSoT#c(pdMaw;1wr={6uN4F$9{Uwx+8*HJ36vV?rrwfmP%R& zDceRz$FaHG{uFtpF{84naZRhC+t?mj_!8flebn6)+aW zKojd5kybJ1y^5Ln5-2Ei)I%AU@c2*!P(eZc4YY3bW{s?|uDF*JN2Ru9Bgsr|{l>`osUj1igP0T-@7Wpmy3*_)&tf81ZM13QHHDC=bM zAA>WHh*q3-r2zZ9^!_ZtDnN`j@=5^2##5J3F20R`%jPLke{7w`NLTIeO){$k4J{)wNvyC!<)&T6) zq<3BDRW}tr*}YHTzP+o93#1}RW_?LD=CEQj05tm;RWG76N|Vh<0RPqdM^Uk&-$8qi z&q%j&*+a}6IDb5f$BBzJRD36aY{HTuUpS4e4lpK!?*_)d|%!xsl0eWf;T3>&^(8SWM>cN<%L?KuJwdWS5+Gw53(di3+4k`w4 zBb$CMF6Ks$gs+%D9drOFB5azIYIc&9RZdRM(Ej&8`B$x3!(AqnqxoJ5RMS)U(bM(y z^-eGg8yp!~Ti71)yUQ*j2%RwZmMzbJ6q<_!xs^T$45UTiw3#+4DiFa5tv4m4|Cqas zzHGe7?$@r)&Y$N;j<`r6sa3xSa6Gp=z48136eCnq;ts0EYn>FB7)gf|vVA&@w;XV+ zT43Rs zB*90Z-3Eq_U;ffkFKa8G{+f6(afO@RPU+&W9PDFH6{cWb5->QX-077oD?gB!RSp)F z1(^xW1d0{0J8zL`aQ~fLT)tdbI3F_vfBpb|3d1@ETiXCDC}&VJCMvw=m;8(2opVBD zq5??cUwlMSfJ1}NcAvyYDEjqI48P{i?a0Wuy7SZ@i5%(bQs%cptB)Lr_i!@i3YNUT zKa+P;j`~fnfpqJsKJbeuiVM)+K#>uKjt(n)?qZ|$%@v)iY!er)Z|EB9^ni{%f!$a3 zCrU*SHEe)$K;_=b%$&5S8-p_E4UkeGv#74Z>3cn>bH3MLN(*dA;)0!0Qc_2!PGJ+nFqR5^l2vd1A5rfC*Yp1V z|7UMyuY`uJj8G|xtdMzRRHBGb8X7{jaFo5X6UV9au}UhXAt5V8(vk|Lp+TwN{o;K8 z|J&_+zn}B@9H-vz*X#Mb#^ZWC9#{4i*xrmlT+d(4)enNjL+Ow9g!k_B+5HdWjXs?+ zTo}t@423#l&8VbgIus`>N_IthUdpMw@1=73@_)D%f71D|;^r{duL}g=VN5Bi0BXI> zUz;wcVCUpd8|iL;^R13cffD_ou)nB}Ao4{E3~6Ynz#t-@{}ERh#R$tKc10ZyP;}84td%cLs<>0eB~YdVDI^65j+UyU?3m zGT%7|ulM*zA5?Tm(F%&T))0G>lk))|q?cpvQS#n7SyuAW%}o5Kvb`(QZ8il7r%95t zjIB7jvULtt(YnvC2YgNqPL|!9bg|Jg<3W+~goF~qqVfV9LdiPeg<zodlSt`rnYciMUTooT?ToKoCPE=3K#yA3}`7AtC5M& zGc6;9jh>Of8|=@l9u(Jx{y{7z$cuCD+FP*XG6s_#R83YS2KfhY|6g1;)1uJFWv;bk zK?(zHhYx3{C6vdFi#k+$_el52@77Gd(iak9+_FC0WRb3MwrN5ct(xC+*@LM15}HEo zFNDbpjAa<1B52u4Mhcw2WJGzYW4JaiXIR(#VcAnA7E!IzoQxeicC>y%JDa<2*QA;& zS9RMzNfuz6n20PhC}s24v|-XpK7Ncv1A0YR6Re`jqP9JL{J8mb0|=5JBYf(-0Txt7}?%n|c>}hWsQddK!y;fffUrZ!2-oeWpQdOqe(~uKqEk&M)+wFxC+MKV-Hqr$7Nk#|lb#(Ms_p#{Mi&!`)XnYhW4t(B1T~ zf{^_7czb7&O!7gOnQZRjV3+e>rE8-8000xSL54XcOe>vu z$wZ88Fp7bD0_eIo;vW1*L5_Kw6oqVc-;)y9aNwf2adpmdgs6EGdr)S1n+lo154I5l&kyn3JUX z>^pq;mBIBP9)l>vWwuDik(;0Iw&cx^-gBY%%+g(>%Jh$@hwiJb8iOYygwl7h0aD4fMEEO&9?d z$C1$}s7K&$sqfM4Zm12>r#9jvgmwO&vhd&$lRRsW+P=+GQHnTS3;Htk5JU_O9J9EX zV9|N$(s}U?fmkUKp?_o}-!9wog}RDZ1Mox3OGm?xl}-RIjWaD!=fMjeP(fWIO|Edx z-sBNAasHr$%DT9dQHnVox;n{gg!>|M6221-$$RLN8Q{vMWF%g~&4BzDw|O?~fBs^AK({0J;0OxuH2>?@+H+OqQMF~Q_$^ns z;B$I!Za51R?26xet0;MNpOKe|p2oG+|o1iHY(`H0%?Egia>c^2@2+x@eL zdQWYCNPQ`3f8fA-pAIqEfZo7r=v>~ifWKsH41N>@<{-}rp`T?W%@J-w3c`u8esaH3G9*aspfM z?tW)a^)wmfZGZQz&Zd>)n${b-Y&hQDB6WLwNKvbnEn&Tg_=&FY;;jCm?xm`P?e-dj znXy#3SJ=?IH^0lYfN#a&)deUR2BSyd?D^M+6kXvT>mO4d*{|pNe!&D&uZq8SQ_3-2 z0z7pps$?3)aOq>h-;*w#vHS4$?ZUPf$Jj-WS#fvFitw76n#|clb;!MtX6J~KlEqjQ zV&g&XuodhAQLD4xttz1S^sb}rmDj$zmCYAo<6L7npQ#rOoIW-O12{0ISk7=Dtv7Ut zM{>ZK4P1r9g>tYjHbhEB_g-qlaFLyA=38@C-Mil0W6HN?dNpaD*4$n z7%Y%Mwgv}l5mg{h8=Hn$f*I`HfB-(4hpqJwz4g3${FV@F<< z4thWunS^>~X1HiOTb=XLG4w`PfFgmzwj{s`;%*7Dwn z@xn_$u-b>I4S=3fj~;_6FKsJ1(f+rhBjJqN&Jt)TCv~0s_87J1yjOi4@vadw<|B_2 zzC2h+{#%N02p)U<+qd18EXnMl;`YSq-saASa~<%f2C4g_{5#CRhPsxeV#)d^}O>d`*GG5@Dq@NFq%jJHk1Gd*g=RI?aT@b04_iQN5?)x zhaMoT0yb{Pb}cE1EnWbbq5T$aZ*0`x0-7X_1;f{Wo=2cyBn&i%PIH2djXD_spBC%k zC)1ou*6rDx-)jFP(_Zf;?~fm{?xlg{h`@5bES;3JzrtaI&?Pl65r-f#iOEJ>-Fzh# z>)$!A0_rcFH3K;_lB~@pL=4o%}_QuBVzgGZu5U#|N za>k6K4%CeQ5$fQ@0~Vk)!2P-}?nOoyX34N0c`_+i1VO^rq($S|Ixm@fZ`vVar}s_X z46fewdRmLBwGoO9Y4RBwJYwmL?BC;c>oa~L^C2*KD4>2xN&li1Ew_~@9a7&zSs)+< z1rT__G6qe^Ph=9|s8XtM62sI(>Yy%Hi8KHPu-)ZE5Cfp>l7u`ebuov_LYv?UPThanES3@DMWg zp98C>I%~V4)UtV*>VP9N|2t4vkSOc9cwp{ z>X#0PcBKpwSqDI-CAN)QN>CV`FxWX^`Uqs07@vXv?TZ`FYQ}yu&whk~#1m=B;p9Au zx{oh>W@?gV>8N*WNBI=}*mvV<%g~I=ngy3Ynxzoowo9iC^U0Qt=!_(U)l79WXU+VE zFd31=?jZz-Z7$(=<@56m$O!7#2Orty-Wb@3ATW_p;Nx0L&VmCTb83~1 zU~AC9JQL|Nj*ciI=))kJ&P)x~7MeP$0;t{NL1*U;%+vnDoP%I6LFE8YF_AyGdjF;e zKTvap&R_ph@tbPItsc&bL~!vS!7gt%Qt@MJ*3j0f@2?1jh2NuCF*F zP*}w;3sIPL+wL#updLx*tG8=gT}e*2{+JHMCA;V1SrLxTmdYdVeDD6(HpU>`3^r&J zfuQ<-Je9?qIVQ#UvM~vNSa$O>-xwp2SlD1Eah)?h*6#Kq<-zhc>ZdYr;E+jO^arYe za&!Jag#*zI^7pRs7eu~y=Eo+_J$JA`aQvJ#_Kbyj^MO6KZcE5_!^Pbj8uKs?Ji+-P z9M1hf8OTtUSC?c{&HvhU(u-d-nsY(Kld(FDdDo*RaljPR4hL=fw^AGjG%iB`64Z7W zI&E%7^%~{#_Pfu%4Ey7a^2lUTzB4g)1mL0hp{D<%=IoO?OOcN|erHR_XDy)&5g9&4 zZzuS|3plvqSD#Mp+s8mJcYSq8L9qu5^k|Q&QBT7V?=x!D{Kn6}9a5iK3o=8*nKD*- zn`6_A-cKhqO4|(jiU#wD$?}kHBUL)LG|c_D<8!++R(uiZFqyn*z~#UWCF{$VL6zB% zQeI!W+pi;qvVE4$6mwjEA%+XlRJMlgn&-+x0E5C8`JUT1A2FO7H2*RlSLDS<*Gzii zE2C8u=Kfi|)OO~J^D~;2-Mo2Y!IQMLu4Vtb`Ml8Lxp`{PWLXYISDg=k;R?_I>Xe2c z2nvjrlc->c2ucfWp)#pKP8JRn4q@2VD)JWN7;5;2hldxe+Z=l}<@4z)hF%ABUk;`N zhYa@d3qx%wHL#wd8x`R@^&e-QgvXBua)Xf;0Ah1wkeLs3lx(P*lP)y~dZM%*=%kfz z)1xL8kNj5+u}n`i zzrfrS1q|>}r*Dh4a=+T_P5&b%V;4piUsziYeJ~b3GpU@Y13=AGY;E%=7jMER#$k_T z2k!XfBWi{OG_ji(o+b}eur<)mM8Af#O{a29&l&%^x-nVfzyV5fbG@pWi9w&eYMy7B$1T7;9>D06%iWB)$>Fugu2xZ-+Rn5%}uRL3p@9wjaP z{HTvh&+37HeI7M9uk#1bL+X$+P4R!337w|fP^&G<`pt-}_>>)6)~bn-`w3!<1RrMk zCg7tdk$ST|N-@vje91~762k!j5f#K2+)YDcVq`GWjnFdBl{eo4I|)cc*CYl4oEBPK zET#Zr1`Q8s;oC9cNxoKO^)?}iQA@tWk4DPil`9LP>i)Hbgamt)ZzHc%M#juX!OO=9 zD#kAq!!HU3=|XS6{6a%p`TUq8 zZ`JqxS7+$&v_^uUax<`b@5*H6-BUgkRDwe2|Ft* zC#Nj4$0lEwf-zg}Bv&1*KRa&KV8NhzEO`=L*zU|8;c{V=01@O9ZTTnmu7)nHj3T-h z=~UK$xC!r8-mDOJDGT>3%#SfxU-4k<#p7fbi8Q1>Myi3d6BZ?6&{LXz&L z7Y(+!cLXl%2yE)){qq#X5k<%KYgYhCf7;lN9Xkq>4I9-*`14e=1Sky(wd{Mqy$CFy ziI4|QhAgaF&H<5R5ZYcj`N@;}c_AV21Axv|8L@*a34}xUA*JWX=ti>kk(VJ)knh;R zf6i1IPSLJWri!aM(yEIocA|QU+Z=F2ck|-S_=}0LB6wGC+ZXK!wjKVIt=`ZcWeCKX z-$`H>4ltUg3GVKpI_~gFx6ml#N#2M5TMCW(EMiBR5Sdl5fK?JQms$0Ydd90wr!wsG zxg;`zr8_-D+CGF~28E6X%QIjuET`?1brig9gN_YcrXH%sjb7RbH0yut4a8l}A*_g* zH*-7LQDpSn-hd$Vb8Vvn#qRwA+x9D}Z}vE)dm9t~hQDU4@Y8=n8d$(pBx~4;a1JV= zqH$*hs`9ZQAHrngQqA@^>2yrfVsEsSQccI~agLW4iV+01aSIlBqabA@_Gh`Jw5%j{ zbD((=3sp8W2H*lA_=(S@s0080J2o}dENJAvv-(3#C|hf!6lBvAZHfxqmQU{0ZQaii9bw9IVvXa1i*HjWUv~L9vXERKWG$lnaNz{Ba34s zO{2&zh$-{Gmd)gJ@orD*II2qe-T0%7aXXz965=d2^QZ!4Z4qlC>^2x|ZKLNBRy1~X zTYwgJVHPQ~vSCmhMUzP=6UZGP<|4;*v|p#7S^ZI)5T54ZEG9E;%V1ml$|N14BK@$j zd1#GV{Dr>UjPA1swvu3swoSb zT&B%Izi9|DYO#*%h~gVr3@+|%5Hb{B|7}Q86mwICg;y{boEL2ACwG_6EZ`jHyZCME z#Yash(zIhCS=PEgjW3(6j3~JYWw%zo*oHD9<8VcWBE%GmfztoafxzuZWGNG7xGC~L z!{**2I#*pw(FllpWpMSwWsg;(bI%SMIB?mA`yL{xSnjWoPm@i;GS1rxXt_+4#el`I1?%rRe8;YW9HpvGu?PNKD3eygl}oJpk27 z=K5=$Tg>;OA<(e(pL0EhcZjJT$Y14*8YFdV$R>c@PrC%THng+dC5nyf|ZEz((R z7^cjh|E5ha;1WJ>?Rxfn%7o_IN{jJ{m=@R&{_&3=Eh<8Wx)U2GV|}^$Ps};s{Mv0A z(Vbq!8gZ0_3^041k=mqeAhao@DS7*}1Un@1VSg#3CALDtB&<(uFacko7b_bFHC9ya zm*Uf{m@{~2+LHH$deBQ)cRlKKUJVC}))v&4EKlEfHyx%dux;Ya|B)^KIPzeG!4jC8 zx0OePVB13{QQ&g#bkk8-Bhb44o+aTuM0R)?xycjkeCwd~YoTLvs~|ptlK^QjqlIO) z5V)8%8;T%#mw+OicE5Qz_#eB9m-aCRd5@lza4SMkdH*-en|NLhc~14yMcBL(+%M9w zY$X0uOMCy?qhNm8E+hJnR~vZb|4%)kO-f8kQbUad1Cd+Dc?UnFO&4cP4iwNvB8(|F zh&FLqT1Nf*kX)!Fhk2CQ$bF|udVAkPxC@skgYVAxq5@T0IG_*)ME)oNp5!kkaGbby z)Xwl1LD8O%%x~?pX*a4f=9{A}B5{*s#VB$xND{ttu8DRT?f@`O0;R41J`~=pwZ~6@ z3wFl9bG~JAN)ZYWAaQs|B0a^KUyBVgb$B!~yxxnY)!^4^&5XC)wxSh0I&Lf+R z1_TvF(867)x~WGvk{?_*jZa*6M(rtfT;HPVErUEYO%`KTOqh<*~-YvA;uT#HsD@Z?(!8jHYHrU!$*(qgx*1V6TB88-VGiLydd!`q*en_ETItipJ$c5 zFoGeqfD_jK{1Pm3WA@ufnfqZ=l?DG|EO(mSWL7ktvVxe4(52?A#?*^ITJoa-aE7xB zN(v7a8cf7oNhV0!7031_>`Iz}O7$CnWlSziAIQzWS@<`WJ``UY+4I9sa=X8F=b=9u zav9J|*H{;|H*=GbQt>YMU6dFAk7p!Jz+HNNWkwI&64K7;@A~Q*uCGw?c^WmKaEBEYvggrt-3*|d$)tkQt9^Kf$@$A6nRi}CM@L$DakDwt_ zW7$YY-yxuZ5SykKe*skA*G_HH^UG5^{9_h1y!UO$1T=}`$7+S6EfIHJ%t$5>v$VTsiVBI*$wgXGE25!Dq#cq<0NPtF>g zrfZW#PoyQxOC1Ar@!uL6=8RGcW9a(=#wcu*$p{|wog?s=zGa{B^Gb~;MJSXVQVWT% z1ZIsKTjmQf6pHfj8TpAn6ErKK&_X%bJ?GkG491XzdqW%(Qy;iZu{l6YuxJh4T5j1MEHK!}7s3N%lju-bkF`pU-jc%uLA zfPnlN>A(r`h}y;L5!^5qF}>|skESf3CihcZ+K3-B3J7K8>5P1^pXxn)czdQ`GJsqZ zc!d)!f(p=Oh9OJ|xc=;@J2$4~`S|#Fv11pfbf(mNFxB4FBEoQomI=eP>*xR9AJ^Y#!sK+OR+X&~5Q@8wc`Y7wCZ4;VUD#V79m9 zW(2GXUZ_M|cH^-~xH9}h=a`6oQ`>WL&>J4&RrZ~J!Vvcq<7R%GJJJhecnJt%9L+=? zVL|zwo8>#2nK=%4ll|Dkn#K`&0DGE5bn+iN1X3hF2u3viqoVG}%bUoEj)H}Wa3dZ% z5cJ3NW#{ko*4N_?p%9gcGt$ugf{#$>m$2yM)vZ-?u`sIL{s^c$N`ZRB-x;ak3nEqNG@!}&DVJ5n0Ii-i;emQQb;g2f_SfM%Ya~C&u27~ivWSacsJ{7T zW25TiKgfBX>=TZ6pwY_i9JV7Sh=dgy#4NU6|Fdt*s-GdeW- zN0AXIu=B35Nv~NxgSGLNiiFnAL16%3e&78deJRNP%s)J0yazAMzy9C+17aF2-z1tB zC>>~ZdHqyReAP*pi~uoMo~7RxAj|_&%PRPO^uUAg?a`$9vf>TT3o`E(Vd<4n(}*j{ zxViJboghBgx|qA^_3wW*O=0vF(}3{YtYdy1DW zSS?9&B4n&Wz%zRML8H>lF`uG+mZltb16U&UGLBlsC+?&d@pyFeu4ULq6;9U*9X?Iw zHzL%B@FG|s7?l8MBo#?EAS>nI{s?-6V+8wAn@1F$(YDsBS(tSM!%hfX6cMD9%T(TU zRhdqw`E7WDOykJ&S#l{@SZ(!a#MAP!GQkP{Pqz#XLFvwLCl*^?vZPpcazk+0u08!s zzg@8+`0j@9{l(+~$vl6?dT3XZ@P*q-9xeKxO^ZwMf5(igeN*#p_o)$opB?`5RQMrH z^1{>5C}* z5?^C!s3qq0>_wyU1;IC$J+@h|jj+a>30MR2n1f^EWzdY#Pp;ZAnIhTbK$Xdba{W4Z z$vH|02124S;jS?mFGCVMJIrahn6*$J%O(fTaDP`N40)FV(NWZma4R+!YO|;~;bp^X z(SRkw{DI`AXh^Ljq&(SvO1UNmO0>iOLplsQfODepNAWAFXiTOs0D7@@%nigGfGBOi zcdrn)$eFJIQ%D4ppm++l!~}SBPUYpET1_VM43{#Qf`@dC?geJ)sM7)x|#nlJv)q>J9UdL=B>cgZdzsi!UZ? z1-p(|(V86y1hCUog75#=>oKBKjE{!me_4}em+hF>)k+`f4;nLfI&X(DkIb2)*$=q9 zc*X?~KP40VQDmM$`2_D=>=b03ELny!-rKYtFFbwS*U70U%cRpl8YcdZR9Af7M>Q{K zrn$ykx)&?apki`(=FAyv68?}M)a!BJrpM+xcOKKh0>dKoc7P*9yx-80lby@tfBu@h z*LCu{*Wia97Et*4Pm=he!1-rOv#&1xa$@3q#4L0(dpFf{&Ec&A1X7S4HQ5QF5Zrg_ zA%tbHb1BvFg8R^vAHip$Q9Bc#@}iqp@MceXcPJ0FwKcAmKMKk{|M#TX)b}S3Pw%0- zqr+}Rymsne{f}28j!dM(u~c!(f$NC9j>>onOgW@Zml@wHpw24mGJ?A^HFiJ0yec#g z9>HApe`(3J)68rS4j4G_Q1Fbths}5E4;ZkAQD=LiJFPm90!Df$LG)MaGu+121tW#$ zP-8;8)t>&W&@kii7i;`+ui=ad%7m8TBvx72aTpV+CSLQc>5nj{i{;mu``dECXTN%B z|IA?hZv!#EgfqbbAVwP#g7M2ZgUC|K@Ec1f$P!OXoMUb0DDChxeIj~Q_XnIaiY4)s zlHia$wq`KB-F+P+0exAD(2&ZX!7TS;hAgraUpSCtAu%(ENnAfJIM}F|@WBzCq@G7Gu6p?B8dfgSLEb7k&S*}2y$&VX&rwCLY3+a}MioQKm z=JxNHI=JTN+I83OmB##{bHf(M0KD?NC}?|(n%;Oi4@E`E$7n6BfoLvatZ_fNDYSCy z3SVj6_oO~FuQc)D?wF4`~r1e_KD{)$<2eG zeuZXKS3RX7Wf6h_Ya``%oV4ULG zbBf0*u#edF5eExd$V9E2x5rvH3-TCD z{EdxG>RR6F>ikRb6GoqiUN)*jJC#LWAC%_^jo2}FlDOT7gXwSgqTXW5?D>1WjgrYp zwWGz<`?A*+VwoM*np!Xap41INmcYB4KPO!C&S+s zEiQ0R;0we4p`~zo+vzta8P)&Z+?KqnZj>>oWC@qj8qs@aQSjK}LM;9e|M3s!4Lq7w zl`(;4E5th9O1palybffhPb=nVm1;^3BKxjjLG$RRHf6n?>9t%=A90bN;GI!JgQAnsuVt3Zd+q1jg2ER6>T8%A&?H^MLy149Au z#jX+4KWGMOO|@G1PeQNQvSl^O5wUg@7B%(H#YS@o_e<{SJ^h(-oXs3?y3~_ZS?j1_ zV1SlhObo1sVkI)3$j*dP1J^>129~qUYwQ1ha=j{f*^(hR4vxR{LjI7iih+y{<>wRT zK9R-!37BGlM{tA26Bk*k!UzNylFAj0vn_b9EGVF^1y*|`@+k<4qAXMkj}T%WouaJ3 zrChkk9^=E#ZK!}_{S6hvZTCx3#;;}y__oD+sTl(sB92LvlC&Q%VzdZo;FEiNJUHNs*C}86{F?<~N*R=PdvzC? z>+y>6DwCpG&)y)DMGuHje%6fxsdfh$7PX~^hPpKr~PA1&r7xN{X7@ZJBwfk zQWeD0`L&ZEvuFN+G&e!4#)MaG zFYSvBXyu`kbQ`gvgj-#XeX2Ocl!kM}H)(8GF43d|yc#AG0Iu$L@se` z$YQfudueoNM``p}!zAqI6Qdneq=DdW-Yf|4TxNbM(oIm6DNMNSxU0zPC4ZA>pkw}jk8r~Eou77X_G}(OS3W=GzVO( zV>4k=DfXwUf*~foEd7IQ2!O{Rpf4;ybO!zzv6Htk=c>np1XdS`P{b7UqQq(5BT;G2 zyBULLgJB7uhL^{nTt*3|St4oy7m zKX4$s8{3d>b%%a{N3Ywz7-;YM_3IlK+k9!iqgg^qX2tcJV_0zlU?UwGZL7EzgTx4N zf{*l)mw(o?SeNQ8ufgLS=Zbm|F&VbV0t*r60;0=U2v*x+?%5wn=luX;637}v7_gy- zGRT@YZ{DiW(}+qZeuL>pw$NM%k_|!{O-s>r>_#1?iRuufmbnDNLYWYYxR9qOxgQCb zY*st%5Gk8yUtc%#6;4;rp0EJ}(xNiAQfmkon+*7rPb}2^$p$ z{qh{{rt1P4kli$ZRVlEuKYt#m*9xf&v1sBORYnsgDcj3E8QXK!p^+xqT!c3TO9^5N zTzRQ0$hFWWL|qR_MzE6K1+Tn0`e8~L!qB$)*CWct9yR%)y3KK0iPhoX4s@;V!f4fG^PGD~{3Z)ENseLLvs2^n=ho9LzOUU9=Q>zXdXl^uz1jL`ADen#T z$ROb?^@QxnW2zxA3PYg)$|zuII;c1YhQxk&AsYc{@rz_30i`4!lLIK_b}jlUMRr{9l{~xEXc@# z-}>MDAD$A^GT^RA>GMf>=uQB+gmOu$qAta`O;Vq8Z^}Rj12Q;7PLa&e#onW}wRU&W z#>$2wpa~$IQcReDvhOYqQX^h44j0`4{oM|JY=^$n-9N5)H&!4yI%R@Bh0sJwBzUIQ z;3hK56d;*{E<`lEr%KApJ=b_m#y&uH42Ub-xlNVb02Kt%l!B8{SN6eyzdl~As(UfH z7y6KHGP?*5_mu0^_>YT7aT8i`#+j^suVqvtmhTcacnJrC2w>Um==ra*5mh)b(Cefs zlxA00FQ6H}XL6l7X{@;1*MEKN)`B_%^bJMSg|K!yo8C9b$i zL4vrw=+`5coK_e@p#db(kFXm81=rCJSLjSHSI&Vn+s9l&c~l; zl1gUbVKEXBv70C!I8we(dYk{oDX*HBm4U2#*?c%nmL2yS+pAWD4Z)^ds_GG&Yu(9S zgi_hX1R6H3tXU=b*mnf%W$|19gl4#%&7@G&FhZgd;vDtW?1&BPzi)_Wu378LaibCG z%QO@P-99r*kDa6m2x+oGLE>Rtod2!U9y4`c_HtlJAIvt{;SA0&plMo*80)X!x4yCo zSl;2)(5Cz6Z&#n%_-LDZ*H7k9smvTVv!h9q`8O+0CA{uFvfW>5H#)to_Ds)o>ty&1 zsW60_N&a)#V<~=ZYY(olP^udP&<-h~RPH_4aoPu^yEInp`Ef+9;NKoI~z z9SJ$$!U_~hV!pJrr;oKS17P4R>N`{l7xC%%4Q#M7)|iQ?0uJhws8HYdfXpQHeJFUxX>bJEuz$BUWj$$jbh_Wl`>OUr}GEyzL0lTO`M=@ysEz|C{kd%euDDIvtVcLc{fm-PYSv>Klmxv-m#!>?cdr{gW z-nZ;|g+$iSx9;i!soow(S_aMs=N6A?szlj$DinVLIFiJb8TUpa0_qFe`n$e%y2h5a z2S;!1knI_;JF|dP;mT1%Z=YkI5n&s$pju`WQ*9SFGBp znk7GqK0^j&WDFuS!CS0!aXN&1dx9}X=kT*k_k=nlSszBDP-mn-fR^IVb!IBO3jzds zh=&3{P|jpM*h)FQwMnba2&9Oxxx6gu%BG4ctUOp=T)oLo+pK9bKYfowTwJD7(R`q- zFIFCzRw+huRN*LR9}@mW&WkxAoC+9dBIknHAk%G-$;xTI4G_A+Hy@|P+&UM|NNr`h zgG^39BE*+KG(b$13FW@id#G)-nCrTE4P2hEn&vE&MsD&v=@&I-O{@ObCr}(Pzod)}KEg*~TxC1++3eMM-}X zJefLPB%$a51Nb};#0-x4ZGm5ygYk@TF+k%(#%_wdsGzXfZK|=+Jf}PpklIEMI4;0e zzOP+zITs@co~STTN|^eL9qwm|&Cek1&SgnvQA)G=Zn@EN>DNUO`wn}WzRWwSsS~b~ zS$4bq%OSmH`b_&&9h5t7t$8Q^@n@DakGX_5XcuC*klEm&ianEb#j99{P5rBZjO;fO zdzo^N%X@%!Xc%Nfs7JfOmf?=W5HJ6HJ@|u*%=|?)gQ)~hUAzn_7^c+IFrtgq5 z#Um^s*UK8AsAu>tpwz)Y*2 z+pv3K#0;&fs%BB1qqokQ*ZWA-7mwl*ZuSNvPQE|sIW~V|TZSm5K&eYv#w|O^h~<0G zj978n^DFWvC^aUcWWgAN#t}=XU?Fd6Mx35?W1|PKZEn~kwto-(FSPjHmj&lcjPuo- zKHuYQdhkThFN(PstjC$L?8a9@7AP0K+v9z;!^!Epz>dr}Rit!95j1e%z#HV}+N!Af zxQi3_4MkNhKaWCq+xQCyD#K>A*tX^KXFL6h*K2VvpR$ zlNw+2ztDvLxx3$|Bayc6($i;~nf3e2rq{3jl^e#TT)Vz$kLC*M!%#-JB}rOQR?wfA z0j>)(2bVlCbZNu7x~eE^`riJ722EgE1f&KSrNq()3a4(A65A4O*m(QhF}cs-L{LZ; z);A(S(UvJZAQU))LL({ew9?K_z&(WrNHv*kxYPR2UbwJ@Li3g_w@vRW;$YY*`|0vk zz*g!e1pn3dFdj~=_+Xgq#sZo9aOIbQ=!Q}qmU4BY^PHwGtTkTd0cA^pUq}Saz4s+( zOmL&i-%}suISrU#f;Hq&2<}IY9LWN=Nx)2|5rGQR=B4obU=MGx3?ApO>v@^GKHu%3 zg=LxJP1|-arg|UEqTZ0hM=0J7 zk*X7esgbzVd6aHHHo6K#MDM9v`nhiFn|N*)yUsk;EU4Dcp^K!6-L8TsUM z79Kx-Je0L@G&4CQtpfvhGNuvfF9X}I`{V633kzSpd$+f~Hh-M3(}jJZMrjc-&|7n8 zxL10cF!Q#7mY$bi%roylK6m^~_cmP`H`qC*<%@agI})o*i=9s2?iIY#>uUW$m$)*u z1ic%-6h=YIc=zehYAqx4_(abuGpcJEZyZ|H=%d4<$(2{X&b7PzojY#@Y1WrAu`MtB`pO$v$A*d-_IlnBB$P32U5W+2Z8%rrVNs4>eXz9cjJ>Y>LdZS4xHaA!ctM;>eZ`;5Ojq7CuZIZa{Y$u4LE8-RVIU2 z!AVO-H_q}J@L|)&jr^89RC5@3br8e~7Sc|9X1Y*n$&7&Gxt$dYA5{f4+-6l=ce)~9(x?qMmkcQ(arelSfdLfs_@?YYfA2MA>XOpX)LjFd5v z``Dz^K&^R0pv#@I*^|`n{_)^sy^5u?*Wl^klI8jNtQ|pM?zJcS`OpHqU+4JVp zyu0Q;4w*kXXa1@hGo2H(vSN`<>t}}XS$~f+kMFtK4T#&=-`KBg{Yt>-P+a1(UBl(C zbvjw4?paP@S^T|=p8xvETFyGk1RcuZb$Wg)9at|{M2EHeRpAkzJpQC>I1f!?GoKS_%?W~nYm*V z27LSZ$?U0ZMT_@P65H{looLl$49b1WpSNz2Qe!sTcLo?u&^T_sExh<%tESs8gzsA) zPt*}0S@d62L)+P7RZ?@v`z%g`o}q~w)So=88fP`LJNLeS5frP*gXr6>e0^c)U8l z8kzg*G@hhfuh;KzVpgxuiuFofYijK--Flx}`e3Q^gWSpoA01*Yd-lr?)OG07d$7Xx zVCB}g=Wlv)8&$8)nzlMUpQ$w%vb$BwqZjAi*>``vM@fq^qbV+r1}xbJ3iu*;Nz}NF zMJzc#75m_Bwfn$w72nAlv`k%FJ1!o!;G1hW5(KN;i^4bB-%a8I{ zsAcN{_VZk8w-!xSCknK#I_r9i^DK(@HrUEM09V|K zMo7VsMiefEX2qkDcl4(+Sn@$5XeV%MyU8U<3EPr zVc6QwG&Rp-(4ax3)T-l^8cQ>Q5K!!E&Y1QS=NME4u*92Uk+vXmqpr}2A^G-T+Ai)i z43nV)Z9#;I0;(Azf`BSTqb|yD&p5qI;H{WQt+cnF#2ztG&FGgsQUmG~vj!$wRD1oF zPu5LO)iP4zdVv~@%eoeDR_HX2&}mevyrwEOPAjUMYZvMiWar=@y0a~G2f6ii-|DeP zXnZ}TrNYaqu2GY{3(VC!#4cGTL^vh-Cn5KWb=b-^YhsD!+jz=#=haj%j+pfC6dbS9 z;MGbTUc+iyxO>v{LCe{L)oj<+yUJBNg{Bw9gB{7zDs#uUPN83d!l{?E(!R|$QkwPG zUpr|;jPPP&u4Fv#^|h*M^^4A|;&P`)z2REF=>6EL%3S+=N6#B>uPpzqcQH^N)vT%c zFom~jxET8BudN<4GjjXwL2q*WGQJu1JskahS-fJe+AX!`%3nCRjI*&gv~&HSHy2jA zwVRYNwB^aLlL>zZ7CYU$u{u|?_Ge!3%GLG{Pn=HZJ#0|B4VNt6eTtse%XpTtQeEkr zai)d0weEZM>HB@$@TTQI*8S33oU$;-gUXd?46E<;P0QNi&W(zf&Gg*;@WrY~>u($H zrnkACGO)?dF=JiVuNl^8OZ8%-ulq9{!>aFF@2&B7H^z_qR z?6`Lc`+$cjF|gl^aLr>Aly)4hYm*!hHO#Mv-sbppQnM7oP+lec0YF2TlT`?e+f?y1 zxYzk?;qcqHZe___f_+ba^WsFIt>9DNZS?7<>{PJ5;hd~;_4TO{iy}w(M?|#o_xA_( z{Pud*gFGiy-99Qa_3L!_ME62=7#mwyE4rv&tWU;T1jM)+;4;Lce1*B|+vPI+V+!JN z6DFqZkp;T{&bc-eyGHT9$;->DrgSLb6D)5c(NyN(@qB&c|{rZ~v37_6%I@MBBe4XwX!RcYku zvZyYl$C3;8Zrw}T6m&n=gf_y&`gALm2E%u@-f&pO?1P6!(EW0gRq3mH-LKq{Z}!iT zN8OL@{CDX>iy-PwC3gRgUwU&s%p$`2nY!z%6waQ$FVoQ@;rq{J z4nKX$d!E}jpxSrrt~9k?Ixk;k7P^28KFD5oJ}9Vd+ual1nXT!~(2slE`*_kA|Ib~{ z?R#&3_g3JE*>cA7oY+6-YS*!M(~6O&)Qr@I8APS^HdJm&c-<3G8<#n+=iFL1^L{I; z+U3U`skK9`x+9G;E zPyV$`2i${CvOy~@b>lyIIt#m5Xr?+Q_hfG)LydDUl?#8X|;sck2O@ryNB ze4=Z+!JoD78#xyX;E~!#RLnOQI@;^%Pm{~t^a}Fcv0)Ie_uHY`^~X+)ztg6zdoU9ngdoWil=OI*;RZhc9cqe07!E z%6AoS)nRm=5_7t^OwjgC*iL7mkDOa(lblf%IxSbX5bvv}cP5mBj& zlLib4PcJHdz0%11Q>i<(Qafa-V5>P8U>@F9zU+a;^g^vGFcH`guf5mh;zQYjuB8Kb-%khPXEeS4_~n;+ZE5y$EddOvfp{9qYc zm;EIX>KD>UN`XsTNK4Yoird9ApBu}jZw*FR9a34k#D~#5Y&a z8@W-TF4fRTf4*7rm`Ih7rQ5Dr2YZx;P5F9FOHXfsX7QjEEoem{w{DwsY3riEUF0@q z8q_R$Gbn8V?GEkgpp=|a>RGt4dh^Sb+W1tApFh7dq-i@lyIJPuf774l-~l9pn|2*K zYzK79J~U0!$i?N>k(39yrRPIKyD|z%V0gF%Xce}RqQQpm2mUw4TdywS+3u>H-UZ7Z zD(JnKxB{5k-L819x9OhZ;)`e2H!E)|2UxZWNM8ad&lc#y6TNQGP~_uAw1XQWDimsT zV-F8qxUk!##m6xKd^QH7=yk~E)KFsGx_q`H2-(h^0(>g*5s`VQjvZTfr1JKH!Bd_* zius;!?#HYAab`z*4UElstGMLI{!YB@f*jY#<(Y;5?5?@C#_fN30spI;{xyBrdHdUo z{PS{38s&_lQ~-H6*;21*dEBIiInNu?2co^{KIc3IYEe;TjD7@vt}!1!pOvj%8@u{a!AFwPVp7k_a3DsT!HTN`x}9u;?kcnTYA#>8&6r z`I2ca0R#Y{!g=`C>vNoX<&}l7tA$F_y4P4`!SsMhd;PTh>)ObY%F>z1`%0s+XwjnQX=&a+e{Oi4l5!z3Ql(9sHffk~3k?Y# z3Sci{5T=`b2-!qNel;E;I>^}ASmZWoxb3gMmIZGj8X(PsY0(zbBXKqo><;c?ORzg& zdU>?)N@>z((~6~~rD={^jE7k~gUr7{7ju9@V;P4gC#Le$LUKBtEKpUaai6zjV|`us z+fD1M6UH$JxLT~)5{#}}O2{@@=l~07j9|YIuSDD%O+6?jdo(YWVhY*K1Y~8fmrT3Y z1_lSqlIIY1?7eq+HA8CuK^wrRy}dQ(3_sbLm(OJ!zjEcufc4vYPl0m9Z4Gf`?omJS18JHB%$N(}h^p zEIK;conAzSlJ7Ts3B=td;(T{!rFMS73tmk$?xOhi;OlAJ%`R$)CCEPF>VY&vKvzc8 zay=p2T)c3h0SQxLt8~maZrm`fp#qdfx}NDn0|hu7{h{ur4RC+vSo`~_Oi@3aND+W< zmLhz&RmgAGg=c^tzO-Jru$u@-dFIxbwzxA~19kz!+XuKW9UMNmC}0?>Z#{mz3s5iv z4R%frvkt4DougAh*F>HMxH)?CsO;jD2|aG73Wm(k?Zb;kfy%Lv4KJVddTyXwLz(5$ z)(AEQ?>8DA*bV4O+^+LD-U>1!+9H8)ft6)Tp{$*f-9fT=k0sSj{7kD-KWtQ0{W-0x zVL#5l>OF5Mw3(Qb3=^zVAU+fhqc}k}P;PPK?%lh&Ff8EAjbF8D zfXTFJq7T@}TbBM<-nj*kcx_vnLb@sDPLw~d0|$qf2!K?B!A2A(AVOj{Q7#;*JSc%j^ANhx6If8bwlh@ z27)bVfiTA}(bHXuRbJYuQ>SiV%JA=!C>5CigU|^i%b)@3_}9#+UZOvfGk{L7 z52X&UhEyEPX9)S^Ky%G5JjfDoyIca&LzD}oyN72BxRu7n-vjm-tq0D=oTX9ql7ZDe zg;@qFGXt*W4xO9h$XWU56sFB)&uf$KcO5)#Zk3i(m@*(8Oi4lJx7G4&Y4R9FcSWTZ zS)J4By;IVV=04uWZ)OK)PjBD2!M5IpO%2~nytIlJ)uhp%-`S;I$oSabjlK*U1;)7n zb(-=Q$F0V~g~U??Y5(OTyUCpZs6@R7c*I~E(Nt>T=U*zM^hOT2721Cv?1kj9f`61i z3(J19*g=MM&q2^}<+I;h@%wAKTqrov((=*^7dJ=KJrA=V&dvY##LH`Zylj*cz1DNT9kFG?*Cj@P#Ac-yTQ*k+Z?Q(cQeqU0ss5|PT!VS zg~k&mG@`6@WC~D=FQ?2@IJ}Thhl-C7+P%34!mWc_F>gZT0nttnOb#EnCI(kiS&A&R zyUYccHb`gFt=k^Dgx|bqX}@If99nqgw4VO}bydACw9;#qg!gP!yx@7pMBVF^4sU(0 zH?>U3i0e)GIG>p3^qwQVa_!ok(N;`2kE_IaIBs-fDae4k?>9{H+|~-v;IY%cKR!-q zZm-z;a34M0PTd;qJ{#iPzMY@q|3x7~T|ZM=9&5Pb@^yGz%>YMW(}EP|{&PKOJfuRZ zK~vp{OB0Itn{_FFnPs!5HU7cH#}mM^>MNgi)mfq3e#C|emtGn9zc37ZakkW%F0%ekEI#1 z_V6W)8Dv|v))|uDS5?oCKg*i=Vb}-oHC8#oQ_RKmDh7OIn9U<4E?d(@MSBLtCci!r z%t>^K-P8S+-&)h~o?jxX8wc)h(|pg~=q)eIdar(@@qFd_3=3`5i}rB}zk~G)k4Z|6 zS4}TFcC7O}GqY&}-d26fR17osfl2V2ia@sH8^F7}yyeHq<~|Z0G>^BUs@}~SXm;wf z$|-V(|)8UyL%QZE01+o=-?35tm)yIZe4u6uci;(Vrp!A zh73F=1E$o_>aO>~b@;CN8XUT^GABun9B#n0SSl%*ufeCF%9ZKr-3-?rFh05M&+LBi zH;e{x0%xmh8>YB)!|ViL?!acQsmaHOEZ&uz`fEdcl6v!ol@6KPCWMzaP#7MjJhfZI z!4oIf$0yHVI{zPOfmc!*?Db2Qz6;fWn$^W9-UU-zGj%J~be4^}nlPXC`@#pW@Q|r^Wwk@6DsR-rN7* zPbtmw97-A`q9hrTN=j{&W+Bm}Y*C6Plm-oG(yW1`xik?finNV?-+lMa$NT*nuIo8nPn-1~uwq+_@s)*pBJ8~{Y$`na&!Dhh zg*TsO6-3Yt$YGAF5G`16UY^UPOP7)uib6dls8N%F*#Y>K-N?;)J??u~kHm@**_7Bl z|7g^={!O>h8vgzCqE+7L{y4W&E92g)Ag91Z>36Tv#&+j`7E%SgKzLnAs71n6h*CP% z&xiIR-#pI3`&OB=SHpBP5I(_GaN8rCTO*?68rqwtEzk^<&jjjUAw9v?Ho=C28V*Ikz+s)PK z<#!UPPe_vm+jhQCTV)-x`swIqVIx#7+dqD7)m6)+IOXFexB)qHQ8o%P;&rRZz+4E* z4fbaS&%HjDO@I7{afwl#_3Li^UGV0$RTr%flYs{^+-7?iM4pXk$^sa7y!F<&NWr_A|fI@(=>bzL~Wno10ycY?5b7f(l)}TUbxV2 zXIL0!&RSr|v@YnK`NT&OcSCXGYgLJrM(B(rtJ^3)?`-O`aC4~4`X^oriOZ)$n{tvc`0UN0@^ zYq~9VaI;k-zF4}P8-DzS^^=m^`uk5QTN5&i63D@u7 z#DZ+ez_50VRR;EZL@+^K{sxc`_vgxr<0F` zW%Hvaikm1FpX#u}?^WR7TR${=3{bVnnvu|WV}WbkX5%XX-^J-D^*;&^Y3{2EBSZN~ zCBLmp-@eTzO_~(P$TqR@NkX{rshw7qTPE^n$4{QTDI%-~1D>f5Y;#GoKEjGL=!P{Y z5+bi%(_j%vU5vV-g1_ttoXdj;4^V%J$f^ZXY>~-JIIMIl!sJE(Z^^nlnh2Xn3ggLw+oGb#-NNfa6N^3IPvoVzU=D5*nK8T|`BDn5O|;BzP&R zZDl`5h#e4&6p$QJnEQY)u&m6gZ13e%vMJr7yO?OVxu*I~%cOgg(KTO<{eJkh>G2>g zR(bZHNqM7APE=L8e{~?UOY)(_MX$&GK2cEc#SH`lavyoGEc8-I^=rq*S`mwz%6r}t zJi{ZUY=%$%v7R1lGSY)uJPRG-kZxR6=i32Ki`aX?A2R3HSzC9=LKCCeD;%vf2LDK( z+urYi=i1bD8bwxm^`GCEeWSJaloOLi7KV9d_B(0Vdu`9Pk^gw=!ty?`4|!qz206-E=C}O237_-l?0ab-Hn58U2B|O2)lSAz1 z=R-9qI9CKkm9`eAoI=EUiMvQpj831mdruL^4@rQIYVWWXE5#9u+3)SAA+wRsL?-ywfMj%CuUv z2%mt;!3#^*OuALkYYNdXIzXAHalv0&Fn0SGsR~?ow%M6n>ODHF`}{KhBhW}jGK#)0pAS^j`ul}rZd%v+Tl#eQa!Q^vJVq&99l+#{>>xAZS zp(K33uU_@p-cqsK z|4Lim^~lBaqVvPfJk{*I(G`8t60jk0H&Ja$oj|5TDs{LgGuT`?(m|-+t!nlAolaD~ zQ{NxUZ@u(Lz0x_hi;tZiO>^m6`{S2C=&9su^G6f#k#}1+0$QV@!`7hHt#oqCWZWei*5{TvH(8GCJnDn3wipRFS~U4axDdL3(d52roebo zbJDQ$()sB*5;;Hs6}N{V+@*Yqy5Elfk3g2ZTUBB}S_+WS*sR*KjRs96tr~LkJo?)- zLL@V?vm5_bMN=<`Icty6pBC+o+POXi6gyLV8G8zp&1J+n;Bsg@Lho2QkO)Lfr z?TdBR+%G%GL=H%#^pF4ZD z>`V5Xi^v+5bgZ0wW-?<`M(=3vfd7Mw%x-I{v%Yu3B(=t>j6HJ|_vc)^bm+mHKqRJmdh027Jw7fL z4K~PfFJ|`zq@)ZNn^1gw$0bXa$c$8};=$Z%ad1;-@X$qNMU!u;5$$?jMA|^ZC{9HP zkFb7wen@i8cn&i~(mcbVJ$4-76@$G2Ko4KAK*#TAg|!*eGQ{*y!CRfdKP>2`q;eot=cmi8fq-=Gx}8BHuZG$-ybu0wExSz zlWs%jIn0axGbQQSiOD%MKS0`&rH_QZMECSA=>VQt+xKi zFLRNs$h`q;O7#R$af=$SF4@LNM>5MBpw79)k?6uq;&v+)uiq^qWO`}*v3(EbT#AkD{P}rirdE@yT~r^u_891( zxBJQQQKzy{i>MK(iHm9&#}RB@F60B#t4>&7O?Eaes%+=DC!*yJuOA1lD(k|}+wnE9 z^n@)IVY%FQO!`?Xi-`29)ql-$X&%nH87uWRKUs{=M<+fM__Xa;|K-=5PCldZ@1>(_ zwJYuM>(m~|eFSGoqwuRA+#nSZ>k|9x|Kwk;T9S3nv8=!QC;cxs5^J^vTyanheWhaA z{P0BWZO=_xY`kU~TD<>>Y0=u*(d5nJiGboS$xg?b|}j31lYWD zKMl3NEm|0?JO8+7?X9c7VobF}arNlp z+_8!wE-qS7#x(IensxS1!t3ii|H)uk$r_1Rzzja`U>OB^D_B>8)X9lDgirU zzjQM5J#YBWW&W4cDU`0jFq-%g@R2E$0#s5?DK)S_i1o+D#zy+fetXL?|7frnUjOs0 zMo0H$s=J0u()0uEqC<)~VV@ko^VV~S-tN&&)}^#A%3Ct3anO&ds*%MePCHWmyq1`F z_;HbMDOi+=O3KWIA`IYW>dZE}wcy;f^@1^CrL@FH8vTZ56sZ-DQ?9`=V^Saoj`msL zVjjUUCma#>AB~$aY%Iy&sX!&O14hPqk#L&fkxI6t+VRtb&dAx&Oec?b% zg9lY}1mxisEnW0OXjks-q2$koOheEuBt6+4u1}kEGK+is83L@+#b7EZf})}dL`;Cz zAfZnhdZ5jmOVRfhf2*pJGa&QxZ|2V?eS(s6dil<)=6K|}T8`!i-NSFa9Ws5on*H?Y zrhm{ArH#ou-;SRa(joIQCKM83M>YuojyU=aDGABh#6{O53CgaSS4GXWQ)ARMc31fC z61a#FMA8@u4I;{qo(Fwvllvmn7qXqd-n`&N`X^CXug8k1sjJ&Wxj%l}KwvGB=NabF zTiv>Q?)rL%hwj@Ee5y%TdDmN2!+U+JO8xqw&C=d<`lZ&i)MV|kmp$rO)d~M+(IulR z5eRy#|0#U4^+5Q_m!bZ8%>&05NC74K+h?gezwomlNU+cGx|Zs)8aqYS{Bd{L*J$gC>ls`MACuL#ijTT%;MY6}5fM=>iyze0l%q1`a;2 zmx$r6`b)J-4+5@^uJ5H`QLHgxyUzfG^HERUS*LHF)-$EX6u{aXFOl1-DK!i77NaQE zo^F-)R+H|Y`T!{|zoTF`F@IM4Rmy0k#p>TmTIV6Xxt_Dc@r@ego4dN6zFTIu#ERQ$ zaqo6b_biIqE%q_Q0j_h1A&kfuvUuwps4M6tQbo5tNy>S*NQ~yvR8t_Yrv2|KLvl}7 zU)etz*56ABk?KU*Y%Cf7qOkvkW_8l{j_NzBq5j*G31?kW?@wb2EvLiLiO>AQp65>* zW6@XjON!!1d*e&5O2gNz(@@!>5!*^-okl@w(qYt7V^(Jw9QRGkxw=L(sdTAIz!%>O zPS^8(JTd6?Mg-2AlB+{3S6;Snf~kq?nYUSxH`n3FIPdw}`jquWax<=XO=Xy0ge$c< z)T7&UgKISvA*)PKL&z0Ub5U1USB?zeP0E0A$O861Sb8%b?2MGsvF%*_mzf>RFYD{~ zG=-@q314E{T8vg4O%M0gtN5&SwpHK*Sa3cV)o6Z&cgM)-KeJ8Lo4SSjb_z{&Bx%~UA;DehYz89aYuaA&2r^S44*jc||8W1`-eX{5EOQT3l44g$(^>SyNdK15UX zXzGG3?dJ_%9{zlYrF)!aC(uxA`quW*<9d-T4YVEQ9MS&xKeTJLpK7SQx2|_LbfCYt z^RGg~!o(}%eMEgD%7YU#$ECgPpOPNkehi5t)>G}zmFe|^ORh_6C+88P(uHOhw2qFH zNU<~|?n-&;Ji|{u4S+c&f--MCbSM-FD9y4;R#uka%NsW)i$REN9Y}qpb`DTSN^q*0 z+9G8}7_9G+9cLTfi_>t0R4VP7MBmyd^`c}damdT@4LSqvz2w8S(FL&~MNiUq<=6E{ z|8hM#U)^QwDlb!mIRE&dS}P5bYNiAwe>}VV&b?Xv7=59q_B^OoNxsHs?{62=T%!6p z_9FdRBBB6f>xtTTTsJ2%w#JaWDw>fIkueFI5uHS@u2OTSR)+l;2=XYRhCb6S)DcOE z7qSpn9BCvZ&0OvSx9A)+?9#?cGva@4Av1`XeXlL)p+iq)iG&8QG>wp1=7cc~R&!Om zhHC-{&XwsQN*M?33YO|F%sg1K6V|J~Q}D*Z2rwsojz4x|pBdLBgOjcmUS|lZ0`O4` z!S^N~{IcO!*rueiv%{Y#LCV+ms#@{-GG>b=o##%K^6?UOYpIGyKv$N<v@+Js zdSKX2gogvYo*!l&glrSaYWdvCZUquyIKY>vC75hLov|jl78~p%jLMUzPb02eX)D?m z%qrycjkB|>t$@w9Ca75oRY?h+@GCE4i3P_!^4GY$O*+(OUf{~3_a;)UW+$1pMT~r> z%_5nUM;&WPw?_fz$p9DkmzNqaQJ^i)8r%Om!puc`1`a4$j;2uu-;2&QqN_>Mg&;dY z=!dvrXQFAQzu0kQ0VF@6uK{2KW{k6H-)~lZTutF+I>rEW26?}>kBC$*LENEC0aN^I z^=J_LDwxJWiT8~iYjJ8?BveRseGE0zr*B5#B31{3@Czr_~(Z8 z;a|RfO%-cql--Nj$IQ3Ao^M%wd&#`hXE*?g4~%!5T>I43YYCezhkH8+17u|lOF$CxKmx^vGJi~ z7=fUmG8dTJjkZeEMnE?xY-Xa)naV5{5pRI8$z+6T)|i3dcK zKddZ$kXVs{1MU&h`=$l;2MY(Ln${wJTZp|=i}`hRyQ&|3E@I6FCzi!MH)7xopo6!q*~ z(ibUfhjpk@kj4s$4Ao$bK}$>rghe=`z@&f#k|1+!IEW>NI$0zHr^4~}KWxjX+>P8R zdOk?#!$*(Ssn=9}$RB?+fkA-fHXu7#I!G!fc81Usa`FQri5OJ84OH(FTBm1TFX^Mo=VGx52x&?b%bGY29UddK`L5;0yvNBdJ7XxO4Yz zg0eK=7H*Pu0lBz!&z>N5mAY6Oc`2O63EfSjXk%G8i=IAwrt#c2 z5yYNNC^NxKa+v#xO(&{M@@Pd>#~&u~k3lssrFIB^sWdw~{_?&r7u>^18i6mdP@F#9 zSQO&~zRIeQe+3N|eUhkc>6`e~ylq=XMRs46POVG$SyOOAOY8_DwqzB2JZi4Pp1t|Z zpj;vdgi?`%f)-;9G6-jqGk|_>(kKx;uo+6!$gYQ0#Emh{>j+o~T?s**M*f}`dmAE_ zVps@j`ZF;YV6)r6b>KEKt?a4S)KMHT2_m>KsYSg4WrynxN>@65u^do&^7X=99DAau zL&+n4R$2=REqMUQNhr=#P@16|qnzRQ>Z0mzs7kpecpi*UI(j$}l)wrsB;1ST5EUh=L{avm(py@Vy%8o@76mas(xTfW9Q!*(G<}f zfaSd<0Pv=UPqxT?9EivP@nbT?^Ffbww(yT;IGhy{Uw@MN=_H?zenfH@7vI;Nd%fTE$P7)GU!J4v zWVjvrc~AaY_F?3uORdFIN`p4jXg|7;U@1W`x(^!Efq$L?rl6TGYfl%5knA`qT#!2C zv%lfY*Csm;VdMzK!fKjDEnXGd4aD0-=Zz&NbNlnFOzr=1ACzBU@@k@@dTHr^alMzF zvKs!yT1slej&dq;&Pq0f$h26qE2$df_(EAN;vPz&^Rb#OGOSYGdgh9LQd`@SH^b+U zqZK3@*QjAf*(hWwYNF;uWrVb5riL07nRdS;`2ib-dt0`uBg2x38opLP%pMijpdV&Q ziB~^2*U)&a8;zL`OBh|;@1|6)3E4lKeFBS7@*;T_At%XD0=cv6WVyB8lz;3#yJs^4 zzRP{hcwdNPc_1m|YlQGPo5&7wb?r*F<<@Q6Ruf$&vRvt>kc`E~R!(a+m_C6v^5VCf zrBP=nL7x?W3rAklF{r~temvpFgc?HCBOKN35DgiTq@QZqBBSn*#uEtY$vP5-l!$8T zPI`J8aGpT>2!O$5MZCeyNaVBtY1}w;bgdg&4ZP8kDy%uX#=AvP)v$>xOHQtNTlg+I z{`JNyzxvNMZxzjGMP`48T!Er6!Aq zAzSt9HS09o%gca`L$^;)Eo20gAHQULmo^D0g=?N6Hz8i40iKp&d^QT2H7G#vcCy%YZ33q1NDvZq5ClYF^Nj&LR5NRfiIVWUPs zkgKm;G2+9?@}{>%wvK3c!;Kpj0zQLnvb+}zXwhPcsU#RZ9Om+UD0`NQ82Pn46EdVy zu`p z_fckM?c9+|yNWj#Js{7Cn-EYGun>D?bxjzdF&6wFi7K+&d;scf+1R zWA%35ayN3NBo*1PR0E>qh6@F(0EL|A=4Qz;1j57?hC)&tj)vXpQa%@YHB_7; zMPvQ86H4^t}ftBe84ExF05Zhf+5q)949&c7>C}C3#84;arsl7 z`|pmkz9v;K=c7VYYMd_8baOg$zRAXB4%%jV49;|{T3so7!g26slyIHy@3U8Ev_Cg(7AF%hLmBZg{nCTh00FPWn&?sN^+ z?AC4g%dsVO&pj?WKQBWICz&j+o+TBw{s)a4k3f?^B$sH6WP2gF1UNw**St028ZoHm)`*+@aiU zzwI|1bZA4)MRUx|-3k&30Y;I#p`^rJpn9<;u-?|w8+Ak@I|6lpz)4a?BfVkbM6D$z zXE@_LZv0xBh;LQ$su1`xQ+O?R56tmI8%Jgr5E!W7r{gh5;u(mNbe}+iA)J8uIX)z* zcjQnd!$uLnH~x&gdd_%rp^-D7|E$D1n!5gU%ygSgJ6r<5TPo-jlN4ted$biK*|g% zo0H94B4<$4KB}+{2rAS%I6 zeUq`Goc`@r3JwmII|2A`)8@_N0mV3bSn1M>8X2_(=CI=Ifud>$B1k#dCqzX*T`0o;f?4q_&g94FZ8tZ7nl=%eaxux@Db$A#ZVbF9d*E>XyDYN`hc z?Jvqtj(DU-Bqbm_v5R-#R&})zLNioC6d@rini9$K{{0+Es>A3te(M^!mRZlD>&26a zxJo<$)H`7|Sw#+c-RiGtUFYMQ8y4cA7DFe7r|2&?$l)R>go;7w^15t)qA3+*Z61h> zjg3EIoMYqP6(lJpRZx=`u3)yhsz(`JRq%aVl zyPj@-g*RQwFJ^Ctuu0Rng%8Z&@#|ZY8n`{kV}Pd!V!^0x2IUmB{o?OXUc1KlO$=G zks`@c5-H$#ng$%8lIO+GDXkW})L`b#Ix@GJ+AUQGN8r)$a@E&G-g#J1Em;VZIh^47 zAZq03fx?RH7w(gTje+L?D9K_DrNfiszKRfS>5#Z4q~K*9YZ7;j7kXl6fOUz-QJTJJ z^?ALf9v#>y=P|Oa#AMAxlVpl;FaB#Jv1g=34x-P|=hLw|p#^0&j2tYI!Y1)cpbkSh z1U=EJ_FMI1&{5Zhw*(B_wJQQO5|<~q2ig!q-qsK}iC=|cMQFwoH??^ej9~~H!`dx~ z3rUWLs+DC2qGFDXCy0t*CI=4@DQBMS_W_Ysrm%GF`oeQh^-c6{q zNEk^Bbq{fN2_6X!V}Ulf4!Q=R=dPQV=-rQ`0xDuTU*xfG@}D#A)9ph zKX~2|b|~uvN;%$b0qYBjo^SjX4Ow&~Gy$Pii9xvQ7KL zt!&X%p}XYZ7el##%>KWMXGkMJPb;=!Zlz}MD1z!qk|K1XAQm-f`H9?IgCaoGa)PJq z(sPvgHBxi|#H%Po|3-hoDV?_J3}muW!-|QUoidX#7I8JzKj;lfOmt_8iYqJ{s#(zx zAkXX(bqy$|llV1h62)Kw)9#Bp609J!|0ka#UEA2@MW*E!fu;_i3?H{oI)7qN_dif2 zx&Q=LjsVmr(&-^?oqS3>d^|<&Y@G~Yw-sD&poC;44B_0C)ER+lIp@TEjH`5pBq>0D zi+skwyKo#wm1SgxewaacOZq~hrSW$smoCjG$T&r=LvBwA%1vXw;W{`iWWf_`F6ZEk zoZ5Sr!&IY$xDj zkkADLgAkLrX28z0FULy)nN#?!;Xu>B2K2K$JzlhatxQypr4#}3iCj$_TjJ;eoMdaW zQlx`%cR&5)W;RYW-H0V78Vk!Gx>DP4P!K;#@}Ajh#(D8AWcedF2$*~-Z28#xhb%fv zG$V?MP;L_@9=8`8zxXM5vaT4n91nK2u;?sh6a5b;eWTyTdr5F7emM!J;U-QUvarMm zLO!a@sK!HQF!!N4-H{wc;)i8v3I@Z=_*uHpe;7re)AFM3k{c!CTi};$zwb*;ui-@- zkjF3ojC?y>Au;SYAz86)>XhB6skU{ims%4>*uJV9uF@cjy&$@vnb)?(39p3{pFhmt z&zUS5DV@n?0}lFEo=*qEJBM$T@f>Jd}sW6f>50$?sNOR%4$cnSOYr%7Xpc5gMHgn?utyIN>Ara0Tk|bh8e_;iz`i*`%UwolZ(AgpT zm(H6QB0!jU_38RVmjk;r-H;!8<83ebUZLS<7pFYluYKQXPJ2tFi71mZw)Q)z{BiFOt&=ih{Yy?eFm z_WSl@&2axO7jwN$y41gEP}!2h6Bwdo(IHOD{DZ~A3oMqu{_9|Z!`b{@U4WTb2BK^( z`)1Oqa!hq7%^{ZzKu6@6GkFa3j!n< z1rC?A8zuwnEDNvH_cmjtG6_-C!F-nrWOFl7a6qWkQb+|16!qb0KXi4{#YdO=I?ldQ zyr=E8{8<-YfZ{xNb1#>@J#gUY^wgTasG8lz_)v*O*=g6kmRgaVs?Fg`EhSw%oeAv^ z0ysl7NrVX4-b?W=Qol`pOyNyJiNN6}aSgMzI0OKU>UsX%V;RGw;aD;!QsJ|TMRqVX z)61Gl5eX2{cRKkGvSl09T0Lse@I8$_ZRX^U;gn%I& zJZN!q(2&!G2wR1kG6@gwK_!g3oEIdwMSOhx<2?c5=Zf0B=g3X&I(&*0vsOTqOz9C8 zNun-jv@wU?)qCVs`+3rO4wi@N2K%?~SvrVwPh3shCX&t0aH>(2{n*ZwMN)ELPZDb* za5Jr3wbKz>9Q?wa0TwBemaSN*qnc=X%*rAsQK_*#j#`B6Q%Jti=Er@xGporFt&dc;-GcH&NQG*}lD{ z;0L%UX(?GQY-4~VsULw5q>pUfy4$2N-+uf!WWZ*k&ANdQfY9(uN~9l zmJBgiQR%@sBx5unds4`sUq`M;XDM%wURo>Z&rld+r;ZoOOLX=yaiT>R{W(vMD(F8! z6|xd1pOU_Z`cQPpqJSFk%ps8bR^n!$WK!rfLn(JTOXTe!WnhKxv`gtc7EDyyKVH57 znY5tNS%G_V`In>Nl|X0#SOjQZNnRlxp(UCKBlqVDb~$TAP$7!D0;|+5&vkwl#-yfx zS)ca=FU;2}iIf4z1`|188!f(1=IqSWZ%@iqlO2C``>Iv>_3OHG=N3jA)Iw1GaC0TE zpNoYPg6mGQp`@$iB9Pt@86yZCY_V)UiVw6uq%FrM+!@}pJ5a(G4+ww-3l>B#GtgZw z|EY*G-tsi##osh7m+a3xQFFMj+5MqfV^z17hc>%qq~5;7gC8E<3Vkl1?}b;Tb{~vl zqLvdICn(W`30=RsOzIuRxnK=Az)ozTp`jZb+lhJZ-Va~TD$0zK4r08Wo!0EG%7Abx z_H*|rnTrA?3x~9?ExSJwVk_1B8@*@21V~7&W!UjShrVfhi9S5qrA_=kY%<&wTEPv_ zN+9oq+{DUxbQBTMp=9*j?MI-3&^wQdjv6RJ586I;=I{zC9IDxL`V){_d^7*yhyLZv z5J!SI31>#m(=h5{DB0*vcN(|OoRJaJacW5yzb}ct{-Tco&@TGSr6oX;+&X8^+RpD) z>}h-$Y-@cCS0-PoftDY>=^E|&N`4$N;mjjG2Tb(ljsqDDiWgn;aPQ>i6RbB6tZ*@j z15*&XT1Ag?NUQ0<-i~lx^7GH0 z)k|OTjjwpT-b4I7pCqgMGvH6T3Srf#`gwI0IDUN}tOOLIix3^L$@pgfMWBW?#0b_r? z{_4KlnMoL&tfgfU;Y$$xpS-ikSluq&BjL5*{lo`zil0nKq!Nbj`p`npmTyQkL$W*i zGkQ=|+8yhSQ|~&i@utm|iz+Vag*5W*UA0V7tW17kqQsUBi7D{>zZ@ADAkZ6U9zVzs z?l#(1X~jXZDHHo$Os_k}eI8(#UeuU&kB|BsXxBex+L@<%YOgj~dd0-XA@4!a`ebop zKAM<#%?lnB5-om>m*>&q7b85A+>J(SfA~;bJRTb{l#LXn09zC{;kOt4<7+1BhTo85 z^Y-n7@R!-Tp5y%zmfU~RPb+TVQLaBXhE1PyaoWCi(Nu_N<@n3U)`ImqGln)lZA;swf?0)8>NmQ#!j{i5I z%dVkZlO|&D;7$@-315hm3)DC2&1wxbiwj-;e(`uxR&mBXt}nKk3~Tu#&m1uCjQ7~y zIsNJ3PFVV+{ZNrpu<5{#!8}j9z?YFd;eu6>It(A4mMkSo#whw+Xwa{!WyVbGlnRY& z2PBp_eJjLMtiDIt*?sB`y=;GGXU@YnZ)P;SwD}%3Ic~DY+JCH^QuHx?U-a4VyH$QY z_qBVhw&~iSlujBhq0M4iUWA?f&<2n|HTIS6AJiFy6hevE9jhI)=$^CwNOQB4oHuB2 zA3v&<=l!K$m`$ozEwBrM?DF&n!`X6?Q7c25%FqP?K)~0qar2!2&G6&-Nq`nZIl!Nz z4yKB<-1y1Q;AJ0DZUj~hq-MzMHn^SI48|ypUhNgrMe>)ZPou2)JinfDGlX@Vy}2@& zzMM_4tKUTW2#r|HKi~T1(I&v$)SEF#yu`iU7hLW)VSo{tP8gH(nr+YJT;@+ z^(l@IeAJuSjWI1;bk#)HG;9gO7HwAP{Zl)3YM;zSF$J-ERIlYH8kZe<-s)#zr(Bnl z!+4KT*6n(Fg*%=5cp>K2#^p8Vw{MocUfr<5>1bl2!@k}+Iud%o!Atc@P!-V>HkRIA z&rgN~o0=Nc9)LX*JM8?+?Y?}R6#aPFef?1y1-flF@3gYH->19LabB>a>f_W)MH(x% z_^6L4DqI#b6VU*&fzBcu2#P1gczbWhl$?jGSG!FM4W2K!Y;PL%y{(Q{fNNk(T5-6Z z>hsi5kr_jdj2m)hvX6bvq>dK!l3_MWGVk`QAOg&K`6}LN(zd(3D5w=O?!bs6qv7Gr zO&ZVwbA^{IT@kG?^>lY#7rEP~+doGKnM^ujyyUCHm<>5z;l}Bk`fz4wnaluR-SgnR zZDl8yVULk@$eN9b8GkpiTaGkwMLscdJR>+P0bbGqB>9riu++^+|E zCsrCSKUmpXc2B`zThk_Sx`V(ZEADlwM>!a8y4Uq>_M#jCe+IPkIRr|+vJCE@8_)$(qG zstXEB&?TIDd~NLu_g($wZG3SVlu9biy7{R?67Rh;nKSQb$c@sh`2#p&0=nM#WolHN zg$wvYMToo6^yn2WSnC5W@op(2!Cj>34$O{JYlC9GSJ++K4mV8ZRJQDCaB=6J*>~BK zZl$JkK7Z(aYs!?_azICXR+cZr+ih$Wwco<&T-n)wY9ejBFZs6dec!)ZZ<7Zxyj?>Y ze7G5S5L(aC=E)jOH|%Wac)wqFk5?6gQ?N@ebD(<~@ThLcthAOF-P|s}v}G93`#mKS z^73DlHDGijkF&4xaVmf2e}7Zx$0BI_uV13+`LAEKlavuy8Pkw|W>B!u3jQjJc{kSE z47D{I0m0MHuQz2U|NiATeCKONh5TTT&&0&EkN`lGIszLlID1uCf1kSUXlxgNuzDva9v(sjfDtum48S(Cw2iLI%H562h>}btxC5( z=E`rJQL(Yf+S&c44cz^=KP3tG_`P=`=73OTd<|dV5YcyS zSBZ5ICI%LROc@kNN}IY$Gc%f#q>D~Qh+?S1fulrt5&g~=<*yL4XB`tDx`(vKGqliW!_Gd;=L(|Q3HdoMtq7$Bavi>K4 zcN~kcb@t5e*8#sAy2tc86?}W}RVX>zdlhm6&_8DpHOr_jR~i=?@hYQ3m_n@{YWAr< zT#fJDv=()0aWx3+P=OWb(AC;C4Zu;QE5SIsnFf`6Ld5n=m0o-A-G{O~`N; zWOUBHeH|I%*#-Xx8f;52Q#>r^X@n(o2*&Zw!-x1-*U<37$TX#SqIngijk)=+quQ@X z-;}yg$kx)OXiy~lACN^}4p^56OHjxjjf&D(Y<5f}89dqv68k6V#V;<*R=Qsg9t?p1 zqrYz<(hq)|s}oE@h8`h_^nC}t(nDR14y%S_>sXB#p#{YR1+!}4?kzmyhm%THqoyC; zt`7kXTedWosE<=q&fP|?(L4CBdg=`(-XQc{5^$k@gt-KfZYRN1fBvcKwCd|52|lU9 zWi2fxDWTX&iyYddz{Ol=@8_rMGA}Tk@Cx@JY2zgPYyqTzCEwu$447v+N z$QM1VS8&3&#U6%PnkTEU?%1s}3M^g17;z?q6@as-hKUq1Ru6H#+XqC>-u~#XMhzRHPGc?+3~kh}W+bUnOkF!0 za&B*Mh^(~X&s8vQ2kFg&>)+AikD2S1$Bw^rsS$n>F$0b31+y!tjmGHHag3}NC%e+d&YPi@;#TEL5dah^Ko&=j=wBW5 zo{d_uxibdqIN@Zw3|l|ayvOq&((H22_vQwb$0?tmh*}v3 zB03j^JV;5w!AQjS6*m^A5Y3vzW972@WM(f-K4Rj!3eM_nWsxX$_zUQZYbnI+EP<%} zWwcH=A?9h!gkfgZ(H6iqUL=S$Bf(k={{&Wb_dDR67EBU~yMA<-zymC8u@EqS4qP}K6=Wd9Qf_z1jPFETll)7Y3=BKNfak5_MwuD{J(V_}E+cl!+Zds45~ zGLex=O6E90dGNjP&T4!vG%U*dEbJ#(q6p#eo*TKhS2+K*y}Mihg0i|zr>{eIrNQ`6 z5hiij0xho|dL)U|YlT91RAgtfa)0nPynRH$F|Z}m8>Ga6wIa+(!ZeCDc` z8T>50X185TJ2!4RCv#>sXDN3-v{!WHA4pas8g=@2U%P=qf`SF(XUwHOu|$%Ee5#v- zh06dVNd%gIc@JZWJNf3;l4MDlqr@VY9YPy16f<3J(rTHT`H1?1$Q{g`E=&pdR~jWx z1znDyn>5K{(1DF=gnE-gQ8^uu?a5TLEfU?qHWRvv0!X$qK2eU=6D2SKQ;FOxyH@EW zggjRb$5?-K(4uI~mlOkTSKtuIkweZt6Kyp{l%dcB$~m@>E&?2(*=Jy5U8Wj3`ZtuK zK+9wUGk*BI6g_+&GHqN@<)TEdx7HuQmN}O6W+Ka2ZN4fn+kp;xgnR2HUB?jU(mEc_z z_)aS;tfVBy*e85KQw|_WzLkRwyj)g7)b1wUN-rGLD|G@W$$8qdq?_|60`?c1(u5-H9oij@E8`iO`qoShPaPoxQIVvjZ z?^IOF>ej5rcY^qrdE#GUw#U?MRV*&qI_O(pq&lr{YiVj>YkJvWyZuFLo68pFLVQAe z!uz(H*xFj!i1YKC{ofDpSy&tMZ#@4s4Zmcq<%tV6R8(~OG0->I##XYH<)=S~iWgmltHel0&ie|}BJXj)uqV2GH_H_BJVFCpcr*~vK_)~Orm z|MewSz?_~&^{;Qy2ee&VZu{?V(Qkh0bNgRkRO`MUll#{f)vB(Y|Nip)|NNT6%hLY! zTW+s;N~Qg;-y*m2j3?i}f6ekehZ+C z)}1iVFJHbq7PVlflN#H|7aS8)y5tQ91l=ITQ|wv$pFh@3ZWODWRg6Q^z408wZ8p}{ zk44N_^!4>`+`46r@4vU{R0>n-q>nZ3{T(|yPs!#M7k~2o`x!3fh_8?KYnoVC$h1EB z=a9&?Pc9Z+r9E%nyqO)1T*&XRW*hDrt*_S_$fW4-r8F=9Qyy7|m9a?B&bd0Rw^m?7iEp+%$aSSzG7> z819vJ3QC(L4Xh*itE`=$E6M|nEsUqgf>Vxu|bWCk-vhsMX}jwRjs=l!0j zQd#eSzV|q9~#mQD!7(Om2B;+)hNuf4I5rsG-bJtRmgv)iz2UT+-X#FgCW%=_!tuYrqKu3n{R{&}Qn{wytR`nKk$g$ETTw$zPO zbdp0=G8<%)!ASJvXMZdIL-T?qIFl)1nRe zc2(N)r%!LF(z4kQpE<#z>pr#HW44XMsr3%G<8*iQvORnDG~eZo+rDGRH8owghuCPx zeOU_jC)ek4N4n+?wd6U?Pj!X}U*6>8sptS$nlA zuE0cC&~Zrbo6LgiK-P>o)tAyzvAMCzsrDe{;xAuvtEwoB{)Y#Lx}zgU@U0Jy!v^@W zOx4nIpXzuK9X*N{5^x?f85tRQUt?<8loc-8=;)=B>8vl}FrS#Jm$UrO*N{AXuwy4q ztnu~r)pF{1$Z~TDhOxeW4v@w=Y;uo;Q~fO0j92s zC~DOh@^C1IUe~XuOw?XIdFm9-jzMD0`?~(V>V&+8TuDAYKY4bi8|(Qq?l&#WQ@)0Y z1-*FjB9HdX{;lf`3-9gNx$`2ILu%>5c|JGNN7;^CHR*!|5rURj6?d|QBzy4Cw7Yw0VvwpqdL|+Yg0dEfX$M|Pb zO(r_;)`lp}Wb=I&KHNwjNb~89&t{LRC?51!aLLHXn8d$Js}l@EB%K6NCAM>Nu1KuO zXtEKsY(9)9dT6FEF?C^nCUtJ2&PqI7%kI}-lT%Z3J>pAnWPA1Eqhg)umaH4fdu^Lo zbFabNLD!q(x+yo3_Q65_>}(l4)uQrpf8My1>&Z>-q1~0yhDjRT zb;0w6-rOmdp1J44pY{0bSH-xrp1lr3^M?KX{e2DTjC6E#=2=shG&D6mg3@N^ z=9b;|^IPq1GNq%gUVV9LXvmVv)z!5=xxY54*Eo3Upt#Zrfe=N-utW5C^13b)xw%Jk zb8}O=UxijDTQn`})E!j!uP`yHPqA`za>6pZ+xa*x={nsk1l21U96NTb-l;QOec#qw z8@Ao5FsbKX6BirX;VatMj1$+KL(O4?SCpLYipqAb;|ungoprr;oYOeWYBe@UUWYYy zw63j&Ic1=M>K?n)la@U16#^dfvtE3on!Nn{MR@3FA`Z9bf2t^36*3zOpd*m-Co?}x z$HKxwn;LQV?mAXlYR=>LK9`pEipHxf>0W-)M)m%P<^7mv5-MFmjEAz9RGC_|X6^4n~ z?BU_DlKF$;sb745hnC0Oc)fM$eiVwqxR7klwoSxTFZagUd)q|)&?bh_|40?0jLzV{ zMn+2cRnDDjb#GjlD)%5~DK7O73#Hg)$-0Rp5Q-$`m-O-D{f7?=wpnBx!6!{kP2H#Q z@iuzQISq|dsQcxTqcnA&%nS$WQy)Bda7IJp%hmYIzaJ7( zf@kKN*V3F&#NL)kX>3DREhs9Y4l22U%F)ym`Qd{gU)H2SqZ_4x^KDg&B4MbVF7GXh+WpH^XHqy zU_O59s`Xp-5^JiHt}>!xF;Yo53>bY26FdLcUu>%Pb^iLR04t;{C@46Y$1(po+@Y~# zth>^wKdEYHV&c;L?39*e&MGF~cD=v_%nu{Rdf2 z9I^S4;A{c&`a?R7EvueCf9_s!b^lUKQQj;b_{?SJPHV+ftvIEqGT-BzmlBzSOOI)4 zZd>iO3}vapB)`S-dt>83R+*9DGF#_&cre|zY4O{9kK=_8gecQfgdLrSZjhiZu!x%alVdq777q6=*#-d&L8&q8H_``q2{F+y(X4)_ z+UriS`&!lTjB{*`$EV;&_k`d3*~7ivYsw@BP*1t}_y+DDbar{#-<;4+^7%9E5*udushaN`-fP4b=ZKwwBc7WYPKg`IReIZe(IQariLRvSrI|czZK2GRm8p?z6J8 zLP1LDR9q@ch-s19*?v1!iw~tM-M-%dN3Ff1Bf+drWMp&{uWe8sA@%Xor&e2WY>$=H z)C~C5XU=TAcJ11LPkcPTNazM-W#xTa*Go%F&y?+N{P|N3?}}=CeEhtcnhM^do!vp; zJ{*U$=g#F0G^AfPGqWpa=3r(%dGzS=?(S|QBcuBP0Y^~vJnV(j{{e8f!_tUeQhWq& zt*5uQCd*BNQ~{6$(}uK%{dLKSZZq~zo;(5M0iy_f@IcPhRWcwTKG zT3WE3X;!bmN<~$4&1Z2I&v#d?_%+-%D8Z)`omffPy?giOty|BjtDms4I z_~3xR@74F^7Zg-P$VR&>j&qz>Tn1zx)duWeLEhvyXBf0{P zC@M$$%wRURsAw>7xQKcEiOZLH0EOA5oCUxoR@1T;f4;Wj&Ye3sCc^ANPnNuq_Q_`u zq}n%E{{DR&hgD2W%*fbybdJci+T4JUn;u^X0$-?)doR zT}n*#vJNU~&te^nN|reOT7s39@-j0s{Q2{pA3l6g&vutW=fOK-jIKP1J%rw-*IpcO zkLkem`}a4l>RGalqZgGlZXWNvoGiDQ;*ydb+}uTM4=k`)PoA(~70#YL3($8ToJvE3 z1tiY4_czd9EzkDBHD&&kr?V&QR(7)mr=^MGlNa~=in)+#y<78>>9XxYLX~W<>DVRJ zM_(_I^TJ+WdxTvlKqW3?8r`XJ%CmU(TWpWlQ8 z&2y=Ge0pNOtYNZOcj46W7(#`}!kO{(06(yJdv26q=f$5@-1L?K7Gh>DZ@}@%Z4?-`}zJkvvc|t+}@Q}5&b-n)7 z?^sP9K0f<$6?Rk(Y+#jFir7;jKYyOb`#=>Ncsg68pUNs0RdKuQ61LE?=FU#}D_8ag z>p1fqJa}+GU=A>&1-M!QoAn;E(5=LB=}>HnG>)Ydn0qzqXtaP&ne~@XJ@fmSPG`H1 zeZmt#c^k}{@goGVug~;DVj|C;Jx`xKTLuQAs7OP8BZo|*)LTgrk*#!e{z^wuYfPni zI(cLw9xHP7*-O}`vte-w&ll?qlQlHtY;vF3@59JXnyuu*>?rtzkbdq;%3500n53A} zCB-lxa`6-~UAc1Q`O~MKcD=t7%p1f-OsfyOyGvs;pswCWnZZL&8OmMX-IyscJUmPg zsYqyo`o8ev4|(?tYOMCkkrHnJbGB+LBp{u@2fUfd+0pV42?xG~xj~QannZ3uH-jH9 zPCgM@q9eB-dPPq0o-3xNMksafG?MND1%0q;I}YxbP}jeUo4YdG!-Fq-)*4(KLI6rk zir0u={JJmx9;k6Kzk1j&N?W&|AeDmfR2-rZ84qbfIGn)D#d_Z*K0aW$IwU0I%J5RA z7j_m*Z)6*oc@#eP7GBl&)*YvQ$Lp3iX1btWMH!bzC`L+$V+8}l!tVL|`%Bm+X~bU1 zcHh)}h&~sebu9xI;hLuu6sGVwiApdD&8533Tc$Ev*%%~na(cQaY00A&qb1O9>LEz8 z`bQIbvOL(y_`wzF4N52v*m3&JpRb`_G`F?2nNOJ|n9NV9Tm$vV%Uc0<0kj56@#nb@ zp8@{A3`hgBfSFu-_ugd|x+GxNa~>+pc-9ivp!?|R;L?tso}F^-)y|L^Qb7qOKaQx} zw9C%DN|#aCTE&PLlEta7sHmV}J#-(3{70g(^77@&>s#I|x9M)SPBpoF`5BHYxNf6U zC)?J2>WB68wv!K7`|V}XmQ=$ZtAv+hE!EbnS<{>``mGHBb(gd>JK#&7eR}%t z^kU^X$Mb1mXw1yaMDF<-E)h)dHXy52%S}dW{IiLf`OWsF+k=U)%n@E-b|I$`BWKEh zZ;h#HHIIBgIt`j~w)-5)`yYVsON|*$8M7m$8Q`si3PXknZfv$V9$V%I{-E-hcNVt9OfHyRe9>yT}Hh_IAu(`nuDP)!hA6nri{?fgH0C?Mzw z5&Z(%^8LNWQc?~T`g4@W#AkhxqSWVsfEPn*%R>Vl8XN2DIk%)vDxF${9xsv&i)h(B zX06a~sF)-j1(F-=x8b+T|FqA>ZX}!colfSHi3$7Z@!p~`(I!RU2CkrP(U>Yz5r)m1 z^Ka905)}eexIL*#r;W~Iaz$H_eK&0-6g?+_QI(qKhrqMrTL|f>qOCEgv(>zIIEgfCw zyToshiz1qDZ8O&cwtvn4>Mu<2t#oY9` zVb1kchgkg}_o2t6wBF^tefMterNoMOU76o;+ND2UDqOyDMf|P{m3?}6b+tO7Fyw@X zT4a?F<^~O?03W>c`!m^JznAV8(ud^al&*A!+0X(B0$QUB10hj?u?^hTc+5V z3+l1j>)P$xYe0sH>SvzJ5j)a=AI-|j8tbbG>gqB%?#EgJ(p4Cn-1voPitjEYcKwd6 zqfdIVL`DpWw=G%>~|brXUaKU-SWWQ3X|Y5w|#t~aDoB@H$}Kj zTmWcvp$v4OIgql0o*i`m{^y5kIwws`_7J|?l6$kSJ~gP$B0GEmJQgy~Mh=d02thgc zsB|$n(8tWo_FH7niGcY#y11x-8Dl4qqg_wQ#{S1Ah6GVkUe1l~#T%coiO{!w7jj2B zN(s2Yg0=<7v+JXR0N2_q%uxtc&b_&w=sf@^E!aZsP_K*h1cuPeM^MsisSDN zZ=Da+E^%#-i5lb7;lgbpD63n2ZlaSznV$7V*|x5|96gL3_7JtnpFeBzdMRJ}y^}#) z;LdAlX!<@z5KU2mFZIUd%2)IoH(E~ex5pcags$DN;UdbQ(WOg*9`mlG&ScF^Xc9I7 z8QI(4zx+Uq{E|a#^c+jY!f?ep`#*j817^_+UGrfgEyBx>F7P+M+Y_f(P{g}u|GtaWFZ5rG zDdZR=%|1$ZJP%Mj@?DmWo|W}$gF{mpFw|sMl)s6&`Kx#D?$Jq4deU zf`Ofp9uXk+f4+s6=HFpJM{a3!87$Bf5U^;J1Oxj_gxaoW-fQRXrNt?+2*PpHMnRA(dukUEgyox68;qK9CsKPvEHOf;$3NxTJ|W^yW-1dY~Qvgwq; z;>NY(#sA>&?G_e(@c1#)^Qb6_=733JT|dx;P08+HB1T}t<$BRc7k{`|nlkc*_oT9N z5pa9uQcpw4cG`%n-xPnDan82&U5{#fZ{Jvh1F4$+aNclQB|ZL8=9J52i>orN<8jlr zTbf+wH`rT91T^gA`NG>8?vb6x$nSBaqwy5Q+C9g8jI}W+Q-U(mJsNrLV^UXgeP-0F ztgHxdiMx02Ld|~aFxaSNTX77$_&q@FJSwY@VIj>crSLBt3zPD{-(8SZRox02g!M8I zW*HtD(nDth+KLDfGA11fh&fLJPDEmzg_+q!=rLa-Wg>m}(r%;b8yFgJwM;L&W%@POt$)fTime_mNH5Y>ujLX>v(t7!@O{AdP`Mr*4I$C6N z5L!EafSsT#K)%mtG+#l+VDU5@h(EdH$jK3q=9e0lB=%GF=MT5T4jFTBgf;+tEl&nYT*^vS^fbl^=Peg#E}pNBOWd^ycHAOs4E2BgyS5 ze`$xdWPcxU@Ug9 z=gG-Qy(A65Pte{L02m{qUB;1aBIseJH6J>Rlbe43E+itqiVB02^O$8h4?8`54!VT` zRR8sid_-?ROKJA@th$m!nmefPWKT>y=r1e{ECe|8z(g0wK9s1GWJYN3!1Dy$fgrpB zPXtH?%Dt^SHha_CTgY|NlIXrf0GSwQC`E@l2{9i^MuK6Hb;U8pVVwIPF>3sf-D#PA zc;CE9{15Y#meu6{0Lga(GJ6vrzi`ZMZtFW$-h_k%f;+w0oyiVkcWS36dzSEiEk3p2 zUtIs-E$f{G!WL;6x^eOauTM{Q%l7}NncL7$<{V;2tCG5a3Be*L-t zi?6VVh<#eNto&2=JzPO+A^GaW=jb(~$G``=Nz56P93ec9zKOXeQSUrc5yRv<(hi`& zVRHeTH&E*O?V-{@hL9Z2XMn22Cg3O%qUh-8xN*~_+>e(lhek%8$Hjfqc2R=`IXN>U z1l^Tvbz)o+4jVZ?#toNL+0d}<2uH7V>gEqi2sJ?qv?>ZV>(@8w6l*Rx`p|W{7JFFC z@hdcG-i>Oo%I~!n^H|d>e)NZI$+V!)OmtIu-GXaq-@%%X!bz-_so%TKZ2H0Q-le7? z*~!saPcUSS@7jU^v%!z9MfTc!jA7eT^`U3f)YNF%*Ib0L>232(%p0G1bfV6Jh)US` zkskA@E>n*lZ3XLtX_>REs;aS3>2DPTO<8CyB@t3CFvOm# z#p@gjS9-*!UE7`T*I$33_rvV7m78J3!Ak9nD1}o|oZ&Qjh*EFk-!)9#W;r{QCDs42 zvVMPU=eKZ$!N$zgnSt~Rna&4^_PT#RwR^T**P5~!%Amiucag=py7-Gp8jwud@WLH_ z5(A&>>OxTJqkee->>2~#l-9_9xksKXzp;)c@>-F zd$LL~w@3ftujm-Zwn2+#jvnPd-xcq@;*{X%v^>61R8%<8E>Cs!y={l5pV}_ZTalo? zpIYnppUZWFpMGe+{P|bafv$H)ZWMWQq}*cIB}q-JN=VBs_k_Ob4K?RLc^fU^j?_!8 zV-~mF1Msnv)I@-!U0hrrfVQC{ru4jxF)^RlU+I4JDlba@u3fv%sHqhJ>MNqyJQla> zDK~Grlt^4D>6tzu9jA^hPeMbPMNF9m{Mpd33RJ@o<-*z-!}BtXaEOthKWrsG^{ynjGim#4hUN- zOfSg)D5KDff{4?I^2lmsChwD@w|)C|&j3#OP20AWVi!zKw)vNombN{)8utvoHO?26 zYMd5<)2E?V0%yY~x3?Pqr@-vgmWS9k`|hvESc4K5g_QAB%{xkW3-yEruGH>f>1A2# zvq9pyeJ!oGSM6O5*X6FX%xP5*s^05YtQPdX6!@KU8NUoa>&D;o)`Xre6x! zww`faL9sYH(A{=Y^Xj%T-?EgjI9*}NbOLH^erthG>gYEKpoUKDGGlmO#OnYdCPoa| z{KKG>=&dEhxPc#Z=ia?tGBO;Vw{ESLo*j}!V*_2yxs*6uZRk(Wp0%)cwai74P_iG$ z(QQpchimjl!3DH^~u5Yp=Gyn^q%68hPe!+YFU@;{@fDoI&4^%Y(d~WQ2c^E z;4NfXBCCQ%fDssWe0f;!(BuY4K+nW@YY7$@cR?lb)`1_Q2NUyjnhfU>7- z33DD`@no`j1NP}&oIMBXA4LpM1OBhV|CNR==<5>+0&{xUC z*q6Q+Ir#ESg@mSRORC-asI?~=Ln!ET|<_FhU10m(zRj}Etg zk{*lyQIegVorYQP1~~CLPXOF~j~04`n~}wkrIWIS4$Dyt7mHcKexI3{8Msq=rzwR( z0Z+OQ0tMMw8N!Ha%ob1JMnQO{_|3rOc+*%B$y;}=qw$-P@Gs;InL4goa+9`EtK7{RpBS84;To&BD zrXt<0*Z%uBaVoZK`PKai4;X=w*+ zHMO+r-Tfhg?%?A3W1Q@iF)}<%lrrc~2OI{p$a$2NT>%$@7# zMX}`FJ%LLE7(X!xup^1rIX%`eW;>7ax_gul9$;3)a=k5$;o;rO`9|%B{;G1-(1&L$ zk0-Q7ZE>BLHGZ+-M4o|!Ws200!-~t7ujsdEu3vj+?X!i)^VNMaUv1cf?S}+xDH9Ew zJGKVY$~=7hfax8(%)LE)P1=6Jk&F@25d#;iW-T@}#ZLMqUJ5^^NO`RL^SVpThl^S^ zWd~v8w03rOve&pi9R$C|*7$s>&Le9gstlt1j~~}-Ob3JoGrS@rIZ!VsJF1|(f=o+3 zxyT-nJwG0wqU9ZtKOg)x#9c5Erv}e%lak8NRcAzs&_YqmM6~A8o3bU$U_Lg!;DKXvoL35Wq zzl7LT8nxb%(^mwS-o!^_h<{QX!R9h)`OSNBMrdx^E-4uX?xMoB!1}7W4Oo;62rQA-L~gc zRSVMxvlNaUTLnfS3Ft#=>5CV;DAqXO2suovSq!R+x7`yWc7R`LhXM2{LhA4%&>Q68 z^FhyU_~u^Z$A)5kD?WSv$!NLE0^^+4f58p@9rl_CKjo*ogL8j*WIy58nZN!kGWJs4 zv>8+c{pxo8N$MGniZq(zE4I?DH`{L(ew>Z~9Q~5jryL%(+8&ykh_PT6v|6*GaD(1J z_Med+w|MKqRmK97eK{*{tn3qQ&HVWOfs=okVcQSi$FY~bK3bR=|J_*o?Zs7YyDKZ` zzW=VhRbiBGBr?}}|2<+pT8=F@0cXDd_;D0<2A_LiFf=suO-xMG+qZY$zTFFX|8;zP z^s{HzfYPmPY%ZIaz+T9aI$D1zv8AKqCUzGb;Ttz@^fA8ozHwvY#*LoQ(VaVb;Z7qO zV1-&M2saKj6jB;C?ELe&hYWRiTBL0vwMaCJO{t8&^$Q^)-AlO_$GZZ{e!~7?=4%7 zLSefe9nBpoYJtCpu+kQx`dLq4xk`0!UyK2+BgTrHLE|}pV(@m_h=>de!EDyPxRGAAf351-!QFvn$OQn<1$A(g+ z!zQ2ge^t31rsOq7`cXAOY_VTIt(%KfWrF&9b=pSfEH8u;{552%U&8HzHwYYzfKjB2 zoC^#dSdCEkzcq+7R#q~gW~0Hbp`+s#7XHch⩔RxJO0(pmi$(A_P$284zKPSd|D^ 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

A%bK-J3mZeSYhDEAV9T@scK<2#bcBw=&Y| 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 z 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%0AD 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⪼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ξ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 Z{O$M6zKTC#bmE_YQNbg>erd|b{{r^sXaWEL literal 206267 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

kak+jSm(T?pSEv?J!}PQ0d*LM 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 z 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

3Oexk-LW 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

WtD!JjD)hI=lNo8A3H{dB@Fwy(dh+;Q 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 S;ffagbMO9Tx7e}DGs$S!GnJWjQVkdbW($3OJD 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 literal 12242 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 diff --git a/docs/source/tutorials/images/thumb/sphx_glr_hello_nas_thumb.png b/docs/source/tutorials/images/thumb/sphx_glr_hello_nas_thumb.png index 025bdaa7e26f250342fd9bea93512e923f16e834..b06c4e6a17748efb9e7d009eb1e161759cfa2b74 100644 GIT binary patch literal 35467 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 D?3*K8 literal 18970 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 diff --git a/docs/source/tutorials/index.rst b/docs/source/tutorials/index.rst index 3626d61b2..ff47090fd 100644 --- a/docs/source/tutorials/index.rst +++ b/docs/source/tutorials/index.rst @@ -17,7 +17,7 @@ Tutorials .. only:: html .. image:: /tutorials/images/thumb/sphx_glr_pruning_speedup_thumb.png - :alt: Speedup Model with Mask + :alt: :ref:`sphx_glr_tutorials_pruning_speedup.py` @@ -34,7 +34,7 @@ Tutorials .. only:: html .. image:: /tutorials/images/thumb/sphx_glr_quantization_quick_start_mnist_thumb.png - :alt: Quantization Quickstart + :alt: :ref:`sphx_glr_tutorials_quantization_quick_start_mnist.py` @@ -51,7 +51,7 @@ Tutorials .. only:: html .. image:: /tutorials/images/thumb/sphx_glr_pruning_quick_start_mnist_thumb.png - :alt: Pruning Quickstart + :alt: :ref:`sphx_glr_tutorials_pruning_quick_start_mnist.py` @@ -68,7 +68,7 @@ Tutorials .. only:: html .. image:: /tutorials/images/thumb/sphx_glr_quantization_customize_thumb.png - :alt: Customize a new quantization algorithm + :alt: :ref:`sphx_glr_tutorials_quantization_customize.py` @@ -85,7 +85,7 @@ Tutorials .. only:: html .. image:: /tutorials/images/thumb/sphx_glr_nasbench_as_dataset_thumb.png - :alt: Use NAS Benchmarks as Datasets + :alt: :ref:`sphx_glr_tutorials_nasbench_as_dataset.py` @@ -102,7 +102,7 @@ Tutorials .. only:: html .. image:: /tutorials/images/thumb/sphx_glr_quantization_speedup_thumb.png - :alt: Speed Up Quantized Model with TensorRT + :alt: :ref:`sphx_glr_tutorials_quantization_speedup.py` @@ -119,7 +119,7 @@ Tutorials .. only:: html .. image:: /tutorials/images/thumb/sphx_glr_hello_nas_thumb.png - :alt: Hello, NAS! + :alt: :ref:`sphx_glr_tutorials_hello_nas.py` @@ -136,7 +136,7 @@ Tutorials .. only:: html .. image:: /tutorials/images/thumb/sphx_glr_darts_thumb.png - :alt: Searching in DARTS search space + :alt: :ref:`sphx_glr_tutorials_darts.py` @@ -148,12 +148,12 @@ Tutorials .. raw:: html -

+
.. only:: html .. image:: /tutorials/images/thumb/sphx_glr_new_pruning_bert_glue_thumb.png - :alt: Pruning Bert on Task MNLI + :alt: :ref:`sphx_glr_tutorials_new_pruning_bert_glue.py` @@ -170,7 +170,7 @@ Tutorials .. only:: html .. image:: /tutorials/images/thumb/sphx_glr_pruning_bert_glue_thumb.png - :alt: Pruning Bert on Task MNLI + :alt: :ref:`sphx_glr_tutorials_pruning_bert_glue.py` @@ -214,7 +214,7 @@ Tutorials .. only:: html .. image:: /tutorials/hpo_quickstart_pytorch/images/thumb/sphx_glr_main_thumb.png - :alt: HPO Quickstart with PyTorch + :alt: :ref:`sphx_glr_tutorials_hpo_quickstart_pytorch_main.py` @@ -231,7 +231,7 @@ Tutorials .. only:: html .. image:: /tutorials/hpo_quickstart_pytorch/images/thumb/sphx_glr_model_thumb.png - :alt: Port PyTorch Quickstart to NNI + :alt: :ref:`sphx_glr_tutorials_hpo_quickstart_pytorch_model.py` @@ -260,7 +260,7 @@ Tutorials .. only:: html .. image:: /tutorials/hpo_quickstart_tensorflow/images/thumb/sphx_glr_main_thumb.png - :alt: HPO Quickstart with TensorFlow + :alt: :ref:`sphx_glr_tutorials_hpo_quickstart_tensorflow_main.py` @@ -277,7 +277,7 @@ Tutorials .. only:: html .. image:: /tutorials/hpo_quickstart_tensorflow/images/thumb/sphx_glr_model_thumb.png - :alt: Port TensorFlow Quickstart to NNI + :alt: :ref:`sphx_glr_tutorials_hpo_quickstart_tensorflow_model.py` @@ -296,6 +296,7 @@ Tutorials :hidden: :includehidden: + /tutorials/hpo_quickstart_pytorch/index.rst /tutorials/hpo_quickstart_tensorflow/index.rst diff --git a/docs/source/tutorials/nasbench_as_dataset.ipynb b/docs/source/tutorials/nasbench_as_dataset.ipynb index ce56dea80..34a26c7fc 100644 --- a/docs/source/tutorials/nasbench_as_dataset.ipynb +++ b/docs/source/tutorials/nasbench_as_dataset.ipynb @@ -44,7 +44,7 @@ }, "outputs": [], "source": [ - "import pprint\n\nfrom nni.nas.benchmarks.nasbench101 import query_nb101_trial_stats\nfrom nni.nas.benchmarks.nasbench201 import query_nb201_trial_stats\nfrom nni.nas.benchmarks.nds import query_nds_trial_stats" + "import pprint\n\nfrom nni.nas.benchmark.nasbench101 import query_nb101_trial_stats\nfrom nni.nas.benchmark.nasbench201 import query_nb201_trial_stats\nfrom nni.nas.benchmark.nds import query_nds_trial_stats" ] }, { diff --git a/docs/source/tutorials/nasbench_as_dataset.py b/docs/source/tutorials/nasbench_as_dataset.py index 91cb37757..b7de84ac1 100644 --- a/docs/source/tutorials/nasbench_as_dataset.py +++ b/docs/source/tutorials/nasbench_as_dataset.py @@ -23,9 +23,9 @@ os.listdir(os.path.expanduser('~/.cache/nni/nasbenchmark')) # %% import pprint -from nni.nas.benchmarks.nasbench101 import query_nb101_trial_stats -from nni.nas.benchmarks.nasbench201 import query_nb201_trial_stats -from nni.nas.benchmarks.nds import query_nds_trial_stats +from nni.nas.benchmark.nasbench101 import query_nb101_trial_stats +from nni.nas.benchmark.nasbench201 import query_nb201_trial_stats +from nni.nas.benchmark.nds import query_nds_trial_stats # %% # NAS-Bench-101 diff --git a/docs/source/tutorials/nasbench_as_dataset.py.md5 b/docs/source/tutorials/nasbench_as_dataset.py.md5 index 73343d3ca..3d95c8002 100644 --- a/docs/source/tutorials/nasbench_as_dataset.py.md5 +++ b/docs/source/tutorials/nasbench_as_dataset.py.md5 @@ -1 +1 @@ -715de24d20c57f3639033f6f10376c21 \ No newline at end of file +f5165dd74d4385744c53d17ce05fdc2c \ No newline at end of file diff --git a/docs/source/tutorials/nasbench_as_dataset.rst b/docs/source/tutorials/nasbench_as_dataset.rst index 2fdfcc23d..a927c85e9 100644 --- a/docs/source/tutorials/nasbench_as_dataset.rst +++ b/docs/source/tutorials/nasbench_as_dataset.rst @@ -10,7 +10,7 @@ .. note:: :class: sphx-glr-download-link-note - Click :ref:`here ` + :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title @@ -50,12 +50,10 @@ As a result, the directory should look like: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none - ['nasbench101-209f5694.db', 'nasbench201-b2b60732.db', 'nds-5745c235.db'] + ['nds-5745c235.db', 'nasbench201-b2b60732.db', 'nasbench101-209f5694.db'] @@ -65,9 +63,9 @@ As a result, the directory should look like: import pprint - from nni.nas.benchmarks.nasbench101 import query_nb101_trial_stats - from nni.nas.benchmarks.nasbench201 import query_nb201_trial_stats - from nni.nas.benchmarks.nds import query_nds_trial_stats + from nni.nas.benchmark.nasbench101 import query_nb101_trial_stats + from nni.nas.benchmark.nasbench201 import query_nb201_trial_stats + from nni.nas.benchmark.nds import query_nds_trial_stats @@ -112,11 +110,8 @@ Use the following architecture as an example: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none - [2022-02-28 13:48:51] INFO (nni.nas.benchmarks.utils/MainThread) "/home/yugzhan/.cache/nni/nasbenchmark/nasbench101-209f5694.db" already exists. Checking hash. {'config': {'arch': {'input1': [0], 'input2': [1], 'input3': [2], @@ -256,11 +251,8 @@ Use the following architecture as an example: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none - [2022-02-28 13:49:09] INFO (nni.nas.benchmarks.utils/MainThread) "/home/yugzhan/.cache/nni/nasbenchmark/nasbench201-b2b60732.db" already exists. Checking hash. {'config': {'arch': {'0_1': 'avg_pool_3x3', '0_2': 'conv_1x1', '0_3': 'conv_1x1', @@ -368,8 +360,6 @@ Intermediate results are also available. .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none {'id': 4, 'arch': {'0_1': 'avg_pool_3x3', '0_2': 'conv_1x1', '0_3': 'conv_1x1', '1_2': 'skip_connect', '1_3': 'skip_connect', '2_3': 'skip_connect'}, 'num_epochs': 12, 'num_channels': 16, 'num_cells': 5, 'dataset': 'imagenet16-120'} @@ -432,11 +422,8 @@ Use none as a wildcard. .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none - [2022-02-28 13:49:36] INFO (nni.nas.benchmarks.utils/MainThread) "/home/yugzhan/.cache/nni/nasbenchmark/nds-5745c235.db" already exists. Checking hash. {'best_test_acc': 90.48, 'best_train_acc': 96.356, 'best_train_loss': 0.116, @@ -486,8 +473,6 @@ Use none as a wildcard. .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none [{'current_epoch': 1, @@ -558,8 +543,6 @@ Use none as a wildcard. .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none {'best_test_acc': 93.58, @@ -605,8 +588,6 @@ Get the first one. .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none {'best_test_acc': 84.5, @@ -701,8 +682,6 @@ Count number. .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none {'best_test_acc': 93.37, @@ -791,8 +770,6 @@ Count number. .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none NDS (amoeba) count: 5107 @@ -803,28 +780,25 @@ Count number. .. rst-class:: sphx-glr-timing - **Total running time of the script:** ( 1 minutes 2.214 seconds) + **Total running time of the script:** ( 1 minutes 51.444 seconds) .. _sphx_glr_download_tutorials_nasbench_as_dataset.py: +.. only:: html -.. only :: html - - .. container:: sphx-glr-footer - :class: sphx-glr-footer-example + .. container:: sphx-glr-footer sphx-glr-footer-example - .. container:: sphx-glr-download sphx-glr-download-python - :download:`Download Python source code: nasbench_as_dataset.py ` + .. container:: sphx-glr-download sphx-glr-download-python + :download:`Download Python source code: nasbench_as_dataset.py ` + .. container:: sphx-glr-download sphx-glr-download-jupyter - .. container:: sphx-glr-download sphx-glr-download-jupyter - - :download:`Download Jupyter notebook: nasbench_as_dataset.ipynb ` + :download:`Download Jupyter notebook: nasbench_as_dataset.ipynb ` .. only:: html diff --git a/docs/source/tutorials/nasbench_as_dataset_codeobj.pickle b/docs/source/tutorials/nasbench_as_dataset_codeobj.pickle index 656b3e1233fb7f7569c73ef5518d793579099c08..77a0459f47782139d3cae468e498eab0e8fb360e 100644 GIT binary patch literal 1111 zcmb7D%S*#B7+0Blb-N6Ppa>qfOL4n;5%eG^DBh)HNhHBEtw{=c5WEg@GycDRea&vJ zZtEqFe&6qrU-EhQeb?B_KI`E~2#O7lq;}T3SA;4`t~oaD%Z(r1$aXLlBG56#?#X?? zMnj^II@=&=k!^+%Nd&ChvxE!7Q(o*;Yl zno#u~$l2t45*Wo1uo+}D(2anPwQT!2k(ortIu#z~u>tGNS%047b+t&)b}A+JCDQ(k zO3Xr}UeZ;z0A9zujTJc)wGE^&%g+L|<;Sq9>!i?CaW~!F-Pw9~t4RO5gX#_LvWn8( zAkuz}4D%r)BuS#F+9rtclGJXc8Pv53%v8tkykr~}`4hcs`qL%S8XVvsuF0P0R88HV zQro`S5cI_&=q{KPTpPkG2XHL{RdGhmR%JE)b`_8 macTT~*e0KwCGcj^2-u6M$8Hz+U3kE>`siyf`a{u!68{IZF`;n) delta 328 zcmcc4v58ZMO`ROd?8Gby6q?H{%_aj8 z%3-u+Rs;&IXH;>O%gf8u%S$ZQOG?d4&d5zH$}R?R!8{`a!zmfuJp`5TOqOHOW77f| zo;X>HS&2;_!n9*lWj4v+nb_^XYzd?;;{A&N<#r8Kov4*`, @@ -69,7 +69,7 @@ valid_loader = DataLoader(valid_data, batch_size=256, num_workers=6) # `this tutorial of object detection finetuning `__ # if you want to know how finetuning is generally done in PyTorch. -from nni.retiarii.hub.pytorch import DARTS as DartsSpace +from nni.nas.hub.pytorch import DARTS as DartsSpace darts_v2_model = DartsSpace.load_searched_model('darts-v2', pretrained=True, download=True) @@ -93,7 +93,7 @@ evaluate_model(darts_v2_model, cuda=True) # Set this to false if there's no GPU # %% # # The journey of using a pre-searched model could end here. Or you are interested, -# we can go a step further to search a model within :class:`~nni.retiarii.hub.pytorch.DARTS` space on our own. +# we can go a step further to search a model within :class:`~nni.nas.hub.pytorch.DARTS` space on our own. # # Use the DARTS model space # ------------------------- @@ -141,15 +141,15 @@ evaluate_model(darts_v2_model, cuda=True) # Set this to false if there's no GPU # `DARTS`_ is one of those papers that innovate both in search space and search strategy. # In this tutorial, we will search on **model space** provided by DARTS with **search strategy** proposed by DARTS. # We refer to them as *DARTS model space* (``DartsSpace``) and *DARTS strategy* (``DartsStrategy``), respectively. -# We did NOT imply that the :class:`~nni.retiarii.hub.pytorch.DARTS` space and -# :class:`~nni.retiarii.strategy.DARTS` strategy has to used together. +# We did NOT imply that the :class:`~nni.nas.hub.pytorch.DARTS` space and +# :class:`~nni.nas.strategy.DARTS` strategy has to used together. # You can always explore the DARTS space with another search strategy, or use your own strategy to search a different model space. # -# In the following example, we initialize a :class:`~nni.retiarii.hub.pytorch.DARTS` +# In the following example, we initialize a :class:`~nni.nas.hub.pytorch.DARTS` # model space, with 16 initial filters and 8 stacked cells. # The network is specialized for CIFAR-10 dataset with 32x32 input resolution. # -# The :class:`~nni.retiarii.hub.pytorch.DARTS` model space here is provided by :doc:`model space hub `, +# The :class:`~nni.nas.hub.pytorch.DARTS` model space here is provided by :doc:`model space hub `, # where we have supported multiple popular model spaces for plug-and-play. # # .. tip:: @@ -181,7 +181,7 @@ fast_dev_run = True # ^^^^^^^^^ # # To begin exploring the model space, one firstly need to have an evaluator to provide the criterion of a "good model". -# As we are searching on CIFAR-10 dataset, one can easily use the :class:`~nni.retiarii.evaluator.pytorch.Classification` +# As we are searching on CIFAR-10 dataset, one can easily use the :class:`~nni.nas.evaluator.pytorch.Classification` # as a starting point. # # Note that for a typical setup of NAS, the model search should be on validation set, and the evaluation of the final searched model @@ -190,7 +190,7 @@ fast_dev_run = True # The recommended train/val split by `DARTS`_ strategy is 1:1. import numpy as np -from nni.retiarii.evaluator.pytorch import Classification +from nni.nas.evaluator.pytorch import Classification from torch.utils.data import SubsetRandomSampler transform = transforms.Compose([ @@ -232,7 +232,7 @@ evaluator = Classification( # ^^^^^^^^ # # We will use `DARTS`_ (Differentiable ARchiTecture Search) as the search strategy to explore the model space. -# :class:`~nni.retiarii.strategy.DARTS` strategy belongs to the category of :ref:`one-shot strategy `. +# :class:`~nni.nas.strategy.DARTS` strategy belongs to the category of :ref:`one-shot strategy `. # The fundamental differences between One-shot strategies and :ref:`multi-trial strategies ` is that, # one-shot strategy combines search with model training into a single run. # Compared to multi-trial strategies, one-shot NAS doesn't need to iteratively spawn new trials (i.e., models), @@ -246,10 +246,10 @@ evaluator = Classification( # and # `How Does Supernet Help in Neural Architecture Search? `__ for interested readers. # -# :class:`~nni.retiarii.strategy.DARTS` strategy is provided as one of NNI's :doc:`built-in search strategies `. +# :class:`~nni.nas.strategy.DARTS` strategy is provided as one of NNI's :doc:`built-in search strategies `. # Using it can be as simple as one line of code. -from nni.retiarii.strategy import DARTS as DartsStrategy +from nni.nas.strategy import DARTS as DartsStrategy strategy = DartsStrategy() @@ -272,14 +272,12 @@ strategy = DartsStrategy() # ^^^^^^^^^^^^^^^^^ # # We then come to the step of launching the experiment. -# This step is similar to what we have done in the :doc:`beginner tutorial `, -# except that the ``execution_engine`` argument should be set to ``oneshot``. +# This step is similar to what we have done in the :doc:`beginner tutorial `. -from nni.retiarii.experiment.pytorch import RetiariiExperiment, RetiariiExeConfig +from nni.nas.experiment import NasExperiment -config = RetiariiExeConfig(execution_engine='oneshot') -experiment = RetiariiExperiment(model_space, evaluator=evaluator, strategy=strategy) -experiment.run(config) +experiment = NasExperiment(model_space, evaluator, strategy) +experiment.run() # %% # @@ -296,7 +294,7 @@ experiment.run(config) # We can then retrieve the best model found by the strategy with ``export_top_models``. # Here, the retrieved model is a dict (called *architecture dict*) describing the selected normal cell and reduction cell. -exported_arch = experiment.export_top_models()[0] +exported_arch = experiment.export_top_models(formatter='dict')[0] exported_arch @@ -411,12 +409,12 @@ plot_double_cells({ # and then fully train it. # # To construct a fixed model based on the architecture dict exported from the experiment, -# we can use :func:`nni.retiarii.fixed_arch`. Under the with-context, we will creating a fixed model based on ``exported_arch``, +# we can use :func:`nni.nas.space.model_context`. Under the with-context, we will creating a fixed model based on ``exported_arch``, # instead of creating a space. -from nni.retiarii import fixed_arch +from nni.nas.space import model_context -with fixed_arch(exported_arch): +with model_context(exported_arch): final_model = DartsSpace(width=16, num_cells=8, dataset='cifar') # %% @@ -434,7 +432,7 @@ valid_loader # %% # # We must create a new evaluator here because a different data split is used. -# Also, we should avoid the underlying pytorch-lightning implementation of :class:`~nni.retiarii.evaluator.pytorch.Classification` +# Also, we should avoid the underlying pytorch-lightning implementation of :class:`~nni.nas.evaluator.pytorch.Classification` # evaluator from loading the wrong checkpoint. max_epochs = 100 @@ -478,13 +476,13 @@ evaluator.fit(final_model) # `LightingModule `__ is a concept in # PyTorch-Lightning, which organizes the model training process into a list of functions, such as, # ``training_step``, ``validation_step``, ``configure_optimizers``, etc. -# Since we are merely adding a few ingredients to :class:`~nni.retiarii.evaluator.pytorch.Classification`, -# we can simply inherit :class:`~nni.retiarii.evaluator.pytorch.ClassificationModule`, which is the underlying LightningModule -# behind :class:`~nni.retiarii.evaluator.pytorch.Classification`. +# Since we are merely adding a few ingredients to :class:`~nni.nas.evaluator.pytorch.Classification`, +# we can simply inherit :class:`~nni.nas.evaluator.pytorch.ClassificationModule`, which is the underlying LightningModule +# behind :class:`~nni.nas.evaluator.pytorch.Classification`. # This could look intimidating at first, but most of them are just plug-and-play tricks which you don't need to know details about. import torch -from nni.retiarii.evaluator.pytorch import ClassificationModule +from nni.nas.evaluator.pytorch import ClassificationModule class DartsClassificationModule(ClassificationModule): def __init__( @@ -541,10 +539,10 @@ class DartsClassificationModule(ClassificationModule): # # The full evaluator is written as follows, # which simply wraps everything (except model space and search strategy of course), in a single object. -# :class:`~nni.retiarii.evaluator.pytorch.Lightning` here is a special type of evaluator. +# :class:`~nni.nas.evaluator.pytorch.Lightning` here is a special type of evaluator. # Don't forget to use the train/val data split specialized for search (1:1) here. -from nni.retiarii.evaluator.pytorch import Lightning, Trainer +from nni.nas.evaluator.pytorch import Lightning, Trainer max_epochs = 50 @@ -564,10 +562,10 @@ evaluator = Lightning( # Strategy # ^^^^^^^^ # -# :class:`~nni.retiarii.strategy.DARTS` strategy is created with gradient clip turned on. +# :class:`~nni.nas.strategy.DARTS` strategy is created with gradient clip turned on. # If you are familiar with PyTorch-Lightning, you might aware that gradient clipping can be enabled in Lightning trainer. # However, enabling gradient clip in the trainer above won't work, because the underlying -# implementation of :class:`~nni.retiarii.strategy.DARTS` strategy is based on +# implementation of :class:`~nni.nas.strategy.DARTS` strategy is based on # `manual optimization `__. strategy = DartsStrategy(gradient_clip_val=5.) @@ -586,11 +584,10 @@ strategy = DartsStrategy(gradient_clip_val=5.) model_space = DartsSpace(width=16, num_cells=8, dataset='cifar') -config = RetiariiExeConfig(execution_engine='oneshot') -experiment = RetiariiExperiment(model_space, evaluator=evaluator, strategy=strategy) -experiment.run(config) +experiment = NasExperiment(model_space, evaluator, strategy) +experiment.run() -exported_arch = experiment.export_top_models()[0] +exported_arch = experiment.export_top_models(formatter='dict')[0] exported_arch @@ -684,7 +681,7 @@ train_loader_cutout = DataLoader(train_data_cutout, batch_size=96) # Following the same procedure as paper, we also increase the number of filters to 36, and number of cells to 20, # so as to reasonably increase the model size and boost the performance. -with fixed_arch(exported_arch): +with model_context(exported_arch): final_model = DartsSpace(width=36, num_cells=20, dataset='cifar', auxiliary_loss=True, drop_path_prob=0.2) # %% diff --git a/examples/tutorials/hello_nas.py b/examples/tutorials/hello_nas.py index ca0b580aa..d367c395b 100644 --- a/examples/tutorials/hello_nas.py +++ b/examples/tutorials/hello_nas.py @@ -12,7 +12,7 @@ There are mainly three crucial components for a neural architecture search task, * A proper strategy as the method to explore this model space. * A model evaluator that reports the performance of every model in the space. -Currently, PyTorch is the only supported framework by Retiarii, and we have only tested **PyTorch 1.7 to 1.10**. +Currently, PyTorch is the only supported framework by Retiarii, and we have only tested **PyTorch 1.9 to 1.13**. This tutorial assumes PyTorch context but it should also apply to other frameworks, which is in our future plan. Define your Model Space @@ -28,19 +28,17 @@ In this framework, a model space is defined with two parts: a base model and pos # ^^^^^^^^^^^^^^^^^ # # Defining a base model is almost the same as defining a PyTorch (or TensorFlow) model. -# Usually, you only need to replace the code ``import torch.nn as nn`` with -# ``import nni.retiarii.nn.pytorch as nn`` to use our wrapped PyTorch modules. # # Below is a very simple example of defining a base model. import torch +import torch.nn as nn import torch.nn.functional as F -import nni.retiarii.nn.pytorch as nn -from nni.retiarii import model_wrapper +import nni +from nni.nas.nn.pytorch import LayerChoice, ModelSpace, MutableDropout, MutableLinear -@model_wrapper # this decorator should be put on the out most -class Net(nn.Module): +class Net(ModelSpace): # should inherit ModelSpace rather than nn.Module def __init__(self): super().__init__() self.conv1 = nn.Conv2d(1, 32, 3, 1) @@ -59,12 +57,9 @@ class Net(nn.Module): return output # %% -# .. tip:: Always keep in mind that you should use ``import nni.retiarii.nn.pytorch as nn`` and :meth:`nni.retiarii.model_wrapper`. -# Many mistakes are a result of forgetting one of those. -# Also, please use ``torch.nn`` for submodules of ``nn.init``, e.g., ``torch.nn.init`` instead of ``nn.init``. # -# Define Model Mutations -# ^^^^^^^^^^^^^^^^^^^^^^ +# Define Model Variations +# ^^^^^^^^^^^^^^^^^^^^^^^ # # A base model is only one concrete model not a model space. We provide :doc:`API and Primitives ` # for users to express how the base model can be mutated. That is, to build a model space which includes many models. @@ -73,24 +68,23 @@ class Net(nn.Module): # # .. code-block:: diff # -# @model_wrapper -# class Net(nn.Module): +# class Net(ModelSpace): # def __init__(self): # super().__init__() # self.conv1 = nn.Conv2d(1, 32, 3, 1) # - self.conv2 = nn.Conv2d(32, 64, 3, 1) -# + self.conv2 = nn.LayerChoice([ +# + self.conv2 = LayerChoice([ # + nn.Conv2d(32, 64, 3, 1), # + DepthwiseSeparableConv(32, 64) -# + ]) +# + ], label='conv2) # - self.dropout1 = nn.Dropout(0.25) -# + self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75])) +# + self.dropout1 = MutableDropout(nni.choice('dropout', [0.25, 0.5, 0.75])) # self.dropout2 = nn.Dropout(0.5) # - self.fc1 = nn.Linear(9216, 128) # - self.fc2 = nn.Linear(128, 10) -# + feature = nn.ValueChoice([64, 128, 256]) -# + self.fc1 = nn.Linear(9216, feature) -# + self.fc2 = nn.Linear(feature, 10) +# + feature = nni.choice('feature', [64, 128, 256]) +# + self.fc1 = MutableLinear(9216, feature) +# + self.fc2 = MutableLinear(feature, 10) # # def forward(self, x): # x = F.relu(self.conv1(x)) @@ -113,24 +107,22 @@ class DepthwiseSeparableConv(nn.Module): return self.pointwise(self.depthwise(x)) -@model_wrapper -class ModelSpace(nn.Module): +class MyModelSpace(ModelSpace): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(1, 32, 3, 1) # LayerChoice is used to select a layer between Conv2d and DwConv. - self.conv2 = nn.LayerChoice([ + self.conv2 = LayerChoice([ nn.Conv2d(32, 64, 3, 1), DepthwiseSeparableConv(32, 64) - ]) - # ValueChoice is used to select a dropout rate. - # ValueChoice can be used as parameter of modules wrapped in `nni.retiarii.nn.pytorch` - # or customized modules wrapped with `@basic_unit`. - self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75])) # choose dropout rate from 0.25, 0.5 and 0.75 + ], label='conv2') + # nni.choice is used to select a dropout rate. + # The result can be used as parameters of `MutableXXX`. + self.dropout1 = MutableDropout(nni.choice('dropout', [0.25, 0.5, 0.75])) # choose dropout rate from 0.25, 0.5 and 0.75 self.dropout2 = nn.Dropout(0.5) - feature = nn.ValueChoice([64, 128, 256]) - self.fc1 = nn.Linear(9216, feature) - self.fc2 = nn.Linear(feature, 10) + feature = nni.choice('feature', [64, 128, 256]) + self.fc1 = MutableLinear(9216, feature) + self.fc2 = MutableLinear(feature, 10) def forward(self, x): x = F.relu(self.conv1(x)) @@ -141,18 +133,17 @@ class ModelSpace(nn.Module): return output -model_space = ModelSpace() +model_space = MyModelSpace() model_space # %% # This example uses two mutation APIs, -# :class:`nn.LayerChoice ` and -# :class:`nn.InputChoice `. -# :class:`nn.LayerChoice ` +# :class:`nn.LayerChoice ` and +# :func:`nni.choice`. +# :class:`nn.LayerChoice ` # takes a list of candidate modules (two in this example), one will be chosen for each sampled model. # It can be used like normal PyTorch module. -# :class:`nn.InputChoice ` takes a list of candidate values, -# one will be chosen to take effect for each sampled model. +# :func:`nni.choice` is used as parameter of `MutableDropout`, which then takes the result as dropout rate. # # More detailed API description and usage can be found :doc:`here `. # @@ -176,12 +167,12 @@ model_space # Pick an exploration strategy # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # -# Retiarii supports many :doc:`exploration strategies `. +# NNI NAS supports many :doc:`exploration strategies `. # # Simply choosing (i.e., instantiate) an exploration strategy as below. -import nni.retiarii.strategy as strategy -search_strategy = strategy.Random(dedup=True) # dedup=False if deduplication is not wanted +import nni.nas.strategy as strategy +search_strategy = strategy.Random() # dedup=False if deduplication is not wanted # %% # Pick or customize a model evaluator @@ -191,8 +182,8 @@ search_strategy = strategy.Random(dedup=True) # dedup=False if deduplication is # and validating each generated model to obtain the model's performance. # The performance is sent to the exploration strategy for the strategy to generate better models. # -# Retiarii has provided :doc:`built-in model evaluators `, but to start with, -# it is recommended to use :class:`FunctionalEvaluator `, +# NNI NAS has provided :doc:`built-in model evaluators `, but to start with, +# it is recommended to use :class:`FunctionalEvaluator `, # that is, to wrap your own training and evaluation code with one single function. # This function should receive one single model class and uses :func:`nni.report_final_result` to report the final score of this model. # @@ -241,10 +232,8 @@ def test_epoch(model, device, test_loader): return accuracy -def evaluate_model(model_cls): - # "model_cls" is a class, need to instantiate - model = model_cls() - +def evaluate_model(model): + # By v3.0, the model will be instantiated by default. device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu') model.to(device) @@ -268,7 +257,7 @@ def evaluate_model(model_cls): # %% # Create the evaluator -from nni.retiarii.evaluator import FunctionalEvaluator +from nni.nas.evaluator import FunctionalEvaluator evaluator = FunctionalEvaluator(evaluate_model) # %% @@ -276,40 +265,41 @@ evaluator = FunctionalEvaluator(evaluate_model) # The ``train_epoch`` and ``test_epoch`` here can be any customized function, # where users can write their own training recipe. # -# It is recommended that the ``evaluate_model`` here accepts no additional arguments other than ``model_cls``. +# It is recommended that the ``evaluate_model`` here accepts no additional arguments other than ``model``. # However, in the :doc:`advanced tutorial `, we will show how to use additional arguments in case you actually need those. -# In future, we will support mutation on the arguments of evaluators, which is commonly called "Hyper-parmeter tuning". +# In future, we will support mutation on the arguments of evaluators, which is commonly called "Hyper-parameter tuning". # # Launch an Experiment # -------------------- # # After all the above are prepared, it is time to start an experiment to do the model search. An example is shown below. -from nni.retiarii.experiment.pytorch import RetiariiExperiment, RetiariiExeConfig -exp = RetiariiExperiment(model_space, evaluator, [], search_strategy) -exp_config = RetiariiExeConfig('local') -exp_config.experiment_name = 'mnist_search' +from nni.nas.experiment import NasExperiment +exp = NasExperiment(model_space, evaluator, search_strategy) # %% -# The following configurations are useful to control how many trials to run at most / at the same time. +# Different from HPO experiment, NAS experiment will generate an experiment config automatically. +# It should work for most cases. For example, when using multi-trial strategies, +# local training service with concurrency 1 will be used by default. +# Users can customize the config. For example, -exp_config.max_trial_number = 4 # spawn 4 trials at most -exp_config.trial_concurrency = 2 # will run two trials concurrently +exp.config.max_trial_number = 3 # spawn 3 trials at most +exp.config.trial_concurrency = 1 # will run 1 trial concurrently +exp.config.trial_gpu_number = 0 # will not use GPU # %% # Remember to set the following config if you want to GPU. -# ``use_active_gpu`` should be set true if you wish to use an occupied GPU (possibly running a GUI). - -exp_config.trial_gpu_number = 1 -exp_config.training_service.use_active_gpu = True - -# %% +# ``use_active_gpu`` should be set true if you wish to use an occupied GPU (possibly running a GUI):: +# +# exp.config.trial_gpu_number = 1 +# exp.config.training_service.use_active_gpu = True +# # Launch the experiment. The experiment should take several minutes to finish on a workstation with 2 GPUs. -exp.run(exp_config, 8081) +exp.run(port=8081) # %% -# Users can also run Retiarii Experiment with :doc:`different training services ` +# Users can also run NAS Experiment with :doc:`different training services ` # besides ``local`` training service. # # Visualize the Experiment @@ -332,14 +322,13 @@ import os from pathlib import Path -def evaluate_model_with_visualization(model_cls): - model = model_cls() +def evaluate_model_with_visualization(model): # dump the model into an onnx if 'NNI_OUTPUT_DIR' in os.environ: dummy_input = torch.zeros(1, 3, 32, 32) torch.onnx.export(model, (dummy_input, ), Path(os.environ['NNI_OUTPUT_DIR']) / 'model.onnx') - evaluate_model(model_cls) + evaluate_model(model) # %% # Relaunch the experiment, and a button is shown on Web portal. @@ -353,12 +342,3 @@ def evaluate_model_with_visualization(model_cls): for model_dict in exp.export_top_models(formatter='dict'): print(model_dict) - -# %% -# The output is ``json`` object which records the mutation actions of the top model. -# If users want to output source code of the top model, -# they can use :ref:`graph-based execution engine ` for the experiment, -# by simply adding the following two lines. - -exp_config.execution_engine = 'base' -export_formatter = 'code' diff --git a/examples/tutorials/nasbench_as_dataset.py b/examples/tutorials/nasbench_as_dataset.py index 91cb37757..b7de84ac1 100644 --- a/examples/tutorials/nasbench_as_dataset.py +++ b/examples/tutorials/nasbench_as_dataset.py @@ -23,9 +23,9 @@ os.listdir(os.path.expanduser('~/.cache/nni/nasbenchmark')) # %% import pprint -from nni.nas.benchmarks.nasbench101 import query_nb101_trial_stats -from nni.nas.benchmarks.nasbench201 import query_nb201_trial_stats -from nni.nas.benchmarks.nds import query_nds_trial_stats +from nni.nas.benchmark.nasbench101 import query_nb101_trial_stats +from nni.nas.benchmark.nasbench201 import query_nb201_trial_stats +from nni.nas.benchmark.nds import query_nds_trial_stats # %% # NAS-Bench-101 diff --git a/nni/nas/benchmark/__init__.py b/nni/nas/benchmark/__init__.py index 3b7c13545..ab1fa93d8 100644 --- a/nni/nas/benchmark/__init__.py +++ b/nni/nas/benchmark/__init__.py @@ -1,12 +1,14 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT license. -import warnings try: import peewee except ImportError: + import warnings warnings.warn('peewee is not installed. Please install it to use NAS benchmarks.') +del peewee + from .evaluator import * from .space import * from .utils import load_benchmark, download_benchmark diff --git a/nni/nas/execution/cgo/__init__.py b/nni/nas/execution/cgo/__init__.py index 61d8d5d40..227588e94 100644 --- a/nni/nas/execution/cgo/__init__.py +++ b/nni/nas/execution/cgo/__init__.py @@ -1,4 +1,5 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT license. +from .evaluator import * from .middleware import CrossGraphOptimization diff --git a/nni/nas/hub/pytorch/modules/nasbench101.py b/nni/nas/hub/pytorch/modules/nasbench101.py index 103c24946..dab944cd0 100644 --- a/nni/nas/hub/pytorch/modules/nasbench101.py +++ b/nni/nas/hub/pytorch/modules/nasbench101.py @@ -295,7 +295,7 @@ class NasBench101Cell(MutableModule): Warnings -------- - :class:`NasBench101Cell` is not supported in :ref:`graph-based execution engine `. + :class:`NasBench101Cell` is not supported for graph-based model format. It's also not supported by most one-shot algorithms currently. """ diff --git a/nni/nas/nn/pytorch/cell.py b/nni/nas/nn/pytorch/cell.py index 92b261c3e..ae65b0b0d 100644 --- a/nni/nas/nn/pytorch/cell.py +++ b/nni/nas/nn/pytorch/cell.py @@ -108,7 +108,7 @@ class Cell(MutableModule): `review article `__ if you are interested in details. - .. image:: ../../../img/nasnet_cell.png + .. image:: ../../img/nasnet_cell.png :width: 900 :align: center @@ -230,7 +230,7 @@ class Cell(MutableModule): Warnings -------- - :class:`Cell` is not supported in :ref:`graph-based execution engine `. + :class:`Cell` is not supported in :class:`~nni.nas.space.GraphModelSpace` model format. Attributes ---------- diff --git a/nni/nas/oneshot/pytorch/profiler.py b/nni/nas/oneshot/pytorch/profiler.py index cb1e62a2b..b3ecf53bd 100644 --- a/nni/nas/oneshot/pytorch/profiler.py +++ b/nni/nas/oneshot/pytorch/profiler.py @@ -12,6 +12,11 @@ It might be moved to a more general place in the future. from __future__ import annotations +__all__ = [ + 'ProfilerFilter', 'RangeProfilerFilter', 'ProfilerPenalty', + 'ExpectationProfilerPenalty', 'SampleProfilerPenalty' +] + import logging from typing import cast from typing_extensions import Literal @@ -179,6 +184,9 @@ class ProfilerPenalty(nn.Module): class ExpectationProfilerPenalty(ProfilerPenalty): + """:class:`ProfilerPenalty` for a sample with distributions. + Value for each label is a a mapping from chosen value to probablity. + """ def profile(self, sample: Sample) -> float: """Profile based on a distribution of samples. @@ -195,6 +203,9 @@ class ExpectationProfilerPenalty(ProfilerPenalty): class SampleProfilerPenalty(ProfilerPenalty): + """:class:`ProfilerPenalty` for a single sample. + Value for each label is a specifically chosen value. + """ def profile(self, sample: Sample) -> float: """Profile based on a single sample."""